1package servicefabric
2
3// Copyright (c) Microsoft Corporation. All rights reserved.
4// Licensed under the MIT License. See License.txt in the project root for license information.
5//
6// Code generated by Microsoft (R) AutoRest Code Generator.
7// Changes may cause incorrect behavior and will be lost if the code is regenerated.
8
9import (
10	"encoding/json"
11	"github.com/Azure/go-autorest/autorest"
12	"github.com/Azure/go-autorest/autorest/date"
13	"github.com/gofrs/uuid"
14)
15
16// The package's fully qualified name.
17const fqdn = "github.com/Azure/azure-sdk-for-go/services/servicefabric/7.2/servicefabric"
18
19// AadMetadata azure Active Directory metadata used for secured connection to cluster.
20type AadMetadata struct {
21	// Authority - The AAD authority url.
22	Authority *string `json:"authority,omitempty"`
23	// Client - The AAD client application Id.
24	Client *string `json:"client,omitempty"`
25	// Cluster - The AAD cluster application Id.
26	Cluster *string `json:"cluster,omitempty"`
27	// Login - The AAD login url.
28	Login *string `json:"login,omitempty"`
29	// Redirect - The client application redirect address.
30	Redirect *string `json:"redirect,omitempty"`
31	// Tenant - The AAD tenant Id.
32	Tenant *string `json:"tenant,omitempty"`
33}
34
35// AadMetadataObject azure Active Directory metadata object used for secured connection to cluster.
36type AadMetadataObject struct {
37	autorest.Response `json:"-"`
38	// Type - The client authentication method.
39	Type *string `json:"type,omitempty"`
40	// Metadata - Azure Active Directory metadata used for secured connection to cluster.
41	Metadata *AadMetadata `json:"metadata,omitempty"`
42}
43
44// AddRemoveIncrementalNamedPartitionScalingMechanism represents a scaling mechanism for adding or removing
45// named partitions of a stateless service. Partition names are in the format '0','1''N-1'
46type AddRemoveIncrementalNamedPartitionScalingMechanism struct {
47	// MinPartitionCount - Minimum number of named partitions of the service.
48	MinPartitionCount *int32 `json:"MinPartitionCount,omitempty"`
49	// MaxPartitionCount - Maximum number of named partitions of the service.
50	MaxPartitionCount *int32 `json:"MaxPartitionCount,omitempty"`
51	// ScaleIncrement - The number of instances to add or remove during a scaling operation.
52	ScaleIncrement *int32 `json:"ScaleIncrement,omitempty"`
53	// Kind - Possible values include: 'KindScalingMechanismDescription', 'KindPartitionInstanceCount', 'KindAddRemoveIncrementalNamedPartition'
54	Kind KindBasicScalingMechanismDescription `json:"Kind,omitempty"`
55}
56
57// MarshalJSON is the custom marshaler for AddRemoveIncrementalNamedPartitionScalingMechanism.
58func (arinpsm AddRemoveIncrementalNamedPartitionScalingMechanism) MarshalJSON() ([]byte, error) {
59	arinpsm.Kind = KindAddRemoveIncrementalNamedPartition
60	objectMap := make(map[string]interface{})
61	if arinpsm.MinPartitionCount != nil {
62		objectMap["MinPartitionCount"] = arinpsm.MinPartitionCount
63	}
64	if arinpsm.MaxPartitionCount != nil {
65		objectMap["MaxPartitionCount"] = arinpsm.MaxPartitionCount
66	}
67	if arinpsm.ScaleIncrement != nil {
68		objectMap["ScaleIncrement"] = arinpsm.ScaleIncrement
69	}
70	if arinpsm.Kind != "" {
71		objectMap["Kind"] = arinpsm.Kind
72	}
73	return json.Marshal(objectMap)
74}
75
76// AsPartitionInstanceCountScaleMechanism is the BasicScalingMechanismDescription implementation for AddRemoveIncrementalNamedPartitionScalingMechanism.
77func (arinpsm AddRemoveIncrementalNamedPartitionScalingMechanism) AsPartitionInstanceCountScaleMechanism() (*PartitionInstanceCountScaleMechanism, bool) {
78	return nil, false
79}
80
81// AsAddRemoveIncrementalNamedPartitionScalingMechanism is the BasicScalingMechanismDescription implementation for AddRemoveIncrementalNamedPartitionScalingMechanism.
82func (arinpsm AddRemoveIncrementalNamedPartitionScalingMechanism) AsAddRemoveIncrementalNamedPartitionScalingMechanism() (*AddRemoveIncrementalNamedPartitionScalingMechanism, bool) {
83	return &arinpsm, true
84}
85
86// AsScalingMechanismDescription is the BasicScalingMechanismDescription implementation for AddRemoveIncrementalNamedPartitionScalingMechanism.
87func (arinpsm AddRemoveIncrementalNamedPartitionScalingMechanism) AsScalingMechanismDescription() (*ScalingMechanismDescription, bool) {
88	return nil, false
89}
90
91// AsBasicScalingMechanismDescription is the BasicScalingMechanismDescription implementation for AddRemoveIncrementalNamedPartitionScalingMechanism.
92func (arinpsm AddRemoveIncrementalNamedPartitionScalingMechanism) AsBasicScalingMechanismDescription() (BasicScalingMechanismDescription, bool) {
93	return &arinpsm, true
94}
95
96// AddRemoveReplicaScalingMechanism describes the horizontal auto scaling mechanism that adds or removes
97// replicas (containers or container groups).
98type AddRemoveReplicaScalingMechanism struct {
99	// MinCount - Minimum number of containers (scale down won't be performed below this number).
100	MinCount *int32 `json:"minCount,omitempty"`
101	// MaxCount - Maximum number of containers (scale up won't be performed above this number).
102	MaxCount *int32 `json:"maxCount,omitempty"`
103	// ScaleIncrement - Each time auto scaling is performed, this number of containers will be added or removed.
104	ScaleIncrement *int32 `json:"scaleIncrement,omitempty"`
105	// Kind - Possible values include: 'KindAutoScalingMechanism', 'KindAddRemoveReplica'
106	Kind KindBasicAutoScalingMechanism `json:"kind,omitempty"`
107}
108
109// MarshalJSON is the custom marshaler for AddRemoveReplicaScalingMechanism.
110func (arrsm AddRemoveReplicaScalingMechanism) MarshalJSON() ([]byte, error) {
111	arrsm.Kind = KindAddRemoveReplica
112	objectMap := make(map[string]interface{})
113	if arrsm.MinCount != nil {
114		objectMap["minCount"] = arrsm.MinCount
115	}
116	if arrsm.MaxCount != nil {
117		objectMap["maxCount"] = arrsm.MaxCount
118	}
119	if arrsm.ScaleIncrement != nil {
120		objectMap["scaleIncrement"] = arrsm.ScaleIncrement
121	}
122	if arrsm.Kind != "" {
123		objectMap["kind"] = arrsm.Kind
124	}
125	return json.Marshal(objectMap)
126}
127
128// AsAddRemoveReplicaScalingMechanism is the BasicAutoScalingMechanism implementation for AddRemoveReplicaScalingMechanism.
129func (arrsm AddRemoveReplicaScalingMechanism) AsAddRemoveReplicaScalingMechanism() (*AddRemoveReplicaScalingMechanism, bool) {
130	return &arrsm, true
131}
132
133// AsAutoScalingMechanism is the BasicAutoScalingMechanism implementation for AddRemoveReplicaScalingMechanism.
134func (arrsm AddRemoveReplicaScalingMechanism) AsAutoScalingMechanism() (*AutoScalingMechanism, bool) {
135	return nil, false
136}
137
138// AsBasicAutoScalingMechanism is the BasicAutoScalingMechanism implementation for AddRemoveReplicaScalingMechanism.
139func (arrsm AddRemoveReplicaScalingMechanism) AsBasicAutoScalingMechanism() (BasicAutoScalingMechanism, bool) {
140	return &arrsm, true
141}
142
143// AnalysisEventMetadata metadata about an Analysis Event.
144type AnalysisEventMetadata struct {
145	// Delay - The analysis delay.
146	Delay *string `json:"Delay,omitempty"`
147	// Duration - The duration of analysis.
148	Duration *string `json:"Duration,omitempty"`
149}
150
151// ApplicationBackupConfigurationInfo backup configuration information for a specific Service Fabric
152// application specifying what backup policy is being applied and suspend description, if any.
153type ApplicationBackupConfigurationInfo struct {
154	// ApplicationName - The name of the application, including the 'fabric:' URI scheme.
155	ApplicationName *string `json:"ApplicationName,omitempty"`
156	// PolicyName - The name of the backup policy which is applicable to this Service Fabric application or service or partition.
157	PolicyName *string `json:"PolicyName,omitempty"`
158	// PolicyInheritedFrom - Specifies the scope at which the backup policy is applied. Possible values include: 'BackupPolicyScopeInvalid', 'BackupPolicyScopePartition', 'BackupPolicyScopeService', 'BackupPolicyScopeApplication'
159	PolicyInheritedFrom BackupPolicyScope `json:"PolicyInheritedFrom,omitempty"`
160	// SuspensionInfo - Describes the backup suspension details.
161	SuspensionInfo *BackupSuspensionInfo `json:"SuspensionInfo,omitempty"`
162	// Kind - Possible values include: 'KindBasicBackupConfigurationInfoKindBackupConfigurationInfo', 'KindBasicBackupConfigurationInfoKindApplication', 'KindBasicBackupConfigurationInfoKindService', 'KindBasicBackupConfigurationInfoKindPartition'
163	Kind KindBasicBackupConfigurationInfo `json:"Kind,omitempty"`
164}
165
166// MarshalJSON is the custom marshaler for ApplicationBackupConfigurationInfo.
167func (abci ApplicationBackupConfigurationInfo) MarshalJSON() ([]byte, error) {
168	abci.Kind = KindBasicBackupConfigurationInfoKindApplication
169	objectMap := make(map[string]interface{})
170	if abci.ApplicationName != nil {
171		objectMap["ApplicationName"] = abci.ApplicationName
172	}
173	if abci.PolicyName != nil {
174		objectMap["PolicyName"] = abci.PolicyName
175	}
176	if abci.PolicyInheritedFrom != "" {
177		objectMap["PolicyInheritedFrom"] = abci.PolicyInheritedFrom
178	}
179	if abci.SuspensionInfo != nil {
180		objectMap["SuspensionInfo"] = abci.SuspensionInfo
181	}
182	if abci.Kind != "" {
183		objectMap["Kind"] = abci.Kind
184	}
185	return json.Marshal(objectMap)
186}
187
188// AsApplicationBackupConfigurationInfo is the BasicBackupConfigurationInfo implementation for ApplicationBackupConfigurationInfo.
189func (abci ApplicationBackupConfigurationInfo) AsApplicationBackupConfigurationInfo() (*ApplicationBackupConfigurationInfo, bool) {
190	return &abci, true
191}
192
193// AsServiceBackupConfigurationInfo is the BasicBackupConfigurationInfo implementation for ApplicationBackupConfigurationInfo.
194func (abci ApplicationBackupConfigurationInfo) AsServiceBackupConfigurationInfo() (*ServiceBackupConfigurationInfo, bool) {
195	return nil, false
196}
197
198// AsPartitionBackupConfigurationInfo is the BasicBackupConfigurationInfo implementation for ApplicationBackupConfigurationInfo.
199func (abci ApplicationBackupConfigurationInfo) AsPartitionBackupConfigurationInfo() (*PartitionBackupConfigurationInfo, bool) {
200	return nil, false
201}
202
203// AsBackupConfigurationInfo is the BasicBackupConfigurationInfo implementation for ApplicationBackupConfigurationInfo.
204func (abci ApplicationBackupConfigurationInfo) AsBackupConfigurationInfo() (*BackupConfigurationInfo, bool) {
205	return nil, false
206}
207
208// AsBasicBackupConfigurationInfo is the BasicBackupConfigurationInfo implementation for ApplicationBackupConfigurationInfo.
209func (abci ApplicationBackupConfigurationInfo) AsBasicBackupConfigurationInfo() (BasicBackupConfigurationInfo, bool) {
210	return &abci, true
211}
212
213// ApplicationBackupEntity identifies the Service Fabric application which is being backed up.
214type ApplicationBackupEntity struct {
215	// ApplicationName - The name of the application, including the 'fabric:' URI scheme.
216	ApplicationName *string `json:"ApplicationName,omitempty"`
217	// EntityKind - Possible values include: 'EntityKindBackupEntity', 'EntityKindApplication1', 'EntityKindService1', 'EntityKindPartition1'
218	EntityKind EntityKindBasicBackupEntity `json:"EntityKind,omitempty"`
219}
220
221// MarshalJSON is the custom marshaler for ApplicationBackupEntity.
222func (abe ApplicationBackupEntity) MarshalJSON() ([]byte, error) {
223	abe.EntityKind = EntityKindApplication1
224	objectMap := make(map[string]interface{})
225	if abe.ApplicationName != nil {
226		objectMap["ApplicationName"] = abe.ApplicationName
227	}
228	if abe.EntityKind != "" {
229		objectMap["EntityKind"] = abe.EntityKind
230	}
231	return json.Marshal(objectMap)
232}
233
234// AsApplicationBackupEntity is the BasicBackupEntity implementation for ApplicationBackupEntity.
235func (abe ApplicationBackupEntity) AsApplicationBackupEntity() (*ApplicationBackupEntity, bool) {
236	return &abe, true
237}
238
239// AsServiceBackupEntity is the BasicBackupEntity implementation for ApplicationBackupEntity.
240func (abe ApplicationBackupEntity) AsServiceBackupEntity() (*ServiceBackupEntity, bool) {
241	return nil, false
242}
243
244// AsPartitionBackupEntity is the BasicBackupEntity implementation for ApplicationBackupEntity.
245func (abe ApplicationBackupEntity) AsPartitionBackupEntity() (*PartitionBackupEntity, bool) {
246	return nil, false
247}
248
249// AsBackupEntity is the BasicBackupEntity implementation for ApplicationBackupEntity.
250func (abe ApplicationBackupEntity) AsBackupEntity() (*BackupEntity, bool) {
251	return nil, false
252}
253
254// AsBasicBackupEntity is the BasicBackupEntity implementation for ApplicationBackupEntity.
255func (abe ApplicationBackupEntity) AsBasicBackupEntity() (BasicBackupEntity, bool) {
256	return &abe, true
257}
258
259// ApplicationCapacityDescription describes capacity information for services of this application. This
260// description can be used for describing the following.
261// - Reserving the capacity for the services on the nodes
262// - Limiting the total number of nodes that services of this application can run on
263// - Limiting the custom capacity metrics to limit the total consumption of this metric by the services of
264// this application
265type ApplicationCapacityDescription struct {
266	// 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.
267	MinimumNodes *int64 `json:"MinimumNodes,omitempty"`
268	// 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.
269	MaximumNodes *int64 `json:"MaximumNodes,omitempty"`
270	// ApplicationMetrics - List of application capacity metric description.
271	ApplicationMetrics *[]ApplicationMetricDescription `json:"ApplicationMetrics,omitempty"`
272}
273
274// ApplicationContainerInstanceExitedEvent container Exited event.
275type ApplicationContainerInstanceExitedEvent struct {
276	// ServiceName - Name of Service.
277	ServiceName *string `json:"ServiceName,omitempty"`
278	// ServicePackageName - Name of Service package.
279	ServicePackageName *string `json:"ServicePackageName,omitempty"`
280	// ServicePackageActivationID - Activation Id of Service package.
281	ServicePackageActivationID *string `json:"ServicePackageActivationId,omitempty"`
282	// IsExclusive - Indicates IsExclusive flag.
283	IsExclusive *bool `json:"IsExclusive,omitempty"`
284	// CodePackageName - Name of Code package.
285	CodePackageName *string `json:"CodePackageName,omitempty"`
286	// EntryPointType - Type of EntryPoint.
287	EntryPointType *string `json:"EntryPointType,omitempty"`
288	// ImageName - Name of Container image.
289	ImageName *string `json:"ImageName,omitempty"`
290	// ContainerName - Name of Container.
291	ContainerName *string `json:"ContainerName,omitempty"`
292	// HostID - Host Id.
293	HostID *string `json:"HostId,omitempty"`
294	// ExitCode - Exit code of process.
295	ExitCode *int64 `json:"ExitCode,omitempty"`
296	// UnexpectedTermination - Indicates if termination is unexpected.
297	UnexpectedTermination *bool `json:"UnexpectedTermination,omitempty"`
298	// StartTime - Start time of process.
299	StartTime *date.Time `json:"StartTime,omitempty"`
300	// 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.
301	// Starting in version 6.0, hierarchical names are delimited with the "\~" character. For example, if the application name is "fabric:/myapp/app1",
302	// the application identity would be "myapp\~app1" in 6.0+ and "myapp/app1" in previous versions.
303	ApplicationID *string `json:"ApplicationId,omitempty"`
304	// EventInstanceID - The identifier for the FabricEvent instance.
305	EventInstanceID *uuid.UUID `json:"EventInstanceId,omitempty"`
306	// Category - The category of event.
307	Category *string `json:"Category,omitempty"`
308	// TimeStamp - The time event was logged.
309	TimeStamp *date.Time `json:"TimeStamp,omitempty"`
310	// HasCorrelatedEvents - Shows there is existing related events available.
311	HasCorrelatedEvents *bool `json:"HasCorrelatedEvents,omitempty"`
312	// 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'
313	Kind KindBasicFabricEvent `json:"Kind,omitempty"`
314}
315
316// MarshalJSON is the custom marshaler for ApplicationContainerInstanceExitedEvent.
317func (aciee ApplicationContainerInstanceExitedEvent) MarshalJSON() ([]byte, error) {
318	aciee.Kind = KindApplicationContainerInstanceExited
319	objectMap := make(map[string]interface{})
320	if aciee.ServiceName != nil {
321		objectMap["ServiceName"] = aciee.ServiceName
322	}
323	if aciee.ServicePackageName != nil {
324		objectMap["ServicePackageName"] = aciee.ServicePackageName
325	}
326	if aciee.ServicePackageActivationID != nil {
327		objectMap["ServicePackageActivationId"] = aciee.ServicePackageActivationID
328	}
329	if aciee.IsExclusive != nil {
330		objectMap["IsExclusive"] = aciee.IsExclusive
331	}
332	if aciee.CodePackageName != nil {
333		objectMap["CodePackageName"] = aciee.CodePackageName
334	}
335	if aciee.EntryPointType != nil {
336		objectMap["EntryPointType"] = aciee.EntryPointType
337	}
338	if aciee.ImageName != nil {
339		objectMap["ImageName"] = aciee.ImageName
340	}
341	if aciee.ContainerName != nil {
342		objectMap["ContainerName"] = aciee.ContainerName
343	}
344	if aciee.HostID != nil {
345		objectMap["HostId"] = aciee.HostID
346	}
347	if aciee.ExitCode != nil {
348		objectMap["ExitCode"] = aciee.ExitCode
349	}
350	if aciee.UnexpectedTermination != nil {
351		objectMap["UnexpectedTermination"] = aciee.UnexpectedTermination
352	}
353	if aciee.StartTime != nil {
354		objectMap["StartTime"] = aciee.StartTime
355	}
356	if aciee.ApplicationID != nil {
357		objectMap["ApplicationId"] = aciee.ApplicationID
358	}
359	if aciee.EventInstanceID != nil {
360		objectMap["EventInstanceId"] = aciee.EventInstanceID
361	}
362	if aciee.Category != nil {
363		objectMap["Category"] = aciee.Category
364	}
365	if aciee.TimeStamp != nil {
366		objectMap["TimeStamp"] = aciee.TimeStamp
367	}
368	if aciee.HasCorrelatedEvents != nil {
369		objectMap["HasCorrelatedEvents"] = aciee.HasCorrelatedEvents
370	}
371	if aciee.Kind != "" {
372		objectMap["Kind"] = aciee.Kind
373	}
374	return json.Marshal(objectMap)
375}
376
377// AsApplicationEvent is the BasicFabricEvent implementation for ApplicationContainerInstanceExitedEvent.
378func (aciee ApplicationContainerInstanceExitedEvent) AsApplicationEvent() (*ApplicationEvent, bool) {
379	return nil, false
380}
381
382// AsBasicApplicationEvent is the BasicFabricEvent implementation for ApplicationContainerInstanceExitedEvent.
383func (aciee ApplicationContainerInstanceExitedEvent) AsBasicApplicationEvent() (BasicApplicationEvent, bool) {
384	return &aciee, true
385}
386
387// AsClusterEvent is the BasicFabricEvent implementation for ApplicationContainerInstanceExitedEvent.
388func (aciee ApplicationContainerInstanceExitedEvent) AsClusterEvent() (*ClusterEvent, bool) {
389	return nil, false
390}
391
392// AsBasicClusterEvent is the BasicFabricEvent implementation for ApplicationContainerInstanceExitedEvent.
393func (aciee ApplicationContainerInstanceExitedEvent) AsBasicClusterEvent() (BasicClusterEvent, bool) {
394	return nil, false
395}
396
397// AsContainerInstanceEvent is the BasicFabricEvent implementation for ApplicationContainerInstanceExitedEvent.
398func (aciee ApplicationContainerInstanceExitedEvent) AsContainerInstanceEvent() (*ContainerInstanceEvent, bool) {
399	return nil, false
400}
401
402// AsNodeEvent is the BasicFabricEvent implementation for ApplicationContainerInstanceExitedEvent.
403func (aciee ApplicationContainerInstanceExitedEvent) AsNodeEvent() (*NodeEvent, bool) {
404	return nil, false
405}
406
407// AsBasicNodeEvent is the BasicFabricEvent implementation for ApplicationContainerInstanceExitedEvent.
408func (aciee ApplicationContainerInstanceExitedEvent) AsBasicNodeEvent() (BasicNodeEvent, bool) {
409	return nil, false
410}
411
412// AsPartitionAnalysisEvent is the BasicFabricEvent implementation for ApplicationContainerInstanceExitedEvent.
413func (aciee ApplicationContainerInstanceExitedEvent) AsPartitionAnalysisEvent() (*PartitionAnalysisEvent, bool) {
414	return nil, false
415}
416
417// AsBasicPartitionAnalysisEvent is the BasicFabricEvent implementation for ApplicationContainerInstanceExitedEvent.
418func (aciee ApplicationContainerInstanceExitedEvent) AsBasicPartitionAnalysisEvent() (BasicPartitionAnalysisEvent, bool) {
419	return nil, false
420}
421
422// AsPartitionEvent is the BasicFabricEvent implementation for ApplicationContainerInstanceExitedEvent.
423func (aciee ApplicationContainerInstanceExitedEvent) AsPartitionEvent() (*PartitionEvent, bool) {
424	return nil, false
425}
426
427// AsBasicPartitionEvent is the BasicFabricEvent implementation for ApplicationContainerInstanceExitedEvent.
428func (aciee ApplicationContainerInstanceExitedEvent) AsBasicPartitionEvent() (BasicPartitionEvent, bool) {
429	return nil, false
430}
431
432// AsReplicaEvent is the BasicFabricEvent implementation for ApplicationContainerInstanceExitedEvent.
433func (aciee ApplicationContainerInstanceExitedEvent) AsReplicaEvent() (*ReplicaEvent, bool) {
434	return nil, false
435}
436
437// AsBasicReplicaEvent is the BasicFabricEvent implementation for ApplicationContainerInstanceExitedEvent.
438func (aciee ApplicationContainerInstanceExitedEvent) AsBasicReplicaEvent() (BasicReplicaEvent, bool) {
439	return nil, false
440}
441
442// AsServiceEvent is the BasicFabricEvent implementation for ApplicationContainerInstanceExitedEvent.
443func (aciee ApplicationContainerInstanceExitedEvent) AsServiceEvent() (*ServiceEvent, bool) {
444	return nil, false
445}
446
447// AsBasicServiceEvent is the BasicFabricEvent implementation for ApplicationContainerInstanceExitedEvent.
448func (aciee ApplicationContainerInstanceExitedEvent) AsBasicServiceEvent() (BasicServiceEvent, bool) {
449	return nil, false
450}
451
452// AsApplicationCreatedEvent is the BasicFabricEvent implementation for ApplicationContainerInstanceExitedEvent.
453func (aciee ApplicationContainerInstanceExitedEvent) AsApplicationCreatedEvent() (*ApplicationCreatedEvent, bool) {
454	return nil, false
455}
456
457// AsApplicationDeletedEvent is the BasicFabricEvent implementation for ApplicationContainerInstanceExitedEvent.
458func (aciee ApplicationContainerInstanceExitedEvent) AsApplicationDeletedEvent() (*ApplicationDeletedEvent, bool) {
459	return nil, false
460}
461
462// AsApplicationNewHealthReportEvent is the BasicFabricEvent implementation for ApplicationContainerInstanceExitedEvent.
463func (aciee ApplicationContainerInstanceExitedEvent) AsApplicationNewHealthReportEvent() (*ApplicationNewHealthReportEvent, bool) {
464	return nil, false
465}
466
467// AsApplicationHealthReportExpiredEvent is the BasicFabricEvent implementation for ApplicationContainerInstanceExitedEvent.
468func (aciee ApplicationContainerInstanceExitedEvent) AsApplicationHealthReportExpiredEvent() (*ApplicationHealthReportExpiredEvent, bool) {
469	return nil, false
470}
471
472// AsApplicationUpgradeCompletedEvent is the BasicFabricEvent implementation for ApplicationContainerInstanceExitedEvent.
473func (aciee ApplicationContainerInstanceExitedEvent) AsApplicationUpgradeCompletedEvent() (*ApplicationUpgradeCompletedEvent, bool) {
474	return nil, false
475}
476
477// AsApplicationUpgradeDomainCompletedEvent is the BasicFabricEvent implementation for ApplicationContainerInstanceExitedEvent.
478func (aciee ApplicationContainerInstanceExitedEvent) AsApplicationUpgradeDomainCompletedEvent() (*ApplicationUpgradeDomainCompletedEvent, bool) {
479	return nil, false
480}
481
482// AsApplicationUpgradeRollbackCompletedEvent is the BasicFabricEvent implementation for ApplicationContainerInstanceExitedEvent.
483func (aciee ApplicationContainerInstanceExitedEvent) AsApplicationUpgradeRollbackCompletedEvent() (*ApplicationUpgradeRollbackCompletedEvent, bool) {
484	return nil, false
485}
486
487// AsApplicationUpgradeRollbackStartedEvent is the BasicFabricEvent implementation for ApplicationContainerInstanceExitedEvent.
488func (aciee ApplicationContainerInstanceExitedEvent) AsApplicationUpgradeRollbackStartedEvent() (*ApplicationUpgradeRollbackStartedEvent, bool) {
489	return nil, false
490}
491
492// AsApplicationUpgradeStartedEvent is the BasicFabricEvent implementation for ApplicationContainerInstanceExitedEvent.
493func (aciee ApplicationContainerInstanceExitedEvent) AsApplicationUpgradeStartedEvent() (*ApplicationUpgradeStartedEvent, bool) {
494	return nil, false
495}
496
497// AsDeployedApplicationNewHealthReportEvent is the BasicFabricEvent implementation for ApplicationContainerInstanceExitedEvent.
498func (aciee ApplicationContainerInstanceExitedEvent) AsDeployedApplicationNewHealthReportEvent() (*DeployedApplicationNewHealthReportEvent, bool) {
499	return nil, false
500}
501
502// AsDeployedApplicationHealthReportExpiredEvent is the BasicFabricEvent implementation for ApplicationContainerInstanceExitedEvent.
503func (aciee ApplicationContainerInstanceExitedEvent) AsDeployedApplicationHealthReportExpiredEvent() (*DeployedApplicationHealthReportExpiredEvent, bool) {
504	return nil, false
505}
506
507// AsApplicationProcessExitedEvent is the BasicFabricEvent implementation for ApplicationContainerInstanceExitedEvent.
508func (aciee ApplicationContainerInstanceExitedEvent) AsApplicationProcessExitedEvent() (*ApplicationProcessExitedEvent, bool) {
509	return nil, false
510}
511
512// AsApplicationContainerInstanceExitedEvent is the BasicFabricEvent implementation for ApplicationContainerInstanceExitedEvent.
513func (aciee ApplicationContainerInstanceExitedEvent) AsApplicationContainerInstanceExitedEvent() (*ApplicationContainerInstanceExitedEvent, bool) {
514	return &aciee, true
515}
516
517// AsNodeAbortedEvent is the BasicFabricEvent implementation for ApplicationContainerInstanceExitedEvent.
518func (aciee ApplicationContainerInstanceExitedEvent) AsNodeAbortedEvent() (*NodeAbortedEvent, bool) {
519	return nil, false
520}
521
522// AsNodeAddedToClusterEvent is the BasicFabricEvent implementation for ApplicationContainerInstanceExitedEvent.
523func (aciee ApplicationContainerInstanceExitedEvent) AsNodeAddedToClusterEvent() (*NodeAddedToClusterEvent, bool) {
524	return nil, false
525}
526
527// AsNodeClosedEvent is the BasicFabricEvent implementation for ApplicationContainerInstanceExitedEvent.
528func (aciee ApplicationContainerInstanceExitedEvent) AsNodeClosedEvent() (*NodeClosedEvent, bool) {
529	return nil, false
530}
531
532// AsNodeDeactivateCompletedEvent is the BasicFabricEvent implementation for ApplicationContainerInstanceExitedEvent.
533func (aciee ApplicationContainerInstanceExitedEvent) AsNodeDeactivateCompletedEvent() (*NodeDeactivateCompletedEvent, bool) {
534	return nil, false
535}
536
537// AsNodeDeactivateStartedEvent is the BasicFabricEvent implementation for ApplicationContainerInstanceExitedEvent.
538func (aciee ApplicationContainerInstanceExitedEvent) AsNodeDeactivateStartedEvent() (*NodeDeactivateStartedEvent, bool) {
539	return nil, false
540}
541
542// AsNodeDownEvent is the BasicFabricEvent implementation for ApplicationContainerInstanceExitedEvent.
543func (aciee ApplicationContainerInstanceExitedEvent) AsNodeDownEvent() (*NodeDownEvent, bool) {
544	return nil, false
545}
546
547// AsNodeNewHealthReportEvent is the BasicFabricEvent implementation for ApplicationContainerInstanceExitedEvent.
548func (aciee ApplicationContainerInstanceExitedEvent) AsNodeNewHealthReportEvent() (*NodeNewHealthReportEvent, bool) {
549	return nil, false
550}
551
552// AsNodeHealthReportExpiredEvent is the BasicFabricEvent implementation for ApplicationContainerInstanceExitedEvent.
553func (aciee ApplicationContainerInstanceExitedEvent) AsNodeHealthReportExpiredEvent() (*NodeHealthReportExpiredEvent, bool) {
554	return nil, false
555}
556
557// AsNodeOpenSucceededEvent is the BasicFabricEvent implementation for ApplicationContainerInstanceExitedEvent.
558func (aciee ApplicationContainerInstanceExitedEvent) AsNodeOpenSucceededEvent() (*NodeOpenSucceededEvent, bool) {
559	return nil, false
560}
561
562// AsNodeOpenFailedEvent is the BasicFabricEvent implementation for ApplicationContainerInstanceExitedEvent.
563func (aciee ApplicationContainerInstanceExitedEvent) AsNodeOpenFailedEvent() (*NodeOpenFailedEvent, bool) {
564	return nil, false
565}
566
567// AsNodeRemovedFromClusterEvent is the BasicFabricEvent implementation for ApplicationContainerInstanceExitedEvent.
568func (aciee ApplicationContainerInstanceExitedEvent) AsNodeRemovedFromClusterEvent() (*NodeRemovedFromClusterEvent, bool) {
569	return nil, false
570}
571
572// AsNodeUpEvent is the BasicFabricEvent implementation for ApplicationContainerInstanceExitedEvent.
573func (aciee ApplicationContainerInstanceExitedEvent) AsNodeUpEvent() (*NodeUpEvent, bool) {
574	return nil, false
575}
576
577// AsPartitionNewHealthReportEvent is the BasicFabricEvent implementation for ApplicationContainerInstanceExitedEvent.
578func (aciee ApplicationContainerInstanceExitedEvent) AsPartitionNewHealthReportEvent() (*PartitionNewHealthReportEvent, bool) {
579	return nil, false
580}
581
582// AsPartitionHealthReportExpiredEvent is the BasicFabricEvent implementation for ApplicationContainerInstanceExitedEvent.
583func (aciee ApplicationContainerInstanceExitedEvent) AsPartitionHealthReportExpiredEvent() (*PartitionHealthReportExpiredEvent, bool) {
584	return nil, false
585}
586
587// AsPartitionReconfiguredEvent is the BasicFabricEvent implementation for ApplicationContainerInstanceExitedEvent.
588func (aciee ApplicationContainerInstanceExitedEvent) AsPartitionReconfiguredEvent() (*PartitionReconfiguredEvent, bool) {
589	return nil, false
590}
591
592// AsPartitionPrimaryMoveAnalysisEvent is the BasicFabricEvent implementation for ApplicationContainerInstanceExitedEvent.
593func (aciee ApplicationContainerInstanceExitedEvent) AsPartitionPrimaryMoveAnalysisEvent() (*PartitionPrimaryMoveAnalysisEvent, bool) {
594	return nil, false
595}
596
597// AsServiceCreatedEvent is the BasicFabricEvent implementation for ApplicationContainerInstanceExitedEvent.
598func (aciee ApplicationContainerInstanceExitedEvent) AsServiceCreatedEvent() (*ServiceCreatedEvent, bool) {
599	return nil, false
600}
601
602// AsServiceDeletedEvent is the BasicFabricEvent implementation for ApplicationContainerInstanceExitedEvent.
603func (aciee ApplicationContainerInstanceExitedEvent) AsServiceDeletedEvent() (*ServiceDeletedEvent, bool) {
604	return nil, false
605}
606
607// AsServiceNewHealthReportEvent is the BasicFabricEvent implementation for ApplicationContainerInstanceExitedEvent.
608func (aciee ApplicationContainerInstanceExitedEvent) AsServiceNewHealthReportEvent() (*ServiceNewHealthReportEvent, bool) {
609	return nil, false
610}
611
612// AsServiceHealthReportExpiredEvent is the BasicFabricEvent implementation for ApplicationContainerInstanceExitedEvent.
613func (aciee ApplicationContainerInstanceExitedEvent) AsServiceHealthReportExpiredEvent() (*ServiceHealthReportExpiredEvent, bool) {
614	return nil, false
615}
616
617// AsDeployedServicePackageNewHealthReportEvent is the BasicFabricEvent implementation for ApplicationContainerInstanceExitedEvent.
618func (aciee ApplicationContainerInstanceExitedEvent) AsDeployedServicePackageNewHealthReportEvent() (*DeployedServicePackageNewHealthReportEvent, bool) {
619	return nil, false
620}
621
622// AsDeployedServicePackageHealthReportExpiredEvent is the BasicFabricEvent implementation for ApplicationContainerInstanceExitedEvent.
623func (aciee ApplicationContainerInstanceExitedEvent) AsDeployedServicePackageHealthReportExpiredEvent() (*DeployedServicePackageHealthReportExpiredEvent, bool) {
624	return nil, false
625}
626
627// AsStatefulReplicaNewHealthReportEvent is the BasicFabricEvent implementation for ApplicationContainerInstanceExitedEvent.
628func (aciee ApplicationContainerInstanceExitedEvent) AsStatefulReplicaNewHealthReportEvent() (*StatefulReplicaNewHealthReportEvent, bool) {
629	return nil, false
630}
631
632// AsStatefulReplicaHealthReportExpiredEvent is the BasicFabricEvent implementation for ApplicationContainerInstanceExitedEvent.
633func (aciee ApplicationContainerInstanceExitedEvent) AsStatefulReplicaHealthReportExpiredEvent() (*StatefulReplicaHealthReportExpiredEvent, bool) {
634	return nil, false
635}
636
637// AsStatelessReplicaNewHealthReportEvent is the BasicFabricEvent implementation for ApplicationContainerInstanceExitedEvent.
638func (aciee ApplicationContainerInstanceExitedEvent) AsStatelessReplicaNewHealthReportEvent() (*StatelessReplicaNewHealthReportEvent, bool) {
639	return nil, false
640}
641
642// AsStatelessReplicaHealthReportExpiredEvent is the BasicFabricEvent implementation for ApplicationContainerInstanceExitedEvent.
643func (aciee ApplicationContainerInstanceExitedEvent) AsStatelessReplicaHealthReportExpiredEvent() (*StatelessReplicaHealthReportExpiredEvent, bool) {
644	return nil, false
645}
646
647// AsClusterNewHealthReportEvent is the BasicFabricEvent implementation for ApplicationContainerInstanceExitedEvent.
648func (aciee ApplicationContainerInstanceExitedEvent) AsClusterNewHealthReportEvent() (*ClusterNewHealthReportEvent, bool) {
649	return nil, false
650}
651
652// AsClusterHealthReportExpiredEvent is the BasicFabricEvent implementation for ApplicationContainerInstanceExitedEvent.
653func (aciee ApplicationContainerInstanceExitedEvent) AsClusterHealthReportExpiredEvent() (*ClusterHealthReportExpiredEvent, bool) {
654	return nil, false
655}
656
657// AsClusterUpgradeCompletedEvent is the BasicFabricEvent implementation for ApplicationContainerInstanceExitedEvent.
658func (aciee ApplicationContainerInstanceExitedEvent) AsClusterUpgradeCompletedEvent() (*ClusterUpgradeCompletedEvent, bool) {
659	return nil, false
660}
661
662// AsClusterUpgradeDomainCompletedEvent is the BasicFabricEvent implementation for ApplicationContainerInstanceExitedEvent.
663func (aciee ApplicationContainerInstanceExitedEvent) AsClusterUpgradeDomainCompletedEvent() (*ClusterUpgradeDomainCompletedEvent, bool) {
664	return nil, false
665}
666
667// AsClusterUpgradeRollbackCompletedEvent is the BasicFabricEvent implementation for ApplicationContainerInstanceExitedEvent.
668func (aciee ApplicationContainerInstanceExitedEvent) AsClusterUpgradeRollbackCompletedEvent() (*ClusterUpgradeRollbackCompletedEvent, bool) {
669	return nil, false
670}
671
672// AsClusterUpgradeRollbackStartedEvent is the BasicFabricEvent implementation for ApplicationContainerInstanceExitedEvent.
673func (aciee ApplicationContainerInstanceExitedEvent) AsClusterUpgradeRollbackStartedEvent() (*ClusterUpgradeRollbackStartedEvent, bool) {
674	return nil, false
675}
676
677// AsClusterUpgradeStartedEvent is the BasicFabricEvent implementation for ApplicationContainerInstanceExitedEvent.
678func (aciee ApplicationContainerInstanceExitedEvent) AsClusterUpgradeStartedEvent() (*ClusterUpgradeStartedEvent, bool) {
679	return nil, false
680}
681
682// AsChaosStoppedEvent is the BasicFabricEvent implementation for ApplicationContainerInstanceExitedEvent.
683func (aciee ApplicationContainerInstanceExitedEvent) AsChaosStoppedEvent() (*ChaosStoppedEvent, bool) {
684	return nil, false
685}
686
687// AsChaosStartedEvent is the BasicFabricEvent implementation for ApplicationContainerInstanceExitedEvent.
688func (aciee ApplicationContainerInstanceExitedEvent) AsChaosStartedEvent() (*ChaosStartedEvent, bool) {
689	return nil, false
690}
691
692// AsChaosCodePackageRestartScheduledEvent is the BasicFabricEvent implementation for ApplicationContainerInstanceExitedEvent.
693func (aciee ApplicationContainerInstanceExitedEvent) AsChaosCodePackageRestartScheduledEvent() (*ChaosCodePackageRestartScheduledEvent, bool) {
694	return nil, false
695}
696
697// AsChaosReplicaRemovalScheduledEvent is the BasicFabricEvent implementation for ApplicationContainerInstanceExitedEvent.
698func (aciee ApplicationContainerInstanceExitedEvent) AsChaosReplicaRemovalScheduledEvent() (*ChaosReplicaRemovalScheduledEvent, bool) {
699	return nil, false
700}
701
702// AsChaosPartitionSecondaryMoveScheduledEvent is the BasicFabricEvent implementation for ApplicationContainerInstanceExitedEvent.
703func (aciee ApplicationContainerInstanceExitedEvent) AsChaosPartitionSecondaryMoveScheduledEvent() (*ChaosPartitionSecondaryMoveScheduledEvent, bool) {
704	return nil, false
705}
706
707// AsChaosPartitionPrimaryMoveScheduledEvent is the BasicFabricEvent implementation for ApplicationContainerInstanceExitedEvent.
708func (aciee ApplicationContainerInstanceExitedEvent) AsChaosPartitionPrimaryMoveScheduledEvent() (*ChaosPartitionPrimaryMoveScheduledEvent, bool) {
709	return nil, false
710}
711
712// AsChaosReplicaRestartScheduledEvent is the BasicFabricEvent implementation for ApplicationContainerInstanceExitedEvent.
713func (aciee ApplicationContainerInstanceExitedEvent) AsChaosReplicaRestartScheduledEvent() (*ChaosReplicaRestartScheduledEvent, bool) {
714	return nil, false
715}
716
717// AsChaosNodeRestartScheduledEvent is the BasicFabricEvent implementation for ApplicationContainerInstanceExitedEvent.
718func (aciee ApplicationContainerInstanceExitedEvent) AsChaosNodeRestartScheduledEvent() (*ChaosNodeRestartScheduledEvent, bool) {
719	return nil, false
720}
721
722// AsFabricEvent is the BasicFabricEvent implementation for ApplicationContainerInstanceExitedEvent.
723func (aciee ApplicationContainerInstanceExitedEvent) AsFabricEvent() (*FabricEvent, bool) {
724	return nil, false
725}
726
727// AsBasicFabricEvent is the BasicFabricEvent implementation for ApplicationContainerInstanceExitedEvent.
728func (aciee ApplicationContainerInstanceExitedEvent) AsBasicFabricEvent() (BasicFabricEvent, bool) {
729	return &aciee, true
730}
731
732// ApplicationCreatedEvent application Created event.
733type ApplicationCreatedEvent struct {
734	// ApplicationTypeName - Application type name.
735	ApplicationTypeName *string `json:"ApplicationTypeName,omitempty"`
736	// ApplicationTypeVersion - Application type version.
737	ApplicationTypeVersion *string `json:"ApplicationTypeVersion,omitempty"`
738	// ApplicationDefinitionKind - Application definition kind.
739	ApplicationDefinitionKind *string `json:"ApplicationDefinitionKind,omitempty"`
740	// 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.
741	// Starting in version 6.0, hierarchical names are delimited with the "\~" character. For example, if the application name is "fabric:/myapp/app1",
742	// the application identity would be "myapp\~app1" in 6.0+ and "myapp/app1" in previous versions.
743	ApplicationID *string `json:"ApplicationId,omitempty"`
744	// EventInstanceID - The identifier for the FabricEvent instance.
745	EventInstanceID *uuid.UUID `json:"EventInstanceId,omitempty"`
746	// Category - The category of event.
747	Category *string `json:"Category,omitempty"`
748	// TimeStamp - The time event was logged.
749	TimeStamp *date.Time `json:"TimeStamp,omitempty"`
750	// HasCorrelatedEvents - Shows there is existing related events available.
751	HasCorrelatedEvents *bool `json:"HasCorrelatedEvents,omitempty"`
752	// 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'
753	Kind KindBasicFabricEvent `json:"Kind,omitempty"`
754}
755
756// MarshalJSON is the custom marshaler for ApplicationCreatedEvent.
757func (ace ApplicationCreatedEvent) MarshalJSON() ([]byte, error) {
758	ace.Kind = KindApplicationCreated
759	objectMap := make(map[string]interface{})
760	if ace.ApplicationTypeName != nil {
761		objectMap["ApplicationTypeName"] = ace.ApplicationTypeName
762	}
763	if ace.ApplicationTypeVersion != nil {
764		objectMap["ApplicationTypeVersion"] = ace.ApplicationTypeVersion
765	}
766	if ace.ApplicationDefinitionKind != nil {
767		objectMap["ApplicationDefinitionKind"] = ace.ApplicationDefinitionKind
768	}
769	if ace.ApplicationID != nil {
770		objectMap["ApplicationId"] = ace.ApplicationID
771	}
772	if ace.EventInstanceID != nil {
773		objectMap["EventInstanceId"] = ace.EventInstanceID
774	}
775	if ace.Category != nil {
776		objectMap["Category"] = ace.Category
777	}
778	if ace.TimeStamp != nil {
779		objectMap["TimeStamp"] = ace.TimeStamp
780	}
781	if ace.HasCorrelatedEvents != nil {
782		objectMap["HasCorrelatedEvents"] = ace.HasCorrelatedEvents
783	}
784	if ace.Kind != "" {
785		objectMap["Kind"] = ace.Kind
786	}
787	return json.Marshal(objectMap)
788}
789
790// AsApplicationEvent is the BasicFabricEvent implementation for ApplicationCreatedEvent.
791func (ace ApplicationCreatedEvent) AsApplicationEvent() (*ApplicationEvent, bool) {
792	return nil, false
793}
794
795// AsBasicApplicationEvent is the BasicFabricEvent implementation for ApplicationCreatedEvent.
796func (ace ApplicationCreatedEvent) AsBasicApplicationEvent() (BasicApplicationEvent, bool) {
797	return &ace, true
798}
799
800// AsClusterEvent is the BasicFabricEvent implementation for ApplicationCreatedEvent.
801func (ace ApplicationCreatedEvent) AsClusterEvent() (*ClusterEvent, bool) {
802	return nil, false
803}
804
805// AsBasicClusterEvent is the BasicFabricEvent implementation for ApplicationCreatedEvent.
806func (ace ApplicationCreatedEvent) AsBasicClusterEvent() (BasicClusterEvent, bool) {
807	return nil, false
808}
809
810// AsContainerInstanceEvent is the BasicFabricEvent implementation for ApplicationCreatedEvent.
811func (ace ApplicationCreatedEvent) AsContainerInstanceEvent() (*ContainerInstanceEvent, bool) {
812	return nil, false
813}
814
815// AsNodeEvent is the BasicFabricEvent implementation for ApplicationCreatedEvent.
816func (ace ApplicationCreatedEvent) AsNodeEvent() (*NodeEvent, bool) {
817	return nil, false
818}
819
820// AsBasicNodeEvent is the BasicFabricEvent implementation for ApplicationCreatedEvent.
821func (ace ApplicationCreatedEvent) AsBasicNodeEvent() (BasicNodeEvent, bool) {
822	return nil, false
823}
824
825// AsPartitionAnalysisEvent is the BasicFabricEvent implementation for ApplicationCreatedEvent.
826func (ace ApplicationCreatedEvent) AsPartitionAnalysisEvent() (*PartitionAnalysisEvent, bool) {
827	return nil, false
828}
829
830// AsBasicPartitionAnalysisEvent is the BasicFabricEvent implementation for ApplicationCreatedEvent.
831func (ace ApplicationCreatedEvent) AsBasicPartitionAnalysisEvent() (BasicPartitionAnalysisEvent, bool) {
832	return nil, false
833}
834
835// AsPartitionEvent is the BasicFabricEvent implementation for ApplicationCreatedEvent.
836func (ace ApplicationCreatedEvent) AsPartitionEvent() (*PartitionEvent, bool) {
837	return nil, false
838}
839
840// AsBasicPartitionEvent is the BasicFabricEvent implementation for ApplicationCreatedEvent.
841func (ace ApplicationCreatedEvent) AsBasicPartitionEvent() (BasicPartitionEvent, bool) {
842	return nil, false
843}
844
845// AsReplicaEvent is the BasicFabricEvent implementation for ApplicationCreatedEvent.
846func (ace ApplicationCreatedEvent) AsReplicaEvent() (*ReplicaEvent, bool) {
847	return nil, false
848}
849
850// AsBasicReplicaEvent is the BasicFabricEvent implementation for ApplicationCreatedEvent.
851func (ace ApplicationCreatedEvent) AsBasicReplicaEvent() (BasicReplicaEvent, bool) {
852	return nil, false
853}
854
855// AsServiceEvent is the BasicFabricEvent implementation for ApplicationCreatedEvent.
856func (ace ApplicationCreatedEvent) AsServiceEvent() (*ServiceEvent, bool) {
857	return nil, false
858}
859
860// AsBasicServiceEvent is the BasicFabricEvent implementation for ApplicationCreatedEvent.
861func (ace ApplicationCreatedEvent) AsBasicServiceEvent() (BasicServiceEvent, bool) {
862	return nil, false
863}
864
865// AsApplicationCreatedEvent is the BasicFabricEvent implementation for ApplicationCreatedEvent.
866func (ace ApplicationCreatedEvent) AsApplicationCreatedEvent() (*ApplicationCreatedEvent, bool) {
867	return &ace, true
868}
869
870// AsApplicationDeletedEvent is the BasicFabricEvent implementation for ApplicationCreatedEvent.
871func (ace ApplicationCreatedEvent) AsApplicationDeletedEvent() (*ApplicationDeletedEvent, bool) {
872	return nil, false
873}
874
875// AsApplicationNewHealthReportEvent is the BasicFabricEvent implementation for ApplicationCreatedEvent.
876func (ace ApplicationCreatedEvent) AsApplicationNewHealthReportEvent() (*ApplicationNewHealthReportEvent, bool) {
877	return nil, false
878}
879
880// AsApplicationHealthReportExpiredEvent is the BasicFabricEvent implementation for ApplicationCreatedEvent.
881func (ace ApplicationCreatedEvent) AsApplicationHealthReportExpiredEvent() (*ApplicationHealthReportExpiredEvent, bool) {
882	return nil, false
883}
884
885// AsApplicationUpgradeCompletedEvent is the BasicFabricEvent implementation for ApplicationCreatedEvent.
886func (ace ApplicationCreatedEvent) AsApplicationUpgradeCompletedEvent() (*ApplicationUpgradeCompletedEvent, bool) {
887	return nil, false
888}
889
890// AsApplicationUpgradeDomainCompletedEvent is the BasicFabricEvent implementation for ApplicationCreatedEvent.
891func (ace ApplicationCreatedEvent) AsApplicationUpgradeDomainCompletedEvent() (*ApplicationUpgradeDomainCompletedEvent, bool) {
892	return nil, false
893}
894
895// AsApplicationUpgradeRollbackCompletedEvent is the BasicFabricEvent implementation for ApplicationCreatedEvent.
896func (ace ApplicationCreatedEvent) AsApplicationUpgradeRollbackCompletedEvent() (*ApplicationUpgradeRollbackCompletedEvent, bool) {
897	return nil, false
898}
899
900// AsApplicationUpgradeRollbackStartedEvent is the BasicFabricEvent implementation for ApplicationCreatedEvent.
901func (ace ApplicationCreatedEvent) AsApplicationUpgradeRollbackStartedEvent() (*ApplicationUpgradeRollbackStartedEvent, bool) {
902	return nil, false
903}
904
905// AsApplicationUpgradeStartedEvent is the BasicFabricEvent implementation for ApplicationCreatedEvent.
906func (ace ApplicationCreatedEvent) AsApplicationUpgradeStartedEvent() (*ApplicationUpgradeStartedEvent, bool) {
907	return nil, false
908}
909
910// AsDeployedApplicationNewHealthReportEvent is the BasicFabricEvent implementation for ApplicationCreatedEvent.
911func (ace ApplicationCreatedEvent) AsDeployedApplicationNewHealthReportEvent() (*DeployedApplicationNewHealthReportEvent, bool) {
912	return nil, false
913}
914
915// AsDeployedApplicationHealthReportExpiredEvent is the BasicFabricEvent implementation for ApplicationCreatedEvent.
916func (ace ApplicationCreatedEvent) AsDeployedApplicationHealthReportExpiredEvent() (*DeployedApplicationHealthReportExpiredEvent, bool) {
917	return nil, false
918}
919
920// AsApplicationProcessExitedEvent is the BasicFabricEvent implementation for ApplicationCreatedEvent.
921func (ace ApplicationCreatedEvent) AsApplicationProcessExitedEvent() (*ApplicationProcessExitedEvent, bool) {
922	return nil, false
923}
924
925// AsApplicationContainerInstanceExitedEvent is the BasicFabricEvent implementation for ApplicationCreatedEvent.
926func (ace ApplicationCreatedEvent) AsApplicationContainerInstanceExitedEvent() (*ApplicationContainerInstanceExitedEvent, bool) {
927	return nil, false
928}
929
930// AsNodeAbortedEvent is the BasicFabricEvent implementation for ApplicationCreatedEvent.
931func (ace ApplicationCreatedEvent) AsNodeAbortedEvent() (*NodeAbortedEvent, bool) {
932	return nil, false
933}
934
935// AsNodeAddedToClusterEvent is the BasicFabricEvent implementation for ApplicationCreatedEvent.
936func (ace ApplicationCreatedEvent) AsNodeAddedToClusterEvent() (*NodeAddedToClusterEvent, bool) {
937	return nil, false
938}
939
940// AsNodeClosedEvent is the BasicFabricEvent implementation for ApplicationCreatedEvent.
941func (ace ApplicationCreatedEvent) AsNodeClosedEvent() (*NodeClosedEvent, bool) {
942	return nil, false
943}
944
945// AsNodeDeactivateCompletedEvent is the BasicFabricEvent implementation for ApplicationCreatedEvent.
946func (ace ApplicationCreatedEvent) AsNodeDeactivateCompletedEvent() (*NodeDeactivateCompletedEvent, bool) {
947	return nil, false
948}
949
950// AsNodeDeactivateStartedEvent is the BasicFabricEvent implementation for ApplicationCreatedEvent.
951func (ace ApplicationCreatedEvent) AsNodeDeactivateStartedEvent() (*NodeDeactivateStartedEvent, bool) {
952	return nil, false
953}
954
955// AsNodeDownEvent is the BasicFabricEvent implementation for ApplicationCreatedEvent.
956func (ace ApplicationCreatedEvent) AsNodeDownEvent() (*NodeDownEvent, bool) {
957	return nil, false
958}
959
960// AsNodeNewHealthReportEvent is the BasicFabricEvent implementation for ApplicationCreatedEvent.
961func (ace ApplicationCreatedEvent) AsNodeNewHealthReportEvent() (*NodeNewHealthReportEvent, bool) {
962	return nil, false
963}
964
965// AsNodeHealthReportExpiredEvent is the BasicFabricEvent implementation for ApplicationCreatedEvent.
966func (ace ApplicationCreatedEvent) AsNodeHealthReportExpiredEvent() (*NodeHealthReportExpiredEvent, bool) {
967	return nil, false
968}
969
970// AsNodeOpenSucceededEvent is the BasicFabricEvent implementation for ApplicationCreatedEvent.
971func (ace ApplicationCreatedEvent) AsNodeOpenSucceededEvent() (*NodeOpenSucceededEvent, bool) {
972	return nil, false
973}
974
975// AsNodeOpenFailedEvent is the BasicFabricEvent implementation for ApplicationCreatedEvent.
976func (ace ApplicationCreatedEvent) AsNodeOpenFailedEvent() (*NodeOpenFailedEvent, bool) {
977	return nil, false
978}
979
980// AsNodeRemovedFromClusterEvent is the BasicFabricEvent implementation for ApplicationCreatedEvent.
981func (ace ApplicationCreatedEvent) AsNodeRemovedFromClusterEvent() (*NodeRemovedFromClusterEvent, bool) {
982	return nil, false
983}
984
985// AsNodeUpEvent is the BasicFabricEvent implementation for ApplicationCreatedEvent.
986func (ace ApplicationCreatedEvent) AsNodeUpEvent() (*NodeUpEvent, bool) {
987	return nil, false
988}
989
990// AsPartitionNewHealthReportEvent is the BasicFabricEvent implementation for ApplicationCreatedEvent.
991func (ace ApplicationCreatedEvent) AsPartitionNewHealthReportEvent() (*PartitionNewHealthReportEvent, bool) {
992	return nil, false
993}
994
995// AsPartitionHealthReportExpiredEvent is the BasicFabricEvent implementation for ApplicationCreatedEvent.
996func (ace ApplicationCreatedEvent) AsPartitionHealthReportExpiredEvent() (*PartitionHealthReportExpiredEvent, bool) {
997	return nil, false
998}
999
1000// AsPartitionReconfiguredEvent is the BasicFabricEvent implementation for ApplicationCreatedEvent.
1001func (ace ApplicationCreatedEvent) AsPartitionReconfiguredEvent() (*PartitionReconfiguredEvent, bool) {
1002	return nil, false
1003}
1004
1005// AsPartitionPrimaryMoveAnalysisEvent is the BasicFabricEvent implementation for ApplicationCreatedEvent.
1006func (ace ApplicationCreatedEvent) AsPartitionPrimaryMoveAnalysisEvent() (*PartitionPrimaryMoveAnalysisEvent, bool) {
1007	return nil, false
1008}
1009
1010// AsServiceCreatedEvent is the BasicFabricEvent implementation for ApplicationCreatedEvent.
1011func (ace ApplicationCreatedEvent) AsServiceCreatedEvent() (*ServiceCreatedEvent, bool) {
1012	return nil, false
1013}
1014
1015// AsServiceDeletedEvent is the BasicFabricEvent implementation for ApplicationCreatedEvent.
1016func (ace ApplicationCreatedEvent) AsServiceDeletedEvent() (*ServiceDeletedEvent, bool) {
1017	return nil, false
1018}
1019
1020// AsServiceNewHealthReportEvent is the BasicFabricEvent implementation for ApplicationCreatedEvent.
1021func (ace ApplicationCreatedEvent) AsServiceNewHealthReportEvent() (*ServiceNewHealthReportEvent, bool) {
1022	return nil, false
1023}
1024
1025// AsServiceHealthReportExpiredEvent is the BasicFabricEvent implementation for ApplicationCreatedEvent.
1026func (ace ApplicationCreatedEvent) AsServiceHealthReportExpiredEvent() (*ServiceHealthReportExpiredEvent, bool) {
1027	return nil, false
1028}
1029
1030// AsDeployedServicePackageNewHealthReportEvent is the BasicFabricEvent implementation for ApplicationCreatedEvent.
1031func (ace ApplicationCreatedEvent) AsDeployedServicePackageNewHealthReportEvent() (*DeployedServicePackageNewHealthReportEvent, bool) {
1032	return nil, false
1033}
1034
1035// AsDeployedServicePackageHealthReportExpiredEvent is the BasicFabricEvent implementation for ApplicationCreatedEvent.
1036func (ace ApplicationCreatedEvent) AsDeployedServicePackageHealthReportExpiredEvent() (*DeployedServicePackageHealthReportExpiredEvent, bool) {
1037	return nil, false
1038}
1039
1040// AsStatefulReplicaNewHealthReportEvent is the BasicFabricEvent implementation for ApplicationCreatedEvent.
1041func (ace ApplicationCreatedEvent) AsStatefulReplicaNewHealthReportEvent() (*StatefulReplicaNewHealthReportEvent, bool) {
1042	return nil, false
1043}
1044
1045// AsStatefulReplicaHealthReportExpiredEvent is the BasicFabricEvent implementation for ApplicationCreatedEvent.
1046func (ace ApplicationCreatedEvent) AsStatefulReplicaHealthReportExpiredEvent() (*StatefulReplicaHealthReportExpiredEvent, bool) {
1047	return nil, false
1048}
1049
1050// AsStatelessReplicaNewHealthReportEvent is the BasicFabricEvent implementation for ApplicationCreatedEvent.
1051func (ace ApplicationCreatedEvent) AsStatelessReplicaNewHealthReportEvent() (*StatelessReplicaNewHealthReportEvent, bool) {
1052	return nil, false
1053}
1054
1055// AsStatelessReplicaHealthReportExpiredEvent is the BasicFabricEvent implementation for ApplicationCreatedEvent.
1056func (ace ApplicationCreatedEvent) AsStatelessReplicaHealthReportExpiredEvent() (*StatelessReplicaHealthReportExpiredEvent, bool) {
1057	return nil, false
1058}
1059
1060// AsClusterNewHealthReportEvent is the BasicFabricEvent implementation for ApplicationCreatedEvent.
1061func (ace ApplicationCreatedEvent) AsClusterNewHealthReportEvent() (*ClusterNewHealthReportEvent, bool) {
1062	return nil, false
1063}
1064
1065// AsClusterHealthReportExpiredEvent is the BasicFabricEvent implementation for ApplicationCreatedEvent.
1066func (ace ApplicationCreatedEvent) AsClusterHealthReportExpiredEvent() (*ClusterHealthReportExpiredEvent, bool) {
1067	return nil, false
1068}
1069
1070// AsClusterUpgradeCompletedEvent is the BasicFabricEvent implementation for ApplicationCreatedEvent.
1071func (ace ApplicationCreatedEvent) AsClusterUpgradeCompletedEvent() (*ClusterUpgradeCompletedEvent, bool) {
1072	return nil, false
1073}
1074
1075// AsClusterUpgradeDomainCompletedEvent is the BasicFabricEvent implementation for ApplicationCreatedEvent.
1076func (ace ApplicationCreatedEvent) AsClusterUpgradeDomainCompletedEvent() (*ClusterUpgradeDomainCompletedEvent, bool) {
1077	return nil, false
1078}
1079
1080// AsClusterUpgradeRollbackCompletedEvent is the BasicFabricEvent implementation for ApplicationCreatedEvent.
1081func (ace ApplicationCreatedEvent) AsClusterUpgradeRollbackCompletedEvent() (*ClusterUpgradeRollbackCompletedEvent, bool) {
1082	return nil, false
1083}
1084
1085// AsClusterUpgradeRollbackStartedEvent is the BasicFabricEvent implementation for ApplicationCreatedEvent.
1086func (ace ApplicationCreatedEvent) AsClusterUpgradeRollbackStartedEvent() (*ClusterUpgradeRollbackStartedEvent, bool) {
1087	return nil, false
1088}
1089
1090// AsClusterUpgradeStartedEvent is the BasicFabricEvent implementation for ApplicationCreatedEvent.
1091func (ace ApplicationCreatedEvent) AsClusterUpgradeStartedEvent() (*ClusterUpgradeStartedEvent, bool) {
1092	return nil, false
1093}
1094
1095// AsChaosStoppedEvent is the BasicFabricEvent implementation for ApplicationCreatedEvent.
1096func (ace ApplicationCreatedEvent) AsChaosStoppedEvent() (*ChaosStoppedEvent, bool) {
1097	return nil, false
1098}
1099
1100// AsChaosStartedEvent is the BasicFabricEvent implementation for ApplicationCreatedEvent.
1101func (ace ApplicationCreatedEvent) AsChaosStartedEvent() (*ChaosStartedEvent, bool) {
1102	return nil, false
1103}
1104
1105// AsChaosCodePackageRestartScheduledEvent is the BasicFabricEvent implementation for ApplicationCreatedEvent.
1106func (ace ApplicationCreatedEvent) AsChaosCodePackageRestartScheduledEvent() (*ChaosCodePackageRestartScheduledEvent, bool) {
1107	return nil, false
1108}
1109
1110// AsChaosReplicaRemovalScheduledEvent is the BasicFabricEvent implementation for ApplicationCreatedEvent.
1111func (ace ApplicationCreatedEvent) AsChaosReplicaRemovalScheduledEvent() (*ChaosReplicaRemovalScheduledEvent, bool) {
1112	return nil, false
1113}
1114
1115// AsChaosPartitionSecondaryMoveScheduledEvent is the BasicFabricEvent implementation for ApplicationCreatedEvent.
1116func (ace ApplicationCreatedEvent) AsChaosPartitionSecondaryMoveScheduledEvent() (*ChaosPartitionSecondaryMoveScheduledEvent, bool) {
1117	return nil, false
1118}
1119
1120// AsChaosPartitionPrimaryMoveScheduledEvent is the BasicFabricEvent implementation for ApplicationCreatedEvent.
1121func (ace ApplicationCreatedEvent) AsChaosPartitionPrimaryMoveScheduledEvent() (*ChaosPartitionPrimaryMoveScheduledEvent, bool) {
1122	return nil, false
1123}
1124
1125// AsChaosReplicaRestartScheduledEvent is the BasicFabricEvent implementation for ApplicationCreatedEvent.
1126func (ace ApplicationCreatedEvent) AsChaosReplicaRestartScheduledEvent() (*ChaosReplicaRestartScheduledEvent, bool) {
1127	return nil, false
1128}
1129
1130// AsChaosNodeRestartScheduledEvent is the BasicFabricEvent implementation for ApplicationCreatedEvent.
1131func (ace ApplicationCreatedEvent) AsChaosNodeRestartScheduledEvent() (*ChaosNodeRestartScheduledEvent, bool) {
1132	return nil, false
1133}
1134
1135// AsFabricEvent is the BasicFabricEvent implementation for ApplicationCreatedEvent.
1136func (ace ApplicationCreatedEvent) AsFabricEvent() (*FabricEvent, bool) {
1137	return nil, false
1138}
1139
1140// AsBasicFabricEvent is the BasicFabricEvent implementation for ApplicationCreatedEvent.
1141func (ace ApplicationCreatedEvent) AsBasicFabricEvent() (BasicFabricEvent, bool) {
1142	return &ace, true
1143}
1144
1145// ApplicationDeletedEvent application Deleted event.
1146type ApplicationDeletedEvent struct {
1147	// ApplicationTypeName - Application type name.
1148	ApplicationTypeName *string `json:"ApplicationTypeName,omitempty"`
1149	// ApplicationTypeVersion - Application type version.
1150	ApplicationTypeVersion *string `json:"ApplicationTypeVersion,omitempty"`
1151	// 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.
1152	// Starting in version 6.0, hierarchical names are delimited with the "\~" character. For example, if the application name is "fabric:/myapp/app1",
1153	// the application identity would be "myapp\~app1" in 6.0+ and "myapp/app1" in previous versions.
1154	ApplicationID *string `json:"ApplicationId,omitempty"`
1155	// EventInstanceID - The identifier for the FabricEvent instance.
1156	EventInstanceID *uuid.UUID `json:"EventInstanceId,omitempty"`
1157	// Category - The category of event.
1158	Category *string `json:"Category,omitempty"`
1159	// TimeStamp - The time event was logged.
1160	TimeStamp *date.Time `json:"TimeStamp,omitempty"`
1161	// HasCorrelatedEvents - Shows there is existing related events available.
1162	HasCorrelatedEvents *bool `json:"HasCorrelatedEvents,omitempty"`
1163	// 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'
1164	Kind KindBasicFabricEvent `json:"Kind,omitempty"`
1165}
1166
1167// MarshalJSON is the custom marshaler for ApplicationDeletedEvent.
1168func (ade ApplicationDeletedEvent) MarshalJSON() ([]byte, error) {
1169	ade.Kind = KindApplicationDeleted
1170	objectMap := make(map[string]interface{})
1171	if ade.ApplicationTypeName != nil {
1172		objectMap["ApplicationTypeName"] = ade.ApplicationTypeName
1173	}
1174	if ade.ApplicationTypeVersion != nil {
1175		objectMap["ApplicationTypeVersion"] = ade.ApplicationTypeVersion
1176	}
1177	if ade.ApplicationID != nil {
1178		objectMap["ApplicationId"] = ade.ApplicationID
1179	}
1180	if ade.EventInstanceID != nil {
1181		objectMap["EventInstanceId"] = ade.EventInstanceID
1182	}
1183	if ade.Category != nil {
1184		objectMap["Category"] = ade.Category
1185	}
1186	if ade.TimeStamp != nil {
1187		objectMap["TimeStamp"] = ade.TimeStamp
1188	}
1189	if ade.HasCorrelatedEvents != nil {
1190		objectMap["HasCorrelatedEvents"] = ade.HasCorrelatedEvents
1191	}
1192	if ade.Kind != "" {
1193		objectMap["Kind"] = ade.Kind
1194	}
1195	return json.Marshal(objectMap)
1196}
1197
1198// AsApplicationEvent is the BasicFabricEvent implementation for ApplicationDeletedEvent.
1199func (ade ApplicationDeletedEvent) AsApplicationEvent() (*ApplicationEvent, bool) {
1200	return nil, false
1201}
1202
1203// AsBasicApplicationEvent is the BasicFabricEvent implementation for ApplicationDeletedEvent.
1204func (ade ApplicationDeletedEvent) AsBasicApplicationEvent() (BasicApplicationEvent, bool) {
1205	return &ade, true
1206}
1207
1208// AsClusterEvent is the BasicFabricEvent implementation for ApplicationDeletedEvent.
1209func (ade ApplicationDeletedEvent) AsClusterEvent() (*ClusterEvent, bool) {
1210	return nil, false
1211}
1212
1213// AsBasicClusterEvent is the BasicFabricEvent implementation for ApplicationDeletedEvent.
1214func (ade ApplicationDeletedEvent) AsBasicClusterEvent() (BasicClusterEvent, bool) {
1215	return nil, false
1216}
1217
1218// AsContainerInstanceEvent is the BasicFabricEvent implementation for ApplicationDeletedEvent.
1219func (ade ApplicationDeletedEvent) AsContainerInstanceEvent() (*ContainerInstanceEvent, bool) {
1220	return nil, false
1221}
1222
1223// AsNodeEvent is the BasicFabricEvent implementation for ApplicationDeletedEvent.
1224func (ade ApplicationDeletedEvent) AsNodeEvent() (*NodeEvent, bool) {
1225	return nil, false
1226}
1227
1228// AsBasicNodeEvent is the BasicFabricEvent implementation for ApplicationDeletedEvent.
1229func (ade ApplicationDeletedEvent) AsBasicNodeEvent() (BasicNodeEvent, bool) {
1230	return nil, false
1231}
1232
1233// AsPartitionAnalysisEvent is the BasicFabricEvent implementation for ApplicationDeletedEvent.
1234func (ade ApplicationDeletedEvent) AsPartitionAnalysisEvent() (*PartitionAnalysisEvent, bool) {
1235	return nil, false
1236}
1237
1238// AsBasicPartitionAnalysisEvent is the BasicFabricEvent implementation for ApplicationDeletedEvent.
1239func (ade ApplicationDeletedEvent) AsBasicPartitionAnalysisEvent() (BasicPartitionAnalysisEvent, bool) {
1240	return nil, false
1241}
1242
1243// AsPartitionEvent is the BasicFabricEvent implementation for ApplicationDeletedEvent.
1244func (ade ApplicationDeletedEvent) AsPartitionEvent() (*PartitionEvent, bool) {
1245	return nil, false
1246}
1247
1248// AsBasicPartitionEvent is the BasicFabricEvent implementation for ApplicationDeletedEvent.
1249func (ade ApplicationDeletedEvent) AsBasicPartitionEvent() (BasicPartitionEvent, bool) {
1250	return nil, false
1251}
1252
1253// AsReplicaEvent is the BasicFabricEvent implementation for ApplicationDeletedEvent.
1254func (ade ApplicationDeletedEvent) AsReplicaEvent() (*ReplicaEvent, bool) {
1255	return nil, false
1256}
1257
1258// AsBasicReplicaEvent is the BasicFabricEvent implementation for ApplicationDeletedEvent.
1259func (ade ApplicationDeletedEvent) AsBasicReplicaEvent() (BasicReplicaEvent, bool) {
1260	return nil, false
1261}
1262
1263// AsServiceEvent is the BasicFabricEvent implementation for ApplicationDeletedEvent.
1264func (ade ApplicationDeletedEvent) AsServiceEvent() (*ServiceEvent, bool) {
1265	return nil, false
1266}
1267
1268// AsBasicServiceEvent is the BasicFabricEvent implementation for ApplicationDeletedEvent.
1269func (ade ApplicationDeletedEvent) AsBasicServiceEvent() (BasicServiceEvent, bool) {
1270	return nil, false
1271}
1272
1273// AsApplicationCreatedEvent is the BasicFabricEvent implementation for ApplicationDeletedEvent.
1274func (ade ApplicationDeletedEvent) AsApplicationCreatedEvent() (*ApplicationCreatedEvent, bool) {
1275	return nil, false
1276}
1277
1278// AsApplicationDeletedEvent is the BasicFabricEvent implementation for ApplicationDeletedEvent.
1279func (ade ApplicationDeletedEvent) AsApplicationDeletedEvent() (*ApplicationDeletedEvent, bool) {
1280	return &ade, true
1281}
1282
1283// AsApplicationNewHealthReportEvent is the BasicFabricEvent implementation for ApplicationDeletedEvent.
1284func (ade ApplicationDeletedEvent) AsApplicationNewHealthReportEvent() (*ApplicationNewHealthReportEvent, bool) {
1285	return nil, false
1286}
1287
1288// AsApplicationHealthReportExpiredEvent is the BasicFabricEvent implementation for ApplicationDeletedEvent.
1289func (ade ApplicationDeletedEvent) AsApplicationHealthReportExpiredEvent() (*ApplicationHealthReportExpiredEvent, bool) {
1290	return nil, false
1291}
1292
1293// AsApplicationUpgradeCompletedEvent is the BasicFabricEvent implementation for ApplicationDeletedEvent.
1294func (ade ApplicationDeletedEvent) AsApplicationUpgradeCompletedEvent() (*ApplicationUpgradeCompletedEvent, bool) {
1295	return nil, false
1296}
1297
1298// AsApplicationUpgradeDomainCompletedEvent is the BasicFabricEvent implementation for ApplicationDeletedEvent.
1299func (ade ApplicationDeletedEvent) AsApplicationUpgradeDomainCompletedEvent() (*ApplicationUpgradeDomainCompletedEvent, bool) {
1300	return nil, false
1301}
1302
1303// AsApplicationUpgradeRollbackCompletedEvent is the BasicFabricEvent implementation for ApplicationDeletedEvent.
1304func (ade ApplicationDeletedEvent) AsApplicationUpgradeRollbackCompletedEvent() (*ApplicationUpgradeRollbackCompletedEvent, bool) {
1305	return nil, false
1306}
1307
1308// AsApplicationUpgradeRollbackStartedEvent is the BasicFabricEvent implementation for ApplicationDeletedEvent.
1309func (ade ApplicationDeletedEvent) AsApplicationUpgradeRollbackStartedEvent() (*ApplicationUpgradeRollbackStartedEvent, bool) {
1310	return nil, false
1311}
1312
1313// AsApplicationUpgradeStartedEvent is the BasicFabricEvent implementation for ApplicationDeletedEvent.
1314func (ade ApplicationDeletedEvent) AsApplicationUpgradeStartedEvent() (*ApplicationUpgradeStartedEvent, bool) {
1315	return nil, false
1316}
1317
1318// AsDeployedApplicationNewHealthReportEvent is the BasicFabricEvent implementation for ApplicationDeletedEvent.
1319func (ade ApplicationDeletedEvent) AsDeployedApplicationNewHealthReportEvent() (*DeployedApplicationNewHealthReportEvent, bool) {
1320	return nil, false
1321}
1322
1323// AsDeployedApplicationHealthReportExpiredEvent is the BasicFabricEvent implementation for ApplicationDeletedEvent.
1324func (ade ApplicationDeletedEvent) AsDeployedApplicationHealthReportExpiredEvent() (*DeployedApplicationHealthReportExpiredEvent, bool) {
1325	return nil, false
1326}
1327
1328// AsApplicationProcessExitedEvent is the BasicFabricEvent implementation for ApplicationDeletedEvent.
1329func (ade ApplicationDeletedEvent) AsApplicationProcessExitedEvent() (*ApplicationProcessExitedEvent, bool) {
1330	return nil, false
1331}
1332
1333// AsApplicationContainerInstanceExitedEvent is the BasicFabricEvent implementation for ApplicationDeletedEvent.
1334func (ade ApplicationDeletedEvent) AsApplicationContainerInstanceExitedEvent() (*ApplicationContainerInstanceExitedEvent, bool) {
1335	return nil, false
1336}
1337
1338// AsNodeAbortedEvent is the BasicFabricEvent implementation for ApplicationDeletedEvent.
1339func (ade ApplicationDeletedEvent) AsNodeAbortedEvent() (*NodeAbortedEvent, bool) {
1340	return nil, false
1341}
1342
1343// AsNodeAddedToClusterEvent is the BasicFabricEvent implementation for ApplicationDeletedEvent.
1344func (ade ApplicationDeletedEvent) AsNodeAddedToClusterEvent() (*NodeAddedToClusterEvent, bool) {
1345	return nil, false
1346}
1347
1348// AsNodeClosedEvent is the BasicFabricEvent implementation for ApplicationDeletedEvent.
1349func (ade ApplicationDeletedEvent) AsNodeClosedEvent() (*NodeClosedEvent, bool) {
1350	return nil, false
1351}
1352
1353// AsNodeDeactivateCompletedEvent is the BasicFabricEvent implementation for ApplicationDeletedEvent.
1354func (ade ApplicationDeletedEvent) AsNodeDeactivateCompletedEvent() (*NodeDeactivateCompletedEvent, bool) {
1355	return nil, false
1356}
1357
1358// AsNodeDeactivateStartedEvent is the BasicFabricEvent implementation for ApplicationDeletedEvent.
1359func (ade ApplicationDeletedEvent) AsNodeDeactivateStartedEvent() (*NodeDeactivateStartedEvent, bool) {
1360	return nil, false
1361}
1362
1363// AsNodeDownEvent is the BasicFabricEvent implementation for ApplicationDeletedEvent.
1364func (ade ApplicationDeletedEvent) AsNodeDownEvent() (*NodeDownEvent, bool) {
1365	return nil, false
1366}
1367
1368// AsNodeNewHealthReportEvent is the BasicFabricEvent implementation for ApplicationDeletedEvent.
1369func (ade ApplicationDeletedEvent) AsNodeNewHealthReportEvent() (*NodeNewHealthReportEvent, bool) {
1370	return nil, false
1371}
1372
1373// AsNodeHealthReportExpiredEvent is the BasicFabricEvent implementation for ApplicationDeletedEvent.
1374func (ade ApplicationDeletedEvent) AsNodeHealthReportExpiredEvent() (*NodeHealthReportExpiredEvent, bool) {
1375	return nil, false
1376}
1377
1378// AsNodeOpenSucceededEvent is the BasicFabricEvent implementation for ApplicationDeletedEvent.
1379func (ade ApplicationDeletedEvent) AsNodeOpenSucceededEvent() (*NodeOpenSucceededEvent, bool) {
1380	return nil, false
1381}
1382
1383// AsNodeOpenFailedEvent is the BasicFabricEvent implementation for ApplicationDeletedEvent.
1384func (ade ApplicationDeletedEvent) AsNodeOpenFailedEvent() (*NodeOpenFailedEvent, bool) {
1385	return nil, false
1386}
1387
1388// AsNodeRemovedFromClusterEvent is the BasicFabricEvent implementation for ApplicationDeletedEvent.
1389func (ade ApplicationDeletedEvent) AsNodeRemovedFromClusterEvent() (*NodeRemovedFromClusterEvent, bool) {
1390	return nil, false
1391}
1392
1393// AsNodeUpEvent is the BasicFabricEvent implementation for ApplicationDeletedEvent.
1394func (ade ApplicationDeletedEvent) AsNodeUpEvent() (*NodeUpEvent, bool) {
1395	return nil, false
1396}
1397
1398// AsPartitionNewHealthReportEvent is the BasicFabricEvent implementation for ApplicationDeletedEvent.
1399func (ade ApplicationDeletedEvent) AsPartitionNewHealthReportEvent() (*PartitionNewHealthReportEvent, bool) {
1400	return nil, false
1401}
1402
1403// AsPartitionHealthReportExpiredEvent is the BasicFabricEvent implementation for ApplicationDeletedEvent.
1404func (ade ApplicationDeletedEvent) AsPartitionHealthReportExpiredEvent() (*PartitionHealthReportExpiredEvent, bool) {
1405	return nil, false
1406}
1407
1408// AsPartitionReconfiguredEvent is the BasicFabricEvent implementation for ApplicationDeletedEvent.
1409func (ade ApplicationDeletedEvent) AsPartitionReconfiguredEvent() (*PartitionReconfiguredEvent, bool) {
1410	return nil, false
1411}
1412
1413// AsPartitionPrimaryMoveAnalysisEvent is the BasicFabricEvent implementation for ApplicationDeletedEvent.
1414func (ade ApplicationDeletedEvent) AsPartitionPrimaryMoveAnalysisEvent() (*PartitionPrimaryMoveAnalysisEvent, bool) {
1415	return nil, false
1416}
1417
1418// AsServiceCreatedEvent is the BasicFabricEvent implementation for ApplicationDeletedEvent.
1419func (ade ApplicationDeletedEvent) AsServiceCreatedEvent() (*ServiceCreatedEvent, bool) {
1420	return nil, false
1421}
1422
1423// AsServiceDeletedEvent is the BasicFabricEvent implementation for ApplicationDeletedEvent.
1424func (ade ApplicationDeletedEvent) AsServiceDeletedEvent() (*ServiceDeletedEvent, bool) {
1425	return nil, false
1426}
1427
1428// AsServiceNewHealthReportEvent is the BasicFabricEvent implementation for ApplicationDeletedEvent.
1429func (ade ApplicationDeletedEvent) AsServiceNewHealthReportEvent() (*ServiceNewHealthReportEvent, bool) {
1430	return nil, false
1431}
1432
1433// AsServiceHealthReportExpiredEvent is the BasicFabricEvent implementation for ApplicationDeletedEvent.
1434func (ade ApplicationDeletedEvent) AsServiceHealthReportExpiredEvent() (*ServiceHealthReportExpiredEvent, bool) {
1435	return nil, false
1436}
1437
1438// AsDeployedServicePackageNewHealthReportEvent is the BasicFabricEvent implementation for ApplicationDeletedEvent.
1439func (ade ApplicationDeletedEvent) AsDeployedServicePackageNewHealthReportEvent() (*DeployedServicePackageNewHealthReportEvent, bool) {
1440	return nil, false
1441}
1442
1443// AsDeployedServicePackageHealthReportExpiredEvent is the BasicFabricEvent implementation for ApplicationDeletedEvent.
1444func (ade ApplicationDeletedEvent) AsDeployedServicePackageHealthReportExpiredEvent() (*DeployedServicePackageHealthReportExpiredEvent, bool) {
1445	return nil, false
1446}
1447
1448// AsStatefulReplicaNewHealthReportEvent is the BasicFabricEvent implementation for ApplicationDeletedEvent.
1449func (ade ApplicationDeletedEvent) AsStatefulReplicaNewHealthReportEvent() (*StatefulReplicaNewHealthReportEvent, bool) {
1450	return nil, false
1451}
1452
1453// AsStatefulReplicaHealthReportExpiredEvent is the BasicFabricEvent implementation for ApplicationDeletedEvent.
1454func (ade ApplicationDeletedEvent) AsStatefulReplicaHealthReportExpiredEvent() (*StatefulReplicaHealthReportExpiredEvent, bool) {
1455	return nil, false
1456}
1457
1458// AsStatelessReplicaNewHealthReportEvent is the BasicFabricEvent implementation for ApplicationDeletedEvent.
1459func (ade ApplicationDeletedEvent) AsStatelessReplicaNewHealthReportEvent() (*StatelessReplicaNewHealthReportEvent, bool) {
1460	return nil, false
1461}
1462
1463// AsStatelessReplicaHealthReportExpiredEvent is the BasicFabricEvent implementation for ApplicationDeletedEvent.
1464func (ade ApplicationDeletedEvent) AsStatelessReplicaHealthReportExpiredEvent() (*StatelessReplicaHealthReportExpiredEvent, bool) {
1465	return nil, false
1466}
1467
1468// AsClusterNewHealthReportEvent is the BasicFabricEvent implementation for ApplicationDeletedEvent.
1469func (ade ApplicationDeletedEvent) AsClusterNewHealthReportEvent() (*ClusterNewHealthReportEvent, bool) {
1470	return nil, false
1471}
1472
1473// AsClusterHealthReportExpiredEvent is the BasicFabricEvent implementation for ApplicationDeletedEvent.
1474func (ade ApplicationDeletedEvent) AsClusterHealthReportExpiredEvent() (*ClusterHealthReportExpiredEvent, bool) {
1475	return nil, false
1476}
1477
1478// AsClusterUpgradeCompletedEvent is the BasicFabricEvent implementation for ApplicationDeletedEvent.
1479func (ade ApplicationDeletedEvent) AsClusterUpgradeCompletedEvent() (*ClusterUpgradeCompletedEvent, bool) {
1480	return nil, false
1481}
1482
1483// AsClusterUpgradeDomainCompletedEvent is the BasicFabricEvent implementation for ApplicationDeletedEvent.
1484func (ade ApplicationDeletedEvent) AsClusterUpgradeDomainCompletedEvent() (*ClusterUpgradeDomainCompletedEvent, bool) {
1485	return nil, false
1486}
1487
1488// AsClusterUpgradeRollbackCompletedEvent is the BasicFabricEvent implementation for ApplicationDeletedEvent.
1489func (ade ApplicationDeletedEvent) AsClusterUpgradeRollbackCompletedEvent() (*ClusterUpgradeRollbackCompletedEvent, bool) {
1490	return nil, false
1491}
1492
1493// AsClusterUpgradeRollbackStartedEvent is the BasicFabricEvent implementation for ApplicationDeletedEvent.
1494func (ade ApplicationDeletedEvent) AsClusterUpgradeRollbackStartedEvent() (*ClusterUpgradeRollbackStartedEvent, bool) {
1495	return nil, false
1496}
1497
1498// AsClusterUpgradeStartedEvent is the BasicFabricEvent implementation for ApplicationDeletedEvent.
1499func (ade ApplicationDeletedEvent) AsClusterUpgradeStartedEvent() (*ClusterUpgradeStartedEvent, bool) {
1500	return nil, false
1501}
1502
1503// AsChaosStoppedEvent is the BasicFabricEvent implementation for ApplicationDeletedEvent.
1504func (ade ApplicationDeletedEvent) AsChaosStoppedEvent() (*ChaosStoppedEvent, bool) {
1505	return nil, false
1506}
1507
1508// AsChaosStartedEvent is the BasicFabricEvent implementation for ApplicationDeletedEvent.
1509func (ade ApplicationDeletedEvent) AsChaosStartedEvent() (*ChaosStartedEvent, bool) {
1510	return nil, false
1511}
1512
1513// AsChaosCodePackageRestartScheduledEvent is the BasicFabricEvent implementation for ApplicationDeletedEvent.
1514func (ade ApplicationDeletedEvent) AsChaosCodePackageRestartScheduledEvent() (*ChaosCodePackageRestartScheduledEvent, bool) {
1515	return nil, false
1516}
1517
1518// AsChaosReplicaRemovalScheduledEvent is the BasicFabricEvent implementation for ApplicationDeletedEvent.
1519func (ade ApplicationDeletedEvent) AsChaosReplicaRemovalScheduledEvent() (*ChaosReplicaRemovalScheduledEvent, bool) {
1520	return nil, false
1521}
1522
1523// AsChaosPartitionSecondaryMoveScheduledEvent is the BasicFabricEvent implementation for ApplicationDeletedEvent.
1524func (ade ApplicationDeletedEvent) AsChaosPartitionSecondaryMoveScheduledEvent() (*ChaosPartitionSecondaryMoveScheduledEvent, bool) {
1525	return nil, false
1526}
1527
1528// AsChaosPartitionPrimaryMoveScheduledEvent is the BasicFabricEvent implementation for ApplicationDeletedEvent.
1529func (ade ApplicationDeletedEvent) AsChaosPartitionPrimaryMoveScheduledEvent() (*ChaosPartitionPrimaryMoveScheduledEvent, bool) {
1530	return nil, false
1531}
1532
1533// AsChaosReplicaRestartScheduledEvent is the BasicFabricEvent implementation for ApplicationDeletedEvent.
1534func (ade ApplicationDeletedEvent) AsChaosReplicaRestartScheduledEvent() (*ChaosReplicaRestartScheduledEvent, bool) {
1535	return nil, false
1536}
1537
1538// AsChaosNodeRestartScheduledEvent is the BasicFabricEvent implementation for ApplicationDeletedEvent.
1539func (ade ApplicationDeletedEvent) AsChaosNodeRestartScheduledEvent() (*ChaosNodeRestartScheduledEvent, bool) {
1540	return nil, false
1541}
1542
1543// AsFabricEvent is the BasicFabricEvent implementation for ApplicationDeletedEvent.
1544func (ade ApplicationDeletedEvent) AsFabricEvent() (*FabricEvent, bool) {
1545	return nil, false
1546}
1547
1548// AsBasicFabricEvent is the BasicFabricEvent implementation for ApplicationDeletedEvent.
1549func (ade ApplicationDeletedEvent) AsBasicFabricEvent() (BasicFabricEvent, bool) {
1550	return &ade, true
1551}
1552
1553// ApplicationDescription describes a Service Fabric application.
1554type ApplicationDescription struct {
1555	// Name - The name of the application, including the 'fabric:' URI scheme.
1556	Name *string `json:"Name,omitempty"`
1557	// TypeName - The application type name as defined in the application manifest.
1558	TypeName *string `json:"TypeName,omitempty"`
1559	// TypeVersion - The version of the application type as defined in the application manifest.
1560	TypeVersion *string `json:"TypeVersion,omitempty"`
1561	// ParameterList - List of application parameters with overridden values from their default values specified in the application manifest.
1562	ParameterList *[]ApplicationParameter `json:"ParameterList,omitempty"`
1563	// ApplicationCapacity - Describes capacity information for services of this application. This description can be used for describing the following.
1564	// - Reserving the capacity for the services on the nodes
1565	// - Limiting the total number of nodes that services of this application can run on
1566	// - Limiting the custom capacity metrics to limit the total consumption of this metric by the services of this application
1567	ApplicationCapacity *ApplicationCapacityDescription `json:"ApplicationCapacity,omitempty"`
1568	// ManagedApplicationIdentity - Managed application identity description.
1569	ManagedApplicationIdentity *ManagedApplicationIdentityDescription `json:"ManagedApplicationIdentity,omitempty"`
1570}
1571
1572// BasicApplicationEvent represents the base for all Application Events.
1573type BasicApplicationEvent interface {
1574	AsApplicationCreatedEvent() (*ApplicationCreatedEvent, bool)
1575	AsApplicationDeletedEvent() (*ApplicationDeletedEvent, bool)
1576	AsApplicationNewHealthReportEvent() (*ApplicationNewHealthReportEvent, bool)
1577	AsApplicationHealthReportExpiredEvent() (*ApplicationHealthReportExpiredEvent, bool)
1578	AsApplicationUpgradeCompletedEvent() (*ApplicationUpgradeCompletedEvent, bool)
1579	AsApplicationUpgradeDomainCompletedEvent() (*ApplicationUpgradeDomainCompletedEvent, bool)
1580	AsApplicationUpgradeRollbackCompletedEvent() (*ApplicationUpgradeRollbackCompletedEvent, bool)
1581	AsApplicationUpgradeRollbackStartedEvent() (*ApplicationUpgradeRollbackStartedEvent, bool)
1582	AsApplicationUpgradeStartedEvent() (*ApplicationUpgradeStartedEvent, bool)
1583	AsDeployedApplicationNewHealthReportEvent() (*DeployedApplicationNewHealthReportEvent, bool)
1584	AsDeployedApplicationHealthReportExpiredEvent() (*DeployedApplicationHealthReportExpiredEvent, bool)
1585	AsApplicationProcessExitedEvent() (*ApplicationProcessExitedEvent, bool)
1586	AsApplicationContainerInstanceExitedEvent() (*ApplicationContainerInstanceExitedEvent, bool)
1587	AsDeployedServicePackageNewHealthReportEvent() (*DeployedServicePackageNewHealthReportEvent, bool)
1588	AsDeployedServicePackageHealthReportExpiredEvent() (*DeployedServicePackageHealthReportExpiredEvent, bool)
1589	AsChaosCodePackageRestartScheduledEvent() (*ChaosCodePackageRestartScheduledEvent, bool)
1590	AsApplicationEvent() (*ApplicationEvent, bool)
1591}
1592
1593// ApplicationEvent represents the base for all Application Events.
1594type ApplicationEvent struct {
1595	// 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.
1596	// Starting in version 6.0, hierarchical names are delimited with the "\~" character. For example, if the application name is "fabric:/myapp/app1",
1597	// the application identity would be "myapp\~app1" in 6.0+ and "myapp/app1" in previous versions.
1598	ApplicationID *string `json:"ApplicationId,omitempty"`
1599	// EventInstanceID - The identifier for the FabricEvent instance.
1600	EventInstanceID *uuid.UUID `json:"EventInstanceId,omitempty"`
1601	// Category - The category of event.
1602	Category *string `json:"Category,omitempty"`
1603	// TimeStamp - The time event was logged.
1604	TimeStamp *date.Time `json:"TimeStamp,omitempty"`
1605	// HasCorrelatedEvents - Shows there is existing related events available.
1606	HasCorrelatedEvents *bool `json:"HasCorrelatedEvents,omitempty"`
1607	// 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'
1608	Kind KindBasicFabricEvent `json:"Kind,omitempty"`
1609}
1610
1611func unmarshalBasicApplicationEvent(body []byte) (BasicApplicationEvent, error) {
1612	var m map[string]interface{}
1613	err := json.Unmarshal(body, &m)
1614	if err != nil {
1615		return nil, err
1616	}
1617
1618	switch m["Kind"] {
1619	case string(KindApplicationCreated):
1620		var ace ApplicationCreatedEvent
1621		err := json.Unmarshal(body, &ace)
1622		return ace, err
1623	case string(KindApplicationDeleted):
1624		var ade ApplicationDeletedEvent
1625		err := json.Unmarshal(body, &ade)
1626		return ade, err
1627	case string(KindApplicationNewHealthReport):
1628		var anhre ApplicationNewHealthReportEvent
1629		err := json.Unmarshal(body, &anhre)
1630		return anhre, err
1631	case string(KindApplicationHealthReportExpired):
1632		var ahree ApplicationHealthReportExpiredEvent
1633		err := json.Unmarshal(body, &ahree)
1634		return ahree, err
1635	case string(KindApplicationUpgradeCompleted):
1636		var auce ApplicationUpgradeCompletedEvent
1637		err := json.Unmarshal(body, &auce)
1638		return auce, err
1639	case string(KindApplicationUpgradeDomainCompleted):
1640		var audce ApplicationUpgradeDomainCompletedEvent
1641		err := json.Unmarshal(body, &audce)
1642		return audce, err
1643	case string(KindApplicationUpgradeRollbackCompleted):
1644		var aurce ApplicationUpgradeRollbackCompletedEvent
1645		err := json.Unmarshal(body, &aurce)
1646		return aurce, err
1647	case string(KindApplicationUpgradeRollbackStarted):
1648		var aurse ApplicationUpgradeRollbackStartedEvent
1649		err := json.Unmarshal(body, &aurse)
1650		return aurse, err
1651	case string(KindApplicationUpgradeStarted):
1652		var ause ApplicationUpgradeStartedEvent
1653		err := json.Unmarshal(body, &ause)
1654		return ause, err
1655	case string(KindDeployedApplicationNewHealthReport):
1656		var danhre DeployedApplicationNewHealthReportEvent
1657		err := json.Unmarshal(body, &danhre)
1658		return danhre, err
1659	case string(KindDeployedApplicationHealthReportExpired):
1660		var dahree DeployedApplicationHealthReportExpiredEvent
1661		err := json.Unmarshal(body, &dahree)
1662		return dahree, err
1663	case string(KindApplicationProcessExited):
1664		var apee ApplicationProcessExitedEvent
1665		err := json.Unmarshal(body, &apee)
1666		return apee, err
1667	case string(KindApplicationContainerInstanceExited):
1668		var aciee ApplicationContainerInstanceExitedEvent
1669		err := json.Unmarshal(body, &aciee)
1670		return aciee, err
1671	case string(KindDeployedServicePackageNewHealthReport):
1672		var dspnhre DeployedServicePackageNewHealthReportEvent
1673		err := json.Unmarshal(body, &dspnhre)
1674		return dspnhre, err
1675	case string(KindDeployedServicePackageHealthReportExpired):
1676		var dsphree DeployedServicePackageHealthReportExpiredEvent
1677		err := json.Unmarshal(body, &dsphree)
1678		return dsphree, err
1679	case string(KindChaosCodePackageRestartScheduled):
1680		var ccprse ChaosCodePackageRestartScheduledEvent
1681		err := json.Unmarshal(body, &ccprse)
1682		return ccprse, err
1683	default:
1684		var ae ApplicationEvent
1685		err := json.Unmarshal(body, &ae)
1686		return ae, err
1687	}
1688}
1689func unmarshalBasicApplicationEventArray(body []byte) ([]BasicApplicationEvent, error) {
1690	var rawMessages []*json.RawMessage
1691	err := json.Unmarshal(body, &rawMessages)
1692	if err != nil {
1693		return nil, err
1694	}
1695
1696	aeArray := make([]BasicApplicationEvent, len(rawMessages))
1697
1698	for index, rawMessage := range rawMessages {
1699		ae, err := unmarshalBasicApplicationEvent(*rawMessage)
1700		if err != nil {
1701			return nil, err
1702		}
1703		aeArray[index] = ae
1704	}
1705	return aeArray, nil
1706}
1707
1708// MarshalJSON is the custom marshaler for ApplicationEvent.
1709func (ae ApplicationEvent) MarshalJSON() ([]byte, error) {
1710	ae.Kind = KindApplicationEvent
1711	objectMap := make(map[string]interface{})
1712	if ae.ApplicationID != nil {
1713		objectMap["ApplicationId"] = ae.ApplicationID
1714	}
1715	if ae.EventInstanceID != nil {
1716		objectMap["EventInstanceId"] = ae.EventInstanceID
1717	}
1718	if ae.Category != nil {
1719		objectMap["Category"] = ae.Category
1720	}
1721	if ae.TimeStamp != nil {
1722		objectMap["TimeStamp"] = ae.TimeStamp
1723	}
1724	if ae.HasCorrelatedEvents != nil {
1725		objectMap["HasCorrelatedEvents"] = ae.HasCorrelatedEvents
1726	}
1727	if ae.Kind != "" {
1728		objectMap["Kind"] = ae.Kind
1729	}
1730	return json.Marshal(objectMap)
1731}
1732
1733// AsApplicationEvent is the BasicFabricEvent implementation for ApplicationEvent.
1734func (ae ApplicationEvent) AsApplicationEvent() (*ApplicationEvent, bool) {
1735	return &ae, true
1736}
1737
1738// AsBasicApplicationEvent is the BasicFabricEvent implementation for ApplicationEvent.
1739func (ae ApplicationEvent) AsBasicApplicationEvent() (BasicApplicationEvent, bool) {
1740	return &ae, true
1741}
1742
1743// AsClusterEvent is the BasicFabricEvent implementation for ApplicationEvent.
1744func (ae ApplicationEvent) AsClusterEvent() (*ClusterEvent, bool) {
1745	return nil, false
1746}
1747
1748// AsBasicClusterEvent is the BasicFabricEvent implementation for ApplicationEvent.
1749func (ae ApplicationEvent) AsBasicClusterEvent() (BasicClusterEvent, bool) {
1750	return nil, false
1751}
1752
1753// AsContainerInstanceEvent is the BasicFabricEvent implementation for ApplicationEvent.
1754func (ae ApplicationEvent) AsContainerInstanceEvent() (*ContainerInstanceEvent, bool) {
1755	return nil, false
1756}
1757
1758// AsNodeEvent is the BasicFabricEvent implementation for ApplicationEvent.
1759func (ae ApplicationEvent) AsNodeEvent() (*NodeEvent, bool) {
1760	return nil, false
1761}
1762
1763// AsBasicNodeEvent is the BasicFabricEvent implementation for ApplicationEvent.
1764func (ae ApplicationEvent) AsBasicNodeEvent() (BasicNodeEvent, bool) {
1765	return nil, false
1766}
1767
1768// AsPartitionAnalysisEvent is the BasicFabricEvent implementation for ApplicationEvent.
1769func (ae ApplicationEvent) AsPartitionAnalysisEvent() (*PartitionAnalysisEvent, bool) {
1770	return nil, false
1771}
1772
1773// AsBasicPartitionAnalysisEvent is the BasicFabricEvent implementation for ApplicationEvent.
1774func (ae ApplicationEvent) AsBasicPartitionAnalysisEvent() (BasicPartitionAnalysisEvent, bool) {
1775	return nil, false
1776}
1777
1778// AsPartitionEvent is the BasicFabricEvent implementation for ApplicationEvent.
1779func (ae ApplicationEvent) AsPartitionEvent() (*PartitionEvent, bool) {
1780	return nil, false
1781}
1782
1783// AsBasicPartitionEvent is the BasicFabricEvent implementation for ApplicationEvent.
1784func (ae ApplicationEvent) AsBasicPartitionEvent() (BasicPartitionEvent, bool) {
1785	return nil, false
1786}
1787
1788// AsReplicaEvent is the BasicFabricEvent implementation for ApplicationEvent.
1789func (ae ApplicationEvent) AsReplicaEvent() (*ReplicaEvent, bool) {
1790	return nil, false
1791}
1792
1793// AsBasicReplicaEvent is the BasicFabricEvent implementation for ApplicationEvent.
1794func (ae ApplicationEvent) AsBasicReplicaEvent() (BasicReplicaEvent, bool) {
1795	return nil, false
1796}
1797
1798// AsServiceEvent is the BasicFabricEvent implementation for ApplicationEvent.
1799func (ae ApplicationEvent) AsServiceEvent() (*ServiceEvent, bool) {
1800	return nil, false
1801}
1802
1803// AsBasicServiceEvent is the BasicFabricEvent implementation for ApplicationEvent.
1804func (ae ApplicationEvent) AsBasicServiceEvent() (BasicServiceEvent, bool) {
1805	return nil, false
1806}
1807
1808// AsApplicationCreatedEvent is the BasicFabricEvent implementation for ApplicationEvent.
1809func (ae ApplicationEvent) AsApplicationCreatedEvent() (*ApplicationCreatedEvent, bool) {
1810	return nil, false
1811}
1812
1813// AsApplicationDeletedEvent is the BasicFabricEvent implementation for ApplicationEvent.
1814func (ae ApplicationEvent) AsApplicationDeletedEvent() (*ApplicationDeletedEvent, bool) {
1815	return nil, false
1816}
1817
1818// AsApplicationNewHealthReportEvent is the BasicFabricEvent implementation for ApplicationEvent.
1819func (ae ApplicationEvent) AsApplicationNewHealthReportEvent() (*ApplicationNewHealthReportEvent, bool) {
1820	return nil, false
1821}
1822
1823// AsApplicationHealthReportExpiredEvent is the BasicFabricEvent implementation for ApplicationEvent.
1824func (ae ApplicationEvent) AsApplicationHealthReportExpiredEvent() (*ApplicationHealthReportExpiredEvent, bool) {
1825	return nil, false
1826}
1827
1828// AsApplicationUpgradeCompletedEvent is the BasicFabricEvent implementation for ApplicationEvent.
1829func (ae ApplicationEvent) AsApplicationUpgradeCompletedEvent() (*ApplicationUpgradeCompletedEvent, bool) {
1830	return nil, false
1831}
1832
1833// AsApplicationUpgradeDomainCompletedEvent is the BasicFabricEvent implementation for ApplicationEvent.
1834func (ae ApplicationEvent) AsApplicationUpgradeDomainCompletedEvent() (*ApplicationUpgradeDomainCompletedEvent, bool) {
1835	return nil, false
1836}
1837
1838// AsApplicationUpgradeRollbackCompletedEvent is the BasicFabricEvent implementation for ApplicationEvent.
1839func (ae ApplicationEvent) AsApplicationUpgradeRollbackCompletedEvent() (*ApplicationUpgradeRollbackCompletedEvent, bool) {
1840	return nil, false
1841}
1842
1843// AsApplicationUpgradeRollbackStartedEvent is the BasicFabricEvent implementation for ApplicationEvent.
1844func (ae ApplicationEvent) AsApplicationUpgradeRollbackStartedEvent() (*ApplicationUpgradeRollbackStartedEvent, bool) {
1845	return nil, false
1846}
1847
1848// AsApplicationUpgradeStartedEvent is the BasicFabricEvent implementation for ApplicationEvent.
1849func (ae ApplicationEvent) AsApplicationUpgradeStartedEvent() (*ApplicationUpgradeStartedEvent, bool) {
1850	return nil, false
1851}
1852
1853// AsDeployedApplicationNewHealthReportEvent is the BasicFabricEvent implementation for ApplicationEvent.
1854func (ae ApplicationEvent) AsDeployedApplicationNewHealthReportEvent() (*DeployedApplicationNewHealthReportEvent, bool) {
1855	return nil, false
1856}
1857
1858// AsDeployedApplicationHealthReportExpiredEvent is the BasicFabricEvent implementation for ApplicationEvent.
1859func (ae ApplicationEvent) AsDeployedApplicationHealthReportExpiredEvent() (*DeployedApplicationHealthReportExpiredEvent, bool) {
1860	return nil, false
1861}
1862
1863// AsApplicationProcessExitedEvent is the BasicFabricEvent implementation for ApplicationEvent.
1864func (ae ApplicationEvent) AsApplicationProcessExitedEvent() (*ApplicationProcessExitedEvent, bool) {
1865	return nil, false
1866}
1867
1868// AsApplicationContainerInstanceExitedEvent is the BasicFabricEvent implementation for ApplicationEvent.
1869func (ae ApplicationEvent) AsApplicationContainerInstanceExitedEvent() (*ApplicationContainerInstanceExitedEvent, bool) {
1870	return nil, false
1871}
1872
1873// AsNodeAbortedEvent is the BasicFabricEvent implementation for ApplicationEvent.
1874func (ae ApplicationEvent) AsNodeAbortedEvent() (*NodeAbortedEvent, bool) {
1875	return nil, false
1876}
1877
1878// AsNodeAddedToClusterEvent is the BasicFabricEvent implementation for ApplicationEvent.
1879func (ae ApplicationEvent) AsNodeAddedToClusterEvent() (*NodeAddedToClusterEvent, bool) {
1880	return nil, false
1881}
1882
1883// AsNodeClosedEvent is the BasicFabricEvent implementation for ApplicationEvent.
1884func (ae ApplicationEvent) AsNodeClosedEvent() (*NodeClosedEvent, bool) {
1885	return nil, false
1886}
1887
1888// AsNodeDeactivateCompletedEvent is the BasicFabricEvent implementation for ApplicationEvent.
1889func (ae ApplicationEvent) AsNodeDeactivateCompletedEvent() (*NodeDeactivateCompletedEvent, bool) {
1890	return nil, false
1891}
1892
1893// AsNodeDeactivateStartedEvent is the BasicFabricEvent implementation for ApplicationEvent.
1894func (ae ApplicationEvent) AsNodeDeactivateStartedEvent() (*NodeDeactivateStartedEvent, bool) {
1895	return nil, false
1896}
1897
1898// AsNodeDownEvent is the BasicFabricEvent implementation for ApplicationEvent.
1899func (ae ApplicationEvent) AsNodeDownEvent() (*NodeDownEvent, bool) {
1900	return nil, false
1901}
1902
1903// AsNodeNewHealthReportEvent is the BasicFabricEvent implementation for ApplicationEvent.
1904func (ae ApplicationEvent) AsNodeNewHealthReportEvent() (*NodeNewHealthReportEvent, bool) {
1905	return nil, false
1906}
1907
1908// AsNodeHealthReportExpiredEvent is the BasicFabricEvent implementation for ApplicationEvent.
1909func (ae ApplicationEvent) AsNodeHealthReportExpiredEvent() (*NodeHealthReportExpiredEvent, bool) {
1910	return nil, false
1911}
1912
1913// AsNodeOpenSucceededEvent is the BasicFabricEvent implementation for ApplicationEvent.
1914func (ae ApplicationEvent) AsNodeOpenSucceededEvent() (*NodeOpenSucceededEvent, bool) {
1915	return nil, false
1916}
1917
1918// AsNodeOpenFailedEvent is the BasicFabricEvent implementation for ApplicationEvent.
1919func (ae ApplicationEvent) AsNodeOpenFailedEvent() (*NodeOpenFailedEvent, bool) {
1920	return nil, false
1921}
1922
1923// AsNodeRemovedFromClusterEvent is the BasicFabricEvent implementation for ApplicationEvent.
1924func (ae ApplicationEvent) AsNodeRemovedFromClusterEvent() (*NodeRemovedFromClusterEvent, bool) {
1925	return nil, false
1926}
1927
1928// AsNodeUpEvent is the BasicFabricEvent implementation for ApplicationEvent.
1929func (ae ApplicationEvent) AsNodeUpEvent() (*NodeUpEvent, bool) {
1930	return nil, false
1931}
1932
1933// AsPartitionNewHealthReportEvent is the BasicFabricEvent implementation for ApplicationEvent.
1934func (ae ApplicationEvent) AsPartitionNewHealthReportEvent() (*PartitionNewHealthReportEvent, bool) {
1935	return nil, false
1936}
1937
1938// AsPartitionHealthReportExpiredEvent is the BasicFabricEvent implementation for ApplicationEvent.
1939func (ae ApplicationEvent) AsPartitionHealthReportExpiredEvent() (*PartitionHealthReportExpiredEvent, bool) {
1940	return nil, false
1941}
1942
1943// AsPartitionReconfiguredEvent is the BasicFabricEvent implementation for ApplicationEvent.
1944func (ae ApplicationEvent) AsPartitionReconfiguredEvent() (*PartitionReconfiguredEvent, bool) {
1945	return nil, false
1946}
1947
1948// AsPartitionPrimaryMoveAnalysisEvent is the BasicFabricEvent implementation for ApplicationEvent.
1949func (ae ApplicationEvent) AsPartitionPrimaryMoveAnalysisEvent() (*PartitionPrimaryMoveAnalysisEvent, bool) {
1950	return nil, false
1951}
1952
1953// AsServiceCreatedEvent is the BasicFabricEvent implementation for ApplicationEvent.
1954func (ae ApplicationEvent) AsServiceCreatedEvent() (*ServiceCreatedEvent, bool) {
1955	return nil, false
1956}
1957
1958// AsServiceDeletedEvent is the BasicFabricEvent implementation for ApplicationEvent.
1959func (ae ApplicationEvent) AsServiceDeletedEvent() (*ServiceDeletedEvent, bool) {
1960	return nil, false
1961}
1962
1963// AsServiceNewHealthReportEvent is the BasicFabricEvent implementation for ApplicationEvent.
1964func (ae ApplicationEvent) AsServiceNewHealthReportEvent() (*ServiceNewHealthReportEvent, bool) {
1965	return nil, false
1966}
1967
1968// AsServiceHealthReportExpiredEvent is the BasicFabricEvent implementation for ApplicationEvent.
1969func (ae ApplicationEvent) AsServiceHealthReportExpiredEvent() (*ServiceHealthReportExpiredEvent, bool) {
1970	return nil, false
1971}
1972
1973// AsDeployedServicePackageNewHealthReportEvent is the BasicFabricEvent implementation for ApplicationEvent.
1974func (ae ApplicationEvent) AsDeployedServicePackageNewHealthReportEvent() (*DeployedServicePackageNewHealthReportEvent, bool) {
1975	return nil, false
1976}
1977
1978// AsDeployedServicePackageHealthReportExpiredEvent is the BasicFabricEvent implementation for ApplicationEvent.
1979func (ae ApplicationEvent) AsDeployedServicePackageHealthReportExpiredEvent() (*DeployedServicePackageHealthReportExpiredEvent, bool) {
1980	return nil, false
1981}
1982
1983// AsStatefulReplicaNewHealthReportEvent is the BasicFabricEvent implementation for ApplicationEvent.
1984func (ae ApplicationEvent) AsStatefulReplicaNewHealthReportEvent() (*StatefulReplicaNewHealthReportEvent, bool) {
1985	return nil, false
1986}
1987
1988// AsStatefulReplicaHealthReportExpiredEvent is the BasicFabricEvent implementation for ApplicationEvent.
1989func (ae ApplicationEvent) AsStatefulReplicaHealthReportExpiredEvent() (*StatefulReplicaHealthReportExpiredEvent, bool) {
1990	return nil, false
1991}
1992
1993// AsStatelessReplicaNewHealthReportEvent is the BasicFabricEvent implementation for ApplicationEvent.
1994func (ae ApplicationEvent) AsStatelessReplicaNewHealthReportEvent() (*StatelessReplicaNewHealthReportEvent, bool) {
1995	return nil, false
1996}
1997
1998// AsStatelessReplicaHealthReportExpiredEvent is the BasicFabricEvent implementation for ApplicationEvent.
1999func (ae ApplicationEvent) AsStatelessReplicaHealthReportExpiredEvent() (*StatelessReplicaHealthReportExpiredEvent, bool) {
2000	return nil, false
2001}
2002
2003// AsClusterNewHealthReportEvent is the BasicFabricEvent implementation for ApplicationEvent.
2004func (ae ApplicationEvent) AsClusterNewHealthReportEvent() (*ClusterNewHealthReportEvent, bool) {
2005	return nil, false
2006}
2007
2008// AsClusterHealthReportExpiredEvent is the BasicFabricEvent implementation for ApplicationEvent.
2009func (ae ApplicationEvent) AsClusterHealthReportExpiredEvent() (*ClusterHealthReportExpiredEvent, bool) {
2010	return nil, false
2011}
2012
2013// AsClusterUpgradeCompletedEvent is the BasicFabricEvent implementation for ApplicationEvent.
2014func (ae ApplicationEvent) AsClusterUpgradeCompletedEvent() (*ClusterUpgradeCompletedEvent, bool) {
2015	return nil, false
2016}
2017
2018// AsClusterUpgradeDomainCompletedEvent is the BasicFabricEvent implementation for ApplicationEvent.
2019func (ae ApplicationEvent) AsClusterUpgradeDomainCompletedEvent() (*ClusterUpgradeDomainCompletedEvent, bool) {
2020	return nil, false
2021}
2022
2023// AsClusterUpgradeRollbackCompletedEvent is the BasicFabricEvent implementation for ApplicationEvent.
2024func (ae ApplicationEvent) AsClusterUpgradeRollbackCompletedEvent() (*ClusterUpgradeRollbackCompletedEvent, bool) {
2025	return nil, false
2026}
2027
2028// AsClusterUpgradeRollbackStartedEvent is the BasicFabricEvent implementation for ApplicationEvent.
2029func (ae ApplicationEvent) AsClusterUpgradeRollbackStartedEvent() (*ClusterUpgradeRollbackStartedEvent, bool) {
2030	return nil, false
2031}
2032
2033// AsClusterUpgradeStartedEvent is the BasicFabricEvent implementation for ApplicationEvent.
2034func (ae ApplicationEvent) AsClusterUpgradeStartedEvent() (*ClusterUpgradeStartedEvent, bool) {
2035	return nil, false
2036}
2037
2038// AsChaosStoppedEvent is the BasicFabricEvent implementation for ApplicationEvent.
2039func (ae ApplicationEvent) AsChaosStoppedEvent() (*ChaosStoppedEvent, bool) {
2040	return nil, false
2041}
2042
2043// AsChaosStartedEvent is the BasicFabricEvent implementation for ApplicationEvent.
2044func (ae ApplicationEvent) AsChaosStartedEvent() (*ChaosStartedEvent, bool) {
2045	return nil, false
2046}
2047
2048// AsChaosCodePackageRestartScheduledEvent is the BasicFabricEvent implementation for ApplicationEvent.
2049func (ae ApplicationEvent) AsChaosCodePackageRestartScheduledEvent() (*ChaosCodePackageRestartScheduledEvent, bool) {
2050	return nil, false
2051}
2052
2053// AsChaosReplicaRemovalScheduledEvent is the BasicFabricEvent implementation for ApplicationEvent.
2054func (ae ApplicationEvent) AsChaosReplicaRemovalScheduledEvent() (*ChaosReplicaRemovalScheduledEvent, bool) {
2055	return nil, false
2056}
2057
2058// AsChaosPartitionSecondaryMoveScheduledEvent is the BasicFabricEvent implementation for ApplicationEvent.
2059func (ae ApplicationEvent) AsChaosPartitionSecondaryMoveScheduledEvent() (*ChaosPartitionSecondaryMoveScheduledEvent, bool) {
2060	return nil, false
2061}
2062
2063// AsChaosPartitionPrimaryMoveScheduledEvent is the BasicFabricEvent implementation for ApplicationEvent.
2064func (ae ApplicationEvent) AsChaosPartitionPrimaryMoveScheduledEvent() (*ChaosPartitionPrimaryMoveScheduledEvent, bool) {
2065	return nil, false
2066}
2067
2068// AsChaosReplicaRestartScheduledEvent is the BasicFabricEvent implementation for ApplicationEvent.
2069func (ae ApplicationEvent) AsChaosReplicaRestartScheduledEvent() (*ChaosReplicaRestartScheduledEvent, bool) {
2070	return nil, false
2071}
2072
2073// AsChaosNodeRestartScheduledEvent is the BasicFabricEvent implementation for ApplicationEvent.
2074func (ae ApplicationEvent) AsChaosNodeRestartScheduledEvent() (*ChaosNodeRestartScheduledEvent, bool) {
2075	return nil, false
2076}
2077
2078// AsFabricEvent is the BasicFabricEvent implementation for ApplicationEvent.
2079func (ae ApplicationEvent) AsFabricEvent() (*FabricEvent, bool) {
2080	return nil, false
2081}
2082
2083// AsBasicFabricEvent is the BasicFabricEvent implementation for ApplicationEvent.
2084func (ae ApplicationEvent) AsBasicFabricEvent() (BasicFabricEvent, bool) {
2085	return &ae, true
2086}
2087
2088// ApplicationHealth represents the health of the application. Contains the application aggregated health
2089// state and the service and deployed application health states.
2090type ApplicationHealth struct {
2091	autorest.Response `json:"-"`
2092	// Name - The name of the application, including the 'fabric:' URI scheme.
2093	Name *string `json:"Name,omitempty"`
2094	// ServiceHealthStates - Service health states as found in the health store.
2095	ServiceHealthStates *[]ServiceHealthState `json:"ServiceHealthStates,omitempty"`
2096	// DeployedApplicationHealthStates - Deployed application health states as found in the health store.
2097	DeployedApplicationHealthStates *[]DeployedApplicationHealthState `json:"DeployedApplicationHealthStates,omitempty"`
2098	// AggregatedHealthState - The HealthState representing the aggregated health state of the entity computed by Health Manager.
2099	// The health evaluation of the entity reflects all events reported on the entity and its children (if any).
2100	// The aggregation is done by applying the desired health policy. Possible values include: 'HealthStateInvalid', 'HealthStateOk', 'HealthStateWarning', 'HealthStateError', 'HealthStateUnknown'
2101	AggregatedHealthState HealthState `json:"AggregatedHealthState,omitempty"`
2102	// HealthEvents - The list of health events reported on the entity.
2103	HealthEvents *[]HealthEvent `json:"HealthEvents,omitempty"`
2104	// UnhealthyEvaluations - The unhealthy evaluations that show why the current aggregated health state was returned by Health Manager.
2105	UnhealthyEvaluations *[]HealthEvaluationWrapper `json:"UnhealthyEvaluations,omitempty"`
2106	// HealthStatistics - Shows the health statistics for all children types of the queried entity.
2107	HealthStatistics *HealthStatistics `json:"HealthStatistics,omitempty"`
2108}
2109
2110// ApplicationHealthEvaluation represents health evaluation for an application, containing information
2111// about the data and the algorithm used by the health store to evaluate health.
2112type ApplicationHealthEvaluation struct {
2113	// ApplicationName - The name of the application, including the 'fabric:' URI scheme.
2114	ApplicationName *string `json:"ApplicationName,omitempty"`
2115	// 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.
2116	UnhealthyEvaluations *[]HealthEvaluationWrapper `json:"UnhealthyEvaluations,omitempty"`
2117	// 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'
2118	AggregatedHealthState HealthState `json:"AggregatedHealthState,omitempty"`
2119	// Description - Description of the health evaluation, which represents a summary of the evaluation process.
2120	Description *string `json:"Description,omitempty"`
2121	// 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'
2122	Kind Kind `json:"Kind,omitempty"`
2123}
2124
2125// MarshalJSON is the custom marshaler for ApplicationHealthEvaluation.
2126func (ahe ApplicationHealthEvaluation) MarshalJSON() ([]byte, error) {
2127	ahe.Kind = KindApplication
2128	objectMap := make(map[string]interface{})
2129	if ahe.ApplicationName != nil {
2130		objectMap["ApplicationName"] = ahe.ApplicationName
2131	}
2132	if ahe.UnhealthyEvaluations != nil {
2133		objectMap["UnhealthyEvaluations"] = ahe.UnhealthyEvaluations
2134	}
2135	if ahe.AggregatedHealthState != "" {
2136		objectMap["AggregatedHealthState"] = ahe.AggregatedHealthState
2137	}
2138	if ahe.Description != nil {
2139		objectMap["Description"] = ahe.Description
2140	}
2141	if ahe.Kind != "" {
2142		objectMap["Kind"] = ahe.Kind
2143	}
2144	return json.Marshal(objectMap)
2145}
2146
2147// AsApplicationHealthEvaluation is the BasicHealthEvaluation implementation for ApplicationHealthEvaluation.
2148func (ahe ApplicationHealthEvaluation) AsApplicationHealthEvaluation() (*ApplicationHealthEvaluation, bool) {
2149	return &ahe, true
2150}
2151
2152// AsApplicationsHealthEvaluation is the BasicHealthEvaluation implementation for ApplicationHealthEvaluation.
2153func (ahe ApplicationHealthEvaluation) AsApplicationsHealthEvaluation() (*ApplicationsHealthEvaluation, bool) {
2154	return nil, false
2155}
2156
2157// AsApplicationTypeApplicationsHealthEvaluation is the BasicHealthEvaluation implementation for ApplicationHealthEvaluation.
2158func (ahe ApplicationHealthEvaluation) AsApplicationTypeApplicationsHealthEvaluation() (*ApplicationTypeApplicationsHealthEvaluation, bool) {
2159	return nil, false
2160}
2161
2162// AsDeltaNodesCheckHealthEvaluation is the BasicHealthEvaluation implementation for ApplicationHealthEvaluation.
2163func (ahe ApplicationHealthEvaluation) AsDeltaNodesCheckHealthEvaluation() (*DeltaNodesCheckHealthEvaluation, bool) {
2164	return nil, false
2165}
2166
2167// AsDeployedApplicationHealthEvaluation is the BasicHealthEvaluation implementation for ApplicationHealthEvaluation.
2168func (ahe ApplicationHealthEvaluation) AsDeployedApplicationHealthEvaluation() (*DeployedApplicationHealthEvaluation, bool) {
2169	return nil, false
2170}
2171
2172// AsDeployedApplicationsHealthEvaluation is the BasicHealthEvaluation implementation for ApplicationHealthEvaluation.
2173func (ahe ApplicationHealthEvaluation) AsDeployedApplicationsHealthEvaluation() (*DeployedApplicationsHealthEvaluation, bool) {
2174	return nil, false
2175}
2176
2177// AsDeployedServicePackageHealthEvaluation is the BasicHealthEvaluation implementation for ApplicationHealthEvaluation.
2178func (ahe ApplicationHealthEvaluation) AsDeployedServicePackageHealthEvaluation() (*DeployedServicePackageHealthEvaluation, bool) {
2179	return nil, false
2180}
2181
2182// AsDeployedServicePackagesHealthEvaluation is the BasicHealthEvaluation implementation for ApplicationHealthEvaluation.
2183func (ahe ApplicationHealthEvaluation) AsDeployedServicePackagesHealthEvaluation() (*DeployedServicePackagesHealthEvaluation, bool) {
2184	return nil, false
2185}
2186
2187// AsEventHealthEvaluation is the BasicHealthEvaluation implementation for ApplicationHealthEvaluation.
2188func (ahe ApplicationHealthEvaluation) AsEventHealthEvaluation() (*EventHealthEvaluation, bool) {
2189	return nil, false
2190}
2191
2192// AsNodeHealthEvaluation is the BasicHealthEvaluation implementation for ApplicationHealthEvaluation.
2193func (ahe ApplicationHealthEvaluation) AsNodeHealthEvaluation() (*NodeHealthEvaluation, bool) {
2194	return nil, false
2195}
2196
2197// AsNodesHealthEvaluation is the BasicHealthEvaluation implementation for ApplicationHealthEvaluation.
2198func (ahe ApplicationHealthEvaluation) AsNodesHealthEvaluation() (*NodesHealthEvaluation, bool) {
2199	return nil, false
2200}
2201
2202// AsPartitionHealthEvaluation is the BasicHealthEvaluation implementation for ApplicationHealthEvaluation.
2203func (ahe ApplicationHealthEvaluation) AsPartitionHealthEvaluation() (*PartitionHealthEvaluation, bool) {
2204	return nil, false
2205}
2206
2207// AsPartitionsHealthEvaluation is the BasicHealthEvaluation implementation for ApplicationHealthEvaluation.
2208func (ahe ApplicationHealthEvaluation) AsPartitionsHealthEvaluation() (*PartitionsHealthEvaluation, bool) {
2209	return nil, false
2210}
2211
2212// AsReplicaHealthEvaluation is the BasicHealthEvaluation implementation for ApplicationHealthEvaluation.
2213func (ahe ApplicationHealthEvaluation) AsReplicaHealthEvaluation() (*ReplicaHealthEvaluation, bool) {
2214	return nil, false
2215}
2216
2217// AsReplicasHealthEvaluation is the BasicHealthEvaluation implementation for ApplicationHealthEvaluation.
2218func (ahe ApplicationHealthEvaluation) AsReplicasHealthEvaluation() (*ReplicasHealthEvaluation, bool) {
2219	return nil, false
2220}
2221
2222// AsServiceHealthEvaluation is the BasicHealthEvaluation implementation for ApplicationHealthEvaluation.
2223func (ahe ApplicationHealthEvaluation) AsServiceHealthEvaluation() (*ServiceHealthEvaluation, bool) {
2224	return nil, false
2225}
2226
2227// AsServicesHealthEvaluation is the BasicHealthEvaluation implementation for ApplicationHealthEvaluation.
2228func (ahe ApplicationHealthEvaluation) AsServicesHealthEvaluation() (*ServicesHealthEvaluation, bool) {
2229	return nil, false
2230}
2231
2232// AsSystemApplicationHealthEvaluation is the BasicHealthEvaluation implementation for ApplicationHealthEvaluation.
2233func (ahe ApplicationHealthEvaluation) AsSystemApplicationHealthEvaluation() (*SystemApplicationHealthEvaluation, bool) {
2234	return nil, false
2235}
2236
2237// AsUpgradeDomainDeltaNodesCheckHealthEvaluation is the BasicHealthEvaluation implementation for ApplicationHealthEvaluation.
2238func (ahe ApplicationHealthEvaluation) AsUpgradeDomainDeltaNodesCheckHealthEvaluation() (*UpgradeDomainDeltaNodesCheckHealthEvaluation, bool) {
2239	return nil, false
2240}
2241
2242// AsUpgradeDomainNodesHealthEvaluation is the BasicHealthEvaluation implementation for ApplicationHealthEvaluation.
2243func (ahe ApplicationHealthEvaluation) AsUpgradeDomainNodesHealthEvaluation() (*UpgradeDomainNodesHealthEvaluation, bool) {
2244	return nil, false
2245}
2246
2247// AsHealthEvaluation is the BasicHealthEvaluation implementation for ApplicationHealthEvaluation.
2248func (ahe ApplicationHealthEvaluation) AsHealthEvaluation() (*HealthEvaluation, bool) {
2249	return nil, false
2250}
2251
2252// AsBasicHealthEvaluation is the BasicHealthEvaluation implementation for ApplicationHealthEvaluation.
2253func (ahe ApplicationHealthEvaluation) AsBasicHealthEvaluation() (BasicHealthEvaluation, bool) {
2254	return &ahe, true
2255}
2256
2257// ApplicationHealthPolicies defines the application health policy map used to evaluate the health of an
2258// application or one of its children entities.
2259type ApplicationHealthPolicies struct {
2260	// ApplicationHealthPolicyMap - The wrapper that contains the map with application health policies used to evaluate specific applications in the cluster.
2261	ApplicationHealthPolicyMap *[]ApplicationHealthPolicyMapItem `json:"ApplicationHealthPolicyMap,omitempty"`
2262}
2263
2264// ApplicationHealthPolicy defines a health policy used to evaluate the health of an application or one of
2265// its children entities.
2266type ApplicationHealthPolicy struct {
2267	// ConsiderWarningAsError - Indicates whether warnings are treated with the same severity as errors.
2268	ConsiderWarningAsError *bool `json:"ConsiderWarningAsError,omitempty"`
2269	// MaxPercentUnhealthyDeployedApplications - The maximum allowed percentage of unhealthy deployed applications. Allowed values are Byte values from zero to 100.
2270	// The percentage represents the maximum tolerated percentage of deployed applications that can be unhealthy before the application is considered in error.
2271	// 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.
2272	// The computation rounds up to tolerate one failure on small numbers of nodes. Default percentage is zero.
2273	MaxPercentUnhealthyDeployedApplications *int32 `json:"MaxPercentUnhealthyDeployedApplications,omitempty"`
2274	// DefaultServiceTypeHealthPolicy - The health policy used by default to evaluate the health of a service type.
2275	DefaultServiceTypeHealthPolicy *ServiceTypeHealthPolicy `json:"DefaultServiceTypeHealthPolicy,omitempty"`
2276	// ServiceTypeHealthPolicyMap - The map with service type health policy per service type name. The map is empty by default.
2277	ServiceTypeHealthPolicyMap *[]ServiceTypeHealthPolicyMapItem `json:"ServiceTypeHealthPolicyMap,omitempty"`
2278}
2279
2280// ApplicationHealthPolicyMapItem defines an item in ApplicationHealthPolicyMap.
2281type ApplicationHealthPolicyMapItem struct {
2282	// Key - The key of the application health policy map item. This is the name of the application.
2283	Key *string `json:"Key,omitempty"`
2284	// Value - The value of the application health policy map item. This is the ApplicationHealthPolicy for this application.
2285	Value *ApplicationHealthPolicy `json:"Value,omitempty"`
2286}
2287
2288// ApplicationHealthPolicyMapObject represents the map of application health policies for a ServiceFabric
2289// cluster upgrade
2290type ApplicationHealthPolicyMapObject struct {
2291	// ApplicationHealthPolicyMap - Defines a map that contains specific application health policies for different applications.
2292	// Each entry specifies as key the application name and as value an ApplicationHealthPolicy used to evaluate the application health.
2293	// 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).
2294	// The map is empty by default.
2295	ApplicationHealthPolicyMap *[]ApplicationHealthPolicyMapItem `json:"ApplicationHealthPolicyMap,omitempty"`
2296}
2297
2298// ApplicationHealthReportExpiredEvent application Health Report Expired event.
2299type ApplicationHealthReportExpiredEvent struct {
2300	// ApplicationInstanceID - Id of Application instance.
2301	ApplicationInstanceID *int64 `json:"ApplicationInstanceId,omitempty"`
2302	// SourceID - Id of report source.
2303	SourceID *string `json:"SourceId,omitempty"`
2304	// Property - Describes the property.
2305	Property *string `json:"Property,omitempty"`
2306	// HealthState - Describes the property health state.
2307	HealthState *string `json:"HealthState,omitempty"`
2308	// TimeToLiveMs - Time to live in milli-seconds.
2309	TimeToLiveMs *int64 `json:"TimeToLiveMs,omitempty"`
2310	// SequenceNumber - Sequence number of report.
2311	SequenceNumber *int64 `json:"SequenceNumber,omitempty"`
2312	// Description - Description of report.
2313	Description *string `json:"Description,omitempty"`
2314	// RemoveWhenExpired - Indicates the removal when it expires.
2315	RemoveWhenExpired *bool `json:"RemoveWhenExpired,omitempty"`
2316	// SourceUtcTimestamp - Source time.
2317	SourceUtcTimestamp *date.Time `json:"SourceUtcTimestamp,omitempty"`
2318	// 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.
2319	// Starting in version 6.0, hierarchical names are delimited with the "\~" character. For example, if the application name is "fabric:/myapp/app1",
2320	// the application identity would be "myapp\~app1" in 6.0+ and "myapp/app1" in previous versions.
2321	ApplicationID *string `json:"ApplicationId,omitempty"`
2322	// EventInstanceID - The identifier for the FabricEvent instance.
2323	EventInstanceID *uuid.UUID `json:"EventInstanceId,omitempty"`
2324	// Category - The category of event.
2325	Category *string `json:"Category,omitempty"`
2326	// TimeStamp - The time event was logged.
2327	TimeStamp *date.Time `json:"TimeStamp,omitempty"`
2328	// HasCorrelatedEvents - Shows there is existing related events available.
2329	HasCorrelatedEvents *bool `json:"HasCorrelatedEvents,omitempty"`
2330	// 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'
2331	Kind KindBasicFabricEvent `json:"Kind,omitempty"`
2332}
2333
2334// MarshalJSON is the custom marshaler for ApplicationHealthReportExpiredEvent.
2335func (ahree ApplicationHealthReportExpiredEvent) MarshalJSON() ([]byte, error) {
2336	ahree.Kind = KindApplicationHealthReportExpired
2337	objectMap := make(map[string]interface{})
2338	if ahree.ApplicationInstanceID != nil {
2339		objectMap["ApplicationInstanceId"] = ahree.ApplicationInstanceID
2340	}
2341	if ahree.SourceID != nil {
2342		objectMap["SourceId"] = ahree.SourceID
2343	}
2344	if ahree.Property != nil {
2345		objectMap["Property"] = ahree.Property
2346	}
2347	if ahree.HealthState != nil {
2348		objectMap["HealthState"] = ahree.HealthState
2349	}
2350	if ahree.TimeToLiveMs != nil {
2351		objectMap["TimeToLiveMs"] = ahree.TimeToLiveMs
2352	}
2353	if ahree.SequenceNumber != nil {
2354		objectMap["SequenceNumber"] = ahree.SequenceNumber
2355	}
2356	if ahree.Description != nil {
2357		objectMap["Description"] = ahree.Description
2358	}
2359	if ahree.RemoveWhenExpired != nil {
2360		objectMap["RemoveWhenExpired"] = ahree.RemoveWhenExpired
2361	}
2362	if ahree.SourceUtcTimestamp != nil {
2363		objectMap["SourceUtcTimestamp"] = ahree.SourceUtcTimestamp
2364	}
2365	if ahree.ApplicationID != nil {
2366		objectMap["ApplicationId"] = ahree.ApplicationID
2367	}
2368	if ahree.EventInstanceID != nil {
2369		objectMap["EventInstanceId"] = ahree.EventInstanceID
2370	}
2371	if ahree.Category != nil {
2372		objectMap["Category"] = ahree.Category
2373	}
2374	if ahree.TimeStamp != nil {
2375		objectMap["TimeStamp"] = ahree.TimeStamp
2376	}
2377	if ahree.HasCorrelatedEvents != nil {
2378		objectMap["HasCorrelatedEvents"] = ahree.HasCorrelatedEvents
2379	}
2380	if ahree.Kind != "" {
2381		objectMap["Kind"] = ahree.Kind
2382	}
2383	return json.Marshal(objectMap)
2384}
2385
2386// AsApplicationEvent is the BasicFabricEvent implementation for ApplicationHealthReportExpiredEvent.
2387func (ahree ApplicationHealthReportExpiredEvent) AsApplicationEvent() (*ApplicationEvent, bool) {
2388	return nil, false
2389}
2390
2391// AsBasicApplicationEvent is the BasicFabricEvent implementation for ApplicationHealthReportExpiredEvent.
2392func (ahree ApplicationHealthReportExpiredEvent) AsBasicApplicationEvent() (BasicApplicationEvent, bool) {
2393	return &ahree, true
2394}
2395
2396// AsClusterEvent is the BasicFabricEvent implementation for ApplicationHealthReportExpiredEvent.
2397func (ahree ApplicationHealthReportExpiredEvent) AsClusterEvent() (*ClusterEvent, bool) {
2398	return nil, false
2399}
2400
2401// AsBasicClusterEvent is the BasicFabricEvent implementation for ApplicationHealthReportExpiredEvent.
2402func (ahree ApplicationHealthReportExpiredEvent) AsBasicClusterEvent() (BasicClusterEvent, bool) {
2403	return nil, false
2404}
2405
2406// AsContainerInstanceEvent is the BasicFabricEvent implementation for ApplicationHealthReportExpiredEvent.
2407func (ahree ApplicationHealthReportExpiredEvent) AsContainerInstanceEvent() (*ContainerInstanceEvent, bool) {
2408	return nil, false
2409}
2410
2411// AsNodeEvent is the BasicFabricEvent implementation for ApplicationHealthReportExpiredEvent.
2412func (ahree ApplicationHealthReportExpiredEvent) AsNodeEvent() (*NodeEvent, bool) {
2413	return nil, false
2414}
2415
2416// AsBasicNodeEvent is the BasicFabricEvent implementation for ApplicationHealthReportExpiredEvent.
2417func (ahree ApplicationHealthReportExpiredEvent) AsBasicNodeEvent() (BasicNodeEvent, bool) {
2418	return nil, false
2419}
2420
2421// AsPartitionAnalysisEvent is the BasicFabricEvent implementation for ApplicationHealthReportExpiredEvent.
2422func (ahree ApplicationHealthReportExpiredEvent) AsPartitionAnalysisEvent() (*PartitionAnalysisEvent, bool) {
2423	return nil, false
2424}
2425
2426// AsBasicPartitionAnalysisEvent is the BasicFabricEvent implementation for ApplicationHealthReportExpiredEvent.
2427func (ahree ApplicationHealthReportExpiredEvent) AsBasicPartitionAnalysisEvent() (BasicPartitionAnalysisEvent, bool) {
2428	return nil, false
2429}
2430
2431// AsPartitionEvent is the BasicFabricEvent implementation for ApplicationHealthReportExpiredEvent.
2432func (ahree ApplicationHealthReportExpiredEvent) AsPartitionEvent() (*PartitionEvent, bool) {
2433	return nil, false
2434}
2435
2436// AsBasicPartitionEvent is the BasicFabricEvent implementation for ApplicationHealthReportExpiredEvent.
2437func (ahree ApplicationHealthReportExpiredEvent) AsBasicPartitionEvent() (BasicPartitionEvent, bool) {
2438	return nil, false
2439}
2440
2441// AsReplicaEvent is the BasicFabricEvent implementation for ApplicationHealthReportExpiredEvent.
2442func (ahree ApplicationHealthReportExpiredEvent) AsReplicaEvent() (*ReplicaEvent, bool) {
2443	return nil, false
2444}
2445
2446// AsBasicReplicaEvent is the BasicFabricEvent implementation for ApplicationHealthReportExpiredEvent.
2447func (ahree ApplicationHealthReportExpiredEvent) AsBasicReplicaEvent() (BasicReplicaEvent, bool) {
2448	return nil, false
2449}
2450
2451// AsServiceEvent is the BasicFabricEvent implementation for ApplicationHealthReportExpiredEvent.
2452func (ahree ApplicationHealthReportExpiredEvent) AsServiceEvent() (*ServiceEvent, bool) {
2453	return nil, false
2454}
2455
2456// AsBasicServiceEvent is the BasicFabricEvent implementation for ApplicationHealthReportExpiredEvent.
2457func (ahree ApplicationHealthReportExpiredEvent) AsBasicServiceEvent() (BasicServiceEvent, bool) {
2458	return nil, false
2459}
2460
2461// AsApplicationCreatedEvent is the BasicFabricEvent implementation for ApplicationHealthReportExpiredEvent.
2462func (ahree ApplicationHealthReportExpiredEvent) AsApplicationCreatedEvent() (*ApplicationCreatedEvent, bool) {
2463	return nil, false
2464}
2465
2466// AsApplicationDeletedEvent is the BasicFabricEvent implementation for ApplicationHealthReportExpiredEvent.
2467func (ahree ApplicationHealthReportExpiredEvent) AsApplicationDeletedEvent() (*ApplicationDeletedEvent, bool) {
2468	return nil, false
2469}
2470
2471// AsApplicationNewHealthReportEvent is the BasicFabricEvent implementation for ApplicationHealthReportExpiredEvent.
2472func (ahree ApplicationHealthReportExpiredEvent) AsApplicationNewHealthReportEvent() (*ApplicationNewHealthReportEvent, bool) {
2473	return nil, false
2474}
2475
2476// AsApplicationHealthReportExpiredEvent is the BasicFabricEvent implementation for ApplicationHealthReportExpiredEvent.
2477func (ahree ApplicationHealthReportExpiredEvent) AsApplicationHealthReportExpiredEvent() (*ApplicationHealthReportExpiredEvent, bool) {
2478	return &ahree, true
2479}
2480
2481// AsApplicationUpgradeCompletedEvent is the BasicFabricEvent implementation for ApplicationHealthReportExpiredEvent.
2482func (ahree ApplicationHealthReportExpiredEvent) AsApplicationUpgradeCompletedEvent() (*ApplicationUpgradeCompletedEvent, bool) {
2483	return nil, false
2484}
2485
2486// AsApplicationUpgradeDomainCompletedEvent is the BasicFabricEvent implementation for ApplicationHealthReportExpiredEvent.
2487func (ahree ApplicationHealthReportExpiredEvent) AsApplicationUpgradeDomainCompletedEvent() (*ApplicationUpgradeDomainCompletedEvent, bool) {
2488	return nil, false
2489}
2490
2491// AsApplicationUpgradeRollbackCompletedEvent is the BasicFabricEvent implementation for ApplicationHealthReportExpiredEvent.
2492func (ahree ApplicationHealthReportExpiredEvent) AsApplicationUpgradeRollbackCompletedEvent() (*ApplicationUpgradeRollbackCompletedEvent, bool) {
2493	return nil, false
2494}
2495
2496// AsApplicationUpgradeRollbackStartedEvent is the BasicFabricEvent implementation for ApplicationHealthReportExpiredEvent.
2497func (ahree ApplicationHealthReportExpiredEvent) AsApplicationUpgradeRollbackStartedEvent() (*ApplicationUpgradeRollbackStartedEvent, bool) {
2498	return nil, false
2499}
2500
2501// AsApplicationUpgradeStartedEvent is the BasicFabricEvent implementation for ApplicationHealthReportExpiredEvent.
2502func (ahree ApplicationHealthReportExpiredEvent) AsApplicationUpgradeStartedEvent() (*ApplicationUpgradeStartedEvent, bool) {
2503	return nil, false
2504}
2505
2506// AsDeployedApplicationNewHealthReportEvent is the BasicFabricEvent implementation for ApplicationHealthReportExpiredEvent.
2507func (ahree ApplicationHealthReportExpiredEvent) AsDeployedApplicationNewHealthReportEvent() (*DeployedApplicationNewHealthReportEvent, bool) {
2508	return nil, false
2509}
2510
2511// AsDeployedApplicationHealthReportExpiredEvent is the BasicFabricEvent implementation for ApplicationHealthReportExpiredEvent.
2512func (ahree ApplicationHealthReportExpiredEvent) AsDeployedApplicationHealthReportExpiredEvent() (*DeployedApplicationHealthReportExpiredEvent, bool) {
2513	return nil, false
2514}
2515
2516// AsApplicationProcessExitedEvent is the BasicFabricEvent implementation for ApplicationHealthReportExpiredEvent.
2517func (ahree ApplicationHealthReportExpiredEvent) AsApplicationProcessExitedEvent() (*ApplicationProcessExitedEvent, bool) {
2518	return nil, false
2519}
2520
2521// AsApplicationContainerInstanceExitedEvent is the BasicFabricEvent implementation for ApplicationHealthReportExpiredEvent.
2522func (ahree ApplicationHealthReportExpiredEvent) AsApplicationContainerInstanceExitedEvent() (*ApplicationContainerInstanceExitedEvent, bool) {
2523	return nil, false
2524}
2525
2526// AsNodeAbortedEvent is the BasicFabricEvent implementation for ApplicationHealthReportExpiredEvent.
2527func (ahree ApplicationHealthReportExpiredEvent) AsNodeAbortedEvent() (*NodeAbortedEvent, bool) {
2528	return nil, false
2529}
2530
2531// AsNodeAddedToClusterEvent is the BasicFabricEvent implementation for ApplicationHealthReportExpiredEvent.
2532func (ahree ApplicationHealthReportExpiredEvent) AsNodeAddedToClusterEvent() (*NodeAddedToClusterEvent, bool) {
2533	return nil, false
2534}
2535
2536// AsNodeClosedEvent is the BasicFabricEvent implementation for ApplicationHealthReportExpiredEvent.
2537func (ahree ApplicationHealthReportExpiredEvent) AsNodeClosedEvent() (*NodeClosedEvent, bool) {
2538	return nil, false
2539}
2540
2541// AsNodeDeactivateCompletedEvent is the BasicFabricEvent implementation for ApplicationHealthReportExpiredEvent.
2542func (ahree ApplicationHealthReportExpiredEvent) AsNodeDeactivateCompletedEvent() (*NodeDeactivateCompletedEvent, bool) {
2543	return nil, false
2544}
2545
2546// AsNodeDeactivateStartedEvent is the BasicFabricEvent implementation for ApplicationHealthReportExpiredEvent.
2547func (ahree ApplicationHealthReportExpiredEvent) AsNodeDeactivateStartedEvent() (*NodeDeactivateStartedEvent, bool) {
2548	return nil, false
2549}
2550
2551// AsNodeDownEvent is the BasicFabricEvent implementation for ApplicationHealthReportExpiredEvent.
2552func (ahree ApplicationHealthReportExpiredEvent) AsNodeDownEvent() (*NodeDownEvent, bool) {
2553	return nil, false
2554}
2555
2556// AsNodeNewHealthReportEvent is the BasicFabricEvent implementation for ApplicationHealthReportExpiredEvent.
2557func (ahree ApplicationHealthReportExpiredEvent) AsNodeNewHealthReportEvent() (*NodeNewHealthReportEvent, bool) {
2558	return nil, false
2559}
2560
2561// AsNodeHealthReportExpiredEvent is the BasicFabricEvent implementation for ApplicationHealthReportExpiredEvent.
2562func (ahree ApplicationHealthReportExpiredEvent) AsNodeHealthReportExpiredEvent() (*NodeHealthReportExpiredEvent, bool) {
2563	return nil, false
2564}
2565
2566// AsNodeOpenSucceededEvent is the BasicFabricEvent implementation for ApplicationHealthReportExpiredEvent.
2567func (ahree ApplicationHealthReportExpiredEvent) AsNodeOpenSucceededEvent() (*NodeOpenSucceededEvent, bool) {
2568	return nil, false
2569}
2570
2571// AsNodeOpenFailedEvent is the BasicFabricEvent implementation for ApplicationHealthReportExpiredEvent.
2572func (ahree ApplicationHealthReportExpiredEvent) AsNodeOpenFailedEvent() (*NodeOpenFailedEvent, bool) {
2573	return nil, false
2574}
2575
2576// AsNodeRemovedFromClusterEvent is the BasicFabricEvent implementation for ApplicationHealthReportExpiredEvent.
2577func (ahree ApplicationHealthReportExpiredEvent) AsNodeRemovedFromClusterEvent() (*NodeRemovedFromClusterEvent, bool) {
2578	return nil, false
2579}
2580
2581// AsNodeUpEvent is the BasicFabricEvent implementation for ApplicationHealthReportExpiredEvent.
2582func (ahree ApplicationHealthReportExpiredEvent) AsNodeUpEvent() (*NodeUpEvent, bool) {
2583	return nil, false
2584}
2585
2586// AsPartitionNewHealthReportEvent is the BasicFabricEvent implementation for ApplicationHealthReportExpiredEvent.
2587func (ahree ApplicationHealthReportExpiredEvent) AsPartitionNewHealthReportEvent() (*PartitionNewHealthReportEvent, bool) {
2588	return nil, false
2589}
2590
2591// AsPartitionHealthReportExpiredEvent is the BasicFabricEvent implementation for ApplicationHealthReportExpiredEvent.
2592func (ahree ApplicationHealthReportExpiredEvent) AsPartitionHealthReportExpiredEvent() (*PartitionHealthReportExpiredEvent, bool) {
2593	return nil, false
2594}
2595
2596// AsPartitionReconfiguredEvent is the BasicFabricEvent implementation for ApplicationHealthReportExpiredEvent.
2597func (ahree ApplicationHealthReportExpiredEvent) AsPartitionReconfiguredEvent() (*PartitionReconfiguredEvent, bool) {
2598	return nil, false
2599}
2600
2601// AsPartitionPrimaryMoveAnalysisEvent is the BasicFabricEvent implementation for ApplicationHealthReportExpiredEvent.
2602func (ahree ApplicationHealthReportExpiredEvent) AsPartitionPrimaryMoveAnalysisEvent() (*PartitionPrimaryMoveAnalysisEvent, bool) {
2603	return nil, false
2604}
2605
2606// AsServiceCreatedEvent is the BasicFabricEvent implementation for ApplicationHealthReportExpiredEvent.
2607func (ahree ApplicationHealthReportExpiredEvent) AsServiceCreatedEvent() (*ServiceCreatedEvent, bool) {
2608	return nil, false
2609}
2610
2611// AsServiceDeletedEvent is the BasicFabricEvent implementation for ApplicationHealthReportExpiredEvent.
2612func (ahree ApplicationHealthReportExpiredEvent) AsServiceDeletedEvent() (*ServiceDeletedEvent, bool) {
2613	return nil, false
2614}
2615
2616// AsServiceNewHealthReportEvent is the BasicFabricEvent implementation for ApplicationHealthReportExpiredEvent.
2617func (ahree ApplicationHealthReportExpiredEvent) AsServiceNewHealthReportEvent() (*ServiceNewHealthReportEvent, bool) {
2618	return nil, false
2619}
2620
2621// AsServiceHealthReportExpiredEvent is the BasicFabricEvent implementation for ApplicationHealthReportExpiredEvent.
2622func (ahree ApplicationHealthReportExpiredEvent) AsServiceHealthReportExpiredEvent() (*ServiceHealthReportExpiredEvent, bool) {
2623	return nil, false
2624}
2625
2626// AsDeployedServicePackageNewHealthReportEvent is the BasicFabricEvent implementation for ApplicationHealthReportExpiredEvent.
2627func (ahree ApplicationHealthReportExpiredEvent) AsDeployedServicePackageNewHealthReportEvent() (*DeployedServicePackageNewHealthReportEvent, bool) {
2628	return nil, false
2629}
2630
2631// AsDeployedServicePackageHealthReportExpiredEvent is the BasicFabricEvent implementation for ApplicationHealthReportExpiredEvent.
2632func (ahree ApplicationHealthReportExpiredEvent) AsDeployedServicePackageHealthReportExpiredEvent() (*DeployedServicePackageHealthReportExpiredEvent, bool) {
2633	return nil, false
2634}
2635
2636// AsStatefulReplicaNewHealthReportEvent is the BasicFabricEvent implementation for ApplicationHealthReportExpiredEvent.
2637func (ahree ApplicationHealthReportExpiredEvent) AsStatefulReplicaNewHealthReportEvent() (*StatefulReplicaNewHealthReportEvent, bool) {
2638	return nil, false
2639}
2640
2641// AsStatefulReplicaHealthReportExpiredEvent is the BasicFabricEvent implementation for ApplicationHealthReportExpiredEvent.
2642func (ahree ApplicationHealthReportExpiredEvent) AsStatefulReplicaHealthReportExpiredEvent() (*StatefulReplicaHealthReportExpiredEvent, bool) {
2643	return nil, false
2644}
2645
2646// AsStatelessReplicaNewHealthReportEvent is the BasicFabricEvent implementation for ApplicationHealthReportExpiredEvent.
2647func (ahree ApplicationHealthReportExpiredEvent) AsStatelessReplicaNewHealthReportEvent() (*StatelessReplicaNewHealthReportEvent, bool) {
2648	return nil, false
2649}
2650
2651// AsStatelessReplicaHealthReportExpiredEvent is the BasicFabricEvent implementation for ApplicationHealthReportExpiredEvent.
2652func (ahree ApplicationHealthReportExpiredEvent) AsStatelessReplicaHealthReportExpiredEvent() (*StatelessReplicaHealthReportExpiredEvent, bool) {
2653	return nil, false
2654}
2655
2656// AsClusterNewHealthReportEvent is the BasicFabricEvent implementation for ApplicationHealthReportExpiredEvent.
2657func (ahree ApplicationHealthReportExpiredEvent) AsClusterNewHealthReportEvent() (*ClusterNewHealthReportEvent, bool) {
2658	return nil, false
2659}
2660
2661// AsClusterHealthReportExpiredEvent is the BasicFabricEvent implementation for ApplicationHealthReportExpiredEvent.
2662func (ahree ApplicationHealthReportExpiredEvent) AsClusterHealthReportExpiredEvent() (*ClusterHealthReportExpiredEvent, bool) {
2663	return nil, false
2664}
2665
2666// AsClusterUpgradeCompletedEvent is the BasicFabricEvent implementation for ApplicationHealthReportExpiredEvent.
2667func (ahree ApplicationHealthReportExpiredEvent) AsClusterUpgradeCompletedEvent() (*ClusterUpgradeCompletedEvent, bool) {
2668	return nil, false
2669}
2670
2671// AsClusterUpgradeDomainCompletedEvent is the BasicFabricEvent implementation for ApplicationHealthReportExpiredEvent.
2672func (ahree ApplicationHealthReportExpiredEvent) AsClusterUpgradeDomainCompletedEvent() (*ClusterUpgradeDomainCompletedEvent, bool) {
2673	return nil, false
2674}
2675
2676// AsClusterUpgradeRollbackCompletedEvent is the BasicFabricEvent implementation for ApplicationHealthReportExpiredEvent.
2677func (ahree ApplicationHealthReportExpiredEvent) AsClusterUpgradeRollbackCompletedEvent() (*ClusterUpgradeRollbackCompletedEvent, bool) {
2678	return nil, false
2679}
2680
2681// AsClusterUpgradeRollbackStartedEvent is the BasicFabricEvent implementation for ApplicationHealthReportExpiredEvent.
2682func (ahree ApplicationHealthReportExpiredEvent) AsClusterUpgradeRollbackStartedEvent() (*ClusterUpgradeRollbackStartedEvent, bool) {
2683	return nil, false
2684}
2685
2686// AsClusterUpgradeStartedEvent is the BasicFabricEvent implementation for ApplicationHealthReportExpiredEvent.
2687func (ahree ApplicationHealthReportExpiredEvent) AsClusterUpgradeStartedEvent() (*ClusterUpgradeStartedEvent, bool) {
2688	return nil, false
2689}
2690
2691// AsChaosStoppedEvent is the BasicFabricEvent implementation for ApplicationHealthReportExpiredEvent.
2692func (ahree ApplicationHealthReportExpiredEvent) AsChaosStoppedEvent() (*ChaosStoppedEvent, bool) {
2693	return nil, false
2694}
2695
2696// AsChaosStartedEvent is the BasicFabricEvent implementation for ApplicationHealthReportExpiredEvent.
2697func (ahree ApplicationHealthReportExpiredEvent) AsChaosStartedEvent() (*ChaosStartedEvent, bool) {
2698	return nil, false
2699}
2700
2701// AsChaosCodePackageRestartScheduledEvent is the BasicFabricEvent implementation for ApplicationHealthReportExpiredEvent.
2702func (ahree ApplicationHealthReportExpiredEvent) AsChaosCodePackageRestartScheduledEvent() (*ChaosCodePackageRestartScheduledEvent, bool) {
2703	return nil, false
2704}
2705
2706// AsChaosReplicaRemovalScheduledEvent is the BasicFabricEvent implementation for ApplicationHealthReportExpiredEvent.
2707func (ahree ApplicationHealthReportExpiredEvent) AsChaosReplicaRemovalScheduledEvent() (*ChaosReplicaRemovalScheduledEvent, bool) {
2708	return nil, false
2709}
2710
2711// AsChaosPartitionSecondaryMoveScheduledEvent is the BasicFabricEvent implementation for ApplicationHealthReportExpiredEvent.
2712func (ahree ApplicationHealthReportExpiredEvent) AsChaosPartitionSecondaryMoveScheduledEvent() (*ChaosPartitionSecondaryMoveScheduledEvent, bool) {
2713	return nil, false
2714}
2715
2716// AsChaosPartitionPrimaryMoveScheduledEvent is the BasicFabricEvent implementation for ApplicationHealthReportExpiredEvent.
2717func (ahree ApplicationHealthReportExpiredEvent) AsChaosPartitionPrimaryMoveScheduledEvent() (*ChaosPartitionPrimaryMoveScheduledEvent, bool) {
2718	return nil, false
2719}
2720
2721// AsChaosReplicaRestartScheduledEvent is the BasicFabricEvent implementation for ApplicationHealthReportExpiredEvent.
2722func (ahree ApplicationHealthReportExpiredEvent) AsChaosReplicaRestartScheduledEvent() (*ChaosReplicaRestartScheduledEvent, bool) {
2723	return nil, false
2724}
2725
2726// AsChaosNodeRestartScheduledEvent is the BasicFabricEvent implementation for ApplicationHealthReportExpiredEvent.
2727func (ahree ApplicationHealthReportExpiredEvent) AsChaosNodeRestartScheduledEvent() (*ChaosNodeRestartScheduledEvent, bool) {
2728	return nil, false
2729}
2730
2731// AsFabricEvent is the BasicFabricEvent implementation for ApplicationHealthReportExpiredEvent.
2732func (ahree ApplicationHealthReportExpiredEvent) AsFabricEvent() (*FabricEvent, bool) {
2733	return nil, false
2734}
2735
2736// AsBasicFabricEvent is the BasicFabricEvent implementation for ApplicationHealthReportExpiredEvent.
2737func (ahree ApplicationHealthReportExpiredEvent) AsBasicFabricEvent() (BasicFabricEvent, bool) {
2738	return &ahree, true
2739}
2740
2741// ApplicationHealthState represents the health state of an application, which contains the application
2742// identifier and the aggregated health state.
2743type ApplicationHealthState struct {
2744	// Name - The name of the application, including the 'fabric:' URI scheme.
2745	Name *string `json:"Name,omitempty"`
2746	// 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'
2747	AggregatedHealthState HealthState `json:"AggregatedHealthState,omitempty"`
2748}
2749
2750// ApplicationHealthStateChunk represents the health state chunk of a application.
2751// The application health state chunk contains the application name, its aggregated health state and any
2752// children services and deployed applications that respect the filters in cluster health chunk query
2753// description.
2754type ApplicationHealthStateChunk struct {
2755	// ApplicationName - The name of the application, including the 'fabric:' URI scheme.
2756	ApplicationName *string `json:"ApplicationName,omitempty"`
2757	// ApplicationTypeName - The application type name as defined in the application manifest.
2758	ApplicationTypeName *string `json:"ApplicationTypeName,omitempty"`
2759	// ServiceHealthStateChunks - The list of service health state chunks in the cluster that respect the filters in the cluster health chunk query description.
2760	ServiceHealthStateChunks *ServiceHealthStateChunkList `json:"ServiceHealthStateChunks,omitempty"`
2761	// DeployedApplicationHealthStateChunks - The list of deployed application health state chunks in the cluster that respect the filters in the cluster health chunk query description.
2762	DeployedApplicationHealthStateChunks *DeployedApplicationHealthStateChunkList `json:"DeployedApplicationHealthStateChunks,omitempty"`
2763	// 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'
2764	HealthState HealthState `json:"HealthState,omitempty"`
2765}
2766
2767// ApplicationHealthStateChunkList the list of application health state chunks in the cluster that respect
2768// the input filters in the chunk query. Returned by get cluster health state chunks query.
2769type ApplicationHealthStateChunkList struct {
2770	// Items - The list of application health state chunks that respect the input filters in the chunk query.
2771	Items *[]ApplicationHealthStateChunk `json:"Items,omitempty"`
2772	// TotalCount - Total number of entity health state objects that match the specified filters from the cluster health chunk query description.
2773	TotalCount *int64 `json:"TotalCount,omitempty"`
2774}
2775
2776// ApplicationHealthStateFilter defines matching criteria to determine whether a application should be
2777// included in the cluster health chunk.
2778// One filter can match zero, one or multiple applications, depending on its properties.
2779type ApplicationHealthStateFilter struct {
2780	// 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.
2781	// If the application doesn't exist, no application is returned in the cluster health chunk based on this filter.
2782	// If the application exists, it is included in the cluster health chunk if it respects the other filter properties.
2783	// If not specified, all applications are matched against the other filter members, like health state filter.
2784	ApplicationNameFilter *string `json:"ApplicationNameFilter,omitempty"`
2785	// ApplicationTypeNameFilter - The name of the application type that matches the filter.
2786	// If specified, the filter is applied only to applications of the selected application type, if any exists.
2787	// If no applications of the specified application type exists, no application is returned in the cluster health chunk based on this filter.
2788	// Each application of the specified application type is included in the cluster health chunk if it respects the other filter properties.
2789	// If not specified, all applications are matched against the other filter members, like health state filter.
2790	ApplicationTypeNameFilter *string `json:"ApplicationTypeNameFilter,omitempty"`
2791	// HealthStateFilter - The filter for the health state of the applications. It allows selecting applications if they match the desired health states.
2792	// 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.
2793	// 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.
2794	// The state values are flag-based enumeration, so the value could be a combination of these values obtained using bitwise 'OR' operator.
2795	// For example, if the provided value is 6, it matches applications with HealthState value of OK (2) and Warning (4).
2796	// - Default - Default value. Matches any HealthState. The value is zero.
2797	// - 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.
2798	// - Ok - Filter that matches input with HealthState value Ok. The value is 2.
2799	// - Warning - Filter that matches input with HealthState value Warning. The value is 4.
2800	// - Error - Filter that matches input with HealthState value Error. The value is 8.
2801	// - All - Filter that matches input with any HealthState value. The value is 65535.
2802	HealthStateFilter *int32 `json:"HealthStateFilter,omitempty"`
2803	// 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.
2804	// 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.
2805	// The application filter may specify multiple service filters.
2806	// 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.
2807	ServiceFilters *[]ServiceHealthStateFilter `json:"ServiceFilters,omitempty"`
2808	// 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.
2809	// 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.
2810	// The application filter may specify multiple deployed application filters.
2811	// 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.
2812	DeployedApplicationFilters *[]DeployedApplicationHealthStateFilter `json:"DeployedApplicationFilters,omitempty"`
2813}
2814
2815// ApplicationInfo information about a Service Fabric application.
2816type ApplicationInfo struct {
2817	autorest.Response `json:"-"`
2818	// 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.
2819	// Starting in version 6.0, hierarchical names are delimited with the "\~" character. For example, if the application name is "fabric:/myapp/app1",
2820	// the application identity would be "myapp\~app1" in 6.0+ and "myapp/app1" in previous versions.
2821	ID *string `json:"Id,omitempty"`
2822	// Name - The name of the application, including the 'fabric:' URI scheme.
2823	Name *string `json:"Name,omitempty"`
2824	// TypeName - The application type name as defined in the application manifest.
2825	TypeName *string `json:"TypeName,omitempty"`
2826	// TypeVersion - The version of the application type as defined in the application manifest.
2827	TypeVersion *string `json:"TypeVersion,omitempty"`
2828	// Status - The status of the application. Possible values include: 'ApplicationStatusInvalid', 'ApplicationStatusReady', 'ApplicationStatusUpgrading', 'ApplicationStatusCreating', 'ApplicationStatusDeleting', 'ApplicationStatusFailed'
2829	Status ApplicationStatus `json:"Status,omitempty"`
2830	// Parameters - List of application parameters with overridden values from their default values specified in the application manifest.
2831	Parameters *[]ApplicationParameter `json:"Parameters,omitempty"`
2832	// 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'
2833	HealthState HealthState `json:"HealthState,omitempty"`
2834	// ApplicationDefinitionKind - The mechanism used to define a Service Fabric application. Possible values include: 'Invalid', 'ServiceFabricApplicationDescription', 'Compose'
2835	ApplicationDefinitionKind ApplicationDefinitionKind `json:"ApplicationDefinitionKind,omitempty"`
2836}
2837
2838// ApplicationLoadInfo load Information about a Service Fabric application.
2839type ApplicationLoadInfo struct {
2840	autorest.Response `json:"-"`
2841	// 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.
2842	// Starting in version 6.0, hierarchical names are delimited with the "\~" character. For example, if the application name is "fabric:/myapp/app1",
2843	// the application identity would be "myapp\~app1" in 6.0+ and "myapp/app1" in previous versions.
2844	ID *string `json:"Id,omitempty"`
2845	// MinimumNodes - The minimum number of nodes for this application.
2846	// It is the number of nodes where Service Fabric will reserve Capacity in the cluster which equals to ReservedLoad * MinimumNodes for this Application instance.
2847	// For applications that do not have application capacity defined this value will be zero.
2848	MinimumNodes *int64 `json:"MinimumNodes,omitempty"`
2849	// MaximumNodes - The maximum number of nodes where this application can be instantiated.
2850	// It is the number of nodes this application is allowed to span.
2851	// For applications that do not have application capacity defined this value will be zero.
2852	MaximumNodes *int64 `json:"MaximumNodes,omitempty"`
2853	// NodeCount - The number of nodes on which this application is instantiated.
2854	// For applications that do not have application capacity defined this value will be zero.
2855	NodeCount *int64 `json:"NodeCount,omitempty"`
2856	// ApplicationLoadMetricInformation - List of application load metric information.
2857	ApplicationLoadMetricInformation *[]ApplicationLoadMetricInformation `json:"ApplicationLoadMetricInformation,omitempty"`
2858}
2859
2860// ApplicationLoadMetricInformation describes load information for a custom resource balancing metric. This
2861// can be used to limit the total consumption of this metric by the services of this application.
2862type ApplicationLoadMetricInformation struct {
2863	// Name - The name of the metric.
2864	Name *string `json:"Name,omitempty"`
2865	// ReservationCapacity - This is the capacity reserved in the cluster for the application.
2866	// It's the product of NodeReservationCapacity and MinimumNodes.
2867	// If set to zero, no capacity is reserved for this metric.
2868	// When setting application capacity or when updating application capacity this value must be smaller than or equal to MaximumCapacity for each metric.
2869	ReservationCapacity *int64 `json:"ReservationCapacity,omitempty"`
2870	// ApplicationCapacity - Total capacity for this metric in this application instance.
2871	ApplicationCapacity *int64 `json:"ApplicationCapacity,omitempty"`
2872	// ApplicationLoad - Current load for this metric in this application instance.
2873	ApplicationLoad *int64 `json:"ApplicationLoad,omitempty"`
2874}
2875
2876// ApplicationMetricDescription describes capacity information for a custom resource balancing metric. This
2877// can be used to limit the total consumption of this metric by the services of this application.
2878type ApplicationMetricDescription struct {
2879	// Name - The name of the metric.
2880	Name *string `json:"Name,omitempty"`
2881	// MaximumCapacity - The maximum node capacity for Service Fabric application.
2882	// 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.
2883	// If set to zero, capacity for this metric is unlimited on each node.
2884	// 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.
2885	// When updating existing application with application capacity, the product of MaximumNodes and this value must always be smaller than or equal to TotalApplicationCapacity.
2886	MaximumCapacity *int64 `json:"MaximumCapacity,omitempty"`
2887	// ReservationCapacity - The node reservation capacity for Service Fabric application.
2888	// This is the amount of load which is reserved on nodes which have instances of this application.
2889	// If MinimumNodes is specified, then the product of these values will be the capacity reserved in the cluster for the application.
2890	// If set to zero, no capacity is reserved for this metric.
2891	// When setting application capacity or when updating application capacity; this value must be smaller than or equal to MaximumCapacity for each metric.
2892	ReservationCapacity *int64 `json:"ReservationCapacity,omitempty"`
2893	// TotalApplicationCapacity - The total metric capacity for Service Fabric application.
2894	// 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.
2895	// 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.
2896	TotalApplicationCapacity *int64 `json:"TotalApplicationCapacity,omitempty"`
2897}
2898
2899// ApplicationNameInfo information about the application name.
2900type ApplicationNameInfo struct {
2901	autorest.Response `json:"-"`
2902	// 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.
2903	// Starting in version 6.0, hierarchical names are delimited with the "\~" character. For example, if the application name is "fabric:/myapp/app1",
2904	// the application identity would be "myapp\~app1" in 6.0+ and "myapp/app1" in previous versions.
2905	ID *string `json:"Id,omitempty"`
2906	// Name - The name of the application, including the 'fabric:' URI scheme.
2907	Name *string `json:"Name,omitempty"`
2908}
2909
2910// ApplicationNewHealthReportEvent application Health Report Created event.
2911type ApplicationNewHealthReportEvent struct {
2912	// ApplicationInstanceID - Id of Application instance.
2913	ApplicationInstanceID *int64 `json:"ApplicationInstanceId,omitempty"`
2914	// SourceID - Id of report source.
2915	SourceID *string `json:"SourceId,omitempty"`
2916	// Property - Describes the property.
2917	Property *string `json:"Property,omitempty"`
2918	// HealthState - Describes the property health state.
2919	HealthState *string `json:"HealthState,omitempty"`
2920	// TimeToLiveMs - Time to live in milli-seconds.
2921	TimeToLiveMs *int64 `json:"TimeToLiveMs,omitempty"`
2922	// SequenceNumber - Sequence number of report.
2923	SequenceNumber *int64 `json:"SequenceNumber,omitempty"`
2924	// Description - Description of report.
2925	Description *string `json:"Description,omitempty"`
2926	// RemoveWhenExpired - Indicates the removal when it expires.
2927	RemoveWhenExpired *bool `json:"RemoveWhenExpired,omitempty"`
2928	// SourceUtcTimestamp - Source time.
2929	SourceUtcTimestamp *date.Time `json:"SourceUtcTimestamp,omitempty"`
2930	// 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.
2931	// Starting in version 6.0, hierarchical names are delimited with the "\~" character. For example, if the application name is "fabric:/myapp/app1",
2932	// the application identity would be "myapp\~app1" in 6.0+ and "myapp/app1" in previous versions.
2933	ApplicationID *string `json:"ApplicationId,omitempty"`
2934	// EventInstanceID - The identifier for the FabricEvent instance.
2935	EventInstanceID *uuid.UUID `json:"EventInstanceId,omitempty"`
2936	// Category - The category of event.
2937	Category *string `json:"Category,omitempty"`
2938	// TimeStamp - The time event was logged.
2939	TimeStamp *date.Time `json:"TimeStamp,omitempty"`
2940	// HasCorrelatedEvents - Shows there is existing related events available.
2941	HasCorrelatedEvents *bool `json:"HasCorrelatedEvents,omitempty"`
2942	// 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'
2943	Kind KindBasicFabricEvent `json:"Kind,omitempty"`
2944}
2945
2946// MarshalJSON is the custom marshaler for ApplicationNewHealthReportEvent.
2947func (anhre ApplicationNewHealthReportEvent) MarshalJSON() ([]byte, error) {
2948	anhre.Kind = KindApplicationNewHealthReport
2949	objectMap := make(map[string]interface{})
2950	if anhre.ApplicationInstanceID != nil {
2951		objectMap["ApplicationInstanceId"] = anhre.ApplicationInstanceID
2952	}
2953	if anhre.SourceID != nil {
2954		objectMap["SourceId"] = anhre.SourceID
2955	}
2956	if anhre.Property != nil {
2957		objectMap["Property"] = anhre.Property
2958	}
2959	if anhre.HealthState != nil {
2960		objectMap["HealthState"] = anhre.HealthState
2961	}
2962	if anhre.TimeToLiveMs != nil {
2963		objectMap["TimeToLiveMs"] = anhre.TimeToLiveMs
2964	}
2965	if anhre.SequenceNumber != nil {
2966		objectMap["SequenceNumber"] = anhre.SequenceNumber
2967	}
2968	if anhre.Description != nil {
2969		objectMap["Description"] = anhre.Description
2970	}
2971	if anhre.RemoveWhenExpired != nil {
2972		objectMap["RemoveWhenExpired"] = anhre.RemoveWhenExpired
2973	}
2974	if anhre.SourceUtcTimestamp != nil {
2975		objectMap["SourceUtcTimestamp"] = anhre.SourceUtcTimestamp
2976	}
2977	if anhre.ApplicationID != nil {
2978		objectMap["ApplicationId"] = anhre.ApplicationID
2979	}
2980	if anhre.EventInstanceID != nil {
2981		objectMap["EventInstanceId"] = anhre.EventInstanceID
2982	}
2983	if anhre.Category != nil {
2984		objectMap["Category"] = anhre.Category
2985	}
2986	if anhre.TimeStamp != nil {
2987		objectMap["TimeStamp"] = anhre.TimeStamp
2988	}
2989	if anhre.HasCorrelatedEvents != nil {
2990		objectMap["HasCorrelatedEvents"] = anhre.HasCorrelatedEvents
2991	}
2992	if anhre.Kind != "" {
2993		objectMap["Kind"] = anhre.Kind
2994	}
2995	return json.Marshal(objectMap)
2996}
2997
2998// AsApplicationEvent is the BasicFabricEvent implementation for ApplicationNewHealthReportEvent.
2999func (anhre ApplicationNewHealthReportEvent) AsApplicationEvent() (*ApplicationEvent, bool) {
3000	return nil, false
3001}
3002
3003// AsBasicApplicationEvent is the BasicFabricEvent implementation for ApplicationNewHealthReportEvent.
3004func (anhre ApplicationNewHealthReportEvent) AsBasicApplicationEvent() (BasicApplicationEvent, bool) {
3005	return &anhre, true
3006}
3007
3008// AsClusterEvent is the BasicFabricEvent implementation for ApplicationNewHealthReportEvent.
3009func (anhre ApplicationNewHealthReportEvent) AsClusterEvent() (*ClusterEvent, bool) {
3010	return nil, false
3011}
3012
3013// AsBasicClusterEvent is the BasicFabricEvent implementation for ApplicationNewHealthReportEvent.
3014func (anhre ApplicationNewHealthReportEvent) AsBasicClusterEvent() (BasicClusterEvent, bool) {
3015	return nil, false
3016}
3017
3018// AsContainerInstanceEvent is the BasicFabricEvent implementation for ApplicationNewHealthReportEvent.
3019func (anhre ApplicationNewHealthReportEvent) AsContainerInstanceEvent() (*ContainerInstanceEvent, bool) {
3020	return nil, false
3021}
3022
3023// AsNodeEvent is the BasicFabricEvent implementation for ApplicationNewHealthReportEvent.
3024func (anhre ApplicationNewHealthReportEvent) AsNodeEvent() (*NodeEvent, bool) {
3025	return nil, false
3026}
3027
3028// AsBasicNodeEvent is the BasicFabricEvent implementation for ApplicationNewHealthReportEvent.
3029func (anhre ApplicationNewHealthReportEvent) AsBasicNodeEvent() (BasicNodeEvent, bool) {
3030	return nil, false
3031}
3032
3033// AsPartitionAnalysisEvent is the BasicFabricEvent implementation for ApplicationNewHealthReportEvent.
3034func (anhre ApplicationNewHealthReportEvent) AsPartitionAnalysisEvent() (*PartitionAnalysisEvent, bool) {
3035	return nil, false
3036}
3037
3038// AsBasicPartitionAnalysisEvent is the BasicFabricEvent implementation for ApplicationNewHealthReportEvent.
3039func (anhre ApplicationNewHealthReportEvent) AsBasicPartitionAnalysisEvent() (BasicPartitionAnalysisEvent, bool) {
3040	return nil, false
3041}
3042
3043// AsPartitionEvent is the BasicFabricEvent implementation for ApplicationNewHealthReportEvent.
3044func (anhre ApplicationNewHealthReportEvent) AsPartitionEvent() (*PartitionEvent, bool) {
3045	return nil, false
3046}
3047
3048// AsBasicPartitionEvent is the BasicFabricEvent implementation for ApplicationNewHealthReportEvent.
3049func (anhre ApplicationNewHealthReportEvent) AsBasicPartitionEvent() (BasicPartitionEvent, bool) {
3050	return nil, false
3051}
3052
3053// AsReplicaEvent is the BasicFabricEvent implementation for ApplicationNewHealthReportEvent.
3054func (anhre ApplicationNewHealthReportEvent) AsReplicaEvent() (*ReplicaEvent, bool) {
3055	return nil, false
3056}
3057
3058// AsBasicReplicaEvent is the BasicFabricEvent implementation for ApplicationNewHealthReportEvent.
3059func (anhre ApplicationNewHealthReportEvent) AsBasicReplicaEvent() (BasicReplicaEvent, bool) {
3060	return nil, false
3061}
3062
3063// AsServiceEvent is the BasicFabricEvent implementation for ApplicationNewHealthReportEvent.
3064func (anhre ApplicationNewHealthReportEvent) AsServiceEvent() (*ServiceEvent, bool) {
3065	return nil, false
3066}
3067
3068// AsBasicServiceEvent is the BasicFabricEvent implementation for ApplicationNewHealthReportEvent.
3069func (anhre ApplicationNewHealthReportEvent) AsBasicServiceEvent() (BasicServiceEvent, bool) {
3070	return nil, false
3071}
3072
3073// AsApplicationCreatedEvent is the BasicFabricEvent implementation for ApplicationNewHealthReportEvent.
3074func (anhre ApplicationNewHealthReportEvent) AsApplicationCreatedEvent() (*ApplicationCreatedEvent, bool) {
3075	return nil, false
3076}
3077
3078// AsApplicationDeletedEvent is the BasicFabricEvent implementation for ApplicationNewHealthReportEvent.
3079func (anhre ApplicationNewHealthReportEvent) AsApplicationDeletedEvent() (*ApplicationDeletedEvent, bool) {
3080	return nil, false
3081}
3082
3083// AsApplicationNewHealthReportEvent is the BasicFabricEvent implementation for ApplicationNewHealthReportEvent.
3084func (anhre ApplicationNewHealthReportEvent) AsApplicationNewHealthReportEvent() (*ApplicationNewHealthReportEvent, bool) {
3085	return &anhre, true
3086}
3087
3088// AsApplicationHealthReportExpiredEvent is the BasicFabricEvent implementation for ApplicationNewHealthReportEvent.
3089func (anhre ApplicationNewHealthReportEvent) AsApplicationHealthReportExpiredEvent() (*ApplicationHealthReportExpiredEvent, bool) {
3090	return nil, false
3091}
3092
3093// AsApplicationUpgradeCompletedEvent is the BasicFabricEvent implementation for ApplicationNewHealthReportEvent.
3094func (anhre ApplicationNewHealthReportEvent) AsApplicationUpgradeCompletedEvent() (*ApplicationUpgradeCompletedEvent, bool) {
3095	return nil, false
3096}
3097
3098// AsApplicationUpgradeDomainCompletedEvent is the BasicFabricEvent implementation for ApplicationNewHealthReportEvent.
3099func (anhre ApplicationNewHealthReportEvent) AsApplicationUpgradeDomainCompletedEvent() (*ApplicationUpgradeDomainCompletedEvent, bool) {
3100	return nil, false
3101}
3102
3103// AsApplicationUpgradeRollbackCompletedEvent is the BasicFabricEvent implementation for ApplicationNewHealthReportEvent.
3104func (anhre ApplicationNewHealthReportEvent) AsApplicationUpgradeRollbackCompletedEvent() (*ApplicationUpgradeRollbackCompletedEvent, bool) {
3105	return nil, false
3106}
3107
3108// AsApplicationUpgradeRollbackStartedEvent is the BasicFabricEvent implementation for ApplicationNewHealthReportEvent.
3109func (anhre ApplicationNewHealthReportEvent) AsApplicationUpgradeRollbackStartedEvent() (*ApplicationUpgradeRollbackStartedEvent, bool) {
3110	return nil, false
3111}
3112
3113// AsApplicationUpgradeStartedEvent is the BasicFabricEvent implementation for ApplicationNewHealthReportEvent.
3114func (anhre ApplicationNewHealthReportEvent) AsApplicationUpgradeStartedEvent() (*ApplicationUpgradeStartedEvent, bool) {
3115	return nil, false
3116}
3117
3118// AsDeployedApplicationNewHealthReportEvent is the BasicFabricEvent implementation for ApplicationNewHealthReportEvent.
3119func (anhre ApplicationNewHealthReportEvent) AsDeployedApplicationNewHealthReportEvent() (*DeployedApplicationNewHealthReportEvent, bool) {
3120	return nil, false
3121}
3122
3123// AsDeployedApplicationHealthReportExpiredEvent is the BasicFabricEvent implementation for ApplicationNewHealthReportEvent.
3124func (anhre ApplicationNewHealthReportEvent) AsDeployedApplicationHealthReportExpiredEvent() (*DeployedApplicationHealthReportExpiredEvent, bool) {
3125	return nil, false
3126}
3127
3128// AsApplicationProcessExitedEvent is the BasicFabricEvent implementation for ApplicationNewHealthReportEvent.
3129func (anhre ApplicationNewHealthReportEvent) AsApplicationProcessExitedEvent() (*ApplicationProcessExitedEvent, bool) {
3130	return nil, false
3131}
3132
3133// AsApplicationContainerInstanceExitedEvent is the BasicFabricEvent implementation for ApplicationNewHealthReportEvent.
3134func (anhre ApplicationNewHealthReportEvent) AsApplicationContainerInstanceExitedEvent() (*ApplicationContainerInstanceExitedEvent, bool) {
3135	return nil, false
3136}
3137
3138// AsNodeAbortedEvent is the BasicFabricEvent implementation for ApplicationNewHealthReportEvent.
3139func (anhre ApplicationNewHealthReportEvent) AsNodeAbortedEvent() (*NodeAbortedEvent, bool) {
3140	return nil, false
3141}
3142
3143// AsNodeAddedToClusterEvent is the BasicFabricEvent implementation for ApplicationNewHealthReportEvent.
3144func (anhre ApplicationNewHealthReportEvent) AsNodeAddedToClusterEvent() (*NodeAddedToClusterEvent, bool) {
3145	return nil, false
3146}
3147
3148// AsNodeClosedEvent is the BasicFabricEvent implementation for ApplicationNewHealthReportEvent.
3149func (anhre ApplicationNewHealthReportEvent) AsNodeClosedEvent() (*NodeClosedEvent, bool) {
3150	return nil, false
3151}
3152
3153// AsNodeDeactivateCompletedEvent is the BasicFabricEvent implementation for ApplicationNewHealthReportEvent.
3154func (anhre ApplicationNewHealthReportEvent) AsNodeDeactivateCompletedEvent() (*NodeDeactivateCompletedEvent, bool) {
3155	return nil, false
3156}
3157
3158// AsNodeDeactivateStartedEvent is the BasicFabricEvent implementation for ApplicationNewHealthReportEvent.
3159func (anhre ApplicationNewHealthReportEvent) AsNodeDeactivateStartedEvent() (*NodeDeactivateStartedEvent, bool) {
3160	return nil, false
3161}
3162
3163// AsNodeDownEvent is the BasicFabricEvent implementation for ApplicationNewHealthReportEvent.
3164func (anhre ApplicationNewHealthReportEvent) AsNodeDownEvent() (*NodeDownEvent, bool) {
3165	return nil, false
3166}
3167
3168// AsNodeNewHealthReportEvent is the BasicFabricEvent implementation for ApplicationNewHealthReportEvent.
3169func (anhre ApplicationNewHealthReportEvent) AsNodeNewHealthReportEvent() (*NodeNewHealthReportEvent, bool) {
3170	return nil, false
3171}
3172
3173// AsNodeHealthReportExpiredEvent is the BasicFabricEvent implementation for ApplicationNewHealthReportEvent.
3174func (anhre ApplicationNewHealthReportEvent) AsNodeHealthReportExpiredEvent() (*NodeHealthReportExpiredEvent, bool) {
3175	return nil, false
3176}
3177
3178// AsNodeOpenSucceededEvent is the BasicFabricEvent implementation for ApplicationNewHealthReportEvent.
3179func (anhre ApplicationNewHealthReportEvent) AsNodeOpenSucceededEvent() (*NodeOpenSucceededEvent, bool) {
3180	return nil, false
3181}
3182
3183// AsNodeOpenFailedEvent is the BasicFabricEvent implementation for ApplicationNewHealthReportEvent.
3184func (anhre ApplicationNewHealthReportEvent) AsNodeOpenFailedEvent() (*NodeOpenFailedEvent, bool) {
3185	return nil, false
3186}
3187
3188// AsNodeRemovedFromClusterEvent is the BasicFabricEvent implementation for ApplicationNewHealthReportEvent.
3189func (anhre ApplicationNewHealthReportEvent) AsNodeRemovedFromClusterEvent() (*NodeRemovedFromClusterEvent, bool) {
3190	return nil, false
3191}
3192
3193// AsNodeUpEvent is the BasicFabricEvent implementation for ApplicationNewHealthReportEvent.
3194func (anhre ApplicationNewHealthReportEvent) AsNodeUpEvent() (*NodeUpEvent, bool) {
3195	return nil, false
3196}
3197
3198// AsPartitionNewHealthReportEvent is the BasicFabricEvent implementation for ApplicationNewHealthReportEvent.
3199func (anhre ApplicationNewHealthReportEvent) AsPartitionNewHealthReportEvent() (*PartitionNewHealthReportEvent, bool) {
3200	return nil, false
3201}
3202
3203// AsPartitionHealthReportExpiredEvent is the BasicFabricEvent implementation for ApplicationNewHealthReportEvent.
3204func (anhre ApplicationNewHealthReportEvent) AsPartitionHealthReportExpiredEvent() (*PartitionHealthReportExpiredEvent, bool) {
3205	return nil, false
3206}
3207
3208// AsPartitionReconfiguredEvent is the BasicFabricEvent implementation for ApplicationNewHealthReportEvent.
3209func (anhre ApplicationNewHealthReportEvent) AsPartitionReconfiguredEvent() (*PartitionReconfiguredEvent, bool) {
3210	return nil, false
3211}
3212
3213// AsPartitionPrimaryMoveAnalysisEvent is the BasicFabricEvent implementation for ApplicationNewHealthReportEvent.
3214func (anhre ApplicationNewHealthReportEvent) AsPartitionPrimaryMoveAnalysisEvent() (*PartitionPrimaryMoveAnalysisEvent, bool) {
3215	return nil, false
3216}
3217
3218// AsServiceCreatedEvent is the BasicFabricEvent implementation for ApplicationNewHealthReportEvent.
3219func (anhre ApplicationNewHealthReportEvent) AsServiceCreatedEvent() (*ServiceCreatedEvent, bool) {
3220	return nil, false
3221}
3222
3223// AsServiceDeletedEvent is the BasicFabricEvent implementation for ApplicationNewHealthReportEvent.
3224func (anhre ApplicationNewHealthReportEvent) AsServiceDeletedEvent() (*ServiceDeletedEvent, bool) {
3225	return nil, false
3226}
3227
3228// AsServiceNewHealthReportEvent is the BasicFabricEvent implementation for ApplicationNewHealthReportEvent.
3229func (anhre ApplicationNewHealthReportEvent) AsServiceNewHealthReportEvent() (*ServiceNewHealthReportEvent, bool) {
3230	return nil, false
3231}
3232
3233// AsServiceHealthReportExpiredEvent is the BasicFabricEvent implementation for ApplicationNewHealthReportEvent.
3234func (anhre ApplicationNewHealthReportEvent) AsServiceHealthReportExpiredEvent() (*ServiceHealthReportExpiredEvent, bool) {
3235	return nil, false
3236}
3237
3238// AsDeployedServicePackageNewHealthReportEvent is the BasicFabricEvent implementation for ApplicationNewHealthReportEvent.
3239func (anhre ApplicationNewHealthReportEvent) AsDeployedServicePackageNewHealthReportEvent() (*DeployedServicePackageNewHealthReportEvent, bool) {
3240	return nil, false
3241}
3242
3243// AsDeployedServicePackageHealthReportExpiredEvent is the BasicFabricEvent implementation for ApplicationNewHealthReportEvent.
3244func (anhre ApplicationNewHealthReportEvent) AsDeployedServicePackageHealthReportExpiredEvent() (*DeployedServicePackageHealthReportExpiredEvent, bool) {
3245	return nil, false
3246}
3247
3248// AsStatefulReplicaNewHealthReportEvent is the BasicFabricEvent implementation for ApplicationNewHealthReportEvent.
3249func (anhre ApplicationNewHealthReportEvent) AsStatefulReplicaNewHealthReportEvent() (*StatefulReplicaNewHealthReportEvent, bool) {
3250	return nil, false
3251}
3252
3253// AsStatefulReplicaHealthReportExpiredEvent is the BasicFabricEvent implementation for ApplicationNewHealthReportEvent.
3254func (anhre ApplicationNewHealthReportEvent) AsStatefulReplicaHealthReportExpiredEvent() (*StatefulReplicaHealthReportExpiredEvent, bool) {
3255	return nil, false
3256}
3257
3258// AsStatelessReplicaNewHealthReportEvent is the BasicFabricEvent implementation for ApplicationNewHealthReportEvent.
3259func (anhre ApplicationNewHealthReportEvent) AsStatelessReplicaNewHealthReportEvent() (*StatelessReplicaNewHealthReportEvent, bool) {
3260	return nil, false
3261}
3262
3263// AsStatelessReplicaHealthReportExpiredEvent is the BasicFabricEvent implementation for ApplicationNewHealthReportEvent.
3264func (anhre ApplicationNewHealthReportEvent) AsStatelessReplicaHealthReportExpiredEvent() (*StatelessReplicaHealthReportExpiredEvent, bool) {
3265	return nil, false
3266}
3267
3268// AsClusterNewHealthReportEvent is the BasicFabricEvent implementation for ApplicationNewHealthReportEvent.
3269func (anhre ApplicationNewHealthReportEvent) AsClusterNewHealthReportEvent() (*ClusterNewHealthReportEvent, bool) {
3270	return nil, false
3271}
3272
3273// AsClusterHealthReportExpiredEvent is the BasicFabricEvent implementation for ApplicationNewHealthReportEvent.
3274func (anhre ApplicationNewHealthReportEvent) AsClusterHealthReportExpiredEvent() (*ClusterHealthReportExpiredEvent, bool) {
3275	return nil, false
3276}
3277
3278// AsClusterUpgradeCompletedEvent is the BasicFabricEvent implementation for ApplicationNewHealthReportEvent.
3279func (anhre ApplicationNewHealthReportEvent) AsClusterUpgradeCompletedEvent() (*ClusterUpgradeCompletedEvent, bool) {
3280	return nil, false
3281}
3282
3283// AsClusterUpgradeDomainCompletedEvent is the BasicFabricEvent implementation for ApplicationNewHealthReportEvent.
3284func (anhre ApplicationNewHealthReportEvent) AsClusterUpgradeDomainCompletedEvent() (*ClusterUpgradeDomainCompletedEvent, bool) {
3285	return nil, false
3286}
3287
3288// AsClusterUpgradeRollbackCompletedEvent is the BasicFabricEvent implementation for ApplicationNewHealthReportEvent.
3289func (anhre ApplicationNewHealthReportEvent) AsClusterUpgradeRollbackCompletedEvent() (*ClusterUpgradeRollbackCompletedEvent, bool) {
3290	return nil, false
3291}
3292
3293// AsClusterUpgradeRollbackStartedEvent is the BasicFabricEvent implementation for ApplicationNewHealthReportEvent.
3294func (anhre ApplicationNewHealthReportEvent) AsClusterUpgradeRollbackStartedEvent() (*ClusterUpgradeRollbackStartedEvent, bool) {
3295	return nil, false
3296}
3297
3298// AsClusterUpgradeStartedEvent is the BasicFabricEvent implementation for ApplicationNewHealthReportEvent.
3299func (anhre ApplicationNewHealthReportEvent) AsClusterUpgradeStartedEvent() (*ClusterUpgradeStartedEvent, bool) {
3300	return nil, false
3301}
3302
3303// AsChaosStoppedEvent is the BasicFabricEvent implementation for ApplicationNewHealthReportEvent.
3304func (anhre ApplicationNewHealthReportEvent) AsChaosStoppedEvent() (*ChaosStoppedEvent, bool) {
3305	return nil, false
3306}
3307
3308// AsChaosStartedEvent is the BasicFabricEvent implementation for ApplicationNewHealthReportEvent.
3309func (anhre ApplicationNewHealthReportEvent) AsChaosStartedEvent() (*ChaosStartedEvent, bool) {
3310	return nil, false
3311}
3312
3313// AsChaosCodePackageRestartScheduledEvent is the BasicFabricEvent implementation for ApplicationNewHealthReportEvent.
3314func (anhre ApplicationNewHealthReportEvent) AsChaosCodePackageRestartScheduledEvent() (*ChaosCodePackageRestartScheduledEvent, bool) {
3315	return nil, false
3316}
3317
3318// AsChaosReplicaRemovalScheduledEvent is the BasicFabricEvent implementation for ApplicationNewHealthReportEvent.
3319func (anhre ApplicationNewHealthReportEvent) AsChaosReplicaRemovalScheduledEvent() (*ChaosReplicaRemovalScheduledEvent, bool) {
3320	return nil, false
3321}
3322
3323// AsChaosPartitionSecondaryMoveScheduledEvent is the BasicFabricEvent implementation for ApplicationNewHealthReportEvent.
3324func (anhre ApplicationNewHealthReportEvent) AsChaosPartitionSecondaryMoveScheduledEvent() (*ChaosPartitionSecondaryMoveScheduledEvent, bool) {
3325	return nil, false
3326}
3327
3328// AsChaosPartitionPrimaryMoveScheduledEvent is the BasicFabricEvent implementation for ApplicationNewHealthReportEvent.
3329func (anhre ApplicationNewHealthReportEvent) AsChaosPartitionPrimaryMoveScheduledEvent() (*ChaosPartitionPrimaryMoveScheduledEvent, bool) {
3330	return nil, false
3331}
3332
3333// AsChaosReplicaRestartScheduledEvent is the BasicFabricEvent implementation for ApplicationNewHealthReportEvent.
3334func (anhre ApplicationNewHealthReportEvent) AsChaosReplicaRestartScheduledEvent() (*ChaosReplicaRestartScheduledEvent, bool) {
3335	return nil, false
3336}
3337
3338// AsChaosNodeRestartScheduledEvent is the BasicFabricEvent implementation for ApplicationNewHealthReportEvent.
3339func (anhre ApplicationNewHealthReportEvent) AsChaosNodeRestartScheduledEvent() (*ChaosNodeRestartScheduledEvent, bool) {
3340	return nil, false
3341}
3342
3343// AsFabricEvent is the BasicFabricEvent implementation for ApplicationNewHealthReportEvent.
3344func (anhre ApplicationNewHealthReportEvent) AsFabricEvent() (*FabricEvent, bool) {
3345	return nil, false
3346}
3347
3348// AsBasicFabricEvent is the BasicFabricEvent implementation for ApplicationNewHealthReportEvent.
3349func (anhre ApplicationNewHealthReportEvent) AsBasicFabricEvent() (BasicFabricEvent, bool) {
3350	return &anhre, true
3351}
3352
3353// ApplicationParameter describes an application parameter override to be applied when creating or
3354// upgrading an application.
3355type ApplicationParameter struct {
3356	// Key - The name of the parameter.
3357	Key *string `json:"Key,omitempty"`
3358	// Value - The value of the parameter.
3359	Value *string `json:"Value,omitempty"`
3360}
3361
3362// ApplicationProcessExitedEvent process Exited event.
3363type ApplicationProcessExitedEvent struct {
3364	// ServiceName - Name of Service.
3365	ServiceName *string `json:"ServiceName,omitempty"`
3366	// ServicePackageName - Name of Service package.
3367	ServicePackageName *string `json:"ServicePackageName,omitempty"`
3368	// ServicePackageActivationID - Activation Id of Service package.
3369	ServicePackageActivationID *string `json:"ServicePackageActivationId,omitempty"`
3370	// IsExclusive - Indicates IsExclusive flag.
3371	IsExclusive *bool `json:"IsExclusive,omitempty"`
3372	// CodePackageName - Name of Code package.
3373	CodePackageName *string `json:"CodePackageName,omitempty"`
3374	// EntryPointType - Type of EntryPoint.
3375	EntryPointType *string `json:"EntryPointType,omitempty"`
3376	// ExeName - Name of executable.
3377	ExeName *string `json:"ExeName,omitempty"`
3378	// ProcessID - Process Id.
3379	ProcessID *int64 `json:"ProcessId,omitempty"`
3380	// HostID - Host Id.
3381	HostID *string `json:"HostId,omitempty"`
3382	// ExitCode - Exit code of process.
3383	ExitCode *int64 `json:"ExitCode,omitempty"`
3384	// UnexpectedTermination - Indicates if termination is unexpected.
3385	UnexpectedTermination *bool `json:"UnexpectedTermination,omitempty"`
3386	// StartTime - Start time of process.
3387	StartTime *date.Time `json:"StartTime,omitempty"`
3388	// 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.
3389	// Starting in version 6.0, hierarchical names are delimited with the "\~" character. For example, if the application name is "fabric:/myapp/app1",
3390	// the application identity would be "myapp\~app1" in 6.0+ and "myapp/app1" in previous versions.
3391	ApplicationID *string `json:"ApplicationId,omitempty"`
3392	// EventInstanceID - The identifier for the FabricEvent instance.
3393	EventInstanceID *uuid.UUID `json:"EventInstanceId,omitempty"`
3394	// Category - The category of event.
3395	Category *string `json:"Category,omitempty"`
3396	// TimeStamp - The time event was logged.
3397	TimeStamp *date.Time `json:"TimeStamp,omitempty"`
3398	// HasCorrelatedEvents - Shows there is existing related events available.
3399	HasCorrelatedEvents *bool `json:"HasCorrelatedEvents,omitempty"`
3400	// 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'
3401	Kind KindBasicFabricEvent `json:"Kind,omitempty"`
3402}
3403
3404// MarshalJSON is the custom marshaler for ApplicationProcessExitedEvent.
3405func (apee ApplicationProcessExitedEvent) MarshalJSON() ([]byte, error) {
3406	apee.Kind = KindApplicationProcessExited
3407	objectMap := make(map[string]interface{})
3408	if apee.ServiceName != nil {
3409		objectMap["ServiceName"] = apee.ServiceName
3410	}
3411	if apee.ServicePackageName != nil {
3412		objectMap["ServicePackageName"] = apee.ServicePackageName
3413	}
3414	if apee.ServicePackageActivationID != nil {
3415		objectMap["ServicePackageActivationId"] = apee.ServicePackageActivationID
3416	}
3417	if apee.IsExclusive != nil {
3418		objectMap["IsExclusive"] = apee.IsExclusive
3419	}
3420	if apee.CodePackageName != nil {
3421		objectMap["CodePackageName"] = apee.CodePackageName
3422	}
3423	if apee.EntryPointType != nil {
3424		objectMap["EntryPointType"] = apee.EntryPointType
3425	}
3426	if apee.ExeName != nil {
3427		objectMap["ExeName"] = apee.ExeName
3428	}
3429	if apee.ProcessID != nil {
3430		objectMap["ProcessId"] = apee.ProcessID
3431	}
3432	if apee.HostID != nil {
3433		objectMap["HostId"] = apee.HostID
3434	}
3435	if apee.ExitCode != nil {
3436		objectMap["ExitCode"] = apee.ExitCode
3437	}
3438	if apee.UnexpectedTermination != nil {
3439		objectMap["UnexpectedTermination"] = apee.UnexpectedTermination
3440	}
3441	if apee.StartTime != nil {
3442		objectMap["StartTime"] = apee.StartTime
3443	}
3444	if apee.ApplicationID != nil {
3445		objectMap["ApplicationId"] = apee.ApplicationID
3446	}
3447	if apee.EventInstanceID != nil {
3448		objectMap["EventInstanceId"] = apee.EventInstanceID
3449	}
3450	if apee.Category != nil {
3451		objectMap["Category"] = apee.Category
3452	}
3453	if apee.TimeStamp != nil {
3454		objectMap["TimeStamp"] = apee.TimeStamp
3455	}
3456	if apee.HasCorrelatedEvents != nil {
3457		objectMap["HasCorrelatedEvents"] = apee.HasCorrelatedEvents
3458	}
3459	if apee.Kind != "" {
3460		objectMap["Kind"] = apee.Kind
3461	}
3462	return json.Marshal(objectMap)
3463}
3464
3465// AsApplicationEvent is the BasicFabricEvent implementation for ApplicationProcessExitedEvent.
3466func (apee ApplicationProcessExitedEvent) AsApplicationEvent() (*ApplicationEvent, bool) {
3467	return nil, false
3468}
3469
3470// AsBasicApplicationEvent is the BasicFabricEvent implementation for ApplicationProcessExitedEvent.
3471func (apee ApplicationProcessExitedEvent) AsBasicApplicationEvent() (BasicApplicationEvent, bool) {
3472	return &apee, true
3473}
3474
3475// AsClusterEvent is the BasicFabricEvent implementation for ApplicationProcessExitedEvent.
3476func (apee ApplicationProcessExitedEvent) AsClusterEvent() (*ClusterEvent, bool) {
3477	return nil, false
3478}
3479
3480// AsBasicClusterEvent is the BasicFabricEvent implementation for ApplicationProcessExitedEvent.
3481func (apee ApplicationProcessExitedEvent) AsBasicClusterEvent() (BasicClusterEvent, bool) {
3482	return nil, false
3483}
3484
3485// AsContainerInstanceEvent is the BasicFabricEvent implementation for ApplicationProcessExitedEvent.
3486func (apee ApplicationProcessExitedEvent) AsContainerInstanceEvent() (*ContainerInstanceEvent, bool) {
3487	return nil, false
3488}
3489
3490// AsNodeEvent is the BasicFabricEvent implementation for ApplicationProcessExitedEvent.
3491func (apee ApplicationProcessExitedEvent) AsNodeEvent() (*NodeEvent, bool) {
3492	return nil, false
3493}
3494
3495// AsBasicNodeEvent is the BasicFabricEvent implementation for ApplicationProcessExitedEvent.
3496func (apee ApplicationProcessExitedEvent) AsBasicNodeEvent() (BasicNodeEvent, bool) {
3497	return nil, false
3498}
3499
3500// AsPartitionAnalysisEvent is the BasicFabricEvent implementation for ApplicationProcessExitedEvent.
3501func (apee ApplicationProcessExitedEvent) AsPartitionAnalysisEvent() (*PartitionAnalysisEvent, bool) {
3502	return nil, false
3503}
3504
3505// AsBasicPartitionAnalysisEvent is the BasicFabricEvent implementation for ApplicationProcessExitedEvent.
3506func (apee ApplicationProcessExitedEvent) AsBasicPartitionAnalysisEvent() (BasicPartitionAnalysisEvent, bool) {
3507	return nil, false
3508}
3509
3510// AsPartitionEvent is the BasicFabricEvent implementation for ApplicationProcessExitedEvent.
3511func (apee ApplicationProcessExitedEvent) AsPartitionEvent() (*PartitionEvent, bool) {
3512	return nil, false
3513}
3514
3515// AsBasicPartitionEvent is the BasicFabricEvent implementation for ApplicationProcessExitedEvent.
3516func (apee ApplicationProcessExitedEvent) AsBasicPartitionEvent() (BasicPartitionEvent, bool) {
3517	return nil, false
3518}
3519
3520// AsReplicaEvent is the BasicFabricEvent implementation for ApplicationProcessExitedEvent.
3521func (apee ApplicationProcessExitedEvent) AsReplicaEvent() (*ReplicaEvent, bool) {
3522	return nil, false
3523}
3524
3525// AsBasicReplicaEvent is the BasicFabricEvent implementation for ApplicationProcessExitedEvent.
3526func (apee ApplicationProcessExitedEvent) AsBasicReplicaEvent() (BasicReplicaEvent, bool) {
3527	return nil, false
3528}
3529
3530// AsServiceEvent is the BasicFabricEvent implementation for ApplicationProcessExitedEvent.
3531func (apee ApplicationProcessExitedEvent) AsServiceEvent() (*ServiceEvent, bool) {
3532	return nil, false
3533}
3534
3535// AsBasicServiceEvent is the BasicFabricEvent implementation for ApplicationProcessExitedEvent.
3536func (apee ApplicationProcessExitedEvent) AsBasicServiceEvent() (BasicServiceEvent, bool) {
3537	return nil, false
3538}
3539
3540// AsApplicationCreatedEvent is the BasicFabricEvent implementation for ApplicationProcessExitedEvent.
3541func (apee ApplicationProcessExitedEvent) AsApplicationCreatedEvent() (*ApplicationCreatedEvent, bool) {
3542	return nil, false
3543}
3544
3545// AsApplicationDeletedEvent is the BasicFabricEvent implementation for ApplicationProcessExitedEvent.
3546func (apee ApplicationProcessExitedEvent) AsApplicationDeletedEvent() (*ApplicationDeletedEvent, bool) {
3547	return nil, false
3548}
3549
3550// AsApplicationNewHealthReportEvent is the BasicFabricEvent implementation for ApplicationProcessExitedEvent.
3551func (apee ApplicationProcessExitedEvent) AsApplicationNewHealthReportEvent() (*ApplicationNewHealthReportEvent, bool) {
3552	return nil, false
3553}
3554
3555// AsApplicationHealthReportExpiredEvent is the BasicFabricEvent implementation for ApplicationProcessExitedEvent.
3556func (apee ApplicationProcessExitedEvent) AsApplicationHealthReportExpiredEvent() (*ApplicationHealthReportExpiredEvent, bool) {
3557	return nil, false
3558}
3559
3560// AsApplicationUpgradeCompletedEvent is the BasicFabricEvent implementation for ApplicationProcessExitedEvent.
3561func (apee ApplicationProcessExitedEvent) AsApplicationUpgradeCompletedEvent() (*ApplicationUpgradeCompletedEvent, bool) {
3562	return nil, false
3563}
3564
3565// AsApplicationUpgradeDomainCompletedEvent is the BasicFabricEvent implementation for ApplicationProcessExitedEvent.
3566func (apee ApplicationProcessExitedEvent) AsApplicationUpgradeDomainCompletedEvent() (*ApplicationUpgradeDomainCompletedEvent, bool) {
3567	return nil, false
3568}
3569
3570// AsApplicationUpgradeRollbackCompletedEvent is the BasicFabricEvent implementation for ApplicationProcessExitedEvent.
3571func (apee ApplicationProcessExitedEvent) AsApplicationUpgradeRollbackCompletedEvent() (*ApplicationUpgradeRollbackCompletedEvent, bool) {
3572	return nil, false
3573}
3574
3575// AsApplicationUpgradeRollbackStartedEvent is the BasicFabricEvent implementation for ApplicationProcessExitedEvent.
3576func (apee ApplicationProcessExitedEvent) AsApplicationUpgradeRollbackStartedEvent() (*ApplicationUpgradeRollbackStartedEvent, bool) {
3577	return nil, false
3578}
3579
3580// AsApplicationUpgradeStartedEvent is the BasicFabricEvent implementation for ApplicationProcessExitedEvent.
3581func (apee ApplicationProcessExitedEvent) AsApplicationUpgradeStartedEvent() (*ApplicationUpgradeStartedEvent, bool) {
3582	return nil, false
3583}
3584
3585// AsDeployedApplicationNewHealthReportEvent is the BasicFabricEvent implementation for ApplicationProcessExitedEvent.
3586func (apee ApplicationProcessExitedEvent) AsDeployedApplicationNewHealthReportEvent() (*DeployedApplicationNewHealthReportEvent, bool) {
3587	return nil, false
3588}
3589
3590// AsDeployedApplicationHealthReportExpiredEvent is the BasicFabricEvent implementation for ApplicationProcessExitedEvent.
3591func (apee ApplicationProcessExitedEvent) AsDeployedApplicationHealthReportExpiredEvent() (*DeployedApplicationHealthReportExpiredEvent, bool) {
3592	return nil, false
3593}
3594
3595// AsApplicationProcessExitedEvent is the BasicFabricEvent implementation for ApplicationProcessExitedEvent.
3596func (apee ApplicationProcessExitedEvent) AsApplicationProcessExitedEvent() (*ApplicationProcessExitedEvent, bool) {
3597	return &apee, true
3598}
3599
3600// AsApplicationContainerInstanceExitedEvent is the BasicFabricEvent implementation for ApplicationProcessExitedEvent.
3601func (apee ApplicationProcessExitedEvent) AsApplicationContainerInstanceExitedEvent() (*ApplicationContainerInstanceExitedEvent, bool) {
3602	return nil, false
3603}
3604
3605// AsNodeAbortedEvent is the BasicFabricEvent implementation for ApplicationProcessExitedEvent.
3606func (apee ApplicationProcessExitedEvent) AsNodeAbortedEvent() (*NodeAbortedEvent, bool) {
3607	return nil, false
3608}
3609
3610// AsNodeAddedToClusterEvent is the BasicFabricEvent implementation for ApplicationProcessExitedEvent.
3611func (apee ApplicationProcessExitedEvent) AsNodeAddedToClusterEvent() (*NodeAddedToClusterEvent, bool) {
3612	return nil, false
3613}
3614
3615// AsNodeClosedEvent is the BasicFabricEvent implementation for ApplicationProcessExitedEvent.
3616func (apee ApplicationProcessExitedEvent) AsNodeClosedEvent() (*NodeClosedEvent, bool) {
3617	return nil, false
3618}
3619
3620// AsNodeDeactivateCompletedEvent is the BasicFabricEvent implementation for ApplicationProcessExitedEvent.
3621func (apee ApplicationProcessExitedEvent) AsNodeDeactivateCompletedEvent() (*NodeDeactivateCompletedEvent, bool) {
3622	return nil, false
3623}
3624
3625// AsNodeDeactivateStartedEvent is the BasicFabricEvent implementation for ApplicationProcessExitedEvent.
3626func (apee ApplicationProcessExitedEvent) AsNodeDeactivateStartedEvent() (*NodeDeactivateStartedEvent, bool) {
3627	return nil, false
3628}
3629
3630// AsNodeDownEvent is the BasicFabricEvent implementation for ApplicationProcessExitedEvent.
3631func (apee ApplicationProcessExitedEvent) AsNodeDownEvent() (*NodeDownEvent, bool) {
3632	return nil, false
3633}
3634
3635// AsNodeNewHealthReportEvent is the BasicFabricEvent implementation for ApplicationProcessExitedEvent.
3636func (apee ApplicationProcessExitedEvent) AsNodeNewHealthReportEvent() (*NodeNewHealthReportEvent, bool) {
3637	return nil, false
3638}
3639
3640// AsNodeHealthReportExpiredEvent is the BasicFabricEvent implementation for ApplicationProcessExitedEvent.
3641func (apee ApplicationProcessExitedEvent) AsNodeHealthReportExpiredEvent() (*NodeHealthReportExpiredEvent, bool) {
3642	return nil, false
3643}
3644
3645// AsNodeOpenSucceededEvent is the BasicFabricEvent implementation for ApplicationProcessExitedEvent.
3646func (apee ApplicationProcessExitedEvent) AsNodeOpenSucceededEvent() (*NodeOpenSucceededEvent, bool) {
3647	return nil, false
3648}
3649
3650// AsNodeOpenFailedEvent is the BasicFabricEvent implementation for ApplicationProcessExitedEvent.
3651func (apee ApplicationProcessExitedEvent) AsNodeOpenFailedEvent() (*NodeOpenFailedEvent, bool) {
3652	return nil, false
3653}
3654
3655// AsNodeRemovedFromClusterEvent is the BasicFabricEvent implementation for ApplicationProcessExitedEvent.
3656func (apee ApplicationProcessExitedEvent) AsNodeRemovedFromClusterEvent() (*NodeRemovedFromClusterEvent, bool) {
3657	return nil, false
3658}
3659
3660// AsNodeUpEvent is the BasicFabricEvent implementation for ApplicationProcessExitedEvent.
3661func (apee ApplicationProcessExitedEvent) AsNodeUpEvent() (*NodeUpEvent, bool) {
3662	return nil, false
3663}
3664
3665// AsPartitionNewHealthReportEvent is the BasicFabricEvent implementation for ApplicationProcessExitedEvent.
3666func (apee ApplicationProcessExitedEvent) AsPartitionNewHealthReportEvent() (*PartitionNewHealthReportEvent, bool) {
3667	return nil, false
3668}
3669
3670// AsPartitionHealthReportExpiredEvent is the BasicFabricEvent implementation for ApplicationProcessExitedEvent.
3671func (apee ApplicationProcessExitedEvent) AsPartitionHealthReportExpiredEvent() (*PartitionHealthReportExpiredEvent, bool) {
3672	return nil, false
3673}
3674
3675// AsPartitionReconfiguredEvent is the BasicFabricEvent implementation for ApplicationProcessExitedEvent.
3676func (apee ApplicationProcessExitedEvent) AsPartitionReconfiguredEvent() (*PartitionReconfiguredEvent, bool) {
3677	return nil, false
3678}
3679
3680// AsPartitionPrimaryMoveAnalysisEvent is the BasicFabricEvent implementation for ApplicationProcessExitedEvent.
3681func (apee ApplicationProcessExitedEvent) AsPartitionPrimaryMoveAnalysisEvent() (*PartitionPrimaryMoveAnalysisEvent, bool) {
3682	return nil, false
3683}
3684
3685// AsServiceCreatedEvent is the BasicFabricEvent implementation for ApplicationProcessExitedEvent.
3686func (apee ApplicationProcessExitedEvent) AsServiceCreatedEvent() (*ServiceCreatedEvent, bool) {
3687	return nil, false
3688}
3689
3690// AsServiceDeletedEvent is the BasicFabricEvent implementation for ApplicationProcessExitedEvent.
3691func (apee ApplicationProcessExitedEvent) AsServiceDeletedEvent() (*ServiceDeletedEvent, bool) {
3692	return nil, false
3693}
3694
3695// AsServiceNewHealthReportEvent is the BasicFabricEvent implementation for ApplicationProcessExitedEvent.
3696func (apee ApplicationProcessExitedEvent) AsServiceNewHealthReportEvent() (*ServiceNewHealthReportEvent, bool) {
3697	return nil, false
3698}
3699
3700// AsServiceHealthReportExpiredEvent is the BasicFabricEvent implementation for ApplicationProcessExitedEvent.
3701func (apee ApplicationProcessExitedEvent) AsServiceHealthReportExpiredEvent() (*ServiceHealthReportExpiredEvent, bool) {
3702	return nil, false
3703}
3704
3705// AsDeployedServicePackageNewHealthReportEvent is the BasicFabricEvent implementation for ApplicationProcessExitedEvent.
3706func (apee ApplicationProcessExitedEvent) AsDeployedServicePackageNewHealthReportEvent() (*DeployedServicePackageNewHealthReportEvent, bool) {
3707	return nil, false
3708}
3709
3710// AsDeployedServicePackageHealthReportExpiredEvent is the BasicFabricEvent implementation for ApplicationProcessExitedEvent.
3711func (apee ApplicationProcessExitedEvent) AsDeployedServicePackageHealthReportExpiredEvent() (*DeployedServicePackageHealthReportExpiredEvent, bool) {
3712	return nil, false
3713}
3714
3715// AsStatefulReplicaNewHealthReportEvent is the BasicFabricEvent implementation for ApplicationProcessExitedEvent.
3716func (apee ApplicationProcessExitedEvent) AsStatefulReplicaNewHealthReportEvent() (*StatefulReplicaNewHealthReportEvent, bool) {
3717	return nil, false
3718}
3719
3720// AsStatefulReplicaHealthReportExpiredEvent is the BasicFabricEvent implementation for ApplicationProcessExitedEvent.
3721func (apee ApplicationProcessExitedEvent) AsStatefulReplicaHealthReportExpiredEvent() (*StatefulReplicaHealthReportExpiredEvent, bool) {
3722	return nil, false
3723}
3724
3725// AsStatelessReplicaNewHealthReportEvent is the BasicFabricEvent implementation for ApplicationProcessExitedEvent.
3726func (apee ApplicationProcessExitedEvent) AsStatelessReplicaNewHealthReportEvent() (*StatelessReplicaNewHealthReportEvent, bool) {
3727	return nil, false
3728}
3729
3730// AsStatelessReplicaHealthReportExpiredEvent is the BasicFabricEvent implementation for ApplicationProcessExitedEvent.
3731func (apee ApplicationProcessExitedEvent) AsStatelessReplicaHealthReportExpiredEvent() (*StatelessReplicaHealthReportExpiredEvent, bool) {
3732	return nil, false
3733}
3734
3735// AsClusterNewHealthReportEvent is the BasicFabricEvent implementation for ApplicationProcessExitedEvent.
3736func (apee ApplicationProcessExitedEvent) AsClusterNewHealthReportEvent() (*ClusterNewHealthReportEvent, bool) {
3737	return nil, false
3738}
3739
3740// AsClusterHealthReportExpiredEvent is the BasicFabricEvent implementation for ApplicationProcessExitedEvent.
3741func (apee ApplicationProcessExitedEvent) AsClusterHealthReportExpiredEvent() (*ClusterHealthReportExpiredEvent, bool) {
3742	return nil, false
3743}
3744
3745// AsClusterUpgradeCompletedEvent is the BasicFabricEvent implementation for ApplicationProcessExitedEvent.
3746func (apee ApplicationProcessExitedEvent) AsClusterUpgradeCompletedEvent() (*ClusterUpgradeCompletedEvent, bool) {
3747	return nil, false
3748}
3749
3750// AsClusterUpgradeDomainCompletedEvent is the BasicFabricEvent implementation for ApplicationProcessExitedEvent.
3751func (apee ApplicationProcessExitedEvent) AsClusterUpgradeDomainCompletedEvent() (*ClusterUpgradeDomainCompletedEvent, bool) {
3752	return nil, false
3753}
3754
3755// AsClusterUpgradeRollbackCompletedEvent is the BasicFabricEvent implementation for ApplicationProcessExitedEvent.
3756func (apee ApplicationProcessExitedEvent) AsClusterUpgradeRollbackCompletedEvent() (*ClusterUpgradeRollbackCompletedEvent, bool) {
3757	return nil, false
3758}
3759
3760// AsClusterUpgradeRollbackStartedEvent is the BasicFabricEvent implementation for ApplicationProcessExitedEvent.
3761func (apee ApplicationProcessExitedEvent) AsClusterUpgradeRollbackStartedEvent() (*ClusterUpgradeRollbackStartedEvent, bool) {
3762	return nil, false
3763}
3764
3765// AsClusterUpgradeStartedEvent is the BasicFabricEvent implementation for ApplicationProcessExitedEvent.
3766func (apee ApplicationProcessExitedEvent) AsClusterUpgradeStartedEvent() (*ClusterUpgradeStartedEvent, bool) {
3767	return nil, false
3768}
3769
3770// AsChaosStoppedEvent is the BasicFabricEvent implementation for ApplicationProcessExitedEvent.
3771func (apee ApplicationProcessExitedEvent) AsChaosStoppedEvent() (*ChaosStoppedEvent, bool) {
3772	return nil, false
3773}
3774
3775// AsChaosStartedEvent is the BasicFabricEvent implementation for ApplicationProcessExitedEvent.
3776func (apee ApplicationProcessExitedEvent) AsChaosStartedEvent() (*ChaosStartedEvent, bool) {
3777	return nil, false
3778}
3779
3780// AsChaosCodePackageRestartScheduledEvent is the BasicFabricEvent implementation for ApplicationProcessExitedEvent.
3781func (apee ApplicationProcessExitedEvent) AsChaosCodePackageRestartScheduledEvent() (*ChaosCodePackageRestartScheduledEvent, bool) {
3782	return nil, false
3783}
3784
3785// AsChaosReplicaRemovalScheduledEvent is the BasicFabricEvent implementation for ApplicationProcessExitedEvent.
3786func (apee ApplicationProcessExitedEvent) AsChaosReplicaRemovalScheduledEvent() (*ChaosReplicaRemovalScheduledEvent, bool) {
3787	return nil, false
3788}
3789
3790// AsChaosPartitionSecondaryMoveScheduledEvent is the BasicFabricEvent implementation for ApplicationProcessExitedEvent.
3791func (apee ApplicationProcessExitedEvent) AsChaosPartitionSecondaryMoveScheduledEvent() (*ChaosPartitionSecondaryMoveScheduledEvent, bool) {
3792	return nil, false
3793}
3794
3795// AsChaosPartitionPrimaryMoveScheduledEvent is the BasicFabricEvent implementation for ApplicationProcessExitedEvent.
3796func (apee ApplicationProcessExitedEvent) AsChaosPartitionPrimaryMoveScheduledEvent() (*ChaosPartitionPrimaryMoveScheduledEvent, bool) {
3797	return nil, false
3798}
3799
3800// AsChaosReplicaRestartScheduledEvent is the BasicFabricEvent implementation for ApplicationProcessExitedEvent.
3801func (apee ApplicationProcessExitedEvent) AsChaosReplicaRestartScheduledEvent() (*ChaosReplicaRestartScheduledEvent, bool) {
3802	return nil, false
3803}
3804
3805// AsChaosNodeRestartScheduledEvent is the BasicFabricEvent implementation for ApplicationProcessExitedEvent.
3806func (apee ApplicationProcessExitedEvent) AsChaosNodeRestartScheduledEvent() (*ChaosNodeRestartScheduledEvent, bool) {
3807	return nil, false
3808}
3809
3810// AsFabricEvent is the BasicFabricEvent implementation for ApplicationProcessExitedEvent.
3811func (apee ApplicationProcessExitedEvent) AsFabricEvent() (*FabricEvent, bool) {
3812	return nil, false
3813}
3814
3815// AsBasicFabricEvent is the BasicFabricEvent implementation for ApplicationProcessExitedEvent.
3816func (apee ApplicationProcessExitedEvent) AsBasicFabricEvent() (BasicFabricEvent, bool) {
3817	return &apee, true
3818}
3819
3820// ApplicationProperties describes properties of a application resource.
3821type ApplicationProperties struct {
3822	// Description - User readable description of the application.
3823	Description *string `json:"description,omitempty"`
3824	// 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.
3825	Services *[]ServiceResourceDescription `json:"services,omitempty"`
3826	// Diagnostics - Describes the diagnostics definition and usage for an application resource.
3827	Diagnostics *DiagnosticsDescription `json:"diagnostics,omitempty"`
3828	// DebugParams - Internal - used by Visual Studio to setup the debugging session on the local development environment.
3829	DebugParams *string `json:"debugParams,omitempty"`
3830	// ServiceNames - READ-ONLY; Names of the services in the application.
3831	ServiceNames *[]string `json:"serviceNames,omitempty"`
3832	// Status - READ-ONLY; Status of the application. Possible values include: 'ResourceStatusUnknown', 'ResourceStatusReady', 'ResourceStatusUpgrading', 'ResourceStatusCreating', 'ResourceStatusDeleting', 'ResourceStatusFailed'
3833	Status ResourceStatus `json:"status,omitempty"`
3834	// StatusDetails - READ-ONLY; Gives additional information about the current status of the application.
3835	StatusDetails *string `json:"statusDetails,omitempty"`
3836	// HealthState - READ-ONLY; Describes the health state of an application resource. Possible values include: 'HealthStateInvalid', 'HealthStateOk', 'HealthStateWarning', 'HealthStateError', 'HealthStateUnknown'
3837	HealthState HealthState `json:"healthState,omitempty"`
3838	// UnhealthyEvaluation - READ-ONLY; 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.
3839	UnhealthyEvaluation *string `json:"unhealthyEvaluation,omitempty"`
3840}
3841
3842// MarshalJSON is the custom marshaler for ApplicationProperties.
3843func (ap ApplicationProperties) MarshalJSON() ([]byte, error) {
3844	objectMap := make(map[string]interface{})
3845	if ap.Description != nil {
3846		objectMap["description"] = ap.Description
3847	}
3848	if ap.Services != nil {
3849		objectMap["services"] = ap.Services
3850	}
3851	if ap.Diagnostics != nil {
3852		objectMap["diagnostics"] = ap.Diagnostics
3853	}
3854	if ap.DebugParams != nil {
3855		objectMap["debugParams"] = ap.DebugParams
3856	}
3857	return json.Marshal(objectMap)
3858}
3859
3860// ApplicationResourceDescription this type describes a application resource.
3861type ApplicationResourceDescription struct {
3862	autorest.Response `json:"-"`
3863	// Name - Name of the Application resource.
3864	Name *string `json:"name,omitempty"`
3865	// ApplicationProperties - Describes properties of a application resource.
3866	*ApplicationProperties `json:"properties,omitempty"`
3867	// Identity - Describes the identity of the application.
3868	Identity *IdentityDescription `json:"identity,omitempty"`
3869}
3870
3871// MarshalJSON is the custom marshaler for ApplicationResourceDescription.
3872func (ard ApplicationResourceDescription) MarshalJSON() ([]byte, error) {
3873	objectMap := make(map[string]interface{})
3874	if ard.Name != nil {
3875		objectMap["name"] = ard.Name
3876	}
3877	if ard.ApplicationProperties != nil {
3878		objectMap["properties"] = ard.ApplicationProperties
3879	}
3880	if ard.Identity != nil {
3881		objectMap["identity"] = ard.Identity
3882	}
3883	return json.Marshal(objectMap)
3884}
3885
3886// UnmarshalJSON is the custom unmarshaler for ApplicationResourceDescription struct.
3887func (ard *ApplicationResourceDescription) UnmarshalJSON(body []byte) error {
3888	var m map[string]*json.RawMessage
3889	err := json.Unmarshal(body, &m)
3890	if err != nil {
3891		return err
3892	}
3893	for k, v := range m {
3894		switch k {
3895		case "name":
3896			if v != nil {
3897				var name string
3898				err = json.Unmarshal(*v, &name)
3899				if err != nil {
3900					return err
3901				}
3902				ard.Name = &name
3903			}
3904		case "properties":
3905			if v != nil {
3906				var applicationProperties ApplicationProperties
3907				err = json.Unmarshal(*v, &applicationProperties)
3908				if err != nil {
3909					return err
3910				}
3911				ard.ApplicationProperties = &applicationProperties
3912			}
3913		case "identity":
3914			if v != nil {
3915				var identity IdentityDescription
3916				err = json.Unmarshal(*v, &identity)
3917				if err != nil {
3918					return err
3919				}
3920				ard.Identity = &identity
3921			}
3922		}
3923	}
3924
3925	return nil
3926}
3927
3928// ApplicationResourceUpgradeProgressInfo this type describes an application resource upgrade.
3929type ApplicationResourceUpgradeProgressInfo struct {
3930	autorest.Response `json:"-"`
3931	// Name - Name of the Application resource.
3932	Name *string `json:"Name,omitempty"`
3933	// TargetApplicationTypeVersion - The target application version for the application upgrade.
3934	TargetApplicationTypeVersion *string `json:"TargetApplicationTypeVersion,omitempty"`
3935	// StartTimestampUtc - The estimated UTC datetime when the upgrade started.
3936	StartTimestampUtc *string `json:"StartTimestampUtc,omitempty"`
3937	// UpgradeState - The state of the application resource upgrade. Possible values include: 'ApplicationResourceUpgradeStateInvalid', 'ApplicationResourceUpgradeStateProvisioningTarget', 'ApplicationResourceUpgradeStateRollingForward', 'ApplicationResourceUpgradeStateUnprovisioningCurrent', 'ApplicationResourceUpgradeStateCompletedRollforward', 'ApplicationResourceUpgradeStateRollingBack', 'ApplicationResourceUpgradeStateUnprovisioningTarget', 'ApplicationResourceUpgradeStateCompletedRollback', 'ApplicationResourceUpgradeStateFailed'
3938	UpgradeState ApplicationResourceUpgradeState `json:"UpgradeState,omitempty"`
3939	// PercentCompleted - The estimated percent of replicas are completed in the upgrade.
3940	PercentCompleted *string `json:"PercentCompleted,omitempty"`
3941	// ServiceUpgradeProgress - List of service upgrade progresses.
3942	ServiceUpgradeProgress *[]ServiceUpgradeProgress `json:"ServiceUpgradeProgress,omitempty"`
3943	// RollingUpgradeMode - The mode used to monitor health during a rolling upgrade. The values are UnmonitoredAuto, UnmonitoredManual, and Monitored. Possible values include: 'RollingUpgradeModeInvalid', 'RollingUpgradeModeUnmonitoredAuto', 'RollingUpgradeModeUnmonitoredManual', 'RollingUpgradeModeMonitored'
3944	RollingUpgradeMode RollingUpgradeMode `json:"RollingUpgradeMode,omitempty"`
3945	// 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.
3946	UpgradeDuration *string `json:"UpgradeDuration,omitempty"`
3947	// ApplicationUpgradeStatusDetails - Additional detailed information about the status of the pending upgrade.
3948	ApplicationUpgradeStatusDetails *string `json:"ApplicationUpgradeStatusDetails,omitempty"`
3949	// 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).
3950	UpgradeReplicaSetCheckTimeoutInSeconds *int64 `json:"UpgradeReplicaSetCheckTimeoutInSeconds,omitempty"`
3951	// FailureTimestampUtc - The estimated UTC datetime when the upgrade failed and FailureAction was executed.
3952	FailureTimestampUtc *string `json:"FailureTimestampUtc,omitempty"`
3953}
3954
3955// ApplicationScopedVolume describes a volume whose lifetime is scoped to the application's lifetime.
3956type ApplicationScopedVolume struct {
3957	// CreationParameters - Describes parameters for creating application-scoped volumes.
3958	CreationParameters BasicApplicationScopedVolumeCreationParameters `json:"creationParameters,omitempty"`
3959	// Name - Name of the volume being referenced.
3960	Name *string `json:"name,omitempty"`
3961	// ReadOnly - The flag indicating whether the volume is read only. Default is 'false'.
3962	ReadOnly *bool `json:"readOnly,omitempty"`
3963	// DestinationPath - The path within the container at which the volume should be mounted. Only valid path characters are allowed.
3964	DestinationPath *string `json:"destinationPath,omitempty"`
3965}
3966
3967// UnmarshalJSON is the custom unmarshaler for ApplicationScopedVolume struct.
3968func (asv *ApplicationScopedVolume) UnmarshalJSON(body []byte) error {
3969	var m map[string]*json.RawMessage
3970	err := json.Unmarshal(body, &m)
3971	if err != nil {
3972		return err
3973	}
3974	for k, v := range m {
3975		switch k {
3976		case "creationParameters":
3977			if v != nil {
3978				creationParameters, err := unmarshalBasicApplicationScopedVolumeCreationParameters(*v)
3979				if err != nil {
3980					return err
3981				}
3982				asv.CreationParameters = creationParameters
3983			}
3984		case "name":
3985			if v != nil {
3986				var name string
3987				err = json.Unmarshal(*v, &name)
3988				if err != nil {
3989					return err
3990				}
3991				asv.Name = &name
3992			}
3993		case "readOnly":
3994			if v != nil {
3995				var readOnly bool
3996				err = json.Unmarshal(*v, &readOnly)
3997				if err != nil {
3998					return err
3999				}
4000				asv.ReadOnly = &readOnly
4001			}
4002		case "destinationPath":
4003			if v != nil {
4004				var destinationPath string
4005				err = json.Unmarshal(*v, &destinationPath)
4006				if err != nil {
4007					return err
4008				}
4009				asv.DestinationPath = &destinationPath
4010			}
4011		}
4012	}
4013
4014	return nil
4015}
4016
4017// BasicApplicationScopedVolumeCreationParameters describes parameters for creating application-scoped volumes.
4018type BasicApplicationScopedVolumeCreationParameters interface {
4019	AsApplicationScopedVolumeCreationParametersServiceFabricVolumeDisk() (*ApplicationScopedVolumeCreationParametersServiceFabricVolumeDisk, bool)
4020	AsApplicationScopedVolumeCreationParameters() (*ApplicationScopedVolumeCreationParameters, bool)
4021}
4022
4023// ApplicationScopedVolumeCreationParameters describes parameters for creating application-scoped volumes.
4024type ApplicationScopedVolumeCreationParameters struct {
4025	// Description - User readable description of the volume.
4026	Description *string `json:"description,omitempty"`
4027	// Kind - Possible values include: 'KindApplicationScopedVolumeCreationParameters', 'KindServiceFabricVolumeDisk'
4028	Kind KindBasicApplicationScopedVolumeCreationParameters `json:"kind,omitempty"`
4029}
4030
4031func unmarshalBasicApplicationScopedVolumeCreationParameters(body []byte) (BasicApplicationScopedVolumeCreationParameters, error) {
4032	var m map[string]interface{}
4033	err := json.Unmarshal(body, &m)
4034	if err != nil {
4035		return nil, err
4036	}
4037
4038	switch m["kind"] {
4039	case string(KindServiceFabricVolumeDisk):
4040		var asvcpsfvd ApplicationScopedVolumeCreationParametersServiceFabricVolumeDisk
4041		err := json.Unmarshal(body, &asvcpsfvd)
4042		return asvcpsfvd, err
4043	default:
4044		var asvcp ApplicationScopedVolumeCreationParameters
4045		err := json.Unmarshal(body, &asvcp)
4046		return asvcp, err
4047	}
4048}
4049func unmarshalBasicApplicationScopedVolumeCreationParametersArray(body []byte) ([]BasicApplicationScopedVolumeCreationParameters, error) {
4050	var rawMessages []*json.RawMessage
4051	err := json.Unmarshal(body, &rawMessages)
4052	if err != nil {
4053		return nil, err
4054	}
4055
4056	asvcpArray := make([]BasicApplicationScopedVolumeCreationParameters, len(rawMessages))
4057
4058	for index, rawMessage := range rawMessages {
4059		asvcp, err := unmarshalBasicApplicationScopedVolumeCreationParameters(*rawMessage)
4060		if err != nil {
4061			return nil, err
4062		}
4063		asvcpArray[index] = asvcp
4064	}
4065	return asvcpArray, nil
4066}
4067
4068// MarshalJSON is the custom marshaler for ApplicationScopedVolumeCreationParameters.
4069func (asvcp ApplicationScopedVolumeCreationParameters) MarshalJSON() ([]byte, error) {
4070	asvcp.Kind = KindApplicationScopedVolumeCreationParameters
4071	objectMap := make(map[string]interface{})
4072	if asvcp.Description != nil {
4073		objectMap["description"] = asvcp.Description
4074	}
4075	if asvcp.Kind != "" {
4076		objectMap["kind"] = asvcp.Kind
4077	}
4078	return json.Marshal(objectMap)
4079}
4080
4081// AsApplicationScopedVolumeCreationParametersServiceFabricVolumeDisk is the BasicApplicationScopedVolumeCreationParameters implementation for ApplicationScopedVolumeCreationParameters.
4082func (asvcp ApplicationScopedVolumeCreationParameters) AsApplicationScopedVolumeCreationParametersServiceFabricVolumeDisk() (*ApplicationScopedVolumeCreationParametersServiceFabricVolumeDisk, bool) {
4083	return nil, false
4084}
4085
4086// AsApplicationScopedVolumeCreationParameters is the BasicApplicationScopedVolumeCreationParameters implementation for ApplicationScopedVolumeCreationParameters.
4087func (asvcp ApplicationScopedVolumeCreationParameters) AsApplicationScopedVolumeCreationParameters() (*ApplicationScopedVolumeCreationParameters, bool) {
4088	return &asvcp, true
4089}
4090
4091// AsBasicApplicationScopedVolumeCreationParameters is the BasicApplicationScopedVolumeCreationParameters implementation for ApplicationScopedVolumeCreationParameters.
4092func (asvcp ApplicationScopedVolumeCreationParameters) AsBasicApplicationScopedVolumeCreationParameters() (BasicApplicationScopedVolumeCreationParameters, bool) {
4093	return &asvcp, true
4094}
4095
4096// ApplicationScopedVolumeCreationParametersServiceFabricVolumeDisk describes parameters for creating
4097// application-scoped volumes provided by Service Fabric Volume Disks
4098type ApplicationScopedVolumeCreationParametersServiceFabricVolumeDisk struct {
4099	// SizeDisk - Volume size. Possible values include: 'SizeTypesSmall', 'SizeTypesMedium', 'SizeTypesLarge'
4100	SizeDisk SizeTypes `json:"sizeDisk,omitempty"`
4101	// Description - User readable description of the volume.
4102	Description *string `json:"description,omitempty"`
4103	// Kind - Possible values include: 'KindApplicationScopedVolumeCreationParameters', 'KindServiceFabricVolumeDisk'
4104	Kind KindBasicApplicationScopedVolumeCreationParameters `json:"kind,omitempty"`
4105}
4106
4107// MarshalJSON is the custom marshaler for ApplicationScopedVolumeCreationParametersServiceFabricVolumeDisk.
4108func (asvcpsfvd ApplicationScopedVolumeCreationParametersServiceFabricVolumeDisk) MarshalJSON() ([]byte, error) {
4109	asvcpsfvd.Kind = KindServiceFabricVolumeDisk
4110	objectMap := make(map[string]interface{})
4111	if asvcpsfvd.SizeDisk != "" {
4112		objectMap["sizeDisk"] = asvcpsfvd.SizeDisk
4113	}
4114	if asvcpsfvd.Description != nil {
4115		objectMap["description"] = asvcpsfvd.Description
4116	}
4117	if asvcpsfvd.Kind != "" {
4118		objectMap["kind"] = asvcpsfvd.Kind
4119	}
4120	return json.Marshal(objectMap)
4121}
4122
4123// AsApplicationScopedVolumeCreationParametersServiceFabricVolumeDisk is the BasicApplicationScopedVolumeCreationParameters implementation for ApplicationScopedVolumeCreationParametersServiceFabricVolumeDisk.
4124func (asvcpsfvd ApplicationScopedVolumeCreationParametersServiceFabricVolumeDisk) AsApplicationScopedVolumeCreationParametersServiceFabricVolumeDisk() (*ApplicationScopedVolumeCreationParametersServiceFabricVolumeDisk, bool) {
4125	return &asvcpsfvd, true
4126}
4127
4128// AsApplicationScopedVolumeCreationParameters is the BasicApplicationScopedVolumeCreationParameters implementation for ApplicationScopedVolumeCreationParametersServiceFabricVolumeDisk.
4129func (asvcpsfvd ApplicationScopedVolumeCreationParametersServiceFabricVolumeDisk) AsApplicationScopedVolumeCreationParameters() (*ApplicationScopedVolumeCreationParameters, bool) {
4130	return nil, false
4131}
4132
4133// AsBasicApplicationScopedVolumeCreationParameters is the BasicApplicationScopedVolumeCreationParameters implementation for ApplicationScopedVolumeCreationParametersServiceFabricVolumeDisk.
4134func (asvcpsfvd ApplicationScopedVolumeCreationParametersServiceFabricVolumeDisk) AsBasicApplicationScopedVolumeCreationParameters() (BasicApplicationScopedVolumeCreationParameters, bool) {
4135	return &asvcpsfvd, true
4136}
4137
4138// ApplicationsHealthEvaluation represents health evaluation for applications, containing health
4139// evaluations for each unhealthy application that impacted current aggregated health state.
4140type ApplicationsHealthEvaluation struct {
4141	// MaxPercentUnhealthyApplications - Maximum allowed percentage of unhealthy applications from the ClusterHealthPolicy.
4142	MaxPercentUnhealthyApplications *int32 `json:"MaxPercentUnhealthyApplications,omitempty"`
4143	// TotalCount - Total number of applications from the health store.
4144	TotalCount *int64 `json:"TotalCount,omitempty"`
4145	// UnhealthyEvaluations - List of unhealthy evaluations that led to the aggregated health state. Includes all the unhealthy ApplicationHealthEvaluation that impacted the aggregated health.
4146	UnhealthyEvaluations *[]HealthEvaluationWrapper `json:"UnhealthyEvaluations,omitempty"`
4147	// 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'
4148	AggregatedHealthState HealthState `json:"AggregatedHealthState,omitempty"`
4149	// Description - Description of the health evaluation, which represents a summary of the evaluation process.
4150	Description *string `json:"Description,omitempty"`
4151	// 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'
4152	Kind Kind `json:"Kind,omitempty"`
4153}
4154
4155// MarshalJSON is the custom marshaler for ApplicationsHealthEvaluation.
4156func (ahe ApplicationsHealthEvaluation) MarshalJSON() ([]byte, error) {
4157	ahe.Kind = KindApplications
4158	objectMap := make(map[string]interface{})
4159	if ahe.MaxPercentUnhealthyApplications != nil {
4160		objectMap["MaxPercentUnhealthyApplications"] = ahe.MaxPercentUnhealthyApplications
4161	}
4162	if ahe.TotalCount != nil {
4163		objectMap["TotalCount"] = ahe.TotalCount
4164	}
4165	if ahe.UnhealthyEvaluations != nil {
4166		objectMap["UnhealthyEvaluations"] = ahe.UnhealthyEvaluations
4167	}
4168	if ahe.AggregatedHealthState != "" {
4169		objectMap["AggregatedHealthState"] = ahe.AggregatedHealthState
4170	}
4171	if ahe.Description != nil {
4172		objectMap["Description"] = ahe.Description
4173	}
4174	if ahe.Kind != "" {
4175		objectMap["Kind"] = ahe.Kind
4176	}
4177	return json.Marshal(objectMap)
4178}
4179
4180// AsApplicationHealthEvaluation is the BasicHealthEvaluation implementation for ApplicationsHealthEvaluation.
4181func (ahe ApplicationsHealthEvaluation) AsApplicationHealthEvaluation() (*ApplicationHealthEvaluation, bool) {
4182	return nil, false
4183}
4184
4185// AsApplicationsHealthEvaluation is the BasicHealthEvaluation implementation for ApplicationsHealthEvaluation.
4186func (ahe ApplicationsHealthEvaluation) AsApplicationsHealthEvaluation() (*ApplicationsHealthEvaluation, bool) {
4187	return &ahe, true
4188}
4189
4190// AsApplicationTypeApplicationsHealthEvaluation is the BasicHealthEvaluation implementation for ApplicationsHealthEvaluation.
4191func (ahe ApplicationsHealthEvaluation) AsApplicationTypeApplicationsHealthEvaluation() (*ApplicationTypeApplicationsHealthEvaluation, bool) {
4192	return nil, false
4193}
4194
4195// AsDeltaNodesCheckHealthEvaluation is the BasicHealthEvaluation implementation for ApplicationsHealthEvaluation.
4196func (ahe ApplicationsHealthEvaluation) AsDeltaNodesCheckHealthEvaluation() (*DeltaNodesCheckHealthEvaluation, bool) {
4197	return nil, false
4198}
4199
4200// AsDeployedApplicationHealthEvaluation is the BasicHealthEvaluation implementation for ApplicationsHealthEvaluation.
4201func (ahe ApplicationsHealthEvaluation) AsDeployedApplicationHealthEvaluation() (*DeployedApplicationHealthEvaluation, bool) {
4202	return nil, false
4203}
4204
4205// AsDeployedApplicationsHealthEvaluation is the BasicHealthEvaluation implementation for ApplicationsHealthEvaluation.
4206func (ahe ApplicationsHealthEvaluation) AsDeployedApplicationsHealthEvaluation() (*DeployedApplicationsHealthEvaluation, bool) {
4207	return nil, false
4208}
4209
4210// AsDeployedServicePackageHealthEvaluation is the BasicHealthEvaluation implementation for ApplicationsHealthEvaluation.
4211func (ahe ApplicationsHealthEvaluation) AsDeployedServicePackageHealthEvaluation() (*DeployedServicePackageHealthEvaluation, bool) {
4212	return nil, false
4213}
4214
4215// AsDeployedServicePackagesHealthEvaluation is the BasicHealthEvaluation implementation for ApplicationsHealthEvaluation.
4216func (ahe ApplicationsHealthEvaluation) AsDeployedServicePackagesHealthEvaluation() (*DeployedServicePackagesHealthEvaluation, bool) {
4217	return nil, false
4218}
4219
4220// AsEventHealthEvaluation is the BasicHealthEvaluation implementation for ApplicationsHealthEvaluation.
4221func (ahe ApplicationsHealthEvaluation) AsEventHealthEvaluation() (*EventHealthEvaluation, bool) {
4222	return nil, false
4223}
4224
4225// AsNodeHealthEvaluation is the BasicHealthEvaluation implementation for ApplicationsHealthEvaluation.
4226func (ahe ApplicationsHealthEvaluation) AsNodeHealthEvaluation() (*NodeHealthEvaluation, bool) {
4227	return nil, false
4228}
4229
4230// AsNodesHealthEvaluation is the BasicHealthEvaluation implementation for ApplicationsHealthEvaluation.
4231func (ahe ApplicationsHealthEvaluation) AsNodesHealthEvaluation() (*NodesHealthEvaluation, bool) {
4232	return nil, false
4233}
4234
4235// AsPartitionHealthEvaluation is the BasicHealthEvaluation implementation for ApplicationsHealthEvaluation.
4236func (ahe ApplicationsHealthEvaluation) AsPartitionHealthEvaluation() (*PartitionHealthEvaluation, bool) {
4237	return nil, false
4238}
4239
4240// AsPartitionsHealthEvaluation is the BasicHealthEvaluation implementation for ApplicationsHealthEvaluation.
4241func (ahe ApplicationsHealthEvaluation) AsPartitionsHealthEvaluation() (*PartitionsHealthEvaluation, bool) {
4242	return nil, false
4243}
4244
4245// AsReplicaHealthEvaluation is the BasicHealthEvaluation implementation for ApplicationsHealthEvaluation.
4246func (ahe ApplicationsHealthEvaluation) AsReplicaHealthEvaluation() (*ReplicaHealthEvaluation, bool) {
4247	return nil, false
4248}
4249
4250// AsReplicasHealthEvaluation is the BasicHealthEvaluation implementation for ApplicationsHealthEvaluation.
4251func (ahe ApplicationsHealthEvaluation) AsReplicasHealthEvaluation() (*ReplicasHealthEvaluation, bool) {
4252	return nil, false
4253}
4254
4255// AsServiceHealthEvaluation is the BasicHealthEvaluation implementation for ApplicationsHealthEvaluation.
4256func (ahe ApplicationsHealthEvaluation) AsServiceHealthEvaluation() (*ServiceHealthEvaluation, bool) {
4257	return nil, false
4258}
4259
4260// AsServicesHealthEvaluation is the BasicHealthEvaluation implementation for ApplicationsHealthEvaluation.
4261func (ahe ApplicationsHealthEvaluation) AsServicesHealthEvaluation() (*ServicesHealthEvaluation, bool) {
4262	return nil, false
4263}
4264
4265// AsSystemApplicationHealthEvaluation is the BasicHealthEvaluation implementation for ApplicationsHealthEvaluation.
4266func (ahe ApplicationsHealthEvaluation) AsSystemApplicationHealthEvaluation() (*SystemApplicationHealthEvaluation, bool) {
4267	return nil, false
4268}
4269
4270// AsUpgradeDomainDeltaNodesCheckHealthEvaluation is the BasicHealthEvaluation implementation for ApplicationsHealthEvaluation.
4271func (ahe ApplicationsHealthEvaluation) AsUpgradeDomainDeltaNodesCheckHealthEvaluation() (*UpgradeDomainDeltaNodesCheckHealthEvaluation, bool) {
4272	return nil, false
4273}
4274
4275// AsUpgradeDomainNodesHealthEvaluation is the BasicHealthEvaluation implementation for ApplicationsHealthEvaluation.
4276func (ahe ApplicationsHealthEvaluation) AsUpgradeDomainNodesHealthEvaluation() (*UpgradeDomainNodesHealthEvaluation, bool) {
4277	return nil, false
4278}
4279
4280// AsHealthEvaluation is the BasicHealthEvaluation implementation for ApplicationsHealthEvaluation.
4281func (ahe ApplicationsHealthEvaluation) AsHealthEvaluation() (*HealthEvaluation, bool) {
4282	return nil, false
4283}
4284
4285// AsBasicHealthEvaluation is the BasicHealthEvaluation implementation for ApplicationsHealthEvaluation.
4286func (ahe ApplicationsHealthEvaluation) AsBasicHealthEvaluation() (BasicHealthEvaluation, bool) {
4287	return &ahe, true
4288}
4289
4290// ApplicationTypeApplicationsHealthEvaluation represents health evaluation for applications of a
4291// particular application type. The application type applications evaluation can be returned when cluster
4292// health evaluation returns unhealthy aggregated health state, either Error or Warning. It contains health
4293// evaluations for each unhealthy application of the included application type that impacted current
4294// aggregated health state.
4295type ApplicationTypeApplicationsHealthEvaluation struct {
4296	// ApplicationTypeName - The application type name as defined in the application manifest.
4297	ApplicationTypeName *string `json:"ApplicationTypeName,omitempty"`
4298	// MaxPercentUnhealthyApplications - Maximum allowed percentage of unhealthy applications for the application type, specified as an entry in ApplicationTypeHealthPolicyMap.
4299	MaxPercentUnhealthyApplications *int32 `json:"MaxPercentUnhealthyApplications,omitempty"`
4300	// TotalCount - Total number of applications of the application type found in the health store.
4301	TotalCount *int64 `json:"TotalCount,omitempty"`
4302	// 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.
4303	UnhealthyEvaluations *[]HealthEvaluationWrapper `json:"UnhealthyEvaluations,omitempty"`
4304	// 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'
4305	AggregatedHealthState HealthState `json:"AggregatedHealthState,omitempty"`
4306	// Description - Description of the health evaluation, which represents a summary of the evaluation process.
4307	Description *string `json:"Description,omitempty"`
4308	// 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'
4309	Kind Kind `json:"Kind,omitempty"`
4310}
4311
4312// MarshalJSON is the custom marshaler for ApplicationTypeApplicationsHealthEvaluation.
4313func (atahe ApplicationTypeApplicationsHealthEvaluation) MarshalJSON() ([]byte, error) {
4314	atahe.Kind = KindApplicationTypeApplications
4315	objectMap := make(map[string]interface{})
4316	if atahe.ApplicationTypeName != nil {
4317		objectMap["ApplicationTypeName"] = atahe.ApplicationTypeName
4318	}
4319	if atahe.MaxPercentUnhealthyApplications != nil {
4320		objectMap["MaxPercentUnhealthyApplications"] = atahe.MaxPercentUnhealthyApplications
4321	}
4322	if atahe.TotalCount != nil {
4323		objectMap["TotalCount"] = atahe.TotalCount
4324	}
4325	if atahe.UnhealthyEvaluations != nil {
4326		objectMap["UnhealthyEvaluations"] = atahe.UnhealthyEvaluations
4327	}
4328	if atahe.AggregatedHealthState != "" {
4329		objectMap["AggregatedHealthState"] = atahe.AggregatedHealthState
4330	}
4331	if atahe.Description != nil {
4332		objectMap["Description"] = atahe.Description
4333	}
4334	if atahe.Kind != "" {
4335		objectMap["Kind"] = atahe.Kind
4336	}
4337	return json.Marshal(objectMap)
4338}
4339
4340// AsApplicationHealthEvaluation is the BasicHealthEvaluation implementation for ApplicationTypeApplicationsHealthEvaluation.
4341func (atahe ApplicationTypeApplicationsHealthEvaluation) AsApplicationHealthEvaluation() (*ApplicationHealthEvaluation, bool) {
4342	return nil, false
4343}
4344
4345// AsApplicationsHealthEvaluation is the BasicHealthEvaluation implementation for ApplicationTypeApplicationsHealthEvaluation.
4346func (atahe ApplicationTypeApplicationsHealthEvaluation) AsApplicationsHealthEvaluation() (*ApplicationsHealthEvaluation, bool) {
4347	return nil, false
4348}
4349
4350// AsApplicationTypeApplicationsHealthEvaluation is the BasicHealthEvaluation implementation for ApplicationTypeApplicationsHealthEvaluation.
4351func (atahe ApplicationTypeApplicationsHealthEvaluation) AsApplicationTypeApplicationsHealthEvaluation() (*ApplicationTypeApplicationsHealthEvaluation, bool) {
4352	return &atahe, true
4353}
4354
4355// AsDeltaNodesCheckHealthEvaluation is the BasicHealthEvaluation implementation for ApplicationTypeApplicationsHealthEvaluation.
4356func (atahe ApplicationTypeApplicationsHealthEvaluation) AsDeltaNodesCheckHealthEvaluation() (*DeltaNodesCheckHealthEvaluation, bool) {
4357	return nil, false
4358}
4359
4360// AsDeployedApplicationHealthEvaluation is the BasicHealthEvaluation implementation for ApplicationTypeApplicationsHealthEvaluation.
4361func (atahe ApplicationTypeApplicationsHealthEvaluation) AsDeployedApplicationHealthEvaluation() (*DeployedApplicationHealthEvaluation, bool) {
4362	return nil, false
4363}
4364
4365// AsDeployedApplicationsHealthEvaluation is the BasicHealthEvaluation implementation for ApplicationTypeApplicationsHealthEvaluation.
4366func (atahe ApplicationTypeApplicationsHealthEvaluation) AsDeployedApplicationsHealthEvaluation() (*DeployedApplicationsHealthEvaluation, bool) {
4367	return nil, false
4368}
4369
4370// AsDeployedServicePackageHealthEvaluation is the BasicHealthEvaluation implementation for ApplicationTypeApplicationsHealthEvaluation.
4371func (atahe ApplicationTypeApplicationsHealthEvaluation) AsDeployedServicePackageHealthEvaluation() (*DeployedServicePackageHealthEvaluation, bool) {
4372	return nil, false
4373}
4374
4375// AsDeployedServicePackagesHealthEvaluation is the BasicHealthEvaluation implementation for ApplicationTypeApplicationsHealthEvaluation.
4376func (atahe ApplicationTypeApplicationsHealthEvaluation) AsDeployedServicePackagesHealthEvaluation() (*DeployedServicePackagesHealthEvaluation, bool) {
4377	return nil, false
4378}
4379
4380// AsEventHealthEvaluation is the BasicHealthEvaluation implementation for ApplicationTypeApplicationsHealthEvaluation.
4381func (atahe ApplicationTypeApplicationsHealthEvaluation) AsEventHealthEvaluation() (*EventHealthEvaluation, bool) {
4382	return nil, false
4383}
4384
4385// AsNodeHealthEvaluation is the BasicHealthEvaluation implementation for ApplicationTypeApplicationsHealthEvaluation.
4386func (atahe ApplicationTypeApplicationsHealthEvaluation) AsNodeHealthEvaluation() (*NodeHealthEvaluation, bool) {
4387	return nil, false
4388}
4389
4390// AsNodesHealthEvaluation is the BasicHealthEvaluation implementation for ApplicationTypeApplicationsHealthEvaluation.
4391func (atahe ApplicationTypeApplicationsHealthEvaluation) AsNodesHealthEvaluation() (*NodesHealthEvaluation, bool) {
4392	return nil, false
4393}
4394
4395// AsPartitionHealthEvaluation is the BasicHealthEvaluation implementation for ApplicationTypeApplicationsHealthEvaluation.
4396func (atahe ApplicationTypeApplicationsHealthEvaluation) AsPartitionHealthEvaluation() (*PartitionHealthEvaluation, bool) {
4397	return nil, false
4398}
4399
4400// AsPartitionsHealthEvaluation is the BasicHealthEvaluation implementation for ApplicationTypeApplicationsHealthEvaluation.
4401func (atahe ApplicationTypeApplicationsHealthEvaluation) AsPartitionsHealthEvaluation() (*PartitionsHealthEvaluation, bool) {
4402	return nil, false
4403}
4404
4405// AsReplicaHealthEvaluation is the BasicHealthEvaluation implementation for ApplicationTypeApplicationsHealthEvaluation.
4406func (atahe ApplicationTypeApplicationsHealthEvaluation) AsReplicaHealthEvaluation() (*ReplicaHealthEvaluation, bool) {
4407	return nil, false
4408}
4409
4410// AsReplicasHealthEvaluation is the BasicHealthEvaluation implementation for ApplicationTypeApplicationsHealthEvaluation.
4411func (atahe ApplicationTypeApplicationsHealthEvaluation) AsReplicasHealthEvaluation() (*ReplicasHealthEvaluation, bool) {
4412	return nil, false
4413}
4414
4415// AsServiceHealthEvaluation is the BasicHealthEvaluation implementation for ApplicationTypeApplicationsHealthEvaluation.
4416func (atahe ApplicationTypeApplicationsHealthEvaluation) AsServiceHealthEvaluation() (*ServiceHealthEvaluation, bool) {
4417	return nil, false
4418}
4419
4420// AsServicesHealthEvaluation is the BasicHealthEvaluation implementation for ApplicationTypeApplicationsHealthEvaluation.
4421func (atahe ApplicationTypeApplicationsHealthEvaluation) AsServicesHealthEvaluation() (*ServicesHealthEvaluation, bool) {
4422	return nil, false
4423}
4424
4425// AsSystemApplicationHealthEvaluation is the BasicHealthEvaluation implementation for ApplicationTypeApplicationsHealthEvaluation.
4426func (atahe ApplicationTypeApplicationsHealthEvaluation) AsSystemApplicationHealthEvaluation() (*SystemApplicationHealthEvaluation, bool) {
4427	return nil, false
4428}
4429
4430// AsUpgradeDomainDeltaNodesCheckHealthEvaluation is the BasicHealthEvaluation implementation for ApplicationTypeApplicationsHealthEvaluation.
4431func (atahe ApplicationTypeApplicationsHealthEvaluation) AsUpgradeDomainDeltaNodesCheckHealthEvaluation() (*UpgradeDomainDeltaNodesCheckHealthEvaluation, bool) {
4432	return nil, false
4433}
4434
4435// AsUpgradeDomainNodesHealthEvaluation is the BasicHealthEvaluation implementation for ApplicationTypeApplicationsHealthEvaluation.
4436func (atahe ApplicationTypeApplicationsHealthEvaluation) AsUpgradeDomainNodesHealthEvaluation() (*UpgradeDomainNodesHealthEvaluation, bool) {
4437	return nil, false
4438}
4439
4440// AsHealthEvaluation is the BasicHealthEvaluation implementation for ApplicationTypeApplicationsHealthEvaluation.
4441func (atahe ApplicationTypeApplicationsHealthEvaluation) AsHealthEvaluation() (*HealthEvaluation, bool) {
4442	return nil, false
4443}
4444
4445// AsBasicHealthEvaluation is the BasicHealthEvaluation implementation for ApplicationTypeApplicationsHealthEvaluation.
4446func (atahe ApplicationTypeApplicationsHealthEvaluation) AsBasicHealthEvaluation() (BasicHealthEvaluation, bool) {
4447	return &atahe, true
4448}
4449
4450// ApplicationTypeHealthPolicyMapItem defines an item in ApplicationTypeHealthPolicyMap.
4451type ApplicationTypeHealthPolicyMapItem struct {
4452	// Key - The key of the application type health policy map item. This is the name of the application type.
4453	Key *string `json:"Key,omitempty"`
4454	// Value - The value of the application type health policy map item.
4455	// The max percent unhealthy applications allowed for the application type. Must be between zero and 100.
4456	Value *int32 `json:"Value,omitempty"`
4457}
4458
4459// ApplicationTypeImageStorePath path description for the application package in the image store specified
4460// during the prior copy operation.
4461type ApplicationTypeImageStorePath struct {
4462	// ApplicationTypeBuildPath - The relative image store path to the application package.
4463	ApplicationTypeBuildPath *string `json:"ApplicationTypeBuildPath,omitempty"`
4464}
4465
4466// ApplicationTypeInfo information about an application type.
4467type ApplicationTypeInfo struct {
4468	// Name - The application type name as defined in the application manifest.
4469	Name *string `json:"Name,omitempty"`
4470	// Version - The version of the application type as defined in the application manifest.
4471	Version *string `json:"Version,omitempty"`
4472	// DefaultParameterList - List of application type parameters that can be overridden when creating or updating the application.
4473	DefaultParameterList *[]ApplicationParameter `json:"DefaultParameterList,omitempty"`
4474	// Status - The status of the application type. Possible values include: 'ApplicationTypeStatusInvalid', 'ApplicationTypeStatusProvisioning', 'ApplicationTypeStatusAvailable', 'ApplicationTypeStatusUnprovisioning', 'ApplicationTypeStatusFailed'
4475	Status ApplicationTypeStatus `json:"Status,omitempty"`
4476	// StatusDetails - Additional detailed information about the status of the application type.
4477	StatusDetails *string `json:"StatusDetails,omitempty"`
4478	// ApplicationTypeDefinitionKind - The mechanism used to define a Service Fabric application type. Possible values include: 'ApplicationTypeDefinitionKindInvalid', 'ApplicationTypeDefinitionKindServiceFabricApplicationPackage', 'ApplicationTypeDefinitionKindCompose'
4479	ApplicationTypeDefinitionKind ApplicationTypeDefinitionKind `json:"ApplicationTypeDefinitionKind,omitempty"`
4480}
4481
4482// ApplicationTypeManifest contains the manifest describing an application type registered in a Service
4483// Fabric cluster.
4484type ApplicationTypeManifest struct {
4485	autorest.Response `json:"-"`
4486	// Manifest - The XML manifest as a string.
4487	Manifest *string `json:"Manifest,omitempty"`
4488}
4489
4490// ApplicationUpgradeCompletedEvent application Upgrade Completed event.
4491type ApplicationUpgradeCompletedEvent struct {
4492	// ApplicationTypeName - Application type name.
4493	ApplicationTypeName *string `json:"ApplicationTypeName,omitempty"`
4494	// ApplicationTypeVersion - Application type version.
4495	ApplicationTypeVersion *string `json:"ApplicationTypeVersion,omitempty"`
4496	// OverallUpgradeElapsedTimeInMs - Overall upgrade time in milli-seconds.
4497	OverallUpgradeElapsedTimeInMs *float64 `json:"OverallUpgradeElapsedTimeInMs,omitempty"`
4498	// 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.
4499	// Starting in version 6.0, hierarchical names are delimited with the "\~" character. For example, if the application name is "fabric:/myapp/app1",
4500	// the application identity would be "myapp\~app1" in 6.0+ and "myapp/app1" in previous versions.
4501	ApplicationID *string `json:"ApplicationId,omitempty"`
4502	// EventInstanceID - The identifier for the FabricEvent instance.
4503	EventInstanceID *uuid.UUID `json:"EventInstanceId,omitempty"`
4504	// Category - The category of event.
4505	Category *string `json:"Category,omitempty"`
4506	// TimeStamp - The time event was logged.
4507	TimeStamp *date.Time `json:"TimeStamp,omitempty"`
4508	// HasCorrelatedEvents - Shows there is existing related events available.
4509	HasCorrelatedEvents *bool `json:"HasCorrelatedEvents,omitempty"`
4510	// 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'
4511	Kind KindBasicFabricEvent `json:"Kind,omitempty"`
4512}
4513
4514// MarshalJSON is the custom marshaler for ApplicationUpgradeCompletedEvent.
4515func (auce ApplicationUpgradeCompletedEvent) MarshalJSON() ([]byte, error) {
4516	auce.Kind = KindApplicationUpgradeCompleted
4517	objectMap := make(map[string]interface{})
4518	if auce.ApplicationTypeName != nil {
4519		objectMap["ApplicationTypeName"] = auce.ApplicationTypeName
4520	}
4521	if auce.ApplicationTypeVersion != nil {
4522		objectMap["ApplicationTypeVersion"] = auce.ApplicationTypeVersion
4523	}
4524	if auce.OverallUpgradeElapsedTimeInMs != nil {
4525		objectMap["OverallUpgradeElapsedTimeInMs"] = auce.OverallUpgradeElapsedTimeInMs
4526	}
4527	if auce.ApplicationID != nil {
4528		objectMap["ApplicationId"] = auce.ApplicationID
4529	}
4530	if auce.EventInstanceID != nil {
4531		objectMap["EventInstanceId"] = auce.EventInstanceID
4532	}
4533	if auce.Category != nil {
4534		objectMap["Category"] = auce.Category
4535	}
4536	if auce.TimeStamp != nil {
4537		objectMap["TimeStamp"] = auce.TimeStamp
4538	}
4539	if auce.HasCorrelatedEvents != nil {
4540		objectMap["HasCorrelatedEvents"] = auce.HasCorrelatedEvents
4541	}
4542	if auce.Kind != "" {
4543		objectMap["Kind"] = auce.Kind
4544	}
4545	return json.Marshal(objectMap)
4546}
4547
4548// AsApplicationEvent is the BasicFabricEvent implementation for ApplicationUpgradeCompletedEvent.
4549func (auce ApplicationUpgradeCompletedEvent) AsApplicationEvent() (*ApplicationEvent, bool) {
4550	return nil, false
4551}
4552
4553// AsBasicApplicationEvent is the BasicFabricEvent implementation for ApplicationUpgradeCompletedEvent.
4554func (auce ApplicationUpgradeCompletedEvent) AsBasicApplicationEvent() (BasicApplicationEvent, bool) {
4555	return &auce, true
4556}
4557
4558// AsClusterEvent is the BasicFabricEvent implementation for ApplicationUpgradeCompletedEvent.
4559func (auce ApplicationUpgradeCompletedEvent) AsClusterEvent() (*ClusterEvent, bool) {
4560	return nil, false
4561}
4562
4563// AsBasicClusterEvent is the BasicFabricEvent implementation for ApplicationUpgradeCompletedEvent.
4564func (auce ApplicationUpgradeCompletedEvent) AsBasicClusterEvent() (BasicClusterEvent, bool) {
4565	return nil, false
4566}
4567
4568// AsContainerInstanceEvent is the BasicFabricEvent implementation for ApplicationUpgradeCompletedEvent.
4569func (auce ApplicationUpgradeCompletedEvent) AsContainerInstanceEvent() (*ContainerInstanceEvent, bool) {
4570	return nil, false
4571}
4572
4573// AsNodeEvent is the BasicFabricEvent implementation for ApplicationUpgradeCompletedEvent.
4574func (auce ApplicationUpgradeCompletedEvent) AsNodeEvent() (*NodeEvent, bool) {
4575	return nil, false
4576}
4577
4578// AsBasicNodeEvent is the BasicFabricEvent implementation for ApplicationUpgradeCompletedEvent.
4579func (auce ApplicationUpgradeCompletedEvent) AsBasicNodeEvent() (BasicNodeEvent, bool) {
4580	return nil, false
4581}
4582
4583// AsPartitionAnalysisEvent is the BasicFabricEvent implementation for ApplicationUpgradeCompletedEvent.
4584func (auce ApplicationUpgradeCompletedEvent) AsPartitionAnalysisEvent() (*PartitionAnalysisEvent, bool) {
4585	return nil, false
4586}
4587
4588// AsBasicPartitionAnalysisEvent is the BasicFabricEvent implementation for ApplicationUpgradeCompletedEvent.
4589func (auce ApplicationUpgradeCompletedEvent) AsBasicPartitionAnalysisEvent() (BasicPartitionAnalysisEvent, bool) {
4590	return nil, false
4591}
4592
4593// AsPartitionEvent is the BasicFabricEvent implementation for ApplicationUpgradeCompletedEvent.
4594func (auce ApplicationUpgradeCompletedEvent) AsPartitionEvent() (*PartitionEvent, bool) {
4595	return nil, false
4596}
4597
4598// AsBasicPartitionEvent is the BasicFabricEvent implementation for ApplicationUpgradeCompletedEvent.
4599func (auce ApplicationUpgradeCompletedEvent) AsBasicPartitionEvent() (BasicPartitionEvent, bool) {
4600	return nil, false
4601}
4602
4603// AsReplicaEvent is the BasicFabricEvent implementation for ApplicationUpgradeCompletedEvent.
4604func (auce ApplicationUpgradeCompletedEvent) AsReplicaEvent() (*ReplicaEvent, bool) {
4605	return nil, false
4606}
4607
4608// AsBasicReplicaEvent is the BasicFabricEvent implementation for ApplicationUpgradeCompletedEvent.
4609func (auce ApplicationUpgradeCompletedEvent) AsBasicReplicaEvent() (BasicReplicaEvent, bool) {
4610	return nil, false
4611}
4612
4613// AsServiceEvent is the BasicFabricEvent implementation for ApplicationUpgradeCompletedEvent.
4614func (auce ApplicationUpgradeCompletedEvent) AsServiceEvent() (*ServiceEvent, bool) {
4615	return nil, false
4616}
4617
4618// AsBasicServiceEvent is the BasicFabricEvent implementation for ApplicationUpgradeCompletedEvent.
4619func (auce ApplicationUpgradeCompletedEvent) AsBasicServiceEvent() (BasicServiceEvent, bool) {
4620	return nil, false
4621}
4622
4623// AsApplicationCreatedEvent is the BasicFabricEvent implementation for ApplicationUpgradeCompletedEvent.
4624func (auce ApplicationUpgradeCompletedEvent) AsApplicationCreatedEvent() (*ApplicationCreatedEvent, bool) {
4625	return nil, false
4626}
4627
4628// AsApplicationDeletedEvent is the BasicFabricEvent implementation for ApplicationUpgradeCompletedEvent.
4629func (auce ApplicationUpgradeCompletedEvent) AsApplicationDeletedEvent() (*ApplicationDeletedEvent, bool) {
4630	return nil, false
4631}
4632
4633// AsApplicationNewHealthReportEvent is the BasicFabricEvent implementation for ApplicationUpgradeCompletedEvent.
4634func (auce ApplicationUpgradeCompletedEvent) AsApplicationNewHealthReportEvent() (*ApplicationNewHealthReportEvent, bool) {
4635	return nil, false
4636}
4637
4638// AsApplicationHealthReportExpiredEvent is the BasicFabricEvent implementation for ApplicationUpgradeCompletedEvent.
4639func (auce ApplicationUpgradeCompletedEvent) AsApplicationHealthReportExpiredEvent() (*ApplicationHealthReportExpiredEvent, bool) {
4640	return nil, false
4641}
4642
4643// AsApplicationUpgradeCompletedEvent is the BasicFabricEvent implementation for ApplicationUpgradeCompletedEvent.
4644func (auce ApplicationUpgradeCompletedEvent) AsApplicationUpgradeCompletedEvent() (*ApplicationUpgradeCompletedEvent, bool) {
4645	return &auce, true
4646}
4647
4648// AsApplicationUpgradeDomainCompletedEvent is the BasicFabricEvent implementation for ApplicationUpgradeCompletedEvent.
4649func (auce ApplicationUpgradeCompletedEvent) AsApplicationUpgradeDomainCompletedEvent() (*ApplicationUpgradeDomainCompletedEvent, bool) {
4650	return nil, false
4651}
4652
4653// AsApplicationUpgradeRollbackCompletedEvent is the BasicFabricEvent implementation for ApplicationUpgradeCompletedEvent.
4654func (auce ApplicationUpgradeCompletedEvent) AsApplicationUpgradeRollbackCompletedEvent() (*ApplicationUpgradeRollbackCompletedEvent, bool) {
4655	return nil, false
4656}
4657
4658// AsApplicationUpgradeRollbackStartedEvent is the BasicFabricEvent implementation for ApplicationUpgradeCompletedEvent.
4659func (auce ApplicationUpgradeCompletedEvent) AsApplicationUpgradeRollbackStartedEvent() (*ApplicationUpgradeRollbackStartedEvent, bool) {
4660	return nil, false
4661}
4662
4663// AsApplicationUpgradeStartedEvent is the BasicFabricEvent implementation for ApplicationUpgradeCompletedEvent.
4664func (auce ApplicationUpgradeCompletedEvent) AsApplicationUpgradeStartedEvent() (*ApplicationUpgradeStartedEvent, bool) {
4665	return nil, false
4666}
4667
4668// AsDeployedApplicationNewHealthReportEvent is the BasicFabricEvent implementation for ApplicationUpgradeCompletedEvent.
4669func (auce ApplicationUpgradeCompletedEvent) AsDeployedApplicationNewHealthReportEvent() (*DeployedApplicationNewHealthReportEvent, bool) {
4670	return nil, false
4671}
4672
4673// AsDeployedApplicationHealthReportExpiredEvent is the BasicFabricEvent implementation for ApplicationUpgradeCompletedEvent.
4674func (auce ApplicationUpgradeCompletedEvent) AsDeployedApplicationHealthReportExpiredEvent() (*DeployedApplicationHealthReportExpiredEvent, bool) {
4675	return nil, false
4676}
4677
4678// AsApplicationProcessExitedEvent is the BasicFabricEvent implementation for ApplicationUpgradeCompletedEvent.
4679func (auce ApplicationUpgradeCompletedEvent) AsApplicationProcessExitedEvent() (*ApplicationProcessExitedEvent, bool) {
4680	return nil, false
4681}
4682
4683// AsApplicationContainerInstanceExitedEvent is the BasicFabricEvent implementation for ApplicationUpgradeCompletedEvent.
4684func (auce ApplicationUpgradeCompletedEvent) AsApplicationContainerInstanceExitedEvent() (*ApplicationContainerInstanceExitedEvent, bool) {
4685	return nil, false
4686}
4687
4688// AsNodeAbortedEvent is the BasicFabricEvent implementation for ApplicationUpgradeCompletedEvent.
4689func (auce ApplicationUpgradeCompletedEvent) AsNodeAbortedEvent() (*NodeAbortedEvent, bool) {
4690	return nil, false
4691}
4692
4693// AsNodeAddedToClusterEvent is the BasicFabricEvent implementation for ApplicationUpgradeCompletedEvent.
4694func (auce ApplicationUpgradeCompletedEvent) AsNodeAddedToClusterEvent() (*NodeAddedToClusterEvent, bool) {
4695	return nil, false
4696}
4697
4698// AsNodeClosedEvent is the BasicFabricEvent implementation for ApplicationUpgradeCompletedEvent.
4699func (auce ApplicationUpgradeCompletedEvent) AsNodeClosedEvent() (*NodeClosedEvent, bool) {
4700	return nil, false
4701}
4702
4703// AsNodeDeactivateCompletedEvent is the BasicFabricEvent implementation for ApplicationUpgradeCompletedEvent.
4704func (auce ApplicationUpgradeCompletedEvent) AsNodeDeactivateCompletedEvent() (*NodeDeactivateCompletedEvent, bool) {
4705	return nil, false
4706}
4707
4708// AsNodeDeactivateStartedEvent is the BasicFabricEvent implementation for ApplicationUpgradeCompletedEvent.
4709func (auce ApplicationUpgradeCompletedEvent) AsNodeDeactivateStartedEvent() (*NodeDeactivateStartedEvent, bool) {
4710	return nil, false
4711}
4712
4713// AsNodeDownEvent is the BasicFabricEvent implementation for ApplicationUpgradeCompletedEvent.
4714func (auce ApplicationUpgradeCompletedEvent) AsNodeDownEvent() (*NodeDownEvent, bool) {
4715	return nil, false
4716}
4717
4718// AsNodeNewHealthReportEvent is the BasicFabricEvent implementation for ApplicationUpgradeCompletedEvent.
4719func (auce ApplicationUpgradeCompletedEvent) AsNodeNewHealthReportEvent() (*NodeNewHealthReportEvent, bool) {
4720	return nil, false
4721}
4722
4723// AsNodeHealthReportExpiredEvent is the BasicFabricEvent implementation for ApplicationUpgradeCompletedEvent.
4724func (auce ApplicationUpgradeCompletedEvent) AsNodeHealthReportExpiredEvent() (*NodeHealthReportExpiredEvent, bool) {
4725	return nil, false
4726}
4727
4728// AsNodeOpenSucceededEvent is the BasicFabricEvent implementation for ApplicationUpgradeCompletedEvent.
4729func (auce ApplicationUpgradeCompletedEvent) AsNodeOpenSucceededEvent() (*NodeOpenSucceededEvent, bool) {
4730	return nil, false
4731}
4732
4733// AsNodeOpenFailedEvent is the BasicFabricEvent implementation for ApplicationUpgradeCompletedEvent.
4734func (auce ApplicationUpgradeCompletedEvent) AsNodeOpenFailedEvent() (*NodeOpenFailedEvent, bool) {
4735	return nil, false
4736}
4737
4738// AsNodeRemovedFromClusterEvent is the BasicFabricEvent implementation for ApplicationUpgradeCompletedEvent.
4739func (auce ApplicationUpgradeCompletedEvent) AsNodeRemovedFromClusterEvent() (*NodeRemovedFromClusterEvent, bool) {
4740	return nil, false
4741}
4742
4743// AsNodeUpEvent is the BasicFabricEvent implementation for ApplicationUpgradeCompletedEvent.
4744func (auce ApplicationUpgradeCompletedEvent) AsNodeUpEvent() (*NodeUpEvent, bool) {
4745	return nil, false
4746}
4747
4748// AsPartitionNewHealthReportEvent is the BasicFabricEvent implementation for ApplicationUpgradeCompletedEvent.
4749func (auce ApplicationUpgradeCompletedEvent) AsPartitionNewHealthReportEvent() (*PartitionNewHealthReportEvent, bool) {
4750	return nil, false
4751}
4752
4753// AsPartitionHealthReportExpiredEvent is the BasicFabricEvent implementation for ApplicationUpgradeCompletedEvent.
4754func (auce ApplicationUpgradeCompletedEvent) AsPartitionHealthReportExpiredEvent() (*PartitionHealthReportExpiredEvent, bool) {
4755	return nil, false
4756}
4757
4758// AsPartitionReconfiguredEvent is the BasicFabricEvent implementation for ApplicationUpgradeCompletedEvent.
4759func (auce ApplicationUpgradeCompletedEvent) AsPartitionReconfiguredEvent() (*PartitionReconfiguredEvent, bool) {
4760	return nil, false
4761}
4762
4763// AsPartitionPrimaryMoveAnalysisEvent is the BasicFabricEvent implementation for ApplicationUpgradeCompletedEvent.
4764func (auce ApplicationUpgradeCompletedEvent) AsPartitionPrimaryMoveAnalysisEvent() (*PartitionPrimaryMoveAnalysisEvent, bool) {
4765	return nil, false
4766}
4767
4768// AsServiceCreatedEvent is the BasicFabricEvent implementation for ApplicationUpgradeCompletedEvent.
4769func (auce ApplicationUpgradeCompletedEvent) AsServiceCreatedEvent() (*ServiceCreatedEvent, bool) {
4770	return nil, false
4771}
4772
4773// AsServiceDeletedEvent is the BasicFabricEvent implementation for ApplicationUpgradeCompletedEvent.
4774func (auce ApplicationUpgradeCompletedEvent) AsServiceDeletedEvent() (*ServiceDeletedEvent, bool) {
4775	return nil, false
4776}
4777
4778// AsServiceNewHealthReportEvent is the BasicFabricEvent implementation for ApplicationUpgradeCompletedEvent.
4779func (auce ApplicationUpgradeCompletedEvent) AsServiceNewHealthReportEvent() (*ServiceNewHealthReportEvent, bool) {
4780	return nil, false
4781}
4782
4783// AsServiceHealthReportExpiredEvent is the BasicFabricEvent implementation for ApplicationUpgradeCompletedEvent.
4784func (auce ApplicationUpgradeCompletedEvent) AsServiceHealthReportExpiredEvent() (*ServiceHealthReportExpiredEvent, bool) {
4785	return nil, false
4786}
4787
4788// AsDeployedServicePackageNewHealthReportEvent is the BasicFabricEvent implementation for ApplicationUpgradeCompletedEvent.
4789func (auce ApplicationUpgradeCompletedEvent) AsDeployedServicePackageNewHealthReportEvent() (*DeployedServicePackageNewHealthReportEvent, bool) {
4790	return nil, false
4791}
4792
4793// AsDeployedServicePackageHealthReportExpiredEvent is the BasicFabricEvent implementation for ApplicationUpgradeCompletedEvent.
4794func (auce ApplicationUpgradeCompletedEvent) AsDeployedServicePackageHealthReportExpiredEvent() (*DeployedServicePackageHealthReportExpiredEvent, bool) {
4795	return nil, false
4796}
4797
4798// AsStatefulReplicaNewHealthReportEvent is the BasicFabricEvent implementation for ApplicationUpgradeCompletedEvent.
4799func (auce ApplicationUpgradeCompletedEvent) AsStatefulReplicaNewHealthReportEvent() (*StatefulReplicaNewHealthReportEvent, bool) {
4800	return nil, false
4801}
4802
4803// AsStatefulReplicaHealthReportExpiredEvent is the BasicFabricEvent implementation for ApplicationUpgradeCompletedEvent.
4804func (auce ApplicationUpgradeCompletedEvent) AsStatefulReplicaHealthReportExpiredEvent() (*StatefulReplicaHealthReportExpiredEvent, bool) {
4805	return nil, false
4806}
4807
4808// AsStatelessReplicaNewHealthReportEvent is the BasicFabricEvent implementation for ApplicationUpgradeCompletedEvent.
4809func (auce ApplicationUpgradeCompletedEvent) AsStatelessReplicaNewHealthReportEvent() (*StatelessReplicaNewHealthReportEvent, bool) {
4810	return nil, false
4811}
4812
4813// AsStatelessReplicaHealthReportExpiredEvent is the BasicFabricEvent implementation for ApplicationUpgradeCompletedEvent.
4814func (auce ApplicationUpgradeCompletedEvent) AsStatelessReplicaHealthReportExpiredEvent() (*StatelessReplicaHealthReportExpiredEvent, bool) {
4815	return nil, false
4816}
4817
4818// AsClusterNewHealthReportEvent is the BasicFabricEvent implementation for ApplicationUpgradeCompletedEvent.
4819func (auce ApplicationUpgradeCompletedEvent) AsClusterNewHealthReportEvent() (*ClusterNewHealthReportEvent, bool) {
4820	return nil, false
4821}
4822
4823// AsClusterHealthReportExpiredEvent is the BasicFabricEvent implementation for ApplicationUpgradeCompletedEvent.
4824func (auce ApplicationUpgradeCompletedEvent) AsClusterHealthReportExpiredEvent() (*ClusterHealthReportExpiredEvent, bool) {
4825	return nil, false
4826}
4827
4828// AsClusterUpgradeCompletedEvent is the BasicFabricEvent implementation for ApplicationUpgradeCompletedEvent.
4829func (auce ApplicationUpgradeCompletedEvent) AsClusterUpgradeCompletedEvent() (*ClusterUpgradeCompletedEvent, bool) {
4830	return nil, false
4831}
4832
4833// AsClusterUpgradeDomainCompletedEvent is the BasicFabricEvent implementation for ApplicationUpgradeCompletedEvent.
4834func (auce ApplicationUpgradeCompletedEvent) AsClusterUpgradeDomainCompletedEvent() (*ClusterUpgradeDomainCompletedEvent, bool) {
4835	return nil, false
4836}
4837
4838// AsClusterUpgradeRollbackCompletedEvent is the BasicFabricEvent implementation for ApplicationUpgradeCompletedEvent.
4839func (auce ApplicationUpgradeCompletedEvent) AsClusterUpgradeRollbackCompletedEvent() (*ClusterUpgradeRollbackCompletedEvent, bool) {
4840	return nil, false
4841}
4842
4843// AsClusterUpgradeRollbackStartedEvent is the BasicFabricEvent implementation for ApplicationUpgradeCompletedEvent.
4844func (auce ApplicationUpgradeCompletedEvent) AsClusterUpgradeRollbackStartedEvent() (*ClusterUpgradeRollbackStartedEvent, bool) {
4845	return nil, false
4846}
4847
4848// AsClusterUpgradeStartedEvent is the BasicFabricEvent implementation for ApplicationUpgradeCompletedEvent.
4849func (auce ApplicationUpgradeCompletedEvent) AsClusterUpgradeStartedEvent() (*ClusterUpgradeStartedEvent, bool) {
4850	return nil, false
4851}
4852
4853// AsChaosStoppedEvent is the BasicFabricEvent implementation for ApplicationUpgradeCompletedEvent.
4854func (auce ApplicationUpgradeCompletedEvent) AsChaosStoppedEvent() (*ChaosStoppedEvent, bool) {
4855	return nil, false
4856}
4857
4858// AsChaosStartedEvent is the BasicFabricEvent implementation for ApplicationUpgradeCompletedEvent.
4859func (auce ApplicationUpgradeCompletedEvent) AsChaosStartedEvent() (*ChaosStartedEvent, bool) {
4860	return nil, false
4861}
4862
4863// AsChaosCodePackageRestartScheduledEvent is the BasicFabricEvent implementation for ApplicationUpgradeCompletedEvent.
4864func (auce ApplicationUpgradeCompletedEvent) AsChaosCodePackageRestartScheduledEvent() (*ChaosCodePackageRestartScheduledEvent, bool) {
4865	return nil, false
4866}
4867
4868// AsChaosReplicaRemovalScheduledEvent is the BasicFabricEvent implementation for ApplicationUpgradeCompletedEvent.
4869func (auce ApplicationUpgradeCompletedEvent) AsChaosReplicaRemovalScheduledEvent() (*ChaosReplicaRemovalScheduledEvent, bool) {
4870	return nil, false
4871}
4872
4873// AsChaosPartitionSecondaryMoveScheduledEvent is the BasicFabricEvent implementation for ApplicationUpgradeCompletedEvent.
4874func (auce ApplicationUpgradeCompletedEvent) AsChaosPartitionSecondaryMoveScheduledEvent() (*ChaosPartitionSecondaryMoveScheduledEvent, bool) {
4875	return nil, false
4876}
4877
4878// AsChaosPartitionPrimaryMoveScheduledEvent is the BasicFabricEvent implementation for ApplicationUpgradeCompletedEvent.
4879func (auce ApplicationUpgradeCompletedEvent) AsChaosPartitionPrimaryMoveScheduledEvent() (*ChaosPartitionPrimaryMoveScheduledEvent, bool) {
4880	return nil, false
4881}
4882
4883// AsChaosReplicaRestartScheduledEvent is the BasicFabricEvent implementation for ApplicationUpgradeCompletedEvent.
4884func (auce ApplicationUpgradeCompletedEvent) AsChaosReplicaRestartScheduledEvent() (*ChaosReplicaRestartScheduledEvent, bool) {
4885	return nil, false
4886}
4887
4888// AsChaosNodeRestartScheduledEvent is the BasicFabricEvent implementation for ApplicationUpgradeCompletedEvent.
4889func (auce ApplicationUpgradeCompletedEvent) AsChaosNodeRestartScheduledEvent() (*ChaosNodeRestartScheduledEvent, bool) {
4890	return nil, false
4891}
4892
4893// AsFabricEvent is the BasicFabricEvent implementation for ApplicationUpgradeCompletedEvent.
4894func (auce ApplicationUpgradeCompletedEvent) AsFabricEvent() (*FabricEvent, bool) {
4895	return nil, false
4896}
4897
4898// AsBasicFabricEvent is the BasicFabricEvent implementation for ApplicationUpgradeCompletedEvent.
4899func (auce ApplicationUpgradeCompletedEvent) AsBasicFabricEvent() (BasicFabricEvent, bool) {
4900	return &auce, true
4901}
4902
4903// ApplicationUpgradeDescription describes the parameters for an application upgrade. Note that upgrade
4904// description replaces the existing application description. This means that if the parameters are not
4905// specified, the existing parameters on the applications will be overwritten with the empty parameters
4906// list. This would result in the application using the default value of the parameters from the
4907// application manifest. If you do not want to change any existing parameter values, please get the
4908// application parameters first using the GetApplicationInfo query and then supply those values as
4909// Parameters in this ApplicationUpgradeDescription.
4910type ApplicationUpgradeDescription struct {
4911	// Name - The name of the target application, including the 'fabric:' URI scheme.
4912	Name *string `json:"Name,omitempty"`
4913	// TargetApplicationTypeVersion - The target application type version (found in the application manifest) for the application upgrade.
4914	TargetApplicationTypeVersion *string `json:"TargetApplicationTypeVersion,omitempty"`
4915	// Parameters - List of application parameters with overridden values from their default values specified in the application manifest.
4916	Parameters *[]ApplicationParameter `json:"Parameters,omitempty"`
4917	// UpgradeKind - The kind of upgrade out of the following possible values. Possible values include: 'UpgradeKindInvalid', 'UpgradeKindRolling'
4918	UpgradeKind UpgradeKind `json:"UpgradeKind,omitempty"`
4919	// 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'
4920	RollingUpgradeMode UpgradeMode `json:"RollingUpgradeMode,omitempty"`
4921	// 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).
4922	UpgradeReplicaSetCheckTimeoutInSeconds *int64 `json:"UpgradeReplicaSetCheckTimeoutInSeconds,omitempty"`
4923	// 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).
4924	ForceRestart *bool `json:"ForceRestart,omitempty"`
4925	// SortOrder - Defines the order in which an upgrade proceeds through the cluster. Possible values include: 'UpgradeSortOrderInvalid', 'UpgradeSortOrderDefault', 'UpgradeSortOrderNumeric', 'UpgradeSortOrderLexicographical', 'UpgradeSortOrderReverseNumeric', 'UpgradeSortOrderReverseLexicographical'
4926	SortOrder UpgradeSortOrder `json:"SortOrder,omitempty"`
4927	// MonitoringPolicy - Describes the parameters for monitoring an upgrade in Monitored mode.
4928	MonitoringPolicy *MonitoringPolicyDescription `json:"MonitoringPolicy,omitempty"`
4929	// ApplicationHealthPolicy - Defines a health policy used to evaluate the health of an application or one of its children entities.
4930	ApplicationHealthPolicy *ApplicationHealthPolicy `json:"ApplicationHealthPolicy,omitempty"`
4931	// InstanceCloseDelayDurationInSeconds - Duration in seconds, to wait before a stateless instance is closed, to allow the active requests to drain gracefully. This would be effective when the instance is closing during the application/cluster
4932	// upgrade, only for those instances which have a non-zero delay duration configured in the service description. See InstanceCloseDelayDurationSeconds property in $ref: "#/definitions/StatelessServiceDescription.yaml" for details.
4933	// Note, the default value of InstanceCloseDelayDurationInSeconds is 4294967295, which indicates that the behavior will entirely depend on the delay configured in the stateless service description.
4934	InstanceCloseDelayDurationInSeconds *int64 `json:"InstanceCloseDelayDurationInSeconds,omitempty"`
4935}
4936
4937// ApplicationUpgradeDomainCompletedEvent application Upgrade Domain Completed event.
4938type ApplicationUpgradeDomainCompletedEvent struct {
4939	// ApplicationTypeName - Application type name.
4940	ApplicationTypeName *string `json:"ApplicationTypeName,omitempty"`
4941	// CurrentApplicationTypeVersion - Current Application type version.
4942	CurrentApplicationTypeVersion *string `json:"CurrentApplicationTypeVersion,omitempty"`
4943	// ApplicationTypeVersion - Target Application type version.
4944	ApplicationTypeVersion *string `json:"ApplicationTypeVersion,omitempty"`
4945	// UpgradeState - State of upgrade.
4946	UpgradeState *string `json:"UpgradeState,omitempty"`
4947	// UpgradeDomains - Upgrade domains.
4948	UpgradeDomains *string `json:"UpgradeDomains,omitempty"`
4949	// UpgradeDomainElapsedTimeInMs - Upgrade time of domain in milli-seconds.
4950	UpgradeDomainElapsedTimeInMs *float64 `json:"UpgradeDomainElapsedTimeInMs,omitempty"`
4951	// 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.
4952	// Starting in version 6.0, hierarchical names are delimited with the "\~" character. For example, if the application name is "fabric:/myapp/app1",
4953	// the application identity would be "myapp\~app1" in 6.0+ and "myapp/app1" in previous versions.
4954	ApplicationID *string `json:"ApplicationId,omitempty"`
4955	// EventInstanceID - The identifier for the FabricEvent instance.
4956	EventInstanceID *uuid.UUID `json:"EventInstanceId,omitempty"`
4957	// Category - The category of event.
4958	Category *string `json:"Category,omitempty"`
4959	// TimeStamp - The time event was logged.
4960	TimeStamp *date.Time `json:"TimeStamp,omitempty"`
4961	// HasCorrelatedEvents - Shows there is existing related events available.
4962	HasCorrelatedEvents *bool `json:"HasCorrelatedEvents,omitempty"`
4963	// 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'
4964	Kind KindBasicFabricEvent `json:"Kind,omitempty"`
4965}
4966
4967// MarshalJSON is the custom marshaler for ApplicationUpgradeDomainCompletedEvent.
4968func (audce ApplicationUpgradeDomainCompletedEvent) MarshalJSON() ([]byte, error) {
4969	audce.Kind = KindApplicationUpgradeDomainCompleted
4970	objectMap := make(map[string]interface{})
4971	if audce.ApplicationTypeName != nil {
4972		objectMap["ApplicationTypeName"] = audce.ApplicationTypeName
4973	}
4974	if audce.CurrentApplicationTypeVersion != nil {
4975		objectMap["CurrentApplicationTypeVersion"] = audce.CurrentApplicationTypeVersion
4976	}
4977	if audce.ApplicationTypeVersion != nil {
4978		objectMap["ApplicationTypeVersion"] = audce.ApplicationTypeVersion
4979	}
4980	if audce.UpgradeState != nil {
4981		objectMap["UpgradeState"] = audce.UpgradeState
4982	}
4983	if audce.UpgradeDomains != nil {
4984		objectMap["UpgradeDomains"] = audce.UpgradeDomains
4985	}
4986	if audce.UpgradeDomainElapsedTimeInMs != nil {
4987		objectMap["UpgradeDomainElapsedTimeInMs"] = audce.UpgradeDomainElapsedTimeInMs
4988	}
4989	if audce.ApplicationID != nil {
4990		objectMap["ApplicationId"] = audce.ApplicationID
4991	}
4992	if audce.EventInstanceID != nil {
4993		objectMap["EventInstanceId"] = audce.EventInstanceID
4994	}
4995	if audce.Category != nil {
4996		objectMap["Category"] = audce.Category
4997	}
4998	if audce.TimeStamp != nil {
4999		objectMap["TimeStamp"] = audce.TimeStamp
5000	}
5001	if audce.HasCorrelatedEvents != nil {
5002		objectMap["HasCorrelatedEvents"] = audce.HasCorrelatedEvents
5003	}
5004	if audce.Kind != "" {
5005		objectMap["Kind"] = audce.Kind
5006	}
5007	return json.Marshal(objectMap)
5008}
5009
5010// AsApplicationEvent is the BasicFabricEvent implementation for ApplicationUpgradeDomainCompletedEvent.
5011func (audce ApplicationUpgradeDomainCompletedEvent) AsApplicationEvent() (*ApplicationEvent, bool) {
5012	return nil, false
5013}
5014
5015// AsBasicApplicationEvent is the BasicFabricEvent implementation for ApplicationUpgradeDomainCompletedEvent.
5016func (audce ApplicationUpgradeDomainCompletedEvent) AsBasicApplicationEvent() (BasicApplicationEvent, bool) {
5017	return &audce, true
5018}
5019
5020// AsClusterEvent is the BasicFabricEvent implementation for ApplicationUpgradeDomainCompletedEvent.
5021func (audce ApplicationUpgradeDomainCompletedEvent) AsClusterEvent() (*ClusterEvent, bool) {
5022	return nil, false
5023}
5024
5025// AsBasicClusterEvent is the BasicFabricEvent implementation for ApplicationUpgradeDomainCompletedEvent.
5026func (audce ApplicationUpgradeDomainCompletedEvent) AsBasicClusterEvent() (BasicClusterEvent, bool) {
5027	return nil, false
5028}
5029
5030// AsContainerInstanceEvent is the BasicFabricEvent implementation for ApplicationUpgradeDomainCompletedEvent.
5031func (audce ApplicationUpgradeDomainCompletedEvent) AsContainerInstanceEvent() (*ContainerInstanceEvent, bool) {
5032	return nil, false
5033}
5034
5035// AsNodeEvent is the BasicFabricEvent implementation for ApplicationUpgradeDomainCompletedEvent.
5036func (audce ApplicationUpgradeDomainCompletedEvent) AsNodeEvent() (*NodeEvent, bool) {
5037	return nil, false
5038}
5039
5040// AsBasicNodeEvent is the BasicFabricEvent implementation for ApplicationUpgradeDomainCompletedEvent.
5041func (audce ApplicationUpgradeDomainCompletedEvent) AsBasicNodeEvent() (BasicNodeEvent, bool) {
5042	return nil, false
5043}
5044
5045// AsPartitionAnalysisEvent is the BasicFabricEvent implementation for ApplicationUpgradeDomainCompletedEvent.
5046func (audce ApplicationUpgradeDomainCompletedEvent) AsPartitionAnalysisEvent() (*PartitionAnalysisEvent, bool) {
5047	return nil, false
5048}
5049
5050// AsBasicPartitionAnalysisEvent is the BasicFabricEvent implementation for ApplicationUpgradeDomainCompletedEvent.
5051func (audce ApplicationUpgradeDomainCompletedEvent) AsBasicPartitionAnalysisEvent() (BasicPartitionAnalysisEvent, bool) {
5052	return nil, false
5053}
5054
5055// AsPartitionEvent is the BasicFabricEvent implementation for ApplicationUpgradeDomainCompletedEvent.
5056func (audce ApplicationUpgradeDomainCompletedEvent) AsPartitionEvent() (*PartitionEvent, bool) {
5057	return nil, false
5058}
5059
5060// AsBasicPartitionEvent is the BasicFabricEvent implementation for ApplicationUpgradeDomainCompletedEvent.
5061func (audce ApplicationUpgradeDomainCompletedEvent) AsBasicPartitionEvent() (BasicPartitionEvent, bool) {
5062	return nil, false
5063}
5064
5065// AsReplicaEvent is the BasicFabricEvent implementation for ApplicationUpgradeDomainCompletedEvent.
5066func (audce ApplicationUpgradeDomainCompletedEvent) AsReplicaEvent() (*ReplicaEvent, bool) {
5067	return nil, false
5068}
5069
5070// AsBasicReplicaEvent is the BasicFabricEvent implementation for ApplicationUpgradeDomainCompletedEvent.
5071func (audce ApplicationUpgradeDomainCompletedEvent) AsBasicReplicaEvent() (BasicReplicaEvent, bool) {
5072	return nil, false
5073}
5074
5075// AsServiceEvent is the BasicFabricEvent implementation for ApplicationUpgradeDomainCompletedEvent.
5076func (audce ApplicationUpgradeDomainCompletedEvent) AsServiceEvent() (*ServiceEvent, bool) {
5077	return nil, false
5078}
5079
5080// AsBasicServiceEvent is the BasicFabricEvent implementation for ApplicationUpgradeDomainCompletedEvent.
5081func (audce ApplicationUpgradeDomainCompletedEvent) AsBasicServiceEvent() (BasicServiceEvent, bool) {
5082	return nil, false
5083}
5084
5085// AsApplicationCreatedEvent is the BasicFabricEvent implementation for ApplicationUpgradeDomainCompletedEvent.
5086func (audce ApplicationUpgradeDomainCompletedEvent) AsApplicationCreatedEvent() (*ApplicationCreatedEvent, bool) {
5087	return nil, false
5088}
5089
5090// AsApplicationDeletedEvent is the BasicFabricEvent implementation for ApplicationUpgradeDomainCompletedEvent.
5091func (audce ApplicationUpgradeDomainCompletedEvent) AsApplicationDeletedEvent() (*ApplicationDeletedEvent, bool) {
5092	return nil, false
5093}
5094
5095// AsApplicationNewHealthReportEvent is the BasicFabricEvent implementation for ApplicationUpgradeDomainCompletedEvent.
5096func (audce ApplicationUpgradeDomainCompletedEvent) AsApplicationNewHealthReportEvent() (*ApplicationNewHealthReportEvent, bool) {
5097	return nil, false
5098}
5099
5100// AsApplicationHealthReportExpiredEvent is the BasicFabricEvent implementation for ApplicationUpgradeDomainCompletedEvent.
5101func (audce ApplicationUpgradeDomainCompletedEvent) AsApplicationHealthReportExpiredEvent() (*ApplicationHealthReportExpiredEvent, bool) {
5102	return nil, false
5103}
5104
5105// AsApplicationUpgradeCompletedEvent is the BasicFabricEvent implementation for ApplicationUpgradeDomainCompletedEvent.
5106func (audce ApplicationUpgradeDomainCompletedEvent) AsApplicationUpgradeCompletedEvent() (*ApplicationUpgradeCompletedEvent, bool) {
5107	return nil, false
5108}
5109
5110// AsApplicationUpgradeDomainCompletedEvent is the BasicFabricEvent implementation for ApplicationUpgradeDomainCompletedEvent.
5111func (audce ApplicationUpgradeDomainCompletedEvent) AsApplicationUpgradeDomainCompletedEvent() (*ApplicationUpgradeDomainCompletedEvent, bool) {
5112	return &audce, true
5113}
5114
5115// AsApplicationUpgradeRollbackCompletedEvent is the BasicFabricEvent implementation for ApplicationUpgradeDomainCompletedEvent.
5116func (audce ApplicationUpgradeDomainCompletedEvent) AsApplicationUpgradeRollbackCompletedEvent() (*ApplicationUpgradeRollbackCompletedEvent, bool) {
5117	return nil, false
5118}
5119
5120// AsApplicationUpgradeRollbackStartedEvent is the BasicFabricEvent implementation for ApplicationUpgradeDomainCompletedEvent.
5121func (audce ApplicationUpgradeDomainCompletedEvent) AsApplicationUpgradeRollbackStartedEvent() (*ApplicationUpgradeRollbackStartedEvent, bool) {
5122	return nil, false
5123}
5124
5125// AsApplicationUpgradeStartedEvent is the BasicFabricEvent implementation for ApplicationUpgradeDomainCompletedEvent.
5126func (audce ApplicationUpgradeDomainCompletedEvent) AsApplicationUpgradeStartedEvent() (*ApplicationUpgradeStartedEvent, bool) {
5127	return nil, false
5128}
5129
5130// AsDeployedApplicationNewHealthReportEvent is the BasicFabricEvent implementation for ApplicationUpgradeDomainCompletedEvent.
5131func (audce ApplicationUpgradeDomainCompletedEvent) AsDeployedApplicationNewHealthReportEvent() (*DeployedApplicationNewHealthReportEvent, bool) {
5132	return nil, false
5133}
5134
5135// AsDeployedApplicationHealthReportExpiredEvent is the BasicFabricEvent implementation for ApplicationUpgradeDomainCompletedEvent.
5136func (audce ApplicationUpgradeDomainCompletedEvent) AsDeployedApplicationHealthReportExpiredEvent() (*DeployedApplicationHealthReportExpiredEvent, bool) {
5137	return nil, false
5138}
5139
5140// AsApplicationProcessExitedEvent is the BasicFabricEvent implementation for ApplicationUpgradeDomainCompletedEvent.
5141func (audce ApplicationUpgradeDomainCompletedEvent) AsApplicationProcessExitedEvent() (*ApplicationProcessExitedEvent, bool) {
5142	return nil, false
5143}
5144
5145// AsApplicationContainerInstanceExitedEvent is the BasicFabricEvent implementation for ApplicationUpgradeDomainCompletedEvent.
5146func (audce ApplicationUpgradeDomainCompletedEvent) AsApplicationContainerInstanceExitedEvent() (*ApplicationContainerInstanceExitedEvent, bool) {
5147	return nil, false
5148}
5149
5150// AsNodeAbortedEvent is the BasicFabricEvent implementation for ApplicationUpgradeDomainCompletedEvent.
5151func (audce ApplicationUpgradeDomainCompletedEvent) AsNodeAbortedEvent() (*NodeAbortedEvent, bool) {
5152	return nil, false
5153}
5154
5155// AsNodeAddedToClusterEvent is the BasicFabricEvent implementation for ApplicationUpgradeDomainCompletedEvent.
5156func (audce ApplicationUpgradeDomainCompletedEvent) AsNodeAddedToClusterEvent() (*NodeAddedToClusterEvent, bool) {
5157	return nil, false
5158}
5159
5160// AsNodeClosedEvent is the BasicFabricEvent implementation for ApplicationUpgradeDomainCompletedEvent.
5161func (audce ApplicationUpgradeDomainCompletedEvent) AsNodeClosedEvent() (*NodeClosedEvent, bool) {
5162	return nil, false
5163}
5164
5165// AsNodeDeactivateCompletedEvent is the BasicFabricEvent implementation for ApplicationUpgradeDomainCompletedEvent.
5166func (audce ApplicationUpgradeDomainCompletedEvent) AsNodeDeactivateCompletedEvent() (*NodeDeactivateCompletedEvent, bool) {
5167	return nil, false
5168}
5169
5170// AsNodeDeactivateStartedEvent is the BasicFabricEvent implementation for ApplicationUpgradeDomainCompletedEvent.
5171func (audce ApplicationUpgradeDomainCompletedEvent) AsNodeDeactivateStartedEvent() (*NodeDeactivateStartedEvent, bool) {
5172	return nil, false
5173}
5174
5175// AsNodeDownEvent is the BasicFabricEvent implementation for ApplicationUpgradeDomainCompletedEvent.
5176func (audce ApplicationUpgradeDomainCompletedEvent) AsNodeDownEvent() (*NodeDownEvent, bool) {
5177	return nil, false
5178}
5179
5180// AsNodeNewHealthReportEvent is the BasicFabricEvent implementation for ApplicationUpgradeDomainCompletedEvent.
5181func (audce ApplicationUpgradeDomainCompletedEvent) AsNodeNewHealthReportEvent() (*NodeNewHealthReportEvent, bool) {
5182	return nil, false
5183}
5184
5185// AsNodeHealthReportExpiredEvent is the BasicFabricEvent implementation for ApplicationUpgradeDomainCompletedEvent.
5186func (audce ApplicationUpgradeDomainCompletedEvent) AsNodeHealthReportExpiredEvent() (*NodeHealthReportExpiredEvent, bool) {
5187	return nil, false
5188}
5189
5190// AsNodeOpenSucceededEvent is the BasicFabricEvent implementation for ApplicationUpgradeDomainCompletedEvent.
5191func (audce ApplicationUpgradeDomainCompletedEvent) AsNodeOpenSucceededEvent() (*NodeOpenSucceededEvent, bool) {
5192	return nil, false
5193}
5194
5195// AsNodeOpenFailedEvent is the BasicFabricEvent implementation for ApplicationUpgradeDomainCompletedEvent.
5196func (audce ApplicationUpgradeDomainCompletedEvent) AsNodeOpenFailedEvent() (*NodeOpenFailedEvent, bool) {
5197	return nil, false
5198}
5199
5200// AsNodeRemovedFromClusterEvent is the BasicFabricEvent implementation for ApplicationUpgradeDomainCompletedEvent.
5201func (audce ApplicationUpgradeDomainCompletedEvent) AsNodeRemovedFromClusterEvent() (*NodeRemovedFromClusterEvent, bool) {
5202	return nil, false
5203}
5204
5205// AsNodeUpEvent is the BasicFabricEvent implementation for ApplicationUpgradeDomainCompletedEvent.
5206func (audce ApplicationUpgradeDomainCompletedEvent) AsNodeUpEvent() (*NodeUpEvent, bool) {
5207	return nil, false
5208}
5209
5210// AsPartitionNewHealthReportEvent is the BasicFabricEvent implementation for ApplicationUpgradeDomainCompletedEvent.
5211func (audce ApplicationUpgradeDomainCompletedEvent) AsPartitionNewHealthReportEvent() (*PartitionNewHealthReportEvent, bool) {
5212	return nil, false
5213}
5214
5215// AsPartitionHealthReportExpiredEvent is the BasicFabricEvent implementation for ApplicationUpgradeDomainCompletedEvent.
5216func (audce ApplicationUpgradeDomainCompletedEvent) AsPartitionHealthReportExpiredEvent() (*PartitionHealthReportExpiredEvent, bool) {
5217	return nil, false
5218}
5219
5220// AsPartitionReconfiguredEvent is the BasicFabricEvent implementation for ApplicationUpgradeDomainCompletedEvent.
5221func (audce ApplicationUpgradeDomainCompletedEvent) AsPartitionReconfiguredEvent() (*PartitionReconfiguredEvent, bool) {
5222	return nil, false
5223}
5224
5225// AsPartitionPrimaryMoveAnalysisEvent is the BasicFabricEvent implementation for ApplicationUpgradeDomainCompletedEvent.
5226func (audce ApplicationUpgradeDomainCompletedEvent) AsPartitionPrimaryMoveAnalysisEvent() (*PartitionPrimaryMoveAnalysisEvent, bool) {
5227	return nil, false
5228}
5229
5230// AsServiceCreatedEvent is the BasicFabricEvent implementation for ApplicationUpgradeDomainCompletedEvent.
5231func (audce ApplicationUpgradeDomainCompletedEvent) AsServiceCreatedEvent() (*ServiceCreatedEvent, bool) {
5232	return nil, false
5233}
5234
5235// AsServiceDeletedEvent is the BasicFabricEvent implementation for ApplicationUpgradeDomainCompletedEvent.
5236func (audce ApplicationUpgradeDomainCompletedEvent) AsServiceDeletedEvent() (*ServiceDeletedEvent, bool) {
5237	return nil, false
5238}
5239
5240// AsServiceNewHealthReportEvent is the BasicFabricEvent implementation for ApplicationUpgradeDomainCompletedEvent.
5241func (audce ApplicationUpgradeDomainCompletedEvent) AsServiceNewHealthReportEvent() (*ServiceNewHealthReportEvent, bool) {
5242	return nil, false
5243}
5244
5245// AsServiceHealthReportExpiredEvent is the BasicFabricEvent implementation for ApplicationUpgradeDomainCompletedEvent.
5246func (audce ApplicationUpgradeDomainCompletedEvent) AsServiceHealthReportExpiredEvent() (*ServiceHealthReportExpiredEvent, bool) {
5247	return nil, false
5248}
5249
5250// AsDeployedServicePackageNewHealthReportEvent is the BasicFabricEvent implementation for ApplicationUpgradeDomainCompletedEvent.
5251func (audce ApplicationUpgradeDomainCompletedEvent) AsDeployedServicePackageNewHealthReportEvent() (*DeployedServicePackageNewHealthReportEvent, bool) {
5252	return nil, false
5253}
5254
5255// AsDeployedServicePackageHealthReportExpiredEvent is the BasicFabricEvent implementation for ApplicationUpgradeDomainCompletedEvent.
5256func (audce ApplicationUpgradeDomainCompletedEvent) AsDeployedServicePackageHealthReportExpiredEvent() (*DeployedServicePackageHealthReportExpiredEvent, bool) {
5257	return nil, false
5258}
5259
5260// AsStatefulReplicaNewHealthReportEvent is the BasicFabricEvent implementation for ApplicationUpgradeDomainCompletedEvent.
5261func (audce ApplicationUpgradeDomainCompletedEvent) AsStatefulReplicaNewHealthReportEvent() (*StatefulReplicaNewHealthReportEvent, bool) {
5262	return nil, false
5263}
5264
5265// AsStatefulReplicaHealthReportExpiredEvent is the BasicFabricEvent implementation for ApplicationUpgradeDomainCompletedEvent.
5266func (audce ApplicationUpgradeDomainCompletedEvent) AsStatefulReplicaHealthReportExpiredEvent() (*StatefulReplicaHealthReportExpiredEvent, bool) {
5267	return nil, false
5268}
5269
5270// AsStatelessReplicaNewHealthReportEvent is the BasicFabricEvent implementation for ApplicationUpgradeDomainCompletedEvent.
5271func (audce ApplicationUpgradeDomainCompletedEvent) AsStatelessReplicaNewHealthReportEvent() (*StatelessReplicaNewHealthReportEvent, bool) {
5272	return nil, false
5273}
5274
5275// AsStatelessReplicaHealthReportExpiredEvent is the BasicFabricEvent implementation for ApplicationUpgradeDomainCompletedEvent.
5276func (audce ApplicationUpgradeDomainCompletedEvent) AsStatelessReplicaHealthReportExpiredEvent() (*StatelessReplicaHealthReportExpiredEvent, bool) {
5277	return nil, false
5278}
5279
5280// AsClusterNewHealthReportEvent is the BasicFabricEvent implementation for ApplicationUpgradeDomainCompletedEvent.
5281func (audce ApplicationUpgradeDomainCompletedEvent) AsClusterNewHealthReportEvent() (*ClusterNewHealthReportEvent, bool) {
5282	return nil, false
5283}
5284
5285// AsClusterHealthReportExpiredEvent is the BasicFabricEvent implementation for ApplicationUpgradeDomainCompletedEvent.
5286func (audce ApplicationUpgradeDomainCompletedEvent) AsClusterHealthReportExpiredEvent() (*ClusterHealthReportExpiredEvent, bool) {
5287	return nil, false
5288}
5289
5290// AsClusterUpgradeCompletedEvent is the BasicFabricEvent implementation for ApplicationUpgradeDomainCompletedEvent.
5291func (audce ApplicationUpgradeDomainCompletedEvent) AsClusterUpgradeCompletedEvent() (*ClusterUpgradeCompletedEvent, bool) {
5292	return nil, false
5293}
5294
5295// AsClusterUpgradeDomainCompletedEvent is the BasicFabricEvent implementation for ApplicationUpgradeDomainCompletedEvent.
5296func (audce ApplicationUpgradeDomainCompletedEvent) AsClusterUpgradeDomainCompletedEvent() (*ClusterUpgradeDomainCompletedEvent, bool) {
5297	return nil, false
5298}
5299
5300// AsClusterUpgradeRollbackCompletedEvent is the BasicFabricEvent implementation for ApplicationUpgradeDomainCompletedEvent.
5301func (audce ApplicationUpgradeDomainCompletedEvent) AsClusterUpgradeRollbackCompletedEvent() (*ClusterUpgradeRollbackCompletedEvent, bool) {
5302	return nil, false
5303}
5304
5305// AsClusterUpgradeRollbackStartedEvent is the BasicFabricEvent implementation for ApplicationUpgradeDomainCompletedEvent.
5306func (audce ApplicationUpgradeDomainCompletedEvent) AsClusterUpgradeRollbackStartedEvent() (*ClusterUpgradeRollbackStartedEvent, bool) {
5307	return nil, false
5308}
5309
5310// AsClusterUpgradeStartedEvent is the BasicFabricEvent implementation for ApplicationUpgradeDomainCompletedEvent.
5311func (audce ApplicationUpgradeDomainCompletedEvent) AsClusterUpgradeStartedEvent() (*ClusterUpgradeStartedEvent, bool) {
5312	return nil, false
5313}
5314
5315// AsChaosStoppedEvent is the BasicFabricEvent implementation for ApplicationUpgradeDomainCompletedEvent.
5316func (audce ApplicationUpgradeDomainCompletedEvent) AsChaosStoppedEvent() (*ChaosStoppedEvent, bool) {
5317	return nil, false
5318}
5319
5320// AsChaosStartedEvent is the BasicFabricEvent implementation for ApplicationUpgradeDomainCompletedEvent.
5321func (audce ApplicationUpgradeDomainCompletedEvent) AsChaosStartedEvent() (*ChaosStartedEvent, bool) {
5322	return nil, false
5323}
5324
5325// AsChaosCodePackageRestartScheduledEvent is the BasicFabricEvent implementation for ApplicationUpgradeDomainCompletedEvent.
5326func (audce ApplicationUpgradeDomainCompletedEvent) AsChaosCodePackageRestartScheduledEvent() (*ChaosCodePackageRestartScheduledEvent, bool) {
5327	return nil, false
5328}
5329
5330// AsChaosReplicaRemovalScheduledEvent is the BasicFabricEvent implementation for ApplicationUpgradeDomainCompletedEvent.
5331func (audce ApplicationUpgradeDomainCompletedEvent) AsChaosReplicaRemovalScheduledEvent() (*ChaosReplicaRemovalScheduledEvent, bool) {
5332	return nil, false
5333}
5334
5335// AsChaosPartitionSecondaryMoveScheduledEvent is the BasicFabricEvent implementation for ApplicationUpgradeDomainCompletedEvent.
5336func (audce ApplicationUpgradeDomainCompletedEvent) AsChaosPartitionSecondaryMoveScheduledEvent() (*ChaosPartitionSecondaryMoveScheduledEvent, bool) {
5337	return nil, false
5338}
5339
5340// AsChaosPartitionPrimaryMoveScheduledEvent is the BasicFabricEvent implementation for ApplicationUpgradeDomainCompletedEvent.
5341func (audce ApplicationUpgradeDomainCompletedEvent) AsChaosPartitionPrimaryMoveScheduledEvent() (*ChaosPartitionPrimaryMoveScheduledEvent, bool) {
5342	return nil, false
5343}
5344
5345// AsChaosReplicaRestartScheduledEvent is the BasicFabricEvent implementation for ApplicationUpgradeDomainCompletedEvent.
5346func (audce ApplicationUpgradeDomainCompletedEvent) AsChaosReplicaRestartScheduledEvent() (*ChaosReplicaRestartScheduledEvent, bool) {
5347	return nil, false
5348}
5349
5350// AsChaosNodeRestartScheduledEvent is the BasicFabricEvent implementation for ApplicationUpgradeDomainCompletedEvent.
5351func (audce ApplicationUpgradeDomainCompletedEvent) AsChaosNodeRestartScheduledEvent() (*ChaosNodeRestartScheduledEvent, bool) {
5352	return nil, false
5353}
5354
5355// AsFabricEvent is the BasicFabricEvent implementation for ApplicationUpgradeDomainCompletedEvent.
5356func (audce ApplicationUpgradeDomainCompletedEvent) AsFabricEvent() (*FabricEvent, bool) {
5357	return nil, false
5358}
5359
5360// AsBasicFabricEvent is the BasicFabricEvent implementation for ApplicationUpgradeDomainCompletedEvent.
5361func (audce ApplicationUpgradeDomainCompletedEvent) AsBasicFabricEvent() (BasicFabricEvent, bool) {
5362	return &audce, true
5363}
5364
5365// ApplicationUpgradeProgressInfo describes the parameters for an application upgrade.
5366type ApplicationUpgradeProgressInfo struct {
5367	autorest.Response `json:"-"`
5368	// Name - The name of the target application, including the 'fabric:' URI scheme.
5369	Name *string `json:"Name,omitempty"`
5370	// TypeName - The application type name as defined in the application manifest.
5371	TypeName *string `json:"TypeName,omitempty"`
5372	// TargetApplicationTypeVersion - The target application type version (found in the application manifest) for the application upgrade.
5373	TargetApplicationTypeVersion *string `json:"TargetApplicationTypeVersion,omitempty"`
5374	// UpgradeDomains - List of upgrade domains and their statuses.
5375	UpgradeDomains *[]UpgradeDomainInfo `json:"UpgradeDomains,omitempty"`
5376	// UpgradeState - The state of the upgrade domain. Possible values include: 'UpgradeStateInvalid', 'UpgradeStateRollingBackInProgress', 'UpgradeStateRollingBackCompleted', 'UpgradeStateRollingForwardPending', 'UpgradeStateRollingForwardInProgress', 'UpgradeStateRollingForwardCompleted', 'UpgradeStateFailed'
5377	UpgradeState UpgradeState `json:"UpgradeState,omitempty"`
5378	// NextUpgradeDomain - The name of the next upgrade domain to be processed.
5379	NextUpgradeDomain *string `json:"NextUpgradeDomain,omitempty"`
5380	// 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'
5381	RollingUpgradeMode UpgradeMode `json:"RollingUpgradeMode,omitempty"`
5382	// 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.
5383	UpgradeDescription *ApplicationUpgradeDescription `json:"UpgradeDescription,omitempty"`
5384	// UpgradeDurationInMilliseconds - The estimated total amount of time spent processing the overall upgrade.
5385	UpgradeDurationInMilliseconds *string `json:"UpgradeDurationInMilliseconds,omitempty"`
5386	// UpgradeDomainDurationInMilliseconds - The estimated total amount of time spent processing the current upgrade domain.
5387	UpgradeDomainDurationInMilliseconds *string `json:"UpgradeDomainDurationInMilliseconds,omitempty"`
5388	// UnhealthyEvaluations - List of health evaluations that resulted in the current aggregated health state.
5389	UnhealthyEvaluations *[]HealthEvaluationWrapper `json:"UnhealthyEvaluations,omitempty"`
5390	// CurrentUpgradeDomainProgress - Information about the current in-progress upgrade domain.
5391	CurrentUpgradeDomainProgress *CurrentUpgradeDomainProgressInfo `json:"CurrentUpgradeDomainProgress,omitempty"`
5392	// StartTimestampUtc - The estimated UTC datetime when the upgrade started.
5393	StartTimestampUtc *string `json:"StartTimestampUtc,omitempty"`
5394	// FailureTimestampUtc - The estimated UTC datetime when the upgrade failed and FailureAction was executed.
5395	FailureTimestampUtc *string `json:"FailureTimestampUtc,omitempty"`
5396	// FailureReason - The cause of an upgrade failure that resulted in FailureAction being executed. Possible values include: 'None', 'Interrupted', 'HealthCheck', 'UpgradeDomainTimeout', 'OverallUpgradeTimeout'
5397	FailureReason FailureReason `json:"FailureReason,omitempty"`
5398	// UpgradeDomainProgressAtFailure - Information about the upgrade domain progress at the time of upgrade failure.
5399	UpgradeDomainProgressAtFailure *FailureUpgradeDomainProgressInfo `json:"UpgradeDomainProgressAtFailure,omitempty"`
5400	// UpgradeStatusDetails - Additional detailed information about the status of the pending upgrade.
5401	UpgradeStatusDetails *string `json:"UpgradeStatusDetails,omitempty"`
5402}
5403
5404// ApplicationUpgradeRollbackCompletedEvent application Upgrade Rollback Completed event.
5405type ApplicationUpgradeRollbackCompletedEvent struct {
5406	// ApplicationTypeName - Application type name.
5407	ApplicationTypeName *string `json:"ApplicationTypeName,omitempty"`
5408	// ApplicationTypeVersion - Application type version.
5409	ApplicationTypeVersion *string `json:"ApplicationTypeVersion,omitempty"`
5410	// FailureReason - Describes reason of failure.
5411	FailureReason *string `json:"FailureReason,omitempty"`
5412	// OverallUpgradeElapsedTimeInMs - Overall upgrade time in milli-seconds.
5413	OverallUpgradeElapsedTimeInMs *float64 `json:"OverallUpgradeElapsedTimeInMs,omitempty"`
5414	// 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.
5415	// Starting in version 6.0, hierarchical names are delimited with the "\~" character. For example, if the application name is "fabric:/myapp/app1",
5416	// the application identity would be "myapp\~app1" in 6.0+ and "myapp/app1" in previous versions.
5417	ApplicationID *string `json:"ApplicationId,omitempty"`
5418	// EventInstanceID - The identifier for the FabricEvent instance.
5419	EventInstanceID *uuid.UUID `json:"EventInstanceId,omitempty"`
5420	// Category - The category of event.
5421	Category *string `json:"Category,omitempty"`
5422	// TimeStamp - The time event was logged.
5423	TimeStamp *date.Time `json:"TimeStamp,omitempty"`
5424	// HasCorrelatedEvents - Shows there is existing related events available.
5425	HasCorrelatedEvents *bool `json:"HasCorrelatedEvents,omitempty"`
5426	// 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'
5427	Kind KindBasicFabricEvent `json:"Kind,omitempty"`
5428}
5429
5430// MarshalJSON is the custom marshaler for ApplicationUpgradeRollbackCompletedEvent.
5431func (aurce ApplicationUpgradeRollbackCompletedEvent) MarshalJSON() ([]byte, error) {
5432	aurce.Kind = KindApplicationUpgradeRollbackCompleted
5433	objectMap := make(map[string]interface{})
5434	if aurce.ApplicationTypeName != nil {
5435		objectMap["ApplicationTypeName"] = aurce.ApplicationTypeName
5436	}
5437	if aurce.ApplicationTypeVersion != nil {
5438		objectMap["ApplicationTypeVersion"] = aurce.ApplicationTypeVersion
5439	}
5440	if aurce.FailureReason != nil {
5441		objectMap["FailureReason"] = aurce.FailureReason
5442	}
5443	if aurce.OverallUpgradeElapsedTimeInMs != nil {
5444		objectMap["OverallUpgradeElapsedTimeInMs"] = aurce.OverallUpgradeElapsedTimeInMs
5445	}
5446	if aurce.ApplicationID != nil {
5447		objectMap["ApplicationId"] = aurce.ApplicationID
5448	}
5449	if aurce.EventInstanceID != nil {
5450		objectMap["EventInstanceId"] = aurce.EventInstanceID
5451	}
5452	if aurce.Category != nil {
5453		objectMap["Category"] = aurce.Category
5454	}
5455	if aurce.TimeStamp != nil {
5456		objectMap["TimeStamp"] = aurce.TimeStamp
5457	}
5458	if aurce.HasCorrelatedEvents != nil {
5459		objectMap["HasCorrelatedEvents"] = aurce.HasCorrelatedEvents
5460	}
5461	if aurce.Kind != "" {
5462		objectMap["Kind"] = aurce.Kind
5463	}
5464	return json.Marshal(objectMap)
5465}
5466
5467// AsApplicationEvent is the BasicFabricEvent implementation for ApplicationUpgradeRollbackCompletedEvent.
5468func (aurce ApplicationUpgradeRollbackCompletedEvent) AsApplicationEvent() (*ApplicationEvent, bool) {
5469	return nil, false
5470}
5471
5472// AsBasicApplicationEvent is the BasicFabricEvent implementation for ApplicationUpgradeRollbackCompletedEvent.
5473func (aurce ApplicationUpgradeRollbackCompletedEvent) AsBasicApplicationEvent() (BasicApplicationEvent, bool) {
5474	return &aurce, true
5475}
5476
5477// AsClusterEvent is the BasicFabricEvent implementation for ApplicationUpgradeRollbackCompletedEvent.
5478func (aurce ApplicationUpgradeRollbackCompletedEvent) AsClusterEvent() (*ClusterEvent, bool) {
5479	return nil, false
5480}
5481
5482// AsBasicClusterEvent is the BasicFabricEvent implementation for ApplicationUpgradeRollbackCompletedEvent.
5483func (aurce ApplicationUpgradeRollbackCompletedEvent) AsBasicClusterEvent() (BasicClusterEvent, bool) {
5484	return nil, false
5485}
5486
5487// AsContainerInstanceEvent is the BasicFabricEvent implementation for ApplicationUpgradeRollbackCompletedEvent.
5488func (aurce ApplicationUpgradeRollbackCompletedEvent) AsContainerInstanceEvent() (*ContainerInstanceEvent, bool) {
5489	return nil, false
5490}
5491
5492// AsNodeEvent is the BasicFabricEvent implementation for ApplicationUpgradeRollbackCompletedEvent.
5493func (aurce ApplicationUpgradeRollbackCompletedEvent) AsNodeEvent() (*NodeEvent, bool) {
5494	return nil, false
5495}
5496
5497// AsBasicNodeEvent is the BasicFabricEvent implementation for ApplicationUpgradeRollbackCompletedEvent.
5498func (aurce ApplicationUpgradeRollbackCompletedEvent) AsBasicNodeEvent() (BasicNodeEvent, bool) {
5499	return nil, false
5500}
5501
5502// AsPartitionAnalysisEvent is the BasicFabricEvent implementation for ApplicationUpgradeRollbackCompletedEvent.
5503func (aurce ApplicationUpgradeRollbackCompletedEvent) AsPartitionAnalysisEvent() (*PartitionAnalysisEvent, bool) {
5504	return nil, false
5505}
5506
5507// AsBasicPartitionAnalysisEvent is the BasicFabricEvent implementation for ApplicationUpgradeRollbackCompletedEvent.
5508func (aurce ApplicationUpgradeRollbackCompletedEvent) AsBasicPartitionAnalysisEvent() (BasicPartitionAnalysisEvent, bool) {
5509	return nil, false
5510}
5511
5512// AsPartitionEvent is the BasicFabricEvent implementation for ApplicationUpgradeRollbackCompletedEvent.
5513func (aurce ApplicationUpgradeRollbackCompletedEvent) AsPartitionEvent() (*PartitionEvent, bool) {
5514	return nil, false
5515}
5516
5517// AsBasicPartitionEvent is the BasicFabricEvent implementation for ApplicationUpgradeRollbackCompletedEvent.
5518func (aurce ApplicationUpgradeRollbackCompletedEvent) AsBasicPartitionEvent() (BasicPartitionEvent, bool) {
5519	return nil, false
5520}
5521
5522// AsReplicaEvent is the BasicFabricEvent implementation for ApplicationUpgradeRollbackCompletedEvent.
5523func (aurce ApplicationUpgradeRollbackCompletedEvent) AsReplicaEvent() (*ReplicaEvent, bool) {
5524	return nil, false
5525}
5526
5527// AsBasicReplicaEvent is the BasicFabricEvent implementation for ApplicationUpgradeRollbackCompletedEvent.
5528func (aurce ApplicationUpgradeRollbackCompletedEvent) AsBasicReplicaEvent() (BasicReplicaEvent, bool) {
5529	return nil, false
5530}
5531
5532// AsServiceEvent is the BasicFabricEvent implementation for ApplicationUpgradeRollbackCompletedEvent.
5533func (aurce ApplicationUpgradeRollbackCompletedEvent) AsServiceEvent() (*ServiceEvent, bool) {
5534	return nil, false
5535}
5536
5537// AsBasicServiceEvent is the BasicFabricEvent implementation for ApplicationUpgradeRollbackCompletedEvent.
5538func (aurce ApplicationUpgradeRollbackCompletedEvent) AsBasicServiceEvent() (BasicServiceEvent, bool) {
5539	return nil, false
5540}
5541
5542// AsApplicationCreatedEvent is the BasicFabricEvent implementation for ApplicationUpgradeRollbackCompletedEvent.
5543func (aurce ApplicationUpgradeRollbackCompletedEvent) AsApplicationCreatedEvent() (*ApplicationCreatedEvent, bool) {
5544	return nil, false
5545}
5546
5547// AsApplicationDeletedEvent is the BasicFabricEvent implementation for ApplicationUpgradeRollbackCompletedEvent.
5548func (aurce ApplicationUpgradeRollbackCompletedEvent) AsApplicationDeletedEvent() (*ApplicationDeletedEvent, bool) {
5549	return nil, false
5550}
5551
5552// AsApplicationNewHealthReportEvent is the BasicFabricEvent implementation for ApplicationUpgradeRollbackCompletedEvent.
5553func (aurce ApplicationUpgradeRollbackCompletedEvent) AsApplicationNewHealthReportEvent() (*ApplicationNewHealthReportEvent, bool) {
5554	return nil, false
5555}
5556
5557// AsApplicationHealthReportExpiredEvent is the BasicFabricEvent implementation for ApplicationUpgradeRollbackCompletedEvent.
5558func (aurce ApplicationUpgradeRollbackCompletedEvent) AsApplicationHealthReportExpiredEvent() (*ApplicationHealthReportExpiredEvent, bool) {
5559	return nil, false
5560}
5561
5562// AsApplicationUpgradeCompletedEvent is the BasicFabricEvent implementation for ApplicationUpgradeRollbackCompletedEvent.
5563func (aurce ApplicationUpgradeRollbackCompletedEvent) AsApplicationUpgradeCompletedEvent() (*ApplicationUpgradeCompletedEvent, bool) {
5564	return nil, false
5565}
5566
5567// AsApplicationUpgradeDomainCompletedEvent is the BasicFabricEvent implementation for ApplicationUpgradeRollbackCompletedEvent.
5568func (aurce ApplicationUpgradeRollbackCompletedEvent) AsApplicationUpgradeDomainCompletedEvent() (*ApplicationUpgradeDomainCompletedEvent, bool) {
5569	return nil, false
5570}
5571
5572// AsApplicationUpgradeRollbackCompletedEvent is the BasicFabricEvent implementation for ApplicationUpgradeRollbackCompletedEvent.
5573func (aurce ApplicationUpgradeRollbackCompletedEvent) AsApplicationUpgradeRollbackCompletedEvent() (*ApplicationUpgradeRollbackCompletedEvent, bool) {
5574	return &aurce, true
5575}
5576
5577// AsApplicationUpgradeRollbackStartedEvent is the BasicFabricEvent implementation for ApplicationUpgradeRollbackCompletedEvent.
5578func (aurce ApplicationUpgradeRollbackCompletedEvent) AsApplicationUpgradeRollbackStartedEvent() (*ApplicationUpgradeRollbackStartedEvent, bool) {
5579	return nil, false
5580}
5581
5582// AsApplicationUpgradeStartedEvent is the BasicFabricEvent implementation for ApplicationUpgradeRollbackCompletedEvent.
5583func (aurce ApplicationUpgradeRollbackCompletedEvent) AsApplicationUpgradeStartedEvent() (*ApplicationUpgradeStartedEvent, bool) {
5584	return nil, false
5585}
5586
5587// AsDeployedApplicationNewHealthReportEvent is the BasicFabricEvent implementation for ApplicationUpgradeRollbackCompletedEvent.
5588func (aurce ApplicationUpgradeRollbackCompletedEvent) AsDeployedApplicationNewHealthReportEvent() (*DeployedApplicationNewHealthReportEvent, bool) {
5589	return nil, false
5590}
5591
5592// AsDeployedApplicationHealthReportExpiredEvent is the BasicFabricEvent implementation for ApplicationUpgradeRollbackCompletedEvent.
5593func (aurce ApplicationUpgradeRollbackCompletedEvent) AsDeployedApplicationHealthReportExpiredEvent() (*DeployedApplicationHealthReportExpiredEvent, bool) {
5594	return nil, false
5595}
5596
5597// AsApplicationProcessExitedEvent is the BasicFabricEvent implementation for ApplicationUpgradeRollbackCompletedEvent.
5598func (aurce ApplicationUpgradeRollbackCompletedEvent) AsApplicationProcessExitedEvent() (*ApplicationProcessExitedEvent, bool) {
5599	return nil, false
5600}
5601
5602// AsApplicationContainerInstanceExitedEvent is the BasicFabricEvent implementation for ApplicationUpgradeRollbackCompletedEvent.
5603func (aurce ApplicationUpgradeRollbackCompletedEvent) AsApplicationContainerInstanceExitedEvent() (*ApplicationContainerInstanceExitedEvent, bool) {
5604	return nil, false
5605}
5606
5607// AsNodeAbortedEvent is the BasicFabricEvent implementation for ApplicationUpgradeRollbackCompletedEvent.
5608func (aurce ApplicationUpgradeRollbackCompletedEvent) AsNodeAbortedEvent() (*NodeAbortedEvent, bool) {
5609	return nil, false
5610}
5611
5612// AsNodeAddedToClusterEvent is the BasicFabricEvent implementation for ApplicationUpgradeRollbackCompletedEvent.
5613func (aurce ApplicationUpgradeRollbackCompletedEvent) AsNodeAddedToClusterEvent() (*NodeAddedToClusterEvent, bool) {
5614	return nil, false
5615}
5616
5617// AsNodeClosedEvent is the BasicFabricEvent implementation for ApplicationUpgradeRollbackCompletedEvent.
5618func (aurce ApplicationUpgradeRollbackCompletedEvent) AsNodeClosedEvent() (*NodeClosedEvent, bool) {
5619	return nil, false
5620}
5621
5622// AsNodeDeactivateCompletedEvent is the BasicFabricEvent implementation for ApplicationUpgradeRollbackCompletedEvent.
5623func (aurce ApplicationUpgradeRollbackCompletedEvent) AsNodeDeactivateCompletedEvent() (*NodeDeactivateCompletedEvent, bool) {
5624	return nil, false
5625}
5626
5627// AsNodeDeactivateStartedEvent is the BasicFabricEvent implementation for ApplicationUpgradeRollbackCompletedEvent.
5628func (aurce ApplicationUpgradeRollbackCompletedEvent) AsNodeDeactivateStartedEvent() (*NodeDeactivateStartedEvent, bool) {
5629	return nil, false
5630}
5631
5632// AsNodeDownEvent is the BasicFabricEvent implementation for ApplicationUpgradeRollbackCompletedEvent.
5633func (aurce ApplicationUpgradeRollbackCompletedEvent) AsNodeDownEvent() (*NodeDownEvent, bool) {
5634	return nil, false
5635}
5636
5637// AsNodeNewHealthReportEvent is the BasicFabricEvent implementation for ApplicationUpgradeRollbackCompletedEvent.
5638func (aurce ApplicationUpgradeRollbackCompletedEvent) AsNodeNewHealthReportEvent() (*NodeNewHealthReportEvent, bool) {
5639	return nil, false
5640}
5641
5642// AsNodeHealthReportExpiredEvent is the BasicFabricEvent implementation for ApplicationUpgradeRollbackCompletedEvent.
5643func (aurce ApplicationUpgradeRollbackCompletedEvent) AsNodeHealthReportExpiredEvent() (*NodeHealthReportExpiredEvent, bool) {
5644	return nil, false
5645}
5646
5647// AsNodeOpenSucceededEvent is the BasicFabricEvent implementation for ApplicationUpgradeRollbackCompletedEvent.
5648func (aurce ApplicationUpgradeRollbackCompletedEvent) AsNodeOpenSucceededEvent() (*NodeOpenSucceededEvent, bool) {
5649	return nil, false
5650}
5651
5652// AsNodeOpenFailedEvent is the BasicFabricEvent implementation for ApplicationUpgradeRollbackCompletedEvent.
5653func (aurce ApplicationUpgradeRollbackCompletedEvent) AsNodeOpenFailedEvent() (*NodeOpenFailedEvent, bool) {
5654	return nil, false
5655}
5656
5657// AsNodeRemovedFromClusterEvent is the BasicFabricEvent implementation for ApplicationUpgradeRollbackCompletedEvent.
5658func (aurce ApplicationUpgradeRollbackCompletedEvent) AsNodeRemovedFromClusterEvent() (*NodeRemovedFromClusterEvent, bool) {
5659	return nil, false
5660}
5661
5662// AsNodeUpEvent is the BasicFabricEvent implementation for ApplicationUpgradeRollbackCompletedEvent.
5663func (aurce ApplicationUpgradeRollbackCompletedEvent) AsNodeUpEvent() (*NodeUpEvent, bool) {
5664	return nil, false
5665}
5666
5667// AsPartitionNewHealthReportEvent is the BasicFabricEvent implementation for ApplicationUpgradeRollbackCompletedEvent.
5668func (aurce ApplicationUpgradeRollbackCompletedEvent) AsPartitionNewHealthReportEvent() (*PartitionNewHealthReportEvent, bool) {
5669	return nil, false
5670}
5671
5672// AsPartitionHealthReportExpiredEvent is the BasicFabricEvent implementation for ApplicationUpgradeRollbackCompletedEvent.
5673func (aurce ApplicationUpgradeRollbackCompletedEvent) AsPartitionHealthReportExpiredEvent() (*PartitionHealthReportExpiredEvent, bool) {
5674	return nil, false
5675}
5676
5677// AsPartitionReconfiguredEvent is the BasicFabricEvent implementation for ApplicationUpgradeRollbackCompletedEvent.
5678func (aurce ApplicationUpgradeRollbackCompletedEvent) AsPartitionReconfiguredEvent() (*PartitionReconfiguredEvent, bool) {
5679	return nil, false
5680}
5681
5682// AsPartitionPrimaryMoveAnalysisEvent is the BasicFabricEvent implementation for ApplicationUpgradeRollbackCompletedEvent.
5683func (aurce ApplicationUpgradeRollbackCompletedEvent) AsPartitionPrimaryMoveAnalysisEvent() (*PartitionPrimaryMoveAnalysisEvent, bool) {
5684	return nil, false
5685}
5686
5687// AsServiceCreatedEvent is the BasicFabricEvent implementation for ApplicationUpgradeRollbackCompletedEvent.
5688func (aurce ApplicationUpgradeRollbackCompletedEvent) AsServiceCreatedEvent() (*ServiceCreatedEvent, bool) {
5689	return nil, false
5690}
5691
5692// AsServiceDeletedEvent is the BasicFabricEvent implementation for ApplicationUpgradeRollbackCompletedEvent.
5693func (aurce ApplicationUpgradeRollbackCompletedEvent) AsServiceDeletedEvent() (*ServiceDeletedEvent, bool) {
5694	return nil, false
5695}
5696
5697// AsServiceNewHealthReportEvent is the BasicFabricEvent implementation for ApplicationUpgradeRollbackCompletedEvent.
5698func (aurce ApplicationUpgradeRollbackCompletedEvent) AsServiceNewHealthReportEvent() (*ServiceNewHealthReportEvent, bool) {
5699	return nil, false
5700}
5701
5702// AsServiceHealthReportExpiredEvent is the BasicFabricEvent implementation for ApplicationUpgradeRollbackCompletedEvent.
5703func (aurce ApplicationUpgradeRollbackCompletedEvent) AsServiceHealthReportExpiredEvent() (*ServiceHealthReportExpiredEvent, bool) {
5704	return nil, false
5705}
5706
5707// AsDeployedServicePackageNewHealthReportEvent is the BasicFabricEvent implementation for ApplicationUpgradeRollbackCompletedEvent.
5708func (aurce ApplicationUpgradeRollbackCompletedEvent) AsDeployedServicePackageNewHealthReportEvent() (*DeployedServicePackageNewHealthReportEvent, bool) {
5709	return nil, false
5710}
5711
5712// AsDeployedServicePackageHealthReportExpiredEvent is the BasicFabricEvent implementation for ApplicationUpgradeRollbackCompletedEvent.
5713func (aurce ApplicationUpgradeRollbackCompletedEvent) AsDeployedServicePackageHealthReportExpiredEvent() (*DeployedServicePackageHealthReportExpiredEvent, bool) {
5714	return nil, false
5715}
5716
5717// AsStatefulReplicaNewHealthReportEvent is the BasicFabricEvent implementation for ApplicationUpgradeRollbackCompletedEvent.
5718func (aurce ApplicationUpgradeRollbackCompletedEvent) AsStatefulReplicaNewHealthReportEvent() (*StatefulReplicaNewHealthReportEvent, bool) {
5719	return nil, false
5720}
5721
5722// AsStatefulReplicaHealthReportExpiredEvent is the BasicFabricEvent implementation for ApplicationUpgradeRollbackCompletedEvent.
5723func (aurce ApplicationUpgradeRollbackCompletedEvent) AsStatefulReplicaHealthReportExpiredEvent() (*StatefulReplicaHealthReportExpiredEvent, bool) {
5724	return nil, false
5725}
5726
5727// AsStatelessReplicaNewHealthReportEvent is the BasicFabricEvent implementation for ApplicationUpgradeRollbackCompletedEvent.
5728func (aurce ApplicationUpgradeRollbackCompletedEvent) AsStatelessReplicaNewHealthReportEvent() (*StatelessReplicaNewHealthReportEvent, bool) {
5729	return nil, false
5730}
5731
5732// AsStatelessReplicaHealthReportExpiredEvent is the BasicFabricEvent implementation for ApplicationUpgradeRollbackCompletedEvent.
5733func (aurce ApplicationUpgradeRollbackCompletedEvent) AsStatelessReplicaHealthReportExpiredEvent() (*StatelessReplicaHealthReportExpiredEvent, bool) {
5734	return nil, false
5735}
5736
5737// AsClusterNewHealthReportEvent is the BasicFabricEvent implementation for ApplicationUpgradeRollbackCompletedEvent.
5738func (aurce ApplicationUpgradeRollbackCompletedEvent) AsClusterNewHealthReportEvent() (*ClusterNewHealthReportEvent, bool) {
5739	return nil, false
5740}
5741
5742// AsClusterHealthReportExpiredEvent is the BasicFabricEvent implementation for ApplicationUpgradeRollbackCompletedEvent.
5743func (aurce ApplicationUpgradeRollbackCompletedEvent) AsClusterHealthReportExpiredEvent() (*ClusterHealthReportExpiredEvent, bool) {
5744	return nil, false
5745}
5746
5747// AsClusterUpgradeCompletedEvent is the BasicFabricEvent implementation for ApplicationUpgradeRollbackCompletedEvent.
5748func (aurce ApplicationUpgradeRollbackCompletedEvent) AsClusterUpgradeCompletedEvent() (*ClusterUpgradeCompletedEvent, bool) {
5749	return nil, false
5750}
5751
5752// AsClusterUpgradeDomainCompletedEvent is the BasicFabricEvent implementation for ApplicationUpgradeRollbackCompletedEvent.
5753func (aurce ApplicationUpgradeRollbackCompletedEvent) AsClusterUpgradeDomainCompletedEvent() (*ClusterUpgradeDomainCompletedEvent, bool) {
5754	return nil, false
5755}
5756
5757// AsClusterUpgradeRollbackCompletedEvent is the BasicFabricEvent implementation for ApplicationUpgradeRollbackCompletedEvent.
5758func (aurce ApplicationUpgradeRollbackCompletedEvent) AsClusterUpgradeRollbackCompletedEvent() (*ClusterUpgradeRollbackCompletedEvent, bool) {
5759	return nil, false
5760}
5761
5762// AsClusterUpgradeRollbackStartedEvent is the BasicFabricEvent implementation for ApplicationUpgradeRollbackCompletedEvent.
5763func (aurce ApplicationUpgradeRollbackCompletedEvent) AsClusterUpgradeRollbackStartedEvent() (*ClusterUpgradeRollbackStartedEvent, bool) {
5764	return nil, false
5765}
5766
5767// AsClusterUpgradeStartedEvent is the BasicFabricEvent implementation for ApplicationUpgradeRollbackCompletedEvent.
5768func (aurce ApplicationUpgradeRollbackCompletedEvent) AsClusterUpgradeStartedEvent() (*ClusterUpgradeStartedEvent, bool) {
5769	return nil, false
5770}
5771
5772// AsChaosStoppedEvent is the BasicFabricEvent implementation for ApplicationUpgradeRollbackCompletedEvent.
5773func (aurce ApplicationUpgradeRollbackCompletedEvent) AsChaosStoppedEvent() (*ChaosStoppedEvent, bool) {
5774	return nil, false
5775}
5776
5777// AsChaosStartedEvent is the BasicFabricEvent implementation for ApplicationUpgradeRollbackCompletedEvent.
5778func (aurce ApplicationUpgradeRollbackCompletedEvent) AsChaosStartedEvent() (*ChaosStartedEvent, bool) {
5779	return nil, false
5780}
5781
5782// AsChaosCodePackageRestartScheduledEvent is the BasicFabricEvent implementation for ApplicationUpgradeRollbackCompletedEvent.
5783func (aurce ApplicationUpgradeRollbackCompletedEvent) AsChaosCodePackageRestartScheduledEvent() (*ChaosCodePackageRestartScheduledEvent, bool) {
5784	return nil, false
5785}
5786
5787// AsChaosReplicaRemovalScheduledEvent is the BasicFabricEvent implementation for ApplicationUpgradeRollbackCompletedEvent.
5788func (aurce ApplicationUpgradeRollbackCompletedEvent) AsChaosReplicaRemovalScheduledEvent() (*ChaosReplicaRemovalScheduledEvent, bool) {
5789	return nil, false
5790}
5791
5792// AsChaosPartitionSecondaryMoveScheduledEvent is the BasicFabricEvent implementation for ApplicationUpgradeRollbackCompletedEvent.
5793func (aurce ApplicationUpgradeRollbackCompletedEvent) AsChaosPartitionSecondaryMoveScheduledEvent() (*ChaosPartitionSecondaryMoveScheduledEvent, bool) {
5794	return nil, false
5795}
5796
5797// AsChaosPartitionPrimaryMoveScheduledEvent is the BasicFabricEvent implementation for ApplicationUpgradeRollbackCompletedEvent.
5798func (aurce ApplicationUpgradeRollbackCompletedEvent) AsChaosPartitionPrimaryMoveScheduledEvent() (*ChaosPartitionPrimaryMoveScheduledEvent, bool) {
5799	return nil, false
5800}
5801
5802// AsChaosReplicaRestartScheduledEvent is the BasicFabricEvent implementation for ApplicationUpgradeRollbackCompletedEvent.
5803func (aurce ApplicationUpgradeRollbackCompletedEvent) AsChaosReplicaRestartScheduledEvent() (*ChaosReplicaRestartScheduledEvent, bool) {
5804	return nil, false
5805}
5806
5807// AsChaosNodeRestartScheduledEvent is the BasicFabricEvent implementation for ApplicationUpgradeRollbackCompletedEvent.
5808func (aurce ApplicationUpgradeRollbackCompletedEvent) AsChaosNodeRestartScheduledEvent() (*ChaosNodeRestartScheduledEvent, bool) {
5809	return nil, false
5810}
5811
5812// AsFabricEvent is the BasicFabricEvent implementation for ApplicationUpgradeRollbackCompletedEvent.
5813func (aurce ApplicationUpgradeRollbackCompletedEvent) AsFabricEvent() (*FabricEvent, bool) {
5814	return nil, false
5815}
5816
5817// AsBasicFabricEvent is the BasicFabricEvent implementation for ApplicationUpgradeRollbackCompletedEvent.
5818func (aurce ApplicationUpgradeRollbackCompletedEvent) AsBasicFabricEvent() (BasicFabricEvent, bool) {
5819	return &aurce, true
5820}
5821
5822// ApplicationUpgradeRollbackStartedEvent application Upgrade Rollback Started event.
5823type ApplicationUpgradeRollbackStartedEvent struct {
5824	// ApplicationTypeName - Application type name.
5825	ApplicationTypeName *string `json:"ApplicationTypeName,omitempty"`
5826	// CurrentApplicationTypeVersion - Current Application type version.
5827	CurrentApplicationTypeVersion *string `json:"CurrentApplicationTypeVersion,omitempty"`
5828	// ApplicationTypeVersion - Target Application type version.
5829	ApplicationTypeVersion *string `json:"ApplicationTypeVersion,omitempty"`
5830	// FailureReason - Describes reason of failure.
5831	FailureReason *string `json:"FailureReason,omitempty"`
5832	// OverallUpgradeElapsedTimeInMs - Overall upgrade time in milli-seconds.
5833	OverallUpgradeElapsedTimeInMs *float64 `json:"OverallUpgradeElapsedTimeInMs,omitempty"`
5834	// 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.
5835	// Starting in version 6.0, hierarchical names are delimited with the "\~" character. For example, if the application name is "fabric:/myapp/app1",
5836	// the application identity would be "myapp\~app1" in 6.0+ and "myapp/app1" in previous versions.
5837	ApplicationID *string `json:"ApplicationId,omitempty"`
5838	// EventInstanceID - The identifier for the FabricEvent instance.
5839	EventInstanceID *uuid.UUID `json:"EventInstanceId,omitempty"`
5840	// Category - The category of event.
5841	Category *string `json:"Category,omitempty"`
5842	// TimeStamp - The time event was logged.
5843	TimeStamp *date.Time `json:"TimeStamp,omitempty"`
5844	// HasCorrelatedEvents - Shows there is existing related events available.
5845	HasCorrelatedEvents *bool `json:"HasCorrelatedEvents,omitempty"`
5846	// 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'
5847	Kind KindBasicFabricEvent `json:"Kind,omitempty"`
5848}
5849
5850// MarshalJSON is the custom marshaler for ApplicationUpgradeRollbackStartedEvent.
5851func (aurse ApplicationUpgradeRollbackStartedEvent) MarshalJSON() ([]byte, error) {
5852	aurse.Kind = KindApplicationUpgradeRollbackStarted
5853	objectMap := make(map[string]interface{})
5854	if aurse.ApplicationTypeName != nil {
5855		objectMap["ApplicationTypeName"] = aurse.ApplicationTypeName
5856	}
5857	if aurse.CurrentApplicationTypeVersion != nil {
5858		objectMap["CurrentApplicationTypeVersion"] = aurse.CurrentApplicationTypeVersion
5859	}
5860	if aurse.ApplicationTypeVersion != nil {
5861		objectMap["ApplicationTypeVersion"] = aurse.ApplicationTypeVersion
5862	}
5863	if aurse.FailureReason != nil {
5864		objectMap["FailureReason"] = aurse.FailureReason
5865	}
5866	if aurse.OverallUpgradeElapsedTimeInMs != nil {
5867		objectMap["OverallUpgradeElapsedTimeInMs"] = aurse.OverallUpgradeElapsedTimeInMs
5868	}
5869	if aurse.ApplicationID != nil {
5870		objectMap["ApplicationId"] = aurse.ApplicationID
5871	}
5872	if aurse.EventInstanceID != nil {
5873		objectMap["EventInstanceId"] = aurse.EventInstanceID
5874	}
5875	if aurse.Category != nil {
5876		objectMap["Category"] = aurse.Category
5877	}
5878	if aurse.TimeStamp != nil {
5879		objectMap["TimeStamp"] = aurse.TimeStamp
5880	}
5881	if aurse.HasCorrelatedEvents != nil {
5882		objectMap["HasCorrelatedEvents"] = aurse.HasCorrelatedEvents
5883	}
5884	if aurse.Kind != "" {
5885		objectMap["Kind"] = aurse.Kind
5886	}
5887	return json.Marshal(objectMap)
5888}
5889
5890// AsApplicationEvent is the BasicFabricEvent implementation for ApplicationUpgradeRollbackStartedEvent.
5891func (aurse ApplicationUpgradeRollbackStartedEvent) AsApplicationEvent() (*ApplicationEvent, bool) {
5892	return nil, false
5893}
5894
5895// AsBasicApplicationEvent is the BasicFabricEvent implementation for ApplicationUpgradeRollbackStartedEvent.
5896func (aurse ApplicationUpgradeRollbackStartedEvent) AsBasicApplicationEvent() (BasicApplicationEvent, bool) {
5897	return &aurse, true
5898}
5899
5900// AsClusterEvent is the BasicFabricEvent implementation for ApplicationUpgradeRollbackStartedEvent.
5901func (aurse ApplicationUpgradeRollbackStartedEvent) AsClusterEvent() (*ClusterEvent, bool) {
5902	return nil, false
5903}
5904
5905// AsBasicClusterEvent is the BasicFabricEvent implementation for ApplicationUpgradeRollbackStartedEvent.
5906func (aurse ApplicationUpgradeRollbackStartedEvent) AsBasicClusterEvent() (BasicClusterEvent, bool) {
5907	return nil, false
5908}
5909
5910// AsContainerInstanceEvent is the BasicFabricEvent implementation for ApplicationUpgradeRollbackStartedEvent.
5911func (aurse ApplicationUpgradeRollbackStartedEvent) AsContainerInstanceEvent() (*ContainerInstanceEvent, bool) {
5912	return nil, false
5913}
5914
5915// AsNodeEvent is the BasicFabricEvent implementation for ApplicationUpgradeRollbackStartedEvent.
5916func (aurse ApplicationUpgradeRollbackStartedEvent) AsNodeEvent() (*NodeEvent, bool) {
5917	return nil, false
5918}
5919
5920// AsBasicNodeEvent is the BasicFabricEvent implementation for ApplicationUpgradeRollbackStartedEvent.
5921func (aurse ApplicationUpgradeRollbackStartedEvent) AsBasicNodeEvent() (BasicNodeEvent, bool) {
5922	return nil, false
5923}
5924
5925// AsPartitionAnalysisEvent is the BasicFabricEvent implementation for ApplicationUpgradeRollbackStartedEvent.
5926func (aurse ApplicationUpgradeRollbackStartedEvent) AsPartitionAnalysisEvent() (*PartitionAnalysisEvent, bool) {
5927	return nil, false
5928}
5929
5930// AsBasicPartitionAnalysisEvent is the BasicFabricEvent implementation for ApplicationUpgradeRollbackStartedEvent.
5931func (aurse ApplicationUpgradeRollbackStartedEvent) AsBasicPartitionAnalysisEvent() (BasicPartitionAnalysisEvent, bool) {
5932	return nil, false
5933}
5934
5935// AsPartitionEvent is the BasicFabricEvent implementation for ApplicationUpgradeRollbackStartedEvent.
5936func (aurse ApplicationUpgradeRollbackStartedEvent) AsPartitionEvent() (*PartitionEvent, bool) {
5937	return nil, false
5938}
5939
5940// AsBasicPartitionEvent is the BasicFabricEvent implementation for ApplicationUpgradeRollbackStartedEvent.
5941func (aurse ApplicationUpgradeRollbackStartedEvent) AsBasicPartitionEvent() (BasicPartitionEvent, bool) {
5942	return nil, false
5943}
5944
5945// AsReplicaEvent is the BasicFabricEvent implementation for ApplicationUpgradeRollbackStartedEvent.
5946func (aurse ApplicationUpgradeRollbackStartedEvent) AsReplicaEvent() (*ReplicaEvent, bool) {
5947	return nil, false
5948}
5949
5950// AsBasicReplicaEvent is the BasicFabricEvent implementation for ApplicationUpgradeRollbackStartedEvent.
5951func (aurse ApplicationUpgradeRollbackStartedEvent) AsBasicReplicaEvent() (BasicReplicaEvent, bool) {
5952	return nil, false
5953}
5954
5955// AsServiceEvent is the BasicFabricEvent implementation for ApplicationUpgradeRollbackStartedEvent.
5956func (aurse ApplicationUpgradeRollbackStartedEvent) AsServiceEvent() (*ServiceEvent, bool) {
5957	return nil, false
5958}
5959
5960// AsBasicServiceEvent is the BasicFabricEvent implementation for ApplicationUpgradeRollbackStartedEvent.
5961func (aurse ApplicationUpgradeRollbackStartedEvent) AsBasicServiceEvent() (BasicServiceEvent, bool) {
5962	return nil, false
5963}
5964
5965// AsApplicationCreatedEvent is the BasicFabricEvent implementation for ApplicationUpgradeRollbackStartedEvent.
5966func (aurse ApplicationUpgradeRollbackStartedEvent) AsApplicationCreatedEvent() (*ApplicationCreatedEvent, bool) {
5967	return nil, false
5968}
5969
5970// AsApplicationDeletedEvent is the BasicFabricEvent implementation for ApplicationUpgradeRollbackStartedEvent.
5971func (aurse ApplicationUpgradeRollbackStartedEvent) AsApplicationDeletedEvent() (*ApplicationDeletedEvent, bool) {
5972	return nil, false
5973}
5974
5975// AsApplicationNewHealthReportEvent is the BasicFabricEvent implementation for ApplicationUpgradeRollbackStartedEvent.
5976func (aurse ApplicationUpgradeRollbackStartedEvent) AsApplicationNewHealthReportEvent() (*ApplicationNewHealthReportEvent, bool) {
5977	return nil, false
5978}
5979
5980// AsApplicationHealthReportExpiredEvent is the BasicFabricEvent implementation for ApplicationUpgradeRollbackStartedEvent.
5981func (aurse ApplicationUpgradeRollbackStartedEvent) AsApplicationHealthReportExpiredEvent() (*ApplicationHealthReportExpiredEvent, bool) {
5982	return nil, false
5983}
5984
5985// AsApplicationUpgradeCompletedEvent is the BasicFabricEvent implementation for ApplicationUpgradeRollbackStartedEvent.
5986func (aurse ApplicationUpgradeRollbackStartedEvent) AsApplicationUpgradeCompletedEvent() (*ApplicationUpgradeCompletedEvent, bool) {
5987	return nil, false
5988}
5989
5990// AsApplicationUpgradeDomainCompletedEvent is the BasicFabricEvent implementation for ApplicationUpgradeRollbackStartedEvent.
5991func (aurse ApplicationUpgradeRollbackStartedEvent) AsApplicationUpgradeDomainCompletedEvent() (*ApplicationUpgradeDomainCompletedEvent, bool) {
5992	return nil, false
5993}
5994
5995// AsApplicationUpgradeRollbackCompletedEvent is the BasicFabricEvent implementation for ApplicationUpgradeRollbackStartedEvent.
5996func (aurse ApplicationUpgradeRollbackStartedEvent) AsApplicationUpgradeRollbackCompletedEvent() (*ApplicationUpgradeRollbackCompletedEvent, bool) {
5997	return nil, false
5998}
5999
6000// AsApplicationUpgradeRollbackStartedEvent is the BasicFabricEvent implementation for ApplicationUpgradeRollbackStartedEvent.
6001func (aurse ApplicationUpgradeRollbackStartedEvent) AsApplicationUpgradeRollbackStartedEvent() (*ApplicationUpgradeRollbackStartedEvent, bool) {
6002	return &aurse, true
6003}
6004
6005// AsApplicationUpgradeStartedEvent is the BasicFabricEvent implementation for ApplicationUpgradeRollbackStartedEvent.
6006func (aurse ApplicationUpgradeRollbackStartedEvent) AsApplicationUpgradeStartedEvent() (*ApplicationUpgradeStartedEvent, bool) {
6007	return nil, false
6008}
6009
6010// AsDeployedApplicationNewHealthReportEvent is the BasicFabricEvent implementation for ApplicationUpgradeRollbackStartedEvent.
6011func (aurse ApplicationUpgradeRollbackStartedEvent) AsDeployedApplicationNewHealthReportEvent() (*DeployedApplicationNewHealthReportEvent, bool) {
6012	return nil, false
6013}
6014
6015// AsDeployedApplicationHealthReportExpiredEvent is the BasicFabricEvent implementation for ApplicationUpgradeRollbackStartedEvent.
6016func (aurse ApplicationUpgradeRollbackStartedEvent) AsDeployedApplicationHealthReportExpiredEvent() (*DeployedApplicationHealthReportExpiredEvent, bool) {
6017	return nil, false
6018}
6019
6020// AsApplicationProcessExitedEvent is the BasicFabricEvent implementation for ApplicationUpgradeRollbackStartedEvent.
6021func (aurse ApplicationUpgradeRollbackStartedEvent) AsApplicationProcessExitedEvent() (*ApplicationProcessExitedEvent, bool) {
6022	return nil, false
6023}
6024
6025// AsApplicationContainerInstanceExitedEvent is the BasicFabricEvent implementation for ApplicationUpgradeRollbackStartedEvent.
6026func (aurse ApplicationUpgradeRollbackStartedEvent) AsApplicationContainerInstanceExitedEvent() (*ApplicationContainerInstanceExitedEvent, bool) {
6027	return nil, false
6028}
6029
6030// AsNodeAbortedEvent is the BasicFabricEvent implementation for ApplicationUpgradeRollbackStartedEvent.
6031func (aurse ApplicationUpgradeRollbackStartedEvent) AsNodeAbortedEvent() (*NodeAbortedEvent, bool) {
6032	return nil, false
6033}
6034
6035// AsNodeAddedToClusterEvent is the BasicFabricEvent implementation for ApplicationUpgradeRollbackStartedEvent.
6036func (aurse ApplicationUpgradeRollbackStartedEvent) AsNodeAddedToClusterEvent() (*NodeAddedToClusterEvent, bool) {
6037	return nil, false
6038}
6039
6040// AsNodeClosedEvent is the BasicFabricEvent implementation for ApplicationUpgradeRollbackStartedEvent.
6041func (aurse ApplicationUpgradeRollbackStartedEvent) AsNodeClosedEvent() (*NodeClosedEvent, bool) {
6042	return nil, false
6043}
6044
6045// AsNodeDeactivateCompletedEvent is the BasicFabricEvent implementation for ApplicationUpgradeRollbackStartedEvent.
6046func (aurse ApplicationUpgradeRollbackStartedEvent) AsNodeDeactivateCompletedEvent() (*NodeDeactivateCompletedEvent, bool) {
6047	return nil, false
6048}
6049
6050// AsNodeDeactivateStartedEvent is the BasicFabricEvent implementation for ApplicationUpgradeRollbackStartedEvent.
6051func (aurse ApplicationUpgradeRollbackStartedEvent) AsNodeDeactivateStartedEvent() (*NodeDeactivateStartedEvent, bool) {
6052	return nil, false
6053}
6054
6055// AsNodeDownEvent is the BasicFabricEvent implementation for ApplicationUpgradeRollbackStartedEvent.
6056func (aurse ApplicationUpgradeRollbackStartedEvent) AsNodeDownEvent() (*NodeDownEvent, bool) {
6057	return nil, false
6058}
6059
6060// AsNodeNewHealthReportEvent is the BasicFabricEvent implementation for ApplicationUpgradeRollbackStartedEvent.
6061func (aurse ApplicationUpgradeRollbackStartedEvent) AsNodeNewHealthReportEvent() (*NodeNewHealthReportEvent, bool) {
6062	return nil, false
6063}
6064
6065// AsNodeHealthReportExpiredEvent is the BasicFabricEvent implementation for ApplicationUpgradeRollbackStartedEvent.
6066func (aurse ApplicationUpgradeRollbackStartedEvent) AsNodeHealthReportExpiredEvent() (*NodeHealthReportExpiredEvent, bool) {
6067	return nil, false
6068}
6069
6070// AsNodeOpenSucceededEvent is the BasicFabricEvent implementation for ApplicationUpgradeRollbackStartedEvent.
6071func (aurse ApplicationUpgradeRollbackStartedEvent) AsNodeOpenSucceededEvent() (*NodeOpenSucceededEvent, bool) {
6072	return nil, false
6073}
6074
6075// AsNodeOpenFailedEvent is the BasicFabricEvent implementation for ApplicationUpgradeRollbackStartedEvent.
6076func (aurse ApplicationUpgradeRollbackStartedEvent) AsNodeOpenFailedEvent() (*NodeOpenFailedEvent, bool) {
6077	return nil, false
6078}
6079
6080// AsNodeRemovedFromClusterEvent is the BasicFabricEvent implementation for ApplicationUpgradeRollbackStartedEvent.
6081func (aurse ApplicationUpgradeRollbackStartedEvent) AsNodeRemovedFromClusterEvent() (*NodeRemovedFromClusterEvent, bool) {
6082	return nil, false
6083}
6084
6085// AsNodeUpEvent is the BasicFabricEvent implementation for ApplicationUpgradeRollbackStartedEvent.
6086func (aurse ApplicationUpgradeRollbackStartedEvent) AsNodeUpEvent() (*NodeUpEvent, bool) {
6087	return nil, false
6088}
6089
6090// AsPartitionNewHealthReportEvent is the BasicFabricEvent implementation for ApplicationUpgradeRollbackStartedEvent.
6091func (aurse ApplicationUpgradeRollbackStartedEvent) AsPartitionNewHealthReportEvent() (*PartitionNewHealthReportEvent, bool) {
6092	return nil, false
6093}
6094
6095// AsPartitionHealthReportExpiredEvent is the BasicFabricEvent implementation for ApplicationUpgradeRollbackStartedEvent.
6096func (aurse ApplicationUpgradeRollbackStartedEvent) AsPartitionHealthReportExpiredEvent() (*PartitionHealthReportExpiredEvent, bool) {
6097	return nil, false
6098}
6099
6100// AsPartitionReconfiguredEvent is the BasicFabricEvent implementation for ApplicationUpgradeRollbackStartedEvent.
6101func (aurse ApplicationUpgradeRollbackStartedEvent) AsPartitionReconfiguredEvent() (*PartitionReconfiguredEvent, bool) {
6102	return nil, false
6103}
6104
6105// AsPartitionPrimaryMoveAnalysisEvent is the BasicFabricEvent implementation for ApplicationUpgradeRollbackStartedEvent.
6106func (aurse ApplicationUpgradeRollbackStartedEvent) AsPartitionPrimaryMoveAnalysisEvent() (*PartitionPrimaryMoveAnalysisEvent, bool) {
6107	return nil, false
6108}
6109
6110// AsServiceCreatedEvent is the BasicFabricEvent implementation for ApplicationUpgradeRollbackStartedEvent.
6111func (aurse ApplicationUpgradeRollbackStartedEvent) AsServiceCreatedEvent() (*ServiceCreatedEvent, bool) {
6112	return nil, false
6113}
6114
6115// AsServiceDeletedEvent is the BasicFabricEvent implementation for ApplicationUpgradeRollbackStartedEvent.
6116func (aurse ApplicationUpgradeRollbackStartedEvent) AsServiceDeletedEvent() (*ServiceDeletedEvent, bool) {
6117	return nil, false
6118}
6119
6120// AsServiceNewHealthReportEvent is the BasicFabricEvent implementation for ApplicationUpgradeRollbackStartedEvent.
6121func (aurse ApplicationUpgradeRollbackStartedEvent) AsServiceNewHealthReportEvent() (*ServiceNewHealthReportEvent, bool) {
6122	return nil, false
6123}
6124
6125// AsServiceHealthReportExpiredEvent is the BasicFabricEvent implementation for ApplicationUpgradeRollbackStartedEvent.
6126func (aurse ApplicationUpgradeRollbackStartedEvent) AsServiceHealthReportExpiredEvent() (*ServiceHealthReportExpiredEvent, bool) {
6127	return nil, false
6128}
6129
6130// AsDeployedServicePackageNewHealthReportEvent is the BasicFabricEvent implementation for ApplicationUpgradeRollbackStartedEvent.
6131func (aurse ApplicationUpgradeRollbackStartedEvent) AsDeployedServicePackageNewHealthReportEvent() (*DeployedServicePackageNewHealthReportEvent, bool) {
6132	return nil, false
6133}
6134
6135// AsDeployedServicePackageHealthReportExpiredEvent is the BasicFabricEvent implementation for ApplicationUpgradeRollbackStartedEvent.
6136func (aurse ApplicationUpgradeRollbackStartedEvent) AsDeployedServicePackageHealthReportExpiredEvent() (*DeployedServicePackageHealthReportExpiredEvent, bool) {
6137	return nil, false
6138}
6139
6140// AsStatefulReplicaNewHealthReportEvent is the BasicFabricEvent implementation for ApplicationUpgradeRollbackStartedEvent.
6141func (aurse ApplicationUpgradeRollbackStartedEvent) AsStatefulReplicaNewHealthReportEvent() (*StatefulReplicaNewHealthReportEvent, bool) {
6142	return nil, false
6143}
6144
6145// AsStatefulReplicaHealthReportExpiredEvent is the BasicFabricEvent implementation for ApplicationUpgradeRollbackStartedEvent.
6146func (aurse ApplicationUpgradeRollbackStartedEvent) AsStatefulReplicaHealthReportExpiredEvent() (*StatefulReplicaHealthReportExpiredEvent, bool) {
6147	return nil, false
6148}
6149
6150// AsStatelessReplicaNewHealthReportEvent is the BasicFabricEvent implementation for ApplicationUpgradeRollbackStartedEvent.
6151func (aurse ApplicationUpgradeRollbackStartedEvent) AsStatelessReplicaNewHealthReportEvent() (*StatelessReplicaNewHealthReportEvent, bool) {
6152	return nil, false
6153}
6154
6155// AsStatelessReplicaHealthReportExpiredEvent is the BasicFabricEvent implementation for ApplicationUpgradeRollbackStartedEvent.
6156func (aurse ApplicationUpgradeRollbackStartedEvent) AsStatelessReplicaHealthReportExpiredEvent() (*StatelessReplicaHealthReportExpiredEvent, bool) {
6157	return nil, false
6158}
6159
6160// AsClusterNewHealthReportEvent is the BasicFabricEvent implementation for ApplicationUpgradeRollbackStartedEvent.
6161func (aurse ApplicationUpgradeRollbackStartedEvent) AsClusterNewHealthReportEvent() (*ClusterNewHealthReportEvent, bool) {
6162	return nil, false
6163}
6164
6165// AsClusterHealthReportExpiredEvent is the BasicFabricEvent implementation for ApplicationUpgradeRollbackStartedEvent.
6166func (aurse ApplicationUpgradeRollbackStartedEvent) AsClusterHealthReportExpiredEvent() (*ClusterHealthReportExpiredEvent, bool) {
6167	return nil, false
6168}
6169
6170// AsClusterUpgradeCompletedEvent is the BasicFabricEvent implementation for ApplicationUpgradeRollbackStartedEvent.
6171func (aurse ApplicationUpgradeRollbackStartedEvent) AsClusterUpgradeCompletedEvent() (*ClusterUpgradeCompletedEvent, bool) {
6172	return nil, false
6173}
6174
6175// AsClusterUpgradeDomainCompletedEvent is the BasicFabricEvent implementation for ApplicationUpgradeRollbackStartedEvent.
6176func (aurse ApplicationUpgradeRollbackStartedEvent) AsClusterUpgradeDomainCompletedEvent() (*ClusterUpgradeDomainCompletedEvent, bool) {
6177	return nil, false
6178}
6179
6180// AsClusterUpgradeRollbackCompletedEvent is the BasicFabricEvent implementation for ApplicationUpgradeRollbackStartedEvent.
6181func (aurse ApplicationUpgradeRollbackStartedEvent) AsClusterUpgradeRollbackCompletedEvent() (*ClusterUpgradeRollbackCompletedEvent, bool) {
6182	return nil, false
6183}
6184
6185// AsClusterUpgradeRollbackStartedEvent is the BasicFabricEvent implementation for ApplicationUpgradeRollbackStartedEvent.
6186func (aurse ApplicationUpgradeRollbackStartedEvent) AsClusterUpgradeRollbackStartedEvent() (*ClusterUpgradeRollbackStartedEvent, bool) {
6187	return nil, false
6188}
6189
6190// AsClusterUpgradeStartedEvent is the BasicFabricEvent implementation for ApplicationUpgradeRollbackStartedEvent.
6191func (aurse ApplicationUpgradeRollbackStartedEvent) AsClusterUpgradeStartedEvent() (*ClusterUpgradeStartedEvent, bool) {
6192	return nil, false
6193}
6194
6195// AsChaosStoppedEvent is the BasicFabricEvent implementation for ApplicationUpgradeRollbackStartedEvent.
6196func (aurse ApplicationUpgradeRollbackStartedEvent) AsChaosStoppedEvent() (*ChaosStoppedEvent, bool) {
6197	return nil, false
6198}
6199
6200// AsChaosStartedEvent is the BasicFabricEvent implementation for ApplicationUpgradeRollbackStartedEvent.
6201func (aurse ApplicationUpgradeRollbackStartedEvent) AsChaosStartedEvent() (*ChaosStartedEvent, bool) {
6202	return nil, false
6203}
6204
6205// AsChaosCodePackageRestartScheduledEvent is the BasicFabricEvent implementation for ApplicationUpgradeRollbackStartedEvent.
6206func (aurse ApplicationUpgradeRollbackStartedEvent) AsChaosCodePackageRestartScheduledEvent() (*ChaosCodePackageRestartScheduledEvent, bool) {
6207	return nil, false
6208}
6209
6210// AsChaosReplicaRemovalScheduledEvent is the BasicFabricEvent implementation for ApplicationUpgradeRollbackStartedEvent.
6211func (aurse ApplicationUpgradeRollbackStartedEvent) AsChaosReplicaRemovalScheduledEvent() (*ChaosReplicaRemovalScheduledEvent, bool) {
6212	return nil, false
6213}
6214
6215// AsChaosPartitionSecondaryMoveScheduledEvent is the BasicFabricEvent implementation for ApplicationUpgradeRollbackStartedEvent.
6216func (aurse ApplicationUpgradeRollbackStartedEvent) AsChaosPartitionSecondaryMoveScheduledEvent() (*ChaosPartitionSecondaryMoveScheduledEvent, bool) {
6217	return nil, false
6218}
6219
6220// AsChaosPartitionPrimaryMoveScheduledEvent is the BasicFabricEvent implementation for ApplicationUpgradeRollbackStartedEvent.
6221func (aurse ApplicationUpgradeRollbackStartedEvent) AsChaosPartitionPrimaryMoveScheduledEvent() (*ChaosPartitionPrimaryMoveScheduledEvent, bool) {
6222	return nil, false
6223}
6224
6225// AsChaosReplicaRestartScheduledEvent is the BasicFabricEvent implementation for ApplicationUpgradeRollbackStartedEvent.
6226func (aurse ApplicationUpgradeRollbackStartedEvent) AsChaosReplicaRestartScheduledEvent() (*ChaosReplicaRestartScheduledEvent, bool) {
6227	return nil, false
6228}
6229
6230// AsChaosNodeRestartScheduledEvent is the BasicFabricEvent implementation for ApplicationUpgradeRollbackStartedEvent.
6231func (aurse ApplicationUpgradeRollbackStartedEvent) AsChaosNodeRestartScheduledEvent() (*ChaosNodeRestartScheduledEvent, bool) {
6232	return nil, false
6233}
6234
6235// AsFabricEvent is the BasicFabricEvent implementation for ApplicationUpgradeRollbackStartedEvent.
6236func (aurse ApplicationUpgradeRollbackStartedEvent) AsFabricEvent() (*FabricEvent, bool) {
6237	return nil, false
6238}
6239
6240// AsBasicFabricEvent is the BasicFabricEvent implementation for ApplicationUpgradeRollbackStartedEvent.
6241func (aurse ApplicationUpgradeRollbackStartedEvent) AsBasicFabricEvent() (BasicFabricEvent, bool) {
6242	return &aurse, true
6243}
6244
6245// ApplicationUpgradeStartedEvent application Upgrade Started event.
6246type ApplicationUpgradeStartedEvent struct {
6247	// ApplicationTypeName - Application type name.
6248	ApplicationTypeName *string `json:"ApplicationTypeName,omitempty"`
6249	// CurrentApplicationTypeVersion - Current Application type version.
6250	CurrentApplicationTypeVersion *string `json:"CurrentApplicationTypeVersion,omitempty"`
6251	// ApplicationTypeVersion - Target Application type version.
6252	ApplicationTypeVersion *string `json:"ApplicationTypeVersion,omitempty"`
6253	// UpgradeType - Type of upgrade.
6254	UpgradeType *string `json:"UpgradeType,omitempty"`
6255	// RollingUpgradeMode - Mode of upgrade.
6256	RollingUpgradeMode *string `json:"RollingUpgradeMode,omitempty"`
6257	// FailureAction - Action if failed.
6258	FailureAction *string `json:"FailureAction,omitempty"`
6259	// 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.
6260	// Starting in version 6.0, hierarchical names are delimited with the "\~" character. For example, if the application name is "fabric:/myapp/app1",
6261	// the application identity would be "myapp\~app1" in 6.0+ and "myapp/app1" in previous versions.
6262	ApplicationID *string `json:"ApplicationId,omitempty"`
6263	// EventInstanceID - The identifier for the FabricEvent instance.
6264	EventInstanceID *uuid.UUID `json:"EventInstanceId,omitempty"`
6265	// Category - The category of event.
6266	Category *string `json:"Category,omitempty"`
6267	// TimeStamp - The time event was logged.
6268	TimeStamp *date.Time `json:"TimeStamp,omitempty"`
6269	// HasCorrelatedEvents - Shows there is existing related events available.
6270	HasCorrelatedEvents *bool `json:"HasCorrelatedEvents,omitempty"`
6271	// 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'
6272	Kind KindBasicFabricEvent `json:"Kind,omitempty"`
6273}
6274
6275// MarshalJSON is the custom marshaler for ApplicationUpgradeStartedEvent.
6276func (ause ApplicationUpgradeStartedEvent) MarshalJSON() ([]byte, error) {
6277	ause.Kind = KindApplicationUpgradeStarted
6278	objectMap := make(map[string]interface{})
6279	if ause.ApplicationTypeName != nil {
6280		objectMap["ApplicationTypeName"] = ause.ApplicationTypeName
6281	}
6282	if ause.CurrentApplicationTypeVersion != nil {
6283		objectMap["CurrentApplicationTypeVersion"] = ause.CurrentApplicationTypeVersion
6284	}
6285	if ause.ApplicationTypeVersion != nil {
6286		objectMap["ApplicationTypeVersion"] = ause.ApplicationTypeVersion
6287	}
6288	if ause.UpgradeType != nil {
6289		objectMap["UpgradeType"] = ause.UpgradeType
6290	}
6291	if ause.RollingUpgradeMode != nil {
6292		objectMap["RollingUpgradeMode"] = ause.RollingUpgradeMode
6293	}
6294	if ause.FailureAction != nil {
6295		objectMap["FailureAction"] = ause.FailureAction
6296	}
6297	if ause.ApplicationID != nil {
6298		objectMap["ApplicationId"] = ause.ApplicationID
6299	}
6300	if ause.EventInstanceID != nil {
6301		objectMap["EventInstanceId"] = ause.EventInstanceID
6302	}
6303	if ause.Category != nil {
6304		objectMap["Category"] = ause.Category
6305	}
6306	if ause.TimeStamp != nil {
6307		objectMap["TimeStamp"] = ause.TimeStamp
6308	}
6309	if ause.HasCorrelatedEvents != nil {
6310		objectMap["HasCorrelatedEvents"] = ause.HasCorrelatedEvents
6311	}
6312	if ause.Kind != "" {
6313		objectMap["Kind"] = ause.Kind
6314	}
6315	return json.Marshal(objectMap)
6316}
6317
6318// AsApplicationEvent is the BasicFabricEvent implementation for ApplicationUpgradeStartedEvent.
6319func (ause ApplicationUpgradeStartedEvent) AsApplicationEvent() (*ApplicationEvent, bool) {
6320	return nil, false
6321}
6322
6323// AsBasicApplicationEvent is the BasicFabricEvent implementation for ApplicationUpgradeStartedEvent.
6324func (ause ApplicationUpgradeStartedEvent) AsBasicApplicationEvent() (BasicApplicationEvent, bool) {
6325	return &ause, true
6326}
6327
6328// AsClusterEvent is the BasicFabricEvent implementation for ApplicationUpgradeStartedEvent.
6329func (ause ApplicationUpgradeStartedEvent) AsClusterEvent() (*ClusterEvent, bool) {
6330	return nil, false
6331}
6332
6333// AsBasicClusterEvent is the BasicFabricEvent implementation for ApplicationUpgradeStartedEvent.
6334func (ause ApplicationUpgradeStartedEvent) AsBasicClusterEvent() (BasicClusterEvent, bool) {
6335	return nil, false
6336}
6337
6338// AsContainerInstanceEvent is the BasicFabricEvent implementation for ApplicationUpgradeStartedEvent.
6339func (ause ApplicationUpgradeStartedEvent) AsContainerInstanceEvent() (*ContainerInstanceEvent, bool) {
6340	return nil, false
6341}
6342
6343// AsNodeEvent is the BasicFabricEvent implementation for ApplicationUpgradeStartedEvent.
6344func (ause ApplicationUpgradeStartedEvent) AsNodeEvent() (*NodeEvent, bool) {
6345	return nil, false
6346}
6347
6348// AsBasicNodeEvent is the BasicFabricEvent implementation for ApplicationUpgradeStartedEvent.
6349func (ause ApplicationUpgradeStartedEvent) AsBasicNodeEvent() (BasicNodeEvent, bool) {
6350	return nil, false
6351}
6352
6353// AsPartitionAnalysisEvent is the BasicFabricEvent implementation for ApplicationUpgradeStartedEvent.
6354func (ause ApplicationUpgradeStartedEvent) AsPartitionAnalysisEvent() (*PartitionAnalysisEvent, bool) {
6355	return nil, false
6356}
6357
6358// AsBasicPartitionAnalysisEvent is the BasicFabricEvent implementation for ApplicationUpgradeStartedEvent.
6359func (ause ApplicationUpgradeStartedEvent) AsBasicPartitionAnalysisEvent() (BasicPartitionAnalysisEvent, bool) {
6360	return nil, false
6361}
6362
6363// AsPartitionEvent is the BasicFabricEvent implementation for ApplicationUpgradeStartedEvent.
6364func (ause ApplicationUpgradeStartedEvent) AsPartitionEvent() (*PartitionEvent, bool) {
6365	return nil, false
6366}
6367
6368// AsBasicPartitionEvent is the BasicFabricEvent implementation for ApplicationUpgradeStartedEvent.
6369func (ause ApplicationUpgradeStartedEvent) AsBasicPartitionEvent() (BasicPartitionEvent, bool) {
6370	return nil, false
6371}
6372
6373// AsReplicaEvent is the BasicFabricEvent implementation for ApplicationUpgradeStartedEvent.
6374func (ause ApplicationUpgradeStartedEvent) AsReplicaEvent() (*ReplicaEvent, bool) {
6375	return nil, false
6376}
6377
6378// AsBasicReplicaEvent is the BasicFabricEvent implementation for ApplicationUpgradeStartedEvent.
6379func (ause ApplicationUpgradeStartedEvent) AsBasicReplicaEvent() (BasicReplicaEvent, bool) {
6380	return nil, false
6381}
6382
6383// AsServiceEvent is the BasicFabricEvent implementation for ApplicationUpgradeStartedEvent.
6384func (ause ApplicationUpgradeStartedEvent) AsServiceEvent() (*ServiceEvent, bool) {
6385	return nil, false
6386}
6387
6388// AsBasicServiceEvent is the BasicFabricEvent implementation for ApplicationUpgradeStartedEvent.
6389func (ause ApplicationUpgradeStartedEvent) AsBasicServiceEvent() (BasicServiceEvent, bool) {
6390	return nil, false
6391}
6392
6393// AsApplicationCreatedEvent is the BasicFabricEvent implementation for ApplicationUpgradeStartedEvent.
6394func (ause ApplicationUpgradeStartedEvent) AsApplicationCreatedEvent() (*ApplicationCreatedEvent, bool) {
6395	return nil, false
6396}
6397
6398// AsApplicationDeletedEvent is the BasicFabricEvent implementation for ApplicationUpgradeStartedEvent.
6399func (ause ApplicationUpgradeStartedEvent) AsApplicationDeletedEvent() (*ApplicationDeletedEvent, bool) {
6400	return nil, false
6401}
6402
6403// AsApplicationNewHealthReportEvent is the BasicFabricEvent implementation for ApplicationUpgradeStartedEvent.
6404func (ause ApplicationUpgradeStartedEvent) AsApplicationNewHealthReportEvent() (*ApplicationNewHealthReportEvent, bool) {
6405	return nil, false
6406}
6407
6408// AsApplicationHealthReportExpiredEvent is the BasicFabricEvent implementation for ApplicationUpgradeStartedEvent.
6409func (ause ApplicationUpgradeStartedEvent) AsApplicationHealthReportExpiredEvent() (*ApplicationHealthReportExpiredEvent, bool) {
6410	return nil, false
6411}
6412
6413// AsApplicationUpgradeCompletedEvent is the BasicFabricEvent implementation for ApplicationUpgradeStartedEvent.
6414func (ause ApplicationUpgradeStartedEvent) AsApplicationUpgradeCompletedEvent() (*ApplicationUpgradeCompletedEvent, bool) {
6415	return nil, false
6416}
6417
6418// AsApplicationUpgradeDomainCompletedEvent is the BasicFabricEvent implementation for ApplicationUpgradeStartedEvent.
6419func (ause ApplicationUpgradeStartedEvent) AsApplicationUpgradeDomainCompletedEvent() (*ApplicationUpgradeDomainCompletedEvent, bool) {
6420	return nil, false
6421}
6422
6423// AsApplicationUpgradeRollbackCompletedEvent is the BasicFabricEvent implementation for ApplicationUpgradeStartedEvent.
6424func (ause ApplicationUpgradeStartedEvent) AsApplicationUpgradeRollbackCompletedEvent() (*ApplicationUpgradeRollbackCompletedEvent, bool) {
6425	return nil, false
6426}
6427
6428// AsApplicationUpgradeRollbackStartedEvent is the BasicFabricEvent implementation for ApplicationUpgradeStartedEvent.
6429func (ause ApplicationUpgradeStartedEvent) AsApplicationUpgradeRollbackStartedEvent() (*ApplicationUpgradeRollbackStartedEvent, bool) {
6430	return nil, false
6431}
6432
6433// AsApplicationUpgradeStartedEvent is the BasicFabricEvent implementation for ApplicationUpgradeStartedEvent.
6434func (ause ApplicationUpgradeStartedEvent) AsApplicationUpgradeStartedEvent() (*ApplicationUpgradeStartedEvent, bool) {
6435	return &ause, true
6436}
6437
6438// AsDeployedApplicationNewHealthReportEvent is the BasicFabricEvent implementation for ApplicationUpgradeStartedEvent.
6439func (ause ApplicationUpgradeStartedEvent) AsDeployedApplicationNewHealthReportEvent() (*DeployedApplicationNewHealthReportEvent, bool) {
6440	return nil, false
6441}
6442
6443// AsDeployedApplicationHealthReportExpiredEvent is the BasicFabricEvent implementation for ApplicationUpgradeStartedEvent.
6444func (ause ApplicationUpgradeStartedEvent) AsDeployedApplicationHealthReportExpiredEvent() (*DeployedApplicationHealthReportExpiredEvent, bool) {
6445	return nil, false
6446}
6447
6448// AsApplicationProcessExitedEvent is the BasicFabricEvent implementation for ApplicationUpgradeStartedEvent.
6449func (ause ApplicationUpgradeStartedEvent) AsApplicationProcessExitedEvent() (*ApplicationProcessExitedEvent, bool) {
6450	return nil, false
6451}
6452
6453// AsApplicationContainerInstanceExitedEvent is the BasicFabricEvent implementation for ApplicationUpgradeStartedEvent.
6454func (ause ApplicationUpgradeStartedEvent) AsApplicationContainerInstanceExitedEvent() (*ApplicationContainerInstanceExitedEvent, bool) {
6455	return nil, false
6456}
6457
6458// AsNodeAbortedEvent is the BasicFabricEvent implementation for ApplicationUpgradeStartedEvent.
6459func (ause ApplicationUpgradeStartedEvent) AsNodeAbortedEvent() (*NodeAbortedEvent, bool) {
6460	return nil, false
6461}
6462
6463// AsNodeAddedToClusterEvent is the BasicFabricEvent implementation for ApplicationUpgradeStartedEvent.
6464func (ause ApplicationUpgradeStartedEvent) AsNodeAddedToClusterEvent() (*NodeAddedToClusterEvent, bool) {
6465	return nil, false
6466}
6467
6468// AsNodeClosedEvent is the BasicFabricEvent implementation for ApplicationUpgradeStartedEvent.
6469func (ause ApplicationUpgradeStartedEvent) AsNodeClosedEvent() (*NodeClosedEvent, bool) {
6470	return nil, false
6471}
6472
6473// AsNodeDeactivateCompletedEvent is the BasicFabricEvent implementation for ApplicationUpgradeStartedEvent.
6474func (ause ApplicationUpgradeStartedEvent) AsNodeDeactivateCompletedEvent() (*NodeDeactivateCompletedEvent, bool) {
6475	return nil, false
6476}
6477
6478// AsNodeDeactivateStartedEvent is the BasicFabricEvent implementation for ApplicationUpgradeStartedEvent.
6479func (ause ApplicationUpgradeStartedEvent) AsNodeDeactivateStartedEvent() (*NodeDeactivateStartedEvent, bool) {
6480	return nil, false
6481}
6482
6483// AsNodeDownEvent is the BasicFabricEvent implementation for ApplicationUpgradeStartedEvent.
6484func (ause ApplicationUpgradeStartedEvent) AsNodeDownEvent() (*NodeDownEvent, bool) {
6485	return nil, false
6486}
6487
6488// AsNodeNewHealthReportEvent is the BasicFabricEvent implementation for ApplicationUpgradeStartedEvent.
6489func (ause ApplicationUpgradeStartedEvent) AsNodeNewHealthReportEvent() (*NodeNewHealthReportEvent, bool) {
6490	return nil, false
6491}
6492
6493// AsNodeHealthReportExpiredEvent is the BasicFabricEvent implementation for ApplicationUpgradeStartedEvent.
6494func (ause ApplicationUpgradeStartedEvent) AsNodeHealthReportExpiredEvent() (*NodeHealthReportExpiredEvent, bool) {
6495	return nil, false
6496}
6497
6498// AsNodeOpenSucceededEvent is the BasicFabricEvent implementation for ApplicationUpgradeStartedEvent.
6499func (ause ApplicationUpgradeStartedEvent) AsNodeOpenSucceededEvent() (*NodeOpenSucceededEvent, bool) {
6500	return nil, false
6501}
6502
6503// AsNodeOpenFailedEvent is the BasicFabricEvent implementation for ApplicationUpgradeStartedEvent.
6504func (ause ApplicationUpgradeStartedEvent) AsNodeOpenFailedEvent() (*NodeOpenFailedEvent, bool) {
6505	return nil, false
6506}
6507
6508// AsNodeRemovedFromClusterEvent is the BasicFabricEvent implementation for ApplicationUpgradeStartedEvent.
6509func (ause ApplicationUpgradeStartedEvent) AsNodeRemovedFromClusterEvent() (*NodeRemovedFromClusterEvent, bool) {
6510	return nil, false
6511}
6512
6513// AsNodeUpEvent is the BasicFabricEvent implementation for ApplicationUpgradeStartedEvent.
6514func (ause ApplicationUpgradeStartedEvent) AsNodeUpEvent() (*NodeUpEvent, bool) {
6515	return nil, false
6516}
6517
6518// AsPartitionNewHealthReportEvent is the BasicFabricEvent implementation for ApplicationUpgradeStartedEvent.
6519func (ause ApplicationUpgradeStartedEvent) AsPartitionNewHealthReportEvent() (*PartitionNewHealthReportEvent, bool) {
6520	return nil, false
6521}
6522
6523// AsPartitionHealthReportExpiredEvent is the BasicFabricEvent implementation for ApplicationUpgradeStartedEvent.
6524func (ause ApplicationUpgradeStartedEvent) AsPartitionHealthReportExpiredEvent() (*PartitionHealthReportExpiredEvent, bool) {
6525	return nil, false
6526}
6527
6528// AsPartitionReconfiguredEvent is the BasicFabricEvent implementation for ApplicationUpgradeStartedEvent.
6529func (ause ApplicationUpgradeStartedEvent) AsPartitionReconfiguredEvent() (*PartitionReconfiguredEvent, bool) {
6530	return nil, false
6531}
6532
6533// AsPartitionPrimaryMoveAnalysisEvent is the BasicFabricEvent implementation for ApplicationUpgradeStartedEvent.
6534func (ause ApplicationUpgradeStartedEvent) AsPartitionPrimaryMoveAnalysisEvent() (*PartitionPrimaryMoveAnalysisEvent, bool) {
6535	return nil, false
6536}
6537
6538// AsServiceCreatedEvent is the BasicFabricEvent implementation for ApplicationUpgradeStartedEvent.
6539func (ause ApplicationUpgradeStartedEvent) AsServiceCreatedEvent() (*ServiceCreatedEvent, bool) {
6540	return nil, false
6541}
6542
6543// AsServiceDeletedEvent is the BasicFabricEvent implementation for ApplicationUpgradeStartedEvent.
6544func (ause ApplicationUpgradeStartedEvent) AsServiceDeletedEvent() (*ServiceDeletedEvent, bool) {
6545	return nil, false
6546}
6547
6548// AsServiceNewHealthReportEvent is the BasicFabricEvent implementation for ApplicationUpgradeStartedEvent.
6549func (ause ApplicationUpgradeStartedEvent) AsServiceNewHealthReportEvent() (*ServiceNewHealthReportEvent, bool) {
6550	return nil, false
6551}
6552
6553// AsServiceHealthReportExpiredEvent is the BasicFabricEvent implementation for ApplicationUpgradeStartedEvent.
6554func (ause ApplicationUpgradeStartedEvent) AsServiceHealthReportExpiredEvent() (*ServiceHealthReportExpiredEvent, bool) {
6555	return nil, false
6556}
6557
6558// AsDeployedServicePackageNewHealthReportEvent is the BasicFabricEvent implementation for ApplicationUpgradeStartedEvent.
6559func (ause ApplicationUpgradeStartedEvent) AsDeployedServicePackageNewHealthReportEvent() (*DeployedServicePackageNewHealthReportEvent, bool) {
6560	return nil, false
6561}
6562
6563// AsDeployedServicePackageHealthReportExpiredEvent is the BasicFabricEvent implementation for ApplicationUpgradeStartedEvent.
6564func (ause ApplicationUpgradeStartedEvent) AsDeployedServicePackageHealthReportExpiredEvent() (*DeployedServicePackageHealthReportExpiredEvent, bool) {
6565	return nil, false
6566}
6567
6568// AsStatefulReplicaNewHealthReportEvent is the BasicFabricEvent implementation for ApplicationUpgradeStartedEvent.
6569func (ause ApplicationUpgradeStartedEvent) AsStatefulReplicaNewHealthReportEvent() (*StatefulReplicaNewHealthReportEvent, bool) {
6570	return nil, false
6571}
6572
6573// AsStatefulReplicaHealthReportExpiredEvent is the BasicFabricEvent implementation for ApplicationUpgradeStartedEvent.
6574func (ause ApplicationUpgradeStartedEvent) AsStatefulReplicaHealthReportExpiredEvent() (*StatefulReplicaHealthReportExpiredEvent, bool) {
6575	return nil, false
6576}
6577
6578// AsStatelessReplicaNewHealthReportEvent is the BasicFabricEvent implementation for ApplicationUpgradeStartedEvent.
6579func (ause ApplicationUpgradeStartedEvent) AsStatelessReplicaNewHealthReportEvent() (*StatelessReplicaNewHealthReportEvent, bool) {
6580	return nil, false
6581}
6582
6583// AsStatelessReplicaHealthReportExpiredEvent is the BasicFabricEvent implementation for ApplicationUpgradeStartedEvent.
6584func (ause ApplicationUpgradeStartedEvent) AsStatelessReplicaHealthReportExpiredEvent() (*StatelessReplicaHealthReportExpiredEvent, bool) {
6585	return nil, false
6586}
6587
6588// AsClusterNewHealthReportEvent is the BasicFabricEvent implementation for ApplicationUpgradeStartedEvent.
6589func (ause ApplicationUpgradeStartedEvent) AsClusterNewHealthReportEvent() (*ClusterNewHealthReportEvent, bool) {
6590	return nil, false
6591}
6592
6593// AsClusterHealthReportExpiredEvent is the BasicFabricEvent implementation for ApplicationUpgradeStartedEvent.
6594func (ause ApplicationUpgradeStartedEvent) AsClusterHealthReportExpiredEvent() (*ClusterHealthReportExpiredEvent, bool) {
6595	return nil, false
6596}
6597
6598// AsClusterUpgradeCompletedEvent is the BasicFabricEvent implementation for ApplicationUpgradeStartedEvent.
6599func (ause ApplicationUpgradeStartedEvent) AsClusterUpgradeCompletedEvent() (*ClusterUpgradeCompletedEvent, bool) {
6600	return nil, false
6601}
6602
6603// AsClusterUpgradeDomainCompletedEvent is the BasicFabricEvent implementation for ApplicationUpgradeStartedEvent.
6604func (ause ApplicationUpgradeStartedEvent) AsClusterUpgradeDomainCompletedEvent() (*ClusterUpgradeDomainCompletedEvent, bool) {
6605	return nil, false
6606}
6607
6608// AsClusterUpgradeRollbackCompletedEvent is the BasicFabricEvent implementation for ApplicationUpgradeStartedEvent.
6609func (ause ApplicationUpgradeStartedEvent) AsClusterUpgradeRollbackCompletedEvent() (*ClusterUpgradeRollbackCompletedEvent, bool) {
6610	return nil, false
6611}
6612
6613// AsClusterUpgradeRollbackStartedEvent is the BasicFabricEvent implementation for ApplicationUpgradeStartedEvent.
6614func (ause ApplicationUpgradeStartedEvent) AsClusterUpgradeRollbackStartedEvent() (*ClusterUpgradeRollbackStartedEvent, bool) {
6615	return nil, false
6616}
6617
6618// AsClusterUpgradeStartedEvent is the BasicFabricEvent implementation for ApplicationUpgradeStartedEvent.
6619func (ause ApplicationUpgradeStartedEvent) AsClusterUpgradeStartedEvent() (*ClusterUpgradeStartedEvent, bool) {
6620	return nil, false
6621}
6622
6623// AsChaosStoppedEvent is the BasicFabricEvent implementation for ApplicationUpgradeStartedEvent.
6624func (ause ApplicationUpgradeStartedEvent) AsChaosStoppedEvent() (*ChaosStoppedEvent, bool) {
6625	return nil, false
6626}
6627
6628// AsChaosStartedEvent is the BasicFabricEvent implementation for ApplicationUpgradeStartedEvent.
6629func (ause ApplicationUpgradeStartedEvent) AsChaosStartedEvent() (*ChaosStartedEvent, bool) {
6630	return nil, false
6631}
6632
6633// AsChaosCodePackageRestartScheduledEvent is the BasicFabricEvent implementation for ApplicationUpgradeStartedEvent.
6634func (ause ApplicationUpgradeStartedEvent) AsChaosCodePackageRestartScheduledEvent() (*ChaosCodePackageRestartScheduledEvent, bool) {
6635	return nil, false
6636}
6637
6638// AsChaosReplicaRemovalScheduledEvent is the BasicFabricEvent implementation for ApplicationUpgradeStartedEvent.
6639func (ause ApplicationUpgradeStartedEvent) AsChaosReplicaRemovalScheduledEvent() (*ChaosReplicaRemovalScheduledEvent, bool) {
6640	return nil, false
6641}
6642
6643// AsChaosPartitionSecondaryMoveScheduledEvent is the BasicFabricEvent implementation for ApplicationUpgradeStartedEvent.
6644func (ause ApplicationUpgradeStartedEvent) AsChaosPartitionSecondaryMoveScheduledEvent() (*ChaosPartitionSecondaryMoveScheduledEvent, bool) {
6645	return nil, false
6646}
6647
6648// AsChaosPartitionPrimaryMoveScheduledEvent is the BasicFabricEvent implementation for ApplicationUpgradeStartedEvent.
6649func (ause ApplicationUpgradeStartedEvent) AsChaosPartitionPrimaryMoveScheduledEvent() (*ChaosPartitionPrimaryMoveScheduledEvent, bool) {
6650	return nil, false
6651}
6652
6653// AsChaosReplicaRestartScheduledEvent is the BasicFabricEvent implementation for ApplicationUpgradeStartedEvent.
6654func (ause ApplicationUpgradeStartedEvent) AsChaosReplicaRestartScheduledEvent() (*ChaosReplicaRestartScheduledEvent, bool) {
6655	return nil, false
6656}
6657
6658// AsChaosNodeRestartScheduledEvent is the BasicFabricEvent implementation for ApplicationUpgradeStartedEvent.
6659func (ause ApplicationUpgradeStartedEvent) AsChaosNodeRestartScheduledEvent() (*ChaosNodeRestartScheduledEvent, bool) {
6660	return nil, false
6661}
6662
6663// AsFabricEvent is the BasicFabricEvent implementation for ApplicationUpgradeStartedEvent.
6664func (ause ApplicationUpgradeStartedEvent) AsFabricEvent() (*FabricEvent, bool) {
6665	return nil, false
6666}
6667
6668// AsBasicFabricEvent is the BasicFabricEvent implementation for ApplicationUpgradeStartedEvent.
6669func (ause ApplicationUpgradeStartedEvent) AsBasicFabricEvent() (BasicFabricEvent, bool) {
6670	return &ause, true
6671}
6672
6673// ApplicationUpgradeUpdateDescription describes the parameters for updating an ongoing application
6674// upgrade.
6675type ApplicationUpgradeUpdateDescription struct {
6676	// Name - The name of the application, including the 'fabric:' URI scheme.
6677	Name *string `json:"Name,omitempty"`
6678	// UpgradeKind - The kind of upgrade out of the following possible values. Possible values include: 'UpgradeKindInvalid', 'UpgradeKindRolling'
6679	UpgradeKind UpgradeKind `json:"UpgradeKind,omitempty"`
6680	// ApplicationHealthPolicy - Defines a health policy used to evaluate the health of an application or one of its children entities.
6681	ApplicationHealthPolicy *ApplicationHealthPolicy `json:"ApplicationHealthPolicy,omitempty"`
6682	// UpdateDescription - Describes the parameters for updating a rolling upgrade of application or cluster.
6683	UpdateDescription *RollingUpgradeUpdateDescription `json:"UpdateDescription,omitempty"`
6684}
6685
6686// BasicAutoScalingMechanism describes the mechanism for performing auto scaling operation. Derived classes will
6687// describe the actual mechanism.
6688type BasicAutoScalingMechanism interface {
6689	AsAddRemoveReplicaScalingMechanism() (*AddRemoveReplicaScalingMechanism, bool)
6690	AsAutoScalingMechanism() (*AutoScalingMechanism, bool)
6691}
6692
6693// AutoScalingMechanism describes the mechanism for performing auto scaling operation. Derived classes will
6694// describe the actual mechanism.
6695type AutoScalingMechanism struct {
6696	// Kind - Possible values include: 'KindAutoScalingMechanism', 'KindAddRemoveReplica'
6697	Kind KindBasicAutoScalingMechanism `json:"kind,omitempty"`
6698}
6699
6700func unmarshalBasicAutoScalingMechanism(body []byte) (BasicAutoScalingMechanism, error) {
6701	var m map[string]interface{}
6702	err := json.Unmarshal(body, &m)
6703	if err != nil {
6704		return nil, err
6705	}
6706
6707	switch m["kind"] {
6708	case string(KindAddRemoveReplica):
6709		var arrsm AddRemoveReplicaScalingMechanism
6710		err := json.Unmarshal(body, &arrsm)
6711		return arrsm, err
6712	default:
6713		var asm AutoScalingMechanism
6714		err := json.Unmarshal(body, &asm)
6715		return asm, err
6716	}
6717}
6718func unmarshalBasicAutoScalingMechanismArray(body []byte) ([]BasicAutoScalingMechanism, error) {
6719	var rawMessages []*json.RawMessage
6720	err := json.Unmarshal(body, &rawMessages)
6721	if err != nil {
6722		return nil, err
6723	}
6724
6725	asmArray := make([]BasicAutoScalingMechanism, len(rawMessages))
6726
6727	for index, rawMessage := range rawMessages {
6728		asm, err := unmarshalBasicAutoScalingMechanism(*rawMessage)
6729		if err != nil {
6730			return nil, err
6731		}
6732		asmArray[index] = asm
6733	}
6734	return asmArray, nil
6735}
6736
6737// MarshalJSON is the custom marshaler for AutoScalingMechanism.
6738func (asm AutoScalingMechanism) MarshalJSON() ([]byte, error) {
6739	asm.Kind = KindAutoScalingMechanism
6740	objectMap := make(map[string]interface{})
6741	if asm.Kind != "" {
6742		objectMap["kind"] = asm.Kind
6743	}
6744	return json.Marshal(objectMap)
6745}
6746
6747// AsAddRemoveReplicaScalingMechanism is the BasicAutoScalingMechanism implementation for AutoScalingMechanism.
6748func (asm AutoScalingMechanism) AsAddRemoveReplicaScalingMechanism() (*AddRemoveReplicaScalingMechanism, bool) {
6749	return nil, false
6750}
6751
6752// AsAutoScalingMechanism is the BasicAutoScalingMechanism implementation for AutoScalingMechanism.
6753func (asm AutoScalingMechanism) AsAutoScalingMechanism() (*AutoScalingMechanism, bool) {
6754	return &asm, true
6755}
6756
6757// AsBasicAutoScalingMechanism is the BasicAutoScalingMechanism implementation for AutoScalingMechanism.
6758func (asm AutoScalingMechanism) AsBasicAutoScalingMechanism() (BasicAutoScalingMechanism, bool) {
6759	return &asm, true
6760}
6761
6762// BasicAutoScalingMetric describes the metric that is used for triggering auto scaling operation. Derived classes will
6763// describe resources or metrics.
6764type BasicAutoScalingMetric interface {
6765	AsAutoScalingResourceMetric() (*AutoScalingResourceMetric, bool)
6766	AsAutoScalingMetric() (*AutoScalingMetric, bool)
6767}
6768
6769// AutoScalingMetric describes the metric that is used for triggering auto scaling operation. Derived classes
6770// will describe resources or metrics.
6771type AutoScalingMetric struct {
6772	// Kind - Possible values include: 'KindAutoScalingMetric', 'KindResource'
6773	Kind KindBasicAutoScalingMetric `json:"kind,omitempty"`
6774}
6775
6776func unmarshalBasicAutoScalingMetric(body []byte) (BasicAutoScalingMetric, error) {
6777	var m map[string]interface{}
6778	err := json.Unmarshal(body, &m)
6779	if err != nil {
6780		return nil, err
6781	}
6782
6783	switch m["kind"] {
6784	case string(KindResource):
6785		var asrm AutoScalingResourceMetric
6786		err := json.Unmarshal(body, &asrm)
6787		return asrm, err
6788	default:
6789		var asm AutoScalingMetric
6790		err := json.Unmarshal(body, &asm)
6791		return asm, err
6792	}
6793}
6794func unmarshalBasicAutoScalingMetricArray(body []byte) ([]BasicAutoScalingMetric, error) {
6795	var rawMessages []*json.RawMessage
6796	err := json.Unmarshal(body, &rawMessages)
6797	if err != nil {
6798		return nil, err
6799	}
6800
6801	asmArray := make([]BasicAutoScalingMetric, len(rawMessages))
6802
6803	for index, rawMessage := range rawMessages {
6804		asm, err := unmarshalBasicAutoScalingMetric(*rawMessage)
6805		if err != nil {
6806			return nil, err
6807		}
6808		asmArray[index] = asm
6809	}
6810	return asmArray, nil
6811}
6812
6813// MarshalJSON is the custom marshaler for AutoScalingMetric.
6814func (asm AutoScalingMetric) MarshalJSON() ([]byte, error) {
6815	asm.Kind = KindAutoScalingMetric
6816	objectMap := make(map[string]interface{})
6817	if asm.Kind != "" {
6818		objectMap["kind"] = asm.Kind
6819	}
6820	return json.Marshal(objectMap)
6821}
6822
6823// AsAutoScalingResourceMetric is the BasicAutoScalingMetric implementation for AutoScalingMetric.
6824func (asm AutoScalingMetric) AsAutoScalingResourceMetric() (*AutoScalingResourceMetric, bool) {
6825	return nil, false
6826}
6827
6828// AsAutoScalingMetric is the BasicAutoScalingMetric implementation for AutoScalingMetric.
6829func (asm AutoScalingMetric) AsAutoScalingMetric() (*AutoScalingMetric, bool) {
6830	return &asm, true
6831}
6832
6833// AsBasicAutoScalingMetric is the BasicAutoScalingMetric implementation for AutoScalingMetric.
6834func (asm AutoScalingMetric) AsBasicAutoScalingMetric() (BasicAutoScalingMetric, bool) {
6835	return &asm, true
6836}
6837
6838// AutoScalingPolicy describes the auto scaling policy
6839type AutoScalingPolicy struct {
6840	// Name - The name of the auto scaling policy.
6841	Name *string `json:"name,omitempty"`
6842	// Trigger - Determines when auto scaling operation will be invoked.
6843	Trigger BasicAutoScalingTrigger `json:"trigger,omitempty"`
6844	// Mechanism - The mechanism that is used to scale when auto scaling operation is invoked.
6845	Mechanism BasicAutoScalingMechanism `json:"mechanism,omitempty"`
6846}
6847
6848// UnmarshalJSON is the custom unmarshaler for AutoScalingPolicy struct.
6849func (asp *AutoScalingPolicy) UnmarshalJSON(body []byte) error {
6850	var m map[string]*json.RawMessage
6851	err := json.Unmarshal(body, &m)
6852	if err != nil {
6853		return err
6854	}
6855	for k, v := range m {
6856		switch k {
6857		case "name":
6858			if v != nil {
6859				var name string
6860				err = json.Unmarshal(*v, &name)
6861				if err != nil {
6862					return err
6863				}
6864				asp.Name = &name
6865			}
6866		case "trigger":
6867			if v != nil {
6868				trigger, err := unmarshalBasicAutoScalingTrigger(*v)
6869				if err != nil {
6870					return err
6871				}
6872				asp.Trigger = trigger
6873			}
6874		case "mechanism":
6875			if v != nil {
6876				mechanism, err := unmarshalBasicAutoScalingMechanism(*v)
6877				if err != nil {
6878					return err
6879				}
6880				asp.Mechanism = mechanism
6881			}
6882		}
6883	}
6884
6885	return nil
6886}
6887
6888// AutoScalingResourceMetric describes the resource that is used for triggering auto scaling.
6889type AutoScalingResourceMetric struct {
6890	// Name - Name of the resource. Possible values include: 'CPU', 'MemoryInGB'
6891	Name AutoScalingResourceMetricName `json:"name,omitempty"`
6892	// Kind - Possible values include: 'KindAutoScalingMetric', 'KindResource'
6893	Kind KindBasicAutoScalingMetric `json:"kind,omitempty"`
6894}
6895
6896// MarshalJSON is the custom marshaler for AutoScalingResourceMetric.
6897func (asrm AutoScalingResourceMetric) MarshalJSON() ([]byte, error) {
6898	asrm.Kind = KindResource
6899	objectMap := make(map[string]interface{})
6900	if asrm.Name != "" {
6901		objectMap["name"] = asrm.Name
6902	}
6903	if asrm.Kind != "" {
6904		objectMap["kind"] = asrm.Kind
6905	}
6906	return json.Marshal(objectMap)
6907}
6908
6909// AsAutoScalingResourceMetric is the BasicAutoScalingMetric implementation for AutoScalingResourceMetric.
6910func (asrm AutoScalingResourceMetric) AsAutoScalingResourceMetric() (*AutoScalingResourceMetric, bool) {
6911	return &asrm, true
6912}
6913
6914// AsAutoScalingMetric is the BasicAutoScalingMetric implementation for AutoScalingResourceMetric.
6915func (asrm AutoScalingResourceMetric) AsAutoScalingMetric() (*AutoScalingMetric, bool) {
6916	return nil, false
6917}
6918
6919// AsBasicAutoScalingMetric is the BasicAutoScalingMetric implementation for AutoScalingResourceMetric.
6920func (asrm AutoScalingResourceMetric) AsBasicAutoScalingMetric() (BasicAutoScalingMetric, bool) {
6921	return &asrm, true
6922}
6923
6924// BasicAutoScalingTrigger describes the trigger for performing auto scaling operation.
6925type BasicAutoScalingTrigger interface {
6926	AsAverageLoadScalingTrigger() (*AverageLoadScalingTrigger, bool)
6927	AsAutoScalingTrigger() (*AutoScalingTrigger, bool)
6928}
6929
6930// AutoScalingTrigger describes the trigger for performing auto scaling operation.
6931type AutoScalingTrigger struct {
6932	// Kind - Possible values include: 'KindAutoScalingTrigger', 'KindAverageLoad'
6933	Kind KindBasicAutoScalingTrigger `json:"kind,omitempty"`
6934}
6935
6936func unmarshalBasicAutoScalingTrigger(body []byte) (BasicAutoScalingTrigger, error) {
6937	var m map[string]interface{}
6938	err := json.Unmarshal(body, &m)
6939	if err != nil {
6940		return nil, err
6941	}
6942
6943	switch m["kind"] {
6944	case string(KindAverageLoad):
6945		var alst AverageLoadScalingTrigger
6946		err := json.Unmarshal(body, &alst)
6947		return alst, err
6948	default:
6949		var astVar AutoScalingTrigger
6950		err := json.Unmarshal(body, &astVar)
6951		return astVar, err
6952	}
6953}
6954func unmarshalBasicAutoScalingTriggerArray(body []byte) ([]BasicAutoScalingTrigger, error) {
6955	var rawMessages []*json.RawMessage
6956	err := json.Unmarshal(body, &rawMessages)
6957	if err != nil {
6958		return nil, err
6959	}
6960
6961	astVarArray := make([]BasicAutoScalingTrigger, len(rawMessages))
6962
6963	for index, rawMessage := range rawMessages {
6964		astVar, err := unmarshalBasicAutoScalingTrigger(*rawMessage)
6965		if err != nil {
6966			return nil, err
6967		}
6968		astVarArray[index] = astVar
6969	}
6970	return astVarArray, nil
6971}
6972
6973// MarshalJSON is the custom marshaler for AutoScalingTrigger.
6974func (astVar AutoScalingTrigger) MarshalJSON() ([]byte, error) {
6975	astVar.Kind = KindAutoScalingTrigger
6976	objectMap := make(map[string]interface{})
6977	if astVar.Kind != "" {
6978		objectMap["kind"] = astVar.Kind
6979	}
6980	return json.Marshal(objectMap)
6981}
6982
6983// AsAverageLoadScalingTrigger is the BasicAutoScalingTrigger implementation for AutoScalingTrigger.
6984func (astVar AutoScalingTrigger) AsAverageLoadScalingTrigger() (*AverageLoadScalingTrigger, bool) {
6985	return nil, false
6986}
6987
6988// AsAutoScalingTrigger is the BasicAutoScalingTrigger implementation for AutoScalingTrigger.
6989func (astVar AutoScalingTrigger) AsAutoScalingTrigger() (*AutoScalingTrigger, bool) {
6990	return &astVar, true
6991}
6992
6993// AsBasicAutoScalingTrigger is the BasicAutoScalingTrigger implementation for AutoScalingTrigger.
6994func (astVar AutoScalingTrigger) AsBasicAutoScalingTrigger() (BasicAutoScalingTrigger, bool) {
6995	return &astVar, true
6996}
6997
6998// AverageLoadScalingTrigger describes the average load trigger used for auto scaling.
6999type AverageLoadScalingTrigger struct {
7000	// Metric - Description of the metric that is used for scaling.
7001	Metric BasicAutoScalingMetric `json:"metric,omitempty"`
7002	// LowerLoadThreshold - Lower load threshold (if average load is below this threshold, service will scale down).
7003	LowerLoadThreshold *float64 `json:"lowerLoadThreshold,omitempty"`
7004	// UpperLoadThreshold - Upper load threshold (if average load is above this threshold, service will scale up).
7005	UpperLoadThreshold *float64 `json:"upperLoadThreshold,omitempty"`
7006	// ScaleIntervalInSeconds - Scale interval that indicates how often will this trigger be checked.
7007	ScaleIntervalInSeconds *int32 `json:"scaleIntervalInSeconds,omitempty"`
7008	// Kind - Possible values include: 'KindAutoScalingTrigger', 'KindAverageLoad'
7009	Kind KindBasicAutoScalingTrigger `json:"kind,omitempty"`
7010}
7011
7012// MarshalJSON is the custom marshaler for AverageLoadScalingTrigger.
7013func (alst AverageLoadScalingTrigger) MarshalJSON() ([]byte, error) {
7014	alst.Kind = KindAverageLoad
7015	objectMap := make(map[string]interface{})
7016	objectMap["metric"] = alst.Metric
7017	if alst.LowerLoadThreshold != nil {
7018		objectMap["lowerLoadThreshold"] = alst.LowerLoadThreshold
7019	}
7020	if alst.UpperLoadThreshold != nil {
7021		objectMap["upperLoadThreshold"] = alst.UpperLoadThreshold
7022	}
7023	if alst.ScaleIntervalInSeconds != nil {
7024		objectMap["scaleIntervalInSeconds"] = alst.ScaleIntervalInSeconds
7025	}
7026	if alst.Kind != "" {
7027		objectMap["kind"] = alst.Kind
7028	}
7029	return json.Marshal(objectMap)
7030}
7031
7032// AsAverageLoadScalingTrigger is the BasicAutoScalingTrigger implementation for AverageLoadScalingTrigger.
7033func (alst AverageLoadScalingTrigger) AsAverageLoadScalingTrigger() (*AverageLoadScalingTrigger, bool) {
7034	return &alst, true
7035}
7036
7037// AsAutoScalingTrigger is the BasicAutoScalingTrigger implementation for AverageLoadScalingTrigger.
7038func (alst AverageLoadScalingTrigger) AsAutoScalingTrigger() (*AutoScalingTrigger, bool) {
7039	return nil, false
7040}
7041
7042// AsBasicAutoScalingTrigger is the BasicAutoScalingTrigger implementation for AverageLoadScalingTrigger.
7043func (alst AverageLoadScalingTrigger) AsBasicAutoScalingTrigger() (BasicAutoScalingTrigger, bool) {
7044	return &alst, true
7045}
7046
7047// UnmarshalJSON is the custom unmarshaler for AverageLoadScalingTrigger struct.
7048func (alst *AverageLoadScalingTrigger) UnmarshalJSON(body []byte) error {
7049	var m map[string]*json.RawMessage
7050	err := json.Unmarshal(body, &m)
7051	if err != nil {
7052		return err
7053	}
7054	for k, v := range m {
7055		switch k {
7056		case "metric":
7057			if v != nil {
7058				metric, err := unmarshalBasicAutoScalingMetric(*v)
7059				if err != nil {
7060					return err
7061				}
7062				alst.Metric = metric
7063			}
7064		case "lowerLoadThreshold":
7065			if v != nil {
7066				var lowerLoadThreshold float64
7067				err = json.Unmarshal(*v, &lowerLoadThreshold)
7068				if err != nil {
7069					return err
7070				}
7071				alst.LowerLoadThreshold = &lowerLoadThreshold
7072			}
7073		case "upperLoadThreshold":
7074			if v != nil {
7075				var upperLoadThreshold float64
7076				err = json.Unmarshal(*v, &upperLoadThreshold)
7077				if err != nil {
7078					return err
7079				}
7080				alst.UpperLoadThreshold = &upperLoadThreshold
7081			}
7082		case "scaleIntervalInSeconds":
7083			if v != nil {
7084				var scaleIntervalInSeconds int32
7085				err = json.Unmarshal(*v, &scaleIntervalInSeconds)
7086				if err != nil {
7087					return err
7088				}
7089				alst.ScaleIntervalInSeconds = &scaleIntervalInSeconds
7090			}
7091		case "kind":
7092			if v != nil {
7093				var kind KindBasicAutoScalingTrigger
7094				err = json.Unmarshal(*v, &kind)
7095				if err != nil {
7096					return err
7097				}
7098				alst.Kind = kind
7099			}
7100		}
7101	}
7102
7103	return nil
7104}
7105
7106// AveragePartitionLoadScalingTrigger represents a scaling trigger related to an average load of a
7107// metric/resource of a partition.
7108type AveragePartitionLoadScalingTrigger struct {
7109	// MetricName - The name of the metric for which usage should be tracked.
7110	MetricName *string `json:"MetricName,omitempty"`
7111	// LowerLoadThreshold - The lower limit of the load below which a scale in operation should be performed.
7112	LowerLoadThreshold *string `json:"LowerLoadThreshold,omitempty"`
7113	// UpperLoadThreshold - The upper limit of the load beyond which a scale out operation should be performed.
7114	UpperLoadThreshold *string `json:"UpperLoadThreshold,omitempty"`
7115	// ScaleIntervalInSeconds - The period in seconds on which a decision is made whether to scale or not.
7116	ScaleIntervalInSeconds *int64 `json:"ScaleIntervalInSeconds,omitempty"`
7117	// Kind - Possible values include: 'KindScalingTriggerDescription', 'KindAveragePartitionLoad', 'KindAverageServiceLoad'
7118	Kind KindBasicScalingTriggerDescription `json:"Kind,omitempty"`
7119}
7120
7121// MarshalJSON is the custom marshaler for AveragePartitionLoadScalingTrigger.
7122func (aplst AveragePartitionLoadScalingTrigger) MarshalJSON() ([]byte, error) {
7123	aplst.Kind = KindAveragePartitionLoad
7124	objectMap := make(map[string]interface{})
7125	if aplst.MetricName != nil {
7126		objectMap["MetricName"] = aplst.MetricName
7127	}
7128	if aplst.LowerLoadThreshold != nil {
7129		objectMap["LowerLoadThreshold"] = aplst.LowerLoadThreshold
7130	}
7131	if aplst.UpperLoadThreshold != nil {
7132		objectMap["UpperLoadThreshold"] = aplst.UpperLoadThreshold
7133	}
7134	if aplst.ScaleIntervalInSeconds != nil {
7135		objectMap["ScaleIntervalInSeconds"] = aplst.ScaleIntervalInSeconds
7136	}
7137	if aplst.Kind != "" {
7138		objectMap["Kind"] = aplst.Kind
7139	}
7140	return json.Marshal(objectMap)
7141}
7142
7143// AsAveragePartitionLoadScalingTrigger is the BasicScalingTriggerDescription implementation for AveragePartitionLoadScalingTrigger.
7144func (aplst AveragePartitionLoadScalingTrigger) AsAveragePartitionLoadScalingTrigger() (*AveragePartitionLoadScalingTrigger, bool) {
7145	return &aplst, true
7146}
7147
7148// AsAverageServiceLoadScalingTrigger is the BasicScalingTriggerDescription implementation for AveragePartitionLoadScalingTrigger.
7149func (aplst AveragePartitionLoadScalingTrigger) AsAverageServiceLoadScalingTrigger() (*AverageServiceLoadScalingTrigger, bool) {
7150	return nil, false
7151}
7152
7153// AsScalingTriggerDescription is the BasicScalingTriggerDescription implementation for AveragePartitionLoadScalingTrigger.
7154func (aplst AveragePartitionLoadScalingTrigger) AsScalingTriggerDescription() (*ScalingTriggerDescription, bool) {
7155	return nil, false
7156}
7157
7158// AsBasicScalingTriggerDescription is the BasicScalingTriggerDescription implementation for AveragePartitionLoadScalingTrigger.
7159func (aplst AveragePartitionLoadScalingTrigger) AsBasicScalingTriggerDescription() (BasicScalingTriggerDescription, bool) {
7160	return &aplst, true
7161}
7162
7163// AverageServiceLoadScalingTrigger represents a scaling policy related to an average load of a
7164// metric/resource of a service.
7165type AverageServiceLoadScalingTrigger struct {
7166	// MetricName - The name of the metric for which usage should be tracked.
7167	MetricName *string `json:"MetricName,omitempty"`
7168	// LowerLoadThreshold - The lower limit of the load below which a scale in operation should be performed.
7169	LowerLoadThreshold *string `json:"LowerLoadThreshold,omitempty"`
7170	// UpperLoadThreshold - The upper limit of the load beyond which a scale out operation should be performed.
7171	UpperLoadThreshold *string `json:"UpperLoadThreshold,omitempty"`
7172	// ScaleIntervalInSeconds - The period in seconds on which a decision is made whether to scale or not.
7173	ScaleIntervalInSeconds *int64 `json:"ScaleIntervalInSeconds,omitempty"`
7174	// Kind - Possible values include: 'KindScalingTriggerDescription', 'KindAveragePartitionLoad', 'KindAverageServiceLoad'
7175	Kind KindBasicScalingTriggerDescription `json:"Kind,omitempty"`
7176}
7177
7178// MarshalJSON is the custom marshaler for AverageServiceLoadScalingTrigger.
7179func (aslst AverageServiceLoadScalingTrigger) MarshalJSON() ([]byte, error) {
7180	aslst.Kind = KindAverageServiceLoad
7181	objectMap := make(map[string]interface{})
7182	if aslst.MetricName != nil {
7183		objectMap["MetricName"] = aslst.MetricName
7184	}
7185	if aslst.LowerLoadThreshold != nil {
7186		objectMap["LowerLoadThreshold"] = aslst.LowerLoadThreshold
7187	}
7188	if aslst.UpperLoadThreshold != nil {
7189		objectMap["UpperLoadThreshold"] = aslst.UpperLoadThreshold
7190	}
7191	if aslst.ScaleIntervalInSeconds != nil {
7192		objectMap["ScaleIntervalInSeconds"] = aslst.ScaleIntervalInSeconds
7193	}
7194	if aslst.Kind != "" {
7195		objectMap["Kind"] = aslst.Kind
7196	}
7197	return json.Marshal(objectMap)
7198}
7199
7200// AsAveragePartitionLoadScalingTrigger is the BasicScalingTriggerDescription implementation for AverageServiceLoadScalingTrigger.
7201func (aslst AverageServiceLoadScalingTrigger) AsAveragePartitionLoadScalingTrigger() (*AveragePartitionLoadScalingTrigger, bool) {
7202	return nil, false
7203}
7204
7205// AsAverageServiceLoadScalingTrigger is the BasicScalingTriggerDescription implementation for AverageServiceLoadScalingTrigger.
7206func (aslst AverageServiceLoadScalingTrigger) AsAverageServiceLoadScalingTrigger() (*AverageServiceLoadScalingTrigger, bool) {
7207	return &aslst, true
7208}
7209
7210// AsScalingTriggerDescription is the BasicScalingTriggerDescription implementation for AverageServiceLoadScalingTrigger.
7211func (aslst AverageServiceLoadScalingTrigger) AsScalingTriggerDescription() (*ScalingTriggerDescription, bool) {
7212	return nil, false
7213}
7214
7215// AsBasicScalingTriggerDescription is the BasicScalingTriggerDescription implementation for AverageServiceLoadScalingTrigger.
7216func (aslst AverageServiceLoadScalingTrigger) AsBasicScalingTriggerDescription() (BasicScalingTriggerDescription, bool) {
7217	return &aslst, true
7218}
7219
7220// AzureBlobBackupStorageDescription describes the parameters for Azure blob store used for storing and
7221// enumerating backups.
7222type AzureBlobBackupStorageDescription struct {
7223	// ConnectionString - The connection string to connect to the Azure blob store.
7224	ConnectionString *string `json:"ConnectionString,omitempty"`
7225	// ContainerName - The name of the container in the blob store to store and enumerate backups from.
7226	ContainerName *string `json:"ContainerName,omitempty"`
7227	// FriendlyName - Friendly name for this backup storage.
7228	FriendlyName *string `json:"FriendlyName,omitempty"`
7229	// StorageKind - Possible values include: 'StorageKindBackupStorageDescription', 'StorageKindAzureBlobStore', 'StorageKindFileShare', 'StorageKindDsmsAzureBlobStore'
7230	StorageKind StorageKind `json:"StorageKind,omitempty"`
7231}
7232
7233// MarshalJSON is the custom marshaler for AzureBlobBackupStorageDescription.
7234func (abbsd AzureBlobBackupStorageDescription) MarshalJSON() ([]byte, error) {
7235	abbsd.StorageKind = StorageKindAzureBlobStore
7236	objectMap := make(map[string]interface{})
7237	if abbsd.ConnectionString != nil {
7238		objectMap["ConnectionString"] = abbsd.ConnectionString
7239	}
7240	if abbsd.ContainerName != nil {
7241		objectMap["ContainerName"] = abbsd.ContainerName
7242	}
7243	if abbsd.FriendlyName != nil {
7244		objectMap["FriendlyName"] = abbsd.FriendlyName
7245	}
7246	if abbsd.StorageKind != "" {
7247		objectMap["StorageKind"] = abbsd.StorageKind
7248	}
7249	return json.Marshal(objectMap)
7250}
7251
7252// AsAzureBlobBackupStorageDescription is the BasicBackupStorageDescription implementation for AzureBlobBackupStorageDescription.
7253func (abbsd AzureBlobBackupStorageDescription) AsAzureBlobBackupStorageDescription() (*AzureBlobBackupStorageDescription, bool) {
7254	return &abbsd, true
7255}
7256
7257// AsFileShareBackupStorageDescription is the BasicBackupStorageDescription implementation for AzureBlobBackupStorageDescription.
7258func (abbsd AzureBlobBackupStorageDescription) AsFileShareBackupStorageDescription() (*FileShareBackupStorageDescription, bool) {
7259	return nil, false
7260}
7261
7262// AsDsmsAzureBlobBackupStorageDescription is the BasicBackupStorageDescription implementation for AzureBlobBackupStorageDescription.
7263func (abbsd AzureBlobBackupStorageDescription) AsDsmsAzureBlobBackupStorageDescription() (*DsmsAzureBlobBackupStorageDescription, bool) {
7264	return nil, false
7265}
7266
7267// AsBackupStorageDescription is the BasicBackupStorageDescription implementation for AzureBlobBackupStorageDescription.
7268func (abbsd AzureBlobBackupStorageDescription) AsBackupStorageDescription() (*BackupStorageDescription, bool) {
7269	return nil, false
7270}
7271
7272// AsBasicBackupStorageDescription is the BasicBackupStorageDescription implementation for AzureBlobBackupStorageDescription.
7273func (abbsd AzureBlobBackupStorageDescription) AsBasicBackupStorageDescription() (BasicBackupStorageDescription, bool) {
7274	return &abbsd, true
7275}
7276
7277// AzureInternalMonitoringPipelineSinkDescription diagnostics settings for Geneva.
7278type AzureInternalMonitoringPipelineSinkDescription struct {
7279	// AccountName - Azure Internal monitoring pipeline account.
7280	AccountName *string `json:"accountName,omitempty"`
7281	// Namespace - Azure Internal monitoring pipeline account namespace.
7282	Namespace *string `json:"namespace,omitempty"`
7283	// MaConfigURL - Azure Internal monitoring agent configuration.
7284	MaConfigURL *string `json:"maConfigUrl,omitempty"`
7285	// FluentdConfigURL - Azure Internal monitoring agent fluentd configuration.
7286	FluentdConfigURL *string `json:"fluentdConfigUrl,omitempty"`
7287	// AutoKeyConfigURL - Azure Internal monitoring pipeline autokey associated with the certificate.
7288	AutoKeyConfigURL *string `json:"autoKeyConfigUrl,omitempty"`
7289	// Name - Name of the sink. This value is referenced by DiagnosticsReferenceDescription
7290	Name *string `json:"name,omitempty"`
7291	// Description - A description of the sink.
7292	Description *string `json:"description,omitempty"`
7293	// Kind - Possible values include: 'KindDiagnosticsSinkProperties', 'KindAzureInternalMonitoringPipeline'
7294	Kind KindBasicDiagnosticsSinkProperties `json:"kind,omitempty"`
7295}
7296
7297// MarshalJSON is the custom marshaler for AzureInternalMonitoringPipelineSinkDescription.
7298func (aimpsd AzureInternalMonitoringPipelineSinkDescription) MarshalJSON() ([]byte, error) {
7299	aimpsd.Kind = KindAzureInternalMonitoringPipeline
7300	objectMap := make(map[string]interface{})
7301	if aimpsd.AccountName != nil {
7302		objectMap["accountName"] = aimpsd.AccountName
7303	}
7304	if aimpsd.Namespace != nil {
7305		objectMap["namespace"] = aimpsd.Namespace
7306	}
7307	if aimpsd.MaConfigURL != nil {
7308		objectMap["maConfigUrl"] = aimpsd.MaConfigURL
7309	}
7310	if aimpsd.FluentdConfigURL != nil {
7311		objectMap["fluentdConfigUrl"] = aimpsd.FluentdConfigURL
7312	}
7313	if aimpsd.AutoKeyConfigURL != nil {
7314		objectMap["autoKeyConfigUrl"] = aimpsd.AutoKeyConfigURL
7315	}
7316	if aimpsd.Name != nil {
7317		objectMap["name"] = aimpsd.Name
7318	}
7319	if aimpsd.Description != nil {
7320		objectMap["description"] = aimpsd.Description
7321	}
7322	if aimpsd.Kind != "" {
7323		objectMap["kind"] = aimpsd.Kind
7324	}
7325	return json.Marshal(objectMap)
7326}
7327
7328// AsAzureInternalMonitoringPipelineSinkDescription is the BasicDiagnosticsSinkProperties implementation for AzureInternalMonitoringPipelineSinkDescription.
7329func (aimpsd AzureInternalMonitoringPipelineSinkDescription) AsAzureInternalMonitoringPipelineSinkDescription() (*AzureInternalMonitoringPipelineSinkDescription, bool) {
7330	return &aimpsd, true
7331}
7332
7333// AsDiagnosticsSinkProperties is the BasicDiagnosticsSinkProperties implementation for AzureInternalMonitoringPipelineSinkDescription.
7334func (aimpsd AzureInternalMonitoringPipelineSinkDescription) AsDiagnosticsSinkProperties() (*DiagnosticsSinkProperties, bool) {
7335	return nil, false
7336}
7337
7338// AsBasicDiagnosticsSinkProperties is the BasicDiagnosticsSinkProperties implementation for AzureInternalMonitoringPipelineSinkDescription.
7339func (aimpsd AzureInternalMonitoringPipelineSinkDescription) AsBasicDiagnosticsSinkProperties() (BasicDiagnosticsSinkProperties, bool) {
7340	return &aimpsd, true
7341}
7342
7343// BasicBackupConfigurationInfo describes the backup configuration information.
7344type BasicBackupConfigurationInfo interface {
7345	AsApplicationBackupConfigurationInfo() (*ApplicationBackupConfigurationInfo, bool)
7346	AsServiceBackupConfigurationInfo() (*ServiceBackupConfigurationInfo, bool)
7347	AsPartitionBackupConfigurationInfo() (*PartitionBackupConfigurationInfo, bool)
7348	AsBackupConfigurationInfo() (*BackupConfigurationInfo, bool)
7349}
7350
7351// BackupConfigurationInfo describes the backup configuration information.
7352type BackupConfigurationInfo struct {
7353	// PolicyName - The name of the backup policy which is applicable to this Service Fabric application or service or partition.
7354	PolicyName *string `json:"PolicyName,omitempty"`
7355	// PolicyInheritedFrom - Specifies the scope at which the backup policy is applied. Possible values include: 'BackupPolicyScopeInvalid', 'BackupPolicyScopePartition', 'BackupPolicyScopeService', 'BackupPolicyScopeApplication'
7356	PolicyInheritedFrom BackupPolicyScope `json:"PolicyInheritedFrom,omitempty"`
7357	// SuspensionInfo - Describes the backup suspension details.
7358	SuspensionInfo *BackupSuspensionInfo `json:"SuspensionInfo,omitempty"`
7359	// Kind - Possible values include: 'KindBasicBackupConfigurationInfoKindBackupConfigurationInfo', 'KindBasicBackupConfigurationInfoKindApplication', 'KindBasicBackupConfigurationInfoKindService', 'KindBasicBackupConfigurationInfoKindPartition'
7360	Kind KindBasicBackupConfigurationInfo `json:"Kind,omitempty"`
7361}
7362
7363func unmarshalBasicBackupConfigurationInfo(body []byte) (BasicBackupConfigurationInfo, error) {
7364	var m map[string]interface{}
7365	err := json.Unmarshal(body, &m)
7366	if err != nil {
7367		return nil, err
7368	}
7369
7370	switch m["Kind"] {
7371	case string(KindBasicBackupConfigurationInfoKindApplication):
7372		var abci ApplicationBackupConfigurationInfo
7373		err := json.Unmarshal(body, &abci)
7374		return abci, err
7375	case string(KindBasicBackupConfigurationInfoKindService):
7376		var sbci ServiceBackupConfigurationInfo
7377		err := json.Unmarshal(body, &sbci)
7378		return sbci, err
7379	case string(KindBasicBackupConfigurationInfoKindPartition):
7380		var pbci PartitionBackupConfigurationInfo
7381		err := json.Unmarshal(body, &pbci)
7382		return pbci, err
7383	default:
7384		var bci BackupConfigurationInfo
7385		err := json.Unmarshal(body, &bci)
7386		return bci, err
7387	}
7388}
7389func unmarshalBasicBackupConfigurationInfoArray(body []byte) ([]BasicBackupConfigurationInfo, error) {
7390	var rawMessages []*json.RawMessage
7391	err := json.Unmarshal(body, &rawMessages)
7392	if err != nil {
7393		return nil, err
7394	}
7395
7396	bciArray := make([]BasicBackupConfigurationInfo, len(rawMessages))
7397
7398	for index, rawMessage := range rawMessages {
7399		bci, err := unmarshalBasicBackupConfigurationInfo(*rawMessage)
7400		if err != nil {
7401			return nil, err
7402		}
7403		bciArray[index] = bci
7404	}
7405	return bciArray, nil
7406}
7407
7408// MarshalJSON is the custom marshaler for BackupConfigurationInfo.
7409func (bci BackupConfigurationInfo) MarshalJSON() ([]byte, error) {
7410	bci.Kind = KindBasicBackupConfigurationInfoKindBackupConfigurationInfo
7411	objectMap := make(map[string]interface{})
7412	if bci.PolicyName != nil {
7413		objectMap["PolicyName"] = bci.PolicyName
7414	}
7415	if bci.PolicyInheritedFrom != "" {
7416		objectMap["PolicyInheritedFrom"] = bci.PolicyInheritedFrom
7417	}
7418	if bci.SuspensionInfo != nil {
7419		objectMap["SuspensionInfo"] = bci.SuspensionInfo
7420	}
7421	if bci.Kind != "" {
7422		objectMap["Kind"] = bci.Kind
7423	}
7424	return json.Marshal(objectMap)
7425}
7426
7427// AsApplicationBackupConfigurationInfo is the BasicBackupConfigurationInfo implementation for BackupConfigurationInfo.
7428func (bci BackupConfigurationInfo) AsApplicationBackupConfigurationInfo() (*ApplicationBackupConfigurationInfo, bool) {
7429	return nil, false
7430}
7431
7432// AsServiceBackupConfigurationInfo is the BasicBackupConfigurationInfo implementation for BackupConfigurationInfo.
7433func (bci BackupConfigurationInfo) AsServiceBackupConfigurationInfo() (*ServiceBackupConfigurationInfo, bool) {
7434	return nil, false
7435}
7436
7437// AsPartitionBackupConfigurationInfo is the BasicBackupConfigurationInfo implementation for BackupConfigurationInfo.
7438func (bci BackupConfigurationInfo) AsPartitionBackupConfigurationInfo() (*PartitionBackupConfigurationInfo, bool) {
7439	return nil, false
7440}
7441
7442// AsBackupConfigurationInfo is the BasicBackupConfigurationInfo implementation for BackupConfigurationInfo.
7443func (bci BackupConfigurationInfo) AsBackupConfigurationInfo() (*BackupConfigurationInfo, bool) {
7444	return &bci, true
7445}
7446
7447// AsBasicBackupConfigurationInfo is the BasicBackupConfigurationInfo implementation for BackupConfigurationInfo.
7448func (bci BackupConfigurationInfo) AsBasicBackupConfigurationInfo() (BasicBackupConfigurationInfo, bool) {
7449	return &bci, true
7450}
7451
7452// BasicBackupEntity describes the Service Fabric entity that is configured for backup.
7453type BasicBackupEntity interface {
7454	AsApplicationBackupEntity() (*ApplicationBackupEntity, bool)
7455	AsServiceBackupEntity() (*ServiceBackupEntity, bool)
7456	AsPartitionBackupEntity() (*PartitionBackupEntity, bool)
7457	AsBackupEntity() (*BackupEntity, bool)
7458}
7459
7460// BackupEntity describes the Service Fabric entity that is configured for backup.
7461type BackupEntity struct {
7462	// EntityKind - Possible values include: 'EntityKindBackupEntity', 'EntityKindApplication1', 'EntityKindService1', 'EntityKindPartition1'
7463	EntityKind EntityKindBasicBackupEntity `json:"EntityKind,omitempty"`
7464}
7465
7466func unmarshalBasicBackupEntity(body []byte) (BasicBackupEntity, error) {
7467	var m map[string]interface{}
7468	err := json.Unmarshal(body, &m)
7469	if err != nil {
7470		return nil, err
7471	}
7472
7473	switch m["EntityKind"] {
7474	case string(EntityKindApplication1):
7475		var abe ApplicationBackupEntity
7476		err := json.Unmarshal(body, &abe)
7477		return abe, err
7478	case string(EntityKindService1):
7479		var sbe ServiceBackupEntity
7480		err := json.Unmarshal(body, &sbe)
7481		return sbe, err
7482	case string(EntityKindPartition1):
7483		var pbe PartitionBackupEntity
7484		err := json.Unmarshal(body, &pbe)
7485		return pbe, err
7486	default:
7487		var be BackupEntity
7488		err := json.Unmarshal(body, &be)
7489		return be, err
7490	}
7491}
7492func unmarshalBasicBackupEntityArray(body []byte) ([]BasicBackupEntity, error) {
7493	var rawMessages []*json.RawMessage
7494	err := json.Unmarshal(body, &rawMessages)
7495	if err != nil {
7496		return nil, err
7497	}
7498
7499	beArray := make([]BasicBackupEntity, len(rawMessages))
7500
7501	for index, rawMessage := range rawMessages {
7502		be, err := unmarshalBasicBackupEntity(*rawMessage)
7503		if err != nil {
7504			return nil, err
7505		}
7506		beArray[index] = be
7507	}
7508	return beArray, nil
7509}
7510
7511// MarshalJSON is the custom marshaler for BackupEntity.
7512func (be BackupEntity) MarshalJSON() ([]byte, error) {
7513	be.EntityKind = EntityKindBackupEntity
7514	objectMap := make(map[string]interface{})
7515	if be.EntityKind != "" {
7516		objectMap["EntityKind"] = be.EntityKind
7517	}
7518	return json.Marshal(objectMap)
7519}
7520
7521// AsApplicationBackupEntity is the BasicBackupEntity implementation for BackupEntity.
7522func (be BackupEntity) AsApplicationBackupEntity() (*ApplicationBackupEntity, bool) {
7523	return nil, false
7524}
7525
7526// AsServiceBackupEntity is the BasicBackupEntity implementation for BackupEntity.
7527func (be BackupEntity) AsServiceBackupEntity() (*ServiceBackupEntity, bool) {
7528	return nil, false
7529}
7530
7531// AsPartitionBackupEntity is the BasicBackupEntity implementation for BackupEntity.
7532func (be BackupEntity) AsPartitionBackupEntity() (*PartitionBackupEntity, bool) {
7533	return nil, false
7534}
7535
7536// AsBackupEntity is the BasicBackupEntity implementation for BackupEntity.
7537func (be BackupEntity) AsBackupEntity() (*BackupEntity, bool) {
7538	return &be, true
7539}
7540
7541// AsBasicBackupEntity is the BasicBackupEntity implementation for BackupEntity.
7542func (be BackupEntity) AsBasicBackupEntity() (BasicBackupEntity, bool) {
7543	return &be, true
7544}
7545
7546// BackupInfo represents a backup point which can be used to trigger a restore.
7547type BackupInfo struct {
7548	// BackupID - Unique backup ID .
7549	BackupID *uuid.UUID `json:"BackupId,omitempty"`
7550	// 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.
7551	BackupChainID *uuid.UUID `json:"BackupChainId,omitempty"`
7552	// ApplicationName - Name of the Service Fabric application this partition backup belongs to.
7553	ApplicationName *string `json:"ApplicationName,omitempty"`
7554	// ServiceName - Name of the Service Fabric service this partition backup belongs to.
7555	ServiceName *string `json:"ServiceName,omitempty"`
7556	// PartitionInformation - Information about the partition to which this backup belongs to
7557	PartitionInformation BasicPartitionInformation `json:"PartitionInformation,omitempty"`
7558	// BackupLocation - Location of the backup, relative to the backup store.
7559	BackupLocation *string `json:"BackupLocation,omitempty"`
7560	// BackupType - Describes the type of backup, whether its full or incremental. Possible values include: 'BackupTypeInvalid', 'BackupTypeFull', 'BackupTypeIncremental'
7561	BackupType BackupType `json:"BackupType,omitempty"`
7562	// EpochOfLastBackupRecord - Epoch of the last record in this backup.
7563	EpochOfLastBackupRecord *Epoch `json:"EpochOfLastBackupRecord,omitempty"`
7564	// LsnOfLastBackupRecord - LSN of the last record in this backup.
7565	LsnOfLastBackupRecord *string `json:"LsnOfLastBackupRecord,omitempty"`
7566	// CreationTimeUtc - The date time when this backup was taken.
7567	CreationTimeUtc *date.Time `json:"CreationTimeUtc,omitempty"`
7568	// ServiceManifestVersion - Manifest Version of the service this partition backup belongs to.
7569	ServiceManifestVersion *string `json:"ServiceManifestVersion,omitempty"`
7570	// FailureError - Denotes the failure encountered in getting backup point information.
7571	FailureError *FabricErrorError `json:"FailureError,omitempty"`
7572}
7573
7574// UnmarshalJSON is the custom unmarshaler for BackupInfo struct.
7575func (bi *BackupInfo) UnmarshalJSON(body []byte) error {
7576	var m map[string]*json.RawMessage
7577	err := json.Unmarshal(body, &m)
7578	if err != nil {
7579		return err
7580	}
7581	for k, v := range m {
7582		switch k {
7583		case "BackupId":
7584			if v != nil {
7585				var backupID uuid.UUID
7586				err = json.Unmarshal(*v, &backupID)
7587				if err != nil {
7588					return err
7589				}
7590				bi.BackupID = &backupID
7591			}
7592		case "BackupChainId":
7593			if v != nil {
7594				var backupChainID uuid.UUID
7595				err = json.Unmarshal(*v, &backupChainID)
7596				if err != nil {
7597					return err
7598				}
7599				bi.BackupChainID = &backupChainID
7600			}
7601		case "ApplicationName":
7602			if v != nil {
7603				var applicationName string
7604				err = json.Unmarshal(*v, &applicationName)
7605				if err != nil {
7606					return err
7607				}
7608				bi.ApplicationName = &applicationName
7609			}
7610		case "ServiceName":
7611			if v != nil {
7612				var serviceName string
7613				err = json.Unmarshal(*v, &serviceName)
7614				if err != nil {
7615					return err
7616				}
7617				bi.ServiceName = &serviceName
7618			}
7619		case "PartitionInformation":
7620			if v != nil {
7621				partitionInformation, err := unmarshalBasicPartitionInformation(*v)
7622				if err != nil {
7623					return err
7624				}
7625				bi.PartitionInformation = partitionInformation
7626			}
7627		case "BackupLocation":
7628			if v != nil {
7629				var backupLocation string
7630				err = json.Unmarshal(*v, &backupLocation)
7631				if err != nil {
7632					return err
7633				}
7634				bi.BackupLocation = &backupLocation
7635			}
7636		case "BackupType":
7637			if v != nil {
7638				var backupType BackupType
7639				err = json.Unmarshal(*v, &backupType)
7640				if err != nil {
7641					return err
7642				}
7643				bi.BackupType = backupType
7644			}
7645		case "EpochOfLastBackupRecord":
7646			if v != nil {
7647				var epochOfLastBackupRecord Epoch
7648				err = json.Unmarshal(*v, &epochOfLastBackupRecord)
7649				if err != nil {
7650					return err
7651				}
7652				bi.EpochOfLastBackupRecord = &epochOfLastBackupRecord
7653			}
7654		case "LsnOfLastBackupRecord":
7655			if v != nil {
7656				var lsnOfLastBackupRecord string
7657				err = json.Unmarshal(*v, &lsnOfLastBackupRecord)
7658				if err != nil {
7659					return err
7660				}
7661				bi.LsnOfLastBackupRecord = &lsnOfLastBackupRecord
7662			}
7663		case "CreationTimeUtc":
7664			if v != nil {
7665				var creationTimeUtc date.Time
7666				err = json.Unmarshal(*v, &creationTimeUtc)
7667				if err != nil {
7668					return err
7669				}
7670				bi.CreationTimeUtc = &creationTimeUtc
7671			}
7672		case "ServiceManifestVersion":
7673			if v != nil {
7674				var serviceManifestVersion string
7675				err = json.Unmarshal(*v, &serviceManifestVersion)
7676				if err != nil {
7677					return err
7678				}
7679				bi.ServiceManifestVersion = &serviceManifestVersion
7680			}
7681		case "FailureError":
7682			if v != nil {
7683				var failureError FabricErrorError
7684				err = json.Unmarshal(*v, &failureError)
7685				if err != nil {
7686					return err
7687				}
7688				bi.FailureError = &failureError
7689			}
7690		}
7691	}
7692
7693	return nil
7694}
7695
7696// BackupPartitionDescription describes the parameters for triggering partition's backup.
7697type BackupPartitionDescription struct {
7698	// BackupStorage - Specifies the details of the backup storage where to save the backup.
7699	BackupStorage BasicBackupStorageDescription `json:"BackupStorage,omitempty"`
7700}
7701
7702// UnmarshalJSON is the custom unmarshaler for BackupPartitionDescription struct.
7703func (bpd *BackupPartitionDescription) UnmarshalJSON(body []byte) error {
7704	var m map[string]*json.RawMessage
7705	err := json.Unmarshal(body, &m)
7706	if err != nil {
7707		return err
7708	}
7709	for k, v := range m {
7710		switch k {
7711		case "BackupStorage":
7712			if v != nil {
7713				backupStorage, err := unmarshalBasicBackupStorageDescription(*v)
7714				if err != nil {
7715					return err
7716				}
7717				bpd.BackupStorage = backupStorage
7718			}
7719		}
7720	}
7721
7722	return nil
7723}
7724
7725// BackupPolicyDescription describes a backup policy for configuring periodic backup.
7726type BackupPolicyDescription struct {
7727	autorest.Response `json:"-"`
7728	// Name - The unique name identifying this backup policy.
7729	Name *string `json:"Name,omitempty"`
7730	// AutoRestoreOnDataLoss - Specifies whether to trigger restore automatically using the latest available backup in case the partition experiences a data loss event.
7731	AutoRestoreOnDataLoss *bool `json:"AutoRestoreOnDataLoss,omitempty"`
7732	// 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
7733	// - The replica has never taken a full backup since it has become primary,
7734	// - Some of the log records since the last backup has been truncated, or
7735	// - Replica passed the MaxAccumulatedBackupLogSizeInMB limit.
7736	MaxIncrementalBackups *int32 `json:"MaxIncrementalBackups,omitempty"`
7737	// Schedule - Describes the backup schedule parameters.
7738	Schedule BasicBackupScheduleDescription `json:"Schedule,omitempty"`
7739	// Storage - Describes the details of backup storage where to store the periodic backups.
7740	Storage BasicBackupStorageDescription `json:"Storage,omitempty"`
7741	// RetentionPolicy - Describes the policy to retain backups in storage.
7742	RetentionPolicy BasicBasicRetentionPolicyDescription `json:"RetentionPolicy,omitempty"`
7743}
7744
7745// UnmarshalJSON is the custom unmarshaler for BackupPolicyDescription struct.
7746func (bpd *BackupPolicyDescription) UnmarshalJSON(body []byte) error {
7747	var m map[string]*json.RawMessage
7748	err := json.Unmarshal(body, &m)
7749	if err != nil {
7750		return err
7751	}
7752	for k, v := range m {
7753		switch k {
7754		case "Name":
7755			if v != nil {
7756				var name string
7757				err = json.Unmarshal(*v, &name)
7758				if err != nil {
7759					return err
7760				}
7761				bpd.Name = &name
7762			}
7763		case "AutoRestoreOnDataLoss":
7764			if v != nil {
7765				var autoRestoreOnDataLoss bool
7766				err = json.Unmarshal(*v, &autoRestoreOnDataLoss)
7767				if err != nil {
7768					return err
7769				}
7770				bpd.AutoRestoreOnDataLoss = &autoRestoreOnDataLoss
7771			}
7772		case "MaxIncrementalBackups":
7773			if v != nil {
7774				var maxIncrementalBackups int32
7775				err = json.Unmarshal(*v, &maxIncrementalBackups)
7776				if err != nil {
7777					return err
7778				}
7779				bpd.MaxIncrementalBackups = &maxIncrementalBackups
7780			}
7781		case "Schedule":
7782			if v != nil {
7783				schedule, err := unmarshalBasicBackupScheduleDescription(*v)
7784				if err != nil {
7785					return err
7786				}
7787				bpd.Schedule = schedule
7788			}
7789		case "Storage":
7790			if v != nil {
7791				storage, err := unmarshalBasicBackupStorageDescription(*v)
7792				if err != nil {
7793					return err
7794				}
7795				bpd.Storage = storage
7796			}
7797		case "RetentionPolicy":
7798			if v != nil {
7799				retentionPolicy, err := unmarshalBasicBasicRetentionPolicyDescription(*v)
7800				if err != nil {
7801					return err
7802				}
7803				bpd.RetentionPolicy = retentionPolicy
7804			}
7805		}
7806	}
7807
7808	return nil
7809}
7810
7811// BackupProgressInfo describes the progress of a partition's backup.
7812type BackupProgressInfo struct {
7813	autorest.Response `json:"-"`
7814	// BackupState - Represents the current state of the partition backup operation. Possible values include: 'BackupStateInvalid', 'BackupStateAccepted', 'BackupStateBackupInProgress', 'BackupStateSuccess', 'BackupStateFailure', 'BackupStateTimeout'
7815	BackupState BackupState `json:"BackupState,omitempty"`
7816	// TimeStampUtc - TimeStamp in UTC when operation succeeded or failed.
7817	TimeStampUtc *date.Time `json:"TimeStampUtc,omitempty"`
7818	// BackupID - Unique ID of the newly created backup.
7819	BackupID *uuid.UUID `json:"BackupId,omitempty"`
7820	// BackupLocation - Location, relative to the backup store, of the newly created backup.
7821	BackupLocation *string `json:"BackupLocation,omitempty"`
7822	// EpochOfLastBackupRecord - Specifies the epoch of the last record included in backup.
7823	EpochOfLastBackupRecord *Epoch `json:"EpochOfLastBackupRecord,omitempty"`
7824	// LsnOfLastBackupRecord - The LSN of last record included in backup.
7825	LsnOfLastBackupRecord *string `json:"LsnOfLastBackupRecord,omitempty"`
7826	// FailureError - Denotes the failure encountered in performing backup operation.
7827	FailureError *FabricErrorError `json:"FailureError,omitempty"`
7828}
7829
7830// BasicBackupScheduleDescription describes the backup schedule parameters.
7831type BasicBackupScheduleDescription interface {
7832	AsFrequencyBasedBackupScheduleDescription() (*FrequencyBasedBackupScheduleDescription, bool)
7833	AsTimeBasedBackupScheduleDescription() (*TimeBasedBackupScheduleDescription, bool)
7834	AsBackupScheduleDescription() (*BackupScheduleDescription, bool)
7835}
7836
7837// BackupScheduleDescription describes the backup schedule parameters.
7838type BackupScheduleDescription struct {
7839	// ScheduleKind - Possible values include: 'ScheduleKindBackupScheduleDescription', 'ScheduleKindFrequencyBased', 'ScheduleKindTimeBased'
7840	ScheduleKind ScheduleKind `json:"ScheduleKind,omitempty"`
7841}
7842
7843func unmarshalBasicBackupScheduleDescription(body []byte) (BasicBackupScheduleDescription, error) {
7844	var m map[string]interface{}
7845	err := json.Unmarshal(body, &m)
7846	if err != nil {
7847		return nil, err
7848	}
7849
7850	switch m["ScheduleKind"] {
7851	case string(ScheduleKindFrequencyBased):
7852		var fbbsd FrequencyBasedBackupScheduleDescription
7853		err := json.Unmarshal(body, &fbbsd)
7854		return fbbsd, err
7855	case string(ScheduleKindTimeBased):
7856		var tbbsd TimeBasedBackupScheduleDescription
7857		err := json.Unmarshal(body, &tbbsd)
7858		return tbbsd, err
7859	default:
7860		var bsd BackupScheduleDescription
7861		err := json.Unmarshal(body, &bsd)
7862		return bsd, err
7863	}
7864}
7865func unmarshalBasicBackupScheduleDescriptionArray(body []byte) ([]BasicBackupScheduleDescription, error) {
7866	var rawMessages []*json.RawMessage
7867	err := json.Unmarshal(body, &rawMessages)
7868	if err != nil {
7869		return nil, err
7870	}
7871
7872	bsdArray := make([]BasicBackupScheduleDescription, len(rawMessages))
7873
7874	for index, rawMessage := range rawMessages {
7875		bsd, err := unmarshalBasicBackupScheduleDescription(*rawMessage)
7876		if err != nil {
7877			return nil, err
7878		}
7879		bsdArray[index] = bsd
7880	}
7881	return bsdArray, nil
7882}
7883
7884// MarshalJSON is the custom marshaler for BackupScheduleDescription.
7885func (bsd BackupScheduleDescription) MarshalJSON() ([]byte, error) {
7886	bsd.ScheduleKind = ScheduleKindBackupScheduleDescription
7887	objectMap := make(map[string]interface{})
7888	if bsd.ScheduleKind != "" {
7889		objectMap["ScheduleKind"] = bsd.ScheduleKind
7890	}
7891	return json.Marshal(objectMap)
7892}
7893
7894// AsFrequencyBasedBackupScheduleDescription is the BasicBackupScheduleDescription implementation for BackupScheduleDescription.
7895func (bsd BackupScheduleDescription) AsFrequencyBasedBackupScheduleDescription() (*FrequencyBasedBackupScheduleDescription, bool) {
7896	return nil, false
7897}
7898
7899// AsTimeBasedBackupScheduleDescription is the BasicBackupScheduleDescription implementation for BackupScheduleDescription.
7900func (bsd BackupScheduleDescription) AsTimeBasedBackupScheduleDescription() (*TimeBasedBackupScheduleDescription, bool) {
7901	return nil, false
7902}
7903
7904// AsBackupScheduleDescription is the BasicBackupScheduleDescription implementation for BackupScheduleDescription.
7905func (bsd BackupScheduleDescription) AsBackupScheduleDescription() (*BackupScheduleDescription, bool) {
7906	return &bsd, true
7907}
7908
7909// AsBasicBackupScheduleDescription is the BasicBackupScheduleDescription implementation for BackupScheduleDescription.
7910func (bsd BackupScheduleDescription) AsBasicBackupScheduleDescription() (BasicBackupScheduleDescription, bool) {
7911	return &bsd, true
7912}
7913
7914// BasicBackupStorageDescription describes the parameters for the backup storage.
7915type BasicBackupStorageDescription interface {
7916	AsAzureBlobBackupStorageDescription() (*AzureBlobBackupStorageDescription, bool)
7917	AsFileShareBackupStorageDescription() (*FileShareBackupStorageDescription, bool)
7918	AsDsmsAzureBlobBackupStorageDescription() (*DsmsAzureBlobBackupStorageDescription, bool)
7919	AsBackupStorageDescription() (*BackupStorageDescription, bool)
7920}
7921
7922// BackupStorageDescription describes the parameters for the backup storage.
7923type BackupStorageDescription struct {
7924	// FriendlyName - Friendly name for this backup storage.
7925	FriendlyName *string `json:"FriendlyName,omitempty"`
7926	// StorageKind - Possible values include: 'StorageKindBackupStorageDescription', 'StorageKindAzureBlobStore', 'StorageKindFileShare', 'StorageKindDsmsAzureBlobStore'
7927	StorageKind StorageKind `json:"StorageKind,omitempty"`
7928}
7929
7930func unmarshalBasicBackupStorageDescription(body []byte) (BasicBackupStorageDescription, error) {
7931	var m map[string]interface{}
7932	err := json.Unmarshal(body, &m)
7933	if err != nil {
7934		return nil, err
7935	}
7936
7937	switch m["StorageKind"] {
7938	case string(StorageKindAzureBlobStore):
7939		var abbsd AzureBlobBackupStorageDescription
7940		err := json.Unmarshal(body, &abbsd)
7941		return abbsd, err
7942	case string(StorageKindFileShare):
7943		var fsbsd FileShareBackupStorageDescription
7944		err := json.Unmarshal(body, &fsbsd)
7945		return fsbsd, err
7946	case string(StorageKindDsmsAzureBlobStore):
7947		var dabbsd DsmsAzureBlobBackupStorageDescription
7948		err := json.Unmarshal(body, &dabbsd)
7949		return dabbsd, err
7950	default:
7951		var bsd BackupStorageDescription
7952		err := json.Unmarshal(body, &bsd)
7953		return bsd, err
7954	}
7955}
7956func unmarshalBasicBackupStorageDescriptionArray(body []byte) ([]BasicBackupStorageDescription, error) {
7957	var rawMessages []*json.RawMessage
7958	err := json.Unmarshal(body, &rawMessages)
7959	if err != nil {
7960		return nil, err
7961	}
7962
7963	bsdArray := make([]BasicBackupStorageDescription, len(rawMessages))
7964
7965	for index, rawMessage := range rawMessages {
7966		bsd, err := unmarshalBasicBackupStorageDescription(*rawMessage)
7967		if err != nil {
7968			return nil, err
7969		}
7970		bsdArray[index] = bsd
7971	}
7972	return bsdArray, nil
7973}
7974
7975// MarshalJSON is the custom marshaler for BackupStorageDescription.
7976func (bsd BackupStorageDescription) MarshalJSON() ([]byte, error) {
7977	bsd.StorageKind = StorageKindBackupStorageDescription
7978	objectMap := make(map[string]interface{})
7979	if bsd.FriendlyName != nil {
7980		objectMap["FriendlyName"] = bsd.FriendlyName
7981	}
7982	if bsd.StorageKind != "" {
7983		objectMap["StorageKind"] = bsd.StorageKind
7984	}
7985	return json.Marshal(objectMap)
7986}
7987
7988// AsAzureBlobBackupStorageDescription is the BasicBackupStorageDescription implementation for BackupStorageDescription.
7989func (bsd BackupStorageDescription) AsAzureBlobBackupStorageDescription() (*AzureBlobBackupStorageDescription, bool) {
7990	return nil, false
7991}
7992
7993// AsFileShareBackupStorageDescription is the BasicBackupStorageDescription implementation for BackupStorageDescription.
7994func (bsd BackupStorageDescription) AsFileShareBackupStorageDescription() (*FileShareBackupStorageDescription, bool) {
7995	return nil, false
7996}
7997
7998// AsDsmsAzureBlobBackupStorageDescription is the BasicBackupStorageDescription implementation for BackupStorageDescription.
7999func (bsd BackupStorageDescription) AsDsmsAzureBlobBackupStorageDescription() (*DsmsAzureBlobBackupStorageDescription, bool) {
8000	return nil, false
8001}
8002
8003// AsBackupStorageDescription is the BasicBackupStorageDescription implementation for BackupStorageDescription.
8004func (bsd BackupStorageDescription) AsBackupStorageDescription() (*BackupStorageDescription, bool) {
8005	return &bsd, true
8006}
8007
8008// AsBasicBackupStorageDescription is the BasicBackupStorageDescription implementation for BackupStorageDescription.
8009func (bsd BackupStorageDescription) AsBasicBackupStorageDescription() (BasicBackupStorageDescription, bool) {
8010	return &bsd, true
8011}
8012
8013// BackupSuspensionInfo describes the backup suspension details.
8014type BackupSuspensionInfo struct {
8015	// IsSuspended - Indicates whether periodic backup is suspended at this level or not.
8016	IsSuspended *bool `json:"IsSuspended,omitempty"`
8017	// SuspensionInheritedFrom - Specifies the scope at which the backup suspension was applied. Possible values include: 'BackupSuspensionScopeInvalid', 'BackupSuspensionScopePartition', 'BackupSuspensionScopeService', 'BackupSuspensionScopeApplication'
8018	SuspensionInheritedFrom BackupSuspensionScope `json:"SuspensionInheritedFrom,omitempty"`
8019}
8020
8021// BasicRetentionPolicyDescription describes basic retention policy.
8022type BasicRetentionPolicyDescription struct {
8023	// 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.
8024	RetentionDuration *string `json:"RetentionDuration,omitempty"`
8025	// 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.
8026	MinimumNumberOfBackups *int32 `json:"MinimumNumberOfBackups,omitempty"`
8027	// RetentionPolicyType - Possible values include: 'RetentionPolicyTypeRetentionPolicyDescription', 'RetentionPolicyTypeBasic1'
8028	RetentionPolicyType RetentionPolicyTypeBasicBasicRetentionPolicyDescription `json:"RetentionPolicyType,omitempty"`
8029}
8030
8031// MarshalJSON is the custom marshaler for BasicRetentionPolicyDescription.
8032func (brpd BasicRetentionPolicyDescription) MarshalJSON() ([]byte, error) {
8033	brpd.RetentionPolicyType = RetentionPolicyTypeBasic1
8034	objectMap := make(map[string]interface{})
8035	if brpd.RetentionDuration != nil {
8036		objectMap["RetentionDuration"] = brpd.RetentionDuration
8037	}
8038	if brpd.MinimumNumberOfBackups != nil {
8039		objectMap["MinimumNumberOfBackups"] = brpd.MinimumNumberOfBackups
8040	}
8041	if brpd.RetentionPolicyType != "" {
8042		objectMap["RetentionPolicyType"] = brpd.RetentionPolicyType
8043	}
8044	return json.Marshal(objectMap)
8045}
8046
8047// AsBasicRetentionPolicyDescription is the BasicBasicRetentionPolicyDescription implementation for BasicRetentionPolicyDescription.
8048func (brpd BasicRetentionPolicyDescription) AsBasicRetentionPolicyDescription() (*BasicRetentionPolicyDescription, bool) {
8049	return &brpd, true
8050}
8051
8052// AsRetentionPolicyDescription is the BasicBasicRetentionPolicyDescription implementation for BasicRetentionPolicyDescription.
8053func (brpd BasicRetentionPolicyDescription) AsRetentionPolicyDescription() (*RetentionPolicyDescription, bool) {
8054	return nil, false
8055}
8056
8057// AsBasicBasicRetentionPolicyDescription is the BasicBasicRetentionPolicyDescription implementation for BasicRetentionPolicyDescription.
8058func (brpd BasicRetentionPolicyDescription) AsBasicBasicRetentionPolicyDescription() (BasicBasicRetentionPolicyDescription, bool) {
8059	return &brpd, true
8060}
8061
8062// BinaryPropertyValue describes a Service Fabric property value of type Binary.
8063type BinaryPropertyValue struct {
8064	// Data - Array of bytes to be sent as an integer array. Each element of array is a number between 0 and 255.
8065	Data *[]int32 `json:"Data,omitempty"`
8066	// Kind - Possible values include: 'KindPropertyValue', 'KindBinary', 'KindInt64', 'KindDouble', 'KindString', 'KindGUID'
8067	Kind KindBasicPropertyValue `json:"Kind,omitempty"`
8068}
8069
8070// MarshalJSON is the custom marshaler for BinaryPropertyValue.
8071func (bpv BinaryPropertyValue) MarshalJSON() ([]byte, error) {
8072	bpv.Kind = KindBinary
8073	objectMap := make(map[string]interface{})
8074	if bpv.Data != nil {
8075		objectMap["Data"] = bpv.Data
8076	}
8077	if bpv.Kind != "" {
8078		objectMap["Kind"] = bpv.Kind
8079	}
8080	return json.Marshal(objectMap)
8081}
8082
8083// AsBinaryPropertyValue is the BasicPropertyValue implementation for BinaryPropertyValue.
8084func (bpv BinaryPropertyValue) AsBinaryPropertyValue() (*BinaryPropertyValue, bool) {
8085	return &bpv, true
8086}
8087
8088// AsInt64PropertyValue is the BasicPropertyValue implementation for BinaryPropertyValue.
8089func (bpv BinaryPropertyValue) AsInt64PropertyValue() (*Int64PropertyValue, bool) {
8090	return nil, false
8091}
8092
8093// AsDoublePropertyValue is the BasicPropertyValue implementation for BinaryPropertyValue.
8094func (bpv BinaryPropertyValue) AsDoublePropertyValue() (*DoublePropertyValue, bool) {
8095	return nil, false
8096}
8097
8098// AsStringPropertyValue is the BasicPropertyValue implementation for BinaryPropertyValue.
8099func (bpv BinaryPropertyValue) AsStringPropertyValue() (*StringPropertyValue, bool) {
8100	return nil, false
8101}
8102
8103// AsGUIDPropertyValue is the BasicPropertyValue implementation for BinaryPropertyValue.
8104func (bpv BinaryPropertyValue) AsGUIDPropertyValue() (*GUIDPropertyValue, bool) {
8105	return nil, false
8106}
8107
8108// AsPropertyValue is the BasicPropertyValue implementation for BinaryPropertyValue.
8109func (bpv BinaryPropertyValue) AsPropertyValue() (*PropertyValue, bool) {
8110	return nil, false
8111}
8112
8113// AsBasicPropertyValue is the BasicPropertyValue implementation for BinaryPropertyValue.
8114func (bpv BinaryPropertyValue) AsBasicPropertyValue() (BasicPropertyValue, bool) {
8115	return &bpv, true
8116}
8117
8118// Chaos contains a description of Chaos.
8119type Chaos struct {
8120	autorest.Response `json:"-"`
8121	// ChaosParameters - If Chaos is running, these are the parameters Chaos is running with.
8122	ChaosParameters *ChaosParameters `json:"ChaosParameters,omitempty"`
8123	// Status - Current status of the Chaos run. Possible values include: 'ChaosStatusInvalid', 'ChaosStatusRunning', 'ChaosStatusStopped'
8124	Status ChaosStatus `json:"Status,omitempty"`
8125	// ScheduleStatus - Current status of the schedule. Possible values include: 'ChaosScheduleStatusInvalid', 'ChaosScheduleStatusStopped', 'ChaosScheduleStatusActive', 'ChaosScheduleStatusExpired', 'ChaosScheduleStatusPending'
8126	ScheduleStatus ChaosScheduleStatus `json:"ScheduleStatus,omitempty"`
8127}
8128
8129// ChaosCodePackageRestartScheduledEvent chaos Restart Code Package Fault Scheduled event.
8130type ChaosCodePackageRestartScheduledEvent struct {
8131	// FaultGroupID - Id of fault group.
8132	FaultGroupID *uuid.UUID `json:"FaultGroupId,omitempty"`
8133	// FaultID - Id of fault.
8134	FaultID *uuid.UUID `json:"FaultId,omitempty"`
8135	// NodeName - The name of a Service Fabric node.
8136	NodeName *string `json:"NodeName,omitempty"`
8137	// ServiceManifestName - Service manifest name.
8138	ServiceManifestName *string `json:"ServiceManifestName,omitempty"`
8139	// CodePackageName - Code package name.
8140	CodePackageName *string `json:"CodePackageName,omitempty"`
8141	// ServicePackageActivationID - Id of Service package activation.
8142	ServicePackageActivationID *string `json:"ServicePackageActivationId,omitempty"`
8143	// 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.
8144	// Starting in version 6.0, hierarchical names are delimited with the "\~" character. For example, if the application name is "fabric:/myapp/app1",
8145	// the application identity would be "myapp\~app1" in 6.0+ and "myapp/app1" in previous versions.
8146	ApplicationID *string `json:"ApplicationId,omitempty"`
8147	// EventInstanceID - The identifier for the FabricEvent instance.
8148	EventInstanceID *uuid.UUID `json:"EventInstanceId,omitempty"`
8149	// Category - The category of event.
8150	Category *string `json:"Category,omitempty"`
8151	// TimeStamp - The time event was logged.
8152	TimeStamp *date.Time `json:"TimeStamp,omitempty"`
8153	// HasCorrelatedEvents - Shows there is existing related events available.
8154	HasCorrelatedEvents *bool `json:"HasCorrelatedEvents,omitempty"`
8155	// 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'
8156	Kind KindBasicFabricEvent `json:"Kind,omitempty"`
8157}
8158
8159// MarshalJSON is the custom marshaler for ChaosCodePackageRestartScheduledEvent.
8160func (ccprse ChaosCodePackageRestartScheduledEvent) MarshalJSON() ([]byte, error) {
8161	ccprse.Kind = KindChaosCodePackageRestartScheduled
8162	objectMap := make(map[string]interface{})
8163	if ccprse.FaultGroupID != nil {
8164		objectMap["FaultGroupId"] = ccprse.FaultGroupID
8165	}
8166	if ccprse.FaultID != nil {
8167		objectMap["FaultId"] = ccprse.FaultID
8168	}
8169	if ccprse.NodeName != nil {
8170		objectMap["NodeName"] = ccprse.NodeName
8171	}
8172	if ccprse.ServiceManifestName != nil {
8173		objectMap["ServiceManifestName"] = ccprse.ServiceManifestName
8174	}
8175	if ccprse.CodePackageName != nil {
8176		objectMap["CodePackageName"] = ccprse.CodePackageName
8177	}
8178	if ccprse.ServicePackageActivationID != nil {
8179		objectMap["ServicePackageActivationId"] = ccprse.ServicePackageActivationID
8180	}
8181	if ccprse.ApplicationID != nil {
8182		objectMap["ApplicationId"] = ccprse.ApplicationID
8183	}
8184	if ccprse.EventInstanceID != nil {
8185		objectMap["EventInstanceId"] = ccprse.EventInstanceID
8186	}
8187	if ccprse.Category != nil {
8188		objectMap["Category"] = ccprse.Category
8189	}
8190	if ccprse.TimeStamp != nil {
8191		objectMap["TimeStamp"] = ccprse.TimeStamp
8192	}
8193	if ccprse.HasCorrelatedEvents != nil {
8194		objectMap["HasCorrelatedEvents"] = ccprse.HasCorrelatedEvents
8195	}
8196	if ccprse.Kind != "" {
8197		objectMap["Kind"] = ccprse.Kind
8198	}
8199	return json.Marshal(objectMap)
8200}
8201
8202// AsApplicationEvent is the BasicFabricEvent implementation for ChaosCodePackageRestartScheduledEvent.
8203func (ccprse ChaosCodePackageRestartScheduledEvent) AsApplicationEvent() (*ApplicationEvent, bool) {
8204	return nil, false
8205}
8206
8207// AsBasicApplicationEvent is the BasicFabricEvent implementation for ChaosCodePackageRestartScheduledEvent.
8208func (ccprse ChaosCodePackageRestartScheduledEvent) AsBasicApplicationEvent() (BasicApplicationEvent, bool) {
8209	return &ccprse, true
8210}
8211
8212// AsClusterEvent is the BasicFabricEvent implementation for ChaosCodePackageRestartScheduledEvent.
8213func (ccprse ChaosCodePackageRestartScheduledEvent) AsClusterEvent() (*ClusterEvent, bool) {
8214	return nil, false
8215}
8216
8217// AsBasicClusterEvent is the BasicFabricEvent implementation for ChaosCodePackageRestartScheduledEvent.
8218func (ccprse ChaosCodePackageRestartScheduledEvent) AsBasicClusterEvent() (BasicClusterEvent, bool) {
8219	return nil, false
8220}
8221
8222// AsContainerInstanceEvent is the BasicFabricEvent implementation for ChaosCodePackageRestartScheduledEvent.
8223func (ccprse ChaosCodePackageRestartScheduledEvent) AsContainerInstanceEvent() (*ContainerInstanceEvent, bool) {
8224	return nil, false
8225}
8226
8227// AsNodeEvent is the BasicFabricEvent implementation for ChaosCodePackageRestartScheduledEvent.
8228func (ccprse ChaosCodePackageRestartScheduledEvent) AsNodeEvent() (*NodeEvent, bool) {
8229	return nil, false
8230}
8231
8232// AsBasicNodeEvent is the BasicFabricEvent implementation for ChaosCodePackageRestartScheduledEvent.
8233func (ccprse ChaosCodePackageRestartScheduledEvent) AsBasicNodeEvent() (BasicNodeEvent, bool) {
8234	return nil, false
8235}
8236
8237// AsPartitionAnalysisEvent is the BasicFabricEvent implementation for ChaosCodePackageRestartScheduledEvent.
8238func (ccprse ChaosCodePackageRestartScheduledEvent) AsPartitionAnalysisEvent() (*PartitionAnalysisEvent, bool) {
8239	return nil, false
8240}
8241
8242// AsBasicPartitionAnalysisEvent is the BasicFabricEvent implementation for ChaosCodePackageRestartScheduledEvent.
8243func (ccprse ChaosCodePackageRestartScheduledEvent) AsBasicPartitionAnalysisEvent() (BasicPartitionAnalysisEvent, bool) {
8244	return nil, false
8245}
8246
8247// AsPartitionEvent is the BasicFabricEvent implementation for ChaosCodePackageRestartScheduledEvent.
8248func (ccprse ChaosCodePackageRestartScheduledEvent) AsPartitionEvent() (*PartitionEvent, bool) {
8249	return nil, false
8250}
8251
8252// AsBasicPartitionEvent is the BasicFabricEvent implementation for ChaosCodePackageRestartScheduledEvent.
8253func (ccprse ChaosCodePackageRestartScheduledEvent) AsBasicPartitionEvent() (BasicPartitionEvent, bool) {
8254	return nil, false
8255}
8256
8257// AsReplicaEvent is the BasicFabricEvent implementation for ChaosCodePackageRestartScheduledEvent.
8258func (ccprse ChaosCodePackageRestartScheduledEvent) AsReplicaEvent() (*ReplicaEvent, bool) {
8259	return nil, false
8260}
8261
8262// AsBasicReplicaEvent is the BasicFabricEvent implementation for ChaosCodePackageRestartScheduledEvent.
8263func (ccprse ChaosCodePackageRestartScheduledEvent) AsBasicReplicaEvent() (BasicReplicaEvent, bool) {
8264	return nil, false
8265}
8266
8267// AsServiceEvent is the BasicFabricEvent implementation for ChaosCodePackageRestartScheduledEvent.
8268func (ccprse ChaosCodePackageRestartScheduledEvent) AsServiceEvent() (*ServiceEvent, bool) {
8269	return nil, false
8270}
8271
8272// AsBasicServiceEvent is the BasicFabricEvent implementation for ChaosCodePackageRestartScheduledEvent.
8273func (ccprse ChaosCodePackageRestartScheduledEvent) AsBasicServiceEvent() (BasicServiceEvent, bool) {
8274	return nil, false
8275}
8276
8277// AsApplicationCreatedEvent is the BasicFabricEvent implementation for ChaosCodePackageRestartScheduledEvent.
8278func (ccprse ChaosCodePackageRestartScheduledEvent) AsApplicationCreatedEvent() (*ApplicationCreatedEvent, bool) {
8279	return nil, false
8280}
8281
8282// AsApplicationDeletedEvent is the BasicFabricEvent implementation for ChaosCodePackageRestartScheduledEvent.
8283func (ccprse ChaosCodePackageRestartScheduledEvent) AsApplicationDeletedEvent() (*ApplicationDeletedEvent, bool) {
8284	return nil, false
8285}
8286
8287// AsApplicationNewHealthReportEvent is the BasicFabricEvent implementation for ChaosCodePackageRestartScheduledEvent.
8288func (ccprse ChaosCodePackageRestartScheduledEvent) AsApplicationNewHealthReportEvent() (*ApplicationNewHealthReportEvent, bool) {
8289	return nil, false
8290}
8291
8292// AsApplicationHealthReportExpiredEvent is the BasicFabricEvent implementation for ChaosCodePackageRestartScheduledEvent.
8293func (ccprse ChaosCodePackageRestartScheduledEvent) AsApplicationHealthReportExpiredEvent() (*ApplicationHealthReportExpiredEvent, bool) {
8294	return nil, false
8295}
8296
8297// AsApplicationUpgradeCompletedEvent is the BasicFabricEvent implementation for ChaosCodePackageRestartScheduledEvent.
8298func (ccprse ChaosCodePackageRestartScheduledEvent) AsApplicationUpgradeCompletedEvent() (*ApplicationUpgradeCompletedEvent, bool) {
8299	return nil, false
8300}
8301
8302// AsApplicationUpgradeDomainCompletedEvent is the BasicFabricEvent implementation for ChaosCodePackageRestartScheduledEvent.
8303func (ccprse ChaosCodePackageRestartScheduledEvent) AsApplicationUpgradeDomainCompletedEvent() (*ApplicationUpgradeDomainCompletedEvent, bool) {
8304	return nil, false
8305}
8306
8307// AsApplicationUpgradeRollbackCompletedEvent is the BasicFabricEvent implementation for ChaosCodePackageRestartScheduledEvent.
8308func (ccprse ChaosCodePackageRestartScheduledEvent) AsApplicationUpgradeRollbackCompletedEvent() (*ApplicationUpgradeRollbackCompletedEvent, bool) {
8309	return nil, false
8310}
8311
8312// AsApplicationUpgradeRollbackStartedEvent is the BasicFabricEvent implementation for ChaosCodePackageRestartScheduledEvent.
8313func (ccprse ChaosCodePackageRestartScheduledEvent) AsApplicationUpgradeRollbackStartedEvent() (*ApplicationUpgradeRollbackStartedEvent, bool) {
8314	return nil, false
8315}
8316
8317// AsApplicationUpgradeStartedEvent is the BasicFabricEvent implementation for ChaosCodePackageRestartScheduledEvent.
8318func (ccprse ChaosCodePackageRestartScheduledEvent) AsApplicationUpgradeStartedEvent() (*ApplicationUpgradeStartedEvent, bool) {
8319	return nil, false
8320}
8321
8322// AsDeployedApplicationNewHealthReportEvent is the BasicFabricEvent implementation for ChaosCodePackageRestartScheduledEvent.
8323func (ccprse ChaosCodePackageRestartScheduledEvent) AsDeployedApplicationNewHealthReportEvent() (*DeployedApplicationNewHealthReportEvent, bool) {
8324	return nil, false
8325}
8326
8327// AsDeployedApplicationHealthReportExpiredEvent is the BasicFabricEvent implementation for ChaosCodePackageRestartScheduledEvent.
8328func (ccprse ChaosCodePackageRestartScheduledEvent) AsDeployedApplicationHealthReportExpiredEvent() (*DeployedApplicationHealthReportExpiredEvent, bool) {
8329	return nil, false
8330}
8331
8332// AsApplicationProcessExitedEvent is the BasicFabricEvent implementation for ChaosCodePackageRestartScheduledEvent.
8333func (ccprse ChaosCodePackageRestartScheduledEvent) AsApplicationProcessExitedEvent() (*ApplicationProcessExitedEvent, bool) {
8334	return nil, false
8335}
8336
8337// AsApplicationContainerInstanceExitedEvent is the BasicFabricEvent implementation for ChaosCodePackageRestartScheduledEvent.
8338func (ccprse ChaosCodePackageRestartScheduledEvent) AsApplicationContainerInstanceExitedEvent() (*ApplicationContainerInstanceExitedEvent, bool) {
8339	return nil, false
8340}
8341
8342// AsNodeAbortedEvent is the BasicFabricEvent implementation for ChaosCodePackageRestartScheduledEvent.
8343func (ccprse ChaosCodePackageRestartScheduledEvent) AsNodeAbortedEvent() (*NodeAbortedEvent, bool) {
8344	return nil, false
8345}
8346
8347// AsNodeAddedToClusterEvent is the BasicFabricEvent implementation for ChaosCodePackageRestartScheduledEvent.
8348func (ccprse ChaosCodePackageRestartScheduledEvent) AsNodeAddedToClusterEvent() (*NodeAddedToClusterEvent, bool) {
8349	return nil, false
8350}
8351
8352// AsNodeClosedEvent is the BasicFabricEvent implementation for ChaosCodePackageRestartScheduledEvent.
8353func (ccprse ChaosCodePackageRestartScheduledEvent) AsNodeClosedEvent() (*NodeClosedEvent, bool) {
8354	return nil, false
8355}
8356
8357// AsNodeDeactivateCompletedEvent is the BasicFabricEvent implementation for ChaosCodePackageRestartScheduledEvent.
8358func (ccprse ChaosCodePackageRestartScheduledEvent) AsNodeDeactivateCompletedEvent() (*NodeDeactivateCompletedEvent, bool) {
8359	return nil, false
8360}
8361
8362// AsNodeDeactivateStartedEvent is the BasicFabricEvent implementation for ChaosCodePackageRestartScheduledEvent.
8363func (ccprse ChaosCodePackageRestartScheduledEvent) AsNodeDeactivateStartedEvent() (*NodeDeactivateStartedEvent, bool) {
8364	return nil, false
8365}
8366
8367// AsNodeDownEvent is the BasicFabricEvent implementation for ChaosCodePackageRestartScheduledEvent.
8368func (ccprse ChaosCodePackageRestartScheduledEvent) AsNodeDownEvent() (*NodeDownEvent, bool) {
8369	return nil, false
8370}
8371
8372// AsNodeNewHealthReportEvent is the BasicFabricEvent implementation for ChaosCodePackageRestartScheduledEvent.
8373func (ccprse ChaosCodePackageRestartScheduledEvent) AsNodeNewHealthReportEvent() (*NodeNewHealthReportEvent, bool) {
8374	return nil, false
8375}
8376
8377// AsNodeHealthReportExpiredEvent is the BasicFabricEvent implementation for ChaosCodePackageRestartScheduledEvent.
8378func (ccprse ChaosCodePackageRestartScheduledEvent) AsNodeHealthReportExpiredEvent() (*NodeHealthReportExpiredEvent, bool) {
8379	return nil, false
8380}
8381
8382// AsNodeOpenSucceededEvent is the BasicFabricEvent implementation for ChaosCodePackageRestartScheduledEvent.
8383func (ccprse ChaosCodePackageRestartScheduledEvent) AsNodeOpenSucceededEvent() (*NodeOpenSucceededEvent, bool) {
8384	return nil, false
8385}
8386
8387// AsNodeOpenFailedEvent is the BasicFabricEvent implementation for ChaosCodePackageRestartScheduledEvent.
8388func (ccprse ChaosCodePackageRestartScheduledEvent) AsNodeOpenFailedEvent() (*NodeOpenFailedEvent, bool) {
8389	return nil, false
8390}
8391
8392// AsNodeRemovedFromClusterEvent is the BasicFabricEvent implementation for ChaosCodePackageRestartScheduledEvent.
8393func (ccprse ChaosCodePackageRestartScheduledEvent) AsNodeRemovedFromClusterEvent() (*NodeRemovedFromClusterEvent, bool) {
8394	return nil, false
8395}
8396
8397// AsNodeUpEvent is the BasicFabricEvent implementation for ChaosCodePackageRestartScheduledEvent.
8398func (ccprse ChaosCodePackageRestartScheduledEvent) AsNodeUpEvent() (*NodeUpEvent, bool) {
8399	return nil, false
8400}
8401
8402// AsPartitionNewHealthReportEvent is the BasicFabricEvent implementation for ChaosCodePackageRestartScheduledEvent.
8403func (ccprse ChaosCodePackageRestartScheduledEvent) AsPartitionNewHealthReportEvent() (*PartitionNewHealthReportEvent, bool) {
8404	return nil, false
8405}
8406
8407// AsPartitionHealthReportExpiredEvent is the BasicFabricEvent implementation for ChaosCodePackageRestartScheduledEvent.
8408func (ccprse ChaosCodePackageRestartScheduledEvent) AsPartitionHealthReportExpiredEvent() (*PartitionHealthReportExpiredEvent, bool) {
8409	return nil, false
8410}
8411
8412// AsPartitionReconfiguredEvent is the BasicFabricEvent implementation for ChaosCodePackageRestartScheduledEvent.
8413func (ccprse ChaosCodePackageRestartScheduledEvent) AsPartitionReconfiguredEvent() (*PartitionReconfiguredEvent, bool) {
8414	return nil, false
8415}
8416
8417// AsPartitionPrimaryMoveAnalysisEvent is the BasicFabricEvent implementation for ChaosCodePackageRestartScheduledEvent.
8418func (ccprse ChaosCodePackageRestartScheduledEvent) AsPartitionPrimaryMoveAnalysisEvent() (*PartitionPrimaryMoveAnalysisEvent, bool) {
8419	return nil, false
8420}
8421
8422// AsServiceCreatedEvent is the BasicFabricEvent implementation for ChaosCodePackageRestartScheduledEvent.
8423func (ccprse ChaosCodePackageRestartScheduledEvent) AsServiceCreatedEvent() (*ServiceCreatedEvent, bool) {
8424	return nil, false
8425}
8426
8427// AsServiceDeletedEvent is the BasicFabricEvent implementation for ChaosCodePackageRestartScheduledEvent.
8428func (ccprse ChaosCodePackageRestartScheduledEvent) AsServiceDeletedEvent() (*ServiceDeletedEvent, bool) {
8429	return nil, false
8430}
8431
8432// AsServiceNewHealthReportEvent is the BasicFabricEvent implementation for ChaosCodePackageRestartScheduledEvent.
8433func (ccprse ChaosCodePackageRestartScheduledEvent) AsServiceNewHealthReportEvent() (*ServiceNewHealthReportEvent, bool) {
8434	return nil, false
8435}
8436
8437// AsServiceHealthReportExpiredEvent is the BasicFabricEvent implementation for ChaosCodePackageRestartScheduledEvent.
8438func (ccprse ChaosCodePackageRestartScheduledEvent) AsServiceHealthReportExpiredEvent() (*ServiceHealthReportExpiredEvent, bool) {
8439	return nil, false
8440}
8441
8442// AsDeployedServicePackageNewHealthReportEvent is the BasicFabricEvent implementation for ChaosCodePackageRestartScheduledEvent.
8443func (ccprse ChaosCodePackageRestartScheduledEvent) AsDeployedServicePackageNewHealthReportEvent() (*DeployedServicePackageNewHealthReportEvent, bool) {
8444	return nil, false
8445}
8446
8447// AsDeployedServicePackageHealthReportExpiredEvent is the BasicFabricEvent implementation for ChaosCodePackageRestartScheduledEvent.
8448func (ccprse ChaosCodePackageRestartScheduledEvent) AsDeployedServicePackageHealthReportExpiredEvent() (*DeployedServicePackageHealthReportExpiredEvent, bool) {
8449	return nil, false
8450}
8451
8452// AsStatefulReplicaNewHealthReportEvent is the BasicFabricEvent implementation for ChaosCodePackageRestartScheduledEvent.
8453func (ccprse ChaosCodePackageRestartScheduledEvent) AsStatefulReplicaNewHealthReportEvent() (*StatefulReplicaNewHealthReportEvent, bool) {
8454	return nil, false
8455}
8456
8457// AsStatefulReplicaHealthReportExpiredEvent is the BasicFabricEvent implementation for ChaosCodePackageRestartScheduledEvent.
8458func (ccprse ChaosCodePackageRestartScheduledEvent) AsStatefulReplicaHealthReportExpiredEvent() (*StatefulReplicaHealthReportExpiredEvent, bool) {
8459	return nil, false
8460}
8461
8462// AsStatelessReplicaNewHealthReportEvent is the BasicFabricEvent implementation for ChaosCodePackageRestartScheduledEvent.
8463func (ccprse ChaosCodePackageRestartScheduledEvent) AsStatelessReplicaNewHealthReportEvent() (*StatelessReplicaNewHealthReportEvent, bool) {
8464	return nil, false
8465}
8466
8467// AsStatelessReplicaHealthReportExpiredEvent is the BasicFabricEvent implementation for ChaosCodePackageRestartScheduledEvent.
8468func (ccprse ChaosCodePackageRestartScheduledEvent) AsStatelessReplicaHealthReportExpiredEvent() (*StatelessReplicaHealthReportExpiredEvent, bool) {
8469	return nil, false
8470}
8471
8472// AsClusterNewHealthReportEvent is the BasicFabricEvent implementation for ChaosCodePackageRestartScheduledEvent.
8473func (ccprse ChaosCodePackageRestartScheduledEvent) AsClusterNewHealthReportEvent() (*ClusterNewHealthReportEvent, bool) {
8474	return nil, false
8475}
8476
8477// AsClusterHealthReportExpiredEvent is the BasicFabricEvent implementation for ChaosCodePackageRestartScheduledEvent.
8478func (ccprse ChaosCodePackageRestartScheduledEvent) AsClusterHealthReportExpiredEvent() (*ClusterHealthReportExpiredEvent, bool) {
8479	return nil, false
8480}
8481
8482// AsClusterUpgradeCompletedEvent is the BasicFabricEvent implementation for ChaosCodePackageRestartScheduledEvent.
8483func (ccprse ChaosCodePackageRestartScheduledEvent) AsClusterUpgradeCompletedEvent() (*ClusterUpgradeCompletedEvent, bool) {
8484	return nil, false
8485}
8486
8487// AsClusterUpgradeDomainCompletedEvent is the BasicFabricEvent implementation for ChaosCodePackageRestartScheduledEvent.
8488func (ccprse ChaosCodePackageRestartScheduledEvent) AsClusterUpgradeDomainCompletedEvent() (*ClusterUpgradeDomainCompletedEvent, bool) {
8489	return nil, false
8490}
8491
8492// AsClusterUpgradeRollbackCompletedEvent is the BasicFabricEvent implementation for ChaosCodePackageRestartScheduledEvent.
8493func (ccprse ChaosCodePackageRestartScheduledEvent) AsClusterUpgradeRollbackCompletedEvent() (*ClusterUpgradeRollbackCompletedEvent, bool) {
8494	return nil, false
8495}
8496
8497// AsClusterUpgradeRollbackStartedEvent is the BasicFabricEvent implementation for ChaosCodePackageRestartScheduledEvent.
8498func (ccprse ChaosCodePackageRestartScheduledEvent) AsClusterUpgradeRollbackStartedEvent() (*ClusterUpgradeRollbackStartedEvent, bool) {
8499	return nil, false
8500}
8501
8502// AsClusterUpgradeStartedEvent is the BasicFabricEvent implementation for ChaosCodePackageRestartScheduledEvent.
8503func (ccprse ChaosCodePackageRestartScheduledEvent) AsClusterUpgradeStartedEvent() (*ClusterUpgradeStartedEvent, bool) {
8504	return nil, false
8505}
8506
8507// AsChaosStoppedEvent is the BasicFabricEvent implementation for ChaosCodePackageRestartScheduledEvent.
8508func (ccprse ChaosCodePackageRestartScheduledEvent) AsChaosStoppedEvent() (*ChaosStoppedEvent, bool) {
8509	return nil, false
8510}
8511
8512// AsChaosStartedEvent is the BasicFabricEvent implementation for ChaosCodePackageRestartScheduledEvent.
8513func (ccprse ChaosCodePackageRestartScheduledEvent) AsChaosStartedEvent() (*ChaosStartedEvent, bool) {
8514	return nil, false
8515}
8516
8517// AsChaosCodePackageRestartScheduledEvent is the BasicFabricEvent implementation for ChaosCodePackageRestartScheduledEvent.
8518func (ccprse ChaosCodePackageRestartScheduledEvent) AsChaosCodePackageRestartScheduledEvent() (*ChaosCodePackageRestartScheduledEvent, bool) {
8519	return &ccprse, true
8520}
8521
8522// AsChaosReplicaRemovalScheduledEvent is the BasicFabricEvent implementation for ChaosCodePackageRestartScheduledEvent.
8523func (ccprse ChaosCodePackageRestartScheduledEvent) AsChaosReplicaRemovalScheduledEvent() (*ChaosReplicaRemovalScheduledEvent, bool) {
8524	return nil, false
8525}
8526
8527// AsChaosPartitionSecondaryMoveScheduledEvent is the BasicFabricEvent implementation for ChaosCodePackageRestartScheduledEvent.
8528func (ccprse ChaosCodePackageRestartScheduledEvent) AsChaosPartitionSecondaryMoveScheduledEvent() (*ChaosPartitionSecondaryMoveScheduledEvent, bool) {
8529	return nil, false
8530}
8531
8532// AsChaosPartitionPrimaryMoveScheduledEvent is the BasicFabricEvent implementation for ChaosCodePackageRestartScheduledEvent.
8533func (ccprse ChaosCodePackageRestartScheduledEvent) AsChaosPartitionPrimaryMoveScheduledEvent() (*ChaosPartitionPrimaryMoveScheduledEvent, bool) {
8534	return nil, false
8535}
8536
8537// AsChaosReplicaRestartScheduledEvent is the BasicFabricEvent implementation for ChaosCodePackageRestartScheduledEvent.
8538func (ccprse ChaosCodePackageRestartScheduledEvent) AsChaosReplicaRestartScheduledEvent() (*ChaosReplicaRestartScheduledEvent, bool) {
8539	return nil, false
8540}
8541
8542// AsChaosNodeRestartScheduledEvent is the BasicFabricEvent implementation for ChaosCodePackageRestartScheduledEvent.
8543func (ccprse ChaosCodePackageRestartScheduledEvent) AsChaosNodeRestartScheduledEvent() (*ChaosNodeRestartScheduledEvent, bool) {
8544	return nil, false
8545}
8546
8547// AsFabricEvent is the BasicFabricEvent implementation for ChaosCodePackageRestartScheduledEvent.
8548func (ccprse ChaosCodePackageRestartScheduledEvent) AsFabricEvent() (*FabricEvent, bool) {
8549	return nil, false
8550}
8551
8552// AsBasicFabricEvent is the BasicFabricEvent implementation for ChaosCodePackageRestartScheduledEvent.
8553func (ccprse ChaosCodePackageRestartScheduledEvent) AsBasicFabricEvent() (BasicFabricEvent, bool) {
8554	return &ccprse, true
8555}
8556
8557// ChaosContext describes a map, which is a collection of (string, string) type key-value pairs. The map
8558// can be used to record information about
8559// the Chaos run. There cannot be more than 100 such pairs and each string (key or value) can be at most
8560// 4095 characters long.
8561// This map is set by the starter of the Chaos run to optionally store the context about the specific run.
8562type ChaosContext struct {
8563	// Map - Describes a map that contains a collection of ChaosContextMapItem's.
8564	Map map[string]*string `json:"Map"`
8565}
8566
8567// MarshalJSON is the custom marshaler for ChaosContext.
8568func (cc ChaosContext) MarshalJSON() ([]byte, error) {
8569	objectMap := make(map[string]interface{})
8570	if cc.Map != nil {
8571		objectMap["Map"] = cc.Map
8572	}
8573	return json.Marshal(objectMap)
8574}
8575
8576// BasicChaosEvent represents an event generated during a Chaos run.
8577type BasicChaosEvent interface {
8578	AsExecutingFaultsChaosEvent() (*ExecutingFaultsChaosEvent, bool)
8579	AsStartedChaosEvent() (*StartedChaosEvent, bool)
8580	AsStoppedChaosEvent() (*StoppedChaosEvent, bool)
8581	AsTestErrorChaosEvent() (*TestErrorChaosEvent, bool)
8582	AsValidationFailedChaosEvent() (*ValidationFailedChaosEvent, bool)
8583	AsWaitingChaosEvent() (*WaitingChaosEvent, bool)
8584	AsChaosEvent() (*ChaosEvent, bool)
8585}
8586
8587// ChaosEvent represents an event generated during a Chaos run.
8588type ChaosEvent struct {
8589	// TimeStampUtc - The UTC timestamp when this Chaos event was generated.
8590	TimeStampUtc *date.Time `json:"TimeStampUtc,omitempty"`
8591	// Kind - Possible values include: 'KindChaosEvent', 'KindExecutingFaults', 'KindStarted', 'KindStopped', 'KindTestError', 'KindValidationFailed', 'KindWaiting'
8592	Kind KindBasicChaosEvent `json:"Kind,omitempty"`
8593}
8594
8595func unmarshalBasicChaosEvent(body []byte) (BasicChaosEvent, error) {
8596	var m map[string]interface{}
8597	err := json.Unmarshal(body, &m)
8598	if err != nil {
8599		return nil, err
8600	}
8601
8602	switch m["Kind"] {
8603	case string(KindExecutingFaults):
8604		var efce ExecutingFaultsChaosEvent
8605		err := json.Unmarshal(body, &efce)
8606		return efce, err
8607	case string(KindStarted):
8608		var sce StartedChaosEvent
8609		err := json.Unmarshal(body, &sce)
8610		return sce, err
8611	case string(KindStopped):
8612		var sce StoppedChaosEvent
8613		err := json.Unmarshal(body, &sce)
8614		return sce, err
8615	case string(KindTestError):
8616		var tece TestErrorChaosEvent
8617		err := json.Unmarshal(body, &tece)
8618		return tece, err
8619	case string(KindValidationFailed):
8620		var vfce ValidationFailedChaosEvent
8621		err := json.Unmarshal(body, &vfce)
8622		return vfce, err
8623	case string(KindWaiting):
8624		var wce WaitingChaosEvent
8625		err := json.Unmarshal(body, &wce)
8626		return wce, err
8627	default:
8628		var ce ChaosEvent
8629		err := json.Unmarshal(body, &ce)
8630		return ce, err
8631	}
8632}
8633func unmarshalBasicChaosEventArray(body []byte) ([]BasicChaosEvent, error) {
8634	var rawMessages []*json.RawMessage
8635	err := json.Unmarshal(body, &rawMessages)
8636	if err != nil {
8637		return nil, err
8638	}
8639
8640	ceArray := make([]BasicChaosEvent, len(rawMessages))
8641
8642	for index, rawMessage := range rawMessages {
8643		ce, err := unmarshalBasicChaosEvent(*rawMessage)
8644		if err != nil {
8645			return nil, err
8646		}
8647		ceArray[index] = ce
8648	}
8649	return ceArray, nil
8650}
8651
8652// MarshalJSON is the custom marshaler for ChaosEvent.
8653func (ce ChaosEvent) MarshalJSON() ([]byte, error) {
8654	ce.Kind = KindChaosEvent
8655	objectMap := make(map[string]interface{})
8656	if ce.TimeStampUtc != nil {
8657		objectMap["TimeStampUtc"] = ce.TimeStampUtc
8658	}
8659	if ce.Kind != "" {
8660		objectMap["Kind"] = ce.Kind
8661	}
8662	return json.Marshal(objectMap)
8663}
8664
8665// AsExecutingFaultsChaosEvent is the BasicChaosEvent implementation for ChaosEvent.
8666func (ce ChaosEvent) AsExecutingFaultsChaosEvent() (*ExecutingFaultsChaosEvent, bool) {
8667	return nil, false
8668}
8669
8670// AsStartedChaosEvent is the BasicChaosEvent implementation for ChaosEvent.
8671func (ce ChaosEvent) AsStartedChaosEvent() (*StartedChaosEvent, bool) {
8672	return nil, false
8673}
8674
8675// AsStoppedChaosEvent is the BasicChaosEvent implementation for ChaosEvent.
8676func (ce ChaosEvent) AsStoppedChaosEvent() (*StoppedChaosEvent, bool) {
8677	return nil, false
8678}
8679
8680// AsTestErrorChaosEvent is the BasicChaosEvent implementation for ChaosEvent.
8681func (ce ChaosEvent) AsTestErrorChaosEvent() (*TestErrorChaosEvent, bool) {
8682	return nil, false
8683}
8684
8685// AsValidationFailedChaosEvent is the BasicChaosEvent implementation for ChaosEvent.
8686func (ce ChaosEvent) AsValidationFailedChaosEvent() (*ValidationFailedChaosEvent, bool) {
8687	return nil, false
8688}
8689
8690// AsWaitingChaosEvent is the BasicChaosEvent implementation for ChaosEvent.
8691func (ce ChaosEvent) AsWaitingChaosEvent() (*WaitingChaosEvent, bool) {
8692	return nil, false
8693}
8694
8695// AsChaosEvent is the BasicChaosEvent implementation for ChaosEvent.
8696func (ce ChaosEvent) AsChaosEvent() (*ChaosEvent, bool) {
8697	return &ce, true
8698}
8699
8700// AsBasicChaosEvent is the BasicChaosEvent implementation for ChaosEvent.
8701func (ce ChaosEvent) AsBasicChaosEvent() (BasicChaosEvent, bool) {
8702	return &ce, true
8703}
8704
8705// ChaosEventsSegment contains the list of Chaos events and the continuation token to get the next segment.
8706type ChaosEventsSegment struct {
8707	autorest.Response `json:"-"`
8708	// 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.
8709	ContinuationToken *string `json:"ContinuationToken,omitempty"`
8710	// History - List of Chaos events that meet the user-supplied criteria.
8711	History *[]ChaosEventWrapper `json:"History,omitempty"`
8712}
8713
8714// ChaosEventWrapper wrapper object for Chaos event.
8715type ChaosEventWrapper struct {
8716	// ChaosEvent - Represents an event generated during a Chaos run.
8717	ChaosEvent BasicChaosEvent `json:"ChaosEvent,omitempty"`
8718}
8719
8720// UnmarshalJSON is the custom unmarshaler for ChaosEventWrapper struct.
8721func (cew *ChaosEventWrapper) UnmarshalJSON(body []byte) error {
8722	var m map[string]*json.RawMessage
8723	err := json.Unmarshal(body, &m)
8724	if err != nil {
8725		return err
8726	}
8727	for k, v := range m {
8728		switch k {
8729		case "ChaosEvent":
8730			if v != nil {
8731				chaosEvent, err := unmarshalBasicChaosEvent(*v)
8732				if err != nil {
8733					return err
8734				}
8735				cew.ChaosEvent = chaosEvent
8736			}
8737		}
8738	}
8739
8740	return nil
8741}
8742
8743// ChaosNodeRestartScheduledEvent chaos Restart Node Fault Scheduled event.
8744type ChaosNodeRestartScheduledEvent struct {
8745	// NodeInstanceID - Id of Node instance.
8746	NodeInstanceID *int64 `json:"NodeInstanceId,omitempty"`
8747	// FaultGroupID - Id of fault group.
8748	FaultGroupID *uuid.UUID `json:"FaultGroupId,omitempty"`
8749	// FaultID - Id of fault.
8750	FaultID *uuid.UUID `json:"FaultId,omitempty"`
8751	// NodeName - The name of a Service Fabric node.
8752	NodeName *string `json:"NodeName,omitempty"`
8753	// EventInstanceID - The identifier for the FabricEvent instance.
8754	EventInstanceID *uuid.UUID `json:"EventInstanceId,omitempty"`
8755	// Category - The category of event.
8756	Category *string `json:"Category,omitempty"`
8757	// TimeStamp - The time event was logged.
8758	TimeStamp *date.Time `json:"TimeStamp,omitempty"`
8759	// HasCorrelatedEvents - Shows there is existing related events available.
8760	HasCorrelatedEvents *bool `json:"HasCorrelatedEvents,omitempty"`
8761	// 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'
8762	Kind KindBasicFabricEvent `json:"Kind,omitempty"`
8763}
8764
8765// MarshalJSON is the custom marshaler for ChaosNodeRestartScheduledEvent.
8766func (cnrse ChaosNodeRestartScheduledEvent) MarshalJSON() ([]byte, error) {
8767	cnrse.Kind = KindChaosNodeRestartScheduled
8768	objectMap := make(map[string]interface{})
8769	if cnrse.NodeInstanceID != nil {
8770		objectMap["NodeInstanceId"] = cnrse.NodeInstanceID
8771	}
8772	if cnrse.FaultGroupID != nil {
8773		objectMap["FaultGroupId"] = cnrse.FaultGroupID
8774	}
8775	if cnrse.FaultID != nil {
8776		objectMap["FaultId"] = cnrse.FaultID
8777	}
8778	if cnrse.NodeName != nil {
8779		objectMap["NodeName"] = cnrse.NodeName
8780	}
8781	if cnrse.EventInstanceID != nil {
8782		objectMap["EventInstanceId"] = cnrse.EventInstanceID
8783	}
8784	if cnrse.Category != nil {
8785		objectMap["Category"] = cnrse.Category
8786	}
8787	if cnrse.TimeStamp != nil {
8788		objectMap["TimeStamp"] = cnrse.TimeStamp
8789	}
8790	if cnrse.HasCorrelatedEvents != nil {
8791		objectMap["HasCorrelatedEvents"] = cnrse.HasCorrelatedEvents
8792	}
8793	if cnrse.Kind != "" {
8794		objectMap["Kind"] = cnrse.Kind
8795	}
8796	return json.Marshal(objectMap)
8797}
8798
8799// AsApplicationEvent is the BasicFabricEvent implementation for ChaosNodeRestartScheduledEvent.
8800func (cnrse ChaosNodeRestartScheduledEvent) AsApplicationEvent() (*ApplicationEvent, bool) {
8801	return nil, false
8802}
8803
8804// AsBasicApplicationEvent is the BasicFabricEvent implementation for ChaosNodeRestartScheduledEvent.
8805func (cnrse ChaosNodeRestartScheduledEvent) AsBasicApplicationEvent() (BasicApplicationEvent, bool) {
8806	return nil, false
8807}
8808
8809// AsClusterEvent is the BasicFabricEvent implementation for ChaosNodeRestartScheduledEvent.
8810func (cnrse ChaosNodeRestartScheduledEvent) AsClusterEvent() (*ClusterEvent, bool) {
8811	return nil, false
8812}
8813
8814// AsBasicClusterEvent is the BasicFabricEvent implementation for ChaosNodeRestartScheduledEvent.
8815func (cnrse ChaosNodeRestartScheduledEvent) AsBasicClusterEvent() (BasicClusterEvent, bool) {
8816	return nil, false
8817}
8818
8819// AsContainerInstanceEvent is the BasicFabricEvent implementation for ChaosNodeRestartScheduledEvent.
8820func (cnrse ChaosNodeRestartScheduledEvent) AsContainerInstanceEvent() (*ContainerInstanceEvent, bool) {
8821	return nil, false
8822}
8823
8824// AsNodeEvent is the BasicFabricEvent implementation for ChaosNodeRestartScheduledEvent.
8825func (cnrse ChaosNodeRestartScheduledEvent) AsNodeEvent() (*NodeEvent, bool) {
8826	return nil, false
8827}
8828
8829// AsBasicNodeEvent is the BasicFabricEvent implementation for ChaosNodeRestartScheduledEvent.
8830func (cnrse ChaosNodeRestartScheduledEvent) AsBasicNodeEvent() (BasicNodeEvent, bool) {
8831	return &cnrse, true
8832}
8833
8834// AsPartitionAnalysisEvent is the BasicFabricEvent implementation for ChaosNodeRestartScheduledEvent.
8835func (cnrse ChaosNodeRestartScheduledEvent) AsPartitionAnalysisEvent() (*PartitionAnalysisEvent, bool) {
8836	return nil, false
8837}
8838
8839// AsBasicPartitionAnalysisEvent is the BasicFabricEvent implementation for ChaosNodeRestartScheduledEvent.
8840func (cnrse ChaosNodeRestartScheduledEvent) AsBasicPartitionAnalysisEvent() (BasicPartitionAnalysisEvent, bool) {
8841	return nil, false
8842}
8843
8844// AsPartitionEvent is the BasicFabricEvent implementation for ChaosNodeRestartScheduledEvent.
8845func (cnrse ChaosNodeRestartScheduledEvent) AsPartitionEvent() (*PartitionEvent, bool) {
8846	return nil, false
8847}
8848
8849// AsBasicPartitionEvent is the BasicFabricEvent implementation for ChaosNodeRestartScheduledEvent.
8850func (cnrse ChaosNodeRestartScheduledEvent) AsBasicPartitionEvent() (BasicPartitionEvent, bool) {
8851	return nil, false
8852}
8853
8854// AsReplicaEvent is the BasicFabricEvent implementation for ChaosNodeRestartScheduledEvent.
8855func (cnrse ChaosNodeRestartScheduledEvent) AsReplicaEvent() (*ReplicaEvent, bool) {
8856	return nil, false
8857}
8858
8859// AsBasicReplicaEvent is the BasicFabricEvent implementation for ChaosNodeRestartScheduledEvent.
8860func (cnrse ChaosNodeRestartScheduledEvent) AsBasicReplicaEvent() (BasicReplicaEvent, bool) {
8861	return nil, false
8862}
8863
8864// AsServiceEvent is the BasicFabricEvent implementation for ChaosNodeRestartScheduledEvent.
8865func (cnrse ChaosNodeRestartScheduledEvent) AsServiceEvent() (*ServiceEvent, bool) {
8866	return nil, false
8867}
8868
8869// AsBasicServiceEvent is the BasicFabricEvent implementation for ChaosNodeRestartScheduledEvent.
8870func (cnrse ChaosNodeRestartScheduledEvent) AsBasicServiceEvent() (BasicServiceEvent, bool) {
8871	return nil, false
8872}
8873
8874// AsApplicationCreatedEvent is the BasicFabricEvent implementation for ChaosNodeRestartScheduledEvent.
8875func (cnrse ChaosNodeRestartScheduledEvent) AsApplicationCreatedEvent() (*ApplicationCreatedEvent, bool) {
8876	return nil, false
8877}
8878
8879// AsApplicationDeletedEvent is the BasicFabricEvent implementation for ChaosNodeRestartScheduledEvent.
8880func (cnrse ChaosNodeRestartScheduledEvent) AsApplicationDeletedEvent() (*ApplicationDeletedEvent, bool) {
8881	return nil, false
8882}
8883
8884// AsApplicationNewHealthReportEvent is the BasicFabricEvent implementation for ChaosNodeRestartScheduledEvent.
8885func (cnrse ChaosNodeRestartScheduledEvent) AsApplicationNewHealthReportEvent() (*ApplicationNewHealthReportEvent, bool) {
8886	return nil, false
8887}
8888
8889// AsApplicationHealthReportExpiredEvent is the BasicFabricEvent implementation for ChaosNodeRestartScheduledEvent.
8890func (cnrse ChaosNodeRestartScheduledEvent) AsApplicationHealthReportExpiredEvent() (*ApplicationHealthReportExpiredEvent, bool) {
8891	return nil, false
8892}
8893
8894// AsApplicationUpgradeCompletedEvent is the BasicFabricEvent implementation for ChaosNodeRestartScheduledEvent.
8895func (cnrse ChaosNodeRestartScheduledEvent) AsApplicationUpgradeCompletedEvent() (*ApplicationUpgradeCompletedEvent, bool) {
8896	return nil, false
8897}
8898
8899// AsApplicationUpgradeDomainCompletedEvent is the BasicFabricEvent implementation for ChaosNodeRestartScheduledEvent.
8900func (cnrse ChaosNodeRestartScheduledEvent) AsApplicationUpgradeDomainCompletedEvent() (*ApplicationUpgradeDomainCompletedEvent, bool) {
8901	return nil, false
8902}
8903
8904// AsApplicationUpgradeRollbackCompletedEvent is the BasicFabricEvent implementation for ChaosNodeRestartScheduledEvent.
8905func (cnrse ChaosNodeRestartScheduledEvent) AsApplicationUpgradeRollbackCompletedEvent() (*ApplicationUpgradeRollbackCompletedEvent, bool) {
8906	return nil, false
8907}
8908
8909// AsApplicationUpgradeRollbackStartedEvent is the BasicFabricEvent implementation for ChaosNodeRestartScheduledEvent.
8910func (cnrse ChaosNodeRestartScheduledEvent) AsApplicationUpgradeRollbackStartedEvent() (*ApplicationUpgradeRollbackStartedEvent, bool) {
8911	return nil, false
8912}
8913
8914// AsApplicationUpgradeStartedEvent is the BasicFabricEvent implementation for ChaosNodeRestartScheduledEvent.
8915func (cnrse ChaosNodeRestartScheduledEvent) AsApplicationUpgradeStartedEvent() (*ApplicationUpgradeStartedEvent, bool) {
8916	return nil, false
8917}
8918
8919// AsDeployedApplicationNewHealthReportEvent is the BasicFabricEvent implementation for ChaosNodeRestartScheduledEvent.
8920func (cnrse ChaosNodeRestartScheduledEvent) AsDeployedApplicationNewHealthReportEvent() (*DeployedApplicationNewHealthReportEvent, bool) {
8921	return nil, false
8922}
8923
8924// AsDeployedApplicationHealthReportExpiredEvent is the BasicFabricEvent implementation for ChaosNodeRestartScheduledEvent.
8925func (cnrse ChaosNodeRestartScheduledEvent) AsDeployedApplicationHealthReportExpiredEvent() (*DeployedApplicationHealthReportExpiredEvent, bool) {
8926	return nil, false
8927}
8928
8929// AsApplicationProcessExitedEvent is the BasicFabricEvent implementation for ChaosNodeRestartScheduledEvent.
8930func (cnrse ChaosNodeRestartScheduledEvent) AsApplicationProcessExitedEvent() (*ApplicationProcessExitedEvent, bool) {
8931	return nil, false
8932}
8933
8934// AsApplicationContainerInstanceExitedEvent is the BasicFabricEvent implementation for ChaosNodeRestartScheduledEvent.
8935func (cnrse ChaosNodeRestartScheduledEvent) AsApplicationContainerInstanceExitedEvent() (*ApplicationContainerInstanceExitedEvent, bool) {
8936	return nil, false
8937}
8938
8939// AsNodeAbortedEvent is the BasicFabricEvent implementation for ChaosNodeRestartScheduledEvent.
8940func (cnrse ChaosNodeRestartScheduledEvent) AsNodeAbortedEvent() (*NodeAbortedEvent, bool) {
8941	return nil, false
8942}
8943
8944// AsNodeAddedToClusterEvent is the BasicFabricEvent implementation for ChaosNodeRestartScheduledEvent.
8945func (cnrse ChaosNodeRestartScheduledEvent) AsNodeAddedToClusterEvent() (*NodeAddedToClusterEvent, bool) {
8946	return nil, false
8947}
8948
8949// AsNodeClosedEvent is the BasicFabricEvent implementation for ChaosNodeRestartScheduledEvent.
8950func (cnrse ChaosNodeRestartScheduledEvent) AsNodeClosedEvent() (*NodeClosedEvent, bool) {
8951	return nil, false
8952}
8953
8954// AsNodeDeactivateCompletedEvent is the BasicFabricEvent implementation for ChaosNodeRestartScheduledEvent.
8955func (cnrse ChaosNodeRestartScheduledEvent) AsNodeDeactivateCompletedEvent() (*NodeDeactivateCompletedEvent, bool) {
8956	return nil, false
8957}
8958
8959// AsNodeDeactivateStartedEvent is the BasicFabricEvent implementation for ChaosNodeRestartScheduledEvent.
8960func (cnrse ChaosNodeRestartScheduledEvent) AsNodeDeactivateStartedEvent() (*NodeDeactivateStartedEvent, bool) {
8961	return nil, false
8962}
8963
8964// AsNodeDownEvent is the BasicFabricEvent implementation for ChaosNodeRestartScheduledEvent.
8965func (cnrse ChaosNodeRestartScheduledEvent) AsNodeDownEvent() (*NodeDownEvent, bool) {
8966	return nil, false
8967}
8968
8969// AsNodeNewHealthReportEvent is the BasicFabricEvent implementation for ChaosNodeRestartScheduledEvent.
8970func (cnrse ChaosNodeRestartScheduledEvent) AsNodeNewHealthReportEvent() (*NodeNewHealthReportEvent, bool) {
8971	return nil, false
8972}
8973
8974// AsNodeHealthReportExpiredEvent is the BasicFabricEvent implementation for ChaosNodeRestartScheduledEvent.
8975func (cnrse ChaosNodeRestartScheduledEvent) AsNodeHealthReportExpiredEvent() (*NodeHealthReportExpiredEvent, bool) {
8976	return nil, false
8977}
8978
8979// AsNodeOpenSucceededEvent is the BasicFabricEvent implementation for ChaosNodeRestartScheduledEvent.
8980func (cnrse ChaosNodeRestartScheduledEvent) AsNodeOpenSucceededEvent() (*NodeOpenSucceededEvent, bool) {
8981	return nil, false
8982}
8983
8984// AsNodeOpenFailedEvent is the BasicFabricEvent implementation for ChaosNodeRestartScheduledEvent.
8985func (cnrse ChaosNodeRestartScheduledEvent) AsNodeOpenFailedEvent() (*NodeOpenFailedEvent, bool) {
8986	return nil, false
8987}
8988
8989// AsNodeRemovedFromClusterEvent is the BasicFabricEvent implementation for ChaosNodeRestartScheduledEvent.
8990func (cnrse ChaosNodeRestartScheduledEvent) AsNodeRemovedFromClusterEvent() (*NodeRemovedFromClusterEvent, bool) {
8991	return nil, false
8992}
8993
8994// AsNodeUpEvent is the BasicFabricEvent implementation for ChaosNodeRestartScheduledEvent.
8995func (cnrse ChaosNodeRestartScheduledEvent) AsNodeUpEvent() (*NodeUpEvent, bool) {
8996	return nil, false
8997}
8998
8999// AsPartitionNewHealthReportEvent is the BasicFabricEvent implementation for ChaosNodeRestartScheduledEvent.
9000func (cnrse ChaosNodeRestartScheduledEvent) AsPartitionNewHealthReportEvent() (*PartitionNewHealthReportEvent, bool) {
9001	return nil, false
9002}
9003
9004// AsPartitionHealthReportExpiredEvent is the BasicFabricEvent implementation for ChaosNodeRestartScheduledEvent.
9005func (cnrse ChaosNodeRestartScheduledEvent) AsPartitionHealthReportExpiredEvent() (*PartitionHealthReportExpiredEvent, bool) {
9006	return nil, false
9007}
9008
9009// AsPartitionReconfiguredEvent is the BasicFabricEvent implementation for ChaosNodeRestartScheduledEvent.
9010func (cnrse ChaosNodeRestartScheduledEvent) AsPartitionReconfiguredEvent() (*PartitionReconfiguredEvent, bool) {
9011	return nil, false
9012}
9013
9014// AsPartitionPrimaryMoveAnalysisEvent is the BasicFabricEvent implementation for ChaosNodeRestartScheduledEvent.
9015func (cnrse ChaosNodeRestartScheduledEvent) AsPartitionPrimaryMoveAnalysisEvent() (*PartitionPrimaryMoveAnalysisEvent, bool) {
9016	return nil, false
9017}
9018
9019// AsServiceCreatedEvent is the BasicFabricEvent implementation for ChaosNodeRestartScheduledEvent.
9020func (cnrse ChaosNodeRestartScheduledEvent) AsServiceCreatedEvent() (*ServiceCreatedEvent, bool) {
9021	return nil, false
9022}
9023
9024// AsServiceDeletedEvent is the BasicFabricEvent implementation for ChaosNodeRestartScheduledEvent.
9025func (cnrse ChaosNodeRestartScheduledEvent) AsServiceDeletedEvent() (*ServiceDeletedEvent, bool) {
9026	return nil, false
9027}
9028
9029// AsServiceNewHealthReportEvent is the BasicFabricEvent implementation for ChaosNodeRestartScheduledEvent.
9030func (cnrse ChaosNodeRestartScheduledEvent) AsServiceNewHealthReportEvent() (*ServiceNewHealthReportEvent, bool) {
9031	return nil, false
9032}
9033
9034// AsServiceHealthReportExpiredEvent is the BasicFabricEvent implementation for ChaosNodeRestartScheduledEvent.
9035func (cnrse ChaosNodeRestartScheduledEvent) AsServiceHealthReportExpiredEvent() (*ServiceHealthReportExpiredEvent, bool) {
9036	return nil, false
9037}
9038
9039// AsDeployedServicePackageNewHealthReportEvent is the BasicFabricEvent implementation for ChaosNodeRestartScheduledEvent.
9040func (cnrse ChaosNodeRestartScheduledEvent) AsDeployedServicePackageNewHealthReportEvent() (*DeployedServicePackageNewHealthReportEvent, bool) {
9041	return nil, false
9042}
9043
9044// AsDeployedServicePackageHealthReportExpiredEvent is the BasicFabricEvent implementation for ChaosNodeRestartScheduledEvent.
9045func (cnrse ChaosNodeRestartScheduledEvent) AsDeployedServicePackageHealthReportExpiredEvent() (*DeployedServicePackageHealthReportExpiredEvent, bool) {
9046	return nil, false
9047}
9048
9049// AsStatefulReplicaNewHealthReportEvent is the BasicFabricEvent implementation for ChaosNodeRestartScheduledEvent.
9050func (cnrse ChaosNodeRestartScheduledEvent) AsStatefulReplicaNewHealthReportEvent() (*StatefulReplicaNewHealthReportEvent, bool) {
9051	return nil, false
9052}
9053
9054// AsStatefulReplicaHealthReportExpiredEvent is the BasicFabricEvent implementation for ChaosNodeRestartScheduledEvent.
9055func (cnrse ChaosNodeRestartScheduledEvent) AsStatefulReplicaHealthReportExpiredEvent() (*StatefulReplicaHealthReportExpiredEvent, bool) {
9056	return nil, false
9057}
9058
9059// AsStatelessReplicaNewHealthReportEvent is the BasicFabricEvent implementation for ChaosNodeRestartScheduledEvent.
9060func (cnrse ChaosNodeRestartScheduledEvent) AsStatelessReplicaNewHealthReportEvent() (*StatelessReplicaNewHealthReportEvent, bool) {
9061	return nil, false
9062}
9063
9064// AsStatelessReplicaHealthReportExpiredEvent is the BasicFabricEvent implementation for ChaosNodeRestartScheduledEvent.
9065func (cnrse ChaosNodeRestartScheduledEvent) AsStatelessReplicaHealthReportExpiredEvent() (*StatelessReplicaHealthReportExpiredEvent, bool) {
9066	return nil, false
9067}
9068
9069// AsClusterNewHealthReportEvent is the BasicFabricEvent implementation for ChaosNodeRestartScheduledEvent.
9070func (cnrse ChaosNodeRestartScheduledEvent) AsClusterNewHealthReportEvent() (*ClusterNewHealthReportEvent, bool) {
9071	return nil, false
9072}
9073
9074// AsClusterHealthReportExpiredEvent is the BasicFabricEvent implementation for ChaosNodeRestartScheduledEvent.
9075func (cnrse ChaosNodeRestartScheduledEvent) AsClusterHealthReportExpiredEvent() (*ClusterHealthReportExpiredEvent, bool) {
9076	return nil, false
9077}
9078
9079// AsClusterUpgradeCompletedEvent is the BasicFabricEvent implementation for ChaosNodeRestartScheduledEvent.
9080func (cnrse ChaosNodeRestartScheduledEvent) AsClusterUpgradeCompletedEvent() (*ClusterUpgradeCompletedEvent, bool) {
9081	return nil, false
9082}
9083
9084// AsClusterUpgradeDomainCompletedEvent is the BasicFabricEvent implementation for ChaosNodeRestartScheduledEvent.
9085func (cnrse ChaosNodeRestartScheduledEvent) AsClusterUpgradeDomainCompletedEvent() (*ClusterUpgradeDomainCompletedEvent, bool) {
9086	return nil, false
9087}
9088
9089// AsClusterUpgradeRollbackCompletedEvent is the BasicFabricEvent implementation for ChaosNodeRestartScheduledEvent.
9090func (cnrse ChaosNodeRestartScheduledEvent) AsClusterUpgradeRollbackCompletedEvent() (*ClusterUpgradeRollbackCompletedEvent, bool) {
9091	return nil, false
9092}
9093
9094// AsClusterUpgradeRollbackStartedEvent is the BasicFabricEvent implementation for ChaosNodeRestartScheduledEvent.
9095func (cnrse ChaosNodeRestartScheduledEvent) AsClusterUpgradeRollbackStartedEvent() (*ClusterUpgradeRollbackStartedEvent, bool) {
9096	return nil, false
9097}
9098
9099// AsClusterUpgradeStartedEvent is the BasicFabricEvent implementation for ChaosNodeRestartScheduledEvent.
9100func (cnrse ChaosNodeRestartScheduledEvent) AsClusterUpgradeStartedEvent() (*ClusterUpgradeStartedEvent, bool) {
9101	return nil, false
9102}
9103
9104// AsChaosStoppedEvent is the BasicFabricEvent implementation for ChaosNodeRestartScheduledEvent.
9105func (cnrse ChaosNodeRestartScheduledEvent) AsChaosStoppedEvent() (*ChaosStoppedEvent, bool) {
9106	return nil, false
9107}
9108
9109// AsChaosStartedEvent is the BasicFabricEvent implementation for ChaosNodeRestartScheduledEvent.
9110func (cnrse ChaosNodeRestartScheduledEvent) AsChaosStartedEvent() (*ChaosStartedEvent, bool) {
9111	return nil, false
9112}
9113
9114// AsChaosCodePackageRestartScheduledEvent is the BasicFabricEvent implementation for ChaosNodeRestartScheduledEvent.
9115func (cnrse ChaosNodeRestartScheduledEvent) AsChaosCodePackageRestartScheduledEvent() (*ChaosCodePackageRestartScheduledEvent, bool) {
9116	return nil, false
9117}
9118
9119// AsChaosReplicaRemovalScheduledEvent is the BasicFabricEvent implementation for ChaosNodeRestartScheduledEvent.
9120func (cnrse ChaosNodeRestartScheduledEvent) AsChaosReplicaRemovalScheduledEvent() (*ChaosReplicaRemovalScheduledEvent, bool) {
9121	return nil, false
9122}
9123
9124// AsChaosPartitionSecondaryMoveScheduledEvent is the BasicFabricEvent implementation for ChaosNodeRestartScheduledEvent.
9125func (cnrse ChaosNodeRestartScheduledEvent) AsChaosPartitionSecondaryMoveScheduledEvent() (*ChaosPartitionSecondaryMoveScheduledEvent, bool) {
9126	return nil, false
9127}
9128
9129// AsChaosPartitionPrimaryMoveScheduledEvent is the BasicFabricEvent implementation for ChaosNodeRestartScheduledEvent.
9130func (cnrse ChaosNodeRestartScheduledEvent) AsChaosPartitionPrimaryMoveScheduledEvent() (*ChaosPartitionPrimaryMoveScheduledEvent, bool) {
9131	return nil, false
9132}
9133
9134// AsChaosReplicaRestartScheduledEvent is the BasicFabricEvent implementation for ChaosNodeRestartScheduledEvent.
9135func (cnrse ChaosNodeRestartScheduledEvent) AsChaosReplicaRestartScheduledEvent() (*ChaosReplicaRestartScheduledEvent, bool) {
9136	return nil, false
9137}
9138
9139// AsChaosNodeRestartScheduledEvent is the BasicFabricEvent implementation for ChaosNodeRestartScheduledEvent.
9140func (cnrse ChaosNodeRestartScheduledEvent) AsChaosNodeRestartScheduledEvent() (*ChaosNodeRestartScheduledEvent, bool) {
9141	return &cnrse, true
9142}
9143
9144// AsFabricEvent is the BasicFabricEvent implementation for ChaosNodeRestartScheduledEvent.
9145func (cnrse ChaosNodeRestartScheduledEvent) AsFabricEvent() (*FabricEvent, bool) {
9146	return nil, false
9147}
9148
9149// AsBasicFabricEvent is the BasicFabricEvent implementation for ChaosNodeRestartScheduledEvent.
9150func (cnrse ChaosNodeRestartScheduledEvent) AsBasicFabricEvent() (BasicFabricEvent, bool) {
9151	return &cnrse, true
9152}
9153
9154// ChaosParameters defines all the parameters to configure a Chaos run.
9155type ChaosParameters struct {
9156	// 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).
9157	TimeToRunInSeconds *string `json:"TimeToRunInSeconds,omitempty"`
9158	// 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.
9159	// During validation if a cluster entity is not stable and healthy within MaxClusterStabilizationTimeoutInSeconds, Chaos generates a validation failed event.
9160	MaxClusterStabilizationTimeoutInSeconds *int64 `json:"MaxClusterStabilizationTimeoutInSeconds,omitempty"`
9161	// MaxConcurrentFaults - MaxConcurrentFaults is the maximum number of concurrent faults induced per iteration.
9162	// Chaos executes in iterations and two consecutive iterations are separated by a validation phase.
9163	// The higher the concurrency, the more aggressive the injection of faults, leading to inducing more complex series of states to uncover bugs.
9164	// The recommendation is to start with a value of 2 or 3 and to exercise caution while moving up.
9165	MaxConcurrentFaults *int64 `json:"MaxConcurrentFaults,omitempty"`
9166	// EnableMoveReplicaFaults - Enables or disables the move primary and move secondary faults.
9167	EnableMoveReplicaFaults *bool `json:"EnableMoveReplicaFaults,omitempty"`
9168	// WaitTimeBetweenFaultsInSeconds - Wait time (in seconds) between consecutive faults within a single iteration.
9169	// The larger the value, the lower the overlapping between faults and the simpler the sequence of state transitions that the cluster goes through.
9170	// The recommendation is to start with a value between 1 and 5 and exercise caution while moving up.
9171	WaitTimeBetweenFaultsInSeconds *int64 `json:"WaitTimeBetweenFaultsInSeconds,omitempty"`
9172	// WaitTimeBetweenIterationsInSeconds - Time-separation (in seconds) between two consecutive iterations of Chaos.
9173	// The larger the value, the lower the fault injection rate.
9174	WaitTimeBetweenIterationsInSeconds *int64 `json:"WaitTimeBetweenIterationsInSeconds,omitempty"`
9175	// 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.
9176	ClusterHealthPolicy *ClusterHealthPolicy `json:"ClusterHealthPolicy,omitempty"`
9177	// Context - Describes a map, which is a collection of (string, string) type key-value pairs. The map can be used to record information about
9178	// the Chaos run. There cannot be more than 100 such pairs and each string (key or value) can be at most 4095 characters long.
9179	// This map is set by the starter of the Chaos run to optionally store the context about the specific run.
9180	Context *ChaosContext `json:"Context,omitempty"`
9181	// ChaosTargetFilter - List of cluster entities to target for Chaos faults.
9182	// 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.
9183	// If ChaosTargetFilter is used, Chaos faults only the entities that meet the ChaosTargetFilter specification.
9184	ChaosTargetFilter *ChaosTargetFilter `json:"ChaosTargetFilter,omitempty"`
9185}
9186
9187// ChaosParametersDictionaryItem defines an item in ChaosParametersDictionary of the Chaos Schedule.
9188type ChaosParametersDictionaryItem struct {
9189	// Key - The key identifying the Chaos Parameter in the dictionary. This key is referenced by Chaos Schedule Jobs.
9190	Key *string `json:"Key,omitempty"`
9191	// Value - Defines all the parameters to configure a Chaos run.
9192	Value *ChaosParameters `json:"Value,omitempty"`
9193}
9194
9195// ChaosPartitionPrimaryMoveScheduledEvent chaos Move Primary Fault Scheduled event.
9196type ChaosPartitionPrimaryMoveScheduledEvent struct {
9197	// FaultGroupID - Id of fault group.
9198	FaultGroupID *uuid.UUID `json:"FaultGroupId,omitempty"`
9199	// FaultID - Id of fault.
9200	FaultID *uuid.UUID `json:"FaultId,omitempty"`
9201	// ServiceName - Service name.
9202	ServiceName *string `json:"ServiceName,omitempty"`
9203	// NodeTo - The name of a Service Fabric node.
9204	NodeTo *string `json:"NodeTo,omitempty"`
9205	// ForcedMove - Indicates a forced move.
9206	ForcedMove *bool `json:"ForcedMove,omitempty"`
9207	// 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.
9208	PartitionID *uuid.UUID `json:"PartitionId,omitempty"`
9209	// EventInstanceID - The identifier for the FabricEvent instance.
9210	EventInstanceID *uuid.UUID `json:"EventInstanceId,omitempty"`
9211	// Category - The category of event.
9212	Category *string `json:"Category,omitempty"`
9213	// TimeStamp - The time event was logged.
9214	TimeStamp *date.Time `json:"TimeStamp,omitempty"`
9215	// HasCorrelatedEvents - Shows there is existing related events available.
9216	HasCorrelatedEvents *bool `json:"HasCorrelatedEvents,omitempty"`
9217	// 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'
9218	Kind KindBasicFabricEvent `json:"Kind,omitempty"`
9219}
9220
9221// MarshalJSON is the custom marshaler for ChaosPartitionPrimaryMoveScheduledEvent.
9222func (cppmse ChaosPartitionPrimaryMoveScheduledEvent) MarshalJSON() ([]byte, error) {
9223	cppmse.Kind = KindChaosPartitionPrimaryMoveScheduled
9224	objectMap := make(map[string]interface{})
9225	if cppmse.FaultGroupID != nil {
9226		objectMap["FaultGroupId"] = cppmse.FaultGroupID
9227	}
9228	if cppmse.FaultID != nil {
9229		objectMap["FaultId"] = cppmse.FaultID
9230	}
9231	if cppmse.ServiceName != nil {
9232		objectMap["ServiceName"] = cppmse.ServiceName
9233	}
9234	if cppmse.NodeTo != nil {
9235		objectMap["NodeTo"] = cppmse.NodeTo
9236	}
9237	if cppmse.ForcedMove != nil {
9238		objectMap["ForcedMove"] = cppmse.ForcedMove
9239	}
9240	if cppmse.PartitionID != nil {
9241		objectMap["PartitionId"] = cppmse.PartitionID
9242	}
9243	if cppmse.EventInstanceID != nil {
9244		objectMap["EventInstanceId"] = cppmse.EventInstanceID
9245	}
9246	if cppmse.Category != nil {
9247		objectMap["Category"] = cppmse.Category
9248	}
9249	if cppmse.TimeStamp != nil {
9250		objectMap["TimeStamp"] = cppmse.TimeStamp
9251	}
9252	if cppmse.HasCorrelatedEvents != nil {
9253		objectMap["HasCorrelatedEvents"] = cppmse.HasCorrelatedEvents
9254	}
9255	if cppmse.Kind != "" {
9256		objectMap["Kind"] = cppmse.Kind
9257	}
9258	return json.Marshal(objectMap)
9259}
9260
9261// AsApplicationEvent is the BasicFabricEvent implementation for ChaosPartitionPrimaryMoveScheduledEvent.
9262func (cppmse ChaosPartitionPrimaryMoveScheduledEvent) AsApplicationEvent() (*ApplicationEvent, bool) {
9263	return nil, false
9264}
9265
9266// AsBasicApplicationEvent is the BasicFabricEvent implementation for ChaosPartitionPrimaryMoveScheduledEvent.
9267func (cppmse ChaosPartitionPrimaryMoveScheduledEvent) AsBasicApplicationEvent() (BasicApplicationEvent, bool) {
9268	return nil, false
9269}
9270
9271// AsClusterEvent is the BasicFabricEvent implementation for ChaosPartitionPrimaryMoveScheduledEvent.
9272func (cppmse ChaosPartitionPrimaryMoveScheduledEvent) AsClusterEvent() (*ClusterEvent, bool) {
9273	return nil, false
9274}
9275
9276// AsBasicClusterEvent is the BasicFabricEvent implementation for ChaosPartitionPrimaryMoveScheduledEvent.
9277func (cppmse ChaosPartitionPrimaryMoveScheduledEvent) AsBasicClusterEvent() (BasicClusterEvent, bool) {
9278	return nil, false
9279}
9280
9281// AsContainerInstanceEvent is the BasicFabricEvent implementation for ChaosPartitionPrimaryMoveScheduledEvent.
9282func (cppmse ChaosPartitionPrimaryMoveScheduledEvent) AsContainerInstanceEvent() (*ContainerInstanceEvent, bool) {
9283	return nil, false
9284}
9285
9286// AsNodeEvent is the BasicFabricEvent implementation for ChaosPartitionPrimaryMoveScheduledEvent.
9287func (cppmse ChaosPartitionPrimaryMoveScheduledEvent) AsNodeEvent() (*NodeEvent, bool) {
9288	return nil, false
9289}
9290
9291// AsBasicNodeEvent is the BasicFabricEvent implementation for ChaosPartitionPrimaryMoveScheduledEvent.
9292func (cppmse ChaosPartitionPrimaryMoveScheduledEvent) AsBasicNodeEvent() (BasicNodeEvent, bool) {
9293	return nil, false
9294}
9295
9296// AsPartitionAnalysisEvent is the BasicFabricEvent implementation for ChaosPartitionPrimaryMoveScheduledEvent.
9297func (cppmse ChaosPartitionPrimaryMoveScheduledEvent) AsPartitionAnalysisEvent() (*PartitionAnalysisEvent, bool) {
9298	return nil, false
9299}
9300
9301// AsBasicPartitionAnalysisEvent is the BasicFabricEvent implementation for ChaosPartitionPrimaryMoveScheduledEvent.
9302func (cppmse ChaosPartitionPrimaryMoveScheduledEvent) AsBasicPartitionAnalysisEvent() (BasicPartitionAnalysisEvent, bool) {
9303	return nil, false
9304}
9305
9306// AsPartitionEvent is the BasicFabricEvent implementation for ChaosPartitionPrimaryMoveScheduledEvent.
9307func (cppmse ChaosPartitionPrimaryMoveScheduledEvent) AsPartitionEvent() (*PartitionEvent, bool) {
9308	return nil, false
9309}
9310
9311// AsBasicPartitionEvent is the BasicFabricEvent implementation for ChaosPartitionPrimaryMoveScheduledEvent.
9312func (cppmse ChaosPartitionPrimaryMoveScheduledEvent) AsBasicPartitionEvent() (BasicPartitionEvent, bool) {
9313	return &cppmse, true
9314}
9315
9316// AsReplicaEvent is the BasicFabricEvent implementation for ChaosPartitionPrimaryMoveScheduledEvent.
9317func (cppmse ChaosPartitionPrimaryMoveScheduledEvent) AsReplicaEvent() (*ReplicaEvent, bool) {
9318	return nil, false
9319}
9320
9321// AsBasicReplicaEvent is the BasicFabricEvent implementation for ChaosPartitionPrimaryMoveScheduledEvent.
9322func (cppmse ChaosPartitionPrimaryMoveScheduledEvent) AsBasicReplicaEvent() (BasicReplicaEvent, bool) {
9323	return nil, false
9324}
9325
9326// AsServiceEvent is the BasicFabricEvent implementation for ChaosPartitionPrimaryMoveScheduledEvent.
9327func (cppmse ChaosPartitionPrimaryMoveScheduledEvent) AsServiceEvent() (*ServiceEvent, bool) {
9328	return nil, false
9329}
9330
9331// AsBasicServiceEvent is the BasicFabricEvent implementation for ChaosPartitionPrimaryMoveScheduledEvent.
9332func (cppmse ChaosPartitionPrimaryMoveScheduledEvent) AsBasicServiceEvent() (BasicServiceEvent, bool) {
9333	return nil, false
9334}
9335
9336// AsApplicationCreatedEvent is the BasicFabricEvent implementation for ChaosPartitionPrimaryMoveScheduledEvent.
9337func (cppmse ChaosPartitionPrimaryMoveScheduledEvent) AsApplicationCreatedEvent() (*ApplicationCreatedEvent, bool) {
9338	return nil, false
9339}
9340
9341// AsApplicationDeletedEvent is the BasicFabricEvent implementation for ChaosPartitionPrimaryMoveScheduledEvent.
9342func (cppmse ChaosPartitionPrimaryMoveScheduledEvent) AsApplicationDeletedEvent() (*ApplicationDeletedEvent, bool) {
9343	return nil, false
9344}
9345
9346// AsApplicationNewHealthReportEvent is the BasicFabricEvent implementation for ChaosPartitionPrimaryMoveScheduledEvent.
9347func (cppmse ChaosPartitionPrimaryMoveScheduledEvent) AsApplicationNewHealthReportEvent() (*ApplicationNewHealthReportEvent, bool) {
9348	return nil, false
9349}
9350
9351// AsApplicationHealthReportExpiredEvent is the BasicFabricEvent implementation for ChaosPartitionPrimaryMoveScheduledEvent.
9352func (cppmse ChaosPartitionPrimaryMoveScheduledEvent) AsApplicationHealthReportExpiredEvent() (*ApplicationHealthReportExpiredEvent, bool) {
9353	return nil, false
9354}
9355
9356// AsApplicationUpgradeCompletedEvent is the BasicFabricEvent implementation for ChaosPartitionPrimaryMoveScheduledEvent.
9357func (cppmse ChaosPartitionPrimaryMoveScheduledEvent) AsApplicationUpgradeCompletedEvent() (*ApplicationUpgradeCompletedEvent, bool) {
9358	return nil, false
9359}
9360
9361// AsApplicationUpgradeDomainCompletedEvent is the BasicFabricEvent implementation for ChaosPartitionPrimaryMoveScheduledEvent.
9362func (cppmse ChaosPartitionPrimaryMoveScheduledEvent) AsApplicationUpgradeDomainCompletedEvent() (*ApplicationUpgradeDomainCompletedEvent, bool) {
9363	return nil, false
9364}
9365
9366// AsApplicationUpgradeRollbackCompletedEvent is the BasicFabricEvent implementation for ChaosPartitionPrimaryMoveScheduledEvent.
9367func (cppmse ChaosPartitionPrimaryMoveScheduledEvent) AsApplicationUpgradeRollbackCompletedEvent() (*ApplicationUpgradeRollbackCompletedEvent, bool) {
9368	return nil, false
9369}
9370
9371// AsApplicationUpgradeRollbackStartedEvent is the BasicFabricEvent implementation for ChaosPartitionPrimaryMoveScheduledEvent.
9372func (cppmse ChaosPartitionPrimaryMoveScheduledEvent) AsApplicationUpgradeRollbackStartedEvent() (*ApplicationUpgradeRollbackStartedEvent, bool) {
9373	return nil, false
9374}
9375
9376// AsApplicationUpgradeStartedEvent is the BasicFabricEvent implementation for ChaosPartitionPrimaryMoveScheduledEvent.
9377func (cppmse ChaosPartitionPrimaryMoveScheduledEvent) AsApplicationUpgradeStartedEvent() (*ApplicationUpgradeStartedEvent, bool) {
9378	return nil, false
9379}
9380
9381// AsDeployedApplicationNewHealthReportEvent is the BasicFabricEvent implementation for ChaosPartitionPrimaryMoveScheduledEvent.
9382func (cppmse ChaosPartitionPrimaryMoveScheduledEvent) AsDeployedApplicationNewHealthReportEvent() (*DeployedApplicationNewHealthReportEvent, bool) {
9383	return nil, false
9384}
9385
9386// AsDeployedApplicationHealthReportExpiredEvent is the BasicFabricEvent implementation for ChaosPartitionPrimaryMoveScheduledEvent.
9387func (cppmse ChaosPartitionPrimaryMoveScheduledEvent) AsDeployedApplicationHealthReportExpiredEvent() (*DeployedApplicationHealthReportExpiredEvent, bool) {
9388	return nil, false
9389}
9390
9391// AsApplicationProcessExitedEvent is the BasicFabricEvent implementation for ChaosPartitionPrimaryMoveScheduledEvent.
9392func (cppmse ChaosPartitionPrimaryMoveScheduledEvent) AsApplicationProcessExitedEvent() (*ApplicationProcessExitedEvent, bool) {
9393	return nil, false
9394}
9395
9396// AsApplicationContainerInstanceExitedEvent is the BasicFabricEvent implementation for ChaosPartitionPrimaryMoveScheduledEvent.
9397func (cppmse ChaosPartitionPrimaryMoveScheduledEvent) AsApplicationContainerInstanceExitedEvent() (*ApplicationContainerInstanceExitedEvent, bool) {
9398	return nil, false
9399}
9400
9401// AsNodeAbortedEvent is the BasicFabricEvent implementation for ChaosPartitionPrimaryMoveScheduledEvent.
9402func (cppmse ChaosPartitionPrimaryMoveScheduledEvent) AsNodeAbortedEvent() (*NodeAbortedEvent, bool) {
9403	return nil, false
9404}
9405
9406// AsNodeAddedToClusterEvent is the BasicFabricEvent implementation for ChaosPartitionPrimaryMoveScheduledEvent.
9407func (cppmse ChaosPartitionPrimaryMoveScheduledEvent) AsNodeAddedToClusterEvent() (*NodeAddedToClusterEvent, bool) {
9408	return nil, false
9409}
9410
9411// AsNodeClosedEvent is the BasicFabricEvent implementation for ChaosPartitionPrimaryMoveScheduledEvent.
9412func (cppmse ChaosPartitionPrimaryMoveScheduledEvent) AsNodeClosedEvent() (*NodeClosedEvent, bool) {
9413	return nil, false
9414}
9415
9416// AsNodeDeactivateCompletedEvent is the BasicFabricEvent implementation for ChaosPartitionPrimaryMoveScheduledEvent.
9417func (cppmse ChaosPartitionPrimaryMoveScheduledEvent) AsNodeDeactivateCompletedEvent() (*NodeDeactivateCompletedEvent, bool) {
9418	return nil, false
9419}
9420
9421// AsNodeDeactivateStartedEvent is the BasicFabricEvent implementation for ChaosPartitionPrimaryMoveScheduledEvent.
9422func (cppmse ChaosPartitionPrimaryMoveScheduledEvent) AsNodeDeactivateStartedEvent() (*NodeDeactivateStartedEvent, bool) {
9423	return nil, false
9424}
9425
9426// AsNodeDownEvent is the BasicFabricEvent implementation for ChaosPartitionPrimaryMoveScheduledEvent.
9427func (cppmse ChaosPartitionPrimaryMoveScheduledEvent) AsNodeDownEvent() (*NodeDownEvent, bool) {
9428	return nil, false
9429}
9430
9431// AsNodeNewHealthReportEvent is the BasicFabricEvent implementation for ChaosPartitionPrimaryMoveScheduledEvent.
9432func (cppmse ChaosPartitionPrimaryMoveScheduledEvent) AsNodeNewHealthReportEvent() (*NodeNewHealthReportEvent, bool) {
9433	return nil, false
9434}
9435
9436// AsNodeHealthReportExpiredEvent is the BasicFabricEvent implementation for ChaosPartitionPrimaryMoveScheduledEvent.
9437func (cppmse ChaosPartitionPrimaryMoveScheduledEvent) AsNodeHealthReportExpiredEvent() (*NodeHealthReportExpiredEvent, bool) {
9438	return nil, false
9439}
9440
9441// AsNodeOpenSucceededEvent is the BasicFabricEvent implementation for ChaosPartitionPrimaryMoveScheduledEvent.
9442func (cppmse ChaosPartitionPrimaryMoveScheduledEvent) AsNodeOpenSucceededEvent() (*NodeOpenSucceededEvent, bool) {
9443	return nil, false
9444}
9445
9446// AsNodeOpenFailedEvent is the BasicFabricEvent implementation for ChaosPartitionPrimaryMoveScheduledEvent.
9447func (cppmse ChaosPartitionPrimaryMoveScheduledEvent) AsNodeOpenFailedEvent() (*NodeOpenFailedEvent, bool) {
9448	return nil, false
9449}
9450
9451// AsNodeRemovedFromClusterEvent is the BasicFabricEvent implementation for ChaosPartitionPrimaryMoveScheduledEvent.
9452func (cppmse ChaosPartitionPrimaryMoveScheduledEvent) AsNodeRemovedFromClusterEvent() (*NodeRemovedFromClusterEvent, bool) {
9453	return nil, false
9454}
9455
9456// AsNodeUpEvent is the BasicFabricEvent implementation for ChaosPartitionPrimaryMoveScheduledEvent.
9457func (cppmse ChaosPartitionPrimaryMoveScheduledEvent) AsNodeUpEvent() (*NodeUpEvent, bool) {
9458	return nil, false
9459}
9460
9461// AsPartitionNewHealthReportEvent is the BasicFabricEvent implementation for ChaosPartitionPrimaryMoveScheduledEvent.
9462func (cppmse ChaosPartitionPrimaryMoveScheduledEvent) AsPartitionNewHealthReportEvent() (*PartitionNewHealthReportEvent, bool) {
9463	return nil, false
9464}
9465
9466// AsPartitionHealthReportExpiredEvent is the BasicFabricEvent implementation for ChaosPartitionPrimaryMoveScheduledEvent.
9467func (cppmse ChaosPartitionPrimaryMoveScheduledEvent) AsPartitionHealthReportExpiredEvent() (*PartitionHealthReportExpiredEvent, bool) {
9468	return nil, false
9469}
9470
9471// AsPartitionReconfiguredEvent is the BasicFabricEvent implementation for ChaosPartitionPrimaryMoveScheduledEvent.
9472func (cppmse ChaosPartitionPrimaryMoveScheduledEvent) AsPartitionReconfiguredEvent() (*PartitionReconfiguredEvent, bool) {
9473	return nil, false
9474}
9475
9476// AsPartitionPrimaryMoveAnalysisEvent is the BasicFabricEvent implementation for ChaosPartitionPrimaryMoveScheduledEvent.
9477func (cppmse ChaosPartitionPrimaryMoveScheduledEvent) AsPartitionPrimaryMoveAnalysisEvent() (*PartitionPrimaryMoveAnalysisEvent, bool) {
9478	return nil, false
9479}
9480
9481// AsServiceCreatedEvent is the BasicFabricEvent implementation for ChaosPartitionPrimaryMoveScheduledEvent.
9482func (cppmse ChaosPartitionPrimaryMoveScheduledEvent) AsServiceCreatedEvent() (*ServiceCreatedEvent, bool) {
9483	return nil, false
9484}
9485
9486// AsServiceDeletedEvent is the BasicFabricEvent implementation for ChaosPartitionPrimaryMoveScheduledEvent.
9487func (cppmse ChaosPartitionPrimaryMoveScheduledEvent) AsServiceDeletedEvent() (*ServiceDeletedEvent, bool) {
9488	return nil, false
9489}
9490
9491// AsServiceNewHealthReportEvent is the BasicFabricEvent implementation for ChaosPartitionPrimaryMoveScheduledEvent.
9492func (cppmse ChaosPartitionPrimaryMoveScheduledEvent) AsServiceNewHealthReportEvent() (*ServiceNewHealthReportEvent, bool) {
9493	return nil, false
9494}
9495
9496// AsServiceHealthReportExpiredEvent is the BasicFabricEvent implementation for ChaosPartitionPrimaryMoveScheduledEvent.
9497func (cppmse ChaosPartitionPrimaryMoveScheduledEvent) AsServiceHealthReportExpiredEvent() (*ServiceHealthReportExpiredEvent, bool) {
9498	return nil, false
9499}
9500
9501// AsDeployedServicePackageNewHealthReportEvent is the BasicFabricEvent implementation for ChaosPartitionPrimaryMoveScheduledEvent.
9502func (cppmse ChaosPartitionPrimaryMoveScheduledEvent) AsDeployedServicePackageNewHealthReportEvent() (*DeployedServicePackageNewHealthReportEvent, bool) {
9503	return nil, false
9504}
9505
9506// AsDeployedServicePackageHealthReportExpiredEvent is the BasicFabricEvent implementation for ChaosPartitionPrimaryMoveScheduledEvent.
9507func (cppmse ChaosPartitionPrimaryMoveScheduledEvent) AsDeployedServicePackageHealthReportExpiredEvent() (*DeployedServicePackageHealthReportExpiredEvent, bool) {
9508	return nil, false
9509}
9510
9511// AsStatefulReplicaNewHealthReportEvent is the BasicFabricEvent implementation for ChaosPartitionPrimaryMoveScheduledEvent.
9512func (cppmse ChaosPartitionPrimaryMoveScheduledEvent) AsStatefulReplicaNewHealthReportEvent() (*StatefulReplicaNewHealthReportEvent, bool) {
9513	return nil, false
9514}
9515
9516// AsStatefulReplicaHealthReportExpiredEvent is the BasicFabricEvent implementation for ChaosPartitionPrimaryMoveScheduledEvent.
9517func (cppmse ChaosPartitionPrimaryMoveScheduledEvent) AsStatefulReplicaHealthReportExpiredEvent() (*StatefulReplicaHealthReportExpiredEvent, bool) {
9518	return nil, false
9519}
9520
9521// AsStatelessReplicaNewHealthReportEvent is the BasicFabricEvent implementation for ChaosPartitionPrimaryMoveScheduledEvent.
9522func (cppmse ChaosPartitionPrimaryMoveScheduledEvent) AsStatelessReplicaNewHealthReportEvent() (*StatelessReplicaNewHealthReportEvent, bool) {
9523	return nil, false
9524}
9525
9526// AsStatelessReplicaHealthReportExpiredEvent is the BasicFabricEvent implementation for ChaosPartitionPrimaryMoveScheduledEvent.
9527func (cppmse ChaosPartitionPrimaryMoveScheduledEvent) AsStatelessReplicaHealthReportExpiredEvent() (*StatelessReplicaHealthReportExpiredEvent, bool) {
9528	return nil, false
9529}
9530
9531// AsClusterNewHealthReportEvent is the BasicFabricEvent implementation for ChaosPartitionPrimaryMoveScheduledEvent.
9532func (cppmse ChaosPartitionPrimaryMoveScheduledEvent) AsClusterNewHealthReportEvent() (*ClusterNewHealthReportEvent, bool) {
9533	return nil, false
9534}
9535
9536// AsClusterHealthReportExpiredEvent is the BasicFabricEvent implementation for ChaosPartitionPrimaryMoveScheduledEvent.
9537func (cppmse ChaosPartitionPrimaryMoveScheduledEvent) AsClusterHealthReportExpiredEvent() (*ClusterHealthReportExpiredEvent, bool) {
9538	return nil, false
9539}
9540
9541// AsClusterUpgradeCompletedEvent is the BasicFabricEvent implementation for ChaosPartitionPrimaryMoveScheduledEvent.
9542func (cppmse ChaosPartitionPrimaryMoveScheduledEvent) AsClusterUpgradeCompletedEvent() (*ClusterUpgradeCompletedEvent, bool) {
9543	return nil, false
9544}
9545
9546// AsClusterUpgradeDomainCompletedEvent is the BasicFabricEvent implementation for ChaosPartitionPrimaryMoveScheduledEvent.
9547func (cppmse ChaosPartitionPrimaryMoveScheduledEvent) AsClusterUpgradeDomainCompletedEvent() (*ClusterUpgradeDomainCompletedEvent, bool) {
9548	return nil, false
9549}
9550
9551// AsClusterUpgradeRollbackCompletedEvent is the BasicFabricEvent implementation for ChaosPartitionPrimaryMoveScheduledEvent.
9552func (cppmse ChaosPartitionPrimaryMoveScheduledEvent) AsClusterUpgradeRollbackCompletedEvent() (*ClusterUpgradeRollbackCompletedEvent, bool) {
9553	return nil, false
9554}
9555
9556// AsClusterUpgradeRollbackStartedEvent is the BasicFabricEvent implementation for ChaosPartitionPrimaryMoveScheduledEvent.
9557func (cppmse ChaosPartitionPrimaryMoveScheduledEvent) AsClusterUpgradeRollbackStartedEvent() (*ClusterUpgradeRollbackStartedEvent, bool) {
9558	return nil, false
9559}
9560
9561// AsClusterUpgradeStartedEvent is the BasicFabricEvent implementation for ChaosPartitionPrimaryMoveScheduledEvent.
9562func (cppmse ChaosPartitionPrimaryMoveScheduledEvent) AsClusterUpgradeStartedEvent() (*ClusterUpgradeStartedEvent, bool) {
9563	return nil, false
9564}
9565
9566// AsChaosStoppedEvent is the BasicFabricEvent implementation for ChaosPartitionPrimaryMoveScheduledEvent.
9567func (cppmse ChaosPartitionPrimaryMoveScheduledEvent) AsChaosStoppedEvent() (*ChaosStoppedEvent, bool) {
9568	return nil, false
9569}
9570
9571// AsChaosStartedEvent is the BasicFabricEvent implementation for ChaosPartitionPrimaryMoveScheduledEvent.
9572func (cppmse ChaosPartitionPrimaryMoveScheduledEvent) AsChaosStartedEvent() (*ChaosStartedEvent, bool) {
9573	return nil, false
9574}
9575
9576// AsChaosCodePackageRestartScheduledEvent is the BasicFabricEvent implementation for ChaosPartitionPrimaryMoveScheduledEvent.
9577func (cppmse ChaosPartitionPrimaryMoveScheduledEvent) AsChaosCodePackageRestartScheduledEvent() (*ChaosCodePackageRestartScheduledEvent, bool) {
9578	return nil, false
9579}
9580
9581// AsChaosReplicaRemovalScheduledEvent is the BasicFabricEvent implementation for ChaosPartitionPrimaryMoveScheduledEvent.
9582func (cppmse ChaosPartitionPrimaryMoveScheduledEvent) AsChaosReplicaRemovalScheduledEvent() (*ChaosReplicaRemovalScheduledEvent, bool) {
9583	return nil, false
9584}
9585
9586// AsChaosPartitionSecondaryMoveScheduledEvent is the BasicFabricEvent implementation for ChaosPartitionPrimaryMoveScheduledEvent.
9587func (cppmse ChaosPartitionPrimaryMoveScheduledEvent) AsChaosPartitionSecondaryMoveScheduledEvent() (*ChaosPartitionSecondaryMoveScheduledEvent, bool) {
9588	return nil, false
9589}
9590
9591// AsChaosPartitionPrimaryMoveScheduledEvent is the BasicFabricEvent implementation for ChaosPartitionPrimaryMoveScheduledEvent.
9592func (cppmse ChaosPartitionPrimaryMoveScheduledEvent) AsChaosPartitionPrimaryMoveScheduledEvent() (*ChaosPartitionPrimaryMoveScheduledEvent, bool) {
9593	return &cppmse, true
9594}
9595
9596// AsChaosReplicaRestartScheduledEvent is the BasicFabricEvent implementation for ChaosPartitionPrimaryMoveScheduledEvent.
9597func (cppmse ChaosPartitionPrimaryMoveScheduledEvent) AsChaosReplicaRestartScheduledEvent() (*ChaosReplicaRestartScheduledEvent, bool) {
9598	return nil, false
9599}
9600
9601// AsChaosNodeRestartScheduledEvent is the BasicFabricEvent implementation for ChaosPartitionPrimaryMoveScheduledEvent.
9602func (cppmse ChaosPartitionPrimaryMoveScheduledEvent) AsChaosNodeRestartScheduledEvent() (*ChaosNodeRestartScheduledEvent, bool) {
9603	return nil, false
9604}
9605
9606// AsFabricEvent is the BasicFabricEvent implementation for ChaosPartitionPrimaryMoveScheduledEvent.
9607func (cppmse ChaosPartitionPrimaryMoveScheduledEvent) AsFabricEvent() (*FabricEvent, bool) {
9608	return nil, false
9609}
9610
9611// AsBasicFabricEvent is the BasicFabricEvent implementation for ChaosPartitionPrimaryMoveScheduledEvent.
9612func (cppmse ChaosPartitionPrimaryMoveScheduledEvent) AsBasicFabricEvent() (BasicFabricEvent, bool) {
9613	return &cppmse, true
9614}
9615
9616// ChaosPartitionSecondaryMoveScheduledEvent chaos Move Secondary Fault Scheduled event.
9617type ChaosPartitionSecondaryMoveScheduledEvent struct {
9618	// FaultGroupID - Id of fault group.
9619	FaultGroupID *uuid.UUID `json:"FaultGroupId,omitempty"`
9620	// FaultID - Id of fault.
9621	FaultID *uuid.UUID `json:"FaultId,omitempty"`
9622	// ServiceName - Service name.
9623	ServiceName *string `json:"ServiceName,omitempty"`
9624	// SourceNode - The name of a Service Fabric node.
9625	SourceNode *string `json:"SourceNode,omitempty"`
9626	// DestinationNode - The name of a Service Fabric node.
9627	DestinationNode *string `json:"DestinationNode,omitempty"`
9628	// ForcedMove - Indicates a forced move.
9629	ForcedMove *bool `json:"ForcedMove,omitempty"`
9630	// 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.
9631	PartitionID *uuid.UUID `json:"PartitionId,omitempty"`
9632	// EventInstanceID - The identifier for the FabricEvent instance.
9633	EventInstanceID *uuid.UUID `json:"EventInstanceId,omitempty"`
9634	// Category - The category of event.
9635	Category *string `json:"Category,omitempty"`
9636	// TimeStamp - The time event was logged.
9637	TimeStamp *date.Time `json:"TimeStamp,omitempty"`
9638	// HasCorrelatedEvents - Shows there is existing related events available.
9639	HasCorrelatedEvents *bool `json:"HasCorrelatedEvents,omitempty"`
9640	// 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'
9641	Kind KindBasicFabricEvent `json:"Kind,omitempty"`
9642}
9643
9644// MarshalJSON is the custom marshaler for ChaosPartitionSecondaryMoveScheduledEvent.
9645func (cpsmse ChaosPartitionSecondaryMoveScheduledEvent) MarshalJSON() ([]byte, error) {
9646	cpsmse.Kind = KindChaosPartitionSecondaryMoveScheduled
9647	objectMap := make(map[string]interface{})
9648	if cpsmse.FaultGroupID != nil {
9649		objectMap["FaultGroupId"] = cpsmse.FaultGroupID
9650	}
9651	if cpsmse.FaultID != nil {
9652		objectMap["FaultId"] = cpsmse.FaultID
9653	}
9654	if cpsmse.ServiceName != nil {
9655		objectMap["ServiceName"] = cpsmse.ServiceName
9656	}
9657	if cpsmse.SourceNode != nil {
9658		objectMap["SourceNode"] = cpsmse.SourceNode
9659	}
9660	if cpsmse.DestinationNode != nil {
9661		objectMap["DestinationNode"] = cpsmse.DestinationNode
9662	}
9663	if cpsmse.ForcedMove != nil {
9664		objectMap["ForcedMove"] = cpsmse.ForcedMove
9665	}
9666	if cpsmse.PartitionID != nil {
9667		objectMap["PartitionId"] = cpsmse.PartitionID
9668	}
9669	if cpsmse.EventInstanceID != nil {
9670		objectMap["EventInstanceId"] = cpsmse.EventInstanceID
9671	}
9672	if cpsmse.Category != nil {
9673		objectMap["Category"] = cpsmse.Category
9674	}
9675	if cpsmse.TimeStamp != nil {
9676		objectMap["TimeStamp"] = cpsmse.TimeStamp
9677	}
9678	if cpsmse.HasCorrelatedEvents != nil {
9679		objectMap["HasCorrelatedEvents"] = cpsmse.HasCorrelatedEvents
9680	}
9681	if cpsmse.Kind != "" {
9682		objectMap["Kind"] = cpsmse.Kind
9683	}
9684	return json.Marshal(objectMap)
9685}
9686
9687// AsApplicationEvent is the BasicFabricEvent implementation for ChaosPartitionSecondaryMoveScheduledEvent.
9688func (cpsmse ChaosPartitionSecondaryMoveScheduledEvent) AsApplicationEvent() (*ApplicationEvent, bool) {
9689	return nil, false
9690}
9691
9692// AsBasicApplicationEvent is the BasicFabricEvent implementation for ChaosPartitionSecondaryMoveScheduledEvent.
9693func (cpsmse ChaosPartitionSecondaryMoveScheduledEvent) AsBasicApplicationEvent() (BasicApplicationEvent, bool) {
9694	return nil, false
9695}
9696
9697// AsClusterEvent is the BasicFabricEvent implementation for ChaosPartitionSecondaryMoveScheduledEvent.
9698func (cpsmse ChaosPartitionSecondaryMoveScheduledEvent) AsClusterEvent() (*ClusterEvent, bool) {
9699	return nil, false
9700}
9701
9702// AsBasicClusterEvent is the BasicFabricEvent implementation for ChaosPartitionSecondaryMoveScheduledEvent.
9703func (cpsmse ChaosPartitionSecondaryMoveScheduledEvent) AsBasicClusterEvent() (BasicClusterEvent, bool) {
9704	return nil, false
9705}
9706
9707// AsContainerInstanceEvent is the BasicFabricEvent implementation for ChaosPartitionSecondaryMoveScheduledEvent.
9708func (cpsmse ChaosPartitionSecondaryMoveScheduledEvent) AsContainerInstanceEvent() (*ContainerInstanceEvent, bool) {
9709	return nil, false
9710}
9711
9712// AsNodeEvent is the BasicFabricEvent implementation for ChaosPartitionSecondaryMoveScheduledEvent.
9713func (cpsmse ChaosPartitionSecondaryMoveScheduledEvent) AsNodeEvent() (*NodeEvent, bool) {
9714	return nil, false
9715}
9716
9717// AsBasicNodeEvent is the BasicFabricEvent implementation for ChaosPartitionSecondaryMoveScheduledEvent.
9718func (cpsmse ChaosPartitionSecondaryMoveScheduledEvent) AsBasicNodeEvent() (BasicNodeEvent, bool) {
9719	return nil, false
9720}
9721
9722// AsPartitionAnalysisEvent is the BasicFabricEvent implementation for ChaosPartitionSecondaryMoveScheduledEvent.
9723func (cpsmse ChaosPartitionSecondaryMoveScheduledEvent) AsPartitionAnalysisEvent() (*PartitionAnalysisEvent, bool) {
9724	return nil, false
9725}
9726
9727// AsBasicPartitionAnalysisEvent is the BasicFabricEvent implementation for ChaosPartitionSecondaryMoveScheduledEvent.
9728func (cpsmse ChaosPartitionSecondaryMoveScheduledEvent) AsBasicPartitionAnalysisEvent() (BasicPartitionAnalysisEvent, bool) {
9729	return nil, false
9730}
9731
9732// AsPartitionEvent is the BasicFabricEvent implementation for ChaosPartitionSecondaryMoveScheduledEvent.
9733func (cpsmse ChaosPartitionSecondaryMoveScheduledEvent) AsPartitionEvent() (*PartitionEvent, bool) {
9734	return nil, false
9735}
9736
9737// AsBasicPartitionEvent is the BasicFabricEvent implementation for ChaosPartitionSecondaryMoveScheduledEvent.
9738func (cpsmse ChaosPartitionSecondaryMoveScheduledEvent) AsBasicPartitionEvent() (BasicPartitionEvent, bool) {
9739	return &cpsmse, true
9740}
9741
9742// AsReplicaEvent is the BasicFabricEvent implementation for ChaosPartitionSecondaryMoveScheduledEvent.
9743func (cpsmse ChaosPartitionSecondaryMoveScheduledEvent) AsReplicaEvent() (*ReplicaEvent, bool) {
9744	return nil, false
9745}
9746
9747// AsBasicReplicaEvent is the BasicFabricEvent implementation for ChaosPartitionSecondaryMoveScheduledEvent.
9748func (cpsmse ChaosPartitionSecondaryMoveScheduledEvent) AsBasicReplicaEvent() (BasicReplicaEvent, bool) {
9749	return nil, false
9750}
9751
9752// AsServiceEvent is the BasicFabricEvent implementation for ChaosPartitionSecondaryMoveScheduledEvent.
9753func (cpsmse ChaosPartitionSecondaryMoveScheduledEvent) AsServiceEvent() (*ServiceEvent, bool) {
9754	return nil, false
9755}
9756
9757// AsBasicServiceEvent is the BasicFabricEvent implementation for ChaosPartitionSecondaryMoveScheduledEvent.
9758func (cpsmse ChaosPartitionSecondaryMoveScheduledEvent) AsBasicServiceEvent() (BasicServiceEvent, bool) {
9759	return nil, false
9760}
9761
9762// AsApplicationCreatedEvent is the BasicFabricEvent implementation for ChaosPartitionSecondaryMoveScheduledEvent.
9763func (cpsmse ChaosPartitionSecondaryMoveScheduledEvent) AsApplicationCreatedEvent() (*ApplicationCreatedEvent, bool) {
9764	return nil, false
9765}
9766
9767// AsApplicationDeletedEvent is the BasicFabricEvent implementation for ChaosPartitionSecondaryMoveScheduledEvent.
9768func (cpsmse ChaosPartitionSecondaryMoveScheduledEvent) AsApplicationDeletedEvent() (*ApplicationDeletedEvent, bool) {
9769	return nil, false
9770}
9771
9772// AsApplicationNewHealthReportEvent is the BasicFabricEvent implementation for ChaosPartitionSecondaryMoveScheduledEvent.
9773func (cpsmse ChaosPartitionSecondaryMoveScheduledEvent) AsApplicationNewHealthReportEvent() (*ApplicationNewHealthReportEvent, bool) {
9774	return nil, false
9775}
9776
9777// AsApplicationHealthReportExpiredEvent is the BasicFabricEvent implementation for ChaosPartitionSecondaryMoveScheduledEvent.
9778func (cpsmse ChaosPartitionSecondaryMoveScheduledEvent) AsApplicationHealthReportExpiredEvent() (*ApplicationHealthReportExpiredEvent, bool) {
9779	return nil, false
9780}
9781
9782// AsApplicationUpgradeCompletedEvent is the BasicFabricEvent implementation for ChaosPartitionSecondaryMoveScheduledEvent.
9783func (cpsmse ChaosPartitionSecondaryMoveScheduledEvent) AsApplicationUpgradeCompletedEvent() (*ApplicationUpgradeCompletedEvent, bool) {
9784	return nil, false
9785}
9786
9787// AsApplicationUpgradeDomainCompletedEvent is the BasicFabricEvent implementation for ChaosPartitionSecondaryMoveScheduledEvent.
9788func (cpsmse ChaosPartitionSecondaryMoveScheduledEvent) AsApplicationUpgradeDomainCompletedEvent() (*ApplicationUpgradeDomainCompletedEvent, bool) {
9789	return nil, false
9790}
9791
9792// AsApplicationUpgradeRollbackCompletedEvent is the BasicFabricEvent implementation for ChaosPartitionSecondaryMoveScheduledEvent.
9793func (cpsmse ChaosPartitionSecondaryMoveScheduledEvent) AsApplicationUpgradeRollbackCompletedEvent() (*ApplicationUpgradeRollbackCompletedEvent, bool) {
9794	return nil, false
9795}
9796
9797// AsApplicationUpgradeRollbackStartedEvent is the BasicFabricEvent implementation for ChaosPartitionSecondaryMoveScheduledEvent.
9798func (cpsmse ChaosPartitionSecondaryMoveScheduledEvent) AsApplicationUpgradeRollbackStartedEvent() (*ApplicationUpgradeRollbackStartedEvent, bool) {
9799	return nil, false
9800}
9801
9802// AsApplicationUpgradeStartedEvent is the BasicFabricEvent implementation for ChaosPartitionSecondaryMoveScheduledEvent.
9803func (cpsmse ChaosPartitionSecondaryMoveScheduledEvent) AsApplicationUpgradeStartedEvent() (*ApplicationUpgradeStartedEvent, bool) {
9804	return nil, false
9805}
9806
9807// AsDeployedApplicationNewHealthReportEvent is the BasicFabricEvent implementation for ChaosPartitionSecondaryMoveScheduledEvent.
9808func (cpsmse ChaosPartitionSecondaryMoveScheduledEvent) AsDeployedApplicationNewHealthReportEvent() (*DeployedApplicationNewHealthReportEvent, bool) {
9809	return nil, false
9810}
9811
9812// AsDeployedApplicationHealthReportExpiredEvent is the BasicFabricEvent implementation for ChaosPartitionSecondaryMoveScheduledEvent.
9813func (cpsmse ChaosPartitionSecondaryMoveScheduledEvent) AsDeployedApplicationHealthReportExpiredEvent() (*DeployedApplicationHealthReportExpiredEvent, bool) {
9814	return nil, false
9815}
9816
9817// AsApplicationProcessExitedEvent is the BasicFabricEvent implementation for ChaosPartitionSecondaryMoveScheduledEvent.
9818func (cpsmse ChaosPartitionSecondaryMoveScheduledEvent) AsApplicationProcessExitedEvent() (*ApplicationProcessExitedEvent, bool) {
9819	return nil, false
9820}
9821
9822// AsApplicationContainerInstanceExitedEvent is the BasicFabricEvent implementation for ChaosPartitionSecondaryMoveScheduledEvent.
9823func (cpsmse ChaosPartitionSecondaryMoveScheduledEvent) AsApplicationContainerInstanceExitedEvent() (*ApplicationContainerInstanceExitedEvent, bool) {
9824	return nil, false
9825}
9826
9827// AsNodeAbortedEvent is the BasicFabricEvent implementation for ChaosPartitionSecondaryMoveScheduledEvent.
9828func (cpsmse ChaosPartitionSecondaryMoveScheduledEvent) AsNodeAbortedEvent() (*NodeAbortedEvent, bool) {
9829	return nil, false
9830}
9831
9832// AsNodeAddedToClusterEvent is the BasicFabricEvent implementation for ChaosPartitionSecondaryMoveScheduledEvent.
9833func (cpsmse ChaosPartitionSecondaryMoveScheduledEvent) AsNodeAddedToClusterEvent() (*NodeAddedToClusterEvent, bool) {
9834	return nil, false
9835}
9836
9837// AsNodeClosedEvent is the BasicFabricEvent implementation for ChaosPartitionSecondaryMoveScheduledEvent.
9838func (cpsmse ChaosPartitionSecondaryMoveScheduledEvent) AsNodeClosedEvent() (*NodeClosedEvent, bool) {
9839	return nil, false
9840}
9841
9842// AsNodeDeactivateCompletedEvent is the BasicFabricEvent implementation for ChaosPartitionSecondaryMoveScheduledEvent.
9843func (cpsmse ChaosPartitionSecondaryMoveScheduledEvent) AsNodeDeactivateCompletedEvent() (*NodeDeactivateCompletedEvent, bool) {
9844	return nil, false
9845}
9846
9847// AsNodeDeactivateStartedEvent is the BasicFabricEvent implementation for ChaosPartitionSecondaryMoveScheduledEvent.
9848func (cpsmse ChaosPartitionSecondaryMoveScheduledEvent) AsNodeDeactivateStartedEvent() (*NodeDeactivateStartedEvent, bool) {
9849	return nil, false
9850}
9851
9852// AsNodeDownEvent is the BasicFabricEvent implementation for ChaosPartitionSecondaryMoveScheduledEvent.
9853func (cpsmse ChaosPartitionSecondaryMoveScheduledEvent) AsNodeDownEvent() (*NodeDownEvent, bool) {
9854	return nil, false
9855}
9856
9857// AsNodeNewHealthReportEvent is the BasicFabricEvent implementation for ChaosPartitionSecondaryMoveScheduledEvent.
9858func (cpsmse ChaosPartitionSecondaryMoveScheduledEvent) AsNodeNewHealthReportEvent() (*NodeNewHealthReportEvent, bool) {
9859	return nil, false
9860}
9861
9862// AsNodeHealthReportExpiredEvent is the BasicFabricEvent implementation for ChaosPartitionSecondaryMoveScheduledEvent.
9863func (cpsmse ChaosPartitionSecondaryMoveScheduledEvent) AsNodeHealthReportExpiredEvent() (*NodeHealthReportExpiredEvent, bool) {
9864	return nil, false
9865}
9866
9867// AsNodeOpenSucceededEvent is the BasicFabricEvent implementation for ChaosPartitionSecondaryMoveScheduledEvent.
9868func (cpsmse ChaosPartitionSecondaryMoveScheduledEvent) AsNodeOpenSucceededEvent() (*NodeOpenSucceededEvent, bool) {
9869	return nil, false
9870}
9871
9872// AsNodeOpenFailedEvent is the BasicFabricEvent implementation for ChaosPartitionSecondaryMoveScheduledEvent.
9873func (cpsmse ChaosPartitionSecondaryMoveScheduledEvent) AsNodeOpenFailedEvent() (*NodeOpenFailedEvent, bool) {
9874	return nil, false
9875}
9876
9877// AsNodeRemovedFromClusterEvent is the BasicFabricEvent implementation for ChaosPartitionSecondaryMoveScheduledEvent.
9878func (cpsmse ChaosPartitionSecondaryMoveScheduledEvent) AsNodeRemovedFromClusterEvent() (*NodeRemovedFromClusterEvent, bool) {
9879	return nil, false
9880}
9881
9882// AsNodeUpEvent is the BasicFabricEvent implementation for ChaosPartitionSecondaryMoveScheduledEvent.
9883func (cpsmse ChaosPartitionSecondaryMoveScheduledEvent) AsNodeUpEvent() (*NodeUpEvent, bool) {
9884	return nil, false
9885}
9886
9887// AsPartitionNewHealthReportEvent is the BasicFabricEvent implementation for ChaosPartitionSecondaryMoveScheduledEvent.
9888func (cpsmse ChaosPartitionSecondaryMoveScheduledEvent) AsPartitionNewHealthReportEvent() (*PartitionNewHealthReportEvent, bool) {
9889	return nil, false
9890}
9891
9892// AsPartitionHealthReportExpiredEvent is the BasicFabricEvent implementation for ChaosPartitionSecondaryMoveScheduledEvent.
9893func (cpsmse ChaosPartitionSecondaryMoveScheduledEvent) AsPartitionHealthReportExpiredEvent() (*PartitionHealthReportExpiredEvent, bool) {
9894	return nil, false
9895}
9896
9897// AsPartitionReconfiguredEvent is the BasicFabricEvent implementation for ChaosPartitionSecondaryMoveScheduledEvent.
9898func (cpsmse ChaosPartitionSecondaryMoveScheduledEvent) AsPartitionReconfiguredEvent() (*PartitionReconfiguredEvent, bool) {
9899	return nil, false
9900}
9901
9902// AsPartitionPrimaryMoveAnalysisEvent is the BasicFabricEvent implementation for ChaosPartitionSecondaryMoveScheduledEvent.
9903func (cpsmse ChaosPartitionSecondaryMoveScheduledEvent) AsPartitionPrimaryMoveAnalysisEvent() (*PartitionPrimaryMoveAnalysisEvent, bool) {
9904	return nil, false
9905}
9906
9907// AsServiceCreatedEvent is the BasicFabricEvent implementation for ChaosPartitionSecondaryMoveScheduledEvent.
9908func (cpsmse ChaosPartitionSecondaryMoveScheduledEvent) AsServiceCreatedEvent() (*ServiceCreatedEvent, bool) {
9909	return nil, false
9910}
9911
9912// AsServiceDeletedEvent is the BasicFabricEvent implementation for ChaosPartitionSecondaryMoveScheduledEvent.
9913func (cpsmse ChaosPartitionSecondaryMoveScheduledEvent) AsServiceDeletedEvent() (*ServiceDeletedEvent, bool) {
9914	return nil, false
9915}
9916
9917// AsServiceNewHealthReportEvent is the BasicFabricEvent implementation for ChaosPartitionSecondaryMoveScheduledEvent.
9918func (cpsmse ChaosPartitionSecondaryMoveScheduledEvent) AsServiceNewHealthReportEvent() (*ServiceNewHealthReportEvent, bool) {
9919	return nil, false
9920}
9921
9922// AsServiceHealthReportExpiredEvent is the BasicFabricEvent implementation for ChaosPartitionSecondaryMoveScheduledEvent.
9923func (cpsmse ChaosPartitionSecondaryMoveScheduledEvent) AsServiceHealthReportExpiredEvent() (*ServiceHealthReportExpiredEvent, bool) {
9924	return nil, false
9925}
9926
9927// AsDeployedServicePackageNewHealthReportEvent is the BasicFabricEvent implementation for ChaosPartitionSecondaryMoveScheduledEvent.
9928func (cpsmse ChaosPartitionSecondaryMoveScheduledEvent) AsDeployedServicePackageNewHealthReportEvent() (*DeployedServicePackageNewHealthReportEvent, bool) {
9929	return nil, false
9930}
9931
9932// AsDeployedServicePackageHealthReportExpiredEvent is the BasicFabricEvent implementation for ChaosPartitionSecondaryMoveScheduledEvent.
9933func (cpsmse ChaosPartitionSecondaryMoveScheduledEvent) AsDeployedServicePackageHealthReportExpiredEvent() (*DeployedServicePackageHealthReportExpiredEvent, bool) {
9934	return nil, false
9935}
9936
9937// AsStatefulReplicaNewHealthReportEvent is the BasicFabricEvent implementation for ChaosPartitionSecondaryMoveScheduledEvent.
9938func (cpsmse ChaosPartitionSecondaryMoveScheduledEvent) AsStatefulReplicaNewHealthReportEvent() (*StatefulReplicaNewHealthReportEvent, bool) {
9939	return nil, false
9940}
9941
9942// AsStatefulReplicaHealthReportExpiredEvent is the BasicFabricEvent implementation for ChaosPartitionSecondaryMoveScheduledEvent.
9943func (cpsmse ChaosPartitionSecondaryMoveScheduledEvent) AsStatefulReplicaHealthReportExpiredEvent() (*StatefulReplicaHealthReportExpiredEvent, bool) {
9944	return nil, false
9945}
9946
9947// AsStatelessReplicaNewHealthReportEvent is the BasicFabricEvent implementation for ChaosPartitionSecondaryMoveScheduledEvent.
9948func (cpsmse ChaosPartitionSecondaryMoveScheduledEvent) AsStatelessReplicaNewHealthReportEvent() (*StatelessReplicaNewHealthReportEvent, bool) {
9949	return nil, false
9950}
9951
9952// AsStatelessReplicaHealthReportExpiredEvent is the BasicFabricEvent implementation for ChaosPartitionSecondaryMoveScheduledEvent.
9953func (cpsmse ChaosPartitionSecondaryMoveScheduledEvent) AsStatelessReplicaHealthReportExpiredEvent() (*StatelessReplicaHealthReportExpiredEvent, bool) {
9954	return nil, false
9955}
9956
9957// AsClusterNewHealthReportEvent is the BasicFabricEvent implementation for ChaosPartitionSecondaryMoveScheduledEvent.
9958func (cpsmse ChaosPartitionSecondaryMoveScheduledEvent) AsClusterNewHealthReportEvent() (*ClusterNewHealthReportEvent, bool) {
9959	return nil, false
9960}
9961
9962// AsClusterHealthReportExpiredEvent is the BasicFabricEvent implementation for ChaosPartitionSecondaryMoveScheduledEvent.
9963func (cpsmse ChaosPartitionSecondaryMoveScheduledEvent) AsClusterHealthReportExpiredEvent() (*ClusterHealthReportExpiredEvent, bool) {
9964	return nil, false
9965}
9966
9967// AsClusterUpgradeCompletedEvent is the BasicFabricEvent implementation for ChaosPartitionSecondaryMoveScheduledEvent.
9968func (cpsmse ChaosPartitionSecondaryMoveScheduledEvent) AsClusterUpgradeCompletedEvent() (*ClusterUpgradeCompletedEvent, bool) {
9969	return nil, false
9970}
9971
9972// AsClusterUpgradeDomainCompletedEvent is the BasicFabricEvent implementation for ChaosPartitionSecondaryMoveScheduledEvent.
9973func (cpsmse ChaosPartitionSecondaryMoveScheduledEvent) AsClusterUpgradeDomainCompletedEvent() (*ClusterUpgradeDomainCompletedEvent, bool) {
9974	return nil, false
9975}
9976
9977// AsClusterUpgradeRollbackCompletedEvent is the BasicFabricEvent implementation for ChaosPartitionSecondaryMoveScheduledEvent.
9978func (cpsmse ChaosPartitionSecondaryMoveScheduledEvent) AsClusterUpgradeRollbackCompletedEvent() (*ClusterUpgradeRollbackCompletedEvent, bool) {
9979	return nil, false
9980}
9981
9982// AsClusterUpgradeRollbackStartedEvent is the BasicFabricEvent implementation for ChaosPartitionSecondaryMoveScheduledEvent.
9983func (cpsmse ChaosPartitionSecondaryMoveScheduledEvent) AsClusterUpgradeRollbackStartedEvent() (*ClusterUpgradeRollbackStartedEvent, bool) {
9984	return nil, false
9985}
9986
9987// AsClusterUpgradeStartedEvent is the BasicFabricEvent implementation for ChaosPartitionSecondaryMoveScheduledEvent.
9988func (cpsmse ChaosPartitionSecondaryMoveScheduledEvent) AsClusterUpgradeStartedEvent() (*ClusterUpgradeStartedEvent, bool) {
9989	return nil, false
9990}
9991
9992// AsChaosStoppedEvent is the BasicFabricEvent implementation for ChaosPartitionSecondaryMoveScheduledEvent.
9993func (cpsmse ChaosPartitionSecondaryMoveScheduledEvent) AsChaosStoppedEvent() (*ChaosStoppedEvent, bool) {
9994	return nil, false
9995}
9996
9997// AsChaosStartedEvent is the BasicFabricEvent implementation for ChaosPartitionSecondaryMoveScheduledEvent.
9998func (cpsmse ChaosPartitionSecondaryMoveScheduledEvent) AsChaosStartedEvent() (*ChaosStartedEvent, bool) {
9999	return nil, false
10000}
10001
10002// AsChaosCodePackageRestartScheduledEvent is the BasicFabricEvent implementation for ChaosPartitionSecondaryMoveScheduledEvent.
10003func (cpsmse ChaosPartitionSecondaryMoveScheduledEvent) AsChaosCodePackageRestartScheduledEvent() (*ChaosCodePackageRestartScheduledEvent, bool) {
10004	return nil, false
10005}
10006
10007// AsChaosReplicaRemovalScheduledEvent is the BasicFabricEvent implementation for ChaosPartitionSecondaryMoveScheduledEvent.
10008func (cpsmse ChaosPartitionSecondaryMoveScheduledEvent) AsChaosReplicaRemovalScheduledEvent() (*ChaosReplicaRemovalScheduledEvent, bool) {
10009	return nil, false
10010}
10011
10012// AsChaosPartitionSecondaryMoveScheduledEvent is the BasicFabricEvent implementation for ChaosPartitionSecondaryMoveScheduledEvent.
10013func (cpsmse ChaosPartitionSecondaryMoveScheduledEvent) AsChaosPartitionSecondaryMoveScheduledEvent() (*ChaosPartitionSecondaryMoveScheduledEvent, bool) {
10014	return &cpsmse, true
10015}
10016
10017// AsChaosPartitionPrimaryMoveScheduledEvent is the BasicFabricEvent implementation for ChaosPartitionSecondaryMoveScheduledEvent.
10018func (cpsmse ChaosPartitionSecondaryMoveScheduledEvent) AsChaosPartitionPrimaryMoveScheduledEvent() (*ChaosPartitionPrimaryMoveScheduledEvent, bool) {
10019	return nil, false
10020}
10021
10022// AsChaosReplicaRestartScheduledEvent is the BasicFabricEvent implementation for ChaosPartitionSecondaryMoveScheduledEvent.
10023func (cpsmse ChaosPartitionSecondaryMoveScheduledEvent) AsChaosReplicaRestartScheduledEvent() (*ChaosReplicaRestartScheduledEvent, bool) {
10024	return nil, false
10025}
10026
10027// AsChaosNodeRestartScheduledEvent is the BasicFabricEvent implementation for ChaosPartitionSecondaryMoveScheduledEvent.
10028func (cpsmse ChaosPartitionSecondaryMoveScheduledEvent) AsChaosNodeRestartScheduledEvent() (*ChaosNodeRestartScheduledEvent, bool) {
10029	return nil, false
10030}
10031
10032// AsFabricEvent is the BasicFabricEvent implementation for ChaosPartitionSecondaryMoveScheduledEvent.
10033func (cpsmse ChaosPartitionSecondaryMoveScheduledEvent) AsFabricEvent() (*FabricEvent, bool) {
10034	return nil, false
10035}
10036
10037// AsBasicFabricEvent is the BasicFabricEvent implementation for ChaosPartitionSecondaryMoveScheduledEvent.
10038func (cpsmse ChaosPartitionSecondaryMoveScheduledEvent) AsBasicFabricEvent() (BasicFabricEvent, bool) {
10039	return &cpsmse, true
10040}
10041
10042// ChaosReplicaRemovalScheduledEvent chaos Remove Replica Fault Scheduled event.
10043type ChaosReplicaRemovalScheduledEvent struct {
10044	// FaultGroupID - Id of fault group.
10045	FaultGroupID *uuid.UUID `json:"FaultGroupId,omitempty"`
10046	// FaultID - Id of fault.
10047	FaultID *uuid.UUID `json:"FaultId,omitempty"`
10048	// ServiceURI - Service name.
10049	ServiceURI *string `json:"ServiceUri,omitempty"`
10050	// 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.
10051	PartitionID *uuid.UUID `json:"PartitionId,omitempty"`
10052	// 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.
10053	ReplicaID *int64 `json:"ReplicaId,omitempty"`
10054	// EventInstanceID - The identifier for the FabricEvent instance.
10055	EventInstanceID *uuid.UUID `json:"EventInstanceId,omitempty"`
10056	// Category - The category of event.
10057	Category *string `json:"Category,omitempty"`
10058	// TimeStamp - The time event was logged.
10059	TimeStamp *date.Time `json:"TimeStamp,omitempty"`
10060	// HasCorrelatedEvents - Shows there is existing related events available.
10061	HasCorrelatedEvents *bool `json:"HasCorrelatedEvents,omitempty"`
10062	// 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'
10063	Kind KindBasicFabricEvent `json:"Kind,omitempty"`
10064}
10065
10066// MarshalJSON is the custom marshaler for ChaosReplicaRemovalScheduledEvent.
10067func (crrse ChaosReplicaRemovalScheduledEvent) MarshalJSON() ([]byte, error) {
10068	crrse.Kind = KindChaosReplicaRemovalScheduled
10069	objectMap := make(map[string]interface{})
10070	if crrse.FaultGroupID != nil {
10071		objectMap["FaultGroupId"] = crrse.FaultGroupID
10072	}
10073	if crrse.FaultID != nil {
10074		objectMap["FaultId"] = crrse.FaultID
10075	}
10076	if crrse.ServiceURI != nil {
10077		objectMap["ServiceUri"] = crrse.ServiceURI
10078	}
10079	if crrse.PartitionID != nil {
10080		objectMap["PartitionId"] = crrse.PartitionID
10081	}
10082	if crrse.ReplicaID != nil {
10083		objectMap["ReplicaId"] = crrse.ReplicaID
10084	}
10085	if crrse.EventInstanceID != nil {
10086		objectMap["EventInstanceId"] = crrse.EventInstanceID
10087	}
10088	if crrse.Category != nil {
10089		objectMap["Category"] = crrse.Category
10090	}
10091	if crrse.TimeStamp != nil {
10092		objectMap["TimeStamp"] = crrse.TimeStamp
10093	}
10094	if crrse.HasCorrelatedEvents != nil {
10095		objectMap["HasCorrelatedEvents"] = crrse.HasCorrelatedEvents
10096	}
10097	if crrse.Kind != "" {
10098		objectMap["Kind"] = crrse.Kind
10099	}
10100	return json.Marshal(objectMap)
10101}
10102
10103// AsApplicationEvent is the BasicFabricEvent implementation for ChaosReplicaRemovalScheduledEvent.
10104func (crrse ChaosReplicaRemovalScheduledEvent) AsApplicationEvent() (*ApplicationEvent, bool) {
10105	return nil, false
10106}
10107
10108// AsBasicApplicationEvent is the BasicFabricEvent implementation for ChaosReplicaRemovalScheduledEvent.
10109func (crrse ChaosReplicaRemovalScheduledEvent) AsBasicApplicationEvent() (BasicApplicationEvent, bool) {
10110	return nil, false
10111}
10112
10113// AsClusterEvent is the BasicFabricEvent implementation for ChaosReplicaRemovalScheduledEvent.
10114func (crrse ChaosReplicaRemovalScheduledEvent) AsClusterEvent() (*ClusterEvent, bool) {
10115	return nil, false
10116}
10117
10118// AsBasicClusterEvent is the BasicFabricEvent implementation for ChaosReplicaRemovalScheduledEvent.
10119func (crrse ChaosReplicaRemovalScheduledEvent) AsBasicClusterEvent() (BasicClusterEvent, bool) {
10120	return nil, false
10121}
10122
10123// AsContainerInstanceEvent is the BasicFabricEvent implementation for ChaosReplicaRemovalScheduledEvent.
10124func (crrse ChaosReplicaRemovalScheduledEvent) AsContainerInstanceEvent() (*ContainerInstanceEvent, bool) {
10125	return nil, false
10126}
10127
10128// AsNodeEvent is the BasicFabricEvent implementation for ChaosReplicaRemovalScheduledEvent.
10129func (crrse ChaosReplicaRemovalScheduledEvent) AsNodeEvent() (*NodeEvent, bool) {
10130	return nil, false
10131}
10132
10133// AsBasicNodeEvent is the BasicFabricEvent implementation for ChaosReplicaRemovalScheduledEvent.
10134func (crrse ChaosReplicaRemovalScheduledEvent) AsBasicNodeEvent() (BasicNodeEvent, bool) {
10135	return nil, false
10136}
10137
10138// AsPartitionAnalysisEvent is the BasicFabricEvent implementation for ChaosReplicaRemovalScheduledEvent.
10139func (crrse ChaosReplicaRemovalScheduledEvent) AsPartitionAnalysisEvent() (*PartitionAnalysisEvent, bool) {
10140	return nil, false
10141}
10142
10143// AsBasicPartitionAnalysisEvent is the BasicFabricEvent implementation for ChaosReplicaRemovalScheduledEvent.
10144func (crrse ChaosReplicaRemovalScheduledEvent) AsBasicPartitionAnalysisEvent() (BasicPartitionAnalysisEvent, bool) {
10145	return nil, false
10146}
10147
10148// AsPartitionEvent is the BasicFabricEvent implementation for ChaosReplicaRemovalScheduledEvent.
10149func (crrse ChaosReplicaRemovalScheduledEvent) AsPartitionEvent() (*PartitionEvent, bool) {
10150	return nil, false
10151}
10152
10153// AsBasicPartitionEvent is the BasicFabricEvent implementation for ChaosReplicaRemovalScheduledEvent.
10154func (crrse ChaosReplicaRemovalScheduledEvent) AsBasicPartitionEvent() (BasicPartitionEvent, bool) {
10155	return nil, false
10156}
10157
10158// AsReplicaEvent is the BasicFabricEvent implementation for ChaosReplicaRemovalScheduledEvent.
10159func (crrse ChaosReplicaRemovalScheduledEvent) AsReplicaEvent() (*ReplicaEvent, bool) {
10160	return nil, false
10161}
10162
10163// AsBasicReplicaEvent is the BasicFabricEvent implementation for ChaosReplicaRemovalScheduledEvent.
10164func (crrse ChaosReplicaRemovalScheduledEvent) AsBasicReplicaEvent() (BasicReplicaEvent, bool) {
10165	return &crrse, true
10166}
10167
10168// AsServiceEvent is the BasicFabricEvent implementation for ChaosReplicaRemovalScheduledEvent.
10169func (crrse ChaosReplicaRemovalScheduledEvent) AsServiceEvent() (*ServiceEvent, bool) {
10170	return nil, false
10171}
10172
10173// AsBasicServiceEvent is the BasicFabricEvent implementation for ChaosReplicaRemovalScheduledEvent.
10174func (crrse ChaosReplicaRemovalScheduledEvent) AsBasicServiceEvent() (BasicServiceEvent, bool) {
10175	return nil, false
10176}
10177
10178// AsApplicationCreatedEvent is the BasicFabricEvent implementation for ChaosReplicaRemovalScheduledEvent.
10179func (crrse ChaosReplicaRemovalScheduledEvent) AsApplicationCreatedEvent() (*ApplicationCreatedEvent, bool) {
10180	return nil, false
10181}
10182
10183// AsApplicationDeletedEvent is the BasicFabricEvent implementation for ChaosReplicaRemovalScheduledEvent.
10184func (crrse ChaosReplicaRemovalScheduledEvent) AsApplicationDeletedEvent() (*ApplicationDeletedEvent, bool) {
10185	return nil, false
10186}
10187
10188// AsApplicationNewHealthReportEvent is the BasicFabricEvent implementation for ChaosReplicaRemovalScheduledEvent.
10189func (crrse ChaosReplicaRemovalScheduledEvent) AsApplicationNewHealthReportEvent() (*ApplicationNewHealthReportEvent, bool) {
10190	return nil, false
10191}
10192
10193// AsApplicationHealthReportExpiredEvent is the BasicFabricEvent implementation for ChaosReplicaRemovalScheduledEvent.
10194func (crrse ChaosReplicaRemovalScheduledEvent) AsApplicationHealthReportExpiredEvent() (*ApplicationHealthReportExpiredEvent, bool) {
10195	return nil, false
10196}
10197
10198// AsApplicationUpgradeCompletedEvent is the BasicFabricEvent implementation for ChaosReplicaRemovalScheduledEvent.
10199func (crrse ChaosReplicaRemovalScheduledEvent) AsApplicationUpgradeCompletedEvent() (*ApplicationUpgradeCompletedEvent, bool) {
10200	return nil, false
10201}
10202
10203// AsApplicationUpgradeDomainCompletedEvent is the BasicFabricEvent implementation for ChaosReplicaRemovalScheduledEvent.
10204func (crrse ChaosReplicaRemovalScheduledEvent) AsApplicationUpgradeDomainCompletedEvent() (*ApplicationUpgradeDomainCompletedEvent, bool) {
10205	return nil, false
10206}
10207
10208// AsApplicationUpgradeRollbackCompletedEvent is the BasicFabricEvent implementation for ChaosReplicaRemovalScheduledEvent.
10209func (crrse ChaosReplicaRemovalScheduledEvent) AsApplicationUpgradeRollbackCompletedEvent() (*ApplicationUpgradeRollbackCompletedEvent, bool) {
10210	return nil, false
10211}
10212
10213// AsApplicationUpgradeRollbackStartedEvent is the BasicFabricEvent implementation for ChaosReplicaRemovalScheduledEvent.
10214func (crrse ChaosReplicaRemovalScheduledEvent) AsApplicationUpgradeRollbackStartedEvent() (*ApplicationUpgradeRollbackStartedEvent, bool) {
10215	return nil, false
10216}
10217
10218// AsApplicationUpgradeStartedEvent is the BasicFabricEvent implementation for ChaosReplicaRemovalScheduledEvent.
10219func (crrse ChaosReplicaRemovalScheduledEvent) AsApplicationUpgradeStartedEvent() (*ApplicationUpgradeStartedEvent, bool) {
10220	return nil, false
10221}
10222
10223// AsDeployedApplicationNewHealthReportEvent is the BasicFabricEvent implementation for ChaosReplicaRemovalScheduledEvent.
10224func (crrse ChaosReplicaRemovalScheduledEvent) AsDeployedApplicationNewHealthReportEvent() (*DeployedApplicationNewHealthReportEvent, bool) {
10225	return nil, false
10226}
10227
10228// AsDeployedApplicationHealthReportExpiredEvent is the BasicFabricEvent implementation for ChaosReplicaRemovalScheduledEvent.
10229func (crrse ChaosReplicaRemovalScheduledEvent) AsDeployedApplicationHealthReportExpiredEvent() (*DeployedApplicationHealthReportExpiredEvent, bool) {
10230	return nil, false
10231}
10232
10233// AsApplicationProcessExitedEvent is the BasicFabricEvent implementation for ChaosReplicaRemovalScheduledEvent.
10234func (crrse ChaosReplicaRemovalScheduledEvent) AsApplicationProcessExitedEvent() (*ApplicationProcessExitedEvent, bool) {
10235	return nil, false
10236}
10237
10238// AsApplicationContainerInstanceExitedEvent is the BasicFabricEvent implementation for ChaosReplicaRemovalScheduledEvent.
10239func (crrse ChaosReplicaRemovalScheduledEvent) AsApplicationContainerInstanceExitedEvent() (*ApplicationContainerInstanceExitedEvent, bool) {
10240	return nil, false
10241}
10242
10243// AsNodeAbortedEvent is the BasicFabricEvent implementation for ChaosReplicaRemovalScheduledEvent.
10244func (crrse ChaosReplicaRemovalScheduledEvent) AsNodeAbortedEvent() (*NodeAbortedEvent, bool) {
10245	return nil, false
10246}
10247
10248// AsNodeAddedToClusterEvent is the BasicFabricEvent implementation for ChaosReplicaRemovalScheduledEvent.
10249func (crrse ChaosReplicaRemovalScheduledEvent) AsNodeAddedToClusterEvent() (*NodeAddedToClusterEvent, bool) {
10250	return nil, false
10251}
10252
10253// AsNodeClosedEvent is the BasicFabricEvent implementation for ChaosReplicaRemovalScheduledEvent.
10254func (crrse ChaosReplicaRemovalScheduledEvent) AsNodeClosedEvent() (*NodeClosedEvent, bool) {
10255	return nil, false
10256}
10257
10258// AsNodeDeactivateCompletedEvent is the BasicFabricEvent implementation for ChaosReplicaRemovalScheduledEvent.
10259func (crrse ChaosReplicaRemovalScheduledEvent) AsNodeDeactivateCompletedEvent() (*NodeDeactivateCompletedEvent, bool) {
10260	return nil, false
10261}
10262
10263// AsNodeDeactivateStartedEvent is the BasicFabricEvent implementation for ChaosReplicaRemovalScheduledEvent.
10264func (crrse ChaosReplicaRemovalScheduledEvent) AsNodeDeactivateStartedEvent() (*NodeDeactivateStartedEvent, bool) {
10265	return nil, false
10266}
10267
10268// AsNodeDownEvent is the BasicFabricEvent implementation for ChaosReplicaRemovalScheduledEvent.
10269func (crrse ChaosReplicaRemovalScheduledEvent) AsNodeDownEvent() (*NodeDownEvent, bool) {
10270	return nil, false
10271}
10272
10273// AsNodeNewHealthReportEvent is the BasicFabricEvent implementation for ChaosReplicaRemovalScheduledEvent.
10274func (crrse ChaosReplicaRemovalScheduledEvent) AsNodeNewHealthReportEvent() (*NodeNewHealthReportEvent, bool) {
10275	return nil, false
10276}
10277
10278// AsNodeHealthReportExpiredEvent is the BasicFabricEvent implementation for ChaosReplicaRemovalScheduledEvent.
10279func (crrse ChaosReplicaRemovalScheduledEvent) AsNodeHealthReportExpiredEvent() (*NodeHealthReportExpiredEvent, bool) {
10280	return nil, false
10281}
10282
10283// AsNodeOpenSucceededEvent is the BasicFabricEvent implementation for ChaosReplicaRemovalScheduledEvent.
10284func (crrse ChaosReplicaRemovalScheduledEvent) AsNodeOpenSucceededEvent() (*NodeOpenSucceededEvent, bool) {
10285	return nil, false
10286}
10287
10288// AsNodeOpenFailedEvent is the BasicFabricEvent implementation for ChaosReplicaRemovalScheduledEvent.
10289func (crrse ChaosReplicaRemovalScheduledEvent) AsNodeOpenFailedEvent() (*NodeOpenFailedEvent, bool) {
10290	return nil, false
10291}
10292
10293// AsNodeRemovedFromClusterEvent is the BasicFabricEvent implementation for ChaosReplicaRemovalScheduledEvent.
10294func (crrse ChaosReplicaRemovalScheduledEvent) AsNodeRemovedFromClusterEvent() (*NodeRemovedFromClusterEvent, bool) {
10295	return nil, false
10296}
10297
10298// AsNodeUpEvent is the BasicFabricEvent implementation for ChaosReplicaRemovalScheduledEvent.
10299func (crrse ChaosReplicaRemovalScheduledEvent) AsNodeUpEvent() (*NodeUpEvent, bool) {
10300	return nil, false
10301}
10302
10303// AsPartitionNewHealthReportEvent is the BasicFabricEvent implementation for ChaosReplicaRemovalScheduledEvent.
10304func (crrse ChaosReplicaRemovalScheduledEvent) AsPartitionNewHealthReportEvent() (*PartitionNewHealthReportEvent, bool) {
10305	return nil, false
10306}
10307
10308// AsPartitionHealthReportExpiredEvent is the BasicFabricEvent implementation for ChaosReplicaRemovalScheduledEvent.
10309func (crrse ChaosReplicaRemovalScheduledEvent) AsPartitionHealthReportExpiredEvent() (*PartitionHealthReportExpiredEvent, bool) {
10310	return nil, false
10311}
10312
10313// AsPartitionReconfiguredEvent is the BasicFabricEvent implementation for ChaosReplicaRemovalScheduledEvent.
10314func (crrse ChaosReplicaRemovalScheduledEvent) AsPartitionReconfiguredEvent() (*PartitionReconfiguredEvent, bool) {
10315	return nil, false
10316}
10317
10318// AsPartitionPrimaryMoveAnalysisEvent is the BasicFabricEvent implementation for ChaosReplicaRemovalScheduledEvent.
10319func (crrse ChaosReplicaRemovalScheduledEvent) AsPartitionPrimaryMoveAnalysisEvent() (*PartitionPrimaryMoveAnalysisEvent, bool) {
10320	return nil, false
10321}
10322
10323// AsServiceCreatedEvent is the BasicFabricEvent implementation for ChaosReplicaRemovalScheduledEvent.
10324func (crrse ChaosReplicaRemovalScheduledEvent) AsServiceCreatedEvent() (*ServiceCreatedEvent, bool) {
10325	return nil, false
10326}
10327
10328// AsServiceDeletedEvent is the BasicFabricEvent implementation for ChaosReplicaRemovalScheduledEvent.
10329func (crrse ChaosReplicaRemovalScheduledEvent) AsServiceDeletedEvent() (*ServiceDeletedEvent, bool) {
10330	return nil, false
10331}
10332
10333// AsServiceNewHealthReportEvent is the BasicFabricEvent implementation for ChaosReplicaRemovalScheduledEvent.
10334func (crrse ChaosReplicaRemovalScheduledEvent) AsServiceNewHealthReportEvent() (*ServiceNewHealthReportEvent, bool) {
10335	return nil, false
10336}
10337
10338// AsServiceHealthReportExpiredEvent is the BasicFabricEvent implementation for ChaosReplicaRemovalScheduledEvent.
10339func (crrse ChaosReplicaRemovalScheduledEvent) AsServiceHealthReportExpiredEvent() (*ServiceHealthReportExpiredEvent, bool) {
10340	return nil, false
10341}
10342
10343// AsDeployedServicePackageNewHealthReportEvent is the BasicFabricEvent implementation for ChaosReplicaRemovalScheduledEvent.
10344func (crrse ChaosReplicaRemovalScheduledEvent) AsDeployedServicePackageNewHealthReportEvent() (*DeployedServicePackageNewHealthReportEvent, bool) {
10345	return nil, false
10346}
10347
10348// AsDeployedServicePackageHealthReportExpiredEvent is the BasicFabricEvent implementation for ChaosReplicaRemovalScheduledEvent.
10349func (crrse ChaosReplicaRemovalScheduledEvent) AsDeployedServicePackageHealthReportExpiredEvent() (*DeployedServicePackageHealthReportExpiredEvent, bool) {
10350	return nil, false
10351}
10352
10353// AsStatefulReplicaNewHealthReportEvent is the BasicFabricEvent implementation for ChaosReplicaRemovalScheduledEvent.
10354func (crrse ChaosReplicaRemovalScheduledEvent) AsStatefulReplicaNewHealthReportEvent() (*StatefulReplicaNewHealthReportEvent, bool) {
10355	return nil, false
10356}
10357
10358// AsStatefulReplicaHealthReportExpiredEvent is the BasicFabricEvent implementation for ChaosReplicaRemovalScheduledEvent.
10359func (crrse ChaosReplicaRemovalScheduledEvent) AsStatefulReplicaHealthReportExpiredEvent() (*StatefulReplicaHealthReportExpiredEvent, bool) {
10360	return nil, false
10361}
10362
10363// AsStatelessReplicaNewHealthReportEvent is the BasicFabricEvent implementation for ChaosReplicaRemovalScheduledEvent.
10364func (crrse ChaosReplicaRemovalScheduledEvent) AsStatelessReplicaNewHealthReportEvent() (*StatelessReplicaNewHealthReportEvent, bool) {
10365	return nil, false
10366}
10367
10368// AsStatelessReplicaHealthReportExpiredEvent is the BasicFabricEvent implementation for ChaosReplicaRemovalScheduledEvent.
10369func (crrse ChaosReplicaRemovalScheduledEvent) AsStatelessReplicaHealthReportExpiredEvent() (*StatelessReplicaHealthReportExpiredEvent, bool) {
10370	return nil, false
10371}
10372
10373// AsClusterNewHealthReportEvent is the BasicFabricEvent implementation for ChaosReplicaRemovalScheduledEvent.
10374func (crrse ChaosReplicaRemovalScheduledEvent) AsClusterNewHealthReportEvent() (*ClusterNewHealthReportEvent, bool) {
10375	return nil, false
10376}
10377
10378// AsClusterHealthReportExpiredEvent is the BasicFabricEvent implementation for ChaosReplicaRemovalScheduledEvent.
10379func (crrse ChaosReplicaRemovalScheduledEvent) AsClusterHealthReportExpiredEvent() (*ClusterHealthReportExpiredEvent, bool) {
10380	return nil, false
10381}
10382
10383// AsClusterUpgradeCompletedEvent is the BasicFabricEvent implementation for ChaosReplicaRemovalScheduledEvent.
10384func (crrse ChaosReplicaRemovalScheduledEvent) AsClusterUpgradeCompletedEvent() (*ClusterUpgradeCompletedEvent, bool) {
10385	return nil, false
10386}
10387
10388// AsClusterUpgradeDomainCompletedEvent is the BasicFabricEvent implementation for ChaosReplicaRemovalScheduledEvent.
10389func (crrse ChaosReplicaRemovalScheduledEvent) AsClusterUpgradeDomainCompletedEvent() (*ClusterUpgradeDomainCompletedEvent, bool) {
10390	return nil, false
10391}
10392
10393// AsClusterUpgradeRollbackCompletedEvent is the BasicFabricEvent implementation for ChaosReplicaRemovalScheduledEvent.
10394func (crrse ChaosReplicaRemovalScheduledEvent) AsClusterUpgradeRollbackCompletedEvent() (*ClusterUpgradeRollbackCompletedEvent, bool) {
10395	return nil, false
10396}
10397
10398// AsClusterUpgradeRollbackStartedEvent is the BasicFabricEvent implementation for ChaosReplicaRemovalScheduledEvent.
10399func (crrse ChaosReplicaRemovalScheduledEvent) AsClusterUpgradeRollbackStartedEvent() (*ClusterUpgradeRollbackStartedEvent, bool) {
10400	return nil, false
10401}
10402
10403// AsClusterUpgradeStartedEvent is the BasicFabricEvent implementation for ChaosReplicaRemovalScheduledEvent.
10404func (crrse ChaosReplicaRemovalScheduledEvent) AsClusterUpgradeStartedEvent() (*ClusterUpgradeStartedEvent, bool) {
10405	return nil, false
10406}
10407
10408// AsChaosStoppedEvent is the BasicFabricEvent implementation for ChaosReplicaRemovalScheduledEvent.
10409func (crrse ChaosReplicaRemovalScheduledEvent) AsChaosStoppedEvent() (*ChaosStoppedEvent, bool) {
10410	return nil, false
10411}
10412
10413// AsChaosStartedEvent is the BasicFabricEvent implementation for ChaosReplicaRemovalScheduledEvent.
10414func (crrse ChaosReplicaRemovalScheduledEvent) AsChaosStartedEvent() (*ChaosStartedEvent, bool) {
10415	return nil, false
10416}
10417
10418// AsChaosCodePackageRestartScheduledEvent is the BasicFabricEvent implementation for ChaosReplicaRemovalScheduledEvent.
10419func (crrse ChaosReplicaRemovalScheduledEvent) AsChaosCodePackageRestartScheduledEvent() (*ChaosCodePackageRestartScheduledEvent, bool) {
10420	return nil, false
10421}
10422
10423// AsChaosReplicaRemovalScheduledEvent is the BasicFabricEvent implementation for ChaosReplicaRemovalScheduledEvent.
10424func (crrse ChaosReplicaRemovalScheduledEvent) AsChaosReplicaRemovalScheduledEvent() (*ChaosReplicaRemovalScheduledEvent, bool) {
10425	return &crrse, true
10426}
10427
10428// AsChaosPartitionSecondaryMoveScheduledEvent is the BasicFabricEvent implementation for ChaosReplicaRemovalScheduledEvent.
10429func (crrse ChaosReplicaRemovalScheduledEvent) AsChaosPartitionSecondaryMoveScheduledEvent() (*ChaosPartitionSecondaryMoveScheduledEvent, bool) {
10430	return nil, false
10431}
10432
10433// AsChaosPartitionPrimaryMoveScheduledEvent is the BasicFabricEvent implementation for ChaosReplicaRemovalScheduledEvent.
10434func (crrse ChaosReplicaRemovalScheduledEvent) AsChaosPartitionPrimaryMoveScheduledEvent() (*ChaosPartitionPrimaryMoveScheduledEvent, bool) {
10435	return nil, false
10436}
10437
10438// AsChaosReplicaRestartScheduledEvent is the BasicFabricEvent implementation for ChaosReplicaRemovalScheduledEvent.
10439func (crrse ChaosReplicaRemovalScheduledEvent) AsChaosReplicaRestartScheduledEvent() (*ChaosReplicaRestartScheduledEvent, bool) {
10440	return nil, false
10441}
10442
10443// AsChaosNodeRestartScheduledEvent is the BasicFabricEvent implementation for ChaosReplicaRemovalScheduledEvent.
10444func (crrse ChaosReplicaRemovalScheduledEvent) AsChaosNodeRestartScheduledEvent() (*ChaosNodeRestartScheduledEvent, bool) {
10445	return nil, false
10446}
10447
10448// AsFabricEvent is the BasicFabricEvent implementation for ChaosReplicaRemovalScheduledEvent.
10449func (crrse ChaosReplicaRemovalScheduledEvent) AsFabricEvent() (*FabricEvent, bool) {
10450	return nil, false
10451}
10452
10453// AsBasicFabricEvent is the BasicFabricEvent implementation for ChaosReplicaRemovalScheduledEvent.
10454func (crrse ChaosReplicaRemovalScheduledEvent) AsBasicFabricEvent() (BasicFabricEvent, bool) {
10455	return &crrse, true
10456}
10457
10458// ChaosReplicaRestartScheduledEvent chaos Restart Replica Fault Scheduled event.
10459type ChaosReplicaRestartScheduledEvent struct {
10460	// FaultGroupID - Id of fault group.
10461	FaultGroupID *uuid.UUID `json:"FaultGroupId,omitempty"`
10462	// FaultID - Id of fault.
10463	FaultID *uuid.UUID `json:"FaultId,omitempty"`
10464	// ServiceURI - Service name.
10465	ServiceURI *string `json:"ServiceUri,omitempty"`
10466	// 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.
10467	PartitionID *uuid.UUID `json:"PartitionId,omitempty"`
10468	// 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.
10469	ReplicaID *int64 `json:"ReplicaId,omitempty"`
10470	// EventInstanceID - The identifier for the FabricEvent instance.
10471	EventInstanceID *uuid.UUID `json:"EventInstanceId,omitempty"`
10472	// Category - The category of event.
10473	Category *string `json:"Category,omitempty"`
10474	// TimeStamp - The time event was logged.
10475	TimeStamp *date.Time `json:"TimeStamp,omitempty"`
10476	// HasCorrelatedEvents - Shows there is existing related events available.
10477	HasCorrelatedEvents *bool `json:"HasCorrelatedEvents,omitempty"`
10478	// 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'
10479	Kind KindBasicFabricEvent `json:"Kind,omitempty"`
10480}
10481
10482// MarshalJSON is the custom marshaler for ChaosReplicaRestartScheduledEvent.
10483func (crrse ChaosReplicaRestartScheduledEvent) MarshalJSON() ([]byte, error) {
10484	crrse.Kind = KindChaosReplicaRestartScheduled
10485	objectMap := make(map[string]interface{})
10486	if crrse.FaultGroupID != nil {
10487		objectMap["FaultGroupId"] = crrse.FaultGroupID
10488	}
10489	if crrse.FaultID != nil {
10490		objectMap["FaultId"] = crrse.FaultID
10491	}
10492	if crrse.ServiceURI != nil {
10493		objectMap["ServiceUri"] = crrse.ServiceURI
10494	}
10495	if crrse.PartitionID != nil {
10496		objectMap["PartitionId"] = crrse.PartitionID
10497	}
10498	if crrse.ReplicaID != nil {
10499		objectMap["ReplicaId"] = crrse.ReplicaID
10500	}
10501	if crrse.EventInstanceID != nil {
10502		objectMap["EventInstanceId"] = crrse.EventInstanceID
10503	}
10504	if crrse.Category != nil {
10505		objectMap["Category"] = crrse.Category
10506	}
10507	if crrse.TimeStamp != nil {
10508		objectMap["TimeStamp"] = crrse.TimeStamp
10509	}
10510	if crrse.HasCorrelatedEvents != nil {
10511		objectMap["HasCorrelatedEvents"] = crrse.HasCorrelatedEvents
10512	}
10513	if crrse.Kind != "" {
10514		objectMap["Kind"] = crrse.Kind
10515	}
10516	return json.Marshal(objectMap)
10517}
10518
10519// AsApplicationEvent is the BasicFabricEvent implementation for ChaosReplicaRestartScheduledEvent.
10520func (crrse ChaosReplicaRestartScheduledEvent) AsApplicationEvent() (*ApplicationEvent, bool) {
10521	return nil, false
10522}
10523
10524// AsBasicApplicationEvent is the BasicFabricEvent implementation for ChaosReplicaRestartScheduledEvent.
10525func (crrse ChaosReplicaRestartScheduledEvent) AsBasicApplicationEvent() (BasicApplicationEvent, bool) {
10526	return nil, false
10527}
10528
10529// AsClusterEvent is the BasicFabricEvent implementation for ChaosReplicaRestartScheduledEvent.
10530func (crrse ChaosReplicaRestartScheduledEvent) AsClusterEvent() (*ClusterEvent, bool) {
10531	return nil, false
10532}
10533
10534// AsBasicClusterEvent is the BasicFabricEvent implementation for ChaosReplicaRestartScheduledEvent.
10535func (crrse ChaosReplicaRestartScheduledEvent) AsBasicClusterEvent() (BasicClusterEvent, bool) {
10536	return nil, false
10537}
10538
10539// AsContainerInstanceEvent is the BasicFabricEvent implementation for ChaosReplicaRestartScheduledEvent.
10540func (crrse ChaosReplicaRestartScheduledEvent) AsContainerInstanceEvent() (*ContainerInstanceEvent, bool) {
10541	return nil, false
10542}
10543
10544// AsNodeEvent is the BasicFabricEvent implementation for ChaosReplicaRestartScheduledEvent.
10545func (crrse ChaosReplicaRestartScheduledEvent) AsNodeEvent() (*NodeEvent, bool) {
10546	return nil, false
10547}
10548
10549// AsBasicNodeEvent is the BasicFabricEvent implementation for ChaosReplicaRestartScheduledEvent.
10550func (crrse ChaosReplicaRestartScheduledEvent) AsBasicNodeEvent() (BasicNodeEvent, bool) {
10551	return nil, false
10552}
10553
10554// AsPartitionAnalysisEvent is the BasicFabricEvent implementation for ChaosReplicaRestartScheduledEvent.
10555func (crrse ChaosReplicaRestartScheduledEvent) AsPartitionAnalysisEvent() (*PartitionAnalysisEvent, bool) {
10556	return nil, false
10557}
10558
10559// AsBasicPartitionAnalysisEvent is the BasicFabricEvent implementation for ChaosReplicaRestartScheduledEvent.
10560func (crrse ChaosReplicaRestartScheduledEvent) AsBasicPartitionAnalysisEvent() (BasicPartitionAnalysisEvent, bool) {
10561	return nil, false
10562}
10563
10564// AsPartitionEvent is the BasicFabricEvent implementation for ChaosReplicaRestartScheduledEvent.
10565func (crrse ChaosReplicaRestartScheduledEvent) AsPartitionEvent() (*PartitionEvent, bool) {
10566	return nil, false
10567}
10568
10569// AsBasicPartitionEvent is the BasicFabricEvent implementation for ChaosReplicaRestartScheduledEvent.
10570func (crrse ChaosReplicaRestartScheduledEvent) AsBasicPartitionEvent() (BasicPartitionEvent, bool) {
10571	return nil, false
10572}
10573
10574// AsReplicaEvent is the BasicFabricEvent implementation for ChaosReplicaRestartScheduledEvent.
10575func (crrse ChaosReplicaRestartScheduledEvent) AsReplicaEvent() (*ReplicaEvent, bool) {
10576	return nil, false
10577}
10578
10579// AsBasicReplicaEvent is the BasicFabricEvent implementation for ChaosReplicaRestartScheduledEvent.
10580func (crrse ChaosReplicaRestartScheduledEvent) AsBasicReplicaEvent() (BasicReplicaEvent, bool) {
10581	return &crrse, true
10582}
10583
10584// AsServiceEvent is the BasicFabricEvent implementation for ChaosReplicaRestartScheduledEvent.
10585func (crrse ChaosReplicaRestartScheduledEvent) AsServiceEvent() (*ServiceEvent, bool) {
10586	return nil, false
10587}
10588
10589// AsBasicServiceEvent is the BasicFabricEvent implementation for ChaosReplicaRestartScheduledEvent.
10590func (crrse ChaosReplicaRestartScheduledEvent) AsBasicServiceEvent() (BasicServiceEvent, bool) {
10591	return nil, false
10592}
10593
10594// AsApplicationCreatedEvent is the BasicFabricEvent implementation for ChaosReplicaRestartScheduledEvent.
10595func (crrse ChaosReplicaRestartScheduledEvent) AsApplicationCreatedEvent() (*ApplicationCreatedEvent, bool) {
10596	return nil, false
10597}
10598
10599// AsApplicationDeletedEvent is the BasicFabricEvent implementation for ChaosReplicaRestartScheduledEvent.
10600func (crrse ChaosReplicaRestartScheduledEvent) AsApplicationDeletedEvent() (*ApplicationDeletedEvent, bool) {
10601	return nil, false
10602}
10603
10604// AsApplicationNewHealthReportEvent is the BasicFabricEvent implementation for ChaosReplicaRestartScheduledEvent.
10605func (crrse ChaosReplicaRestartScheduledEvent) AsApplicationNewHealthReportEvent() (*ApplicationNewHealthReportEvent, bool) {
10606	return nil, false
10607}
10608
10609// AsApplicationHealthReportExpiredEvent is the BasicFabricEvent implementation for ChaosReplicaRestartScheduledEvent.
10610func (crrse ChaosReplicaRestartScheduledEvent) AsApplicationHealthReportExpiredEvent() (*ApplicationHealthReportExpiredEvent, bool) {
10611	return nil, false
10612}
10613
10614// AsApplicationUpgradeCompletedEvent is the BasicFabricEvent implementation for ChaosReplicaRestartScheduledEvent.
10615func (crrse ChaosReplicaRestartScheduledEvent) AsApplicationUpgradeCompletedEvent() (*ApplicationUpgradeCompletedEvent, bool) {
10616	return nil, false
10617}
10618
10619// AsApplicationUpgradeDomainCompletedEvent is the BasicFabricEvent implementation for ChaosReplicaRestartScheduledEvent.
10620func (crrse ChaosReplicaRestartScheduledEvent) AsApplicationUpgradeDomainCompletedEvent() (*ApplicationUpgradeDomainCompletedEvent, bool) {
10621	return nil, false
10622}
10623
10624// AsApplicationUpgradeRollbackCompletedEvent is the BasicFabricEvent implementation for ChaosReplicaRestartScheduledEvent.
10625func (crrse ChaosReplicaRestartScheduledEvent) AsApplicationUpgradeRollbackCompletedEvent() (*ApplicationUpgradeRollbackCompletedEvent, bool) {
10626	return nil, false
10627}
10628
10629// AsApplicationUpgradeRollbackStartedEvent is the BasicFabricEvent implementation for ChaosReplicaRestartScheduledEvent.
10630func (crrse ChaosReplicaRestartScheduledEvent) AsApplicationUpgradeRollbackStartedEvent() (*ApplicationUpgradeRollbackStartedEvent, bool) {
10631	return nil, false
10632}
10633
10634// AsApplicationUpgradeStartedEvent is the BasicFabricEvent implementation for ChaosReplicaRestartScheduledEvent.
10635func (crrse ChaosReplicaRestartScheduledEvent) AsApplicationUpgradeStartedEvent() (*ApplicationUpgradeStartedEvent, bool) {
10636	return nil, false
10637}
10638
10639// AsDeployedApplicationNewHealthReportEvent is the BasicFabricEvent implementation for ChaosReplicaRestartScheduledEvent.
10640func (crrse ChaosReplicaRestartScheduledEvent) AsDeployedApplicationNewHealthReportEvent() (*DeployedApplicationNewHealthReportEvent, bool) {
10641	return nil, false
10642}
10643
10644// AsDeployedApplicationHealthReportExpiredEvent is the BasicFabricEvent implementation for ChaosReplicaRestartScheduledEvent.
10645func (crrse ChaosReplicaRestartScheduledEvent) AsDeployedApplicationHealthReportExpiredEvent() (*DeployedApplicationHealthReportExpiredEvent, bool) {
10646	return nil, false
10647}
10648
10649// AsApplicationProcessExitedEvent is the BasicFabricEvent implementation for ChaosReplicaRestartScheduledEvent.
10650func (crrse ChaosReplicaRestartScheduledEvent) AsApplicationProcessExitedEvent() (*ApplicationProcessExitedEvent, bool) {
10651	return nil, false
10652}
10653
10654// AsApplicationContainerInstanceExitedEvent is the BasicFabricEvent implementation for ChaosReplicaRestartScheduledEvent.
10655func (crrse ChaosReplicaRestartScheduledEvent) AsApplicationContainerInstanceExitedEvent() (*ApplicationContainerInstanceExitedEvent, bool) {
10656	return nil, false
10657}
10658
10659// AsNodeAbortedEvent is the BasicFabricEvent implementation for ChaosReplicaRestartScheduledEvent.
10660func (crrse ChaosReplicaRestartScheduledEvent) AsNodeAbortedEvent() (*NodeAbortedEvent, bool) {
10661	return nil, false
10662}
10663
10664// AsNodeAddedToClusterEvent is the BasicFabricEvent implementation for ChaosReplicaRestartScheduledEvent.
10665func (crrse ChaosReplicaRestartScheduledEvent) AsNodeAddedToClusterEvent() (*NodeAddedToClusterEvent, bool) {
10666	return nil, false
10667}
10668
10669// AsNodeClosedEvent is the BasicFabricEvent implementation for ChaosReplicaRestartScheduledEvent.
10670func (crrse ChaosReplicaRestartScheduledEvent) AsNodeClosedEvent() (*NodeClosedEvent, bool) {
10671	return nil, false
10672}
10673
10674// AsNodeDeactivateCompletedEvent is the BasicFabricEvent implementation for ChaosReplicaRestartScheduledEvent.
10675func (crrse ChaosReplicaRestartScheduledEvent) AsNodeDeactivateCompletedEvent() (*NodeDeactivateCompletedEvent, bool) {
10676	return nil, false
10677}
10678
10679// AsNodeDeactivateStartedEvent is the BasicFabricEvent implementation for ChaosReplicaRestartScheduledEvent.
10680func (crrse ChaosReplicaRestartScheduledEvent) AsNodeDeactivateStartedEvent() (*NodeDeactivateStartedEvent, bool) {
10681	return nil, false
10682}
10683
10684// AsNodeDownEvent is the BasicFabricEvent implementation for ChaosReplicaRestartScheduledEvent.
10685func (crrse ChaosReplicaRestartScheduledEvent) AsNodeDownEvent() (*NodeDownEvent, bool) {
10686	return nil, false
10687}
10688
10689// AsNodeNewHealthReportEvent is the BasicFabricEvent implementation for ChaosReplicaRestartScheduledEvent.
10690func (crrse ChaosReplicaRestartScheduledEvent) AsNodeNewHealthReportEvent() (*NodeNewHealthReportEvent, bool) {
10691	return nil, false
10692}
10693
10694// AsNodeHealthReportExpiredEvent is the BasicFabricEvent implementation for ChaosReplicaRestartScheduledEvent.
10695func (crrse ChaosReplicaRestartScheduledEvent) AsNodeHealthReportExpiredEvent() (*NodeHealthReportExpiredEvent, bool) {
10696	return nil, false
10697}
10698
10699// AsNodeOpenSucceededEvent is the BasicFabricEvent implementation for ChaosReplicaRestartScheduledEvent.
10700func (crrse ChaosReplicaRestartScheduledEvent) AsNodeOpenSucceededEvent() (*NodeOpenSucceededEvent, bool) {
10701	return nil, false
10702}
10703
10704// AsNodeOpenFailedEvent is the BasicFabricEvent implementation for ChaosReplicaRestartScheduledEvent.
10705func (crrse ChaosReplicaRestartScheduledEvent) AsNodeOpenFailedEvent() (*NodeOpenFailedEvent, bool) {
10706	return nil, false
10707}
10708
10709// AsNodeRemovedFromClusterEvent is the BasicFabricEvent implementation for ChaosReplicaRestartScheduledEvent.
10710func (crrse ChaosReplicaRestartScheduledEvent) AsNodeRemovedFromClusterEvent() (*NodeRemovedFromClusterEvent, bool) {
10711	return nil, false
10712}
10713
10714// AsNodeUpEvent is the BasicFabricEvent implementation for ChaosReplicaRestartScheduledEvent.
10715func (crrse ChaosReplicaRestartScheduledEvent) AsNodeUpEvent() (*NodeUpEvent, bool) {
10716	return nil, false
10717}
10718
10719// AsPartitionNewHealthReportEvent is the BasicFabricEvent implementation for ChaosReplicaRestartScheduledEvent.
10720func (crrse ChaosReplicaRestartScheduledEvent) AsPartitionNewHealthReportEvent() (*PartitionNewHealthReportEvent, bool) {
10721	return nil, false
10722}
10723
10724// AsPartitionHealthReportExpiredEvent is the BasicFabricEvent implementation for ChaosReplicaRestartScheduledEvent.
10725func (crrse ChaosReplicaRestartScheduledEvent) AsPartitionHealthReportExpiredEvent() (*PartitionHealthReportExpiredEvent, bool) {
10726	return nil, false
10727}
10728
10729// AsPartitionReconfiguredEvent is the BasicFabricEvent implementation for ChaosReplicaRestartScheduledEvent.
10730func (crrse ChaosReplicaRestartScheduledEvent) AsPartitionReconfiguredEvent() (*PartitionReconfiguredEvent, bool) {
10731	return nil, false
10732}
10733
10734// AsPartitionPrimaryMoveAnalysisEvent is the BasicFabricEvent implementation for ChaosReplicaRestartScheduledEvent.
10735func (crrse ChaosReplicaRestartScheduledEvent) AsPartitionPrimaryMoveAnalysisEvent() (*PartitionPrimaryMoveAnalysisEvent, bool) {
10736	return nil, false
10737}
10738
10739// AsServiceCreatedEvent is the BasicFabricEvent implementation for ChaosReplicaRestartScheduledEvent.
10740func (crrse ChaosReplicaRestartScheduledEvent) AsServiceCreatedEvent() (*ServiceCreatedEvent, bool) {
10741	return nil, false
10742}
10743
10744// AsServiceDeletedEvent is the BasicFabricEvent implementation for ChaosReplicaRestartScheduledEvent.
10745func (crrse ChaosReplicaRestartScheduledEvent) AsServiceDeletedEvent() (*ServiceDeletedEvent, bool) {
10746	return nil, false
10747}
10748
10749// AsServiceNewHealthReportEvent is the BasicFabricEvent implementation for ChaosReplicaRestartScheduledEvent.
10750func (crrse ChaosReplicaRestartScheduledEvent) AsServiceNewHealthReportEvent() (*ServiceNewHealthReportEvent, bool) {
10751	return nil, false
10752}
10753
10754// AsServiceHealthReportExpiredEvent is the BasicFabricEvent implementation for ChaosReplicaRestartScheduledEvent.
10755func (crrse ChaosReplicaRestartScheduledEvent) AsServiceHealthReportExpiredEvent() (*ServiceHealthReportExpiredEvent, bool) {
10756	return nil, false
10757}
10758
10759// AsDeployedServicePackageNewHealthReportEvent is the BasicFabricEvent implementation for ChaosReplicaRestartScheduledEvent.
10760func (crrse ChaosReplicaRestartScheduledEvent) AsDeployedServicePackageNewHealthReportEvent() (*DeployedServicePackageNewHealthReportEvent, bool) {
10761	return nil, false
10762}
10763
10764// AsDeployedServicePackageHealthReportExpiredEvent is the BasicFabricEvent implementation for ChaosReplicaRestartScheduledEvent.
10765func (crrse ChaosReplicaRestartScheduledEvent) AsDeployedServicePackageHealthReportExpiredEvent() (*DeployedServicePackageHealthReportExpiredEvent, bool) {
10766	return nil, false
10767}
10768
10769// AsStatefulReplicaNewHealthReportEvent is the BasicFabricEvent implementation for ChaosReplicaRestartScheduledEvent.
10770func (crrse ChaosReplicaRestartScheduledEvent) AsStatefulReplicaNewHealthReportEvent() (*StatefulReplicaNewHealthReportEvent, bool) {
10771	return nil, false
10772}
10773
10774// AsStatefulReplicaHealthReportExpiredEvent is the BasicFabricEvent implementation for ChaosReplicaRestartScheduledEvent.
10775func (crrse ChaosReplicaRestartScheduledEvent) AsStatefulReplicaHealthReportExpiredEvent() (*StatefulReplicaHealthReportExpiredEvent, bool) {
10776	return nil, false
10777}
10778
10779// AsStatelessReplicaNewHealthReportEvent is the BasicFabricEvent implementation for ChaosReplicaRestartScheduledEvent.
10780func (crrse ChaosReplicaRestartScheduledEvent) AsStatelessReplicaNewHealthReportEvent() (*StatelessReplicaNewHealthReportEvent, bool) {
10781	return nil, false
10782}
10783
10784// AsStatelessReplicaHealthReportExpiredEvent is the BasicFabricEvent implementation for ChaosReplicaRestartScheduledEvent.
10785func (crrse ChaosReplicaRestartScheduledEvent) AsStatelessReplicaHealthReportExpiredEvent() (*StatelessReplicaHealthReportExpiredEvent, bool) {
10786	return nil, false
10787}
10788
10789// AsClusterNewHealthReportEvent is the BasicFabricEvent implementation for ChaosReplicaRestartScheduledEvent.
10790func (crrse ChaosReplicaRestartScheduledEvent) AsClusterNewHealthReportEvent() (*ClusterNewHealthReportEvent, bool) {
10791	return nil, false
10792}
10793
10794// AsClusterHealthReportExpiredEvent is the BasicFabricEvent implementation for ChaosReplicaRestartScheduledEvent.
10795func (crrse ChaosReplicaRestartScheduledEvent) AsClusterHealthReportExpiredEvent() (*ClusterHealthReportExpiredEvent, bool) {
10796	return nil, false
10797}
10798
10799// AsClusterUpgradeCompletedEvent is the BasicFabricEvent implementation for ChaosReplicaRestartScheduledEvent.
10800func (crrse ChaosReplicaRestartScheduledEvent) AsClusterUpgradeCompletedEvent() (*ClusterUpgradeCompletedEvent, bool) {
10801	return nil, false
10802}
10803
10804// AsClusterUpgradeDomainCompletedEvent is the BasicFabricEvent implementation for ChaosReplicaRestartScheduledEvent.
10805func (crrse ChaosReplicaRestartScheduledEvent) AsClusterUpgradeDomainCompletedEvent() (*ClusterUpgradeDomainCompletedEvent, bool) {
10806	return nil, false
10807}
10808
10809// AsClusterUpgradeRollbackCompletedEvent is the BasicFabricEvent implementation for ChaosReplicaRestartScheduledEvent.
10810func (crrse ChaosReplicaRestartScheduledEvent) AsClusterUpgradeRollbackCompletedEvent() (*ClusterUpgradeRollbackCompletedEvent, bool) {
10811	return nil, false
10812}
10813
10814// AsClusterUpgradeRollbackStartedEvent is the BasicFabricEvent implementation for ChaosReplicaRestartScheduledEvent.
10815func (crrse ChaosReplicaRestartScheduledEvent) AsClusterUpgradeRollbackStartedEvent() (*ClusterUpgradeRollbackStartedEvent, bool) {
10816	return nil, false
10817}
10818
10819// AsClusterUpgradeStartedEvent is the BasicFabricEvent implementation for ChaosReplicaRestartScheduledEvent.
10820func (crrse ChaosReplicaRestartScheduledEvent) AsClusterUpgradeStartedEvent() (*ClusterUpgradeStartedEvent, bool) {
10821	return nil, false
10822}
10823
10824// AsChaosStoppedEvent is the BasicFabricEvent implementation for ChaosReplicaRestartScheduledEvent.
10825func (crrse ChaosReplicaRestartScheduledEvent) AsChaosStoppedEvent() (*ChaosStoppedEvent, bool) {
10826	return nil, false
10827}
10828
10829// AsChaosStartedEvent is the BasicFabricEvent implementation for ChaosReplicaRestartScheduledEvent.
10830func (crrse ChaosReplicaRestartScheduledEvent) AsChaosStartedEvent() (*ChaosStartedEvent, bool) {
10831	return nil, false
10832}
10833
10834// AsChaosCodePackageRestartScheduledEvent is the BasicFabricEvent implementation for ChaosReplicaRestartScheduledEvent.
10835func (crrse ChaosReplicaRestartScheduledEvent) AsChaosCodePackageRestartScheduledEvent() (*ChaosCodePackageRestartScheduledEvent, bool) {
10836	return nil, false
10837}
10838
10839// AsChaosReplicaRemovalScheduledEvent is the BasicFabricEvent implementation for ChaosReplicaRestartScheduledEvent.
10840func (crrse ChaosReplicaRestartScheduledEvent) AsChaosReplicaRemovalScheduledEvent() (*ChaosReplicaRemovalScheduledEvent, bool) {
10841	return nil, false
10842}
10843
10844// AsChaosPartitionSecondaryMoveScheduledEvent is the BasicFabricEvent implementation for ChaosReplicaRestartScheduledEvent.
10845func (crrse ChaosReplicaRestartScheduledEvent) AsChaosPartitionSecondaryMoveScheduledEvent() (*ChaosPartitionSecondaryMoveScheduledEvent, bool) {
10846	return nil, false
10847}
10848
10849// AsChaosPartitionPrimaryMoveScheduledEvent is the BasicFabricEvent implementation for ChaosReplicaRestartScheduledEvent.
10850func (crrse ChaosReplicaRestartScheduledEvent) AsChaosPartitionPrimaryMoveScheduledEvent() (*ChaosPartitionPrimaryMoveScheduledEvent, bool) {
10851	return nil, false
10852}
10853
10854// AsChaosReplicaRestartScheduledEvent is the BasicFabricEvent implementation for ChaosReplicaRestartScheduledEvent.
10855func (crrse ChaosReplicaRestartScheduledEvent) AsChaosReplicaRestartScheduledEvent() (*ChaosReplicaRestartScheduledEvent, bool) {
10856	return &crrse, true
10857}
10858
10859// AsChaosNodeRestartScheduledEvent is the BasicFabricEvent implementation for ChaosReplicaRestartScheduledEvent.
10860func (crrse ChaosReplicaRestartScheduledEvent) AsChaosNodeRestartScheduledEvent() (*ChaosNodeRestartScheduledEvent, bool) {
10861	return nil, false
10862}
10863
10864// AsFabricEvent is the BasicFabricEvent implementation for ChaosReplicaRestartScheduledEvent.
10865func (crrse ChaosReplicaRestartScheduledEvent) AsFabricEvent() (*FabricEvent, bool) {
10866	return nil, false
10867}
10868
10869// AsBasicFabricEvent is the BasicFabricEvent implementation for ChaosReplicaRestartScheduledEvent.
10870func (crrse ChaosReplicaRestartScheduledEvent) AsBasicFabricEvent() (BasicFabricEvent, bool) {
10871	return &crrse, true
10872}
10873
10874// ChaosSchedule defines the schedule used by Chaos.
10875type ChaosSchedule struct {
10876	// StartDate - The date and time Chaos will start using this schedule.
10877	StartDate *date.Time `json:"StartDate,omitempty"`
10878	// ExpiryDate - The date and time Chaos will continue to use this schedule until.
10879	ExpiryDate *date.Time `json:"ExpiryDate,omitempty"`
10880	// ChaosParametersDictionary - A mapping of string names to Chaos Parameters to be referenced by Chaos Schedule Jobs.
10881	ChaosParametersDictionary *[]ChaosParametersDictionaryItem `json:"ChaosParametersDictionary,omitempty"`
10882	// Jobs - A list of all Chaos Schedule Jobs that will be automated by the schedule.
10883	Jobs *[]ChaosScheduleJob `json:"Jobs,omitempty"`
10884}
10885
10886// ChaosScheduleDescription defines the Chaos Schedule used by Chaos and the version of the Chaos Schedule.
10887// The version value wraps back to 0 after surpassing 2,147,483,647.
10888type ChaosScheduleDescription struct {
10889	autorest.Response `json:"-"`
10890	// Version - The version number of the Schedule.
10891	Version *int32 `json:"Version,omitempty"`
10892	// Schedule - Defines the schedule used by Chaos.
10893	Schedule *ChaosSchedule `json:"Schedule,omitempty"`
10894}
10895
10896// ChaosScheduleJob defines a repetition rule and parameters of Chaos to be used with the Chaos Schedule.
10897type ChaosScheduleJob struct {
10898	// ChaosParameters - A reference to which Chaos Parameters of the Chaos Schedule to use.
10899	ChaosParameters *string `json:"ChaosParameters,omitempty"`
10900	// Days - Defines the days of the week that a Chaos Schedule Job will run for.
10901	Days *ChaosScheduleJobActiveDaysOfWeek `json:"Days,omitempty"`
10902	// Times - A list of Time Ranges that specify when during active days that this job will run. The times are interpreted as UTC.
10903	Times *[]TimeRange `json:"Times,omitempty"`
10904}
10905
10906// ChaosScheduleJobActiveDaysOfWeek defines the days of the week that a Chaos Schedule Job will run for.
10907type ChaosScheduleJobActiveDaysOfWeek struct {
10908	// Sunday - Indicates if the Chaos Schedule Job will run on Sunday
10909	Sunday *bool `json:"Sunday,omitempty"`
10910	// Monday - Indicates if the Chaos Schedule Job will run on Monday
10911	Monday *bool `json:"Monday,omitempty"`
10912	// Tuesday - Indicates if the Chaos Schedule Job will run on Tuesday
10913	Tuesday *bool `json:"Tuesday,omitempty"`
10914	// Wednesday - Indicates if the Chaos Schedule Job will run on Wednesday
10915	Wednesday *bool `json:"Wednesday,omitempty"`
10916	// Thursday - Indicates if the Chaos Schedule Job will run on Thursday
10917	Thursday *bool `json:"Thursday,omitempty"`
10918	// Friday - Indicates if the Chaos Schedule Job will run on Friday
10919	Friday *bool `json:"Friday,omitempty"`
10920	// Saturday - Indicates if the Chaos Schedule Job will run on Saturday
10921	Saturday *bool `json:"Saturday,omitempty"`
10922}
10923
10924// ChaosStartedEvent chaos Started event.
10925type ChaosStartedEvent struct {
10926	// MaxConcurrentFaults - Maximum number of concurrent faults.
10927	MaxConcurrentFaults *int64 `json:"MaxConcurrentFaults,omitempty"`
10928	// TimeToRunInSeconds - Time to run in seconds.
10929	TimeToRunInSeconds *float64 `json:"TimeToRunInSeconds,omitempty"`
10930	// MaxClusterStabilizationTimeoutInSeconds - Maximum timeout for cluster stabilization in seconds.
10931	MaxClusterStabilizationTimeoutInSeconds *float64 `json:"MaxClusterStabilizationTimeoutInSeconds,omitempty"`
10932	// WaitTimeBetweenIterationsInSeconds - Wait time between iterations in seconds.
10933	WaitTimeBetweenIterationsInSeconds *float64 `json:"WaitTimeBetweenIterationsInSeconds,omitempty"`
10934	// WaitTimeBetweenFaultsInSeconds - Wait time between faults in seconds.
10935	WaitTimeBetweenFaultsInSeconds *float64 `json:"WaitTimeBetweenFaultsInSeconds,omitempty"`
10936	// MoveReplicaFaultEnabled - Indicates MoveReplica fault is enabled.
10937	MoveReplicaFaultEnabled *bool `json:"MoveReplicaFaultEnabled,omitempty"`
10938	// IncludedNodeTypeList - List of included Node types.
10939	IncludedNodeTypeList *string `json:"IncludedNodeTypeList,omitempty"`
10940	// IncludedApplicationList - List of included Applications.
10941	IncludedApplicationList *string `json:"IncludedApplicationList,omitempty"`
10942	// ClusterHealthPolicy - Health policy.
10943	ClusterHealthPolicy *string `json:"ClusterHealthPolicy,omitempty"`
10944	// ChaosContext - Chaos Context.
10945	ChaosContext *string `json:"ChaosContext,omitempty"`
10946	// EventInstanceID - The identifier for the FabricEvent instance.
10947	EventInstanceID *uuid.UUID `json:"EventInstanceId,omitempty"`
10948	// Category - The category of event.
10949	Category *string `json:"Category,omitempty"`
10950	// TimeStamp - The time event was logged.
10951	TimeStamp *date.Time `json:"TimeStamp,omitempty"`
10952	// HasCorrelatedEvents - Shows there is existing related events available.
10953	HasCorrelatedEvents *bool `json:"HasCorrelatedEvents,omitempty"`
10954	// 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'
10955	Kind KindBasicFabricEvent `json:"Kind,omitempty"`
10956}
10957
10958// MarshalJSON is the custom marshaler for ChaosStartedEvent.
10959func (cse ChaosStartedEvent) MarshalJSON() ([]byte, error) {
10960	cse.Kind = KindChaosStarted
10961	objectMap := make(map[string]interface{})
10962	if cse.MaxConcurrentFaults != nil {
10963		objectMap["MaxConcurrentFaults"] = cse.MaxConcurrentFaults
10964	}
10965	if cse.TimeToRunInSeconds != nil {
10966		objectMap["TimeToRunInSeconds"] = cse.TimeToRunInSeconds
10967	}
10968	if cse.MaxClusterStabilizationTimeoutInSeconds != nil {
10969		objectMap["MaxClusterStabilizationTimeoutInSeconds"] = cse.MaxClusterStabilizationTimeoutInSeconds
10970	}
10971	if cse.WaitTimeBetweenIterationsInSeconds != nil {
10972		objectMap["WaitTimeBetweenIterationsInSeconds"] = cse.WaitTimeBetweenIterationsInSeconds
10973	}
10974	if cse.WaitTimeBetweenFaultsInSeconds != nil {
10975		objectMap["WaitTimeBetweenFaultsInSeconds"] = cse.WaitTimeBetweenFaultsInSeconds
10976	}
10977	if cse.MoveReplicaFaultEnabled != nil {
10978		objectMap["MoveReplicaFaultEnabled"] = cse.MoveReplicaFaultEnabled
10979	}
10980	if cse.IncludedNodeTypeList != nil {
10981		objectMap["IncludedNodeTypeList"] = cse.IncludedNodeTypeList
10982	}
10983	if cse.IncludedApplicationList != nil {
10984		objectMap["IncludedApplicationList"] = cse.IncludedApplicationList
10985	}
10986	if cse.ClusterHealthPolicy != nil {
10987		objectMap["ClusterHealthPolicy"] = cse.ClusterHealthPolicy
10988	}
10989	if cse.ChaosContext != nil {
10990		objectMap["ChaosContext"] = cse.ChaosContext
10991	}
10992	if cse.EventInstanceID != nil {
10993		objectMap["EventInstanceId"] = cse.EventInstanceID
10994	}
10995	if cse.Category != nil {
10996		objectMap["Category"] = cse.Category
10997	}
10998	if cse.TimeStamp != nil {
10999		objectMap["TimeStamp"] = cse.TimeStamp
11000	}
11001	if cse.HasCorrelatedEvents != nil {
11002		objectMap["HasCorrelatedEvents"] = cse.HasCorrelatedEvents
11003	}
11004	if cse.Kind != "" {
11005		objectMap["Kind"] = cse.Kind
11006	}
11007	return json.Marshal(objectMap)
11008}
11009
11010// AsApplicationEvent is the BasicFabricEvent implementation for ChaosStartedEvent.
11011func (cse ChaosStartedEvent) AsApplicationEvent() (*ApplicationEvent, bool) {
11012	return nil, false
11013}
11014
11015// AsBasicApplicationEvent is the BasicFabricEvent implementation for ChaosStartedEvent.
11016func (cse ChaosStartedEvent) AsBasicApplicationEvent() (BasicApplicationEvent, bool) {
11017	return nil, false
11018}
11019
11020// AsClusterEvent is the BasicFabricEvent implementation for ChaosStartedEvent.
11021func (cse ChaosStartedEvent) AsClusterEvent() (*ClusterEvent, bool) {
11022	return nil, false
11023}
11024
11025// AsBasicClusterEvent is the BasicFabricEvent implementation for ChaosStartedEvent.
11026func (cse ChaosStartedEvent) AsBasicClusterEvent() (BasicClusterEvent, bool) {
11027	return &cse, true
11028}
11029
11030// AsContainerInstanceEvent is the BasicFabricEvent implementation for ChaosStartedEvent.
11031func (cse ChaosStartedEvent) AsContainerInstanceEvent() (*ContainerInstanceEvent, bool) {
11032	return nil, false
11033}
11034
11035// AsNodeEvent is the BasicFabricEvent implementation for ChaosStartedEvent.
11036func (cse ChaosStartedEvent) AsNodeEvent() (*NodeEvent, bool) {
11037	return nil, false
11038}
11039
11040// AsBasicNodeEvent is the BasicFabricEvent implementation for ChaosStartedEvent.
11041func (cse ChaosStartedEvent) AsBasicNodeEvent() (BasicNodeEvent, bool) {
11042	return nil, false
11043}
11044
11045// AsPartitionAnalysisEvent is the BasicFabricEvent implementation for ChaosStartedEvent.
11046func (cse ChaosStartedEvent) AsPartitionAnalysisEvent() (*PartitionAnalysisEvent, bool) {
11047	return nil, false
11048}
11049
11050// AsBasicPartitionAnalysisEvent is the BasicFabricEvent implementation for ChaosStartedEvent.
11051func (cse ChaosStartedEvent) AsBasicPartitionAnalysisEvent() (BasicPartitionAnalysisEvent, bool) {
11052	return nil, false
11053}
11054
11055// AsPartitionEvent is the BasicFabricEvent implementation for ChaosStartedEvent.
11056func (cse ChaosStartedEvent) AsPartitionEvent() (*PartitionEvent, bool) {
11057	return nil, false
11058}
11059
11060// AsBasicPartitionEvent is the BasicFabricEvent implementation for ChaosStartedEvent.
11061func (cse ChaosStartedEvent) AsBasicPartitionEvent() (BasicPartitionEvent, bool) {
11062	return nil, false
11063}
11064
11065// AsReplicaEvent is the BasicFabricEvent implementation for ChaosStartedEvent.
11066func (cse ChaosStartedEvent) AsReplicaEvent() (*ReplicaEvent, bool) {
11067	return nil, false
11068}
11069
11070// AsBasicReplicaEvent is the BasicFabricEvent implementation for ChaosStartedEvent.
11071func (cse ChaosStartedEvent) AsBasicReplicaEvent() (BasicReplicaEvent, bool) {
11072	return nil, false
11073}
11074
11075// AsServiceEvent is the BasicFabricEvent implementation for ChaosStartedEvent.
11076func (cse ChaosStartedEvent) AsServiceEvent() (*ServiceEvent, bool) {
11077	return nil, false
11078}
11079
11080// AsBasicServiceEvent is the BasicFabricEvent implementation for ChaosStartedEvent.
11081func (cse ChaosStartedEvent) AsBasicServiceEvent() (BasicServiceEvent, bool) {
11082	return nil, false
11083}
11084
11085// AsApplicationCreatedEvent is the BasicFabricEvent implementation for ChaosStartedEvent.
11086func (cse ChaosStartedEvent) AsApplicationCreatedEvent() (*ApplicationCreatedEvent, bool) {
11087	return nil, false
11088}
11089
11090// AsApplicationDeletedEvent is the BasicFabricEvent implementation for ChaosStartedEvent.
11091func (cse ChaosStartedEvent) AsApplicationDeletedEvent() (*ApplicationDeletedEvent, bool) {
11092	return nil, false
11093}
11094
11095// AsApplicationNewHealthReportEvent is the BasicFabricEvent implementation for ChaosStartedEvent.
11096func (cse ChaosStartedEvent) AsApplicationNewHealthReportEvent() (*ApplicationNewHealthReportEvent, bool) {
11097	return nil, false
11098}
11099
11100// AsApplicationHealthReportExpiredEvent is the BasicFabricEvent implementation for ChaosStartedEvent.
11101func (cse ChaosStartedEvent) AsApplicationHealthReportExpiredEvent() (*ApplicationHealthReportExpiredEvent, bool) {
11102	return nil, false
11103}
11104
11105// AsApplicationUpgradeCompletedEvent is the BasicFabricEvent implementation for ChaosStartedEvent.
11106func (cse ChaosStartedEvent) AsApplicationUpgradeCompletedEvent() (*ApplicationUpgradeCompletedEvent, bool) {
11107	return nil, false
11108}
11109
11110// AsApplicationUpgradeDomainCompletedEvent is the BasicFabricEvent implementation for ChaosStartedEvent.
11111func (cse ChaosStartedEvent) AsApplicationUpgradeDomainCompletedEvent() (*ApplicationUpgradeDomainCompletedEvent, bool) {
11112	return nil, false
11113}
11114
11115// AsApplicationUpgradeRollbackCompletedEvent is the BasicFabricEvent implementation for ChaosStartedEvent.
11116func (cse ChaosStartedEvent) AsApplicationUpgradeRollbackCompletedEvent() (*ApplicationUpgradeRollbackCompletedEvent, bool) {
11117	return nil, false
11118}
11119
11120// AsApplicationUpgradeRollbackStartedEvent is the BasicFabricEvent implementation for ChaosStartedEvent.
11121func (cse ChaosStartedEvent) AsApplicationUpgradeRollbackStartedEvent() (*ApplicationUpgradeRollbackStartedEvent, bool) {
11122	return nil, false
11123}
11124
11125// AsApplicationUpgradeStartedEvent is the BasicFabricEvent implementation for ChaosStartedEvent.
11126func (cse ChaosStartedEvent) AsApplicationUpgradeStartedEvent() (*ApplicationUpgradeStartedEvent, bool) {
11127	return nil, false
11128}
11129
11130// AsDeployedApplicationNewHealthReportEvent is the BasicFabricEvent implementation for ChaosStartedEvent.
11131func (cse ChaosStartedEvent) AsDeployedApplicationNewHealthReportEvent() (*DeployedApplicationNewHealthReportEvent, bool) {
11132	return nil, false
11133}
11134
11135// AsDeployedApplicationHealthReportExpiredEvent is the BasicFabricEvent implementation for ChaosStartedEvent.
11136func (cse ChaosStartedEvent) AsDeployedApplicationHealthReportExpiredEvent() (*DeployedApplicationHealthReportExpiredEvent, bool) {
11137	return nil, false
11138}
11139
11140// AsApplicationProcessExitedEvent is the BasicFabricEvent implementation for ChaosStartedEvent.
11141func (cse ChaosStartedEvent) AsApplicationProcessExitedEvent() (*ApplicationProcessExitedEvent, bool) {
11142	return nil, false
11143}
11144
11145// AsApplicationContainerInstanceExitedEvent is the BasicFabricEvent implementation for ChaosStartedEvent.
11146func (cse ChaosStartedEvent) AsApplicationContainerInstanceExitedEvent() (*ApplicationContainerInstanceExitedEvent, bool) {
11147	return nil, false
11148}
11149
11150// AsNodeAbortedEvent is the BasicFabricEvent implementation for ChaosStartedEvent.
11151func (cse ChaosStartedEvent) AsNodeAbortedEvent() (*NodeAbortedEvent, bool) {
11152	return nil, false
11153}
11154
11155// AsNodeAddedToClusterEvent is the BasicFabricEvent implementation for ChaosStartedEvent.
11156func (cse ChaosStartedEvent) AsNodeAddedToClusterEvent() (*NodeAddedToClusterEvent, bool) {
11157	return nil, false
11158}
11159
11160// AsNodeClosedEvent is the BasicFabricEvent implementation for ChaosStartedEvent.
11161func (cse ChaosStartedEvent) AsNodeClosedEvent() (*NodeClosedEvent, bool) {
11162	return nil, false
11163}
11164
11165// AsNodeDeactivateCompletedEvent is the BasicFabricEvent implementation for ChaosStartedEvent.
11166func (cse ChaosStartedEvent) AsNodeDeactivateCompletedEvent() (*NodeDeactivateCompletedEvent, bool) {
11167	return nil, false
11168}
11169
11170// AsNodeDeactivateStartedEvent is the BasicFabricEvent implementation for ChaosStartedEvent.
11171func (cse ChaosStartedEvent) AsNodeDeactivateStartedEvent() (*NodeDeactivateStartedEvent, bool) {
11172	return nil, false
11173}
11174
11175// AsNodeDownEvent is the BasicFabricEvent implementation for ChaosStartedEvent.
11176func (cse ChaosStartedEvent) AsNodeDownEvent() (*NodeDownEvent, bool) {
11177	return nil, false
11178}
11179
11180// AsNodeNewHealthReportEvent is the BasicFabricEvent implementation for ChaosStartedEvent.
11181func (cse ChaosStartedEvent) AsNodeNewHealthReportEvent() (*NodeNewHealthReportEvent, bool) {
11182	return nil, false
11183}
11184
11185// AsNodeHealthReportExpiredEvent is the BasicFabricEvent implementation for ChaosStartedEvent.
11186func (cse ChaosStartedEvent) AsNodeHealthReportExpiredEvent() (*NodeHealthReportExpiredEvent, bool) {
11187	return nil, false
11188}
11189
11190// AsNodeOpenSucceededEvent is the BasicFabricEvent implementation for ChaosStartedEvent.
11191func (cse ChaosStartedEvent) AsNodeOpenSucceededEvent() (*NodeOpenSucceededEvent, bool) {
11192	return nil, false
11193}
11194
11195// AsNodeOpenFailedEvent is the BasicFabricEvent implementation for ChaosStartedEvent.
11196func (cse ChaosStartedEvent) AsNodeOpenFailedEvent() (*NodeOpenFailedEvent, bool) {
11197	return nil, false
11198}
11199
11200// AsNodeRemovedFromClusterEvent is the BasicFabricEvent implementation for ChaosStartedEvent.
11201func (cse ChaosStartedEvent) AsNodeRemovedFromClusterEvent() (*NodeRemovedFromClusterEvent, bool) {
11202	return nil, false
11203}
11204
11205// AsNodeUpEvent is the BasicFabricEvent implementation for ChaosStartedEvent.
11206func (cse ChaosStartedEvent) AsNodeUpEvent() (*NodeUpEvent, bool) {
11207	return nil, false
11208}
11209
11210// AsPartitionNewHealthReportEvent is the BasicFabricEvent implementation for ChaosStartedEvent.
11211func (cse ChaosStartedEvent) AsPartitionNewHealthReportEvent() (*PartitionNewHealthReportEvent, bool) {
11212	return nil, false
11213}
11214
11215// AsPartitionHealthReportExpiredEvent is the BasicFabricEvent implementation for ChaosStartedEvent.
11216func (cse ChaosStartedEvent) AsPartitionHealthReportExpiredEvent() (*PartitionHealthReportExpiredEvent, bool) {
11217	return nil, false
11218}
11219
11220// AsPartitionReconfiguredEvent is the BasicFabricEvent implementation for ChaosStartedEvent.
11221func (cse ChaosStartedEvent) AsPartitionReconfiguredEvent() (*PartitionReconfiguredEvent, bool) {
11222	return nil, false
11223}
11224
11225// AsPartitionPrimaryMoveAnalysisEvent is the BasicFabricEvent implementation for ChaosStartedEvent.
11226func (cse ChaosStartedEvent) AsPartitionPrimaryMoveAnalysisEvent() (*PartitionPrimaryMoveAnalysisEvent, bool) {
11227	return nil, false
11228}
11229
11230// AsServiceCreatedEvent is the BasicFabricEvent implementation for ChaosStartedEvent.
11231func (cse ChaosStartedEvent) AsServiceCreatedEvent() (*ServiceCreatedEvent, bool) {
11232	return nil, false
11233}
11234
11235// AsServiceDeletedEvent is the BasicFabricEvent implementation for ChaosStartedEvent.
11236func (cse ChaosStartedEvent) AsServiceDeletedEvent() (*ServiceDeletedEvent, bool) {
11237	return nil, false
11238}
11239
11240// AsServiceNewHealthReportEvent is the BasicFabricEvent implementation for ChaosStartedEvent.
11241func (cse ChaosStartedEvent) AsServiceNewHealthReportEvent() (*ServiceNewHealthReportEvent, bool) {
11242	return nil, false
11243}
11244
11245// AsServiceHealthReportExpiredEvent is the BasicFabricEvent implementation for ChaosStartedEvent.
11246func (cse ChaosStartedEvent) AsServiceHealthReportExpiredEvent() (*ServiceHealthReportExpiredEvent, bool) {
11247	return nil, false
11248}
11249
11250// AsDeployedServicePackageNewHealthReportEvent is the BasicFabricEvent implementation for ChaosStartedEvent.
11251func (cse ChaosStartedEvent) AsDeployedServicePackageNewHealthReportEvent() (*DeployedServicePackageNewHealthReportEvent, bool) {
11252	return nil, false
11253}
11254
11255// AsDeployedServicePackageHealthReportExpiredEvent is the BasicFabricEvent implementation for ChaosStartedEvent.
11256func (cse ChaosStartedEvent) AsDeployedServicePackageHealthReportExpiredEvent() (*DeployedServicePackageHealthReportExpiredEvent, bool) {
11257	return nil, false
11258}
11259
11260// AsStatefulReplicaNewHealthReportEvent is the BasicFabricEvent implementation for ChaosStartedEvent.
11261func (cse ChaosStartedEvent) AsStatefulReplicaNewHealthReportEvent() (*StatefulReplicaNewHealthReportEvent, bool) {
11262	return nil, false
11263}
11264
11265// AsStatefulReplicaHealthReportExpiredEvent is the BasicFabricEvent implementation for ChaosStartedEvent.
11266func (cse ChaosStartedEvent) AsStatefulReplicaHealthReportExpiredEvent() (*StatefulReplicaHealthReportExpiredEvent, bool) {
11267	return nil, false
11268}
11269
11270// AsStatelessReplicaNewHealthReportEvent is the BasicFabricEvent implementation for ChaosStartedEvent.
11271func (cse ChaosStartedEvent) AsStatelessReplicaNewHealthReportEvent() (*StatelessReplicaNewHealthReportEvent, bool) {
11272	return nil, false
11273}
11274
11275// AsStatelessReplicaHealthReportExpiredEvent is the BasicFabricEvent implementation for ChaosStartedEvent.
11276func (cse ChaosStartedEvent) AsStatelessReplicaHealthReportExpiredEvent() (*StatelessReplicaHealthReportExpiredEvent, bool) {
11277	return nil, false
11278}
11279
11280// AsClusterNewHealthReportEvent is the BasicFabricEvent implementation for ChaosStartedEvent.
11281func (cse ChaosStartedEvent) AsClusterNewHealthReportEvent() (*ClusterNewHealthReportEvent, bool) {
11282	return nil, false
11283}
11284
11285// AsClusterHealthReportExpiredEvent is the BasicFabricEvent implementation for ChaosStartedEvent.
11286func (cse ChaosStartedEvent) AsClusterHealthReportExpiredEvent() (*ClusterHealthReportExpiredEvent, bool) {
11287	return nil, false
11288}
11289
11290// AsClusterUpgradeCompletedEvent is the BasicFabricEvent implementation for ChaosStartedEvent.
11291func (cse ChaosStartedEvent) AsClusterUpgradeCompletedEvent() (*ClusterUpgradeCompletedEvent, bool) {
11292	return nil, false
11293}
11294
11295// AsClusterUpgradeDomainCompletedEvent is the BasicFabricEvent implementation for ChaosStartedEvent.
11296func (cse ChaosStartedEvent) AsClusterUpgradeDomainCompletedEvent() (*ClusterUpgradeDomainCompletedEvent, bool) {
11297	return nil, false
11298}
11299
11300// AsClusterUpgradeRollbackCompletedEvent is the BasicFabricEvent implementation for ChaosStartedEvent.
11301func (cse ChaosStartedEvent) AsClusterUpgradeRollbackCompletedEvent() (*ClusterUpgradeRollbackCompletedEvent, bool) {
11302	return nil, false
11303}
11304
11305// AsClusterUpgradeRollbackStartedEvent is the BasicFabricEvent implementation for ChaosStartedEvent.
11306func (cse ChaosStartedEvent) AsClusterUpgradeRollbackStartedEvent() (*ClusterUpgradeRollbackStartedEvent, bool) {
11307	return nil, false
11308}
11309
11310// AsClusterUpgradeStartedEvent is the BasicFabricEvent implementation for ChaosStartedEvent.
11311func (cse ChaosStartedEvent) AsClusterUpgradeStartedEvent() (*ClusterUpgradeStartedEvent, bool) {
11312	return nil, false
11313}
11314
11315// AsChaosStoppedEvent is the BasicFabricEvent implementation for ChaosStartedEvent.
11316func (cse ChaosStartedEvent) AsChaosStoppedEvent() (*ChaosStoppedEvent, bool) {
11317	return nil, false
11318}
11319
11320// AsChaosStartedEvent is the BasicFabricEvent implementation for ChaosStartedEvent.
11321func (cse ChaosStartedEvent) AsChaosStartedEvent() (*ChaosStartedEvent, bool) {
11322	return &cse, true
11323}
11324
11325// AsChaosCodePackageRestartScheduledEvent is the BasicFabricEvent implementation for ChaosStartedEvent.
11326func (cse ChaosStartedEvent) AsChaosCodePackageRestartScheduledEvent() (*ChaosCodePackageRestartScheduledEvent, bool) {
11327	return nil, false
11328}
11329
11330// AsChaosReplicaRemovalScheduledEvent is the BasicFabricEvent implementation for ChaosStartedEvent.
11331func (cse ChaosStartedEvent) AsChaosReplicaRemovalScheduledEvent() (*ChaosReplicaRemovalScheduledEvent, bool) {
11332	return nil, false
11333}
11334
11335// AsChaosPartitionSecondaryMoveScheduledEvent is the BasicFabricEvent implementation for ChaosStartedEvent.
11336func (cse ChaosStartedEvent) AsChaosPartitionSecondaryMoveScheduledEvent() (*ChaosPartitionSecondaryMoveScheduledEvent, bool) {
11337	return nil, false
11338}
11339
11340// AsChaosPartitionPrimaryMoveScheduledEvent is the BasicFabricEvent implementation for ChaosStartedEvent.
11341func (cse ChaosStartedEvent) AsChaosPartitionPrimaryMoveScheduledEvent() (*ChaosPartitionPrimaryMoveScheduledEvent, bool) {
11342	return nil, false
11343}
11344
11345// AsChaosReplicaRestartScheduledEvent is the BasicFabricEvent implementation for ChaosStartedEvent.
11346func (cse ChaosStartedEvent) AsChaosReplicaRestartScheduledEvent() (*ChaosReplicaRestartScheduledEvent, bool) {
11347	return nil, false
11348}
11349
11350// AsChaosNodeRestartScheduledEvent is the BasicFabricEvent implementation for ChaosStartedEvent.
11351func (cse ChaosStartedEvent) AsChaosNodeRestartScheduledEvent() (*ChaosNodeRestartScheduledEvent, bool) {
11352	return nil, false
11353}
11354
11355// AsFabricEvent is the BasicFabricEvent implementation for ChaosStartedEvent.
11356func (cse ChaosStartedEvent) AsFabricEvent() (*FabricEvent, bool) {
11357	return nil, false
11358}
11359
11360// AsBasicFabricEvent is the BasicFabricEvent implementation for ChaosStartedEvent.
11361func (cse ChaosStartedEvent) AsBasicFabricEvent() (BasicFabricEvent, bool) {
11362	return &cse, true
11363}
11364
11365// ChaosStoppedEvent chaos Stopped event.
11366type ChaosStoppedEvent struct {
11367	// Reason - Describes reason.
11368	Reason *string `json:"Reason,omitempty"`
11369	// EventInstanceID - The identifier for the FabricEvent instance.
11370	EventInstanceID *uuid.UUID `json:"EventInstanceId,omitempty"`
11371	// Category - The category of event.
11372	Category *string `json:"Category,omitempty"`
11373	// TimeStamp - The time event was logged.
11374	TimeStamp *date.Time `json:"TimeStamp,omitempty"`
11375	// HasCorrelatedEvents - Shows there is existing related events available.
11376	HasCorrelatedEvents *bool `json:"HasCorrelatedEvents,omitempty"`
11377	// 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'
11378	Kind KindBasicFabricEvent `json:"Kind,omitempty"`
11379}
11380
11381// MarshalJSON is the custom marshaler for ChaosStoppedEvent.
11382func (cse ChaosStoppedEvent) MarshalJSON() ([]byte, error) {
11383	cse.Kind = KindChaosStopped
11384	objectMap := make(map[string]interface{})
11385	if cse.Reason != nil {
11386		objectMap["Reason"] = cse.Reason
11387	}
11388	if cse.EventInstanceID != nil {
11389		objectMap["EventInstanceId"] = cse.EventInstanceID
11390	}
11391	if cse.Category != nil {
11392		objectMap["Category"] = cse.Category
11393	}
11394	if cse.TimeStamp != nil {
11395		objectMap["TimeStamp"] = cse.TimeStamp
11396	}
11397	if cse.HasCorrelatedEvents != nil {
11398		objectMap["HasCorrelatedEvents"] = cse.HasCorrelatedEvents
11399	}
11400	if cse.Kind != "" {
11401		objectMap["Kind"] = cse.Kind
11402	}
11403	return json.Marshal(objectMap)
11404}
11405
11406// AsApplicationEvent is the BasicFabricEvent implementation for ChaosStoppedEvent.
11407func (cse ChaosStoppedEvent) AsApplicationEvent() (*ApplicationEvent, bool) {
11408	return nil, false
11409}
11410
11411// AsBasicApplicationEvent is the BasicFabricEvent implementation for ChaosStoppedEvent.
11412func (cse ChaosStoppedEvent) AsBasicApplicationEvent() (BasicApplicationEvent, bool) {
11413	return nil, false
11414}
11415
11416// AsClusterEvent is the BasicFabricEvent implementation for ChaosStoppedEvent.
11417func (cse ChaosStoppedEvent) AsClusterEvent() (*ClusterEvent, bool) {
11418	return nil, false
11419}
11420
11421// AsBasicClusterEvent is the BasicFabricEvent implementation for ChaosStoppedEvent.
11422func (cse ChaosStoppedEvent) AsBasicClusterEvent() (BasicClusterEvent, bool) {
11423	return &cse, true
11424}
11425
11426// AsContainerInstanceEvent is the BasicFabricEvent implementation for ChaosStoppedEvent.
11427func (cse ChaosStoppedEvent) AsContainerInstanceEvent() (*ContainerInstanceEvent, bool) {
11428	return nil, false
11429}
11430
11431// AsNodeEvent is the BasicFabricEvent implementation for ChaosStoppedEvent.
11432func (cse ChaosStoppedEvent) AsNodeEvent() (*NodeEvent, bool) {
11433	return nil, false
11434}
11435
11436// AsBasicNodeEvent is the BasicFabricEvent implementation for ChaosStoppedEvent.
11437func (cse ChaosStoppedEvent) AsBasicNodeEvent() (BasicNodeEvent, bool) {
11438	return nil, false
11439}
11440
11441// AsPartitionAnalysisEvent is the BasicFabricEvent implementation for ChaosStoppedEvent.
11442func (cse ChaosStoppedEvent) AsPartitionAnalysisEvent() (*PartitionAnalysisEvent, bool) {
11443	return nil, false
11444}
11445
11446// AsBasicPartitionAnalysisEvent is the BasicFabricEvent implementation for ChaosStoppedEvent.
11447func (cse ChaosStoppedEvent) AsBasicPartitionAnalysisEvent() (BasicPartitionAnalysisEvent, bool) {
11448	return nil, false
11449}
11450
11451// AsPartitionEvent is the BasicFabricEvent implementation for ChaosStoppedEvent.
11452func (cse ChaosStoppedEvent) AsPartitionEvent() (*PartitionEvent, bool) {
11453	return nil, false
11454}
11455
11456// AsBasicPartitionEvent is the BasicFabricEvent implementation for ChaosStoppedEvent.
11457func (cse ChaosStoppedEvent) AsBasicPartitionEvent() (BasicPartitionEvent, bool) {
11458	return nil, false
11459}
11460
11461// AsReplicaEvent is the BasicFabricEvent implementation for ChaosStoppedEvent.
11462func (cse ChaosStoppedEvent) AsReplicaEvent() (*ReplicaEvent, bool) {
11463	return nil, false
11464}
11465
11466// AsBasicReplicaEvent is the BasicFabricEvent implementation for ChaosStoppedEvent.
11467func (cse ChaosStoppedEvent) AsBasicReplicaEvent() (BasicReplicaEvent, bool) {
11468	return nil, false
11469}
11470
11471// AsServiceEvent is the BasicFabricEvent implementation for ChaosStoppedEvent.
11472func (cse ChaosStoppedEvent) AsServiceEvent() (*ServiceEvent, bool) {
11473	return nil, false
11474}
11475
11476// AsBasicServiceEvent is the BasicFabricEvent implementation for ChaosStoppedEvent.
11477func (cse ChaosStoppedEvent) AsBasicServiceEvent() (BasicServiceEvent, bool) {
11478	return nil, false
11479}
11480
11481// AsApplicationCreatedEvent is the BasicFabricEvent implementation for ChaosStoppedEvent.
11482func (cse ChaosStoppedEvent) AsApplicationCreatedEvent() (*ApplicationCreatedEvent, bool) {
11483	return nil, false
11484}
11485
11486// AsApplicationDeletedEvent is the BasicFabricEvent implementation for ChaosStoppedEvent.
11487func (cse ChaosStoppedEvent) AsApplicationDeletedEvent() (*ApplicationDeletedEvent, bool) {
11488	return nil, false
11489}
11490
11491// AsApplicationNewHealthReportEvent is the BasicFabricEvent implementation for ChaosStoppedEvent.
11492func (cse ChaosStoppedEvent) AsApplicationNewHealthReportEvent() (*ApplicationNewHealthReportEvent, bool) {
11493	return nil, false
11494}
11495
11496// AsApplicationHealthReportExpiredEvent is the BasicFabricEvent implementation for ChaosStoppedEvent.
11497func (cse ChaosStoppedEvent) AsApplicationHealthReportExpiredEvent() (*ApplicationHealthReportExpiredEvent, bool) {
11498	return nil, false
11499}
11500
11501// AsApplicationUpgradeCompletedEvent is the BasicFabricEvent implementation for ChaosStoppedEvent.
11502func (cse ChaosStoppedEvent) AsApplicationUpgradeCompletedEvent() (*ApplicationUpgradeCompletedEvent, bool) {
11503	return nil, false
11504}
11505
11506// AsApplicationUpgradeDomainCompletedEvent is the BasicFabricEvent implementation for ChaosStoppedEvent.
11507func (cse ChaosStoppedEvent) AsApplicationUpgradeDomainCompletedEvent() (*ApplicationUpgradeDomainCompletedEvent, bool) {
11508	return nil, false
11509}
11510
11511// AsApplicationUpgradeRollbackCompletedEvent is the BasicFabricEvent implementation for ChaosStoppedEvent.
11512func (cse ChaosStoppedEvent) AsApplicationUpgradeRollbackCompletedEvent() (*ApplicationUpgradeRollbackCompletedEvent, bool) {
11513	return nil, false
11514}
11515
11516// AsApplicationUpgradeRollbackStartedEvent is the BasicFabricEvent implementation for ChaosStoppedEvent.
11517func (cse ChaosStoppedEvent) AsApplicationUpgradeRollbackStartedEvent() (*ApplicationUpgradeRollbackStartedEvent, bool) {
11518	return nil, false
11519}
11520
11521// AsApplicationUpgradeStartedEvent is the BasicFabricEvent implementation for ChaosStoppedEvent.
11522func (cse ChaosStoppedEvent) AsApplicationUpgradeStartedEvent() (*ApplicationUpgradeStartedEvent, bool) {
11523	return nil, false
11524}
11525
11526// AsDeployedApplicationNewHealthReportEvent is the BasicFabricEvent implementation for ChaosStoppedEvent.
11527func (cse ChaosStoppedEvent) AsDeployedApplicationNewHealthReportEvent() (*DeployedApplicationNewHealthReportEvent, bool) {
11528	return nil, false
11529}
11530
11531// AsDeployedApplicationHealthReportExpiredEvent is the BasicFabricEvent implementation for ChaosStoppedEvent.
11532func (cse ChaosStoppedEvent) AsDeployedApplicationHealthReportExpiredEvent() (*DeployedApplicationHealthReportExpiredEvent, bool) {
11533	return nil, false
11534}
11535
11536// AsApplicationProcessExitedEvent is the BasicFabricEvent implementation for ChaosStoppedEvent.
11537func (cse ChaosStoppedEvent) AsApplicationProcessExitedEvent() (*ApplicationProcessExitedEvent, bool) {
11538	return nil, false
11539}
11540
11541// AsApplicationContainerInstanceExitedEvent is the BasicFabricEvent implementation for ChaosStoppedEvent.
11542func (cse ChaosStoppedEvent) AsApplicationContainerInstanceExitedEvent() (*ApplicationContainerInstanceExitedEvent, bool) {
11543	return nil, false
11544}
11545
11546// AsNodeAbortedEvent is the BasicFabricEvent implementation for ChaosStoppedEvent.
11547func (cse ChaosStoppedEvent) AsNodeAbortedEvent() (*NodeAbortedEvent, bool) {
11548	return nil, false
11549}
11550
11551// AsNodeAddedToClusterEvent is the BasicFabricEvent implementation for ChaosStoppedEvent.
11552func (cse ChaosStoppedEvent) AsNodeAddedToClusterEvent() (*NodeAddedToClusterEvent, bool) {
11553	return nil, false
11554}
11555
11556// AsNodeClosedEvent is the BasicFabricEvent implementation for ChaosStoppedEvent.
11557func (cse ChaosStoppedEvent) AsNodeClosedEvent() (*NodeClosedEvent, bool) {
11558	return nil, false
11559}
11560
11561// AsNodeDeactivateCompletedEvent is the BasicFabricEvent implementation for ChaosStoppedEvent.
11562func (cse ChaosStoppedEvent) AsNodeDeactivateCompletedEvent() (*NodeDeactivateCompletedEvent, bool) {
11563	return nil, false
11564}
11565
11566// AsNodeDeactivateStartedEvent is the BasicFabricEvent implementation for ChaosStoppedEvent.
11567func (cse ChaosStoppedEvent) AsNodeDeactivateStartedEvent() (*NodeDeactivateStartedEvent, bool) {
11568	return nil, false
11569}
11570
11571// AsNodeDownEvent is the BasicFabricEvent implementation for ChaosStoppedEvent.
11572func (cse ChaosStoppedEvent) AsNodeDownEvent() (*NodeDownEvent, bool) {
11573	return nil, false
11574}
11575
11576// AsNodeNewHealthReportEvent is the BasicFabricEvent implementation for ChaosStoppedEvent.
11577func (cse ChaosStoppedEvent) AsNodeNewHealthReportEvent() (*NodeNewHealthReportEvent, bool) {
11578	return nil, false
11579}
11580
11581// AsNodeHealthReportExpiredEvent is the BasicFabricEvent implementation for ChaosStoppedEvent.
11582func (cse ChaosStoppedEvent) AsNodeHealthReportExpiredEvent() (*NodeHealthReportExpiredEvent, bool) {
11583	return nil, false
11584}
11585
11586// AsNodeOpenSucceededEvent is the BasicFabricEvent implementation for ChaosStoppedEvent.
11587func (cse ChaosStoppedEvent) AsNodeOpenSucceededEvent() (*NodeOpenSucceededEvent, bool) {
11588	return nil, false
11589}
11590
11591// AsNodeOpenFailedEvent is the BasicFabricEvent implementation for ChaosStoppedEvent.
11592func (cse ChaosStoppedEvent) AsNodeOpenFailedEvent() (*NodeOpenFailedEvent, bool) {
11593	return nil, false
11594}
11595
11596// AsNodeRemovedFromClusterEvent is the BasicFabricEvent implementation for ChaosStoppedEvent.
11597func (cse ChaosStoppedEvent) AsNodeRemovedFromClusterEvent() (*NodeRemovedFromClusterEvent, bool) {
11598	return nil, false
11599}
11600
11601// AsNodeUpEvent is the BasicFabricEvent implementation for ChaosStoppedEvent.
11602func (cse ChaosStoppedEvent) AsNodeUpEvent() (*NodeUpEvent, bool) {
11603	return nil, false
11604}
11605
11606// AsPartitionNewHealthReportEvent is the BasicFabricEvent implementation for ChaosStoppedEvent.
11607func (cse ChaosStoppedEvent) AsPartitionNewHealthReportEvent() (*PartitionNewHealthReportEvent, bool) {
11608	return nil, false
11609}
11610
11611// AsPartitionHealthReportExpiredEvent is the BasicFabricEvent implementation for ChaosStoppedEvent.
11612func (cse ChaosStoppedEvent) AsPartitionHealthReportExpiredEvent() (*PartitionHealthReportExpiredEvent, bool) {
11613	return nil, false
11614}
11615
11616// AsPartitionReconfiguredEvent is the BasicFabricEvent implementation for ChaosStoppedEvent.
11617func (cse ChaosStoppedEvent) AsPartitionReconfiguredEvent() (*PartitionReconfiguredEvent, bool) {
11618	return nil, false
11619}
11620
11621// AsPartitionPrimaryMoveAnalysisEvent is the BasicFabricEvent implementation for ChaosStoppedEvent.
11622func (cse ChaosStoppedEvent) AsPartitionPrimaryMoveAnalysisEvent() (*PartitionPrimaryMoveAnalysisEvent, bool) {
11623	return nil, false
11624}
11625
11626// AsServiceCreatedEvent is the BasicFabricEvent implementation for ChaosStoppedEvent.
11627func (cse ChaosStoppedEvent) AsServiceCreatedEvent() (*ServiceCreatedEvent, bool) {
11628	return nil, false
11629}
11630
11631// AsServiceDeletedEvent is the BasicFabricEvent implementation for ChaosStoppedEvent.
11632func (cse ChaosStoppedEvent) AsServiceDeletedEvent() (*ServiceDeletedEvent, bool) {
11633	return nil, false
11634}
11635
11636// AsServiceNewHealthReportEvent is the BasicFabricEvent implementation for ChaosStoppedEvent.
11637func (cse ChaosStoppedEvent) AsServiceNewHealthReportEvent() (*ServiceNewHealthReportEvent, bool) {
11638	return nil, false
11639}
11640
11641// AsServiceHealthReportExpiredEvent is the BasicFabricEvent implementation for ChaosStoppedEvent.
11642func (cse ChaosStoppedEvent) AsServiceHealthReportExpiredEvent() (*ServiceHealthReportExpiredEvent, bool) {
11643	return nil, false
11644}
11645
11646// AsDeployedServicePackageNewHealthReportEvent is the BasicFabricEvent implementation for ChaosStoppedEvent.
11647func (cse ChaosStoppedEvent) AsDeployedServicePackageNewHealthReportEvent() (*DeployedServicePackageNewHealthReportEvent, bool) {
11648	return nil, false
11649}
11650
11651// AsDeployedServicePackageHealthReportExpiredEvent is the BasicFabricEvent implementation for ChaosStoppedEvent.
11652func (cse ChaosStoppedEvent) AsDeployedServicePackageHealthReportExpiredEvent() (*DeployedServicePackageHealthReportExpiredEvent, bool) {
11653	return nil, false
11654}
11655
11656// AsStatefulReplicaNewHealthReportEvent is the BasicFabricEvent implementation for ChaosStoppedEvent.
11657func (cse ChaosStoppedEvent) AsStatefulReplicaNewHealthReportEvent() (*StatefulReplicaNewHealthReportEvent, bool) {
11658	return nil, false
11659}
11660
11661// AsStatefulReplicaHealthReportExpiredEvent is the BasicFabricEvent implementation for ChaosStoppedEvent.
11662func (cse ChaosStoppedEvent) AsStatefulReplicaHealthReportExpiredEvent() (*StatefulReplicaHealthReportExpiredEvent, bool) {
11663	return nil, false
11664}
11665
11666// AsStatelessReplicaNewHealthReportEvent is the BasicFabricEvent implementation for ChaosStoppedEvent.
11667func (cse ChaosStoppedEvent) AsStatelessReplicaNewHealthReportEvent() (*StatelessReplicaNewHealthReportEvent, bool) {
11668	return nil, false
11669}
11670
11671// AsStatelessReplicaHealthReportExpiredEvent is the BasicFabricEvent implementation for ChaosStoppedEvent.
11672func (cse ChaosStoppedEvent) AsStatelessReplicaHealthReportExpiredEvent() (*StatelessReplicaHealthReportExpiredEvent, bool) {
11673	return nil, false
11674}
11675
11676// AsClusterNewHealthReportEvent is the BasicFabricEvent implementation for ChaosStoppedEvent.
11677func (cse ChaosStoppedEvent) AsClusterNewHealthReportEvent() (*ClusterNewHealthReportEvent, bool) {
11678	return nil, false
11679}
11680
11681// AsClusterHealthReportExpiredEvent is the BasicFabricEvent implementation for ChaosStoppedEvent.
11682func (cse ChaosStoppedEvent) AsClusterHealthReportExpiredEvent() (*ClusterHealthReportExpiredEvent, bool) {
11683	return nil, false
11684}
11685
11686// AsClusterUpgradeCompletedEvent is the BasicFabricEvent implementation for ChaosStoppedEvent.
11687func (cse ChaosStoppedEvent) AsClusterUpgradeCompletedEvent() (*ClusterUpgradeCompletedEvent, bool) {
11688	return nil, false
11689}
11690
11691// AsClusterUpgradeDomainCompletedEvent is the BasicFabricEvent implementation for ChaosStoppedEvent.
11692func (cse ChaosStoppedEvent) AsClusterUpgradeDomainCompletedEvent() (*ClusterUpgradeDomainCompletedEvent, bool) {
11693	return nil, false
11694}
11695
11696// AsClusterUpgradeRollbackCompletedEvent is the BasicFabricEvent implementation for ChaosStoppedEvent.
11697func (cse ChaosStoppedEvent) AsClusterUpgradeRollbackCompletedEvent() (*ClusterUpgradeRollbackCompletedEvent, bool) {
11698	return nil, false
11699}
11700
11701// AsClusterUpgradeRollbackStartedEvent is the BasicFabricEvent implementation for ChaosStoppedEvent.
11702func (cse ChaosStoppedEvent) AsClusterUpgradeRollbackStartedEvent() (*ClusterUpgradeRollbackStartedEvent, bool) {
11703	return nil, false
11704}
11705
11706// AsClusterUpgradeStartedEvent is the BasicFabricEvent implementation for ChaosStoppedEvent.
11707func (cse ChaosStoppedEvent) AsClusterUpgradeStartedEvent() (*ClusterUpgradeStartedEvent, bool) {
11708	return nil, false
11709}
11710
11711// AsChaosStoppedEvent is the BasicFabricEvent implementation for ChaosStoppedEvent.
11712func (cse ChaosStoppedEvent) AsChaosStoppedEvent() (*ChaosStoppedEvent, bool) {
11713	return &cse, true
11714}
11715
11716// AsChaosStartedEvent is the BasicFabricEvent implementation for ChaosStoppedEvent.
11717func (cse ChaosStoppedEvent) AsChaosStartedEvent() (*ChaosStartedEvent, bool) {
11718	return nil, false
11719}
11720
11721// AsChaosCodePackageRestartScheduledEvent is the BasicFabricEvent implementation for ChaosStoppedEvent.
11722func (cse ChaosStoppedEvent) AsChaosCodePackageRestartScheduledEvent() (*ChaosCodePackageRestartScheduledEvent, bool) {
11723	return nil, false
11724}
11725
11726// AsChaosReplicaRemovalScheduledEvent is the BasicFabricEvent implementation for ChaosStoppedEvent.
11727func (cse ChaosStoppedEvent) AsChaosReplicaRemovalScheduledEvent() (*ChaosReplicaRemovalScheduledEvent, bool) {
11728	return nil, false
11729}
11730
11731// AsChaosPartitionSecondaryMoveScheduledEvent is the BasicFabricEvent implementation for ChaosStoppedEvent.
11732func (cse ChaosStoppedEvent) AsChaosPartitionSecondaryMoveScheduledEvent() (*ChaosPartitionSecondaryMoveScheduledEvent, bool) {
11733	return nil, false
11734}
11735
11736// AsChaosPartitionPrimaryMoveScheduledEvent is the BasicFabricEvent implementation for ChaosStoppedEvent.
11737func (cse ChaosStoppedEvent) AsChaosPartitionPrimaryMoveScheduledEvent() (*ChaosPartitionPrimaryMoveScheduledEvent, bool) {
11738	return nil, false
11739}
11740
11741// AsChaosReplicaRestartScheduledEvent is the BasicFabricEvent implementation for ChaosStoppedEvent.
11742func (cse ChaosStoppedEvent) AsChaosReplicaRestartScheduledEvent() (*ChaosReplicaRestartScheduledEvent, bool) {
11743	return nil, false
11744}
11745
11746// AsChaosNodeRestartScheduledEvent is the BasicFabricEvent implementation for ChaosStoppedEvent.
11747func (cse ChaosStoppedEvent) AsChaosNodeRestartScheduledEvent() (*ChaosNodeRestartScheduledEvent, bool) {
11748	return nil, false
11749}
11750
11751// AsFabricEvent is the BasicFabricEvent implementation for ChaosStoppedEvent.
11752func (cse ChaosStoppedEvent) AsFabricEvent() (*FabricEvent, bool) {
11753	return nil, false
11754}
11755
11756// AsBasicFabricEvent is the BasicFabricEvent implementation for ChaosStoppedEvent.
11757func (cse ChaosStoppedEvent) AsBasicFabricEvent() (BasicFabricEvent, bool) {
11758	return &cse, true
11759}
11760
11761// ChaosTargetFilter defines all filters for targeted Chaos faults, for example, faulting only certain node
11762// types or faulting only certain applications.
11763// If ChaosTargetFilter is not used, Chaos faults all cluster entities. If ChaosTargetFilter is used, Chaos
11764// faults only the entities that meet the ChaosTargetFilter
11765// specification. NodeTypeInclusionList and ApplicationInclusionList allow a union semantics only. It is
11766// not possible to specify an intersection
11767// of NodeTypeInclusionList and ApplicationInclusionList. For example, it is not possible to specify "fault
11768// this application only when it is on that node type."
11769// Once an entity is included in either NodeTypeInclusionList or ApplicationInclusionList, that entity
11770// cannot be excluded using ChaosTargetFilter. Even if
11771// applicationX does not appear in ApplicationInclusionList, in some Chaos iteration applicationX can be
11772// faulted because it happens to be on a node of nodeTypeY that is included
11773// in NodeTypeInclusionList. If both NodeTypeInclusionList and ApplicationInclusionList are null or empty,
11774// an ArgumentException is thrown.
11775type ChaosTargetFilter struct {
11776	// NodeTypeInclusionList - A list of node types to include in Chaos faults.
11777	// 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.
11778	// If a node type (say NodeTypeX) does not appear in the NodeTypeInclusionList, then node level faults (like NodeRestart) will never be enabled for the nodes of
11779	// NodeTypeX, but code package and replica faults can still be enabled for NodeTypeX if an application in the ApplicationInclusionList.
11780	// happens to reside on a node of NodeTypeX.
11781	// At most 100 node type names can be included in this list, to increase this number, a config upgrade is required for MaxNumberOfNodeTypesInChaosEntityFilter configuration.
11782	NodeTypeInclusionList *[]string `json:"NodeTypeInclusionList,omitempty"`
11783	// ApplicationInclusionList - A list of application URIs to include in Chaos faults.
11784	// All replicas belonging to services of these applications are amenable to replica faults (restart replica, remove replica, move primary, and move secondary) by Chaos.
11785	// Chaos may restart a code package only if the code package hosts replicas of these applications only.
11786	// 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.
11787	// 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.
11788	// At most 1000 application names can be included in this list, to increase this number, a config upgrade is required for MaxNumberOfApplicationsInChaosEntityFilter configuration.
11789	ApplicationInclusionList *[]string `json:"ApplicationInclusionList,omitempty"`
11790}
11791
11792// CheckExistsPropertyBatchOperation represents a PropertyBatchOperation that compares the Boolean
11793// existence of a property with the Exists argument.
11794// The PropertyBatchOperation operation fails if the property's existence is not equal to the Exists
11795// argument.
11796// The CheckExistsPropertyBatchOperation is generally used as a precondition for the write operations in
11797// the batch.
11798// Note that if one PropertyBatchOperation in a PropertyBatch fails,
11799// the entire batch fails and cannot be committed in a transactional manner.
11800type CheckExistsPropertyBatchOperation struct {
11801	// Exists - Whether or not the property should exist for the operation to pass.
11802	Exists *bool `json:"Exists,omitempty"`
11803	// PropertyName - The name of the Service Fabric property.
11804	PropertyName *string `json:"PropertyName,omitempty"`
11805	// Kind - Possible values include: 'KindPropertyBatchOperation', 'KindCheckExists', 'KindCheckSequence', 'KindCheckValue', 'KindDelete', 'KindGet', 'KindPut'
11806	Kind KindBasicPropertyBatchOperation `json:"Kind,omitempty"`
11807}
11808
11809// MarshalJSON is the custom marshaler for CheckExistsPropertyBatchOperation.
11810func (cepbo CheckExistsPropertyBatchOperation) MarshalJSON() ([]byte, error) {
11811	cepbo.Kind = KindCheckExists
11812	objectMap := make(map[string]interface{})
11813	if cepbo.Exists != nil {
11814		objectMap["Exists"] = cepbo.Exists
11815	}
11816	if cepbo.PropertyName != nil {
11817		objectMap["PropertyName"] = cepbo.PropertyName
11818	}
11819	if cepbo.Kind != "" {
11820		objectMap["Kind"] = cepbo.Kind
11821	}
11822	return json.Marshal(objectMap)
11823}
11824
11825// AsCheckExistsPropertyBatchOperation is the BasicPropertyBatchOperation implementation for CheckExistsPropertyBatchOperation.
11826func (cepbo CheckExistsPropertyBatchOperation) AsCheckExistsPropertyBatchOperation() (*CheckExistsPropertyBatchOperation, bool) {
11827	return &cepbo, true
11828}
11829
11830// AsCheckSequencePropertyBatchOperation is the BasicPropertyBatchOperation implementation for CheckExistsPropertyBatchOperation.
11831func (cepbo CheckExistsPropertyBatchOperation) AsCheckSequencePropertyBatchOperation() (*CheckSequencePropertyBatchOperation, bool) {
11832	return nil, false
11833}
11834
11835// AsCheckValuePropertyBatchOperation is the BasicPropertyBatchOperation implementation for CheckExistsPropertyBatchOperation.
11836func (cepbo CheckExistsPropertyBatchOperation) AsCheckValuePropertyBatchOperation() (*CheckValuePropertyBatchOperation, bool) {
11837	return nil, false
11838}
11839
11840// AsDeletePropertyBatchOperation is the BasicPropertyBatchOperation implementation for CheckExistsPropertyBatchOperation.
11841func (cepbo CheckExistsPropertyBatchOperation) AsDeletePropertyBatchOperation() (*DeletePropertyBatchOperation, bool) {
11842	return nil, false
11843}
11844
11845// AsGetPropertyBatchOperation is the BasicPropertyBatchOperation implementation for CheckExistsPropertyBatchOperation.
11846func (cepbo CheckExistsPropertyBatchOperation) AsGetPropertyBatchOperation() (*GetPropertyBatchOperation, bool) {
11847	return nil, false
11848}
11849
11850// AsPutPropertyBatchOperation is the BasicPropertyBatchOperation implementation for CheckExistsPropertyBatchOperation.
11851func (cepbo CheckExistsPropertyBatchOperation) AsPutPropertyBatchOperation() (*PutPropertyBatchOperation, bool) {
11852	return nil, false
11853}
11854
11855// AsPropertyBatchOperation is the BasicPropertyBatchOperation implementation for CheckExistsPropertyBatchOperation.
11856func (cepbo CheckExistsPropertyBatchOperation) AsPropertyBatchOperation() (*PropertyBatchOperation, bool) {
11857	return nil, false
11858}
11859
11860// AsBasicPropertyBatchOperation is the BasicPropertyBatchOperation implementation for CheckExistsPropertyBatchOperation.
11861func (cepbo CheckExistsPropertyBatchOperation) AsBasicPropertyBatchOperation() (BasicPropertyBatchOperation, bool) {
11862	return &cepbo, true
11863}
11864
11865// CheckSequencePropertyBatchOperation compares the Sequence Number of a property with the SequenceNumber
11866// argument.
11867// A property's sequence number can be thought of as that property's version.
11868// Every time the property is modified, its sequence number is increased.
11869// The sequence number can be found in a property's metadata.
11870// The comparison fails if the sequence numbers are not equal.
11871// CheckSequencePropertyBatchOperation is generally used as a precondition for the write operations in the
11872// batch.
11873// Note that if one PropertyBatchOperation in a PropertyBatch fails,
11874// the entire batch fails and cannot be committed in a transactional manner.
11875type CheckSequencePropertyBatchOperation struct {
11876	// SequenceNumber - The expected sequence number.
11877	SequenceNumber *string `json:"SequenceNumber,omitempty"`
11878	// PropertyName - The name of the Service Fabric property.
11879	PropertyName *string `json:"PropertyName,omitempty"`
11880	// Kind - Possible values include: 'KindPropertyBatchOperation', 'KindCheckExists', 'KindCheckSequence', 'KindCheckValue', 'KindDelete', 'KindGet', 'KindPut'
11881	Kind KindBasicPropertyBatchOperation `json:"Kind,omitempty"`
11882}
11883
11884// MarshalJSON is the custom marshaler for CheckSequencePropertyBatchOperation.
11885func (cspbo CheckSequencePropertyBatchOperation) MarshalJSON() ([]byte, error) {
11886	cspbo.Kind = KindCheckSequence
11887	objectMap := make(map[string]interface{})
11888	if cspbo.SequenceNumber != nil {
11889		objectMap["SequenceNumber"] = cspbo.SequenceNumber
11890	}
11891	if cspbo.PropertyName != nil {
11892		objectMap["PropertyName"] = cspbo.PropertyName
11893	}
11894	if cspbo.Kind != "" {
11895		objectMap["Kind"] = cspbo.Kind
11896	}
11897	return json.Marshal(objectMap)
11898}
11899
11900// AsCheckExistsPropertyBatchOperation is the BasicPropertyBatchOperation implementation for CheckSequencePropertyBatchOperation.
11901func (cspbo CheckSequencePropertyBatchOperation) AsCheckExistsPropertyBatchOperation() (*CheckExistsPropertyBatchOperation, bool) {
11902	return nil, false
11903}
11904
11905// AsCheckSequencePropertyBatchOperation is the BasicPropertyBatchOperation implementation for CheckSequencePropertyBatchOperation.
11906func (cspbo CheckSequencePropertyBatchOperation) AsCheckSequencePropertyBatchOperation() (*CheckSequencePropertyBatchOperation, bool) {
11907	return &cspbo, true
11908}
11909
11910// AsCheckValuePropertyBatchOperation is the BasicPropertyBatchOperation implementation for CheckSequencePropertyBatchOperation.
11911func (cspbo CheckSequencePropertyBatchOperation) AsCheckValuePropertyBatchOperation() (*CheckValuePropertyBatchOperation, bool) {
11912	return nil, false
11913}
11914
11915// AsDeletePropertyBatchOperation is the BasicPropertyBatchOperation implementation for CheckSequencePropertyBatchOperation.
11916func (cspbo CheckSequencePropertyBatchOperation) AsDeletePropertyBatchOperation() (*DeletePropertyBatchOperation, bool) {
11917	return nil, false
11918}
11919
11920// AsGetPropertyBatchOperation is the BasicPropertyBatchOperation implementation for CheckSequencePropertyBatchOperation.
11921func (cspbo CheckSequencePropertyBatchOperation) AsGetPropertyBatchOperation() (*GetPropertyBatchOperation, bool) {
11922	return nil, false
11923}
11924
11925// AsPutPropertyBatchOperation is the BasicPropertyBatchOperation implementation for CheckSequencePropertyBatchOperation.
11926func (cspbo CheckSequencePropertyBatchOperation) AsPutPropertyBatchOperation() (*PutPropertyBatchOperation, bool) {
11927	return nil, false
11928}
11929
11930// AsPropertyBatchOperation is the BasicPropertyBatchOperation implementation for CheckSequencePropertyBatchOperation.
11931func (cspbo CheckSequencePropertyBatchOperation) AsPropertyBatchOperation() (*PropertyBatchOperation, bool) {
11932	return nil, false
11933}
11934
11935// AsBasicPropertyBatchOperation is the BasicPropertyBatchOperation implementation for CheckSequencePropertyBatchOperation.
11936func (cspbo CheckSequencePropertyBatchOperation) AsBasicPropertyBatchOperation() (BasicPropertyBatchOperation, bool) {
11937	return &cspbo, true
11938}
11939
11940// CheckValuePropertyBatchOperation represents a PropertyBatchOperation that compares the value of the
11941// property with the expected value.
11942// The CheckValuePropertyBatchOperation is generally used as a precondition for the write operations in the
11943// batch.
11944// Note that if one PropertyBatchOperation in a PropertyBatch fails,
11945// the entire batch fails and cannot be committed in a transactional manner.
11946type CheckValuePropertyBatchOperation struct {
11947	// Value - The expected property value.
11948	Value BasicPropertyValue `json:"Value,omitempty"`
11949	// PropertyName - The name of the Service Fabric property.
11950	PropertyName *string `json:"PropertyName,omitempty"`
11951	// Kind - Possible values include: 'KindPropertyBatchOperation', 'KindCheckExists', 'KindCheckSequence', 'KindCheckValue', 'KindDelete', 'KindGet', 'KindPut'
11952	Kind KindBasicPropertyBatchOperation `json:"Kind,omitempty"`
11953}
11954
11955// MarshalJSON is the custom marshaler for CheckValuePropertyBatchOperation.
11956func (cvpbo CheckValuePropertyBatchOperation) MarshalJSON() ([]byte, error) {
11957	cvpbo.Kind = KindCheckValue
11958	objectMap := make(map[string]interface{})
11959	objectMap["Value"] = cvpbo.Value
11960	if cvpbo.PropertyName != nil {
11961		objectMap["PropertyName"] = cvpbo.PropertyName
11962	}
11963	if cvpbo.Kind != "" {
11964		objectMap["Kind"] = cvpbo.Kind
11965	}
11966	return json.Marshal(objectMap)
11967}
11968
11969// AsCheckExistsPropertyBatchOperation is the BasicPropertyBatchOperation implementation for CheckValuePropertyBatchOperation.
11970func (cvpbo CheckValuePropertyBatchOperation) AsCheckExistsPropertyBatchOperation() (*CheckExistsPropertyBatchOperation, bool) {
11971	return nil, false
11972}
11973
11974// AsCheckSequencePropertyBatchOperation is the BasicPropertyBatchOperation implementation for CheckValuePropertyBatchOperation.
11975func (cvpbo CheckValuePropertyBatchOperation) AsCheckSequencePropertyBatchOperation() (*CheckSequencePropertyBatchOperation, bool) {
11976	return nil, false
11977}
11978
11979// AsCheckValuePropertyBatchOperation is the BasicPropertyBatchOperation implementation for CheckValuePropertyBatchOperation.
11980func (cvpbo CheckValuePropertyBatchOperation) AsCheckValuePropertyBatchOperation() (*CheckValuePropertyBatchOperation, bool) {
11981	return &cvpbo, true
11982}
11983
11984// AsDeletePropertyBatchOperation is the BasicPropertyBatchOperation implementation for CheckValuePropertyBatchOperation.
11985func (cvpbo CheckValuePropertyBatchOperation) AsDeletePropertyBatchOperation() (*DeletePropertyBatchOperation, bool) {
11986	return nil, false
11987}
11988
11989// AsGetPropertyBatchOperation is the BasicPropertyBatchOperation implementation for CheckValuePropertyBatchOperation.
11990func (cvpbo CheckValuePropertyBatchOperation) AsGetPropertyBatchOperation() (*GetPropertyBatchOperation, bool) {
11991	return nil, false
11992}
11993
11994// AsPutPropertyBatchOperation is the BasicPropertyBatchOperation implementation for CheckValuePropertyBatchOperation.
11995func (cvpbo CheckValuePropertyBatchOperation) AsPutPropertyBatchOperation() (*PutPropertyBatchOperation, bool) {
11996	return nil, false
11997}
11998
11999// AsPropertyBatchOperation is the BasicPropertyBatchOperation implementation for CheckValuePropertyBatchOperation.
12000func (cvpbo CheckValuePropertyBatchOperation) AsPropertyBatchOperation() (*PropertyBatchOperation, bool) {
12001	return nil, false
12002}
12003
12004// AsBasicPropertyBatchOperation is the BasicPropertyBatchOperation implementation for CheckValuePropertyBatchOperation.
12005func (cvpbo CheckValuePropertyBatchOperation) AsBasicPropertyBatchOperation() (BasicPropertyBatchOperation, bool) {
12006	return &cvpbo, true
12007}
12008
12009// UnmarshalJSON is the custom unmarshaler for CheckValuePropertyBatchOperation struct.
12010func (cvpbo *CheckValuePropertyBatchOperation) UnmarshalJSON(body []byte) error {
12011	var m map[string]*json.RawMessage
12012	err := json.Unmarshal(body, &m)
12013	if err != nil {
12014		return err
12015	}
12016	for k, v := range m {
12017		switch k {
12018		case "Value":
12019			if v != nil {
12020				value, err := unmarshalBasicPropertyValue(*v)
12021				if err != nil {
12022					return err
12023				}
12024				cvpbo.Value = value
12025			}
12026		case "PropertyName":
12027			if v != nil {
12028				var propertyName string
12029				err = json.Unmarshal(*v, &propertyName)
12030				if err != nil {
12031					return err
12032				}
12033				cvpbo.PropertyName = &propertyName
12034			}
12035		case "Kind":
12036			if v != nil {
12037				var kind KindBasicPropertyBatchOperation
12038				err = json.Unmarshal(*v, &kind)
12039				if err != nil {
12040					return err
12041				}
12042				cvpbo.Kind = kind
12043			}
12044		}
12045	}
12046
12047	return nil
12048}
12049
12050// ClusterConfiguration information about the standalone cluster configuration.
12051type ClusterConfiguration struct {
12052	autorest.Response `json:"-"`
12053	// ClusterConfiguration - The contents of the cluster configuration file.
12054	ClusterConfiguration *string `json:"ClusterConfiguration,omitempty"`
12055}
12056
12057// ClusterConfigurationUpgradeDescription describes the parameters for a standalone cluster configuration
12058// upgrade.
12059type ClusterConfigurationUpgradeDescription struct {
12060	// 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).
12061	ClusterConfig *string `json:"ClusterConfig,omitempty"`
12062	// HealthCheckRetryTimeout - The length of time between attempts to perform health checks if the application or cluster is not healthy.
12063	HealthCheckRetryTimeout *string `json:"HealthCheckRetryTimeout,omitempty"`
12064	// HealthCheckWaitDurationInSeconds - The length of time to wait after completing an upgrade domain before starting the health checks process.
12065	HealthCheckWaitDurationInSeconds *string `json:"HealthCheckWaitDurationInSeconds,omitempty"`
12066	// HealthCheckStableDurationInSeconds - The length of time that the application or cluster must remain healthy before the upgrade proceeds to the next upgrade domain.
12067	HealthCheckStableDurationInSeconds *string `json:"HealthCheckStableDurationInSeconds,omitempty"`
12068	// UpgradeDomainTimeoutInSeconds - The timeout for the upgrade domain.
12069	UpgradeDomainTimeoutInSeconds *string `json:"UpgradeDomainTimeoutInSeconds,omitempty"`
12070	// UpgradeTimeoutInSeconds - The upgrade timeout.
12071	UpgradeTimeoutInSeconds *string `json:"UpgradeTimeoutInSeconds,omitempty"`
12072	// MaxPercentUnhealthyApplications - The maximum allowed percentage of unhealthy applications during the upgrade. Allowed values are integer values from zero to 100.
12073	MaxPercentUnhealthyApplications *int32 `json:"MaxPercentUnhealthyApplications,omitempty"`
12074	// MaxPercentUnhealthyNodes - The maximum allowed percentage of unhealthy nodes during the upgrade. Allowed values are integer values from zero to 100.
12075	MaxPercentUnhealthyNodes *int32 `json:"MaxPercentUnhealthyNodes,omitempty"`
12076	// MaxPercentDeltaUnhealthyNodes - The maximum allowed percentage of delta health degradation during the upgrade. Allowed values are integer values from zero to 100.
12077	MaxPercentDeltaUnhealthyNodes *int32 `json:"MaxPercentDeltaUnhealthyNodes,omitempty"`
12078	// MaxPercentUpgradeDomainDeltaUnhealthyNodes - The maximum allowed percentage of upgrade domain delta health degradation during the upgrade. Allowed values are integer values from zero to 100.
12079	MaxPercentUpgradeDomainDeltaUnhealthyNodes *int32 `json:"MaxPercentUpgradeDomainDeltaUnhealthyNodes,omitempty"`
12080	// ApplicationHealthPolicies - Defines the application health policy map used to evaluate the health of an application or one of its children entities.
12081	ApplicationHealthPolicies *ApplicationHealthPolicies `json:"ApplicationHealthPolicies,omitempty"`
12082}
12083
12084// ClusterConfigurationUpgradeStatusInfo information about a standalone cluster configuration upgrade
12085// status.
12086type ClusterConfigurationUpgradeStatusInfo struct {
12087	autorest.Response `json:"-"`
12088	// UpgradeState - The state of the upgrade domain. Possible values include: 'UpgradeStateInvalid', 'UpgradeStateRollingBackInProgress', 'UpgradeStateRollingBackCompleted', 'UpgradeStateRollingForwardPending', 'UpgradeStateRollingForwardInProgress', 'UpgradeStateRollingForwardCompleted', 'UpgradeStateFailed'
12089	UpgradeState UpgradeState `json:"UpgradeState,omitempty"`
12090	// ProgressStatus - The cluster manifest version.
12091	ProgressStatus *int32 `json:"ProgressStatus,omitempty"`
12092	// ConfigVersion - The cluster configuration version.
12093	ConfigVersion *string `json:"ConfigVersion,omitempty"`
12094	// Details - The cluster upgrade status details.
12095	Details *string `json:"Details,omitempty"`
12096}
12097
12098// BasicClusterEvent represents the base for all Cluster Events.
12099type BasicClusterEvent interface {
12100	AsClusterNewHealthReportEvent() (*ClusterNewHealthReportEvent, bool)
12101	AsClusterHealthReportExpiredEvent() (*ClusterHealthReportExpiredEvent, bool)
12102	AsClusterUpgradeCompletedEvent() (*ClusterUpgradeCompletedEvent, bool)
12103	AsClusterUpgradeDomainCompletedEvent() (*ClusterUpgradeDomainCompletedEvent, bool)
12104	AsClusterUpgradeRollbackCompletedEvent() (*ClusterUpgradeRollbackCompletedEvent, bool)
12105	AsClusterUpgradeRollbackStartedEvent() (*ClusterUpgradeRollbackStartedEvent, bool)
12106	AsClusterUpgradeStartedEvent() (*ClusterUpgradeStartedEvent, bool)
12107	AsChaosStoppedEvent() (*ChaosStoppedEvent, bool)
12108	AsChaosStartedEvent() (*ChaosStartedEvent, bool)
12109	AsClusterEvent() (*ClusterEvent, bool)
12110}
12111
12112// ClusterEvent represents the base for all Cluster Events.
12113type ClusterEvent struct {
12114	// EventInstanceID - The identifier for the FabricEvent instance.
12115	EventInstanceID *uuid.UUID `json:"EventInstanceId,omitempty"`
12116	// Category - The category of event.
12117	Category *string `json:"Category,omitempty"`
12118	// TimeStamp - The time event was logged.
12119	TimeStamp *date.Time `json:"TimeStamp,omitempty"`
12120	// HasCorrelatedEvents - Shows there is existing related events available.
12121	HasCorrelatedEvents *bool `json:"HasCorrelatedEvents,omitempty"`
12122	// 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'
12123	Kind KindBasicFabricEvent `json:"Kind,omitempty"`
12124}
12125
12126func unmarshalBasicClusterEvent(body []byte) (BasicClusterEvent, error) {
12127	var m map[string]interface{}
12128	err := json.Unmarshal(body, &m)
12129	if err != nil {
12130		return nil, err
12131	}
12132
12133	switch m["Kind"] {
12134	case string(KindClusterNewHealthReport):
12135		var cnhre ClusterNewHealthReportEvent
12136		err := json.Unmarshal(body, &cnhre)
12137		return cnhre, err
12138	case string(KindClusterHealthReportExpired):
12139		var chree ClusterHealthReportExpiredEvent
12140		err := json.Unmarshal(body, &chree)
12141		return chree, err
12142	case string(KindClusterUpgradeCompleted):
12143		var cuce ClusterUpgradeCompletedEvent
12144		err := json.Unmarshal(body, &cuce)
12145		return cuce, err
12146	case string(KindClusterUpgradeDomainCompleted):
12147		var cudce ClusterUpgradeDomainCompletedEvent
12148		err := json.Unmarshal(body, &cudce)
12149		return cudce, err
12150	case string(KindClusterUpgradeRollbackCompleted):
12151		var curce ClusterUpgradeRollbackCompletedEvent
12152		err := json.Unmarshal(body, &curce)
12153		return curce, err
12154	case string(KindClusterUpgradeRollbackStarted):
12155		var curse ClusterUpgradeRollbackStartedEvent
12156		err := json.Unmarshal(body, &curse)
12157		return curse, err
12158	case string(KindClusterUpgradeStarted):
12159		var cuse ClusterUpgradeStartedEvent
12160		err := json.Unmarshal(body, &cuse)
12161		return cuse, err
12162	case string(KindChaosStopped):
12163		var cse ChaosStoppedEvent
12164		err := json.Unmarshal(body, &cse)
12165		return cse, err
12166	case string(KindChaosStarted):
12167		var cse ChaosStartedEvent
12168		err := json.Unmarshal(body, &cse)
12169		return cse, err
12170	default:
12171		var ce ClusterEvent
12172		err := json.Unmarshal(body, &ce)
12173		return ce, err
12174	}
12175}
12176func unmarshalBasicClusterEventArray(body []byte) ([]BasicClusterEvent, error) {
12177	var rawMessages []*json.RawMessage
12178	err := json.Unmarshal(body, &rawMessages)
12179	if err != nil {
12180		return nil, err
12181	}
12182
12183	ceArray := make([]BasicClusterEvent, len(rawMessages))
12184
12185	for index, rawMessage := range rawMessages {
12186		ce, err := unmarshalBasicClusterEvent(*rawMessage)
12187		if err != nil {
12188			return nil, err
12189		}
12190		ceArray[index] = ce
12191	}
12192	return ceArray, nil
12193}
12194
12195// MarshalJSON is the custom marshaler for ClusterEvent.
12196func (ce ClusterEvent) MarshalJSON() ([]byte, error) {
12197	ce.Kind = KindClusterEvent
12198	objectMap := make(map[string]interface{})
12199	if ce.EventInstanceID != nil {
12200		objectMap["EventInstanceId"] = ce.EventInstanceID
12201	}
12202	if ce.Category != nil {
12203		objectMap["Category"] = ce.Category
12204	}
12205	if ce.TimeStamp != nil {
12206		objectMap["TimeStamp"] = ce.TimeStamp
12207	}
12208	if ce.HasCorrelatedEvents != nil {
12209		objectMap["HasCorrelatedEvents"] = ce.HasCorrelatedEvents
12210	}
12211	if ce.Kind != "" {
12212		objectMap["Kind"] = ce.Kind
12213	}
12214	return json.Marshal(objectMap)
12215}
12216
12217// AsApplicationEvent is the BasicFabricEvent implementation for ClusterEvent.
12218func (ce ClusterEvent) AsApplicationEvent() (*ApplicationEvent, bool) {
12219	return nil, false
12220}
12221
12222// AsBasicApplicationEvent is the BasicFabricEvent implementation for ClusterEvent.
12223func (ce ClusterEvent) AsBasicApplicationEvent() (BasicApplicationEvent, bool) {
12224	return nil, false
12225}
12226
12227// AsClusterEvent is the BasicFabricEvent implementation for ClusterEvent.
12228func (ce ClusterEvent) AsClusterEvent() (*ClusterEvent, bool) {
12229	return &ce, true
12230}
12231
12232// AsBasicClusterEvent is the BasicFabricEvent implementation for ClusterEvent.
12233func (ce ClusterEvent) AsBasicClusterEvent() (BasicClusterEvent, bool) {
12234	return &ce, true
12235}
12236
12237// AsContainerInstanceEvent is the BasicFabricEvent implementation for ClusterEvent.
12238func (ce ClusterEvent) AsContainerInstanceEvent() (*ContainerInstanceEvent, bool) {
12239	return nil, false
12240}
12241
12242// AsNodeEvent is the BasicFabricEvent implementation for ClusterEvent.
12243func (ce ClusterEvent) AsNodeEvent() (*NodeEvent, bool) {
12244	return nil, false
12245}
12246
12247// AsBasicNodeEvent is the BasicFabricEvent implementation for ClusterEvent.
12248func (ce ClusterEvent) AsBasicNodeEvent() (BasicNodeEvent, bool) {
12249	return nil, false
12250}
12251
12252// AsPartitionAnalysisEvent is the BasicFabricEvent implementation for ClusterEvent.
12253func (ce ClusterEvent) AsPartitionAnalysisEvent() (*PartitionAnalysisEvent, bool) {
12254	return nil, false
12255}
12256
12257// AsBasicPartitionAnalysisEvent is the BasicFabricEvent implementation for ClusterEvent.
12258func (ce ClusterEvent) AsBasicPartitionAnalysisEvent() (BasicPartitionAnalysisEvent, bool) {
12259	return nil, false
12260}
12261
12262// AsPartitionEvent is the BasicFabricEvent implementation for ClusterEvent.
12263func (ce ClusterEvent) AsPartitionEvent() (*PartitionEvent, bool) {
12264	return nil, false
12265}
12266
12267// AsBasicPartitionEvent is the BasicFabricEvent implementation for ClusterEvent.
12268func (ce ClusterEvent) AsBasicPartitionEvent() (BasicPartitionEvent, bool) {
12269	return nil, false
12270}
12271
12272// AsReplicaEvent is the BasicFabricEvent implementation for ClusterEvent.
12273func (ce ClusterEvent) AsReplicaEvent() (*ReplicaEvent, bool) {
12274	return nil, false
12275}
12276
12277// AsBasicReplicaEvent is the BasicFabricEvent implementation for ClusterEvent.
12278func (ce ClusterEvent) AsBasicReplicaEvent() (BasicReplicaEvent, bool) {
12279	return nil, false
12280}
12281
12282// AsServiceEvent is the BasicFabricEvent implementation for ClusterEvent.
12283func (ce ClusterEvent) AsServiceEvent() (*ServiceEvent, bool) {
12284	return nil, false
12285}
12286
12287// AsBasicServiceEvent is the BasicFabricEvent implementation for ClusterEvent.
12288func (ce ClusterEvent) AsBasicServiceEvent() (BasicServiceEvent, bool) {
12289	return nil, false
12290}
12291
12292// AsApplicationCreatedEvent is the BasicFabricEvent implementation for ClusterEvent.
12293func (ce ClusterEvent) AsApplicationCreatedEvent() (*ApplicationCreatedEvent, bool) {
12294	return nil, false
12295}
12296
12297// AsApplicationDeletedEvent is the BasicFabricEvent implementation for ClusterEvent.
12298func (ce ClusterEvent) AsApplicationDeletedEvent() (*ApplicationDeletedEvent, bool) {
12299	return nil, false
12300}
12301
12302// AsApplicationNewHealthReportEvent is the BasicFabricEvent implementation for ClusterEvent.
12303func (ce ClusterEvent) AsApplicationNewHealthReportEvent() (*ApplicationNewHealthReportEvent, bool) {
12304	return nil, false
12305}
12306
12307// AsApplicationHealthReportExpiredEvent is the BasicFabricEvent implementation for ClusterEvent.
12308func (ce ClusterEvent) AsApplicationHealthReportExpiredEvent() (*ApplicationHealthReportExpiredEvent, bool) {
12309	return nil, false
12310}
12311
12312// AsApplicationUpgradeCompletedEvent is the BasicFabricEvent implementation for ClusterEvent.
12313func (ce ClusterEvent) AsApplicationUpgradeCompletedEvent() (*ApplicationUpgradeCompletedEvent, bool) {
12314	return nil, false
12315}
12316
12317// AsApplicationUpgradeDomainCompletedEvent is the BasicFabricEvent implementation for ClusterEvent.
12318func (ce ClusterEvent) AsApplicationUpgradeDomainCompletedEvent() (*ApplicationUpgradeDomainCompletedEvent, bool) {
12319	return nil, false
12320}
12321
12322// AsApplicationUpgradeRollbackCompletedEvent is the BasicFabricEvent implementation for ClusterEvent.
12323func (ce ClusterEvent) AsApplicationUpgradeRollbackCompletedEvent() (*ApplicationUpgradeRollbackCompletedEvent, bool) {
12324	return nil, false
12325}
12326
12327// AsApplicationUpgradeRollbackStartedEvent is the BasicFabricEvent implementation for ClusterEvent.
12328func (ce ClusterEvent) AsApplicationUpgradeRollbackStartedEvent() (*ApplicationUpgradeRollbackStartedEvent, bool) {
12329	return nil, false
12330}
12331
12332// AsApplicationUpgradeStartedEvent is the BasicFabricEvent implementation for ClusterEvent.
12333func (ce ClusterEvent) AsApplicationUpgradeStartedEvent() (*ApplicationUpgradeStartedEvent, bool) {
12334	return nil, false
12335}
12336
12337// AsDeployedApplicationNewHealthReportEvent is the BasicFabricEvent implementation for ClusterEvent.
12338func (ce ClusterEvent) AsDeployedApplicationNewHealthReportEvent() (*DeployedApplicationNewHealthReportEvent, bool) {
12339	return nil, false
12340}
12341
12342// AsDeployedApplicationHealthReportExpiredEvent is the BasicFabricEvent implementation for ClusterEvent.
12343func (ce ClusterEvent) AsDeployedApplicationHealthReportExpiredEvent() (*DeployedApplicationHealthReportExpiredEvent, bool) {
12344	return nil, false
12345}
12346
12347// AsApplicationProcessExitedEvent is the BasicFabricEvent implementation for ClusterEvent.
12348func (ce ClusterEvent) AsApplicationProcessExitedEvent() (*ApplicationProcessExitedEvent, bool) {
12349	return nil, false
12350}
12351
12352// AsApplicationContainerInstanceExitedEvent is the BasicFabricEvent implementation for ClusterEvent.
12353func (ce ClusterEvent) AsApplicationContainerInstanceExitedEvent() (*ApplicationContainerInstanceExitedEvent, bool) {
12354	return nil, false
12355}
12356
12357// AsNodeAbortedEvent is the BasicFabricEvent implementation for ClusterEvent.
12358func (ce ClusterEvent) AsNodeAbortedEvent() (*NodeAbortedEvent, bool) {
12359	return nil, false
12360}
12361
12362// AsNodeAddedToClusterEvent is the BasicFabricEvent implementation for ClusterEvent.
12363func (ce ClusterEvent) AsNodeAddedToClusterEvent() (*NodeAddedToClusterEvent, bool) {
12364	return nil, false
12365}
12366
12367// AsNodeClosedEvent is the BasicFabricEvent implementation for ClusterEvent.
12368func (ce ClusterEvent) AsNodeClosedEvent() (*NodeClosedEvent, bool) {
12369	return nil, false
12370}
12371
12372// AsNodeDeactivateCompletedEvent is the BasicFabricEvent implementation for ClusterEvent.
12373func (ce ClusterEvent) AsNodeDeactivateCompletedEvent() (*NodeDeactivateCompletedEvent, bool) {
12374	return nil, false
12375}
12376
12377// AsNodeDeactivateStartedEvent is the BasicFabricEvent implementation for ClusterEvent.
12378func (ce ClusterEvent) AsNodeDeactivateStartedEvent() (*NodeDeactivateStartedEvent, bool) {
12379	return nil, false
12380}
12381
12382// AsNodeDownEvent is the BasicFabricEvent implementation for ClusterEvent.
12383func (ce ClusterEvent) AsNodeDownEvent() (*NodeDownEvent, bool) {
12384	return nil, false
12385}
12386
12387// AsNodeNewHealthReportEvent is the BasicFabricEvent implementation for ClusterEvent.
12388func (ce ClusterEvent) AsNodeNewHealthReportEvent() (*NodeNewHealthReportEvent, bool) {
12389	return nil, false
12390}
12391
12392// AsNodeHealthReportExpiredEvent is the BasicFabricEvent implementation for ClusterEvent.
12393func (ce ClusterEvent) AsNodeHealthReportExpiredEvent() (*NodeHealthReportExpiredEvent, bool) {
12394	return nil, false
12395}
12396
12397// AsNodeOpenSucceededEvent is the BasicFabricEvent implementation for ClusterEvent.
12398func (ce ClusterEvent) AsNodeOpenSucceededEvent() (*NodeOpenSucceededEvent, bool) {
12399	return nil, false
12400}
12401
12402// AsNodeOpenFailedEvent is the BasicFabricEvent implementation for ClusterEvent.
12403func (ce ClusterEvent) AsNodeOpenFailedEvent() (*NodeOpenFailedEvent, bool) {
12404	return nil, false
12405}
12406
12407// AsNodeRemovedFromClusterEvent is the BasicFabricEvent implementation for ClusterEvent.
12408func (ce ClusterEvent) AsNodeRemovedFromClusterEvent() (*NodeRemovedFromClusterEvent, bool) {
12409	return nil, false
12410}
12411
12412// AsNodeUpEvent is the BasicFabricEvent implementation for ClusterEvent.
12413func (ce ClusterEvent) AsNodeUpEvent() (*NodeUpEvent, bool) {
12414	return nil, false
12415}
12416
12417// AsPartitionNewHealthReportEvent is the BasicFabricEvent implementation for ClusterEvent.
12418func (ce ClusterEvent) AsPartitionNewHealthReportEvent() (*PartitionNewHealthReportEvent, bool) {
12419	return nil, false
12420}
12421
12422// AsPartitionHealthReportExpiredEvent is the BasicFabricEvent implementation for ClusterEvent.
12423func (ce ClusterEvent) AsPartitionHealthReportExpiredEvent() (*PartitionHealthReportExpiredEvent, bool) {
12424	return nil, false
12425}
12426
12427// AsPartitionReconfiguredEvent is the BasicFabricEvent implementation for ClusterEvent.
12428func (ce ClusterEvent) AsPartitionReconfiguredEvent() (*PartitionReconfiguredEvent, bool) {
12429	return nil, false
12430}
12431
12432// AsPartitionPrimaryMoveAnalysisEvent is the BasicFabricEvent implementation for ClusterEvent.
12433func (ce ClusterEvent) AsPartitionPrimaryMoveAnalysisEvent() (*PartitionPrimaryMoveAnalysisEvent, bool) {
12434	return nil, false
12435}
12436
12437// AsServiceCreatedEvent is the BasicFabricEvent implementation for ClusterEvent.
12438func (ce ClusterEvent) AsServiceCreatedEvent() (*ServiceCreatedEvent, bool) {
12439	return nil, false
12440}
12441
12442// AsServiceDeletedEvent is the BasicFabricEvent implementation for ClusterEvent.
12443func (ce ClusterEvent) AsServiceDeletedEvent() (*ServiceDeletedEvent, bool) {
12444	return nil, false
12445}
12446
12447// AsServiceNewHealthReportEvent is the BasicFabricEvent implementation for ClusterEvent.
12448func (ce ClusterEvent) AsServiceNewHealthReportEvent() (*ServiceNewHealthReportEvent, bool) {
12449	return nil, false
12450}
12451
12452// AsServiceHealthReportExpiredEvent is the BasicFabricEvent implementation for ClusterEvent.
12453func (ce ClusterEvent) AsServiceHealthReportExpiredEvent() (*ServiceHealthReportExpiredEvent, bool) {
12454	return nil, false
12455}
12456
12457// AsDeployedServicePackageNewHealthReportEvent is the BasicFabricEvent implementation for ClusterEvent.
12458func (ce ClusterEvent) AsDeployedServicePackageNewHealthReportEvent() (*DeployedServicePackageNewHealthReportEvent, bool) {
12459	return nil, false
12460}
12461
12462// AsDeployedServicePackageHealthReportExpiredEvent is the BasicFabricEvent implementation for ClusterEvent.
12463func (ce ClusterEvent) AsDeployedServicePackageHealthReportExpiredEvent() (*DeployedServicePackageHealthReportExpiredEvent, bool) {
12464	return nil, false
12465}
12466
12467// AsStatefulReplicaNewHealthReportEvent is the BasicFabricEvent implementation for ClusterEvent.
12468func (ce ClusterEvent) AsStatefulReplicaNewHealthReportEvent() (*StatefulReplicaNewHealthReportEvent, bool) {
12469	return nil, false
12470}
12471
12472// AsStatefulReplicaHealthReportExpiredEvent is the BasicFabricEvent implementation for ClusterEvent.
12473func (ce ClusterEvent) AsStatefulReplicaHealthReportExpiredEvent() (*StatefulReplicaHealthReportExpiredEvent, bool) {
12474	return nil, false
12475}
12476
12477// AsStatelessReplicaNewHealthReportEvent is the BasicFabricEvent implementation for ClusterEvent.
12478func (ce ClusterEvent) AsStatelessReplicaNewHealthReportEvent() (*StatelessReplicaNewHealthReportEvent, bool) {
12479	return nil, false
12480}
12481
12482// AsStatelessReplicaHealthReportExpiredEvent is the BasicFabricEvent implementation for ClusterEvent.
12483func (ce ClusterEvent) AsStatelessReplicaHealthReportExpiredEvent() (*StatelessReplicaHealthReportExpiredEvent, bool) {
12484	return nil, false
12485}
12486
12487// AsClusterNewHealthReportEvent is the BasicFabricEvent implementation for ClusterEvent.
12488func (ce ClusterEvent) AsClusterNewHealthReportEvent() (*ClusterNewHealthReportEvent, bool) {
12489	return nil, false
12490}
12491
12492// AsClusterHealthReportExpiredEvent is the BasicFabricEvent implementation for ClusterEvent.
12493func (ce ClusterEvent) AsClusterHealthReportExpiredEvent() (*ClusterHealthReportExpiredEvent, bool) {
12494	return nil, false
12495}
12496
12497// AsClusterUpgradeCompletedEvent is the BasicFabricEvent implementation for ClusterEvent.
12498func (ce ClusterEvent) AsClusterUpgradeCompletedEvent() (*ClusterUpgradeCompletedEvent, bool) {
12499	return nil, false
12500}
12501
12502// AsClusterUpgradeDomainCompletedEvent is the BasicFabricEvent implementation for ClusterEvent.
12503func (ce ClusterEvent) AsClusterUpgradeDomainCompletedEvent() (*ClusterUpgradeDomainCompletedEvent, bool) {
12504	return nil, false
12505}
12506
12507// AsClusterUpgradeRollbackCompletedEvent is the BasicFabricEvent implementation for ClusterEvent.
12508func (ce ClusterEvent) AsClusterUpgradeRollbackCompletedEvent() (*ClusterUpgradeRollbackCompletedEvent, bool) {
12509	return nil, false
12510}
12511
12512// AsClusterUpgradeRollbackStartedEvent is the BasicFabricEvent implementation for ClusterEvent.
12513func (ce ClusterEvent) AsClusterUpgradeRollbackStartedEvent() (*ClusterUpgradeRollbackStartedEvent, bool) {
12514	return nil, false
12515}
12516
12517// AsClusterUpgradeStartedEvent is the BasicFabricEvent implementation for ClusterEvent.
12518func (ce ClusterEvent) AsClusterUpgradeStartedEvent() (*ClusterUpgradeStartedEvent, bool) {
12519	return nil, false
12520}
12521
12522// AsChaosStoppedEvent is the BasicFabricEvent implementation for ClusterEvent.
12523func (ce ClusterEvent) AsChaosStoppedEvent() (*ChaosStoppedEvent, bool) {
12524	return nil, false
12525}
12526
12527// AsChaosStartedEvent is the BasicFabricEvent implementation for ClusterEvent.
12528func (ce ClusterEvent) AsChaosStartedEvent() (*ChaosStartedEvent, bool) {
12529	return nil, false
12530}
12531
12532// AsChaosCodePackageRestartScheduledEvent is the BasicFabricEvent implementation for ClusterEvent.
12533func (ce ClusterEvent) AsChaosCodePackageRestartScheduledEvent() (*ChaosCodePackageRestartScheduledEvent, bool) {
12534	return nil, false
12535}
12536
12537// AsChaosReplicaRemovalScheduledEvent is the BasicFabricEvent implementation for ClusterEvent.
12538func (ce ClusterEvent) AsChaosReplicaRemovalScheduledEvent() (*ChaosReplicaRemovalScheduledEvent, bool) {
12539	return nil, false
12540}
12541
12542// AsChaosPartitionSecondaryMoveScheduledEvent is the BasicFabricEvent implementation for ClusterEvent.
12543func (ce ClusterEvent) AsChaosPartitionSecondaryMoveScheduledEvent() (*ChaosPartitionSecondaryMoveScheduledEvent, bool) {
12544	return nil, false
12545}
12546
12547// AsChaosPartitionPrimaryMoveScheduledEvent is the BasicFabricEvent implementation for ClusterEvent.
12548func (ce ClusterEvent) AsChaosPartitionPrimaryMoveScheduledEvent() (*ChaosPartitionPrimaryMoveScheduledEvent, bool) {
12549	return nil, false
12550}
12551
12552// AsChaosReplicaRestartScheduledEvent is the BasicFabricEvent implementation for ClusterEvent.
12553func (ce ClusterEvent) AsChaosReplicaRestartScheduledEvent() (*ChaosReplicaRestartScheduledEvent, bool) {
12554	return nil, false
12555}
12556
12557// AsChaosNodeRestartScheduledEvent is the BasicFabricEvent implementation for ClusterEvent.
12558func (ce ClusterEvent) AsChaosNodeRestartScheduledEvent() (*ChaosNodeRestartScheduledEvent, bool) {
12559	return nil, false
12560}
12561
12562// AsFabricEvent is the BasicFabricEvent implementation for ClusterEvent.
12563func (ce ClusterEvent) AsFabricEvent() (*FabricEvent, bool) {
12564	return nil, false
12565}
12566
12567// AsBasicFabricEvent is the BasicFabricEvent implementation for ClusterEvent.
12568func (ce ClusterEvent) AsBasicFabricEvent() (BasicFabricEvent, bool) {
12569	return &ce, true
12570}
12571
12572// ClusterHealth represents the health of the cluster.
12573// Contains the cluster aggregated health state, the cluster application and node health states as well as
12574// the health events and the unhealthy evaluations.
12575type ClusterHealth struct {
12576	autorest.Response `json:"-"`
12577	// NodeHealthStates - Cluster node health states as found in the health store.
12578	NodeHealthStates *[]NodeHealthState `json:"NodeHealthStates,omitempty"`
12579	// ApplicationHealthStates - Cluster application health states as found in the health store.
12580	ApplicationHealthStates *[]ApplicationHealthState `json:"ApplicationHealthStates,omitempty"`
12581	// AggregatedHealthState - The HealthState representing the aggregated health state of the entity computed by Health Manager.
12582	// The health evaluation of the entity reflects all events reported on the entity and its children (if any).
12583	// The aggregation is done by applying the desired health policy. Possible values include: 'HealthStateInvalid', 'HealthStateOk', 'HealthStateWarning', 'HealthStateError', 'HealthStateUnknown'
12584	AggregatedHealthState HealthState `json:"AggregatedHealthState,omitempty"`
12585	// HealthEvents - The list of health events reported on the entity.
12586	HealthEvents *[]HealthEvent `json:"HealthEvents,omitempty"`
12587	// UnhealthyEvaluations - The unhealthy evaluations that show why the current aggregated health state was returned by Health Manager.
12588	UnhealthyEvaluations *[]HealthEvaluationWrapper `json:"UnhealthyEvaluations,omitempty"`
12589	// HealthStatistics - Shows the health statistics for all children types of the queried entity.
12590	HealthStatistics *HealthStatistics `json:"HealthStatistics,omitempty"`
12591}
12592
12593// ClusterHealthChunk represents the health chunk of the cluster.
12594// Contains the cluster aggregated health state, and the cluster entities that respect the input filter.
12595type ClusterHealthChunk struct {
12596	autorest.Response `json:"-"`
12597	// HealthState - The HealthState representing the aggregated health state of the cluster computed by Health Manager.
12598	// The health evaluation of the entity reflects all events reported on the entity and its children (if any).
12599	// The aggregation is done by applying the desired cluster health policy and the application health policies. Possible values include: 'HealthStateInvalid', 'HealthStateOk', 'HealthStateWarning', 'HealthStateError', 'HealthStateUnknown'
12600	HealthState HealthState `json:"HealthState,omitempty"`
12601	// NodeHealthStateChunks - The list of node health state chunks in the cluster that respect the filters in the cluster health chunk query description.
12602	NodeHealthStateChunks *NodeHealthStateChunkList `json:"NodeHealthStateChunks,omitempty"`
12603	// ApplicationHealthStateChunks - The list of application health state chunks in the cluster that respect the filters in the cluster health chunk query description.
12604	ApplicationHealthStateChunks *ApplicationHealthStateChunkList `json:"ApplicationHealthStateChunks,omitempty"`
12605}
12606
12607// ClusterHealthChunkQueryDescription the cluster health chunk query description, which can specify the
12608// health policies to evaluate cluster health and very expressive filters to select which cluster entities
12609// to include in response.
12610type ClusterHealthChunkQueryDescription struct {
12611	// NodeFilters - Defines a list of filters that specify which nodes to be included in the returned cluster health chunk.
12612	// 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.
12613	// The cluster health chunk query may specify multiple node filters.
12614	// 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.
12615	NodeFilters *[]NodeHealthStateFilter `json:"NodeFilters,omitempty"`
12616	// ApplicationFilters - Defines a list of filters that specify which applications to be included in the returned cluster health chunk.
12617	// 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.
12618	// The cluster health chunk query may specify multiple application filters.
12619	// 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.
12620	ApplicationFilters *[]ApplicationHealthStateFilter `json:"ApplicationFilters,omitempty"`
12621	// ClusterHealthPolicy - Defines a health policy used to evaluate the health of the cluster or of a cluster node.
12622	ClusterHealthPolicy *ClusterHealthPolicy `json:"ClusterHealthPolicy,omitempty"`
12623	// ApplicationHealthPolicies - Defines the application health policy map used to evaluate the health of an application or one of its children entities.
12624	ApplicationHealthPolicies *ApplicationHealthPolicies `json:"ApplicationHealthPolicies,omitempty"`
12625}
12626
12627// ClusterHealthPolicies health policies to evaluate cluster health.
12628type ClusterHealthPolicies struct {
12629	// ApplicationHealthPolicyMap - Defines a map that contains specific application health policies for different applications.
12630	// Each entry specifies as key the application name and as value an ApplicationHealthPolicy used to evaluate the application health.
12631	// 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).
12632	// The map is empty by default.
12633	ApplicationHealthPolicyMap *[]ApplicationHealthPolicyMapItem `json:"ApplicationHealthPolicyMap,omitempty"`
12634	// ClusterHealthPolicy - Defines a health policy used to evaluate the health of the cluster or of a cluster node.
12635	ClusterHealthPolicy *ClusterHealthPolicy `json:"ClusterHealthPolicy,omitempty"`
12636}
12637
12638// ClusterHealthPolicy defines a health policy used to evaluate the health of the cluster or of a cluster
12639// node.
12640type ClusterHealthPolicy struct {
12641	// ConsiderWarningAsError - Indicates whether warnings are treated with the same severity as errors.
12642	ConsiderWarningAsError *bool `json:"ConsiderWarningAsError,omitempty"`
12643	// 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.
12644	// The percentage represents the maximum tolerated percentage of nodes that can be unhealthy before the cluster is considered in error.
12645	// If the percentage is respected but there is at least one unhealthy node, the health is evaluated as Warning.
12646	// The percentage is calculated by dividing the number of unhealthy nodes over the total number of nodes in the cluster.
12647	// The computation rounds up to tolerate one failure on small numbers of nodes. Default percentage is zero.
12648	// In large clusters, some nodes will always be down or out for repairs, so this percentage should be configured to tolerate that.
12649	MaxPercentUnhealthyNodes *int32 `json:"MaxPercentUnhealthyNodes,omitempty"`
12650	// 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.
12651	// The percentage represents the maximum tolerated percentage of applications that can be unhealthy before the cluster is considered in error.
12652	// If the percentage is respected but there is at least one unhealthy application, the health is evaluated as Warning.
12653	// 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.
12654	// The computation rounds up to tolerate one failure on small numbers of applications. Default percentage is zero.
12655	MaxPercentUnhealthyApplications *int32 `json:"MaxPercentUnhealthyApplications,omitempty"`
12656	// ApplicationTypeHealthPolicyMap - Defines a map with max percentage unhealthy applications for specific application types.
12657	// 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.
12658	// The application type health policy map can be used during cluster health evaluation to describe special application types.
12659	// 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.
12660	// The applications of application types specified in the map are not counted against the global pool of applications.
12661	// For example, if some applications of a type are critical, the cluster administrator can add an entry to the map for that application type
12662	// and assign it a value of 0% (that is, do not tolerate any failures).
12663	// All other applications can be evaluated with MaxPercentUnhealthyApplications set to 20% to tolerate some failures out of the thousands of application instances.
12664	// 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.
12665	ApplicationTypeHealthPolicyMap *[]ApplicationTypeHealthPolicyMapItem `json:"ApplicationTypeHealthPolicyMap,omitempty"`
12666}
12667
12668// ClusterHealthReportExpiredEvent cluster Health Report Expired event.
12669type ClusterHealthReportExpiredEvent struct {
12670	// SourceID - Id of report source.
12671	SourceID *string `json:"SourceId,omitempty"`
12672	// Property - Describes the property.
12673	Property *string `json:"Property,omitempty"`
12674	// HealthState - Describes the property health state.
12675	HealthState *string `json:"HealthState,omitempty"`
12676	// TimeToLiveMs - Time to live in milli-seconds.
12677	TimeToLiveMs *int64 `json:"TimeToLiveMs,omitempty"`
12678	// SequenceNumber - Sequence number of report.
12679	SequenceNumber *int64 `json:"SequenceNumber,omitempty"`
12680	// Description - Description of report.
12681	Description *string `json:"Description,omitempty"`
12682	// RemoveWhenExpired - Indicates the removal when it expires.
12683	RemoveWhenExpired *bool `json:"RemoveWhenExpired,omitempty"`
12684	// SourceUtcTimestamp - Source time.
12685	SourceUtcTimestamp *date.Time `json:"SourceUtcTimestamp,omitempty"`
12686	// EventInstanceID - The identifier for the FabricEvent instance.
12687	EventInstanceID *uuid.UUID `json:"EventInstanceId,omitempty"`
12688	// Category - The category of event.
12689	Category *string `json:"Category,omitempty"`
12690	// TimeStamp - The time event was logged.
12691	TimeStamp *date.Time `json:"TimeStamp,omitempty"`
12692	// HasCorrelatedEvents - Shows there is existing related events available.
12693	HasCorrelatedEvents *bool `json:"HasCorrelatedEvents,omitempty"`
12694	// 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'
12695	Kind KindBasicFabricEvent `json:"Kind,omitempty"`
12696}
12697
12698// MarshalJSON is the custom marshaler for ClusterHealthReportExpiredEvent.
12699func (chree ClusterHealthReportExpiredEvent) MarshalJSON() ([]byte, error) {
12700	chree.Kind = KindClusterHealthReportExpired
12701	objectMap := make(map[string]interface{})
12702	if chree.SourceID != nil {
12703		objectMap["SourceId"] = chree.SourceID
12704	}
12705	if chree.Property != nil {
12706		objectMap["Property"] = chree.Property
12707	}
12708	if chree.HealthState != nil {
12709		objectMap["HealthState"] = chree.HealthState
12710	}
12711	if chree.TimeToLiveMs != nil {
12712		objectMap["TimeToLiveMs"] = chree.TimeToLiveMs
12713	}
12714	if chree.SequenceNumber != nil {
12715		objectMap["SequenceNumber"] = chree.SequenceNumber
12716	}
12717	if chree.Description != nil {
12718		objectMap["Description"] = chree.Description
12719	}
12720	if chree.RemoveWhenExpired != nil {
12721		objectMap["RemoveWhenExpired"] = chree.RemoveWhenExpired
12722	}
12723	if chree.SourceUtcTimestamp != nil {
12724		objectMap["SourceUtcTimestamp"] = chree.SourceUtcTimestamp
12725	}
12726	if chree.EventInstanceID != nil {
12727		objectMap["EventInstanceId"] = chree.EventInstanceID
12728	}
12729	if chree.Category != nil {
12730		objectMap["Category"] = chree.Category
12731	}
12732	if chree.TimeStamp != nil {
12733		objectMap["TimeStamp"] = chree.TimeStamp
12734	}
12735	if chree.HasCorrelatedEvents != nil {
12736		objectMap["HasCorrelatedEvents"] = chree.HasCorrelatedEvents
12737	}
12738	if chree.Kind != "" {
12739		objectMap["Kind"] = chree.Kind
12740	}
12741	return json.Marshal(objectMap)
12742}
12743
12744// AsApplicationEvent is the BasicFabricEvent implementation for ClusterHealthReportExpiredEvent.
12745func (chree ClusterHealthReportExpiredEvent) AsApplicationEvent() (*ApplicationEvent, bool) {
12746	return nil, false
12747}
12748
12749// AsBasicApplicationEvent is the BasicFabricEvent implementation for ClusterHealthReportExpiredEvent.
12750func (chree ClusterHealthReportExpiredEvent) AsBasicApplicationEvent() (BasicApplicationEvent, bool) {
12751	return nil, false
12752}
12753
12754// AsClusterEvent is the BasicFabricEvent implementation for ClusterHealthReportExpiredEvent.
12755func (chree ClusterHealthReportExpiredEvent) AsClusterEvent() (*ClusterEvent, bool) {
12756	return nil, false
12757}
12758
12759// AsBasicClusterEvent is the BasicFabricEvent implementation for ClusterHealthReportExpiredEvent.
12760func (chree ClusterHealthReportExpiredEvent) AsBasicClusterEvent() (BasicClusterEvent, bool) {
12761	return &chree, true
12762}
12763
12764// AsContainerInstanceEvent is the BasicFabricEvent implementation for ClusterHealthReportExpiredEvent.
12765func (chree ClusterHealthReportExpiredEvent) AsContainerInstanceEvent() (*ContainerInstanceEvent, bool) {
12766	return nil, false
12767}
12768
12769// AsNodeEvent is the BasicFabricEvent implementation for ClusterHealthReportExpiredEvent.
12770func (chree ClusterHealthReportExpiredEvent) AsNodeEvent() (*NodeEvent, bool) {
12771	return nil, false
12772}
12773
12774// AsBasicNodeEvent is the BasicFabricEvent implementation for ClusterHealthReportExpiredEvent.
12775func (chree ClusterHealthReportExpiredEvent) AsBasicNodeEvent() (BasicNodeEvent, bool) {
12776	return nil, false
12777}
12778
12779// AsPartitionAnalysisEvent is the BasicFabricEvent implementation for ClusterHealthReportExpiredEvent.
12780func (chree ClusterHealthReportExpiredEvent) AsPartitionAnalysisEvent() (*PartitionAnalysisEvent, bool) {
12781	return nil, false
12782}
12783
12784// AsBasicPartitionAnalysisEvent is the BasicFabricEvent implementation for ClusterHealthReportExpiredEvent.
12785func (chree ClusterHealthReportExpiredEvent) AsBasicPartitionAnalysisEvent() (BasicPartitionAnalysisEvent, bool) {
12786	return nil, false
12787}
12788
12789// AsPartitionEvent is the BasicFabricEvent implementation for ClusterHealthReportExpiredEvent.
12790func (chree ClusterHealthReportExpiredEvent) AsPartitionEvent() (*PartitionEvent, bool) {
12791	return nil, false
12792}
12793
12794// AsBasicPartitionEvent is the BasicFabricEvent implementation for ClusterHealthReportExpiredEvent.
12795func (chree ClusterHealthReportExpiredEvent) AsBasicPartitionEvent() (BasicPartitionEvent, bool) {
12796	return nil, false
12797}
12798
12799// AsReplicaEvent is the BasicFabricEvent implementation for ClusterHealthReportExpiredEvent.
12800func (chree ClusterHealthReportExpiredEvent) AsReplicaEvent() (*ReplicaEvent, bool) {
12801	return nil, false
12802}
12803
12804// AsBasicReplicaEvent is the BasicFabricEvent implementation for ClusterHealthReportExpiredEvent.
12805func (chree ClusterHealthReportExpiredEvent) AsBasicReplicaEvent() (BasicReplicaEvent, bool) {
12806	return nil, false
12807}
12808
12809// AsServiceEvent is the BasicFabricEvent implementation for ClusterHealthReportExpiredEvent.
12810func (chree ClusterHealthReportExpiredEvent) AsServiceEvent() (*ServiceEvent, bool) {
12811	return nil, false
12812}
12813
12814// AsBasicServiceEvent is the BasicFabricEvent implementation for ClusterHealthReportExpiredEvent.
12815func (chree ClusterHealthReportExpiredEvent) AsBasicServiceEvent() (BasicServiceEvent, bool) {
12816	return nil, false
12817}
12818
12819// AsApplicationCreatedEvent is the BasicFabricEvent implementation for ClusterHealthReportExpiredEvent.
12820func (chree ClusterHealthReportExpiredEvent) AsApplicationCreatedEvent() (*ApplicationCreatedEvent, bool) {
12821	return nil, false
12822}
12823
12824// AsApplicationDeletedEvent is the BasicFabricEvent implementation for ClusterHealthReportExpiredEvent.
12825func (chree ClusterHealthReportExpiredEvent) AsApplicationDeletedEvent() (*ApplicationDeletedEvent, bool) {
12826	return nil, false
12827}
12828
12829// AsApplicationNewHealthReportEvent is the BasicFabricEvent implementation for ClusterHealthReportExpiredEvent.
12830func (chree ClusterHealthReportExpiredEvent) AsApplicationNewHealthReportEvent() (*ApplicationNewHealthReportEvent, bool) {
12831	return nil, false
12832}
12833
12834// AsApplicationHealthReportExpiredEvent is the BasicFabricEvent implementation for ClusterHealthReportExpiredEvent.
12835func (chree ClusterHealthReportExpiredEvent) AsApplicationHealthReportExpiredEvent() (*ApplicationHealthReportExpiredEvent, bool) {
12836	return nil, false
12837}
12838
12839// AsApplicationUpgradeCompletedEvent is the BasicFabricEvent implementation for ClusterHealthReportExpiredEvent.
12840func (chree ClusterHealthReportExpiredEvent) AsApplicationUpgradeCompletedEvent() (*ApplicationUpgradeCompletedEvent, bool) {
12841	return nil, false
12842}
12843
12844// AsApplicationUpgradeDomainCompletedEvent is the BasicFabricEvent implementation for ClusterHealthReportExpiredEvent.
12845func (chree ClusterHealthReportExpiredEvent) AsApplicationUpgradeDomainCompletedEvent() (*ApplicationUpgradeDomainCompletedEvent, bool) {
12846	return nil, false
12847}
12848
12849// AsApplicationUpgradeRollbackCompletedEvent is the BasicFabricEvent implementation for ClusterHealthReportExpiredEvent.
12850func (chree ClusterHealthReportExpiredEvent) AsApplicationUpgradeRollbackCompletedEvent() (*ApplicationUpgradeRollbackCompletedEvent, bool) {
12851	return nil, false
12852}
12853
12854// AsApplicationUpgradeRollbackStartedEvent is the BasicFabricEvent implementation for ClusterHealthReportExpiredEvent.
12855func (chree ClusterHealthReportExpiredEvent) AsApplicationUpgradeRollbackStartedEvent() (*ApplicationUpgradeRollbackStartedEvent, bool) {
12856	return nil, false
12857}
12858
12859// AsApplicationUpgradeStartedEvent is the BasicFabricEvent implementation for ClusterHealthReportExpiredEvent.
12860func (chree ClusterHealthReportExpiredEvent) AsApplicationUpgradeStartedEvent() (*ApplicationUpgradeStartedEvent, bool) {
12861	return nil, false
12862}
12863
12864// AsDeployedApplicationNewHealthReportEvent is the BasicFabricEvent implementation for ClusterHealthReportExpiredEvent.
12865func (chree ClusterHealthReportExpiredEvent) AsDeployedApplicationNewHealthReportEvent() (*DeployedApplicationNewHealthReportEvent, bool) {
12866	return nil, false
12867}
12868
12869// AsDeployedApplicationHealthReportExpiredEvent is the BasicFabricEvent implementation for ClusterHealthReportExpiredEvent.
12870func (chree ClusterHealthReportExpiredEvent) AsDeployedApplicationHealthReportExpiredEvent() (*DeployedApplicationHealthReportExpiredEvent, bool) {
12871	return nil, false
12872}
12873
12874// AsApplicationProcessExitedEvent is the BasicFabricEvent implementation for ClusterHealthReportExpiredEvent.
12875func (chree ClusterHealthReportExpiredEvent) AsApplicationProcessExitedEvent() (*ApplicationProcessExitedEvent, bool) {
12876	return nil, false
12877}
12878
12879// AsApplicationContainerInstanceExitedEvent is the BasicFabricEvent implementation for ClusterHealthReportExpiredEvent.
12880func (chree ClusterHealthReportExpiredEvent) AsApplicationContainerInstanceExitedEvent() (*ApplicationContainerInstanceExitedEvent, bool) {
12881	return nil, false
12882}
12883
12884// AsNodeAbortedEvent is the BasicFabricEvent implementation for ClusterHealthReportExpiredEvent.
12885func (chree ClusterHealthReportExpiredEvent) AsNodeAbortedEvent() (*NodeAbortedEvent, bool) {
12886	return nil, false
12887}
12888
12889// AsNodeAddedToClusterEvent is the BasicFabricEvent implementation for ClusterHealthReportExpiredEvent.
12890func (chree ClusterHealthReportExpiredEvent) AsNodeAddedToClusterEvent() (*NodeAddedToClusterEvent, bool) {
12891	return nil, false
12892}
12893
12894// AsNodeClosedEvent is the BasicFabricEvent implementation for ClusterHealthReportExpiredEvent.
12895func (chree ClusterHealthReportExpiredEvent) AsNodeClosedEvent() (*NodeClosedEvent, bool) {
12896	return nil, false
12897}
12898
12899// AsNodeDeactivateCompletedEvent is the BasicFabricEvent implementation for ClusterHealthReportExpiredEvent.
12900func (chree ClusterHealthReportExpiredEvent) AsNodeDeactivateCompletedEvent() (*NodeDeactivateCompletedEvent, bool) {
12901	return nil, false
12902}
12903
12904// AsNodeDeactivateStartedEvent is the BasicFabricEvent implementation for ClusterHealthReportExpiredEvent.
12905func (chree ClusterHealthReportExpiredEvent) AsNodeDeactivateStartedEvent() (*NodeDeactivateStartedEvent, bool) {
12906	return nil, false
12907}
12908
12909// AsNodeDownEvent is the BasicFabricEvent implementation for ClusterHealthReportExpiredEvent.
12910func (chree ClusterHealthReportExpiredEvent) AsNodeDownEvent() (*NodeDownEvent, bool) {
12911	return nil, false
12912}
12913
12914// AsNodeNewHealthReportEvent is the BasicFabricEvent implementation for ClusterHealthReportExpiredEvent.
12915func (chree ClusterHealthReportExpiredEvent) AsNodeNewHealthReportEvent() (*NodeNewHealthReportEvent, bool) {
12916	return nil, false
12917}
12918
12919// AsNodeHealthReportExpiredEvent is the BasicFabricEvent implementation for ClusterHealthReportExpiredEvent.
12920func (chree ClusterHealthReportExpiredEvent) AsNodeHealthReportExpiredEvent() (*NodeHealthReportExpiredEvent, bool) {
12921	return nil, false
12922}
12923
12924// AsNodeOpenSucceededEvent is the BasicFabricEvent implementation for ClusterHealthReportExpiredEvent.
12925func (chree ClusterHealthReportExpiredEvent) AsNodeOpenSucceededEvent() (*NodeOpenSucceededEvent, bool) {
12926	return nil, false
12927}
12928
12929// AsNodeOpenFailedEvent is the BasicFabricEvent implementation for ClusterHealthReportExpiredEvent.
12930func (chree ClusterHealthReportExpiredEvent) AsNodeOpenFailedEvent() (*NodeOpenFailedEvent, bool) {
12931	return nil, false
12932}
12933
12934// AsNodeRemovedFromClusterEvent is the BasicFabricEvent implementation for ClusterHealthReportExpiredEvent.
12935func (chree ClusterHealthReportExpiredEvent) AsNodeRemovedFromClusterEvent() (*NodeRemovedFromClusterEvent, bool) {
12936	return nil, false
12937}
12938
12939// AsNodeUpEvent is the BasicFabricEvent implementation for ClusterHealthReportExpiredEvent.
12940func (chree ClusterHealthReportExpiredEvent) AsNodeUpEvent() (*NodeUpEvent, bool) {
12941	return nil, false
12942}
12943
12944// AsPartitionNewHealthReportEvent is the BasicFabricEvent implementation for ClusterHealthReportExpiredEvent.
12945func (chree ClusterHealthReportExpiredEvent) AsPartitionNewHealthReportEvent() (*PartitionNewHealthReportEvent, bool) {
12946	return nil, false
12947}
12948
12949// AsPartitionHealthReportExpiredEvent is the BasicFabricEvent implementation for ClusterHealthReportExpiredEvent.
12950func (chree ClusterHealthReportExpiredEvent) AsPartitionHealthReportExpiredEvent() (*PartitionHealthReportExpiredEvent, bool) {
12951	return nil, false
12952}
12953
12954// AsPartitionReconfiguredEvent is the BasicFabricEvent implementation for ClusterHealthReportExpiredEvent.
12955func (chree ClusterHealthReportExpiredEvent) AsPartitionReconfiguredEvent() (*PartitionReconfiguredEvent, bool) {
12956	return nil, false
12957}
12958
12959// AsPartitionPrimaryMoveAnalysisEvent is the BasicFabricEvent implementation for ClusterHealthReportExpiredEvent.
12960func (chree ClusterHealthReportExpiredEvent) AsPartitionPrimaryMoveAnalysisEvent() (*PartitionPrimaryMoveAnalysisEvent, bool) {
12961	return nil, false
12962}
12963
12964// AsServiceCreatedEvent is the BasicFabricEvent implementation for ClusterHealthReportExpiredEvent.
12965func (chree ClusterHealthReportExpiredEvent) AsServiceCreatedEvent() (*ServiceCreatedEvent, bool) {
12966	return nil, false
12967}
12968
12969// AsServiceDeletedEvent is the BasicFabricEvent implementation for ClusterHealthReportExpiredEvent.
12970func (chree ClusterHealthReportExpiredEvent) AsServiceDeletedEvent() (*ServiceDeletedEvent, bool) {
12971	return nil, false
12972}
12973
12974// AsServiceNewHealthReportEvent is the BasicFabricEvent implementation for ClusterHealthReportExpiredEvent.
12975func (chree ClusterHealthReportExpiredEvent) AsServiceNewHealthReportEvent() (*ServiceNewHealthReportEvent, bool) {
12976	return nil, false
12977}
12978
12979// AsServiceHealthReportExpiredEvent is the BasicFabricEvent implementation for ClusterHealthReportExpiredEvent.
12980func (chree ClusterHealthReportExpiredEvent) AsServiceHealthReportExpiredEvent() (*ServiceHealthReportExpiredEvent, bool) {
12981	return nil, false
12982}
12983
12984// AsDeployedServicePackageNewHealthReportEvent is the BasicFabricEvent implementation for ClusterHealthReportExpiredEvent.
12985func (chree ClusterHealthReportExpiredEvent) AsDeployedServicePackageNewHealthReportEvent() (*DeployedServicePackageNewHealthReportEvent, bool) {
12986	return nil, false
12987}
12988
12989// AsDeployedServicePackageHealthReportExpiredEvent is the BasicFabricEvent implementation for ClusterHealthReportExpiredEvent.
12990func (chree ClusterHealthReportExpiredEvent) AsDeployedServicePackageHealthReportExpiredEvent() (*DeployedServicePackageHealthReportExpiredEvent, bool) {
12991	return nil, false
12992}
12993
12994// AsStatefulReplicaNewHealthReportEvent is the BasicFabricEvent implementation for ClusterHealthReportExpiredEvent.
12995func (chree ClusterHealthReportExpiredEvent) AsStatefulReplicaNewHealthReportEvent() (*StatefulReplicaNewHealthReportEvent, bool) {
12996	return nil, false
12997}
12998
12999// AsStatefulReplicaHealthReportExpiredEvent is the BasicFabricEvent implementation for ClusterHealthReportExpiredEvent.
13000func (chree ClusterHealthReportExpiredEvent) AsStatefulReplicaHealthReportExpiredEvent() (*StatefulReplicaHealthReportExpiredEvent, bool) {
13001	return nil, false
13002}
13003
13004// AsStatelessReplicaNewHealthReportEvent is the BasicFabricEvent implementation for ClusterHealthReportExpiredEvent.
13005func (chree ClusterHealthReportExpiredEvent) AsStatelessReplicaNewHealthReportEvent() (*StatelessReplicaNewHealthReportEvent, bool) {
13006	return nil, false
13007}
13008
13009// AsStatelessReplicaHealthReportExpiredEvent is the BasicFabricEvent implementation for ClusterHealthReportExpiredEvent.
13010func (chree ClusterHealthReportExpiredEvent) AsStatelessReplicaHealthReportExpiredEvent() (*StatelessReplicaHealthReportExpiredEvent, bool) {
13011	return nil, false
13012}
13013
13014// AsClusterNewHealthReportEvent is the BasicFabricEvent implementation for ClusterHealthReportExpiredEvent.
13015func (chree ClusterHealthReportExpiredEvent) AsClusterNewHealthReportEvent() (*ClusterNewHealthReportEvent, bool) {
13016	return nil, false
13017}
13018
13019// AsClusterHealthReportExpiredEvent is the BasicFabricEvent implementation for ClusterHealthReportExpiredEvent.
13020func (chree ClusterHealthReportExpiredEvent) AsClusterHealthReportExpiredEvent() (*ClusterHealthReportExpiredEvent, bool) {
13021	return &chree, true
13022}
13023
13024// AsClusterUpgradeCompletedEvent is the BasicFabricEvent implementation for ClusterHealthReportExpiredEvent.
13025func (chree ClusterHealthReportExpiredEvent) AsClusterUpgradeCompletedEvent() (*ClusterUpgradeCompletedEvent, bool) {
13026	return nil, false
13027}
13028
13029// AsClusterUpgradeDomainCompletedEvent is the BasicFabricEvent implementation for ClusterHealthReportExpiredEvent.
13030func (chree ClusterHealthReportExpiredEvent) AsClusterUpgradeDomainCompletedEvent() (*ClusterUpgradeDomainCompletedEvent, bool) {
13031	return nil, false
13032}
13033
13034// AsClusterUpgradeRollbackCompletedEvent is the BasicFabricEvent implementation for ClusterHealthReportExpiredEvent.
13035func (chree ClusterHealthReportExpiredEvent) AsClusterUpgradeRollbackCompletedEvent() (*ClusterUpgradeRollbackCompletedEvent, bool) {
13036	return nil, false
13037}
13038
13039// AsClusterUpgradeRollbackStartedEvent is the BasicFabricEvent implementation for ClusterHealthReportExpiredEvent.
13040func (chree ClusterHealthReportExpiredEvent) AsClusterUpgradeRollbackStartedEvent() (*ClusterUpgradeRollbackStartedEvent, bool) {
13041	return nil, false
13042}
13043
13044// AsClusterUpgradeStartedEvent is the BasicFabricEvent implementation for ClusterHealthReportExpiredEvent.
13045func (chree ClusterHealthReportExpiredEvent) AsClusterUpgradeStartedEvent() (*ClusterUpgradeStartedEvent, bool) {
13046	return nil, false
13047}
13048
13049// AsChaosStoppedEvent is the BasicFabricEvent implementation for ClusterHealthReportExpiredEvent.
13050func (chree ClusterHealthReportExpiredEvent) AsChaosStoppedEvent() (*ChaosStoppedEvent, bool) {
13051	return nil, false
13052}
13053
13054// AsChaosStartedEvent is the BasicFabricEvent implementation for ClusterHealthReportExpiredEvent.
13055func (chree ClusterHealthReportExpiredEvent) AsChaosStartedEvent() (*ChaosStartedEvent, bool) {
13056	return nil, false
13057}
13058
13059// AsChaosCodePackageRestartScheduledEvent is the BasicFabricEvent implementation for ClusterHealthReportExpiredEvent.
13060func (chree ClusterHealthReportExpiredEvent) AsChaosCodePackageRestartScheduledEvent() (*ChaosCodePackageRestartScheduledEvent, bool) {
13061	return nil, false
13062}
13063
13064// AsChaosReplicaRemovalScheduledEvent is the BasicFabricEvent implementation for ClusterHealthReportExpiredEvent.
13065func (chree ClusterHealthReportExpiredEvent) AsChaosReplicaRemovalScheduledEvent() (*ChaosReplicaRemovalScheduledEvent, bool) {
13066	return nil, false
13067}
13068
13069// AsChaosPartitionSecondaryMoveScheduledEvent is the BasicFabricEvent implementation for ClusterHealthReportExpiredEvent.
13070func (chree ClusterHealthReportExpiredEvent) AsChaosPartitionSecondaryMoveScheduledEvent() (*ChaosPartitionSecondaryMoveScheduledEvent, bool) {
13071	return nil, false
13072}
13073
13074// AsChaosPartitionPrimaryMoveScheduledEvent is the BasicFabricEvent implementation for ClusterHealthReportExpiredEvent.
13075func (chree ClusterHealthReportExpiredEvent) AsChaosPartitionPrimaryMoveScheduledEvent() (*ChaosPartitionPrimaryMoveScheduledEvent, bool) {
13076	return nil, false
13077}
13078
13079// AsChaosReplicaRestartScheduledEvent is the BasicFabricEvent implementation for ClusterHealthReportExpiredEvent.
13080func (chree ClusterHealthReportExpiredEvent) AsChaosReplicaRestartScheduledEvent() (*ChaosReplicaRestartScheduledEvent, bool) {
13081	return nil, false
13082}
13083
13084// AsChaosNodeRestartScheduledEvent is the BasicFabricEvent implementation for ClusterHealthReportExpiredEvent.
13085func (chree ClusterHealthReportExpiredEvent) AsChaosNodeRestartScheduledEvent() (*ChaosNodeRestartScheduledEvent, bool) {
13086	return nil, false
13087}
13088
13089// AsFabricEvent is the BasicFabricEvent implementation for ClusterHealthReportExpiredEvent.
13090func (chree ClusterHealthReportExpiredEvent) AsFabricEvent() (*FabricEvent, bool) {
13091	return nil, false
13092}
13093
13094// AsBasicFabricEvent is the BasicFabricEvent implementation for ClusterHealthReportExpiredEvent.
13095func (chree ClusterHealthReportExpiredEvent) AsBasicFabricEvent() (BasicFabricEvent, bool) {
13096	return &chree, true
13097}
13098
13099// ClusterLoadInfo information about load in a Service Fabric cluster. It holds a summary of all metrics
13100// and their load in a cluster.
13101type ClusterLoadInfo struct {
13102	autorest.Response `json:"-"`
13103	// LastBalancingStartTimeUtc - The starting time of last resource balancing run.
13104	LastBalancingStartTimeUtc *date.Time `json:"LastBalancingStartTimeUtc,omitempty"`
13105	// LastBalancingEndTimeUtc - The end time of last resource balancing run.
13106	LastBalancingEndTimeUtc *date.Time `json:"LastBalancingEndTimeUtc,omitempty"`
13107	// LoadMetricInformation - List that contains metrics and their load information in this cluster.
13108	LoadMetricInformation *[]LoadMetricInformation `json:"LoadMetricInformation,omitempty"`
13109}
13110
13111// ClusterManifest information about the cluster manifest.
13112type ClusterManifest struct {
13113	autorest.Response `json:"-"`
13114	// Manifest - The contents of the cluster manifest file.
13115	Manifest *string `json:"Manifest,omitempty"`
13116}
13117
13118// ClusterNewHealthReportEvent cluster Health Report Created event.
13119type ClusterNewHealthReportEvent struct {
13120	// SourceID - Id of report source.
13121	SourceID *string `json:"SourceId,omitempty"`
13122	// Property - Describes the property.
13123	Property *string `json:"Property,omitempty"`
13124	// HealthState - Describes the property health state.
13125	HealthState *string `json:"HealthState,omitempty"`
13126	// TimeToLiveMs - Time to live in milli-seconds.
13127	TimeToLiveMs *int64 `json:"TimeToLiveMs,omitempty"`
13128	// SequenceNumber - Sequence number of report.
13129	SequenceNumber *int64 `json:"SequenceNumber,omitempty"`
13130	// Description - Description of report.
13131	Description *string `json:"Description,omitempty"`
13132	// RemoveWhenExpired - Indicates the removal when it expires.
13133	RemoveWhenExpired *bool `json:"RemoveWhenExpired,omitempty"`
13134	// SourceUtcTimestamp - Source time.
13135	SourceUtcTimestamp *date.Time `json:"SourceUtcTimestamp,omitempty"`
13136	// EventInstanceID - The identifier for the FabricEvent instance.
13137	EventInstanceID *uuid.UUID `json:"EventInstanceId,omitempty"`
13138	// Category - The category of event.
13139	Category *string `json:"Category,omitempty"`
13140	// TimeStamp - The time event was logged.
13141	TimeStamp *date.Time `json:"TimeStamp,omitempty"`
13142	// HasCorrelatedEvents - Shows there is existing related events available.
13143	HasCorrelatedEvents *bool `json:"HasCorrelatedEvents,omitempty"`
13144	// 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'
13145	Kind KindBasicFabricEvent `json:"Kind,omitempty"`
13146}
13147
13148// MarshalJSON is the custom marshaler for ClusterNewHealthReportEvent.
13149func (cnhre ClusterNewHealthReportEvent) MarshalJSON() ([]byte, error) {
13150	cnhre.Kind = KindClusterNewHealthReport
13151	objectMap := make(map[string]interface{})
13152	if cnhre.SourceID != nil {
13153		objectMap["SourceId"] = cnhre.SourceID
13154	}
13155	if cnhre.Property != nil {
13156		objectMap["Property"] = cnhre.Property
13157	}
13158	if cnhre.HealthState != nil {
13159		objectMap["HealthState"] = cnhre.HealthState
13160	}
13161	if cnhre.TimeToLiveMs != nil {
13162		objectMap["TimeToLiveMs"] = cnhre.TimeToLiveMs
13163	}
13164	if cnhre.SequenceNumber != nil {
13165		objectMap["SequenceNumber"] = cnhre.SequenceNumber
13166	}
13167	if cnhre.Description != nil {
13168		objectMap["Description"] = cnhre.Description
13169	}
13170	if cnhre.RemoveWhenExpired != nil {
13171		objectMap["RemoveWhenExpired"] = cnhre.RemoveWhenExpired
13172	}
13173	if cnhre.SourceUtcTimestamp != nil {
13174		objectMap["SourceUtcTimestamp"] = cnhre.SourceUtcTimestamp
13175	}
13176	if cnhre.EventInstanceID != nil {
13177		objectMap["EventInstanceId"] = cnhre.EventInstanceID
13178	}
13179	if cnhre.Category != nil {
13180		objectMap["Category"] = cnhre.Category
13181	}
13182	if cnhre.TimeStamp != nil {
13183		objectMap["TimeStamp"] = cnhre.TimeStamp
13184	}
13185	if cnhre.HasCorrelatedEvents != nil {
13186		objectMap["HasCorrelatedEvents"] = cnhre.HasCorrelatedEvents
13187	}
13188	if cnhre.Kind != "" {
13189		objectMap["Kind"] = cnhre.Kind
13190	}
13191	return json.Marshal(objectMap)
13192}
13193
13194// AsApplicationEvent is the BasicFabricEvent implementation for ClusterNewHealthReportEvent.
13195func (cnhre ClusterNewHealthReportEvent) AsApplicationEvent() (*ApplicationEvent, bool) {
13196	return nil, false
13197}
13198
13199// AsBasicApplicationEvent is the BasicFabricEvent implementation for ClusterNewHealthReportEvent.
13200func (cnhre ClusterNewHealthReportEvent) AsBasicApplicationEvent() (BasicApplicationEvent, bool) {
13201	return nil, false
13202}
13203
13204// AsClusterEvent is the BasicFabricEvent implementation for ClusterNewHealthReportEvent.
13205func (cnhre ClusterNewHealthReportEvent) AsClusterEvent() (*ClusterEvent, bool) {
13206	return nil, false
13207}
13208
13209// AsBasicClusterEvent is the BasicFabricEvent implementation for ClusterNewHealthReportEvent.
13210func (cnhre ClusterNewHealthReportEvent) AsBasicClusterEvent() (BasicClusterEvent, bool) {
13211	return &cnhre, true
13212}
13213
13214// AsContainerInstanceEvent is the BasicFabricEvent implementation for ClusterNewHealthReportEvent.
13215func (cnhre ClusterNewHealthReportEvent) AsContainerInstanceEvent() (*ContainerInstanceEvent, bool) {
13216	return nil, false
13217}
13218
13219// AsNodeEvent is the BasicFabricEvent implementation for ClusterNewHealthReportEvent.
13220func (cnhre ClusterNewHealthReportEvent) AsNodeEvent() (*NodeEvent, bool) {
13221	return nil, false
13222}
13223
13224// AsBasicNodeEvent is the BasicFabricEvent implementation for ClusterNewHealthReportEvent.
13225func (cnhre ClusterNewHealthReportEvent) AsBasicNodeEvent() (BasicNodeEvent, bool) {
13226	return nil, false
13227}
13228
13229// AsPartitionAnalysisEvent is the BasicFabricEvent implementation for ClusterNewHealthReportEvent.
13230func (cnhre ClusterNewHealthReportEvent) AsPartitionAnalysisEvent() (*PartitionAnalysisEvent, bool) {
13231	return nil, false
13232}
13233
13234// AsBasicPartitionAnalysisEvent is the BasicFabricEvent implementation for ClusterNewHealthReportEvent.
13235func (cnhre ClusterNewHealthReportEvent) AsBasicPartitionAnalysisEvent() (BasicPartitionAnalysisEvent, bool) {
13236	return nil, false
13237}
13238
13239// AsPartitionEvent is the BasicFabricEvent implementation for ClusterNewHealthReportEvent.
13240func (cnhre ClusterNewHealthReportEvent) AsPartitionEvent() (*PartitionEvent, bool) {
13241	return nil, false
13242}
13243
13244// AsBasicPartitionEvent is the BasicFabricEvent implementation for ClusterNewHealthReportEvent.
13245func (cnhre ClusterNewHealthReportEvent) AsBasicPartitionEvent() (BasicPartitionEvent, bool) {
13246	return nil, false
13247}
13248
13249// AsReplicaEvent is the BasicFabricEvent implementation for ClusterNewHealthReportEvent.
13250func (cnhre ClusterNewHealthReportEvent) AsReplicaEvent() (*ReplicaEvent, bool) {
13251	return nil, false
13252}
13253
13254// AsBasicReplicaEvent is the BasicFabricEvent implementation for ClusterNewHealthReportEvent.
13255func (cnhre ClusterNewHealthReportEvent) AsBasicReplicaEvent() (BasicReplicaEvent, bool) {
13256	return nil, false
13257}
13258
13259// AsServiceEvent is the BasicFabricEvent implementation for ClusterNewHealthReportEvent.
13260func (cnhre ClusterNewHealthReportEvent) AsServiceEvent() (*ServiceEvent, bool) {
13261	return nil, false
13262}
13263
13264// AsBasicServiceEvent is the BasicFabricEvent implementation for ClusterNewHealthReportEvent.
13265func (cnhre ClusterNewHealthReportEvent) AsBasicServiceEvent() (BasicServiceEvent, bool) {
13266	return nil, false
13267}
13268
13269// AsApplicationCreatedEvent is the BasicFabricEvent implementation for ClusterNewHealthReportEvent.
13270func (cnhre ClusterNewHealthReportEvent) AsApplicationCreatedEvent() (*ApplicationCreatedEvent, bool) {
13271	return nil, false
13272}
13273
13274// AsApplicationDeletedEvent is the BasicFabricEvent implementation for ClusterNewHealthReportEvent.
13275func (cnhre ClusterNewHealthReportEvent) AsApplicationDeletedEvent() (*ApplicationDeletedEvent, bool) {
13276	return nil, false
13277}
13278
13279// AsApplicationNewHealthReportEvent is the BasicFabricEvent implementation for ClusterNewHealthReportEvent.
13280func (cnhre ClusterNewHealthReportEvent) AsApplicationNewHealthReportEvent() (*ApplicationNewHealthReportEvent, bool) {
13281	return nil, false
13282}
13283
13284// AsApplicationHealthReportExpiredEvent is the BasicFabricEvent implementation for ClusterNewHealthReportEvent.
13285func (cnhre ClusterNewHealthReportEvent) AsApplicationHealthReportExpiredEvent() (*ApplicationHealthReportExpiredEvent, bool) {
13286	return nil, false
13287}
13288
13289// AsApplicationUpgradeCompletedEvent is the BasicFabricEvent implementation for ClusterNewHealthReportEvent.
13290func (cnhre ClusterNewHealthReportEvent) AsApplicationUpgradeCompletedEvent() (*ApplicationUpgradeCompletedEvent, bool) {
13291	return nil, false
13292}
13293
13294// AsApplicationUpgradeDomainCompletedEvent is the BasicFabricEvent implementation for ClusterNewHealthReportEvent.
13295func (cnhre ClusterNewHealthReportEvent) AsApplicationUpgradeDomainCompletedEvent() (*ApplicationUpgradeDomainCompletedEvent, bool) {
13296	return nil, false
13297}
13298
13299// AsApplicationUpgradeRollbackCompletedEvent is the BasicFabricEvent implementation for ClusterNewHealthReportEvent.
13300func (cnhre ClusterNewHealthReportEvent) AsApplicationUpgradeRollbackCompletedEvent() (*ApplicationUpgradeRollbackCompletedEvent, bool) {
13301	return nil, false
13302}
13303
13304// AsApplicationUpgradeRollbackStartedEvent is the BasicFabricEvent implementation for ClusterNewHealthReportEvent.
13305func (cnhre ClusterNewHealthReportEvent) AsApplicationUpgradeRollbackStartedEvent() (*ApplicationUpgradeRollbackStartedEvent, bool) {
13306	return nil, false
13307}
13308
13309// AsApplicationUpgradeStartedEvent is the BasicFabricEvent implementation for ClusterNewHealthReportEvent.
13310func (cnhre ClusterNewHealthReportEvent) AsApplicationUpgradeStartedEvent() (*ApplicationUpgradeStartedEvent, bool) {
13311	return nil, false
13312}
13313
13314// AsDeployedApplicationNewHealthReportEvent is the BasicFabricEvent implementation for ClusterNewHealthReportEvent.
13315func (cnhre ClusterNewHealthReportEvent) AsDeployedApplicationNewHealthReportEvent() (*DeployedApplicationNewHealthReportEvent, bool) {
13316	return nil, false
13317}
13318
13319// AsDeployedApplicationHealthReportExpiredEvent is the BasicFabricEvent implementation for ClusterNewHealthReportEvent.
13320func (cnhre ClusterNewHealthReportEvent) AsDeployedApplicationHealthReportExpiredEvent() (*DeployedApplicationHealthReportExpiredEvent, bool) {
13321	return nil, false
13322}
13323
13324// AsApplicationProcessExitedEvent is the BasicFabricEvent implementation for ClusterNewHealthReportEvent.
13325func (cnhre ClusterNewHealthReportEvent) AsApplicationProcessExitedEvent() (*ApplicationProcessExitedEvent, bool) {
13326	return nil, false
13327}
13328
13329// AsApplicationContainerInstanceExitedEvent is the BasicFabricEvent implementation for ClusterNewHealthReportEvent.
13330func (cnhre ClusterNewHealthReportEvent) AsApplicationContainerInstanceExitedEvent() (*ApplicationContainerInstanceExitedEvent, bool) {
13331	return nil, false
13332}
13333
13334// AsNodeAbortedEvent is the BasicFabricEvent implementation for ClusterNewHealthReportEvent.
13335func (cnhre ClusterNewHealthReportEvent) AsNodeAbortedEvent() (*NodeAbortedEvent, bool) {
13336	return nil, false
13337}
13338
13339// AsNodeAddedToClusterEvent is the BasicFabricEvent implementation for ClusterNewHealthReportEvent.
13340func (cnhre ClusterNewHealthReportEvent) AsNodeAddedToClusterEvent() (*NodeAddedToClusterEvent, bool) {
13341	return nil, false
13342}
13343
13344// AsNodeClosedEvent is the BasicFabricEvent implementation for ClusterNewHealthReportEvent.
13345func (cnhre ClusterNewHealthReportEvent) AsNodeClosedEvent() (*NodeClosedEvent, bool) {
13346	return nil, false
13347}
13348
13349// AsNodeDeactivateCompletedEvent is the BasicFabricEvent implementation for ClusterNewHealthReportEvent.
13350func (cnhre ClusterNewHealthReportEvent) AsNodeDeactivateCompletedEvent() (*NodeDeactivateCompletedEvent, bool) {
13351	return nil, false
13352}
13353
13354// AsNodeDeactivateStartedEvent is the BasicFabricEvent implementation for ClusterNewHealthReportEvent.
13355func (cnhre ClusterNewHealthReportEvent) AsNodeDeactivateStartedEvent() (*NodeDeactivateStartedEvent, bool) {
13356	return nil, false
13357}
13358
13359// AsNodeDownEvent is the BasicFabricEvent implementation for ClusterNewHealthReportEvent.
13360func (cnhre ClusterNewHealthReportEvent) AsNodeDownEvent() (*NodeDownEvent, bool) {
13361	return nil, false
13362}
13363
13364// AsNodeNewHealthReportEvent is the BasicFabricEvent implementation for ClusterNewHealthReportEvent.
13365func (cnhre ClusterNewHealthReportEvent) AsNodeNewHealthReportEvent() (*NodeNewHealthReportEvent, bool) {
13366	return nil, false
13367}
13368
13369// AsNodeHealthReportExpiredEvent is the BasicFabricEvent implementation for ClusterNewHealthReportEvent.
13370func (cnhre ClusterNewHealthReportEvent) AsNodeHealthReportExpiredEvent() (*NodeHealthReportExpiredEvent, bool) {
13371	return nil, false
13372}
13373
13374// AsNodeOpenSucceededEvent is the BasicFabricEvent implementation for ClusterNewHealthReportEvent.
13375func (cnhre ClusterNewHealthReportEvent) AsNodeOpenSucceededEvent() (*NodeOpenSucceededEvent, bool) {
13376	return nil, false
13377}
13378
13379// AsNodeOpenFailedEvent is the BasicFabricEvent implementation for ClusterNewHealthReportEvent.
13380func (cnhre ClusterNewHealthReportEvent) AsNodeOpenFailedEvent() (*NodeOpenFailedEvent, bool) {
13381	return nil, false
13382}
13383
13384// AsNodeRemovedFromClusterEvent is the BasicFabricEvent implementation for ClusterNewHealthReportEvent.
13385func (cnhre ClusterNewHealthReportEvent) AsNodeRemovedFromClusterEvent() (*NodeRemovedFromClusterEvent, bool) {
13386	return nil, false
13387}
13388
13389// AsNodeUpEvent is the BasicFabricEvent implementation for ClusterNewHealthReportEvent.
13390func (cnhre ClusterNewHealthReportEvent) AsNodeUpEvent() (*NodeUpEvent, bool) {
13391	return nil, false
13392}
13393
13394// AsPartitionNewHealthReportEvent is the BasicFabricEvent implementation for ClusterNewHealthReportEvent.
13395func (cnhre ClusterNewHealthReportEvent) AsPartitionNewHealthReportEvent() (*PartitionNewHealthReportEvent, bool) {
13396	return nil, false
13397}
13398
13399// AsPartitionHealthReportExpiredEvent is the BasicFabricEvent implementation for ClusterNewHealthReportEvent.
13400func (cnhre ClusterNewHealthReportEvent) AsPartitionHealthReportExpiredEvent() (*PartitionHealthReportExpiredEvent, bool) {
13401	return nil, false
13402}
13403
13404// AsPartitionReconfiguredEvent is the BasicFabricEvent implementation for ClusterNewHealthReportEvent.
13405func (cnhre ClusterNewHealthReportEvent) AsPartitionReconfiguredEvent() (*PartitionReconfiguredEvent, bool) {
13406	return nil, false
13407}
13408
13409// AsPartitionPrimaryMoveAnalysisEvent is the BasicFabricEvent implementation for ClusterNewHealthReportEvent.
13410func (cnhre ClusterNewHealthReportEvent) AsPartitionPrimaryMoveAnalysisEvent() (*PartitionPrimaryMoveAnalysisEvent, bool) {
13411	return nil, false
13412}
13413
13414// AsServiceCreatedEvent is the BasicFabricEvent implementation for ClusterNewHealthReportEvent.
13415func (cnhre ClusterNewHealthReportEvent) AsServiceCreatedEvent() (*ServiceCreatedEvent, bool) {
13416	return nil, false
13417}
13418
13419// AsServiceDeletedEvent is the BasicFabricEvent implementation for ClusterNewHealthReportEvent.
13420func (cnhre ClusterNewHealthReportEvent) AsServiceDeletedEvent() (*ServiceDeletedEvent, bool) {
13421	return nil, false
13422}
13423
13424// AsServiceNewHealthReportEvent is the BasicFabricEvent implementation for ClusterNewHealthReportEvent.
13425func (cnhre ClusterNewHealthReportEvent) AsServiceNewHealthReportEvent() (*ServiceNewHealthReportEvent, bool) {
13426	return nil, false
13427}
13428
13429// AsServiceHealthReportExpiredEvent is the BasicFabricEvent implementation for ClusterNewHealthReportEvent.
13430func (cnhre ClusterNewHealthReportEvent) AsServiceHealthReportExpiredEvent() (*ServiceHealthReportExpiredEvent, bool) {
13431	return nil, false
13432}
13433
13434// AsDeployedServicePackageNewHealthReportEvent is the BasicFabricEvent implementation for ClusterNewHealthReportEvent.
13435func (cnhre ClusterNewHealthReportEvent) AsDeployedServicePackageNewHealthReportEvent() (*DeployedServicePackageNewHealthReportEvent, bool) {
13436	return nil, false
13437}
13438
13439// AsDeployedServicePackageHealthReportExpiredEvent is the BasicFabricEvent implementation for ClusterNewHealthReportEvent.
13440func (cnhre ClusterNewHealthReportEvent) AsDeployedServicePackageHealthReportExpiredEvent() (*DeployedServicePackageHealthReportExpiredEvent, bool) {
13441	return nil, false
13442}
13443
13444// AsStatefulReplicaNewHealthReportEvent is the BasicFabricEvent implementation for ClusterNewHealthReportEvent.
13445func (cnhre ClusterNewHealthReportEvent) AsStatefulReplicaNewHealthReportEvent() (*StatefulReplicaNewHealthReportEvent, bool) {
13446	return nil, false
13447}
13448
13449// AsStatefulReplicaHealthReportExpiredEvent is the BasicFabricEvent implementation for ClusterNewHealthReportEvent.
13450func (cnhre ClusterNewHealthReportEvent) AsStatefulReplicaHealthReportExpiredEvent() (*StatefulReplicaHealthReportExpiredEvent, bool) {
13451	return nil, false
13452}
13453
13454// AsStatelessReplicaNewHealthReportEvent is the BasicFabricEvent implementation for ClusterNewHealthReportEvent.
13455func (cnhre ClusterNewHealthReportEvent) AsStatelessReplicaNewHealthReportEvent() (*StatelessReplicaNewHealthReportEvent, bool) {
13456	return nil, false
13457}
13458
13459// AsStatelessReplicaHealthReportExpiredEvent is the BasicFabricEvent implementation for ClusterNewHealthReportEvent.
13460func (cnhre ClusterNewHealthReportEvent) AsStatelessReplicaHealthReportExpiredEvent() (*StatelessReplicaHealthReportExpiredEvent, bool) {
13461	return nil, false
13462}
13463
13464// AsClusterNewHealthReportEvent is the BasicFabricEvent implementation for ClusterNewHealthReportEvent.
13465func (cnhre ClusterNewHealthReportEvent) AsClusterNewHealthReportEvent() (*ClusterNewHealthReportEvent, bool) {
13466	return &cnhre, true
13467}
13468
13469// AsClusterHealthReportExpiredEvent is the BasicFabricEvent implementation for ClusterNewHealthReportEvent.
13470func (cnhre ClusterNewHealthReportEvent) AsClusterHealthReportExpiredEvent() (*ClusterHealthReportExpiredEvent, bool) {
13471	return nil, false
13472}
13473
13474// AsClusterUpgradeCompletedEvent is the BasicFabricEvent implementation for ClusterNewHealthReportEvent.
13475func (cnhre ClusterNewHealthReportEvent) AsClusterUpgradeCompletedEvent() (*ClusterUpgradeCompletedEvent, bool) {
13476	return nil, false
13477}
13478
13479// AsClusterUpgradeDomainCompletedEvent is the BasicFabricEvent implementation for ClusterNewHealthReportEvent.
13480func (cnhre ClusterNewHealthReportEvent) AsClusterUpgradeDomainCompletedEvent() (*ClusterUpgradeDomainCompletedEvent, bool) {
13481	return nil, false
13482}
13483
13484// AsClusterUpgradeRollbackCompletedEvent is the BasicFabricEvent implementation for ClusterNewHealthReportEvent.
13485func (cnhre ClusterNewHealthReportEvent) AsClusterUpgradeRollbackCompletedEvent() (*ClusterUpgradeRollbackCompletedEvent, bool) {
13486	return nil, false
13487}
13488
13489// AsClusterUpgradeRollbackStartedEvent is the BasicFabricEvent implementation for ClusterNewHealthReportEvent.
13490func (cnhre ClusterNewHealthReportEvent) AsClusterUpgradeRollbackStartedEvent() (*ClusterUpgradeRollbackStartedEvent, bool) {
13491	return nil, false
13492}
13493
13494// AsClusterUpgradeStartedEvent is the BasicFabricEvent implementation for ClusterNewHealthReportEvent.
13495func (cnhre ClusterNewHealthReportEvent) AsClusterUpgradeStartedEvent() (*ClusterUpgradeStartedEvent, bool) {
13496	return nil, false
13497}
13498
13499// AsChaosStoppedEvent is the BasicFabricEvent implementation for ClusterNewHealthReportEvent.
13500func (cnhre ClusterNewHealthReportEvent) AsChaosStoppedEvent() (*ChaosStoppedEvent, bool) {
13501	return nil, false
13502}
13503
13504// AsChaosStartedEvent is the BasicFabricEvent implementation for ClusterNewHealthReportEvent.
13505func (cnhre ClusterNewHealthReportEvent) AsChaosStartedEvent() (*ChaosStartedEvent, bool) {
13506	return nil, false
13507}
13508
13509// AsChaosCodePackageRestartScheduledEvent is the BasicFabricEvent implementation for ClusterNewHealthReportEvent.
13510func (cnhre ClusterNewHealthReportEvent) AsChaosCodePackageRestartScheduledEvent() (*ChaosCodePackageRestartScheduledEvent, bool) {
13511	return nil, false
13512}
13513
13514// AsChaosReplicaRemovalScheduledEvent is the BasicFabricEvent implementation for ClusterNewHealthReportEvent.
13515func (cnhre ClusterNewHealthReportEvent) AsChaosReplicaRemovalScheduledEvent() (*ChaosReplicaRemovalScheduledEvent, bool) {
13516	return nil, false
13517}
13518
13519// AsChaosPartitionSecondaryMoveScheduledEvent is the BasicFabricEvent implementation for ClusterNewHealthReportEvent.
13520func (cnhre ClusterNewHealthReportEvent) AsChaosPartitionSecondaryMoveScheduledEvent() (*ChaosPartitionSecondaryMoveScheduledEvent, bool) {
13521	return nil, false
13522}
13523
13524// AsChaosPartitionPrimaryMoveScheduledEvent is the BasicFabricEvent implementation for ClusterNewHealthReportEvent.
13525func (cnhre ClusterNewHealthReportEvent) AsChaosPartitionPrimaryMoveScheduledEvent() (*ChaosPartitionPrimaryMoveScheduledEvent, bool) {
13526	return nil, false
13527}
13528
13529// AsChaosReplicaRestartScheduledEvent is the BasicFabricEvent implementation for ClusterNewHealthReportEvent.
13530func (cnhre ClusterNewHealthReportEvent) AsChaosReplicaRestartScheduledEvent() (*ChaosReplicaRestartScheduledEvent, bool) {
13531	return nil, false
13532}
13533
13534// AsChaosNodeRestartScheduledEvent is the BasicFabricEvent implementation for ClusterNewHealthReportEvent.
13535func (cnhre ClusterNewHealthReportEvent) AsChaosNodeRestartScheduledEvent() (*ChaosNodeRestartScheduledEvent, bool) {
13536	return nil, false
13537}
13538
13539// AsFabricEvent is the BasicFabricEvent implementation for ClusterNewHealthReportEvent.
13540func (cnhre ClusterNewHealthReportEvent) AsFabricEvent() (*FabricEvent, bool) {
13541	return nil, false
13542}
13543
13544// AsBasicFabricEvent is the BasicFabricEvent implementation for ClusterNewHealthReportEvent.
13545func (cnhre ClusterNewHealthReportEvent) AsBasicFabricEvent() (BasicFabricEvent, bool) {
13546	return &cnhre, true
13547}
13548
13549// ClusterUpgradeCompletedEvent cluster Upgrade Completed event.
13550type ClusterUpgradeCompletedEvent struct {
13551	// TargetClusterVersion - Target Cluster version.
13552	TargetClusterVersion *string `json:"TargetClusterVersion,omitempty"`
13553	// OverallUpgradeElapsedTimeInMs - Overall duration of upgrade in milli-seconds.
13554	OverallUpgradeElapsedTimeInMs *float64 `json:"OverallUpgradeElapsedTimeInMs,omitempty"`
13555	// EventInstanceID - The identifier for the FabricEvent instance.
13556	EventInstanceID *uuid.UUID `json:"EventInstanceId,omitempty"`
13557	// Category - The category of event.
13558	Category *string `json:"Category,omitempty"`
13559	// TimeStamp - The time event was logged.
13560	TimeStamp *date.Time `json:"TimeStamp,omitempty"`
13561	// HasCorrelatedEvents - Shows there is existing related events available.
13562	HasCorrelatedEvents *bool `json:"HasCorrelatedEvents,omitempty"`
13563	// 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'
13564	Kind KindBasicFabricEvent `json:"Kind,omitempty"`
13565}
13566
13567// MarshalJSON is the custom marshaler for ClusterUpgradeCompletedEvent.
13568func (cuce ClusterUpgradeCompletedEvent) MarshalJSON() ([]byte, error) {
13569	cuce.Kind = KindClusterUpgradeCompleted
13570	objectMap := make(map[string]interface{})
13571	if cuce.TargetClusterVersion != nil {
13572		objectMap["TargetClusterVersion"] = cuce.TargetClusterVersion
13573	}
13574	if cuce.OverallUpgradeElapsedTimeInMs != nil {
13575		objectMap["OverallUpgradeElapsedTimeInMs"] = cuce.OverallUpgradeElapsedTimeInMs
13576	}
13577	if cuce.EventInstanceID != nil {
13578		objectMap["EventInstanceId"] = cuce.EventInstanceID
13579	}
13580	if cuce.Category != nil {
13581		objectMap["Category"] = cuce.Category
13582	}
13583	if cuce.TimeStamp != nil {
13584		objectMap["TimeStamp"] = cuce.TimeStamp
13585	}
13586	if cuce.HasCorrelatedEvents != nil {
13587		objectMap["HasCorrelatedEvents"] = cuce.HasCorrelatedEvents
13588	}
13589	if cuce.Kind != "" {
13590		objectMap["Kind"] = cuce.Kind
13591	}
13592	return json.Marshal(objectMap)
13593}
13594
13595// AsApplicationEvent is the BasicFabricEvent implementation for ClusterUpgradeCompletedEvent.
13596func (cuce ClusterUpgradeCompletedEvent) AsApplicationEvent() (*ApplicationEvent, bool) {
13597	return nil, false
13598}
13599
13600// AsBasicApplicationEvent is the BasicFabricEvent implementation for ClusterUpgradeCompletedEvent.
13601func (cuce ClusterUpgradeCompletedEvent) AsBasicApplicationEvent() (BasicApplicationEvent, bool) {
13602	return nil, false
13603}
13604
13605// AsClusterEvent is the BasicFabricEvent implementation for ClusterUpgradeCompletedEvent.
13606func (cuce ClusterUpgradeCompletedEvent) AsClusterEvent() (*ClusterEvent, bool) {
13607	return nil, false
13608}
13609
13610// AsBasicClusterEvent is the BasicFabricEvent implementation for ClusterUpgradeCompletedEvent.
13611func (cuce ClusterUpgradeCompletedEvent) AsBasicClusterEvent() (BasicClusterEvent, bool) {
13612	return &cuce, true
13613}
13614
13615// AsContainerInstanceEvent is the BasicFabricEvent implementation for ClusterUpgradeCompletedEvent.
13616func (cuce ClusterUpgradeCompletedEvent) AsContainerInstanceEvent() (*ContainerInstanceEvent, bool) {
13617	return nil, false
13618}
13619
13620// AsNodeEvent is the BasicFabricEvent implementation for ClusterUpgradeCompletedEvent.
13621func (cuce ClusterUpgradeCompletedEvent) AsNodeEvent() (*NodeEvent, bool) {
13622	return nil, false
13623}
13624
13625// AsBasicNodeEvent is the BasicFabricEvent implementation for ClusterUpgradeCompletedEvent.
13626func (cuce ClusterUpgradeCompletedEvent) AsBasicNodeEvent() (BasicNodeEvent, bool) {
13627	return nil, false
13628}
13629
13630// AsPartitionAnalysisEvent is the BasicFabricEvent implementation for ClusterUpgradeCompletedEvent.
13631func (cuce ClusterUpgradeCompletedEvent) AsPartitionAnalysisEvent() (*PartitionAnalysisEvent, bool) {
13632	return nil, false
13633}
13634
13635// AsBasicPartitionAnalysisEvent is the BasicFabricEvent implementation for ClusterUpgradeCompletedEvent.
13636func (cuce ClusterUpgradeCompletedEvent) AsBasicPartitionAnalysisEvent() (BasicPartitionAnalysisEvent, bool) {
13637	return nil, false
13638}
13639
13640// AsPartitionEvent is the BasicFabricEvent implementation for ClusterUpgradeCompletedEvent.
13641func (cuce ClusterUpgradeCompletedEvent) AsPartitionEvent() (*PartitionEvent, bool) {
13642	return nil, false
13643}
13644
13645// AsBasicPartitionEvent is the BasicFabricEvent implementation for ClusterUpgradeCompletedEvent.
13646func (cuce ClusterUpgradeCompletedEvent) AsBasicPartitionEvent() (BasicPartitionEvent, bool) {
13647	return nil, false
13648}
13649
13650// AsReplicaEvent is the BasicFabricEvent implementation for ClusterUpgradeCompletedEvent.
13651func (cuce ClusterUpgradeCompletedEvent) AsReplicaEvent() (*ReplicaEvent, bool) {
13652	return nil, false
13653}
13654
13655// AsBasicReplicaEvent is the BasicFabricEvent implementation for ClusterUpgradeCompletedEvent.
13656func (cuce ClusterUpgradeCompletedEvent) AsBasicReplicaEvent() (BasicReplicaEvent, bool) {
13657	return nil, false
13658}
13659
13660// AsServiceEvent is the BasicFabricEvent implementation for ClusterUpgradeCompletedEvent.
13661func (cuce ClusterUpgradeCompletedEvent) AsServiceEvent() (*ServiceEvent, bool) {
13662	return nil, false
13663}
13664
13665// AsBasicServiceEvent is the BasicFabricEvent implementation for ClusterUpgradeCompletedEvent.
13666func (cuce ClusterUpgradeCompletedEvent) AsBasicServiceEvent() (BasicServiceEvent, bool) {
13667	return nil, false
13668}
13669
13670// AsApplicationCreatedEvent is the BasicFabricEvent implementation for ClusterUpgradeCompletedEvent.
13671func (cuce ClusterUpgradeCompletedEvent) AsApplicationCreatedEvent() (*ApplicationCreatedEvent, bool) {
13672	return nil, false
13673}
13674
13675// AsApplicationDeletedEvent is the BasicFabricEvent implementation for ClusterUpgradeCompletedEvent.
13676func (cuce ClusterUpgradeCompletedEvent) AsApplicationDeletedEvent() (*ApplicationDeletedEvent, bool) {
13677	return nil, false
13678}
13679
13680// AsApplicationNewHealthReportEvent is the BasicFabricEvent implementation for ClusterUpgradeCompletedEvent.
13681func (cuce ClusterUpgradeCompletedEvent) AsApplicationNewHealthReportEvent() (*ApplicationNewHealthReportEvent, bool) {
13682	return nil, false
13683}
13684
13685// AsApplicationHealthReportExpiredEvent is the BasicFabricEvent implementation for ClusterUpgradeCompletedEvent.
13686func (cuce ClusterUpgradeCompletedEvent) AsApplicationHealthReportExpiredEvent() (*ApplicationHealthReportExpiredEvent, bool) {
13687	return nil, false
13688}
13689
13690// AsApplicationUpgradeCompletedEvent is the BasicFabricEvent implementation for ClusterUpgradeCompletedEvent.
13691func (cuce ClusterUpgradeCompletedEvent) AsApplicationUpgradeCompletedEvent() (*ApplicationUpgradeCompletedEvent, bool) {
13692	return nil, false
13693}
13694
13695// AsApplicationUpgradeDomainCompletedEvent is the BasicFabricEvent implementation for ClusterUpgradeCompletedEvent.
13696func (cuce ClusterUpgradeCompletedEvent) AsApplicationUpgradeDomainCompletedEvent() (*ApplicationUpgradeDomainCompletedEvent, bool) {
13697	return nil, false
13698}
13699
13700// AsApplicationUpgradeRollbackCompletedEvent is the BasicFabricEvent implementation for ClusterUpgradeCompletedEvent.
13701func (cuce ClusterUpgradeCompletedEvent) AsApplicationUpgradeRollbackCompletedEvent() (*ApplicationUpgradeRollbackCompletedEvent, bool) {
13702	return nil, false
13703}
13704
13705// AsApplicationUpgradeRollbackStartedEvent is the BasicFabricEvent implementation for ClusterUpgradeCompletedEvent.
13706func (cuce ClusterUpgradeCompletedEvent) AsApplicationUpgradeRollbackStartedEvent() (*ApplicationUpgradeRollbackStartedEvent, bool) {
13707	return nil, false
13708}
13709
13710// AsApplicationUpgradeStartedEvent is the BasicFabricEvent implementation for ClusterUpgradeCompletedEvent.
13711func (cuce ClusterUpgradeCompletedEvent) AsApplicationUpgradeStartedEvent() (*ApplicationUpgradeStartedEvent, bool) {
13712	return nil, false
13713}
13714
13715// AsDeployedApplicationNewHealthReportEvent is the BasicFabricEvent implementation for ClusterUpgradeCompletedEvent.
13716func (cuce ClusterUpgradeCompletedEvent) AsDeployedApplicationNewHealthReportEvent() (*DeployedApplicationNewHealthReportEvent, bool) {
13717	return nil, false
13718}
13719
13720// AsDeployedApplicationHealthReportExpiredEvent is the BasicFabricEvent implementation for ClusterUpgradeCompletedEvent.
13721func (cuce ClusterUpgradeCompletedEvent) AsDeployedApplicationHealthReportExpiredEvent() (*DeployedApplicationHealthReportExpiredEvent, bool) {
13722	return nil, false
13723}
13724
13725// AsApplicationProcessExitedEvent is the BasicFabricEvent implementation for ClusterUpgradeCompletedEvent.
13726func (cuce ClusterUpgradeCompletedEvent) AsApplicationProcessExitedEvent() (*ApplicationProcessExitedEvent, bool) {
13727	return nil, false
13728}
13729
13730// AsApplicationContainerInstanceExitedEvent is the BasicFabricEvent implementation for ClusterUpgradeCompletedEvent.
13731func (cuce ClusterUpgradeCompletedEvent) AsApplicationContainerInstanceExitedEvent() (*ApplicationContainerInstanceExitedEvent, bool) {
13732	return nil, false
13733}
13734
13735// AsNodeAbortedEvent is the BasicFabricEvent implementation for ClusterUpgradeCompletedEvent.
13736func (cuce ClusterUpgradeCompletedEvent) AsNodeAbortedEvent() (*NodeAbortedEvent, bool) {
13737	return nil, false
13738}
13739
13740// AsNodeAddedToClusterEvent is the BasicFabricEvent implementation for ClusterUpgradeCompletedEvent.
13741func (cuce ClusterUpgradeCompletedEvent) AsNodeAddedToClusterEvent() (*NodeAddedToClusterEvent, bool) {
13742	return nil, false
13743}
13744
13745// AsNodeClosedEvent is the BasicFabricEvent implementation for ClusterUpgradeCompletedEvent.
13746func (cuce ClusterUpgradeCompletedEvent) AsNodeClosedEvent() (*NodeClosedEvent, bool) {
13747	return nil, false
13748}
13749
13750// AsNodeDeactivateCompletedEvent is the BasicFabricEvent implementation for ClusterUpgradeCompletedEvent.
13751func (cuce ClusterUpgradeCompletedEvent) AsNodeDeactivateCompletedEvent() (*NodeDeactivateCompletedEvent, bool) {
13752	return nil, false
13753}
13754
13755// AsNodeDeactivateStartedEvent is the BasicFabricEvent implementation for ClusterUpgradeCompletedEvent.
13756func (cuce ClusterUpgradeCompletedEvent) AsNodeDeactivateStartedEvent() (*NodeDeactivateStartedEvent, bool) {
13757	return nil, false
13758}
13759
13760// AsNodeDownEvent is the BasicFabricEvent implementation for ClusterUpgradeCompletedEvent.
13761func (cuce ClusterUpgradeCompletedEvent) AsNodeDownEvent() (*NodeDownEvent, bool) {
13762	return nil, false
13763}
13764
13765// AsNodeNewHealthReportEvent is the BasicFabricEvent implementation for ClusterUpgradeCompletedEvent.
13766func (cuce ClusterUpgradeCompletedEvent) AsNodeNewHealthReportEvent() (*NodeNewHealthReportEvent, bool) {
13767	return nil, false
13768}
13769
13770// AsNodeHealthReportExpiredEvent is the BasicFabricEvent implementation for ClusterUpgradeCompletedEvent.
13771func (cuce ClusterUpgradeCompletedEvent) AsNodeHealthReportExpiredEvent() (*NodeHealthReportExpiredEvent, bool) {
13772	return nil, false
13773}
13774
13775// AsNodeOpenSucceededEvent is the BasicFabricEvent implementation for ClusterUpgradeCompletedEvent.
13776func (cuce ClusterUpgradeCompletedEvent) AsNodeOpenSucceededEvent() (*NodeOpenSucceededEvent, bool) {
13777	return nil, false
13778}
13779
13780// AsNodeOpenFailedEvent is the BasicFabricEvent implementation for ClusterUpgradeCompletedEvent.
13781func (cuce ClusterUpgradeCompletedEvent) AsNodeOpenFailedEvent() (*NodeOpenFailedEvent, bool) {
13782	return nil, false
13783}
13784
13785// AsNodeRemovedFromClusterEvent is the BasicFabricEvent implementation for ClusterUpgradeCompletedEvent.
13786func (cuce ClusterUpgradeCompletedEvent) AsNodeRemovedFromClusterEvent() (*NodeRemovedFromClusterEvent, bool) {
13787	return nil, false
13788}
13789
13790// AsNodeUpEvent is the BasicFabricEvent implementation for ClusterUpgradeCompletedEvent.
13791func (cuce ClusterUpgradeCompletedEvent) AsNodeUpEvent() (*NodeUpEvent, bool) {
13792	return nil, false
13793}
13794
13795// AsPartitionNewHealthReportEvent is the BasicFabricEvent implementation for ClusterUpgradeCompletedEvent.
13796func (cuce ClusterUpgradeCompletedEvent) AsPartitionNewHealthReportEvent() (*PartitionNewHealthReportEvent, bool) {
13797	return nil, false
13798}
13799
13800// AsPartitionHealthReportExpiredEvent is the BasicFabricEvent implementation for ClusterUpgradeCompletedEvent.
13801func (cuce ClusterUpgradeCompletedEvent) AsPartitionHealthReportExpiredEvent() (*PartitionHealthReportExpiredEvent, bool) {
13802	return nil, false
13803}
13804
13805// AsPartitionReconfiguredEvent is the BasicFabricEvent implementation for ClusterUpgradeCompletedEvent.
13806func (cuce ClusterUpgradeCompletedEvent) AsPartitionReconfiguredEvent() (*PartitionReconfiguredEvent, bool) {
13807	return nil, false
13808}
13809
13810// AsPartitionPrimaryMoveAnalysisEvent is the BasicFabricEvent implementation for ClusterUpgradeCompletedEvent.
13811func (cuce ClusterUpgradeCompletedEvent) AsPartitionPrimaryMoveAnalysisEvent() (*PartitionPrimaryMoveAnalysisEvent, bool) {
13812	return nil, false
13813}
13814
13815// AsServiceCreatedEvent is the BasicFabricEvent implementation for ClusterUpgradeCompletedEvent.
13816func (cuce ClusterUpgradeCompletedEvent) AsServiceCreatedEvent() (*ServiceCreatedEvent, bool) {
13817	return nil, false
13818}
13819
13820// AsServiceDeletedEvent is the BasicFabricEvent implementation for ClusterUpgradeCompletedEvent.
13821func (cuce ClusterUpgradeCompletedEvent) AsServiceDeletedEvent() (*ServiceDeletedEvent, bool) {
13822	return nil, false
13823}
13824
13825// AsServiceNewHealthReportEvent is the BasicFabricEvent implementation for ClusterUpgradeCompletedEvent.
13826func (cuce ClusterUpgradeCompletedEvent) AsServiceNewHealthReportEvent() (*ServiceNewHealthReportEvent, bool) {
13827	return nil, false
13828}
13829
13830// AsServiceHealthReportExpiredEvent is the BasicFabricEvent implementation for ClusterUpgradeCompletedEvent.
13831func (cuce ClusterUpgradeCompletedEvent) AsServiceHealthReportExpiredEvent() (*ServiceHealthReportExpiredEvent, bool) {
13832	return nil, false
13833}
13834
13835// AsDeployedServicePackageNewHealthReportEvent is the BasicFabricEvent implementation for ClusterUpgradeCompletedEvent.
13836func (cuce ClusterUpgradeCompletedEvent) AsDeployedServicePackageNewHealthReportEvent() (*DeployedServicePackageNewHealthReportEvent, bool) {
13837	return nil, false
13838}
13839
13840// AsDeployedServicePackageHealthReportExpiredEvent is the BasicFabricEvent implementation for ClusterUpgradeCompletedEvent.
13841func (cuce ClusterUpgradeCompletedEvent) AsDeployedServicePackageHealthReportExpiredEvent() (*DeployedServicePackageHealthReportExpiredEvent, bool) {
13842	return nil, false
13843}
13844
13845// AsStatefulReplicaNewHealthReportEvent is the BasicFabricEvent implementation for ClusterUpgradeCompletedEvent.
13846func (cuce ClusterUpgradeCompletedEvent) AsStatefulReplicaNewHealthReportEvent() (*StatefulReplicaNewHealthReportEvent, bool) {
13847	return nil, false
13848}
13849
13850// AsStatefulReplicaHealthReportExpiredEvent is the BasicFabricEvent implementation for ClusterUpgradeCompletedEvent.
13851func (cuce ClusterUpgradeCompletedEvent) AsStatefulReplicaHealthReportExpiredEvent() (*StatefulReplicaHealthReportExpiredEvent, bool) {
13852	return nil, false
13853}
13854
13855// AsStatelessReplicaNewHealthReportEvent is the BasicFabricEvent implementation for ClusterUpgradeCompletedEvent.
13856func (cuce ClusterUpgradeCompletedEvent) AsStatelessReplicaNewHealthReportEvent() (*StatelessReplicaNewHealthReportEvent, bool) {
13857	return nil, false
13858}
13859
13860// AsStatelessReplicaHealthReportExpiredEvent is the BasicFabricEvent implementation for ClusterUpgradeCompletedEvent.
13861func (cuce ClusterUpgradeCompletedEvent) AsStatelessReplicaHealthReportExpiredEvent() (*StatelessReplicaHealthReportExpiredEvent, bool) {
13862	return nil, false
13863}
13864
13865// AsClusterNewHealthReportEvent is the BasicFabricEvent implementation for ClusterUpgradeCompletedEvent.
13866func (cuce ClusterUpgradeCompletedEvent) AsClusterNewHealthReportEvent() (*ClusterNewHealthReportEvent, bool) {
13867	return nil, false
13868}
13869
13870// AsClusterHealthReportExpiredEvent is the BasicFabricEvent implementation for ClusterUpgradeCompletedEvent.
13871func (cuce ClusterUpgradeCompletedEvent) AsClusterHealthReportExpiredEvent() (*ClusterHealthReportExpiredEvent, bool) {
13872	return nil, false
13873}
13874
13875// AsClusterUpgradeCompletedEvent is the BasicFabricEvent implementation for ClusterUpgradeCompletedEvent.
13876func (cuce ClusterUpgradeCompletedEvent) AsClusterUpgradeCompletedEvent() (*ClusterUpgradeCompletedEvent, bool) {
13877	return &cuce, true
13878}
13879
13880// AsClusterUpgradeDomainCompletedEvent is the BasicFabricEvent implementation for ClusterUpgradeCompletedEvent.
13881func (cuce ClusterUpgradeCompletedEvent) AsClusterUpgradeDomainCompletedEvent() (*ClusterUpgradeDomainCompletedEvent, bool) {
13882	return nil, false
13883}
13884
13885// AsClusterUpgradeRollbackCompletedEvent is the BasicFabricEvent implementation for ClusterUpgradeCompletedEvent.
13886func (cuce ClusterUpgradeCompletedEvent) AsClusterUpgradeRollbackCompletedEvent() (*ClusterUpgradeRollbackCompletedEvent, bool) {
13887	return nil, false
13888}
13889
13890// AsClusterUpgradeRollbackStartedEvent is the BasicFabricEvent implementation for ClusterUpgradeCompletedEvent.
13891func (cuce ClusterUpgradeCompletedEvent) AsClusterUpgradeRollbackStartedEvent() (*ClusterUpgradeRollbackStartedEvent, bool) {
13892	return nil, false
13893}
13894
13895// AsClusterUpgradeStartedEvent is the BasicFabricEvent implementation for ClusterUpgradeCompletedEvent.
13896func (cuce ClusterUpgradeCompletedEvent) AsClusterUpgradeStartedEvent() (*ClusterUpgradeStartedEvent, bool) {
13897	return nil, false
13898}
13899
13900// AsChaosStoppedEvent is the BasicFabricEvent implementation for ClusterUpgradeCompletedEvent.
13901func (cuce ClusterUpgradeCompletedEvent) AsChaosStoppedEvent() (*ChaosStoppedEvent, bool) {
13902	return nil, false
13903}
13904
13905// AsChaosStartedEvent is the BasicFabricEvent implementation for ClusterUpgradeCompletedEvent.
13906func (cuce ClusterUpgradeCompletedEvent) AsChaosStartedEvent() (*ChaosStartedEvent, bool) {
13907	return nil, false
13908}
13909
13910// AsChaosCodePackageRestartScheduledEvent is the BasicFabricEvent implementation for ClusterUpgradeCompletedEvent.
13911func (cuce ClusterUpgradeCompletedEvent) AsChaosCodePackageRestartScheduledEvent() (*ChaosCodePackageRestartScheduledEvent, bool) {
13912	return nil, false
13913}
13914
13915// AsChaosReplicaRemovalScheduledEvent is the BasicFabricEvent implementation for ClusterUpgradeCompletedEvent.
13916func (cuce ClusterUpgradeCompletedEvent) AsChaosReplicaRemovalScheduledEvent() (*ChaosReplicaRemovalScheduledEvent, bool) {
13917	return nil, false
13918}
13919
13920// AsChaosPartitionSecondaryMoveScheduledEvent is the BasicFabricEvent implementation for ClusterUpgradeCompletedEvent.
13921func (cuce ClusterUpgradeCompletedEvent) AsChaosPartitionSecondaryMoveScheduledEvent() (*ChaosPartitionSecondaryMoveScheduledEvent, bool) {
13922	return nil, false
13923}
13924
13925// AsChaosPartitionPrimaryMoveScheduledEvent is the BasicFabricEvent implementation for ClusterUpgradeCompletedEvent.
13926func (cuce ClusterUpgradeCompletedEvent) AsChaosPartitionPrimaryMoveScheduledEvent() (*ChaosPartitionPrimaryMoveScheduledEvent, bool) {
13927	return nil, false
13928}
13929
13930// AsChaosReplicaRestartScheduledEvent is the BasicFabricEvent implementation for ClusterUpgradeCompletedEvent.
13931func (cuce ClusterUpgradeCompletedEvent) AsChaosReplicaRestartScheduledEvent() (*ChaosReplicaRestartScheduledEvent, bool) {
13932	return nil, false
13933}
13934
13935// AsChaosNodeRestartScheduledEvent is the BasicFabricEvent implementation for ClusterUpgradeCompletedEvent.
13936func (cuce ClusterUpgradeCompletedEvent) AsChaosNodeRestartScheduledEvent() (*ChaosNodeRestartScheduledEvent, bool) {
13937	return nil, false
13938}
13939
13940// AsFabricEvent is the BasicFabricEvent implementation for ClusterUpgradeCompletedEvent.
13941func (cuce ClusterUpgradeCompletedEvent) AsFabricEvent() (*FabricEvent, bool) {
13942	return nil, false
13943}
13944
13945// AsBasicFabricEvent is the BasicFabricEvent implementation for ClusterUpgradeCompletedEvent.
13946func (cuce ClusterUpgradeCompletedEvent) AsBasicFabricEvent() (BasicFabricEvent, bool) {
13947	return &cuce, true
13948}
13949
13950// ClusterUpgradeDescriptionObject represents a ServiceFabric cluster upgrade
13951type ClusterUpgradeDescriptionObject struct {
13952	// ConfigVersion - The cluster configuration version (specified in the cluster manifest).
13953	ConfigVersion *string `json:"ConfigVersion,omitempty"`
13954	// CodeVersion - The ServiceFabric code version of the cluster.
13955	CodeVersion *string `json:"CodeVersion,omitempty"`
13956	// UpgradeKind - The kind of upgrade out of the following possible values. Possible values include: 'UpgradeKindInvalid', 'UpgradeKindRolling'
13957	UpgradeKind UpgradeKind `json:"UpgradeKind,omitempty"`
13958	// 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'
13959	RollingUpgradeMode UpgradeMode `json:"RollingUpgradeMode,omitempty"`
13960	// 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).
13961	UpgradeReplicaSetCheckTimeoutInSeconds *int64 `json:"UpgradeReplicaSetCheckTimeoutInSeconds,omitempty"`
13962	// 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).
13963	ForceRestart *bool `json:"ForceRestart,omitempty"`
13964	// SortOrder - Defines the order in which an upgrade proceeds through the cluster. Possible values include: 'UpgradeSortOrderInvalid', 'UpgradeSortOrderDefault', 'UpgradeSortOrderNumeric', 'UpgradeSortOrderLexicographical', 'UpgradeSortOrderReverseNumeric', 'UpgradeSortOrderReverseLexicographical'
13965	SortOrder UpgradeSortOrder `json:"SortOrder,omitempty"`
13966	// EnableDeltaHealthEvaluation - When true, enables delta health evaluation rather than absolute health evaluation after completion of each upgrade domain.
13967	EnableDeltaHealthEvaluation *bool `json:"EnableDeltaHealthEvaluation,omitempty"`
13968	// MonitoringPolicy - Describes the parameters for monitoring an upgrade in Monitored mode.
13969	MonitoringPolicy *MonitoringPolicyDescription `json:"MonitoringPolicy,omitempty"`
13970	// ClusterHealthPolicy - Defines a health policy used to evaluate the health of the cluster or of a cluster node.
13971	ClusterHealthPolicy *ClusterHealthPolicy `json:"ClusterHealthPolicy,omitempty"`
13972	// ClusterUpgradeHealthPolicy - Defines a health policy used to evaluate the health of the cluster during a cluster upgrade.
13973	ClusterUpgradeHealthPolicy *ClusterUpgradeHealthPolicyObject `json:"ClusterUpgradeHealthPolicy,omitempty"`
13974	// ApplicationHealthPolicyMap - Represents the map of application health policies for a ServiceFabric cluster upgrade
13975	ApplicationHealthPolicyMap *ApplicationHealthPolicyMapObject `json:"ApplicationHealthPolicyMap,omitempty"`
13976}
13977
13978// ClusterUpgradeDomainCompletedEvent cluster Upgrade Domain Completed event.
13979type ClusterUpgradeDomainCompletedEvent struct {
13980	// TargetClusterVersion - Target Cluster version.
13981	TargetClusterVersion *string `json:"TargetClusterVersion,omitempty"`
13982	// UpgradeState - State of upgrade.
13983	UpgradeState *string `json:"UpgradeState,omitempty"`
13984	// UpgradeDomains - Upgrade domains.
13985	UpgradeDomains *string `json:"UpgradeDomains,omitempty"`
13986	// UpgradeDomainElapsedTimeInMs - Duration of domain upgrade in milli-seconds.
13987	UpgradeDomainElapsedTimeInMs *float64 `json:"UpgradeDomainElapsedTimeInMs,omitempty"`
13988	// EventInstanceID - The identifier for the FabricEvent instance.
13989	EventInstanceID *uuid.UUID `json:"EventInstanceId,omitempty"`
13990	// Category - The category of event.
13991	Category *string `json:"Category,omitempty"`
13992	// TimeStamp - The time event was logged.
13993	TimeStamp *date.Time `json:"TimeStamp,omitempty"`
13994	// HasCorrelatedEvents - Shows there is existing related events available.
13995	HasCorrelatedEvents *bool `json:"HasCorrelatedEvents,omitempty"`
13996	// 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'
13997	Kind KindBasicFabricEvent `json:"Kind,omitempty"`
13998}
13999
14000// MarshalJSON is the custom marshaler for ClusterUpgradeDomainCompletedEvent.
14001func (cudce ClusterUpgradeDomainCompletedEvent) MarshalJSON() ([]byte, error) {
14002	cudce.Kind = KindClusterUpgradeDomainCompleted
14003	objectMap := make(map[string]interface{})
14004	if cudce.TargetClusterVersion != nil {
14005		objectMap["TargetClusterVersion"] = cudce.TargetClusterVersion
14006	}
14007	if cudce.UpgradeState != nil {
14008		objectMap["UpgradeState"] = cudce.UpgradeState
14009	}
14010	if cudce.UpgradeDomains != nil {
14011		objectMap["UpgradeDomains"] = cudce.UpgradeDomains
14012	}
14013	if cudce.UpgradeDomainElapsedTimeInMs != nil {
14014		objectMap["UpgradeDomainElapsedTimeInMs"] = cudce.UpgradeDomainElapsedTimeInMs
14015	}
14016	if cudce.EventInstanceID != nil {
14017		objectMap["EventInstanceId"] = cudce.EventInstanceID
14018	}
14019	if cudce.Category != nil {
14020		objectMap["Category"] = cudce.Category
14021	}
14022	if cudce.TimeStamp != nil {
14023		objectMap["TimeStamp"] = cudce.TimeStamp
14024	}
14025	if cudce.HasCorrelatedEvents != nil {
14026		objectMap["HasCorrelatedEvents"] = cudce.HasCorrelatedEvents
14027	}
14028	if cudce.Kind != "" {
14029		objectMap["Kind"] = cudce.Kind
14030	}
14031	return json.Marshal(objectMap)
14032}
14033
14034// AsApplicationEvent is the BasicFabricEvent implementation for ClusterUpgradeDomainCompletedEvent.
14035func (cudce ClusterUpgradeDomainCompletedEvent) AsApplicationEvent() (*ApplicationEvent, bool) {
14036	return nil, false
14037}
14038
14039// AsBasicApplicationEvent is the BasicFabricEvent implementation for ClusterUpgradeDomainCompletedEvent.
14040func (cudce ClusterUpgradeDomainCompletedEvent) AsBasicApplicationEvent() (BasicApplicationEvent, bool) {
14041	return nil, false
14042}
14043
14044// AsClusterEvent is the BasicFabricEvent implementation for ClusterUpgradeDomainCompletedEvent.
14045func (cudce ClusterUpgradeDomainCompletedEvent) AsClusterEvent() (*ClusterEvent, bool) {
14046	return nil, false
14047}
14048
14049// AsBasicClusterEvent is the BasicFabricEvent implementation for ClusterUpgradeDomainCompletedEvent.
14050func (cudce ClusterUpgradeDomainCompletedEvent) AsBasicClusterEvent() (BasicClusterEvent, bool) {
14051	return &cudce, true
14052}
14053
14054// AsContainerInstanceEvent is the BasicFabricEvent implementation for ClusterUpgradeDomainCompletedEvent.
14055func (cudce ClusterUpgradeDomainCompletedEvent) AsContainerInstanceEvent() (*ContainerInstanceEvent, bool) {
14056	return nil, false
14057}
14058
14059// AsNodeEvent is the BasicFabricEvent implementation for ClusterUpgradeDomainCompletedEvent.
14060func (cudce ClusterUpgradeDomainCompletedEvent) AsNodeEvent() (*NodeEvent, bool) {
14061	return nil, false
14062}
14063
14064// AsBasicNodeEvent is the BasicFabricEvent implementation for ClusterUpgradeDomainCompletedEvent.
14065func (cudce ClusterUpgradeDomainCompletedEvent) AsBasicNodeEvent() (BasicNodeEvent, bool) {
14066	return nil, false
14067}
14068
14069// AsPartitionAnalysisEvent is the BasicFabricEvent implementation for ClusterUpgradeDomainCompletedEvent.
14070func (cudce ClusterUpgradeDomainCompletedEvent) AsPartitionAnalysisEvent() (*PartitionAnalysisEvent, bool) {
14071	return nil, false
14072}
14073
14074// AsBasicPartitionAnalysisEvent is the BasicFabricEvent implementation for ClusterUpgradeDomainCompletedEvent.
14075func (cudce ClusterUpgradeDomainCompletedEvent) AsBasicPartitionAnalysisEvent() (BasicPartitionAnalysisEvent, bool) {
14076	return nil, false
14077}
14078
14079// AsPartitionEvent is the BasicFabricEvent implementation for ClusterUpgradeDomainCompletedEvent.
14080func (cudce ClusterUpgradeDomainCompletedEvent) AsPartitionEvent() (*PartitionEvent, bool) {
14081	return nil, false
14082}
14083
14084// AsBasicPartitionEvent is the BasicFabricEvent implementation for ClusterUpgradeDomainCompletedEvent.
14085func (cudce ClusterUpgradeDomainCompletedEvent) AsBasicPartitionEvent() (BasicPartitionEvent, bool) {
14086	return nil, false
14087}
14088
14089// AsReplicaEvent is the BasicFabricEvent implementation for ClusterUpgradeDomainCompletedEvent.
14090func (cudce ClusterUpgradeDomainCompletedEvent) AsReplicaEvent() (*ReplicaEvent, bool) {
14091	return nil, false
14092}
14093
14094// AsBasicReplicaEvent is the BasicFabricEvent implementation for ClusterUpgradeDomainCompletedEvent.
14095func (cudce ClusterUpgradeDomainCompletedEvent) AsBasicReplicaEvent() (BasicReplicaEvent, bool) {
14096	return nil, false
14097}
14098
14099// AsServiceEvent is the BasicFabricEvent implementation for ClusterUpgradeDomainCompletedEvent.
14100func (cudce ClusterUpgradeDomainCompletedEvent) AsServiceEvent() (*ServiceEvent, bool) {
14101	return nil, false
14102}
14103
14104// AsBasicServiceEvent is the BasicFabricEvent implementation for ClusterUpgradeDomainCompletedEvent.
14105func (cudce ClusterUpgradeDomainCompletedEvent) AsBasicServiceEvent() (BasicServiceEvent, bool) {
14106	return nil, false
14107}
14108
14109// AsApplicationCreatedEvent is the BasicFabricEvent implementation for ClusterUpgradeDomainCompletedEvent.
14110func (cudce ClusterUpgradeDomainCompletedEvent) AsApplicationCreatedEvent() (*ApplicationCreatedEvent, bool) {
14111	return nil, false
14112}
14113
14114// AsApplicationDeletedEvent is the BasicFabricEvent implementation for ClusterUpgradeDomainCompletedEvent.
14115func (cudce ClusterUpgradeDomainCompletedEvent) AsApplicationDeletedEvent() (*ApplicationDeletedEvent, bool) {
14116	return nil, false
14117}
14118
14119// AsApplicationNewHealthReportEvent is the BasicFabricEvent implementation for ClusterUpgradeDomainCompletedEvent.
14120func (cudce ClusterUpgradeDomainCompletedEvent) AsApplicationNewHealthReportEvent() (*ApplicationNewHealthReportEvent, bool) {
14121	return nil, false
14122}
14123
14124// AsApplicationHealthReportExpiredEvent is the BasicFabricEvent implementation for ClusterUpgradeDomainCompletedEvent.
14125func (cudce ClusterUpgradeDomainCompletedEvent) AsApplicationHealthReportExpiredEvent() (*ApplicationHealthReportExpiredEvent, bool) {
14126	return nil, false
14127}
14128
14129// AsApplicationUpgradeCompletedEvent is the BasicFabricEvent implementation for ClusterUpgradeDomainCompletedEvent.
14130func (cudce ClusterUpgradeDomainCompletedEvent) AsApplicationUpgradeCompletedEvent() (*ApplicationUpgradeCompletedEvent, bool) {
14131	return nil, false
14132}
14133
14134// AsApplicationUpgradeDomainCompletedEvent is the BasicFabricEvent implementation for ClusterUpgradeDomainCompletedEvent.
14135func (cudce ClusterUpgradeDomainCompletedEvent) AsApplicationUpgradeDomainCompletedEvent() (*ApplicationUpgradeDomainCompletedEvent, bool) {
14136	return nil, false
14137}
14138
14139// AsApplicationUpgradeRollbackCompletedEvent is the BasicFabricEvent implementation for ClusterUpgradeDomainCompletedEvent.
14140func (cudce ClusterUpgradeDomainCompletedEvent) AsApplicationUpgradeRollbackCompletedEvent() (*ApplicationUpgradeRollbackCompletedEvent, bool) {
14141	return nil, false
14142}
14143
14144// AsApplicationUpgradeRollbackStartedEvent is the BasicFabricEvent implementation for ClusterUpgradeDomainCompletedEvent.
14145func (cudce ClusterUpgradeDomainCompletedEvent) AsApplicationUpgradeRollbackStartedEvent() (*ApplicationUpgradeRollbackStartedEvent, bool) {
14146	return nil, false
14147}
14148
14149// AsApplicationUpgradeStartedEvent is the BasicFabricEvent implementation for ClusterUpgradeDomainCompletedEvent.
14150func (cudce ClusterUpgradeDomainCompletedEvent) AsApplicationUpgradeStartedEvent() (*ApplicationUpgradeStartedEvent, bool) {
14151	return nil, false
14152}
14153
14154// AsDeployedApplicationNewHealthReportEvent is the BasicFabricEvent implementation for ClusterUpgradeDomainCompletedEvent.
14155func (cudce ClusterUpgradeDomainCompletedEvent) AsDeployedApplicationNewHealthReportEvent() (*DeployedApplicationNewHealthReportEvent, bool) {
14156	return nil, false
14157}
14158
14159// AsDeployedApplicationHealthReportExpiredEvent is the BasicFabricEvent implementation for ClusterUpgradeDomainCompletedEvent.
14160func (cudce ClusterUpgradeDomainCompletedEvent) AsDeployedApplicationHealthReportExpiredEvent() (*DeployedApplicationHealthReportExpiredEvent, bool) {
14161	return nil, false
14162}
14163
14164// AsApplicationProcessExitedEvent is the BasicFabricEvent implementation for ClusterUpgradeDomainCompletedEvent.
14165func (cudce ClusterUpgradeDomainCompletedEvent) AsApplicationProcessExitedEvent() (*ApplicationProcessExitedEvent, bool) {
14166	return nil, false
14167}
14168
14169// AsApplicationContainerInstanceExitedEvent is the BasicFabricEvent implementation for ClusterUpgradeDomainCompletedEvent.
14170func (cudce ClusterUpgradeDomainCompletedEvent) AsApplicationContainerInstanceExitedEvent() (*ApplicationContainerInstanceExitedEvent, bool) {
14171	return nil, false
14172}
14173
14174// AsNodeAbortedEvent is the BasicFabricEvent implementation for ClusterUpgradeDomainCompletedEvent.
14175func (cudce ClusterUpgradeDomainCompletedEvent) AsNodeAbortedEvent() (*NodeAbortedEvent, bool) {
14176	return nil, false
14177}
14178
14179// AsNodeAddedToClusterEvent is the BasicFabricEvent implementation for ClusterUpgradeDomainCompletedEvent.
14180func (cudce ClusterUpgradeDomainCompletedEvent) AsNodeAddedToClusterEvent() (*NodeAddedToClusterEvent, bool) {
14181	return nil, false
14182}
14183
14184// AsNodeClosedEvent is the BasicFabricEvent implementation for ClusterUpgradeDomainCompletedEvent.
14185func (cudce ClusterUpgradeDomainCompletedEvent) AsNodeClosedEvent() (*NodeClosedEvent, bool) {
14186	return nil, false
14187}
14188
14189// AsNodeDeactivateCompletedEvent is the BasicFabricEvent implementation for ClusterUpgradeDomainCompletedEvent.
14190func (cudce ClusterUpgradeDomainCompletedEvent) AsNodeDeactivateCompletedEvent() (*NodeDeactivateCompletedEvent, bool) {
14191	return nil, false
14192}
14193
14194// AsNodeDeactivateStartedEvent is the BasicFabricEvent implementation for ClusterUpgradeDomainCompletedEvent.
14195func (cudce ClusterUpgradeDomainCompletedEvent) AsNodeDeactivateStartedEvent() (*NodeDeactivateStartedEvent, bool) {
14196	return nil, false
14197}
14198
14199// AsNodeDownEvent is the BasicFabricEvent implementation for ClusterUpgradeDomainCompletedEvent.
14200func (cudce ClusterUpgradeDomainCompletedEvent) AsNodeDownEvent() (*NodeDownEvent, bool) {
14201	return nil, false
14202}
14203
14204// AsNodeNewHealthReportEvent is the BasicFabricEvent implementation for ClusterUpgradeDomainCompletedEvent.
14205func (cudce ClusterUpgradeDomainCompletedEvent) AsNodeNewHealthReportEvent() (*NodeNewHealthReportEvent, bool) {
14206	return nil, false
14207}
14208
14209// AsNodeHealthReportExpiredEvent is the BasicFabricEvent implementation for ClusterUpgradeDomainCompletedEvent.
14210func (cudce ClusterUpgradeDomainCompletedEvent) AsNodeHealthReportExpiredEvent() (*NodeHealthReportExpiredEvent, bool) {
14211	return nil, false
14212}
14213
14214// AsNodeOpenSucceededEvent is the BasicFabricEvent implementation for ClusterUpgradeDomainCompletedEvent.
14215func (cudce ClusterUpgradeDomainCompletedEvent) AsNodeOpenSucceededEvent() (*NodeOpenSucceededEvent, bool) {
14216	return nil, false
14217}
14218
14219// AsNodeOpenFailedEvent is the BasicFabricEvent implementation for ClusterUpgradeDomainCompletedEvent.
14220func (cudce ClusterUpgradeDomainCompletedEvent) AsNodeOpenFailedEvent() (*NodeOpenFailedEvent, bool) {
14221	return nil, false
14222}
14223
14224// AsNodeRemovedFromClusterEvent is the BasicFabricEvent implementation for ClusterUpgradeDomainCompletedEvent.
14225func (cudce ClusterUpgradeDomainCompletedEvent) AsNodeRemovedFromClusterEvent() (*NodeRemovedFromClusterEvent, bool) {
14226	return nil, false
14227}
14228
14229// AsNodeUpEvent is the BasicFabricEvent implementation for ClusterUpgradeDomainCompletedEvent.
14230func (cudce ClusterUpgradeDomainCompletedEvent) AsNodeUpEvent() (*NodeUpEvent, bool) {
14231	return nil, false
14232}
14233
14234// AsPartitionNewHealthReportEvent is the BasicFabricEvent implementation for ClusterUpgradeDomainCompletedEvent.
14235func (cudce ClusterUpgradeDomainCompletedEvent) AsPartitionNewHealthReportEvent() (*PartitionNewHealthReportEvent, bool) {
14236	return nil, false
14237}
14238
14239// AsPartitionHealthReportExpiredEvent is the BasicFabricEvent implementation for ClusterUpgradeDomainCompletedEvent.
14240func (cudce ClusterUpgradeDomainCompletedEvent) AsPartitionHealthReportExpiredEvent() (*PartitionHealthReportExpiredEvent, bool) {
14241	return nil, false
14242}
14243
14244// AsPartitionReconfiguredEvent is the BasicFabricEvent implementation for ClusterUpgradeDomainCompletedEvent.
14245func (cudce ClusterUpgradeDomainCompletedEvent) AsPartitionReconfiguredEvent() (*PartitionReconfiguredEvent, bool) {
14246	return nil, false
14247}
14248
14249// AsPartitionPrimaryMoveAnalysisEvent is the BasicFabricEvent implementation for ClusterUpgradeDomainCompletedEvent.
14250func (cudce ClusterUpgradeDomainCompletedEvent) AsPartitionPrimaryMoveAnalysisEvent() (*PartitionPrimaryMoveAnalysisEvent, bool) {
14251	return nil, false
14252}
14253
14254// AsServiceCreatedEvent is the BasicFabricEvent implementation for ClusterUpgradeDomainCompletedEvent.
14255func (cudce ClusterUpgradeDomainCompletedEvent) AsServiceCreatedEvent() (*ServiceCreatedEvent, bool) {
14256	return nil, false
14257}
14258
14259// AsServiceDeletedEvent is the BasicFabricEvent implementation for ClusterUpgradeDomainCompletedEvent.
14260func (cudce ClusterUpgradeDomainCompletedEvent) AsServiceDeletedEvent() (*ServiceDeletedEvent, bool) {
14261	return nil, false
14262}
14263
14264// AsServiceNewHealthReportEvent is the BasicFabricEvent implementation for ClusterUpgradeDomainCompletedEvent.
14265func (cudce ClusterUpgradeDomainCompletedEvent) AsServiceNewHealthReportEvent() (*ServiceNewHealthReportEvent, bool) {
14266	return nil, false
14267}
14268
14269// AsServiceHealthReportExpiredEvent is the BasicFabricEvent implementation for ClusterUpgradeDomainCompletedEvent.
14270func (cudce ClusterUpgradeDomainCompletedEvent) AsServiceHealthReportExpiredEvent() (*ServiceHealthReportExpiredEvent, bool) {
14271	return nil, false
14272}
14273
14274// AsDeployedServicePackageNewHealthReportEvent is the BasicFabricEvent implementation for ClusterUpgradeDomainCompletedEvent.
14275func (cudce ClusterUpgradeDomainCompletedEvent) AsDeployedServicePackageNewHealthReportEvent() (*DeployedServicePackageNewHealthReportEvent, bool) {
14276	return nil, false
14277}
14278
14279// AsDeployedServicePackageHealthReportExpiredEvent is the BasicFabricEvent implementation for ClusterUpgradeDomainCompletedEvent.
14280func (cudce ClusterUpgradeDomainCompletedEvent) AsDeployedServicePackageHealthReportExpiredEvent() (*DeployedServicePackageHealthReportExpiredEvent, bool) {
14281	return nil, false
14282}
14283
14284// AsStatefulReplicaNewHealthReportEvent is the BasicFabricEvent implementation for ClusterUpgradeDomainCompletedEvent.
14285func (cudce ClusterUpgradeDomainCompletedEvent) AsStatefulReplicaNewHealthReportEvent() (*StatefulReplicaNewHealthReportEvent, bool) {
14286	return nil, false
14287}
14288
14289// AsStatefulReplicaHealthReportExpiredEvent is the BasicFabricEvent implementation for ClusterUpgradeDomainCompletedEvent.
14290func (cudce ClusterUpgradeDomainCompletedEvent) AsStatefulReplicaHealthReportExpiredEvent() (*StatefulReplicaHealthReportExpiredEvent, bool) {
14291	return nil, false
14292}
14293
14294// AsStatelessReplicaNewHealthReportEvent is the BasicFabricEvent implementation for ClusterUpgradeDomainCompletedEvent.
14295func (cudce ClusterUpgradeDomainCompletedEvent) AsStatelessReplicaNewHealthReportEvent() (*StatelessReplicaNewHealthReportEvent, bool) {
14296	return nil, false
14297}
14298
14299// AsStatelessReplicaHealthReportExpiredEvent is the BasicFabricEvent implementation for ClusterUpgradeDomainCompletedEvent.
14300func (cudce ClusterUpgradeDomainCompletedEvent) AsStatelessReplicaHealthReportExpiredEvent() (*StatelessReplicaHealthReportExpiredEvent, bool) {
14301	return nil, false
14302}
14303
14304// AsClusterNewHealthReportEvent is the BasicFabricEvent implementation for ClusterUpgradeDomainCompletedEvent.
14305func (cudce ClusterUpgradeDomainCompletedEvent) AsClusterNewHealthReportEvent() (*ClusterNewHealthReportEvent, bool) {
14306	return nil, false
14307}
14308
14309// AsClusterHealthReportExpiredEvent is the BasicFabricEvent implementation for ClusterUpgradeDomainCompletedEvent.
14310func (cudce ClusterUpgradeDomainCompletedEvent) AsClusterHealthReportExpiredEvent() (*ClusterHealthReportExpiredEvent, bool) {
14311	return nil, false
14312}
14313
14314// AsClusterUpgradeCompletedEvent is the BasicFabricEvent implementation for ClusterUpgradeDomainCompletedEvent.
14315func (cudce ClusterUpgradeDomainCompletedEvent) AsClusterUpgradeCompletedEvent() (*ClusterUpgradeCompletedEvent, bool) {
14316	return nil, false
14317}
14318
14319// AsClusterUpgradeDomainCompletedEvent is the BasicFabricEvent implementation for ClusterUpgradeDomainCompletedEvent.
14320func (cudce ClusterUpgradeDomainCompletedEvent) AsClusterUpgradeDomainCompletedEvent() (*ClusterUpgradeDomainCompletedEvent, bool) {
14321	return &cudce, true
14322}
14323
14324// AsClusterUpgradeRollbackCompletedEvent is the BasicFabricEvent implementation for ClusterUpgradeDomainCompletedEvent.
14325func (cudce ClusterUpgradeDomainCompletedEvent) AsClusterUpgradeRollbackCompletedEvent() (*ClusterUpgradeRollbackCompletedEvent, bool) {
14326	return nil, false
14327}
14328
14329// AsClusterUpgradeRollbackStartedEvent is the BasicFabricEvent implementation for ClusterUpgradeDomainCompletedEvent.
14330func (cudce ClusterUpgradeDomainCompletedEvent) AsClusterUpgradeRollbackStartedEvent() (*ClusterUpgradeRollbackStartedEvent, bool) {
14331	return nil, false
14332}
14333
14334// AsClusterUpgradeStartedEvent is the BasicFabricEvent implementation for ClusterUpgradeDomainCompletedEvent.
14335func (cudce ClusterUpgradeDomainCompletedEvent) AsClusterUpgradeStartedEvent() (*ClusterUpgradeStartedEvent, bool) {
14336	return nil, false
14337}
14338
14339// AsChaosStoppedEvent is the BasicFabricEvent implementation for ClusterUpgradeDomainCompletedEvent.
14340func (cudce ClusterUpgradeDomainCompletedEvent) AsChaosStoppedEvent() (*ChaosStoppedEvent, bool) {
14341	return nil, false
14342}
14343
14344// AsChaosStartedEvent is the BasicFabricEvent implementation for ClusterUpgradeDomainCompletedEvent.
14345func (cudce ClusterUpgradeDomainCompletedEvent) AsChaosStartedEvent() (*ChaosStartedEvent, bool) {
14346	return nil, false
14347}
14348
14349// AsChaosCodePackageRestartScheduledEvent is the BasicFabricEvent implementation for ClusterUpgradeDomainCompletedEvent.
14350func (cudce ClusterUpgradeDomainCompletedEvent) AsChaosCodePackageRestartScheduledEvent() (*ChaosCodePackageRestartScheduledEvent, bool) {
14351	return nil, false
14352}
14353
14354// AsChaosReplicaRemovalScheduledEvent is the BasicFabricEvent implementation for ClusterUpgradeDomainCompletedEvent.
14355func (cudce ClusterUpgradeDomainCompletedEvent) AsChaosReplicaRemovalScheduledEvent() (*ChaosReplicaRemovalScheduledEvent, bool) {
14356	return nil, false
14357}
14358
14359// AsChaosPartitionSecondaryMoveScheduledEvent is the BasicFabricEvent implementation for ClusterUpgradeDomainCompletedEvent.
14360func (cudce ClusterUpgradeDomainCompletedEvent) AsChaosPartitionSecondaryMoveScheduledEvent() (*ChaosPartitionSecondaryMoveScheduledEvent, bool) {
14361	return nil, false
14362}
14363
14364// AsChaosPartitionPrimaryMoveScheduledEvent is the BasicFabricEvent implementation for ClusterUpgradeDomainCompletedEvent.
14365func (cudce ClusterUpgradeDomainCompletedEvent) AsChaosPartitionPrimaryMoveScheduledEvent() (*ChaosPartitionPrimaryMoveScheduledEvent, bool) {
14366	return nil, false
14367}
14368
14369// AsChaosReplicaRestartScheduledEvent is the BasicFabricEvent implementation for ClusterUpgradeDomainCompletedEvent.
14370func (cudce ClusterUpgradeDomainCompletedEvent) AsChaosReplicaRestartScheduledEvent() (*ChaosReplicaRestartScheduledEvent, bool) {
14371	return nil, false
14372}
14373
14374// AsChaosNodeRestartScheduledEvent is the BasicFabricEvent implementation for ClusterUpgradeDomainCompletedEvent.
14375func (cudce ClusterUpgradeDomainCompletedEvent) AsChaosNodeRestartScheduledEvent() (*ChaosNodeRestartScheduledEvent, bool) {
14376	return nil, false
14377}
14378
14379// AsFabricEvent is the BasicFabricEvent implementation for ClusterUpgradeDomainCompletedEvent.
14380func (cudce ClusterUpgradeDomainCompletedEvent) AsFabricEvent() (*FabricEvent, bool) {
14381	return nil, false
14382}
14383
14384// AsBasicFabricEvent is the BasicFabricEvent implementation for ClusterUpgradeDomainCompletedEvent.
14385func (cudce ClusterUpgradeDomainCompletedEvent) AsBasicFabricEvent() (BasicFabricEvent, bool) {
14386	return &cudce, true
14387}
14388
14389// ClusterUpgradeHealthPolicyObject defines a health policy used to evaluate the health of the cluster
14390// during a cluster upgrade.
14391type ClusterUpgradeHealthPolicyObject struct {
14392	// 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%.
14393	MaxPercentDeltaUnhealthyNodes *int32 `json:"MaxPercentDeltaUnhealthyNodes,omitempty"`
14394	// 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%.
14395	MaxPercentUpgradeDomainDeltaUnhealthyNodes *int32 `json:"MaxPercentUpgradeDomainDeltaUnhealthyNodes,omitempty"`
14396}
14397
14398// ClusterUpgradeProgressObject information about a cluster upgrade.
14399type ClusterUpgradeProgressObject struct {
14400	autorest.Response `json:"-"`
14401	// CodeVersion - The ServiceFabric code version of the cluster.
14402	CodeVersion *string `json:"CodeVersion,omitempty"`
14403	// ConfigVersion - The cluster configuration version (specified in the cluster manifest).
14404	ConfigVersion *string `json:"ConfigVersion,omitempty"`
14405	// UpgradeDomains - List of upgrade domains and their statuses.
14406	UpgradeDomains *[]UpgradeDomainInfo `json:"UpgradeDomains,omitempty"`
14407	// UpgradeState - The state of the upgrade domain. Possible values include: 'UpgradeStateInvalid', 'UpgradeStateRollingBackInProgress', 'UpgradeStateRollingBackCompleted', 'UpgradeStateRollingForwardPending', 'UpgradeStateRollingForwardInProgress', 'UpgradeStateRollingForwardCompleted', 'UpgradeStateFailed'
14408	UpgradeState UpgradeState `json:"UpgradeState,omitempty"`
14409	// NextUpgradeDomain - The name of the next upgrade domain to be processed.
14410	NextUpgradeDomain *string `json:"NextUpgradeDomain,omitempty"`
14411	// 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'
14412	RollingUpgradeMode UpgradeMode `json:"RollingUpgradeMode,omitempty"`
14413	// UpgradeDescription - Represents a ServiceFabric cluster upgrade
14414	UpgradeDescription *ClusterUpgradeDescriptionObject `json:"UpgradeDescription,omitempty"`
14415	// UpgradeDurationInMilliseconds - The estimated elapsed time spent processing the current overall upgrade.
14416	UpgradeDurationInMilliseconds *string `json:"UpgradeDurationInMilliseconds,omitempty"`
14417	// UpgradeDomainDurationInMilliseconds - The estimated elapsed time spent processing the current upgrade domain.
14418	UpgradeDomainDurationInMilliseconds *string `json:"UpgradeDomainDurationInMilliseconds,omitempty"`
14419	// UnhealthyEvaluations - List of health evaluations that resulted in the current aggregated health state.
14420	UnhealthyEvaluations *[]HealthEvaluationWrapper `json:"UnhealthyEvaluations,omitempty"`
14421	// CurrentUpgradeDomainProgress - Information about the current in-progress upgrade domain.
14422	CurrentUpgradeDomainProgress *CurrentUpgradeDomainProgressInfo `json:"CurrentUpgradeDomainProgress,omitempty"`
14423	// StartTimestampUtc - The start time of the upgrade in UTC.
14424	StartTimestampUtc *string `json:"StartTimestampUtc,omitempty"`
14425	// FailureTimestampUtc - The failure time of the upgrade in UTC.
14426	FailureTimestampUtc *string `json:"FailureTimestampUtc,omitempty"`
14427	// FailureReason - The cause of an upgrade failure that resulted in FailureAction being executed. Possible values include: 'None', 'Interrupted', 'HealthCheck', 'UpgradeDomainTimeout', 'OverallUpgradeTimeout'
14428	FailureReason FailureReason `json:"FailureReason,omitempty"`
14429	// UpgradeDomainProgressAtFailure - The detailed upgrade progress for nodes in the current upgrade domain at the point of failure.
14430	UpgradeDomainProgressAtFailure *FailedUpgradeDomainProgressObject `json:"UpgradeDomainProgressAtFailure,omitempty"`
14431}
14432
14433// ClusterUpgradeRollbackCompletedEvent cluster Upgrade Rollback Completed event.
14434type ClusterUpgradeRollbackCompletedEvent struct {
14435	// TargetClusterVersion - Target Cluster version.
14436	TargetClusterVersion *string `json:"TargetClusterVersion,omitempty"`
14437	// FailureReason - Describes failure.
14438	FailureReason *string `json:"FailureReason,omitempty"`
14439	// OverallUpgradeElapsedTimeInMs - Overall duration of upgrade in milli-seconds.
14440	OverallUpgradeElapsedTimeInMs *float64 `json:"OverallUpgradeElapsedTimeInMs,omitempty"`
14441	// EventInstanceID - The identifier for the FabricEvent instance.
14442	EventInstanceID *uuid.UUID `json:"EventInstanceId,omitempty"`
14443	// Category - The category of event.
14444	Category *string `json:"Category,omitempty"`
14445	// TimeStamp - The time event was logged.
14446	TimeStamp *date.Time `json:"TimeStamp,omitempty"`
14447	// HasCorrelatedEvents - Shows there is existing related events available.
14448	HasCorrelatedEvents *bool `json:"HasCorrelatedEvents,omitempty"`
14449	// 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'
14450	Kind KindBasicFabricEvent `json:"Kind,omitempty"`
14451}
14452
14453// MarshalJSON is the custom marshaler for ClusterUpgradeRollbackCompletedEvent.
14454func (curce ClusterUpgradeRollbackCompletedEvent) MarshalJSON() ([]byte, error) {
14455	curce.Kind = KindClusterUpgradeRollbackCompleted
14456	objectMap := make(map[string]interface{})
14457	if curce.TargetClusterVersion != nil {
14458		objectMap["TargetClusterVersion"] = curce.TargetClusterVersion
14459	}
14460	if curce.FailureReason != nil {
14461		objectMap["FailureReason"] = curce.FailureReason
14462	}
14463	if curce.OverallUpgradeElapsedTimeInMs != nil {
14464		objectMap["OverallUpgradeElapsedTimeInMs"] = curce.OverallUpgradeElapsedTimeInMs
14465	}
14466	if curce.EventInstanceID != nil {
14467		objectMap["EventInstanceId"] = curce.EventInstanceID
14468	}
14469	if curce.Category != nil {
14470		objectMap["Category"] = curce.Category
14471	}
14472	if curce.TimeStamp != nil {
14473		objectMap["TimeStamp"] = curce.TimeStamp
14474	}
14475	if curce.HasCorrelatedEvents != nil {
14476		objectMap["HasCorrelatedEvents"] = curce.HasCorrelatedEvents
14477	}
14478	if curce.Kind != "" {
14479		objectMap["Kind"] = curce.Kind
14480	}
14481	return json.Marshal(objectMap)
14482}
14483
14484// AsApplicationEvent is the BasicFabricEvent implementation for ClusterUpgradeRollbackCompletedEvent.
14485func (curce ClusterUpgradeRollbackCompletedEvent) AsApplicationEvent() (*ApplicationEvent, bool) {
14486	return nil, false
14487}
14488
14489// AsBasicApplicationEvent is the BasicFabricEvent implementation for ClusterUpgradeRollbackCompletedEvent.
14490func (curce ClusterUpgradeRollbackCompletedEvent) AsBasicApplicationEvent() (BasicApplicationEvent, bool) {
14491	return nil, false
14492}
14493
14494// AsClusterEvent is the BasicFabricEvent implementation for ClusterUpgradeRollbackCompletedEvent.
14495func (curce ClusterUpgradeRollbackCompletedEvent) AsClusterEvent() (*ClusterEvent, bool) {
14496	return nil, false
14497}
14498
14499// AsBasicClusterEvent is the BasicFabricEvent implementation for ClusterUpgradeRollbackCompletedEvent.
14500func (curce ClusterUpgradeRollbackCompletedEvent) AsBasicClusterEvent() (BasicClusterEvent, bool) {
14501	return &curce, true
14502}
14503
14504// AsContainerInstanceEvent is the BasicFabricEvent implementation for ClusterUpgradeRollbackCompletedEvent.
14505func (curce ClusterUpgradeRollbackCompletedEvent) AsContainerInstanceEvent() (*ContainerInstanceEvent, bool) {
14506	return nil, false
14507}
14508
14509// AsNodeEvent is the BasicFabricEvent implementation for ClusterUpgradeRollbackCompletedEvent.
14510func (curce ClusterUpgradeRollbackCompletedEvent) AsNodeEvent() (*NodeEvent, bool) {
14511	return nil, false
14512}
14513
14514// AsBasicNodeEvent is the BasicFabricEvent implementation for ClusterUpgradeRollbackCompletedEvent.
14515func (curce ClusterUpgradeRollbackCompletedEvent) AsBasicNodeEvent() (BasicNodeEvent, bool) {
14516	return nil, false
14517}
14518
14519// AsPartitionAnalysisEvent is the BasicFabricEvent implementation for ClusterUpgradeRollbackCompletedEvent.
14520func (curce ClusterUpgradeRollbackCompletedEvent) AsPartitionAnalysisEvent() (*PartitionAnalysisEvent, bool) {
14521	return nil, false
14522}
14523
14524// AsBasicPartitionAnalysisEvent is the BasicFabricEvent implementation for ClusterUpgradeRollbackCompletedEvent.
14525func (curce ClusterUpgradeRollbackCompletedEvent) AsBasicPartitionAnalysisEvent() (BasicPartitionAnalysisEvent, bool) {
14526	return nil, false
14527}
14528
14529// AsPartitionEvent is the BasicFabricEvent implementation for ClusterUpgradeRollbackCompletedEvent.
14530func (curce ClusterUpgradeRollbackCompletedEvent) AsPartitionEvent() (*PartitionEvent, bool) {
14531	return nil, false
14532}
14533
14534// AsBasicPartitionEvent is the BasicFabricEvent implementation for ClusterUpgradeRollbackCompletedEvent.
14535func (curce ClusterUpgradeRollbackCompletedEvent) AsBasicPartitionEvent() (BasicPartitionEvent, bool) {
14536	return nil, false
14537}
14538
14539// AsReplicaEvent is the BasicFabricEvent implementation for ClusterUpgradeRollbackCompletedEvent.
14540func (curce ClusterUpgradeRollbackCompletedEvent) AsReplicaEvent() (*ReplicaEvent, bool) {
14541	return nil, false
14542}
14543
14544// AsBasicReplicaEvent is the BasicFabricEvent implementation for ClusterUpgradeRollbackCompletedEvent.
14545func (curce ClusterUpgradeRollbackCompletedEvent) AsBasicReplicaEvent() (BasicReplicaEvent, bool) {
14546	return nil, false
14547}
14548
14549// AsServiceEvent is the BasicFabricEvent implementation for ClusterUpgradeRollbackCompletedEvent.
14550func (curce ClusterUpgradeRollbackCompletedEvent) AsServiceEvent() (*ServiceEvent, bool) {
14551	return nil, false
14552}
14553
14554// AsBasicServiceEvent is the BasicFabricEvent implementation for ClusterUpgradeRollbackCompletedEvent.
14555func (curce ClusterUpgradeRollbackCompletedEvent) AsBasicServiceEvent() (BasicServiceEvent, bool) {
14556	return nil, false
14557}
14558
14559// AsApplicationCreatedEvent is the BasicFabricEvent implementation for ClusterUpgradeRollbackCompletedEvent.
14560func (curce ClusterUpgradeRollbackCompletedEvent) AsApplicationCreatedEvent() (*ApplicationCreatedEvent, bool) {
14561	return nil, false
14562}
14563
14564// AsApplicationDeletedEvent is the BasicFabricEvent implementation for ClusterUpgradeRollbackCompletedEvent.
14565func (curce ClusterUpgradeRollbackCompletedEvent) AsApplicationDeletedEvent() (*ApplicationDeletedEvent, bool) {
14566	return nil, false
14567}
14568
14569// AsApplicationNewHealthReportEvent is the BasicFabricEvent implementation for ClusterUpgradeRollbackCompletedEvent.
14570func (curce ClusterUpgradeRollbackCompletedEvent) AsApplicationNewHealthReportEvent() (*ApplicationNewHealthReportEvent, bool) {
14571	return nil, false
14572}
14573
14574// AsApplicationHealthReportExpiredEvent is the BasicFabricEvent implementation for ClusterUpgradeRollbackCompletedEvent.
14575func (curce ClusterUpgradeRollbackCompletedEvent) AsApplicationHealthReportExpiredEvent() (*ApplicationHealthReportExpiredEvent, bool) {
14576	return nil, false
14577}
14578
14579// AsApplicationUpgradeCompletedEvent is the BasicFabricEvent implementation for ClusterUpgradeRollbackCompletedEvent.
14580func (curce ClusterUpgradeRollbackCompletedEvent) AsApplicationUpgradeCompletedEvent() (*ApplicationUpgradeCompletedEvent, bool) {
14581	return nil, false
14582}
14583
14584// AsApplicationUpgradeDomainCompletedEvent is the BasicFabricEvent implementation for ClusterUpgradeRollbackCompletedEvent.
14585func (curce ClusterUpgradeRollbackCompletedEvent) AsApplicationUpgradeDomainCompletedEvent() (*ApplicationUpgradeDomainCompletedEvent, bool) {
14586	return nil, false
14587}
14588
14589// AsApplicationUpgradeRollbackCompletedEvent is the BasicFabricEvent implementation for ClusterUpgradeRollbackCompletedEvent.
14590func (curce ClusterUpgradeRollbackCompletedEvent) AsApplicationUpgradeRollbackCompletedEvent() (*ApplicationUpgradeRollbackCompletedEvent, bool) {
14591	return nil, false
14592}
14593
14594// AsApplicationUpgradeRollbackStartedEvent is the BasicFabricEvent implementation for ClusterUpgradeRollbackCompletedEvent.
14595func (curce ClusterUpgradeRollbackCompletedEvent) AsApplicationUpgradeRollbackStartedEvent() (*ApplicationUpgradeRollbackStartedEvent, bool) {
14596	return nil, false
14597}
14598
14599// AsApplicationUpgradeStartedEvent is the BasicFabricEvent implementation for ClusterUpgradeRollbackCompletedEvent.
14600func (curce ClusterUpgradeRollbackCompletedEvent) AsApplicationUpgradeStartedEvent() (*ApplicationUpgradeStartedEvent, bool) {
14601	return nil, false
14602}
14603
14604// AsDeployedApplicationNewHealthReportEvent is the BasicFabricEvent implementation for ClusterUpgradeRollbackCompletedEvent.
14605func (curce ClusterUpgradeRollbackCompletedEvent) AsDeployedApplicationNewHealthReportEvent() (*DeployedApplicationNewHealthReportEvent, bool) {
14606	return nil, false
14607}
14608
14609// AsDeployedApplicationHealthReportExpiredEvent is the BasicFabricEvent implementation for ClusterUpgradeRollbackCompletedEvent.
14610func (curce ClusterUpgradeRollbackCompletedEvent) AsDeployedApplicationHealthReportExpiredEvent() (*DeployedApplicationHealthReportExpiredEvent, bool) {
14611	return nil, false
14612}
14613
14614// AsApplicationProcessExitedEvent is the BasicFabricEvent implementation for ClusterUpgradeRollbackCompletedEvent.
14615func (curce ClusterUpgradeRollbackCompletedEvent) AsApplicationProcessExitedEvent() (*ApplicationProcessExitedEvent, bool) {
14616	return nil, false
14617}
14618
14619// AsApplicationContainerInstanceExitedEvent is the BasicFabricEvent implementation for ClusterUpgradeRollbackCompletedEvent.
14620func (curce ClusterUpgradeRollbackCompletedEvent) AsApplicationContainerInstanceExitedEvent() (*ApplicationContainerInstanceExitedEvent, bool) {
14621	return nil, false
14622}
14623
14624// AsNodeAbortedEvent is the BasicFabricEvent implementation for ClusterUpgradeRollbackCompletedEvent.
14625func (curce ClusterUpgradeRollbackCompletedEvent) AsNodeAbortedEvent() (*NodeAbortedEvent, bool) {
14626	return nil, false
14627}
14628
14629// AsNodeAddedToClusterEvent is the BasicFabricEvent implementation for ClusterUpgradeRollbackCompletedEvent.
14630func (curce ClusterUpgradeRollbackCompletedEvent) AsNodeAddedToClusterEvent() (*NodeAddedToClusterEvent, bool) {
14631	return nil, false
14632}
14633
14634// AsNodeClosedEvent is the BasicFabricEvent implementation for ClusterUpgradeRollbackCompletedEvent.
14635func (curce ClusterUpgradeRollbackCompletedEvent) AsNodeClosedEvent() (*NodeClosedEvent, bool) {
14636	return nil, false
14637}
14638
14639// AsNodeDeactivateCompletedEvent is the BasicFabricEvent implementation for ClusterUpgradeRollbackCompletedEvent.
14640func (curce ClusterUpgradeRollbackCompletedEvent) AsNodeDeactivateCompletedEvent() (*NodeDeactivateCompletedEvent, bool) {
14641	return nil, false
14642}
14643
14644// AsNodeDeactivateStartedEvent is the BasicFabricEvent implementation for ClusterUpgradeRollbackCompletedEvent.
14645func (curce ClusterUpgradeRollbackCompletedEvent) AsNodeDeactivateStartedEvent() (*NodeDeactivateStartedEvent, bool) {
14646	return nil, false
14647}
14648
14649// AsNodeDownEvent is the BasicFabricEvent implementation for ClusterUpgradeRollbackCompletedEvent.
14650func (curce ClusterUpgradeRollbackCompletedEvent) AsNodeDownEvent() (*NodeDownEvent, bool) {
14651	return nil, false
14652}
14653
14654// AsNodeNewHealthReportEvent is the BasicFabricEvent implementation for ClusterUpgradeRollbackCompletedEvent.
14655func (curce ClusterUpgradeRollbackCompletedEvent) AsNodeNewHealthReportEvent() (*NodeNewHealthReportEvent, bool) {
14656	return nil, false
14657}
14658
14659// AsNodeHealthReportExpiredEvent is the BasicFabricEvent implementation for ClusterUpgradeRollbackCompletedEvent.
14660func (curce ClusterUpgradeRollbackCompletedEvent) AsNodeHealthReportExpiredEvent() (*NodeHealthReportExpiredEvent, bool) {
14661	return nil, false
14662}
14663
14664// AsNodeOpenSucceededEvent is the BasicFabricEvent implementation for ClusterUpgradeRollbackCompletedEvent.
14665func (curce ClusterUpgradeRollbackCompletedEvent) AsNodeOpenSucceededEvent() (*NodeOpenSucceededEvent, bool) {
14666	return nil, false
14667}
14668
14669// AsNodeOpenFailedEvent is the BasicFabricEvent implementation for ClusterUpgradeRollbackCompletedEvent.
14670func (curce ClusterUpgradeRollbackCompletedEvent) AsNodeOpenFailedEvent() (*NodeOpenFailedEvent, bool) {
14671	return nil, false
14672}
14673
14674// AsNodeRemovedFromClusterEvent is the BasicFabricEvent implementation for ClusterUpgradeRollbackCompletedEvent.
14675func (curce ClusterUpgradeRollbackCompletedEvent) AsNodeRemovedFromClusterEvent() (*NodeRemovedFromClusterEvent, bool) {
14676	return nil, false
14677}
14678
14679// AsNodeUpEvent is the BasicFabricEvent implementation for ClusterUpgradeRollbackCompletedEvent.
14680func (curce ClusterUpgradeRollbackCompletedEvent) AsNodeUpEvent() (*NodeUpEvent, bool) {
14681	return nil, false
14682}
14683
14684// AsPartitionNewHealthReportEvent is the BasicFabricEvent implementation for ClusterUpgradeRollbackCompletedEvent.
14685func (curce ClusterUpgradeRollbackCompletedEvent) AsPartitionNewHealthReportEvent() (*PartitionNewHealthReportEvent, bool) {
14686	return nil, false
14687}
14688
14689// AsPartitionHealthReportExpiredEvent is the BasicFabricEvent implementation for ClusterUpgradeRollbackCompletedEvent.
14690func (curce ClusterUpgradeRollbackCompletedEvent) AsPartitionHealthReportExpiredEvent() (*PartitionHealthReportExpiredEvent, bool) {
14691	return nil, false
14692}
14693
14694// AsPartitionReconfiguredEvent is the BasicFabricEvent implementation for ClusterUpgradeRollbackCompletedEvent.
14695func (curce ClusterUpgradeRollbackCompletedEvent) AsPartitionReconfiguredEvent() (*PartitionReconfiguredEvent, bool) {
14696	return nil, false
14697}
14698
14699// AsPartitionPrimaryMoveAnalysisEvent is the BasicFabricEvent implementation for ClusterUpgradeRollbackCompletedEvent.
14700func (curce ClusterUpgradeRollbackCompletedEvent) AsPartitionPrimaryMoveAnalysisEvent() (*PartitionPrimaryMoveAnalysisEvent, bool) {
14701	return nil, false
14702}
14703
14704// AsServiceCreatedEvent is the BasicFabricEvent implementation for ClusterUpgradeRollbackCompletedEvent.
14705func (curce ClusterUpgradeRollbackCompletedEvent) AsServiceCreatedEvent() (*ServiceCreatedEvent, bool) {
14706	return nil, false
14707}
14708
14709// AsServiceDeletedEvent is the BasicFabricEvent implementation for ClusterUpgradeRollbackCompletedEvent.
14710func (curce ClusterUpgradeRollbackCompletedEvent) AsServiceDeletedEvent() (*ServiceDeletedEvent, bool) {
14711	return nil, false
14712}
14713
14714// AsServiceNewHealthReportEvent is the BasicFabricEvent implementation for ClusterUpgradeRollbackCompletedEvent.
14715func (curce ClusterUpgradeRollbackCompletedEvent) AsServiceNewHealthReportEvent() (*ServiceNewHealthReportEvent, bool) {
14716	return nil, false
14717}
14718
14719// AsServiceHealthReportExpiredEvent is the BasicFabricEvent implementation for ClusterUpgradeRollbackCompletedEvent.
14720func (curce ClusterUpgradeRollbackCompletedEvent) AsServiceHealthReportExpiredEvent() (*ServiceHealthReportExpiredEvent, bool) {
14721	return nil, false
14722}
14723
14724// AsDeployedServicePackageNewHealthReportEvent is the BasicFabricEvent implementation for ClusterUpgradeRollbackCompletedEvent.
14725func (curce ClusterUpgradeRollbackCompletedEvent) AsDeployedServicePackageNewHealthReportEvent() (*DeployedServicePackageNewHealthReportEvent, bool) {
14726	return nil, false
14727}
14728
14729// AsDeployedServicePackageHealthReportExpiredEvent is the BasicFabricEvent implementation for ClusterUpgradeRollbackCompletedEvent.
14730func (curce ClusterUpgradeRollbackCompletedEvent) AsDeployedServicePackageHealthReportExpiredEvent() (*DeployedServicePackageHealthReportExpiredEvent, bool) {
14731	return nil, false
14732}
14733
14734// AsStatefulReplicaNewHealthReportEvent is the BasicFabricEvent implementation for ClusterUpgradeRollbackCompletedEvent.
14735func (curce ClusterUpgradeRollbackCompletedEvent) AsStatefulReplicaNewHealthReportEvent() (*StatefulReplicaNewHealthReportEvent, bool) {
14736	return nil, false
14737}
14738
14739// AsStatefulReplicaHealthReportExpiredEvent is the BasicFabricEvent implementation for ClusterUpgradeRollbackCompletedEvent.
14740func (curce ClusterUpgradeRollbackCompletedEvent) AsStatefulReplicaHealthReportExpiredEvent() (*StatefulReplicaHealthReportExpiredEvent, bool) {
14741	return nil, false
14742}
14743
14744// AsStatelessReplicaNewHealthReportEvent is the BasicFabricEvent implementation for ClusterUpgradeRollbackCompletedEvent.
14745func (curce ClusterUpgradeRollbackCompletedEvent) AsStatelessReplicaNewHealthReportEvent() (*StatelessReplicaNewHealthReportEvent, bool) {
14746	return nil, false
14747}
14748
14749// AsStatelessReplicaHealthReportExpiredEvent is the BasicFabricEvent implementation for ClusterUpgradeRollbackCompletedEvent.
14750func (curce ClusterUpgradeRollbackCompletedEvent) AsStatelessReplicaHealthReportExpiredEvent() (*StatelessReplicaHealthReportExpiredEvent, bool) {
14751	return nil, false
14752}
14753
14754// AsClusterNewHealthReportEvent is the BasicFabricEvent implementation for ClusterUpgradeRollbackCompletedEvent.
14755func (curce ClusterUpgradeRollbackCompletedEvent) AsClusterNewHealthReportEvent() (*ClusterNewHealthReportEvent, bool) {
14756	return nil, false
14757}
14758
14759// AsClusterHealthReportExpiredEvent is the BasicFabricEvent implementation for ClusterUpgradeRollbackCompletedEvent.
14760func (curce ClusterUpgradeRollbackCompletedEvent) AsClusterHealthReportExpiredEvent() (*ClusterHealthReportExpiredEvent, bool) {
14761	return nil, false
14762}
14763
14764// AsClusterUpgradeCompletedEvent is the BasicFabricEvent implementation for ClusterUpgradeRollbackCompletedEvent.
14765func (curce ClusterUpgradeRollbackCompletedEvent) AsClusterUpgradeCompletedEvent() (*ClusterUpgradeCompletedEvent, bool) {
14766	return nil, false
14767}
14768
14769// AsClusterUpgradeDomainCompletedEvent is the BasicFabricEvent implementation for ClusterUpgradeRollbackCompletedEvent.
14770func (curce ClusterUpgradeRollbackCompletedEvent) AsClusterUpgradeDomainCompletedEvent() (*ClusterUpgradeDomainCompletedEvent, bool) {
14771	return nil, false
14772}
14773
14774// AsClusterUpgradeRollbackCompletedEvent is the BasicFabricEvent implementation for ClusterUpgradeRollbackCompletedEvent.
14775func (curce ClusterUpgradeRollbackCompletedEvent) AsClusterUpgradeRollbackCompletedEvent() (*ClusterUpgradeRollbackCompletedEvent, bool) {
14776	return &curce, true
14777}
14778
14779// AsClusterUpgradeRollbackStartedEvent is the BasicFabricEvent implementation for ClusterUpgradeRollbackCompletedEvent.
14780func (curce ClusterUpgradeRollbackCompletedEvent) AsClusterUpgradeRollbackStartedEvent() (*ClusterUpgradeRollbackStartedEvent, bool) {
14781	return nil, false
14782}
14783
14784// AsClusterUpgradeStartedEvent is the BasicFabricEvent implementation for ClusterUpgradeRollbackCompletedEvent.
14785func (curce ClusterUpgradeRollbackCompletedEvent) AsClusterUpgradeStartedEvent() (*ClusterUpgradeStartedEvent, bool) {
14786	return nil, false
14787}
14788
14789// AsChaosStoppedEvent is the BasicFabricEvent implementation for ClusterUpgradeRollbackCompletedEvent.
14790func (curce ClusterUpgradeRollbackCompletedEvent) AsChaosStoppedEvent() (*ChaosStoppedEvent, bool) {
14791	return nil, false
14792}
14793
14794// AsChaosStartedEvent is the BasicFabricEvent implementation for ClusterUpgradeRollbackCompletedEvent.
14795func (curce ClusterUpgradeRollbackCompletedEvent) AsChaosStartedEvent() (*ChaosStartedEvent, bool) {
14796	return nil, false
14797}
14798
14799// AsChaosCodePackageRestartScheduledEvent is the BasicFabricEvent implementation for ClusterUpgradeRollbackCompletedEvent.
14800func (curce ClusterUpgradeRollbackCompletedEvent) AsChaosCodePackageRestartScheduledEvent() (*ChaosCodePackageRestartScheduledEvent, bool) {
14801	return nil, false
14802}
14803
14804// AsChaosReplicaRemovalScheduledEvent is the BasicFabricEvent implementation for ClusterUpgradeRollbackCompletedEvent.
14805func (curce ClusterUpgradeRollbackCompletedEvent) AsChaosReplicaRemovalScheduledEvent() (*ChaosReplicaRemovalScheduledEvent, bool) {
14806	return nil, false
14807}
14808
14809// AsChaosPartitionSecondaryMoveScheduledEvent is the BasicFabricEvent implementation for ClusterUpgradeRollbackCompletedEvent.
14810func (curce ClusterUpgradeRollbackCompletedEvent) AsChaosPartitionSecondaryMoveScheduledEvent() (*ChaosPartitionSecondaryMoveScheduledEvent, bool) {
14811	return nil, false
14812}
14813
14814// AsChaosPartitionPrimaryMoveScheduledEvent is the BasicFabricEvent implementation for ClusterUpgradeRollbackCompletedEvent.
14815func (curce ClusterUpgradeRollbackCompletedEvent) AsChaosPartitionPrimaryMoveScheduledEvent() (*ChaosPartitionPrimaryMoveScheduledEvent, bool) {
14816	return nil, false
14817}
14818
14819// AsChaosReplicaRestartScheduledEvent is the BasicFabricEvent implementation for ClusterUpgradeRollbackCompletedEvent.
14820func (curce ClusterUpgradeRollbackCompletedEvent) AsChaosReplicaRestartScheduledEvent() (*ChaosReplicaRestartScheduledEvent, bool) {
14821	return nil, false
14822}
14823
14824// AsChaosNodeRestartScheduledEvent is the BasicFabricEvent implementation for ClusterUpgradeRollbackCompletedEvent.
14825func (curce ClusterUpgradeRollbackCompletedEvent) AsChaosNodeRestartScheduledEvent() (*ChaosNodeRestartScheduledEvent, bool) {
14826	return nil, false
14827}
14828
14829// AsFabricEvent is the BasicFabricEvent implementation for ClusterUpgradeRollbackCompletedEvent.
14830func (curce ClusterUpgradeRollbackCompletedEvent) AsFabricEvent() (*FabricEvent, bool) {
14831	return nil, false
14832}
14833
14834// AsBasicFabricEvent is the BasicFabricEvent implementation for ClusterUpgradeRollbackCompletedEvent.
14835func (curce ClusterUpgradeRollbackCompletedEvent) AsBasicFabricEvent() (BasicFabricEvent, bool) {
14836	return &curce, true
14837}
14838
14839// ClusterUpgradeRollbackStartedEvent cluster Upgrade Rollback Started event.
14840type ClusterUpgradeRollbackStartedEvent struct {
14841	// TargetClusterVersion - Target Cluster version.
14842	TargetClusterVersion *string `json:"TargetClusterVersion,omitempty"`
14843	// FailureReason - Describes failure.
14844	FailureReason *string `json:"FailureReason,omitempty"`
14845	// OverallUpgradeElapsedTimeInMs - Overall duration of upgrade in milli-seconds.
14846	OverallUpgradeElapsedTimeInMs *float64 `json:"OverallUpgradeElapsedTimeInMs,omitempty"`
14847	// EventInstanceID - The identifier for the FabricEvent instance.
14848	EventInstanceID *uuid.UUID `json:"EventInstanceId,omitempty"`
14849	// Category - The category of event.
14850	Category *string `json:"Category,omitempty"`
14851	// TimeStamp - The time event was logged.
14852	TimeStamp *date.Time `json:"TimeStamp,omitempty"`
14853	// HasCorrelatedEvents - Shows there is existing related events available.
14854	HasCorrelatedEvents *bool `json:"HasCorrelatedEvents,omitempty"`
14855	// 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'
14856	Kind KindBasicFabricEvent `json:"Kind,omitempty"`
14857}
14858
14859// MarshalJSON is the custom marshaler for ClusterUpgradeRollbackStartedEvent.
14860func (curse ClusterUpgradeRollbackStartedEvent) MarshalJSON() ([]byte, error) {
14861	curse.Kind = KindClusterUpgradeRollbackStarted
14862	objectMap := make(map[string]interface{})
14863	if curse.TargetClusterVersion != nil {
14864		objectMap["TargetClusterVersion"] = curse.TargetClusterVersion
14865	}
14866	if curse.FailureReason != nil {
14867		objectMap["FailureReason"] = curse.FailureReason
14868	}
14869	if curse.OverallUpgradeElapsedTimeInMs != nil {
14870		objectMap["OverallUpgradeElapsedTimeInMs"] = curse.OverallUpgradeElapsedTimeInMs
14871	}
14872	if curse.EventInstanceID != nil {
14873		objectMap["EventInstanceId"] = curse.EventInstanceID
14874	}
14875	if curse.Category != nil {
14876		objectMap["Category"] = curse.Category
14877	}
14878	if curse.TimeStamp != nil {
14879		objectMap["TimeStamp"] = curse.TimeStamp
14880	}
14881	if curse.HasCorrelatedEvents != nil {
14882		objectMap["HasCorrelatedEvents"] = curse.HasCorrelatedEvents
14883	}
14884	if curse.Kind != "" {
14885		objectMap["Kind"] = curse.Kind
14886	}
14887	return json.Marshal(objectMap)
14888}
14889
14890// AsApplicationEvent is the BasicFabricEvent implementation for ClusterUpgradeRollbackStartedEvent.
14891func (curse ClusterUpgradeRollbackStartedEvent) AsApplicationEvent() (*ApplicationEvent, bool) {
14892	return nil, false
14893}
14894
14895// AsBasicApplicationEvent is the BasicFabricEvent implementation for ClusterUpgradeRollbackStartedEvent.
14896func (curse ClusterUpgradeRollbackStartedEvent) AsBasicApplicationEvent() (BasicApplicationEvent, bool) {
14897	return nil, false
14898}
14899
14900// AsClusterEvent is the BasicFabricEvent implementation for ClusterUpgradeRollbackStartedEvent.
14901func (curse ClusterUpgradeRollbackStartedEvent) AsClusterEvent() (*ClusterEvent, bool) {
14902	return nil, false
14903}
14904
14905// AsBasicClusterEvent is the BasicFabricEvent implementation for ClusterUpgradeRollbackStartedEvent.
14906func (curse ClusterUpgradeRollbackStartedEvent) AsBasicClusterEvent() (BasicClusterEvent, bool) {
14907	return &curse, true
14908}
14909
14910// AsContainerInstanceEvent is the BasicFabricEvent implementation for ClusterUpgradeRollbackStartedEvent.
14911func (curse ClusterUpgradeRollbackStartedEvent) AsContainerInstanceEvent() (*ContainerInstanceEvent, bool) {
14912	return nil, false
14913}
14914
14915// AsNodeEvent is the BasicFabricEvent implementation for ClusterUpgradeRollbackStartedEvent.
14916func (curse ClusterUpgradeRollbackStartedEvent) AsNodeEvent() (*NodeEvent, bool) {
14917	return nil, false
14918}
14919
14920// AsBasicNodeEvent is the BasicFabricEvent implementation for ClusterUpgradeRollbackStartedEvent.
14921func (curse ClusterUpgradeRollbackStartedEvent) AsBasicNodeEvent() (BasicNodeEvent, bool) {
14922	return nil, false
14923}
14924
14925// AsPartitionAnalysisEvent is the BasicFabricEvent implementation for ClusterUpgradeRollbackStartedEvent.
14926func (curse ClusterUpgradeRollbackStartedEvent) AsPartitionAnalysisEvent() (*PartitionAnalysisEvent, bool) {
14927	return nil, false
14928}
14929
14930// AsBasicPartitionAnalysisEvent is the BasicFabricEvent implementation for ClusterUpgradeRollbackStartedEvent.
14931func (curse ClusterUpgradeRollbackStartedEvent) AsBasicPartitionAnalysisEvent() (BasicPartitionAnalysisEvent, bool) {
14932	return nil, false
14933}
14934
14935// AsPartitionEvent is the BasicFabricEvent implementation for ClusterUpgradeRollbackStartedEvent.
14936func (curse ClusterUpgradeRollbackStartedEvent) AsPartitionEvent() (*PartitionEvent, bool) {
14937	return nil, false
14938}
14939
14940// AsBasicPartitionEvent is the BasicFabricEvent implementation for ClusterUpgradeRollbackStartedEvent.
14941func (curse ClusterUpgradeRollbackStartedEvent) AsBasicPartitionEvent() (BasicPartitionEvent, bool) {
14942	return nil, false
14943}
14944
14945// AsReplicaEvent is the BasicFabricEvent implementation for ClusterUpgradeRollbackStartedEvent.
14946func (curse ClusterUpgradeRollbackStartedEvent) AsReplicaEvent() (*ReplicaEvent, bool) {
14947	return nil, false
14948}
14949
14950// AsBasicReplicaEvent is the BasicFabricEvent implementation for ClusterUpgradeRollbackStartedEvent.
14951func (curse ClusterUpgradeRollbackStartedEvent) AsBasicReplicaEvent() (BasicReplicaEvent, bool) {
14952	return nil, false
14953}
14954
14955// AsServiceEvent is the BasicFabricEvent implementation for ClusterUpgradeRollbackStartedEvent.
14956func (curse ClusterUpgradeRollbackStartedEvent) AsServiceEvent() (*ServiceEvent, bool) {
14957	return nil, false
14958}
14959
14960// AsBasicServiceEvent is the BasicFabricEvent implementation for ClusterUpgradeRollbackStartedEvent.
14961func (curse ClusterUpgradeRollbackStartedEvent) AsBasicServiceEvent() (BasicServiceEvent, bool) {
14962	return nil, false
14963}
14964
14965// AsApplicationCreatedEvent is the BasicFabricEvent implementation for ClusterUpgradeRollbackStartedEvent.
14966func (curse ClusterUpgradeRollbackStartedEvent) AsApplicationCreatedEvent() (*ApplicationCreatedEvent, bool) {
14967	return nil, false
14968}
14969
14970// AsApplicationDeletedEvent is the BasicFabricEvent implementation for ClusterUpgradeRollbackStartedEvent.
14971func (curse ClusterUpgradeRollbackStartedEvent) AsApplicationDeletedEvent() (*ApplicationDeletedEvent, bool) {
14972	return nil, false
14973}
14974
14975// AsApplicationNewHealthReportEvent is the BasicFabricEvent implementation for ClusterUpgradeRollbackStartedEvent.
14976func (curse ClusterUpgradeRollbackStartedEvent) AsApplicationNewHealthReportEvent() (*ApplicationNewHealthReportEvent, bool) {
14977	return nil, false
14978}
14979
14980// AsApplicationHealthReportExpiredEvent is the BasicFabricEvent implementation for ClusterUpgradeRollbackStartedEvent.
14981func (curse ClusterUpgradeRollbackStartedEvent) AsApplicationHealthReportExpiredEvent() (*ApplicationHealthReportExpiredEvent, bool) {
14982	return nil, false
14983}
14984
14985// AsApplicationUpgradeCompletedEvent is the BasicFabricEvent implementation for ClusterUpgradeRollbackStartedEvent.
14986func (curse ClusterUpgradeRollbackStartedEvent) AsApplicationUpgradeCompletedEvent() (*ApplicationUpgradeCompletedEvent, bool) {
14987	return nil, false
14988}
14989
14990// AsApplicationUpgradeDomainCompletedEvent is the BasicFabricEvent implementation for ClusterUpgradeRollbackStartedEvent.
14991func (curse ClusterUpgradeRollbackStartedEvent) AsApplicationUpgradeDomainCompletedEvent() (*ApplicationUpgradeDomainCompletedEvent, bool) {
14992	return nil, false
14993}
14994
14995// AsApplicationUpgradeRollbackCompletedEvent is the BasicFabricEvent implementation for ClusterUpgradeRollbackStartedEvent.
14996func (curse ClusterUpgradeRollbackStartedEvent) AsApplicationUpgradeRollbackCompletedEvent() (*ApplicationUpgradeRollbackCompletedEvent, bool) {
14997	return nil, false
14998}
14999
15000// AsApplicationUpgradeRollbackStartedEvent is the BasicFabricEvent implementation for ClusterUpgradeRollbackStartedEvent.
15001func (curse ClusterUpgradeRollbackStartedEvent) AsApplicationUpgradeRollbackStartedEvent() (*ApplicationUpgradeRollbackStartedEvent, bool) {
15002	return nil, false
15003}
15004
15005// AsApplicationUpgradeStartedEvent is the BasicFabricEvent implementation for ClusterUpgradeRollbackStartedEvent.
15006func (curse ClusterUpgradeRollbackStartedEvent) AsApplicationUpgradeStartedEvent() (*ApplicationUpgradeStartedEvent, bool) {
15007	return nil, false
15008}
15009
15010// AsDeployedApplicationNewHealthReportEvent is the BasicFabricEvent implementation for ClusterUpgradeRollbackStartedEvent.
15011func (curse ClusterUpgradeRollbackStartedEvent) AsDeployedApplicationNewHealthReportEvent() (*DeployedApplicationNewHealthReportEvent, bool) {
15012	return nil, false
15013}
15014
15015// AsDeployedApplicationHealthReportExpiredEvent is the BasicFabricEvent implementation for ClusterUpgradeRollbackStartedEvent.
15016func (curse ClusterUpgradeRollbackStartedEvent) AsDeployedApplicationHealthReportExpiredEvent() (*DeployedApplicationHealthReportExpiredEvent, bool) {
15017	return nil, false
15018}
15019
15020// AsApplicationProcessExitedEvent is the BasicFabricEvent implementation for ClusterUpgradeRollbackStartedEvent.
15021func (curse ClusterUpgradeRollbackStartedEvent) AsApplicationProcessExitedEvent() (*ApplicationProcessExitedEvent, bool) {
15022	return nil, false
15023}
15024
15025// AsApplicationContainerInstanceExitedEvent is the BasicFabricEvent implementation for ClusterUpgradeRollbackStartedEvent.
15026func (curse ClusterUpgradeRollbackStartedEvent) AsApplicationContainerInstanceExitedEvent() (*ApplicationContainerInstanceExitedEvent, bool) {
15027	return nil, false
15028}
15029
15030// AsNodeAbortedEvent is the BasicFabricEvent implementation for ClusterUpgradeRollbackStartedEvent.
15031func (curse ClusterUpgradeRollbackStartedEvent) AsNodeAbortedEvent() (*NodeAbortedEvent, bool) {
15032	return nil, false
15033}
15034
15035// AsNodeAddedToClusterEvent is the BasicFabricEvent implementation for ClusterUpgradeRollbackStartedEvent.
15036func (curse ClusterUpgradeRollbackStartedEvent) AsNodeAddedToClusterEvent() (*NodeAddedToClusterEvent, bool) {
15037	return nil, false
15038}
15039
15040// AsNodeClosedEvent is the BasicFabricEvent implementation for ClusterUpgradeRollbackStartedEvent.
15041func (curse ClusterUpgradeRollbackStartedEvent) AsNodeClosedEvent() (*NodeClosedEvent, bool) {
15042	return nil, false
15043}
15044
15045// AsNodeDeactivateCompletedEvent is the BasicFabricEvent implementation for ClusterUpgradeRollbackStartedEvent.
15046func (curse ClusterUpgradeRollbackStartedEvent) AsNodeDeactivateCompletedEvent() (*NodeDeactivateCompletedEvent, bool) {
15047	return nil, false
15048}
15049
15050// AsNodeDeactivateStartedEvent is the BasicFabricEvent implementation for ClusterUpgradeRollbackStartedEvent.
15051func (curse ClusterUpgradeRollbackStartedEvent) AsNodeDeactivateStartedEvent() (*NodeDeactivateStartedEvent, bool) {
15052	return nil, false
15053}
15054
15055// AsNodeDownEvent is the BasicFabricEvent implementation for ClusterUpgradeRollbackStartedEvent.
15056func (curse ClusterUpgradeRollbackStartedEvent) AsNodeDownEvent() (*NodeDownEvent, bool) {
15057	return nil, false
15058}
15059
15060// AsNodeNewHealthReportEvent is the BasicFabricEvent implementation for ClusterUpgradeRollbackStartedEvent.
15061func (curse ClusterUpgradeRollbackStartedEvent) AsNodeNewHealthReportEvent() (*NodeNewHealthReportEvent, bool) {
15062	return nil, false
15063}
15064
15065// AsNodeHealthReportExpiredEvent is the BasicFabricEvent implementation for ClusterUpgradeRollbackStartedEvent.
15066func (curse ClusterUpgradeRollbackStartedEvent) AsNodeHealthReportExpiredEvent() (*NodeHealthReportExpiredEvent, bool) {
15067	return nil, false
15068}
15069
15070// AsNodeOpenSucceededEvent is the BasicFabricEvent implementation for ClusterUpgradeRollbackStartedEvent.
15071func (curse ClusterUpgradeRollbackStartedEvent) AsNodeOpenSucceededEvent() (*NodeOpenSucceededEvent, bool) {
15072	return nil, false
15073}
15074
15075// AsNodeOpenFailedEvent is the BasicFabricEvent implementation for ClusterUpgradeRollbackStartedEvent.
15076func (curse ClusterUpgradeRollbackStartedEvent) AsNodeOpenFailedEvent() (*NodeOpenFailedEvent, bool) {
15077	return nil, false
15078}
15079
15080// AsNodeRemovedFromClusterEvent is the BasicFabricEvent implementation for ClusterUpgradeRollbackStartedEvent.
15081func (curse ClusterUpgradeRollbackStartedEvent) AsNodeRemovedFromClusterEvent() (*NodeRemovedFromClusterEvent, bool) {
15082	return nil, false
15083}
15084
15085// AsNodeUpEvent is the BasicFabricEvent implementation for ClusterUpgradeRollbackStartedEvent.
15086func (curse ClusterUpgradeRollbackStartedEvent) AsNodeUpEvent() (*NodeUpEvent, bool) {
15087	return nil, false
15088}
15089
15090// AsPartitionNewHealthReportEvent is the BasicFabricEvent implementation for ClusterUpgradeRollbackStartedEvent.
15091func (curse ClusterUpgradeRollbackStartedEvent) AsPartitionNewHealthReportEvent() (*PartitionNewHealthReportEvent, bool) {
15092	return nil, false
15093}
15094
15095// AsPartitionHealthReportExpiredEvent is the BasicFabricEvent implementation for ClusterUpgradeRollbackStartedEvent.
15096func (curse ClusterUpgradeRollbackStartedEvent) AsPartitionHealthReportExpiredEvent() (*PartitionHealthReportExpiredEvent, bool) {
15097	return nil, false
15098}
15099
15100// AsPartitionReconfiguredEvent is the BasicFabricEvent implementation for ClusterUpgradeRollbackStartedEvent.
15101func (curse ClusterUpgradeRollbackStartedEvent) AsPartitionReconfiguredEvent() (*PartitionReconfiguredEvent, bool) {
15102	return nil, false
15103}
15104
15105// AsPartitionPrimaryMoveAnalysisEvent is the BasicFabricEvent implementation for ClusterUpgradeRollbackStartedEvent.
15106func (curse ClusterUpgradeRollbackStartedEvent) AsPartitionPrimaryMoveAnalysisEvent() (*PartitionPrimaryMoveAnalysisEvent, bool) {
15107	return nil, false
15108}
15109
15110// AsServiceCreatedEvent is the BasicFabricEvent implementation for ClusterUpgradeRollbackStartedEvent.
15111func (curse ClusterUpgradeRollbackStartedEvent) AsServiceCreatedEvent() (*ServiceCreatedEvent, bool) {
15112	return nil, false
15113}
15114
15115// AsServiceDeletedEvent is the BasicFabricEvent implementation for ClusterUpgradeRollbackStartedEvent.
15116func (curse ClusterUpgradeRollbackStartedEvent) AsServiceDeletedEvent() (*ServiceDeletedEvent, bool) {
15117	return nil, false
15118}
15119
15120// AsServiceNewHealthReportEvent is the BasicFabricEvent implementation for ClusterUpgradeRollbackStartedEvent.
15121func (curse ClusterUpgradeRollbackStartedEvent) AsServiceNewHealthReportEvent() (*ServiceNewHealthReportEvent, bool) {
15122	return nil, false
15123}
15124
15125// AsServiceHealthReportExpiredEvent is the BasicFabricEvent implementation for ClusterUpgradeRollbackStartedEvent.
15126func (curse ClusterUpgradeRollbackStartedEvent) AsServiceHealthReportExpiredEvent() (*ServiceHealthReportExpiredEvent, bool) {
15127	return nil, false
15128}
15129
15130// AsDeployedServicePackageNewHealthReportEvent is the BasicFabricEvent implementation for ClusterUpgradeRollbackStartedEvent.
15131func (curse ClusterUpgradeRollbackStartedEvent) AsDeployedServicePackageNewHealthReportEvent() (*DeployedServicePackageNewHealthReportEvent, bool) {
15132	return nil, false
15133}
15134
15135// AsDeployedServicePackageHealthReportExpiredEvent is the BasicFabricEvent implementation for ClusterUpgradeRollbackStartedEvent.
15136func (curse ClusterUpgradeRollbackStartedEvent) AsDeployedServicePackageHealthReportExpiredEvent() (*DeployedServicePackageHealthReportExpiredEvent, bool) {
15137	return nil, false
15138}
15139
15140// AsStatefulReplicaNewHealthReportEvent is the BasicFabricEvent implementation for ClusterUpgradeRollbackStartedEvent.
15141func (curse ClusterUpgradeRollbackStartedEvent) AsStatefulReplicaNewHealthReportEvent() (*StatefulReplicaNewHealthReportEvent, bool) {
15142	return nil, false
15143}
15144
15145// AsStatefulReplicaHealthReportExpiredEvent is the BasicFabricEvent implementation for ClusterUpgradeRollbackStartedEvent.
15146func (curse ClusterUpgradeRollbackStartedEvent) AsStatefulReplicaHealthReportExpiredEvent() (*StatefulReplicaHealthReportExpiredEvent, bool) {
15147	return nil, false
15148}
15149
15150// AsStatelessReplicaNewHealthReportEvent is the BasicFabricEvent implementation for ClusterUpgradeRollbackStartedEvent.
15151func (curse ClusterUpgradeRollbackStartedEvent) AsStatelessReplicaNewHealthReportEvent() (*StatelessReplicaNewHealthReportEvent, bool) {
15152	return nil, false
15153}
15154
15155// AsStatelessReplicaHealthReportExpiredEvent is the BasicFabricEvent implementation for ClusterUpgradeRollbackStartedEvent.
15156func (curse ClusterUpgradeRollbackStartedEvent) AsStatelessReplicaHealthReportExpiredEvent() (*StatelessReplicaHealthReportExpiredEvent, bool) {
15157	return nil, false
15158}
15159
15160// AsClusterNewHealthReportEvent is the BasicFabricEvent implementation for ClusterUpgradeRollbackStartedEvent.
15161func (curse ClusterUpgradeRollbackStartedEvent) AsClusterNewHealthReportEvent() (*ClusterNewHealthReportEvent, bool) {
15162	return nil, false
15163}
15164
15165// AsClusterHealthReportExpiredEvent is the BasicFabricEvent implementation for ClusterUpgradeRollbackStartedEvent.
15166func (curse ClusterUpgradeRollbackStartedEvent) AsClusterHealthReportExpiredEvent() (*ClusterHealthReportExpiredEvent, bool) {
15167	return nil, false
15168}
15169
15170// AsClusterUpgradeCompletedEvent is the BasicFabricEvent implementation for ClusterUpgradeRollbackStartedEvent.
15171func (curse ClusterUpgradeRollbackStartedEvent) AsClusterUpgradeCompletedEvent() (*ClusterUpgradeCompletedEvent, bool) {
15172	return nil, false
15173}
15174
15175// AsClusterUpgradeDomainCompletedEvent is the BasicFabricEvent implementation for ClusterUpgradeRollbackStartedEvent.
15176func (curse ClusterUpgradeRollbackStartedEvent) AsClusterUpgradeDomainCompletedEvent() (*ClusterUpgradeDomainCompletedEvent, bool) {
15177	return nil, false
15178}
15179
15180// AsClusterUpgradeRollbackCompletedEvent is the BasicFabricEvent implementation for ClusterUpgradeRollbackStartedEvent.
15181func (curse ClusterUpgradeRollbackStartedEvent) AsClusterUpgradeRollbackCompletedEvent() (*ClusterUpgradeRollbackCompletedEvent, bool) {
15182	return nil, false
15183}
15184
15185// AsClusterUpgradeRollbackStartedEvent is the BasicFabricEvent implementation for ClusterUpgradeRollbackStartedEvent.
15186func (curse ClusterUpgradeRollbackStartedEvent) AsClusterUpgradeRollbackStartedEvent() (*ClusterUpgradeRollbackStartedEvent, bool) {
15187	return &curse, true
15188}
15189
15190// AsClusterUpgradeStartedEvent is the BasicFabricEvent implementation for ClusterUpgradeRollbackStartedEvent.
15191func (curse ClusterUpgradeRollbackStartedEvent) AsClusterUpgradeStartedEvent() (*ClusterUpgradeStartedEvent, bool) {
15192	return nil, false
15193}
15194
15195// AsChaosStoppedEvent is the BasicFabricEvent implementation for ClusterUpgradeRollbackStartedEvent.
15196func (curse ClusterUpgradeRollbackStartedEvent) AsChaosStoppedEvent() (*ChaosStoppedEvent, bool) {
15197	return nil, false
15198}
15199
15200// AsChaosStartedEvent is the BasicFabricEvent implementation for ClusterUpgradeRollbackStartedEvent.
15201func (curse ClusterUpgradeRollbackStartedEvent) AsChaosStartedEvent() (*ChaosStartedEvent, bool) {
15202	return nil, false
15203}
15204
15205// AsChaosCodePackageRestartScheduledEvent is the BasicFabricEvent implementation for ClusterUpgradeRollbackStartedEvent.
15206func (curse ClusterUpgradeRollbackStartedEvent) AsChaosCodePackageRestartScheduledEvent() (*ChaosCodePackageRestartScheduledEvent, bool) {
15207	return nil, false
15208}
15209
15210// AsChaosReplicaRemovalScheduledEvent is the BasicFabricEvent implementation for ClusterUpgradeRollbackStartedEvent.
15211func (curse ClusterUpgradeRollbackStartedEvent) AsChaosReplicaRemovalScheduledEvent() (*ChaosReplicaRemovalScheduledEvent, bool) {
15212	return nil, false
15213}
15214
15215// AsChaosPartitionSecondaryMoveScheduledEvent is the BasicFabricEvent implementation for ClusterUpgradeRollbackStartedEvent.
15216func (curse ClusterUpgradeRollbackStartedEvent) AsChaosPartitionSecondaryMoveScheduledEvent() (*ChaosPartitionSecondaryMoveScheduledEvent, bool) {
15217	return nil, false
15218}
15219
15220// AsChaosPartitionPrimaryMoveScheduledEvent is the BasicFabricEvent implementation for ClusterUpgradeRollbackStartedEvent.
15221func (curse ClusterUpgradeRollbackStartedEvent) AsChaosPartitionPrimaryMoveScheduledEvent() (*ChaosPartitionPrimaryMoveScheduledEvent, bool) {
15222	return nil, false
15223}
15224
15225// AsChaosReplicaRestartScheduledEvent is the BasicFabricEvent implementation for ClusterUpgradeRollbackStartedEvent.
15226func (curse ClusterUpgradeRollbackStartedEvent) AsChaosReplicaRestartScheduledEvent() (*ChaosReplicaRestartScheduledEvent, bool) {
15227	return nil, false
15228}
15229
15230// AsChaosNodeRestartScheduledEvent is the BasicFabricEvent implementation for ClusterUpgradeRollbackStartedEvent.
15231func (curse ClusterUpgradeRollbackStartedEvent) AsChaosNodeRestartScheduledEvent() (*ChaosNodeRestartScheduledEvent, bool) {
15232	return nil, false
15233}
15234
15235// AsFabricEvent is the BasicFabricEvent implementation for ClusterUpgradeRollbackStartedEvent.
15236func (curse ClusterUpgradeRollbackStartedEvent) AsFabricEvent() (*FabricEvent, bool) {
15237	return nil, false
15238}
15239
15240// AsBasicFabricEvent is the BasicFabricEvent implementation for ClusterUpgradeRollbackStartedEvent.
15241func (curse ClusterUpgradeRollbackStartedEvent) AsBasicFabricEvent() (BasicFabricEvent, bool) {
15242	return &curse, true
15243}
15244
15245// ClusterUpgradeStartedEvent cluster Upgrade Started event.
15246type ClusterUpgradeStartedEvent struct {
15247	// CurrentClusterVersion - Current Cluster version.
15248	CurrentClusterVersion *string `json:"CurrentClusterVersion,omitempty"`
15249	// TargetClusterVersion - Target Cluster version.
15250	TargetClusterVersion *string `json:"TargetClusterVersion,omitempty"`
15251	// UpgradeType - Type of upgrade.
15252	UpgradeType *string `json:"UpgradeType,omitempty"`
15253	// RollingUpgradeMode - Mode of upgrade.
15254	RollingUpgradeMode *string `json:"RollingUpgradeMode,omitempty"`
15255	// FailureAction - Action if failed.
15256	FailureAction *string `json:"FailureAction,omitempty"`
15257	// EventInstanceID - The identifier for the FabricEvent instance.
15258	EventInstanceID *uuid.UUID `json:"EventInstanceId,omitempty"`
15259	// Category - The category of event.
15260	Category *string `json:"Category,omitempty"`
15261	// TimeStamp - The time event was logged.
15262	TimeStamp *date.Time `json:"TimeStamp,omitempty"`
15263	// HasCorrelatedEvents - Shows there is existing related events available.
15264	HasCorrelatedEvents *bool `json:"HasCorrelatedEvents,omitempty"`
15265	// 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'
15266	Kind KindBasicFabricEvent `json:"Kind,omitempty"`
15267}
15268
15269// MarshalJSON is the custom marshaler for ClusterUpgradeStartedEvent.
15270func (cuse ClusterUpgradeStartedEvent) MarshalJSON() ([]byte, error) {
15271	cuse.Kind = KindClusterUpgradeStarted
15272	objectMap := make(map[string]interface{})
15273	if cuse.CurrentClusterVersion != nil {
15274		objectMap["CurrentClusterVersion"] = cuse.CurrentClusterVersion
15275	}
15276	if cuse.TargetClusterVersion != nil {
15277		objectMap["TargetClusterVersion"] = cuse.TargetClusterVersion
15278	}
15279	if cuse.UpgradeType != nil {
15280		objectMap["UpgradeType"] = cuse.UpgradeType
15281	}
15282	if cuse.RollingUpgradeMode != nil {
15283		objectMap["RollingUpgradeMode"] = cuse.RollingUpgradeMode
15284	}
15285	if cuse.FailureAction != nil {
15286		objectMap["FailureAction"] = cuse.FailureAction
15287	}
15288	if cuse.EventInstanceID != nil {
15289		objectMap["EventInstanceId"] = cuse.EventInstanceID
15290	}
15291	if cuse.Category != nil {
15292		objectMap["Category"] = cuse.Category
15293	}
15294	if cuse.TimeStamp != nil {
15295		objectMap["TimeStamp"] = cuse.TimeStamp
15296	}
15297	if cuse.HasCorrelatedEvents != nil {
15298		objectMap["HasCorrelatedEvents"] = cuse.HasCorrelatedEvents
15299	}
15300	if cuse.Kind != "" {
15301		objectMap["Kind"] = cuse.Kind
15302	}
15303	return json.Marshal(objectMap)
15304}
15305
15306// AsApplicationEvent is the BasicFabricEvent implementation for ClusterUpgradeStartedEvent.
15307func (cuse ClusterUpgradeStartedEvent) AsApplicationEvent() (*ApplicationEvent, bool) {
15308	return nil, false
15309}
15310
15311// AsBasicApplicationEvent is the BasicFabricEvent implementation for ClusterUpgradeStartedEvent.
15312func (cuse ClusterUpgradeStartedEvent) AsBasicApplicationEvent() (BasicApplicationEvent, bool) {
15313	return nil, false
15314}
15315
15316// AsClusterEvent is the BasicFabricEvent implementation for ClusterUpgradeStartedEvent.
15317func (cuse ClusterUpgradeStartedEvent) AsClusterEvent() (*ClusterEvent, bool) {
15318	return nil, false
15319}
15320
15321// AsBasicClusterEvent is the BasicFabricEvent implementation for ClusterUpgradeStartedEvent.
15322func (cuse ClusterUpgradeStartedEvent) AsBasicClusterEvent() (BasicClusterEvent, bool) {
15323	return &cuse, true
15324}
15325
15326// AsContainerInstanceEvent is the BasicFabricEvent implementation for ClusterUpgradeStartedEvent.
15327func (cuse ClusterUpgradeStartedEvent) AsContainerInstanceEvent() (*ContainerInstanceEvent, bool) {
15328	return nil, false
15329}
15330
15331// AsNodeEvent is the BasicFabricEvent implementation for ClusterUpgradeStartedEvent.
15332func (cuse ClusterUpgradeStartedEvent) AsNodeEvent() (*NodeEvent, bool) {
15333	return nil, false
15334}
15335
15336// AsBasicNodeEvent is the BasicFabricEvent implementation for ClusterUpgradeStartedEvent.
15337func (cuse ClusterUpgradeStartedEvent) AsBasicNodeEvent() (BasicNodeEvent, bool) {
15338	return nil, false
15339}
15340
15341// AsPartitionAnalysisEvent is the BasicFabricEvent implementation for ClusterUpgradeStartedEvent.
15342func (cuse ClusterUpgradeStartedEvent) AsPartitionAnalysisEvent() (*PartitionAnalysisEvent, bool) {
15343	return nil, false
15344}
15345
15346// AsBasicPartitionAnalysisEvent is the BasicFabricEvent implementation for ClusterUpgradeStartedEvent.
15347func (cuse ClusterUpgradeStartedEvent) AsBasicPartitionAnalysisEvent() (BasicPartitionAnalysisEvent, bool) {
15348	return nil, false
15349}
15350
15351// AsPartitionEvent is the BasicFabricEvent implementation for ClusterUpgradeStartedEvent.
15352func (cuse ClusterUpgradeStartedEvent) AsPartitionEvent() (*PartitionEvent, bool) {
15353	return nil, false
15354}
15355
15356// AsBasicPartitionEvent is the BasicFabricEvent implementation for ClusterUpgradeStartedEvent.
15357func (cuse ClusterUpgradeStartedEvent) AsBasicPartitionEvent() (BasicPartitionEvent, bool) {
15358	return nil, false
15359}
15360
15361// AsReplicaEvent is the BasicFabricEvent implementation for ClusterUpgradeStartedEvent.
15362func (cuse ClusterUpgradeStartedEvent) AsReplicaEvent() (*ReplicaEvent, bool) {
15363	return nil, false
15364}
15365
15366// AsBasicReplicaEvent is the BasicFabricEvent implementation for ClusterUpgradeStartedEvent.
15367func (cuse ClusterUpgradeStartedEvent) AsBasicReplicaEvent() (BasicReplicaEvent, bool) {
15368	return nil, false
15369}
15370
15371// AsServiceEvent is the BasicFabricEvent implementation for ClusterUpgradeStartedEvent.
15372func (cuse ClusterUpgradeStartedEvent) AsServiceEvent() (*ServiceEvent, bool) {
15373	return nil, false
15374}
15375
15376// AsBasicServiceEvent is the BasicFabricEvent implementation for ClusterUpgradeStartedEvent.
15377func (cuse ClusterUpgradeStartedEvent) AsBasicServiceEvent() (BasicServiceEvent, bool) {
15378	return nil, false
15379}
15380
15381// AsApplicationCreatedEvent is the BasicFabricEvent implementation for ClusterUpgradeStartedEvent.
15382func (cuse ClusterUpgradeStartedEvent) AsApplicationCreatedEvent() (*ApplicationCreatedEvent, bool) {
15383	return nil, false
15384}
15385
15386// AsApplicationDeletedEvent is the BasicFabricEvent implementation for ClusterUpgradeStartedEvent.
15387func (cuse ClusterUpgradeStartedEvent) AsApplicationDeletedEvent() (*ApplicationDeletedEvent, bool) {
15388	return nil, false
15389}
15390
15391// AsApplicationNewHealthReportEvent is the BasicFabricEvent implementation for ClusterUpgradeStartedEvent.
15392func (cuse ClusterUpgradeStartedEvent) AsApplicationNewHealthReportEvent() (*ApplicationNewHealthReportEvent, bool) {
15393	return nil, false
15394}
15395
15396// AsApplicationHealthReportExpiredEvent is the BasicFabricEvent implementation for ClusterUpgradeStartedEvent.
15397func (cuse ClusterUpgradeStartedEvent) AsApplicationHealthReportExpiredEvent() (*ApplicationHealthReportExpiredEvent, bool) {
15398	return nil, false
15399}
15400
15401// AsApplicationUpgradeCompletedEvent is the BasicFabricEvent implementation for ClusterUpgradeStartedEvent.
15402func (cuse ClusterUpgradeStartedEvent) AsApplicationUpgradeCompletedEvent() (*ApplicationUpgradeCompletedEvent, bool) {
15403	return nil, false
15404}
15405
15406// AsApplicationUpgradeDomainCompletedEvent is the BasicFabricEvent implementation for ClusterUpgradeStartedEvent.
15407func (cuse ClusterUpgradeStartedEvent) AsApplicationUpgradeDomainCompletedEvent() (*ApplicationUpgradeDomainCompletedEvent, bool) {
15408	return nil, false
15409}
15410
15411// AsApplicationUpgradeRollbackCompletedEvent is the BasicFabricEvent implementation for ClusterUpgradeStartedEvent.
15412func (cuse ClusterUpgradeStartedEvent) AsApplicationUpgradeRollbackCompletedEvent() (*ApplicationUpgradeRollbackCompletedEvent, bool) {
15413	return nil, false
15414}
15415
15416// AsApplicationUpgradeRollbackStartedEvent is the BasicFabricEvent implementation for ClusterUpgradeStartedEvent.
15417func (cuse ClusterUpgradeStartedEvent) AsApplicationUpgradeRollbackStartedEvent() (*ApplicationUpgradeRollbackStartedEvent, bool) {
15418	return nil, false
15419}
15420
15421// AsApplicationUpgradeStartedEvent is the BasicFabricEvent implementation for ClusterUpgradeStartedEvent.
15422func (cuse ClusterUpgradeStartedEvent) AsApplicationUpgradeStartedEvent() (*ApplicationUpgradeStartedEvent, bool) {
15423	return nil, false
15424}
15425
15426// AsDeployedApplicationNewHealthReportEvent is the BasicFabricEvent implementation for ClusterUpgradeStartedEvent.
15427func (cuse ClusterUpgradeStartedEvent) AsDeployedApplicationNewHealthReportEvent() (*DeployedApplicationNewHealthReportEvent, bool) {
15428	return nil, false
15429}
15430
15431// AsDeployedApplicationHealthReportExpiredEvent is the BasicFabricEvent implementation for ClusterUpgradeStartedEvent.
15432func (cuse ClusterUpgradeStartedEvent) AsDeployedApplicationHealthReportExpiredEvent() (*DeployedApplicationHealthReportExpiredEvent, bool) {
15433	return nil, false
15434}
15435
15436// AsApplicationProcessExitedEvent is the BasicFabricEvent implementation for ClusterUpgradeStartedEvent.
15437func (cuse ClusterUpgradeStartedEvent) AsApplicationProcessExitedEvent() (*ApplicationProcessExitedEvent, bool) {
15438	return nil, false
15439}
15440
15441// AsApplicationContainerInstanceExitedEvent is the BasicFabricEvent implementation for ClusterUpgradeStartedEvent.
15442func (cuse ClusterUpgradeStartedEvent) AsApplicationContainerInstanceExitedEvent() (*ApplicationContainerInstanceExitedEvent, bool) {
15443	return nil, false
15444}
15445
15446// AsNodeAbortedEvent is the BasicFabricEvent implementation for ClusterUpgradeStartedEvent.
15447func (cuse ClusterUpgradeStartedEvent) AsNodeAbortedEvent() (*NodeAbortedEvent, bool) {
15448	return nil, false
15449}
15450
15451// AsNodeAddedToClusterEvent is the BasicFabricEvent implementation for ClusterUpgradeStartedEvent.
15452func (cuse ClusterUpgradeStartedEvent) AsNodeAddedToClusterEvent() (*NodeAddedToClusterEvent, bool) {
15453	return nil, false
15454}
15455
15456// AsNodeClosedEvent is the BasicFabricEvent implementation for ClusterUpgradeStartedEvent.
15457func (cuse ClusterUpgradeStartedEvent) AsNodeClosedEvent() (*NodeClosedEvent, bool) {
15458	return nil, false
15459}
15460
15461// AsNodeDeactivateCompletedEvent is the BasicFabricEvent implementation for ClusterUpgradeStartedEvent.
15462func (cuse ClusterUpgradeStartedEvent) AsNodeDeactivateCompletedEvent() (*NodeDeactivateCompletedEvent, bool) {
15463	return nil, false
15464}
15465
15466// AsNodeDeactivateStartedEvent is the BasicFabricEvent implementation for ClusterUpgradeStartedEvent.
15467func (cuse ClusterUpgradeStartedEvent) AsNodeDeactivateStartedEvent() (*NodeDeactivateStartedEvent, bool) {
15468	return nil, false
15469}
15470
15471// AsNodeDownEvent is the BasicFabricEvent implementation for ClusterUpgradeStartedEvent.
15472func (cuse ClusterUpgradeStartedEvent) AsNodeDownEvent() (*NodeDownEvent, bool) {
15473	return nil, false
15474}
15475
15476// AsNodeNewHealthReportEvent is the BasicFabricEvent implementation for ClusterUpgradeStartedEvent.
15477func (cuse ClusterUpgradeStartedEvent) AsNodeNewHealthReportEvent() (*NodeNewHealthReportEvent, bool) {
15478	return nil, false
15479}
15480
15481// AsNodeHealthReportExpiredEvent is the BasicFabricEvent implementation for ClusterUpgradeStartedEvent.
15482func (cuse ClusterUpgradeStartedEvent) AsNodeHealthReportExpiredEvent() (*NodeHealthReportExpiredEvent, bool) {
15483	return nil, false
15484}
15485
15486// AsNodeOpenSucceededEvent is the BasicFabricEvent implementation for ClusterUpgradeStartedEvent.
15487func (cuse ClusterUpgradeStartedEvent) AsNodeOpenSucceededEvent() (*NodeOpenSucceededEvent, bool) {
15488	return nil, false
15489}
15490
15491// AsNodeOpenFailedEvent is the BasicFabricEvent implementation for ClusterUpgradeStartedEvent.
15492func (cuse ClusterUpgradeStartedEvent) AsNodeOpenFailedEvent() (*NodeOpenFailedEvent, bool) {
15493	return nil, false
15494}
15495
15496// AsNodeRemovedFromClusterEvent is the BasicFabricEvent implementation for ClusterUpgradeStartedEvent.
15497func (cuse ClusterUpgradeStartedEvent) AsNodeRemovedFromClusterEvent() (*NodeRemovedFromClusterEvent, bool) {
15498	return nil, false
15499}
15500
15501// AsNodeUpEvent is the BasicFabricEvent implementation for ClusterUpgradeStartedEvent.
15502func (cuse ClusterUpgradeStartedEvent) AsNodeUpEvent() (*NodeUpEvent, bool) {
15503	return nil, false
15504}
15505
15506// AsPartitionNewHealthReportEvent is the BasicFabricEvent implementation for ClusterUpgradeStartedEvent.
15507func (cuse ClusterUpgradeStartedEvent) AsPartitionNewHealthReportEvent() (*PartitionNewHealthReportEvent, bool) {
15508	return nil, false
15509}
15510
15511// AsPartitionHealthReportExpiredEvent is the BasicFabricEvent implementation for ClusterUpgradeStartedEvent.
15512func (cuse ClusterUpgradeStartedEvent) AsPartitionHealthReportExpiredEvent() (*PartitionHealthReportExpiredEvent, bool) {
15513	return nil, false
15514}
15515
15516// AsPartitionReconfiguredEvent is the BasicFabricEvent implementation for ClusterUpgradeStartedEvent.
15517func (cuse ClusterUpgradeStartedEvent) AsPartitionReconfiguredEvent() (*PartitionReconfiguredEvent, bool) {
15518	return nil, false
15519}
15520
15521// AsPartitionPrimaryMoveAnalysisEvent is the BasicFabricEvent implementation for ClusterUpgradeStartedEvent.
15522func (cuse ClusterUpgradeStartedEvent) AsPartitionPrimaryMoveAnalysisEvent() (*PartitionPrimaryMoveAnalysisEvent, bool) {
15523	return nil, false
15524}
15525
15526// AsServiceCreatedEvent is the BasicFabricEvent implementation for ClusterUpgradeStartedEvent.
15527func (cuse ClusterUpgradeStartedEvent) AsServiceCreatedEvent() (*ServiceCreatedEvent, bool) {
15528	return nil, false
15529}
15530
15531// AsServiceDeletedEvent is the BasicFabricEvent implementation for ClusterUpgradeStartedEvent.
15532func (cuse ClusterUpgradeStartedEvent) AsServiceDeletedEvent() (*ServiceDeletedEvent, bool) {
15533	return nil, false
15534}
15535
15536// AsServiceNewHealthReportEvent is the BasicFabricEvent implementation for ClusterUpgradeStartedEvent.
15537func (cuse ClusterUpgradeStartedEvent) AsServiceNewHealthReportEvent() (*ServiceNewHealthReportEvent, bool) {
15538	return nil, false
15539}
15540
15541// AsServiceHealthReportExpiredEvent is the BasicFabricEvent implementation for ClusterUpgradeStartedEvent.
15542func (cuse ClusterUpgradeStartedEvent) AsServiceHealthReportExpiredEvent() (*ServiceHealthReportExpiredEvent, bool) {
15543	return nil, false
15544}
15545
15546// AsDeployedServicePackageNewHealthReportEvent is the BasicFabricEvent implementation for ClusterUpgradeStartedEvent.
15547func (cuse ClusterUpgradeStartedEvent) AsDeployedServicePackageNewHealthReportEvent() (*DeployedServicePackageNewHealthReportEvent, bool) {
15548	return nil, false
15549}
15550
15551// AsDeployedServicePackageHealthReportExpiredEvent is the BasicFabricEvent implementation for ClusterUpgradeStartedEvent.
15552func (cuse ClusterUpgradeStartedEvent) AsDeployedServicePackageHealthReportExpiredEvent() (*DeployedServicePackageHealthReportExpiredEvent, bool) {
15553	return nil, false
15554}
15555
15556// AsStatefulReplicaNewHealthReportEvent is the BasicFabricEvent implementation for ClusterUpgradeStartedEvent.
15557func (cuse ClusterUpgradeStartedEvent) AsStatefulReplicaNewHealthReportEvent() (*StatefulReplicaNewHealthReportEvent, bool) {
15558	return nil, false
15559}
15560
15561// AsStatefulReplicaHealthReportExpiredEvent is the BasicFabricEvent implementation for ClusterUpgradeStartedEvent.
15562func (cuse ClusterUpgradeStartedEvent) AsStatefulReplicaHealthReportExpiredEvent() (*StatefulReplicaHealthReportExpiredEvent, bool) {
15563	return nil, false
15564}
15565
15566// AsStatelessReplicaNewHealthReportEvent is the BasicFabricEvent implementation for ClusterUpgradeStartedEvent.
15567func (cuse ClusterUpgradeStartedEvent) AsStatelessReplicaNewHealthReportEvent() (*StatelessReplicaNewHealthReportEvent, bool) {
15568	return nil, false
15569}
15570
15571// AsStatelessReplicaHealthReportExpiredEvent is the BasicFabricEvent implementation for ClusterUpgradeStartedEvent.
15572func (cuse ClusterUpgradeStartedEvent) AsStatelessReplicaHealthReportExpiredEvent() (*StatelessReplicaHealthReportExpiredEvent, bool) {
15573	return nil, false
15574}
15575
15576// AsClusterNewHealthReportEvent is the BasicFabricEvent implementation for ClusterUpgradeStartedEvent.
15577func (cuse ClusterUpgradeStartedEvent) AsClusterNewHealthReportEvent() (*ClusterNewHealthReportEvent, bool) {
15578	return nil, false
15579}
15580
15581// AsClusterHealthReportExpiredEvent is the BasicFabricEvent implementation for ClusterUpgradeStartedEvent.
15582func (cuse ClusterUpgradeStartedEvent) AsClusterHealthReportExpiredEvent() (*ClusterHealthReportExpiredEvent, bool) {
15583	return nil, false
15584}
15585
15586// AsClusterUpgradeCompletedEvent is the BasicFabricEvent implementation for ClusterUpgradeStartedEvent.
15587func (cuse ClusterUpgradeStartedEvent) AsClusterUpgradeCompletedEvent() (*ClusterUpgradeCompletedEvent, bool) {
15588	return nil, false
15589}
15590
15591// AsClusterUpgradeDomainCompletedEvent is the BasicFabricEvent implementation for ClusterUpgradeStartedEvent.
15592func (cuse ClusterUpgradeStartedEvent) AsClusterUpgradeDomainCompletedEvent() (*ClusterUpgradeDomainCompletedEvent, bool) {
15593	return nil, false
15594}
15595
15596// AsClusterUpgradeRollbackCompletedEvent is the BasicFabricEvent implementation for ClusterUpgradeStartedEvent.
15597func (cuse ClusterUpgradeStartedEvent) AsClusterUpgradeRollbackCompletedEvent() (*ClusterUpgradeRollbackCompletedEvent, bool) {
15598	return nil, false
15599}
15600
15601// AsClusterUpgradeRollbackStartedEvent is the BasicFabricEvent implementation for ClusterUpgradeStartedEvent.
15602func (cuse ClusterUpgradeStartedEvent) AsClusterUpgradeRollbackStartedEvent() (*ClusterUpgradeRollbackStartedEvent, bool) {
15603	return nil, false
15604}
15605
15606// AsClusterUpgradeStartedEvent is the BasicFabricEvent implementation for ClusterUpgradeStartedEvent.
15607func (cuse ClusterUpgradeStartedEvent) AsClusterUpgradeStartedEvent() (*ClusterUpgradeStartedEvent, bool) {
15608	return &cuse, true
15609}
15610
15611// AsChaosStoppedEvent is the BasicFabricEvent implementation for ClusterUpgradeStartedEvent.
15612func (cuse ClusterUpgradeStartedEvent) AsChaosStoppedEvent() (*ChaosStoppedEvent, bool) {
15613	return nil, false
15614}
15615
15616// AsChaosStartedEvent is the BasicFabricEvent implementation for ClusterUpgradeStartedEvent.
15617func (cuse ClusterUpgradeStartedEvent) AsChaosStartedEvent() (*ChaosStartedEvent, bool) {
15618	return nil, false
15619}
15620
15621// AsChaosCodePackageRestartScheduledEvent is the BasicFabricEvent implementation for ClusterUpgradeStartedEvent.
15622func (cuse ClusterUpgradeStartedEvent) AsChaosCodePackageRestartScheduledEvent() (*ChaosCodePackageRestartScheduledEvent, bool) {
15623	return nil, false
15624}
15625
15626// AsChaosReplicaRemovalScheduledEvent is the BasicFabricEvent implementation for ClusterUpgradeStartedEvent.
15627func (cuse ClusterUpgradeStartedEvent) AsChaosReplicaRemovalScheduledEvent() (*ChaosReplicaRemovalScheduledEvent, bool) {
15628	return nil, false
15629}
15630
15631// AsChaosPartitionSecondaryMoveScheduledEvent is the BasicFabricEvent implementation for ClusterUpgradeStartedEvent.
15632func (cuse ClusterUpgradeStartedEvent) AsChaosPartitionSecondaryMoveScheduledEvent() (*ChaosPartitionSecondaryMoveScheduledEvent, bool) {
15633	return nil, false
15634}
15635
15636// AsChaosPartitionPrimaryMoveScheduledEvent is the BasicFabricEvent implementation for ClusterUpgradeStartedEvent.
15637func (cuse ClusterUpgradeStartedEvent) AsChaosPartitionPrimaryMoveScheduledEvent() (*ChaosPartitionPrimaryMoveScheduledEvent, bool) {
15638	return nil, false
15639}
15640
15641// AsChaosReplicaRestartScheduledEvent is the BasicFabricEvent implementation for ClusterUpgradeStartedEvent.
15642func (cuse ClusterUpgradeStartedEvent) AsChaosReplicaRestartScheduledEvent() (*ChaosReplicaRestartScheduledEvent, bool) {
15643	return nil, false
15644}
15645
15646// AsChaosNodeRestartScheduledEvent is the BasicFabricEvent implementation for ClusterUpgradeStartedEvent.
15647func (cuse ClusterUpgradeStartedEvent) AsChaosNodeRestartScheduledEvent() (*ChaosNodeRestartScheduledEvent, bool) {
15648	return nil, false
15649}
15650
15651// AsFabricEvent is the BasicFabricEvent implementation for ClusterUpgradeStartedEvent.
15652func (cuse ClusterUpgradeStartedEvent) AsFabricEvent() (*FabricEvent, bool) {
15653	return nil, false
15654}
15655
15656// AsBasicFabricEvent is the BasicFabricEvent implementation for ClusterUpgradeStartedEvent.
15657func (cuse ClusterUpgradeStartedEvent) AsBasicFabricEvent() (BasicFabricEvent, bool) {
15658	return &cuse, true
15659}
15660
15661// ClusterVersion the cluster version.
15662type ClusterVersion struct {
15663	autorest.Response `json:"-"`
15664	// Version - The Service Fabric cluster runtime version.
15665	Version *string `json:"Version,omitempty"`
15666}
15667
15668// CodePackageEntryPoint information about setup or main entry point of a code package deployed on a
15669// Service Fabric node.
15670type CodePackageEntryPoint struct {
15671	// EntryPointLocation - The location of entry point executable on the node.
15672	EntryPointLocation *string `json:"EntryPointLocation,omitempty"`
15673	// ProcessID - The process ID of the entry point.
15674	ProcessID *string `json:"ProcessId,omitempty"`
15675	// RunAsUserName - The user name under which entry point executable is run on the node.
15676	RunAsUserName *string `json:"RunAsUserName,omitempty"`
15677	// CodePackageEntryPointStatistics - Statistics about setup or main entry point  of a code package deployed on a Service Fabric node.
15678	CodePackageEntryPointStatistics *CodePackageEntryPointStatistics `json:"CodePackageEntryPointStatistics,omitempty"`
15679	// 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'
15680	Status EntryPointStatus `json:"Status,omitempty"`
15681	// NextActivationTime - The time (in UTC) when the entry point executable will be run next.
15682	NextActivationTime *date.Time `json:"NextActivationTime,omitempty"`
15683	// 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.
15684	InstanceID *string `json:"InstanceId,omitempty"`
15685}
15686
15687// CodePackageEntryPointStatistics statistics about setup or main entry point  of a code package deployed
15688// on a Service Fabric node.
15689type CodePackageEntryPointStatistics struct {
15690	// LastExitCode - The last exit code of the entry point.
15691	LastExitCode *string `json:"LastExitCode,omitempty"`
15692	// LastActivationTime - The last time (in UTC) when Service Fabric attempted to run the entry point.
15693	LastActivationTime *date.Time `json:"LastActivationTime,omitempty"`
15694	// LastExitTime - The last time (in UTC) when the entry point finished running.
15695	LastExitTime *date.Time `json:"LastExitTime,omitempty"`
15696	// LastSuccessfulActivationTime - The last time (in UTC) when the entry point ran successfully.
15697	LastSuccessfulActivationTime *date.Time `json:"LastSuccessfulActivationTime,omitempty"`
15698	// LastSuccessfulExitTime - The last time (in UTC) when the entry point finished running gracefully.
15699	LastSuccessfulExitTime *date.Time `json:"LastSuccessfulExitTime,omitempty"`
15700	// ActivationCount - Number of times the entry point has run.
15701	ActivationCount *string `json:"ActivationCount,omitempty"`
15702	// ActivationFailureCount - Number of times the entry point failed to run.
15703	ActivationFailureCount *string `json:"ActivationFailureCount,omitempty"`
15704	// ContinuousActivationFailureCount - Number of times the entry point continuously failed to run.
15705	ContinuousActivationFailureCount *string `json:"ContinuousActivationFailureCount,omitempty"`
15706	// ExitCount - Number of times the entry point finished running.
15707	ExitCount *string `json:"ExitCount,omitempty"`
15708	// ExitFailureCount - Number of times the entry point failed to exit gracefully.
15709	ExitFailureCount *string `json:"ExitFailureCount,omitempty"`
15710	// ContinuousExitFailureCount - Number of times the entry point continuously failed to exit gracefully.
15711	ContinuousExitFailureCount *string `json:"ContinuousExitFailureCount,omitempty"`
15712}
15713
15714// ComposeDeploymentStatusInfo information about a Service Fabric compose deployment.
15715type ComposeDeploymentStatusInfo struct {
15716	autorest.Response `json:"-"`
15717	// Name - The name of the deployment.
15718	Name *string `json:"Name,omitempty"`
15719	// ApplicationName - The name of the application, including the 'fabric:' URI scheme.
15720	ApplicationName *string `json:"ApplicationName,omitempty"`
15721	// Status - The status of the compose deployment. Possible values include: 'ComposeDeploymentStatusInvalid', 'ComposeDeploymentStatusProvisioning', 'ComposeDeploymentStatusCreating', 'ComposeDeploymentStatusReady', 'ComposeDeploymentStatusUnprovisioning', 'ComposeDeploymentStatusDeleting', 'ComposeDeploymentStatusFailed', 'ComposeDeploymentStatusUpgrading'
15722	Status ComposeDeploymentStatus `json:"Status,omitempty"`
15723	// StatusDetails - The status details of compose deployment including failure message.
15724	StatusDetails *string `json:"StatusDetails,omitempty"`
15725}
15726
15727// ComposeDeploymentUpgradeDescription describes the parameters for a compose deployment upgrade.
15728type ComposeDeploymentUpgradeDescription struct {
15729	// DeploymentName - The name of the deployment.
15730	DeploymentName *string `json:"DeploymentName,omitempty"`
15731	// ComposeFileContent - The content of the compose file that describes the deployment to create.
15732	ComposeFileContent *string `json:"ComposeFileContent,omitempty"`
15733	// RegistryCredential - Credential information to connect to container registry.
15734	RegistryCredential *RegistryCredential `json:"RegistryCredential,omitempty"`
15735	// UpgradeKind - The kind of upgrade out of the following possible values. Possible values include: 'UpgradeKindInvalid', 'UpgradeKindRolling'
15736	UpgradeKind UpgradeKind `json:"UpgradeKind,omitempty"`
15737	// 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'
15738	RollingUpgradeMode UpgradeMode `json:"RollingUpgradeMode,omitempty"`
15739	// 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).
15740	UpgradeReplicaSetCheckTimeoutInSeconds *int64 `json:"UpgradeReplicaSetCheckTimeoutInSeconds,omitempty"`
15741	// 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).
15742	ForceRestart *bool `json:"ForceRestart,omitempty"`
15743	// MonitoringPolicy - Describes the parameters for monitoring an upgrade in Monitored mode.
15744	MonitoringPolicy *MonitoringPolicyDescription `json:"MonitoringPolicy,omitempty"`
15745	// ApplicationHealthPolicy - Defines a health policy used to evaluate the health of an application or one of its children entities.
15746	ApplicationHealthPolicy *ApplicationHealthPolicy `json:"ApplicationHealthPolicy,omitempty"`
15747}
15748
15749// ComposeDeploymentUpgradeProgressInfo describes the parameters for a compose deployment upgrade.
15750type ComposeDeploymentUpgradeProgressInfo struct {
15751	autorest.Response `json:"-"`
15752	// DeploymentName - The name of the target deployment.
15753	DeploymentName *string `json:"DeploymentName,omitempty"`
15754	// ApplicationName - The name of the target application, including the 'fabric:' URI scheme.
15755	ApplicationName *string `json:"ApplicationName,omitempty"`
15756	// UpgradeState - The state of the compose deployment upgrade. Possible values include: 'ComposeDeploymentUpgradeStateInvalid', 'ComposeDeploymentUpgradeStateProvisioningTarget', 'ComposeDeploymentUpgradeStateRollingForwardInProgress', 'ComposeDeploymentUpgradeStateRollingForwardPending', 'ComposeDeploymentUpgradeStateUnprovisioningCurrent', 'ComposeDeploymentUpgradeStateRollingForwardCompleted', 'ComposeDeploymentUpgradeStateRollingBackInProgress', 'ComposeDeploymentUpgradeStateUnprovisioningTarget', 'ComposeDeploymentUpgradeStateRollingBackCompleted', 'ComposeDeploymentUpgradeStateFailed'
15757	UpgradeState ComposeDeploymentUpgradeState `json:"UpgradeState,omitempty"`
15758	// UpgradeStatusDetails - Additional detailed information about the status of the pending upgrade.
15759	UpgradeStatusDetails *string `json:"UpgradeStatusDetails,omitempty"`
15760	// UpgradeKind - The kind of upgrade out of the following possible values. Possible values include: 'UpgradeKindInvalid', 'UpgradeKindRolling'
15761	UpgradeKind UpgradeKind `json:"UpgradeKind,omitempty"`
15762	// 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'
15763	RollingUpgradeMode UpgradeMode `json:"RollingUpgradeMode,omitempty"`
15764	// 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).
15765	ForceRestart *bool `json:"ForceRestart,omitempty"`
15766	// 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).
15767	UpgradeReplicaSetCheckTimeoutInSeconds *int64 `json:"UpgradeReplicaSetCheckTimeoutInSeconds,omitempty"`
15768	// MonitoringPolicy - Describes the parameters for monitoring an upgrade in Monitored mode.
15769	MonitoringPolicy *MonitoringPolicyDescription `json:"MonitoringPolicy,omitempty"`
15770	// ApplicationHealthPolicy - Defines a health policy used to evaluate the health of an application or one of its children entities.
15771	ApplicationHealthPolicy *ApplicationHealthPolicy `json:"ApplicationHealthPolicy,omitempty"`
15772	// TargetApplicationTypeVersion - The target application type version (found in the application manifest) for the application upgrade.
15773	TargetApplicationTypeVersion *string `json:"TargetApplicationTypeVersion,omitempty"`
15774	// 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.
15775	UpgradeDuration *string `json:"UpgradeDuration,omitempty"`
15776	// 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.
15777	CurrentUpgradeDomainDuration *string `json:"CurrentUpgradeDomainDuration,omitempty"`
15778	// ApplicationUnhealthyEvaluations - List of health evaluations that resulted in the current aggregated health state.
15779	ApplicationUnhealthyEvaluations *[]HealthEvaluationWrapper `json:"ApplicationUnhealthyEvaluations,omitempty"`
15780	// CurrentUpgradeDomainProgress - Information about the current in-progress upgrade domain.
15781	CurrentUpgradeDomainProgress *CurrentUpgradeDomainProgressInfo `json:"CurrentUpgradeDomainProgress,omitempty"`
15782	// StartTimestampUtc - The estimated UTC datetime when the upgrade started.
15783	StartTimestampUtc *string `json:"StartTimestampUtc,omitempty"`
15784	// FailureTimestampUtc - The estimated UTC datetime when the upgrade failed and FailureAction was executed.
15785	FailureTimestampUtc *string `json:"FailureTimestampUtc,omitempty"`
15786	// FailureReason - The cause of an upgrade failure that resulted in FailureAction being executed. Possible values include: 'None', 'Interrupted', 'HealthCheck', 'UpgradeDomainTimeout', 'OverallUpgradeTimeout'
15787	FailureReason FailureReason `json:"FailureReason,omitempty"`
15788	// UpgradeDomainProgressAtFailure - Information about the upgrade domain progress at the time of upgrade failure.
15789	UpgradeDomainProgressAtFailure *FailureUpgradeDomainProgressInfo `json:"UpgradeDomainProgressAtFailure,omitempty"`
15790	// ApplicationUpgradeStatusDetails - Additional details of application upgrade including failure message.
15791	ApplicationUpgradeStatusDetails *string `json:"ApplicationUpgradeStatusDetails,omitempty"`
15792}
15793
15794// ConfigParameterOverride information about a configuration parameter override.
15795type ConfigParameterOverride struct {
15796	// SectionName - Name of the section for the parameter override.
15797	SectionName *string `json:"SectionName,omitempty"`
15798	// ParameterName - Name of the parameter that has been overridden.
15799	ParameterName *string `json:"ParameterName,omitempty"`
15800	// ParameterValue - Value of the overridden parameter.
15801	ParameterValue *string `json:"ParameterValue,omitempty"`
15802	// Timeout - The duration until config override is considered as valid.
15803	Timeout *string `json:"Timeout,omitempty"`
15804	// PersistAcrossUpgrade - A value that indicates whether config override will be removed on upgrade or will still be considered as valid.
15805	PersistAcrossUpgrade *bool `json:"PersistAcrossUpgrade,omitempty"`
15806}
15807
15808// ContainerAPIRequestBody parameters for making container API call.
15809type ContainerAPIRequestBody struct {
15810	// HTTPVerb - HTTP verb of container REST API, defaults to "GET"
15811	HTTPVerb *string `json:"HttpVerb,omitempty"`
15812	// URIPath - URI path of container REST API
15813	URIPath *string `json:"UriPath,omitempty"`
15814	// ContentType - Content type of container REST API request, defaults to "application/json"
15815	ContentType *string `json:"Content-Type,omitempty"`
15816	// Body - HTTP request body of container REST API
15817	Body *string `json:"Body,omitempty"`
15818}
15819
15820// ContainerAPIResponse response body that wraps container API result.
15821type ContainerAPIResponse struct {
15822	autorest.Response `json:"-"`
15823	// ContainerAPIResult - Container API result.
15824	ContainerAPIResult *ContainerAPIResult `json:"ContainerApiResult,omitempty"`
15825}
15826
15827// ContainerAPIResult container API result.
15828type ContainerAPIResult struct {
15829	// Status - HTTP status code returned by the target container API
15830	Status *int32 `json:"Status,omitempty"`
15831	// ContentType - HTTP content type
15832	ContentType *string `json:"Content-Type,omitempty"`
15833	// ContentEncoding - HTTP content encoding
15834	ContentEncoding *string `json:"Content-Encoding,omitempty"`
15835	// Body - container API result body
15836	Body *string `json:"Body,omitempty"`
15837}
15838
15839// ContainerCodePackageProperties describes a container and its runtime properties.
15840type ContainerCodePackageProperties struct {
15841	// Name - The name of the code package.
15842	Name *string `json:"name,omitempty"`
15843	// Image - The Container image to use.
15844	Image *string `json:"image,omitempty"`
15845	// ImageRegistryCredential - Image registry credential.
15846	ImageRegistryCredential *ImageRegistryCredential `json:"imageRegistryCredential,omitempty"`
15847	// EntryPoint - Override for the default entry point in the container.
15848	EntryPoint *string `json:"entryPoint,omitempty"`
15849	// Commands - Command array to execute within the container in exec form.
15850	Commands *[]string `json:"commands,omitempty"`
15851	// EnvironmentVariables - The environment variables to set in this container
15852	EnvironmentVariables *[]EnvironmentVariable `json:"environmentVariables,omitempty"`
15853	// 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".
15854	Settings *[]Setting `json:"settings,omitempty"`
15855	// Labels - The labels to set in this container.
15856	Labels *[]ContainerLabel `json:"labels,omitempty"`
15857	// Endpoints - The endpoints exposed by this container.
15858	Endpoints *[]EndpointProperties `json:"endpoints,omitempty"`
15859	// Resources - The resources required by this container.
15860	Resources *ResourceRequirements `json:"resources,omitempty"`
15861	// VolumeRefs - Volumes to be attached to the container. The lifetime of these volumes is independent of the application's lifetime.
15862	VolumeRefs *[]VolumeReference `json:"volumeRefs,omitempty"`
15863	// Volumes - Volumes to be attached to the container. The lifetime of these volumes is scoped to the application's lifetime.
15864	Volumes *[]ApplicationScopedVolume `json:"volumes,omitempty"`
15865	// Diagnostics - Reference to sinks in DiagnosticsDescription.
15866	Diagnostics *DiagnosticsRef `json:"diagnostics,omitempty"`
15867	// ReliableCollectionsRefs - A list of ReliableCollection resources used by this particular code package. Please refer to ReliableCollectionsRef for more details.
15868	ReliableCollectionsRefs *[]ReliableCollectionsRef `json:"reliableCollectionsRefs,omitempty"`
15869	// InstanceView - READ-ONLY; Runtime information of a container instance.
15870	InstanceView *ContainerInstanceView `json:"instanceView,omitempty"`
15871	// LivenessProbe - An array of liveness probes for a code package. It determines when to restart a code package.
15872	LivenessProbe *[]Probe `json:"livenessProbe,omitempty"`
15873	// ReadinessProbe - An array of readiness probes for a code package. It determines when to unpublish an endpoint.
15874	ReadinessProbe *[]Probe `json:"readinessProbe,omitempty"`
15875}
15876
15877// MarshalJSON is the custom marshaler for ContainerCodePackageProperties.
15878func (ccpp ContainerCodePackageProperties) MarshalJSON() ([]byte, error) {
15879	objectMap := make(map[string]interface{})
15880	if ccpp.Name != nil {
15881		objectMap["name"] = ccpp.Name
15882	}
15883	if ccpp.Image != nil {
15884		objectMap["image"] = ccpp.Image
15885	}
15886	if ccpp.ImageRegistryCredential != nil {
15887		objectMap["imageRegistryCredential"] = ccpp.ImageRegistryCredential
15888	}
15889	if ccpp.EntryPoint != nil {
15890		objectMap["entryPoint"] = ccpp.EntryPoint
15891	}
15892	if ccpp.Commands != nil {
15893		objectMap["commands"] = ccpp.Commands
15894	}
15895	if ccpp.EnvironmentVariables != nil {
15896		objectMap["environmentVariables"] = ccpp.EnvironmentVariables
15897	}
15898	if ccpp.Settings != nil {
15899		objectMap["settings"] = ccpp.Settings
15900	}
15901	if ccpp.Labels != nil {
15902		objectMap["labels"] = ccpp.Labels
15903	}
15904	if ccpp.Endpoints != nil {
15905		objectMap["endpoints"] = ccpp.Endpoints
15906	}
15907	if ccpp.Resources != nil {
15908		objectMap["resources"] = ccpp.Resources
15909	}
15910	if ccpp.VolumeRefs != nil {
15911		objectMap["volumeRefs"] = ccpp.VolumeRefs
15912	}
15913	if ccpp.Volumes != nil {
15914		objectMap["volumes"] = ccpp.Volumes
15915	}
15916	if ccpp.Diagnostics != nil {
15917		objectMap["diagnostics"] = ccpp.Diagnostics
15918	}
15919	if ccpp.ReliableCollectionsRefs != nil {
15920		objectMap["reliableCollectionsRefs"] = ccpp.ReliableCollectionsRefs
15921	}
15922	if ccpp.LivenessProbe != nil {
15923		objectMap["livenessProbe"] = ccpp.LivenessProbe
15924	}
15925	if ccpp.ReadinessProbe != nil {
15926		objectMap["readinessProbe"] = ccpp.ReadinessProbe
15927	}
15928	return json.Marshal(objectMap)
15929}
15930
15931// ContainerEvent a container event.
15932type ContainerEvent struct {
15933	// Name - The name of the container event.
15934	Name *string `json:"name,omitempty"`
15935	// Count - The count of the event.
15936	Count *int32 `json:"count,omitempty"`
15937	// FirstTimestamp - Date/time of the first event.
15938	FirstTimestamp *string `json:"firstTimestamp,omitempty"`
15939	// LastTimestamp - Date/time of the last event.
15940	LastTimestamp *string `json:"lastTimestamp,omitempty"`
15941	// Message - The event message
15942	Message *string `json:"message,omitempty"`
15943	// Type - The event type.
15944	Type *string `json:"type,omitempty"`
15945}
15946
15947// ContainerInstanceEvent represents the base for all Container Events.
15948type ContainerInstanceEvent struct {
15949	// EventInstanceID - The identifier for the FabricEvent instance.
15950	EventInstanceID *uuid.UUID `json:"EventInstanceId,omitempty"`
15951	// Category - The category of event.
15952	Category *string `json:"Category,omitempty"`
15953	// TimeStamp - The time event was logged.
15954	TimeStamp *date.Time `json:"TimeStamp,omitempty"`
15955	// HasCorrelatedEvents - Shows there is existing related events available.
15956	HasCorrelatedEvents *bool `json:"HasCorrelatedEvents,omitempty"`
15957	// 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'
15958	Kind KindBasicFabricEvent `json:"Kind,omitempty"`
15959}
15960
15961// MarshalJSON is the custom marshaler for ContainerInstanceEvent.
15962func (cie ContainerInstanceEvent) MarshalJSON() ([]byte, error) {
15963	cie.Kind = KindContainerInstanceEvent
15964	objectMap := make(map[string]interface{})
15965	if cie.EventInstanceID != nil {
15966		objectMap["EventInstanceId"] = cie.EventInstanceID
15967	}
15968	if cie.Category != nil {
15969		objectMap["Category"] = cie.Category
15970	}
15971	if cie.TimeStamp != nil {
15972		objectMap["TimeStamp"] = cie.TimeStamp
15973	}
15974	if cie.HasCorrelatedEvents != nil {
15975		objectMap["HasCorrelatedEvents"] = cie.HasCorrelatedEvents
15976	}
15977	if cie.Kind != "" {
15978		objectMap["Kind"] = cie.Kind
15979	}
15980	return json.Marshal(objectMap)
15981}
15982
15983// AsApplicationEvent is the BasicFabricEvent implementation for ContainerInstanceEvent.
15984func (cie ContainerInstanceEvent) AsApplicationEvent() (*ApplicationEvent, bool) {
15985	return nil, false
15986}
15987
15988// AsBasicApplicationEvent is the BasicFabricEvent implementation for ContainerInstanceEvent.
15989func (cie ContainerInstanceEvent) AsBasicApplicationEvent() (BasicApplicationEvent, bool) {
15990	return nil, false
15991}
15992
15993// AsClusterEvent is the BasicFabricEvent implementation for ContainerInstanceEvent.
15994func (cie ContainerInstanceEvent) AsClusterEvent() (*ClusterEvent, bool) {
15995	return nil, false
15996}
15997
15998// AsBasicClusterEvent is the BasicFabricEvent implementation for ContainerInstanceEvent.
15999func (cie ContainerInstanceEvent) AsBasicClusterEvent() (BasicClusterEvent, bool) {
16000	return nil, false
16001}
16002
16003// AsContainerInstanceEvent is the BasicFabricEvent implementation for ContainerInstanceEvent.
16004func (cie ContainerInstanceEvent) AsContainerInstanceEvent() (*ContainerInstanceEvent, bool) {
16005	return &cie, true
16006}
16007
16008// AsNodeEvent is the BasicFabricEvent implementation for ContainerInstanceEvent.
16009func (cie ContainerInstanceEvent) AsNodeEvent() (*NodeEvent, bool) {
16010	return nil, false
16011}
16012
16013// AsBasicNodeEvent is the BasicFabricEvent implementation for ContainerInstanceEvent.
16014func (cie ContainerInstanceEvent) AsBasicNodeEvent() (BasicNodeEvent, bool) {
16015	return nil, false
16016}
16017
16018// AsPartitionAnalysisEvent is the BasicFabricEvent implementation for ContainerInstanceEvent.
16019func (cie ContainerInstanceEvent) AsPartitionAnalysisEvent() (*PartitionAnalysisEvent, bool) {
16020	return nil, false
16021}
16022
16023// AsBasicPartitionAnalysisEvent is the BasicFabricEvent implementation for ContainerInstanceEvent.
16024func (cie ContainerInstanceEvent) AsBasicPartitionAnalysisEvent() (BasicPartitionAnalysisEvent, bool) {
16025	return nil, false
16026}
16027
16028// AsPartitionEvent is the BasicFabricEvent implementation for ContainerInstanceEvent.
16029func (cie ContainerInstanceEvent) AsPartitionEvent() (*PartitionEvent, bool) {
16030	return nil, false
16031}
16032
16033// AsBasicPartitionEvent is the BasicFabricEvent implementation for ContainerInstanceEvent.
16034func (cie ContainerInstanceEvent) AsBasicPartitionEvent() (BasicPartitionEvent, bool) {
16035	return nil, false
16036}
16037
16038// AsReplicaEvent is the BasicFabricEvent implementation for ContainerInstanceEvent.
16039func (cie ContainerInstanceEvent) AsReplicaEvent() (*ReplicaEvent, bool) {
16040	return nil, false
16041}
16042
16043// AsBasicReplicaEvent is the BasicFabricEvent implementation for ContainerInstanceEvent.
16044func (cie ContainerInstanceEvent) AsBasicReplicaEvent() (BasicReplicaEvent, bool) {
16045	return nil, false
16046}
16047
16048// AsServiceEvent is the BasicFabricEvent implementation for ContainerInstanceEvent.
16049func (cie ContainerInstanceEvent) AsServiceEvent() (*ServiceEvent, bool) {
16050	return nil, false
16051}
16052
16053// AsBasicServiceEvent is the BasicFabricEvent implementation for ContainerInstanceEvent.
16054func (cie ContainerInstanceEvent) AsBasicServiceEvent() (BasicServiceEvent, bool) {
16055	return nil, false
16056}
16057
16058// AsApplicationCreatedEvent is the BasicFabricEvent implementation for ContainerInstanceEvent.
16059func (cie ContainerInstanceEvent) AsApplicationCreatedEvent() (*ApplicationCreatedEvent, bool) {
16060	return nil, false
16061}
16062
16063// AsApplicationDeletedEvent is the BasicFabricEvent implementation for ContainerInstanceEvent.
16064func (cie ContainerInstanceEvent) AsApplicationDeletedEvent() (*ApplicationDeletedEvent, bool) {
16065	return nil, false
16066}
16067
16068// AsApplicationNewHealthReportEvent is the BasicFabricEvent implementation for ContainerInstanceEvent.
16069func (cie ContainerInstanceEvent) AsApplicationNewHealthReportEvent() (*ApplicationNewHealthReportEvent, bool) {
16070	return nil, false
16071}
16072
16073// AsApplicationHealthReportExpiredEvent is the BasicFabricEvent implementation for ContainerInstanceEvent.
16074func (cie ContainerInstanceEvent) AsApplicationHealthReportExpiredEvent() (*ApplicationHealthReportExpiredEvent, bool) {
16075	return nil, false
16076}
16077
16078// AsApplicationUpgradeCompletedEvent is the BasicFabricEvent implementation for ContainerInstanceEvent.
16079func (cie ContainerInstanceEvent) AsApplicationUpgradeCompletedEvent() (*ApplicationUpgradeCompletedEvent, bool) {
16080	return nil, false
16081}
16082
16083// AsApplicationUpgradeDomainCompletedEvent is the BasicFabricEvent implementation for ContainerInstanceEvent.
16084func (cie ContainerInstanceEvent) AsApplicationUpgradeDomainCompletedEvent() (*ApplicationUpgradeDomainCompletedEvent, bool) {
16085	return nil, false
16086}
16087
16088// AsApplicationUpgradeRollbackCompletedEvent is the BasicFabricEvent implementation for ContainerInstanceEvent.
16089func (cie ContainerInstanceEvent) AsApplicationUpgradeRollbackCompletedEvent() (*ApplicationUpgradeRollbackCompletedEvent, bool) {
16090	return nil, false
16091}
16092
16093// AsApplicationUpgradeRollbackStartedEvent is the BasicFabricEvent implementation for ContainerInstanceEvent.
16094func (cie ContainerInstanceEvent) AsApplicationUpgradeRollbackStartedEvent() (*ApplicationUpgradeRollbackStartedEvent, bool) {
16095	return nil, false
16096}
16097
16098// AsApplicationUpgradeStartedEvent is the BasicFabricEvent implementation for ContainerInstanceEvent.
16099func (cie ContainerInstanceEvent) AsApplicationUpgradeStartedEvent() (*ApplicationUpgradeStartedEvent, bool) {
16100	return nil, false
16101}
16102
16103// AsDeployedApplicationNewHealthReportEvent is the BasicFabricEvent implementation for ContainerInstanceEvent.
16104func (cie ContainerInstanceEvent) AsDeployedApplicationNewHealthReportEvent() (*DeployedApplicationNewHealthReportEvent, bool) {
16105	return nil, false
16106}
16107
16108// AsDeployedApplicationHealthReportExpiredEvent is the BasicFabricEvent implementation for ContainerInstanceEvent.
16109func (cie ContainerInstanceEvent) AsDeployedApplicationHealthReportExpiredEvent() (*DeployedApplicationHealthReportExpiredEvent, bool) {
16110	return nil, false
16111}
16112
16113// AsApplicationProcessExitedEvent is the BasicFabricEvent implementation for ContainerInstanceEvent.
16114func (cie ContainerInstanceEvent) AsApplicationProcessExitedEvent() (*ApplicationProcessExitedEvent, bool) {
16115	return nil, false
16116}
16117
16118// AsApplicationContainerInstanceExitedEvent is the BasicFabricEvent implementation for ContainerInstanceEvent.
16119func (cie ContainerInstanceEvent) AsApplicationContainerInstanceExitedEvent() (*ApplicationContainerInstanceExitedEvent, bool) {
16120	return nil, false
16121}
16122
16123// AsNodeAbortedEvent is the BasicFabricEvent implementation for ContainerInstanceEvent.
16124func (cie ContainerInstanceEvent) AsNodeAbortedEvent() (*NodeAbortedEvent, bool) {
16125	return nil, false
16126}
16127
16128// AsNodeAddedToClusterEvent is the BasicFabricEvent implementation for ContainerInstanceEvent.
16129func (cie ContainerInstanceEvent) AsNodeAddedToClusterEvent() (*NodeAddedToClusterEvent, bool) {
16130	return nil, false
16131}
16132
16133// AsNodeClosedEvent is the BasicFabricEvent implementation for ContainerInstanceEvent.
16134func (cie ContainerInstanceEvent) AsNodeClosedEvent() (*NodeClosedEvent, bool) {
16135	return nil, false
16136}
16137
16138// AsNodeDeactivateCompletedEvent is the BasicFabricEvent implementation for ContainerInstanceEvent.
16139func (cie ContainerInstanceEvent) AsNodeDeactivateCompletedEvent() (*NodeDeactivateCompletedEvent, bool) {
16140	return nil, false
16141}
16142
16143// AsNodeDeactivateStartedEvent is the BasicFabricEvent implementation for ContainerInstanceEvent.
16144func (cie ContainerInstanceEvent) AsNodeDeactivateStartedEvent() (*NodeDeactivateStartedEvent, bool) {
16145	return nil, false
16146}
16147
16148// AsNodeDownEvent is the BasicFabricEvent implementation for ContainerInstanceEvent.
16149func (cie ContainerInstanceEvent) AsNodeDownEvent() (*NodeDownEvent, bool) {
16150	return nil, false
16151}
16152
16153// AsNodeNewHealthReportEvent is the BasicFabricEvent implementation for ContainerInstanceEvent.
16154func (cie ContainerInstanceEvent) AsNodeNewHealthReportEvent() (*NodeNewHealthReportEvent, bool) {
16155	return nil, false
16156}
16157
16158// AsNodeHealthReportExpiredEvent is the BasicFabricEvent implementation for ContainerInstanceEvent.
16159func (cie ContainerInstanceEvent) AsNodeHealthReportExpiredEvent() (*NodeHealthReportExpiredEvent, bool) {
16160	return nil, false
16161}
16162
16163// AsNodeOpenSucceededEvent is the BasicFabricEvent implementation for ContainerInstanceEvent.
16164func (cie ContainerInstanceEvent) AsNodeOpenSucceededEvent() (*NodeOpenSucceededEvent, bool) {
16165	return nil, false
16166}
16167
16168// AsNodeOpenFailedEvent is the BasicFabricEvent implementation for ContainerInstanceEvent.
16169func (cie ContainerInstanceEvent) AsNodeOpenFailedEvent() (*NodeOpenFailedEvent, bool) {
16170	return nil, false
16171}
16172
16173// AsNodeRemovedFromClusterEvent is the BasicFabricEvent implementation for ContainerInstanceEvent.
16174func (cie ContainerInstanceEvent) AsNodeRemovedFromClusterEvent() (*NodeRemovedFromClusterEvent, bool) {
16175	return nil, false
16176}
16177
16178// AsNodeUpEvent is the BasicFabricEvent implementation for ContainerInstanceEvent.
16179func (cie ContainerInstanceEvent) AsNodeUpEvent() (*NodeUpEvent, bool) {
16180	return nil, false
16181}
16182
16183// AsPartitionNewHealthReportEvent is the BasicFabricEvent implementation for ContainerInstanceEvent.
16184func (cie ContainerInstanceEvent) AsPartitionNewHealthReportEvent() (*PartitionNewHealthReportEvent, bool) {
16185	return nil, false
16186}
16187
16188// AsPartitionHealthReportExpiredEvent is the BasicFabricEvent implementation for ContainerInstanceEvent.
16189func (cie ContainerInstanceEvent) AsPartitionHealthReportExpiredEvent() (*PartitionHealthReportExpiredEvent, bool) {
16190	return nil, false
16191}
16192
16193// AsPartitionReconfiguredEvent is the BasicFabricEvent implementation for ContainerInstanceEvent.
16194func (cie ContainerInstanceEvent) AsPartitionReconfiguredEvent() (*PartitionReconfiguredEvent, bool) {
16195	return nil, false
16196}
16197
16198// AsPartitionPrimaryMoveAnalysisEvent is the BasicFabricEvent implementation for ContainerInstanceEvent.
16199func (cie ContainerInstanceEvent) AsPartitionPrimaryMoveAnalysisEvent() (*PartitionPrimaryMoveAnalysisEvent, bool) {
16200	return nil, false
16201}
16202
16203// AsServiceCreatedEvent is the BasicFabricEvent implementation for ContainerInstanceEvent.
16204func (cie ContainerInstanceEvent) AsServiceCreatedEvent() (*ServiceCreatedEvent, bool) {
16205	return nil, false
16206}
16207
16208// AsServiceDeletedEvent is the BasicFabricEvent implementation for ContainerInstanceEvent.
16209func (cie ContainerInstanceEvent) AsServiceDeletedEvent() (*ServiceDeletedEvent, bool) {
16210	return nil, false
16211}
16212
16213// AsServiceNewHealthReportEvent is the BasicFabricEvent implementation for ContainerInstanceEvent.
16214func (cie ContainerInstanceEvent) AsServiceNewHealthReportEvent() (*ServiceNewHealthReportEvent, bool) {
16215	return nil, false
16216}
16217
16218// AsServiceHealthReportExpiredEvent is the BasicFabricEvent implementation for ContainerInstanceEvent.
16219func (cie ContainerInstanceEvent) AsServiceHealthReportExpiredEvent() (*ServiceHealthReportExpiredEvent, bool) {
16220	return nil, false
16221}
16222
16223// AsDeployedServicePackageNewHealthReportEvent is the BasicFabricEvent implementation for ContainerInstanceEvent.
16224func (cie ContainerInstanceEvent) AsDeployedServicePackageNewHealthReportEvent() (*DeployedServicePackageNewHealthReportEvent, bool) {
16225	return nil, false
16226}
16227
16228// AsDeployedServicePackageHealthReportExpiredEvent is the BasicFabricEvent implementation for ContainerInstanceEvent.
16229func (cie ContainerInstanceEvent) AsDeployedServicePackageHealthReportExpiredEvent() (*DeployedServicePackageHealthReportExpiredEvent, bool) {
16230	return nil, false
16231}
16232
16233// AsStatefulReplicaNewHealthReportEvent is the BasicFabricEvent implementation for ContainerInstanceEvent.
16234func (cie ContainerInstanceEvent) AsStatefulReplicaNewHealthReportEvent() (*StatefulReplicaNewHealthReportEvent, bool) {
16235	return nil, false
16236}
16237
16238// AsStatefulReplicaHealthReportExpiredEvent is the BasicFabricEvent implementation for ContainerInstanceEvent.
16239func (cie ContainerInstanceEvent) AsStatefulReplicaHealthReportExpiredEvent() (*StatefulReplicaHealthReportExpiredEvent, bool) {
16240	return nil, false
16241}
16242
16243// AsStatelessReplicaNewHealthReportEvent is the BasicFabricEvent implementation for ContainerInstanceEvent.
16244func (cie ContainerInstanceEvent) AsStatelessReplicaNewHealthReportEvent() (*StatelessReplicaNewHealthReportEvent, bool) {
16245	return nil, false
16246}
16247
16248// AsStatelessReplicaHealthReportExpiredEvent is the BasicFabricEvent implementation for ContainerInstanceEvent.
16249func (cie ContainerInstanceEvent) AsStatelessReplicaHealthReportExpiredEvent() (*StatelessReplicaHealthReportExpiredEvent, bool) {
16250	return nil, false
16251}
16252
16253// AsClusterNewHealthReportEvent is the BasicFabricEvent implementation for ContainerInstanceEvent.
16254func (cie ContainerInstanceEvent) AsClusterNewHealthReportEvent() (*ClusterNewHealthReportEvent, bool) {
16255	return nil, false
16256}
16257
16258// AsClusterHealthReportExpiredEvent is the BasicFabricEvent implementation for ContainerInstanceEvent.
16259func (cie ContainerInstanceEvent) AsClusterHealthReportExpiredEvent() (*ClusterHealthReportExpiredEvent, bool) {
16260	return nil, false
16261}
16262
16263// AsClusterUpgradeCompletedEvent is the BasicFabricEvent implementation for ContainerInstanceEvent.
16264func (cie ContainerInstanceEvent) AsClusterUpgradeCompletedEvent() (*ClusterUpgradeCompletedEvent, bool) {
16265	return nil, false
16266}
16267
16268// AsClusterUpgradeDomainCompletedEvent is the BasicFabricEvent implementation for ContainerInstanceEvent.
16269func (cie ContainerInstanceEvent) AsClusterUpgradeDomainCompletedEvent() (*ClusterUpgradeDomainCompletedEvent, bool) {
16270	return nil, false
16271}
16272
16273// AsClusterUpgradeRollbackCompletedEvent is the BasicFabricEvent implementation for ContainerInstanceEvent.
16274func (cie ContainerInstanceEvent) AsClusterUpgradeRollbackCompletedEvent() (*ClusterUpgradeRollbackCompletedEvent, bool) {
16275	return nil, false
16276}
16277
16278// AsClusterUpgradeRollbackStartedEvent is the BasicFabricEvent implementation for ContainerInstanceEvent.
16279func (cie ContainerInstanceEvent) AsClusterUpgradeRollbackStartedEvent() (*ClusterUpgradeRollbackStartedEvent, bool) {
16280	return nil, false
16281}
16282
16283// AsClusterUpgradeStartedEvent is the BasicFabricEvent implementation for ContainerInstanceEvent.
16284func (cie ContainerInstanceEvent) AsClusterUpgradeStartedEvent() (*ClusterUpgradeStartedEvent, bool) {
16285	return nil, false
16286}
16287
16288// AsChaosStoppedEvent is the BasicFabricEvent implementation for ContainerInstanceEvent.
16289func (cie ContainerInstanceEvent) AsChaosStoppedEvent() (*ChaosStoppedEvent, bool) {
16290	return nil, false
16291}
16292
16293// AsChaosStartedEvent is the BasicFabricEvent implementation for ContainerInstanceEvent.
16294func (cie ContainerInstanceEvent) AsChaosStartedEvent() (*ChaosStartedEvent, bool) {
16295	return nil, false
16296}
16297
16298// AsChaosCodePackageRestartScheduledEvent is the BasicFabricEvent implementation for ContainerInstanceEvent.
16299func (cie ContainerInstanceEvent) AsChaosCodePackageRestartScheduledEvent() (*ChaosCodePackageRestartScheduledEvent, bool) {
16300	return nil, false
16301}
16302
16303// AsChaosReplicaRemovalScheduledEvent is the BasicFabricEvent implementation for ContainerInstanceEvent.
16304func (cie ContainerInstanceEvent) AsChaosReplicaRemovalScheduledEvent() (*ChaosReplicaRemovalScheduledEvent, bool) {
16305	return nil, false
16306}
16307
16308// AsChaosPartitionSecondaryMoveScheduledEvent is the BasicFabricEvent implementation for ContainerInstanceEvent.
16309func (cie ContainerInstanceEvent) AsChaosPartitionSecondaryMoveScheduledEvent() (*ChaosPartitionSecondaryMoveScheduledEvent, bool) {
16310	return nil, false
16311}
16312
16313// AsChaosPartitionPrimaryMoveScheduledEvent is the BasicFabricEvent implementation for ContainerInstanceEvent.
16314func (cie ContainerInstanceEvent) AsChaosPartitionPrimaryMoveScheduledEvent() (*ChaosPartitionPrimaryMoveScheduledEvent, bool) {
16315	return nil, false
16316}
16317
16318// AsChaosReplicaRestartScheduledEvent is the BasicFabricEvent implementation for ContainerInstanceEvent.
16319func (cie ContainerInstanceEvent) AsChaosReplicaRestartScheduledEvent() (*ChaosReplicaRestartScheduledEvent, bool) {
16320	return nil, false
16321}
16322
16323// AsChaosNodeRestartScheduledEvent is the BasicFabricEvent implementation for ContainerInstanceEvent.
16324func (cie ContainerInstanceEvent) AsChaosNodeRestartScheduledEvent() (*ChaosNodeRestartScheduledEvent, bool) {
16325	return nil, false
16326}
16327
16328// AsFabricEvent is the BasicFabricEvent implementation for ContainerInstanceEvent.
16329func (cie ContainerInstanceEvent) AsFabricEvent() (*FabricEvent, bool) {
16330	return nil, false
16331}
16332
16333// AsBasicFabricEvent is the BasicFabricEvent implementation for ContainerInstanceEvent.
16334func (cie ContainerInstanceEvent) AsBasicFabricEvent() (BasicFabricEvent, bool) {
16335	return &cie, true
16336}
16337
16338// ContainerInstanceView runtime information of a container instance.
16339type ContainerInstanceView struct {
16340	// RestartCount - The number of times the container has been restarted.
16341	RestartCount *int32 `json:"restartCount,omitempty"`
16342	// CurrentState - Current container instance state.
16343	CurrentState *ContainerState `json:"currentState,omitempty"`
16344	// PreviousState - Previous container instance state.
16345	PreviousState *ContainerState `json:"previousState,omitempty"`
16346	// Events - The events of this container instance.
16347	Events *[]ContainerEvent `json:"events,omitempty"`
16348}
16349
16350// ContainerLabel describes a container label.
16351type ContainerLabel struct {
16352	// Name - The name of the container label.
16353	Name *string `json:"name,omitempty"`
16354	// Value - The value of the container label.
16355	Value *string `json:"value,omitempty"`
16356}
16357
16358// ContainerLogs container logs.
16359type ContainerLogs struct {
16360	autorest.Response `json:"-"`
16361	// Content - Container logs.
16362	Content *string `json:"Content,omitempty"`
16363}
16364
16365// ContainerState the container state.
16366type ContainerState struct {
16367	// State - The state of this container
16368	State *string `json:"state,omitempty"`
16369	// StartTime - Date/time when the container state started.
16370	StartTime *date.Time `json:"startTime,omitempty"`
16371	// ExitCode - The container exit code.
16372	ExitCode *string `json:"exitCode,omitempty"`
16373	// FinishTime - Date/time when the container state finished.
16374	FinishTime *date.Time `json:"finishTime,omitempty"`
16375	// DetailStatus - Human-readable status of this state.
16376	DetailStatus *string `json:"detailStatus,omitempty"`
16377}
16378
16379// CreateComposeDeploymentDescription defines description for creating a Service Fabric compose deployment.
16380type CreateComposeDeploymentDescription struct {
16381	// DeploymentName - The name of the deployment.
16382	DeploymentName *string `json:"DeploymentName,omitempty"`
16383	// ComposeFileContent - The content of the compose file that describes the deployment to create.
16384	ComposeFileContent *string `json:"ComposeFileContent,omitempty"`
16385	// RegistryCredential - Credential information to connect to container registry.
16386	RegistryCredential *RegistryCredential `json:"RegistryCredential,omitempty"`
16387}
16388
16389// CurrentUpgradeDomainProgressInfo information about the current in-progress upgrade domain.
16390type CurrentUpgradeDomainProgressInfo struct {
16391	// DomainName - The name of the upgrade domain
16392	DomainName *string `json:"DomainName,omitempty"`
16393	// NodeUpgradeProgressList - List of upgrading nodes and their statuses
16394	NodeUpgradeProgressList *[]NodeUpgradeProgressInfo `json:"NodeUpgradeProgressList,omitempty"`
16395}
16396
16397// DeactivationIntentDescription describes the intent or reason for deactivating the node.
16398type DeactivationIntentDescription struct {
16399	// DeactivationIntent - Describes the intent or reason for deactivating the node. The possible values are following. Possible values include: 'Pause', 'Restart', 'RemoveData'
16400	DeactivationIntent DeactivationIntent `json:"DeactivationIntent,omitempty"`
16401}
16402
16403// DefaultExecutionPolicy the default execution policy. Always restart the service if an exit occurs.
16404type DefaultExecutionPolicy struct {
16405	// Type - Possible values include: 'TypeExecutionPolicy', 'TypeDefault', 'TypeRunToCompletion'
16406	Type TypeBasicExecutionPolicy `json:"type,omitempty"`
16407}
16408
16409// MarshalJSON is the custom marshaler for DefaultExecutionPolicy.
16410func (dep DefaultExecutionPolicy) MarshalJSON() ([]byte, error) {
16411	dep.Type = TypeDefault
16412	objectMap := make(map[string]interface{})
16413	if dep.Type != "" {
16414		objectMap["type"] = dep.Type
16415	}
16416	return json.Marshal(objectMap)
16417}
16418
16419// AsDefaultExecutionPolicy is the BasicExecutionPolicy implementation for DefaultExecutionPolicy.
16420func (dep DefaultExecutionPolicy) AsDefaultExecutionPolicy() (*DefaultExecutionPolicy, bool) {
16421	return &dep, true
16422}
16423
16424// AsRunToCompletionExecutionPolicy is the BasicExecutionPolicy implementation for DefaultExecutionPolicy.
16425func (dep DefaultExecutionPolicy) AsRunToCompletionExecutionPolicy() (*RunToCompletionExecutionPolicy, bool) {
16426	return nil, false
16427}
16428
16429// AsExecutionPolicy is the BasicExecutionPolicy implementation for DefaultExecutionPolicy.
16430func (dep DefaultExecutionPolicy) AsExecutionPolicy() (*ExecutionPolicy, bool) {
16431	return nil, false
16432}
16433
16434// AsBasicExecutionPolicy is the BasicExecutionPolicy implementation for DefaultExecutionPolicy.
16435func (dep DefaultExecutionPolicy) AsBasicExecutionPolicy() (BasicExecutionPolicy, bool) {
16436	return &dep, true
16437}
16438
16439// DeletePropertyBatchOperation represents a PropertyBatchOperation that deletes a specified property if it
16440// exists.
16441// Note that if one PropertyBatchOperation in a PropertyBatch fails,
16442// the entire batch fails and cannot be committed in a transactional manner.
16443type DeletePropertyBatchOperation struct {
16444	// PropertyName - The name of the Service Fabric property.
16445	PropertyName *string `json:"PropertyName,omitempty"`
16446	// Kind - Possible values include: 'KindPropertyBatchOperation', 'KindCheckExists', 'KindCheckSequence', 'KindCheckValue', 'KindDelete', 'KindGet', 'KindPut'
16447	Kind KindBasicPropertyBatchOperation `json:"Kind,omitempty"`
16448}
16449
16450// MarshalJSON is the custom marshaler for DeletePropertyBatchOperation.
16451func (dpbo DeletePropertyBatchOperation) MarshalJSON() ([]byte, error) {
16452	dpbo.Kind = KindDelete
16453	objectMap := make(map[string]interface{})
16454	if dpbo.PropertyName != nil {
16455		objectMap["PropertyName"] = dpbo.PropertyName
16456	}
16457	if dpbo.Kind != "" {
16458		objectMap["Kind"] = dpbo.Kind
16459	}
16460	return json.Marshal(objectMap)
16461}
16462
16463// AsCheckExistsPropertyBatchOperation is the BasicPropertyBatchOperation implementation for DeletePropertyBatchOperation.
16464func (dpbo DeletePropertyBatchOperation) AsCheckExistsPropertyBatchOperation() (*CheckExistsPropertyBatchOperation, bool) {
16465	return nil, false
16466}
16467
16468// AsCheckSequencePropertyBatchOperation is the BasicPropertyBatchOperation implementation for DeletePropertyBatchOperation.
16469func (dpbo DeletePropertyBatchOperation) AsCheckSequencePropertyBatchOperation() (*CheckSequencePropertyBatchOperation, bool) {
16470	return nil, false
16471}
16472
16473// AsCheckValuePropertyBatchOperation is the BasicPropertyBatchOperation implementation for DeletePropertyBatchOperation.
16474func (dpbo DeletePropertyBatchOperation) AsCheckValuePropertyBatchOperation() (*CheckValuePropertyBatchOperation, bool) {
16475	return nil, false
16476}
16477
16478// AsDeletePropertyBatchOperation is the BasicPropertyBatchOperation implementation for DeletePropertyBatchOperation.
16479func (dpbo DeletePropertyBatchOperation) AsDeletePropertyBatchOperation() (*DeletePropertyBatchOperation, bool) {
16480	return &dpbo, true
16481}
16482
16483// AsGetPropertyBatchOperation is the BasicPropertyBatchOperation implementation for DeletePropertyBatchOperation.
16484func (dpbo DeletePropertyBatchOperation) AsGetPropertyBatchOperation() (*GetPropertyBatchOperation, bool) {
16485	return nil, false
16486}
16487
16488// AsPutPropertyBatchOperation is the BasicPropertyBatchOperation implementation for DeletePropertyBatchOperation.
16489func (dpbo DeletePropertyBatchOperation) AsPutPropertyBatchOperation() (*PutPropertyBatchOperation, bool) {
16490	return nil, false
16491}
16492
16493// AsPropertyBatchOperation is the BasicPropertyBatchOperation implementation for DeletePropertyBatchOperation.
16494func (dpbo DeletePropertyBatchOperation) AsPropertyBatchOperation() (*PropertyBatchOperation, bool) {
16495	return nil, false
16496}
16497
16498// AsBasicPropertyBatchOperation is the BasicPropertyBatchOperation implementation for DeletePropertyBatchOperation.
16499func (dpbo DeletePropertyBatchOperation) AsBasicPropertyBatchOperation() (BasicPropertyBatchOperation, bool) {
16500	return &dpbo, true
16501}
16502
16503// DeltaNodesCheckHealthEvaluation represents health evaluation for delta nodes, containing health
16504// evaluations for each unhealthy node that impacted current aggregated health state.
16505// Can be returned during cluster upgrade when the aggregated health state of the cluster is Warning or
16506// Error.
16507type DeltaNodesCheckHealthEvaluation struct {
16508	// BaselineErrorCount - Number of nodes with aggregated heath state Error in the health store at the beginning of the cluster upgrade.
16509	BaselineErrorCount *int64 `json:"BaselineErrorCount,omitempty"`
16510	// BaselineTotalCount - Total number of nodes in the health store at the beginning of the cluster upgrade.
16511	BaselineTotalCount *int64 `json:"BaselineTotalCount,omitempty"`
16512	// MaxPercentDeltaUnhealthyNodes - Maximum allowed percentage of delta unhealthy nodes from the ClusterUpgradeHealthPolicy.
16513	MaxPercentDeltaUnhealthyNodes *int32 `json:"MaxPercentDeltaUnhealthyNodes,omitempty"`
16514	// TotalCount - Total number of nodes in the health store.
16515	TotalCount *int64 `json:"TotalCount,omitempty"`
16516	// UnhealthyEvaluations - List of unhealthy evaluations that led to the aggregated health state.
16517	// Includes all the unhealthy NodeHealthEvaluation that impacted the aggregated health.
16518	UnhealthyEvaluations *[]HealthEvaluationWrapper `json:"UnhealthyEvaluations,omitempty"`
16519	// 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'
16520	AggregatedHealthState HealthState `json:"AggregatedHealthState,omitempty"`
16521	// Description - Description of the health evaluation, which represents a summary of the evaluation process.
16522	Description *string `json:"Description,omitempty"`
16523	// 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'
16524	Kind Kind `json:"Kind,omitempty"`
16525}
16526
16527// MarshalJSON is the custom marshaler for DeltaNodesCheckHealthEvaluation.
16528func (dnche DeltaNodesCheckHealthEvaluation) MarshalJSON() ([]byte, error) {
16529	dnche.Kind = KindDeltaNodesCheck
16530	objectMap := make(map[string]interface{})
16531	if dnche.BaselineErrorCount != nil {
16532		objectMap["BaselineErrorCount"] = dnche.BaselineErrorCount
16533	}
16534	if dnche.BaselineTotalCount != nil {
16535		objectMap["BaselineTotalCount"] = dnche.BaselineTotalCount
16536	}
16537	if dnche.MaxPercentDeltaUnhealthyNodes != nil {
16538		objectMap["MaxPercentDeltaUnhealthyNodes"] = dnche.MaxPercentDeltaUnhealthyNodes
16539	}
16540	if dnche.TotalCount != nil {
16541		objectMap["TotalCount"] = dnche.TotalCount
16542	}
16543	if dnche.UnhealthyEvaluations != nil {
16544		objectMap["UnhealthyEvaluations"] = dnche.UnhealthyEvaluations
16545	}
16546	if dnche.AggregatedHealthState != "" {
16547		objectMap["AggregatedHealthState"] = dnche.AggregatedHealthState
16548	}
16549	if dnche.Description != nil {
16550		objectMap["Description"] = dnche.Description
16551	}
16552	if dnche.Kind != "" {
16553		objectMap["Kind"] = dnche.Kind
16554	}
16555	return json.Marshal(objectMap)
16556}
16557
16558// AsApplicationHealthEvaluation is the BasicHealthEvaluation implementation for DeltaNodesCheckHealthEvaluation.
16559func (dnche DeltaNodesCheckHealthEvaluation) AsApplicationHealthEvaluation() (*ApplicationHealthEvaluation, bool) {
16560	return nil, false
16561}
16562
16563// AsApplicationsHealthEvaluation is the BasicHealthEvaluation implementation for DeltaNodesCheckHealthEvaluation.
16564func (dnche DeltaNodesCheckHealthEvaluation) AsApplicationsHealthEvaluation() (*ApplicationsHealthEvaluation, bool) {
16565	return nil, false
16566}
16567
16568// AsApplicationTypeApplicationsHealthEvaluation is the BasicHealthEvaluation implementation for DeltaNodesCheckHealthEvaluation.
16569func (dnche DeltaNodesCheckHealthEvaluation) AsApplicationTypeApplicationsHealthEvaluation() (*ApplicationTypeApplicationsHealthEvaluation, bool) {
16570	return nil, false
16571}
16572
16573// AsDeltaNodesCheckHealthEvaluation is the BasicHealthEvaluation implementation for DeltaNodesCheckHealthEvaluation.
16574func (dnche DeltaNodesCheckHealthEvaluation) AsDeltaNodesCheckHealthEvaluation() (*DeltaNodesCheckHealthEvaluation, bool) {
16575	return &dnche, true
16576}
16577
16578// AsDeployedApplicationHealthEvaluation is the BasicHealthEvaluation implementation for DeltaNodesCheckHealthEvaluation.
16579func (dnche DeltaNodesCheckHealthEvaluation) AsDeployedApplicationHealthEvaluation() (*DeployedApplicationHealthEvaluation, bool) {
16580	return nil, false
16581}
16582
16583// AsDeployedApplicationsHealthEvaluation is the BasicHealthEvaluation implementation for DeltaNodesCheckHealthEvaluation.
16584func (dnche DeltaNodesCheckHealthEvaluation) AsDeployedApplicationsHealthEvaluation() (*DeployedApplicationsHealthEvaluation, bool) {
16585	return nil, false
16586}
16587
16588// AsDeployedServicePackageHealthEvaluation is the BasicHealthEvaluation implementation for DeltaNodesCheckHealthEvaluation.
16589func (dnche DeltaNodesCheckHealthEvaluation) AsDeployedServicePackageHealthEvaluation() (*DeployedServicePackageHealthEvaluation, bool) {
16590	return nil, false
16591}
16592
16593// AsDeployedServicePackagesHealthEvaluation is the BasicHealthEvaluation implementation for DeltaNodesCheckHealthEvaluation.
16594func (dnche DeltaNodesCheckHealthEvaluation) AsDeployedServicePackagesHealthEvaluation() (*DeployedServicePackagesHealthEvaluation, bool) {
16595	return nil, false
16596}
16597
16598// AsEventHealthEvaluation is the BasicHealthEvaluation implementation for DeltaNodesCheckHealthEvaluation.
16599func (dnche DeltaNodesCheckHealthEvaluation) AsEventHealthEvaluation() (*EventHealthEvaluation, bool) {
16600	return nil, false
16601}
16602
16603// AsNodeHealthEvaluation is the BasicHealthEvaluation implementation for DeltaNodesCheckHealthEvaluation.
16604func (dnche DeltaNodesCheckHealthEvaluation) AsNodeHealthEvaluation() (*NodeHealthEvaluation, bool) {
16605	return nil, false
16606}
16607
16608// AsNodesHealthEvaluation is the BasicHealthEvaluation implementation for DeltaNodesCheckHealthEvaluation.
16609func (dnche DeltaNodesCheckHealthEvaluation) AsNodesHealthEvaluation() (*NodesHealthEvaluation, bool) {
16610	return nil, false
16611}
16612
16613// AsPartitionHealthEvaluation is the BasicHealthEvaluation implementation for DeltaNodesCheckHealthEvaluation.
16614func (dnche DeltaNodesCheckHealthEvaluation) AsPartitionHealthEvaluation() (*PartitionHealthEvaluation, bool) {
16615	return nil, false
16616}
16617
16618// AsPartitionsHealthEvaluation is the BasicHealthEvaluation implementation for DeltaNodesCheckHealthEvaluation.
16619func (dnche DeltaNodesCheckHealthEvaluation) AsPartitionsHealthEvaluation() (*PartitionsHealthEvaluation, bool) {
16620	return nil, false
16621}
16622
16623// AsReplicaHealthEvaluation is the BasicHealthEvaluation implementation for DeltaNodesCheckHealthEvaluation.
16624func (dnche DeltaNodesCheckHealthEvaluation) AsReplicaHealthEvaluation() (*ReplicaHealthEvaluation, bool) {
16625	return nil, false
16626}
16627
16628// AsReplicasHealthEvaluation is the BasicHealthEvaluation implementation for DeltaNodesCheckHealthEvaluation.
16629func (dnche DeltaNodesCheckHealthEvaluation) AsReplicasHealthEvaluation() (*ReplicasHealthEvaluation, bool) {
16630	return nil, false
16631}
16632
16633// AsServiceHealthEvaluation is the BasicHealthEvaluation implementation for DeltaNodesCheckHealthEvaluation.
16634func (dnche DeltaNodesCheckHealthEvaluation) AsServiceHealthEvaluation() (*ServiceHealthEvaluation, bool) {
16635	return nil, false
16636}
16637
16638// AsServicesHealthEvaluation is the BasicHealthEvaluation implementation for DeltaNodesCheckHealthEvaluation.
16639func (dnche DeltaNodesCheckHealthEvaluation) AsServicesHealthEvaluation() (*ServicesHealthEvaluation, bool) {
16640	return nil, false
16641}
16642
16643// AsSystemApplicationHealthEvaluation is the BasicHealthEvaluation implementation for DeltaNodesCheckHealthEvaluation.
16644func (dnche DeltaNodesCheckHealthEvaluation) AsSystemApplicationHealthEvaluation() (*SystemApplicationHealthEvaluation, bool) {
16645	return nil, false
16646}
16647
16648// AsUpgradeDomainDeltaNodesCheckHealthEvaluation is the BasicHealthEvaluation implementation for DeltaNodesCheckHealthEvaluation.
16649func (dnche DeltaNodesCheckHealthEvaluation) AsUpgradeDomainDeltaNodesCheckHealthEvaluation() (*UpgradeDomainDeltaNodesCheckHealthEvaluation, bool) {
16650	return nil, false
16651}
16652
16653// AsUpgradeDomainNodesHealthEvaluation is the BasicHealthEvaluation implementation for DeltaNodesCheckHealthEvaluation.
16654func (dnche DeltaNodesCheckHealthEvaluation) AsUpgradeDomainNodesHealthEvaluation() (*UpgradeDomainNodesHealthEvaluation, bool) {
16655	return nil, false
16656}
16657
16658// AsHealthEvaluation is the BasicHealthEvaluation implementation for DeltaNodesCheckHealthEvaluation.
16659func (dnche DeltaNodesCheckHealthEvaluation) AsHealthEvaluation() (*HealthEvaluation, bool) {
16660	return nil, false
16661}
16662
16663// AsBasicHealthEvaluation is the BasicHealthEvaluation implementation for DeltaNodesCheckHealthEvaluation.
16664func (dnche DeltaNodesCheckHealthEvaluation) AsBasicHealthEvaluation() (BasicHealthEvaluation, bool) {
16665	return &dnche, true
16666}
16667
16668// DeployedApplicationHealth information about the health of an application deployed on a Service Fabric
16669// node.
16670type DeployedApplicationHealth struct {
16671	autorest.Response `json:"-"`
16672	// Name - Name of the application deployed on the node whose health information is described by this object.
16673	Name *string `json:"Name,omitempty"`
16674	// NodeName - Name of the node where this application is deployed.
16675	NodeName *string `json:"NodeName,omitempty"`
16676	// DeployedServicePackageHealthStates - Deployed service package health states for the current deployed application as found in the health store.
16677	DeployedServicePackageHealthStates *[]DeployedServicePackageHealthState `json:"DeployedServicePackageHealthStates,omitempty"`
16678	// AggregatedHealthState - The HealthState representing the aggregated health state of the entity computed by Health Manager.
16679	// The health evaluation of the entity reflects all events reported on the entity and its children (if any).
16680	// The aggregation is done by applying the desired health policy. Possible values include: 'HealthStateInvalid', 'HealthStateOk', 'HealthStateWarning', 'HealthStateError', 'HealthStateUnknown'
16681	AggregatedHealthState HealthState `json:"AggregatedHealthState,omitempty"`
16682	// HealthEvents - The list of health events reported on the entity.
16683	HealthEvents *[]HealthEvent `json:"HealthEvents,omitempty"`
16684	// UnhealthyEvaluations - The unhealthy evaluations that show why the current aggregated health state was returned by Health Manager.
16685	UnhealthyEvaluations *[]HealthEvaluationWrapper `json:"UnhealthyEvaluations,omitempty"`
16686	// HealthStatistics - Shows the health statistics for all children types of the queried entity.
16687	HealthStatistics *HealthStatistics `json:"HealthStatistics,omitempty"`
16688}
16689
16690// DeployedApplicationHealthEvaluation represents health evaluation for a deployed application, containing
16691// information about the data and the algorithm used by the health store to evaluate health.
16692type DeployedApplicationHealthEvaluation struct {
16693	// NodeName - Name of the node where the application is deployed to.
16694	NodeName *string `json:"NodeName,omitempty"`
16695	// ApplicationName - The name of the application, including the 'fabric:' URI scheme.
16696	ApplicationName *string `json:"ApplicationName,omitempty"`
16697	// UnhealthyEvaluations - List of  unhealthy evaluations that led to the current aggregated health state of the deployed application.
16698	// The types of the unhealthy evaluations can be DeployedServicePackagesHealthEvaluation or EventHealthEvaluation.
16699	UnhealthyEvaluations *[]HealthEvaluationWrapper `json:"UnhealthyEvaluations,omitempty"`
16700	// 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'
16701	AggregatedHealthState HealthState `json:"AggregatedHealthState,omitempty"`
16702	// Description - Description of the health evaluation, which represents a summary of the evaluation process.
16703	Description *string `json:"Description,omitempty"`
16704	// 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'
16705	Kind Kind `json:"Kind,omitempty"`
16706}
16707
16708// MarshalJSON is the custom marshaler for DeployedApplicationHealthEvaluation.
16709func (dahe DeployedApplicationHealthEvaluation) MarshalJSON() ([]byte, error) {
16710	dahe.Kind = KindDeployedApplication
16711	objectMap := make(map[string]interface{})
16712	if dahe.NodeName != nil {
16713		objectMap["NodeName"] = dahe.NodeName
16714	}
16715	if dahe.ApplicationName != nil {
16716		objectMap["ApplicationName"] = dahe.ApplicationName
16717	}
16718	if dahe.UnhealthyEvaluations != nil {
16719		objectMap["UnhealthyEvaluations"] = dahe.UnhealthyEvaluations
16720	}
16721	if dahe.AggregatedHealthState != "" {
16722		objectMap["AggregatedHealthState"] = dahe.AggregatedHealthState
16723	}
16724	if dahe.Description != nil {
16725		objectMap["Description"] = dahe.Description
16726	}
16727	if dahe.Kind != "" {
16728		objectMap["Kind"] = dahe.Kind
16729	}
16730	return json.Marshal(objectMap)
16731}
16732
16733// AsApplicationHealthEvaluation is the BasicHealthEvaluation implementation for DeployedApplicationHealthEvaluation.
16734func (dahe DeployedApplicationHealthEvaluation) AsApplicationHealthEvaluation() (*ApplicationHealthEvaluation, bool) {
16735	return nil, false
16736}
16737
16738// AsApplicationsHealthEvaluation is the BasicHealthEvaluation implementation for DeployedApplicationHealthEvaluation.
16739func (dahe DeployedApplicationHealthEvaluation) AsApplicationsHealthEvaluation() (*ApplicationsHealthEvaluation, bool) {
16740	return nil, false
16741}
16742
16743// AsApplicationTypeApplicationsHealthEvaluation is the BasicHealthEvaluation implementation for DeployedApplicationHealthEvaluation.
16744func (dahe DeployedApplicationHealthEvaluation) AsApplicationTypeApplicationsHealthEvaluation() (*ApplicationTypeApplicationsHealthEvaluation, bool) {
16745	return nil, false
16746}
16747
16748// AsDeltaNodesCheckHealthEvaluation is the BasicHealthEvaluation implementation for DeployedApplicationHealthEvaluation.
16749func (dahe DeployedApplicationHealthEvaluation) AsDeltaNodesCheckHealthEvaluation() (*DeltaNodesCheckHealthEvaluation, bool) {
16750	return nil, false
16751}
16752
16753// AsDeployedApplicationHealthEvaluation is the BasicHealthEvaluation implementation for DeployedApplicationHealthEvaluation.
16754func (dahe DeployedApplicationHealthEvaluation) AsDeployedApplicationHealthEvaluation() (*DeployedApplicationHealthEvaluation, bool) {
16755	return &dahe, true
16756}
16757
16758// AsDeployedApplicationsHealthEvaluation is the BasicHealthEvaluation implementation for DeployedApplicationHealthEvaluation.
16759func (dahe DeployedApplicationHealthEvaluation) AsDeployedApplicationsHealthEvaluation() (*DeployedApplicationsHealthEvaluation, bool) {
16760	return nil, false
16761}
16762
16763// AsDeployedServicePackageHealthEvaluation is the BasicHealthEvaluation implementation for DeployedApplicationHealthEvaluation.
16764func (dahe DeployedApplicationHealthEvaluation) AsDeployedServicePackageHealthEvaluation() (*DeployedServicePackageHealthEvaluation, bool) {
16765	return nil, false
16766}
16767
16768// AsDeployedServicePackagesHealthEvaluation is the BasicHealthEvaluation implementation for DeployedApplicationHealthEvaluation.
16769func (dahe DeployedApplicationHealthEvaluation) AsDeployedServicePackagesHealthEvaluation() (*DeployedServicePackagesHealthEvaluation, bool) {
16770	return nil, false
16771}
16772
16773// AsEventHealthEvaluation is the BasicHealthEvaluation implementation for DeployedApplicationHealthEvaluation.
16774func (dahe DeployedApplicationHealthEvaluation) AsEventHealthEvaluation() (*EventHealthEvaluation, bool) {
16775	return nil, false
16776}
16777
16778// AsNodeHealthEvaluation is the BasicHealthEvaluation implementation for DeployedApplicationHealthEvaluation.
16779func (dahe DeployedApplicationHealthEvaluation) AsNodeHealthEvaluation() (*NodeHealthEvaluation, bool) {
16780	return nil, false
16781}
16782
16783// AsNodesHealthEvaluation is the BasicHealthEvaluation implementation for DeployedApplicationHealthEvaluation.
16784func (dahe DeployedApplicationHealthEvaluation) AsNodesHealthEvaluation() (*NodesHealthEvaluation, bool) {
16785	return nil, false
16786}
16787
16788// AsPartitionHealthEvaluation is the BasicHealthEvaluation implementation for DeployedApplicationHealthEvaluation.
16789func (dahe DeployedApplicationHealthEvaluation) AsPartitionHealthEvaluation() (*PartitionHealthEvaluation, bool) {
16790	return nil, false
16791}
16792
16793// AsPartitionsHealthEvaluation is the BasicHealthEvaluation implementation for DeployedApplicationHealthEvaluation.
16794func (dahe DeployedApplicationHealthEvaluation) AsPartitionsHealthEvaluation() (*PartitionsHealthEvaluation, bool) {
16795	return nil, false
16796}
16797
16798// AsReplicaHealthEvaluation is the BasicHealthEvaluation implementation for DeployedApplicationHealthEvaluation.
16799func (dahe DeployedApplicationHealthEvaluation) AsReplicaHealthEvaluation() (*ReplicaHealthEvaluation, bool) {
16800	return nil, false
16801}
16802
16803// AsReplicasHealthEvaluation is the BasicHealthEvaluation implementation for DeployedApplicationHealthEvaluation.
16804func (dahe DeployedApplicationHealthEvaluation) AsReplicasHealthEvaluation() (*ReplicasHealthEvaluation, bool) {
16805	return nil, false
16806}
16807
16808// AsServiceHealthEvaluation is the BasicHealthEvaluation implementation for DeployedApplicationHealthEvaluation.
16809func (dahe DeployedApplicationHealthEvaluation) AsServiceHealthEvaluation() (*ServiceHealthEvaluation, bool) {
16810	return nil, false
16811}
16812
16813// AsServicesHealthEvaluation is the BasicHealthEvaluation implementation for DeployedApplicationHealthEvaluation.
16814func (dahe DeployedApplicationHealthEvaluation) AsServicesHealthEvaluation() (*ServicesHealthEvaluation, bool) {
16815	return nil, false
16816}
16817
16818// AsSystemApplicationHealthEvaluation is the BasicHealthEvaluation implementation for DeployedApplicationHealthEvaluation.
16819func (dahe DeployedApplicationHealthEvaluation) AsSystemApplicationHealthEvaluation() (*SystemApplicationHealthEvaluation, bool) {
16820	return nil, false
16821}
16822
16823// AsUpgradeDomainDeltaNodesCheckHealthEvaluation is the BasicHealthEvaluation implementation for DeployedApplicationHealthEvaluation.
16824func (dahe DeployedApplicationHealthEvaluation) AsUpgradeDomainDeltaNodesCheckHealthEvaluation() (*UpgradeDomainDeltaNodesCheckHealthEvaluation, bool) {
16825	return nil, false
16826}
16827
16828// AsUpgradeDomainNodesHealthEvaluation is the BasicHealthEvaluation implementation for DeployedApplicationHealthEvaluation.
16829func (dahe DeployedApplicationHealthEvaluation) AsUpgradeDomainNodesHealthEvaluation() (*UpgradeDomainNodesHealthEvaluation, bool) {
16830	return nil, false
16831}
16832
16833// AsHealthEvaluation is the BasicHealthEvaluation implementation for DeployedApplicationHealthEvaluation.
16834func (dahe DeployedApplicationHealthEvaluation) AsHealthEvaluation() (*HealthEvaluation, bool) {
16835	return nil, false
16836}
16837
16838// AsBasicHealthEvaluation is the BasicHealthEvaluation implementation for DeployedApplicationHealthEvaluation.
16839func (dahe DeployedApplicationHealthEvaluation) AsBasicHealthEvaluation() (BasicHealthEvaluation, bool) {
16840	return &dahe, true
16841}
16842
16843// DeployedApplicationHealthReportExpiredEvent deployed Application Health Report Expired event.
16844type DeployedApplicationHealthReportExpiredEvent struct {
16845	// ApplicationInstanceID - Id of Application instance.
16846	ApplicationInstanceID *int64 `json:"ApplicationInstanceId,omitempty"`
16847	// NodeName - The name of a Service Fabric node.
16848	NodeName *string `json:"NodeName,omitempty"`
16849	// SourceID - Id of report source.
16850	SourceID *string `json:"SourceId,omitempty"`
16851	// Property - Describes the property.
16852	Property *string `json:"Property,omitempty"`
16853	// HealthState - Describes the property health state.
16854	HealthState *string `json:"HealthState,omitempty"`
16855	// TimeToLiveMs - Time to live in milli-seconds.
16856	TimeToLiveMs *int64 `json:"TimeToLiveMs,omitempty"`
16857	// SequenceNumber - Sequence number of report.
16858	SequenceNumber *int64 `json:"SequenceNumber,omitempty"`
16859	// Description - Description of report.
16860	Description *string `json:"Description,omitempty"`
16861	// RemoveWhenExpired - Indicates the removal when it expires.
16862	RemoveWhenExpired *bool `json:"RemoveWhenExpired,omitempty"`
16863	// SourceUtcTimestamp - Source time.
16864	SourceUtcTimestamp *date.Time `json:"SourceUtcTimestamp,omitempty"`
16865	// 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.
16866	// Starting in version 6.0, hierarchical names are delimited with the "\~" character. For example, if the application name is "fabric:/myapp/app1",
16867	// the application identity would be "myapp\~app1" in 6.0+ and "myapp/app1" in previous versions.
16868	ApplicationID *string `json:"ApplicationId,omitempty"`
16869	// EventInstanceID - The identifier for the FabricEvent instance.
16870	EventInstanceID *uuid.UUID `json:"EventInstanceId,omitempty"`
16871	// Category - The category of event.
16872	Category *string `json:"Category,omitempty"`
16873	// TimeStamp - The time event was logged.
16874	TimeStamp *date.Time `json:"TimeStamp,omitempty"`
16875	// HasCorrelatedEvents - Shows there is existing related events available.
16876	HasCorrelatedEvents *bool `json:"HasCorrelatedEvents,omitempty"`
16877	// 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'
16878	Kind KindBasicFabricEvent `json:"Kind,omitempty"`
16879}
16880
16881// MarshalJSON is the custom marshaler for DeployedApplicationHealthReportExpiredEvent.
16882func (dahree DeployedApplicationHealthReportExpiredEvent) MarshalJSON() ([]byte, error) {
16883	dahree.Kind = KindDeployedApplicationHealthReportExpired
16884	objectMap := make(map[string]interface{})
16885	if dahree.ApplicationInstanceID != nil {
16886		objectMap["ApplicationInstanceId"] = dahree.ApplicationInstanceID
16887	}
16888	if dahree.NodeName != nil {
16889		objectMap["NodeName"] = dahree.NodeName
16890	}
16891	if dahree.SourceID != nil {
16892		objectMap["SourceId"] = dahree.SourceID
16893	}
16894	if dahree.Property != nil {
16895		objectMap["Property"] = dahree.Property
16896	}
16897	if dahree.HealthState != nil {
16898		objectMap["HealthState"] = dahree.HealthState
16899	}
16900	if dahree.TimeToLiveMs != nil {
16901		objectMap["TimeToLiveMs"] = dahree.TimeToLiveMs
16902	}
16903	if dahree.SequenceNumber != nil {
16904		objectMap["SequenceNumber"] = dahree.SequenceNumber
16905	}
16906	if dahree.Description != nil {
16907		objectMap["Description"] = dahree.Description
16908	}
16909	if dahree.RemoveWhenExpired != nil {
16910		objectMap["RemoveWhenExpired"] = dahree.RemoveWhenExpired
16911	}
16912	if dahree.SourceUtcTimestamp != nil {
16913		objectMap["SourceUtcTimestamp"] = dahree.SourceUtcTimestamp
16914	}
16915	if dahree.ApplicationID != nil {
16916		objectMap["ApplicationId"] = dahree.ApplicationID
16917	}
16918	if dahree.EventInstanceID != nil {
16919		objectMap["EventInstanceId"] = dahree.EventInstanceID
16920	}
16921	if dahree.Category != nil {
16922		objectMap["Category"] = dahree.Category
16923	}
16924	if dahree.TimeStamp != nil {
16925		objectMap["TimeStamp"] = dahree.TimeStamp
16926	}
16927	if dahree.HasCorrelatedEvents != nil {
16928		objectMap["HasCorrelatedEvents"] = dahree.HasCorrelatedEvents
16929	}
16930	if dahree.Kind != "" {
16931		objectMap["Kind"] = dahree.Kind
16932	}
16933	return json.Marshal(objectMap)
16934}
16935
16936// AsApplicationEvent is the BasicFabricEvent implementation for DeployedApplicationHealthReportExpiredEvent.
16937func (dahree DeployedApplicationHealthReportExpiredEvent) AsApplicationEvent() (*ApplicationEvent, bool) {
16938	return nil, false
16939}
16940
16941// AsBasicApplicationEvent is the BasicFabricEvent implementation for DeployedApplicationHealthReportExpiredEvent.
16942func (dahree DeployedApplicationHealthReportExpiredEvent) AsBasicApplicationEvent() (BasicApplicationEvent, bool) {
16943	return &dahree, true
16944}
16945
16946// AsClusterEvent is the BasicFabricEvent implementation for DeployedApplicationHealthReportExpiredEvent.
16947func (dahree DeployedApplicationHealthReportExpiredEvent) AsClusterEvent() (*ClusterEvent, bool) {
16948	return nil, false
16949}
16950
16951// AsBasicClusterEvent is the BasicFabricEvent implementation for DeployedApplicationHealthReportExpiredEvent.
16952func (dahree DeployedApplicationHealthReportExpiredEvent) AsBasicClusterEvent() (BasicClusterEvent, bool) {
16953	return nil, false
16954}
16955
16956// AsContainerInstanceEvent is the BasicFabricEvent implementation for DeployedApplicationHealthReportExpiredEvent.
16957func (dahree DeployedApplicationHealthReportExpiredEvent) AsContainerInstanceEvent() (*ContainerInstanceEvent, bool) {
16958	return nil, false
16959}
16960
16961// AsNodeEvent is the BasicFabricEvent implementation for DeployedApplicationHealthReportExpiredEvent.
16962func (dahree DeployedApplicationHealthReportExpiredEvent) AsNodeEvent() (*NodeEvent, bool) {
16963	return nil, false
16964}
16965
16966// AsBasicNodeEvent is the BasicFabricEvent implementation for DeployedApplicationHealthReportExpiredEvent.
16967func (dahree DeployedApplicationHealthReportExpiredEvent) AsBasicNodeEvent() (BasicNodeEvent, bool) {
16968	return nil, false
16969}
16970
16971// AsPartitionAnalysisEvent is the BasicFabricEvent implementation for DeployedApplicationHealthReportExpiredEvent.
16972func (dahree DeployedApplicationHealthReportExpiredEvent) AsPartitionAnalysisEvent() (*PartitionAnalysisEvent, bool) {
16973	return nil, false
16974}
16975
16976// AsBasicPartitionAnalysisEvent is the BasicFabricEvent implementation for DeployedApplicationHealthReportExpiredEvent.
16977func (dahree DeployedApplicationHealthReportExpiredEvent) AsBasicPartitionAnalysisEvent() (BasicPartitionAnalysisEvent, bool) {
16978	return nil, false
16979}
16980
16981// AsPartitionEvent is the BasicFabricEvent implementation for DeployedApplicationHealthReportExpiredEvent.
16982func (dahree DeployedApplicationHealthReportExpiredEvent) AsPartitionEvent() (*PartitionEvent, bool) {
16983	return nil, false
16984}
16985
16986// AsBasicPartitionEvent is the BasicFabricEvent implementation for DeployedApplicationHealthReportExpiredEvent.
16987func (dahree DeployedApplicationHealthReportExpiredEvent) AsBasicPartitionEvent() (BasicPartitionEvent, bool) {
16988	return nil, false
16989}
16990
16991// AsReplicaEvent is the BasicFabricEvent implementation for DeployedApplicationHealthReportExpiredEvent.
16992func (dahree DeployedApplicationHealthReportExpiredEvent) AsReplicaEvent() (*ReplicaEvent, bool) {
16993	return nil, false
16994}
16995
16996// AsBasicReplicaEvent is the BasicFabricEvent implementation for DeployedApplicationHealthReportExpiredEvent.
16997func (dahree DeployedApplicationHealthReportExpiredEvent) AsBasicReplicaEvent() (BasicReplicaEvent, bool) {
16998	return nil, false
16999}
17000
17001// AsServiceEvent is the BasicFabricEvent implementation for DeployedApplicationHealthReportExpiredEvent.
17002func (dahree DeployedApplicationHealthReportExpiredEvent) AsServiceEvent() (*ServiceEvent, bool) {
17003	return nil, false
17004}
17005
17006// AsBasicServiceEvent is the BasicFabricEvent implementation for DeployedApplicationHealthReportExpiredEvent.
17007func (dahree DeployedApplicationHealthReportExpiredEvent) AsBasicServiceEvent() (BasicServiceEvent, bool) {
17008	return nil, false
17009}
17010
17011// AsApplicationCreatedEvent is the BasicFabricEvent implementation for DeployedApplicationHealthReportExpiredEvent.
17012func (dahree DeployedApplicationHealthReportExpiredEvent) AsApplicationCreatedEvent() (*ApplicationCreatedEvent, bool) {
17013	return nil, false
17014}
17015
17016// AsApplicationDeletedEvent is the BasicFabricEvent implementation for DeployedApplicationHealthReportExpiredEvent.
17017func (dahree DeployedApplicationHealthReportExpiredEvent) AsApplicationDeletedEvent() (*ApplicationDeletedEvent, bool) {
17018	return nil, false
17019}
17020
17021// AsApplicationNewHealthReportEvent is the BasicFabricEvent implementation for DeployedApplicationHealthReportExpiredEvent.
17022func (dahree DeployedApplicationHealthReportExpiredEvent) AsApplicationNewHealthReportEvent() (*ApplicationNewHealthReportEvent, bool) {
17023	return nil, false
17024}
17025
17026// AsApplicationHealthReportExpiredEvent is the BasicFabricEvent implementation for DeployedApplicationHealthReportExpiredEvent.
17027func (dahree DeployedApplicationHealthReportExpiredEvent) AsApplicationHealthReportExpiredEvent() (*ApplicationHealthReportExpiredEvent, bool) {
17028	return nil, false
17029}
17030
17031// AsApplicationUpgradeCompletedEvent is the BasicFabricEvent implementation for DeployedApplicationHealthReportExpiredEvent.
17032func (dahree DeployedApplicationHealthReportExpiredEvent) AsApplicationUpgradeCompletedEvent() (*ApplicationUpgradeCompletedEvent, bool) {
17033	return nil, false
17034}
17035
17036// AsApplicationUpgradeDomainCompletedEvent is the BasicFabricEvent implementation for DeployedApplicationHealthReportExpiredEvent.
17037func (dahree DeployedApplicationHealthReportExpiredEvent) AsApplicationUpgradeDomainCompletedEvent() (*ApplicationUpgradeDomainCompletedEvent, bool) {
17038	return nil, false
17039}
17040
17041// AsApplicationUpgradeRollbackCompletedEvent is the BasicFabricEvent implementation for DeployedApplicationHealthReportExpiredEvent.
17042func (dahree DeployedApplicationHealthReportExpiredEvent) AsApplicationUpgradeRollbackCompletedEvent() (*ApplicationUpgradeRollbackCompletedEvent, bool) {
17043	return nil, false
17044}
17045
17046// AsApplicationUpgradeRollbackStartedEvent is the BasicFabricEvent implementation for DeployedApplicationHealthReportExpiredEvent.
17047func (dahree DeployedApplicationHealthReportExpiredEvent) AsApplicationUpgradeRollbackStartedEvent() (*ApplicationUpgradeRollbackStartedEvent, bool) {
17048	return nil, false
17049}
17050
17051// AsApplicationUpgradeStartedEvent is the BasicFabricEvent implementation for DeployedApplicationHealthReportExpiredEvent.
17052func (dahree DeployedApplicationHealthReportExpiredEvent) AsApplicationUpgradeStartedEvent() (*ApplicationUpgradeStartedEvent, bool) {
17053	return nil, false
17054}
17055
17056// AsDeployedApplicationNewHealthReportEvent is the BasicFabricEvent implementation for DeployedApplicationHealthReportExpiredEvent.
17057func (dahree DeployedApplicationHealthReportExpiredEvent) AsDeployedApplicationNewHealthReportEvent() (*DeployedApplicationNewHealthReportEvent, bool) {
17058	return nil, false
17059}
17060
17061// AsDeployedApplicationHealthReportExpiredEvent is the BasicFabricEvent implementation for DeployedApplicationHealthReportExpiredEvent.
17062func (dahree DeployedApplicationHealthReportExpiredEvent) AsDeployedApplicationHealthReportExpiredEvent() (*DeployedApplicationHealthReportExpiredEvent, bool) {
17063	return &dahree, true
17064}
17065
17066// AsApplicationProcessExitedEvent is the BasicFabricEvent implementation for DeployedApplicationHealthReportExpiredEvent.
17067func (dahree DeployedApplicationHealthReportExpiredEvent) AsApplicationProcessExitedEvent() (*ApplicationProcessExitedEvent, bool) {
17068	return nil, false
17069}
17070
17071// AsApplicationContainerInstanceExitedEvent is the BasicFabricEvent implementation for DeployedApplicationHealthReportExpiredEvent.
17072func (dahree DeployedApplicationHealthReportExpiredEvent) AsApplicationContainerInstanceExitedEvent() (*ApplicationContainerInstanceExitedEvent, bool) {
17073	return nil, false
17074}
17075
17076// AsNodeAbortedEvent is the BasicFabricEvent implementation for DeployedApplicationHealthReportExpiredEvent.
17077func (dahree DeployedApplicationHealthReportExpiredEvent) AsNodeAbortedEvent() (*NodeAbortedEvent, bool) {
17078	return nil, false
17079}
17080
17081// AsNodeAddedToClusterEvent is the BasicFabricEvent implementation for DeployedApplicationHealthReportExpiredEvent.
17082func (dahree DeployedApplicationHealthReportExpiredEvent) AsNodeAddedToClusterEvent() (*NodeAddedToClusterEvent, bool) {
17083	return nil, false
17084}
17085
17086// AsNodeClosedEvent is the BasicFabricEvent implementation for DeployedApplicationHealthReportExpiredEvent.
17087func (dahree DeployedApplicationHealthReportExpiredEvent) AsNodeClosedEvent() (*NodeClosedEvent, bool) {
17088	return nil, false
17089}
17090
17091// AsNodeDeactivateCompletedEvent is the BasicFabricEvent implementation for DeployedApplicationHealthReportExpiredEvent.
17092func (dahree DeployedApplicationHealthReportExpiredEvent) AsNodeDeactivateCompletedEvent() (*NodeDeactivateCompletedEvent, bool) {
17093	return nil, false
17094}
17095
17096// AsNodeDeactivateStartedEvent is the BasicFabricEvent implementation for DeployedApplicationHealthReportExpiredEvent.
17097func (dahree DeployedApplicationHealthReportExpiredEvent) AsNodeDeactivateStartedEvent() (*NodeDeactivateStartedEvent, bool) {
17098	return nil, false
17099}
17100
17101// AsNodeDownEvent is the BasicFabricEvent implementation for DeployedApplicationHealthReportExpiredEvent.
17102func (dahree DeployedApplicationHealthReportExpiredEvent) AsNodeDownEvent() (*NodeDownEvent, bool) {
17103	return nil, false
17104}
17105
17106// AsNodeNewHealthReportEvent is the BasicFabricEvent implementation for DeployedApplicationHealthReportExpiredEvent.
17107func (dahree DeployedApplicationHealthReportExpiredEvent) AsNodeNewHealthReportEvent() (*NodeNewHealthReportEvent, bool) {
17108	return nil, false
17109}
17110
17111// AsNodeHealthReportExpiredEvent is the BasicFabricEvent implementation for DeployedApplicationHealthReportExpiredEvent.
17112func (dahree DeployedApplicationHealthReportExpiredEvent) AsNodeHealthReportExpiredEvent() (*NodeHealthReportExpiredEvent, bool) {
17113	return nil, false
17114}
17115
17116// AsNodeOpenSucceededEvent is the BasicFabricEvent implementation for DeployedApplicationHealthReportExpiredEvent.
17117func (dahree DeployedApplicationHealthReportExpiredEvent) AsNodeOpenSucceededEvent() (*NodeOpenSucceededEvent, bool) {
17118	return nil, false
17119}
17120
17121// AsNodeOpenFailedEvent is the BasicFabricEvent implementation for DeployedApplicationHealthReportExpiredEvent.
17122func (dahree DeployedApplicationHealthReportExpiredEvent) AsNodeOpenFailedEvent() (*NodeOpenFailedEvent, bool) {
17123	return nil, false
17124}
17125
17126// AsNodeRemovedFromClusterEvent is the BasicFabricEvent implementation for DeployedApplicationHealthReportExpiredEvent.
17127func (dahree DeployedApplicationHealthReportExpiredEvent) AsNodeRemovedFromClusterEvent() (*NodeRemovedFromClusterEvent, bool) {
17128	return nil, false
17129}
17130
17131// AsNodeUpEvent is the BasicFabricEvent implementation for DeployedApplicationHealthReportExpiredEvent.
17132func (dahree DeployedApplicationHealthReportExpiredEvent) AsNodeUpEvent() (*NodeUpEvent, bool) {
17133	return nil, false
17134}
17135
17136// AsPartitionNewHealthReportEvent is the BasicFabricEvent implementation for DeployedApplicationHealthReportExpiredEvent.
17137func (dahree DeployedApplicationHealthReportExpiredEvent) AsPartitionNewHealthReportEvent() (*PartitionNewHealthReportEvent, bool) {
17138	return nil, false
17139}
17140
17141// AsPartitionHealthReportExpiredEvent is the BasicFabricEvent implementation for DeployedApplicationHealthReportExpiredEvent.
17142func (dahree DeployedApplicationHealthReportExpiredEvent) AsPartitionHealthReportExpiredEvent() (*PartitionHealthReportExpiredEvent, bool) {
17143	return nil, false
17144}
17145
17146// AsPartitionReconfiguredEvent is the BasicFabricEvent implementation for DeployedApplicationHealthReportExpiredEvent.
17147func (dahree DeployedApplicationHealthReportExpiredEvent) AsPartitionReconfiguredEvent() (*PartitionReconfiguredEvent, bool) {
17148	return nil, false
17149}
17150
17151// AsPartitionPrimaryMoveAnalysisEvent is the BasicFabricEvent implementation for DeployedApplicationHealthReportExpiredEvent.
17152func (dahree DeployedApplicationHealthReportExpiredEvent) AsPartitionPrimaryMoveAnalysisEvent() (*PartitionPrimaryMoveAnalysisEvent, bool) {
17153	return nil, false
17154}
17155
17156// AsServiceCreatedEvent is the BasicFabricEvent implementation for DeployedApplicationHealthReportExpiredEvent.
17157func (dahree DeployedApplicationHealthReportExpiredEvent) AsServiceCreatedEvent() (*ServiceCreatedEvent, bool) {
17158	return nil, false
17159}
17160
17161// AsServiceDeletedEvent is the BasicFabricEvent implementation for DeployedApplicationHealthReportExpiredEvent.
17162func (dahree DeployedApplicationHealthReportExpiredEvent) AsServiceDeletedEvent() (*ServiceDeletedEvent, bool) {
17163	return nil, false
17164}
17165
17166// AsServiceNewHealthReportEvent is the BasicFabricEvent implementation for DeployedApplicationHealthReportExpiredEvent.
17167func (dahree DeployedApplicationHealthReportExpiredEvent) AsServiceNewHealthReportEvent() (*ServiceNewHealthReportEvent, bool) {
17168	return nil, false
17169}
17170
17171// AsServiceHealthReportExpiredEvent is the BasicFabricEvent implementation for DeployedApplicationHealthReportExpiredEvent.
17172func (dahree DeployedApplicationHealthReportExpiredEvent) AsServiceHealthReportExpiredEvent() (*ServiceHealthReportExpiredEvent, bool) {
17173	return nil, false
17174}
17175
17176// AsDeployedServicePackageNewHealthReportEvent is the BasicFabricEvent implementation for DeployedApplicationHealthReportExpiredEvent.
17177func (dahree DeployedApplicationHealthReportExpiredEvent) AsDeployedServicePackageNewHealthReportEvent() (*DeployedServicePackageNewHealthReportEvent, bool) {
17178	return nil, false
17179}
17180
17181// AsDeployedServicePackageHealthReportExpiredEvent is the BasicFabricEvent implementation for DeployedApplicationHealthReportExpiredEvent.
17182func (dahree DeployedApplicationHealthReportExpiredEvent) AsDeployedServicePackageHealthReportExpiredEvent() (*DeployedServicePackageHealthReportExpiredEvent, bool) {
17183	return nil, false
17184}
17185
17186// AsStatefulReplicaNewHealthReportEvent is the BasicFabricEvent implementation for DeployedApplicationHealthReportExpiredEvent.
17187func (dahree DeployedApplicationHealthReportExpiredEvent) AsStatefulReplicaNewHealthReportEvent() (*StatefulReplicaNewHealthReportEvent, bool) {
17188	return nil, false
17189}
17190
17191// AsStatefulReplicaHealthReportExpiredEvent is the BasicFabricEvent implementation for DeployedApplicationHealthReportExpiredEvent.
17192func (dahree DeployedApplicationHealthReportExpiredEvent) AsStatefulReplicaHealthReportExpiredEvent() (*StatefulReplicaHealthReportExpiredEvent, bool) {
17193	return nil, false
17194}
17195
17196// AsStatelessReplicaNewHealthReportEvent is the BasicFabricEvent implementation for DeployedApplicationHealthReportExpiredEvent.
17197func (dahree DeployedApplicationHealthReportExpiredEvent) AsStatelessReplicaNewHealthReportEvent() (*StatelessReplicaNewHealthReportEvent, bool) {
17198	return nil, false
17199}
17200
17201// AsStatelessReplicaHealthReportExpiredEvent is the BasicFabricEvent implementation for DeployedApplicationHealthReportExpiredEvent.
17202func (dahree DeployedApplicationHealthReportExpiredEvent) AsStatelessReplicaHealthReportExpiredEvent() (*StatelessReplicaHealthReportExpiredEvent, bool) {
17203	return nil, false
17204}
17205
17206// AsClusterNewHealthReportEvent is the BasicFabricEvent implementation for DeployedApplicationHealthReportExpiredEvent.
17207func (dahree DeployedApplicationHealthReportExpiredEvent) AsClusterNewHealthReportEvent() (*ClusterNewHealthReportEvent, bool) {
17208	return nil, false
17209}
17210
17211// AsClusterHealthReportExpiredEvent is the BasicFabricEvent implementation for DeployedApplicationHealthReportExpiredEvent.
17212func (dahree DeployedApplicationHealthReportExpiredEvent) AsClusterHealthReportExpiredEvent() (*ClusterHealthReportExpiredEvent, bool) {
17213	return nil, false
17214}
17215
17216// AsClusterUpgradeCompletedEvent is the BasicFabricEvent implementation for DeployedApplicationHealthReportExpiredEvent.
17217func (dahree DeployedApplicationHealthReportExpiredEvent) AsClusterUpgradeCompletedEvent() (*ClusterUpgradeCompletedEvent, bool) {
17218	return nil, false
17219}
17220
17221// AsClusterUpgradeDomainCompletedEvent is the BasicFabricEvent implementation for DeployedApplicationHealthReportExpiredEvent.
17222func (dahree DeployedApplicationHealthReportExpiredEvent) AsClusterUpgradeDomainCompletedEvent() (*ClusterUpgradeDomainCompletedEvent, bool) {
17223	return nil, false
17224}
17225
17226// AsClusterUpgradeRollbackCompletedEvent is the BasicFabricEvent implementation for DeployedApplicationHealthReportExpiredEvent.
17227func (dahree DeployedApplicationHealthReportExpiredEvent) AsClusterUpgradeRollbackCompletedEvent() (*ClusterUpgradeRollbackCompletedEvent, bool) {
17228	return nil, false
17229}
17230
17231// AsClusterUpgradeRollbackStartedEvent is the BasicFabricEvent implementation for DeployedApplicationHealthReportExpiredEvent.
17232func (dahree DeployedApplicationHealthReportExpiredEvent) AsClusterUpgradeRollbackStartedEvent() (*ClusterUpgradeRollbackStartedEvent, bool) {
17233	return nil, false
17234}
17235
17236// AsClusterUpgradeStartedEvent is the BasicFabricEvent implementation for DeployedApplicationHealthReportExpiredEvent.
17237func (dahree DeployedApplicationHealthReportExpiredEvent) AsClusterUpgradeStartedEvent() (*ClusterUpgradeStartedEvent, bool) {
17238	return nil, false
17239}
17240
17241// AsChaosStoppedEvent is the BasicFabricEvent implementation for DeployedApplicationHealthReportExpiredEvent.
17242func (dahree DeployedApplicationHealthReportExpiredEvent) AsChaosStoppedEvent() (*ChaosStoppedEvent, bool) {
17243	return nil, false
17244}
17245
17246// AsChaosStartedEvent is the BasicFabricEvent implementation for DeployedApplicationHealthReportExpiredEvent.
17247func (dahree DeployedApplicationHealthReportExpiredEvent) AsChaosStartedEvent() (*ChaosStartedEvent, bool) {
17248	return nil, false
17249}
17250
17251// AsChaosCodePackageRestartScheduledEvent is the BasicFabricEvent implementation for DeployedApplicationHealthReportExpiredEvent.
17252func (dahree DeployedApplicationHealthReportExpiredEvent) AsChaosCodePackageRestartScheduledEvent() (*ChaosCodePackageRestartScheduledEvent, bool) {
17253	return nil, false
17254}
17255
17256// AsChaosReplicaRemovalScheduledEvent is the BasicFabricEvent implementation for DeployedApplicationHealthReportExpiredEvent.
17257func (dahree DeployedApplicationHealthReportExpiredEvent) AsChaosReplicaRemovalScheduledEvent() (*ChaosReplicaRemovalScheduledEvent, bool) {
17258	return nil, false
17259}
17260
17261// AsChaosPartitionSecondaryMoveScheduledEvent is the BasicFabricEvent implementation for DeployedApplicationHealthReportExpiredEvent.
17262func (dahree DeployedApplicationHealthReportExpiredEvent) AsChaosPartitionSecondaryMoveScheduledEvent() (*ChaosPartitionSecondaryMoveScheduledEvent, bool) {
17263	return nil, false
17264}
17265
17266// AsChaosPartitionPrimaryMoveScheduledEvent is the BasicFabricEvent implementation for DeployedApplicationHealthReportExpiredEvent.
17267func (dahree DeployedApplicationHealthReportExpiredEvent) AsChaosPartitionPrimaryMoveScheduledEvent() (*ChaosPartitionPrimaryMoveScheduledEvent, bool) {
17268	return nil, false
17269}
17270
17271// AsChaosReplicaRestartScheduledEvent is the BasicFabricEvent implementation for DeployedApplicationHealthReportExpiredEvent.
17272func (dahree DeployedApplicationHealthReportExpiredEvent) AsChaosReplicaRestartScheduledEvent() (*ChaosReplicaRestartScheduledEvent, bool) {
17273	return nil, false
17274}
17275
17276// AsChaosNodeRestartScheduledEvent is the BasicFabricEvent implementation for DeployedApplicationHealthReportExpiredEvent.
17277func (dahree DeployedApplicationHealthReportExpiredEvent) AsChaosNodeRestartScheduledEvent() (*ChaosNodeRestartScheduledEvent, bool) {
17278	return nil, false
17279}
17280
17281// AsFabricEvent is the BasicFabricEvent implementation for DeployedApplicationHealthReportExpiredEvent.
17282func (dahree DeployedApplicationHealthReportExpiredEvent) AsFabricEvent() (*FabricEvent, bool) {
17283	return nil, false
17284}
17285
17286// AsBasicFabricEvent is the BasicFabricEvent implementation for DeployedApplicationHealthReportExpiredEvent.
17287func (dahree DeployedApplicationHealthReportExpiredEvent) AsBasicFabricEvent() (BasicFabricEvent, bool) {
17288	return &dahree, true
17289}
17290
17291// DeployedApplicationHealthState represents the health state of a deployed application, which contains the
17292// entity identifier and the aggregated health state.
17293type DeployedApplicationHealthState struct {
17294	// NodeName - Name of the node on which the service package is deployed.
17295	NodeName *string `json:"NodeName,omitempty"`
17296	// ApplicationName - The name of the application, including the 'fabric:' URI scheme.
17297	ApplicationName *string `json:"ApplicationName,omitempty"`
17298	// 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'
17299	AggregatedHealthState HealthState `json:"AggregatedHealthState,omitempty"`
17300}
17301
17302// DeployedApplicationHealthStateChunk represents the health state chunk of a deployed application, which
17303// contains the node where the application is deployed, the aggregated health state and any deployed
17304// service packages that respect the chunk query description filters.
17305type DeployedApplicationHealthStateChunk struct {
17306	// NodeName - The name of node where the application is deployed.
17307	NodeName *string `json:"NodeName,omitempty"`
17308	// 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.
17309	DeployedServicePackageHealthStateChunks *DeployedServicePackageHealthStateChunkList `json:"DeployedServicePackageHealthStateChunks,omitempty"`
17310	// 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'
17311	HealthState HealthState `json:"HealthState,omitempty"`
17312}
17313
17314// DeployedApplicationHealthStateChunkList the list of deployed application health state chunks that
17315// respect the input filters in the chunk query. Returned by get cluster health state chunks query.
17316type DeployedApplicationHealthStateChunkList struct {
17317	// Items - The list of deployed application health state chunks that respect the input filters in the chunk query.
17318	Items *[]DeployedApplicationHealthStateChunk `json:"Items,omitempty"`
17319}
17320
17321// DeployedApplicationHealthStateFilter defines matching criteria to determine whether a deployed
17322// application should be included as a child of an application in the cluster health chunk.
17323// The deployed applications are only returned if the parent application matches a filter specified in the
17324// cluster health chunk query description.
17325// One filter can match zero, one or multiple deployed applications, depending on its properties.
17326type DeployedApplicationHealthStateFilter struct {
17327	// NodeNameFilter - The name of the node where the application is deployed in order to match the filter.
17328	// If specified, the filter is applied only to the application deployed on the specified node.
17329	// 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.
17330	// Otherwise, the deployed application is included in the cluster health chunk if it respects the other filter properties.
17331	// 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.
17332	NodeNameFilter *string `json:"NodeNameFilter,omitempty"`
17333	// HealthStateFilter - The filter for the health state of the deployed applications. It allows selecting deployed applications if they match the desired health states.
17334	// 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.
17335	// 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.
17336	// The state values are flag-based enumeration, so the value could be a combination of these values obtained using bitwise 'OR' operator.
17337	// For example, if the provided value is 6, it matches deployed applications with HealthState value of OK (2) and Warning (4).
17338	// - Default - Default value. Matches any HealthState. The value is zero.
17339	// - 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.
17340	// - Ok - Filter that matches input with HealthState value Ok. The value is 2.
17341	// - Warning - Filter that matches input with HealthState value Warning. The value is 4.
17342	// - Error - Filter that matches input with HealthState value Error. The value is 8.
17343	// - All - Filter that matches input with any HealthState value. The value is 65535.
17344	HealthStateFilter *int32 `json:"HealthStateFilter,omitempty"`
17345	// 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.
17346	// 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.
17347	// The deployed application filter may specify multiple deployed service package filters.
17348	// 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.
17349	DeployedServicePackageFilters *[]DeployedServicePackageHealthStateFilter `json:"DeployedServicePackageFilters,omitempty"`
17350}
17351
17352// DeployedApplicationInfo information about application deployed on the node.
17353type DeployedApplicationInfo struct {
17354	autorest.Response `json:"-"`
17355	// 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.
17356	// Starting in version 6.0, hierarchical names are delimited with the "\~" character. For example, if the application name is "fabric:/myapp/app1",
17357	// the application identity would be "myapp\~app1" in 6.0+ and "myapp/app1" in previous versions.
17358	ID *string `json:"Id,omitempty"`
17359	// Name - The name of the application, including the 'fabric:' URI scheme.
17360	Name *string `json:"Name,omitempty"`
17361	// TypeName - The application type name as defined in the application manifest.
17362	TypeName *string `json:"TypeName,omitempty"`
17363	// Status - The status of the application deployed on the node. Following are the possible values. Possible values include: 'DeployedApplicationStatusInvalid', 'DeployedApplicationStatusDownloading', 'DeployedApplicationStatusActivating', 'DeployedApplicationStatusActive', 'DeployedApplicationStatusUpgrading', 'DeployedApplicationStatusDeactivating'
17364	Status DeployedApplicationStatus `json:"Status,omitempty"`
17365	// WorkDirectory - The work directory of the application on the node. The work directory can be used to store application data.
17366	WorkDirectory *string `json:"WorkDirectory,omitempty"`
17367	// LogDirectory - The log directory of the application on the node. The log directory can be used to store application logs.
17368	LogDirectory *string `json:"LogDirectory,omitempty"`
17369	// 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.
17370	TempDirectory *string `json:"TempDirectory,omitempty"`
17371	// 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'
17372	HealthState HealthState `json:"HealthState,omitempty"`
17373}
17374
17375// DeployedApplicationNewHealthReportEvent deployed Application Health Report Created event.
17376type DeployedApplicationNewHealthReportEvent struct {
17377	// ApplicationInstanceID - Id of Application instance.
17378	ApplicationInstanceID *int64 `json:"ApplicationInstanceId,omitempty"`
17379	// NodeName - The name of a Service Fabric node.
17380	NodeName *string `json:"NodeName,omitempty"`
17381	// SourceID - Id of report source.
17382	SourceID *string `json:"SourceId,omitempty"`
17383	// Property - Describes the property.
17384	Property *string `json:"Property,omitempty"`
17385	// HealthState - Describes the property health state.
17386	HealthState *string `json:"HealthState,omitempty"`
17387	// TimeToLiveMs - Time to live in milli-seconds.
17388	TimeToLiveMs *int64 `json:"TimeToLiveMs,omitempty"`
17389	// SequenceNumber - Sequence number of report.
17390	SequenceNumber *int64 `json:"SequenceNumber,omitempty"`
17391	// Description - Description of report.
17392	Description *string `json:"Description,omitempty"`
17393	// RemoveWhenExpired - Indicates the removal when it expires.
17394	RemoveWhenExpired *bool `json:"RemoveWhenExpired,omitempty"`
17395	// SourceUtcTimestamp - Source time.
17396	SourceUtcTimestamp *date.Time `json:"SourceUtcTimestamp,omitempty"`
17397	// 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.
17398	// Starting in version 6.0, hierarchical names are delimited with the "\~" character. For example, if the application name is "fabric:/myapp/app1",
17399	// the application identity would be "myapp\~app1" in 6.0+ and "myapp/app1" in previous versions.
17400	ApplicationID *string `json:"ApplicationId,omitempty"`
17401	// EventInstanceID - The identifier for the FabricEvent instance.
17402	EventInstanceID *uuid.UUID `json:"EventInstanceId,omitempty"`
17403	// Category - The category of event.
17404	Category *string `json:"Category,omitempty"`
17405	// TimeStamp - The time event was logged.
17406	TimeStamp *date.Time `json:"TimeStamp,omitempty"`
17407	// HasCorrelatedEvents - Shows there is existing related events available.
17408	HasCorrelatedEvents *bool `json:"HasCorrelatedEvents,omitempty"`
17409	// 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'
17410	Kind KindBasicFabricEvent `json:"Kind,omitempty"`
17411}
17412
17413// MarshalJSON is the custom marshaler for DeployedApplicationNewHealthReportEvent.
17414func (danhre DeployedApplicationNewHealthReportEvent) MarshalJSON() ([]byte, error) {
17415	danhre.Kind = KindDeployedApplicationNewHealthReport
17416	objectMap := make(map[string]interface{})
17417	if danhre.ApplicationInstanceID != nil {
17418		objectMap["ApplicationInstanceId"] = danhre.ApplicationInstanceID
17419	}
17420	if danhre.NodeName != nil {
17421		objectMap["NodeName"] = danhre.NodeName
17422	}
17423	if danhre.SourceID != nil {
17424		objectMap["SourceId"] = danhre.SourceID
17425	}
17426	if danhre.Property != nil {
17427		objectMap["Property"] = danhre.Property
17428	}
17429	if danhre.HealthState != nil {
17430		objectMap["HealthState"] = danhre.HealthState
17431	}
17432	if danhre.TimeToLiveMs != nil {
17433		objectMap["TimeToLiveMs"] = danhre.TimeToLiveMs
17434	}
17435	if danhre.SequenceNumber != nil {
17436		objectMap["SequenceNumber"] = danhre.SequenceNumber
17437	}
17438	if danhre.Description != nil {
17439		objectMap["Description"] = danhre.Description
17440	}
17441	if danhre.RemoveWhenExpired != nil {
17442		objectMap["RemoveWhenExpired"] = danhre.RemoveWhenExpired
17443	}
17444	if danhre.SourceUtcTimestamp != nil {
17445		objectMap["SourceUtcTimestamp"] = danhre.SourceUtcTimestamp
17446	}
17447	if danhre.ApplicationID != nil {
17448		objectMap["ApplicationId"] = danhre.ApplicationID
17449	}
17450	if danhre.EventInstanceID != nil {
17451		objectMap["EventInstanceId"] = danhre.EventInstanceID
17452	}
17453	if danhre.Category != nil {
17454		objectMap["Category"] = danhre.Category
17455	}
17456	if danhre.TimeStamp != nil {
17457		objectMap["TimeStamp"] = danhre.TimeStamp
17458	}
17459	if danhre.HasCorrelatedEvents != nil {
17460		objectMap["HasCorrelatedEvents"] = danhre.HasCorrelatedEvents
17461	}
17462	if danhre.Kind != "" {
17463		objectMap["Kind"] = danhre.Kind
17464	}
17465	return json.Marshal(objectMap)
17466}
17467
17468// AsApplicationEvent is the BasicFabricEvent implementation for DeployedApplicationNewHealthReportEvent.
17469func (danhre DeployedApplicationNewHealthReportEvent) AsApplicationEvent() (*ApplicationEvent, bool) {
17470	return nil, false
17471}
17472
17473// AsBasicApplicationEvent is the BasicFabricEvent implementation for DeployedApplicationNewHealthReportEvent.
17474func (danhre DeployedApplicationNewHealthReportEvent) AsBasicApplicationEvent() (BasicApplicationEvent, bool) {
17475	return &danhre, true
17476}
17477
17478// AsClusterEvent is the BasicFabricEvent implementation for DeployedApplicationNewHealthReportEvent.
17479func (danhre DeployedApplicationNewHealthReportEvent) AsClusterEvent() (*ClusterEvent, bool) {
17480	return nil, false
17481}
17482
17483// AsBasicClusterEvent is the BasicFabricEvent implementation for DeployedApplicationNewHealthReportEvent.
17484func (danhre DeployedApplicationNewHealthReportEvent) AsBasicClusterEvent() (BasicClusterEvent, bool) {
17485	return nil, false
17486}
17487
17488// AsContainerInstanceEvent is the BasicFabricEvent implementation for DeployedApplicationNewHealthReportEvent.
17489func (danhre DeployedApplicationNewHealthReportEvent) AsContainerInstanceEvent() (*ContainerInstanceEvent, bool) {
17490	return nil, false
17491}
17492
17493// AsNodeEvent is the BasicFabricEvent implementation for DeployedApplicationNewHealthReportEvent.
17494func (danhre DeployedApplicationNewHealthReportEvent) AsNodeEvent() (*NodeEvent, bool) {
17495	return nil, false
17496}
17497
17498// AsBasicNodeEvent is the BasicFabricEvent implementation for DeployedApplicationNewHealthReportEvent.
17499func (danhre DeployedApplicationNewHealthReportEvent) AsBasicNodeEvent() (BasicNodeEvent, bool) {
17500	return nil, false
17501}
17502
17503// AsPartitionAnalysisEvent is the BasicFabricEvent implementation for DeployedApplicationNewHealthReportEvent.
17504func (danhre DeployedApplicationNewHealthReportEvent) AsPartitionAnalysisEvent() (*PartitionAnalysisEvent, bool) {
17505	return nil, false
17506}
17507
17508// AsBasicPartitionAnalysisEvent is the BasicFabricEvent implementation for DeployedApplicationNewHealthReportEvent.
17509func (danhre DeployedApplicationNewHealthReportEvent) AsBasicPartitionAnalysisEvent() (BasicPartitionAnalysisEvent, bool) {
17510	return nil, false
17511}
17512
17513// AsPartitionEvent is the BasicFabricEvent implementation for DeployedApplicationNewHealthReportEvent.
17514func (danhre DeployedApplicationNewHealthReportEvent) AsPartitionEvent() (*PartitionEvent, bool) {
17515	return nil, false
17516}
17517
17518// AsBasicPartitionEvent is the BasicFabricEvent implementation for DeployedApplicationNewHealthReportEvent.
17519func (danhre DeployedApplicationNewHealthReportEvent) AsBasicPartitionEvent() (BasicPartitionEvent, bool) {
17520	return nil, false
17521}
17522
17523// AsReplicaEvent is the BasicFabricEvent implementation for DeployedApplicationNewHealthReportEvent.
17524func (danhre DeployedApplicationNewHealthReportEvent) AsReplicaEvent() (*ReplicaEvent, bool) {
17525	return nil, false
17526}
17527
17528// AsBasicReplicaEvent is the BasicFabricEvent implementation for DeployedApplicationNewHealthReportEvent.
17529func (danhre DeployedApplicationNewHealthReportEvent) AsBasicReplicaEvent() (BasicReplicaEvent, bool) {
17530	return nil, false
17531}
17532
17533// AsServiceEvent is the BasicFabricEvent implementation for DeployedApplicationNewHealthReportEvent.
17534func (danhre DeployedApplicationNewHealthReportEvent) AsServiceEvent() (*ServiceEvent, bool) {
17535	return nil, false
17536}
17537
17538// AsBasicServiceEvent is the BasicFabricEvent implementation for DeployedApplicationNewHealthReportEvent.
17539func (danhre DeployedApplicationNewHealthReportEvent) AsBasicServiceEvent() (BasicServiceEvent, bool) {
17540	return nil, false
17541}
17542
17543// AsApplicationCreatedEvent is the BasicFabricEvent implementation for DeployedApplicationNewHealthReportEvent.
17544func (danhre DeployedApplicationNewHealthReportEvent) AsApplicationCreatedEvent() (*ApplicationCreatedEvent, bool) {
17545	return nil, false
17546}
17547
17548// AsApplicationDeletedEvent is the BasicFabricEvent implementation for DeployedApplicationNewHealthReportEvent.
17549func (danhre DeployedApplicationNewHealthReportEvent) AsApplicationDeletedEvent() (*ApplicationDeletedEvent, bool) {
17550	return nil, false
17551}
17552
17553// AsApplicationNewHealthReportEvent is the BasicFabricEvent implementation for DeployedApplicationNewHealthReportEvent.
17554func (danhre DeployedApplicationNewHealthReportEvent) AsApplicationNewHealthReportEvent() (*ApplicationNewHealthReportEvent, bool) {
17555	return nil, false
17556}
17557
17558// AsApplicationHealthReportExpiredEvent is the BasicFabricEvent implementation for DeployedApplicationNewHealthReportEvent.
17559func (danhre DeployedApplicationNewHealthReportEvent) AsApplicationHealthReportExpiredEvent() (*ApplicationHealthReportExpiredEvent, bool) {
17560	return nil, false
17561}
17562
17563// AsApplicationUpgradeCompletedEvent is the BasicFabricEvent implementation for DeployedApplicationNewHealthReportEvent.
17564func (danhre DeployedApplicationNewHealthReportEvent) AsApplicationUpgradeCompletedEvent() (*ApplicationUpgradeCompletedEvent, bool) {
17565	return nil, false
17566}
17567
17568// AsApplicationUpgradeDomainCompletedEvent is the BasicFabricEvent implementation for DeployedApplicationNewHealthReportEvent.
17569func (danhre DeployedApplicationNewHealthReportEvent) AsApplicationUpgradeDomainCompletedEvent() (*ApplicationUpgradeDomainCompletedEvent, bool) {
17570	return nil, false
17571}
17572
17573// AsApplicationUpgradeRollbackCompletedEvent is the BasicFabricEvent implementation for DeployedApplicationNewHealthReportEvent.
17574func (danhre DeployedApplicationNewHealthReportEvent) AsApplicationUpgradeRollbackCompletedEvent() (*ApplicationUpgradeRollbackCompletedEvent, bool) {
17575	return nil, false
17576}
17577
17578// AsApplicationUpgradeRollbackStartedEvent is the BasicFabricEvent implementation for DeployedApplicationNewHealthReportEvent.
17579func (danhre DeployedApplicationNewHealthReportEvent) AsApplicationUpgradeRollbackStartedEvent() (*ApplicationUpgradeRollbackStartedEvent, bool) {
17580	return nil, false
17581}
17582
17583// AsApplicationUpgradeStartedEvent is the BasicFabricEvent implementation for DeployedApplicationNewHealthReportEvent.
17584func (danhre DeployedApplicationNewHealthReportEvent) AsApplicationUpgradeStartedEvent() (*ApplicationUpgradeStartedEvent, bool) {
17585	return nil, false
17586}
17587
17588// AsDeployedApplicationNewHealthReportEvent is the BasicFabricEvent implementation for DeployedApplicationNewHealthReportEvent.
17589func (danhre DeployedApplicationNewHealthReportEvent) AsDeployedApplicationNewHealthReportEvent() (*DeployedApplicationNewHealthReportEvent, bool) {
17590	return &danhre, true
17591}
17592
17593// AsDeployedApplicationHealthReportExpiredEvent is the BasicFabricEvent implementation for DeployedApplicationNewHealthReportEvent.
17594func (danhre DeployedApplicationNewHealthReportEvent) AsDeployedApplicationHealthReportExpiredEvent() (*DeployedApplicationHealthReportExpiredEvent, bool) {
17595	return nil, false
17596}
17597
17598// AsApplicationProcessExitedEvent is the BasicFabricEvent implementation for DeployedApplicationNewHealthReportEvent.
17599func (danhre DeployedApplicationNewHealthReportEvent) AsApplicationProcessExitedEvent() (*ApplicationProcessExitedEvent, bool) {
17600	return nil, false
17601}
17602
17603// AsApplicationContainerInstanceExitedEvent is the BasicFabricEvent implementation for DeployedApplicationNewHealthReportEvent.
17604func (danhre DeployedApplicationNewHealthReportEvent) AsApplicationContainerInstanceExitedEvent() (*ApplicationContainerInstanceExitedEvent, bool) {
17605	return nil, false
17606}
17607
17608// AsNodeAbortedEvent is the BasicFabricEvent implementation for DeployedApplicationNewHealthReportEvent.
17609func (danhre DeployedApplicationNewHealthReportEvent) AsNodeAbortedEvent() (*NodeAbortedEvent, bool) {
17610	return nil, false
17611}
17612
17613// AsNodeAddedToClusterEvent is the BasicFabricEvent implementation for DeployedApplicationNewHealthReportEvent.
17614func (danhre DeployedApplicationNewHealthReportEvent) AsNodeAddedToClusterEvent() (*NodeAddedToClusterEvent, bool) {
17615	return nil, false
17616}
17617
17618// AsNodeClosedEvent is the BasicFabricEvent implementation for DeployedApplicationNewHealthReportEvent.
17619func (danhre DeployedApplicationNewHealthReportEvent) AsNodeClosedEvent() (*NodeClosedEvent, bool) {
17620	return nil, false
17621}
17622
17623// AsNodeDeactivateCompletedEvent is the BasicFabricEvent implementation for DeployedApplicationNewHealthReportEvent.
17624func (danhre DeployedApplicationNewHealthReportEvent) AsNodeDeactivateCompletedEvent() (*NodeDeactivateCompletedEvent, bool) {
17625	return nil, false
17626}
17627
17628// AsNodeDeactivateStartedEvent is the BasicFabricEvent implementation for DeployedApplicationNewHealthReportEvent.
17629func (danhre DeployedApplicationNewHealthReportEvent) AsNodeDeactivateStartedEvent() (*NodeDeactivateStartedEvent, bool) {
17630	return nil, false
17631}
17632
17633// AsNodeDownEvent is the BasicFabricEvent implementation for DeployedApplicationNewHealthReportEvent.
17634func (danhre DeployedApplicationNewHealthReportEvent) AsNodeDownEvent() (*NodeDownEvent, bool) {
17635	return nil, false
17636}
17637
17638// AsNodeNewHealthReportEvent is the BasicFabricEvent implementation for DeployedApplicationNewHealthReportEvent.
17639func (danhre DeployedApplicationNewHealthReportEvent) AsNodeNewHealthReportEvent() (*NodeNewHealthReportEvent, bool) {
17640	return nil, false
17641}
17642
17643// AsNodeHealthReportExpiredEvent is the BasicFabricEvent implementation for DeployedApplicationNewHealthReportEvent.
17644func (danhre DeployedApplicationNewHealthReportEvent) AsNodeHealthReportExpiredEvent() (*NodeHealthReportExpiredEvent, bool) {
17645	return nil, false
17646}
17647
17648// AsNodeOpenSucceededEvent is the BasicFabricEvent implementation for DeployedApplicationNewHealthReportEvent.
17649func (danhre DeployedApplicationNewHealthReportEvent) AsNodeOpenSucceededEvent() (*NodeOpenSucceededEvent, bool) {
17650	return nil, false
17651}
17652
17653// AsNodeOpenFailedEvent is the BasicFabricEvent implementation for DeployedApplicationNewHealthReportEvent.
17654func (danhre DeployedApplicationNewHealthReportEvent) AsNodeOpenFailedEvent() (*NodeOpenFailedEvent, bool) {
17655	return nil, false
17656}
17657
17658// AsNodeRemovedFromClusterEvent is the BasicFabricEvent implementation for DeployedApplicationNewHealthReportEvent.
17659func (danhre DeployedApplicationNewHealthReportEvent) AsNodeRemovedFromClusterEvent() (*NodeRemovedFromClusterEvent, bool) {
17660	return nil, false
17661}
17662
17663// AsNodeUpEvent is the BasicFabricEvent implementation for DeployedApplicationNewHealthReportEvent.
17664func (danhre DeployedApplicationNewHealthReportEvent) AsNodeUpEvent() (*NodeUpEvent, bool) {
17665	return nil, false
17666}
17667
17668// AsPartitionNewHealthReportEvent is the BasicFabricEvent implementation for DeployedApplicationNewHealthReportEvent.
17669func (danhre DeployedApplicationNewHealthReportEvent) AsPartitionNewHealthReportEvent() (*PartitionNewHealthReportEvent, bool) {
17670	return nil, false
17671}
17672
17673// AsPartitionHealthReportExpiredEvent is the BasicFabricEvent implementation for DeployedApplicationNewHealthReportEvent.
17674func (danhre DeployedApplicationNewHealthReportEvent) AsPartitionHealthReportExpiredEvent() (*PartitionHealthReportExpiredEvent, bool) {
17675	return nil, false
17676}
17677
17678// AsPartitionReconfiguredEvent is the BasicFabricEvent implementation for DeployedApplicationNewHealthReportEvent.
17679func (danhre DeployedApplicationNewHealthReportEvent) AsPartitionReconfiguredEvent() (*PartitionReconfiguredEvent, bool) {
17680	return nil, false
17681}
17682
17683// AsPartitionPrimaryMoveAnalysisEvent is the BasicFabricEvent implementation for DeployedApplicationNewHealthReportEvent.
17684func (danhre DeployedApplicationNewHealthReportEvent) AsPartitionPrimaryMoveAnalysisEvent() (*PartitionPrimaryMoveAnalysisEvent, bool) {
17685	return nil, false
17686}
17687
17688// AsServiceCreatedEvent is the BasicFabricEvent implementation for DeployedApplicationNewHealthReportEvent.
17689func (danhre DeployedApplicationNewHealthReportEvent) AsServiceCreatedEvent() (*ServiceCreatedEvent, bool) {
17690	return nil, false
17691}
17692
17693// AsServiceDeletedEvent is the BasicFabricEvent implementation for DeployedApplicationNewHealthReportEvent.
17694func (danhre DeployedApplicationNewHealthReportEvent) AsServiceDeletedEvent() (*ServiceDeletedEvent, bool) {
17695	return nil, false
17696}
17697
17698// AsServiceNewHealthReportEvent is the BasicFabricEvent implementation for DeployedApplicationNewHealthReportEvent.
17699func (danhre DeployedApplicationNewHealthReportEvent) AsServiceNewHealthReportEvent() (*ServiceNewHealthReportEvent, bool) {
17700	return nil, false
17701}
17702
17703// AsServiceHealthReportExpiredEvent is the BasicFabricEvent implementation for DeployedApplicationNewHealthReportEvent.
17704func (danhre DeployedApplicationNewHealthReportEvent) AsServiceHealthReportExpiredEvent() (*ServiceHealthReportExpiredEvent, bool) {
17705	return nil, false
17706}
17707
17708// AsDeployedServicePackageNewHealthReportEvent is the BasicFabricEvent implementation for DeployedApplicationNewHealthReportEvent.
17709func (danhre DeployedApplicationNewHealthReportEvent) AsDeployedServicePackageNewHealthReportEvent() (*DeployedServicePackageNewHealthReportEvent, bool) {
17710	return nil, false
17711}
17712
17713// AsDeployedServicePackageHealthReportExpiredEvent is the BasicFabricEvent implementation for DeployedApplicationNewHealthReportEvent.
17714func (danhre DeployedApplicationNewHealthReportEvent) AsDeployedServicePackageHealthReportExpiredEvent() (*DeployedServicePackageHealthReportExpiredEvent, bool) {
17715	return nil, false
17716}
17717
17718// AsStatefulReplicaNewHealthReportEvent is the BasicFabricEvent implementation for DeployedApplicationNewHealthReportEvent.
17719func (danhre DeployedApplicationNewHealthReportEvent) AsStatefulReplicaNewHealthReportEvent() (*StatefulReplicaNewHealthReportEvent, bool) {
17720	return nil, false
17721}
17722
17723// AsStatefulReplicaHealthReportExpiredEvent is the BasicFabricEvent implementation for DeployedApplicationNewHealthReportEvent.
17724func (danhre DeployedApplicationNewHealthReportEvent) AsStatefulReplicaHealthReportExpiredEvent() (*StatefulReplicaHealthReportExpiredEvent, bool) {
17725	return nil, false
17726}
17727
17728// AsStatelessReplicaNewHealthReportEvent is the BasicFabricEvent implementation for DeployedApplicationNewHealthReportEvent.
17729func (danhre DeployedApplicationNewHealthReportEvent) AsStatelessReplicaNewHealthReportEvent() (*StatelessReplicaNewHealthReportEvent, bool) {
17730	return nil, false
17731}
17732
17733// AsStatelessReplicaHealthReportExpiredEvent is the BasicFabricEvent implementation for DeployedApplicationNewHealthReportEvent.
17734func (danhre DeployedApplicationNewHealthReportEvent) AsStatelessReplicaHealthReportExpiredEvent() (*StatelessReplicaHealthReportExpiredEvent, bool) {
17735	return nil, false
17736}
17737
17738// AsClusterNewHealthReportEvent is the BasicFabricEvent implementation for DeployedApplicationNewHealthReportEvent.
17739func (danhre DeployedApplicationNewHealthReportEvent) AsClusterNewHealthReportEvent() (*ClusterNewHealthReportEvent, bool) {
17740	return nil, false
17741}
17742
17743// AsClusterHealthReportExpiredEvent is the BasicFabricEvent implementation for DeployedApplicationNewHealthReportEvent.
17744func (danhre DeployedApplicationNewHealthReportEvent) AsClusterHealthReportExpiredEvent() (*ClusterHealthReportExpiredEvent, bool) {
17745	return nil, false
17746}
17747
17748// AsClusterUpgradeCompletedEvent is the BasicFabricEvent implementation for DeployedApplicationNewHealthReportEvent.
17749func (danhre DeployedApplicationNewHealthReportEvent) AsClusterUpgradeCompletedEvent() (*ClusterUpgradeCompletedEvent, bool) {
17750	return nil, false
17751}
17752
17753// AsClusterUpgradeDomainCompletedEvent is the BasicFabricEvent implementation for DeployedApplicationNewHealthReportEvent.
17754func (danhre DeployedApplicationNewHealthReportEvent) AsClusterUpgradeDomainCompletedEvent() (*ClusterUpgradeDomainCompletedEvent, bool) {
17755	return nil, false
17756}
17757
17758// AsClusterUpgradeRollbackCompletedEvent is the BasicFabricEvent implementation for DeployedApplicationNewHealthReportEvent.
17759func (danhre DeployedApplicationNewHealthReportEvent) AsClusterUpgradeRollbackCompletedEvent() (*ClusterUpgradeRollbackCompletedEvent, bool) {
17760	return nil, false
17761}
17762
17763// AsClusterUpgradeRollbackStartedEvent is the BasicFabricEvent implementation for DeployedApplicationNewHealthReportEvent.
17764func (danhre DeployedApplicationNewHealthReportEvent) AsClusterUpgradeRollbackStartedEvent() (*ClusterUpgradeRollbackStartedEvent, bool) {
17765	return nil, false
17766}
17767
17768// AsClusterUpgradeStartedEvent is the BasicFabricEvent implementation for DeployedApplicationNewHealthReportEvent.
17769func (danhre DeployedApplicationNewHealthReportEvent) AsClusterUpgradeStartedEvent() (*ClusterUpgradeStartedEvent, bool) {
17770	return nil, false
17771}
17772
17773// AsChaosStoppedEvent is the BasicFabricEvent implementation for DeployedApplicationNewHealthReportEvent.
17774func (danhre DeployedApplicationNewHealthReportEvent) AsChaosStoppedEvent() (*ChaosStoppedEvent, bool) {
17775	return nil, false
17776}
17777
17778// AsChaosStartedEvent is the BasicFabricEvent implementation for DeployedApplicationNewHealthReportEvent.
17779func (danhre DeployedApplicationNewHealthReportEvent) AsChaosStartedEvent() (*ChaosStartedEvent, bool) {
17780	return nil, false
17781}
17782
17783// AsChaosCodePackageRestartScheduledEvent is the BasicFabricEvent implementation for DeployedApplicationNewHealthReportEvent.
17784func (danhre DeployedApplicationNewHealthReportEvent) AsChaosCodePackageRestartScheduledEvent() (*ChaosCodePackageRestartScheduledEvent, bool) {
17785	return nil, false
17786}
17787
17788// AsChaosReplicaRemovalScheduledEvent is the BasicFabricEvent implementation for DeployedApplicationNewHealthReportEvent.
17789func (danhre DeployedApplicationNewHealthReportEvent) AsChaosReplicaRemovalScheduledEvent() (*ChaosReplicaRemovalScheduledEvent, bool) {
17790	return nil, false
17791}
17792
17793// AsChaosPartitionSecondaryMoveScheduledEvent is the BasicFabricEvent implementation for DeployedApplicationNewHealthReportEvent.
17794func (danhre DeployedApplicationNewHealthReportEvent) AsChaosPartitionSecondaryMoveScheduledEvent() (*ChaosPartitionSecondaryMoveScheduledEvent, bool) {
17795	return nil, false
17796}
17797
17798// AsChaosPartitionPrimaryMoveScheduledEvent is the BasicFabricEvent implementation for DeployedApplicationNewHealthReportEvent.
17799func (danhre DeployedApplicationNewHealthReportEvent) AsChaosPartitionPrimaryMoveScheduledEvent() (*ChaosPartitionPrimaryMoveScheduledEvent, bool) {
17800	return nil, false
17801}
17802
17803// AsChaosReplicaRestartScheduledEvent is the BasicFabricEvent implementation for DeployedApplicationNewHealthReportEvent.
17804func (danhre DeployedApplicationNewHealthReportEvent) AsChaosReplicaRestartScheduledEvent() (*ChaosReplicaRestartScheduledEvent, bool) {
17805	return nil, false
17806}
17807
17808// AsChaosNodeRestartScheduledEvent is the BasicFabricEvent implementation for DeployedApplicationNewHealthReportEvent.
17809func (danhre DeployedApplicationNewHealthReportEvent) AsChaosNodeRestartScheduledEvent() (*ChaosNodeRestartScheduledEvent, bool) {
17810	return nil, false
17811}
17812
17813// AsFabricEvent is the BasicFabricEvent implementation for DeployedApplicationNewHealthReportEvent.
17814func (danhre DeployedApplicationNewHealthReportEvent) AsFabricEvent() (*FabricEvent, bool) {
17815	return nil, false
17816}
17817
17818// AsBasicFabricEvent is the BasicFabricEvent implementation for DeployedApplicationNewHealthReportEvent.
17819func (danhre DeployedApplicationNewHealthReportEvent) AsBasicFabricEvent() (BasicFabricEvent, bool) {
17820	return &danhre, true
17821}
17822
17823// DeployedApplicationsHealthEvaluation represents health evaluation for deployed applications, containing
17824// health evaluations for each unhealthy deployed application that impacted current aggregated health
17825// state.
17826// Can be returned when evaluating application health and the aggregated health state is either Error or
17827// Warning.
17828type DeployedApplicationsHealthEvaluation struct {
17829	// MaxPercentUnhealthyDeployedApplications - Maximum allowed percentage of unhealthy deployed applications from the ApplicationHealthPolicy.
17830	MaxPercentUnhealthyDeployedApplications *int32 `json:"MaxPercentUnhealthyDeployedApplications,omitempty"`
17831	// TotalCount - Total number of deployed applications of the application in the health store.
17832	TotalCount *int64 `json:"TotalCount,omitempty"`
17833	// UnhealthyEvaluations - List of unhealthy evaluations that led to the aggregated health state. Includes all the unhealthy DeployedApplicationHealthEvaluation that impacted the aggregated health.
17834	UnhealthyEvaluations *[]HealthEvaluationWrapper `json:"UnhealthyEvaluations,omitempty"`
17835	// 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'
17836	AggregatedHealthState HealthState `json:"AggregatedHealthState,omitempty"`
17837	// Description - Description of the health evaluation, which represents a summary of the evaluation process.
17838	Description *string `json:"Description,omitempty"`
17839	// 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'
17840	Kind Kind `json:"Kind,omitempty"`
17841}
17842
17843// MarshalJSON is the custom marshaler for DeployedApplicationsHealthEvaluation.
17844func (dahe DeployedApplicationsHealthEvaluation) MarshalJSON() ([]byte, error) {
17845	dahe.Kind = KindDeployedApplications
17846	objectMap := make(map[string]interface{})
17847	if dahe.MaxPercentUnhealthyDeployedApplications != nil {
17848		objectMap["MaxPercentUnhealthyDeployedApplications"] = dahe.MaxPercentUnhealthyDeployedApplications
17849	}
17850	if dahe.TotalCount != nil {
17851		objectMap["TotalCount"] = dahe.TotalCount
17852	}
17853	if dahe.UnhealthyEvaluations != nil {
17854		objectMap["UnhealthyEvaluations"] = dahe.UnhealthyEvaluations
17855	}
17856	if dahe.AggregatedHealthState != "" {
17857		objectMap["AggregatedHealthState"] = dahe.AggregatedHealthState
17858	}
17859	if dahe.Description != nil {
17860		objectMap["Description"] = dahe.Description
17861	}
17862	if dahe.Kind != "" {
17863		objectMap["Kind"] = dahe.Kind
17864	}
17865	return json.Marshal(objectMap)
17866}
17867
17868// AsApplicationHealthEvaluation is the BasicHealthEvaluation implementation for DeployedApplicationsHealthEvaluation.
17869func (dahe DeployedApplicationsHealthEvaluation) AsApplicationHealthEvaluation() (*ApplicationHealthEvaluation, bool) {
17870	return nil, false
17871}
17872
17873// AsApplicationsHealthEvaluation is the BasicHealthEvaluation implementation for DeployedApplicationsHealthEvaluation.
17874func (dahe DeployedApplicationsHealthEvaluation) AsApplicationsHealthEvaluation() (*ApplicationsHealthEvaluation, bool) {
17875	return nil, false
17876}
17877
17878// AsApplicationTypeApplicationsHealthEvaluation is the BasicHealthEvaluation implementation for DeployedApplicationsHealthEvaluation.
17879func (dahe DeployedApplicationsHealthEvaluation) AsApplicationTypeApplicationsHealthEvaluation() (*ApplicationTypeApplicationsHealthEvaluation, bool) {
17880	return nil, false
17881}
17882
17883// AsDeltaNodesCheckHealthEvaluation is the BasicHealthEvaluation implementation for DeployedApplicationsHealthEvaluation.
17884func (dahe DeployedApplicationsHealthEvaluation) AsDeltaNodesCheckHealthEvaluation() (*DeltaNodesCheckHealthEvaluation, bool) {
17885	return nil, false
17886}
17887
17888// AsDeployedApplicationHealthEvaluation is the BasicHealthEvaluation implementation for DeployedApplicationsHealthEvaluation.
17889func (dahe DeployedApplicationsHealthEvaluation) AsDeployedApplicationHealthEvaluation() (*DeployedApplicationHealthEvaluation, bool) {
17890	return nil, false
17891}
17892
17893// AsDeployedApplicationsHealthEvaluation is the BasicHealthEvaluation implementation for DeployedApplicationsHealthEvaluation.
17894func (dahe DeployedApplicationsHealthEvaluation) AsDeployedApplicationsHealthEvaluation() (*DeployedApplicationsHealthEvaluation, bool) {
17895	return &dahe, true
17896}
17897
17898// AsDeployedServicePackageHealthEvaluation is the BasicHealthEvaluation implementation for DeployedApplicationsHealthEvaluation.
17899func (dahe DeployedApplicationsHealthEvaluation) AsDeployedServicePackageHealthEvaluation() (*DeployedServicePackageHealthEvaluation, bool) {
17900	return nil, false
17901}
17902
17903// AsDeployedServicePackagesHealthEvaluation is the BasicHealthEvaluation implementation for DeployedApplicationsHealthEvaluation.
17904func (dahe DeployedApplicationsHealthEvaluation) AsDeployedServicePackagesHealthEvaluation() (*DeployedServicePackagesHealthEvaluation, bool) {
17905	return nil, false
17906}
17907
17908// AsEventHealthEvaluation is the BasicHealthEvaluation implementation for DeployedApplicationsHealthEvaluation.
17909func (dahe DeployedApplicationsHealthEvaluation) AsEventHealthEvaluation() (*EventHealthEvaluation, bool) {
17910	return nil, false
17911}
17912
17913// AsNodeHealthEvaluation is the BasicHealthEvaluation implementation for DeployedApplicationsHealthEvaluation.
17914func (dahe DeployedApplicationsHealthEvaluation) AsNodeHealthEvaluation() (*NodeHealthEvaluation, bool) {
17915	return nil, false
17916}
17917
17918// AsNodesHealthEvaluation is the BasicHealthEvaluation implementation for DeployedApplicationsHealthEvaluation.
17919func (dahe DeployedApplicationsHealthEvaluation) AsNodesHealthEvaluation() (*NodesHealthEvaluation, bool) {
17920	return nil, false
17921}
17922
17923// AsPartitionHealthEvaluation is the BasicHealthEvaluation implementation for DeployedApplicationsHealthEvaluation.
17924func (dahe DeployedApplicationsHealthEvaluation) AsPartitionHealthEvaluation() (*PartitionHealthEvaluation, bool) {
17925	return nil, false
17926}
17927
17928// AsPartitionsHealthEvaluation is the BasicHealthEvaluation implementation for DeployedApplicationsHealthEvaluation.
17929func (dahe DeployedApplicationsHealthEvaluation) AsPartitionsHealthEvaluation() (*PartitionsHealthEvaluation, bool) {
17930	return nil, false
17931}
17932
17933// AsReplicaHealthEvaluation is the BasicHealthEvaluation implementation for DeployedApplicationsHealthEvaluation.
17934func (dahe DeployedApplicationsHealthEvaluation) AsReplicaHealthEvaluation() (*ReplicaHealthEvaluation, bool) {
17935	return nil, false
17936}
17937
17938// AsReplicasHealthEvaluation is the BasicHealthEvaluation implementation for DeployedApplicationsHealthEvaluation.
17939func (dahe DeployedApplicationsHealthEvaluation) AsReplicasHealthEvaluation() (*ReplicasHealthEvaluation, bool) {
17940	return nil, false
17941}
17942
17943// AsServiceHealthEvaluation is the BasicHealthEvaluation implementation for DeployedApplicationsHealthEvaluation.
17944func (dahe DeployedApplicationsHealthEvaluation) AsServiceHealthEvaluation() (*ServiceHealthEvaluation, bool) {
17945	return nil, false
17946}
17947
17948// AsServicesHealthEvaluation is the BasicHealthEvaluation implementation for DeployedApplicationsHealthEvaluation.
17949func (dahe DeployedApplicationsHealthEvaluation) AsServicesHealthEvaluation() (*ServicesHealthEvaluation, bool) {
17950	return nil, false
17951}
17952
17953// AsSystemApplicationHealthEvaluation is the BasicHealthEvaluation implementation for DeployedApplicationsHealthEvaluation.
17954func (dahe DeployedApplicationsHealthEvaluation) AsSystemApplicationHealthEvaluation() (*SystemApplicationHealthEvaluation, bool) {
17955	return nil, false
17956}
17957
17958// AsUpgradeDomainDeltaNodesCheckHealthEvaluation is the BasicHealthEvaluation implementation for DeployedApplicationsHealthEvaluation.
17959func (dahe DeployedApplicationsHealthEvaluation) AsUpgradeDomainDeltaNodesCheckHealthEvaluation() (*UpgradeDomainDeltaNodesCheckHealthEvaluation, bool) {
17960	return nil, false
17961}
17962
17963// AsUpgradeDomainNodesHealthEvaluation is the BasicHealthEvaluation implementation for DeployedApplicationsHealthEvaluation.
17964func (dahe DeployedApplicationsHealthEvaluation) AsUpgradeDomainNodesHealthEvaluation() (*UpgradeDomainNodesHealthEvaluation, bool) {
17965	return nil, false
17966}
17967
17968// AsHealthEvaluation is the BasicHealthEvaluation implementation for DeployedApplicationsHealthEvaluation.
17969func (dahe DeployedApplicationsHealthEvaluation) AsHealthEvaluation() (*HealthEvaluation, bool) {
17970	return nil, false
17971}
17972
17973// AsBasicHealthEvaluation is the BasicHealthEvaluation implementation for DeployedApplicationsHealthEvaluation.
17974func (dahe DeployedApplicationsHealthEvaluation) AsBasicHealthEvaluation() (BasicHealthEvaluation, bool) {
17975	return &dahe, true
17976}
17977
17978// DeployedCodePackageInfo information about code package deployed on a Service Fabric node.
17979type DeployedCodePackageInfo struct {
17980	// Name - The name of the code package.
17981	Name *string `json:"Name,omitempty"`
17982	// Version - The version of the code package specified in service manifest.
17983	Version *string `json:"Version,omitempty"`
17984	// ServiceManifestName - The name of service manifest that specified this code package.
17985	ServiceManifestName *string `json:"ServiceManifestName,omitempty"`
17986	// ServicePackageActivationID - The ActivationId of a deployed service package. If ServicePackageActivationMode specified at the time of creating the service
17987	// is 'SharedProcess' (or if it is not specified, in which case it defaults to 'SharedProcess'), then value of ServicePackageActivationId
17988	// is always an empty string.
17989	ServicePackageActivationID *string `json:"ServicePackageActivationId,omitempty"`
17990	// 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'
17991	HostType HostType `json:"HostType,omitempty"`
17992	// 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'
17993	HostIsolationMode HostIsolationMode `json:"HostIsolationMode,omitempty"`
17994	// 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', 'DeploymentStatusRanToCompletion', 'DeploymentStatusFailed'
17995	Status DeploymentStatus `json:"Status,omitempty"`
17996	// RunFrequencyInterval - The interval at which code package is run. This is used for periodic code package.
17997	RunFrequencyInterval *string `json:"RunFrequencyInterval,omitempty"`
17998	// SetupEntryPoint - Information about setup or main entry point of a code package deployed on a Service Fabric node.
17999	SetupEntryPoint *CodePackageEntryPoint `json:"SetupEntryPoint,omitempty"`
18000	// MainEntryPoint - Information about setup or main entry point of a code package deployed on a Service Fabric node.
18001	MainEntryPoint *CodePackageEntryPoint `json:"MainEntryPoint,omitempty"`
18002}
18003
18004// DeployedServicePackageHealth information about the health of a service package for a specific
18005// application deployed on a Service Fabric node.
18006type DeployedServicePackageHealth struct {
18007	autorest.Response `json:"-"`
18008	// ApplicationName - The name of the application, including the 'fabric:' URI scheme.
18009	ApplicationName *string `json:"ApplicationName,omitempty"`
18010	// ServiceManifestName - Name of the service manifest.
18011	ServiceManifestName *string `json:"ServiceManifestName,omitempty"`
18012	// NodeName - Name of the node where this service package is deployed.
18013	NodeName *string `json:"NodeName,omitempty"`
18014	// AggregatedHealthState - The HealthState representing the aggregated health state of the entity computed by Health Manager.
18015	// The health evaluation of the entity reflects all events reported on the entity and its children (if any).
18016	// The aggregation is done by applying the desired health policy. Possible values include: 'HealthStateInvalid', 'HealthStateOk', 'HealthStateWarning', 'HealthStateError', 'HealthStateUnknown'
18017	AggregatedHealthState HealthState `json:"AggregatedHealthState,omitempty"`
18018	// HealthEvents - The list of health events reported on the entity.
18019	HealthEvents *[]HealthEvent `json:"HealthEvents,omitempty"`
18020	// UnhealthyEvaluations - The unhealthy evaluations that show why the current aggregated health state was returned by Health Manager.
18021	UnhealthyEvaluations *[]HealthEvaluationWrapper `json:"UnhealthyEvaluations,omitempty"`
18022	// HealthStatistics - Shows the health statistics for all children types of the queried entity.
18023	HealthStatistics *HealthStatistics `json:"HealthStatistics,omitempty"`
18024}
18025
18026// DeployedServicePackageHealthEvaluation represents health evaluation for a deployed service package,
18027// containing information about the data and the algorithm used by health store to evaluate health. The
18028// evaluation is returned only when the aggregated health state is either Error or Warning.
18029type DeployedServicePackageHealthEvaluation struct {
18030	// NodeName - The name of a Service Fabric node.
18031	NodeName *string `json:"NodeName,omitempty"`
18032	// ApplicationName - The name of the application, including the 'fabric:' URI scheme.
18033	ApplicationName *string `json:"ApplicationName,omitempty"`
18034	// ServiceManifestName - The name of the service manifest.
18035	ServiceManifestName *string `json:"ServiceManifestName,omitempty"`
18036	// UnhealthyEvaluations - List of unhealthy evaluations that led to the current aggregated health state. The type of the unhealthy evaluations can be EventHealthEvaluation.
18037	UnhealthyEvaluations *[]HealthEvaluationWrapper `json:"UnhealthyEvaluations,omitempty"`
18038	// 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'
18039	AggregatedHealthState HealthState `json:"AggregatedHealthState,omitempty"`
18040	// Description - Description of the health evaluation, which represents a summary of the evaluation process.
18041	Description *string `json:"Description,omitempty"`
18042	// 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'
18043	Kind Kind `json:"Kind,omitempty"`
18044}
18045
18046// MarshalJSON is the custom marshaler for DeployedServicePackageHealthEvaluation.
18047func (dsphe DeployedServicePackageHealthEvaluation) MarshalJSON() ([]byte, error) {
18048	dsphe.Kind = KindDeployedServicePackage
18049	objectMap := make(map[string]interface{})
18050	if dsphe.NodeName != nil {
18051		objectMap["NodeName"] = dsphe.NodeName
18052	}
18053	if dsphe.ApplicationName != nil {
18054		objectMap["ApplicationName"] = dsphe.ApplicationName
18055	}
18056	if dsphe.ServiceManifestName != nil {
18057		objectMap["ServiceManifestName"] = dsphe.ServiceManifestName
18058	}
18059	if dsphe.UnhealthyEvaluations != nil {
18060		objectMap["UnhealthyEvaluations"] = dsphe.UnhealthyEvaluations
18061	}
18062	if dsphe.AggregatedHealthState != "" {
18063		objectMap["AggregatedHealthState"] = dsphe.AggregatedHealthState
18064	}
18065	if dsphe.Description != nil {
18066		objectMap["Description"] = dsphe.Description
18067	}
18068	if dsphe.Kind != "" {
18069		objectMap["Kind"] = dsphe.Kind
18070	}
18071	return json.Marshal(objectMap)
18072}
18073
18074// AsApplicationHealthEvaluation is the BasicHealthEvaluation implementation for DeployedServicePackageHealthEvaluation.
18075func (dsphe DeployedServicePackageHealthEvaluation) AsApplicationHealthEvaluation() (*ApplicationHealthEvaluation, bool) {
18076	return nil, false
18077}
18078
18079// AsApplicationsHealthEvaluation is the BasicHealthEvaluation implementation for DeployedServicePackageHealthEvaluation.
18080func (dsphe DeployedServicePackageHealthEvaluation) AsApplicationsHealthEvaluation() (*ApplicationsHealthEvaluation, bool) {
18081	return nil, false
18082}
18083
18084// AsApplicationTypeApplicationsHealthEvaluation is the BasicHealthEvaluation implementation for DeployedServicePackageHealthEvaluation.
18085func (dsphe DeployedServicePackageHealthEvaluation) AsApplicationTypeApplicationsHealthEvaluation() (*ApplicationTypeApplicationsHealthEvaluation, bool) {
18086	return nil, false
18087}
18088
18089// AsDeltaNodesCheckHealthEvaluation is the BasicHealthEvaluation implementation for DeployedServicePackageHealthEvaluation.
18090func (dsphe DeployedServicePackageHealthEvaluation) AsDeltaNodesCheckHealthEvaluation() (*DeltaNodesCheckHealthEvaluation, bool) {
18091	return nil, false
18092}
18093
18094// AsDeployedApplicationHealthEvaluation is the BasicHealthEvaluation implementation for DeployedServicePackageHealthEvaluation.
18095func (dsphe DeployedServicePackageHealthEvaluation) AsDeployedApplicationHealthEvaluation() (*DeployedApplicationHealthEvaluation, bool) {
18096	return nil, false
18097}
18098
18099// AsDeployedApplicationsHealthEvaluation is the BasicHealthEvaluation implementation for DeployedServicePackageHealthEvaluation.
18100func (dsphe DeployedServicePackageHealthEvaluation) AsDeployedApplicationsHealthEvaluation() (*DeployedApplicationsHealthEvaluation, bool) {
18101	return nil, false
18102}
18103
18104// AsDeployedServicePackageHealthEvaluation is the BasicHealthEvaluation implementation for DeployedServicePackageHealthEvaluation.
18105func (dsphe DeployedServicePackageHealthEvaluation) AsDeployedServicePackageHealthEvaluation() (*DeployedServicePackageHealthEvaluation, bool) {
18106	return &dsphe, true
18107}
18108
18109// AsDeployedServicePackagesHealthEvaluation is the BasicHealthEvaluation implementation for DeployedServicePackageHealthEvaluation.
18110func (dsphe DeployedServicePackageHealthEvaluation) AsDeployedServicePackagesHealthEvaluation() (*DeployedServicePackagesHealthEvaluation, bool) {
18111	return nil, false
18112}
18113
18114// AsEventHealthEvaluation is the BasicHealthEvaluation implementation for DeployedServicePackageHealthEvaluation.
18115func (dsphe DeployedServicePackageHealthEvaluation) AsEventHealthEvaluation() (*EventHealthEvaluation, bool) {
18116	return nil, false
18117}
18118
18119// AsNodeHealthEvaluation is the BasicHealthEvaluation implementation for DeployedServicePackageHealthEvaluation.
18120func (dsphe DeployedServicePackageHealthEvaluation) AsNodeHealthEvaluation() (*NodeHealthEvaluation, bool) {
18121	return nil, false
18122}
18123
18124// AsNodesHealthEvaluation is the BasicHealthEvaluation implementation for DeployedServicePackageHealthEvaluation.
18125func (dsphe DeployedServicePackageHealthEvaluation) AsNodesHealthEvaluation() (*NodesHealthEvaluation, bool) {
18126	return nil, false
18127}
18128
18129// AsPartitionHealthEvaluation is the BasicHealthEvaluation implementation for DeployedServicePackageHealthEvaluation.
18130func (dsphe DeployedServicePackageHealthEvaluation) AsPartitionHealthEvaluation() (*PartitionHealthEvaluation, bool) {
18131	return nil, false
18132}
18133
18134// AsPartitionsHealthEvaluation is the BasicHealthEvaluation implementation for DeployedServicePackageHealthEvaluation.
18135func (dsphe DeployedServicePackageHealthEvaluation) AsPartitionsHealthEvaluation() (*PartitionsHealthEvaluation, bool) {
18136	return nil, false
18137}
18138
18139// AsReplicaHealthEvaluation is the BasicHealthEvaluation implementation for DeployedServicePackageHealthEvaluation.
18140func (dsphe DeployedServicePackageHealthEvaluation) AsReplicaHealthEvaluation() (*ReplicaHealthEvaluation, bool) {
18141	return nil, false
18142}
18143
18144// AsReplicasHealthEvaluation is the BasicHealthEvaluation implementation for DeployedServicePackageHealthEvaluation.
18145func (dsphe DeployedServicePackageHealthEvaluation) AsReplicasHealthEvaluation() (*ReplicasHealthEvaluation, bool) {
18146	return nil, false
18147}
18148
18149// AsServiceHealthEvaluation is the BasicHealthEvaluation implementation for DeployedServicePackageHealthEvaluation.
18150func (dsphe DeployedServicePackageHealthEvaluation) AsServiceHealthEvaluation() (*ServiceHealthEvaluation, bool) {
18151	return nil, false
18152}
18153
18154// AsServicesHealthEvaluation is the BasicHealthEvaluation implementation for DeployedServicePackageHealthEvaluation.
18155func (dsphe DeployedServicePackageHealthEvaluation) AsServicesHealthEvaluation() (*ServicesHealthEvaluation, bool) {
18156	return nil, false
18157}
18158
18159// AsSystemApplicationHealthEvaluation is the BasicHealthEvaluation implementation for DeployedServicePackageHealthEvaluation.
18160func (dsphe DeployedServicePackageHealthEvaluation) AsSystemApplicationHealthEvaluation() (*SystemApplicationHealthEvaluation, bool) {
18161	return nil, false
18162}
18163
18164// AsUpgradeDomainDeltaNodesCheckHealthEvaluation is the BasicHealthEvaluation implementation for DeployedServicePackageHealthEvaluation.
18165func (dsphe DeployedServicePackageHealthEvaluation) AsUpgradeDomainDeltaNodesCheckHealthEvaluation() (*UpgradeDomainDeltaNodesCheckHealthEvaluation, bool) {
18166	return nil, false
18167}
18168
18169// AsUpgradeDomainNodesHealthEvaluation is the BasicHealthEvaluation implementation for DeployedServicePackageHealthEvaluation.
18170func (dsphe DeployedServicePackageHealthEvaluation) AsUpgradeDomainNodesHealthEvaluation() (*UpgradeDomainNodesHealthEvaluation, bool) {
18171	return nil, false
18172}
18173
18174// AsHealthEvaluation is the BasicHealthEvaluation implementation for DeployedServicePackageHealthEvaluation.
18175func (dsphe DeployedServicePackageHealthEvaluation) AsHealthEvaluation() (*HealthEvaluation, bool) {
18176	return nil, false
18177}
18178
18179// AsBasicHealthEvaluation is the BasicHealthEvaluation implementation for DeployedServicePackageHealthEvaluation.
18180func (dsphe DeployedServicePackageHealthEvaluation) AsBasicHealthEvaluation() (BasicHealthEvaluation, bool) {
18181	return &dsphe, true
18182}
18183
18184// DeployedServicePackageHealthReportExpiredEvent deployed Service Health Report Expired event.
18185type DeployedServicePackageHealthReportExpiredEvent struct {
18186	// ServiceManifest - Service manifest name.
18187	ServiceManifest *string `json:"ServiceManifest,omitempty"`
18188	// ServicePackageInstanceID - Id of Service package instance.
18189	ServicePackageInstanceID *int64 `json:"ServicePackageInstanceId,omitempty"`
18190	// ServicePackageActivationID - Id of Service package activation.
18191	ServicePackageActivationID *string `json:"ServicePackageActivationId,omitempty"`
18192	// NodeName - The name of a Service Fabric node.
18193	NodeName *string `json:"NodeName,omitempty"`
18194	// SourceID - Id of report source.
18195	SourceID *string `json:"SourceId,omitempty"`
18196	// Property - Describes the property.
18197	Property *string `json:"Property,omitempty"`
18198	// HealthState - Describes the property health state.
18199	HealthState *string `json:"HealthState,omitempty"`
18200	// TimeToLiveMs - Time to live in milli-seconds.
18201	TimeToLiveMs *int64 `json:"TimeToLiveMs,omitempty"`
18202	// SequenceNumber - Sequence number of report.
18203	SequenceNumber *int64 `json:"SequenceNumber,omitempty"`
18204	// Description - Description of report.
18205	Description *string `json:"Description,omitempty"`
18206	// RemoveWhenExpired - Indicates the removal when it expires.
18207	RemoveWhenExpired *bool `json:"RemoveWhenExpired,omitempty"`
18208	// SourceUtcTimestamp - Source time.
18209	SourceUtcTimestamp *date.Time `json:"SourceUtcTimestamp,omitempty"`
18210	// 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.
18211	// Starting in version 6.0, hierarchical names are delimited with the "\~" character. For example, if the application name is "fabric:/myapp/app1",
18212	// the application identity would be "myapp\~app1" in 6.0+ and "myapp/app1" in previous versions.
18213	ApplicationID *string `json:"ApplicationId,omitempty"`
18214	// EventInstanceID - The identifier for the FabricEvent instance.
18215	EventInstanceID *uuid.UUID `json:"EventInstanceId,omitempty"`
18216	// Category - The category of event.
18217	Category *string `json:"Category,omitempty"`
18218	// TimeStamp - The time event was logged.
18219	TimeStamp *date.Time `json:"TimeStamp,omitempty"`
18220	// HasCorrelatedEvents - Shows there is existing related events available.
18221	HasCorrelatedEvents *bool `json:"HasCorrelatedEvents,omitempty"`
18222	// 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'
18223	Kind KindBasicFabricEvent `json:"Kind,omitempty"`
18224}
18225
18226// MarshalJSON is the custom marshaler for DeployedServicePackageHealthReportExpiredEvent.
18227func (dsphree DeployedServicePackageHealthReportExpiredEvent) MarshalJSON() ([]byte, error) {
18228	dsphree.Kind = KindDeployedServicePackageHealthReportExpired
18229	objectMap := make(map[string]interface{})
18230	if dsphree.ServiceManifest != nil {
18231		objectMap["ServiceManifest"] = dsphree.ServiceManifest
18232	}
18233	if dsphree.ServicePackageInstanceID != nil {
18234		objectMap["ServicePackageInstanceId"] = dsphree.ServicePackageInstanceID
18235	}
18236	if dsphree.ServicePackageActivationID != nil {
18237		objectMap["ServicePackageActivationId"] = dsphree.ServicePackageActivationID
18238	}
18239	if dsphree.NodeName != nil {
18240		objectMap["NodeName"] = dsphree.NodeName
18241	}
18242	if dsphree.SourceID != nil {
18243		objectMap["SourceId"] = dsphree.SourceID
18244	}
18245	if dsphree.Property != nil {
18246		objectMap["Property"] = dsphree.Property
18247	}
18248	if dsphree.HealthState != nil {
18249		objectMap["HealthState"] = dsphree.HealthState
18250	}
18251	if dsphree.TimeToLiveMs != nil {
18252		objectMap["TimeToLiveMs"] = dsphree.TimeToLiveMs
18253	}
18254	if dsphree.SequenceNumber != nil {
18255		objectMap["SequenceNumber"] = dsphree.SequenceNumber
18256	}
18257	if dsphree.Description != nil {
18258		objectMap["Description"] = dsphree.Description
18259	}
18260	if dsphree.RemoveWhenExpired != nil {
18261		objectMap["RemoveWhenExpired"] = dsphree.RemoveWhenExpired
18262	}
18263	if dsphree.SourceUtcTimestamp != nil {
18264		objectMap["SourceUtcTimestamp"] = dsphree.SourceUtcTimestamp
18265	}
18266	if dsphree.ApplicationID != nil {
18267		objectMap["ApplicationId"] = dsphree.ApplicationID
18268	}
18269	if dsphree.EventInstanceID != nil {
18270		objectMap["EventInstanceId"] = dsphree.EventInstanceID
18271	}
18272	if dsphree.Category != nil {
18273		objectMap["Category"] = dsphree.Category
18274	}
18275	if dsphree.TimeStamp != nil {
18276		objectMap["TimeStamp"] = dsphree.TimeStamp
18277	}
18278	if dsphree.HasCorrelatedEvents != nil {
18279		objectMap["HasCorrelatedEvents"] = dsphree.HasCorrelatedEvents
18280	}
18281	if dsphree.Kind != "" {
18282		objectMap["Kind"] = dsphree.Kind
18283	}
18284	return json.Marshal(objectMap)
18285}
18286
18287// AsApplicationEvent is the BasicFabricEvent implementation for DeployedServicePackageHealthReportExpiredEvent.
18288func (dsphree DeployedServicePackageHealthReportExpiredEvent) AsApplicationEvent() (*ApplicationEvent, bool) {
18289	return nil, false
18290}
18291
18292// AsBasicApplicationEvent is the BasicFabricEvent implementation for DeployedServicePackageHealthReportExpiredEvent.
18293func (dsphree DeployedServicePackageHealthReportExpiredEvent) AsBasicApplicationEvent() (BasicApplicationEvent, bool) {
18294	return &dsphree, true
18295}
18296
18297// AsClusterEvent is the BasicFabricEvent implementation for DeployedServicePackageHealthReportExpiredEvent.
18298func (dsphree DeployedServicePackageHealthReportExpiredEvent) AsClusterEvent() (*ClusterEvent, bool) {
18299	return nil, false
18300}
18301
18302// AsBasicClusterEvent is the BasicFabricEvent implementation for DeployedServicePackageHealthReportExpiredEvent.
18303func (dsphree DeployedServicePackageHealthReportExpiredEvent) AsBasicClusterEvent() (BasicClusterEvent, bool) {
18304	return nil, false
18305}
18306
18307// AsContainerInstanceEvent is the BasicFabricEvent implementation for DeployedServicePackageHealthReportExpiredEvent.
18308func (dsphree DeployedServicePackageHealthReportExpiredEvent) AsContainerInstanceEvent() (*ContainerInstanceEvent, bool) {
18309	return nil, false
18310}
18311
18312// AsNodeEvent is the BasicFabricEvent implementation for DeployedServicePackageHealthReportExpiredEvent.
18313func (dsphree DeployedServicePackageHealthReportExpiredEvent) AsNodeEvent() (*NodeEvent, bool) {
18314	return nil, false
18315}
18316
18317// AsBasicNodeEvent is the BasicFabricEvent implementation for DeployedServicePackageHealthReportExpiredEvent.
18318func (dsphree DeployedServicePackageHealthReportExpiredEvent) AsBasicNodeEvent() (BasicNodeEvent, bool) {
18319	return nil, false
18320}
18321
18322// AsPartitionAnalysisEvent is the BasicFabricEvent implementation for DeployedServicePackageHealthReportExpiredEvent.
18323func (dsphree DeployedServicePackageHealthReportExpiredEvent) AsPartitionAnalysisEvent() (*PartitionAnalysisEvent, bool) {
18324	return nil, false
18325}
18326
18327// AsBasicPartitionAnalysisEvent is the BasicFabricEvent implementation for DeployedServicePackageHealthReportExpiredEvent.
18328func (dsphree DeployedServicePackageHealthReportExpiredEvent) AsBasicPartitionAnalysisEvent() (BasicPartitionAnalysisEvent, bool) {
18329	return nil, false
18330}
18331
18332// AsPartitionEvent is the BasicFabricEvent implementation for DeployedServicePackageHealthReportExpiredEvent.
18333func (dsphree DeployedServicePackageHealthReportExpiredEvent) AsPartitionEvent() (*PartitionEvent, bool) {
18334	return nil, false
18335}
18336
18337// AsBasicPartitionEvent is the BasicFabricEvent implementation for DeployedServicePackageHealthReportExpiredEvent.
18338func (dsphree DeployedServicePackageHealthReportExpiredEvent) AsBasicPartitionEvent() (BasicPartitionEvent, bool) {
18339	return nil, false
18340}
18341
18342// AsReplicaEvent is the BasicFabricEvent implementation for DeployedServicePackageHealthReportExpiredEvent.
18343func (dsphree DeployedServicePackageHealthReportExpiredEvent) AsReplicaEvent() (*ReplicaEvent, bool) {
18344	return nil, false
18345}
18346
18347// AsBasicReplicaEvent is the BasicFabricEvent implementation for DeployedServicePackageHealthReportExpiredEvent.
18348func (dsphree DeployedServicePackageHealthReportExpiredEvent) AsBasicReplicaEvent() (BasicReplicaEvent, bool) {
18349	return nil, false
18350}
18351
18352// AsServiceEvent is the BasicFabricEvent implementation for DeployedServicePackageHealthReportExpiredEvent.
18353func (dsphree DeployedServicePackageHealthReportExpiredEvent) AsServiceEvent() (*ServiceEvent, bool) {
18354	return nil, false
18355}
18356
18357// AsBasicServiceEvent is the BasicFabricEvent implementation for DeployedServicePackageHealthReportExpiredEvent.
18358func (dsphree DeployedServicePackageHealthReportExpiredEvent) AsBasicServiceEvent() (BasicServiceEvent, bool) {
18359	return nil, false
18360}
18361
18362// AsApplicationCreatedEvent is the BasicFabricEvent implementation for DeployedServicePackageHealthReportExpiredEvent.
18363func (dsphree DeployedServicePackageHealthReportExpiredEvent) AsApplicationCreatedEvent() (*ApplicationCreatedEvent, bool) {
18364	return nil, false
18365}
18366
18367// AsApplicationDeletedEvent is the BasicFabricEvent implementation for DeployedServicePackageHealthReportExpiredEvent.
18368func (dsphree DeployedServicePackageHealthReportExpiredEvent) AsApplicationDeletedEvent() (*ApplicationDeletedEvent, bool) {
18369	return nil, false
18370}
18371
18372// AsApplicationNewHealthReportEvent is the BasicFabricEvent implementation for DeployedServicePackageHealthReportExpiredEvent.
18373func (dsphree DeployedServicePackageHealthReportExpiredEvent) AsApplicationNewHealthReportEvent() (*ApplicationNewHealthReportEvent, bool) {
18374	return nil, false
18375}
18376
18377// AsApplicationHealthReportExpiredEvent is the BasicFabricEvent implementation for DeployedServicePackageHealthReportExpiredEvent.
18378func (dsphree DeployedServicePackageHealthReportExpiredEvent) AsApplicationHealthReportExpiredEvent() (*ApplicationHealthReportExpiredEvent, bool) {
18379	return nil, false
18380}
18381
18382// AsApplicationUpgradeCompletedEvent is the BasicFabricEvent implementation for DeployedServicePackageHealthReportExpiredEvent.
18383func (dsphree DeployedServicePackageHealthReportExpiredEvent) AsApplicationUpgradeCompletedEvent() (*ApplicationUpgradeCompletedEvent, bool) {
18384	return nil, false
18385}
18386
18387// AsApplicationUpgradeDomainCompletedEvent is the BasicFabricEvent implementation for DeployedServicePackageHealthReportExpiredEvent.
18388func (dsphree DeployedServicePackageHealthReportExpiredEvent) AsApplicationUpgradeDomainCompletedEvent() (*ApplicationUpgradeDomainCompletedEvent, bool) {
18389	return nil, false
18390}
18391
18392// AsApplicationUpgradeRollbackCompletedEvent is the BasicFabricEvent implementation for DeployedServicePackageHealthReportExpiredEvent.
18393func (dsphree DeployedServicePackageHealthReportExpiredEvent) AsApplicationUpgradeRollbackCompletedEvent() (*ApplicationUpgradeRollbackCompletedEvent, bool) {
18394	return nil, false
18395}
18396
18397// AsApplicationUpgradeRollbackStartedEvent is the BasicFabricEvent implementation for DeployedServicePackageHealthReportExpiredEvent.
18398func (dsphree DeployedServicePackageHealthReportExpiredEvent) AsApplicationUpgradeRollbackStartedEvent() (*ApplicationUpgradeRollbackStartedEvent, bool) {
18399	return nil, false
18400}
18401
18402// AsApplicationUpgradeStartedEvent is the BasicFabricEvent implementation for DeployedServicePackageHealthReportExpiredEvent.
18403func (dsphree DeployedServicePackageHealthReportExpiredEvent) AsApplicationUpgradeStartedEvent() (*ApplicationUpgradeStartedEvent, bool) {
18404	return nil, false
18405}
18406
18407// AsDeployedApplicationNewHealthReportEvent is the BasicFabricEvent implementation for DeployedServicePackageHealthReportExpiredEvent.
18408func (dsphree DeployedServicePackageHealthReportExpiredEvent) AsDeployedApplicationNewHealthReportEvent() (*DeployedApplicationNewHealthReportEvent, bool) {
18409	return nil, false
18410}
18411
18412// AsDeployedApplicationHealthReportExpiredEvent is the BasicFabricEvent implementation for DeployedServicePackageHealthReportExpiredEvent.
18413func (dsphree DeployedServicePackageHealthReportExpiredEvent) AsDeployedApplicationHealthReportExpiredEvent() (*DeployedApplicationHealthReportExpiredEvent, bool) {
18414	return nil, false
18415}
18416
18417// AsApplicationProcessExitedEvent is the BasicFabricEvent implementation for DeployedServicePackageHealthReportExpiredEvent.
18418func (dsphree DeployedServicePackageHealthReportExpiredEvent) AsApplicationProcessExitedEvent() (*ApplicationProcessExitedEvent, bool) {
18419	return nil, false
18420}
18421
18422// AsApplicationContainerInstanceExitedEvent is the BasicFabricEvent implementation for DeployedServicePackageHealthReportExpiredEvent.
18423func (dsphree DeployedServicePackageHealthReportExpiredEvent) AsApplicationContainerInstanceExitedEvent() (*ApplicationContainerInstanceExitedEvent, bool) {
18424	return nil, false
18425}
18426
18427// AsNodeAbortedEvent is the BasicFabricEvent implementation for DeployedServicePackageHealthReportExpiredEvent.
18428func (dsphree DeployedServicePackageHealthReportExpiredEvent) AsNodeAbortedEvent() (*NodeAbortedEvent, bool) {
18429	return nil, false
18430}
18431
18432// AsNodeAddedToClusterEvent is the BasicFabricEvent implementation for DeployedServicePackageHealthReportExpiredEvent.
18433func (dsphree DeployedServicePackageHealthReportExpiredEvent) AsNodeAddedToClusterEvent() (*NodeAddedToClusterEvent, bool) {
18434	return nil, false
18435}
18436
18437// AsNodeClosedEvent is the BasicFabricEvent implementation for DeployedServicePackageHealthReportExpiredEvent.
18438func (dsphree DeployedServicePackageHealthReportExpiredEvent) AsNodeClosedEvent() (*NodeClosedEvent, bool) {
18439	return nil, false
18440}
18441
18442// AsNodeDeactivateCompletedEvent is the BasicFabricEvent implementation for DeployedServicePackageHealthReportExpiredEvent.
18443func (dsphree DeployedServicePackageHealthReportExpiredEvent) AsNodeDeactivateCompletedEvent() (*NodeDeactivateCompletedEvent, bool) {
18444	return nil, false
18445}
18446
18447// AsNodeDeactivateStartedEvent is the BasicFabricEvent implementation for DeployedServicePackageHealthReportExpiredEvent.
18448func (dsphree DeployedServicePackageHealthReportExpiredEvent) AsNodeDeactivateStartedEvent() (*NodeDeactivateStartedEvent, bool) {
18449	return nil, false
18450}
18451
18452// AsNodeDownEvent is the BasicFabricEvent implementation for DeployedServicePackageHealthReportExpiredEvent.
18453func (dsphree DeployedServicePackageHealthReportExpiredEvent) AsNodeDownEvent() (*NodeDownEvent, bool) {
18454	return nil, false
18455}
18456
18457// AsNodeNewHealthReportEvent is the BasicFabricEvent implementation for DeployedServicePackageHealthReportExpiredEvent.
18458func (dsphree DeployedServicePackageHealthReportExpiredEvent) AsNodeNewHealthReportEvent() (*NodeNewHealthReportEvent, bool) {
18459	return nil, false
18460}
18461
18462// AsNodeHealthReportExpiredEvent is the BasicFabricEvent implementation for DeployedServicePackageHealthReportExpiredEvent.
18463func (dsphree DeployedServicePackageHealthReportExpiredEvent) AsNodeHealthReportExpiredEvent() (*NodeHealthReportExpiredEvent, bool) {
18464	return nil, false
18465}
18466
18467// AsNodeOpenSucceededEvent is the BasicFabricEvent implementation for DeployedServicePackageHealthReportExpiredEvent.
18468func (dsphree DeployedServicePackageHealthReportExpiredEvent) AsNodeOpenSucceededEvent() (*NodeOpenSucceededEvent, bool) {
18469	return nil, false
18470}
18471
18472// AsNodeOpenFailedEvent is the BasicFabricEvent implementation for DeployedServicePackageHealthReportExpiredEvent.
18473func (dsphree DeployedServicePackageHealthReportExpiredEvent) AsNodeOpenFailedEvent() (*NodeOpenFailedEvent, bool) {
18474	return nil, false
18475}
18476
18477// AsNodeRemovedFromClusterEvent is the BasicFabricEvent implementation for DeployedServicePackageHealthReportExpiredEvent.
18478func (dsphree DeployedServicePackageHealthReportExpiredEvent) AsNodeRemovedFromClusterEvent() (*NodeRemovedFromClusterEvent, bool) {
18479	return nil, false
18480}
18481
18482// AsNodeUpEvent is the BasicFabricEvent implementation for DeployedServicePackageHealthReportExpiredEvent.
18483func (dsphree DeployedServicePackageHealthReportExpiredEvent) AsNodeUpEvent() (*NodeUpEvent, bool) {
18484	return nil, false
18485}
18486
18487// AsPartitionNewHealthReportEvent is the BasicFabricEvent implementation for DeployedServicePackageHealthReportExpiredEvent.
18488func (dsphree DeployedServicePackageHealthReportExpiredEvent) AsPartitionNewHealthReportEvent() (*PartitionNewHealthReportEvent, bool) {
18489	return nil, false
18490}
18491
18492// AsPartitionHealthReportExpiredEvent is the BasicFabricEvent implementation for DeployedServicePackageHealthReportExpiredEvent.
18493func (dsphree DeployedServicePackageHealthReportExpiredEvent) AsPartitionHealthReportExpiredEvent() (*PartitionHealthReportExpiredEvent, bool) {
18494	return nil, false
18495}
18496
18497// AsPartitionReconfiguredEvent is the BasicFabricEvent implementation for DeployedServicePackageHealthReportExpiredEvent.
18498func (dsphree DeployedServicePackageHealthReportExpiredEvent) AsPartitionReconfiguredEvent() (*PartitionReconfiguredEvent, bool) {
18499	return nil, false
18500}
18501
18502// AsPartitionPrimaryMoveAnalysisEvent is the BasicFabricEvent implementation for DeployedServicePackageHealthReportExpiredEvent.
18503func (dsphree DeployedServicePackageHealthReportExpiredEvent) AsPartitionPrimaryMoveAnalysisEvent() (*PartitionPrimaryMoveAnalysisEvent, bool) {
18504	return nil, false
18505}
18506
18507// AsServiceCreatedEvent is the BasicFabricEvent implementation for DeployedServicePackageHealthReportExpiredEvent.
18508func (dsphree DeployedServicePackageHealthReportExpiredEvent) AsServiceCreatedEvent() (*ServiceCreatedEvent, bool) {
18509	return nil, false
18510}
18511
18512// AsServiceDeletedEvent is the BasicFabricEvent implementation for DeployedServicePackageHealthReportExpiredEvent.
18513func (dsphree DeployedServicePackageHealthReportExpiredEvent) AsServiceDeletedEvent() (*ServiceDeletedEvent, bool) {
18514	return nil, false
18515}
18516
18517// AsServiceNewHealthReportEvent is the BasicFabricEvent implementation for DeployedServicePackageHealthReportExpiredEvent.
18518func (dsphree DeployedServicePackageHealthReportExpiredEvent) AsServiceNewHealthReportEvent() (*ServiceNewHealthReportEvent, bool) {
18519	return nil, false
18520}
18521
18522// AsServiceHealthReportExpiredEvent is the BasicFabricEvent implementation for DeployedServicePackageHealthReportExpiredEvent.
18523func (dsphree DeployedServicePackageHealthReportExpiredEvent) AsServiceHealthReportExpiredEvent() (*ServiceHealthReportExpiredEvent, bool) {
18524	return nil, false
18525}
18526
18527// AsDeployedServicePackageNewHealthReportEvent is the BasicFabricEvent implementation for DeployedServicePackageHealthReportExpiredEvent.
18528func (dsphree DeployedServicePackageHealthReportExpiredEvent) AsDeployedServicePackageNewHealthReportEvent() (*DeployedServicePackageNewHealthReportEvent, bool) {
18529	return nil, false
18530}
18531
18532// AsDeployedServicePackageHealthReportExpiredEvent is the BasicFabricEvent implementation for DeployedServicePackageHealthReportExpiredEvent.
18533func (dsphree DeployedServicePackageHealthReportExpiredEvent) AsDeployedServicePackageHealthReportExpiredEvent() (*DeployedServicePackageHealthReportExpiredEvent, bool) {
18534	return &dsphree, true
18535}
18536
18537// AsStatefulReplicaNewHealthReportEvent is the BasicFabricEvent implementation for DeployedServicePackageHealthReportExpiredEvent.
18538func (dsphree DeployedServicePackageHealthReportExpiredEvent) AsStatefulReplicaNewHealthReportEvent() (*StatefulReplicaNewHealthReportEvent, bool) {
18539	return nil, false
18540}
18541
18542// AsStatefulReplicaHealthReportExpiredEvent is the BasicFabricEvent implementation for DeployedServicePackageHealthReportExpiredEvent.
18543func (dsphree DeployedServicePackageHealthReportExpiredEvent) AsStatefulReplicaHealthReportExpiredEvent() (*StatefulReplicaHealthReportExpiredEvent, bool) {
18544	return nil, false
18545}
18546
18547// AsStatelessReplicaNewHealthReportEvent is the BasicFabricEvent implementation for DeployedServicePackageHealthReportExpiredEvent.
18548func (dsphree DeployedServicePackageHealthReportExpiredEvent) AsStatelessReplicaNewHealthReportEvent() (*StatelessReplicaNewHealthReportEvent, bool) {
18549	return nil, false
18550}
18551
18552// AsStatelessReplicaHealthReportExpiredEvent is the BasicFabricEvent implementation for DeployedServicePackageHealthReportExpiredEvent.
18553func (dsphree DeployedServicePackageHealthReportExpiredEvent) AsStatelessReplicaHealthReportExpiredEvent() (*StatelessReplicaHealthReportExpiredEvent, bool) {
18554	return nil, false
18555}
18556
18557// AsClusterNewHealthReportEvent is the BasicFabricEvent implementation for DeployedServicePackageHealthReportExpiredEvent.
18558func (dsphree DeployedServicePackageHealthReportExpiredEvent) AsClusterNewHealthReportEvent() (*ClusterNewHealthReportEvent, bool) {
18559	return nil, false
18560}
18561
18562// AsClusterHealthReportExpiredEvent is the BasicFabricEvent implementation for DeployedServicePackageHealthReportExpiredEvent.
18563func (dsphree DeployedServicePackageHealthReportExpiredEvent) AsClusterHealthReportExpiredEvent() (*ClusterHealthReportExpiredEvent, bool) {
18564	return nil, false
18565}
18566
18567// AsClusterUpgradeCompletedEvent is the BasicFabricEvent implementation for DeployedServicePackageHealthReportExpiredEvent.
18568func (dsphree DeployedServicePackageHealthReportExpiredEvent) AsClusterUpgradeCompletedEvent() (*ClusterUpgradeCompletedEvent, bool) {
18569	return nil, false
18570}
18571
18572// AsClusterUpgradeDomainCompletedEvent is the BasicFabricEvent implementation for DeployedServicePackageHealthReportExpiredEvent.
18573func (dsphree DeployedServicePackageHealthReportExpiredEvent) AsClusterUpgradeDomainCompletedEvent() (*ClusterUpgradeDomainCompletedEvent, bool) {
18574	return nil, false
18575}
18576
18577// AsClusterUpgradeRollbackCompletedEvent is the BasicFabricEvent implementation for DeployedServicePackageHealthReportExpiredEvent.
18578func (dsphree DeployedServicePackageHealthReportExpiredEvent) AsClusterUpgradeRollbackCompletedEvent() (*ClusterUpgradeRollbackCompletedEvent, bool) {
18579	return nil, false
18580}
18581
18582// AsClusterUpgradeRollbackStartedEvent is the BasicFabricEvent implementation for DeployedServicePackageHealthReportExpiredEvent.
18583func (dsphree DeployedServicePackageHealthReportExpiredEvent) AsClusterUpgradeRollbackStartedEvent() (*ClusterUpgradeRollbackStartedEvent, bool) {
18584	return nil, false
18585}
18586
18587// AsClusterUpgradeStartedEvent is the BasicFabricEvent implementation for DeployedServicePackageHealthReportExpiredEvent.
18588func (dsphree DeployedServicePackageHealthReportExpiredEvent) AsClusterUpgradeStartedEvent() (*ClusterUpgradeStartedEvent, bool) {
18589	return nil, false
18590}
18591
18592// AsChaosStoppedEvent is the BasicFabricEvent implementation for DeployedServicePackageHealthReportExpiredEvent.
18593func (dsphree DeployedServicePackageHealthReportExpiredEvent) AsChaosStoppedEvent() (*ChaosStoppedEvent, bool) {
18594	return nil, false
18595}
18596
18597// AsChaosStartedEvent is the BasicFabricEvent implementation for DeployedServicePackageHealthReportExpiredEvent.
18598func (dsphree DeployedServicePackageHealthReportExpiredEvent) AsChaosStartedEvent() (*ChaosStartedEvent, bool) {
18599	return nil, false
18600}
18601
18602// AsChaosCodePackageRestartScheduledEvent is the BasicFabricEvent implementation for DeployedServicePackageHealthReportExpiredEvent.
18603func (dsphree DeployedServicePackageHealthReportExpiredEvent) AsChaosCodePackageRestartScheduledEvent() (*ChaosCodePackageRestartScheduledEvent, bool) {
18604	return nil, false
18605}
18606
18607// AsChaosReplicaRemovalScheduledEvent is the BasicFabricEvent implementation for DeployedServicePackageHealthReportExpiredEvent.
18608func (dsphree DeployedServicePackageHealthReportExpiredEvent) AsChaosReplicaRemovalScheduledEvent() (*ChaosReplicaRemovalScheduledEvent, bool) {
18609	return nil, false
18610}
18611
18612// AsChaosPartitionSecondaryMoveScheduledEvent is the BasicFabricEvent implementation for DeployedServicePackageHealthReportExpiredEvent.
18613func (dsphree DeployedServicePackageHealthReportExpiredEvent) AsChaosPartitionSecondaryMoveScheduledEvent() (*ChaosPartitionSecondaryMoveScheduledEvent, bool) {
18614	return nil, false
18615}
18616
18617// AsChaosPartitionPrimaryMoveScheduledEvent is the BasicFabricEvent implementation for DeployedServicePackageHealthReportExpiredEvent.
18618func (dsphree DeployedServicePackageHealthReportExpiredEvent) AsChaosPartitionPrimaryMoveScheduledEvent() (*ChaosPartitionPrimaryMoveScheduledEvent, bool) {
18619	return nil, false
18620}
18621
18622// AsChaosReplicaRestartScheduledEvent is the BasicFabricEvent implementation for DeployedServicePackageHealthReportExpiredEvent.
18623func (dsphree DeployedServicePackageHealthReportExpiredEvent) AsChaosReplicaRestartScheduledEvent() (*ChaosReplicaRestartScheduledEvent, bool) {
18624	return nil, false
18625}
18626
18627// AsChaosNodeRestartScheduledEvent is the BasicFabricEvent implementation for DeployedServicePackageHealthReportExpiredEvent.
18628func (dsphree DeployedServicePackageHealthReportExpiredEvent) AsChaosNodeRestartScheduledEvent() (*ChaosNodeRestartScheduledEvent, bool) {
18629	return nil, false
18630}
18631
18632// AsFabricEvent is the BasicFabricEvent implementation for DeployedServicePackageHealthReportExpiredEvent.
18633func (dsphree DeployedServicePackageHealthReportExpiredEvent) AsFabricEvent() (*FabricEvent, bool) {
18634	return nil, false
18635}
18636
18637// AsBasicFabricEvent is the BasicFabricEvent implementation for DeployedServicePackageHealthReportExpiredEvent.
18638func (dsphree DeployedServicePackageHealthReportExpiredEvent) AsBasicFabricEvent() (BasicFabricEvent, bool) {
18639	return &dsphree, true
18640}
18641
18642// DeployedServicePackageHealthState represents the health state of a deployed service package, containing
18643// the entity identifier and the aggregated health state.
18644type DeployedServicePackageHealthState struct {
18645	// NodeName - Name of the node on which the service package is deployed.
18646	NodeName *string `json:"NodeName,omitempty"`
18647	// ApplicationName - The name of the application, including the 'fabric:' URI scheme.
18648	ApplicationName *string `json:"ApplicationName,omitempty"`
18649	// ServiceManifestName - Name of the manifest describing the service package.
18650	ServiceManifestName *string `json:"ServiceManifestName,omitempty"`
18651	// ServicePackageActivationID - The ActivationId of a deployed service package. If ServicePackageActivationMode specified at the time of creating the service
18652	// is 'SharedProcess' (or if it is not specified, in which case it defaults to 'SharedProcess'), then value of ServicePackageActivationId
18653	// is always an empty string.
18654	ServicePackageActivationID *string `json:"ServicePackageActivationId,omitempty"`
18655	// 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'
18656	AggregatedHealthState HealthState `json:"AggregatedHealthState,omitempty"`
18657}
18658
18659// DeployedServicePackageHealthStateChunk represents the health state chunk of a deployed service package,
18660// which contains the service manifest name and the service package aggregated health state.
18661type DeployedServicePackageHealthStateChunk struct {
18662	// ServiceManifestName - The name of the service manifest.
18663	ServiceManifestName *string `json:"ServiceManifestName,omitempty"`
18664	// ServicePackageActivationID - The ActivationId of a deployed service package. If ServicePackageActivationMode specified at the time of creating the service
18665	// is 'SharedProcess' (or if it is not specified, in which case it defaults to 'SharedProcess'), then value of ServicePackageActivationId
18666	// is always an empty string.
18667	ServicePackageActivationID *string `json:"ServicePackageActivationId,omitempty"`
18668	// 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'
18669	HealthState HealthState `json:"HealthState,omitempty"`
18670}
18671
18672// DeployedServicePackageHealthStateChunkList the list of deployed service package health state chunks that
18673// respect the input filters in the chunk query. Returned by get cluster health state chunks query.
18674type DeployedServicePackageHealthStateChunkList struct {
18675	// Items - The list of deployed service package health state chunks that respect the input filters in the chunk query.
18676	Items *[]DeployedServicePackageHealthStateChunk `json:"Items,omitempty"`
18677}
18678
18679// DeployedServicePackageHealthStateFilter defines matching criteria to determine whether a deployed
18680// service package should be included as a child of a deployed application in the cluster health chunk.
18681// The deployed service packages are only returned if the parent entities match a filter specified in the
18682// cluster health chunk query description. The parent deployed application and its parent application must
18683// be included in the cluster health chunk.
18684// One filter can match zero, one or multiple deployed service packages, depending on its properties.
18685type DeployedServicePackageHealthStateFilter struct {
18686	// ServiceManifestNameFilter - The name of the service manifest which identifies the deployed service packages that matches the filter.
18687	// If specified, the filter is applied only to the specified deployed service packages, if any.
18688	// If no deployed service packages with specified manifest name exist, nothing is returned in the cluster health chunk based on this filter.
18689	// If any deployed service package exists, they are included in the cluster health chunk if it respects the other filter properties.
18690	// 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.
18691	ServiceManifestNameFilter *string `json:"ServiceManifestNameFilter,omitempty"`
18692	// ServicePackageActivationIDFilter - The activation ID of a deployed service package that matches the filter.
18693	// If not specified, the filter applies to all deployed service packages that match the other parameters.
18694	// If specified, the filter matches only the deployed service package with the specified activation ID.
18695	ServicePackageActivationIDFilter *string `json:"ServicePackageActivationIdFilter,omitempty"`
18696	// 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.
18697	// 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.
18698	// 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.
18699	// The state values are flag-based enumeration, so the value could be a combination of these values obtained using bitwise 'OR' operator.
18700	// For example, if the provided value is 6, it matches deployed service packages with HealthState value of OK (2) and Warning (4).
18701	// - Default - Default value. Matches any HealthState. The value is zero.
18702	// - 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.
18703	// - Ok - Filter that matches input with HealthState value Ok. The value is 2.
18704	// - Warning - Filter that matches input with HealthState value Warning. The value is 4.
18705	// - Error - Filter that matches input with HealthState value Error. The value is 8.
18706	// - All - Filter that matches input with any HealthState value. The value is 65535.
18707	HealthStateFilter *int32 `json:"HealthStateFilter,omitempty"`
18708}
18709
18710// DeployedServicePackageInfo information about service package deployed on a Service Fabric node.
18711type DeployedServicePackageInfo struct {
18712	// Name - The name of the service package as specified in the service manifest.
18713	Name *string `json:"Name,omitempty"`
18714	// Version - The version of the service package specified in service manifest.
18715	Version *string `json:"Version,omitempty"`
18716	// 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', 'DeploymentStatusRanToCompletion', 'DeploymentStatusFailed'
18717	Status DeploymentStatus `json:"Status,omitempty"`
18718	// ServicePackageActivationID - The ActivationId of a deployed service package. If ServicePackageActivationMode specified at the time of creating the service
18719	// is 'SharedProcess' (or if it is not specified, in which case it defaults to 'SharedProcess'), then value of ServicePackageActivationId
18720	// is always an empty string.
18721	ServicePackageActivationID *string `json:"ServicePackageActivationId,omitempty"`
18722}
18723
18724// DeployedServicePackageNewHealthReportEvent deployed Service Health Report Created event.
18725type DeployedServicePackageNewHealthReportEvent struct {
18726	// ServiceManifestName - Service manifest name.
18727	ServiceManifestName *string `json:"ServiceManifestName,omitempty"`
18728	// ServicePackageInstanceID - Id of Service package instance.
18729	ServicePackageInstanceID *int64 `json:"ServicePackageInstanceId,omitempty"`
18730	// ServicePackageActivationID - Id of Service package activation.
18731	ServicePackageActivationID *string `json:"ServicePackageActivationId,omitempty"`
18732	// NodeName - The name of a Service Fabric node.
18733	NodeName *string `json:"NodeName,omitempty"`
18734	// SourceID - Id of report source.
18735	SourceID *string `json:"SourceId,omitempty"`
18736	// Property - Describes the property.
18737	Property *string `json:"Property,omitempty"`
18738	// HealthState - Describes the property health state.
18739	HealthState *string `json:"HealthState,omitempty"`
18740	// TimeToLiveMs - Time to live in milli-seconds.
18741	TimeToLiveMs *int64 `json:"TimeToLiveMs,omitempty"`
18742	// SequenceNumber - Sequence number of report.
18743	SequenceNumber *int64 `json:"SequenceNumber,omitempty"`
18744	// Description - Description of report.
18745	Description *string `json:"Description,omitempty"`
18746	// RemoveWhenExpired - Indicates the removal when it expires.
18747	RemoveWhenExpired *bool `json:"RemoveWhenExpired,omitempty"`
18748	// SourceUtcTimestamp - Source time.
18749	SourceUtcTimestamp *date.Time `json:"SourceUtcTimestamp,omitempty"`
18750	// 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.
18751	// Starting in version 6.0, hierarchical names are delimited with the "\~" character. For example, if the application name is "fabric:/myapp/app1",
18752	// the application identity would be "myapp\~app1" in 6.0+ and "myapp/app1" in previous versions.
18753	ApplicationID *string `json:"ApplicationId,omitempty"`
18754	// EventInstanceID - The identifier for the FabricEvent instance.
18755	EventInstanceID *uuid.UUID `json:"EventInstanceId,omitempty"`
18756	// Category - The category of event.
18757	Category *string `json:"Category,omitempty"`
18758	// TimeStamp - The time event was logged.
18759	TimeStamp *date.Time `json:"TimeStamp,omitempty"`
18760	// HasCorrelatedEvents - Shows there is existing related events available.
18761	HasCorrelatedEvents *bool `json:"HasCorrelatedEvents,omitempty"`
18762	// 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'
18763	Kind KindBasicFabricEvent `json:"Kind,omitempty"`
18764}
18765
18766// MarshalJSON is the custom marshaler for DeployedServicePackageNewHealthReportEvent.
18767func (dspnhre DeployedServicePackageNewHealthReportEvent) MarshalJSON() ([]byte, error) {
18768	dspnhre.Kind = KindDeployedServicePackageNewHealthReport
18769	objectMap := make(map[string]interface{})
18770	if dspnhre.ServiceManifestName != nil {
18771		objectMap["ServiceManifestName"] = dspnhre.ServiceManifestName
18772	}
18773	if dspnhre.ServicePackageInstanceID != nil {
18774		objectMap["ServicePackageInstanceId"] = dspnhre.ServicePackageInstanceID
18775	}
18776	if dspnhre.ServicePackageActivationID != nil {
18777		objectMap["ServicePackageActivationId"] = dspnhre.ServicePackageActivationID
18778	}
18779	if dspnhre.NodeName != nil {
18780		objectMap["NodeName"] = dspnhre.NodeName
18781	}
18782	if dspnhre.SourceID != nil {
18783		objectMap["SourceId"] = dspnhre.SourceID
18784	}
18785	if dspnhre.Property != nil {
18786		objectMap["Property"] = dspnhre.Property
18787	}
18788	if dspnhre.HealthState != nil {
18789		objectMap["HealthState"] = dspnhre.HealthState
18790	}
18791	if dspnhre.TimeToLiveMs != nil {
18792		objectMap["TimeToLiveMs"] = dspnhre.TimeToLiveMs
18793	}
18794	if dspnhre.SequenceNumber != nil {
18795		objectMap["SequenceNumber"] = dspnhre.SequenceNumber
18796	}
18797	if dspnhre.Description != nil {
18798		objectMap["Description"] = dspnhre.Description
18799	}
18800	if dspnhre.RemoveWhenExpired != nil {
18801		objectMap["RemoveWhenExpired"] = dspnhre.RemoveWhenExpired
18802	}
18803	if dspnhre.SourceUtcTimestamp != nil {
18804		objectMap["SourceUtcTimestamp"] = dspnhre.SourceUtcTimestamp
18805	}
18806	if dspnhre.ApplicationID != nil {
18807		objectMap["ApplicationId"] = dspnhre.ApplicationID
18808	}
18809	if dspnhre.EventInstanceID != nil {
18810		objectMap["EventInstanceId"] = dspnhre.EventInstanceID
18811	}
18812	if dspnhre.Category != nil {
18813		objectMap["Category"] = dspnhre.Category
18814	}
18815	if dspnhre.TimeStamp != nil {
18816		objectMap["TimeStamp"] = dspnhre.TimeStamp
18817	}
18818	if dspnhre.HasCorrelatedEvents != nil {
18819		objectMap["HasCorrelatedEvents"] = dspnhre.HasCorrelatedEvents
18820	}
18821	if dspnhre.Kind != "" {
18822		objectMap["Kind"] = dspnhre.Kind
18823	}
18824	return json.Marshal(objectMap)
18825}
18826
18827// AsApplicationEvent is the BasicFabricEvent implementation for DeployedServicePackageNewHealthReportEvent.
18828func (dspnhre DeployedServicePackageNewHealthReportEvent) AsApplicationEvent() (*ApplicationEvent, bool) {
18829	return nil, false
18830}
18831
18832// AsBasicApplicationEvent is the BasicFabricEvent implementation for DeployedServicePackageNewHealthReportEvent.
18833func (dspnhre DeployedServicePackageNewHealthReportEvent) AsBasicApplicationEvent() (BasicApplicationEvent, bool) {
18834	return &dspnhre, true
18835}
18836
18837// AsClusterEvent is the BasicFabricEvent implementation for DeployedServicePackageNewHealthReportEvent.
18838func (dspnhre DeployedServicePackageNewHealthReportEvent) AsClusterEvent() (*ClusterEvent, bool) {
18839	return nil, false
18840}
18841
18842// AsBasicClusterEvent is the BasicFabricEvent implementation for DeployedServicePackageNewHealthReportEvent.
18843func (dspnhre DeployedServicePackageNewHealthReportEvent) AsBasicClusterEvent() (BasicClusterEvent, bool) {
18844	return nil, false
18845}
18846
18847// AsContainerInstanceEvent is the BasicFabricEvent implementation for DeployedServicePackageNewHealthReportEvent.
18848func (dspnhre DeployedServicePackageNewHealthReportEvent) AsContainerInstanceEvent() (*ContainerInstanceEvent, bool) {
18849	return nil, false
18850}
18851
18852// AsNodeEvent is the BasicFabricEvent implementation for DeployedServicePackageNewHealthReportEvent.
18853func (dspnhre DeployedServicePackageNewHealthReportEvent) AsNodeEvent() (*NodeEvent, bool) {
18854	return nil, false
18855}
18856
18857// AsBasicNodeEvent is the BasicFabricEvent implementation for DeployedServicePackageNewHealthReportEvent.
18858func (dspnhre DeployedServicePackageNewHealthReportEvent) AsBasicNodeEvent() (BasicNodeEvent, bool) {
18859	return nil, false
18860}
18861
18862// AsPartitionAnalysisEvent is the BasicFabricEvent implementation for DeployedServicePackageNewHealthReportEvent.
18863func (dspnhre DeployedServicePackageNewHealthReportEvent) AsPartitionAnalysisEvent() (*PartitionAnalysisEvent, bool) {
18864	return nil, false
18865}
18866
18867// AsBasicPartitionAnalysisEvent is the BasicFabricEvent implementation for DeployedServicePackageNewHealthReportEvent.
18868func (dspnhre DeployedServicePackageNewHealthReportEvent) AsBasicPartitionAnalysisEvent() (BasicPartitionAnalysisEvent, bool) {
18869	return nil, false
18870}
18871
18872// AsPartitionEvent is the BasicFabricEvent implementation for DeployedServicePackageNewHealthReportEvent.
18873func (dspnhre DeployedServicePackageNewHealthReportEvent) AsPartitionEvent() (*PartitionEvent, bool) {
18874	return nil, false
18875}
18876
18877// AsBasicPartitionEvent is the BasicFabricEvent implementation for DeployedServicePackageNewHealthReportEvent.
18878func (dspnhre DeployedServicePackageNewHealthReportEvent) AsBasicPartitionEvent() (BasicPartitionEvent, bool) {
18879	return nil, false
18880}
18881
18882// AsReplicaEvent is the BasicFabricEvent implementation for DeployedServicePackageNewHealthReportEvent.
18883func (dspnhre DeployedServicePackageNewHealthReportEvent) AsReplicaEvent() (*ReplicaEvent, bool) {
18884	return nil, false
18885}
18886
18887// AsBasicReplicaEvent is the BasicFabricEvent implementation for DeployedServicePackageNewHealthReportEvent.
18888func (dspnhre DeployedServicePackageNewHealthReportEvent) AsBasicReplicaEvent() (BasicReplicaEvent, bool) {
18889	return nil, false
18890}
18891
18892// AsServiceEvent is the BasicFabricEvent implementation for DeployedServicePackageNewHealthReportEvent.
18893func (dspnhre DeployedServicePackageNewHealthReportEvent) AsServiceEvent() (*ServiceEvent, bool) {
18894	return nil, false
18895}
18896
18897// AsBasicServiceEvent is the BasicFabricEvent implementation for DeployedServicePackageNewHealthReportEvent.
18898func (dspnhre DeployedServicePackageNewHealthReportEvent) AsBasicServiceEvent() (BasicServiceEvent, bool) {
18899	return nil, false
18900}
18901
18902// AsApplicationCreatedEvent is the BasicFabricEvent implementation for DeployedServicePackageNewHealthReportEvent.
18903func (dspnhre DeployedServicePackageNewHealthReportEvent) AsApplicationCreatedEvent() (*ApplicationCreatedEvent, bool) {
18904	return nil, false
18905}
18906
18907// AsApplicationDeletedEvent is the BasicFabricEvent implementation for DeployedServicePackageNewHealthReportEvent.
18908func (dspnhre DeployedServicePackageNewHealthReportEvent) AsApplicationDeletedEvent() (*ApplicationDeletedEvent, bool) {
18909	return nil, false
18910}
18911
18912// AsApplicationNewHealthReportEvent is the BasicFabricEvent implementation for DeployedServicePackageNewHealthReportEvent.
18913func (dspnhre DeployedServicePackageNewHealthReportEvent) AsApplicationNewHealthReportEvent() (*ApplicationNewHealthReportEvent, bool) {
18914	return nil, false
18915}
18916
18917// AsApplicationHealthReportExpiredEvent is the BasicFabricEvent implementation for DeployedServicePackageNewHealthReportEvent.
18918func (dspnhre DeployedServicePackageNewHealthReportEvent) AsApplicationHealthReportExpiredEvent() (*ApplicationHealthReportExpiredEvent, bool) {
18919	return nil, false
18920}
18921
18922// AsApplicationUpgradeCompletedEvent is the BasicFabricEvent implementation for DeployedServicePackageNewHealthReportEvent.
18923func (dspnhre DeployedServicePackageNewHealthReportEvent) AsApplicationUpgradeCompletedEvent() (*ApplicationUpgradeCompletedEvent, bool) {
18924	return nil, false
18925}
18926
18927// AsApplicationUpgradeDomainCompletedEvent is the BasicFabricEvent implementation for DeployedServicePackageNewHealthReportEvent.
18928func (dspnhre DeployedServicePackageNewHealthReportEvent) AsApplicationUpgradeDomainCompletedEvent() (*ApplicationUpgradeDomainCompletedEvent, bool) {
18929	return nil, false
18930}
18931
18932// AsApplicationUpgradeRollbackCompletedEvent is the BasicFabricEvent implementation for DeployedServicePackageNewHealthReportEvent.
18933func (dspnhre DeployedServicePackageNewHealthReportEvent) AsApplicationUpgradeRollbackCompletedEvent() (*ApplicationUpgradeRollbackCompletedEvent, bool) {
18934	return nil, false
18935}
18936
18937// AsApplicationUpgradeRollbackStartedEvent is the BasicFabricEvent implementation for DeployedServicePackageNewHealthReportEvent.
18938func (dspnhre DeployedServicePackageNewHealthReportEvent) AsApplicationUpgradeRollbackStartedEvent() (*ApplicationUpgradeRollbackStartedEvent, bool) {
18939	return nil, false
18940}
18941
18942// AsApplicationUpgradeStartedEvent is the BasicFabricEvent implementation for DeployedServicePackageNewHealthReportEvent.
18943func (dspnhre DeployedServicePackageNewHealthReportEvent) AsApplicationUpgradeStartedEvent() (*ApplicationUpgradeStartedEvent, bool) {
18944	return nil, false
18945}
18946
18947// AsDeployedApplicationNewHealthReportEvent is the BasicFabricEvent implementation for DeployedServicePackageNewHealthReportEvent.
18948func (dspnhre DeployedServicePackageNewHealthReportEvent) AsDeployedApplicationNewHealthReportEvent() (*DeployedApplicationNewHealthReportEvent, bool) {
18949	return nil, false
18950}
18951
18952// AsDeployedApplicationHealthReportExpiredEvent is the BasicFabricEvent implementation for DeployedServicePackageNewHealthReportEvent.
18953func (dspnhre DeployedServicePackageNewHealthReportEvent) AsDeployedApplicationHealthReportExpiredEvent() (*DeployedApplicationHealthReportExpiredEvent, bool) {
18954	return nil, false
18955}
18956
18957// AsApplicationProcessExitedEvent is the BasicFabricEvent implementation for DeployedServicePackageNewHealthReportEvent.
18958func (dspnhre DeployedServicePackageNewHealthReportEvent) AsApplicationProcessExitedEvent() (*ApplicationProcessExitedEvent, bool) {
18959	return nil, false
18960}
18961
18962// AsApplicationContainerInstanceExitedEvent is the BasicFabricEvent implementation for DeployedServicePackageNewHealthReportEvent.
18963func (dspnhre DeployedServicePackageNewHealthReportEvent) AsApplicationContainerInstanceExitedEvent() (*ApplicationContainerInstanceExitedEvent, bool) {
18964	return nil, false
18965}
18966
18967// AsNodeAbortedEvent is the BasicFabricEvent implementation for DeployedServicePackageNewHealthReportEvent.
18968func (dspnhre DeployedServicePackageNewHealthReportEvent) AsNodeAbortedEvent() (*NodeAbortedEvent, bool) {
18969	return nil, false
18970}
18971
18972// AsNodeAddedToClusterEvent is the BasicFabricEvent implementation for DeployedServicePackageNewHealthReportEvent.
18973func (dspnhre DeployedServicePackageNewHealthReportEvent) AsNodeAddedToClusterEvent() (*NodeAddedToClusterEvent, bool) {
18974	return nil, false
18975}
18976
18977// AsNodeClosedEvent is the BasicFabricEvent implementation for DeployedServicePackageNewHealthReportEvent.
18978func (dspnhre DeployedServicePackageNewHealthReportEvent) AsNodeClosedEvent() (*NodeClosedEvent, bool) {
18979	return nil, false
18980}
18981
18982// AsNodeDeactivateCompletedEvent is the BasicFabricEvent implementation for DeployedServicePackageNewHealthReportEvent.
18983func (dspnhre DeployedServicePackageNewHealthReportEvent) AsNodeDeactivateCompletedEvent() (*NodeDeactivateCompletedEvent, bool) {
18984	return nil, false
18985}
18986
18987// AsNodeDeactivateStartedEvent is the BasicFabricEvent implementation for DeployedServicePackageNewHealthReportEvent.
18988func (dspnhre DeployedServicePackageNewHealthReportEvent) AsNodeDeactivateStartedEvent() (*NodeDeactivateStartedEvent, bool) {
18989	return nil, false
18990}
18991
18992// AsNodeDownEvent is the BasicFabricEvent implementation for DeployedServicePackageNewHealthReportEvent.
18993func (dspnhre DeployedServicePackageNewHealthReportEvent) AsNodeDownEvent() (*NodeDownEvent, bool) {
18994	return nil, false
18995}
18996
18997// AsNodeNewHealthReportEvent is the BasicFabricEvent implementation for DeployedServicePackageNewHealthReportEvent.
18998func (dspnhre DeployedServicePackageNewHealthReportEvent) AsNodeNewHealthReportEvent() (*NodeNewHealthReportEvent, bool) {
18999	return nil, false
19000}
19001
19002// AsNodeHealthReportExpiredEvent is the BasicFabricEvent implementation for DeployedServicePackageNewHealthReportEvent.
19003func (dspnhre DeployedServicePackageNewHealthReportEvent) AsNodeHealthReportExpiredEvent() (*NodeHealthReportExpiredEvent, bool) {
19004	return nil, false
19005}
19006
19007// AsNodeOpenSucceededEvent is the BasicFabricEvent implementation for DeployedServicePackageNewHealthReportEvent.
19008func (dspnhre DeployedServicePackageNewHealthReportEvent) AsNodeOpenSucceededEvent() (*NodeOpenSucceededEvent, bool) {
19009	return nil, false
19010}
19011
19012// AsNodeOpenFailedEvent is the BasicFabricEvent implementation for DeployedServicePackageNewHealthReportEvent.
19013func (dspnhre DeployedServicePackageNewHealthReportEvent) AsNodeOpenFailedEvent() (*NodeOpenFailedEvent, bool) {
19014	return nil, false
19015}
19016
19017// AsNodeRemovedFromClusterEvent is the BasicFabricEvent implementation for DeployedServicePackageNewHealthReportEvent.
19018func (dspnhre DeployedServicePackageNewHealthReportEvent) AsNodeRemovedFromClusterEvent() (*NodeRemovedFromClusterEvent, bool) {
19019	return nil, false
19020}
19021
19022// AsNodeUpEvent is the BasicFabricEvent implementation for DeployedServicePackageNewHealthReportEvent.
19023func (dspnhre DeployedServicePackageNewHealthReportEvent) AsNodeUpEvent() (*NodeUpEvent, bool) {
19024	return nil, false
19025}
19026
19027// AsPartitionNewHealthReportEvent is the BasicFabricEvent implementation for DeployedServicePackageNewHealthReportEvent.
19028func (dspnhre DeployedServicePackageNewHealthReportEvent) AsPartitionNewHealthReportEvent() (*PartitionNewHealthReportEvent, bool) {
19029	return nil, false
19030}
19031
19032// AsPartitionHealthReportExpiredEvent is the BasicFabricEvent implementation for DeployedServicePackageNewHealthReportEvent.
19033func (dspnhre DeployedServicePackageNewHealthReportEvent) AsPartitionHealthReportExpiredEvent() (*PartitionHealthReportExpiredEvent, bool) {
19034	return nil, false
19035}
19036
19037// AsPartitionReconfiguredEvent is the BasicFabricEvent implementation for DeployedServicePackageNewHealthReportEvent.
19038func (dspnhre DeployedServicePackageNewHealthReportEvent) AsPartitionReconfiguredEvent() (*PartitionReconfiguredEvent, bool) {
19039	return nil, false
19040}
19041
19042// AsPartitionPrimaryMoveAnalysisEvent is the BasicFabricEvent implementation for DeployedServicePackageNewHealthReportEvent.
19043func (dspnhre DeployedServicePackageNewHealthReportEvent) AsPartitionPrimaryMoveAnalysisEvent() (*PartitionPrimaryMoveAnalysisEvent, bool) {
19044	return nil, false
19045}
19046
19047// AsServiceCreatedEvent is the BasicFabricEvent implementation for DeployedServicePackageNewHealthReportEvent.
19048func (dspnhre DeployedServicePackageNewHealthReportEvent) AsServiceCreatedEvent() (*ServiceCreatedEvent, bool) {
19049	return nil, false
19050}
19051
19052// AsServiceDeletedEvent is the BasicFabricEvent implementation for DeployedServicePackageNewHealthReportEvent.
19053func (dspnhre DeployedServicePackageNewHealthReportEvent) AsServiceDeletedEvent() (*ServiceDeletedEvent, bool) {
19054	return nil, false
19055}
19056
19057// AsServiceNewHealthReportEvent is the BasicFabricEvent implementation for DeployedServicePackageNewHealthReportEvent.
19058func (dspnhre DeployedServicePackageNewHealthReportEvent) AsServiceNewHealthReportEvent() (*ServiceNewHealthReportEvent, bool) {
19059	return nil, false
19060}
19061
19062// AsServiceHealthReportExpiredEvent is the BasicFabricEvent implementation for DeployedServicePackageNewHealthReportEvent.
19063func (dspnhre DeployedServicePackageNewHealthReportEvent) AsServiceHealthReportExpiredEvent() (*ServiceHealthReportExpiredEvent, bool) {
19064	return nil, false
19065}
19066
19067// AsDeployedServicePackageNewHealthReportEvent is the BasicFabricEvent implementation for DeployedServicePackageNewHealthReportEvent.
19068func (dspnhre DeployedServicePackageNewHealthReportEvent) AsDeployedServicePackageNewHealthReportEvent() (*DeployedServicePackageNewHealthReportEvent, bool) {
19069	return &dspnhre, true
19070}
19071
19072// AsDeployedServicePackageHealthReportExpiredEvent is the BasicFabricEvent implementation for DeployedServicePackageNewHealthReportEvent.
19073func (dspnhre DeployedServicePackageNewHealthReportEvent) AsDeployedServicePackageHealthReportExpiredEvent() (*DeployedServicePackageHealthReportExpiredEvent, bool) {
19074	return nil, false
19075}
19076
19077// AsStatefulReplicaNewHealthReportEvent is the BasicFabricEvent implementation for DeployedServicePackageNewHealthReportEvent.
19078func (dspnhre DeployedServicePackageNewHealthReportEvent) AsStatefulReplicaNewHealthReportEvent() (*StatefulReplicaNewHealthReportEvent, bool) {
19079	return nil, false
19080}
19081
19082// AsStatefulReplicaHealthReportExpiredEvent is the BasicFabricEvent implementation for DeployedServicePackageNewHealthReportEvent.
19083func (dspnhre DeployedServicePackageNewHealthReportEvent) AsStatefulReplicaHealthReportExpiredEvent() (*StatefulReplicaHealthReportExpiredEvent, bool) {
19084	return nil, false
19085}
19086
19087// AsStatelessReplicaNewHealthReportEvent is the BasicFabricEvent implementation for DeployedServicePackageNewHealthReportEvent.
19088func (dspnhre DeployedServicePackageNewHealthReportEvent) AsStatelessReplicaNewHealthReportEvent() (*StatelessReplicaNewHealthReportEvent, bool) {
19089	return nil, false
19090}
19091
19092// AsStatelessReplicaHealthReportExpiredEvent is the BasicFabricEvent implementation for DeployedServicePackageNewHealthReportEvent.
19093func (dspnhre DeployedServicePackageNewHealthReportEvent) AsStatelessReplicaHealthReportExpiredEvent() (*StatelessReplicaHealthReportExpiredEvent, bool) {
19094	return nil, false
19095}
19096
19097// AsClusterNewHealthReportEvent is the BasicFabricEvent implementation for DeployedServicePackageNewHealthReportEvent.
19098func (dspnhre DeployedServicePackageNewHealthReportEvent) AsClusterNewHealthReportEvent() (*ClusterNewHealthReportEvent, bool) {
19099	return nil, false
19100}
19101
19102// AsClusterHealthReportExpiredEvent is the BasicFabricEvent implementation for DeployedServicePackageNewHealthReportEvent.
19103func (dspnhre DeployedServicePackageNewHealthReportEvent) AsClusterHealthReportExpiredEvent() (*ClusterHealthReportExpiredEvent, bool) {
19104	return nil, false
19105}
19106
19107// AsClusterUpgradeCompletedEvent is the BasicFabricEvent implementation for DeployedServicePackageNewHealthReportEvent.
19108func (dspnhre DeployedServicePackageNewHealthReportEvent) AsClusterUpgradeCompletedEvent() (*ClusterUpgradeCompletedEvent, bool) {
19109	return nil, false
19110}
19111
19112// AsClusterUpgradeDomainCompletedEvent is the BasicFabricEvent implementation for DeployedServicePackageNewHealthReportEvent.
19113func (dspnhre DeployedServicePackageNewHealthReportEvent) AsClusterUpgradeDomainCompletedEvent() (*ClusterUpgradeDomainCompletedEvent, bool) {
19114	return nil, false
19115}
19116
19117// AsClusterUpgradeRollbackCompletedEvent is the BasicFabricEvent implementation for DeployedServicePackageNewHealthReportEvent.
19118func (dspnhre DeployedServicePackageNewHealthReportEvent) AsClusterUpgradeRollbackCompletedEvent() (*ClusterUpgradeRollbackCompletedEvent, bool) {
19119	return nil, false
19120}
19121
19122// AsClusterUpgradeRollbackStartedEvent is the BasicFabricEvent implementation for DeployedServicePackageNewHealthReportEvent.
19123func (dspnhre DeployedServicePackageNewHealthReportEvent) AsClusterUpgradeRollbackStartedEvent() (*ClusterUpgradeRollbackStartedEvent, bool) {
19124	return nil, false
19125}
19126
19127// AsClusterUpgradeStartedEvent is the BasicFabricEvent implementation for DeployedServicePackageNewHealthReportEvent.
19128func (dspnhre DeployedServicePackageNewHealthReportEvent) AsClusterUpgradeStartedEvent() (*ClusterUpgradeStartedEvent, bool) {
19129	return nil, false
19130}
19131
19132// AsChaosStoppedEvent is the BasicFabricEvent implementation for DeployedServicePackageNewHealthReportEvent.
19133func (dspnhre DeployedServicePackageNewHealthReportEvent) AsChaosStoppedEvent() (*ChaosStoppedEvent, bool) {
19134	return nil, false
19135}
19136
19137// AsChaosStartedEvent is the BasicFabricEvent implementation for DeployedServicePackageNewHealthReportEvent.
19138func (dspnhre DeployedServicePackageNewHealthReportEvent) AsChaosStartedEvent() (*ChaosStartedEvent, bool) {
19139	return nil, false
19140}
19141
19142// AsChaosCodePackageRestartScheduledEvent is the BasicFabricEvent implementation for DeployedServicePackageNewHealthReportEvent.
19143func (dspnhre DeployedServicePackageNewHealthReportEvent) AsChaosCodePackageRestartScheduledEvent() (*ChaosCodePackageRestartScheduledEvent, bool) {
19144	return nil, false
19145}
19146
19147// AsChaosReplicaRemovalScheduledEvent is the BasicFabricEvent implementation for DeployedServicePackageNewHealthReportEvent.
19148func (dspnhre DeployedServicePackageNewHealthReportEvent) AsChaosReplicaRemovalScheduledEvent() (*ChaosReplicaRemovalScheduledEvent, bool) {
19149	return nil, false
19150}
19151
19152// AsChaosPartitionSecondaryMoveScheduledEvent is the BasicFabricEvent implementation for DeployedServicePackageNewHealthReportEvent.
19153func (dspnhre DeployedServicePackageNewHealthReportEvent) AsChaosPartitionSecondaryMoveScheduledEvent() (*ChaosPartitionSecondaryMoveScheduledEvent, bool) {
19154	return nil, false
19155}
19156
19157// AsChaosPartitionPrimaryMoveScheduledEvent is the BasicFabricEvent implementation for DeployedServicePackageNewHealthReportEvent.
19158func (dspnhre DeployedServicePackageNewHealthReportEvent) AsChaosPartitionPrimaryMoveScheduledEvent() (*ChaosPartitionPrimaryMoveScheduledEvent, bool) {
19159	return nil, false
19160}
19161
19162// AsChaosReplicaRestartScheduledEvent is the BasicFabricEvent implementation for DeployedServicePackageNewHealthReportEvent.
19163func (dspnhre DeployedServicePackageNewHealthReportEvent) AsChaosReplicaRestartScheduledEvent() (*ChaosReplicaRestartScheduledEvent, bool) {
19164	return nil, false
19165}
19166
19167// AsChaosNodeRestartScheduledEvent is the BasicFabricEvent implementation for DeployedServicePackageNewHealthReportEvent.
19168func (dspnhre DeployedServicePackageNewHealthReportEvent) AsChaosNodeRestartScheduledEvent() (*ChaosNodeRestartScheduledEvent, bool) {
19169	return nil, false
19170}
19171
19172// AsFabricEvent is the BasicFabricEvent implementation for DeployedServicePackageNewHealthReportEvent.
19173func (dspnhre DeployedServicePackageNewHealthReportEvent) AsFabricEvent() (*FabricEvent, bool) {
19174	return nil, false
19175}
19176
19177// AsBasicFabricEvent is the BasicFabricEvent implementation for DeployedServicePackageNewHealthReportEvent.
19178func (dspnhre DeployedServicePackageNewHealthReportEvent) AsBasicFabricEvent() (BasicFabricEvent, bool) {
19179	return &dspnhre, true
19180}
19181
19182// DeployedServicePackagesHealthEvaluation represents health evaluation for deployed service packages,
19183// containing health evaluations for each unhealthy deployed service package that impacted current
19184// aggregated health state. Can be returned when evaluating deployed application health and the aggregated
19185// health state is either Error or Warning.
19186type DeployedServicePackagesHealthEvaluation struct {
19187	// TotalCount - Total number of deployed service packages of the deployed application in the health store.
19188	TotalCount *int64 `json:"TotalCount,omitempty"`
19189	// UnhealthyEvaluations - List of unhealthy evaluations that led to the aggregated health state. Includes all the unhealthy DeployedServicePackageHealthEvaluation that impacted the aggregated health.
19190	UnhealthyEvaluations *[]HealthEvaluationWrapper `json:"UnhealthyEvaluations,omitempty"`
19191	// 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'
19192	AggregatedHealthState HealthState `json:"AggregatedHealthState,omitempty"`
19193	// Description - Description of the health evaluation, which represents a summary of the evaluation process.
19194	Description *string `json:"Description,omitempty"`
19195	// 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'
19196	Kind Kind `json:"Kind,omitempty"`
19197}
19198
19199// MarshalJSON is the custom marshaler for DeployedServicePackagesHealthEvaluation.
19200func (dsphe DeployedServicePackagesHealthEvaluation) MarshalJSON() ([]byte, error) {
19201	dsphe.Kind = KindDeployedServicePackages
19202	objectMap := make(map[string]interface{})
19203	if dsphe.TotalCount != nil {
19204		objectMap["TotalCount"] = dsphe.TotalCount
19205	}
19206	if dsphe.UnhealthyEvaluations != nil {
19207		objectMap["UnhealthyEvaluations"] = dsphe.UnhealthyEvaluations
19208	}
19209	if dsphe.AggregatedHealthState != "" {
19210		objectMap["AggregatedHealthState"] = dsphe.AggregatedHealthState
19211	}
19212	if dsphe.Description != nil {
19213		objectMap["Description"] = dsphe.Description
19214	}
19215	if dsphe.Kind != "" {
19216		objectMap["Kind"] = dsphe.Kind
19217	}
19218	return json.Marshal(objectMap)
19219}
19220
19221// AsApplicationHealthEvaluation is the BasicHealthEvaluation implementation for DeployedServicePackagesHealthEvaluation.
19222func (dsphe DeployedServicePackagesHealthEvaluation) AsApplicationHealthEvaluation() (*ApplicationHealthEvaluation, bool) {
19223	return nil, false
19224}
19225
19226// AsApplicationsHealthEvaluation is the BasicHealthEvaluation implementation for DeployedServicePackagesHealthEvaluation.
19227func (dsphe DeployedServicePackagesHealthEvaluation) AsApplicationsHealthEvaluation() (*ApplicationsHealthEvaluation, bool) {
19228	return nil, false
19229}
19230
19231// AsApplicationTypeApplicationsHealthEvaluation is the BasicHealthEvaluation implementation for DeployedServicePackagesHealthEvaluation.
19232func (dsphe DeployedServicePackagesHealthEvaluation) AsApplicationTypeApplicationsHealthEvaluation() (*ApplicationTypeApplicationsHealthEvaluation, bool) {
19233	return nil, false
19234}
19235
19236// AsDeltaNodesCheckHealthEvaluation is the BasicHealthEvaluation implementation for DeployedServicePackagesHealthEvaluation.
19237func (dsphe DeployedServicePackagesHealthEvaluation) AsDeltaNodesCheckHealthEvaluation() (*DeltaNodesCheckHealthEvaluation, bool) {
19238	return nil, false
19239}
19240
19241// AsDeployedApplicationHealthEvaluation is the BasicHealthEvaluation implementation for DeployedServicePackagesHealthEvaluation.
19242func (dsphe DeployedServicePackagesHealthEvaluation) AsDeployedApplicationHealthEvaluation() (*DeployedApplicationHealthEvaluation, bool) {
19243	return nil, false
19244}
19245
19246// AsDeployedApplicationsHealthEvaluation is the BasicHealthEvaluation implementation for DeployedServicePackagesHealthEvaluation.
19247func (dsphe DeployedServicePackagesHealthEvaluation) AsDeployedApplicationsHealthEvaluation() (*DeployedApplicationsHealthEvaluation, bool) {
19248	return nil, false
19249}
19250
19251// AsDeployedServicePackageHealthEvaluation is the BasicHealthEvaluation implementation for DeployedServicePackagesHealthEvaluation.
19252func (dsphe DeployedServicePackagesHealthEvaluation) AsDeployedServicePackageHealthEvaluation() (*DeployedServicePackageHealthEvaluation, bool) {
19253	return nil, false
19254}
19255
19256// AsDeployedServicePackagesHealthEvaluation is the BasicHealthEvaluation implementation for DeployedServicePackagesHealthEvaluation.
19257func (dsphe DeployedServicePackagesHealthEvaluation) AsDeployedServicePackagesHealthEvaluation() (*DeployedServicePackagesHealthEvaluation, bool) {
19258	return &dsphe, true
19259}
19260
19261// AsEventHealthEvaluation is the BasicHealthEvaluation implementation for DeployedServicePackagesHealthEvaluation.
19262func (dsphe DeployedServicePackagesHealthEvaluation) AsEventHealthEvaluation() (*EventHealthEvaluation, bool) {
19263	return nil, false
19264}
19265
19266// AsNodeHealthEvaluation is the BasicHealthEvaluation implementation for DeployedServicePackagesHealthEvaluation.
19267func (dsphe DeployedServicePackagesHealthEvaluation) AsNodeHealthEvaluation() (*NodeHealthEvaluation, bool) {
19268	return nil, false
19269}
19270
19271// AsNodesHealthEvaluation is the BasicHealthEvaluation implementation for DeployedServicePackagesHealthEvaluation.
19272func (dsphe DeployedServicePackagesHealthEvaluation) AsNodesHealthEvaluation() (*NodesHealthEvaluation, bool) {
19273	return nil, false
19274}
19275
19276// AsPartitionHealthEvaluation is the BasicHealthEvaluation implementation for DeployedServicePackagesHealthEvaluation.
19277func (dsphe DeployedServicePackagesHealthEvaluation) AsPartitionHealthEvaluation() (*PartitionHealthEvaluation, bool) {
19278	return nil, false
19279}
19280
19281// AsPartitionsHealthEvaluation is the BasicHealthEvaluation implementation for DeployedServicePackagesHealthEvaluation.
19282func (dsphe DeployedServicePackagesHealthEvaluation) AsPartitionsHealthEvaluation() (*PartitionsHealthEvaluation, bool) {
19283	return nil, false
19284}
19285
19286// AsReplicaHealthEvaluation is the BasicHealthEvaluation implementation for DeployedServicePackagesHealthEvaluation.
19287func (dsphe DeployedServicePackagesHealthEvaluation) AsReplicaHealthEvaluation() (*ReplicaHealthEvaluation, bool) {
19288	return nil, false
19289}
19290
19291// AsReplicasHealthEvaluation is the BasicHealthEvaluation implementation for DeployedServicePackagesHealthEvaluation.
19292func (dsphe DeployedServicePackagesHealthEvaluation) AsReplicasHealthEvaluation() (*ReplicasHealthEvaluation, bool) {
19293	return nil, false
19294}
19295
19296// AsServiceHealthEvaluation is the BasicHealthEvaluation implementation for DeployedServicePackagesHealthEvaluation.
19297func (dsphe DeployedServicePackagesHealthEvaluation) AsServiceHealthEvaluation() (*ServiceHealthEvaluation, bool) {
19298	return nil, false
19299}
19300
19301// AsServicesHealthEvaluation is the BasicHealthEvaluation implementation for DeployedServicePackagesHealthEvaluation.
19302func (dsphe DeployedServicePackagesHealthEvaluation) AsServicesHealthEvaluation() (*ServicesHealthEvaluation, bool) {
19303	return nil, false
19304}
19305
19306// AsSystemApplicationHealthEvaluation is the BasicHealthEvaluation implementation for DeployedServicePackagesHealthEvaluation.
19307func (dsphe DeployedServicePackagesHealthEvaluation) AsSystemApplicationHealthEvaluation() (*SystemApplicationHealthEvaluation, bool) {
19308	return nil, false
19309}
19310
19311// AsUpgradeDomainDeltaNodesCheckHealthEvaluation is the BasicHealthEvaluation implementation for DeployedServicePackagesHealthEvaluation.
19312func (dsphe DeployedServicePackagesHealthEvaluation) AsUpgradeDomainDeltaNodesCheckHealthEvaluation() (*UpgradeDomainDeltaNodesCheckHealthEvaluation, bool) {
19313	return nil, false
19314}
19315
19316// AsUpgradeDomainNodesHealthEvaluation is the BasicHealthEvaluation implementation for DeployedServicePackagesHealthEvaluation.
19317func (dsphe DeployedServicePackagesHealthEvaluation) AsUpgradeDomainNodesHealthEvaluation() (*UpgradeDomainNodesHealthEvaluation, bool) {
19318	return nil, false
19319}
19320
19321// AsHealthEvaluation is the BasicHealthEvaluation implementation for DeployedServicePackagesHealthEvaluation.
19322func (dsphe DeployedServicePackagesHealthEvaluation) AsHealthEvaluation() (*HealthEvaluation, bool) {
19323	return nil, false
19324}
19325
19326// AsBasicHealthEvaluation is the BasicHealthEvaluation implementation for DeployedServicePackagesHealthEvaluation.
19327func (dsphe DeployedServicePackagesHealthEvaluation) AsBasicHealthEvaluation() (BasicHealthEvaluation, bool) {
19328	return &dsphe, true
19329}
19330
19331// BasicDeployedServiceReplicaDetailInfo information about a Service Fabric service replica deployed on a node.
19332type BasicDeployedServiceReplicaDetailInfo interface {
19333	AsDeployedStatefulServiceReplicaDetailInfo() (*DeployedStatefulServiceReplicaDetailInfo, bool)
19334	AsDeployedStatelessServiceInstanceDetailInfo() (*DeployedStatelessServiceInstanceDetailInfo, bool)
19335	AsDeployedServiceReplicaDetailInfo() (*DeployedServiceReplicaDetailInfo, bool)
19336}
19337
19338// DeployedServiceReplicaDetailInfo information about a Service Fabric service replica deployed on a node.
19339type DeployedServiceReplicaDetailInfo struct {
19340	autorest.Response `json:"-"`
19341	// ServiceName - Full hierarchical name of the service in URI format starting with `fabric:`.
19342	ServiceName *string `json:"ServiceName,omitempty"`
19343	// 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.
19344	PartitionID *uuid.UUID `json:"PartitionId,omitempty"`
19345	// 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'
19346	CurrentServiceOperation ServiceOperationName `json:"CurrentServiceOperation,omitempty"`
19347	// CurrentServiceOperationStartTimeUtc - The start time of the current service operation in UTC format.
19348	CurrentServiceOperationStartTimeUtc *date.Time `json:"CurrentServiceOperationStartTimeUtc,omitempty"`
19349	// ReportedLoad - List of load reported by replica.
19350	ReportedLoad *[]LoadMetricReportInfo `json:"ReportedLoad,omitempty"`
19351	// ServiceKind - Possible values include: 'ServiceKindDeployedServiceReplicaDetailInfo', 'ServiceKindStateful1', 'ServiceKindStateless1'
19352	ServiceKind ServiceKindBasicDeployedServiceReplicaDetailInfo `json:"ServiceKind,omitempty"`
19353}
19354
19355func unmarshalBasicDeployedServiceReplicaDetailInfo(body []byte) (BasicDeployedServiceReplicaDetailInfo, error) {
19356	var m map[string]interface{}
19357	err := json.Unmarshal(body, &m)
19358	if err != nil {
19359		return nil, err
19360	}
19361
19362	switch m["ServiceKind"] {
19363	case string(ServiceKindStateful1):
19364		var dssrdi DeployedStatefulServiceReplicaDetailInfo
19365		err := json.Unmarshal(body, &dssrdi)
19366		return dssrdi, err
19367	case string(ServiceKindStateless1):
19368		var dssidi DeployedStatelessServiceInstanceDetailInfo
19369		err := json.Unmarshal(body, &dssidi)
19370		return dssidi, err
19371	default:
19372		var dsrdi DeployedServiceReplicaDetailInfo
19373		err := json.Unmarshal(body, &dsrdi)
19374		return dsrdi, err
19375	}
19376}
19377func unmarshalBasicDeployedServiceReplicaDetailInfoArray(body []byte) ([]BasicDeployedServiceReplicaDetailInfo, error) {
19378	var rawMessages []*json.RawMessage
19379	err := json.Unmarshal(body, &rawMessages)
19380	if err != nil {
19381		return nil, err
19382	}
19383
19384	dsrdiArray := make([]BasicDeployedServiceReplicaDetailInfo, len(rawMessages))
19385
19386	for index, rawMessage := range rawMessages {
19387		dsrdi, err := unmarshalBasicDeployedServiceReplicaDetailInfo(*rawMessage)
19388		if err != nil {
19389			return nil, err
19390		}
19391		dsrdiArray[index] = dsrdi
19392	}
19393	return dsrdiArray, nil
19394}
19395
19396// MarshalJSON is the custom marshaler for DeployedServiceReplicaDetailInfo.
19397func (dsrdi DeployedServiceReplicaDetailInfo) MarshalJSON() ([]byte, error) {
19398	dsrdi.ServiceKind = ServiceKindDeployedServiceReplicaDetailInfo
19399	objectMap := make(map[string]interface{})
19400	if dsrdi.ServiceName != nil {
19401		objectMap["ServiceName"] = dsrdi.ServiceName
19402	}
19403	if dsrdi.PartitionID != nil {
19404		objectMap["PartitionId"] = dsrdi.PartitionID
19405	}
19406	if dsrdi.CurrentServiceOperation != "" {
19407		objectMap["CurrentServiceOperation"] = dsrdi.CurrentServiceOperation
19408	}
19409	if dsrdi.CurrentServiceOperationStartTimeUtc != nil {
19410		objectMap["CurrentServiceOperationStartTimeUtc"] = dsrdi.CurrentServiceOperationStartTimeUtc
19411	}
19412	if dsrdi.ReportedLoad != nil {
19413		objectMap["ReportedLoad"] = dsrdi.ReportedLoad
19414	}
19415	if dsrdi.ServiceKind != "" {
19416		objectMap["ServiceKind"] = dsrdi.ServiceKind
19417	}
19418	return json.Marshal(objectMap)
19419}
19420
19421// AsDeployedStatefulServiceReplicaDetailInfo is the BasicDeployedServiceReplicaDetailInfo implementation for DeployedServiceReplicaDetailInfo.
19422func (dsrdi DeployedServiceReplicaDetailInfo) AsDeployedStatefulServiceReplicaDetailInfo() (*DeployedStatefulServiceReplicaDetailInfo, bool) {
19423	return nil, false
19424}
19425
19426// AsDeployedStatelessServiceInstanceDetailInfo is the BasicDeployedServiceReplicaDetailInfo implementation for DeployedServiceReplicaDetailInfo.
19427func (dsrdi DeployedServiceReplicaDetailInfo) AsDeployedStatelessServiceInstanceDetailInfo() (*DeployedStatelessServiceInstanceDetailInfo, bool) {
19428	return nil, false
19429}
19430
19431// AsDeployedServiceReplicaDetailInfo is the BasicDeployedServiceReplicaDetailInfo implementation for DeployedServiceReplicaDetailInfo.
19432func (dsrdi DeployedServiceReplicaDetailInfo) AsDeployedServiceReplicaDetailInfo() (*DeployedServiceReplicaDetailInfo, bool) {
19433	return &dsrdi, true
19434}
19435
19436// AsBasicDeployedServiceReplicaDetailInfo is the BasicDeployedServiceReplicaDetailInfo implementation for DeployedServiceReplicaDetailInfo.
19437func (dsrdi DeployedServiceReplicaDetailInfo) AsBasicDeployedServiceReplicaDetailInfo() (BasicDeployedServiceReplicaDetailInfo, bool) {
19438	return &dsrdi, true
19439}
19440
19441// DeployedServiceReplicaDetailInfoModel ...
19442type DeployedServiceReplicaDetailInfoModel struct {
19443	autorest.Response `json:"-"`
19444	Value             BasicDeployedServiceReplicaDetailInfo `json:"value,omitempty"`
19445}
19446
19447// UnmarshalJSON is the custom unmarshaler for DeployedServiceReplicaDetailInfoModel struct.
19448func (dsrdim *DeployedServiceReplicaDetailInfoModel) UnmarshalJSON(body []byte) error {
19449	dsrdi, err := unmarshalBasicDeployedServiceReplicaDetailInfo(body)
19450	if err != nil {
19451		return err
19452	}
19453	dsrdim.Value = dsrdi
19454
19455	return nil
19456}
19457
19458// BasicDeployedServiceReplicaInfo information about a Service Fabric service replica deployed on a node.
19459type BasicDeployedServiceReplicaInfo interface {
19460	AsDeployedStatefulServiceReplicaInfo() (*DeployedStatefulServiceReplicaInfo, bool)
19461	AsDeployedStatelessServiceInstanceInfo() (*DeployedStatelessServiceInstanceInfo, bool)
19462	AsDeployedServiceReplicaInfo() (*DeployedServiceReplicaInfo, bool)
19463}
19464
19465// DeployedServiceReplicaInfo information about a Service Fabric service replica deployed on a node.
19466type DeployedServiceReplicaInfo struct {
19467	// ServiceName - The full name of the service with 'fabric:' URI scheme.
19468	ServiceName *string `json:"ServiceName,omitempty"`
19469	// ServiceTypeName - Name of the service type as specified in the service manifest.
19470	ServiceTypeName *string `json:"ServiceTypeName,omitempty"`
19471	// ServiceManifestName - The name of the service manifest in which this service type is defined.
19472	ServiceManifestName *string `json:"ServiceManifestName,omitempty"`
19473	// CodePackageName - The name of the code package that hosts this replica.
19474	CodePackageName *string `json:"CodePackageName,omitempty"`
19475	// 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.
19476	PartitionID *uuid.UUID `json:"PartitionId,omitempty"`
19477	// ReplicaStatus - The status of a replica of a service. Possible values include: 'ReplicaStatusInvalid', 'ReplicaStatusInBuild', 'ReplicaStatusStandby', 'ReplicaStatusReady', 'ReplicaStatusDown', 'ReplicaStatusDropped'
19478	ReplicaStatus ReplicaStatus `json:"ReplicaStatus,omitempty"`
19479	// Address - The last address returned by the replica in Open or ChangeRole.
19480	Address *string `json:"Address,omitempty"`
19481	// ServicePackageActivationID - The ActivationId of a deployed service package. If ServicePackageActivationMode specified at the time of creating the service
19482	// is 'SharedProcess' (or if it is not specified, in which case it defaults to 'SharedProcess'), then value of ServicePackageActivationId
19483	// is always an empty string.
19484	ServicePackageActivationID *string `json:"ServicePackageActivationId,omitempty"`
19485	// 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.
19486	HostProcessID *string `json:"HostProcessId,omitempty"`
19487	// ServiceKind - Possible values include: 'ServiceKindBasicDeployedServiceReplicaInfoServiceKindDeployedServiceReplicaInfo', 'ServiceKindBasicDeployedServiceReplicaInfoServiceKindStateful', 'ServiceKindBasicDeployedServiceReplicaInfoServiceKindStateless'
19488	ServiceKind ServiceKindBasicDeployedServiceReplicaInfo `json:"ServiceKind,omitempty"`
19489}
19490
19491func unmarshalBasicDeployedServiceReplicaInfo(body []byte) (BasicDeployedServiceReplicaInfo, error) {
19492	var m map[string]interface{}
19493	err := json.Unmarshal(body, &m)
19494	if err != nil {
19495		return nil, err
19496	}
19497
19498	switch m["ServiceKind"] {
19499	case string(ServiceKindBasicDeployedServiceReplicaInfoServiceKindStateful):
19500		var dssri DeployedStatefulServiceReplicaInfo
19501		err := json.Unmarshal(body, &dssri)
19502		return dssri, err
19503	case string(ServiceKindBasicDeployedServiceReplicaInfoServiceKindStateless):
19504		var dssii DeployedStatelessServiceInstanceInfo
19505		err := json.Unmarshal(body, &dssii)
19506		return dssii, err
19507	default:
19508		var dsri DeployedServiceReplicaInfo
19509		err := json.Unmarshal(body, &dsri)
19510		return dsri, err
19511	}
19512}
19513func unmarshalBasicDeployedServiceReplicaInfoArray(body []byte) ([]BasicDeployedServiceReplicaInfo, error) {
19514	var rawMessages []*json.RawMessage
19515	err := json.Unmarshal(body, &rawMessages)
19516	if err != nil {
19517		return nil, err
19518	}
19519
19520	dsriArray := make([]BasicDeployedServiceReplicaInfo, len(rawMessages))
19521
19522	for index, rawMessage := range rawMessages {
19523		dsri, err := unmarshalBasicDeployedServiceReplicaInfo(*rawMessage)
19524		if err != nil {
19525			return nil, err
19526		}
19527		dsriArray[index] = dsri
19528	}
19529	return dsriArray, nil
19530}
19531
19532// MarshalJSON is the custom marshaler for DeployedServiceReplicaInfo.
19533func (dsri DeployedServiceReplicaInfo) MarshalJSON() ([]byte, error) {
19534	dsri.ServiceKind = ServiceKindBasicDeployedServiceReplicaInfoServiceKindDeployedServiceReplicaInfo
19535	objectMap := make(map[string]interface{})
19536	if dsri.ServiceName != nil {
19537		objectMap["ServiceName"] = dsri.ServiceName
19538	}
19539	if dsri.ServiceTypeName != nil {
19540		objectMap["ServiceTypeName"] = dsri.ServiceTypeName
19541	}
19542	if dsri.ServiceManifestName != nil {
19543		objectMap["ServiceManifestName"] = dsri.ServiceManifestName
19544	}
19545	if dsri.CodePackageName != nil {
19546		objectMap["CodePackageName"] = dsri.CodePackageName
19547	}
19548	if dsri.PartitionID != nil {
19549		objectMap["PartitionId"] = dsri.PartitionID
19550	}
19551	if dsri.ReplicaStatus != "" {
19552		objectMap["ReplicaStatus"] = dsri.ReplicaStatus
19553	}
19554	if dsri.Address != nil {
19555		objectMap["Address"] = dsri.Address
19556	}
19557	if dsri.ServicePackageActivationID != nil {
19558		objectMap["ServicePackageActivationId"] = dsri.ServicePackageActivationID
19559	}
19560	if dsri.HostProcessID != nil {
19561		objectMap["HostProcessId"] = dsri.HostProcessID
19562	}
19563	if dsri.ServiceKind != "" {
19564		objectMap["ServiceKind"] = dsri.ServiceKind
19565	}
19566	return json.Marshal(objectMap)
19567}
19568
19569// AsDeployedStatefulServiceReplicaInfo is the BasicDeployedServiceReplicaInfo implementation for DeployedServiceReplicaInfo.
19570func (dsri DeployedServiceReplicaInfo) AsDeployedStatefulServiceReplicaInfo() (*DeployedStatefulServiceReplicaInfo, bool) {
19571	return nil, false
19572}
19573
19574// AsDeployedStatelessServiceInstanceInfo is the BasicDeployedServiceReplicaInfo implementation for DeployedServiceReplicaInfo.
19575func (dsri DeployedServiceReplicaInfo) AsDeployedStatelessServiceInstanceInfo() (*DeployedStatelessServiceInstanceInfo, bool) {
19576	return nil, false
19577}
19578
19579// AsDeployedServiceReplicaInfo is the BasicDeployedServiceReplicaInfo implementation for DeployedServiceReplicaInfo.
19580func (dsri DeployedServiceReplicaInfo) AsDeployedServiceReplicaInfo() (*DeployedServiceReplicaInfo, bool) {
19581	return &dsri, true
19582}
19583
19584// AsBasicDeployedServiceReplicaInfo is the BasicDeployedServiceReplicaInfo implementation for DeployedServiceReplicaInfo.
19585func (dsri DeployedServiceReplicaInfo) AsBasicDeployedServiceReplicaInfo() (BasicDeployedServiceReplicaInfo, bool) {
19586	return &dsri, true
19587}
19588
19589// DeployedServiceTypeInfo information about service type deployed on a node, information such as the
19590// status of the service type registration on a node.
19591type DeployedServiceTypeInfo struct {
19592	// ServiceTypeName - Name of the service type as specified in the service manifest.
19593	ServiceTypeName *string `json:"ServiceTypeName,omitempty"`
19594	// ServiceManifestName - The name of the service manifest in which this service type is defined.
19595	ServiceManifestName *string `json:"ServiceManifestName,omitempty"`
19596	// CodePackageName - The name of the code package that registered the service type.
19597	CodePackageName *string `json:"CodePackageName,omitempty"`
19598	// Status - The status of the service type registration on the node. Possible values include: 'ServiceTypeRegistrationStatusInvalid', 'ServiceTypeRegistrationStatusDisabled', 'ServiceTypeRegistrationStatusEnabled', 'ServiceTypeRegistrationStatusRegistered'
19599	Status ServiceTypeRegistrationStatus `json:"Status,omitempty"`
19600	// ServicePackageActivationID - The ActivationId of a deployed service package. If ServicePackageActivationMode specified at the time of creating the service
19601	// is 'SharedProcess' (or if it is not specified, in which case it defaults to 'SharedProcess'), then value of ServicePackageActivationId
19602	// is always an empty string.
19603	ServicePackageActivationID *string `json:"ServicePackageActivationId,omitempty"`
19604}
19605
19606// DeployedStatefulServiceReplicaDetailInfo information about a stateful replica running in a code package.
19607// Note DeployedServiceReplicaQueryResult will contain duplicate data like ServiceKind, ServiceName,
19608// PartitionId and replicaId.
19609type DeployedStatefulServiceReplicaDetailInfo struct {
19610	// 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.
19611	ReplicaID *string `json:"ReplicaId,omitempty"`
19612	// CurrentReplicatorOperation - Specifies the operation currently being executed by the Replicator. Possible values include: 'ReplicatorOperationNameInvalid', 'ReplicatorOperationNameNone', 'ReplicatorOperationNameOpen', 'ReplicatorOperationNameChangeRole', 'ReplicatorOperationNameUpdateEpoch', 'ReplicatorOperationNameClose', 'ReplicatorOperationNameAbort', 'ReplicatorOperationNameOnDataLoss', 'ReplicatorOperationNameWaitForCatchup', 'ReplicatorOperationNameBuild'
19613	CurrentReplicatorOperation ReplicatorOperationName `json:"CurrentReplicatorOperation,omitempty"`
19614	// ReadStatus - Specifies the access status of the partition. Possible values include: 'PartitionAccessStatusInvalid', 'PartitionAccessStatusGranted', 'PartitionAccessStatusReconfigurationPending', 'PartitionAccessStatusNotPrimary', 'PartitionAccessStatusNoWriteQuorum'
19615	ReadStatus PartitionAccessStatus `json:"ReadStatus,omitempty"`
19616	// WriteStatus - Specifies the access status of the partition. Possible values include: 'PartitionAccessStatusInvalid', 'PartitionAccessStatusGranted', 'PartitionAccessStatusReconfigurationPending', 'PartitionAccessStatusNotPrimary', 'PartitionAccessStatusNoWriteQuorum'
19617	WriteStatus PartitionAccessStatus `json:"WriteStatus,omitempty"`
19618	// ReplicatorStatus - Represents a base class for primary or secondary replicator status.
19619	// Contains information about the service fabric replicator like the replication/copy queue utilization, last acknowledgement received timestamp, etc.
19620	ReplicatorStatus BasicReplicatorStatus `json:"ReplicatorStatus,omitempty"`
19621	// ReplicaStatus - Key value store related information for the replica.
19622	ReplicaStatus *KeyValueStoreReplicaStatus `json:"ReplicaStatus,omitempty"`
19623	// DeployedServiceReplicaQueryResult - Information about a stateful service replica deployed on a node.
19624	DeployedServiceReplicaQueryResult *DeployedStatefulServiceReplicaInfo `json:"DeployedServiceReplicaQueryResult,omitempty"`
19625	// ServiceName - Full hierarchical name of the service in URI format starting with `fabric:`.
19626	ServiceName *string `json:"ServiceName,omitempty"`
19627	// 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.
19628	PartitionID *uuid.UUID `json:"PartitionId,omitempty"`
19629	// 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'
19630	CurrentServiceOperation ServiceOperationName `json:"CurrentServiceOperation,omitempty"`
19631	// CurrentServiceOperationStartTimeUtc - The start time of the current service operation in UTC format.
19632	CurrentServiceOperationStartTimeUtc *date.Time `json:"CurrentServiceOperationStartTimeUtc,omitempty"`
19633	// ReportedLoad - List of load reported by replica.
19634	ReportedLoad *[]LoadMetricReportInfo `json:"ReportedLoad,omitempty"`
19635	// ServiceKind - Possible values include: 'ServiceKindDeployedServiceReplicaDetailInfo', 'ServiceKindStateful1', 'ServiceKindStateless1'
19636	ServiceKind ServiceKindBasicDeployedServiceReplicaDetailInfo `json:"ServiceKind,omitempty"`
19637}
19638
19639// MarshalJSON is the custom marshaler for DeployedStatefulServiceReplicaDetailInfo.
19640func (dssrdi DeployedStatefulServiceReplicaDetailInfo) MarshalJSON() ([]byte, error) {
19641	dssrdi.ServiceKind = ServiceKindStateful1
19642	objectMap := make(map[string]interface{})
19643	if dssrdi.ReplicaID != nil {
19644		objectMap["ReplicaId"] = dssrdi.ReplicaID
19645	}
19646	if dssrdi.CurrentReplicatorOperation != "" {
19647		objectMap["CurrentReplicatorOperation"] = dssrdi.CurrentReplicatorOperation
19648	}
19649	if dssrdi.ReadStatus != "" {
19650		objectMap["ReadStatus"] = dssrdi.ReadStatus
19651	}
19652	if dssrdi.WriteStatus != "" {
19653		objectMap["WriteStatus"] = dssrdi.WriteStatus
19654	}
19655	objectMap["ReplicatorStatus"] = dssrdi.ReplicatorStatus
19656	if dssrdi.ReplicaStatus != nil {
19657		objectMap["ReplicaStatus"] = dssrdi.ReplicaStatus
19658	}
19659	if dssrdi.DeployedServiceReplicaQueryResult != nil {
19660		objectMap["DeployedServiceReplicaQueryResult"] = dssrdi.DeployedServiceReplicaQueryResult
19661	}
19662	if dssrdi.ServiceName != nil {
19663		objectMap["ServiceName"] = dssrdi.ServiceName
19664	}
19665	if dssrdi.PartitionID != nil {
19666		objectMap["PartitionId"] = dssrdi.PartitionID
19667	}
19668	if dssrdi.CurrentServiceOperation != "" {
19669		objectMap["CurrentServiceOperation"] = dssrdi.CurrentServiceOperation
19670	}
19671	if dssrdi.CurrentServiceOperationStartTimeUtc != nil {
19672		objectMap["CurrentServiceOperationStartTimeUtc"] = dssrdi.CurrentServiceOperationStartTimeUtc
19673	}
19674	if dssrdi.ReportedLoad != nil {
19675		objectMap["ReportedLoad"] = dssrdi.ReportedLoad
19676	}
19677	if dssrdi.ServiceKind != "" {
19678		objectMap["ServiceKind"] = dssrdi.ServiceKind
19679	}
19680	return json.Marshal(objectMap)
19681}
19682
19683// AsDeployedStatefulServiceReplicaDetailInfo is the BasicDeployedServiceReplicaDetailInfo implementation for DeployedStatefulServiceReplicaDetailInfo.
19684func (dssrdi DeployedStatefulServiceReplicaDetailInfo) AsDeployedStatefulServiceReplicaDetailInfo() (*DeployedStatefulServiceReplicaDetailInfo, bool) {
19685	return &dssrdi, true
19686}
19687
19688// AsDeployedStatelessServiceInstanceDetailInfo is the BasicDeployedServiceReplicaDetailInfo implementation for DeployedStatefulServiceReplicaDetailInfo.
19689func (dssrdi DeployedStatefulServiceReplicaDetailInfo) AsDeployedStatelessServiceInstanceDetailInfo() (*DeployedStatelessServiceInstanceDetailInfo, bool) {
19690	return nil, false
19691}
19692
19693// AsDeployedServiceReplicaDetailInfo is the BasicDeployedServiceReplicaDetailInfo implementation for DeployedStatefulServiceReplicaDetailInfo.
19694func (dssrdi DeployedStatefulServiceReplicaDetailInfo) AsDeployedServiceReplicaDetailInfo() (*DeployedServiceReplicaDetailInfo, bool) {
19695	return nil, false
19696}
19697
19698// AsBasicDeployedServiceReplicaDetailInfo is the BasicDeployedServiceReplicaDetailInfo implementation for DeployedStatefulServiceReplicaDetailInfo.
19699func (dssrdi DeployedStatefulServiceReplicaDetailInfo) AsBasicDeployedServiceReplicaDetailInfo() (BasicDeployedServiceReplicaDetailInfo, bool) {
19700	return &dssrdi, true
19701}
19702
19703// UnmarshalJSON is the custom unmarshaler for DeployedStatefulServiceReplicaDetailInfo struct.
19704func (dssrdi *DeployedStatefulServiceReplicaDetailInfo) UnmarshalJSON(body []byte) error {
19705	var m map[string]*json.RawMessage
19706	err := json.Unmarshal(body, &m)
19707	if err != nil {
19708		return err
19709	}
19710	for k, v := range m {
19711		switch k {
19712		case "ReplicaId":
19713			if v != nil {
19714				var replicaID string
19715				err = json.Unmarshal(*v, &replicaID)
19716				if err != nil {
19717					return err
19718				}
19719				dssrdi.ReplicaID = &replicaID
19720			}
19721		case "CurrentReplicatorOperation":
19722			if v != nil {
19723				var currentReplicatorOperation ReplicatorOperationName
19724				err = json.Unmarshal(*v, &currentReplicatorOperation)
19725				if err != nil {
19726					return err
19727				}
19728				dssrdi.CurrentReplicatorOperation = currentReplicatorOperation
19729			}
19730		case "ReadStatus":
19731			if v != nil {
19732				var readStatus PartitionAccessStatus
19733				err = json.Unmarshal(*v, &readStatus)
19734				if err != nil {
19735					return err
19736				}
19737				dssrdi.ReadStatus = readStatus
19738			}
19739		case "WriteStatus":
19740			if v != nil {
19741				var writeStatus PartitionAccessStatus
19742				err = json.Unmarshal(*v, &writeStatus)
19743				if err != nil {
19744					return err
19745				}
19746				dssrdi.WriteStatus = writeStatus
19747			}
19748		case "ReplicatorStatus":
19749			if v != nil {
19750				replicatorStatus, err := unmarshalBasicReplicatorStatus(*v)
19751				if err != nil {
19752					return err
19753				}
19754				dssrdi.ReplicatorStatus = replicatorStatus
19755			}
19756		case "ReplicaStatus":
19757			if v != nil {
19758				var replicaStatus KeyValueStoreReplicaStatus
19759				err = json.Unmarshal(*v, &replicaStatus)
19760				if err != nil {
19761					return err
19762				}
19763				dssrdi.ReplicaStatus = &replicaStatus
19764			}
19765		case "DeployedServiceReplicaQueryResult":
19766			if v != nil {
19767				var deployedServiceReplicaQueryResult DeployedStatefulServiceReplicaInfo
19768				err = json.Unmarshal(*v, &deployedServiceReplicaQueryResult)
19769				if err != nil {
19770					return err
19771				}
19772				dssrdi.DeployedServiceReplicaQueryResult = &deployedServiceReplicaQueryResult
19773			}
19774		case "ServiceName":
19775			if v != nil {
19776				var serviceName string
19777				err = json.Unmarshal(*v, &serviceName)
19778				if err != nil {
19779					return err
19780				}
19781				dssrdi.ServiceName = &serviceName
19782			}
19783		case "PartitionId":
19784			if v != nil {
19785				var partitionID uuid.UUID
19786				err = json.Unmarshal(*v, &partitionID)
19787				if err != nil {
19788					return err
19789				}
19790				dssrdi.PartitionID = &partitionID
19791			}
19792		case "CurrentServiceOperation":
19793			if v != nil {
19794				var currentServiceOperation ServiceOperationName
19795				err = json.Unmarshal(*v, &currentServiceOperation)
19796				if err != nil {
19797					return err
19798				}
19799				dssrdi.CurrentServiceOperation = currentServiceOperation
19800			}
19801		case "CurrentServiceOperationStartTimeUtc":
19802			if v != nil {
19803				var currentServiceOperationStartTimeUtc date.Time
19804				err = json.Unmarshal(*v, &currentServiceOperationStartTimeUtc)
19805				if err != nil {
19806					return err
19807				}
19808				dssrdi.CurrentServiceOperationStartTimeUtc = &currentServiceOperationStartTimeUtc
19809			}
19810		case "ReportedLoad":
19811			if v != nil {
19812				var reportedLoad []LoadMetricReportInfo
19813				err = json.Unmarshal(*v, &reportedLoad)
19814				if err != nil {
19815					return err
19816				}
19817				dssrdi.ReportedLoad = &reportedLoad
19818			}
19819		case "ServiceKind":
19820			if v != nil {
19821				var serviceKind ServiceKindBasicDeployedServiceReplicaDetailInfo
19822				err = json.Unmarshal(*v, &serviceKind)
19823				if err != nil {
19824					return err
19825				}
19826				dssrdi.ServiceKind = serviceKind
19827			}
19828		}
19829	}
19830
19831	return nil
19832}
19833
19834// DeployedStatefulServiceReplicaInfo information about a stateful service replica deployed on a node.
19835type DeployedStatefulServiceReplicaInfo struct {
19836	// 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.
19837	ReplicaID *string `json:"ReplicaId,omitempty"`
19838	// ReplicaRole - The role of a replica of a stateful service. Possible values include: 'ReplicaRoleUnknown', 'ReplicaRoleNone', 'ReplicaRolePrimary', 'ReplicaRoleIdleSecondary', 'ReplicaRoleActiveSecondary'
19839	ReplicaRole ReplicaRole `json:"ReplicaRole,omitempty"`
19840	// ReconfigurationInformation - Information about current reconfiguration like phase, type, previous configuration role of replica and reconfiguration start date time.
19841	ReconfigurationInformation *ReconfigurationInformation `json:"ReconfigurationInformation,omitempty"`
19842	// ServiceName - The full name of the service with 'fabric:' URI scheme.
19843	ServiceName *string `json:"ServiceName,omitempty"`
19844	// ServiceTypeName - Name of the service type as specified in the service manifest.
19845	ServiceTypeName *string `json:"ServiceTypeName,omitempty"`
19846	// ServiceManifestName - The name of the service manifest in which this service type is defined.
19847	ServiceManifestName *string `json:"ServiceManifestName,omitempty"`
19848	// CodePackageName - The name of the code package that hosts this replica.
19849	CodePackageName *string `json:"CodePackageName,omitempty"`
19850	// 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.
19851	PartitionID *uuid.UUID `json:"PartitionId,omitempty"`
19852	// ReplicaStatus - The status of a replica of a service. Possible values include: 'ReplicaStatusInvalid', 'ReplicaStatusInBuild', 'ReplicaStatusStandby', 'ReplicaStatusReady', 'ReplicaStatusDown', 'ReplicaStatusDropped'
19853	ReplicaStatus ReplicaStatus `json:"ReplicaStatus,omitempty"`
19854	// Address - The last address returned by the replica in Open or ChangeRole.
19855	Address *string `json:"Address,omitempty"`
19856	// ServicePackageActivationID - The ActivationId of a deployed service package. If ServicePackageActivationMode specified at the time of creating the service
19857	// is 'SharedProcess' (or if it is not specified, in which case it defaults to 'SharedProcess'), then value of ServicePackageActivationId
19858	// is always an empty string.
19859	ServicePackageActivationID *string `json:"ServicePackageActivationId,omitempty"`
19860	// 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.
19861	HostProcessID *string `json:"HostProcessId,omitempty"`
19862	// ServiceKind - Possible values include: 'ServiceKindBasicDeployedServiceReplicaInfoServiceKindDeployedServiceReplicaInfo', 'ServiceKindBasicDeployedServiceReplicaInfoServiceKindStateful', 'ServiceKindBasicDeployedServiceReplicaInfoServiceKindStateless'
19863	ServiceKind ServiceKindBasicDeployedServiceReplicaInfo `json:"ServiceKind,omitempty"`
19864}
19865
19866// MarshalJSON is the custom marshaler for DeployedStatefulServiceReplicaInfo.
19867func (dssri DeployedStatefulServiceReplicaInfo) MarshalJSON() ([]byte, error) {
19868	dssri.ServiceKind = ServiceKindBasicDeployedServiceReplicaInfoServiceKindStateful
19869	objectMap := make(map[string]interface{})
19870	if dssri.ReplicaID != nil {
19871		objectMap["ReplicaId"] = dssri.ReplicaID
19872	}
19873	if dssri.ReplicaRole != "" {
19874		objectMap["ReplicaRole"] = dssri.ReplicaRole
19875	}
19876	if dssri.ReconfigurationInformation != nil {
19877		objectMap["ReconfigurationInformation"] = dssri.ReconfigurationInformation
19878	}
19879	if dssri.ServiceName != nil {
19880		objectMap["ServiceName"] = dssri.ServiceName
19881	}
19882	if dssri.ServiceTypeName != nil {
19883		objectMap["ServiceTypeName"] = dssri.ServiceTypeName
19884	}
19885	if dssri.ServiceManifestName != nil {
19886		objectMap["ServiceManifestName"] = dssri.ServiceManifestName
19887	}
19888	if dssri.CodePackageName != nil {
19889		objectMap["CodePackageName"] = dssri.CodePackageName
19890	}
19891	if dssri.PartitionID != nil {
19892		objectMap["PartitionId"] = dssri.PartitionID
19893	}
19894	if dssri.ReplicaStatus != "" {
19895		objectMap["ReplicaStatus"] = dssri.ReplicaStatus
19896	}
19897	if dssri.Address != nil {
19898		objectMap["Address"] = dssri.Address
19899	}
19900	if dssri.ServicePackageActivationID != nil {
19901		objectMap["ServicePackageActivationId"] = dssri.ServicePackageActivationID
19902	}
19903	if dssri.HostProcessID != nil {
19904		objectMap["HostProcessId"] = dssri.HostProcessID
19905	}
19906	if dssri.ServiceKind != "" {
19907		objectMap["ServiceKind"] = dssri.ServiceKind
19908	}
19909	return json.Marshal(objectMap)
19910}
19911
19912// AsDeployedStatefulServiceReplicaInfo is the BasicDeployedServiceReplicaInfo implementation for DeployedStatefulServiceReplicaInfo.
19913func (dssri DeployedStatefulServiceReplicaInfo) AsDeployedStatefulServiceReplicaInfo() (*DeployedStatefulServiceReplicaInfo, bool) {
19914	return &dssri, true
19915}
19916
19917// AsDeployedStatelessServiceInstanceInfo is the BasicDeployedServiceReplicaInfo implementation for DeployedStatefulServiceReplicaInfo.
19918func (dssri DeployedStatefulServiceReplicaInfo) AsDeployedStatelessServiceInstanceInfo() (*DeployedStatelessServiceInstanceInfo, bool) {
19919	return nil, false
19920}
19921
19922// AsDeployedServiceReplicaInfo is the BasicDeployedServiceReplicaInfo implementation for DeployedStatefulServiceReplicaInfo.
19923func (dssri DeployedStatefulServiceReplicaInfo) AsDeployedServiceReplicaInfo() (*DeployedServiceReplicaInfo, bool) {
19924	return nil, false
19925}
19926
19927// AsBasicDeployedServiceReplicaInfo is the BasicDeployedServiceReplicaInfo implementation for DeployedStatefulServiceReplicaInfo.
19928func (dssri DeployedStatefulServiceReplicaInfo) AsBasicDeployedServiceReplicaInfo() (BasicDeployedServiceReplicaInfo, bool) {
19929	return &dssri, true
19930}
19931
19932// DeployedStatelessServiceInstanceDetailInfo information about a stateless instance running in a code
19933// package. Note that DeployedServiceReplicaQueryResult will contain duplicate data like ServiceKind,
19934// ServiceName, PartitionId and InstanceId.
19935type DeployedStatelessServiceInstanceDetailInfo struct {
19936	// 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.
19937	InstanceID *string `json:"InstanceId,omitempty"`
19938	// DeployedServiceReplicaQueryResult - Information about a stateless service instance deployed on a node.
19939	DeployedServiceReplicaQueryResult *DeployedStatelessServiceInstanceInfo `json:"DeployedServiceReplicaQueryResult,omitempty"`
19940	// ServiceName - Full hierarchical name of the service in URI format starting with `fabric:`.
19941	ServiceName *string `json:"ServiceName,omitempty"`
19942	// 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.
19943	PartitionID *uuid.UUID `json:"PartitionId,omitempty"`
19944	// 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'
19945	CurrentServiceOperation ServiceOperationName `json:"CurrentServiceOperation,omitempty"`
19946	// CurrentServiceOperationStartTimeUtc - The start time of the current service operation in UTC format.
19947	CurrentServiceOperationStartTimeUtc *date.Time `json:"CurrentServiceOperationStartTimeUtc,omitempty"`
19948	// ReportedLoad - List of load reported by replica.
19949	ReportedLoad *[]LoadMetricReportInfo `json:"ReportedLoad,omitempty"`
19950	// ServiceKind - Possible values include: 'ServiceKindDeployedServiceReplicaDetailInfo', 'ServiceKindStateful1', 'ServiceKindStateless1'
19951	ServiceKind ServiceKindBasicDeployedServiceReplicaDetailInfo `json:"ServiceKind,omitempty"`
19952}
19953
19954// MarshalJSON is the custom marshaler for DeployedStatelessServiceInstanceDetailInfo.
19955func (dssidi DeployedStatelessServiceInstanceDetailInfo) MarshalJSON() ([]byte, error) {
19956	dssidi.ServiceKind = ServiceKindStateless1
19957	objectMap := make(map[string]interface{})
19958	if dssidi.InstanceID != nil {
19959		objectMap["InstanceId"] = dssidi.InstanceID
19960	}
19961	if dssidi.DeployedServiceReplicaQueryResult != nil {
19962		objectMap["DeployedServiceReplicaQueryResult"] = dssidi.DeployedServiceReplicaQueryResult
19963	}
19964	if dssidi.ServiceName != nil {
19965		objectMap["ServiceName"] = dssidi.ServiceName
19966	}
19967	if dssidi.PartitionID != nil {
19968		objectMap["PartitionId"] = dssidi.PartitionID
19969	}
19970	if dssidi.CurrentServiceOperation != "" {
19971		objectMap["CurrentServiceOperation"] = dssidi.CurrentServiceOperation
19972	}
19973	if dssidi.CurrentServiceOperationStartTimeUtc != nil {
19974		objectMap["CurrentServiceOperationStartTimeUtc"] = dssidi.CurrentServiceOperationStartTimeUtc
19975	}
19976	if dssidi.ReportedLoad != nil {
19977		objectMap["ReportedLoad"] = dssidi.ReportedLoad
19978	}
19979	if dssidi.ServiceKind != "" {
19980		objectMap["ServiceKind"] = dssidi.ServiceKind
19981	}
19982	return json.Marshal(objectMap)
19983}
19984
19985// AsDeployedStatefulServiceReplicaDetailInfo is the BasicDeployedServiceReplicaDetailInfo implementation for DeployedStatelessServiceInstanceDetailInfo.
19986func (dssidi DeployedStatelessServiceInstanceDetailInfo) AsDeployedStatefulServiceReplicaDetailInfo() (*DeployedStatefulServiceReplicaDetailInfo, bool) {
19987	return nil, false
19988}
19989
19990// AsDeployedStatelessServiceInstanceDetailInfo is the BasicDeployedServiceReplicaDetailInfo implementation for DeployedStatelessServiceInstanceDetailInfo.
19991func (dssidi DeployedStatelessServiceInstanceDetailInfo) AsDeployedStatelessServiceInstanceDetailInfo() (*DeployedStatelessServiceInstanceDetailInfo, bool) {
19992	return &dssidi, true
19993}
19994
19995// AsDeployedServiceReplicaDetailInfo is the BasicDeployedServiceReplicaDetailInfo implementation for DeployedStatelessServiceInstanceDetailInfo.
19996func (dssidi DeployedStatelessServiceInstanceDetailInfo) AsDeployedServiceReplicaDetailInfo() (*DeployedServiceReplicaDetailInfo, bool) {
19997	return nil, false
19998}
19999
20000// AsBasicDeployedServiceReplicaDetailInfo is the BasicDeployedServiceReplicaDetailInfo implementation for DeployedStatelessServiceInstanceDetailInfo.
20001func (dssidi DeployedStatelessServiceInstanceDetailInfo) AsBasicDeployedServiceReplicaDetailInfo() (BasicDeployedServiceReplicaDetailInfo, bool) {
20002	return &dssidi, true
20003}
20004
20005// DeployedStatelessServiceInstanceInfo information about a stateless service instance deployed on a node.
20006type DeployedStatelessServiceInstanceInfo struct {
20007	// 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.
20008	InstanceID *string `json:"InstanceId,omitempty"`
20009	// ServiceName - The full name of the service with 'fabric:' URI scheme.
20010	ServiceName *string `json:"ServiceName,omitempty"`
20011	// ServiceTypeName - Name of the service type as specified in the service manifest.
20012	ServiceTypeName *string `json:"ServiceTypeName,omitempty"`
20013	// ServiceManifestName - The name of the service manifest in which this service type is defined.
20014	ServiceManifestName *string `json:"ServiceManifestName,omitempty"`
20015	// CodePackageName - The name of the code package that hosts this replica.
20016	CodePackageName *string `json:"CodePackageName,omitempty"`
20017	// 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.
20018	PartitionID *uuid.UUID `json:"PartitionId,omitempty"`
20019	// ReplicaStatus - The status of a replica of a service. Possible values include: 'ReplicaStatusInvalid', 'ReplicaStatusInBuild', 'ReplicaStatusStandby', 'ReplicaStatusReady', 'ReplicaStatusDown', 'ReplicaStatusDropped'
20020	ReplicaStatus ReplicaStatus `json:"ReplicaStatus,omitempty"`
20021	// Address - The last address returned by the replica in Open or ChangeRole.
20022	Address *string `json:"Address,omitempty"`
20023	// ServicePackageActivationID - The ActivationId of a deployed service package. If ServicePackageActivationMode specified at the time of creating the service
20024	// is 'SharedProcess' (or if it is not specified, in which case it defaults to 'SharedProcess'), then value of ServicePackageActivationId
20025	// is always an empty string.
20026	ServicePackageActivationID *string `json:"ServicePackageActivationId,omitempty"`
20027	// 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.
20028	HostProcessID *string `json:"HostProcessId,omitempty"`
20029	// ServiceKind - Possible values include: 'ServiceKindBasicDeployedServiceReplicaInfoServiceKindDeployedServiceReplicaInfo', 'ServiceKindBasicDeployedServiceReplicaInfoServiceKindStateful', 'ServiceKindBasicDeployedServiceReplicaInfoServiceKindStateless'
20030	ServiceKind ServiceKindBasicDeployedServiceReplicaInfo `json:"ServiceKind,omitempty"`
20031}
20032
20033// MarshalJSON is the custom marshaler for DeployedStatelessServiceInstanceInfo.
20034func (dssii DeployedStatelessServiceInstanceInfo) MarshalJSON() ([]byte, error) {
20035	dssii.ServiceKind = ServiceKindBasicDeployedServiceReplicaInfoServiceKindStateless
20036	objectMap := make(map[string]interface{})
20037	if dssii.InstanceID != nil {
20038		objectMap["InstanceId"] = dssii.InstanceID
20039	}
20040	if dssii.ServiceName != nil {
20041		objectMap["ServiceName"] = dssii.ServiceName
20042	}
20043	if dssii.ServiceTypeName != nil {
20044		objectMap["ServiceTypeName"] = dssii.ServiceTypeName
20045	}
20046	if dssii.ServiceManifestName != nil {
20047		objectMap["ServiceManifestName"] = dssii.ServiceManifestName
20048	}
20049	if dssii.CodePackageName != nil {
20050		objectMap["CodePackageName"] = dssii.CodePackageName
20051	}
20052	if dssii.PartitionID != nil {
20053		objectMap["PartitionId"] = dssii.PartitionID
20054	}
20055	if dssii.ReplicaStatus != "" {
20056		objectMap["ReplicaStatus"] = dssii.ReplicaStatus
20057	}
20058	if dssii.Address != nil {
20059		objectMap["Address"] = dssii.Address
20060	}
20061	if dssii.ServicePackageActivationID != nil {
20062		objectMap["ServicePackageActivationId"] = dssii.ServicePackageActivationID
20063	}
20064	if dssii.HostProcessID != nil {
20065		objectMap["HostProcessId"] = dssii.HostProcessID
20066	}
20067	if dssii.ServiceKind != "" {
20068		objectMap["ServiceKind"] = dssii.ServiceKind
20069	}
20070	return json.Marshal(objectMap)
20071}
20072
20073// AsDeployedStatefulServiceReplicaInfo is the BasicDeployedServiceReplicaInfo implementation for DeployedStatelessServiceInstanceInfo.
20074func (dssii DeployedStatelessServiceInstanceInfo) AsDeployedStatefulServiceReplicaInfo() (*DeployedStatefulServiceReplicaInfo, bool) {
20075	return nil, false
20076}
20077
20078// AsDeployedStatelessServiceInstanceInfo is the BasicDeployedServiceReplicaInfo implementation for DeployedStatelessServiceInstanceInfo.
20079func (dssii DeployedStatelessServiceInstanceInfo) AsDeployedStatelessServiceInstanceInfo() (*DeployedStatelessServiceInstanceInfo, bool) {
20080	return &dssii, true
20081}
20082
20083// AsDeployedServiceReplicaInfo is the BasicDeployedServiceReplicaInfo implementation for DeployedStatelessServiceInstanceInfo.
20084func (dssii DeployedStatelessServiceInstanceInfo) AsDeployedServiceReplicaInfo() (*DeployedServiceReplicaInfo, bool) {
20085	return nil, false
20086}
20087
20088// AsBasicDeployedServiceReplicaInfo is the BasicDeployedServiceReplicaInfo implementation for DeployedStatelessServiceInstanceInfo.
20089func (dssii DeployedStatelessServiceInstanceInfo) AsBasicDeployedServiceReplicaInfo() (BasicDeployedServiceReplicaInfo, bool) {
20090	return &dssii, true
20091}
20092
20093// DeployServicePackageToNodeDescription defines description for downloading packages associated with a
20094// service manifest to image cache on a Service Fabric node.
20095type DeployServicePackageToNodeDescription struct {
20096	// ServiceManifestName - The name of service manifest whose packages need to be downloaded.
20097	ServiceManifestName *string `json:"ServiceManifestName,omitempty"`
20098	// ApplicationTypeName - The application type name as defined in the application manifest.
20099	ApplicationTypeName *string `json:"ApplicationTypeName,omitempty"`
20100	// ApplicationTypeVersion - The version of the application type as defined in the application manifest.
20101	ApplicationTypeVersion *string `json:"ApplicationTypeVersion,omitempty"`
20102	// NodeName - The name of a Service Fabric node.
20103	NodeName *string `json:"NodeName,omitempty"`
20104	// PackageSharingPolicy - List of package sharing policy information.
20105	PackageSharingPolicy *[]PackageSharingPolicyInfo `json:"PackageSharingPolicy,omitempty"`
20106}
20107
20108// DiagnosticsDescription describes the diagnostics options available
20109type DiagnosticsDescription struct {
20110	// Sinks - List of supported sinks that can be referenced.
20111	Sinks *[]BasicDiagnosticsSinkProperties `json:"sinks,omitempty"`
20112	// Enabled - Status of whether or not sinks are enabled.
20113	Enabled *bool `json:"enabled,omitempty"`
20114	// DefaultSinkRefs - The sinks to be used if diagnostics is enabled. Sink choices can be overridden at the service and code package level.
20115	DefaultSinkRefs *[]string `json:"defaultSinkRefs,omitempty"`
20116}
20117
20118// UnmarshalJSON is the custom unmarshaler for DiagnosticsDescription struct.
20119func (dd *DiagnosticsDescription) UnmarshalJSON(body []byte) error {
20120	var m map[string]*json.RawMessage
20121	err := json.Unmarshal(body, &m)
20122	if err != nil {
20123		return err
20124	}
20125	for k, v := range m {
20126		switch k {
20127		case "sinks":
20128			if v != nil {
20129				sinks, err := unmarshalBasicDiagnosticsSinkPropertiesArray(*v)
20130				if err != nil {
20131					return err
20132				}
20133				dd.Sinks = &sinks
20134			}
20135		case "enabled":
20136			if v != nil {
20137				var enabled bool
20138				err = json.Unmarshal(*v, &enabled)
20139				if err != nil {
20140					return err
20141				}
20142				dd.Enabled = &enabled
20143			}
20144		case "defaultSinkRefs":
20145			if v != nil {
20146				var defaultSinkRefs []string
20147				err = json.Unmarshal(*v, &defaultSinkRefs)
20148				if err != nil {
20149					return err
20150				}
20151				dd.DefaultSinkRefs = &defaultSinkRefs
20152			}
20153		}
20154	}
20155
20156	return nil
20157}
20158
20159// DiagnosticsRef reference to sinks in DiagnosticsDescription.
20160type DiagnosticsRef struct {
20161	// Enabled - Status of whether or not sinks are enabled.
20162	Enabled *bool `json:"enabled,omitempty"`
20163	// SinkRefs - List of sinks to be used if enabled. References the list of sinks in DiagnosticsDescription.
20164	SinkRefs *[]string `json:"sinkRefs,omitempty"`
20165}
20166
20167// BasicDiagnosticsSinkProperties properties of a DiagnosticsSink.
20168type BasicDiagnosticsSinkProperties interface {
20169	AsAzureInternalMonitoringPipelineSinkDescription() (*AzureInternalMonitoringPipelineSinkDescription, bool)
20170	AsDiagnosticsSinkProperties() (*DiagnosticsSinkProperties, bool)
20171}
20172
20173// DiagnosticsSinkProperties properties of a DiagnosticsSink.
20174type DiagnosticsSinkProperties struct {
20175	// Name - Name of the sink. This value is referenced by DiagnosticsReferenceDescription
20176	Name *string `json:"name,omitempty"`
20177	// Description - A description of the sink.
20178	Description *string `json:"description,omitempty"`
20179	// Kind - Possible values include: 'KindDiagnosticsSinkProperties', 'KindAzureInternalMonitoringPipeline'
20180	Kind KindBasicDiagnosticsSinkProperties `json:"kind,omitempty"`
20181}
20182
20183func unmarshalBasicDiagnosticsSinkProperties(body []byte) (BasicDiagnosticsSinkProperties, error) {
20184	var m map[string]interface{}
20185	err := json.Unmarshal(body, &m)
20186	if err != nil {
20187		return nil, err
20188	}
20189
20190	switch m["kind"] {
20191	case string(KindAzureInternalMonitoringPipeline):
20192		var aimpsd AzureInternalMonitoringPipelineSinkDescription
20193		err := json.Unmarshal(body, &aimpsd)
20194		return aimpsd, err
20195	default:
20196		var dsp DiagnosticsSinkProperties
20197		err := json.Unmarshal(body, &dsp)
20198		return dsp, err
20199	}
20200}
20201func unmarshalBasicDiagnosticsSinkPropertiesArray(body []byte) ([]BasicDiagnosticsSinkProperties, error) {
20202	var rawMessages []*json.RawMessage
20203	err := json.Unmarshal(body, &rawMessages)
20204	if err != nil {
20205		return nil, err
20206	}
20207
20208	dspArray := make([]BasicDiagnosticsSinkProperties, len(rawMessages))
20209
20210	for index, rawMessage := range rawMessages {
20211		dsp, err := unmarshalBasicDiagnosticsSinkProperties(*rawMessage)
20212		if err != nil {
20213			return nil, err
20214		}
20215		dspArray[index] = dsp
20216	}
20217	return dspArray, nil
20218}
20219
20220// MarshalJSON is the custom marshaler for DiagnosticsSinkProperties.
20221func (dsp DiagnosticsSinkProperties) MarshalJSON() ([]byte, error) {
20222	dsp.Kind = KindDiagnosticsSinkProperties
20223	objectMap := make(map[string]interface{})
20224	if dsp.Name != nil {
20225		objectMap["name"] = dsp.Name
20226	}
20227	if dsp.Description != nil {
20228		objectMap["description"] = dsp.Description
20229	}
20230	if dsp.Kind != "" {
20231		objectMap["kind"] = dsp.Kind
20232	}
20233	return json.Marshal(objectMap)
20234}
20235
20236// AsAzureInternalMonitoringPipelineSinkDescription is the BasicDiagnosticsSinkProperties implementation for DiagnosticsSinkProperties.
20237func (dsp DiagnosticsSinkProperties) AsAzureInternalMonitoringPipelineSinkDescription() (*AzureInternalMonitoringPipelineSinkDescription, bool) {
20238	return nil, false
20239}
20240
20241// AsDiagnosticsSinkProperties is the BasicDiagnosticsSinkProperties implementation for DiagnosticsSinkProperties.
20242func (dsp DiagnosticsSinkProperties) AsDiagnosticsSinkProperties() (*DiagnosticsSinkProperties, bool) {
20243	return &dsp, true
20244}
20245
20246// AsBasicDiagnosticsSinkProperties is the BasicDiagnosticsSinkProperties implementation for DiagnosticsSinkProperties.
20247func (dsp DiagnosticsSinkProperties) AsBasicDiagnosticsSinkProperties() (BasicDiagnosticsSinkProperties, bool) {
20248	return &dsp, true
20249}
20250
20251// DisableBackupDescription it describes the body parameters while disabling backup of a backup
20252// entity(Application/Service/Partition).
20253type DisableBackupDescription struct {
20254	// 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.
20255	CleanBackup *bool `json:"CleanBackup,omitempty"`
20256}
20257
20258// DiskInfo information about the disk
20259type DiskInfo struct {
20260	// Capacity - the disk size in bytes
20261	Capacity *string `json:"Capacity,omitempty"`
20262	// AvailableSpace - the available disk space in bytes
20263	AvailableSpace *string `json:"AvailableSpace,omitempty"`
20264}
20265
20266// DoublePropertyValue describes a Service Fabric property value of type Double.
20267type DoublePropertyValue struct {
20268	// Data - The data of the property value.
20269	Data *float64 `json:"Data,omitempty"`
20270	// Kind - Possible values include: 'KindPropertyValue', 'KindBinary', 'KindInt64', 'KindDouble', 'KindString', 'KindGUID'
20271	Kind KindBasicPropertyValue `json:"Kind,omitempty"`
20272}
20273
20274// MarshalJSON is the custom marshaler for DoublePropertyValue.
20275func (dpv DoublePropertyValue) MarshalJSON() ([]byte, error) {
20276	dpv.Kind = KindDouble
20277	objectMap := make(map[string]interface{})
20278	if dpv.Data != nil {
20279		objectMap["Data"] = dpv.Data
20280	}
20281	if dpv.Kind != "" {
20282		objectMap["Kind"] = dpv.Kind
20283	}
20284	return json.Marshal(objectMap)
20285}
20286
20287// AsBinaryPropertyValue is the BasicPropertyValue implementation for DoublePropertyValue.
20288func (dpv DoublePropertyValue) AsBinaryPropertyValue() (*BinaryPropertyValue, bool) {
20289	return nil, false
20290}
20291
20292// AsInt64PropertyValue is the BasicPropertyValue implementation for DoublePropertyValue.
20293func (dpv DoublePropertyValue) AsInt64PropertyValue() (*Int64PropertyValue, bool) {
20294	return nil, false
20295}
20296
20297// AsDoublePropertyValue is the BasicPropertyValue implementation for DoublePropertyValue.
20298func (dpv DoublePropertyValue) AsDoublePropertyValue() (*DoublePropertyValue, bool) {
20299	return &dpv, true
20300}
20301
20302// AsStringPropertyValue is the BasicPropertyValue implementation for DoublePropertyValue.
20303func (dpv DoublePropertyValue) AsStringPropertyValue() (*StringPropertyValue, bool) {
20304	return nil, false
20305}
20306
20307// AsGUIDPropertyValue is the BasicPropertyValue implementation for DoublePropertyValue.
20308func (dpv DoublePropertyValue) AsGUIDPropertyValue() (*GUIDPropertyValue, bool) {
20309	return nil, false
20310}
20311
20312// AsPropertyValue is the BasicPropertyValue implementation for DoublePropertyValue.
20313func (dpv DoublePropertyValue) AsPropertyValue() (*PropertyValue, bool) {
20314	return nil, false
20315}
20316
20317// AsBasicPropertyValue is the BasicPropertyValue implementation for DoublePropertyValue.
20318func (dpv DoublePropertyValue) AsBasicPropertyValue() (BasicPropertyValue, bool) {
20319	return &dpv, true
20320}
20321
20322// DsmsAzureBlobBackupStorageDescription describes the parameters for Dsms Azure blob store used for
20323// storing and enumerating backups.
20324type DsmsAzureBlobBackupStorageDescription struct {
20325	// StorageCredentialsSourceLocation - The source location of the storage credentials to connect to the Dsms Azure blob store.
20326	StorageCredentialsSourceLocation *string `json:"StorageCredentialsSourceLocation,omitempty"`
20327	// ContainerName - The name of the container in the blob store to store and enumerate backups from.
20328	ContainerName *string `json:"ContainerName,omitempty"`
20329	// FriendlyName - Friendly name for this backup storage.
20330	FriendlyName *string `json:"FriendlyName,omitempty"`
20331	// StorageKind - Possible values include: 'StorageKindBackupStorageDescription', 'StorageKindAzureBlobStore', 'StorageKindFileShare', 'StorageKindDsmsAzureBlobStore'
20332	StorageKind StorageKind `json:"StorageKind,omitempty"`
20333}
20334
20335// MarshalJSON is the custom marshaler for DsmsAzureBlobBackupStorageDescription.
20336func (dabbsd DsmsAzureBlobBackupStorageDescription) MarshalJSON() ([]byte, error) {
20337	dabbsd.StorageKind = StorageKindDsmsAzureBlobStore
20338	objectMap := make(map[string]interface{})
20339	if dabbsd.StorageCredentialsSourceLocation != nil {
20340		objectMap["StorageCredentialsSourceLocation"] = dabbsd.StorageCredentialsSourceLocation
20341	}
20342	if dabbsd.ContainerName != nil {
20343		objectMap["ContainerName"] = dabbsd.ContainerName
20344	}
20345	if dabbsd.FriendlyName != nil {
20346		objectMap["FriendlyName"] = dabbsd.FriendlyName
20347	}
20348	if dabbsd.StorageKind != "" {
20349		objectMap["StorageKind"] = dabbsd.StorageKind
20350	}
20351	return json.Marshal(objectMap)
20352}
20353
20354// AsAzureBlobBackupStorageDescription is the BasicBackupStorageDescription implementation for DsmsAzureBlobBackupStorageDescription.
20355func (dabbsd DsmsAzureBlobBackupStorageDescription) AsAzureBlobBackupStorageDescription() (*AzureBlobBackupStorageDescription, bool) {
20356	return nil, false
20357}
20358
20359// AsFileShareBackupStorageDescription is the BasicBackupStorageDescription implementation for DsmsAzureBlobBackupStorageDescription.
20360func (dabbsd DsmsAzureBlobBackupStorageDescription) AsFileShareBackupStorageDescription() (*FileShareBackupStorageDescription, bool) {
20361	return nil, false
20362}
20363
20364// AsDsmsAzureBlobBackupStorageDescription is the BasicBackupStorageDescription implementation for DsmsAzureBlobBackupStorageDescription.
20365func (dabbsd DsmsAzureBlobBackupStorageDescription) AsDsmsAzureBlobBackupStorageDescription() (*DsmsAzureBlobBackupStorageDescription, bool) {
20366	return &dabbsd, true
20367}
20368
20369// AsBackupStorageDescription is the BasicBackupStorageDescription implementation for DsmsAzureBlobBackupStorageDescription.
20370func (dabbsd DsmsAzureBlobBackupStorageDescription) AsBackupStorageDescription() (*BackupStorageDescription, bool) {
20371	return nil, false
20372}
20373
20374// AsBasicBackupStorageDescription is the BasicBackupStorageDescription implementation for DsmsAzureBlobBackupStorageDescription.
20375func (dabbsd DsmsAzureBlobBackupStorageDescription) AsBasicBackupStorageDescription() (BasicBackupStorageDescription, bool) {
20376	return &dabbsd, true
20377}
20378
20379// EnableBackupDescription specifies the parameters needed to enable periodic backup.
20380type EnableBackupDescription struct {
20381	// BackupPolicyName - Name of the backup policy to be used for enabling periodic backups.
20382	BackupPolicyName *string `json:"BackupPolicyName,omitempty"`
20383}
20384
20385// EndpointProperties describes a container endpoint.
20386type EndpointProperties struct {
20387	// Name - The name of the endpoint.
20388	Name *string `json:"name,omitempty"`
20389	// Port - Port used by the container.
20390	Port *int32 `json:"port,omitempty"`
20391}
20392
20393// EndpointRef describes a reference to a service endpoint.
20394type EndpointRef struct {
20395	// Name - Name of the endpoint.
20396	Name *string `json:"name,omitempty"`
20397}
20398
20399// EnsureAvailabilitySafetyCheck safety check that waits to ensure the availability of the partition. It
20400// waits until there are replicas available such that bringing down this replica will not cause
20401// availability loss for the partition.
20402type EnsureAvailabilitySafetyCheck struct {
20403	// PartitionID - Id of the partition which is undergoing the safety check.
20404	PartitionID *uuid.UUID `json:"PartitionId,omitempty"`
20405	// Kind - Possible values include: 'KindSafetyCheck', 'KindPartitionSafetyCheck', 'KindEnsureAvailability', 'KindEnsurePartitionQuorum', 'KindEnsureSeedNodeQuorum', 'KindWaitForInbuildReplica', 'KindWaitForPrimaryPlacement', 'KindWaitForPrimarySwap', 'KindWaitForReconfiguration'
20406	Kind KindBasicSafetyCheck `json:"Kind,omitempty"`
20407}
20408
20409// MarshalJSON is the custom marshaler for EnsureAvailabilitySafetyCheck.
20410func (easc EnsureAvailabilitySafetyCheck) MarshalJSON() ([]byte, error) {
20411	easc.Kind = KindEnsureAvailability
20412	objectMap := make(map[string]interface{})
20413	if easc.PartitionID != nil {
20414		objectMap["PartitionId"] = easc.PartitionID
20415	}
20416	if easc.Kind != "" {
20417		objectMap["Kind"] = easc.Kind
20418	}
20419	return json.Marshal(objectMap)
20420}
20421
20422// AsPartitionSafetyCheck is the BasicSafetyCheck implementation for EnsureAvailabilitySafetyCheck.
20423func (easc EnsureAvailabilitySafetyCheck) AsPartitionSafetyCheck() (*PartitionSafetyCheck, bool) {
20424	return nil, false
20425}
20426
20427// AsBasicPartitionSafetyCheck is the BasicSafetyCheck implementation for EnsureAvailabilitySafetyCheck.
20428func (easc EnsureAvailabilitySafetyCheck) AsBasicPartitionSafetyCheck() (BasicPartitionSafetyCheck, bool) {
20429	return &easc, true
20430}
20431
20432// AsEnsureAvailabilitySafetyCheck is the BasicSafetyCheck implementation for EnsureAvailabilitySafetyCheck.
20433func (easc EnsureAvailabilitySafetyCheck) AsEnsureAvailabilitySafetyCheck() (*EnsureAvailabilitySafetyCheck, bool) {
20434	return &easc, true
20435}
20436
20437// AsEnsurePartitionQuorumSafetyCheck is the BasicSafetyCheck implementation for EnsureAvailabilitySafetyCheck.
20438func (easc EnsureAvailabilitySafetyCheck) AsEnsurePartitionQuorumSafetyCheck() (*EnsurePartitionQuorumSafetyCheck, bool) {
20439	return nil, false
20440}
20441
20442// AsSeedNodeSafetyCheck is the BasicSafetyCheck implementation for EnsureAvailabilitySafetyCheck.
20443func (easc EnsureAvailabilitySafetyCheck) AsSeedNodeSafetyCheck() (*SeedNodeSafetyCheck, bool) {
20444	return nil, false
20445}
20446
20447// AsWaitForInbuildReplicaSafetyCheck is the BasicSafetyCheck implementation for EnsureAvailabilitySafetyCheck.
20448func (easc EnsureAvailabilitySafetyCheck) AsWaitForInbuildReplicaSafetyCheck() (*WaitForInbuildReplicaSafetyCheck, bool) {
20449	return nil, false
20450}
20451
20452// AsWaitForPrimaryPlacementSafetyCheck is the BasicSafetyCheck implementation for EnsureAvailabilitySafetyCheck.
20453func (easc EnsureAvailabilitySafetyCheck) AsWaitForPrimaryPlacementSafetyCheck() (*WaitForPrimaryPlacementSafetyCheck, bool) {
20454	return nil, false
20455}
20456
20457// AsWaitForPrimarySwapSafetyCheck is the BasicSafetyCheck implementation for EnsureAvailabilitySafetyCheck.
20458func (easc EnsureAvailabilitySafetyCheck) AsWaitForPrimarySwapSafetyCheck() (*WaitForPrimarySwapSafetyCheck, bool) {
20459	return nil, false
20460}
20461
20462// AsWaitForReconfigurationSafetyCheck is the BasicSafetyCheck implementation for EnsureAvailabilitySafetyCheck.
20463func (easc EnsureAvailabilitySafetyCheck) AsWaitForReconfigurationSafetyCheck() (*WaitForReconfigurationSafetyCheck, bool) {
20464	return nil, false
20465}
20466
20467// AsSafetyCheck is the BasicSafetyCheck implementation for EnsureAvailabilitySafetyCheck.
20468func (easc EnsureAvailabilitySafetyCheck) AsSafetyCheck() (*SafetyCheck, bool) {
20469	return nil, false
20470}
20471
20472// AsBasicSafetyCheck is the BasicSafetyCheck implementation for EnsureAvailabilitySafetyCheck.
20473func (easc EnsureAvailabilitySafetyCheck) AsBasicSafetyCheck() (BasicSafetyCheck, bool) {
20474	return &easc, true
20475}
20476
20477// EnsurePartitionQuorumSafetyCheck safety check that ensures that a quorum of replicas are not lost for a
20478// partition.
20479type EnsurePartitionQuorumSafetyCheck struct {
20480	// PartitionID - Id of the partition which is undergoing the safety check.
20481	PartitionID *uuid.UUID `json:"PartitionId,omitempty"`
20482	// Kind - Possible values include: 'KindSafetyCheck', 'KindPartitionSafetyCheck', 'KindEnsureAvailability', 'KindEnsurePartitionQuorum', 'KindEnsureSeedNodeQuorum', 'KindWaitForInbuildReplica', 'KindWaitForPrimaryPlacement', 'KindWaitForPrimarySwap', 'KindWaitForReconfiguration'
20483	Kind KindBasicSafetyCheck `json:"Kind,omitempty"`
20484}
20485
20486// MarshalJSON is the custom marshaler for EnsurePartitionQuorumSafetyCheck.
20487func (epqsc EnsurePartitionQuorumSafetyCheck) MarshalJSON() ([]byte, error) {
20488	epqsc.Kind = KindEnsurePartitionQuorum
20489	objectMap := make(map[string]interface{})
20490	if epqsc.PartitionID != nil {
20491		objectMap["PartitionId"] = epqsc.PartitionID
20492	}
20493	if epqsc.Kind != "" {
20494		objectMap["Kind"] = epqsc.Kind
20495	}
20496	return json.Marshal(objectMap)
20497}
20498
20499// AsPartitionSafetyCheck is the BasicSafetyCheck implementation for EnsurePartitionQuorumSafetyCheck.
20500func (epqsc EnsurePartitionQuorumSafetyCheck) AsPartitionSafetyCheck() (*PartitionSafetyCheck, bool) {
20501	return nil, false
20502}
20503
20504// AsBasicPartitionSafetyCheck is the BasicSafetyCheck implementation for EnsurePartitionQuorumSafetyCheck.
20505func (epqsc EnsurePartitionQuorumSafetyCheck) AsBasicPartitionSafetyCheck() (BasicPartitionSafetyCheck, bool) {
20506	return &epqsc, true
20507}
20508
20509// AsEnsureAvailabilitySafetyCheck is the BasicSafetyCheck implementation for EnsurePartitionQuorumSafetyCheck.
20510func (epqsc EnsurePartitionQuorumSafetyCheck) AsEnsureAvailabilitySafetyCheck() (*EnsureAvailabilitySafetyCheck, bool) {
20511	return nil, false
20512}
20513
20514// AsEnsurePartitionQuorumSafetyCheck is the BasicSafetyCheck implementation for EnsurePartitionQuorumSafetyCheck.
20515func (epqsc EnsurePartitionQuorumSafetyCheck) AsEnsurePartitionQuorumSafetyCheck() (*EnsurePartitionQuorumSafetyCheck, bool) {
20516	return &epqsc, true
20517}
20518
20519// AsSeedNodeSafetyCheck is the BasicSafetyCheck implementation for EnsurePartitionQuorumSafetyCheck.
20520func (epqsc EnsurePartitionQuorumSafetyCheck) AsSeedNodeSafetyCheck() (*SeedNodeSafetyCheck, bool) {
20521	return nil, false
20522}
20523
20524// AsWaitForInbuildReplicaSafetyCheck is the BasicSafetyCheck implementation for EnsurePartitionQuorumSafetyCheck.
20525func (epqsc EnsurePartitionQuorumSafetyCheck) AsWaitForInbuildReplicaSafetyCheck() (*WaitForInbuildReplicaSafetyCheck, bool) {
20526	return nil, false
20527}
20528
20529// AsWaitForPrimaryPlacementSafetyCheck is the BasicSafetyCheck implementation for EnsurePartitionQuorumSafetyCheck.
20530func (epqsc EnsurePartitionQuorumSafetyCheck) AsWaitForPrimaryPlacementSafetyCheck() (*WaitForPrimaryPlacementSafetyCheck, bool) {
20531	return nil, false
20532}
20533
20534// AsWaitForPrimarySwapSafetyCheck is the BasicSafetyCheck implementation for EnsurePartitionQuorumSafetyCheck.
20535func (epqsc EnsurePartitionQuorumSafetyCheck) AsWaitForPrimarySwapSafetyCheck() (*WaitForPrimarySwapSafetyCheck, bool) {
20536	return nil, false
20537}
20538
20539// AsWaitForReconfigurationSafetyCheck is the BasicSafetyCheck implementation for EnsurePartitionQuorumSafetyCheck.
20540func (epqsc EnsurePartitionQuorumSafetyCheck) AsWaitForReconfigurationSafetyCheck() (*WaitForReconfigurationSafetyCheck, bool) {
20541	return nil, false
20542}
20543
20544// AsSafetyCheck is the BasicSafetyCheck implementation for EnsurePartitionQuorumSafetyCheck.
20545func (epqsc EnsurePartitionQuorumSafetyCheck) AsSafetyCheck() (*SafetyCheck, bool) {
20546	return nil, false
20547}
20548
20549// AsBasicSafetyCheck is the BasicSafetyCheck implementation for EnsurePartitionQuorumSafetyCheck.
20550func (epqsc EnsurePartitionQuorumSafetyCheck) AsBasicSafetyCheck() (BasicSafetyCheck, bool) {
20551	return &epqsc, true
20552}
20553
20554// EntityHealth health information common to all entities in the cluster. It contains the aggregated health
20555// state, health events and unhealthy evaluation.
20556type EntityHealth struct {
20557	// AggregatedHealthState - The HealthState representing the aggregated health state of the entity computed by Health Manager.
20558	// The health evaluation of the entity reflects all events reported on the entity and its children (if any).
20559	// The aggregation is done by applying the desired health policy. Possible values include: 'HealthStateInvalid', 'HealthStateOk', 'HealthStateWarning', 'HealthStateError', 'HealthStateUnknown'
20560	AggregatedHealthState HealthState `json:"AggregatedHealthState,omitempty"`
20561	// HealthEvents - The list of health events reported on the entity.
20562	HealthEvents *[]HealthEvent `json:"HealthEvents,omitempty"`
20563	// UnhealthyEvaluations - The unhealthy evaluations that show why the current aggregated health state was returned by Health Manager.
20564	UnhealthyEvaluations *[]HealthEvaluationWrapper `json:"UnhealthyEvaluations,omitempty"`
20565	// HealthStatistics - Shows the health statistics for all children types of the queried entity.
20566	HealthStatistics *HealthStatistics `json:"HealthStatistics,omitempty"`
20567}
20568
20569// EntityHealthState a base type for the health state of various entities in the cluster. It contains the
20570// aggregated health state.
20571type EntityHealthState struct {
20572	// 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'
20573	AggregatedHealthState HealthState `json:"AggregatedHealthState,omitempty"`
20574}
20575
20576// EntityHealthStateChunk a base type for the health state chunk of various entities in the cluster. It
20577// contains the aggregated health state.
20578type EntityHealthStateChunk struct {
20579	// 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'
20580	HealthState HealthState `json:"HealthState,omitempty"`
20581}
20582
20583// EntityHealthStateChunkList a base type for the list of health state chunks found in the cluster. It
20584// contains the total number of health states that match the input filters.
20585type EntityHealthStateChunkList struct {
20586	// TotalCount - Total number of entity health state objects that match the specified filters from the cluster health chunk query description.
20587	TotalCount *int64 `json:"TotalCount,omitempty"`
20588}
20589
20590// EntityKindHealthStateCount represents health state count for entities of the specified entity kind.
20591type EntityKindHealthStateCount struct {
20592	// EntityKind - The entity kind for which health states are evaluated. Possible values include: 'EntityKindInvalid', 'EntityKindNode', 'EntityKindPartition', 'EntityKindService', 'EntityKindApplication', 'EntityKindReplica', 'EntityKindDeployedApplication', 'EntityKindDeployedServicePackage', 'EntityKindCluster'
20593	EntityKind EntityKind `json:"EntityKind,omitempty"`
20594	// HealthStateCount - The health state count for the entities of the specified kind.
20595	HealthStateCount *HealthStateCount `json:"HealthStateCount,omitempty"`
20596}
20597
20598// EnvironmentVariable describes an environment variable for the container.
20599type EnvironmentVariable struct {
20600	// Type - The type of the environment variable being given in value. Possible values include: 'ClearText', 'KeyVaultReference', 'SecretValueReference'
20601	Type EnvironmentVariableType `json:"type,omitempty"`
20602	// Name - The name of the environment variable.
20603	Name *string `json:"name,omitempty"`
20604	// Value - The value of the environment variable, will be processed based on the type provided.
20605	Value *string `json:"value,omitempty"`
20606}
20607
20608// Epoch an Epoch is a configuration number for the partition as a whole. When the configuration of the
20609// replica set changes, for example when the Primary replica changes, the operations that are replicated
20610// from the new Primary replica are said to be a new Epoch from the ones which were sent by the old Primary
20611// replica.
20612type Epoch struct {
20613	// 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.
20614	ConfigurationVersion *string `json:"ConfigurationVersion,omitempty"`
20615	// 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.
20616	DataLossVersion *string `json:"DataLossVersion,omitempty"`
20617}
20618
20619// EventHealthEvaluation represents health evaluation of a HealthEvent that was reported on the entity.
20620// The health evaluation is returned when evaluating health of an entity results in Error or Warning.
20621type EventHealthEvaluation struct {
20622	// 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.
20623	ConsiderWarningAsError *bool `json:"ConsiderWarningAsError,omitempty"`
20624	// UnhealthyEvent - Represents health information reported on a health entity, such as cluster, application or node, with additional metadata added by the Health Manager.
20625	UnhealthyEvent *HealthEvent `json:"UnhealthyEvent,omitempty"`
20626	// 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'
20627	AggregatedHealthState HealthState `json:"AggregatedHealthState,omitempty"`
20628	// Description - Description of the health evaluation, which represents a summary of the evaluation process.
20629	Description *string `json:"Description,omitempty"`
20630	// 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'
20631	Kind Kind `json:"Kind,omitempty"`
20632}
20633
20634// MarshalJSON is the custom marshaler for EventHealthEvaluation.
20635func (ehe EventHealthEvaluation) MarshalJSON() ([]byte, error) {
20636	ehe.Kind = KindEvent
20637	objectMap := make(map[string]interface{})
20638	if ehe.ConsiderWarningAsError != nil {
20639		objectMap["ConsiderWarningAsError"] = ehe.ConsiderWarningAsError
20640	}
20641	if ehe.UnhealthyEvent != nil {
20642		objectMap["UnhealthyEvent"] = ehe.UnhealthyEvent
20643	}
20644	if ehe.AggregatedHealthState != "" {
20645		objectMap["AggregatedHealthState"] = ehe.AggregatedHealthState
20646	}
20647	if ehe.Description != nil {
20648		objectMap["Description"] = ehe.Description
20649	}
20650	if ehe.Kind != "" {
20651		objectMap["Kind"] = ehe.Kind
20652	}
20653	return json.Marshal(objectMap)
20654}
20655
20656// AsApplicationHealthEvaluation is the BasicHealthEvaluation implementation for EventHealthEvaluation.
20657func (ehe EventHealthEvaluation) AsApplicationHealthEvaluation() (*ApplicationHealthEvaluation, bool) {
20658	return nil, false
20659}
20660
20661// AsApplicationsHealthEvaluation is the BasicHealthEvaluation implementation for EventHealthEvaluation.
20662func (ehe EventHealthEvaluation) AsApplicationsHealthEvaluation() (*ApplicationsHealthEvaluation, bool) {
20663	return nil, false
20664}
20665
20666// AsApplicationTypeApplicationsHealthEvaluation is the BasicHealthEvaluation implementation for EventHealthEvaluation.
20667func (ehe EventHealthEvaluation) AsApplicationTypeApplicationsHealthEvaluation() (*ApplicationTypeApplicationsHealthEvaluation, bool) {
20668	return nil, false
20669}
20670
20671// AsDeltaNodesCheckHealthEvaluation is the BasicHealthEvaluation implementation for EventHealthEvaluation.
20672func (ehe EventHealthEvaluation) AsDeltaNodesCheckHealthEvaluation() (*DeltaNodesCheckHealthEvaluation, bool) {
20673	return nil, false
20674}
20675
20676// AsDeployedApplicationHealthEvaluation is the BasicHealthEvaluation implementation for EventHealthEvaluation.
20677func (ehe EventHealthEvaluation) AsDeployedApplicationHealthEvaluation() (*DeployedApplicationHealthEvaluation, bool) {
20678	return nil, false
20679}
20680
20681// AsDeployedApplicationsHealthEvaluation is the BasicHealthEvaluation implementation for EventHealthEvaluation.
20682func (ehe EventHealthEvaluation) AsDeployedApplicationsHealthEvaluation() (*DeployedApplicationsHealthEvaluation, bool) {
20683	return nil, false
20684}
20685
20686// AsDeployedServicePackageHealthEvaluation is the BasicHealthEvaluation implementation for EventHealthEvaluation.
20687func (ehe EventHealthEvaluation) AsDeployedServicePackageHealthEvaluation() (*DeployedServicePackageHealthEvaluation, bool) {
20688	return nil, false
20689}
20690
20691// AsDeployedServicePackagesHealthEvaluation is the BasicHealthEvaluation implementation for EventHealthEvaluation.
20692func (ehe EventHealthEvaluation) AsDeployedServicePackagesHealthEvaluation() (*DeployedServicePackagesHealthEvaluation, bool) {
20693	return nil, false
20694}
20695
20696// AsEventHealthEvaluation is the BasicHealthEvaluation implementation for EventHealthEvaluation.
20697func (ehe EventHealthEvaluation) AsEventHealthEvaluation() (*EventHealthEvaluation, bool) {
20698	return &ehe, true
20699}
20700
20701// AsNodeHealthEvaluation is the BasicHealthEvaluation implementation for EventHealthEvaluation.
20702func (ehe EventHealthEvaluation) AsNodeHealthEvaluation() (*NodeHealthEvaluation, bool) {
20703	return nil, false
20704}
20705
20706// AsNodesHealthEvaluation is the BasicHealthEvaluation implementation for EventHealthEvaluation.
20707func (ehe EventHealthEvaluation) AsNodesHealthEvaluation() (*NodesHealthEvaluation, bool) {
20708	return nil, false
20709}
20710
20711// AsPartitionHealthEvaluation is the BasicHealthEvaluation implementation for EventHealthEvaluation.
20712func (ehe EventHealthEvaluation) AsPartitionHealthEvaluation() (*PartitionHealthEvaluation, bool) {
20713	return nil, false
20714}
20715
20716// AsPartitionsHealthEvaluation is the BasicHealthEvaluation implementation for EventHealthEvaluation.
20717func (ehe EventHealthEvaluation) AsPartitionsHealthEvaluation() (*PartitionsHealthEvaluation, bool) {
20718	return nil, false
20719}
20720
20721// AsReplicaHealthEvaluation is the BasicHealthEvaluation implementation for EventHealthEvaluation.
20722func (ehe EventHealthEvaluation) AsReplicaHealthEvaluation() (*ReplicaHealthEvaluation, bool) {
20723	return nil, false
20724}
20725
20726// AsReplicasHealthEvaluation is the BasicHealthEvaluation implementation for EventHealthEvaluation.
20727func (ehe EventHealthEvaluation) AsReplicasHealthEvaluation() (*ReplicasHealthEvaluation, bool) {
20728	return nil, false
20729}
20730
20731// AsServiceHealthEvaluation is the BasicHealthEvaluation implementation for EventHealthEvaluation.
20732func (ehe EventHealthEvaluation) AsServiceHealthEvaluation() (*ServiceHealthEvaluation, bool) {
20733	return nil, false
20734}
20735
20736// AsServicesHealthEvaluation is the BasicHealthEvaluation implementation for EventHealthEvaluation.
20737func (ehe EventHealthEvaluation) AsServicesHealthEvaluation() (*ServicesHealthEvaluation, bool) {
20738	return nil, false
20739}
20740
20741// AsSystemApplicationHealthEvaluation is the BasicHealthEvaluation implementation for EventHealthEvaluation.
20742func (ehe EventHealthEvaluation) AsSystemApplicationHealthEvaluation() (*SystemApplicationHealthEvaluation, bool) {
20743	return nil, false
20744}
20745
20746// AsUpgradeDomainDeltaNodesCheckHealthEvaluation is the BasicHealthEvaluation implementation for EventHealthEvaluation.
20747func (ehe EventHealthEvaluation) AsUpgradeDomainDeltaNodesCheckHealthEvaluation() (*UpgradeDomainDeltaNodesCheckHealthEvaluation, bool) {
20748	return nil, false
20749}
20750
20751// AsUpgradeDomainNodesHealthEvaluation is the BasicHealthEvaluation implementation for EventHealthEvaluation.
20752func (ehe EventHealthEvaluation) AsUpgradeDomainNodesHealthEvaluation() (*UpgradeDomainNodesHealthEvaluation, bool) {
20753	return nil, false
20754}
20755
20756// AsHealthEvaluation is the BasicHealthEvaluation implementation for EventHealthEvaluation.
20757func (ehe EventHealthEvaluation) AsHealthEvaluation() (*HealthEvaluation, bool) {
20758	return nil, false
20759}
20760
20761// AsBasicHealthEvaluation is the BasicHealthEvaluation implementation for EventHealthEvaluation.
20762func (ehe EventHealthEvaluation) AsBasicHealthEvaluation() (BasicHealthEvaluation, bool) {
20763	return &ehe, true
20764}
20765
20766// ExecutingFaultsChaosEvent describes a Chaos event that gets generated when Chaos has decided on the
20767// faults for an iteration. This Chaos event contains the details of the faults as a list of strings.
20768type ExecutingFaultsChaosEvent struct {
20769	// Faults - List of string description of the faults that Chaos decided to execute in an iteration.
20770	Faults *[]string `json:"Faults,omitempty"`
20771	// TimeStampUtc - The UTC timestamp when this Chaos event was generated.
20772	TimeStampUtc *date.Time `json:"TimeStampUtc,omitempty"`
20773	// Kind - Possible values include: 'KindChaosEvent', 'KindExecutingFaults', 'KindStarted', 'KindStopped', 'KindTestError', 'KindValidationFailed', 'KindWaiting'
20774	Kind KindBasicChaosEvent `json:"Kind,omitempty"`
20775}
20776
20777// MarshalJSON is the custom marshaler for ExecutingFaultsChaosEvent.
20778func (efce ExecutingFaultsChaosEvent) MarshalJSON() ([]byte, error) {
20779	efce.Kind = KindExecutingFaults
20780	objectMap := make(map[string]interface{})
20781	if efce.Faults != nil {
20782		objectMap["Faults"] = efce.Faults
20783	}
20784	if efce.TimeStampUtc != nil {
20785		objectMap["TimeStampUtc"] = efce.TimeStampUtc
20786	}
20787	if efce.Kind != "" {
20788		objectMap["Kind"] = efce.Kind
20789	}
20790	return json.Marshal(objectMap)
20791}
20792
20793// AsExecutingFaultsChaosEvent is the BasicChaosEvent implementation for ExecutingFaultsChaosEvent.
20794func (efce ExecutingFaultsChaosEvent) AsExecutingFaultsChaosEvent() (*ExecutingFaultsChaosEvent, bool) {
20795	return &efce, true
20796}
20797
20798// AsStartedChaosEvent is the BasicChaosEvent implementation for ExecutingFaultsChaosEvent.
20799func (efce ExecutingFaultsChaosEvent) AsStartedChaosEvent() (*StartedChaosEvent, bool) {
20800	return nil, false
20801}
20802
20803// AsStoppedChaosEvent is the BasicChaosEvent implementation for ExecutingFaultsChaosEvent.
20804func (efce ExecutingFaultsChaosEvent) AsStoppedChaosEvent() (*StoppedChaosEvent, bool) {
20805	return nil, false
20806}
20807
20808// AsTestErrorChaosEvent is the BasicChaosEvent implementation for ExecutingFaultsChaosEvent.
20809func (efce ExecutingFaultsChaosEvent) AsTestErrorChaosEvent() (*TestErrorChaosEvent, bool) {
20810	return nil, false
20811}
20812
20813// AsValidationFailedChaosEvent is the BasicChaosEvent implementation for ExecutingFaultsChaosEvent.
20814func (efce ExecutingFaultsChaosEvent) AsValidationFailedChaosEvent() (*ValidationFailedChaosEvent, bool) {
20815	return nil, false
20816}
20817
20818// AsWaitingChaosEvent is the BasicChaosEvent implementation for ExecutingFaultsChaosEvent.
20819func (efce ExecutingFaultsChaosEvent) AsWaitingChaosEvent() (*WaitingChaosEvent, bool) {
20820	return nil, false
20821}
20822
20823// AsChaosEvent is the BasicChaosEvent implementation for ExecutingFaultsChaosEvent.
20824func (efce ExecutingFaultsChaosEvent) AsChaosEvent() (*ChaosEvent, bool) {
20825	return nil, false
20826}
20827
20828// AsBasicChaosEvent is the BasicChaosEvent implementation for ExecutingFaultsChaosEvent.
20829func (efce ExecutingFaultsChaosEvent) AsBasicChaosEvent() (BasicChaosEvent, bool) {
20830	return &efce, true
20831}
20832
20833// BasicExecutionPolicy the execution policy of the service
20834type BasicExecutionPolicy interface {
20835	AsDefaultExecutionPolicy() (*DefaultExecutionPolicy, bool)
20836	AsRunToCompletionExecutionPolicy() (*RunToCompletionExecutionPolicy, bool)
20837	AsExecutionPolicy() (*ExecutionPolicy, bool)
20838}
20839
20840// ExecutionPolicy the execution policy of the service
20841type ExecutionPolicy struct {
20842	// Type - Possible values include: 'TypeExecutionPolicy', 'TypeDefault', 'TypeRunToCompletion'
20843	Type TypeBasicExecutionPolicy `json:"type,omitempty"`
20844}
20845
20846func unmarshalBasicExecutionPolicy(body []byte) (BasicExecutionPolicy, error) {
20847	var m map[string]interface{}
20848	err := json.Unmarshal(body, &m)
20849	if err != nil {
20850		return nil, err
20851	}
20852
20853	switch m["type"] {
20854	case string(TypeDefault):
20855		var dep DefaultExecutionPolicy
20856		err := json.Unmarshal(body, &dep)
20857		return dep, err
20858	case string(TypeRunToCompletion):
20859		var rtcep RunToCompletionExecutionPolicy
20860		err := json.Unmarshal(body, &rtcep)
20861		return rtcep, err
20862	default:
20863		var ep ExecutionPolicy
20864		err := json.Unmarshal(body, &ep)
20865		return ep, err
20866	}
20867}
20868func unmarshalBasicExecutionPolicyArray(body []byte) ([]BasicExecutionPolicy, error) {
20869	var rawMessages []*json.RawMessage
20870	err := json.Unmarshal(body, &rawMessages)
20871	if err != nil {
20872		return nil, err
20873	}
20874
20875	epArray := make([]BasicExecutionPolicy, len(rawMessages))
20876
20877	for index, rawMessage := range rawMessages {
20878		ep, err := unmarshalBasicExecutionPolicy(*rawMessage)
20879		if err != nil {
20880			return nil, err
20881		}
20882		epArray[index] = ep
20883	}
20884	return epArray, nil
20885}
20886
20887// MarshalJSON is the custom marshaler for ExecutionPolicy.
20888func (ep ExecutionPolicy) MarshalJSON() ([]byte, error) {
20889	ep.Type = TypeExecutionPolicy
20890	objectMap := make(map[string]interface{})
20891	if ep.Type != "" {
20892		objectMap["type"] = ep.Type
20893	}
20894	return json.Marshal(objectMap)
20895}
20896
20897// AsDefaultExecutionPolicy is the BasicExecutionPolicy implementation for ExecutionPolicy.
20898func (ep ExecutionPolicy) AsDefaultExecutionPolicy() (*DefaultExecutionPolicy, bool) {
20899	return nil, false
20900}
20901
20902// AsRunToCompletionExecutionPolicy is the BasicExecutionPolicy implementation for ExecutionPolicy.
20903func (ep ExecutionPolicy) AsRunToCompletionExecutionPolicy() (*RunToCompletionExecutionPolicy, bool) {
20904	return nil, false
20905}
20906
20907// AsExecutionPolicy is the BasicExecutionPolicy implementation for ExecutionPolicy.
20908func (ep ExecutionPolicy) AsExecutionPolicy() (*ExecutionPolicy, bool) {
20909	return &ep, true
20910}
20911
20912// AsBasicExecutionPolicy is the BasicExecutionPolicy implementation for ExecutionPolicy.
20913func (ep ExecutionPolicy) AsBasicExecutionPolicy() (BasicExecutionPolicy, bool) {
20914	return &ep, true
20915}
20916
20917// ExternalStoreProvisionApplicationTypeDescription describes the operation to register or provision an
20918// application type using an application package from an external store instead of a package uploaded to
20919// the Service Fabric image store.
20920type ExternalStoreProvisionApplicationTypeDescription struct {
20921	// 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.
20922	ApplicationPackageDownloadURI *string `json:"ApplicationPackageDownloadUri,omitempty"`
20923	// ApplicationTypeName - The application type name represents the name of the application type found in the application manifest.
20924	ApplicationTypeName *string `json:"ApplicationTypeName,omitempty"`
20925	// ApplicationTypeVersion - The application type version represents the version of the application type found in the application manifest.
20926	ApplicationTypeVersion *string `json:"ApplicationTypeVersion,omitempty"`
20927	// 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.
20928	Async *bool `json:"Async,omitempty"`
20929	// Kind - Possible values include: 'KindProvisionApplicationTypeDescriptionBase', 'KindImageStorePath', 'KindExternalStore'
20930	Kind KindBasicProvisionApplicationTypeDescriptionBase `json:"Kind,omitempty"`
20931}
20932
20933// MarshalJSON is the custom marshaler for ExternalStoreProvisionApplicationTypeDescription.
20934func (espatd ExternalStoreProvisionApplicationTypeDescription) MarshalJSON() ([]byte, error) {
20935	espatd.Kind = KindExternalStore
20936	objectMap := make(map[string]interface{})
20937	if espatd.ApplicationPackageDownloadURI != nil {
20938		objectMap["ApplicationPackageDownloadUri"] = espatd.ApplicationPackageDownloadURI
20939	}
20940	if espatd.ApplicationTypeName != nil {
20941		objectMap["ApplicationTypeName"] = espatd.ApplicationTypeName
20942	}
20943	if espatd.ApplicationTypeVersion != nil {
20944		objectMap["ApplicationTypeVersion"] = espatd.ApplicationTypeVersion
20945	}
20946	if espatd.Async != nil {
20947		objectMap["Async"] = espatd.Async
20948	}
20949	if espatd.Kind != "" {
20950		objectMap["Kind"] = espatd.Kind
20951	}
20952	return json.Marshal(objectMap)
20953}
20954
20955// AsProvisionApplicationTypeDescription is the BasicProvisionApplicationTypeDescriptionBase implementation for ExternalStoreProvisionApplicationTypeDescription.
20956func (espatd ExternalStoreProvisionApplicationTypeDescription) AsProvisionApplicationTypeDescription() (*ProvisionApplicationTypeDescription, bool) {
20957	return nil, false
20958}
20959
20960// AsExternalStoreProvisionApplicationTypeDescription is the BasicProvisionApplicationTypeDescriptionBase implementation for ExternalStoreProvisionApplicationTypeDescription.
20961func (espatd ExternalStoreProvisionApplicationTypeDescription) AsExternalStoreProvisionApplicationTypeDescription() (*ExternalStoreProvisionApplicationTypeDescription, bool) {
20962	return &espatd, true
20963}
20964
20965// AsProvisionApplicationTypeDescriptionBase is the BasicProvisionApplicationTypeDescriptionBase implementation for ExternalStoreProvisionApplicationTypeDescription.
20966func (espatd ExternalStoreProvisionApplicationTypeDescription) AsProvisionApplicationTypeDescriptionBase() (*ProvisionApplicationTypeDescriptionBase, bool) {
20967	return nil, false
20968}
20969
20970// AsBasicProvisionApplicationTypeDescriptionBase is the BasicProvisionApplicationTypeDescriptionBase implementation for ExternalStoreProvisionApplicationTypeDescription.
20971func (espatd ExternalStoreProvisionApplicationTypeDescription) AsBasicProvisionApplicationTypeDescriptionBase() (BasicProvisionApplicationTypeDescriptionBase, bool) {
20972	return &espatd, true
20973}
20974
20975// FabricCodeVersionInfo information about a Service Fabric code version.
20976type FabricCodeVersionInfo struct {
20977	// CodeVersion - The product version of Service Fabric.
20978	CodeVersion *string `json:"CodeVersion,omitempty"`
20979}
20980
20981// FabricConfigVersionInfo information about a Service Fabric config version.
20982type FabricConfigVersionInfo struct {
20983	// ConfigVersion - The config version of Service Fabric.
20984	ConfigVersion *string `json:"ConfigVersion,omitempty"`
20985}
20986
20987// FabricError the REST API operations for Service Fabric return standard HTTP status codes. This type
20988// defines the additional information returned from the Service Fabric API operations that are not
20989// successful.
20990type FabricError struct {
20991	// Error - Error object containing error code and error message.
20992	Error *FabricErrorError `json:"Error,omitempty"`
20993}
20994
20995// FabricErrorError error object containing error code and error message.
20996type FabricErrorError struct {
20997	// 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.
20998	//   - Possible values of the error code for HTTP status code 400 (Bad Request)
20999	//     - "FABRIC_E_INVALID_PARTITION_KEY"
21000	//     - "FABRIC_E_IMAGEBUILDER_VALIDATION_ERROR"
21001	//     - "FABRIC_E_INVALID_ADDRESS"
21002	//     - "FABRIC_E_APPLICATION_NOT_UPGRADING"
21003	//     - "FABRIC_E_APPLICATION_UPGRADE_VALIDATION_ERROR"
21004	//     - "FABRIC_E_FABRIC_NOT_UPGRADING"
21005	//     - "FABRIC_E_FABRIC_UPGRADE_VALIDATION_ERROR"
21006	//     - "FABRIC_E_INVALID_CONFIGURATION"
21007	//     - "FABRIC_E_INVALID_NAME_URI"
21008	//     - "FABRIC_E_PATH_TOO_LONG"
21009	//     - "FABRIC_E_KEY_TOO_LARGE"
21010	//     - "FABRIC_E_SERVICE_AFFINITY_CHAIN_NOT_SUPPORTED"
21011	//     - "FABRIC_E_INVALID_ATOMIC_GROUP"
21012	//     - "FABRIC_E_VALUE_EMPTY"
21013	//     - "FABRIC_E_BACKUP_IS_ENABLED"
21014	//     - "FABRIC_E_RESTORE_SOURCE_TARGET_PARTITION_MISMATCH"
21015	//     - "FABRIC_E_INVALID_FOR_STATELESS_SERVICES"
21016	//     - "FABRIC_E_INVALID_SERVICE_SCALING_POLICY"
21017	//     - "E_INVALIDARG"
21018	//   - Possible values of the error code for HTTP status code 404 (Not Found)
21019	//     - "FABRIC_E_NODE_NOT_FOUND"
21020	//     - "FABRIC_E_APPLICATION_TYPE_NOT_FOUND"
21021	//     - "FABRIC_E_APPLICATION_NOT_FOUND"
21022	//     - "FABRIC_E_SERVICE_TYPE_NOT_FOUND"
21023	//     - "FABRIC_E_SERVICE_DOES_NOT_EXIST"
21024	//     - "FABRIC_E_SERVICE_TYPE_TEMPLATE_NOT_FOUND"
21025	//     - "FABRIC_E_CONFIGURATION_SECTION_NOT_FOUND"
21026	//     - "FABRIC_E_PARTITION_NOT_FOUND"
21027	//     - "FABRIC_E_REPLICA_DOES_NOT_EXIST"
21028	//     - "FABRIC_E_SERVICE_GROUP_DOES_NOT_EXIST"
21029	//     - "FABRIC_E_CONFIGURATION_PARAMETER_NOT_FOUND"
21030	//     - "FABRIC_E_DIRECTORY_NOT_FOUND"
21031	//     - "FABRIC_E_FABRIC_VERSION_NOT_FOUND"
21032	//     - "FABRIC_E_FILE_NOT_FOUND"
21033	//     - "FABRIC_E_NAME_DOES_NOT_EXIST"
21034	//     - "FABRIC_E_PROPERTY_DOES_NOT_EXIST"
21035	//     - "FABRIC_E_ENUMERATION_COMPLETED"
21036	//     - "FABRIC_E_SERVICE_MANIFEST_NOT_FOUND"
21037	//     - "FABRIC_E_KEY_NOT_FOUND"
21038	//     - "FABRIC_E_HEALTH_ENTITY_NOT_FOUND"
21039	//     - "FABRIC_E_BACKUP_NOT_ENABLED"
21040	//     - "FABRIC_E_BACKUP_POLICY_NOT_EXISTING"
21041	//     - "FABRIC_E_FAULT_ANALYSIS_SERVICE_NOT_EXISTING"
21042	//     - "FABRIC_E_IMAGEBUILDER_RESERVED_DIRECTORY_ERROR"
21043	//   - Possible values of the error code for HTTP status code 409 (Conflict)
21044	//     - "FABRIC_E_APPLICATION_TYPE_ALREADY_EXISTS"
21045	//     - "FABRIC_E_APPLICATION_ALREADY_EXISTS"
21046	//     - "FABRIC_E_APPLICATION_ALREADY_IN_TARGET_VERSION"
21047	//     - "FABRIC_E_APPLICATION_TYPE_PROVISION_IN_PROGRESS"
21048	//     - "FABRIC_E_APPLICATION_UPGRADE_IN_PROGRESS"
21049	//     - "FABRIC_E_SERVICE_ALREADY_EXISTS"
21050	//     - "FABRIC_E_SERVICE_GROUP_ALREADY_EXISTS"
21051	//     - "FABRIC_E_APPLICATION_TYPE_IN_USE"
21052	//     - "FABRIC_E_FABRIC_ALREADY_IN_TARGET_VERSION"
21053	//     - "FABRIC_E_FABRIC_VERSION_ALREADY_EXISTS"
21054	//     - "FABRIC_E_FABRIC_VERSION_IN_USE"
21055	//     - "FABRIC_E_FABRIC_UPGRADE_IN_PROGRESS"
21056	//     - "FABRIC_E_NAME_ALREADY_EXISTS"
21057	//     - "FABRIC_E_NAME_NOT_EMPTY"
21058	//     - "FABRIC_E_PROPERTY_CHECK_FAILED"
21059	//     - "FABRIC_E_SERVICE_METADATA_MISMATCH"
21060	//     - "FABRIC_E_SERVICE_TYPE_MISMATCH"
21061	//     - "FABRIC_E_HEALTH_STALE_REPORT"
21062	//     - "FABRIC_E_SEQUENCE_NUMBER_CHECK_FAILED"
21063	//     - "FABRIC_E_NODE_HAS_NOT_STOPPED_YET"
21064	//     - "FABRIC_E_INSTANCE_ID_MISMATCH"
21065	//     - "FABRIC_E_BACKUP_IN_PROGRESS"
21066	//     - "FABRIC_E_RESTORE_IN_PROGRESS"
21067	//     - "FABRIC_E_BACKUP_POLICY_ALREADY_EXISTING"
21068	//   - Possible values of the error code for HTTP status code 413 (Request Entity Too Large)
21069	//     - "FABRIC_E_VALUE_TOO_LARGE"
21070	//   - Possible values of the error code for HTTP status code 500 (Internal Server Error)
21071	//     - "FABRIC_E_NODE_IS_UP"
21072	//     - "E_FAIL"
21073	//     - "FABRIC_E_SINGLE_INSTANCE_APPLICATION_ALREADY_EXISTS"
21074	//     - "FABRIC_E_SINGLE_INSTANCE_APPLICATION_NOT_FOUND"
21075	//     - "FABRIC_E_VOLUME_ALREADY_EXISTS"
21076	//     - "FABRIC_E_VOLUME_NOT_FOUND"
21077	//     - "SerializationError"
21078	//   - Possible values of the error code for HTTP status code 503 (Service Unavailable)
21079	//     - "FABRIC_E_NO_WRITE_QUORUM"
21080	//     - "FABRIC_E_NOT_PRIMARY"
21081	//     - "FABRIC_E_NOT_READY"
21082	//     - "FABRIC_E_RECONFIGURATION_PENDING"
21083	//     - "FABRIC_E_SERVICE_OFFLINE"
21084	//     - "E_ABORT"
21085	//     - "FABRIC_E_VALUE_TOO_LARGE"
21086	//   - Possible values of the error code for HTTP status code 504 (Gateway Timeout)
21087	//     - "FABRIC_E_COMMUNICATION_ERROR"
21088	//     - "FABRIC_E_OPERATION_NOT_COMPLETE"
21089	//     - "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'
21090	Code FabricErrorCodes `json:"Code,omitempty"`
21091	// Message - Error message.
21092	Message *string `json:"Message,omitempty"`
21093}
21094
21095// BasicFabricEvent represents the base for all Fabric Events.
21096type BasicFabricEvent interface {
21097	AsApplicationEvent() (*ApplicationEvent, bool)
21098	AsBasicApplicationEvent() (BasicApplicationEvent, bool)
21099	AsClusterEvent() (*ClusterEvent, bool)
21100	AsBasicClusterEvent() (BasicClusterEvent, bool)
21101	AsContainerInstanceEvent() (*ContainerInstanceEvent, bool)
21102	AsNodeEvent() (*NodeEvent, bool)
21103	AsBasicNodeEvent() (BasicNodeEvent, bool)
21104	AsPartitionAnalysisEvent() (*PartitionAnalysisEvent, bool)
21105	AsBasicPartitionAnalysisEvent() (BasicPartitionAnalysisEvent, bool)
21106	AsPartitionEvent() (*PartitionEvent, bool)
21107	AsBasicPartitionEvent() (BasicPartitionEvent, bool)
21108	AsReplicaEvent() (*ReplicaEvent, bool)
21109	AsBasicReplicaEvent() (BasicReplicaEvent, bool)
21110	AsServiceEvent() (*ServiceEvent, bool)
21111	AsBasicServiceEvent() (BasicServiceEvent, bool)
21112	AsApplicationCreatedEvent() (*ApplicationCreatedEvent, bool)
21113	AsApplicationDeletedEvent() (*ApplicationDeletedEvent, bool)
21114	AsApplicationNewHealthReportEvent() (*ApplicationNewHealthReportEvent, bool)
21115	AsApplicationHealthReportExpiredEvent() (*ApplicationHealthReportExpiredEvent, bool)
21116	AsApplicationUpgradeCompletedEvent() (*ApplicationUpgradeCompletedEvent, bool)
21117	AsApplicationUpgradeDomainCompletedEvent() (*ApplicationUpgradeDomainCompletedEvent, bool)
21118	AsApplicationUpgradeRollbackCompletedEvent() (*ApplicationUpgradeRollbackCompletedEvent, bool)
21119	AsApplicationUpgradeRollbackStartedEvent() (*ApplicationUpgradeRollbackStartedEvent, bool)
21120	AsApplicationUpgradeStartedEvent() (*ApplicationUpgradeStartedEvent, bool)
21121	AsDeployedApplicationNewHealthReportEvent() (*DeployedApplicationNewHealthReportEvent, bool)
21122	AsDeployedApplicationHealthReportExpiredEvent() (*DeployedApplicationHealthReportExpiredEvent, bool)
21123	AsApplicationProcessExitedEvent() (*ApplicationProcessExitedEvent, bool)
21124	AsApplicationContainerInstanceExitedEvent() (*ApplicationContainerInstanceExitedEvent, bool)
21125	AsNodeAbortedEvent() (*NodeAbortedEvent, bool)
21126	AsNodeAddedToClusterEvent() (*NodeAddedToClusterEvent, bool)
21127	AsNodeClosedEvent() (*NodeClosedEvent, bool)
21128	AsNodeDeactivateCompletedEvent() (*NodeDeactivateCompletedEvent, bool)
21129	AsNodeDeactivateStartedEvent() (*NodeDeactivateStartedEvent, bool)
21130	AsNodeDownEvent() (*NodeDownEvent, bool)
21131	AsNodeNewHealthReportEvent() (*NodeNewHealthReportEvent, bool)
21132	AsNodeHealthReportExpiredEvent() (*NodeHealthReportExpiredEvent, bool)
21133	AsNodeOpenSucceededEvent() (*NodeOpenSucceededEvent, bool)
21134	AsNodeOpenFailedEvent() (*NodeOpenFailedEvent, bool)
21135	AsNodeRemovedFromClusterEvent() (*NodeRemovedFromClusterEvent, bool)
21136	AsNodeUpEvent() (*NodeUpEvent, bool)
21137	AsPartitionNewHealthReportEvent() (*PartitionNewHealthReportEvent, bool)
21138	AsPartitionHealthReportExpiredEvent() (*PartitionHealthReportExpiredEvent, bool)
21139	AsPartitionReconfiguredEvent() (*PartitionReconfiguredEvent, bool)
21140	AsPartitionPrimaryMoveAnalysisEvent() (*PartitionPrimaryMoveAnalysisEvent, bool)
21141	AsServiceCreatedEvent() (*ServiceCreatedEvent, bool)
21142	AsServiceDeletedEvent() (*ServiceDeletedEvent, bool)
21143	AsServiceNewHealthReportEvent() (*ServiceNewHealthReportEvent, bool)
21144	AsServiceHealthReportExpiredEvent() (*ServiceHealthReportExpiredEvent, bool)
21145	AsDeployedServicePackageNewHealthReportEvent() (*DeployedServicePackageNewHealthReportEvent, bool)
21146	AsDeployedServicePackageHealthReportExpiredEvent() (*DeployedServicePackageHealthReportExpiredEvent, bool)
21147	AsStatefulReplicaNewHealthReportEvent() (*StatefulReplicaNewHealthReportEvent, bool)
21148	AsStatefulReplicaHealthReportExpiredEvent() (*StatefulReplicaHealthReportExpiredEvent, bool)
21149	AsStatelessReplicaNewHealthReportEvent() (*StatelessReplicaNewHealthReportEvent, bool)
21150	AsStatelessReplicaHealthReportExpiredEvent() (*StatelessReplicaHealthReportExpiredEvent, bool)
21151	AsClusterNewHealthReportEvent() (*ClusterNewHealthReportEvent, bool)
21152	AsClusterHealthReportExpiredEvent() (*ClusterHealthReportExpiredEvent, bool)
21153	AsClusterUpgradeCompletedEvent() (*ClusterUpgradeCompletedEvent, bool)
21154	AsClusterUpgradeDomainCompletedEvent() (*ClusterUpgradeDomainCompletedEvent, bool)
21155	AsClusterUpgradeRollbackCompletedEvent() (*ClusterUpgradeRollbackCompletedEvent, bool)
21156	AsClusterUpgradeRollbackStartedEvent() (*ClusterUpgradeRollbackStartedEvent, bool)
21157	AsClusterUpgradeStartedEvent() (*ClusterUpgradeStartedEvent, bool)
21158	AsChaosStoppedEvent() (*ChaosStoppedEvent, bool)
21159	AsChaosStartedEvent() (*ChaosStartedEvent, bool)
21160	AsChaosCodePackageRestartScheduledEvent() (*ChaosCodePackageRestartScheduledEvent, bool)
21161	AsChaosReplicaRemovalScheduledEvent() (*ChaosReplicaRemovalScheduledEvent, bool)
21162	AsChaosPartitionSecondaryMoveScheduledEvent() (*ChaosPartitionSecondaryMoveScheduledEvent, bool)
21163	AsChaosPartitionPrimaryMoveScheduledEvent() (*ChaosPartitionPrimaryMoveScheduledEvent, bool)
21164	AsChaosReplicaRestartScheduledEvent() (*ChaosReplicaRestartScheduledEvent, bool)
21165	AsChaosNodeRestartScheduledEvent() (*ChaosNodeRestartScheduledEvent, bool)
21166	AsFabricEvent() (*FabricEvent, bool)
21167}
21168
21169// FabricEvent represents the base for all Fabric Events.
21170type FabricEvent struct {
21171	// EventInstanceID - The identifier for the FabricEvent instance.
21172	EventInstanceID *uuid.UUID `json:"EventInstanceId,omitempty"`
21173	// Category - The category of event.
21174	Category *string `json:"Category,omitempty"`
21175	// TimeStamp - The time event was logged.
21176	TimeStamp *date.Time `json:"TimeStamp,omitempty"`
21177	// HasCorrelatedEvents - Shows there is existing related events available.
21178	HasCorrelatedEvents *bool `json:"HasCorrelatedEvents,omitempty"`
21179	// 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'
21180	Kind KindBasicFabricEvent `json:"Kind,omitempty"`
21181}
21182
21183func unmarshalBasicFabricEvent(body []byte) (BasicFabricEvent, error) {
21184	var m map[string]interface{}
21185	err := json.Unmarshal(body, &m)
21186	if err != nil {
21187		return nil, err
21188	}
21189
21190	switch m["Kind"] {
21191	case string(KindApplicationEvent):
21192		var ae ApplicationEvent
21193		err := json.Unmarshal(body, &ae)
21194		return ae, err
21195	case string(KindClusterEvent):
21196		var ce ClusterEvent
21197		err := json.Unmarshal(body, &ce)
21198		return ce, err
21199	case string(KindContainerInstanceEvent):
21200		var cie ContainerInstanceEvent
21201		err := json.Unmarshal(body, &cie)
21202		return cie, err
21203	case string(KindNodeEvent):
21204		var ne NodeEvent
21205		err := json.Unmarshal(body, &ne)
21206		return ne, err
21207	case string(KindPartitionAnalysisEvent):
21208		var pae PartitionAnalysisEvent
21209		err := json.Unmarshal(body, &pae)
21210		return pae, err
21211	case string(KindPartitionEvent):
21212		var peVar PartitionEvent
21213		err := json.Unmarshal(body, &peVar)
21214		return peVar, err
21215	case string(KindReplicaEvent):
21216		var re ReplicaEvent
21217		err := json.Unmarshal(body, &re)
21218		return re, err
21219	case string(KindServiceEvent):
21220		var se ServiceEvent
21221		err := json.Unmarshal(body, &se)
21222		return se, err
21223	case string(KindApplicationCreated):
21224		var ace ApplicationCreatedEvent
21225		err := json.Unmarshal(body, &ace)
21226		return ace, err
21227	case string(KindApplicationDeleted):
21228		var ade ApplicationDeletedEvent
21229		err := json.Unmarshal(body, &ade)
21230		return ade, err
21231	case string(KindApplicationNewHealthReport):
21232		var anhre ApplicationNewHealthReportEvent
21233		err := json.Unmarshal(body, &anhre)
21234		return anhre, err
21235	case string(KindApplicationHealthReportExpired):
21236		var ahree ApplicationHealthReportExpiredEvent
21237		err := json.Unmarshal(body, &ahree)
21238		return ahree, err
21239	case string(KindApplicationUpgradeCompleted):
21240		var auce ApplicationUpgradeCompletedEvent
21241		err := json.Unmarshal(body, &auce)
21242		return auce, err
21243	case string(KindApplicationUpgradeDomainCompleted):
21244		var audce ApplicationUpgradeDomainCompletedEvent
21245		err := json.Unmarshal(body, &audce)
21246		return audce, err
21247	case string(KindApplicationUpgradeRollbackCompleted):
21248		var aurce ApplicationUpgradeRollbackCompletedEvent
21249		err := json.Unmarshal(body, &aurce)
21250		return aurce, err
21251	case string(KindApplicationUpgradeRollbackStarted):
21252		var aurse ApplicationUpgradeRollbackStartedEvent
21253		err := json.Unmarshal(body, &aurse)
21254		return aurse, err
21255	case string(KindApplicationUpgradeStarted):
21256		var ause ApplicationUpgradeStartedEvent
21257		err := json.Unmarshal(body, &ause)
21258		return ause, err
21259	case string(KindDeployedApplicationNewHealthReport):
21260		var danhre DeployedApplicationNewHealthReportEvent
21261		err := json.Unmarshal(body, &danhre)
21262		return danhre, err
21263	case string(KindDeployedApplicationHealthReportExpired):
21264		var dahree DeployedApplicationHealthReportExpiredEvent
21265		err := json.Unmarshal(body, &dahree)
21266		return dahree, err
21267	case string(KindApplicationProcessExited):
21268		var apee ApplicationProcessExitedEvent
21269		err := json.Unmarshal(body, &apee)
21270		return apee, err
21271	case string(KindApplicationContainerInstanceExited):
21272		var aciee ApplicationContainerInstanceExitedEvent
21273		err := json.Unmarshal(body, &aciee)
21274		return aciee, err
21275	case string(KindNodeAborted):
21276		var nae NodeAbortedEvent
21277		err := json.Unmarshal(body, &nae)
21278		return nae, err
21279	case string(KindNodeAddedToCluster):
21280		var natce NodeAddedToClusterEvent
21281		err := json.Unmarshal(body, &natce)
21282		return natce, err
21283	case string(KindNodeClosed):
21284		var nce NodeClosedEvent
21285		err := json.Unmarshal(body, &nce)
21286		return nce, err
21287	case string(KindNodeDeactivateCompleted):
21288		var ndce NodeDeactivateCompletedEvent
21289		err := json.Unmarshal(body, &ndce)
21290		return ndce, err
21291	case string(KindNodeDeactivateStarted):
21292		var ndse NodeDeactivateStartedEvent
21293		err := json.Unmarshal(body, &ndse)
21294		return ndse, err
21295	case string(KindNodeDown):
21296		var nde NodeDownEvent
21297		err := json.Unmarshal(body, &nde)
21298		return nde, err
21299	case string(KindNodeNewHealthReport):
21300		var nnhre NodeNewHealthReportEvent
21301		err := json.Unmarshal(body, &nnhre)
21302		return nnhre, err
21303	case string(KindNodeHealthReportExpired):
21304		var nhree NodeHealthReportExpiredEvent
21305		err := json.Unmarshal(body, &nhree)
21306		return nhree, err
21307	case string(KindNodeOpenSucceeded):
21308		var nose NodeOpenSucceededEvent
21309		err := json.Unmarshal(body, &nose)
21310		return nose, err
21311	case string(KindNodeOpenFailed):
21312		var nofe NodeOpenFailedEvent
21313		err := json.Unmarshal(body, &nofe)
21314		return nofe, err
21315	case string(KindNodeRemovedFromCluster):
21316		var nrfce NodeRemovedFromClusterEvent
21317		err := json.Unmarshal(body, &nrfce)
21318		return nrfce, err
21319	case string(KindNodeUp):
21320		var nue NodeUpEvent
21321		err := json.Unmarshal(body, &nue)
21322		return nue, err
21323	case string(KindPartitionNewHealthReport):
21324		var pnhre PartitionNewHealthReportEvent
21325		err := json.Unmarshal(body, &pnhre)
21326		return pnhre, err
21327	case string(KindPartitionHealthReportExpired):
21328		var phree PartitionHealthReportExpiredEvent
21329		err := json.Unmarshal(body, &phree)
21330		return phree, err
21331	case string(KindPartitionReconfigured):
21332		var pre PartitionReconfiguredEvent
21333		err := json.Unmarshal(body, &pre)
21334		return pre, err
21335	case string(KindPartitionPrimaryMoveAnalysis):
21336		var ppmae PartitionPrimaryMoveAnalysisEvent
21337		err := json.Unmarshal(body, &ppmae)
21338		return ppmae, err
21339	case string(KindServiceCreated):
21340		var sce ServiceCreatedEvent
21341		err := json.Unmarshal(body, &sce)
21342		return sce, err
21343	case string(KindServiceDeleted):
21344		var sde ServiceDeletedEvent
21345		err := json.Unmarshal(body, &sde)
21346		return sde, err
21347	case string(KindServiceNewHealthReport):
21348		var snhre ServiceNewHealthReportEvent
21349		err := json.Unmarshal(body, &snhre)
21350		return snhre, err
21351	case string(KindServiceHealthReportExpired):
21352		var shree ServiceHealthReportExpiredEvent
21353		err := json.Unmarshal(body, &shree)
21354		return shree, err
21355	case string(KindDeployedServicePackageNewHealthReport):
21356		var dspnhre DeployedServicePackageNewHealthReportEvent
21357		err := json.Unmarshal(body, &dspnhre)
21358		return dspnhre, err
21359	case string(KindDeployedServicePackageHealthReportExpired):
21360		var dsphree DeployedServicePackageHealthReportExpiredEvent
21361		err := json.Unmarshal(body, &dsphree)
21362		return dsphree, err
21363	case string(KindStatefulReplicaNewHealthReport):
21364		var srnhre StatefulReplicaNewHealthReportEvent
21365		err := json.Unmarshal(body, &srnhre)
21366		return srnhre, err
21367	case string(KindStatefulReplicaHealthReportExpired):
21368		var srhree StatefulReplicaHealthReportExpiredEvent
21369		err := json.Unmarshal(body, &srhree)
21370		return srhree, err
21371	case string(KindStatelessReplicaNewHealthReport):
21372		var srnhre StatelessReplicaNewHealthReportEvent
21373		err := json.Unmarshal(body, &srnhre)
21374		return srnhre, err
21375	case string(KindStatelessReplicaHealthReportExpired):
21376		var srhree StatelessReplicaHealthReportExpiredEvent
21377		err := json.Unmarshal(body, &srhree)
21378		return srhree, err
21379	case string(KindClusterNewHealthReport):
21380		var cnhre ClusterNewHealthReportEvent
21381		err := json.Unmarshal(body, &cnhre)
21382		return cnhre, err
21383	case string(KindClusterHealthReportExpired):
21384		var chree ClusterHealthReportExpiredEvent
21385		err := json.Unmarshal(body, &chree)
21386		return chree, err
21387	case string(KindClusterUpgradeCompleted):
21388		var cuce ClusterUpgradeCompletedEvent
21389		err := json.Unmarshal(body, &cuce)
21390		return cuce, err
21391	case string(KindClusterUpgradeDomainCompleted):
21392		var cudce ClusterUpgradeDomainCompletedEvent
21393		err := json.Unmarshal(body, &cudce)
21394		return cudce, err
21395	case string(KindClusterUpgradeRollbackCompleted):
21396		var curce ClusterUpgradeRollbackCompletedEvent
21397		err := json.Unmarshal(body, &curce)
21398		return curce, err
21399	case string(KindClusterUpgradeRollbackStarted):
21400		var curse ClusterUpgradeRollbackStartedEvent
21401		err := json.Unmarshal(body, &curse)
21402		return curse, err
21403	case string(KindClusterUpgradeStarted):
21404		var cuse ClusterUpgradeStartedEvent
21405		err := json.Unmarshal(body, &cuse)
21406		return cuse, err
21407	case string(KindChaosStopped):
21408		var cse ChaosStoppedEvent
21409		err := json.Unmarshal(body, &cse)
21410		return cse, err
21411	case string(KindChaosStarted):
21412		var cse ChaosStartedEvent
21413		err := json.Unmarshal(body, &cse)
21414		return cse, err
21415	case string(KindChaosCodePackageRestartScheduled):
21416		var ccprse ChaosCodePackageRestartScheduledEvent
21417		err := json.Unmarshal(body, &ccprse)
21418		return ccprse, err
21419	case string(KindChaosReplicaRemovalScheduled):
21420		var crrse ChaosReplicaRemovalScheduledEvent
21421		err := json.Unmarshal(body, &crrse)
21422		return crrse, err
21423	case string(KindChaosPartitionSecondaryMoveScheduled):
21424		var cpsmse ChaosPartitionSecondaryMoveScheduledEvent
21425		err := json.Unmarshal(body, &cpsmse)
21426		return cpsmse, err
21427	case string(KindChaosPartitionPrimaryMoveScheduled):
21428		var cppmse ChaosPartitionPrimaryMoveScheduledEvent
21429		err := json.Unmarshal(body, &cppmse)
21430		return cppmse, err
21431	case string(KindChaosReplicaRestartScheduled):
21432		var crrse ChaosReplicaRestartScheduledEvent
21433		err := json.Unmarshal(body, &crrse)
21434		return crrse, err
21435	case string(KindChaosNodeRestartScheduled):
21436		var cnrse ChaosNodeRestartScheduledEvent
21437		err := json.Unmarshal(body, &cnrse)
21438		return cnrse, err
21439	default:
21440		var fe FabricEvent
21441		err := json.Unmarshal(body, &fe)
21442		return fe, err
21443	}
21444}
21445func unmarshalBasicFabricEventArray(body []byte) ([]BasicFabricEvent, error) {
21446	var rawMessages []*json.RawMessage
21447	err := json.Unmarshal(body, &rawMessages)
21448	if err != nil {
21449		return nil, err
21450	}
21451
21452	feArray := make([]BasicFabricEvent, len(rawMessages))
21453
21454	for index, rawMessage := range rawMessages {
21455		fe, err := unmarshalBasicFabricEvent(*rawMessage)
21456		if err != nil {
21457			return nil, err
21458		}
21459		feArray[index] = fe
21460	}
21461	return feArray, nil
21462}
21463
21464// MarshalJSON is the custom marshaler for FabricEvent.
21465func (fe FabricEvent) MarshalJSON() ([]byte, error) {
21466	fe.Kind = KindFabricEvent
21467	objectMap := make(map[string]interface{})
21468	if fe.EventInstanceID != nil {
21469		objectMap["EventInstanceId"] = fe.EventInstanceID
21470	}
21471	if fe.Category != nil {
21472		objectMap["Category"] = fe.Category
21473	}
21474	if fe.TimeStamp != nil {
21475		objectMap["TimeStamp"] = fe.TimeStamp
21476	}
21477	if fe.HasCorrelatedEvents != nil {
21478		objectMap["HasCorrelatedEvents"] = fe.HasCorrelatedEvents
21479	}
21480	if fe.Kind != "" {
21481		objectMap["Kind"] = fe.Kind
21482	}
21483	return json.Marshal(objectMap)
21484}
21485
21486// AsApplicationEvent is the BasicFabricEvent implementation for FabricEvent.
21487func (fe FabricEvent) AsApplicationEvent() (*ApplicationEvent, bool) {
21488	return nil, false
21489}
21490
21491// AsBasicApplicationEvent is the BasicFabricEvent implementation for FabricEvent.
21492func (fe FabricEvent) AsBasicApplicationEvent() (BasicApplicationEvent, bool) {
21493	return nil, false
21494}
21495
21496// AsClusterEvent is the BasicFabricEvent implementation for FabricEvent.
21497func (fe FabricEvent) AsClusterEvent() (*ClusterEvent, bool) {
21498	return nil, false
21499}
21500
21501// AsBasicClusterEvent is the BasicFabricEvent implementation for FabricEvent.
21502func (fe FabricEvent) AsBasicClusterEvent() (BasicClusterEvent, bool) {
21503	return nil, false
21504}
21505
21506// AsContainerInstanceEvent is the BasicFabricEvent implementation for FabricEvent.
21507func (fe FabricEvent) AsContainerInstanceEvent() (*ContainerInstanceEvent, bool) {
21508	return nil, false
21509}
21510
21511// AsNodeEvent is the BasicFabricEvent implementation for FabricEvent.
21512func (fe FabricEvent) AsNodeEvent() (*NodeEvent, bool) {
21513	return nil, false
21514}
21515
21516// AsBasicNodeEvent is the BasicFabricEvent implementation for FabricEvent.
21517func (fe FabricEvent) AsBasicNodeEvent() (BasicNodeEvent, bool) {
21518	return nil, false
21519}
21520
21521// AsPartitionAnalysisEvent is the BasicFabricEvent implementation for FabricEvent.
21522func (fe FabricEvent) AsPartitionAnalysisEvent() (*PartitionAnalysisEvent, bool) {
21523	return nil, false
21524}
21525
21526// AsBasicPartitionAnalysisEvent is the BasicFabricEvent implementation for FabricEvent.
21527func (fe FabricEvent) AsBasicPartitionAnalysisEvent() (BasicPartitionAnalysisEvent, bool) {
21528	return nil, false
21529}
21530
21531// AsPartitionEvent is the BasicFabricEvent implementation for FabricEvent.
21532func (fe FabricEvent) AsPartitionEvent() (*PartitionEvent, bool) {
21533	return nil, false
21534}
21535
21536// AsBasicPartitionEvent is the BasicFabricEvent implementation for FabricEvent.
21537func (fe FabricEvent) AsBasicPartitionEvent() (BasicPartitionEvent, bool) {
21538	return nil, false
21539}
21540
21541// AsReplicaEvent is the BasicFabricEvent implementation for FabricEvent.
21542func (fe FabricEvent) AsReplicaEvent() (*ReplicaEvent, bool) {
21543	return nil, false
21544}
21545
21546// AsBasicReplicaEvent is the BasicFabricEvent implementation for FabricEvent.
21547func (fe FabricEvent) AsBasicReplicaEvent() (BasicReplicaEvent, bool) {
21548	return nil, false
21549}
21550
21551// AsServiceEvent is the BasicFabricEvent implementation for FabricEvent.
21552func (fe FabricEvent) AsServiceEvent() (*ServiceEvent, bool) {
21553	return nil, false
21554}
21555
21556// AsBasicServiceEvent is the BasicFabricEvent implementation for FabricEvent.
21557func (fe FabricEvent) AsBasicServiceEvent() (BasicServiceEvent, bool) {
21558	return nil, false
21559}
21560
21561// AsApplicationCreatedEvent is the BasicFabricEvent implementation for FabricEvent.
21562func (fe FabricEvent) AsApplicationCreatedEvent() (*ApplicationCreatedEvent, bool) {
21563	return nil, false
21564}
21565
21566// AsApplicationDeletedEvent is the BasicFabricEvent implementation for FabricEvent.
21567func (fe FabricEvent) AsApplicationDeletedEvent() (*ApplicationDeletedEvent, bool) {
21568	return nil, false
21569}
21570
21571// AsApplicationNewHealthReportEvent is the BasicFabricEvent implementation for FabricEvent.
21572func (fe FabricEvent) AsApplicationNewHealthReportEvent() (*ApplicationNewHealthReportEvent, bool) {
21573	return nil, false
21574}
21575
21576// AsApplicationHealthReportExpiredEvent is the BasicFabricEvent implementation for FabricEvent.
21577func (fe FabricEvent) AsApplicationHealthReportExpiredEvent() (*ApplicationHealthReportExpiredEvent, bool) {
21578	return nil, false
21579}
21580
21581// AsApplicationUpgradeCompletedEvent is the BasicFabricEvent implementation for FabricEvent.
21582func (fe FabricEvent) AsApplicationUpgradeCompletedEvent() (*ApplicationUpgradeCompletedEvent, bool) {
21583	return nil, false
21584}
21585
21586// AsApplicationUpgradeDomainCompletedEvent is the BasicFabricEvent implementation for FabricEvent.
21587func (fe FabricEvent) AsApplicationUpgradeDomainCompletedEvent() (*ApplicationUpgradeDomainCompletedEvent, bool) {
21588	return nil, false
21589}
21590
21591// AsApplicationUpgradeRollbackCompletedEvent is the BasicFabricEvent implementation for FabricEvent.
21592func (fe FabricEvent) AsApplicationUpgradeRollbackCompletedEvent() (*ApplicationUpgradeRollbackCompletedEvent, bool) {
21593	return nil, false
21594}
21595
21596// AsApplicationUpgradeRollbackStartedEvent is the BasicFabricEvent implementation for FabricEvent.
21597func (fe FabricEvent) AsApplicationUpgradeRollbackStartedEvent() (*ApplicationUpgradeRollbackStartedEvent, bool) {
21598	return nil, false
21599}
21600
21601// AsApplicationUpgradeStartedEvent is the BasicFabricEvent implementation for FabricEvent.
21602func (fe FabricEvent) AsApplicationUpgradeStartedEvent() (*ApplicationUpgradeStartedEvent, bool) {
21603	return nil, false
21604}
21605
21606// AsDeployedApplicationNewHealthReportEvent is the BasicFabricEvent implementation for FabricEvent.
21607func (fe FabricEvent) AsDeployedApplicationNewHealthReportEvent() (*DeployedApplicationNewHealthReportEvent, bool) {
21608	return nil, false
21609}
21610
21611// AsDeployedApplicationHealthReportExpiredEvent is the BasicFabricEvent implementation for FabricEvent.
21612func (fe FabricEvent) AsDeployedApplicationHealthReportExpiredEvent() (*DeployedApplicationHealthReportExpiredEvent, bool) {
21613	return nil, false
21614}
21615
21616// AsApplicationProcessExitedEvent is the BasicFabricEvent implementation for FabricEvent.
21617func (fe FabricEvent) AsApplicationProcessExitedEvent() (*ApplicationProcessExitedEvent, bool) {
21618	return nil, false
21619}
21620
21621// AsApplicationContainerInstanceExitedEvent is the BasicFabricEvent implementation for FabricEvent.
21622func (fe FabricEvent) AsApplicationContainerInstanceExitedEvent() (*ApplicationContainerInstanceExitedEvent, bool) {
21623	return nil, false
21624}
21625
21626// AsNodeAbortedEvent is the BasicFabricEvent implementation for FabricEvent.
21627func (fe FabricEvent) AsNodeAbortedEvent() (*NodeAbortedEvent, bool) {
21628	return nil, false
21629}
21630
21631// AsNodeAddedToClusterEvent is the BasicFabricEvent implementation for FabricEvent.
21632func (fe FabricEvent) AsNodeAddedToClusterEvent() (*NodeAddedToClusterEvent, bool) {
21633	return nil, false
21634}
21635
21636// AsNodeClosedEvent is the BasicFabricEvent implementation for FabricEvent.
21637func (fe FabricEvent) AsNodeClosedEvent() (*NodeClosedEvent, bool) {
21638	return nil, false
21639}
21640
21641// AsNodeDeactivateCompletedEvent is the BasicFabricEvent implementation for FabricEvent.
21642func (fe FabricEvent) AsNodeDeactivateCompletedEvent() (*NodeDeactivateCompletedEvent, bool) {
21643	return nil, false
21644}
21645
21646// AsNodeDeactivateStartedEvent is the BasicFabricEvent implementation for FabricEvent.
21647func (fe FabricEvent) AsNodeDeactivateStartedEvent() (*NodeDeactivateStartedEvent, bool) {
21648	return nil, false
21649}
21650
21651// AsNodeDownEvent is the BasicFabricEvent implementation for FabricEvent.
21652func (fe FabricEvent) AsNodeDownEvent() (*NodeDownEvent, bool) {
21653	return nil, false
21654}
21655
21656// AsNodeNewHealthReportEvent is the BasicFabricEvent implementation for FabricEvent.
21657func (fe FabricEvent) AsNodeNewHealthReportEvent() (*NodeNewHealthReportEvent, bool) {
21658	return nil, false
21659}
21660
21661// AsNodeHealthReportExpiredEvent is the BasicFabricEvent implementation for FabricEvent.
21662func (fe FabricEvent) AsNodeHealthReportExpiredEvent() (*NodeHealthReportExpiredEvent, bool) {
21663	return nil, false
21664}
21665
21666// AsNodeOpenSucceededEvent is the BasicFabricEvent implementation for FabricEvent.
21667func (fe FabricEvent) AsNodeOpenSucceededEvent() (*NodeOpenSucceededEvent, bool) {
21668	return nil, false
21669}
21670
21671// AsNodeOpenFailedEvent is the BasicFabricEvent implementation for FabricEvent.
21672func (fe FabricEvent) AsNodeOpenFailedEvent() (*NodeOpenFailedEvent, bool) {
21673	return nil, false
21674}
21675
21676// AsNodeRemovedFromClusterEvent is the BasicFabricEvent implementation for FabricEvent.
21677func (fe FabricEvent) AsNodeRemovedFromClusterEvent() (*NodeRemovedFromClusterEvent, bool) {
21678	return nil, false
21679}
21680
21681// AsNodeUpEvent is the BasicFabricEvent implementation for FabricEvent.
21682func (fe FabricEvent) AsNodeUpEvent() (*NodeUpEvent, bool) {
21683	return nil, false
21684}
21685
21686// AsPartitionNewHealthReportEvent is the BasicFabricEvent implementation for FabricEvent.
21687func (fe FabricEvent) AsPartitionNewHealthReportEvent() (*PartitionNewHealthReportEvent, bool) {
21688	return nil, false
21689}
21690
21691// AsPartitionHealthReportExpiredEvent is the BasicFabricEvent implementation for FabricEvent.
21692func (fe FabricEvent) AsPartitionHealthReportExpiredEvent() (*PartitionHealthReportExpiredEvent, bool) {
21693	return nil, false
21694}
21695
21696// AsPartitionReconfiguredEvent is the BasicFabricEvent implementation for FabricEvent.
21697func (fe FabricEvent) AsPartitionReconfiguredEvent() (*PartitionReconfiguredEvent, bool) {
21698	return nil, false
21699}
21700
21701// AsPartitionPrimaryMoveAnalysisEvent is the BasicFabricEvent implementation for FabricEvent.
21702func (fe FabricEvent) AsPartitionPrimaryMoveAnalysisEvent() (*PartitionPrimaryMoveAnalysisEvent, bool) {
21703	return nil, false
21704}
21705
21706// AsServiceCreatedEvent is the BasicFabricEvent implementation for FabricEvent.
21707func (fe FabricEvent) AsServiceCreatedEvent() (*ServiceCreatedEvent, bool) {
21708	return nil, false
21709}
21710
21711// AsServiceDeletedEvent is the BasicFabricEvent implementation for FabricEvent.
21712func (fe FabricEvent) AsServiceDeletedEvent() (*ServiceDeletedEvent, bool) {
21713	return nil, false
21714}
21715
21716// AsServiceNewHealthReportEvent is the BasicFabricEvent implementation for FabricEvent.
21717func (fe FabricEvent) AsServiceNewHealthReportEvent() (*ServiceNewHealthReportEvent, bool) {
21718	return nil, false
21719}
21720
21721// AsServiceHealthReportExpiredEvent is the BasicFabricEvent implementation for FabricEvent.
21722func (fe FabricEvent) AsServiceHealthReportExpiredEvent() (*ServiceHealthReportExpiredEvent, bool) {
21723	return nil, false
21724}
21725
21726// AsDeployedServicePackageNewHealthReportEvent is the BasicFabricEvent implementation for FabricEvent.
21727func (fe FabricEvent) AsDeployedServicePackageNewHealthReportEvent() (*DeployedServicePackageNewHealthReportEvent, bool) {
21728	return nil, false
21729}
21730
21731// AsDeployedServicePackageHealthReportExpiredEvent is the BasicFabricEvent implementation for FabricEvent.
21732func (fe FabricEvent) AsDeployedServicePackageHealthReportExpiredEvent() (*DeployedServicePackageHealthReportExpiredEvent, bool) {
21733	return nil, false
21734}
21735
21736// AsStatefulReplicaNewHealthReportEvent is the BasicFabricEvent implementation for FabricEvent.
21737func (fe FabricEvent) AsStatefulReplicaNewHealthReportEvent() (*StatefulReplicaNewHealthReportEvent, bool) {
21738	return nil, false
21739}
21740
21741// AsStatefulReplicaHealthReportExpiredEvent is the BasicFabricEvent implementation for FabricEvent.
21742func (fe FabricEvent) AsStatefulReplicaHealthReportExpiredEvent() (*StatefulReplicaHealthReportExpiredEvent, bool) {
21743	return nil, false
21744}
21745
21746// AsStatelessReplicaNewHealthReportEvent is the BasicFabricEvent implementation for FabricEvent.
21747func (fe FabricEvent) AsStatelessReplicaNewHealthReportEvent() (*StatelessReplicaNewHealthReportEvent, bool) {
21748	return nil, false
21749}
21750
21751// AsStatelessReplicaHealthReportExpiredEvent is the BasicFabricEvent implementation for FabricEvent.
21752func (fe FabricEvent) AsStatelessReplicaHealthReportExpiredEvent() (*StatelessReplicaHealthReportExpiredEvent, bool) {
21753	return nil, false
21754}
21755
21756// AsClusterNewHealthReportEvent is the BasicFabricEvent implementation for FabricEvent.
21757func (fe FabricEvent) AsClusterNewHealthReportEvent() (*ClusterNewHealthReportEvent, bool) {
21758	return nil, false
21759}
21760
21761// AsClusterHealthReportExpiredEvent is the BasicFabricEvent implementation for FabricEvent.
21762func (fe FabricEvent) AsClusterHealthReportExpiredEvent() (*ClusterHealthReportExpiredEvent, bool) {
21763	return nil, false
21764}
21765
21766// AsClusterUpgradeCompletedEvent is the BasicFabricEvent implementation for FabricEvent.
21767func (fe FabricEvent) AsClusterUpgradeCompletedEvent() (*ClusterUpgradeCompletedEvent, bool) {
21768	return nil, false
21769}
21770
21771// AsClusterUpgradeDomainCompletedEvent is the BasicFabricEvent implementation for FabricEvent.
21772func (fe FabricEvent) AsClusterUpgradeDomainCompletedEvent() (*ClusterUpgradeDomainCompletedEvent, bool) {
21773	return nil, false
21774}
21775
21776// AsClusterUpgradeRollbackCompletedEvent is the BasicFabricEvent implementation for FabricEvent.
21777func (fe FabricEvent) AsClusterUpgradeRollbackCompletedEvent() (*ClusterUpgradeRollbackCompletedEvent, bool) {
21778	return nil, false
21779}
21780
21781// AsClusterUpgradeRollbackStartedEvent is the BasicFabricEvent implementation for FabricEvent.
21782func (fe FabricEvent) AsClusterUpgradeRollbackStartedEvent() (*ClusterUpgradeRollbackStartedEvent, bool) {
21783	return nil, false
21784}
21785
21786// AsClusterUpgradeStartedEvent is the BasicFabricEvent implementation for FabricEvent.
21787func (fe FabricEvent) AsClusterUpgradeStartedEvent() (*ClusterUpgradeStartedEvent, bool) {
21788	return nil, false
21789}
21790
21791// AsChaosStoppedEvent is the BasicFabricEvent implementation for FabricEvent.
21792func (fe FabricEvent) AsChaosStoppedEvent() (*ChaosStoppedEvent, bool) {
21793	return nil, false
21794}
21795
21796// AsChaosStartedEvent is the BasicFabricEvent implementation for FabricEvent.
21797func (fe FabricEvent) AsChaosStartedEvent() (*ChaosStartedEvent, bool) {
21798	return nil, false
21799}
21800
21801// AsChaosCodePackageRestartScheduledEvent is the BasicFabricEvent implementation for FabricEvent.
21802func (fe FabricEvent) AsChaosCodePackageRestartScheduledEvent() (*ChaosCodePackageRestartScheduledEvent, bool) {
21803	return nil, false
21804}
21805
21806// AsChaosReplicaRemovalScheduledEvent is the BasicFabricEvent implementation for FabricEvent.
21807func (fe FabricEvent) AsChaosReplicaRemovalScheduledEvent() (*ChaosReplicaRemovalScheduledEvent, bool) {
21808	return nil, false
21809}
21810
21811// AsChaosPartitionSecondaryMoveScheduledEvent is the BasicFabricEvent implementation for FabricEvent.
21812func (fe FabricEvent) AsChaosPartitionSecondaryMoveScheduledEvent() (*ChaosPartitionSecondaryMoveScheduledEvent, bool) {
21813	return nil, false
21814}
21815
21816// AsChaosPartitionPrimaryMoveScheduledEvent is the BasicFabricEvent implementation for FabricEvent.
21817func (fe FabricEvent) AsChaosPartitionPrimaryMoveScheduledEvent() (*ChaosPartitionPrimaryMoveScheduledEvent, bool) {
21818	return nil, false
21819}
21820
21821// AsChaosReplicaRestartScheduledEvent is the BasicFabricEvent implementation for FabricEvent.
21822func (fe FabricEvent) AsChaosReplicaRestartScheduledEvent() (*ChaosReplicaRestartScheduledEvent, bool) {
21823	return nil, false
21824}
21825
21826// AsChaosNodeRestartScheduledEvent is the BasicFabricEvent implementation for FabricEvent.
21827func (fe FabricEvent) AsChaosNodeRestartScheduledEvent() (*ChaosNodeRestartScheduledEvent, bool) {
21828	return nil, false
21829}
21830
21831// AsFabricEvent is the BasicFabricEvent implementation for FabricEvent.
21832func (fe FabricEvent) AsFabricEvent() (*FabricEvent, bool) {
21833	return &fe, true
21834}
21835
21836// AsBasicFabricEvent is the BasicFabricEvent implementation for FabricEvent.
21837func (fe FabricEvent) AsBasicFabricEvent() (BasicFabricEvent, bool) {
21838	return &fe, true
21839}
21840
21841// FailedPropertyBatchInfo derived from PropertyBatchInfo. Represents the property batch failing. Contains
21842// information about the specific batch failure.
21843type FailedPropertyBatchInfo struct {
21844	// ErrorMessage - The error message of the failed operation. Describes the exception thrown due to the first unsuccessful operation in the property batch.
21845	ErrorMessage *string `json:"ErrorMessage,omitempty"`
21846	// OperationIndex - The index of the unsuccessful operation in the property batch.
21847	OperationIndex *int32 `json:"OperationIndex,omitempty"`
21848	// Kind - Possible values include: 'KindPropertyBatchInfo', 'KindSuccessful', 'KindFailed'
21849	Kind KindBasicPropertyBatchInfo `json:"Kind,omitempty"`
21850}
21851
21852// MarshalJSON is the custom marshaler for FailedPropertyBatchInfo.
21853func (fpbi FailedPropertyBatchInfo) MarshalJSON() ([]byte, error) {
21854	fpbi.Kind = KindFailed
21855	objectMap := make(map[string]interface{})
21856	if fpbi.ErrorMessage != nil {
21857		objectMap["ErrorMessage"] = fpbi.ErrorMessage
21858	}
21859	if fpbi.OperationIndex != nil {
21860		objectMap["OperationIndex"] = fpbi.OperationIndex
21861	}
21862	if fpbi.Kind != "" {
21863		objectMap["Kind"] = fpbi.Kind
21864	}
21865	return json.Marshal(objectMap)
21866}
21867
21868// AsSuccessfulPropertyBatchInfo is the BasicPropertyBatchInfo implementation for FailedPropertyBatchInfo.
21869func (fpbi FailedPropertyBatchInfo) AsSuccessfulPropertyBatchInfo() (*SuccessfulPropertyBatchInfo, bool) {
21870	return nil, false
21871}
21872
21873// AsFailedPropertyBatchInfo is the BasicPropertyBatchInfo implementation for FailedPropertyBatchInfo.
21874func (fpbi FailedPropertyBatchInfo) AsFailedPropertyBatchInfo() (*FailedPropertyBatchInfo, bool) {
21875	return &fpbi, true
21876}
21877
21878// AsPropertyBatchInfo is the BasicPropertyBatchInfo implementation for FailedPropertyBatchInfo.
21879func (fpbi FailedPropertyBatchInfo) AsPropertyBatchInfo() (*PropertyBatchInfo, bool) {
21880	return nil, false
21881}
21882
21883// AsBasicPropertyBatchInfo is the BasicPropertyBatchInfo implementation for FailedPropertyBatchInfo.
21884func (fpbi FailedPropertyBatchInfo) AsBasicPropertyBatchInfo() (BasicPropertyBatchInfo, bool) {
21885	return &fpbi, true
21886}
21887
21888// FailedUpgradeDomainProgressObject the detailed upgrade progress for nodes in the current upgrade domain
21889// at the point of failure.
21890type FailedUpgradeDomainProgressObject struct {
21891	// DomainName - The name of the upgrade domain
21892	DomainName *string `json:"DomainName,omitempty"`
21893	// NodeUpgradeProgressList - List of upgrading nodes and their statuses
21894	NodeUpgradeProgressList *[]NodeUpgradeProgressInfo `json:"NodeUpgradeProgressList,omitempty"`
21895}
21896
21897// FailureUpgradeDomainProgressInfo information about the upgrade domain progress at the time of upgrade
21898// failure.
21899type FailureUpgradeDomainProgressInfo struct {
21900	// DomainName - The name of the upgrade domain
21901	DomainName *string `json:"DomainName,omitempty"`
21902	// NodeUpgradeProgressList - List of upgrading nodes and their statuses
21903	NodeUpgradeProgressList *[]NodeUpgradeProgressInfo `json:"NodeUpgradeProgressList,omitempty"`
21904}
21905
21906// FileInfo information about a image store file.
21907type FileInfo struct {
21908	// FileSize - The size of file in bytes.
21909	FileSize *string `json:"FileSize,omitempty"`
21910	// FileVersion - Information about the version of image store file.
21911	FileVersion *FileVersion `json:"FileVersion,omitempty"`
21912	// ModifiedDate - The date and time when the image store file was last modified.
21913	ModifiedDate *date.Time `json:"ModifiedDate,omitempty"`
21914	// StoreRelativePath - The file path relative to the image store root path.
21915	StoreRelativePath *string `json:"StoreRelativePath,omitempty"`
21916}
21917
21918// FileShareBackupStorageDescription describes the parameters for file share storage used for storing or
21919// enumerating backups.
21920type FileShareBackupStorageDescription struct {
21921	// Path - UNC path of the file share where to store or enumerate backups from.
21922	Path *string `json:"Path,omitempty"`
21923	// PrimaryUserName - Primary user name to access the file share.
21924	PrimaryUserName *string `json:"PrimaryUserName,omitempty"`
21925	// PrimaryPassword - Primary password to access the share location.
21926	PrimaryPassword *string `json:"PrimaryPassword,omitempty"`
21927	// SecondaryUserName - Secondary user name to access the file share.
21928	SecondaryUserName *string `json:"SecondaryUserName,omitempty"`
21929	// SecondaryPassword - Secondary password to access the share location
21930	SecondaryPassword *string `json:"SecondaryPassword,omitempty"`
21931	// FriendlyName - Friendly name for this backup storage.
21932	FriendlyName *string `json:"FriendlyName,omitempty"`
21933	// StorageKind - Possible values include: 'StorageKindBackupStorageDescription', 'StorageKindAzureBlobStore', 'StorageKindFileShare', 'StorageKindDsmsAzureBlobStore'
21934	StorageKind StorageKind `json:"StorageKind,omitempty"`
21935}
21936
21937// MarshalJSON is the custom marshaler for FileShareBackupStorageDescription.
21938func (fsbsd FileShareBackupStorageDescription) MarshalJSON() ([]byte, error) {
21939	fsbsd.StorageKind = StorageKindFileShare
21940	objectMap := make(map[string]interface{})
21941	if fsbsd.Path != nil {
21942		objectMap["Path"] = fsbsd.Path
21943	}
21944	if fsbsd.PrimaryUserName != nil {
21945		objectMap["PrimaryUserName"] = fsbsd.PrimaryUserName
21946	}
21947	if fsbsd.PrimaryPassword != nil {
21948		objectMap["PrimaryPassword"] = fsbsd.PrimaryPassword
21949	}
21950	if fsbsd.SecondaryUserName != nil {
21951		objectMap["SecondaryUserName"] = fsbsd.SecondaryUserName
21952	}
21953	if fsbsd.SecondaryPassword != nil {
21954		objectMap["SecondaryPassword"] = fsbsd.SecondaryPassword
21955	}
21956	if fsbsd.FriendlyName != nil {
21957		objectMap["FriendlyName"] = fsbsd.FriendlyName
21958	}
21959	if fsbsd.StorageKind != "" {
21960		objectMap["StorageKind"] = fsbsd.StorageKind
21961	}
21962	return json.Marshal(objectMap)
21963}
21964
21965// AsAzureBlobBackupStorageDescription is the BasicBackupStorageDescription implementation for FileShareBackupStorageDescription.
21966func (fsbsd FileShareBackupStorageDescription) AsAzureBlobBackupStorageDescription() (*AzureBlobBackupStorageDescription, bool) {
21967	return nil, false
21968}
21969
21970// AsFileShareBackupStorageDescription is the BasicBackupStorageDescription implementation for FileShareBackupStorageDescription.
21971func (fsbsd FileShareBackupStorageDescription) AsFileShareBackupStorageDescription() (*FileShareBackupStorageDescription, bool) {
21972	return &fsbsd, true
21973}
21974
21975// AsDsmsAzureBlobBackupStorageDescription is the BasicBackupStorageDescription implementation for FileShareBackupStorageDescription.
21976func (fsbsd FileShareBackupStorageDescription) AsDsmsAzureBlobBackupStorageDescription() (*DsmsAzureBlobBackupStorageDescription, bool) {
21977	return nil, false
21978}
21979
21980// AsBackupStorageDescription is the BasicBackupStorageDescription implementation for FileShareBackupStorageDescription.
21981func (fsbsd FileShareBackupStorageDescription) AsBackupStorageDescription() (*BackupStorageDescription, bool) {
21982	return nil, false
21983}
21984
21985// AsBasicBackupStorageDescription is the BasicBackupStorageDescription implementation for FileShareBackupStorageDescription.
21986func (fsbsd FileShareBackupStorageDescription) AsBasicBackupStorageDescription() (BasicBackupStorageDescription, bool) {
21987	return &fsbsd, true
21988}
21989
21990// FileVersion information about the version of image store file.
21991type FileVersion struct {
21992	// VersionNumber - The current image store version number for the file is used in image store for checking whether it need to be updated.
21993	VersionNumber *string `json:"VersionNumber,omitempty"`
21994	// EpochDataLossNumber - The epoch data loss number of image store replica when this file entry was updated or created.
21995	EpochDataLossNumber *string `json:"EpochDataLossNumber,omitempty"`
21996	// EpochConfigurationNumber - The epoch configuration version number of the image store replica when this file entry was created or updated.
21997	EpochConfigurationNumber *string `json:"EpochConfigurationNumber,omitempty"`
21998}
21999
22000// FolderInfo information about a image store folder. It includes how many files this folder contains and
22001// its image store relative path.
22002type FolderInfo struct {
22003	// StoreRelativePath - The remote location within image store. This path is relative to the image store root.
22004	StoreRelativePath *string `json:"StoreRelativePath,omitempty"`
22005	// FileCount - The number of files from within the image store folder.
22006	FileCount *string `json:"FileCount,omitempty"`
22007}
22008
22009// FolderSizeInfo information of a image store folder size
22010type FolderSizeInfo struct {
22011	autorest.Response `json:"-"`
22012	// StoreRelativePath - The remote location within image store. This path is relative to the image store root.
22013	StoreRelativePath *string `json:"StoreRelativePath,omitempty"`
22014	// FolderSize - The size of folder in bytes.
22015	FolderSize *string `json:"FolderSize,omitempty"`
22016}
22017
22018// FrequencyBasedBackupScheduleDescription describes the frequency based backup schedule.
22019type FrequencyBasedBackupScheduleDescription struct {
22020	// 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.
22021	Interval *string `json:"Interval,omitempty"`
22022	// ScheduleKind - Possible values include: 'ScheduleKindBackupScheduleDescription', 'ScheduleKindFrequencyBased', 'ScheduleKindTimeBased'
22023	ScheduleKind ScheduleKind `json:"ScheduleKind,omitempty"`
22024}
22025
22026// MarshalJSON is the custom marshaler for FrequencyBasedBackupScheduleDescription.
22027func (fbbsd FrequencyBasedBackupScheduleDescription) MarshalJSON() ([]byte, error) {
22028	fbbsd.ScheduleKind = ScheduleKindFrequencyBased
22029	objectMap := make(map[string]interface{})
22030	if fbbsd.Interval != nil {
22031		objectMap["Interval"] = fbbsd.Interval
22032	}
22033	if fbbsd.ScheduleKind != "" {
22034		objectMap["ScheduleKind"] = fbbsd.ScheduleKind
22035	}
22036	return json.Marshal(objectMap)
22037}
22038
22039// AsFrequencyBasedBackupScheduleDescription is the BasicBackupScheduleDescription implementation for FrequencyBasedBackupScheduleDescription.
22040func (fbbsd FrequencyBasedBackupScheduleDescription) AsFrequencyBasedBackupScheduleDescription() (*FrequencyBasedBackupScheduleDescription, bool) {
22041	return &fbbsd, true
22042}
22043
22044// AsTimeBasedBackupScheduleDescription is the BasicBackupScheduleDescription implementation for FrequencyBasedBackupScheduleDescription.
22045func (fbbsd FrequencyBasedBackupScheduleDescription) AsTimeBasedBackupScheduleDescription() (*TimeBasedBackupScheduleDescription, bool) {
22046	return nil, false
22047}
22048
22049// AsBackupScheduleDescription is the BasicBackupScheduleDescription implementation for FrequencyBasedBackupScheduleDescription.
22050func (fbbsd FrequencyBasedBackupScheduleDescription) AsBackupScheduleDescription() (*BackupScheduleDescription, bool) {
22051	return nil, false
22052}
22053
22054// AsBasicBackupScheduleDescription is the BasicBackupScheduleDescription implementation for FrequencyBasedBackupScheduleDescription.
22055func (fbbsd FrequencyBasedBackupScheduleDescription) AsBasicBackupScheduleDescription() (BasicBackupScheduleDescription, bool) {
22056	return &fbbsd, true
22057}
22058
22059// GatewayDestination describes destination endpoint for routing traffic.
22060type GatewayDestination struct {
22061	// ApplicationName - Name of the service fabric Mesh application.
22062	ApplicationName *string `json:"applicationName,omitempty"`
22063	// ServiceName - service that contains the endpoint.
22064	ServiceName *string `json:"serviceName,omitempty"`
22065	// EndpointName - name of the endpoint in the service.
22066	EndpointName *string `json:"endpointName,omitempty"`
22067}
22068
22069// GatewayProperties describes properties of a gateway resource.
22070type GatewayProperties struct {
22071	// Description - User readable description of the gateway.
22072	Description *string `json:"description,omitempty"`
22073	// SourceNetwork - Network the gateway should listen on for requests.
22074	SourceNetwork *NetworkRef `json:"sourceNetwork,omitempty"`
22075	// DestinationNetwork - Network that the Application is using.
22076	DestinationNetwork *NetworkRef `json:"destinationNetwork,omitempty"`
22077	// TCP - Configuration for tcp connectivity for this gateway.
22078	TCP *[]TCPConfig `json:"tcp,omitempty"`
22079	// HTTP - Configuration for http connectivity for this gateway.
22080	HTTP *[]HTTPConfig `json:"http,omitempty"`
22081	// Status - READ-ONLY; Status of the resource. Possible values include: 'ResourceStatusUnknown', 'ResourceStatusReady', 'ResourceStatusUpgrading', 'ResourceStatusCreating', 'ResourceStatusDeleting', 'ResourceStatusFailed'
22082	Status ResourceStatus `json:"status,omitempty"`
22083	// StatusDetails - READ-ONLY; Gives additional information about the current status of the gateway.
22084	StatusDetails *string `json:"statusDetails,omitempty"`
22085	// IPAddress - READ-ONLY; IP address of the gateway. This is populated in the response and is ignored for incoming requests.
22086	IPAddress *string `json:"ipAddress,omitempty"`
22087}
22088
22089// MarshalJSON is the custom marshaler for GatewayProperties.
22090func (gp GatewayProperties) MarshalJSON() ([]byte, error) {
22091	objectMap := make(map[string]interface{})
22092	if gp.Description != nil {
22093		objectMap["description"] = gp.Description
22094	}
22095	if gp.SourceNetwork != nil {
22096		objectMap["sourceNetwork"] = gp.SourceNetwork
22097	}
22098	if gp.DestinationNetwork != nil {
22099		objectMap["destinationNetwork"] = gp.DestinationNetwork
22100	}
22101	if gp.TCP != nil {
22102		objectMap["tcp"] = gp.TCP
22103	}
22104	if gp.HTTP != nil {
22105		objectMap["http"] = gp.HTTP
22106	}
22107	return json.Marshal(objectMap)
22108}
22109
22110// GatewayResourceDescription this type describes a gateway resource.
22111type GatewayResourceDescription struct {
22112	autorest.Response `json:"-"`
22113	// Name - Name of the Gateway resource.
22114	Name *string `json:"name,omitempty"`
22115	// GatewayProperties - Describes properties of a gateway resource.
22116	*GatewayProperties `json:"properties,omitempty"`
22117}
22118
22119// MarshalJSON is the custom marshaler for GatewayResourceDescription.
22120func (grd GatewayResourceDescription) MarshalJSON() ([]byte, error) {
22121	objectMap := make(map[string]interface{})
22122	if grd.Name != nil {
22123		objectMap["name"] = grd.Name
22124	}
22125	if grd.GatewayProperties != nil {
22126		objectMap["properties"] = grd.GatewayProperties
22127	}
22128	return json.Marshal(objectMap)
22129}
22130
22131// UnmarshalJSON is the custom unmarshaler for GatewayResourceDescription struct.
22132func (grd *GatewayResourceDescription) UnmarshalJSON(body []byte) error {
22133	var m map[string]*json.RawMessage
22134	err := json.Unmarshal(body, &m)
22135	if err != nil {
22136		return err
22137	}
22138	for k, v := range m {
22139		switch k {
22140		case "name":
22141			if v != nil {
22142				var name string
22143				err = json.Unmarshal(*v, &name)
22144				if err != nil {
22145					return err
22146				}
22147				grd.Name = &name
22148			}
22149		case "properties":
22150			if v != nil {
22151				var gatewayProperties GatewayProperties
22152				err = json.Unmarshal(*v, &gatewayProperties)
22153				if err != nil {
22154					return err
22155				}
22156				grd.GatewayProperties = &gatewayProperties
22157			}
22158		}
22159	}
22160
22161	return nil
22162}
22163
22164// GetBackupByStorageQueryDescription describes additional filters to be applied, while listing backups,
22165// and backup storage details from where to fetch the backups.
22166type GetBackupByStorageQueryDescription struct {
22167	// StartDateTimeFilter - Specifies the start date time in ISO8601 from which to enumerate backups. If not specified, backups are enumerated from the beginning.
22168	StartDateTimeFilter *date.Time `json:"StartDateTimeFilter,omitempty"`
22169	// EndDateTimeFilter - Specifies the end date time in ISO8601 till which to enumerate backups. If not specified, backups are enumerated till the end.
22170	EndDateTimeFilter *date.Time `json:"EndDateTimeFilter,omitempty"`
22171	// Latest - If specified as true, gets the most recent backup (within the specified time range) for every partition under the specified backup entity.
22172	Latest *bool `json:"Latest,omitempty"`
22173	// 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.
22174	Storage BasicBackupStorageDescription `json:"Storage,omitempty"`
22175	// BackupEntity - Indicates the entity for which to enumerate backups.
22176	BackupEntity BasicBackupEntity `json:"BackupEntity,omitempty"`
22177}
22178
22179// UnmarshalJSON is the custom unmarshaler for GetBackupByStorageQueryDescription struct.
22180func (gbbsqd *GetBackupByStorageQueryDescription) UnmarshalJSON(body []byte) error {
22181	var m map[string]*json.RawMessage
22182	err := json.Unmarshal(body, &m)
22183	if err != nil {
22184		return err
22185	}
22186	for k, v := range m {
22187		switch k {
22188		case "StartDateTimeFilter":
22189			if v != nil {
22190				var startDateTimeFilter date.Time
22191				err = json.Unmarshal(*v, &startDateTimeFilter)
22192				if err != nil {
22193					return err
22194				}
22195				gbbsqd.StartDateTimeFilter = &startDateTimeFilter
22196			}
22197		case "EndDateTimeFilter":
22198			if v != nil {
22199				var endDateTimeFilter date.Time
22200				err = json.Unmarshal(*v, &endDateTimeFilter)
22201				if err != nil {
22202					return err
22203				}
22204				gbbsqd.EndDateTimeFilter = &endDateTimeFilter
22205			}
22206		case "Latest":
22207			if v != nil {
22208				var latest bool
22209				err = json.Unmarshal(*v, &latest)
22210				if err != nil {
22211					return err
22212				}
22213				gbbsqd.Latest = &latest
22214			}
22215		case "Storage":
22216			if v != nil {
22217				storage, err := unmarshalBasicBackupStorageDescription(*v)
22218				if err != nil {
22219					return err
22220				}
22221				gbbsqd.Storage = storage
22222			}
22223		case "BackupEntity":
22224			if v != nil {
22225				backupEntity, err := unmarshalBasicBackupEntity(*v)
22226				if err != nil {
22227					return err
22228				}
22229				gbbsqd.BackupEntity = backupEntity
22230			}
22231		}
22232	}
22233
22234	return nil
22235}
22236
22237// GetPropertyBatchOperation represents a PropertyBatchOperation that gets the specified property if it
22238// exists.
22239// Note that if one PropertyBatchOperation in a PropertyBatch fails,
22240// the entire batch fails and cannot be committed in a transactional manner.
22241type GetPropertyBatchOperation struct {
22242	// IncludeValue - Whether or not to return the property value with the metadata.
22243	// True if values should be returned with the metadata; False to return only property metadata.
22244	IncludeValue *bool `json:"IncludeValue,omitempty"`
22245	// PropertyName - The name of the Service Fabric property.
22246	PropertyName *string `json:"PropertyName,omitempty"`
22247	// Kind - Possible values include: 'KindPropertyBatchOperation', 'KindCheckExists', 'KindCheckSequence', 'KindCheckValue', 'KindDelete', 'KindGet', 'KindPut'
22248	Kind KindBasicPropertyBatchOperation `json:"Kind,omitempty"`
22249}
22250
22251// MarshalJSON is the custom marshaler for GetPropertyBatchOperation.
22252func (gpbo GetPropertyBatchOperation) MarshalJSON() ([]byte, error) {
22253	gpbo.Kind = KindGet
22254	objectMap := make(map[string]interface{})
22255	if gpbo.IncludeValue != nil {
22256		objectMap["IncludeValue"] = gpbo.IncludeValue
22257	}
22258	if gpbo.PropertyName != nil {
22259		objectMap["PropertyName"] = gpbo.PropertyName
22260	}
22261	if gpbo.Kind != "" {
22262		objectMap["Kind"] = gpbo.Kind
22263	}
22264	return json.Marshal(objectMap)
22265}
22266
22267// AsCheckExistsPropertyBatchOperation is the BasicPropertyBatchOperation implementation for GetPropertyBatchOperation.
22268func (gpbo GetPropertyBatchOperation) AsCheckExistsPropertyBatchOperation() (*CheckExistsPropertyBatchOperation, bool) {
22269	return nil, false
22270}
22271
22272// AsCheckSequencePropertyBatchOperation is the BasicPropertyBatchOperation implementation for GetPropertyBatchOperation.
22273func (gpbo GetPropertyBatchOperation) AsCheckSequencePropertyBatchOperation() (*CheckSequencePropertyBatchOperation, bool) {
22274	return nil, false
22275}
22276
22277// AsCheckValuePropertyBatchOperation is the BasicPropertyBatchOperation implementation for GetPropertyBatchOperation.
22278func (gpbo GetPropertyBatchOperation) AsCheckValuePropertyBatchOperation() (*CheckValuePropertyBatchOperation, bool) {
22279	return nil, false
22280}
22281
22282// AsDeletePropertyBatchOperation is the BasicPropertyBatchOperation implementation for GetPropertyBatchOperation.
22283func (gpbo GetPropertyBatchOperation) AsDeletePropertyBatchOperation() (*DeletePropertyBatchOperation, bool) {
22284	return nil, false
22285}
22286
22287// AsGetPropertyBatchOperation is the BasicPropertyBatchOperation implementation for GetPropertyBatchOperation.
22288func (gpbo GetPropertyBatchOperation) AsGetPropertyBatchOperation() (*GetPropertyBatchOperation, bool) {
22289	return &gpbo, true
22290}
22291
22292// AsPutPropertyBatchOperation is the BasicPropertyBatchOperation implementation for GetPropertyBatchOperation.
22293func (gpbo GetPropertyBatchOperation) AsPutPropertyBatchOperation() (*PutPropertyBatchOperation, bool) {
22294	return nil, false
22295}
22296
22297// AsPropertyBatchOperation is the BasicPropertyBatchOperation implementation for GetPropertyBatchOperation.
22298func (gpbo GetPropertyBatchOperation) AsPropertyBatchOperation() (*PropertyBatchOperation, bool) {
22299	return nil, false
22300}
22301
22302// AsBasicPropertyBatchOperation is the BasicPropertyBatchOperation implementation for GetPropertyBatchOperation.
22303func (gpbo GetPropertyBatchOperation) AsBasicPropertyBatchOperation() (BasicPropertyBatchOperation, bool) {
22304	return &gpbo, true
22305}
22306
22307// GUIDPropertyValue describes a Service Fabric property value of type Guid.
22308type GUIDPropertyValue struct {
22309	// Data - The data of the property value.
22310	Data *uuid.UUID `json:"Data,omitempty"`
22311	// Kind - Possible values include: 'KindPropertyValue', 'KindBinary', 'KindInt64', 'KindDouble', 'KindString', 'KindGUID'
22312	Kind KindBasicPropertyValue `json:"Kind,omitempty"`
22313}
22314
22315// MarshalJSON is the custom marshaler for GUIDPropertyValue.
22316func (gpv GUIDPropertyValue) MarshalJSON() ([]byte, error) {
22317	gpv.Kind = KindGUID
22318	objectMap := make(map[string]interface{})
22319	if gpv.Data != nil {
22320		objectMap["Data"] = gpv.Data
22321	}
22322	if gpv.Kind != "" {
22323		objectMap["Kind"] = gpv.Kind
22324	}
22325	return json.Marshal(objectMap)
22326}
22327
22328// AsBinaryPropertyValue is the BasicPropertyValue implementation for GUIDPropertyValue.
22329func (gpv GUIDPropertyValue) AsBinaryPropertyValue() (*BinaryPropertyValue, bool) {
22330	return nil, false
22331}
22332
22333// AsInt64PropertyValue is the BasicPropertyValue implementation for GUIDPropertyValue.
22334func (gpv GUIDPropertyValue) AsInt64PropertyValue() (*Int64PropertyValue, bool) {
22335	return nil, false
22336}
22337
22338// AsDoublePropertyValue is the BasicPropertyValue implementation for GUIDPropertyValue.
22339func (gpv GUIDPropertyValue) AsDoublePropertyValue() (*DoublePropertyValue, bool) {
22340	return nil, false
22341}
22342
22343// AsStringPropertyValue is the BasicPropertyValue implementation for GUIDPropertyValue.
22344func (gpv GUIDPropertyValue) AsStringPropertyValue() (*StringPropertyValue, bool) {
22345	return nil, false
22346}
22347
22348// AsGUIDPropertyValue is the BasicPropertyValue implementation for GUIDPropertyValue.
22349func (gpv GUIDPropertyValue) AsGUIDPropertyValue() (*GUIDPropertyValue, bool) {
22350	return &gpv, true
22351}
22352
22353// AsPropertyValue is the BasicPropertyValue implementation for GUIDPropertyValue.
22354func (gpv GUIDPropertyValue) AsPropertyValue() (*PropertyValue, bool) {
22355	return nil, false
22356}
22357
22358// AsBasicPropertyValue is the BasicPropertyValue implementation for GUIDPropertyValue.
22359func (gpv GUIDPropertyValue) AsBasicPropertyValue() (BasicPropertyValue, bool) {
22360	return &gpv, true
22361}
22362
22363// BasicHealthEvaluation represents a health evaluation which describes the data and the algorithm used by health
22364// manager to evaluate the health of an entity.
22365type BasicHealthEvaluation interface {
22366	AsApplicationHealthEvaluation() (*ApplicationHealthEvaluation, bool)
22367	AsApplicationsHealthEvaluation() (*ApplicationsHealthEvaluation, bool)
22368	AsApplicationTypeApplicationsHealthEvaluation() (*ApplicationTypeApplicationsHealthEvaluation, bool)
22369	AsDeltaNodesCheckHealthEvaluation() (*DeltaNodesCheckHealthEvaluation, bool)
22370	AsDeployedApplicationHealthEvaluation() (*DeployedApplicationHealthEvaluation, bool)
22371	AsDeployedApplicationsHealthEvaluation() (*DeployedApplicationsHealthEvaluation, bool)
22372	AsDeployedServicePackageHealthEvaluation() (*DeployedServicePackageHealthEvaluation, bool)
22373	AsDeployedServicePackagesHealthEvaluation() (*DeployedServicePackagesHealthEvaluation, bool)
22374	AsEventHealthEvaluation() (*EventHealthEvaluation, bool)
22375	AsNodeHealthEvaluation() (*NodeHealthEvaluation, bool)
22376	AsNodesHealthEvaluation() (*NodesHealthEvaluation, bool)
22377	AsPartitionHealthEvaluation() (*PartitionHealthEvaluation, bool)
22378	AsPartitionsHealthEvaluation() (*PartitionsHealthEvaluation, bool)
22379	AsReplicaHealthEvaluation() (*ReplicaHealthEvaluation, bool)
22380	AsReplicasHealthEvaluation() (*ReplicasHealthEvaluation, bool)
22381	AsServiceHealthEvaluation() (*ServiceHealthEvaluation, bool)
22382	AsServicesHealthEvaluation() (*ServicesHealthEvaluation, bool)
22383	AsSystemApplicationHealthEvaluation() (*SystemApplicationHealthEvaluation, bool)
22384	AsUpgradeDomainDeltaNodesCheckHealthEvaluation() (*UpgradeDomainDeltaNodesCheckHealthEvaluation, bool)
22385	AsUpgradeDomainNodesHealthEvaluation() (*UpgradeDomainNodesHealthEvaluation, bool)
22386	AsHealthEvaluation() (*HealthEvaluation, bool)
22387}
22388
22389// HealthEvaluation represents a health evaluation which describes the data and the algorithm used by health
22390// manager to evaluate the health of an entity.
22391type HealthEvaluation struct {
22392	// 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'
22393	AggregatedHealthState HealthState `json:"AggregatedHealthState,omitempty"`
22394	// Description - Description of the health evaluation, which represents a summary of the evaluation process.
22395	Description *string `json:"Description,omitempty"`
22396	// 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'
22397	Kind Kind `json:"Kind,omitempty"`
22398}
22399
22400func unmarshalBasicHealthEvaluation(body []byte) (BasicHealthEvaluation, error) {
22401	var m map[string]interface{}
22402	err := json.Unmarshal(body, &m)
22403	if err != nil {
22404		return nil, err
22405	}
22406
22407	switch m["Kind"] {
22408	case string(KindApplication):
22409		var ahe ApplicationHealthEvaluation
22410		err := json.Unmarshal(body, &ahe)
22411		return ahe, err
22412	case string(KindApplications):
22413		var ahe ApplicationsHealthEvaluation
22414		err := json.Unmarshal(body, &ahe)
22415		return ahe, err
22416	case string(KindApplicationTypeApplications):
22417		var atahe ApplicationTypeApplicationsHealthEvaluation
22418		err := json.Unmarshal(body, &atahe)
22419		return atahe, err
22420	case string(KindDeltaNodesCheck):
22421		var dnche DeltaNodesCheckHealthEvaluation
22422		err := json.Unmarshal(body, &dnche)
22423		return dnche, err
22424	case string(KindDeployedApplication):
22425		var dahe DeployedApplicationHealthEvaluation
22426		err := json.Unmarshal(body, &dahe)
22427		return dahe, err
22428	case string(KindDeployedApplications):
22429		var dahe DeployedApplicationsHealthEvaluation
22430		err := json.Unmarshal(body, &dahe)
22431		return dahe, err
22432	case string(KindDeployedServicePackage):
22433		var dsphe DeployedServicePackageHealthEvaluation
22434		err := json.Unmarshal(body, &dsphe)
22435		return dsphe, err
22436	case string(KindDeployedServicePackages):
22437		var dsphe DeployedServicePackagesHealthEvaluation
22438		err := json.Unmarshal(body, &dsphe)
22439		return dsphe, err
22440	case string(KindEvent):
22441		var ehe EventHealthEvaluation
22442		err := json.Unmarshal(body, &ehe)
22443		return ehe, err
22444	case string(KindNode):
22445		var nhe NodeHealthEvaluation
22446		err := json.Unmarshal(body, &nhe)
22447		return nhe, err
22448	case string(KindNodes):
22449		var nhe NodesHealthEvaluation
22450		err := json.Unmarshal(body, &nhe)
22451		return nhe, err
22452	case string(KindPartition):
22453		var phe PartitionHealthEvaluation
22454		err := json.Unmarshal(body, &phe)
22455		return phe, err
22456	case string(KindPartitions):
22457		var phe PartitionsHealthEvaluation
22458		err := json.Unmarshal(body, &phe)
22459		return phe, err
22460	case string(KindReplica):
22461		var rhe ReplicaHealthEvaluation
22462		err := json.Unmarshal(body, &rhe)
22463		return rhe, err
22464	case string(KindReplicas):
22465		var rhe ReplicasHealthEvaluation
22466		err := json.Unmarshal(body, &rhe)
22467		return rhe, err
22468	case string(KindService):
22469		var she ServiceHealthEvaluation
22470		err := json.Unmarshal(body, &she)
22471		return she, err
22472	case string(KindServices):
22473		var she ServicesHealthEvaluation
22474		err := json.Unmarshal(body, &she)
22475		return she, err
22476	case string(KindSystemApplication):
22477		var sahe SystemApplicationHealthEvaluation
22478		err := json.Unmarshal(body, &sahe)
22479		return sahe, err
22480	case string(KindUpgradeDomainDeltaNodesCheck):
22481		var uddnche UpgradeDomainDeltaNodesCheckHealthEvaluation
22482		err := json.Unmarshal(body, &uddnche)
22483		return uddnche, err
22484	case string(KindUpgradeDomainNodes):
22485		var udnhe UpgradeDomainNodesHealthEvaluation
22486		err := json.Unmarshal(body, &udnhe)
22487		return udnhe, err
22488	default:
22489		var he HealthEvaluation
22490		err := json.Unmarshal(body, &he)
22491		return he, err
22492	}
22493}
22494func unmarshalBasicHealthEvaluationArray(body []byte) ([]BasicHealthEvaluation, error) {
22495	var rawMessages []*json.RawMessage
22496	err := json.Unmarshal(body, &rawMessages)
22497	if err != nil {
22498		return nil, err
22499	}
22500
22501	heArray := make([]BasicHealthEvaluation, len(rawMessages))
22502
22503	for index, rawMessage := range rawMessages {
22504		he, err := unmarshalBasicHealthEvaluation(*rawMessage)
22505		if err != nil {
22506			return nil, err
22507		}
22508		heArray[index] = he
22509	}
22510	return heArray, nil
22511}
22512
22513// MarshalJSON is the custom marshaler for HealthEvaluation.
22514func (he HealthEvaluation) MarshalJSON() ([]byte, error) {
22515	he.Kind = KindHealthEvaluation
22516	objectMap := make(map[string]interface{})
22517	if he.AggregatedHealthState != "" {
22518		objectMap["AggregatedHealthState"] = he.AggregatedHealthState
22519	}
22520	if he.Description != nil {
22521		objectMap["Description"] = he.Description
22522	}
22523	if he.Kind != "" {
22524		objectMap["Kind"] = he.Kind
22525	}
22526	return json.Marshal(objectMap)
22527}
22528
22529// AsApplicationHealthEvaluation is the BasicHealthEvaluation implementation for HealthEvaluation.
22530func (he HealthEvaluation) AsApplicationHealthEvaluation() (*ApplicationHealthEvaluation, bool) {
22531	return nil, false
22532}
22533
22534// AsApplicationsHealthEvaluation is the BasicHealthEvaluation implementation for HealthEvaluation.
22535func (he HealthEvaluation) AsApplicationsHealthEvaluation() (*ApplicationsHealthEvaluation, bool) {
22536	return nil, false
22537}
22538
22539// AsApplicationTypeApplicationsHealthEvaluation is the BasicHealthEvaluation implementation for HealthEvaluation.
22540func (he HealthEvaluation) AsApplicationTypeApplicationsHealthEvaluation() (*ApplicationTypeApplicationsHealthEvaluation, bool) {
22541	return nil, false
22542}
22543
22544// AsDeltaNodesCheckHealthEvaluation is the BasicHealthEvaluation implementation for HealthEvaluation.
22545func (he HealthEvaluation) AsDeltaNodesCheckHealthEvaluation() (*DeltaNodesCheckHealthEvaluation, bool) {
22546	return nil, false
22547}
22548
22549// AsDeployedApplicationHealthEvaluation is the BasicHealthEvaluation implementation for HealthEvaluation.
22550func (he HealthEvaluation) AsDeployedApplicationHealthEvaluation() (*DeployedApplicationHealthEvaluation, bool) {
22551	return nil, false
22552}
22553
22554// AsDeployedApplicationsHealthEvaluation is the BasicHealthEvaluation implementation for HealthEvaluation.
22555func (he HealthEvaluation) AsDeployedApplicationsHealthEvaluation() (*DeployedApplicationsHealthEvaluation, bool) {
22556	return nil, false
22557}
22558
22559// AsDeployedServicePackageHealthEvaluation is the BasicHealthEvaluation implementation for HealthEvaluation.
22560func (he HealthEvaluation) AsDeployedServicePackageHealthEvaluation() (*DeployedServicePackageHealthEvaluation, bool) {
22561	return nil, false
22562}
22563
22564// AsDeployedServicePackagesHealthEvaluation is the BasicHealthEvaluation implementation for HealthEvaluation.
22565func (he HealthEvaluation) AsDeployedServicePackagesHealthEvaluation() (*DeployedServicePackagesHealthEvaluation, bool) {
22566	return nil, false
22567}
22568
22569// AsEventHealthEvaluation is the BasicHealthEvaluation implementation for HealthEvaluation.
22570func (he HealthEvaluation) AsEventHealthEvaluation() (*EventHealthEvaluation, bool) {
22571	return nil, false
22572}
22573
22574// AsNodeHealthEvaluation is the BasicHealthEvaluation implementation for HealthEvaluation.
22575func (he HealthEvaluation) AsNodeHealthEvaluation() (*NodeHealthEvaluation, bool) {
22576	return nil, false
22577}
22578
22579// AsNodesHealthEvaluation is the BasicHealthEvaluation implementation for HealthEvaluation.
22580func (he HealthEvaluation) AsNodesHealthEvaluation() (*NodesHealthEvaluation, bool) {
22581	return nil, false
22582}
22583
22584// AsPartitionHealthEvaluation is the BasicHealthEvaluation implementation for HealthEvaluation.
22585func (he HealthEvaluation) AsPartitionHealthEvaluation() (*PartitionHealthEvaluation, bool) {
22586	return nil, false
22587}
22588
22589// AsPartitionsHealthEvaluation is the BasicHealthEvaluation implementation for HealthEvaluation.
22590func (he HealthEvaluation) AsPartitionsHealthEvaluation() (*PartitionsHealthEvaluation, bool) {
22591	return nil, false
22592}
22593
22594// AsReplicaHealthEvaluation is the BasicHealthEvaluation implementation for HealthEvaluation.
22595func (he HealthEvaluation) AsReplicaHealthEvaluation() (*ReplicaHealthEvaluation, bool) {
22596	return nil, false
22597}
22598
22599// AsReplicasHealthEvaluation is the BasicHealthEvaluation implementation for HealthEvaluation.
22600func (he HealthEvaluation) AsReplicasHealthEvaluation() (*ReplicasHealthEvaluation, bool) {
22601	return nil, false
22602}
22603
22604// AsServiceHealthEvaluation is the BasicHealthEvaluation implementation for HealthEvaluation.
22605func (he HealthEvaluation) AsServiceHealthEvaluation() (*ServiceHealthEvaluation, bool) {
22606	return nil, false
22607}
22608
22609// AsServicesHealthEvaluation is the BasicHealthEvaluation implementation for HealthEvaluation.
22610func (he HealthEvaluation) AsServicesHealthEvaluation() (*ServicesHealthEvaluation, bool) {
22611	return nil, false
22612}
22613
22614// AsSystemApplicationHealthEvaluation is the BasicHealthEvaluation implementation for HealthEvaluation.
22615func (he HealthEvaluation) AsSystemApplicationHealthEvaluation() (*SystemApplicationHealthEvaluation, bool) {
22616	return nil, false
22617}
22618
22619// AsUpgradeDomainDeltaNodesCheckHealthEvaluation is the BasicHealthEvaluation implementation for HealthEvaluation.
22620func (he HealthEvaluation) AsUpgradeDomainDeltaNodesCheckHealthEvaluation() (*UpgradeDomainDeltaNodesCheckHealthEvaluation, bool) {
22621	return nil, false
22622}
22623
22624// AsUpgradeDomainNodesHealthEvaluation is the BasicHealthEvaluation implementation for HealthEvaluation.
22625func (he HealthEvaluation) AsUpgradeDomainNodesHealthEvaluation() (*UpgradeDomainNodesHealthEvaluation, bool) {
22626	return nil, false
22627}
22628
22629// AsHealthEvaluation is the BasicHealthEvaluation implementation for HealthEvaluation.
22630func (he HealthEvaluation) AsHealthEvaluation() (*HealthEvaluation, bool) {
22631	return &he, true
22632}
22633
22634// AsBasicHealthEvaluation is the BasicHealthEvaluation implementation for HealthEvaluation.
22635func (he HealthEvaluation) AsBasicHealthEvaluation() (BasicHealthEvaluation, bool) {
22636	return &he, true
22637}
22638
22639// HealthEvaluationWrapper wrapper object for health evaluation.
22640type HealthEvaluationWrapper struct {
22641	// HealthEvaluation - Represents a health evaluation which describes the data and the algorithm used by health manager to evaluate the health of an entity.
22642	HealthEvaluation BasicHealthEvaluation `json:"HealthEvaluation,omitempty"`
22643}
22644
22645// UnmarshalJSON is the custom unmarshaler for HealthEvaluationWrapper struct.
22646func (hew *HealthEvaluationWrapper) UnmarshalJSON(body []byte) error {
22647	var m map[string]*json.RawMessage
22648	err := json.Unmarshal(body, &m)
22649	if err != nil {
22650		return err
22651	}
22652	for k, v := range m {
22653		switch k {
22654		case "HealthEvaluation":
22655			if v != nil {
22656				healthEvaluation, err := unmarshalBasicHealthEvaluation(*v)
22657				if err != nil {
22658					return err
22659				}
22660				hew.HealthEvaluation = healthEvaluation
22661			}
22662		}
22663	}
22664
22665	return nil
22666}
22667
22668// HealthEvent represents health information reported on a health entity, such as cluster, application or
22669// node, with additional metadata added by the Health Manager.
22670type HealthEvent struct {
22671	// IsExpired - Returns true if the health event is expired, otherwise false.
22672	IsExpired *bool `json:"IsExpired,omitempty"`
22673	// SourceUtcTimestamp - The date and time when the health report was sent by the source.
22674	SourceUtcTimestamp *date.Time `json:"SourceUtcTimestamp,omitempty"`
22675	// LastModifiedUtcTimestamp - The date and time when the health report was last modified by the health store.
22676	LastModifiedUtcTimestamp *date.Time `json:"LastModifiedUtcTimestamp,omitempty"`
22677	// LastOkTransitionAt - If the current health state is 'Ok', this property returns the time at which the health report was first reported with 'Ok'.
22678	// For periodic reporting, many reports with the same state may have been generated.
22679	// This property returns the date and time when the first 'Ok' health report was received.
22680	// 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.
22681	// If the health state was never 'Ok', the value will be zero date-time.
22682	LastOkTransitionAt *date.Time `json:"LastOkTransitionAt,omitempty"`
22683	// 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.
22684	// 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.
22685	// If the health state was never 'Warning', the value will be zero date-time.
22686	LastWarningTransitionAt *date.Time `json:"LastWarningTransitionAt,omitempty"`
22687	// 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.
22688	// 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.
22689	// If the health state was never 'Error', the value will be zero date-time.
22690	LastErrorTransitionAt *date.Time `json:"LastErrorTransitionAt,omitempty"`
22691	// SourceID - The source name that identifies the client/watchdog/system component that generated the health information.
22692	SourceID *string `json:"SourceId,omitempty"`
22693	// Property - The property of the health information. An entity can have health reports for different properties.
22694	// The property is a string and not a fixed enumeration to allow the reporter flexibility to categorize the state condition that triggers the report.
22695	// For example, a reporter with SourceId "LocalWatchdog" can monitor the state of the available disk on a node,
22696	// so it can report "AvailableDisk" property on that node.
22697	// The same reporter can monitor the node connectivity, so it can report a property "Connectivity" on the same node.
22698	// In the health store, these reports are treated as separate health events for the specified node.
22699	// Together with the SourceId, the property uniquely identifies the health information.
22700	Property *string `json:"Property,omitempty"`
22701	// 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'
22702	HealthState HealthState `json:"HealthState,omitempty"`
22703	// TimeToLiveInMilliSeconds - The duration for which this health report is valid. This field uses ISO8601 format for specifying the duration.
22704	// When clients report periodically, they should send reports with higher frequency than time to live.
22705	// If clients report on transition, they can set the time to live to infinite.
22706	// When time to live expires, the health event that contains the health information
22707	// is either removed from health store, if RemoveWhenExpired is true, or evaluated at error, if RemoveWhenExpired false.
22708	// If not specified, time to live defaults to infinite value.
22709	TimeToLiveInMilliSeconds *string `json:"TimeToLiveInMilliSeconds,omitempty"`
22710	// Description - The description of the health information. It represents free text used to add human readable information about the report.
22711	// The maximum string length for the description is 4096 characters.
22712	// If the provided string is longer, it will be automatically truncated.
22713	// When truncated, the last characters of the description contain a marker "[Truncated]", and total string size is 4096 characters.
22714	// The presence of the marker indicates to users that truncation occurred.
22715	// Note that when truncated, the description has less than 4096 characters from the original string.
22716	Description *string `json:"Description,omitempty"`
22717	// SequenceNumber - The sequence number for this health report as a numeric string.
22718	// The report sequence number is used by the health store to detect stale reports.
22719	// If not specified, a sequence number is auto-generated by the health client when a report is added.
22720	SequenceNumber *string `json:"SequenceNumber,omitempty"`
22721	// RemoveWhenExpired - Value that indicates whether the report is removed from health store when it expires.
22722	// If set to true, the report is removed from the health store after it expires.
22723	// If set to false, the report is treated as an error when expired. The value of this property is false by default.
22724	// When clients report periodically, they should set RemoveWhenExpired false (default).
22725	// 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.
22726	// This flags the entity as being in Error health state.
22727	RemoveWhenExpired *bool `json:"RemoveWhenExpired,omitempty"`
22728	// HealthReportID - A health report ID which identifies the health report and can be used to find more detailed information about a specific health event at
22729	// aka.ms/sfhealthid
22730	HealthReportID *string `json:"HealthReportId,omitempty"`
22731}
22732
22733// HealthInformation represents common health report information. It is included in all health reports sent
22734// to health store and in all health events returned by health queries.
22735type HealthInformation struct {
22736	// SourceID - The source name that identifies the client/watchdog/system component that generated the health information.
22737	SourceID *string `json:"SourceId,omitempty"`
22738	// Property - The property of the health information. An entity can have health reports for different properties.
22739	// The property is a string and not a fixed enumeration to allow the reporter flexibility to categorize the state condition that triggers the report.
22740	// For example, a reporter with SourceId "LocalWatchdog" can monitor the state of the available disk on a node,
22741	// so it can report "AvailableDisk" property on that node.
22742	// The same reporter can monitor the node connectivity, so it can report a property "Connectivity" on the same node.
22743	// In the health store, these reports are treated as separate health events for the specified node.
22744	// Together with the SourceId, the property uniquely identifies the health information.
22745	Property *string `json:"Property,omitempty"`
22746	// 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'
22747	HealthState HealthState `json:"HealthState,omitempty"`
22748	// TimeToLiveInMilliSeconds - The duration for which this health report is valid. This field uses ISO8601 format for specifying the duration.
22749	// When clients report periodically, they should send reports with higher frequency than time to live.
22750	// If clients report on transition, they can set the time to live to infinite.
22751	// When time to live expires, the health event that contains the health information
22752	// is either removed from health store, if RemoveWhenExpired is true, or evaluated at error, if RemoveWhenExpired false.
22753	// If not specified, time to live defaults to infinite value.
22754	TimeToLiveInMilliSeconds *string `json:"TimeToLiveInMilliSeconds,omitempty"`
22755	// Description - The description of the health information. It represents free text used to add human readable information about the report.
22756	// The maximum string length for the description is 4096 characters.
22757	// If the provided string is longer, it will be automatically truncated.
22758	// When truncated, the last characters of the description contain a marker "[Truncated]", and total string size is 4096 characters.
22759	// The presence of the marker indicates to users that truncation occurred.
22760	// Note that when truncated, the description has less than 4096 characters from the original string.
22761	Description *string `json:"Description,omitempty"`
22762	// SequenceNumber - The sequence number for this health report as a numeric string.
22763	// The report sequence number is used by the health store to detect stale reports.
22764	// If not specified, a sequence number is auto-generated by the health client when a report is added.
22765	SequenceNumber *string `json:"SequenceNumber,omitempty"`
22766	// RemoveWhenExpired - Value that indicates whether the report is removed from health store when it expires.
22767	// If set to true, the report is removed from the health store after it expires.
22768	// If set to false, the report is treated as an error when expired. The value of this property is false by default.
22769	// When clients report periodically, they should set RemoveWhenExpired false (default).
22770	// 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.
22771	// This flags the entity as being in Error health state.
22772	RemoveWhenExpired *bool `json:"RemoveWhenExpired,omitempty"`
22773	// HealthReportID - A health report ID which identifies the health report and can be used to find more detailed information about a specific health event at
22774	// aka.ms/sfhealthid
22775	HealthReportID *string `json:"HealthReportId,omitempty"`
22776}
22777
22778// HealthStateCount represents information about how many health entities are in Ok, Warning and Error
22779// health state.
22780type HealthStateCount struct {
22781	// OkCount - The number of health entities with aggregated health state Ok.
22782	OkCount *int64 `json:"OkCount,omitempty"`
22783	// WarningCount - The number of health entities with aggregated health state Warning.
22784	WarningCount *int64 `json:"WarningCount,omitempty"`
22785	// ErrorCount - The number of health entities with aggregated health state Error.
22786	ErrorCount *int64 `json:"ErrorCount,omitempty"`
22787}
22788
22789// HealthStatistics the health statistics of an entity, returned as part of the health query result when
22790// the query description is configured to include statistics.
22791// The statistics include health state counts for all children types of the current entity.
22792// For example, for cluster, the health statistics include health state counts for nodes, applications,
22793// services, partitions, replicas, deployed applications and deployed service packages.
22794// For partition, the health statistics include health counts for replicas.
22795type HealthStatistics struct {
22796	// 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.
22797	HealthStateCountList *[]EntityKindHealthStateCount `json:"HealthStateCountList,omitempty"`
22798}
22799
22800// HTTPConfig describes the http configuration for external connectivity for this network.
22801type HTTPConfig struct {
22802	// Name - http gateway config name.
22803	Name *string `json:"name,omitempty"`
22804	// Port - Specifies the port at which the service endpoint below needs to be exposed.
22805	Port *int32 `json:"port,omitempty"`
22806	// Hosts - description for routing.
22807	Hosts *[]HTTPHostConfig `json:"hosts,omitempty"`
22808}
22809
22810// HTTPHostConfig describes the hostname properties for http routing.
22811type HTTPHostConfig struct {
22812	// Name - http hostname config name.
22813	Name *string `json:"name,omitempty"`
22814	// 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 handle general cases.
22815	Routes *[]HTTPRouteConfig `json:"routes,omitempty"`
22816}
22817
22818// HTTPRouteConfig describes the hostname properties for http routing.
22819type HTTPRouteConfig struct {
22820	// Name - http route name.
22821	Name *string `json:"name,omitempty"`
22822	// Match - Describes a rule for http route matching.
22823	Match *HTTPRouteMatchRule `json:"match,omitempty"`
22824	// Destination - Describes destination endpoint for routing traffic.
22825	Destination *GatewayDestination `json:"destination,omitempty"`
22826}
22827
22828// HTTPRouteMatchHeader describes header information for http route matching.
22829type HTTPRouteMatchHeader struct {
22830	// Name - Name of header to match in request.
22831	Name *string `json:"name,omitempty"`
22832	// Value - Value of header to match in request.
22833	Value *string `json:"value,omitempty"`
22834	// Type - how to match header value. Possible values include: 'Exact'
22835	Type HeaderMatchType `json:"type,omitempty"`
22836}
22837
22838// HTTPRouteMatchPath path to match for routing.
22839type HTTPRouteMatchPath struct {
22840	// Value - Uri path to match for request.
22841	Value *string `json:"value,omitempty"`
22842	// Rewrite - replacement string for matched part of the Uri.
22843	Rewrite *string `json:"rewrite,omitempty"`
22844	// Type - how to match value in the Uri
22845	Type *string `json:"type,omitempty"`
22846}
22847
22848// HTTPRouteMatchRule describes a rule for http route matching.
22849type HTTPRouteMatchRule struct {
22850	// Path - Path to match for routing.
22851	Path *HTTPRouteMatchPath `json:"path,omitempty"`
22852	// Headers - headers and their values to match in request.
22853	Headers *[]HTTPRouteMatchHeader `json:"headers,omitempty"`
22854}
22855
22856// IdentityDescription information describing the identities associated with this application.
22857type IdentityDescription struct {
22858	// TokenServiceEndpoint - the endpoint for the token service managing this identity
22859	TokenServiceEndpoint *string `json:"tokenServiceEndpoint,omitempty"`
22860	// Type - the types of identities associated with this resource; currently restricted to 'SystemAssigned and UserAssigned'
22861	Type *string `json:"type,omitempty"`
22862	// TenantID - the identifier of the tenant containing the application's identity.
22863	TenantID *string `json:"tenantId,omitempty"`
22864	// PrincipalID - the object identifier of the Service Principal of the identity associated with this resource.
22865	PrincipalID *string `json:"principalId,omitempty"`
22866	// UserAssignedIdentities - represents user assigned identities map.
22867	UserAssignedIdentities map[string]*IdentityItemDescription `json:"userAssignedIdentities"`
22868}
22869
22870// MarshalJSON is the custom marshaler for IdentityDescription.
22871func (ID IdentityDescription) MarshalJSON() ([]byte, error) {
22872	objectMap := make(map[string]interface{})
22873	if ID.TokenServiceEndpoint != nil {
22874		objectMap["tokenServiceEndpoint"] = ID.TokenServiceEndpoint
22875	}
22876	if ID.Type != nil {
22877		objectMap["type"] = ID.Type
22878	}
22879	if ID.TenantID != nil {
22880		objectMap["tenantId"] = ID.TenantID
22881	}
22882	if ID.PrincipalID != nil {
22883		objectMap["principalId"] = ID.PrincipalID
22884	}
22885	if ID.UserAssignedIdentities != nil {
22886		objectMap["userAssignedIdentities"] = ID.UserAssignedIdentities
22887	}
22888	return json.Marshal(objectMap)
22889}
22890
22891// IdentityItemDescription describes a single user-assigned identity associated with the application.
22892type IdentityItemDescription struct {
22893	// PrincipalID - the object identifier of the Service Principal which this identity represents.
22894	PrincipalID *string `json:"principalId,omitempty"`
22895	// ClientID - the client identifier of the Service Principal which this identity represents.
22896	ClientID *string `json:"clientId,omitempty"`
22897}
22898
22899// ImageRegistryCredential image registry credential.
22900type ImageRegistryCredential struct {
22901	// Server - Docker image registry server, without protocol such as `http` and `https`.
22902	Server *string `json:"server,omitempty"`
22903	// Username - The username for the private registry.
22904	Username *string `json:"username,omitempty"`
22905	// PasswordType - The type of the image registry password being given in password. Possible values include: 'ImageRegistryPasswordTypeClearText', 'ImageRegistryPasswordTypeKeyVaultReference', 'ImageRegistryPasswordTypeSecretValueReference'
22906	PasswordType ImageRegistryPasswordType `json:"passwordType,omitempty"`
22907	// 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. Will be processed based on the type provided.
22908	Password *string `json:"password,omitempty"`
22909}
22910
22911// ImageStoreContent information about the image store content.
22912type ImageStoreContent struct {
22913	autorest.Response `json:"-"`
22914	// StoreFiles - The list of image store file info objects represents files found under the given image store relative path.
22915	StoreFiles *[]FileInfo `json:"StoreFiles,omitempty"`
22916	// StoreFolders - The list of image store folder info objects represents subfolders found under the given image store relative path.
22917	StoreFolders *[]FolderInfo `json:"StoreFolders,omitempty"`
22918}
22919
22920// ImageStoreCopyDescription information about how to copy image store content from one image store
22921// relative path to another image store relative path.
22922type ImageStoreCopyDescription struct {
22923	// RemoteSource - The relative path of source image store content to be copied from.
22924	RemoteSource *string `json:"RemoteSource,omitempty"`
22925	// RemoteDestination - The relative path of destination image store content to be copied to.
22926	RemoteDestination *string `json:"RemoteDestination,omitempty"`
22927	// SkipFiles - The list of the file names to be skipped for copying.
22928	SkipFiles *[]string `json:"SkipFiles,omitempty"`
22929	// 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.
22930	CheckMarkFile *bool `json:"CheckMarkFile,omitempty"`
22931}
22932
22933// ImageStoreInfo information about the ImageStore's resource usage
22934type ImageStoreInfo struct {
22935	autorest.Response `json:"-"`
22936	// DiskInfo - disk capacity and available disk space on the node where the ImageStore primary is placed.
22937	DiskInfo *DiskInfo `json:"DiskInfo,omitempty"`
22938	// UsedByMetadata - the ImageStore's file system usage for metadata.
22939	UsedByMetadata *UsageInfo `json:"UsedByMetadata,omitempty"`
22940	// UsedByStaging - The ImageStore's file system usage for staging files that are being uploaded.
22941	UsedByStaging *UsageInfo `json:"UsedByStaging,omitempty"`
22942	// UsedByCopy - the ImageStore's file system usage for copied application and cluster packages. [Removing application and cluster packages](https://docs.microsoft.com/rest/api/servicefabric/sfclient-api-deleteimagestorecontent) will free up this space.
22943	UsedByCopy *UsageInfo `json:"UsedByCopy,omitempty"`
22944	// UsedByRegister - the ImageStore's file system usage for registered and cluster packages. [Unregistering application](https://docs.microsoft.com/rest/api/servicefabric/sfclient-api-unprovisionapplicationtype) and [cluster packages](https://docs.microsoft.com/rest/api/servicefabric/sfclient-api-unprovisionapplicationtype) will free up this space.
22945	UsedByRegister *UsageInfo `json:"UsedByRegister,omitempty"`
22946}
22947
22948// InlinedValueSecretResourceProperties describes the properties of a secret resource whose value is
22949// provided explicitly as plaintext. The secret resource may have multiple values, each being uniquely
22950// versioned. The secret value of each version is stored encrypted, and delivered as plaintext into the
22951// context of applications referencing it.
22952type InlinedValueSecretResourceProperties struct {
22953	// Description - User readable description of the secret.
22954	Description *string `json:"description,omitempty"`
22955	// Status - READ-ONLY; Status of the resource. Possible values include: 'ResourceStatusUnknown', 'ResourceStatusReady', 'ResourceStatusUpgrading', 'ResourceStatusCreating', 'ResourceStatusDeleting', 'ResourceStatusFailed'
22956	Status ResourceStatus `json:"status,omitempty"`
22957	// StatusDetails - READ-ONLY; Gives additional information about the current status of the secret.
22958	StatusDetails *string `json:"statusDetails,omitempty"`
22959	// 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.
22960	ContentType *string `json:"contentType,omitempty"`
22961	// Kind - Possible values include: 'KindSecretResourcePropertiesBase', 'KindSecretResourceProperties', 'KindInlinedValue'
22962	Kind KindBasicSecretResourcePropertiesBase `json:"kind,omitempty"`
22963}
22964
22965// MarshalJSON is the custom marshaler for InlinedValueSecretResourceProperties.
22966func (ivsrp InlinedValueSecretResourceProperties) MarshalJSON() ([]byte, error) {
22967	ivsrp.Kind = KindInlinedValue
22968	objectMap := make(map[string]interface{})
22969	if ivsrp.Description != nil {
22970		objectMap["description"] = ivsrp.Description
22971	}
22972	if ivsrp.ContentType != nil {
22973		objectMap["contentType"] = ivsrp.ContentType
22974	}
22975	if ivsrp.Kind != "" {
22976		objectMap["kind"] = ivsrp.Kind
22977	}
22978	return json.Marshal(objectMap)
22979}
22980
22981// AsSecretResourceProperties is the BasicSecretResourcePropertiesBase implementation for InlinedValueSecretResourceProperties.
22982func (ivsrp InlinedValueSecretResourceProperties) AsSecretResourceProperties() (*SecretResourceProperties, bool) {
22983	return nil, false
22984}
22985
22986// AsBasicSecretResourceProperties is the BasicSecretResourcePropertiesBase implementation for InlinedValueSecretResourceProperties.
22987func (ivsrp InlinedValueSecretResourceProperties) AsBasicSecretResourceProperties() (BasicSecretResourceProperties, bool) {
22988	return &ivsrp, true
22989}
22990
22991// AsInlinedValueSecretResourceProperties is the BasicSecretResourcePropertiesBase implementation for InlinedValueSecretResourceProperties.
22992func (ivsrp InlinedValueSecretResourceProperties) AsInlinedValueSecretResourceProperties() (*InlinedValueSecretResourceProperties, bool) {
22993	return &ivsrp, true
22994}
22995
22996// AsSecretResourcePropertiesBase is the BasicSecretResourcePropertiesBase implementation for InlinedValueSecretResourceProperties.
22997func (ivsrp InlinedValueSecretResourceProperties) AsSecretResourcePropertiesBase() (*SecretResourcePropertiesBase, bool) {
22998	return nil, false
22999}
23000
23001// AsBasicSecretResourcePropertiesBase is the BasicSecretResourcePropertiesBase implementation for InlinedValueSecretResourceProperties.
23002func (ivsrp InlinedValueSecretResourceProperties) AsBasicSecretResourcePropertiesBase() (BasicSecretResourcePropertiesBase, bool) {
23003	return &ivsrp, true
23004}
23005
23006// Int64PropertyValue describes a Service Fabric property value of type Int64.
23007type Int64PropertyValue struct {
23008	// Data - The data of the property value.
23009	Data *string `json:"Data,omitempty"`
23010	// Kind - Possible values include: 'KindPropertyValue', 'KindBinary', 'KindInt64', 'KindDouble', 'KindString', 'KindGUID'
23011	Kind KindBasicPropertyValue `json:"Kind,omitempty"`
23012}
23013
23014// MarshalJSON is the custom marshaler for Int64PropertyValue.
23015func (i6pv Int64PropertyValue) MarshalJSON() ([]byte, error) {
23016	i6pv.Kind = KindInt64
23017	objectMap := make(map[string]interface{})
23018	if i6pv.Data != nil {
23019		objectMap["Data"] = i6pv.Data
23020	}
23021	if i6pv.Kind != "" {
23022		objectMap["Kind"] = i6pv.Kind
23023	}
23024	return json.Marshal(objectMap)
23025}
23026
23027// AsBinaryPropertyValue is the BasicPropertyValue implementation for Int64PropertyValue.
23028func (i6pv Int64PropertyValue) AsBinaryPropertyValue() (*BinaryPropertyValue, bool) {
23029	return nil, false
23030}
23031
23032// AsInt64PropertyValue is the BasicPropertyValue implementation for Int64PropertyValue.
23033func (i6pv Int64PropertyValue) AsInt64PropertyValue() (*Int64PropertyValue, bool) {
23034	return &i6pv, true
23035}
23036
23037// AsDoublePropertyValue is the BasicPropertyValue implementation for Int64PropertyValue.
23038func (i6pv Int64PropertyValue) AsDoublePropertyValue() (*DoublePropertyValue, bool) {
23039	return nil, false
23040}
23041
23042// AsStringPropertyValue is the BasicPropertyValue implementation for Int64PropertyValue.
23043func (i6pv Int64PropertyValue) AsStringPropertyValue() (*StringPropertyValue, bool) {
23044	return nil, false
23045}
23046
23047// AsGUIDPropertyValue is the BasicPropertyValue implementation for Int64PropertyValue.
23048func (i6pv Int64PropertyValue) AsGUIDPropertyValue() (*GUIDPropertyValue, bool) {
23049	return nil, false
23050}
23051
23052// AsPropertyValue is the BasicPropertyValue implementation for Int64PropertyValue.
23053func (i6pv Int64PropertyValue) AsPropertyValue() (*PropertyValue, bool) {
23054	return nil, false
23055}
23056
23057// AsBasicPropertyValue is the BasicPropertyValue implementation for Int64PropertyValue.
23058func (i6pv Int64PropertyValue) AsBasicPropertyValue() (BasicPropertyValue, bool) {
23059	return &i6pv, true
23060}
23061
23062// Int64RangePartitionInformation describes the partition information for the integer range that is based
23063// on partition schemes.
23064type Int64RangePartitionInformation struct {
23065	// LowKey - Specifies the minimum key value handled by this partition.
23066	LowKey *string `json:"LowKey,omitempty"`
23067	// HighKey - Specifies the maximum key value handled by this partition.
23068	HighKey *string `json:"HighKey,omitempty"`
23069	// 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.
23070	ID *uuid.UUID `json:"Id,omitempty"`
23071	// ServicePartitionKind - Possible values include: 'ServicePartitionKindPartitionInformation', 'ServicePartitionKindInt64Range1', 'ServicePartitionKindNamed1', 'ServicePartitionKindSingleton1'
23072	ServicePartitionKind ServicePartitionKindBasicPartitionInformation `json:"ServicePartitionKind,omitempty"`
23073}
23074
23075// MarshalJSON is the custom marshaler for Int64RangePartitionInformation.
23076func (i6rpi Int64RangePartitionInformation) MarshalJSON() ([]byte, error) {
23077	i6rpi.ServicePartitionKind = ServicePartitionKindInt64Range1
23078	objectMap := make(map[string]interface{})
23079	if i6rpi.LowKey != nil {
23080		objectMap["LowKey"] = i6rpi.LowKey
23081	}
23082	if i6rpi.HighKey != nil {
23083		objectMap["HighKey"] = i6rpi.HighKey
23084	}
23085	if i6rpi.ID != nil {
23086		objectMap["Id"] = i6rpi.ID
23087	}
23088	if i6rpi.ServicePartitionKind != "" {
23089		objectMap["ServicePartitionKind"] = i6rpi.ServicePartitionKind
23090	}
23091	return json.Marshal(objectMap)
23092}
23093
23094// AsInt64RangePartitionInformation is the BasicPartitionInformation implementation for Int64RangePartitionInformation.
23095func (i6rpi Int64RangePartitionInformation) AsInt64RangePartitionInformation() (*Int64RangePartitionInformation, bool) {
23096	return &i6rpi, true
23097}
23098
23099// AsNamedPartitionInformation is the BasicPartitionInformation implementation for Int64RangePartitionInformation.
23100func (i6rpi Int64RangePartitionInformation) AsNamedPartitionInformation() (*NamedPartitionInformation, bool) {
23101	return nil, false
23102}
23103
23104// AsSingletonPartitionInformation is the BasicPartitionInformation implementation for Int64RangePartitionInformation.
23105func (i6rpi Int64RangePartitionInformation) AsSingletonPartitionInformation() (*SingletonPartitionInformation, bool) {
23106	return nil, false
23107}
23108
23109// AsPartitionInformation is the BasicPartitionInformation implementation for Int64RangePartitionInformation.
23110func (i6rpi Int64RangePartitionInformation) AsPartitionInformation() (*PartitionInformation, bool) {
23111	return nil, false
23112}
23113
23114// AsBasicPartitionInformation is the BasicPartitionInformation implementation for Int64RangePartitionInformation.
23115func (i6rpi Int64RangePartitionInformation) AsBasicPartitionInformation() (BasicPartitionInformation, bool) {
23116	return &i6rpi, true
23117}
23118
23119// InvokeDataLossResult represents information about an operation in a terminal state (Completed or
23120// Faulted).
23121type InvokeDataLossResult struct {
23122	// ErrorCode - If OperationState is Completed, this is 0.  If OperationState is Faulted, this is an error code indicating the reason.
23123	ErrorCode *int32 `json:"ErrorCode,omitempty"`
23124	// SelectedPartition - This class returns information about the partition that the user-induced operation acted upon.
23125	SelectedPartition *SelectedPartition `json:"SelectedPartition,omitempty"`
23126}
23127
23128// InvokeQuorumLossResult represents information about an operation in a terminal state (Completed or
23129// Faulted).
23130type InvokeQuorumLossResult struct {
23131	// ErrorCode - If OperationState is Completed, this is 0.  If OperationState is Faulted, this is an error code indicating the reason.
23132	ErrorCode *int32 `json:"ErrorCode,omitempty"`
23133	// SelectedPartition - This class returns information about the partition that the user-induced operation acted upon.
23134	SelectedPartition *SelectedPartition `json:"SelectedPartition,omitempty"`
23135}
23136
23137// KeyValueStoreReplicaStatus key value store related information for the replica.
23138type KeyValueStoreReplicaStatus struct {
23139	// DatabaseRowCountEstimate - Value indicating the estimated number of rows in the underlying database.
23140	DatabaseRowCountEstimate *string `json:"DatabaseRowCountEstimate,omitempty"`
23141	// DatabaseLogicalSizeEstimate - Value indicating the estimated size of the underlying database.
23142	DatabaseLogicalSizeEstimate *string `json:"DatabaseLogicalSizeEstimate,omitempty"`
23143	// CopyNotificationCurrentKeyFilter - Value indicating the latest key-prefix filter applied to enumeration during the callback. Null if there is no pending callback.
23144	CopyNotificationCurrentKeyFilter *string `json:"CopyNotificationCurrentKeyFilter,omitempty"`
23145	// CopyNotificationCurrentProgress - Value indicating the latest number of keys enumerated during the callback. 0 if there is no pending callback.
23146	CopyNotificationCurrentProgress *string `json:"CopyNotificationCurrentProgress,omitempty"`
23147	// StatusDetails - Value indicating the current status details of the replica.
23148	StatusDetails *string `json:"StatusDetails,omitempty"`
23149	// Kind - Possible values include: 'KindReplicaStatusBase', 'KindKeyValueStore'
23150	Kind KindBasicReplicaStatusBase `json:"Kind,omitempty"`
23151}
23152
23153// MarshalJSON is the custom marshaler for KeyValueStoreReplicaStatus.
23154func (kvsrs KeyValueStoreReplicaStatus) MarshalJSON() ([]byte, error) {
23155	kvsrs.Kind = KindKeyValueStore
23156	objectMap := make(map[string]interface{})
23157	if kvsrs.DatabaseRowCountEstimate != nil {
23158		objectMap["DatabaseRowCountEstimate"] = kvsrs.DatabaseRowCountEstimate
23159	}
23160	if kvsrs.DatabaseLogicalSizeEstimate != nil {
23161		objectMap["DatabaseLogicalSizeEstimate"] = kvsrs.DatabaseLogicalSizeEstimate
23162	}
23163	if kvsrs.CopyNotificationCurrentKeyFilter != nil {
23164		objectMap["CopyNotificationCurrentKeyFilter"] = kvsrs.CopyNotificationCurrentKeyFilter
23165	}
23166	if kvsrs.CopyNotificationCurrentProgress != nil {
23167		objectMap["CopyNotificationCurrentProgress"] = kvsrs.CopyNotificationCurrentProgress
23168	}
23169	if kvsrs.StatusDetails != nil {
23170		objectMap["StatusDetails"] = kvsrs.StatusDetails
23171	}
23172	if kvsrs.Kind != "" {
23173		objectMap["Kind"] = kvsrs.Kind
23174	}
23175	return json.Marshal(objectMap)
23176}
23177
23178// AsKeyValueStoreReplicaStatus is the BasicReplicaStatusBase implementation for KeyValueStoreReplicaStatus.
23179func (kvsrs KeyValueStoreReplicaStatus) AsKeyValueStoreReplicaStatus() (*KeyValueStoreReplicaStatus, bool) {
23180	return &kvsrs, true
23181}
23182
23183// AsReplicaStatusBase is the BasicReplicaStatusBase implementation for KeyValueStoreReplicaStatus.
23184func (kvsrs KeyValueStoreReplicaStatus) AsReplicaStatusBase() (*ReplicaStatusBase, bool) {
23185	return nil, false
23186}
23187
23188// AsBasicReplicaStatusBase is the BasicReplicaStatusBase implementation for KeyValueStoreReplicaStatus.
23189func (kvsrs KeyValueStoreReplicaStatus) AsBasicReplicaStatusBase() (BasicReplicaStatusBase, bool) {
23190	return &kvsrs, true
23191}
23192
23193// ListApplicationEvent ...
23194type ListApplicationEvent struct {
23195	autorest.Response `json:"-"`
23196	Value             *[]BasicApplicationEvent `json:"value,omitempty"`
23197}
23198
23199// UnmarshalJSON is the custom unmarshaler for ListApplicationEvent struct.
23200func (lae *ListApplicationEvent) UnmarshalJSON(body []byte) error {
23201	ae, err := unmarshalBasicApplicationEventArray(body)
23202	if err != nil {
23203		return err
23204	}
23205	lae.Value = &ae
23206
23207	return nil
23208}
23209
23210// ListClusterEvent ...
23211type ListClusterEvent struct {
23212	autorest.Response `json:"-"`
23213	Value             *[]BasicClusterEvent `json:"value,omitempty"`
23214}
23215
23216// UnmarshalJSON is the custom unmarshaler for ListClusterEvent struct.
23217func (lce *ListClusterEvent) UnmarshalJSON(body []byte) error {
23218	ce, err := unmarshalBasicClusterEventArray(body)
23219	if err != nil {
23220		return err
23221	}
23222	lce.Value = &ce
23223
23224	return nil
23225}
23226
23227// ListConfigParameterOverride ...
23228type ListConfigParameterOverride struct {
23229	autorest.Response `json:"-"`
23230	Value             *[]ConfigParameterOverride `json:"value,omitempty"`
23231}
23232
23233// ListContainerInstanceEvent ...
23234type ListContainerInstanceEvent struct {
23235	autorest.Response `json:"-"`
23236	Value             *[]ContainerInstanceEvent `json:"value,omitempty"`
23237}
23238
23239// ListDeployedCodePackageInfo ...
23240type ListDeployedCodePackageInfo struct {
23241	autorest.Response `json:"-"`
23242	Value             *[]DeployedCodePackageInfo `json:"value,omitempty"`
23243}
23244
23245// ListDeployedServicePackageInfo ...
23246type ListDeployedServicePackageInfo struct {
23247	autorest.Response `json:"-"`
23248	Value             *[]DeployedServicePackageInfo `json:"value,omitempty"`
23249}
23250
23251// ListDeployedServiceReplicaInfo ...
23252type ListDeployedServiceReplicaInfo struct {
23253	autorest.Response `json:"-"`
23254	Value             *[]BasicDeployedServiceReplicaInfo `json:"value,omitempty"`
23255}
23256
23257// UnmarshalJSON is the custom unmarshaler for ListDeployedServiceReplicaInfo struct.
23258func (ldsri *ListDeployedServiceReplicaInfo) UnmarshalJSON(body []byte) error {
23259	dsri, err := unmarshalBasicDeployedServiceReplicaInfoArray(body)
23260	if err != nil {
23261		return err
23262	}
23263	ldsri.Value = &dsri
23264
23265	return nil
23266}
23267
23268// ListDeployedServiceTypeInfo ...
23269type ListDeployedServiceTypeInfo struct {
23270	autorest.Response `json:"-"`
23271	Value             *[]DeployedServiceTypeInfo `json:"value,omitempty"`
23272}
23273
23274// ListFabricCodeVersionInfo ...
23275type ListFabricCodeVersionInfo struct {
23276	autorest.Response `json:"-"`
23277	Value             *[]FabricCodeVersionInfo `json:"value,omitempty"`
23278}
23279
23280// ListFabricConfigVersionInfo ...
23281type ListFabricConfigVersionInfo struct {
23282	autorest.Response `json:"-"`
23283	Value             *[]FabricConfigVersionInfo `json:"value,omitempty"`
23284}
23285
23286// ListFabricEvent ...
23287type ListFabricEvent struct {
23288	autorest.Response `json:"-"`
23289	Value             *[]BasicFabricEvent `json:"value,omitempty"`
23290}
23291
23292// UnmarshalJSON is the custom unmarshaler for ListFabricEvent struct.
23293func (lfe *ListFabricEvent) UnmarshalJSON(body []byte) error {
23294	fe, err := unmarshalBasicFabricEventArray(body)
23295	if err != nil {
23296		return err
23297	}
23298	lfe.Value = &fe
23299
23300	return nil
23301}
23302
23303// ListNodeEvent ...
23304type ListNodeEvent struct {
23305	autorest.Response `json:"-"`
23306	Value             *[]BasicNodeEvent `json:"value,omitempty"`
23307}
23308
23309// UnmarshalJSON is the custom unmarshaler for ListNodeEvent struct.
23310func (lne *ListNodeEvent) UnmarshalJSON(body []byte) error {
23311	ne, err := unmarshalBasicNodeEventArray(body)
23312	if err != nil {
23313		return err
23314	}
23315	lne.Value = &ne
23316
23317	return nil
23318}
23319
23320// ListOperationStatus ...
23321type ListOperationStatus struct {
23322	autorest.Response `json:"-"`
23323	Value             *[]OperationStatus `json:"value,omitempty"`
23324}
23325
23326// ListPartitionEvent ...
23327type ListPartitionEvent struct {
23328	autorest.Response `json:"-"`
23329	Value             *[]BasicPartitionEvent `json:"value,omitempty"`
23330}
23331
23332// UnmarshalJSON is the custom unmarshaler for ListPartitionEvent struct.
23333func (lpe *ListPartitionEvent) UnmarshalJSON(body []byte) error {
23334	peVar, err := unmarshalBasicPartitionEventArray(body)
23335	if err != nil {
23336		return err
23337	}
23338	lpe.Value = &peVar
23339
23340	return nil
23341}
23342
23343// ListRepairTask ...
23344type ListRepairTask struct {
23345	autorest.Response `json:"-"`
23346	Value             *[]RepairTask `json:"value,omitempty"`
23347}
23348
23349// ListReplicaEvent ...
23350type ListReplicaEvent struct {
23351	autorest.Response `json:"-"`
23352	Value             *[]BasicReplicaEvent `json:"value,omitempty"`
23353}
23354
23355// UnmarshalJSON is the custom unmarshaler for ListReplicaEvent struct.
23356func (lre *ListReplicaEvent) UnmarshalJSON(body []byte) error {
23357	re, err := unmarshalBasicReplicaEventArray(body)
23358	if err != nil {
23359		return err
23360	}
23361	lre.Value = &re
23362
23363	return nil
23364}
23365
23366// ListServiceEvent ...
23367type ListServiceEvent struct {
23368	autorest.Response `json:"-"`
23369	Value             *[]BasicServiceEvent `json:"value,omitempty"`
23370}
23371
23372// UnmarshalJSON is the custom unmarshaler for ListServiceEvent struct.
23373func (lse *ListServiceEvent) UnmarshalJSON(body []byte) error {
23374	se, err := unmarshalBasicServiceEventArray(body)
23375	if err != nil {
23376		return err
23377	}
23378	lse.Value = &se
23379
23380	return nil
23381}
23382
23383// ListServiceTypeInfo ...
23384type ListServiceTypeInfo struct {
23385	autorest.Response `json:"-"`
23386	Value             *[]ServiceTypeInfo `json:"value,omitempty"`
23387}
23388
23389// LoadMetricInformation represents data structure that contains load information for a certain metric in a
23390// cluster.
23391type LoadMetricInformation struct {
23392	// Name - Name of the metric for which this load information is provided.
23393	Name *string `json:"Name,omitempty"`
23394	// IsBalancedBefore - Value that indicates whether the metrics is balanced or not before resource balancer run
23395	IsBalancedBefore *bool `json:"IsBalancedBefore,omitempty"`
23396	// IsBalancedAfter - Value that indicates whether the metrics is balanced or not after resource balancer run.
23397	IsBalancedAfter *bool `json:"IsBalancedAfter,omitempty"`
23398	// DeviationBefore - The standard average deviation of the metrics before resource balancer run.
23399	DeviationBefore *string `json:"DeviationBefore,omitempty"`
23400	// DeviationAfter - The standard average deviation of the metrics after resource balancer run.
23401	DeviationAfter *string `json:"DeviationAfter,omitempty"`
23402	// BalancingThreshold - The balancing threshold for a certain metric.
23403	BalancingThreshold *string `json:"BalancingThreshold,omitempty"`
23404	// Action - The current action being taken with regard to this metric
23405	Action *string `json:"Action,omitempty"`
23406	// ActivityThreshold - The Activity Threshold specified for this metric in the system Cluster Manifest.
23407	ActivityThreshold *string `json:"ActivityThreshold,omitempty"`
23408	// ClusterCapacity - The total cluster capacity for a given metric
23409	ClusterCapacity *string `json:"ClusterCapacity,omitempty"`
23410	// ClusterLoad - The total cluster load. In future releases of Service Fabric this parameter will be deprecated in favor of CurrentClusterLoad.
23411	ClusterLoad *string `json:"ClusterLoad,omitempty"`
23412	// CurrentClusterLoad - The total cluster load.
23413	CurrentClusterLoad *string `json:"CurrentClusterLoad,omitempty"`
23414	// ClusterRemainingCapacity - The remaining capacity for the metric in the cluster. In future releases of Service Fabric this parameter will be deprecated in favor of ClusterCapacityRemaining.
23415	ClusterRemainingCapacity *string `json:"ClusterRemainingCapacity,omitempty"`
23416	// ClusterCapacityRemaining - The remaining capacity for the metric in the cluster.
23417	ClusterCapacityRemaining *string `json:"ClusterCapacityRemaining,omitempty"`
23418	// IsClusterCapacityViolation - Indicates that the metric is currently over capacity in the cluster.
23419	IsClusterCapacityViolation *bool `json:"IsClusterCapacityViolation,omitempty"`
23420	// NodeBufferPercentage - The reserved percentage of total node capacity for this metric.
23421	NodeBufferPercentage *string `json:"NodeBufferPercentage,omitempty"`
23422	// ClusterBufferedCapacity - Remaining capacity in the cluster excluding the reserved space. In future releases of Service Fabric this parameter will be deprecated in favor of BufferedClusterCapacityRemaining.
23423	ClusterBufferedCapacity *string `json:"ClusterBufferedCapacity,omitempty"`
23424	// BufferedClusterCapacityRemaining - Remaining capacity in the cluster excluding the reserved space.
23425	BufferedClusterCapacityRemaining *string `json:"BufferedClusterCapacityRemaining,omitempty"`
23426	// ClusterRemainingBufferedCapacity - The remaining percentage of cluster total capacity for this metric.
23427	ClusterRemainingBufferedCapacity *string `json:"ClusterRemainingBufferedCapacity,omitempty"`
23428	// MinNodeLoadValue - The minimum load on any node for this metric. In future releases of Service Fabric this parameter will be deprecated in favor of MinimumNodeLoad.
23429	MinNodeLoadValue *string `json:"MinNodeLoadValue,omitempty"`
23430	// MinimumNodeLoad - The minimum load on any node for this metric.
23431	MinimumNodeLoad *string `json:"MinimumNodeLoad,omitempty"`
23432	// MinNodeLoadNodeID - The node id of the node with the minimum load for this metric.
23433	MinNodeLoadNodeID *NodeID `json:"MinNodeLoadNodeId,omitempty"`
23434	// MaxNodeLoadValue - The maximum load on any node for this metric. In future releases of Service Fabric this parameter will be deprecated in favor of MaximumNodeLoad.
23435	MaxNodeLoadValue *string `json:"MaxNodeLoadValue,omitempty"`
23436	// MaximumNodeLoad - The maximum load on any node for this metric.
23437	MaximumNodeLoad *string `json:"MaximumNodeLoad,omitempty"`
23438	// MaxNodeLoadNodeID - The node id of the node with the maximum load for this metric.
23439	MaxNodeLoadNodeID *NodeID `json:"MaxNodeLoadNodeId,omitempty"`
23440	// PlannedLoadRemoval - This value represents the load of the replicas that are planned to be removed in the future within the cluster.
23441	// This kind of load is reported for replicas that are currently being moving to other nodes and for replicas that are currently being dropped but still use the load on the source node.
23442	PlannedLoadRemoval *string `json:"PlannedLoadRemoval,omitempty"`
23443}
23444
23445// LoadMetricReport represents the load metric report which contains the time metric was reported, its name
23446// and value.
23447type LoadMetricReport struct {
23448	// LastReportedUtc - Gets the UTC time when the load was reported.
23449	LastReportedUtc *date.Time `json:"LastReportedUtc,omitempty"`
23450	// Name - The name of the load metric.
23451	Name *string `json:"Name,omitempty"`
23452	// Value - The value of the load metric. In future releases of Service Fabric this parameter will be deprecated in favor of CurrentValue.
23453	Value *string `json:"Value,omitempty"`
23454	// CurrentValue - The value of the load metric.
23455	CurrentValue *string `json:"CurrentValue,omitempty"`
23456}
23457
23458// LoadMetricReportInfo information about load reported by replica.
23459type LoadMetricReportInfo struct {
23460	// Name - The name of the metric.
23461	Name *string `json:"Name,omitempty"`
23462	// Value - The value of the load for the metric. In future releases of Service Fabric this parameter will be deprecated in favor of CurrentValue.
23463	Value *int32 `json:"Value,omitempty"`
23464	// CurrentValue - The double value of the load for the metric.
23465	CurrentValue *string `json:"CurrentValue,omitempty"`
23466	// LastReportedUtc - The UTC time when the load is reported.
23467	LastReportedUtc *date.Time `json:"LastReportedUtc,omitempty"`
23468}
23469
23470// LocalNetworkResourceProperties information about a Service Fabric container network local to a single
23471// Service Fabric cluster.
23472type LocalNetworkResourceProperties struct {
23473	// NetworkAddressPrefix - Address space for the local container network.
23474	NetworkAddressPrefix *string `json:"networkAddressPrefix,omitempty"`
23475	// Description - User readable description of the network.
23476	Description *string `json:"description,omitempty"`
23477	// Status - READ-ONLY; Status of the network. Possible values include: 'ResourceStatusUnknown', 'ResourceStatusReady', 'ResourceStatusUpgrading', 'ResourceStatusCreating', 'ResourceStatusDeleting', 'ResourceStatusFailed'
23478	Status ResourceStatus `json:"status,omitempty"`
23479	// StatusDetails - READ-ONLY; Gives additional information about the current status of the network.
23480	StatusDetails *string `json:"statusDetails,omitempty"`
23481	// Kind - Possible values include: 'KindNetworkResourcePropertiesBase', 'KindNetworkResourceProperties', 'KindLocal'
23482	Kind KindBasicNetworkResourcePropertiesBase `json:"kind,omitempty"`
23483}
23484
23485// MarshalJSON is the custom marshaler for LocalNetworkResourceProperties.
23486func (lnrp LocalNetworkResourceProperties) MarshalJSON() ([]byte, error) {
23487	lnrp.Kind = KindLocal
23488	objectMap := make(map[string]interface{})
23489	if lnrp.NetworkAddressPrefix != nil {
23490		objectMap["networkAddressPrefix"] = lnrp.NetworkAddressPrefix
23491	}
23492	if lnrp.Description != nil {
23493		objectMap["description"] = lnrp.Description
23494	}
23495	if lnrp.Kind != "" {
23496		objectMap["kind"] = lnrp.Kind
23497	}
23498	return json.Marshal(objectMap)
23499}
23500
23501// AsNetworkResourceProperties is the BasicNetworkResourcePropertiesBase implementation for LocalNetworkResourceProperties.
23502func (lnrp LocalNetworkResourceProperties) AsNetworkResourceProperties() (*NetworkResourceProperties, bool) {
23503	return nil, false
23504}
23505
23506// AsBasicNetworkResourceProperties is the BasicNetworkResourcePropertiesBase implementation for LocalNetworkResourceProperties.
23507func (lnrp LocalNetworkResourceProperties) AsBasicNetworkResourceProperties() (BasicNetworkResourceProperties, bool) {
23508	return &lnrp, true
23509}
23510
23511// AsLocalNetworkResourceProperties is the BasicNetworkResourcePropertiesBase implementation for LocalNetworkResourceProperties.
23512func (lnrp LocalNetworkResourceProperties) AsLocalNetworkResourceProperties() (*LocalNetworkResourceProperties, bool) {
23513	return &lnrp, true
23514}
23515
23516// AsNetworkResourcePropertiesBase is the BasicNetworkResourcePropertiesBase implementation for LocalNetworkResourceProperties.
23517func (lnrp LocalNetworkResourceProperties) AsNetworkResourcePropertiesBase() (*NetworkResourcePropertiesBase, bool) {
23518	return nil, false
23519}
23520
23521// AsBasicNetworkResourcePropertiesBase is the BasicNetworkResourcePropertiesBase implementation for LocalNetworkResourceProperties.
23522func (lnrp LocalNetworkResourceProperties) AsBasicNetworkResourcePropertiesBase() (BasicNetworkResourcePropertiesBase, bool) {
23523	return &lnrp, true
23524}
23525
23526// ManagedApplicationIdentity describes a managed application identity.
23527type ManagedApplicationIdentity struct {
23528	// Name - The name of the identity.
23529	Name *string `json:"Name,omitempty"`
23530	// PrincipalID - The identity's PrincipalId.
23531	PrincipalID *string `json:"PrincipalId,omitempty"`
23532}
23533
23534// ManagedApplicationIdentityDescription managed application identity description.
23535type ManagedApplicationIdentityDescription struct {
23536	// TokenServiceEndpoint - Token service endpoint.
23537	TokenServiceEndpoint *string `json:"TokenServiceEndpoint,omitempty"`
23538	// ManagedIdentities - A list of managed application identity objects.
23539	ManagedIdentities *[]ManagedApplicationIdentity `json:"ManagedIdentities,omitempty"`
23540}
23541
23542// MetricLoadDescription specifies metric load information.
23543type MetricLoadDescription struct {
23544	// MetricName - The name of the reported metric.
23545	MetricName *string `json:"MetricName,omitempty"`
23546	// CurrentLoad - The current value of the metric load.
23547	CurrentLoad *int64 `json:"CurrentLoad,omitempty"`
23548	// PredictedLoad - The predicted value of the metric load.
23549	PredictedLoad *int64 `json:"PredictedLoad,omitempty"`
23550}
23551
23552// MonitoringPolicyDescription describes the parameters for monitoring an upgrade in Monitored mode.
23553type MonitoringPolicyDescription struct {
23554	// FailureAction - The compensating action to perform when a Monitored upgrade encounters monitoring policy or health policy violations.
23555	// Invalid indicates the failure action is invalid. Rollback specifies that the upgrade will start rolling back automatically.
23556	// Manual indicates that the upgrade will switch to UnmonitoredManual upgrade mode. Possible values include: 'FailureActionInvalid', 'FailureActionRollback', 'FailureActionManual'
23557	FailureAction FailureAction `json:"FailureAction,omitempty"`
23558	// 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.
23559	HealthCheckWaitDurationInMilliseconds *string `json:"HealthCheckWaitDurationInMilliseconds,omitempty"`
23560	// 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.
23561	HealthCheckStableDurationInMilliseconds *string `json:"HealthCheckStableDurationInMilliseconds,omitempty"`
23562	// 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.
23563	HealthCheckRetryTimeoutInMilliseconds *string `json:"HealthCheckRetryTimeoutInMilliseconds,omitempty"`
23564	// 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.
23565	UpgradeTimeoutInMilliseconds *string `json:"UpgradeTimeoutInMilliseconds,omitempty"`
23566	// 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.
23567	UpgradeDomainTimeoutInMilliseconds *string `json:"UpgradeDomainTimeoutInMilliseconds,omitempty"`
23568}
23569
23570// NameDescription describes a Service Fabric name.
23571type NameDescription struct {
23572	// Name - The Service Fabric name, including the 'fabric:' URI scheme.
23573	Name *string `json:"Name,omitempty"`
23574}
23575
23576// NamedPartitionInformation describes the partition information for the name as a string that is based on
23577// partition schemes.
23578type NamedPartitionInformation struct {
23579	// Name - Name of the partition.
23580	Name *string `json:"Name,omitempty"`
23581	// 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.
23582	ID *uuid.UUID `json:"Id,omitempty"`
23583	// ServicePartitionKind - Possible values include: 'ServicePartitionKindPartitionInformation', 'ServicePartitionKindInt64Range1', 'ServicePartitionKindNamed1', 'ServicePartitionKindSingleton1'
23584	ServicePartitionKind ServicePartitionKindBasicPartitionInformation `json:"ServicePartitionKind,omitempty"`
23585}
23586
23587// MarshalJSON is the custom marshaler for NamedPartitionInformation.
23588func (npi NamedPartitionInformation) MarshalJSON() ([]byte, error) {
23589	npi.ServicePartitionKind = ServicePartitionKindNamed1
23590	objectMap := make(map[string]interface{})
23591	if npi.Name != nil {
23592		objectMap["Name"] = npi.Name
23593	}
23594	if npi.ID != nil {
23595		objectMap["Id"] = npi.ID
23596	}
23597	if npi.ServicePartitionKind != "" {
23598		objectMap["ServicePartitionKind"] = npi.ServicePartitionKind
23599	}
23600	return json.Marshal(objectMap)
23601}
23602
23603// AsInt64RangePartitionInformation is the BasicPartitionInformation implementation for NamedPartitionInformation.
23604func (npi NamedPartitionInformation) AsInt64RangePartitionInformation() (*Int64RangePartitionInformation, bool) {
23605	return nil, false
23606}
23607
23608// AsNamedPartitionInformation is the BasicPartitionInformation implementation for NamedPartitionInformation.
23609func (npi NamedPartitionInformation) AsNamedPartitionInformation() (*NamedPartitionInformation, bool) {
23610	return &npi, true
23611}
23612
23613// AsSingletonPartitionInformation is the BasicPartitionInformation implementation for NamedPartitionInformation.
23614func (npi NamedPartitionInformation) AsSingletonPartitionInformation() (*SingletonPartitionInformation, bool) {
23615	return nil, false
23616}
23617
23618// AsPartitionInformation is the BasicPartitionInformation implementation for NamedPartitionInformation.
23619func (npi NamedPartitionInformation) AsPartitionInformation() (*PartitionInformation, bool) {
23620	return nil, false
23621}
23622
23623// AsBasicPartitionInformation is the BasicPartitionInformation implementation for NamedPartitionInformation.
23624func (npi NamedPartitionInformation) AsBasicPartitionInformation() (BasicPartitionInformation, bool) {
23625	return &npi, true
23626}
23627
23628// NamedPartitionSchemeDescription describes the named partition scheme of the service.
23629type NamedPartitionSchemeDescription struct {
23630	// Count - The number of partitions.
23631	Count *int32 `json:"Count,omitempty"`
23632	// Names - Array of size specified by the ‘Count’ parameter, for the names of the partitions.
23633	Names *[]string `json:"Names,omitempty"`
23634	// PartitionScheme - Possible values include: 'PartitionSchemePartitionSchemeDescription', 'PartitionSchemeNamed1', 'PartitionSchemeSingleton1', 'PartitionSchemeUniformInt64Range1'
23635	PartitionScheme PartitionSchemeBasicPartitionSchemeDescription `json:"PartitionScheme,omitempty"`
23636}
23637
23638// MarshalJSON is the custom marshaler for NamedPartitionSchemeDescription.
23639func (npsd NamedPartitionSchemeDescription) MarshalJSON() ([]byte, error) {
23640	npsd.PartitionScheme = PartitionSchemeNamed1
23641	objectMap := make(map[string]interface{})
23642	if npsd.Count != nil {
23643		objectMap["Count"] = npsd.Count
23644	}
23645	if npsd.Names != nil {
23646		objectMap["Names"] = npsd.Names
23647	}
23648	if npsd.PartitionScheme != "" {
23649		objectMap["PartitionScheme"] = npsd.PartitionScheme
23650	}
23651	return json.Marshal(objectMap)
23652}
23653
23654// AsNamedPartitionSchemeDescription is the BasicPartitionSchemeDescription implementation for NamedPartitionSchemeDescription.
23655func (npsd NamedPartitionSchemeDescription) AsNamedPartitionSchemeDescription() (*NamedPartitionSchemeDescription, bool) {
23656	return &npsd, true
23657}
23658
23659// AsSingletonPartitionSchemeDescription is the BasicPartitionSchemeDescription implementation for NamedPartitionSchemeDescription.
23660func (npsd NamedPartitionSchemeDescription) AsSingletonPartitionSchemeDescription() (*SingletonPartitionSchemeDescription, bool) {
23661	return nil, false
23662}
23663
23664// AsUniformInt64RangePartitionSchemeDescription is the BasicPartitionSchemeDescription implementation for NamedPartitionSchemeDescription.
23665func (npsd NamedPartitionSchemeDescription) AsUniformInt64RangePartitionSchemeDescription() (*UniformInt64RangePartitionSchemeDescription, bool) {
23666	return nil, false
23667}
23668
23669// AsPartitionSchemeDescription is the BasicPartitionSchemeDescription implementation for NamedPartitionSchemeDescription.
23670func (npsd NamedPartitionSchemeDescription) AsPartitionSchemeDescription() (*PartitionSchemeDescription, bool) {
23671	return nil, false
23672}
23673
23674// AsBasicPartitionSchemeDescription is the BasicPartitionSchemeDescription implementation for NamedPartitionSchemeDescription.
23675func (npsd NamedPartitionSchemeDescription) AsBasicPartitionSchemeDescription() (BasicPartitionSchemeDescription, bool) {
23676	return &npsd, true
23677}
23678
23679// NetworkRef describes a network reference in a service.
23680type NetworkRef struct {
23681	// Name - Name of the network
23682	Name *string `json:"name,omitempty"`
23683	// EndpointRefs - A list of endpoints that are exposed on this network.
23684	EndpointRefs *[]EndpointRef `json:"endpointRefs,omitempty"`
23685}
23686
23687// NetworkResourceDescription this type describes a network resource.
23688type NetworkResourceDescription struct {
23689	autorest.Response `json:"-"`
23690	// Name - Name of the Network resource.
23691	Name *string `json:"name,omitempty"`
23692	// Properties - Describes properties of a network resource.
23693	Properties BasicNetworkResourceProperties `json:"properties,omitempty"`
23694}
23695
23696// UnmarshalJSON is the custom unmarshaler for NetworkResourceDescription struct.
23697func (nrd *NetworkResourceDescription) UnmarshalJSON(body []byte) error {
23698	var m map[string]*json.RawMessage
23699	err := json.Unmarshal(body, &m)
23700	if err != nil {
23701		return err
23702	}
23703	for k, v := range m {
23704		switch k {
23705		case "name":
23706			if v != nil {
23707				var name string
23708				err = json.Unmarshal(*v, &name)
23709				if err != nil {
23710					return err
23711				}
23712				nrd.Name = &name
23713			}
23714		case "properties":
23715			if v != nil {
23716				properties, err := unmarshalBasicNetworkResourceProperties(*v)
23717				if err != nil {
23718					return err
23719				}
23720				nrd.Properties = properties
23721			}
23722		}
23723	}
23724
23725	return nil
23726}
23727
23728// BasicNetworkResourceProperties describes properties of a network resource.
23729type BasicNetworkResourceProperties interface {
23730	AsLocalNetworkResourceProperties() (*LocalNetworkResourceProperties, bool)
23731	AsNetworkResourceProperties() (*NetworkResourceProperties, bool)
23732}
23733
23734// NetworkResourceProperties describes properties of a network resource.
23735type NetworkResourceProperties struct {
23736	// Description - User readable description of the network.
23737	Description *string `json:"description,omitempty"`
23738	// Status - READ-ONLY; Status of the network. Possible values include: 'ResourceStatusUnknown', 'ResourceStatusReady', 'ResourceStatusUpgrading', 'ResourceStatusCreating', 'ResourceStatusDeleting', 'ResourceStatusFailed'
23739	Status ResourceStatus `json:"status,omitempty"`
23740	// StatusDetails - READ-ONLY; Gives additional information about the current status of the network.
23741	StatusDetails *string `json:"statusDetails,omitempty"`
23742	// Kind - Possible values include: 'KindNetworkResourcePropertiesBase', 'KindNetworkResourceProperties', 'KindLocal'
23743	Kind KindBasicNetworkResourcePropertiesBase `json:"kind,omitempty"`
23744}
23745
23746func unmarshalBasicNetworkResourceProperties(body []byte) (BasicNetworkResourceProperties, error) {
23747	var m map[string]interface{}
23748	err := json.Unmarshal(body, &m)
23749	if err != nil {
23750		return nil, err
23751	}
23752
23753	switch m["kind"] {
23754	case string(KindLocal):
23755		var lnrp LocalNetworkResourceProperties
23756		err := json.Unmarshal(body, &lnrp)
23757		return lnrp, err
23758	default:
23759		var nrp NetworkResourceProperties
23760		err := json.Unmarshal(body, &nrp)
23761		return nrp, err
23762	}
23763}
23764func unmarshalBasicNetworkResourcePropertiesArray(body []byte) ([]BasicNetworkResourceProperties, error) {
23765	var rawMessages []*json.RawMessage
23766	err := json.Unmarshal(body, &rawMessages)
23767	if err != nil {
23768		return nil, err
23769	}
23770
23771	nrpArray := make([]BasicNetworkResourceProperties, len(rawMessages))
23772
23773	for index, rawMessage := range rawMessages {
23774		nrp, err := unmarshalBasicNetworkResourceProperties(*rawMessage)
23775		if err != nil {
23776			return nil, err
23777		}
23778		nrpArray[index] = nrp
23779	}
23780	return nrpArray, nil
23781}
23782
23783// MarshalJSON is the custom marshaler for NetworkResourceProperties.
23784func (nrp NetworkResourceProperties) MarshalJSON() ([]byte, error) {
23785	nrp.Kind = KindNetworkResourceProperties
23786	objectMap := make(map[string]interface{})
23787	if nrp.Description != nil {
23788		objectMap["description"] = nrp.Description
23789	}
23790	if nrp.Kind != "" {
23791		objectMap["kind"] = nrp.Kind
23792	}
23793	return json.Marshal(objectMap)
23794}
23795
23796// AsNetworkResourceProperties is the BasicNetworkResourcePropertiesBase implementation for NetworkResourceProperties.
23797func (nrp NetworkResourceProperties) AsNetworkResourceProperties() (*NetworkResourceProperties, bool) {
23798	return &nrp, true
23799}
23800
23801// AsBasicNetworkResourceProperties is the BasicNetworkResourcePropertiesBase implementation for NetworkResourceProperties.
23802func (nrp NetworkResourceProperties) AsBasicNetworkResourceProperties() (BasicNetworkResourceProperties, bool) {
23803	return &nrp, true
23804}
23805
23806// AsLocalNetworkResourceProperties is the BasicNetworkResourcePropertiesBase implementation for NetworkResourceProperties.
23807func (nrp NetworkResourceProperties) AsLocalNetworkResourceProperties() (*LocalNetworkResourceProperties, bool) {
23808	return nil, false
23809}
23810
23811// AsNetworkResourcePropertiesBase is the BasicNetworkResourcePropertiesBase implementation for NetworkResourceProperties.
23812func (nrp NetworkResourceProperties) AsNetworkResourcePropertiesBase() (*NetworkResourcePropertiesBase, bool) {
23813	return nil, false
23814}
23815
23816// AsBasicNetworkResourcePropertiesBase is the BasicNetworkResourcePropertiesBase implementation for NetworkResourceProperties.
23817func (nrp NetworkResourceProperties) AsBasicNetworkResourcePropertiesBase() (BasicNetworkResourcePropertiesBase, bool) {
23818	return &nrp, true
23819}
23820
23821// BasicNetworkResourcePropertiesBase this type describes the properties of a network resource, including its kind.
23822type BasicNetworkResourcePropertiesBase interface {
23823	AsNetworkResourceProperties() (*NetworkResourceProperties, bool)
23824	AsBasicNetworkResourceProperties() (BasicNetworkResourceProperties, bool)
23825	AsLocalNetworkResourceProperties() (*LocalNetworkResourceProperties, bool)
23826	AsNetworkResourcePropertiesBase() (*NetworkResourcePropertiesBase, bool)
23827}
23828
23829// NetworkResourcePropertiesBase this type describes the properties of a network resource, including its kind.
23830type NetworkResourcePropertiesBase struct {
23831	// Kind - Possible values include: 'KindNetworkResourcePropertiesBase', 'KindNetworkResourceProperties', 'KindLocal'
23832	Kind KindBasicNetworkResourcePropertiesBase `json:"kind,omitempty"`
23833}
23834
23835func unmarshalBasicNetworkResourcePropertiesBase(body []byte) (BasicNetworkResourcePropertiesBase, error) {
23836	var m map[string]interface{}
23837	err := json.Unmarshal(body, &m)
23838	if err != nil {
23839		return nil, err
23840	}
23841
23842	switch m["kind"] {
23843	case string(KindNetworkResourceProperties):
23844		var nrp NetworkResourceProperties
23845		err := json.Unmarshal(body, &nrp)
23846		return nrp, err
23847	case string(KindLocal):
23848		var lnrp LocalNetworkResourceProperties
23849		err := json.Unmarshal(body, &lnrp)
23850		return lnrp, err
23851	default:
23852		var nrpb NetworkResourcePropertiesBase
23853		err := json.Unmarshal(body, &nrpb)
23854		return nrpb, err
23855	}
23856}
23857func unmarshalBasicNetworkResourcePropertiesBaseArray(body []byte) ([]BasicNetworkResourcePropertiesBase, error) {
23858	var rawMessages []*json.RawMessage
23859	err := json.Unmarshal(body, &rawMessages)
23860	if err != nil {
23861		return nil, err
23862	}
23863
23864	nrpbArray := make([]BasicNetworkResourcePropertiesBase, len(rawMessages))
23865
23866	for index, rawMessage := range rawMessages {
23867		nrpb, err := unmarshalBasicNetworkResourcePropertiesBase(*rawMessage)
23868		if err != nil {
23869			return nil, err
23870		}
23871		nrpbArray[index] = nrpb
23872	}
23873	return nrpbArray, nil
23874}
23875
23876// MarshalJSON is the custom marshaler for NetworkResourcePropertiesBase.
23877func (nrpb NetworkResourcePropertiesBase) MarshalJSON() ([]byte, error) {
23878	nrpb.Kind = KindNetworkResourcePropertiesBase
23879	objectMap := make(map[string]interface{})
23880	if nrpb.Kind != "" {
23881		objectMap["kind"] = nrpb.Kind
23882	}
23883	return json.Marshal(objectMap)
23884}
23885
23886// AsNetworkResourceProperties is the BasicNetworkResourcePropertiesBase implementation for NetworkResourcePropertiesBase.
23887func (nrpb NetworkResourcePropertiesBase) AsNetworkResourceProperties() (*NetworkResourceProperties, bool) {
23888	return nil, false
23889}
23890
23891// AsBasicNetworkResourceProperties is the BasicNetworkResourcePropertiesBase implementation for NetworkResourcePropertiesBase.
23892func (nrpb NetworkResourcePropertiesBase) AsBasicNetworkResourceProperties() (BasicNetworkResourceProperties, bool) {
23893	return nil, false
23894}
23895
23896// AsLocalNetworkResourceProperties is the BasicNetworkResourcePropertiesBase implementation for NetworkResourcePropertiesBase.
23897func (nrpb NetworkResourcePropertiesBase) AsLocalNetworkResourceProperties() (*LocalNetworkResourceProperties, bool) {
23898	return nil, false
23899}
23900
23901// AsNetworkResourcePropertiesBase is the BasicNetworkResourcePropertiesBase implementation for NetworkResourcePropertiesBase.
23902func (nrpb NetworkResourcePropertiesBase) AsNetworkResourcePropertiesBase() (*NetworkResourcePropertiesBase, bool) {
23903	return &nrpb, true
23904}
23905
23906// AsBasicNetworkResourcePropertiesBase is the BasicNetworkResourcePropertiesBase implementation for NetworkResourcePropertiesBase.
23907func (nrpb NetworkResourcePropertiesBase) AsBasicNetworkResourcePropertiesBase() (BasicNetworkResourcePropertiesBase, bool) {
23908	return &nrpb, true
23909}
23910
23911// NodeAbortedEvent node Aborted event.
23912type NodeAbortedEvent struct {
23913	// NodeInstance - Id of Node instance.
23914	NodeInstance *int64 `json:"NodeInstance,omitempty"`
23915	// NodeID - Id of Node.
23916	NodeID *string `json:"NodeId,omitempty"`
23917	// UpgradeDomain - Upgrade domain of Node.
23918	UpgradeDomain *string `json:"UpgradeDomain,omitempty"`
23919	// FaultDomain - Fault domain of Node.
23920	FaultDomain *string `json:"FaultDomain,omitempty"`
23921	// IPAddressOrFQDN - IP address or FQDN.
23922	IPAddressOrFQDN *string `json:"IpAddressOrFQDN,omitempty"`
23923	// Hostname - Name of Host.
23924	Hostname *string `json:"Hostname,omitempty"`
23925	// IsSeedNode - Indicates if it is seed node.
23926	IsSeedNode *bool `json:"IsSeedNode,omitempty"`
23927	// NodeVersion - Version of Node.
23928	NodeVersion *string `json:"NodeVersion,omitempty"`
23929	// NodeName - The name of a Service Fabric node.
23930	NodeName *string `json:"NodeName,omitempty"`
23931	// EventInstanceID - The identifier for the FabricEvent instance.
23932	EventInstanceID *uuid.UUID `json:"EventInstanceId,omitempty"`
23933	// Category - The category of event.
23934	Category *string `json:"Category,omitempty"`
23935	// TimeStamp - The time event was logged.
23936	TimeStamp *date.Time `json:"TimeStamp,omitempty"`
23937	// HasCorrelatedEvents - Shows there is existing related events available.
23938	HasCorrelatedEvents *bool `json:"HasCorrelatedEvents,omitempty"`
23939	// 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'
23940	Kind KindBasicFabricEvent `json:"Kind,omitempty"`
23941}
23942
23943// MarshalJSON is the custom marshaler for NodeAbortedEvent.
23944func (nae NodeAbortedEvent) MarshalJSON() ([]byte, error) {
23945	nae.Kind = KindNodeAborted
23946	objectMap := make(map[string]interface{})
23947	if nae.NodeInstance != nil {
23948		objectMap["NodeInstance"] = nae.NodeInstance
23949	}
23950	if nae.NodeID != nil {
23951		objectMap["NodeId"] = nae.NodeID
23952	}
23953	if nae.UpgradeDomain != nil {
23954		objectMap["UpgradeDomain"] = nae.UpgradeDomain
23955	}
23956	if nae.FaultDomain != nil {
23957		objectMap["FaultDomain"] = nae.FaultDomain
23958	}
23959	if nae.IPAddressOrFQDN != nil {
23960		objectMap["IpAddressOrFQDN"] = nae.IPAddressOrFQDN
23961	}
23962	if nae.Hostname != nil {
23963		objectMap["Hostname"] = nae.Hostname
23964	}
23965	if nae.IsSeedNode != nil {
23966		objectMap["IsSeedNode"] = nae.IsSeedNode
23967	}
23968	if nae.NodeVersion != nil {
23969		objectMap["NodeVersion"] = nae.NodeVersion
23970	}
23971	if nae.NodeName != nil {
23972		objectMap["NodeName"] = nae.NodeName
23973	}
23974	if nae.EventInstanceID != nil {
23975		objectMap["EventInstanceId"] = nae.EventInstanceID
23976	}
23977	if nae.Category != nil {
23978		objectMap["Category"] = nae.Category
23979	}
23980	if nae.TimeStamp != nil {
23981		objectMap["TimeStamp"] = nae.TimeStamp
23982	}
23983	if nae.HasCorrelatedEvents != nil {
23984		objectMap["HasCorrelatedEvents"] = nae.HasCorrelatedEvents
23985	}
23986	if nae.Kind != "" {
23987		objectMap["Kind"] = nae.Kind
23988	}
23989	return json.Marshal(objectMap)
23990}
23991
23992// AsApplicationEvent is the BasicFabricEvent implementation for NodeAbortedEvent.
23993func (nae NodeAbortedEvent) AsApplicationEvent() (*ApplicationEvent, bool) {
23994	return nil, false
23995}
23996
23997// AsBasicApplicationEvent is the BasicFabricEvent implementation for NodeAbortedEvent.
23998func (nae NodeAbortedEvent) AsBasicApplicationEvent() (BasicApplicationEvent, bool) {
23999	return nil, false
24000}
24001
24002// AsClusterEvent is the BasicFabricEvent implementation for NodeAbortedEvent.
24003func (nae NodeAbortedEvent) AsClusterEvent() (*ClusterEvent, bool) {
24004	return nil, false
24005}
24006
24007// AsBasicClusterEvent is the BasicFabricEvent implementation for NodeAbortedEvent.
24008func (nae NodeAbortedEvent) AsBasicClusterEvent() (BasicClusterEvent, bool) {
24009	return nil, false
24010}
24011
24012// AsContainerInstanceEvent is the BasicFabricEvent implementation for NodeAbortedEvent.
24013func (nae NodeAbortedEvent) AsContainerInstanceEvent() (*ContainerInstanceEvent, bool) {
24014	return nil, false
24015}
24016
24017// AsNodeEvent is the BasicFabricEvent implementation for NodeAbortedEvent.
24018func (nae NodeAbortedEvent) AsNodeEvent() (*NodeEvent, bool) {
24019	return nil, false
24020}
24021
24022// AsBasicNodeEvent is the BasicFabricEvent implementation for NodeAbortedEvent.
24023func (nae NodeAbortedEvent) AsBasicNodeEvent() (BasicNodeEvent, bool) {
24024	return &nae, true
24025}
24026
24027// AsPartitionAnalysisEvent is the BasicFabricEvent implementation for NodeAbortedEvent.
24028func (nae NodeAbortedEvent) AsPartitionAnalysisEvent() (*PartitionAnalysisEvent, bool) {
24029	return nil, false
24030}
24031
24032// AsBasicPartitionAnalysisEvent is the BasicFabricEvent implementation for NodeAbortedEvent.
24033func (nae NodeAbortedEvent) AsBasicPartitionAnalysisEvent() (BasicPartitionAnalysisEvent, bool) {
24034	return nil, false
24035}
24036
24037// AsPartitionEvent is the BasicFabricEvent implementation for NodeAbortedEvent.
24038func (nae NodeAbortedEvent) AsPartitionEvent() (*PartitionEvent, bool) {
24039	return nil, false
24040}
24041
24042// AsBasicPartitionEvent is the BasicFabricEvent implementation for NodeAbortedEvent.
24043func (nae NodeAbortedEvent) AsBasicPartitionEvent() (BasicPartitionEvent, bool) {
24044	return nil, false
24045}
24046
24047// AsReplicaEvent is the BasicFabricEvent implementation for NodeAbortedEvent.
24048func (nae NodeAbortedEvent) AsReplicaEvent() (*ReplicaEvent, bool) {
24049	return nil, false
24050}
24051
24052// AsBasicReplicaEvent is the BasicFabricEvent implementation for NodeAbortedEvent.
24053func (nae NodeAbortedEvent) AsBasicReplicaEvent() (BasicReplicaEvent, bool) {
24054	return nil, false
24055}
24056
24057// AsServiceEvent is the BasicFabricEvent implementation for NodeAbortedEvent.
24058func (nae NodeAbortedEvent) AsServiceEvent() (*ServiceEvent, bool) {
24059	return nil, false
24060}
24061
24062// AsBasicServiceEvent is the BasicFabricEvent implementation for NodeAbortedEvent.
24063func (nae NodeAbortedEvent) AsBasicServiceEvent() (BasicServiceEvent, bool) {
24064	return nil, false
24065}
24066
24067// AsApplicationCreatedEvent is the BasicFabricEvent implementation for NodeAbortedEvent.
24068func (nae NodeAbortedEvent) AsApplicationCreatedEvent() (*ApplicationCreatedEvent, bool) {
24069	return nil, false
24070}
24071
24072// AsApplicationDeletedEvent is the BasicFabricEvent implementation for NodeAbortedEvent.
24073func (nae NodeAbortedEvent) AsApplicationDeletedEvent() (*ApplicationDeletedEvent, bool) {
24074	return nil, false
24075}
24076
24077// AsApplicationNewHealthReportEvent is the BasicFabricEvent implementation for NodeAbortedEvent.
24078func (nae NodeAbortedEvent) AsApplicationNewHealthReportEvent() (*ApplicationNewHealthReportEvent, bool) {
24079	return nil, false
24080}
24081
24082// AsApplicationHealthReportExpiredEvent is the BasicFabricEvent implementation for NodeAbortedEvent.
24083func (nae NodeAbortedEvent) AsApplicationHealthReportExpiredEvent() (*ApplicationHealthReportExpiredEvent, bool) {
24084	return nil, false
24085}
24086
24087// AsApplicationUpgradeCompletedEvent is the BasicFabricEvent implementation for NodeAbortedEvent.
24088func (nae NodeAbortedEvent) AsApplicationUpgradeCompletedEvent() (*ApplicationUpgradeCompletedEvent, bool) {
24089	return nil, false
24090}
24091
24092// AsApplicationUpgradeDomainCompletedEvent is the BasicFabricEvent implementation for NodeAbortedEvent.
24093func (nae NodeAbortedEvent) AsApplicationUpgradeDomainCompletedEvent() (*ApplicationUpgradeDomainCompletedEvent, bool) {
24094	return nil, false
24095}
24096
24097// AsApplicationUpgradeRollbackCompletedEvent is the BasicFabricEvent implementation for NodeAbortedEvent.
24098func (nae NodeAbortedEvent) AsApplicationUpgradeRollbackCompletedEvent() (*ApplicationUpgradeRollbackCompletedEvent, bool) {
24099	return nil, false
24100}
24101
24102// AsApplicationUpgradeRollbackStartedEvent is the BasicFabricEvent implementation for NodeAbortedEvent.
24103func (nae NodeAbortedEvent) AsApplicationUpgradeRollbackStartedEvent() (*ApplicationUpgradeRollbackStartedEvent, bool) {
24104	return nil, false
24105}
24106
24107// AsApplicationUpgradeStartedEvent is the BasicFabricEvent implementation for NodeAbortedEvent.
24108func (nae NodeAbortedEvent) AsApplicationUpgradeStartedEvent() (*ApplicationUpgradeStartedEvent, bool) {
24109	return nil, false
24110}
24111
24112// AsDeployedApplicationNewHealthReportEvent is the BasicFabricEvent implementation for NodeAbortedEvent.
24113func (nae NodeAbortedEvent) AsDeployedApplicationNewHealthReportEvent() (*DeployedApplicationNewHealthReportEvent, bool) {
24114	return nil, false
24115}
24116
24117// AsDeployedApplicationHealthReportExpiredEvent is the BasicFabricEvent implementation for NodeAbortedEvent.
24118func (nae NodeAbortedEvent) AsDeployedApplicationHealthReportExpiredEvent() (*DeployedApplicationHealthReportExpiredEvent, bool) {
24119	return nil, false
24120}
24121
24122// AsApplicationProcessExitedEvent is the BasicFabricEvent implementation for NodeAbortedEvent.
24123func (nae NodeAbortedEvent) AsApplicationProcessExitedEvent() (*ApplicationProcessExitedEvent, bool) {
24124	return nil, false
24125}
24126
24127// AsApplicationContainerInstanceExitedEvent is the BasicFabricEvent implementation for NodeAbortedEvent.
24128func (nae NodeAbortedEvent) AsApplicationContainerInstanceExitedEvent() (*ApplicationContainerInstanceExitedEvent, bool) {
24129	return nil, false
24130}
24131
24132// AsNodeAbortedEvent is the BasicFabricEvent implementation for NodeAbortedEvent.
24133func (nae NodeAbortedEvent) AsNodeAbortedEvent() (*NodeAbortedEvent, bool) {
24134	return &nae, true
24135}
24136
24137// AsNodeAddedToClusterEvent is the BasicFabricEvent implementation for NodeAbortedEvent.
24138func (nae NodeAbortedEvent) AsNodeAddedToClusterEvent() (*NodeAddedToClusterEvent, bool) {
24139	return nil, false
24140}
24141
24142// AsNodeClosedEvent is the BasicFabricEvent implementation for NodeAbortedEvent.
24143func (nae NodeAbortedEvent) AsNodeClosedEvent() (*NodeClosedEvent, bool) {
24144	return nil, false
24145}
24146
24147// AsNodeDeactivateCompletedEvent is the BasicFabricEvent implementation for NodeAbortedEvent.
24148func (nae NodeAbortedEvent) AsNodeDeactivateCompletedEvent() (*NodeDeactivateCompletedEvent, bool) {
24149	return nil, false
24150}
24151
24152// AsNodeDeactivateStartedEvent is the BasicFabricEvent implementation for NodeAbortedEvent.
24153func (nae NodeAbortedEvent) AsNodeDeactivateStartedEvent() (*NodeDeactivateStartedEvent, bool) {
24154	return nil, false
24155}
24156
24157// AsNodeDownEvent is the BasicFabricEvent implementation for NodeAbortedEvent.
24158func (nae NodeAbortedEvent) AsNodeDownEvent() (*NodeDownEvent, bool) {
24159	return nil, false
24160}
24161
24162// AsNodeNewHealthReportEvent is the BasicFabricEvent implementation for NodeAbortedEvent.
24163func (nae NodeAbortedEvent) AsNodeNewHealthReportEvent() (*NodeNewHealthReportEvent, bool) {
24164	return nil, false
24165}
24166
24167// AsNodeHealthReportExpiredEvent is the BasicFabricEvent implementation for NodeAbortedEvent.
24168func (nae NodeAbortedEvent) AsNodeHealthReportExpiredEvent() (*NodeHealthReportExpiredEvent, bool) {
24169	return nil, false
24170}
24171
24172// AsNodeOpenSucceededEvent is the BasicFabricEvent implementation for NodeAbortedEvent.
24173func (nae NodeAbortedEvent) AsNodeOpenSucceededEvent() (*NodeOpenSucceededEvent, bool) {
24174	return nil, false
24175}
24176
24177// AsNodeOpenFailedEvent is the BasicFabricEvent implementation for NodeAbortedEvent.
24178func (nae NodeAbortedEvent) AsNodeOpenFailedEvent() (*NodeOpenFailedEvent, bool) {
24179	return nil, false
24180}
24181
24182// AsNodeRemovedFromClusterEvent is the BasicFabricEvent implementation for NodeAbortedEvent.
24183func (nae NodeAbortedEvent) AsNodeRemovedFromClusterEvent() (*NodeRemovedFromClusterEvent, bool) {
24184	return nil, false
24185}
24186
24187// AsNodeUpEvent is the BasicFabricEvent implementation for NodeAbortedEvent.
24188func (nae NodeAbortedEvent) AsNodeUpEvent() (*NodeUpEvent, bool) {
24189	return nil, false
24190}
24191
24192// AsPartitionNewHealthReportEvent is the BasicFabricEvent implementation for NodeAbortedEvent.
24193func (nae NodeAbortedEvent) AsPartitionNewHealthReportEvent() (*PartitionNewHealthReportEvent, bool) {
24194	return nil, false
24195}
24196
24197// AsPartitionHealthReportExpiredEvent is the BasicFabricEvent implementation for NodeAbortedEvent.
24198func (nae NodeAbortedEvent) AsPartitionHealthReportExpiredEvent() (*PartitionHealthReportExpiredEvent, bool) {
24199	return nil, false
24200}
24201
24202// AsPartitionReconfiguredEvent is the BasicFabricEvent implementation for NodeAbortedEvent.
24203func (nae NodeAbortedEvent) AsPartitionReconfiguredEvent() (*PartitionReconfiguredEvent, bool) {
24204	return nil, false
24205}
24206
24207// AsPartitionPrimaryMoveAnalysisEvent is the BasicFabricEvent implementation for NodeAbortedEvent.
24208func (nae NodeAbortedEvent) AsPartitionPrimaryMoveAnalysisEvent() (*PartitionPrimaryMoveAnalysisEvent, bool) {
24209	return nil, false
24210}
24211
24212// AsServiceCreatedEvent is the BasicFabricEvent implementation for NodeAbortedEvent.
24213func (nae NodeAbortedEvent) AsServiceCreatedEvent() (*ServiceCreatedEvent, bool) {
24214	return nil, false
24215}
24216
24217// AsServiceDeletedEvent is the BasicFabricEvent implementation for NodeAbortedEvent.
24218func (nae NodeAbortedEvent) AsServiceDeletedEvent() (*ServiceDeletedEvent, bool) {
24219	return nil, false
24220}
24221
24222// AsServiceNewHealthReportEvent is the BasicFabricEvent implementation for NodeAbortedEvent.
24223func (nae NodeAbortedEvent) AsServiceNewHealthReportEvent() (*ServiceNewHealthReportEvent, bool) {
24224	return nil, false
24225}
24226
24227// AsServiceHealthReportExpiredEvent is the BasicFabricEvent implementation for NodeAbortedEvent.
24228func (nae NodeAbortedEvent) AsServiceHealthReportExpiredEvent() (*ServiceHealthReportExpiredEvent, bool) {
24229	return nil, false
24230}
24231
24232// AsDeployedServicePackageNewHealthReportEvent is the BasicFabricEvent implementation for NodeAbortedEvent.
24233func (nae NodeAbortedEvent) AsDeployedServicePackageNewHealthReportEvent() (*DeployedServicePackageNewHealthReportEvent, bool) {
24234	return nil, false
24235}
24236
24237// AsDeployedServicePackageHealthReportExpiredEvent is the BasicFabricEvent implementation for NodeAbortedEvent.
24238func (nae NodeAbortedEvent) AsDeployedServicePackageHealthReportExpiredEvent() (*DeployedServicePackageHealthReportExpiredEvent, bool) {
24239	return nil, false
24240}
24241
24242// AsStatefulReplicaNewHealthReportEvent is the BasicFabricEvent implementation for NodeAbortedEvent.
24243func (nae NodeAbortedEvent) AsStatefulReplicaNewHealthReportEvent() (*StatefulReplicaNewHealthReportEvent, bool) {
24244	return nil, false
24245}
24246
24247// AsStatefulReplicaHealthReportExpiredEvent is the BasicFabricEvent implementation for NodeAbortedEvent.
24248func (nae NodeAbortedEvent) AsStatefulReplicaHealthReportExpiredEvent() (*StatefulReplicaHealthReportExpiredEvent, bool) {
24249	return nil, false
24250}
24251
24252// AsStatelessReplicaNewHealthReportEvent is the BasicFabricEvent implementation for NodeAbortedEvent.
24253func (nae NodeAbortedEvent) AsStatelessReplicaNewHealthReportEvent() (*StatelessReplicaNewHealthReportEvent, bool) {
24254	return nil, false
24255}
24256
24257// AsStatelessReplicaHealthReportExpiredEvent is the BasicFabricEvent implementation for NodeAbortedEvent.
24258func (nae NodeAbortedEvent) AsStatelessReplicaHealthReportExpiredEvent() (*StatelessReplicaHealthReportExpiredEvent, bool) {
24259	return nil, false
24260}
24261
24262// AsClusterNewHealthReportEvent is the BasicFabricEvent implementation for NodeAbortedEvent.
24263func (nae NodeAbortedEvent) AsClusterNewHealthReportEvent() (*ClusterNewHealthReportEvent, bool) {
24264	return nil, false
24265}
24266
24267// AsClusterHealthReportExpiredEvent is the BasicFabricEvent implementation for NodeAbortedEvent.
24268func (nae NodeAbortedEvent) AsClusterHealthReportExpiredEvent() (*ClusterHealthReportExpiredEvent, bool) {
24269	return nil, false
24270}
24271
24272// AsClusterUpgradeCompletedEvent is the BasicFabricEvent implementation for NodeAbortedEvent.
24273func (nae NodeAbortedEvent) AsClusterUpgradeCompletedEvent() (*ClusterUpgradeCompletedEvent, bool) {
24274	return nil, false
24275}
24276
24277// AsClusterUpgradeDomainCompletedEvent is the BasicFabricEvent implementation for NodeAbortedEvent.
24278func (nae NodeAbortedEvent) AsClusterUpgradeDomainCompletedEvent() (*ClusterUpgradeDomainCompletedEvent, bool) {
24279	return nil, false
24280}
24281
24282// AsClusterUpgradeRollbackCompletedEvent is the BasicFabricEvent implementation for NodeAbortedEvent.
24283func (nae NodeAbortedEvent) AsClusterUpgradeRollbackCompletedEvent() (*ClusterUpgradeRollbackCompletedEvent, bool) {
24284	return nil, false
24285}
24286
24287// AsClusterUpgradeRollbackStartedEvent is the BasicFabricEvent implementation for NodeAbortedEvent.
24288func (nae NodeAbortedEvent) AsClusterUpgradeRollbackStartedEvent() (*ClusterUpgradeRollbackStartedEvent, bool) {
24289	return nil, false
24290}
24291
24292// AsClusterUpgradeStartedEvent is the BasicFabricEvent implementation for NodeAbortedEvent.
24293func (nae NodeAbortedEvent) AsClusterUpgradeStartedEvent() (*ClusterUpgradeStartedEvent, bool) {
24294	return nil, false
24295}
24296
24297// AsChaosStoppedEvent is the BasicFabricEvent implementation for NodeAbortedEvent.
24298func (nae NodeAbortedEvent) AsChaosStoppedEvent() (*ChaosStoppedEvent, bool) {
24299	return nil, false
24300}
24301
24302// AsChaosStartedEvent is the BasicFabricEvent implementation for NodeAbortedEvent.
24303func (nae NodeAbortedEvent) AsChaosStartedEvent() (*ChaosStartedEvent, bool) {
24304	return nil, false
24305}
24306
24307// AsChaosCodePackageRestartScheduledEvent is the BasicFabricEvent implementation for NodeAbortedEvent.
24308func (nae NodeAbortedEvent) AsChaosCodePackageRestartScheduledEvent() (*ChaosCodePackageRestartScheduledEvent, bool) {
24309	return nil, false
24310}
24311
24312// AsChaosReplicaRemovalScheduledEvent is the BasicFabricEvent implementation for NodeAbortedEvent.
24313func (nae NodeAbortedEvent) AsChaosReplicaRemovalScheduledEvent() (*ChaosReplicaRemovalScheduledEvent, bool) {
24314	return nil, false
24315}
24316
24317// AsChaosPartitionSecondaryMoveScheduledEvent is the BasicFabricEvent implementation for NodeAbortedEvent.
24318func (nae NodeAbortedEvent) AsChaosPartitionSecondaryMoveScheduledEvent() (*ChaosPartitionSecondaryMoveScheduledEvent, bool) {
24319	return nil, false
24320}
24321
24322// AsChaosPartitionPrimaryMoveScheduledEvent is the BasicFabricEvent implementation for NodeAbortedEvent.
24323func (nae NodeAbortedEvent) AsChaosPartitionPrimaryMoveScheduledEvent() (*ChaosPartitionPrimaryMoveScheduledEvent, bool) {
24324	return nil, false
24325}
24326
24327// AsChaosReplicaRestartScheduledEvent is the BasicFabricEvent implementation for NodeAbortedEvent.
24328func (nae NodeAbortedEvent) AsChaosReplicaRestartScheduledEvent() (*ChaosReplicaRestartScheduledEvent, bool) {
24329	return nil, false
24330}
24331
24332// AsChaosNodeRestartScheduledEvent is the BasicFabricEvent implementation for NodeAbortedEvent.
24333func (nae NodeAbortedEvent) AsChaosNodeRestartScheduledEvent() (*ChaosNodeRestartScheduledEvent, bool) {
24334	return nil, false
24335}
24336
24337// AsFabricEvent is the BasicFabricEvent implementation for NodeAbortedEvent.
24338func (nae NodeAbortedEvent) AsFabricEvent() (*FabricEvent, bool) {
24339	return nil, false
24340}
24341
24342// AsBasicFabricEvent is the BasicFabricEvent implementation for NodeAbortedEvent.
24343func (nae NodeAbortedEvent) AsBasicFabricEvent() (BasicFabricEvent, bool) {
24344	return &nae, true
24345}
24346
24347// NodeAddedToClusterEvent node Added event.
24348type NodeAddedToClusterEvent struct {
24349	// NodeID - Id of Node.
24350	NodeID *string `json:"NodeId,omitempty"`
24351	// NodeInstance - Id of Node instance.
24352	NodeInstance *int64 `json:"NodeInstance,omitempty"`
24353	// NodeType - Type of Node.
24354	NodeType *string `json:"NodeType,omitempty"`
24355	// FabricVersion - Fabric version.
24356	FabricVersion *string `json:"FabricVersion,omitempty"`
24357	// IPAddressOrFQDN - IP address or FQDN.
24358	IPAddressOrFQDN *string `json:"IpAddressOrFQDN,omitempty"`
24359	// NodeCapacities - Capacities.
24360	NodeCapacities *string `json:"NodeCapacities,omitempty"`
24361	// NodeName - The name of a Service Fabric node.
24362	NodeName *string `json:"NodeName,omitempty"`
24363	// EventInstanceID - The identifier for the FabricEvent instance.
24364	EventInstanceID *uuid.UUID `json:"EventInstanceId,omitempty"`
24365	// Category - The category of event.
24366	Category *string `json:"Category,omitempty"`
24367	// TimeStamp - The time event was logged.
24368	TimeStamp *date.Time `json:"TimeStamp,omitempty"`
24369	// HasCorrelatedEvents - Shows there is existing related events available.
24370	HasCorrelatedEvents *bool `json:"HasCorrelatedEvents,omitempty"`
24371	// 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'
24372	Kind KindBasicFabricEvent `json:"Kind,omitempty"`
24373}
24374
24375// MarshalJSON is the custom marshaler for NodeAddedToClusterEvent.
24376func (natce NodeAddedToClusterEvent) MarshalJSON() ([]byte, error) {
24377	natce.Kind = KindNodeAddedToCluster
24378	objectMap := make(map[string]interface{})
24379	if natce.NodeID != nil {
24380		objectMap["NodeId"] = natce.NodeID
24381	}
24382	if natce.NodeInstance != nil {
24383		objectMap["NodeInstance"] = natce.NodeInstance
24384	}
24385	if natce.NodeType != nil {
24386		objectMap["NodeType"] = natce.NodeType
24387	}
24388	if natce.FabricVersion != nil {
24389		objectMap["FabricVersion"] = natce.FabricVersion
24390	}
24391	if natce.IPAddressOrFQDN != nil {
24392		objectMap["IpAddressOrFQDN"] = natce.IPAddressOrFQDN
24393	}
24394	if natce.NodeCapacities != nil {
24395		objectMap["NodeCapacities"] = natce.NodeCapacities
24396	}
24397	if natce.NodeName != nil {
24398		objectMap["NodeName"] = natce.NodeName
24399	}
24400	if natce.EventInstanceID != nil {
24401		objectMap["EventInstanceId"] = natce.EventInstanceID
24402	}
24403	if natce.Category != nil {
24404		objectMap["Category"] = natce.Category
24405	}
24406	if natce.TimeStamp != nil {
24407		objectMap["TimeStamp"] = natce.TimeStamp
24408	}
24409	if natce.HasCorrelatedEvents != nil {
24410		objectMap["HasCorrelatedEvents"] = natce.HasCorrelatedEvents
24411	}
24412	if natce.Kind != "" {
24413		objectMap["Kind"] = natce.Kind
24414	}
24415	return json.Marshal(objectMap)
24416}
24417
24418// AsApplicationEvent is the BasicFabricEvent implementation for NodeAddedToClusterEvent.
24419func (natce NodeAddedToClusterEvent) AsApplicationEvent() (*ApplicationEvent, bool) {
24420	return nil, false
24421}
24422
24423// AsBasicApplicationEvent is the BasicFabricEvent implementation for NodeAddedToClusterEvent.
24424func (natce NodeAddedToClusterEvent) AsBasicApplicationEvent() (BasicApplicationEvent, bool) {
24425	return nil, false
24426}
24427
24428// AsClusterEvent is the BasicFabricEvent implementation for NodeAddedToClusterEvent.
24429func (natce NodeAddedToClusterEvent) AsClusterEvent() (*ClusterEvent, bool) {
24430	return nil, false
24431}
24432
24433// AsBasicClusterEvent is the BasicFabricEvent implementation for NodeAddedToClusterEvent.
24434func (natce NodeAddedToClusterEvent) AsBasicClusterEvent() (BasicClusterEvent, bool) {
24435	return nil, false
24436}
24437
24438// AsContainerInstanceEvent is the BasicFabricEvent implementation for NodeAddedToClusterEvent.
24439func (natce NodeAddedToClusterEvent) AsContainerInstanceEvent() (*ContainerInstanceEvent, bool) {
24440	return nil, false
24441}
24442
24443// AsNodeEvent is the BasicFabricEvent implementation for NodeAddedToClusterEvent.
24444func (natce NodeAddedToClusterEvent) AsNodeEvent() (*NodeEvent, bool) {
24445	return nil, false
24446}
24447
24448// AsBasicNodeEvent is the BasicFabricEvent implementation for NodeAddedToClusterEvent.
24449func (natce NodeAddedToClusterEvent) AsBasicNodeEvent() (BasicNodeEvent, bool) {
24450	return &natce, true
24451}
24452
24453// AsPartitionAnalysisEvent is the BasicFabricEvent implementation for NodeAddedToClusterEvent.
24454func (natce NodeAddedToClusterEvent) AsPartitionAnalysisEvent() (*PartitionAnalysisEvent, bool) {
24455	return nil, false
24456}
24457
24458// AsBasicPartitionAnalysisEvent is the BasicFabricEvent implementation for NodeAddedToClusterEvent.
24459func (natce NodeAddedToClusterEvent) AsBasicPartitionAnalysisEvent() (BasicPartitionAnalysisEvent, bool) {
24460	return nil, false
24461}
24462
24463// AsPartitionEvent is the BasicFabricEvent implementation for NodeAddedToClusterEvent.
24464func (natce NodeAddedToClusterEvent) AsPartitionEvent() (*PartitionEvent, bool) {
24465	return nil, false
24466}
24467
24468// AsBasicPartitionEvent is the BasicFabricEvent implementation for NodeAddedToClusterEvent.
24469func (natce NodeAddedToClusterEvent) AsBasicPartitionEvent() (BasicPartitionEvent, bool) {
24470	return nil, false
24471}
24472
24473// AsReplicaEvent is the BasicFabricEvent implementation for NodeAddedToClusterEvent.
24474func (natce NodeAddedToClusterEvent) AsReplicaEvent() (*ReplicaEvent, bool) {
24475	return nil, false
24476}
24477
24478// AsBasicReplicaEvent is the BasicFabricEvent implementation for NodeAddedToClusterEvent.
24479func (natce NodeAddedToClusterEvent) AsBasicReplicaEvent() (BasicReplicaEvent, bool) {
24480	return nil, false
24481}
24482
24483// AsServiceEvent is the BasicFabricEvent implementation for NodeAddedToClusterEvent.
24484func (natce NodeAddedToClusterEvent) AsServiceEvent() (*ServiceEvent, bool) {
24485	return nil, false
24486}
24487
24488// AsBasicServiceEvent is the BasicFabricEvent implementation for NodeAddedToClusterEvent.
24489func (natce NodeAddedToClusterEvent) AsBasicServiceEvent() (BasicServiceEvent, bool) {
24490	return nil, false
24491}
24492
24493// AsApplicationCreatedEvent is the BasicFabricEvent implementation for NodeAddedToClusterEvent.
24494func (natce NodeAddedToClusterEvent) AsApplicationCreatedEvent() (*ApplicationCreatedEvent, bool) {
24495	return nil, false
24496}
24497
24498// AsApplicationDeletedEvent is the BasicFabricEvent implementation for NodeAddedToClusterEvent.
24499func (natce NodeAddedToClusterEvent) AsApplicationDeletedEvent() (*ApplicationDeletedEvent, bool) {
24500	return nil, false
24501}
24502
24503// AsApplicationNewHealthReportEvent is the BasicFabricEvent implementation for NodeAddedToClusterEvent.
24504func (natce NodeAddedToClusterEvent) AsApplicationNewHealthReportEvent() (*ApplicationNewHealthReportEvent, bool) {
24505	return nil, false
24506}
24507
24508// AsApplicationHealthReportExpiredEvent is the BasicFabricEvent implementation for NodeAddedToClusterEvent.
24509func (natce NodeAddedToClusterEvent) AsApplicationHealthReportExpiredEvent() (*ApplicationHealthReportExpiredEvent, bool) {
24510	return nil, false
24511}
24512
24513// AsApplicationUpgradeCompletedEvent is the BasicFabricEvent implementation for NodeAddedToClusterEvent.
24514func (natce NodeAddedToClusterEvent) AsApplicationUpgradeCompletedEvent() (*ApplicationUpgradeCompletedEvent, bool) {
24515	return nil, false
24516}
24517
24518// AsApplicationUpgradeDomainCompletedEvent is the BasicFabricEvent implementation for NodeAddedToClusterEvent.
24519func (natce NodeAddedToClusterEvent) AsApplicationUpgradeDomainCompletedEvent() (*ApplicationUpgradeDomainCompletedEvent, bool) {
24520	return nil, false
24521}
24522
24523// AsApplicationUpgradeRollbackCompletedEvent is the BasicFabricEvent implementation for NodeAddedToClusterEvent.
24524func (natce NodeAddedToClusterEvent) AsApplicationUpgradeRollbackCompletedEvent() (*ApplicationUpgradeRollbackCompletedEvent, bool) {
24525	return nil, false
24526}
24527
24528// AsApplicationUpgradeRollbackStartedEvent is the BasicFabricEvent implementation for NodeAddedToClusterEvent.
24529func (natce NodeAddedToClusterEvent) AsApplicationUpgradeRollbackStartedEvent() (*ApplicationUpgradeRollbackStartedEvent, bool) {
24530	return nil, false
24531}
24532
24533// AsApplicationUpgradeStartedEvent is the BasicFabricEvent implementation for NodeAddedToClusterEvent.
24534func (natce NodeAddedToClusterEvent) AsApplicationUpgradeStartedEvent() (*ApplicationUpgradeStartedEvent, bool) {
24535	return nil, false
24536}
24537
24538// AsDeployedApplicationNewHealthReportEvent is the BasicFabricEvent implementation for NodeAddedToClusterEvent.
24539func (natce NodeAddedToClusterEvent) AsDeployedApplicationNewHealthReportEvent() (*DeployedApplicationNewHealthReportEvent, bool) {
24540	return nil, false
24541}
24542
24543// AsDeployedApplicationHealthReportExpiredEvent is the BasicFabricEvent implementation for NodeAddedToClusterEvent.
24544func (natce NodeAddedToClusterEvent) AsDeployedApplicationHealthReportExpiredEvent() (*DeployedApplicationHealthReportExpiredEvent, bool) {
24545	return nil, false
24546}
24547
24548// AsApplicationProcessExitedEvent is the BasicFabricEvent implementation for NodeAddedToClusterEvent.
24549func (natce NodeAddedToClusterEvent) AsApplicationProcessExitedEvent() (*ApplicationProcessExitedEvent, bool) {
24550	return nil, false
24551}
24552
24553// AsApplicationContainerInstanceExitedEvent is the BasicFabricEvent implementation for NodeAddedToClusterEvent.
24554func (natce NodeAddedToClusterEvent) AsApplicationContainerInstanceExitedEvent() (*ApplicationContainerInstanceExitedEvent, bool) {
24555	return nil, false
24556}
24557
24558// AsNodeAbortedEvent is the BasicFabricEvent implementation for NodeAddedToClusterEvent.
24559func (natce NodeAddedToClusterEvent) AsNodeAbortedEvent() (*NodeAbortedEvent, bool) {
24560	return nil, false
24561}
24562
24563// AsNodeAddedToClusterEvent is the BasicFabricEvent implementation for NodeAddedToClusterEvent.
24564func (natce NodeAddedToClusterEvent) AsNodeAddedToClusterEvent() (*NodeAddedToClusterEvent, bool) {
24565	return &natce, true
24566}
24567
24568// AsNodeClosedEvent is the BasicFabricEvent implementation for NodeAddedToClusterEvent.
24569func (natce NodeAddedToClusterEvent) AsNodeClosedEvent() (*NodeClosedEvent, bool) {
24570	return nil, false
24571}
24572
24573// AsNodeDeactivateCompletedEvent is the BasicFabricEvent implementation for NodeAddedToClusterEvent.
24574func (natce NodeAddedToClusterEvent) AsNodeDeactivateCompletedEvent() (*NodeDeactivateCompletedEvent, bool) {
24575	return nil, false
24576}
24577
24578// AsNodeDeactivateStartedEvent is the BasicFabricEvent implementation for NodeAddedToClusterEvent.
24579func (natce NodeAddedToClusterEvent) AsNodeDeactivateStartedEvent() (*NodeDeactivateStartedEvent, bool) {
24580	return nil, false
24581}
24582
24583// AsNodeDownEvent is the BasicFabricEvent implementation for NodeAddedToClusterEvent.
24584func (natce NodeAddedToClusterEvent) AsNodeDownEvent() (*NodeDownEvent, bool) {
24585	return nil, false
24586}
24587
24588// AsNodeNewHealthReportEvent is the BasicFabricEvent implementation for NodeAddedToClusterEvent.
24589func (natce NodeAddedToClusterEvent) AsNodeNewHealthReportEvent() (*NodeNewHealthReportEvent, bool) {
24590	return nil, false
24591}
24592
24593// AsNodeHealthReportExpiredEvent is the BasicFabricEvent implementation for NodeAddedToClusterEvent.
24594func (natce NodeAddedToClusterEvent) AsNodeHealthReportExpiredEvent() (*NodeHealthReportExpiredEvent, bool) {
24595	return nil, false
24596}
24597
24598// AsNodeOpenSucceededEvent is the BasicFabricEvent implementation for NodeAddedToClusterEvent.
24599func (natce NodeAddedToClusterEvent) AsNodeOpenSucceededEvent() (*NodeOpenSucceededEvent, bool) {
24600	return nil, false
24601}
24602
24603// AsNodeOpenFailedEvent is the BasicFabricEvent implementation for NodeAddedToClusterEvent.
24604func (natce NodeAddedToClusterEvent) AsNodeOpenFailedEvent() (*NodeOpenFailedEvent, bool) {
24605	return nil, false
24606}
24607
24608// AsNodeRemovedFromClusterEvent is the BasicFabricEvent implementation for NodeAddedToClusterEvent.
24609func (natce NodeAddedToClusterEvent) AsNodeRemovedFromClusterEvent() (*NodeRemovedFromClusterEvent, bool) {
24610	return nil, false
24611}
24612
24613// AsNodeUpEvent is the BasicFabricEvent implementation for NodeAddedToClusterEvent.
24614func (natce NodeAddedToClusterEvent) AsNodeUpEvent() (*NodeUpEvent, bool) {
24615	return nil, false
24616}
24617
24618// AsPartitionNewHealthReportEvent is the BasicFabricEvent implementation for NodeAddedToClusterEvent.
24619func (natce NodeAddedToClusterEvent) AsPartitionNewHealthReportEvent() (*PartitionNewHealthReportEvent, bool) {
24620	return nil, false
24621}
24622
24623// AsPartitionHealthReportExpiredEvent is the BasicFabricEvent implementation for NodeAddedToClusterEvent.
24624func (natce NodeAddedToClusterEvent) AsPartitionHealthReportExpiredEvent() (*PartitionHealthReportExpiredEvent, bool) {
24625	return nil, false
24626}
24627
24628// AsPartitionReconfiguredEvent is the BasicFabricEvent implementation for NodeAddedToClusterEvent.
24629func (natce NodeAddedToClusterEvent) AsPartitionReconfiguredEvent() (*PartitionReconfiguredEvent, bool) {
24630	return nil, false
24631}
24632
24633// AsPartitionPrimaryMoveAnalysisEvent is the BasicFabricEvent implementation for NodeAddedToClusterEvent.
24634func (natce NodeAddedToClusterEvent) AsPartitionPrimaryMoveAnalysisEvent() (*PartitionPrimaryMoveAnalysisEvent, bool) {
24635	return nil, false
24636}
24637
24638// AsServiceCreatedEvent is the BasicFabricEvent implementation for NodeAddedToClusterEvent.
24639func (natce NodeAddedToClusterEvent) AsServiceCreatedEvent() (*ServiceCreatedEvent, bool) {
24640	return nil, false
24641}
24642
24643// AsServiceDeletedEvent is the BasicFabricEvent implementation for NodeAddedToClusterEvent.
24644func (natce NodeAddedToClusterEvent) AsServiceDeletedEvent() (*ServiceDeletedEvent, bool) {
24645	return nil, false
24646}
24647
24648// AsServiceNewHealthReportEvent is the BasicFabricEvent implementation for NodeAddedToClusterEvent.
24649func (natce NodeAddedToClusterEvent) AsServiceNewHealthReportEvent() (*ServiceNewHealthReportEvent, bool) {
24650	return nil, false
24651}
24652
24653// AsServiceHealthReportExpiredEvent is the BasicFabricEvent implementation for NodeAddedToClusterEvent.
24654func (natce NodeAddedToClusterEvent) AsServiceHealthReportExpiredEvent() (*ServiceHealthReportExpiredEvent, bool) {
24655	return nil, false
24656}
24657
24658// AsDeployedServicePackageNewHealthReportEvent is the BasicFabricEvent implementation for NodeAddedToClusterEvent.
24659func (natce NodeAddedToClusterEvent) AsDeployedServicePackageNewHealthReportEvent() (*DeployedServicePackageNewHealthReportEvent, bool) {
24660	return nil, false
24661}
24662
24663// AsDeployedServicePackageHealthReportExpiredEvent is the BasicFabricEvent implementation for NodeAddedToClusterEvent.
24664func (natce NodeAddedToClusterEvent) AsDeployedServicePackageHealthReportExpiredEvent() (*DeployedServicePackageHealthReportExpiredEvent, bool) {
24665	return nil, false
24666}
24667
24668// AsStatefulReplicaNewHealthReportEvent is the BasicFabricEvent implementation for NodeAddedToClusterEvent.
24669func (natce NodeAddedToClusterEvent) AsStatefulReplicaNewHealthReportEvent() (*StatefulReplicaNewHealthReportEvent, bool) {
24670	return nil, false
24671}
24672
24673// AsStatefulReplicaHealthReportExpiredEvent is the BasicFabricEvent implementation for NodeAddedToClusterEvent.
24674func (natce NodeAddedToClusterEvent) AsStatefulReplicaHealthReportExpiredEvent() (*StatefulReplicaHealthReportExpiredEvent, bool) {
24675	return nil, false
24676}
24677
24678// AsStatelessReplicaNewHealthReportEvent is the BasicFabricEvent implementation for NodeAddedToClusterEvent.
24679func (natce NodeAddedToClusterEvent) AsStatelessReplicaNewHealthReportEvent() (*StatelessReplicaNewHealthReportEvent, bool) {
24680	return nil, false
24681}
24682
24683// AsStatelessReplicaHealthReportExpiredEvent is the BasicFabricEvent implementation for NodeAddedToClusterEvent.
24684func (natce NodeAddedToClusterEvent) AsStatelessReplicaHealthReportExpiredEvent() (*StatelessReplicaHealthReportExpiredEvent, bool) {
24685	return nil, false
24686}
24687
24688// AsClusterNewHealthReportEvent is the BasicFabricEvent implementation for NodeAddedToClusterEvent.
24689func (natce NodeAddedToClusterEvent) AsClusterNewHealthReportEvent() (*ClusterNewHealthReportEvent, bool) {
24690	return nil, false
24691}
24692
24693// AsClusterHealthReportExpiredEvent is the BasicFabricEvent implementation for NodeAddedToClusterEvent.
24694func (natce NodeAddedToClusterEvent) AsClusterHealthReportExpiredEvent() (*ClusterHealthReportExpiredEvent, bool) {
24695	return nil, false
24696}
24697
24698// AsClusterUpgradeCompletedEvent is the BasicFabricEvent implementation for NodeAddedToClusterEvent.
24699func (natce NodeAddedToClusterEvent) AsClusterUpgradeCompletedEvent() (*ClusterUpgradeCompletedEvent, bool) {
24700	return nil, false
24701}
24702
24703// AsClusterUpgradeDomainCompletedEvent is the BasicFabricEvent implementation for NodeAddedToClusterEvent.
24704func (natce NodeAddedToClusterEvent) AsClusterUpgradeDomainCompletedEvent() (*ClusterUpgradeDomainCompletedEvent, bool) {
24705	return nil, false
24706}
24707
24708// AsClusterUpgradeRollbackCompletedEvent is the BasicFabricEvent implementation for NodeAddedToClusterEvent.
24709func (natce NodeAddedToClusterEvent) AsClusterUpgradeRollbackCompletedEvent() (*ClusterUpgradeRollbackCompletedEvent, bool) {
24710	return nil, false
24711}
24712
24713// AsClusterUpgradeRollbackStartedEvent is the BasicFabricEvent implementation for NodeAddedToClusterEvent.
24714func (natce NodeAddedToClusterEvent) AsClusterUpgradeRollbackStartedEvent() (*ClusterUpgradeRollbackStartedEvent, bool) {
24715	return nil, false
24716}
24717
24718// AsClusterUpgradeStartedEvent is the BasicFabricEvent implementation for NodeAddedToClusterEvent.
24719func (natce NodeAddedToClusterEvent) AsClusterUpgradeStartedEvent() (*ClusterUpgradeStartedEvent, bool) {
24720	return nil, false
24721}
24722
24723// AsChaosStoppedEvent is the BasicFabricEvent implementation for NodeAddedToClusterEvent.
24724func (natce NodeAddedToClusterEvent) AsChaosStoppedEvent() (*ChaosStoppedEvent, bool) {
24725	return nil, false
24726}
24727
24728// AsChaosStartedEvent is the BasicFabricEvent implementation for NodeAddedToClusterEvent.
24729func (natce NodeAddedToClusterEvent) AsChaosStartedEvent() (*ChaosStartedEvent, bool) {
24730	return nil, false
24731}
24732
24733// AsChaosCodePackageRestartScheduledEvent is the BasicFabricEvent implementation for NodeAddedToClusterEvent.
24734func (natce NodeAddedToClusterEvent) AsChaosCodePackageRestartScheduledEvent() (*ChaosCodePackageRestartScheduledEvent, bool) {
24735	return nil, false
24736}
24737
24738// AsChaosReplicaRemovalScheduledEvent is the BasicFabricEvent implementation for NodeAddedToClusterEvent.
24739func (natce NodeAddedToClusterEvent) AsChaosReplicaRemovalScheduledEvent() (*ChaosReplicaRemovalScheduledEvent, bool) {
24740	return nil, false
24741}
24742
24743// AsChaosPartitionSecondaryMoveScheduledEvent is the BasicFabricEvent implementation for NodeAddedToClusterEvent.
24744func (natce NodeAddedToClusterEvent) AsChaosPartitionSecondaryMoveScheduledEvent() (*ChaosPartitionSecondaryMoveScheduledEvent, bool) {
24745	return nil, false
24746}
24747
24748// AsChaosPartitionPrimaryMoveScheduledEvent is the BasicFabricEvent implementation for NodeAddedToClusterEvent.
24749func (natce NodeAddedToClusterEvent) AsChaosPartitionPrimaryMoveScheduledEvent() (*ChaosPartitionPrimaryMoveScheduledEvent, bool) {
24750	return nil, false
24751}
24752
24753// AsChaosReplicaRestartScheduledEvent is the BasicFabricEvent implementation for NodeAddedToClusterEvent.
24754func (natce NodeAddedToClusterEvent) AsChaosReplicaRestartScheduledEvent() (*ChaosReplicaRestartScheduledEvent, bool) {
24755	return nil, false
24756}
24757
24758// AsChaosNodeRestartScheduledEvent is the BasicFabricEvent implementation for NodeAddedToClusterEvent.
24759func (natce NodeAddedToClusterEvent) AsChaosNodeRestartScheduledEvent() (*ChaosNodeRestartScheduledEvent, bool) {
24760	return nil, false
24761}
24762
24763// AsFabricEvent is the BasicFabricEvent implementation for NodeAddedToClusterEvent.
24764func (natce NodeAddedToClusterEvent) AsFabricEvent() (*FabricEvent, bool) {
24765	return nil, false
24766}
24767
24768// AsBasicFabricEvent is the BasicFabricEvent implementation for NodeAddedToClusterEvent.
24769func (natce NodeAddedToClusterEvent) AsBasicFabricEvent() (BasicFabricEvent, bool) {
24770	return &natce, true
24771}
24772
24773// NodeClosedEvent node Closed event.
24774type NodeClosedEvent struct {
24775	// NodeID - Id of Node.
24776	NodeID *string `json:"NodeId,omitempty"`
24777	// NodeInstance - Id of Node instance.
24778	NodeInstance *int64 `json:"NodeInstance,omitempty"`
24779	// Error - Describes error.
24780	Error *string `json:"Error,omitempty"`
24781	// NodeName - The name of a Service Fabric node.
24782	NodeName *string `json:"NodeName,omitempty"`
24783	// EventInstanceID - The identifier for the FabricEvent instance.
24784	EventInstanceID *uuid.UUID `json:"EventInstanceId,omitempty"`
24785	// Category - The category of event.
24786	Category *string `json:"Category,omitempty"`
24787	// TimeStamp - The time event was logged.
24788	TimeStamp *date.Time `json:"TimeStamp,omitempty"`
24789	// HasCorrelatedEvents - Shows there is existing related events available.
24790	HasCorrelatedEvents *bool `json:"HasCorrelatedEvents,omitempty"`
24791	// 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'
24792	Kind KindBasicFabricEvent `json:"Kind,omitempty"`
24793}
24794
24795// MarshalJSON is the custom marshaler for NodeClosedEvent.
24796func (nce NodeClosedEvent) MarshalJSON() ([]byte, error) {
24797	nce.Kind = KindNodeClosed
24798	objectMap := make(map[string]interface{})
24799	if nce.NodeID != nil {
24800		objectMap["NodeId"] = nce.NodeID
24801	}
24802	if nce.NodeInstance != nil {
24803		objectMap["NodeInstance"] = nce.NodeInstance
24804	}
24805	if nce.Error != nil {
24806		objectMap["Error"] = nce.Error
24807	}
24808	if nce.NodeName != nil {
24809		objectMap["NodeName"] = nce.NodeName
24810	}
24811	if nce.EventInstanceID != nil {
24812		objectMap["EventInstanceId"] = nce.EventInstanceID
24813	}
24814	if nce.Category != nil {
24815		objectMap["Category"] = nce.Category
24816	}
24817	if nce.TimeStamp != nil {
24818		objectMap["TimeStamp"] = nce.TimeStamp
24819	}
24820	if nce.HasCorrelatedEvents != nil {
24821		objectMap["HasCorrelatedEvents"] = nce.HasCorrelatedEvents
24822	}
24823	if nce.Kind != "" {
24824		objectMap["Kind"] = nce.Kind
24825	}
24826	return json.Marshal(objectMap)
24827}
24828
24829// AsApplicationEvent is the BasicFabricEvent implementation for NodeClosedEvent.
24830func (nce NodeClosedEvent) AsApplicationEvent() (*ApplicationEvent, bool) {
24831	return nil, false
24832}
24833
24834// AsBasicApplicationEvent is the BasicFabricEvent implementation for NodeClosedEvent.
24835func (nce NodeClosedEvent) AsBasicApplicationEvent() (BasicApplicationEvent, bool) {
24836	return nil, false
24837}
24838
24839// AsClusterEvent is the BasicFabricEvent implementation for NodeClosedEvent.
24840func (nce NodeClosedEvent) AsClusterEvent() (*ClusterEvent, bool) {
24841	return nil, false
24842}
24843
24844// AsBasicClusterEvent is the BasicFabricEvent implementation for NodeClosedEvent.
24845func (nce NodeClosedEvent) AsBasicClusterEvent() (BasicClusterEvent, bool) {
24846	return nil, false
24847}
24848
24849// AsContainerInstanceEvent is the BasicFabricEvent implementation for NodeClosedEvent.
24850func (nce NodeClosedEvent) AsContainerInstanceEvent() (*ContainerInstanceEvent, bool) {
24851	return nil, false
24852}
24853
24854// AsNodeEvent is the BasicFabricEvent implementation for NodeClosedEvent.
24855func (nce NodeClosedEvent) AsNodeEvent() (*NodeEvent, bool) {
24856	return nil, false
24857}
24858
24859// AsBasicNodeEvent is the BasicFabricEvent implementation for NodeClosedEvent.
24860func (nce NodeClosedEvent) AsBasicNodeEvent() (BasicNodeEvent, bool) {
24861	return &nce, true
24862}
24863
24864// AsPartitionAnalysisEvent is the BasicFabricEvent implementation for NodeClosedEvent.
24865func (nce NodeClosedEvent) AsPartitionAnalysisEvent() (*PartitionAnalysisEvent, bool) {
24866	return nil, false
24867}
24868
24869// AsBasicPartitionAnalysisEvent is the BasicFabricEvent implementation for NodeClosedEvent.
24870func (nce NodeClosedEvent) AsBasicPartitionAnalysisEvent() (BasicPartitionAnalysisEvent, bool) {
24871	return nil, false
24872}
24873
24874// AsPartitionEvent is the BasicFabricEvent implementation for NodeClosedEvent.
24875func (nce NodeClosedEvent) AsPartitionEvent() (*PartitionEvent, bool) {
24876	return nil, false
24877}
24878
24879// AsBasicPartitionEvent is the BasicFabricEvent implementation for NodeClosedEvent.
24880func (nce NodeClosedEvent) AsBasicPartitionEvent() (BasicPartitionEvent, bool) {
24881	return nil, false
24882}
24883
24884// AsReplicaEvent is the BasicFabricEvent implementation for NodeClosedEvent.
24885func (nce NodeClosedEvent) AsReplicaEvent() (*ReplicaEvent, bool) {
24886	return nil, false
24887}
24888
24889// AsBasicReplicaEvent is the BasicFabricEvent implementation for NodeClosedEvent.
24890func (nce NodeClosedEvent) AsBasicReplicaEvent() (BasicReplicaEvent, bool) {
24891	return nil, false
24892}
24893
24894// AsServiceEvent is the BasicFabricEvent implementation for NodeClosedEvent.
24895func (nce NodeClosedEvent) AsServiceEvent() (*ServiceEvent, bool) {
24896	return nil, false
24897}
24898
24899// AsBasicServiceEvent is the BasicFabricEvent implementation for NodeClosedEvent.
24900func (nce NodeClosedEvent) AsBasicServiceEvent() (BasicServiceEvent, bool) {
24901	return nil, false
24902}
24903
24904// AsApplicationCreatedEvent is the BasicFabricEvent implementation for NodeClosedEvent.
24905func (nce NodeClosedEvent) AsApplicationCreatedEvent() (*ApplicationCreatedEvent, bool) {
24906	return nil, false
24907}
24908
24909// AsApplicationDeletedEvent is the BasicFabricEvent implementation for NodeClosedEvent.
24910func (nce NodeClosedEvent) AsApplicationDeletedEvent() (*ApplicationDeletedEvent, bool) {
24911	return nil, false
24912}
24913
24914// AsApplicationNewHealthReportEvent is the BasicFabricEvent implementation for NodeClosedEvent.
24915func (nce NodeClosedEvent) AsApplicationNewHealthReportEvent() (*ApplicationNewHealthReportEvent, bool) {
24916	return nil, false
24917}
24918
24919// AsApplicationHealthReportExpiredEvent is the BasicFabricEvent implementation for NodeClosedEvent.
24920func (nce NodeClosedEvent) AsApplicationHealthReportExpiredEvent() (*ApplicationHealthReportExpiredEvent, bool) {
24921	return nil, false
24922}
24923
24924// AsApplicationUpgradeCompletedEvent is the BasicFabricEvent implementation for NodeClosedEvent.
24925func (nce NodeClosedEvent) AsApplicationUpgradeCompletedEvent() (*ApplicationUpgradeCompletedEvent, bool) {
24926	return nil, false
24927}
24928
24929// AsApplicationUpgradeDomainCompletedEvent is the BasicFabricEvent implementation for NodeClosedEvent.
24930func (nce NodeClosedEvent) AsApplicationUpgradeDomainCompletedEvent() (*ApplicationUpgradeDomainCompletedEvent, bool) {
24931	return nil, false
24932}
24933
24934// AsApplicationUpgradeRollbackCompletedEvent is the BasicFabricEvent implementation for NodeClosedEvent.
24935func (nce NodeClosedEvent) AsApplicationUpgradeRollbackCompletedEvent() (*ApplicationUpgradeRollbackCompletedEvent, bool) {
24936	return nil, false
24937}
24938
24939// AsApplicationUpgradeRollbackStartedEvent is the BasicFabricEvent implementation for NodeClosedEvent.
24940func (nce NodeClosedEvent) AsApplicationUpgradeRollbackStartedEvent() (*ApplicationUpgradeRollbackStartedEvent, bool) {
24941	return nil, false
24942}
24943
24944// AsApplicationUpgradeStartedEvent is the BasicFabricEvent implementation for NodeClosedEvent.
24945func (nce NodeClosedEvent) AsApplicationUpgradeStartedEvent() (*ApplicationUpgradeStartedEvent, bool) {
24946	return nil, false
24947}
24948
24949// AsDeployedApplicationNewHealthReportEvent is the BasicFabricEvent implementation for NodeClosedEvent.
24950func (nce NodeClosedEvent) AsDeployedApplicationNewHealthReportEvent() (*DeployedApplicationNewHealthReportEvent, bool) {
24951	return nil, false
24952}
24953
24954// AsDeployedApplicationHealthReportExpiredEvent is the BasicFabricEvent implementation for NodeClosedEvent.
24955func (nce NodeClosedEvent) AsDeployedApplicationHealthReportExpiredEvent() (*DeployedApplicationHealthReportExpiredEvent, bool) {
24956	return nil, false
24957}
24958
24959// AsApplicationProcessExitedEvent is the BasicFabricEvent implementation for NodeClosedEvent.
24960func (nce NodeClosedEvent) AsApplicationProcessExitedEvent() (*ApplicationProcessExitedEvent, bool) {
24961	return nil, false
24962}
24963
24964// AsApplicationContainerInstanceExitedEvent is the BasicFabricEvent implementation for NodeClosedEvent.
24965func (nce NodeClosedEvent) AsApplicationContainerInstanceExitedEvent() (*ApplicationContainerInstanceExitedEvent, bool) {
24966	return nil, false
24967}
24968
24969// AsNodeAbortedEvent is the BasicFabricEvent implementation for NodeClosedEvent.
24970func (nce NodeClosedEvent) AsNodeAbortedEvent() (*NodeAbortedEvent, bool) {
24971	return nil, false
24972}
24973
24974// AsNodeAddedToClusterEvent is the BasicFabricEvent implementation for NodeClosedEvent.
24975func (nce NodeClosedEvent) AsNodeAddedToClusterEvent() (*NodeAddedToClusterEvent, bool) {
24976	return nil, false
24977}
24978
24979// AsNodeClosedEvent is the BasicFabricEvent implementation for NodeClosedEvent.
24980func (nce NodeClosedEvent) AsNodeClosedEvent() (*NodeClosedEvent, bool) {
24981	return &nce, true
24982}
24983
24984// AsNodeDeactivateCompletedEvent is the BasicFabricEvent implementation for NodeClosedEvent.
24985func (nce NodeClosedEvent) AsNodeDeactivateCompletedEvent() (*NodeDeactivateCompletedEvent, bool) {
24986	return nil, false
24987}
24988
24989// AsNodeDeactivateStartedEvent is the BasicFabricEvent implementation for NodeClosedEvent.
24990func (nce NodeClosedEvent) AsNodeDeactivateStartedEvent() (*NodeDeactivateStartedEvent, bool) {
24991	return nil, false
24992}
24993
24994// AsNodeDownEvent is the BasicFabricEvent implementation for NodeClosedEvent.
24995func (nce NodeClosedEvent) AsNodeDownEvent() (*NodeDownEvent, bool) {
24996	return nil, false
24997}
24998
24999// AsNodeNewHealthReportEvent is the BasicFabricEvent implementation for NodeClosedEvent.
25000func (nce NodeClosedEvent) AsNodeNewHealthReportEvent() (*NodeNewHealthReportEvent, bool) {
25001	return nil, false
25002}
25003
25004// AsNodeHealthReportExpiredEvent is the BasicFabricEvent implementation for NodeClosedEvent.
25005func (nce NodeClosedEvent) AsNodeHealthReportExpiredEvent() (*NodeHealthReportExpiredEvent, bool) {
25006	return nil, false
25007}
25008
25009// AsNodeOpenSucceededEvent is the BasicFabricEvent implementation for NodeClosedEvent.
25010func (nce NodeClosedEvent) AsNodeOpenSucceededEvent() (*NodeOpenSucceededEvent, bool) {
25011	return nil, false
25012}
25013
25014// AsNodeOpenFailedEvent is the BasicFabricEvent implementation for NodeClosedEvent.
25015func (nce NodeClosedEvent) AsNodeOpenFailedEvent() (*NodeOpenFailedEvent, bool) {
25016	return nil, false
25017}
25018
25019// AsNodeRemovedFromClusterEvent is the BasicFabricEvent implementation for NodeClosedEvent.
25020func (nce NodeClosedEvent) AsNodeRemovedFromClusterEvent() (*NodeRemovedFromClusterEvent, bool) {
25021	return nil, false
25022}
25023
25024// AsNodeUpEvent is the BasicFabricEvent implementation for NodeClosedEvent.
25025func (nce NodeClosedEvent) AsNodeUpEvent() (*NodeUpEvent, bool) {
25026	return nil, false
25027}
25028
25029// AsPartitionNewHealthReportEvent is the BasicFabricEvent implementation for NodeClosedEvent.
25030func (nce NodeClosedEvent) AsPartitionNewHealthReportEvent() (*PartitionNewHealthReportEvent, bool) {
25031	return nil, false
25032}
25033
25034// AsPartitionHealthReportExpiredEvent is the BasicFabricEvent implementation for NodeClosedEvent.
25035func (nce NodeClosedEvent) AsPartitionHealthReportExpiredEvent() (*PartitionHealthReportExpiredEvent, bool) {
25036	return nil, false
25037}
25038
25039// AsPartitionReconfiguredEvent is the BasicFabricEvent implementation for NodeClosedEvent.
25040func (nce NodeClosedEvent) AsPartitionReconfiguredEvent() (*PartitionReconfiguredEvent, bool) {
25041	return nil, false
25042}
25043
25044// AsPartitionPrimaryMoveAnalysisEvent is the BasicFabricEvent implementation for NodeClosedEvent.
25045func (nce NodeClosedEvent) AsPartitionPrimaryMoveAnalysisEvent() (*PartitionPrimaryMoveAnalysisEvent, bool) {
25046	return nil, false
25047}
25048
25049// AsServiceCreatedEvent is the BasicFabricEvent implementation for NodeClosedEvent.
25050func (nce NodeClosedEvent) AsServiceCreatedEvent() (*ServiceCreatedEvent, bool) {
25051	return nil, false
25052}
25053
25054// AsServiceDeletedEvent is the BasicFabricEvent implementation for NodeClosedEvent.
25055func (nce NodeClosedEvent) AsServiceDeletedEvent() (*ServiceDeletedEvent, bool) {
25056	return nil, false
25057}
25058
25059// AsServiceNewHealthReportEvent is the BasicFabricEvent implementation for NodeClosedEvent.
25060func (nce NodeClosedEvent) AsServiceNewHealthReportEvent() (*ServiceNewHealthReportEvent, bool) {
25061	return nil, false
25062}
25063
25064// AsServiceHealthReportExpiredEvent is the BasicFabricEvent implementation for NodeClosedEvent.
25065func (nce NodeClosedEvent) AsServiceHealthReportExpiredEvent() (*ServiceHealthReportExpiredEvent, bool) {
25066	return nil, false
25067}
25068
25069// AsDeployedServicePackageNewHealthReportEvent is the BasicFabricEvent implementation for NodeClosedEvent.
25070func (nce NodeClosedEvent) AsDeployedServicePackageNewHealthReportEvent() (*DeployedServicePackageNewHealthReportEvent, bool) {
25071	return nil, false
25072}
25073
25074// AsDeployedServicePackageHealthReportExpiredEvent is the BasicFabricEvent implementation for NodeClosedEvent.
25075func (nce NodeClosedEvent) AsDeployedServicePackageHealthReportExpiredEvent() (*DeployedServicePackageHealthReportExpiredEvent, bool) {
25076	return nil, false
25077}
25078
25079// AsStatefulReplicaNewHealthReportEvent is the BasicFabricEvent implementation for NodeClosedEvent.
25080func (nce NodeClosedEvent) AsStatefulReplicaNewHealthReportEvent() (*StatefulReplicaNewHealthReportEvent, bool) {
25081	return nil, false
25082}
25083
25084// AsStatefulReplicaHealthReportExpiredEvent is the BasicFabricEvent implementation for NodeClosedEvent.
25085func (nce NodeClosedEvent) AsStatefulReplicaHealthReportExpiredEvent() (*StatefulReplicaHealthReportExpiredEvent, bool) {
25086	return nil, false
25087}
25088
25089// AsStatelessReplicaNewHealthReportEvent is the BasicFabricEvent implementation for NodeClosedEvent.
25090func (nce NodeClosedEvent) AsStatelessReplicaNewHealthReportEvent() (*StatelessReplicaNewHealthReportEvent, bool) {
25091	return nil, false
25092}
25093
25094// AsStatelessReplicaHealthReportExpiredEvent is the BasicFabricEvent implementation for NodeClosedEvent.
25095func (nce NodeClosedEvent) AsStatelessReplicaHealthReportExpiredEvent() (*StatelessReplicaHealthReportExpiredEvent, bool) {
25096	return nil, false
25097}
25098
25099// AsClusterNewHealthReportEvent is the BasicFabricEvent implementation for NodeClosedEvent.
25100func (nce NodeClosedEvent) AsClusterNewHealthReportEvent() (*ClusterNewHealthReportEvent, bool) {
25101	return nil, false
25102}
25103
25104// AsClusterHealthReportExpiredEvent is the BasicFabricEvent implementation for NodeClosedEvent.
25105func (nce NodeClosedEvent) AsClusterHealthReportExpiredEvent() (*ClusterHealthReportExpiredEvent, bool) {
25106	return nil, false
25107}
25108
25109// AsClusterUpgradeCompletedEvent is the BasicFabricEvent implementation for NodeClosedEvent.
25110func (nce NodeClosedEvent) AsClusterUpgradeCompletedEvent() (*ClusterUpgradeCompletedEvent, bool) {
25111	return nil, false
25112}
25113
25114// AsClusterUpgradeDomainCompletedEvent is the BasicFabricEvent implementation for NodeClosedEvent.
25115func (nce NodeClosedEvent) AsClusterUpgradeDomainCompletedEvent() (*ClusterUpgradeDomainCompletedEvent, bool) {
25116	return nil, false
25117}
25118
25119// AsClusterUpgradeRollbackCompletedEvent is the BasicFabricEvent implementation for NodeClosedEvent.
25120func (nce NodeClosedEvent) AsClusterUpgradeRollbackCompletedEvent() (*ClusterUpgradeRollbackCompletedEvent, bool) {
25121	return nil, false
25122}
25123
25124// AsClusterUpgradeRollbackStartedEvent is the BasicFabricEvent implementation for NodeClosedEvent.
25125func (nce NodeClosedEvent) AsClusterUpgradeRollbackStartedEvent() (*ClusterUpgradeRollbackStartedEvent, bool) {
25126	return nil, false
25127}
25128
25129// AsClusterUpgradeStartedEvent is the BasicFabricEvent implementation for NodeClosedEvent.
25130func (nce NodeClosedEvent) AsClusterUpgradeStartedEvent() (*ClusterUpgradeStartedEvent, bool) {
25131	return nil, false
25132}
25133
25134// AsChaosStoppedEvent is the BasicFabricEvent implementation for NodeClosedEvent.
25135func (nce NodeClosedEvent) AsChaosStoppedEvent() (*ChaosStoppedEvent, bool) {
25136	return nil, false
25137}
25138
25139// AsChaosStartedEvent is the BasicFabricEvent implementation for NodeClosedEvent.
25140func (nce NodeClosedEvent) AsChaosStartedEvent() (*ChaosStartedEvent, bool) {
25141	return nil, false
25142}
25143
25144// AsChaosCodePackageRestartScheduledEvent is the BasicFabricEvent implementation for NodeClosedEvent.
25145func (nce NodeClosedEvent) AsChaosCodePackageRestartScheduledEvent() (*ChaosCodePackageRestartScheduledEvent, bool) {
25146	return nil, false
25147}
25148
25149// AsChaosReplicaRemovalScheduledEvent is the BasicFabricEvent implementation for NodeClosedEvent.
25150func (nce NodeClosedEvent) AsChaosReplicaRemovalScheduledEvent() (*ChaosReplicaRemovalScheduledEvent, bool) {
25151	return nil, false
25152}
25153
25154// AsChaosPartitionSecondaryMoveScheduledEvent is the BasicFabricEvent implementation for NodeClosedEvent.
25155func (nce NodeClosedEvent) AsChaosPartitionSecondaryMoveScheduledEvent() (*ChaosPartitionSecondaryMoveScheduledEvent, bool) {
25156	return nil, false
25157}
25158
25159// AsChaosPartitionPrimaryMoveScheduledEvent is the BasicFabricEvent implementation for NodeClosedEvent.
25160func (nce NodeClosedEvent) AsChaosPartitionPrimaryMoveScheduledEvent() (*ChaosPartitionPrimaryMoveScheduledEvent, bool) {
25161	return nil, false
25162}
25163
25164// AsChaosReplicaRestartScheduledEvent is the BasicFabricEvent implementation for NodeClosedEvent.
25165func (nce NodeClosedEvent) AsChaosReplicaRestartScheduledEvent() (*ChaosReplicaRestartScheduledEvent, bool) {
25166	return nil, false
25167}
25168
25169// AsChaosNodeRestartScheduledEvent is the BasicFabricEvent implementation for NodeClosedEvent.
25170func (nce NodeClosedEvent) AsChaosNodeRestartScheduledEvent() (*ChaosNodeRestartScheduledEvent, bool) {
25171	return nil, false
25172}
25173
25174// AsFabricEvent is the BasicFabricEvent implementation for NodeClosedEvent.
25175func (nce NodeClosedEvent) AsFabricEvent() (*FabricEvent, bool) {
25176	return nil, false
25177}
25178
25179// AsBasicFabricEvent is the BasicFabricEvent implementation for NodeClosedEvent.
25180func (nce NodeClosedEvent) AsBasicFabricEvent() (BasicFabricEvent, bool) {
25181	return &nce, true
25182}
25183
25184// NodeDeactivateCompletedEvent node Deactivate Completed event.
25185type NodeDeactivateCompletedEvent struct {
25186	// NodeInstance - Id of Node instance.
25187	NodeInstance *int64 `json:"NodeInstance,omitempty"`
25188	// EffectiveDeactivateIntent - Describes deactivate intent.
25189	EffectiveDeactivateIntent *string `json:"EffectiveDeactivateIntent,omitempty"`
25190	// BatchIdsWithDeactivateIntent - Batch Ids.
25191	BatchIdsWithDeactivateIntent *string `json:"BatchIdsWithDeactivateIntent,omitempty"`
25192	// StartTime - Start time.
25193	StartTime *date.Time `json:"StartTime,omitempty"`
25194	// NodeName - The name of a Service Fabric node.
25195	NodeName *string `json:"NodeName,omitempty"`
25196	// EventInstanceID - The identifier for the FabricEvent instance.
25197	EventInstanceID *uuid.UUID `json:"EventInstanceId,omitempty"`
25198	// Category - The category of event.
25199	Category *string `json:"Category,omitempty"`
25200	// TimeStamp - The time event was logged.
25201	TimeStamp *date.Time `json:"TimeStamp,omitempty"`
25202	// HasCorrelatedEvents - Shows there is existing related events available.
25203	HasCorrelatedEvents *bool `json:"HasCorrelatedEvents,omitempty"`
25204	// 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'
25205	Kind KindBasicFabricEvent `json:"Kind,omitempty"`
25206}
25207
25208// MarshalJSON is the custom marshaler for NodeDeactivateCompletedEvent.
25209func (ndce NodeDeactivateCompletedEvent) MarshalJSON() ([]byte, error) {
25210	ndce.Kind = KindNodeDeactivateCompleted
25211	objectMap := make(map[string]interface{})
25212	if ndce.NodeInstance != nil {
25213		objectMap["NodeInstance"] = ndce.NodeInstance
25214	}
25215	if ndce.EffectiveDeactivateIntent != nil {
25216		objectMap["EffectiveDeactivateIntent"] = ndce.EffectiveDeactivateIntent
25217	}
25218	if ndce.BatchIdsWithDeactivateIntent != nil {
25219		objectMap["BatchIdsWithDeactivateIntent"] = ndce.BatchIdsWithDeactivateIntent
25220	}
25221	if ndce.StartTime != nil {
25222		objectMap["StartTime"] = ndce.StartTime
25223	}
25224	if ndce.NodeName != nil {
25225		objectMap["NodeName"] = ndce.NodeName
25226	}
25227	if ndce.EventInstanceID != nil {
25228		objectMap["EventInstanceId"] = ndce.EventInstanceID
25229	}
25230	if ndce.Category != nil {
25231		objectMap["Category"] = ndce.Category
25232	}
25233	if ndce.TimeStamp != nil {
25234		objectMap["TimeStamp"] = ndce.TimeStamp
25235	}
25236	if ndce.HasCorrelatedEvents != nil {
25237		objectMap["HasCorrelatedEvents"] = ndce.HasCorrelatedEvents
25238	}
25239	if ndce.Kind != "" {
25240		objectMap["Kind"] = ndce.Kind
25241	}
25242	return json.Marshal(objectMap)
25243}
25244
25245// AsApplicationEvent is the BasicFabricEvent implementation for NodeDeactivateCompletedEvent.
25246func (ndce NodeDeactivateCompletedEvent) AsApplicationEvent() (*ApplicationEvent, bool) {
25247	return nil, false
25248}
25249
25250// AsBasicApplicationEvent is the BasicFabricEvent implementation for NodeDeactivateCompletedEvent.
25251func (ndce NodeDeactivateCompletedEvent) AsBasicApplicationEvent() (BasicApplicationEvent, bool) {
25252	return nil, false
25253}
25254
25255// AsClusterEvent is the BasicFabricEvent implementation for NodeDeactivateCompletedEvent.
25256func (ndce NodeDeactivateCompletedEvent) AsClusterEvent() (*ClusterEvent, bool) {
25257	return nil, false
25258}
25259
25260// AsBasicClusterEvent is the BasicFabricEvent implementation for NodeDeactivateCompletedEvent.
25261func (ndce NodeDeactivateCompletedEvent) AsBasicClusterEvent() (BasicClusterEvent, bool) {
25262	return nil, false
25263}
25264
25265// AsContainerInstanceEvent is the BasicFabricEvent implementation for NodeDeactivateCompletedEvent.
25266func (ndce NodeDeactivateCompletedEvent) AsContainerInstanceEvent() (*ContainerInstanceEvent, bool) {
25267	return nil, false
25268}
25269
25270// AsNodeEvent is the BasicFabricEvent implementation for NodeDeactivateCompletedEvent.
25271func (ndce NodeDeactivateCompletedEvent) AsNodeEvent() (*NodeEvent, bool) {
25272	return nil, false
25273}
25274
25275// AsBasicNodeEvent is the BasicFabricEvent implementation for NodeDeactivateCompletedEvent.
25276func (ndce NodeDeactivateCompletedEvent) AsBasicNodeEvent() (BasicNodeEvent, bool) {
25277	return &ndce, true
25278}
25279
25280// AsPartitionAnalysisEvent is the BasicFabricEvent implementation for NodeDeactivateCompletedEvent.
25281func (ndce NodeDeactivateCompletedEvent) AsPartitionAnalysisEvent() (*PartitionAnalysisEvent, bool) {
25282	return nil, false
25283}
25284
25285// AsBasicPartitionAnalysisEvent is the BasicFabricEvent implementation for NodeDeactivateCompletedEvent.
25286func (ndce NodeDeactivateCompletedEvent) AsBasicPartitionAnalysisEvent() (BasicPartitionAnalysisEvent, bool) {
25287	return nil, false
25288}
25289
25290// AsPartitionEvent is the BasicFabricEvent implementation for NodeDeactivateCompletedEvent.
25291func (ndce NodeDeactivateCompletedEvent) AsPartitionEvent() (*PartitionEvent, bool) {
25292	return nil, false
25293}
25294
25295// AsBasicPartitionEvent is the BasicFabricEvent implementation for NodeDeactivateCompletedEvent.
25296func (ndce NodeDeactivateCompletedEvent) AsBasicPartitionEvent() (BasicPartitionEvent, bool) {
25297	return nil, false
25298}
25299
25300// AsReplicaEvent is the BasicFabricEvent implementation for NodeDeactivateCompletedEvent.
25301func (ndce NodeDeactivateCompletedEvent) AsReplicaEvent() (*ReplicaEvent, bool) {
25302	return nil, false
25303}
25304
25305// AsBasicReplicaEvent is the BasicFabricEvent implementation for NodeDeactivateCompletedEvent.
25306func (ndce NodeDeactivateCompletedEvent) AsBasicReplicaEvent() (BasicReplicaEvent, bool) {
25307	return nil, false
25308}
25309
25310// AsServiceEvent is the BasicFabricEvent implementation for NodeDeactivateCompletedEvent.
25311func (ndce NodeDeactivateCompletedEvent) AsServiceEvent() (*ServiceEvent, bool) {
25312	return nil, false
25313}
25314
25315// AsBasicServiceEvent is the BasicFabricEvent implementation for NodeDeactivateCompletedEvent.
25316func (ndce NodeDeactivateCompletedEvent) AsBasicServiceEvent() (BasicServiceEvent, bool) {
25317	return nil, false
25318}
25319
25320// AsApplicationCreatedEvent is the BasicFabricEvent implementation for NodeDeactivateCompletedEvent.
25321func (ndce NodeDeactivateCompletedEvent) AsApplicationCreatedEvent() (*ApplicationCreatedEvent, bool) {
25322	return nil, false
25323}
25324
25325// AsApplicationDeletedEvent is the BasicFabricEvent implementation for NodeDeactivateCompletedEvent.
25326func (ndce NodeDeactivateCompletedEvent) AsApplicationDeletedEvent() (*ApplicationDeletedEvent, bool) {
25327	return nil, false
25328}
25329
25330// AsApplicationNewHealthReportEvent is the BasicFabricEvent implementation for NodeDeactivateCompletedEvent.
25331func (ndce NodeDeactivateCompletedEvent) AsApplicationNewHealthReportEvent() (*ApplicationNewHealthReportEvent, bool) {
25332	return nil, false
25333}
25334
25335// AsApplicationHealthReportExpiredEvent is the BasicFabricEvent implementation for NodeDeactivateCompletedEvent.
25336func (ndce NodeDeactivateCompletedEvent) AsApplicationHealthReportExpiredEvent() (*ApplicationHealthReportExpiredEvent, bool) {
25337	return nil, false
25338}
25339
25340// AsApplicationUpgradeCompletedEvent is the BasicFabricEvent implementation for NodeDeactivateCompletedEvent.
25341func (ndce NodeDeactivateCompletedEvent) AsApplicationUpgradeCompletedEvent() (*ApplicationUpgradeCompletedEvent, bool) {
25342	return nil, false
25343}
25344
25345// AsApplicationUpgradeDomainCompletedEvent is the BasicFabricEvent implementation for NodeDeactivateCompletedEvent.
25346func (ndce NodeDeactivateCompletedEvent) AsApplicationUpgradeDomainCompletedEvent() (*ApplicationUpgradeDomainCompletedEvent, bool) {
25347	return nil, false
25348}
25349
25350// AsApplicationUpgradeRollbackCompletedEvent is the BasicFabricEvent implementation for NodeDeactivateCompletedEvent.
25351func (ndce NodeDeactivateCompletedEvent) AsApplicationUpgradeRollbackCompletedEvent() (*ApplicationUpgradeRollbackCompletedEvent, bool) {
25352	return nil, false
25353}
25354
25355// AsApplicationUpgradeRollbackStartedEvent is the BasicFabricEvent implementation for NodeDeactivateCompletedEvent.
25356func (ndce NodeDeactivateCompletedEvent) AsApplicationUpgradeRollbackStartedEvent() (*ApplicationUpgradeRollbackStartedEvent, bool) {
25357	return nil, false
25358}
25359
25360// AsApplicationUpgradeStartedEvent is the BasicFabricEvent implementation for NodeDeactivateCompletedEvent.
25361func (ndce NodeDeactivateCompletedEvent) AsApplicationUpgradeStartedEvent() (*ApplicationUpgradeStartedEvent, bool) {
25362	return nil, false
25363}
25364
25365// AsDeployedApplicationNewHealthReportEvent is the BasicFabricEvent implementation for NodeDeactivateCompletedEvent.
25366func (ndce NodeDeactivateCompletedEvent) AsDeployedApplicationNewHealthReportEvent() (*DeployedApplicationNewHealthReportEvent, bool) {
25367	return nil, false
25368}
25369
25370// AsDeployedApplicationHealthReportExpiredEvent is the BasicFabricEvent implementation for NodeDeactivateCompletedEvent.
25371func (ndce NodeDeactivateCompletedEvent) AsDeployedApplicationHealthReportExpiredEvent() (*DeployedApplicationHealthReportExpiredEvent, bool) {
25372	return nil, false
25373}
25374
25375// AsApplicationProcessExitedEvent is the BasicFabricEvent implementation for NodeDeactivateCompletedEvent.
25376func (ndce NodeDeactivateCompletedEvent) AsApplicationProcessExitedEvent() (*ApplicationProcessExitedEvent, bool) {
25377	return nil, false
25378}
25379
25380// AsApplicationContainerInstanceExitedEvent is the BasicFabricEvent implementation for NodeDeactivateCompletedEvent.
25381func (ndce NodeDeactivateCompletedEvent) AsApplicationContainerInstanceExitedEvent() (*ApplicationContainerInstanceExitedEvent, bool) {
25382	return nil, false
25383}
25384
25385// AsNodeAbortedEvent is the BasicFabricEvent implementation for NodeDeactivateCompletedEvent.
25386func (ndce NodeDeactivateCompletedEvent) AsNodeAbortedEvent() (*NodeAbortedEvent, bool) {
25387	return nil, false
25388}
25389
25390// AsNodeAddedToClusterEvent is the BasicFabricEvent implementation for NodeDeactivateCompletedEvent.
25391func (ndce NodeDeactivateCompletedEvent) AsNodeAddedToClusterEvent() (*NodeAddedToClusterEvent, bool) {
25392	return nil, false
25393}
25394
25395// AsNodeClosedEvent is the BasicFabricEvent implementation for NodeDeactivateCompletedEvent.
25396func (ndce NodeDeactivateCompletedEvent) AsNodeClosedEvent() (*NodeClosedEvent, bool) {
25397	return nil, false
25398}
25399
25400// AsNodeDeactivateCompletedEvent is the BasicFabricEvent implementation for NodeDeactivateCompletedEvent.
25401func (ndce NodeDeactivateCompletedEvent) AsNodeDeactivateCompletedEvent() (*NodeDeactivateCompletedEvent, bool) {
25402	return &ndce, true
25403}
25404
25405// AsNodeDeactivateStartedEvent is the BasicFabricEvent implementation for NodeDeactivateCompletedEvent.
25406func (ndce NodeDeactivateCompletedEvent) AsNodeDeactivateStartedEvent() (*NodeDeactivateStartedEvent, bool) {
25407	return nil, false
25408}
25409
25410// AsNodeDownEvent is the BasicFabricEvent implementation for NodeDeactivateCompletedEvent.
25411func (ndce NodeDeactivateCompletedEvent) AsNodeDownEvent() (*NodeDownEvent, bool) {
25412	return nil, false
25413}
25414
25415// AsNodeNewHealthReportEvent is the BasicFabricEvent implementation for NodeDeactivateCompletedEvent.
25416func (ndce NodeDeactivateCompletedEvent) AsNodeNewHealthReportEvent() (*NodeNewHealthReportEvent, bool) {
25417	return nil, false
25418}
25419
25420// AsNodeHealthReportExpiredEvent is the BasicFabricEvent implementation for NodeDeactivateCompletedEvent.
25421func (ndce NodeDeactivateCompletedEvent) AsNodeHealthReportExpiredEvent() (*NodeHealthReportExpiredEvent, bool) {
25422	return nil, false
25423}
25424
25425// AsNodeOpenSucceededEvent is the BasicFabricEvent implementation for NodeDeactivateCompletedEvent.
25426func (ndce NodeDeactivateCompletedEvent) AsNodeOpenSucceededEvent() (*NodeOpenSucceededEvent, bool) {
25427	return nil, false
25428}
25429
25430// AsNodeOpenFailedEvent is the BasicFabricEvent implementation for NodeDeactivateCompletedEvent.
25431func (ndce NodeDeactivateCompletedEvent) AsNodeOpenFailedEvent() (*NodeOpenFailedEvent, bool) {
25432	return nil, false
25433}
25434
25435// AsNodeRemovedFromClusterEvent is the BasicFabricEvent implementation for NodeDeactivateCompletedEvent.
25436func (ndce NodeDeactivateCompletedEvent) AsNodeRemovedFromClusterEvent() (*NodeRemovedFromClusterEvent, bool) {
25437	return nil, false
25438}
25439
25440// AsNodeUpEvent is the BasicFabricEvent implementation for NodeDeactivateCompletedEvent.
25441func (ndce NodeDeactivateCompletedEvent) AsNodeUpEvent() (*NodeUpEvent, bool) {
25442	return nil, false
25443}
25444
25445// AsPartitionNewHealthReportEvent is the BasicFabricEvent implementation for NodeDeactivateCompletedEvent.
25446func (ndce NodeDeactivateCompletedEvent) AsPartitionNewHealthReportEvent() (*PartitionNewHealthReportEvent, bool) {
25447	return nil, false
25448}
25449
25450// AsPartitionHealthReportExpiredEvent is the BasicFabricEvent implementation for NodeDeactivateCompletedEvent.
25451func (ndce NodeDeactivateCompletedEvent) AsPartitionHealthReportExpiredEvent() (*PartitionHealthReportExpiredEvent, bool) {
25452	return nil, false
25453}
25454
25455// AsPartitionReconfiguredEvent is the BasicFabricEvent implementation for NodeDeactivateCompletedEvent.
25456func (ndce NodeDeactivateCompletedEvent) AsPartitionReconfiguredEvent() (*PartitionReconfiguredEvent, bool) {
25457	return nil, false
25458}
25459
25460// AsPartitionPrimaryMoveAnalysisEvent is the BasicFabricEvent implementation for NodeDeactivateCompletedEvent.
25461func (ndce NodeDeactivateCompletedEvent) AsPartitionPrimaryMoveAnalysisEvent() (*PartitionPrimaryMoveAnalysisEvent, bool) {
25462	return nil, false
25463}
25464
25465// AsServiceCreatedEvent is the BasicFabricEvent implementation for NodeDeactivateCompletedEvent.
25466func (ndce NodeDeactivateCompletedEvent) AsServiceCreatedEvent() (*ServiceCreatedEvent, bool) {
25467	return nil, false
25468}
25469
25470// AsServiceDeletedEvent is the BasicFabricEvent implementation for NodeDeactivateCompletedEvent.
25471func (ndce NodeDeactivateCompletedEvent) AsServiceDeletedEvent() (*ServiceDeletedEvent, bool) {
25472	return nil, false
25473}
25474
25475// AsServiceNewHealthReportEvent is the BasicFabricEvent implementation for NodeDeactivateCompletedEvent.
25476func (ndce NodeDeactivateCompletedEvent) AsServiceNewHealthReportEvent() (*ServiceNewHealthReportEvent, bool) {
25477	return nil, false
25478}
25479
25480// AsServiceHealthReportExpiredEvent is the BasicFabricEvent implementation for NodeDeactivateCompletedEvent.
25481func (ndce NodeDeactivateCompletedEvent) AsServiceHealthReportExpiredEvent() (*ServiceHealthReportExpiredEvent, bool) {
25482	return nil, false
25483}
25484
25485// AsDeployedServicePackageNewHealthReportEvent is the BasicFabricEvent implementation for NodeDeactivateCompletedEvent.
25486func (ndce NodeDeactivateCompletedEvent) AsDeployedServicePackageNewHealthReportEvent() (*DeployedServicePackageNewHealthReportEvent, bool) {
25487	return nil, false
25488}
25489
25490// AsDeployedServicePackageHealthReportExpiredEvent is the BasicFabricEvent implementation for NodeDeactivateCompletedEvent.
25491func (ndce NodeDeactivateCompletedEvent) AsDeployedServicePackageHealthReportExpiredEvent() (*DeployedServicePackageHealthReportExpiredEvent, bool) {
25492	return nil, false
25493}
25494
25495// AsStatefulReplicaNewHealthReportEvent is the BasicFabricEvent implementation for NodeDeactivateCompletedEvent.
25496func (ndce NodeDeactivateCompletedEvent) AsStatefulReplicaNewHealthReportEvent() (*StatefulReplicaNewHealthReportEvent, bool) {
25497	return nil, false
25498}
25499
25500// AsStatefulReplicaHealthReportExpiredEvent is the BasicFabricEvent implementation for NodeDeactivateCompletedEvent.
25501func (ndce NodeDeactivateCompletedEvent) AsStatefulReplicaHealthReportExpiredEvent() (*StatefulReplicaHealthReportExpiredEvent, bool) {
25502	return nil, false
25503}
25504
25505// AsStatelessReplicaNewHealthReportEvent is the BasicFabricEvent implementation for NodeDeactivateCompletedEvent.
25506func (ndce NodeDeactivateCompletedEvent) AsStatelessReplicaNewHealthReportEvent() (*StatelessReplicaNewHealthReportEvent, bool) {
25507	return nil, false
25508}
25509
25510// AsStatelessReplicaHealthReportExpiredEvent is the BasicFabricEvent implementation for NodeDeactivateCompletedEvent.
25511func (ndce NodeDeactivateCompletedEvent) AsStatelessReplicaHealthReportExpiredEvent() (*StatelessReplicaHealthReportExpiredEvent, bool) {
25512	return nil, false
25513}
25514
25515// AsClusterNewHealthReportEvent is the BasicFabricEvent implementation for NodeDeactivateCompletedEvent.
25516func (ndce NodeDeactivateCompletedEvent) AsClusterNewHealthReportEvent() (*ClusterNewHealthReportEvent, bool) {
25517	return nil, false
25518}
25519
25520// AsClusterHealthReportExpiredEvent is the BasicFabricEvent implementation for NodeDeactivateCompletedEvent.
25521func (ndce NodeDeactivateCompletedEvent) AsClusterHealthReportExpiredEvent() (*ClusterHealthReportExpiredEvent, bool) {
25522	return nil, false
25523}
25524
25525// AsClusterUpgradeCompletedEvent is the BasicFabricEvent implementation for NodeDeactivateCompletedEvent.
25526func (ndce NodeDeactivateCompletedEvent) AsClusterUpgradeCompletedEvent() (*ClusterUpgradeCompletedEvent, bool) {
25527	return nil, false
25528}
25529
25530// AsClusterUpgradeDomainCompletedEvent is the BasicFabricEvent implementation for NodeDeactivateCompletedEvent.
25531func (ndce NodeDeactivateCompletedEvent) AsClusterUpgradeDomainCompletedEvent() (*ClusterUpgradeDomainCompletedEvent, bool) {
25532	return nil, false
25533}
25534
25535// AsClusterUpgradeRollbackCompletedEvent is the BasicFabricEvent implementation for NodeDeactivateCompletedEvent.
25536func (ndce NodeDeactivateCompletedEvent) AsClusterUpgradeRollbackCompletedEvent() (*ClusterUpgradeRollbackCompletedEvent, bool) {
25537	return nil, false
25538}
25539
25540// AsClusterUpgradeRollbackStartedEvent is the BasicFabricEvent implementation for NodeDeactivateCompletedEvent.
25541func (ndce NodeDeactivateCompletedEvent) AsClusterUpgradeRollbackStartedEvent() (*ClusterUpgradeRollbackStartedEvent, bool) {
25542	return nil, false
25543}
25544
25545// AsClusterUpgradeStartedEvent is the BasicFabricEvent implementation for NodeDeactivateCompletedEvent.
25546func (ndce NodeDeactivateCompletedEvent) AsClusterUpgradeStartedEvent() (*ClusterUpgradeStartedEvent, bool) {
25547	return nil, false
25548}
25549
25550// AsChaosStoppedEvent is the BasicFabricEvent implementation for NodeDeactivateCompletedEvent.
25551func (ndce NodeDeactivateCompletedEvent) AsChaosStoppedEvent() (*ChaosStoppedEvent, bool) {
25552	return nil, false
25553}
25554
25555// AsChaosStartedEvent is the BasicFabricEvent implementation for NodeDeactivateCompletedEvent.
25556func (ndce NodeDeactivateCompletedEvent) AsChaosStartedEvent() (*ChaosStartedEvent, bool) {
25557	return nil, false
25558}
25559
25560// AsChaosCodePackageRestartScheduledEvent is the BasicFabricEvent implementation for NodeDeactivateCompletedEvent.
25561func (ndce NodeDeactivateCompletedEvent) AsChaosCodePackageRestartScheduledEvent() (*ChaosCodePackageRestartScheduledEvent, bool) {
25562	return nil, false
25563}
25564
25565// AsChaosReplicaRemovalScheduledEvent is the BasicFabricEvent implementation for NodeDeactivateCompletedEvent.
25566func (ndce NodeDeactivateCompletedEvent) AsChaosReplicaRemovalScheduledEvent() (*ChaosReplicaRemovalScheduledEvent, bool) {
25567	return nil, false
25568}
25569
25570// AsChaosPartitionSecondaryMoveScheduledEvent is the BasicFabricEvent implementation for NodeDeactivateCompletedEvent.
25571func (ndce NodeDeactivateCompletedEvent) AsChaosPartitionSecondaryMoveScheduledEvent() (*ChaosPartitionSecondaryMoveScheduledEvent, bool) {
25572	return nil, false
25573}
25574
25575// AsChaosPartitionPrimaryMoveScheduledEvent is the BasicFabricEvent implementation for NodeDeactivateCompletedEvent.
25576func (ndce NodeDeactivateCompletedEvent) AsChaosPartitionPrimaryMoveScheduledEvent() (*ChaosPartitionPrimaryMoveScheduledEvent, bool) {
25577	return nil, false
25578}
25579
25580// AsChaosReplicaRestartScheduledEvent is the BasicFabricEvent implementation for NodeDeactivateCompletedEvent.
25581func (ndce NodeDeactivateCompletedEvent) AsChaosReplicaRestartScheduledEvent() (*ChaosReplicaRestartScheduledEvent, bool) {
25582	return nil, false
25583}
25584
25585// AsChaosNodeRestartScheduledEvent is the BasicFabricEvent implementation for NodeDeactivateCompletedEvent.
25586func (ndce NodeDeactivateCompletedEvent) AsChaosNodeRestartScheduledEvent() (*ChaosNodeRestartScheduledEvent, bool) {
25587	return nil, false
25588}
25589
25590// AsFabricEvent is the BasicFabricEvent implementation for NodeDeactivateCompletedEvent.
25591func (ndce NodeDeactivateCompletedEvent) AsFabricEvent() (*FabricEvent, bool) {
25592	return nil, false
25593}
25594
25595// AsBasicFabricEvent is the BasicFabricEvent implementation for NodeDeactivateCompletedEvent.
25596func (ndce NodeDeactivateCompletedEvent) AsBasicFabricEvent() (BasicFabricEvent, bool) {
25597	return &ndce, true
25598}
25599
25600// NodeDeactivateStartedEvent node Deactivate Started event.
25601type NodeDeactivateStartedEvent struct {
25602	// NodeInstance - Id of Node instance.
25603	NodeInstance *int64 `json:"NodeInstance,omitempty"`
25604	// BatchID - Batch Id.
25605	BatchID *string `json:"BatchId,omitempty"`
25606	// DeactivateIntent - Describes deactivate intent.
25607	DeactivateIntent *string `json:"DeactivateIntent,omitempty"`
25608	// NodeName - The name of a Service Fabric node.
25609	NodeName *string `json:"NodeName,omitempty"`
25610	// EventInstanceID - The identifier for the FabricEvent instance.
25611	EventInstanceID *uuid.UUID `json:"EventInstanceId,omitempty"`
25612	// Category - The category of event.
25613	Category *string `json:"Category,omitempty"`
25614	// TimeStamp - The time event was logged.
25615	TimeStamp *date.Time `json:"TimeStamp,omitempty"`
25616	// HasCorrelatedEvents - Shows there is existing related events available.
25617	HasCorrelatedEvents *bool `json:"HasCorrelatedEvents,omitempty"`
25618	// 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'
25619	Kind KindBasicFabricEvent `json:"Kind,omitempty"`
25620}
25621
25622// MarshalJSON is the custom marshaler for NodeDeactivateStartedEvent.
25623func (ndse NodeDeactivateStartedEvent) MarshalJSON() ([]byte, error) {
25624	ndse.Kind = KindNodeDeactivateStarted
25625	objectMap := make(map[string]interface{})
25626	if ndse.NodeInstance != nil {
25627		objectMap["NodeInstance"] = ndse.NodeInstance
25628	}
25629	if ndse.BatchID != nil {
25630		objectMap["BatchId"] = ndse.BatchID
25631	}
25632	if ndse.DeactivateIntent != nil {
25633		objectMap["DeactivateIntent"] = ndse.DeactivateIntent
25634	}
25635	if ndse.NodeName != nil {
25636		objectMap["NodeName"] = ndse.NodeName
25637	}
25638	if ndse.EventInstanceID != nil {
25639		objectMap["EventInstanceId"] = ndse.EventInstanceID
25640	}
25641	if ndse.Category != nil {
25642		objectMap["Category"] = ndse.Category
25643	}
25644	if ndse.TimeStamp != nil {
25645		objectMap["TimeStamp"] = ndse.TimeStamp
25646	}
25647	if ndse.HasCorrelatedEvents != nil {
25648		objectMap["HasCorrelatedEvents"] = ndse.HasCorrelatedEvents
25649	}
25650	if ndse.Kind != "" {
25651		objectMap["Kind"] = ndse.Kind
25652	}
25653	return json.Marshal(objectMap)
25654}
25655
25656// AsApplicationEvent is the BasicFabricEvent implementation for NodeDeactivateStartedEvent.
25657func (ndse NodeDeactivateStartedEvent) AsApplicationEvent() (*ApplicationEvent, bool) {
25658	return nil, false
25659}
25660
25661// AsBasicApplicationEvent is the BasicFabricEvent implementation for NodeDeactivateStartedEvent.
25662func (ndse NodeDeactivateStartedEvent) AsBasicApplicationEvent() (BasicApplicationEvent, bool) {
25663	return nil, false
25664}
25665
25666// AsClusterEvent is the BasicFabricEvent implementation for NodeDeactivateStartedEvent.
25667func (ndse NodeDeactivateStartedEvent) AsClusterEvent() (*ClusterEvent, bool) {
25668	return nil, false
25669}
25670
25671// AsBasicClusterEvent is the BasicFabricEvent implementation for NodeDeactivateStartedEvent.
25672func (ndse NodeDeactivateStartedEvent) AsBasicClusterEvent() (BasicClusterEvent, bool) {
25673	return nil, false
25674}
25675
25676// AsContainerInstanceEvent is the BasicFabricEvent implementation for NodeDeactivateStartedEvent.
25677func (ndse NodeDeactivateStartedEvent) AsContainerInstanceEvent() (*ContainerInstanceEvent, bool) {
25678	return nil, false
25679}
25680
25681// AsNodeEvent is the BasicFabricEvent implementation for NodeDeactivateStartedEvent.
25682func (ndse NodeDeactivateStartedEvent) AsNodeEvent() (*NodeEvent, bool) {
25683	return nil, false
25684}
25685
25686// AsBasicNodeEvent is the BasicFabricEvent implementation for NodeDeactivateStartedEvent.
25687func (ndse NodeDeactivateStartedEvent) AsBasicNodeEvent() (BasicNodeEvent, bool) {
25688	return &ndse, true
25689}
25690
25691// AsPartitionAnalysisEvent is the BasicFabricEvent implementation for NodeDeactivateStartedEvent.
25692func (ndse NodeDeactivateStartedEvent) AsPartitionAnalysisEvent() (*PartitionAnalysisEvent, bool) {
25693	return nil, false
25694}
25695
25696// AsBasicPartitionAnalysisEvent is the BasicFabricEvent implementation for NodeDeactivateStartedEvent.
25697func (ndse NodeDeactivateStartedEvent) AsBasicPartitionAnalysisEvent() (BasicPartitionAnalysisEvent, bool) {
25698	return nil, false
25699}
25700
25701// AsPartitionEvent is the BasicFabricEvent implementation for NodeDeactivateStartedEvent.
25702func (ndse NodeDeactivateStartedEvent) AsPartitionEvent() (*PartitionEvent, bool) {
25703	return nil, false
25704}
25705
25706// AsBasicPartitionEvent is the BasicFabricEvent implementation for NodeDeactivateStartedEvent.
25707func (ndse NodeDeactivateStartedEvent) AsBasicPartitionEvent() (BasicPartitionEvent, bool) {
25708	return nil, false
25709}
25710
25711// AsReplicaEvent is the BasicFabricEvent implementation for NodeDeactivateStartedEvent.
25712func (ndse NodeDeactivateStartedEvent) AsReplicaEvent() (*ReplicaEvent, bool) {
25713	return nil, false
25714}
25715
25716// AsBasicReplicaEvent is the BasicFabricEvent implementation for NodeDeactivateStartedEvent.
25717func (ndse NodeDeactivateStartedEvent) AsBasicReplicaEvent() (BasicReplicaEvent, bool) {
25718	return nil, false
25719}
25720
25721// AsServiceEvent is the BasicFabricEvent implementation for NodeDeactivateStartedEvent.
25722func (ndse NodeDeactivateStartedEvent) AsServiceEvent() (*ServiceEvent, bool) {
25723	return nil, false
25724}
25725
25726// AsBasicServiceEvent is the BasicFabricEvent implementation for NodeDeactivateStartedEvent.
25727func (ndse NodeDeactivateStartedEvent) AsBasicServiceEvent() (BasicServiceEvent, bool) {
25728	return nil, false
25729}
25730
25731// AsApplicationCreatedEvent is the BasicFabricEvent implementation for NodeDeactivateStartedEvent.
25732func (ndse NodeDeactivateStartedEvent) AsApplicationCreatedEvent() (*ApplicationCreatedEvent, bool) {
25733	return nil, false
25734}
25735
25736// AsApplicationDeletedEvent is the BasicFabricEvent implementation for NodeDeactivateStartedEvent.
25737func (ndse NodeDeactivateStartedEvent) AsApplicationDeletedEvent() (*ApplicationDeletedEvent, bool) {
25738	return nil, false
25739}
25740
25741// AsApplicationNewHealthReportEvent is the BasicFabricEvent implementation for NodeDeactivateStartedEvent.
25742func (ndse NodeDeactivateStartedEvent) AsApplicationNewHealthReportEvent() (*ApplicationNewHealthReportEvent, bool) {
25743	return nil, false
25744}
25745
25746// AsApplicationHealthReportExpiredEvent is the BasicFabricEvent implementation for NodeDeactivateStartedEvent.
25747func (ndse NodeDeactivateStartedEvent) AsApplicationHealthReportExpiredEvent() (*ApplicationHealthReportExpiredEvent, bool) {
25748	return nil, false
25749}
25750
25751// AsApplicationUpgradeCompletedEvent is the BasicFabricEvent implementation for NodeDeactivateStartedEvent.
25752func (ndse NodeDeactivateStartedEvent) AsApplicationUpgradeCompletedEvent() (*ApplicationUpgradeCompletedEvent, bool) {
25753	return nil, false
25754}
25755
25756// AsApplicationUpgradeDomainCompletedEvent is the BasicFabricEvent implementation for NodeDeactivateStartedEvent.
25757func (ndse NodeDeactivateStartedEvent) AsApplicationUpgradeDomainCompletedEvent() (*ApplicationUpgradeDomainCompletedEvent, bool) {
25758	return nil, false
25759}
25760
25761// AsApplicationUpgradeRollbackCompletedEvent is the BasicFabricEvent implementation for NodeDeactivateStartedEvent.
25762func (ndse NodeDeactivateStartedEvent) AsApplicationUpgradeRollbackCompletedEvent() (*ApplicationUpgradeRollbackCompletedEvent, bool) {
25763	return nil, false
25764}
25765
25766// AsApplicationUpgradeRollbackStartedEvent is the BasicFabricEvent implementation for NodeDeactivateStartedEvent.
25767func (ndse NodeDeactivateStartedEvent) AsApplicationUpgradeRollbackStartedEvent() (*ApplicationUpgradeRollbackStartedEvent, bool) {
25768	return nil, false
25769}
25770
25771// AsApplicationUpgradeStartedEvent is the BasicFabricEvent implementation for NodeDeactivateStartedEvent.
25772func (ndse NodeDeactivateStartedEvent) AsApplicationUpgradeStartedEvent() (*ApplicationUpgradeStartedEvent, bool) {
25773	return nil, false
25774}
25775
25776// AsDeployedApplicationNewHealthReportEvent is the BasicFabricEvent implementation for NodeDeactivateStartedEvent.
25777func (ndse NodeDeactivateStartedEvent) AsDeployedApplicationNewHealthReportEvent() (*DeployedApplicationNewHealthReportEvent, bool) {
25778	return nil, false
25779}
25780
25781// AsDeployedApplicationHealthReportExpiredEvent is the BasicFabricEvent implementation for NodeDeactivateStartedEvent.
25782func (ndse NodeDeactivateStartedEvent) AsDeployedApplicationHealthReportExpiredEvent() (*DeployedApplicationHealthReportExpiredEvent, bool) {
25783	return nil, false
25784}
25785
25786// AsApplicationProcessExitedEvent is the BasicFabricEvent implementation for NodeDeactivateStartedEvent.
25787func (ndse NodeDeactivateStartedEvent) AsApplicationProcessExitedEvent() (*ApplicationProcessExitedEvent, bool) {
25788	return nil, false
25789}
25790
25791// AsApplicationContainerInstanceExitedEvent is the BasicFabricEvent implementation for NodeDeactivateStartedEvent.
25792func (ndse NodeDeactivateStartedEvent) AsApplicationContainerInstanceExitedEvent() (*ApplicationContainerInstanceExitedEvent, bool) {
25793	return nil, false
25794}
25795
25796// AsNodeAbortedEvent is the BasicFabricEvent implementation for NodeDeactivateStartedEvent.
25797func (ndse NodeDeactivateStartedEvent) AsNodeAbortedEvent() (*NodeAbortedEvent, bool) {
25798	return nil, false
25799}
25800
25801// AsNodeAddedToClusterEvent is the BasicFabricEvent implementation for NodeDeactivateStartedEvent.
25802func (ndse NodeDeactivateStartedEvent) AsNodeAddedToClusterEvent() (*NodeAddedToClusterEvent, bool) {
25803	return nil, false
25804}
25805
25806// AsNodeClosedEvent is the BasicFabricEvent implementation for NodeDeactivateStartedEvent.
25807func (ndse NodeDeactivateStartedEvent) AsNodeClosedEvent() (*NodeClosedEvent, bool) {
25808	return nil, false
25809}
25810
25811// AsNodeDeactivateCompletedEvent is the BasicFabricEvent implementation for NodeDeactivateStartedEvent.
25812func (ndse NodeDeactivateStartedEvent) AsNodeDeactivateCompletedEvent() (*NodeDeactivateCompletedEvent, bool) {
25813	return nil, false
25814}
25815
25816// AsNodeDeactivateStartedEvent is the BasicFabricEvent implementation for NodeDeactivateStartedEvent.
25817func (ndse NodeDeactivateStartedEvent) AsNodeDeactivateStartedEvent() (*NodeDeactivateStartedEvent, bool) {
25818	return &ndse, true
25819}
25820
25821// AsNodeDownEvent is the BasicFabricEvent implementation for NodeDeactivateStartedEvent.
25822func (ndse NodeDeactivateStartedEvent) AsNodeDownEvent() (*NodeDownEvent, bool) {
25823	return nil, false
25824}
25825
25826// AsNodeNewHealthReportEvent is the BasicFabricEvent implementation for NodeDeactivateStartedEvent.
25827func (ndse NodeDeactivateStartedEvent) AsNodeNewHealthReportEvent() (*NodeNewHealthReportEvent, bool) {
25828	return nil, false
25829}
25830
25831// AsNodeHealthReportExpiredEvent is the BasicFabricEvent implementation for NodeDeactivateStartedEvent.
25832func (ndse NodeDeactivateStartedEvent) AsNodeHealthReportExpiredEvent() (*NodeHealthReportExpiredEvent, bool) {
25833	return nil, false
25834}
25835
25836// AsNodeOpenSucceededEvent is the BasicFabricEvent implementation for NodeDeactivateStartedEvent.
25837func (ndse NodeDeactivateStartedEvent) AsNodeOpenSucceededEvent() (*NodeOpenSucceededEvent, bool) {
25838	return nil, false
25839}
25840
25841// AsNodeOpenFailedEvent is the BasicFabricEvent implementation for NodeDeactivateStartedEvent.
25842func (ndse NodeDeactivateStartedEvent) AsNodeOpenFailedEvent() (*NodeOpenFailedEvent, bool) {
25843	return nil, false
25844}
25845
25846// AsNodeRemovedFromClusterEvent is the BasicFabricEvent implementation for NodeDeactivateStartedEvent.
25847func (ndse NodeDeactivateStartedEvent) AsNodeRemovedFromClusterEvent() (*NodeRemovedFromClusterEvent, bool) {
25848	return nil, false
25849}
25850
25851// AsNodeUpEvent is the BasicFabricEvent implementation for NodeDeactivateStartedEvent.
25852func (ndse NodeDeactivateStartedEvent) AsNodeUpEvent() (*NodeUpEvent, bool) {
25853	return nil, false
25854}
25855
25856// AsPartitionNewHealthReportEvent is the BasicFabricEvent implementation for NodeDeactivateStartedEvent.
25857func (ndse NodeDeactivateStartedEvent) AsPartitionNewHealthReportEvent() (*PartitionNewHealthReportEvent, bool) {
25858	return nil, false
25859}
25860
25861// AsPartitionHealthReportExpiredEvent is the BasicFabricEvent implementation for NodeDeactivateStartedEvent.
25862func (ndse NodeDeactivateStartedEvent) AsPartitionHealthReportExpiredEvent() (*PartitionHealthReportExpiredEvent, bool) {
25863	return nil, false
25864}
25865
25866// AsPartitionReconfiguredEvent is the BasicFabricEvent implementation for NodeDeactivateStartedEvent.
25867func (ndse NodeDeactivateStartedEvent) AsPartitionReconfiguredEvent() (*PartitionReconfiguredEvent, bool) {
25868	return nil, false
25869}
25870
25871// AsPartitionPrimaryMoveAnalysisEvent is the BasicFabricEvent implementation for NodeDeactivateStartedEvent.
25872func (ndse NodeDeactivateStartedEvent) AsPartitionPrimaryMoveAnalysisEvent() (*PartitionPrimaryMoveAnalysisEvent, bool) {
25873	return nil, false
25874}
25875
25876// AsServiceCreatedEvent is the BasicFabricEvent implementation for NodeDeactivateStartedEvent.
25877func (ndse NodeDeactivateStartedEvent) AsServiceCreatedEvent() (*ServiceCreatedEvent, bool) {
25878	return nil, false
25879}
25880
25881// AsServiceDeletedEvent is the BasicFabricEvent implementation for NodeDeactivateStartedEvent.
25882func (ndse NodeDeactivateStartedEvent) AsServiceDeletedEvent() (*ServiceDeletedEvent, bool) {
25883	return nil, false
25884}
25885
25886// AsServiceNewHealthReportEvent is the BasicFabricEvent implementation for NodeDeactivateStartedEvent.
25887func (ndse NodeDeactivateStartedEvent) AsServiceNewHealthReportEvent() (*ServiceNewHealthReportEvent, bool) {
25888	return nil, false
25889}
25890
25891// AsServiceHealthReportExpiredEvent is the BasicFabricEvent implementation for NodeDeactivateStartedEvent.
25892func (ndse NodeDeactivateStartedEvent) AsServiceHealthReportExpiredEvent() (*ServiceHealthReportExpiredEvent, bool) {
25893	return nil, false
25894}
25895
25896// AsDeployedServicePackageNewHealthReportEvent is the BasicFabricEvent implementation for NodeDeactivateStartedEvent.
25897func (ndse NodeDeactivateStartedEvent) AsDeployedServicePackageNewHealthReportEvent() (*DeployedServicePackageNewHealthReportEvent, bool) {
25898	return nil, false
25899}
25900
25901// AsDeployedServicePackageHealthReportExpiredEvent is the BasicFabricEvent implementation for NodeDeactivateStartedEvent.
25902func (ndse NodeDeactivateStartedEvent) AsDeployedServicePackageHealthReportExpiredEvent() (*DeployedServicePackageHealthReportExpiredEvent, bool) {
25903	return nil, false
25904}
25905
25906// AsStatefulReplicaNewHealthReportEvent is the BasicFabricEvent implementation for NodeDeactivateStartedEvent.
25907func (ndse NodeDeactivateStartedEvent) AsStatefulReplicaNewHealthReportEvent() (*StatefulReplicaNewHealthReportEvent, bool) {
25908	return nil, false
25909}
25910
25911// AsStatefulReplicaHealthReportExpiredEvent is the BasicFabricEvent implementation for NodeDeactivateStartedEvent.
25912func (ndse NodeDeactivateStartedEvent) AsStatefulReplicaHealthReportExpiredEvent() (*StatefulReplicaHealthReportExpiredEvent, bool) {
25913	return nil, false
25914}
25915
25916// AsStatelessReplicaNewHealthReportEvent is the BasicFabricEvent implementation for NodeDeactivateStartedEvent.
25917func (ndse NodeDeactivateStartedEvent) AsStatelessReplicaNewHealthReportEvent() (*StatelessReplicaNewHealthReportEvent, bool) {
25918	return nil, false
25919}
25920
25921// AsStatelessReplicaHealthReportExpiredEvent is the BasicFabricEvent implementation for NodeDeactivateStartedEvent.
25922func (ndse NodeDeactivateStartedEvent) AsStatelessReplicaHealthReportExpiredEvent() (*StatelessReplicaHealthReportExpiredEvent, bool) {
25923	return nil, false
25924}
25925
25926// AsClusterNewHealthReportEvent is the BasicFabricEvent implementation for NodeDeactivateStartedEvent.
25927func (ndse NodeDeactivateStartedEvent) AsClusterNewHealthReportEvent() (*ClusterNewHealthReportEvent, bool) {
25928	return nil, false
25929}
25930
25931// AsClusterHealthReportExpiredEvent is the BasicFabricEvent implementation for NodeDeactivateStartedEvent.
25932func (ndse NodeDeactivateStartedEvent) AsClusterHealthReportExpiredEvent() (*ClusterHealthReportExpiredEvent, bool) {
25933	return nil, false
25934}
25935
25936// AsClusterUpgradeCompletedEvent is the BasicFabricEvent implementation for NodeDeactivateStartedEvent.
25937func (ndse NodeDeactivateStartedEvent) AsClusterUpgradeCompletedEvent() (*ClusterUpgradeCompletedEvent, bool) {
25938	return nil, false
25939}
25940
25941// AsClusterUpgradeDomainCompletedEvent is the BasicFabricEvent implementation for NodeDeactivateStartedEvent.
25942func (ndse NodeDeactivateStartedEvent) AsClusterUpgradeDomainCompletedEvent() (*ClusterUpgradeDomainCompletedEvent, bool) {
25943	return nil, false
25944}
25945
25946// AsClusterUpgradeRollbackCompletedEvent is the BasicFabricEvent implementation for NodeDeactivateStartedEvent.
25947func (ndse NodeDeactivateStartedEvent) AsClusterUpgradeRollbackCompletedEvent() (*ClusterUpgradeRollbackCompletedEvent, bool) {
25948	return nil, false
25949}
25950
25951// AsClusterUpgradeRollbackStartedEvent is the BasicFabricEvent implementation for NodeDeactivateStartedEvent.
25952func (ndse NodeDeactivateStartedEvent) AsClusterUpgradeRollbackStartedEvent() (*ClusterUpgradeRollbackStartedEvent, bool) {
25953	return nil, false
25954}
25955
25956// AsClusterUpgradeStartedEvent is the BasicFabricEvent implementation for NodeDeactivateStartedEvent.
25957func (ndse NodeDeactivateStartedEvent) AsClusterUpgradeStartedEvent() (*ClusterUpgradeStartedEvent, bool) {
25958	return nil, false
25959}
25960
25961// AsChaosStoppedEvent is the BasicFabricEvent implementation for NodeDeactivateStartedEvent.
25962func (ndse NodeDeactivateStartedEvent) AsChaosStoppedEvent() (*ChaosStoppedEvent, bool) {
25963	return nil, false
25964}
25965
25966// AsChaosStartedEvent is the BasicFabricEvent implementation for NodeDeactivateStartedEvent.
25967func (ndse NodeDeactivateStartedEvent) AsChaosStartedEvent() (*ChaosStartedEvent, bool) {
25968	return nil, false
25969}
25970
25971// AsChaosCodePackageRestartScheduledEvent is the BasicFabricEvent implementation for NodeDeactivateStartedEvent.
25972func (ndse NodeDeactivateStartedEvent) AsChaosCodePackageRestartScheduledEvent() (*ChaosCodePackageRestartScheduledEvent, bool) {
25973	return nil, false
25974}
25975
25976// AsChaosReplicaRemovalScheduledEvent is the BasicFabricEvent implementation for NodeDeactivateStartedEvent.
25977func (ndse NodeDeactivateStartedEvent) AsChaosReplicaRemovalScheduledEvent() (*ChaosReplicaRemovalScheduledEvent, bool) {
25978	return nil, false
25979}
25980
25981// AsChaosPartitionSecondaryMoveScheduledEvent is the BasicFabricEvent implementation for NodeDeactivateStartedEvent.
25982func (ndse NodeDeactivateStartedEvent) AsChaosPartitionSecondaryMoveScheduledEvent() (*ChaosPartitionSecondaryMoveScheduledEvent, bool) {
25983	return nil, false
25984}
25985
25986// AsChaosPartitionPrimaryMoveScheduledEvent is the BasicFabricEvent implementation for NodeDeactivateStartedEvent.
25987func (ndse NodeDeactivateStartedEvent) AsChaosPartitionPrimaryMoveScheduledEvent() (*ChaosPartitionPrimaryMoveScheduledEvent, bool) {
25988	return nil, false
25989}
25990
25991// AsChaosReplicaRestartScheduledEvent is the BasicFabricEvent implementation for NodeDeactivateStartedEvent.
25992func (ndse NodeDeactivateStartedEvent) AsChaosReplicaRestartScheduledEvent() (*ChaosReplicaRestartScheduledEvent, bool) {
25993	return nil, false
25994}
25995
25996// AsChaosNodeRestartScheduledEvent is the BasicFabricEvent implementation for NodeDeactivateStartedEvent.
25997func (ndse NodeDeactivateStartedEvent) AsChaosNodeRestartScheduledEvent() (*ChaosNodeRestartScheduledEvent, bool) {
25998	return nil, false
25999}
26000
26001// AsFabricEvent is the BasicFabricEvent implementation for NodeDeactivateStartedEvent.
26002func (ndse NodeDeactivateStartedEvent) AsFabricEvent() (*FabricEvent, bool) {
26003	return nil, false
26004}
26005
26006// AsBasicFabricEvent is the BasicFabricEvent implementation for NodeDeactivateStartedEvent.
26007func (ndse NodeDeactivateStartedEvent) AsBasicFabricEvent() (BasicFabricEvent, bool) {
26008	return &ndse, true
26009}
26010
26011// NodeDeactivationInfo information about the node deactivation. This information is valid for a node that
26012// is undergoing deactivation or has already been deactivated.
26013type NodeDeactivationInfo struct {
26014	// 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'
26015	NodeDeactivationIntent NodeDeactivationIntent `json:"NodeDeactivationIntent,omitempty"`
26016	// NodeDeactivationStatus - The status of node deactivation operation. Following are the possible values. Possible values include: 'NodeDeactivationStatusNone', 'NodeDeactivationStatusSafetyCheckInProgress', 'NodeDeactivationStatusSafetyCheckComplete', 'NodeDeactivationStatusCompleted'
26017	NodeDeactivationStatus NodeDeactivationStatus `json:"NodeDeactivationStatus,omitempty"`
26018	// NodeDeactivationTask - List of tasks representing the deactivation operation on the node.
26019	NodeDeactivationTask *[]NodeDeactivationTask `json:"NodeDeactivationTask,omitempty"`
26020	// PendingSafetyChecks - List of pending safety checks
26021	PendingSafetyChecks *[]SafetyCheckWrapper `json:"PendingSafetyChecks,omitempty"`
26022}
26023
26024// NodeDeactivationTask the task representing the deactivation operation on the node.
26025type NodeDeactivationTask struct {
26026	// NodeDeactivationTaskID - Identity of the task related to deactivation operation on the node.
26027	NodeDeactivationTaskID *NodeDeactivationTaskID `json:"NodeDeactivationTaskId,omitempty"`
26028	// 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'
26029	NodeDeactivationIntent NodeDeactivationIntent `json:"NodeDeactivationIntent,omitempty"`
26030}
26031
26032// NodeDeactivationTaskID identity of the task related to deactivation operation on the node.
26033type NodeDeactivationTaskID struct {
26034	// ID - Value of the task id.
26035	ID *string `json:"Id,omitempty"`
26036	// NodeDeactivationTaskType - The type of the task that performed the node deactivation. Following are the possible values. Possible values include: 'NodeDeactivationTaskTypeInvalid', 'NodeDeactivationTaskTypeInfrastructure', 'NodeDeactivationTaskTypeRepair', 'NodeDeactivationTaskTypeClient'
26037	NodeDeactivationTaskType NodeDeactivationTaskType `json:"NodeDeactivationTaskType,omitempty"`
26038}
26039
26040// NodeDownEvent node Down event.
26041type NodeDownEvent struct {
26042	// NodeInstance - Id of Node instance.
26043	NodeInstance *int64 `json:"NodeInstance,omitempty"`
26044	// LastNodeUpAt - Time when Node was last up.
26045	LastNodeUpAt *date.Time `json:"LastNodeUpAt,omitempty"`
26046	// NodeName - The name of a Service Fabric node.
26047	NodeName *string `json:"NodeName,omitempty"`
26048	// EventInstanceID - The identifier for the FabricEvent instance.
26049	EventInstanceID *uuid.UUID `json:"EventInstanceId,omitempty"`
26050	// Category - The category of event.
26051	Category *string `json:"Category,omitempty"`
26052	// TimeStamp - The time event was logged.
26053	TimeStamp *date.Time `json:"TimeStamp,omitempty"`
26054	// HasCorrelatedEvents - Shows there is existing related events available.
26055	HasCorrelatedEvents *bool `json:"HasCorrelatedEvents,omitempty"`
26056	// 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'
26057	Kind KindBasicFabricEvent `json:"Kind,omitempty"`
26058}
26059
26060// MarshalJSON is the custom marshaler for NodeDownEvent.
26061func (nde NodeDownEvent) MarshalJSON() ([]byte, error) {
26062	nde.Kind = KindNodeDown
26063	objectMap := make(map[string]interface{})
26064	if nde.NodeInstance != nil {
26065		objectMap["NodeInstance"] = nde.NodeInstance
26066	}
26067	if nde.LastNodeUpAt != nil {
26068		objectMap["LastNodeUpAt"] = nde.LastNodeUpAt
26069	}
26070	if nde.NodeName != nil {
26071		objectMap["NodeName"] = nde.NodeName
26072	}
26073	if nde.EventInstanceID != nil {
26074		objectMap["EventInstanceId"] = nde.EventInstanceID
26075	}
26076	if nde.Category != nil {
26077		objectMap["Category"] = nde.Category
26078	}
26079	if nde.TimeStamp != nil {
26080		objectMap["TimeStamp"] = nde.TimeStamp
26081	}
26082	if nde.HasCorrelatedEvents != nil {
26083		objectMap["HasCorrelatedEvents"] = nde.HasCorrelatedEvents
26084	}
26085	if nde.Kind != "" {
26086		objectMap["Kind"] = nde.Kind
26087	}
26088	return json.Marshal(objectMap)
26089}
26090
26091// AsApplicationEvent is the BasicFabricEvent implementation for NodeDownEvent.
26092func (nde NodeDownEvent) AsApplicationEvent() (*ApplicationEvent, bool) {
26093	return nil, false
26094}
26095
26096// AsBasicApplicationEvent is the BasicFabricEvent implementation for NodeDownEvent.
26097func (nde NodeDownEvent) AsBasicApplicationEvent() (BasicApplicationEvent, bool) {
26098	return nil, false
26099}
26100
26101// AsClusterEvent is the BasicFabricEvent implementation for NodeDownEvent.
26102func (nde NodeDownEvent) AsClusterEvent() (*ClusterEvent, bool) {
26103	return nil, false
26104}
26105
26106// AsBasicClusterEvent is the BasicFabricEvent implementation for NodeDownEvent.
26107func (nde NodeDownEvent) AsBasicClusterEvent() (BasicClusterEvent, bool) {
26108	return nil, false
26109}
26110
26111// AsContainerInstanceEvent is the BasicFabricEvent implementation for NodeDownEvent.
26112func (nde NodeDownEvent) AsContainerInstanceEvent() (*ContainerInstanceEvent, bool) {
26113	return nil, false
26114}
26115
26116// AsNodeEvent is the BasicFabricEvent implementation for NodeDownEvent.
26117func (nde NodeDownEvent) AsNodeEvent() (*NodeEvent, bool) {
26118	return nil, false
26119}
26120
26121// AsBasicNodeEvent is the BasicFabricEvent implementation for NodeDownEvent.
26122func (nde NodeDownEvent) AsBasicNodeEvent() (BasicNodeEvent, bool) {
26123	return &nde, true
26124}
26125
26126// AsPartitionAnalysisEvent is the BasicFabricEvent implementation for NodeDownEvent.
26127func (nde NodeDownEvent) AsPartitionAnalysisEvent() (*PartitionAnalysisEvent, bool) {
26128	return nil, false
26129}
26130
26131// AsBasicPartitionAnalysisEvent is the BasicFabricEvent implementation for NodeDownEvent.
26132func (nde NodeDownEvent) AsBasicPartitionAnalysisEvent() (BasicPartitionAnalysisEvent, bool) {
26133	return nil, false
26134}
26135
26136// AsPartitionEvent is the BasicFabricEvent implementation for NodeDownEvent.
26137func (nde NodeDownEvent) AsPartitionEvent() (*PartitionEvent, bool) {
26138	return nil, false
26139}
26140
26141// AsBasicPartitionEvent is the BasicFabricEvent implementation for NodeDownEvent.
26142func (nde NodeDownEvent) AsBasicPartitionEvent() (BasicPartitionEvent, bool) {
26143	return nil, false
26144}
26145
26146// AsReplicaEvent is the BasicFabricEvent implementation for NodeDownEvent.
26147func (nde NodeDownEvent) AsReplicaEvent() (*ReplicaEvent, bool) {
26148	return nil, false
26149}
26150
26151// AsBasicReplicaEvent is the BasicFabricEvent implementation for NodeDownEvent.
26152func (nde NodeDownEvent) AsBasicReplicaEvent() (BasicReplicaEvent, bool) {
26153	return nil, false
26154}
26155
26156// AsServiceEvent is the BasicFabricEvent implementation for NodeDownEvent.
26157func (nde NodeDownEvent) AsServiceEvent() (*ServiceEvent, bool) {
26158	return nil, false
26159}
26160
26161// AsBasicServiceEvent is the BasicFabricEvent implementation for NodeDownEvent.
26162func (nde NodeDownEvent) AsBasicServiceEvent() (BasicServiceEvent, bool) {
26163	return nil, false
26164}
26165
26166// AsApplicationCreatedEvent is the BasicFabricEvent implementation for NodeDownEvent.
26167func (nde NodeDownEvent) AsApplicationCreatedEvent() (*ApplicationCreatedEvent, bool) {
26168	return nil, false
26169}
26170
26171// AsApplicationDeletedEvent is the BasicFabricEvent implementation for NodeDownEvent.
26172func (nde NodeDownEvent) AsApplicationDeletedEvent() (*ApplicationDeletedEvent, bool) {
26173	return nil, false
26174}
26175
26176// AsApplicationNewHealthReportEvent is the BasicFabricEvent implementation for NodeDownEvent.
26177func (nde NodeDownEvent) AsApplicationNewHealthReportEvent() (*ApplicationNewHealthReportEvent, bool) {
26178	return nil, false
26179}
26180
26181// AsApplicationHealthReportExpiredEvent is the BasicFabricEvent implementation for NodeDownEvent.
26182func (nde NodeDownEvent) AsApplicationHealthReportExpiredEvent() (*ApplicationHealthReportExpiredEvent, bool) {
26183	return nil, false
26184}
26185
26186// AsApplicationUpgradeCompletedEvent is the BasicFabricEvent implementation for NodeDownEvent.
26187func (nde NodeDownEvent) AsApplicationUpgradeCompletedEvent() (*ApplicationUpgradeCompletedEvent, bool) {
26188	return nil, false
26189}
26190
26191// AsApplicationUpgradeDomainCompletedEvent is the BasicFabricEvent implementation for NodeDownEvent.
26192func (nde NodeDownEvent) AsApplicationUpgradeDomainCompletedEvent() (*ApplicationUpgradeDomainCompletedEvent, bool) {
26193	return nil, false
26194}
26195
26196// AsApplicationUpgradeRollbackCompletedEvent is the BasicFabricEvent implementation for NodeDownEvent.
26197func (nde NodeDownEvent) AsApplicationUpgradeRollbackCompletedEvent() (*ApplicationUpgradeRollbackCompletedEvent, bool) {
26198	return nil, false
26199}
26200
26201// AsApplicationUpgradeRollbackStartedEvent is the BasicFabricEvent implementation for NodeDownEvent.
26202func (nde NodeDownEvent) AsApplicationUpgradeRollbackStartedEvent() (*ApplicationUpgradeRollbackStartedEvent, bool) {
26203	return nil, false
26204}
26205
26206// AsApplicationUpgradeStartedEvent is the BasicFabricEvent implementation for NodeDownEvent.
26207func (nde NodeDownEvent) AsApplicationUpgradeStartedEvent() (*ApplicationUpgradeStartedEvent, bool) {
26208	return nil, false
26209}
26210
26211// AsDeployedApplicationNewHealthReportEvent is the BasicFabricEvent implementation for NodeDownEvent.
26212func (nde NodeDownEvent) AsDeployedApplicationNewHealthReportEvent() (*DeployedApplicationNewHealthReportEvent, bool) {
26213	return nil, false
26214}
26215
26216// AsDeployedApplicationHealthReportExpiredEvent is the BasicFabricEvent implementation for NodeDownEvent.
26217func (nde NodeDownEvent) AsDeployedApplicationHealthReportExpiredEvent() (*DeployedApplicationHealthReportExpiredEvent, bool) {
26218	return nil, false
26219}
26220
26221// AsApplicationProcessExitedEvent is the BasicFabricEvent implementation for NodeDownEvent.
26222func (nde NodeDownEvent) AsApplicationProcessExitedEvent() (*ApplicationProcessExitedEvent, bool) {
26223	return nil, false
26224}
26225
26226// AsApplicationContainerInstanceExitedEvent is the BasicFabricEvent implementation for NodeDownEvent.
26227func (nde NodeDownEvent) AsApplicationContainerInstanceExitedEvent() (*ApplicationContainerInstanceExitedEvent, bool) {
26228	return nil, false
26229}
26230
26231// AsNodeAbortedEvent is the BasicFabricEvent implementation for NodeDownEvent.
26232func (nde NodeDownEvent) AsNodeAbortedEvent() (*NodeAbortedEvent, bool) {
26233	return nil, false
26234}
26235
26236// AsNodeAddedToClusterEvent is the BasicFabricEvent implementation for NodeDownEvent.
26237func (nde NodeDownEvent) AsNodeAddedToClusterEvent() (*NodeAddedToClusterEvent, bool) {
26238	return nil, false
26239}
26240
26241// AsNodeClosedEvent is the BasicFabricEvent implementation for NodeDownEvent.
26242func (nde NodeDownEvent) AsNodeClosedEvent() (*NodeClosedEvent, bool) {
26243	return nil, false
26244}
26245
26246// AsNodeDeactivateCompletedEvent is the BasicFabricEvent implementation for NodeDownEvent.
26247func (nde NodeDownEvent) AsNodeDeactivateCompletedEvent() (*NodeDeactivateCompletedEvent, bool) {
26248	return nil, false
26249}
26250
26251// AsNodeDeactivateStartedEvent is the BasicFabricEvent implementation for NodeDownEvent.
26252func (nde NodeDownEvent) AsNodeDeactivateStartedEvent() (*NodeDeactivateStartedEvent, bool) {
26253	return nil, false
26254}
26255
26256// AsNodeDownEvent is the BasicFabricEvent implementation for NodeDownEvent.
26257func (nde NodeDownEvent) AsNodeDownEvent() (*NodeDownEvent, bool) {
26258	return &nde, true
26259}
26260
26261// AsNodeNewHealthReportEvent is the BasicFabricEvent implementation for NodeDownEvent.
26262func (nde NodeDownEvent) AsNodeNewHealthReportEvent() (*NodeNewHealthReportEvent, bool) {
26263	return nil, false
26264}
26265
26266// AsNodeHealthReportExpiredEvent is the BasicFabricEvent implementation for NodeDownEvent.
26267func (nde NodeDownEvent) AsNodeHealthReportExpiredEvent() (*NodeHealthReportExpiredEvent, bool) {
26268	return nil, false
26269}
26270
26271// AsNodeOpenSucceededEvent is the BasicFabricEvent implementation for NodeDownEvent.
26272func (nde NodeDownEvent) AsNodeOpenSucceededEvent() (*NodeOpenSucceededEvent, bool) {
26273	return nil, false
26274}
26275
26276// AsNodeOpenFailedEvent is the BasicFabricEvent implementation for NodeDownEvent.
26277func (nde NodeDownEvent) AsNodeOpenFailedEvent() (*NodeOpenFailedEvent, bool) {
26278	return nil, false
26279}
26280
26281// AsNodeRemovedFromClusterEvent is the BasicFabricEvent implementation for NodeDownEvent.
26282func (nde NodeDownEvent) AsNodeRemovedFromClusterEvent() (*NodeRemovedFromClusterEvent, bool) {
26283	return nil, false
26284}
26285
26286// AsNodeUpEvent is the BasicFabricEvent implementation for NodeDownEvent.
26287func (nde NodeDownEvent) AsNodeUpEvent() (*NodeUpEvent, bool) {
26288	return nil, false
26289}
26290
26291// AsPartitionNewHealthReportEvent is the BasicFabricEvent implementation for NodeDownEvent.
26292func (nde NodeDownEvent) AsPartitionNewHealthReportEvent() (*PartitionNewHealthReportEvent, bool) {
26293	return nil, false
26294}
26295
26296// AsPartitionHealthReportExpiredEvent is the BasicFabricEvent implementation for NodeDownEvent.
26297func (nde NodeDownEvent) AsPartitionHealthReportExpiredEvent() (*PartitionHealthReportExpiredEvent, bool) {
26298	return nil, false
26299}
26300
26301// AsPartitionReconfiguredEvent is the BasicFabricEvent implementation for NodeDownEvent.
26302func (nde NodeDownEvent) AsPartitionReconfiguredEvent() (*PartitionReconfiguredEvent, bool) {
26303	return nil, false
26304}
26305
26306// AsPartitionPrimaryMoveAnalysisEvent is the BasicFabricEvent implementation for NodeDownEvent.
26307func (nde NodeDownEvent) AsPartitionPrimaryMoveAnalysisEvent() (*PartitionPrimaryMoveAnalysisEvent, bool) {
26308	return nil, false
26309}
26310
26311// AsServiceCreatedEvent is the BasicFabricEvent implementation for NodeDownEvent.
26312func (nde NodeDownEvent) AsServiceCreatedEvent() (*ServiceCreatedEvent, bool) {
26313	return nil, false
26314}
26315
26316// AsServiceDeletedEvent is the BasicFabricEvent implementation for NodeDownEvent.
26317func (nde NodeDownEvent) AsServiceDeletedEvent() (*ServiceDeletedEvent, bool) {
26318	return nil, false
26319}
26320
26321// AsServiceNewHealthReportEvent is the BasicFabricEvent implementation for NodeDownEvent.
26322func (nde NodeDownEvent) AsServiceNewHealthReportEvent() (*ServiceNewHealthReportEvent, bool) {
26323	return nil, false
26324}
26325
26326// AsServiceHealthReportExpiredEvent is the BasicFabricEvent implementation for NodeDownEvent.
26327func (nde NodeDownEvent) AsServiceHealthReportExpiredEvent() (*ServiceHealthReportExpiredEvent, bool) {
26328	return nil, false
26329}
26330
26331// AsDeployedServicePackageNewHealthReportEvent is the BasicFabricEvent implementation for NodeDownEvent.
26332func (nde NodeDownEvent) AsDeployedServicePackageNewHealthReportEvent() (*DeployedServicePackageNewHealthReportEvent, bool) {
26333	return nil, false
26334}
26335
26336// AsDeployedServicePackageHealthReportExpiredEvent is the BasicFabricEvent implementation for NodeDownEvent.
26337func (nde NodeDownEvent) AsDeployedServicePackageHealthReportExpiredEvent() (*DeployedServicePackageHealthReportExpiredEvent, bool) {
26338	return nil, false
26339}
26340
26341// AsStatefulReplicaNewHealthReportEvent is the BasicFabricEvent implementation for NodeDownEvent.
26342func (nde NodeDownEvent) AsStatefulReplicaNewHealthReportEvent() (*StatefulReplicaNewHealthReportEvent, bool) {
26343	return nil, false
26344}
26345
26346// AsStatefulReplicaHealthReportExpiredEvent is the BasicFabricEvent implementation for NodeDownEvent.
26347func (nde NodeDownEvent) AsStatefulReplicaHealthReportExpiredEvent() (*StatefulReplicaHealthReportExpiredEvent, bool) {
26348	return nil, false
26349}
26350
26351// AsStatelessReplicaNewHealthReportEvent is the BasicFabricEvent implementation for NodeDownEvent.
26352func (nde NodeDownEvent) AsStatelessReplicaNewHealthReportEvent() (*StatelessReplicaNewHealthReportEvent, bool) {
26353	return nil, false
26354}
26355
26356// AsStatelessReplicaHealthReportExpiredEvent is the BasicFabricEvent implementation for NodeDownEvent.
26357func (nde NodeDownEvent) AsStatelessReplicaHealthReportExpiredEvent() (*StatelessReplicaHealthReportExpiredEvent, bool) {
26358	return nil, false
26359}
26360
26361// AsClusterNewHealthReportEvent is the BasicFabricEvent implementation for NodeDownEvent.
26362func (nde NodeDownEvent) AsClusterNewHealthReportEvent() (*ClusterNewHealthReportEvent, bool) {
26363	return nil, false
26364}
26365
26366// AsClusterHealthReportExpiredEvent is the BasicFabricEvent implementation for NodeDownEvent.
26367func (nde NodeDownEvent) AsClusterHealthReportExpiredEvent() (*ClusterHealthReportExpiredEvent, bool) {
26368	return nil, false
26369}
26370
26371// AsClusterUpgradeCompletedEvent is the BasicFabricEvent implementation for NodeDownEvent.
26372func (nde NodeDownEvent) AsClusterUpgradeCompletedEvent() (*ClusterUpgradeCompletedEvent, bool) {
26373	return nil, false
26374}
26375
26376// AsClusterUpgradeDomainCompletedEvent is the BasicFabricEvent implementation for NodeDownEvent.
26377func (nde NodeDownEvent) AsClusterUpgradeDomainCompletedEvent() (*ClusterUpgradeDomainCompletedEvent, bool) {
26378	return nil, false
26379}
26380
26381// AsClusterUpgradeRollbackCompletedEvent is the BasicFabricEvent implementation for NodeDownEvent.
26382func (nde NodeDownEvent) AsClusterUpgradeRollbackCompletedEvent() (*ClusterUpgradeRollbackCompletedEvent, bool) {
26383	return nil, false
26384}
26385
26386// AsClusterUpgradeRollbackStartedEvent is the BasicFabricEvent implementation for NodeDownEvent.
26387func (nde NodeDownEvent) AsClusterUpgradeRollbackStartedEvent() (*ClusterUpgradeRollbackStartedEvent, bool) {
26388	return nil, false
26389}
26390
26391// AsClusterUpgradeStartedEvent is the BasicFabricEvent implementation for NodeDownEvent.
26392func (nde NodeDownEvent) AsClusterUpgradeStartedEvent() (*ClusterUpgradeStartedEvent, bool) {
26393	return nil, false
26394}
26395
26396// AsChaosStoppedEvent is the BasicFabricEvent implementation for NodeDownEvent.
26397func (nde NodeDownEvent) AsChaosStoppedEvent() (*ChaosStoppedEvent, bool) {
26398	return nil, false
26399}
26400
26401// AsChaosStartedEvent is the BasicFabricEvent implementation for NodeDownEvent.
26402func (nde NodeDownEvent) AsChaosStartedEvent() (*ChaosStartedEvent, bool) {
26403	return nil, false
26404}
26405
26406// AsChaosCodePackageRestartScheduledEvent is the BasicFabricEvent implementation for NodeDownEvent.
26407func (nde NodeDownEvent) AsChaosCodePackageRestartScheduledEvent() (*ChaosCodePackageRestartScheduledEvent, bool) {
26408	return nil, false
26409}
26410
26411// AsChaosReplicaRemovalScheduledEvent is the BasicFabricEvent implementation for NodeDownEvent.
26412func (nde NodeDownEvent) AsChaosReplicaRemovalScheduledEvent() (*ChaosReplicaRemovalScheduledEvent, bool) {
26413	return nil, false
26414}
26415
26416// AsChaosPartitionSecondaryMoveScheduledEvent is the BasicFabricEvent implementation for NodeDownEvent.
26417func (nde NodeDownEvent) AsChaosPartitionSecondaryMoveScheduledEvent() (*ChaosPartitionSecondaryMoveScheduledEvent, bool) {
26418	return nil, false
26419}
26420
26421// AsChaosPartitionPrimaryMoveScheduledEvent is the BasicFabricEvent implementation for NodeDownEvent.
26422func (nde NodeDownEvent) AsChaosPartitionPrimaryMoveScheduledEvent() (*ChaosPartitionPrimaryMoveScheduledEvent, bool) {
26423	return nil, false
26424}
26425
26426// AsChaosReplicaRestartScheduledEvent is the BasicFabricEvent implementation for NodeDownEvent.
26427func (nde NodeDownEvent) AsChaosReplicaRestartScheduledEvent() (*ChaosReplicaRestartScheduledEvent, bool) {
26428	return nil, false
26429}
26430
26431// AsChaosNodeRestartScheduledEvent is the BasicFabricEvent implementation for NodeDownEvent.
26432func (nde NodeDownEvent) AsChaosNodeRestartScheduledEvent() (*ChaosNodeRestartScheduledEvent, bool) {
26433	return nil, false
26434}
26435
26436// AsFabricEvent is the BasicFabricEvent implementation for NodeDownEvent.
26437func (nde NodeDownEvent) AsFabricEvent() (*FabricEvent, bool) {
26438	return nil, false
26439}
26440
26441// AsBasicFabricEvent is the BasicFabricEvent implementation for NodeDownEvent.
26442func (nde NodeDownEvent) AsBasicFabricEvent() (BasicFabricEvent, bool) {
26443	return &nde, true
26444}
26445
26446// BasicNodeEvent represents the base for all Node Events.
26447type BasicNodeEvent interface {
26448	AsNodeAbortedEvent() (*NodeAbortedEvent, bool)
26449	AsNodeAddedToClusterEvent() (*NodeAddedToClusterEvent, bool)
26450	AsNodeClosedEvent() (*NodeClosedEvent, bool)
26451	AsNodeDeactivateCompletedEvent() (*NodeDeactivateCompletedEvent, bool)
26452	AsNodeDeactivateStartedEvent() (*NodeDeactivateStartedEvent, bool)
26453	AsNodeDownEvent() (*NodeDownEvent, bool)
26454	AsNodeNewHealthReportEvent() (*NodeNewHealthReportEvent, bool)
26455	AsNodeHealthReportExpiredEvent() (*NodeHealthReportExpiredEvent, bool)
26456	AsNodeOpenSucceededEvent() (*NodeOpenSucceededEvent, bool)
26457	AsNodeOpenFailedEvent() (*NodeOpenFailedEvent, bool)
26458	AsNodeRemovedFromClusterEvent() (*NodeRemovedFromClusterEvent, bool)
26459	AsNodeUpEvent() (*NodeUpEvent, bool)
26460	AsChaosNodeRestartScheduledEvent() (*ChaosNodeRestartScheduledEvent, bool)
26461	AsNodeEvent() (*NodeEvent, bool)
26462}
26463
26464// NodeEvent represents the base for all Node Events.
26465type NodeEvent struct {
26466	// NodeName - The name of a Service Fabric node.
26467	NodeName *string `json:"NodeName,omitempty"`
26468	// EventInstanceID - The identifier for the FabricEvent instance.
26469	EventInstanceID *uuid.UUID `json:"EventInstanceId,omitempty"`
26470	// Category - The category of event.
26471	Category *string `json:"Category,omitempty"`
26472	// TimeStamp - The time event was logged.
26473	TimeStamp *date.Time `json:"TimeStamp,omitempty"`
26474	// HasCorrelatedEvents - Shows there is existing related events available.
26475	HasCorrelatedEvents *bool `json:"HasCorrelatedEvents,omitempty"`
26476	// 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'
26477	Kind KindBasicFabricEvent `json:"Kind,omitempty"`
26478}
26479
26480func unmarshalBasicNodeEvent(body []byte) (BasicNodeEvent, error) {
26481	var m map[string]interface{}
26482	err := json.Unmarshal(body, &m)
26483	if err != nil {
26484		return nil, err
26485	}
26486
26487	switch m["Kind"] {
26488	case string(KindNodeAborted):
26489		var nae NodeAbortedEvent
26490		err := json.Unmarshal(body, &nae)
26491		return nae, err
26492	case string(KindNodeAddedToCluster):
26493		var natce NodeAddedToClusterEvent
26494		err := json.Unmarshal(body, &natce)
26495		return natce, err
26496	case string(KindNodeClosed):
26497		var nce NodeClosedEvent
26498		err := json.Unmarshal(body, &nce)
26499		return nce, err
26500	case string(KindNodeDeactivateCompleted):
26501		var ndce NodeDeactivateCompletedEvent
26502		err := json.Unmarshal(body, &ndce)
26503		return ndce, err
26504	case string(KindNodeDeactivateStarted):
26505		var ndse NodeDeactivateStartedEvent
26506		err := json.Unmarshal(body, &ndse)
26507		return ndse, err
26508	case string(KindNodeDown):
26509		var nde NodeDownEvent
26510		err := json.Unmarshal(body, &nde)
26511		return nde, err
26512	case string(KindNodeNewHealthReport):
26513		var nnhre NodeNewHealthReportEvent
26514		err := json.Unmarshal(body, &nnhre)
26515		return nnhre, err
26516	case string(KindNodeHealthReportExpired):
26517		var nhree NodeHealthReportExpiredEvent
26518		err := json.Unmarshal(body, &nhree)
26519		return nhree, err
26520	case string(KindNodeOpenSucceeded):
26521		var nose NodeOpenSucceededEvent
26522		err := json.Unmarshal(body, &nose)
26523		return nose, err
26524	case string(KindNodeOpenFailed):
26525		var nofe NodeOpenFailedEvent
26526		err := json.Unmarshal(body, &nofe)
26527		return nofe, err
26528	case string(KindNodeRemovedFromCluster):
26529		var nrfce NodeRemovedFromClusterEvent
26530		err := json.Unmarshal(body, &nrfce)
26531		return nrfce, err
26532	case string(KindNodeUp):
26533		var nue NodeUpEvent
26534		err := json.Unmarshal(body, &nue)
26535		return nue, err
26536	case string(KindChaosNodeRestartScheduled):
26537		var cnrse ChaosNodeRestartScheduledEvent
26538		err := json.Unmarshal(body, &cnrse)
26539		return cnrse, err
26540	default:
26541		var ne NodeEvent
26542		err := json.Unmarshal(body, &ne)
26543		return ne, err
26544	}
26545}
26546func unmarshalBasicNodeEventArray(body []byte) ([]BasicNodeEvent, error) {
26547	var rawMessages []*json.RawMessage
26548	err := json.Unmarshal(body, &rawMessages)
26549	if err != nil {
26550		return nil, err
26551	}
26552
26553	neArray := make([]BasicNodeEvent, len(rawMessages))
26554
26555	for index, rawMessage := range rawMessages {
26556		ne, err := unmarshalBasicNodeEvent(*rawMessage)
26557		if err != nil {
26558			return nil, err
26559		}
26560		neArray[index] = ne
26561	}
26562	return neArray, nil
26563}
26564
26565// MarshalJSON is the custom marshaler for NodeEvent.
26566func (ne NodeEvent) MarshalJSON() ([]byte, error) {
26567	ne.Kind = KindNodeEvent
26568	objectMap := make(map[string]interface{})
26569	if ne.NodeName != nil {
26570		objectMap["NodeName"] = ne.NodeName
26571	}
26572	if ne.EventInstanceID != nil {
26573		objectMap["EventInstanceId"] = ne.EventInstanceID
26574	}
26575	if ne.Category != nil {
26576		objectMap["Category"] = ne.Category
26577	}
26578	if ne.TimeStamp != nil {
26579		objectMap["TimeStamp"] = ne.TimeStamp
26580	}
26581	if ne.HasCorrelatedEvents != nil {
26582		objectMap["HasCorrelatedEvents"] = ne.HasCorrelatedEvents
26583	}
26584	if ne.Kind != "" {
26585		objectMap["Kind"] = ne.Kind
26586	}
26587	return json.Marshal(objectMap)
26588}
26589
26590// AsApplicationEvent is the BasicFabricEvent implementation for NodeEvent.
26591func (ne NodeEvent) AsApplicationEvent() (*ApplicationEvent, bool) {
26592	return nil, false
26593}
26594
26595// AsBasicApplicationEvent is the BasicFabricEvent implementation for NodeEvent.
26596func (ne NodeEvent) AsBasicApplicationEvent() (BasicApplicationEvent, bool) {
26597	return nil, false
26598}
26599
26600// AsClusterEvent is the BasicFabricEvent implementation for NodeEvent.
26601func (ne NodeEvent) AsClusterEvent() (*ClusterEvent, bool) {
26602	return nil, false
26603}
26604
26605// AsBasicClusterEvent is the BasicFabricEvent implementation for NodeEvent.
26606func (ne NodeEvent) AsBasicClusterEvent() (BasicClusterEvent, bool) {
26607	return nil, false
26608}
26609
26610// AsContainerInstanceEvent is the BasicFabricEvent implementation for NodeEvent.
26611func (ne NodeEvent) AsContainerInstanceEvent() (*ContainerInstanceEvent, bool) {
26612	return nil, false
26613}
26614
26615// AsNodeEvent is the BasicFabricEvent implementation for NodeEvent.
26616func (ne NodeEvent) AsNodeEvent() (*NodeEvent, bool) {
26617	return &ne, true
26618}
26619
26620// AsBasicNodeEvent is the BasicFabricEvent implementation for NodeEvent.
26621func (ne NodeEvent) AsBasicNodeEvent() (BasicNodeEvent, bool) {
26622	return &ne, true
26623}
26624
26625// AsPartitionAnalysisEvent is the BasicFabricEvent implementation for NodeEvent.
26626func (ne NodeEvent) AsPartitionAnalysisEvent() (*PartitionAnalysisEvent, bool) {
26627	return nil, false
26628}
26629
26630// AsBasicPartitionAnalysisEvent is the BasicFabricEvent implementation for NodeEvent.
26631func (ne NodeEvent) AsBasicPartitionAnalysisEvent() (BasicPartitionAnalysisEvent, bool) {
26632	return nil, false
26633}
26634
26635// AsPartitionEvent is the BasicFabricEvent implementation for NodeEvent.
26636func (ne NodeEvent) AsPartitionEvent() (*PartitionEvent, bool) {
26637	return nil, false
26638}
26639
26640// AsBasicPartitionEvent is the BasicFabricEvent implementation for NodeEvent.
26641func (ne NodeEvent) AsBasicPartitionEvent() (BasicPartitionEvent, bool) {
26642	return nil, false
26643}
26644
26645// AsReplicaEvent is the BasicFabricEvent implementation for NodeEvent.
26646func (ne NodeEvent) AsReplicaEvent() (*ReplicaEvent, bool) {
26647	return nil, false
26648}
26649
26650// AsBasicReplicaEvent is the BasicFabricEvent implementation for NodeEvent.
26651func (ne NodeEvent) AsBasicReplicaEvent() (BasicReplicaEvent, bool) {
26652	return nil, false
26653}
26654
26655// AsServiceEvent is the BasicFabricEvent implementation for NodeEvent.
26656func (ne NodeEvent) AsServiceEvent() (*ServiceEvent, bool) {
26657	return nil, false
26658}
26659
26660// AsBasicServiceEvent is the BasicFabricEvent implementation for NodeEvent.
26661func (ne NodeEvent) AsBasicServiceEvent() (BasicServiceEvent, bool) {
26662	return nil, false
26663}
26664
26665// AsApplicationCreatedEvent is the BasicFabricEvent implementation for NodeEvent.
26666func (ne NodeEvent) AsApplicationCreatedEvent() (*ApplicationCreatedEvent, bool) {
26667	return nil, false
26668}
26669
26670// AsApplicationDeletedEvent is the BasicFabricEvent implementation for NodeEvent.
26671func (ne NodeEvent) AsApplicationDeletedEvent() (*ApplicationDeletedEvent, bool) {
26672	return nil, false
26673}
26674
26675// AsApplicationNewHealthReportEvent is the BasicFabricEvent implementation for NodeEvent.
26676func (ne NodeEvent) AsApplicationNewHealthReportEvent() (*ApplicationNewHealthReportEvent, bool) {
26677	return nil, false
26678}
26679
26680// AsApplicationHealthReportExpiredEvent is the BasicFabricEvent implementation for NodeEvent.
26681func (ne NodeEvent) AsApplicationHealthReportExpiredEvent() (*ApplicationHealthReportExpiredEvent, bool) {
26682	return nil, false
26683}
26684
26685// AsApplicationUpgradeCompletedEvent is the BasicFabricEvent implementation for NodeEvent.
26686func (ne NodeEvent) AsApplicationUpgradeCompletedEvent() (*ApplicationUpgradeCompletedEvent, bool) {
26687	return nil, false
26688}
26689
26690// AsApplicationUpgradeDomainCompletedEvent is the BasicFabricEvent implementation for NodeEvent.
26691func (ne NodeEvent) AsApplicationUpgradeDomainCompletedEvent() (*ApplicationUpgradeDomainCompletedEvent, bool) {
26692	return nil, false
26693}
26694
26695// AsApplicationUpgradeRollbackCompletedEvent is the BasicFabricEvent implementation for NodeEvent.
26696func (ne NodeEvent) AsApplicationUpgradeRollbackCompletedEvent() (*ApplicationUpgradeRollbackCompletedEvent, bool) {
26697	return nil, false
26698}
26699
26700// AsApplicationUpgradeRollbackStartedEvent is the BasicFabricEvent implementation for NodeEvent.
26701func (ne NodeEvent) AsApplicationUpgradeRollbackStartedEvent() (*ApplicationUpgradeRollbackStartedEvent, bool) {
26702	return nil, false
26703}
26704
26705// AsApplicationUpgradeStartedEvent is the BasicFabricEvent implementation for NodeEvent.
26706func (ne NodeEvent) AsApplicationUpgradeStartedEvent() (*ApplicationUpgradeStartedEvent, bool) {
26707	return nil, false
26708}
26709
26710// AsDeployedApplicationNewHealthReportEvent is the BasicFabricEvent implementation for NodeEvent.
26711func (ne NodeEvent) AsDeployedApplicationNewHealthReportEvent() (*DeployedApplicationNewHealthReportEvent, bool) {
26712	return nil, false
26713}
26714
26715// AsDeployedApplicationHealthReportExpiredEvent is the BasicFabricEvent implementation for NodeEvent.
26716func (ne NodeEvent) AsDeployedApplicationHealthReportExpiredEvent() (*DeployedApplicationHealthReportExpiredEvent, bool) {
26717	return nil, false
26718}
26719
26720// AsApplicationProcessExitedEvent is the BasicFabricEvent implementation for NodeEvent.
26721func (ne NodeEvent) AsApplicationProcessExitedEvent() (*ApplicationProcessExitedEvent, bool) {
26722	return nil, false
26723}
26724
26725// AsApplicationContainerInstanceExitedEvent is the BasicFabricEvent implementation for NodeEvent.
26726func (ne NodeEvent) AsApplicationContainerInstanceExitedEvent() (*ApplicationContainerInstanceExitedEvent, bool) {
26727	return nil, false
26728}
26729
26730// AsNodeAbortedEvent is the BasicFabricEvent implementation for NodeEvent.
26731func (ne NodeEvent) AsNodeAbortedEvent() (*NodeAbortedEvent, bool) {
26732	return nil, false
26733}
26734
26735// AsNodeAddedToClusterEvent is the BasicFabricEvent implementation for NodeEvent.
26736func (ne NodeEvent) AsNodeAddedToClusterEvent() (*NodeAddedToClusterEvent, bool) {
26737	return nil, false
26738}
26739
26740// AsNodeClosedEvent is the BasicFabricEvent implementation for NodeEvent.
26741func (ne NodeEvent) AsNodeClosedEvent() (*NodeClosedEvent, bool) {
26742	return nil, false
26743}
26744
26745// AsNodeDeactivateCompletedEvent is the BasicFabricEvent implementation for NodeEvent.
26746func (ne NodeEvent) AsNodeDeactivateCompletedEvent() (*NodeDeactivateCompletedEvent, bool) {
26747	return nil, false
26748}
26749
26750// AsNodeDeactivateStartedEvent is the BasicFabricEvent implementation for NodeEvent.
26751func (ne NodeEvent) AsNodeDeactivateStartedEvent() (*NodeDeactivateStartedEvent, bool) {
26752	return nil, false
26753}
26754
26755// AsNodeDownEvent is the BasicFabricEvent implementation for NodeEvent.
26756func (ne NodeEvent) AsNodeDownEvent() (*NodeDownEvent, bool) {
26757	return nil, false
26758}
26759
26760// AsNodeNewHealthReportEvent is the BasicFabricEvent implementation for NodeEvent.
26761func (ne NodeEvent) AsNodeNewHealthReportEvent() (*NodeNewHealthReportEvent, bool) {
26762	return nil, false
26763}
26764
26765// AsNodeHealthReportExpiredEvent is the BasicFabricEvent implementation for NodeEvent.
26766func (ne NodeEvent) AsNodeHealthReportExpiredEvent() (*NodeHealthReportExpiredEvent, bool) {
26767	return nil, false
26768}
26769
26770// AsNodeOpenSucceededEvent is the BasicFabricEvent implementation for NodeEvent.
26771func (ne NodeEvent) AsNodeOpenSucceededEvent() (*NodeOpenSucceededEvent, bool) {
26772	return nil, false
26773}
26774
26775// AsNodeOpenFailedEvent is the BasicFabricEvent implementation for NodeEvent.
26776func (ne NodeEvent) AsNodeOpenFailedEvent() (*NodeOpenFailedEvent, bool) {
26777	return nil, false
26778}
26779
26780// AsNodeRemovedFromClusterEvent is the BasicFabricEvent implementation for NodeEvent.
26781func (ne NodeEvent) AsNodeRemovedFromClusterEvent() (*NodeRemovedFromClusterEvent, bool) {
26782	return nil, false
26783}
26784
26785// AsNodeUpEvent is the BasicFabricEvent implementation for NodeEvent.
26786func (ne NodeEvent) AsNodeUpEvent() (*NodeUpEvent, bool) {
26787	return nil, false
26788}
26789
26790// AsPartitionNewHealthReportEvent is the BasicFabricEvent implementation for NodeEvent.
26791func (ne NodeEvent) AsPartitionNewHealthReportEvent() (*PartitionNewHealthReportEvent, bool) {
26792	return nil, false
26793}
26794
26795// AsPartitionHealthReportExpiredEvent is the BasicFabricEvent implementation for NodeEvent.
26796func (ne NodeEvent) AsPartitionHealthReportExpiredEvent() (*PartitionHealthReportExpiredEvent, bool) {
26797	return nil, false
26798}
26799
26800// AsPartitionReconfiguredEvent is the BasicFabricEvent implementation for NodeEvent.
26801func (ne NodeEvent) AsPartitionReconfiguredEvent() (*PartitionReconfiguredEvent, bool) {
26802	return nil, false
26803}
26804
26805// AsPartitionPrimaryMoveAnalysisEvent is the BasicFabricEvent implementation for NodeEvent.
26806func (ne NodeEvent) AsPartitionPrimaryMoveAnalysisEvent() (*PartitionPrimaryMoveAnalysisEvent, bool) {
26807	return nil, false
26808}
26809
26810// AsServiceCreatedEvent is the BasicFabricEvent implementation for NodeEvent.
26811func (ne NodeEvent) AsServiceCreatedEvent() (*ServiceCreatedEvent, bool) {
26812	return nil, false
26813}
26814
26815// AsServiceDeletedEvent is the BasicFabricEvent implementation for NodeEvent.
26816func (ne NodeEvent) AsServiceDeletedEvent() (*ServiceDeletedEvent, bool) {
26817	return nil, false
26818}
26819
26820// AsServiceNewHealthReportEvent is the BasicFabricEvent implementation for NodeEvent.
26821func (ne NodeEvent) AsServiceNewHealthReportEvent() (*ServiceNewHealthReportEvent, bool) {
26822	return nil, false
26823}
26824
26825// AsServiceHealthReportExpiredEvent is the BasicFabricEvent implementation for NodeEvent.
26826func (ne NodeEvent) AsServiceHealthReportExpiredEvent() (*ServiceHealthReportExpiredEvent, bool) {
26827	return nil, false
26828}
26829
26830// AsDeployedServicePackageNewHealthReportEvent is the BasicFabricEvent implementation for NodeEvent.
26831func (ne NodeEvent) AsDeployedServicePackageNewHealthReportEvent() (*DeployedServicePackageNewHealthReportEvent, bool) {
26832	return nil, false
26833}
26834
26835// AsDeployedServicePackageHealthReportExpiredEvent is the BasicFabricEvent implementation for NodeEvent.
26836func (ne NodeEvent) AsDeployedServicePackageHealthReportExpiredEvent() (*DeployedServicePackageHealthReportExpiredEvent, bool) {
26837	return nil, false
26838}
26839
26840// AsStatefulReplicaNewHealthReportEvent is the BasicFabricEvent implementation for NodeEvent.
26841func (ne NodeEvent) AsStatefulReplicaNewHealthReportEvent() (*StatefulReplicaNewHealthReportEvent, bool) {
26842	return nil, false
26843}
26844
26845// AsStatefulReplicaHealthReportExpiredEvent is the BasicFabricEvent implementation for NodeEvent.
26846func (ne NodeEvent) AsStatefulReplicaHealthReportExpiredEvent() (*StatefulReplicaHealthReportExpiredEvent, bool) {
26847	return nil, false
26848}
26849
26850// AsStatelessReplicaNewHealthReportEvent is the BasicFabricEvent implementation for NodeEvent.
26851func (ne NodeEvent) AsStatelessReplicaNewHealthReportEvent() (*StatelessReplicaNewHealthReportEvent, bool) {
26852	return nil, false
26853}
26854
26855// AsStatelessReplicaHealthReportExpiredEvent is the BasicFabricEvent implementation for NodeEvent.
26856func (ne NodeEvent) AsStatelessReplicaHealthReportExpiredEvent() (*StatelessReplicaHealthReportExpiredEvent, bool) {
26857	return nil, false
26858}
26859
26860// AsClusterNewHealthReportEvent is the BasicFabricEvent implementation for NodeEvent.
26861func (ne NodeEvent) AsClusterNewHealthReportEvent() (*ClusterNewHealthReportEvent, bool) {
26862	return nil, false
26863}
26864
26865// AsClusterHealthReportExpiredEvent is the BasicFabricEvent implementation for NodeEvent.
26866func (ne NodeEvent) AsClusterHealthReportExpiredEvent() (*ClusterHealthReportExpiredEvent, bool) {
26867	return nil, false
26868}
26869
26870// AsClusterUpgradeCompletedEvent is the BasicFabricEvent implementation for NodeEvent.
26871func (ne NodeEvent) AsClusterUpgradeCompletedEvent() (*ClusterUpgradeCompletedEvent, bool) {
26872	return nil, false
26873}
26874
26875// AsClusterUpgradeDomainCompletedEvent is the BasicFabricEvent implementation for NodeEvent.
26876func (ne NodeEvent) AsClusterUpgradeDomainCompletedEvent() (*ClusterUpgradeDomainCompletedEvent, bool) {
26877	return nil, false
26878}
26879
26880// AsClusterUpgradeRollbackCompletedEvent is the BasicFabricEvent implementation for NodeEvent.
26881func (ne NodeEvent) AsClusterUpgradeRollbackCompletedEvent() (*ClusterUpgradeRollbackCompletedEvent, bool) {
26882	return nil, false
26883}
26884
26885// AsClusterUpgradeRollbackStartedEvent is the BasicFabricEvent implementation for NodeEvent.
26886func (ne NodeEvent) AsClusterUpgradeRollbackStartedEvent() (*ClusterUpgradeRollbackStartedEvent, bool) {
26887	return nil, false
26888}
26889
26890// AsClusterUpgradeStartedEvent is the BasicFabricEvent implementation for NodeEvent.
26891func (ne NodeEvent) AsClusterUpgradeStartedEvent() (*ClusterUpgradeStartedEvent, bool) {
26892	return nil, false
26893}
26894
26895// AsChaosStoppedEvent is the BasicFabricEvent implementation for NodeEvent.
26896func (ne NodeEvent) AsChaosStoppedEvent() (*ChaosStoppedEvent, bool) {
26897	return nil, false
26898}
26899
26900// AsChaosStartedEvent is the BasicFabricEvent implementation for NodeEvent.
26901func (ne NodeEvent) AsChaosStartedEvent() (*ChaosStartedEvent, bool) {
26902	return nil, false
26903}
26904
26905// AsChaosCodePackageRestartScheduledEvent is the BasicFabricEvent implementation for NodeEvent.
26906func (ne NodeEvent) AsChaosCodePackageRestartScheduledEvent() (*ChaosCodePackageRestartScheduledEvent, bool) {
26907	return nil, false
26908}
26909
26910// AsChaosReplicaRemovalScheduledEvent is the BasicFabricEvent implementation for NodeEvent.
26911func (ne NodeEvent) AsChaosReplicaRemovalScheduledEvent() (*ChaosReplicaRemovalScheduledEvent, bool) {
26912	return nil, false
26913}
26914
26915// AsChaosPartitionSecondaryMoveScheduledEvent is the BasicFabricEvent implementation for NodeEvent.
26916func (ne NodeEvent) AsChaosPartitionSecondaryMoveScheduledEvent() (*ChaosPartitionSecondaryMoveScheduledEvent, bool) {
26917	return nil, false
26918}
26919
26920// AsChaosPartitionPrimaryMoveScheduledEvent is the BasicFabricEvent implementation for NodeEvent.
26921func (ne NodeEvent) AsChaosPartitionPrimaryMoveScheduledEvent() (*ChaosPartitionPrimaryMoveScheduledEvent, bool) {
26922	return nil, false
26923}
26924
26925// AsChaosReplicaRestartScheduledEvent is the BasicFabricEvent implementation for NodeEvent.
26926func (ne NodeEvent) AsChaosReplicaRestartScheduledEvent() (*ChaosReplicaRestartScheduledEvent, bool) {
26927	return nil, false
26928}
26929
26930// AsChaosNodeRestartScheduledEvent is the BasicFabricEvent implementation for NodeEvent.
26931func (ne NodeEvent) AsChaosNodeRestartScheduledEvent() (*ChaosNodeRestartScheduledEvent, bool) {
26932	return nil, false
26933}
26934
26935// AsFabricEvent is the BasicFabricEvent implementation for NodeEvent.
26936func (ne NodeEvent) AsFabricEvent() (*FabricEvent, bool) {
26937	return nil, false
26938}
26939
26940// AsBasicFabricEvent is the BasicFabricEvent implementation for NodeEvent.
26941func (ne NodeEvent) AsBasicFabricEvent() (BasicFabricEvent, bool) {
26942	return &ne, true
26943}
26944
26945// NodeHealth information about the health of a Service Fabric node.
26946type NodeHealth struct {
26947	autorest.Response `json:"-"`
26948	// Name - Name of the node whose health information is described by this object.
26949	Name *string `json:"Name,omitempty"`
26950	// AggregatedHealthState - The HealthState representing the aggregated health state of the entity computed by Health Manager.
26951	// The health evaluation of the entity reflects all events reported on the entity and its children (if any).
26952	// The aggregation is done by applying the desired health policy. Possible values include: 'HealthStateInvalid', 'HealthStateOk', 'HealthStateWarning', 'HealthStateError', 'HealthStateUnknown'
26953	AggregatedHealthState HealthState `json:"AggregatedHealthState,omitempty"`
26954	// HealthEvents - The list of health events reported on the entity.
26955	HealthEvents *[]HealthEvent `json:"HealthEvents,omitempty"`
26956	// UnhealthyEvaluations - The unhealthy evaluations that show why the current aggregated health state was returned by Health Manager.
26957	UnhealthyEvaluations *[]HealthEvaluationWrapper `json:"UnhealthyEvaluations,omitempty"`
26958	// HealthStatistics - Shows the health statistics for all children types of the queried entity.
26959	HealthStatistics *HealthStatistics `json:"HealthStatistics,omitempty"`
26960}
26961
26962// NodeHealthEvaluation represents health evaluation for a node, containing information about the data and
26963// the algorithm used by health store to evaluate health. The evaluation is returned only when the
26964// aggregated health state is either Error or Warning.
26965type NodeHealthEvaluation struct {
26966	// NodeName - The name of a Service Fabric node.
26967	NodeName *string `json:"NodeName,omitempty"`
26968	// 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.
26969	UnhealthyEvaluations *[]HealthEvaluationWrapper `json:"UnhealthyEvaluations,omitempty"`
26970	// 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'
26971	AggregatedHealthState HealthState `json:"AggregatedHealthState,omitempty"`
26972	// Description - Description of the health evaluation, which represents a summary of the evaluation process.
26973	Description *string `json:"Description,omitempty"`
26974	// 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'
26975	Kind Kind `json:"Kind,omitempty"`
26976}
26977
26978// MarshalJSON is the custom marshaler for NodeHealthEvaluation.
26979func (nhe NodeHealthEvaluation) MarshalJSON() ([]byte, error) {
26980	nhe.Kind = KindNode
26981	objectMap := make(map[string]interface{})
26982	if nhe.NodeName != nil {
26983		objectMap["NodeName"] = nhe.NodeName
26984	}
26985	if nhe.UnhealthyEvaluations != nil {
26986		objectMap["UnhealthyEvaluations"] = nhe.UnhealthyEvaluations
26987	}
26988	if nhe.AggregatedHealthState != "" {
26989		objectMap["AggregatedHealthState"] = nhe.AggregatedHealthState
26990	}
26991	if nhe.Description != nil {
26992		objectMap["Description"] = nhe.Description
26993	}
26994	if nhe.Kind != "" {
26995		objectMap["Kind"] = nhe.Kind
26996	}
26997	return json.Marshal(objectMap)
26998}
26999
27000// AsApplicationHealthEvaluation is the BasicHealthEvaluation implementation for NodeHealthEvaluation.
27001func (nhe NodeHealthEvaluation) AsApplicationHealthEvaluation() (*ApplicationHealthEvaluation, bool) {
27002	return nil, false
27003}
27004
27005// AsApplicationsHealthEvaluation is the BasicHealthEvaluation implementation for NodeHealthEvaluation.
27006func (nhe NodeHealthEvaluation) AsApplicationsHealthEvaluation() (*ApplicationsHealthEvaluation, bool) {
27007	return nil, false
27008}
27009
27010// AsApplicationTypeApplicationsHealthEvaluation is the BasicHealthEvaluation implementation for NodeHealthEvaluation.
27011func (nhe NodeHealthEvaluation) AsApplicationTypeApplicationsHealthEvaluation() (*ApplicationTypeApplicationsHealthEvaluation, bool) {
27012	return nil, false
27013}
27014
27015// AsDeltaNodesCheckHealthEvaluation is the BasicHealthEvaluation implementation for NodeHealthEvaluation.
27016func (nhe NodeHealthEvaluation) AsDeltaNodesCheckHealthEvaluation() (*DeltaNodesCheckHealthEvaluation, bool) {
27017	return nil, false
27018}
27019
27020// AsDeployedApplicationHealthEvaluation is the BasicHealthEvaluation implementation for NodeHealthEvaluation.
27021func (nhe NodeHealthEvaluation) AsDeployedApplicationHealthEvaluation() (*DeployedApplicationHealthEvaluation, bool) {
27022	return nil, false
27023}
27024
27025// AsDeployedApplicationsHealthEvaluation is the BasicHealthEvaluation implementation for NodeHealthEvaluation.
27026func (nhe NodeHealthEvaluation) AsDeployedApplicationsHealthEvaluation() (*DeployedApplicationsHealthEvaluation, bool) {
27027	return nil, false
27028}
27029
27030// AsDeployedServicePackageHealthEvaluation is the BasicHealthEvaluation implementation for NodeHealthEvaluation.
27031func (nhe NodeHealthEvaluation) AsDeployedServicePackageHealthEvaluation() (*DeployedServicePackageHealthEvaluation, bool) {
27032	return nil, false
27033}
27034
27035// AsDeployedServicePackagesHealthEvaluation is the BasicHealthEvaluation implementation for NodeHealthEvaluation.
27036func (nhe NodeHealthEvaluation) AsDeployedServicePackagesHealthEvaluation() (*DeployedServicePackagesHealthEvaluation, bool) {
27037	return nil, false
27038}
27039
27040// AsEventHealthEvaluation is the BasicHealthEvaluation implementation for NodeHealthEvaluation.
27041func (nhe NodeHealthEvaluation) AsEventHealthEvaluation() (*EventHealthEvaluation, bool) {
27042	return nil, false
27043}
27044
27045// AsNodeHealthEvaluation is the BasicHealthEvaluation implementation for NodeHealthEvaluation.
27046func (nhe NodeHealthEvaluation) AsNodeHealthEvaluation() (*NodeHealthEvaluation, bool) {
27047	return &nhe, true
27048}
27049
27050// AsNodesHealthEvaluation is the BasicHealthEvaluation implementation for NodeHealthEvaluation.
27051func (nhe NodeHealthEvaluation) AsNodesHealthEvaluation() (*NodesHealthEvaluation, bool) {
27052	return nil, false
27053}
27054
27055// AsPartitionHealthEvaluation is the BasicHealthEvaluation implementation for NodeHealthEvaluation.
27056func (nhe NodeHealthEvaluation) AsPartitionHealthEvaluation() (*PartitionHealthEvaluation, bool) {
27057	return nil, false
27058}
27059
27060// AsPartitionsHealthEvaluation is the BasicHealthEvaluation implementation for NodeHealthEvaluation.
27061func (nhe NodeHealthEvaluation) AsPartitionsHealthEvaluation() (*PartitionsHealthEvaluation, bool) {
27062	return nil, false
27063}
27064
27065// AsReplicaHealthEvaluation is the BasicHealthEvaluation implementation for NodeHealthEvaluation.
27066func (nhe NodeHealthEvaluation) AsReplicaHealthEvaluation() (*ReplicaHealthEvaluation, bool) {
27067	return nil, false
27068}
27069
27070// AsReplicasHealthEvaluation is the BasicHealthEvaluation implementation for NodeHealthEvaluation.
27071func (nhe NodeHealthEvaluation) AsReplicasHealthEvaluation() (*ReplicasHealthEvaluation, bool) {
27072	return nil, false
27073}
27074
27075// AsServiceHealthEvaluation is the BasicHealthEvaluation implementation for NodeHealthEvaluation.
27076func (nhe NodeHealthEvaluation) AsServiceHealthEvaluation() (*ServiceHealthEvaluation, bool) {
27077	return nil, false
27078}
27079
27080// AsServicesHealthEvaluation is the BasicHealthEvaluation implementation for NodeHealthEvaluation.
27081func (nhe NodeHealthEvaluation) AsServicesHealthEvaluation() (*ServicesHealthEvaluation, bool) {
27082	return nil, false
27083}
27084
27085// AsSystemApplicationHealthEvaluation is the BasicHealthEvaluation implementation for NodeHealthEvaluation.
27086func (nhe NodeHealthEvaluation) AsSystemApplicationHealthEvaluation() (*SystemApplicationHealthEvaluation, bool) {
27087	return nil, false
27088}
27089
27090// AsUpgradeDomainDeltaNodesCheckHealthEvaluation is the BasicHealthEvaluation implementation for NodeHealthEvaluation.
27091func (nhe NodeHealthEvaluation) AsUpgradeDomainDeltaNodesCheckHealthEvaluation() (*UpgradeDomainDeltaNodesCheckHealthEvaluation, bool) {
27092	return nil, false
27093}
27094
27095// AsUpgradeDomainNodesHealthEvaluation is the BasicHealthEvaluation implementation for NodeHealthEvaluation.
27096func (nhe NodeHealthEvaluation) AsUpgradeDomainNodesHealthEvaluation() (*UpgradeDomainNodesHealthEvaluation, bool) {
27097	return nil, false
27098}
27099
27100// AsHealthEvaluation is the BasicHealthEvaluation implementation for NodeHealthEvaluation.
27101func (nhe NodeHealthEvaluation) AsHealthEvaluation() (*HealthEvaluation, bool) {
27102	return nil, false
27103}
27104
27105// AsBasicHealthEvaluation is the BasicHealthEvaluation implementation for NodeHealthEvaluation.
27106func (nhe NodeHealthEvaluation) AsBasicHealthEvaluation() (BasicHealthEvaluation, bool) {
27107	return &nhe, true
27108}
27109
27110// NodeHealthReportExpiredEvent node Health Report Expired event.
27111type NodeHealthReportExpiredEvent struct {
27112	// NodeInstanceID - Id of Node instance.
27113	NodeInstanceID *int64 `json:"NodeInstanceId,omitempty"`
27114	// SourceID - Id of report source.
27115	SourceID *string `json:"SourceId,omitempty"`
27116	// Property - Describes the property.
27117	Property *string `json:"Property,omitempty"`
27118	// HealthState - Describes the property health state.
27119	HealthState *string `json:"HealthState,omitempty"`
27120	// TimeToLiveMs - Time to live in milli-seconds.
27121	TimeToLiveMs *int64 `json:"TimeToLiveMs,omitempty"`
27122	// SequenceNumber - Sequence number of report.
27123	SequenceNumber *int64 `json:"SequenceNumber,omitempty"`
27124	// Description - Description of report.
27125	Description *string `json:"Description,omitempty"`
27126	// RemoveWhenExpired - Indicates the removal when it expires.
27127	RemoveWhenExpired *bool `json:"RemoveWhenExpired,omitempty"`
27128	// SourceUtcTimestamp - Source time.
27129	SourceUtcTimestamp *date.Time `json:"SourceUtcTimestamp,omitempty"`
27130	// NodeName - The name of a Service Fabric node.
27131	NodeName *string `json:"NodeName,omitempty"`
27132	// EventInstanceID - The identifier for the FabricEvent instance.
27133	EventInstanceID *uuid.UUID `json:"EventInstanceId,omitempty"`
27134	// Category - The category of event.
27135	Category *string `json:"Category,omitempty"`
27136	// TimeStamp - The time event was logged.
27137	TimeStamp *date.Time `json:"TimeStamp,omitempty"`
27138	// HasCorrelatedEvents - Shows there is existing related events available.
27139	HasCorrelatedEvents *bool `json:"HasCorrelatedEvents,omitempty"`
27140	// 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'
27141	Kind KindBasicFabricEvent `json:"Kind,omitempty"`
27142}
27143
27144// MarshalJSON is the custom marshaler for NodeHealthReportExpiredEvent.
27145func (nhree NodeHealthReportExpiredEvent) MarshalJSON() ([]byte, error) {
27146	nhree.Kind = KindNodeHealthReportExpired
27147	objectMap := make(map[string]interface{})
27148	if nhree.NodeInstanceID != nil {
27149		objectMap["NodeInstanceId"] = nhree.NodeInstanceID
27150	}
27151	if nhree.SourceID != nil {
27152		objectMap["SourceId"] = nhree.SourceID
27153	}
27154	if nhree.Property != nil {
27155		objectMap["Property"] = nhree.Property
27156	}
27157	if nhree.HealthState != nil {
27158		objectMap["HealthState"] = nhree.HealthState
27159	}
27160	if nhree.TimeToLiveMs != nil {
27161		objectMap["TimeToLiveMs"] = nhree.TimeToLiveMs
27162	}
27163	if nhree.SequenceNumber != nil {
27164		objectMap["SequenceNumber"] = nhree.SequenceNumber
27165	}
27166	if nhree.Description != nil {
27167		objectMap["Description"] = nhree.Description
27168	}
27169	if nhree.RemoveWhenExpired != nil {
27170		objectMap["RemoveWhenExpired"] = nhree.RemoveWhenExpired
27171	}
27172	if nhree.SourceUtcTimestamp != nil {
27173		objectMap["SourceUtcTimestamp"] = nhree.SourceUtcTimestamp
27174	}
27175	if nhree.NodeName != nil {
27176		objectMap["NodeName"] = nhree.NodeName
27177	}
27178	if nhree.EventInstanceID != nil {
27179		objectMap["EventInstanceId"] = nhree.EventInstanceID
27180	}
27181	if nhree.Category != nil {
27182		objectMap["Category"] = nhree.Category
27183	}
27184	if nhree.TimeStamp != nil {
27185		objectMap["TimeStamp"] = nhree.TimeStamp
27186	}
27187	if nhree.HasCorrelatedEvents != nil {
27188		objectMap["HasCorrelatedEvents"] = nhree.HasCorrelatedEvents
27189	}
27190	if nhree.Kind != "" {
27191		objectMap["Kind"] = nhree.Kind
27192	}
27193	return json.Marshal(objectMap)
27194}
27195
27196// AsApplicationEvent is the BasicFabricEvent implementation for NodeHealthReportExpiredEvent.
27197func (nhree NodeHealthReportExpiredEvent) AsApplicationEvent() (*ApplicationEvent, bool) {
27198	return nil, false
27199}
27200
27201// AsBasicApplicationEvent is the BasicFabricEvent implementation for NodeHealthReportExpiredEvent.
27202func (nhree NodeHealthReportExpiredEvent) AsBasicApplicationEvent() (BasicApplicationEvent, bool) {
27203	return nil, false
27204}
27205
27206// AsClusterEvent is the BasicFabricEvent implementation for NodeHealthReportExpiredEvent.
27207func (nhree NodeHealthReportExpiredEvent) AsClusterEvent() (*ClusterEvent, bool) {
27208	return nil, false
27209}
27210
27211// AsBasicClusterEvent is the BasicFabricEvent implementation for NodeHealthReportExpiredEvent.
27212func (nhree NodeHealthReportExpiredEvent) AsBasicClusterEvent() (BasicClusterEvent, bool) {
27213	return nil, false
27214}
27215
27216// AsContainerInstanceEvent is the BasicFabricEvent implementation for NodeHealthReportExpiredEvent.
27217func (nhree NodeHealthReportExpiredEvent) AsContainerInstanceEvent() (*ContainerInstanceEvent, bool) {
27218	return nil, false
27219}
27220
27221// AsNodeEvent is the BasicFabricEvent implementation for NodeHealthReportExpiredEvent.
27222func (nhree NodeHealthReportExpiredEvent) AsNodeEvent() (*NodeEvent, bool) {
27223	return nil, false
27224}
27225
27226// AsBasicNodeEvent is the BasicFabricEvent implementation for NodeHealthReportExpiredEvent.
27227func (nhree NodeHealthReportExpiredEvent) AsBasicNodeEvent() (BasicNodeEvent, bool) {
27228	return &nhree, true
27229}
27230
27231// AsPartitionAnalysisEvent is the BasicFabricEvent implementation for NodeHealthReportExpiredEvent.
27232func (nhree NodeHealthReportExpiredEvent) AsPartitionAnalysisEvent() (*PartitionAnalysisEvent, bool) {
27233	return nil, false
27234}
27235
27236// AsBasicPartitionAnalysisEvent is the BasicFabricEvent implementation for NodeHealthReportExpiredEvent.
27237func (nhree NodeHealthReportExpiredEvent) AsBasicPartitionAnalysisEvent() (BasicPartitionAnalysisEvent, bool) {
27238	return nil, false
27239}
27240
27241// AsPartitionEvent is the BasicFabricEvent implementation for NodeHealthReportExpiredEvent.
27242func (nhree NodeHealthReportExpiredEvent) AsPartitionEvent() (*PartitionEvent, bool) {
27243	return nil, false
27244}
27245
27246// AsBasicPartitionEvent is the BasicFabricEvent implementation for NodeHealthReportExpiredEvent.
27247func (nhree NodeHealthReportExpiredEvent) AsBasicPartitionEvent() (BasicPartitionEvent, bool) {
27248	return nil, false
27249}
27250
27251// AsReplicaEvent is the BasicFabricEvent implementation for NodeHealthReportExpiredEvent.
27252func (nhree NodeHealthReportExpiredEvent) AsReplicaEvent() (*ReplicaEvent, bool) {
27253	return nil, false
27254}
27255
27256// AsBasicReplicaEvent is the BasicFabricEvent implementation for NodeHealthReportExpiredEvent.
27257func (nhree NodeHealthReportExpiredEvent) AsBasicReplicaEvent() (BasicReplicaEvent, bool) {
27258	return nil, false
27259}
27260
27261// AsServiceEvent is the BasicFabricEvent implementation for NodeHealthReportExpiredEvent.
27262func (nhree NodeHealthReportExpiredEvent) AsServiceEvent() (*ServiceEvent, bool) {
27263	return nil, false
27264}
27265
27266// AsBasicServiceEvent is the BasicFabricEvent implementation for NodeHealthReportExpiredEvent.
27267func (nhree NodeHealthReportExpiredEvent) AsBasicServiceEvent() (BasicServiceEvent, bool) {
27268	return nil, false
27269}
27270
27271// AsApplicationCreatedEvent is the BasicFabricEvent implementation for NodeHealthReportExpiredEvent.
27272func (nhree NodeHealthReportExpiredEvent) AsApplicationCreatedEvent() (*ApplicationCreatedEvent, bool) {
27273	return nil, false
27274}
27275
27276// AsApplicationDeletedEvent is the BasicFabricEvent implementation for NodeHealthReportExpiredEvent.
27277func (nhree NodeHealthReportExpiredEvent) AsApplicationDeletedEvent() (*ApplicationDeletedEvent, bool) {
27278	return nil, false
27279}
27280
27281// AsApplicationNewHealthReportEvent is the BasicFabricEvent implementation for NodeHealthReportExpiredEvent.
27282func (nhree NodeHealthReportExpiredEvent) AsApplicationNewHealthReportEvent() (*ApplicationNewHealthReportEvent, bool) {
27283	return nil, false
27284}
27285
27286// AsApplicationHealthReportExpiredEvent is the BasicFabricEvent implementation for NodeHealthReportExpiredEvent.
27287func (nhree NodeHealthReportExpiredEvent) AsApplicationHealthReportExpiredEvent() (*ApplicationHealthReportExpiredEvent, bool) {
27288	return nil, false
27289}
27290
27291// AsApplicationUpgradeCompletedEvent is the BasicFabricEvent implementation for NodeHealthReportExpiredEvent.
27292func (nhree NodeHealthReportExpiredEvent) AsApplicationUpgradeCompletedEvent() (*ApplicationUpgradeCompletedEvent, bool) {
27293	return nil, false
27294}
27295
27296// AsApplicationUpgradeDomainCompletedEvent is the BasicFabricEvent implementation for NodeHealthReportExpiredEvent.
27297func (nhree NodeHealthReportExpiredEvent) AsApplicationUpgradeDomainCompletedEvent() (*ApplicationUpgradeDomainCompletedEvent, bool) {
27298	return nil, false
27299}
27300
27301// AsApplicationUpgradeRollbackCompletedEvent is the BasicFabricEvent implementation for NodeHealthReportExpiredEvent.
27302func (nhree NodeHealthReportExpiredEvent) AsApplicationUpgradeRollbackCompletedEvent() (*ApplicationUpgradeRollbackCompletedEvent, bool) {
27303	return nil, false
27304}
27305
27306// AsApplicationUpgradeRollbackStartedEvent is the BasicFabricEvent implementation for NodeHealthReportExpiredEvent.
27307func (nhree NodeHealthReportExpiredEvent) AsApplicationUpgradeRollbackStartedEvent() (*ApplicationUpgradeRollbackStartedEvent, bool) {
27308	return nil, false
27309}
27310
27311// AsApplicationUpgradeStartedEvent is the BasicFabricEvent implementation for NodeHealthReportExpiredEvent.
27312func (nhree NodeHealthReportExpiredEvent) AsApplicationUpgradeStartedEvent() (*ApplicationUpgradeStartedEvent, bool) {
27313	return nil, false
27314}
27315
27316// AsDeployedApplicationNewHealthReportEvent is the BasicFabricEvent implementation for NodeHealthReportExpiredEvent.
27317func (nhree NodeHealthReportExpiredEvent) AsDeployedApplicationNewHealthReportEvent() (*DeployedApplicationNewHealthReportEvent, bool) {
27318	return nil, false
27319}
27320
27321// AsDeployedApplicationHealthReportExpiredEvent is the BasicFabricEvent implementation for NodeHealthReportExpiredEvent.
27322func (nhree NodeHealthReportExpiredEvent) AsDeployedApplicationHealthReportExpiredEvent() (*DeployedApplicationHealthReportExpiredEvent, bool) {
27323	return nil, false
27324}
27325
27326// AsApplicationProcessExitedEvent is the BasicFabricEvent implementation for NodeHealthReportExpiredEvent.
27327func (nhree NodeHealthReportExpiredEvent) AsApplicationProcessExitedEvent() (*ApplicationProcessExitedEvent, bool) {
27328	return nil, false
27329}
27330
27331// AsApplicationContainerInstanceExitedEvent is the BasicFabricEvent implementation for NodeHealthReportExpiredEvent.
27332func (nhree NodeHealthReportExpiredEvent) AsApplicationContainerInstanceExitedEvent() (*ApplicationContainerInstanceExitedEvent, bool) {
27333	return nil, false
27334}
27335
27336// AsNodeAbortedEvent is the BasicFabricEvent implementation for NodeHealthReportExpiredEvent.
27337func (nhree NodeHealthReportExpiredEvent) AsNodeAbortedEvent() (*NodeAbortedEvent, bool) {
27338	return nil, false
27339}
27340
27341// AsNodeAddedToClusterEvent is the BasicFabricEvent implementation for NodeHealthReportExpiredEvent.
27342func (nhree NodeHealthReportExpiredEvent) AsNodeAddedToClusterEvent() (*NodeAddedToClusterEvent, bool) {
27343	return nil, false
27344}
27345
27346// AsNodeClosedEvent is the BasicFabricEvent implementation for NodeHealthReportExpiredEvent.
27347func (nhree NodeHealthReportExpiredEvent) AsNodeClosedEvent() (*NodeClosedEvent, bool) {
27348	return nil, false
27349}
27350
27351// AsNodeDeactivateCompletedEvent is the BasicFabricEvent implementation for NodeHealthReportExpiredEvent.
27352func (nhree NodeHealthReportExpiredEvent) AsNodeDeactivateCompletedEvent() (*NodeDeactivateCompletedEvent, bool) {
27353	return nil, false
27354}
27355
27356// AsNodeDeactivateStartedEvent is the BasicFabricEvent implementation for NodeHealthReportExpiredEvent.
27357func (nhree NodeHealthReportExpiredEvent) AsNodeDeactivateStartedEvent() (*NodeDeactivateStartedEvent, bool) {
27358	return nil, false
27359}
27360
27361// AsNodeDownEvent is the BasicFabricEvent implementation for NodeHealthReportExpiredEvent.
27362func (nhree NodeHealthReportExpiredEvent) AsNodeDownEvent() (*NodeDownEvent, bool) {
27363	return nil, false
27364}
27365
27366// AsNodeNewHealthReportEvent is the BasicFabricEvent implementation for NodeHealthReportExpiredEvent.
27367func (nhree NodeHealthReportExpiredEvent) AsNodeNewHealthReportEvent() (*NodeNewHealthReportEvent, bool) {
27368	return nil, false
27369}
27370
27371// AsNodeHealthReportExpiredEvent is the BasicFabricEvent implementation for NodeHealthReportExpiredEvent.
27372func (nhree NodeHealthReportExpiredEvent) AsNodeHealthReportExpiredEvent() (*NodeHealthReportExpiredEvent, bool) {
27373	return &nhree, true
27374}
27375
27376// AsNodeOpenSucceededEvent is the BasicFabricEvent implementation for NodeHealthReportExpiredEvent.
27377func (nhree NodeHealthReportExpiredEvent) AsNodeOpenSucceededEvent() (*NodeOpenSucceededEvent, bool) {
27378	return nil, false
27379}
27380
27381// AsNodeOpenFailedEvent is the BasicFabricEvent implementation for NodeHealthReportExpiredEvent.
27382func (nhree NodeHealthReportExpiredEvent) AsNodeOpenFailedEvent() (*NodeOpenFailedEvent, bool) {
27383	return nil, false
27384}
27385
27386// AsNodeRemovedFromClusterEvent is the BasicFabricEvent implementation for NodeHealthReportExpiredEvent.
27387func (nhree NodeHealthReportExpiredEvent) AsNodeRemovedFromClusterEvent() (*NodeRemovedFromClusterEvent, bool) {
27388	return nil, false
27389}
27390
27391// AsNodeUpEvent is the BasicFabricEvent implementation for NodeHealthReportExpiredEvent.
27392func (nhree NodeHealthReportExpiredEvent) AsNodeUpEvent() (*NodeUpEvent, bool) {
27393	return nil, false
27394}
27395
27396// AsPartitionNewHealthReportEvent is the BasicFabricEvent implementation for NodeHealthReportExpiredEvent.
27397func (nhree NodeHealthReportExpiredEvent) AsPartitionNewHealthReportEvent() (*PartitionNewHealthReportEvent, bool) {
27398	return nil, false
27399}
27400
27401// AsPartitionHealthReportExpiredEvent is the BasicFabricEvent implementation for NodeHealthReportExpiredEvent.
27402func (nhree NodeHealthReportExpiredEvent) AsPartitionHealthReportExpiredEvent() (*PartitionHealthReportExpiredEvent, bool) {
27403	return nil, false
27404}
27405
27406// AsPartitionReconfiguredEvent is the BasicFabricEvent implementation for NodeHealthReportExpiredEvent.
27407func (nhree NodeHealthReportExpiredEvent) AsPartitionReconfiguredEvent() (*PartitionReconfiguredEvent, bool) {
27408	return nil, false
27409}
27410
27411// AsPartitionPrimaryMoveAnalysisEvent is the BasicFabricEvent implementation for NodeHealthReportExpiredEvent.
27412func (nhree NodeHealthReportExpiredEvent) AsPartitionPrimaryMoveAnalysisEvent() (*PartitionPrimaryMoveAnalysisEvent, bool) {
27413	return nil, false
27414}
27415
27416// AsServiceCreatedEvent is the BasicFabricEvent implementation for NodeHealthReportExpiredEvent.
27417func (nhree NodeHealthReportExpiredEvent) AsServiceCreatedEvent() (*ServiceCreatedEvent, bool) {
27418	return nil, false
27419}
27420
27421// AsServiceDeletedEvent is the BasicFabricEvent implementation for NodeHealthReportExpiredEvent.
27422func (nhree NodeHealthReportExpiredEvent) AsServiceDeletedEvent() (*ServiceDeletedEvent, bool) {
27423	return nil, false
27424}
27425
27426// AsServiceNewHealthReportEvent is the BasicFabricEvent implementation for NodeHealthReportExpiredEvent.
27427func (nhree NodeHealthReportExpiredEvent) AsServiceNewHealthReportEvent() (*ServiceNewHealthReportEvent, bool) {
27428	return nil, false
27429}
27430
27431// AsServiceHealthReportExpiredEvent is the BasicFabricEvent implementation for NodeHealthReportExpiredEvent.
27432func (nhree NodeHealthReportExpiredEvent) AsServiceHealthReportExpiredEvent() (*ServiceHealthReportExpiredEvent, bool) {
27433	return nil, false
27434}
27435
27436// AsDeployedServicePackageNewHealthReportEvent is the BasicFabricEvent implementation for NodeHealthReportExpiredEvent.
27437func (nhree NodeHealthReportExpiredEvent) AsDeployedServicePackageNewHealthReportEvent() (*DeployedServicePackageNewHealthReportEvent, bool) {
27438	return nil, false
27439}
27440
27441// AsDeployedServicePackageHealthReportExpiredEvent is the BasicFabricEvent implementation for NodeHealthReportExpiredEvent.
27442func (nhree NodeHealthReportExpiredEvent) AsDeployedServicePackageHealthReportExpiredEvent() (*DeployedServicePackageHealthReportExpiredEvent, bool) {
27443	return nil, false
27444}
27445
27446// AsStatefulReplicaNewHealthReportEvent is the BasicFabricEvent implementation for NodeHealthReportExpiredEvent.
27447func (nhree NodeHealthReportExpiredEvent) AsStatefulReplicaNewHealthReportEvent() (*StatefulReplicaNewHealthReportEvent, bool) {
27448	return nil, false
27449}
27450
27451// AsStatefulReplicaHealthReportExpiredEvent is the BasicFabricEvent implementation for NodeHealthReportExpiredEvent.
27452func (nhree NodeHealthReportExpiredEvent) AsStatefulReplicaHealthReportExpiredEvent() (*StatefulReplicaHealthReportExpiredEvent, bool) {
27453	return nil, false
27454}
27455
27456// AsStatelessReplicaNewHealthReportEvent is the BasicFabricEvent implementation for NodeHealthReportExpiredEvent.
27457func (nhree NodeHealthReportExpiredEvent) AsStatelessReplicaNewHealthReportEvent() (*StatelessReplicaNewHealthReportEvent, bool) {
27458	return nil, false
27459}
27460
27461// AsStatelessReplicaHealthReportExpiredEvent is the BasicFabricEvent implementation for NodeHealthReportExpiredEvent.
27462func (nhree NodeHealthReportExpiredEvent) AsStatelessReplicaHealthReportExpiredEvent() (*StatelessReplicaHealthReportExpiredEvent, bool) {
27463	return nil, false
27464}
27465
27466// AsClusterNewHealthReportEvent is the BasicFabricEvent implementation for NodeHealthReportExpiredEvent.
27467func (nhree NodeHealthReportExpiredEvent) AsClusterNewHealthReportEvent() (*ClusterNewHealthReportEvent, bool) {
27468	return nil, false
27469}
27470
27471// AsClusterHealthReportExpiredEvent is the BasicFabricEvent implementation for NodeHealthReportExpiredEvent.
27472func (nhree NodeHealthReportExpiredEvent) AsClusterHealthReportExpiredEvent() (*ClusterHealthReportExpiredEvent, bool) {
27473	return nil, false
27474}
27475
27476// AsClusterUpgradeCompletedEvent is the BasicFabricEvent implementation for NodeHealthReportExpiredEvent.
27477func (nhree NodeHealthReportExpiredEvent) AsClusterUpgradeCompletedEvent() (*ClusterUpgradeCompletedEvent, bool) {
27478	return nil, false
27479}
27480
27481// AsClusterUpgradeDomainCompletedEvent is the BasicFabricEvent implementation for NodeHealthReportExpiredEvent.
27482func (nhree NodeHealthReportExpiredEvent) AsClusterUpgradeDomainCompletedEvent() (*ClusterUpgradeDomainCompletedEvent, bool) {
27483	return nil, false
27484}
27485
27486// AsClusterUpgradeRollbackCompletedEvent is the BasicFabricEvent implementation for NodeHealthReportExpiredEvent.
27487func (nhree NodeHealthReportExpiredEvent) AsClusterUpgradeRollbackCompletedEvent() (*ClusterUpgradeRollbackCompletedEvent, bool) {
27488	return nil, false
27489}
27490
27491// AsClusterUpgradeRollbackStartedEvent is the BasicFabricEvent implementation for NodeHealthReportExpiredEvent.
27492func (nhree NodeHealthReportExpiredEvent) AsClusterUpgradeRollbackStartedEvent() (*ClusterUpgradeRollbackStartedEvent, bool) {
27493	return nil, false
27494}
27495
27496// AsClusterUpgradeStartedEvent is the BasicFabricEvent implementation for NodeHealthReportExpiredEvent.
27497func (nhree NodeHealthReportExpiredEvent) AsClusterUpgradeStartedEvent() (*ClusterUpgradeStartedEvent, bool) {
27498	return nil, false
27499}
27500
27501// AsChaosStoppedEvent is the BasicFabricEvent implementation for NodeHealthReportExpiredEvent.
27502func (nhree NodeHealthReportExpiredEvent) AsChaosStoppedEvent() (*ChaosStoppedEvent, bool) {
27503	return nil, false
27504}
27505
27506// AsChaosStartedEvent is the BasicFabricEvent implementation for NodeHealthReportExpiredEvent.
27507func (nhree NodeHealthReportExpiredEvent) AsChaosStartedEvent() (*ChaosStartedEvent, bool) {
27508	return nil, false
27509}
27510
27511// AsChaosCodePackageRestartScheduledEvent is the BasicFabricEvent implementation for NodeHealthReportExpiredEvent.
27512func (nhree NodeHealthReportExpiredEvent) AsChaosCodePackageRestartScheduledEvent() (*ChaosCodePackageRestartScheduledEvent, bool) {
27513	return nil, false
27514}
27515
27516// AsChaosReplicaRemovalScheduledEvent is the BasicFabricEvent implementation for NodeHealthReportExpiredEvent.
27517func (nhree NodeHealthReportExpiredEvent) AsChaosReplicaRemovalScheduledEvent() (*ChaosReplicaRemovalScheduledEvent, bool) {
27518	return nil, false
27519}
27520
27521// AsChaosPartitionSecondaryMoveScheduledEvent is the BasicFabricEvent implementation for NodeHealthReportExpiredEvent.
27522func (nhree NodeHealthReportExpiredEvent) AsChaosPartitionSecondaryMoveScheduledEvent() (*ChaosPartitionSecondaryMoveScheduledEvent, bool) {
27523	return nil, false
27524}
27525
27526// AsChaosPartitionPrimaryMoveScheduledEvent is the BasicFabricEvent implementation for NodeHealthReportExpiredEvent.
27527func (nhree NodeHealthReportExpiredEvent) AsChaosPartitionPrimaryMoveScheduledEvent() (*ChaosPartitionPrimaryMoveScheduledEvent, bool) {
27528	return nil, false
27529}
27530
27531// AsChaosReplicaRestartScheduledEvent is the BasicFabricEvent implementation for NodeHealthReportExpiredEvent.
27532func (nhree NodeHealthReportExpiredEvent) AsChaosReplicaRestartScheduledEvent() (*ChaosReplicaRestartScheduledEvent, bool) {
27533	return nil, false
27534}
27535
27536// AsChaosNodeRestartScheduledEvent is the BasicFabricEvent implementation for NodeHealthReportExpiredEvent.
27537func (nhree NodeHealthReportExpiredEvent) AsChaosNodeRestartScheduledEvent() (*ChaosNodeRestartScheduledEvent, bool) {
27538	return nil, false
27539}
27540
27541// AsFabricEvent is the BasicFabricEvent implementation for NodeHealthReportExpiredEvent.
27542func (nhree NodeHealthReportExpiredEvent) AsFabricEvent() (*FabricEvent, bool) {
27543	return nil, false
27544}
27545
27546// AsBasicFabricEvent is the BasicFabricEvent implementation for NodeHealthReportExpiredEvent.
27547func (nhree NodeHealthReportExpiredEvent) AsBasicFabricEvent() (BasicFabricEvent, bool) {
27548	return &nhree, true
27549}
27550
27551// NodeHealthState represents the health state of a node, which contains the node identifier and its
27552// aggregated health state.
27553type NodeHealthState struct {
27554	// Name - The name of a Service Fabric node.
27555	Name *string `json:"Name,omitempty"`
27556	// ID - An internal ID used by Service Fabric to uniquely identify a node. Node Id is deterministically generated from node name.
27557	ID *NodeID `json:"Id,omitempty"`
27558	// 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'
27559	AggregatedHealthState HealthState `json:"AggregatedHealthState,omitempty"`
27560}
27561
27562// NodeHealthStateChunk represents the health state chunk of a node, which contains the node name and its
27563// aggregated health state.
27564type NodeHealthStateChunk struct {
27565	// NodeName - The name of a Service Fabric node.
27566	NodeName *string `json:"NodeName,omitempty"`
27567	// 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'
27568	HealthState HealthState `json:"HealthState,omitempty"`
27569}
27570
27571// NodeHealthStateChunkList the list of node health state chunks in the cluster that respect the input
27572// filters in the chunk query. Returned by get cluster health state chunks query.
27573type NodeHealthStateChunkList struct {
27574	// Items - The list of node health state chunks that respect the input filters in the chunk query.
27575	Items *[]NodeHealthStateChunk `json:"Items,omitempty"`
27576	// TotalCount - Total number of entity health state objects that match the specified filters from the cluster health chunk query description.
27577	TotalCount *int64 `json:"TotalCount,omitempty"`
27578}
27579
27580// NodeHealthStateFilter defines matching criteria to determine whether a node should be included in the
27581// returned cluster health chunk.
27582// One filter can match zero, one or multiple nodes, depending on its properties.
27583// Can be specified in the cluster health chunk query description.
27584type NodeHealthStateFilter struct {
27585	// NodeNameFilter - Name of the node that matches the filter. The filter is applied only to the specified node, if it exists.
27586	// If the node doesn't exist, no node is returned in the cluster health chunk based on this filter.
27587	// If the node exists, it is included in the cluster health chunk if the health state matches the other filter properties.
27588	// 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.
27589	NodeNameFilter *string `json:"NodeNameFilter,omitempty"`
27590	// HealthStateFilter - The filter for the health state of the nodes. It allows selecting nodes if they match the desired health states.
27591	// 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.
27592	// 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.
27593	// The state values are flag-based enumeration, so the value could be a combination of these values obtained using bitwise 'OR' operator.
27594	// For example, if the provided value is 6, it matches nodes with HealthState value of OK (2) and Warning (4).
27595	// - Default - Default value. Matches any HealthState. The value is zero.
27596	// - 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.
27597	// - Ok - Filter that matches input with HealthState value Ok. The value is 2.
27598	// - Warning - Filter that matches input with HealthState value Warning. The value is 4.
27599	// - Error - Filter that matches input with HealthState value Error. The value is 8.
27600	// - All - Filter that matches input with any HealthState value. The value is 65535.
27601	HealthStateFilter *int32 `json:"HealthStateFilter,omitempty"`
27602}
27603
27604// NodeID an internal ID used by Service Fabric to uniquely identify a node. Node Id is deterministically
27605// generated from node name.
27606type NodeID struct {
27607	// ID - Value of the node Id. This is a 128 bit integer.
27608	ID *string `json:"Id,omitempty"`
27609}
27610
27611// NodeImpact describes the expected impact of a repair to a particular node.
27612//
27613// This type supports the Service Fabric platform; it is not meant to be used directly from your code.
27614type NodeImpact struct {
27615	// NodeName - The name of the impacted node.
27616	NodeName *string `json:"NodeName,omitempty"`
27617	// ImpactLevel - The level of impact expected. Possible values include: 'ImpactLevelInvalid', 'ImpactLevelNone', 'ImpactLevelRestart', 'ImpactLevelRemoveData', 'ImpactLevelRemoveNode'
27618	ImpactLevel ImpactLevel `json:"ImpactLevel,omitempty"`
27619}
27620
27621// NodeInfo information about a node in Service Fabric cluster.
27622type NodeInfo struct {
27623	autorest.Response `json:"-"`
27624	// Name - The name of a Service Fabric node.
27625	Name *string `json:"Name,omitempty"`
27626	// IPAddressOrFQDN - The IP address or fully qualified domain name of the node.
27627	IPAddressOrFQDN *string `json:"IpAddressOrFQDN,omitempty"`
27628	// Type - The type of the node.
27629	Type *string `json:"Type,omitempty"`
27630	// CodeVersion - The version of Service Fabric binaries that the node is running.
27631	CodeVersion *string `json:"CodeVersion,omitempty"`
27632	// ConfigVersion - The version of Service Fabric cluster manifest that the node is using.
27633	ConfigVersion *string `json:"ConfigVersion,omitempty"`
27634	// NodeStatus - The status of the node. Possible values include: 'NodeStatusInvalid', 'NodeStatusUp', 'NodeStatusDown', 'NodeStatusEnabling', 'NodeStatusDisabling', 'NodeStatusDisabled', 'NodeStatusUnknown', 'NodeStatusRemoved'
27635	NodeStatus NodeStatus `json:"NodeStatus,omitempty"`
27636	// NodeUpTimeInSeconds - Time in seconds since the node has been in NodeStatus Up. Value zero indicates that the node is not Up.
27637	NodeUpTimeInSeconds *string `json:"NodeUpTimeInSeconds,omitempty"`
27638	// 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'
27639	HealthState HealthState `json:"HealthState,omitempty"`
27640	// 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.
27641	IsSeedNode *bool `json:"IsSeedNode,omitempty"`
27642	// UpgradeDomain - The upgrade domain of the node.
27643	UpgradeDomain *string `json:"UpgradeDomain,omitempty"`
27644	// FaultDomain - The fault domain of the node.
27645	FaultDomain *string `json:"FaultDomain,omitempty"`
27646	// ID - An internal ID used by Service Fabric to uniquely identify a node. Node Id is deterministically generated from node name.
27647	ID *NodeID `json:"Id,omitempty"`
27648	// 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.
27649	InstanceID *string `json:"InstanceId,omitempty"`
27650	// NodeDeactivationInfo - Information about the node deactivation. This information is valid for a node that is undergoing deactivation or has already been deactivated.
27651	NodeDeactivationInfo *NodeDeactivationInfo `json:"NodeDeactivationInfo,omitempty"`
27652	// IsStopped - Indicates if the node is stopped by calling stop node API or not. Returns true if the node is stopped, otherwise false.
27653	IsStopped *bool `json:"IsStopped,omitempty"`
27654	// NodeDownTimeInSeconds - Time in seconds since the node has been in NodeStatus Down. Value zero indicates node is not NodeStatus Down.
27655	NodeDownTimeInSeconds *string `json:"NodeDownTimeInSeconds,omitempty"`
27656	// 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.
27657	NodeUpAt *date.Time `json:"NodeUpAt,omitempty"`
27658	// NodeDownAt - Date time in UTC when the node went down. If node has never been down then this value will be zero date time.
27659	NodeDownAt *date.Time `json:"NodeDownAt,omitempty"`
27660}
27661
27662// NodeLoadInfo information about load on a Service Fabric node. It holds a summary of all metrics and
27663// their load on a node.
27664type NodeLoadInfo struct {
27665	autorest.Response `json:"-"`
27666	// NodeName - Name of the node for which the load information is provided by this object.
27667	NodeName *string `json:"NodeName,omitempty"`
27668	// NodeLoadMetricInformation - List that contains metrics and their load information on this node.
27669	NodeLoadMetricInformation *[]NodeLoadMetricInformation `json:"NodeLoadMetricInformation,omitempty"`
27670}
27671
27672// NodeLoadMetricInformation represents data structure that contains load information for a certain metric
27673// on a node.
27674type NodeLoadMetricInformation struct {
27675	// Name - Name of the metric for which this load information is provided.
27676	Name *string `json:"Name,omitempty"`
27677	// NodeCapacity - Total capacity on the node for this metric.
27678	NodeCapacity *string `json:"NodeCapacity,omitempty"`
27679	// NodeLoad - Current load on the node for this metric. In future releases of Service Fabric this parameter will be deprecated in favor of CurrentNodeLoad.
27680	NodeLoad *string `json:"NodeLoad,omitempty"`
27681	// NodeRemainingCapacity - The remaining capacity on the node for this metric. In future releases of Service Fabric this parameter will be deprecated in favor of NodeCapacityRemaining.
27682	NodeRemainingCapacity *string `json:"NodeRemainingCapacity,omitempty"`
27683	// IsCapacityViolation - Indicates if there is a capacity violation for this metric on the node.
27684	IsCapacityViolation *bool `json:"IsCapacityViolation,omitempty"`
27685	// NodeBufferedCapacity - The value that indicates the reserved capacity for this metric on the node.
27686	NodeBufferedCapacity *string `json:"NodeBufferedCapacity,omitempty"`
27687	// NodeRemainingBufferedCapacity - The remaining reserved capacity for this metric on the node. In future releases of Service Fabric this parameter will be deprecated in favor of BufferedNodeCapacityRemaining.
27688	NodeRemainingBufferedCapacity *string `json:"NodeRemainingBufferedCapacity,omitempty"`
27689	// CurrentNodeLoad - Current load on the node for this metric.
27690	CurrentNodeLoad *string `json:"CurrentNodeLoad,omitempty"`
27691	// NodeCapacityRemaining - The remaining capacity on the node for the metric.
27692	NodeCapacityRemaining *string `json:"NodeCapacityRemaining,omitempty"`
27693	// BufferedNodeCapacityRemaining - The remaining capacity which is not reserved by NodeBufferPercentage for this metric on the node.
27694	BufferedNodeCapacityRemaining *string `json:"BufferedNodeCapacityRemaining,omitempty"`
27695	// PlannedNodeLoadRemoval - This value represents the load of the replicas that are planned to be removed in the future.
27696	// This kind of load is reported for replicas that are currently being moving to other nodes and for replicas that are currently being dropped but still use the load on the source node.
27697	PlannedNodeLoadRemoval *string `json:"PlannedNodeLoadRemoval,omitempty"`
27698}
27699
27700// NodeNewHealthReportEvent node Health Report Created event.
27701type NodeNewHealthReportEvent struct {
27702	// NodeInstanceID - Id of Node instance.
27703	NodeInstanceID *int64 `json:"NodeInstanceId,omitempty"`
27704	// SourceID - Id of report source.
27705	SourceID *string `json:"SourceId,omitempty"`
27706	// Property - Describes the property.
27707	Property *string `json:"Property,omitempty"`
27708	// HealthState - Describes the property health state.
27709	HealthState *string `json:"HealthState,omitempty"`
27710	// TimeToLiveMs - Time to live in milli-seconds.
27711	TimeToLiveMs *int64 `json:"TimeToLiveMs,omitempty"`
27712	// SequenceNumber - Sequence number of report.
27713	SequenceNumber *int64 `json:"SequenceNumber,omitempty"`
27714	// Description - Description of report.
27715	Description *string `json:"Description,omitempty"`
27716	// RemoveWhenExpired - Indicates the removal when it expires.
27717	RemoveWhenExpired *bool `json:"RemoveWhenExpired,omitempty"`
27718	// SourceUtcTimestamp - Source time.
27719	SourceUtcTimestamp *date.Time `json:"SourceUtcTimestamp,omitempty"`
27720	// NodeName - The name of a Service Fabric node.
27721	NodeName *string `json:"NodeName,omitempty"`
27722	// EventInstanceID - The identifier for the FabricEvent instance.
27723	EventInstanceID *uuid.UUID `json:"EventInstanceId,omitempty"`
27724	// Category - The category of event.
27725	Category *string `json:"Category,omitempty"`
27726	// TimeStamp - The time event was logged.
27727	TimeStamp *date.Time `json:"TimeStamp,omitempty"`
27728	// HasCorrelatedEvents - Shows there is existing related events available.
27729	HasCorrelatedEvents *bool `json:"HasCorrelatedEvents,omitempty"`
27730	// 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'
27731	Kind KindBasicFabricEvent `json:"Kind,omitempty"`
27732}
27733
27734// MarshalJSON is the custom marshaler for NodeNewHealthReportEvent.
27735func (nnhre NodeNewHealthReportEvent) MarshalJSON() ([]byte, error) {
27736	nnhre.Kind = KindNodeNewHealthReport
27737	objectMap := make(map[string]interface{})
27738	if nnhre.NodeInstanceID != nil {
27739		objectMap["NodeInstanceId"] = nnhre.NodeInstanceID
27740	}
27741	if nnhre.SourceID != nil {
27742		objectMap["SourceId"] = nnhre.SourceID
27743	}
27744	if nnhre.Property != nil {
27745		objectMap["Property"] = nnhre.Property
27746	}
27747	if nnhre.HealthState != nil {
27748		objectMap["HealthState"] = nnhre.HealthState
27749	}
27750	if nnhre.TimeToLiveMs != nil {
27751		objectMap["TimeToLiveMs"] = nnhre.TimeToLiveMs
27752	}
27753	if nnhre.SequenceNumber != nil {
27754		objectMap["SequenceNumber"] = nnhre.SequenceNumber
27755	}
27756	if nnhre.Description != nil {
27757		objectMap["Description"] = nnhre.Description
27758	}
27759	if nnhre.RemoveWhenExpired != nil {
27760		objectMap["RemoveWhenExpired"] = nnhre.RemoveWhenExpired
27761	}
27762	if nnhre.SourceUtcTimestamp != nil {
27763		objectMap["SourceUtcTimestamp"] = nnhre.SourceUtcTimestamp
27764	}
27765	if nnhre.NodeName != nil {
27766		objectMap["NodeName"] = nnhre.NodeName
27767	}
27768	if nnhre.EventInstanceID != nil {
27769		objectMap["EventInstanceId"] = nnhre.EventInstanceID
27770	}
27771	if nnhre.Category != nil {
27772		objectMap["Category"] = nnhre.Category
27773	}
27774	if nnhre.TimeStamp != nil {
27775		objectMap["TimeStamp"] = nnhre.TimeStamp
27776	}
27777	if nnhre.HasCorrelatedEvents != nil {
27778		objectMap["HasCorrelatedEvents"] = nnhre.HasCorrelatedEvents
27779	}
27780	if nnhre.Kind != "" {
27781		objectMap["Kind"] = nnhre.Kind
27782	}
27783	return json.Marshal(objectMap)
27784}
27785
27786// AsApplicationEvent is the BasicFabricEvent implementation for NodeNewHealthReportEvent.
27787func (nnhre NodeNewHealthReportEvent) AsApplicationEvent() (*ApplicationEvent, bool) {
27788	return nil, false
27789}
27790
27791// AsBasicApplicationEvent is the BasicFabricEvent implementation for NodeNewHealthReportEvent.
27792func (nnhre NodeNewHealthReportEvent) AsBasicApplicationEvent() (BasicApplicationEvent, bool) {
27793	return nil, false
27794}
27795
27796// AsClusterEvent is the BasicFabricEvent implementation for NodeNewHealthReportEvent.
27797func (nnhre NodeNewHealthReportEvent) AsClusterEvent() (*ClusterEvent, bool) {
27798	return nil, false
27799}
27800
27801// AsBasicClusterEvent is the BasicFabricEvent implementation for NodeNewHealthReportEvent.
27802func (nnhre NodeNewHealthReportEvent) AsBasicClusterEvent() (BasicClusterEvent, bool) {
27803	return nil, false
27804}
27805
27806// AsContainerInstanceEvent is the BasicFabricEvent implementation for NodeNewHealthReportEvent.
27807func (nnhre NodeNewHealthReportEvent) AsContainerInstanceEvent() (*ContainerInstanceEvent, bool) {
27808	return nil, false
27809}
27810
27811// AsNodeEvent is the BasicFabricEvent implementation for NodeNewHealthReportEvent.
27812func (nnhre NodeNewHealthReportEvent) AsNodeEvent() (*NodeEvent, bool) {
27813	return nil, false
27814}
27815
27816// AsBasicNodeEvent is the BasicFabricEvent implementation for NodeNewHealthReportEvent.
27817func (nnhre NodeNewHealthReportEvent) AsBasicNodeEvent() (BasicNodeEvent, bool) {
27818	return &nnhre, true
27819}
27820
27821// AsPartitionAnalysisEvent is the BasicFabricEvent implementation for NodeNewHealthReportEvent.
27822func (nnhre NodeNewHealthReportEvent) AsPartitionAnalysisEvent() (*PartitionAnalysisEvent, bool) {
27823	return nil, false
27824}
27825
27826// AsBasicPartitionAnalysisEvent is the BasicFabricEvent implementation for NodeNewHealthReportEvent.
27827func (nnhre NodeNewHealthReportEvent) AsBasicPartitionAnalysisEvent() (BasicPartitionAnalysisEvent, bool) {
27828	return nil, false
27829}
27830
27831// AsPartitionEvent is the BasicFabricEvent implementation for NodeNewHealthReportEvent.
27832func (nnhre NodeNewHealthReportEvent) AsPartitionEvent() (*PartitionEvent, bool) {
27833	return nil, false
27834}
27835
27836// AsBasicPartitionEvent is the BasicFabricEvent implementation for NodeNewHealthReportEvent.
27837func (nnhre NodeNewHealthReportEvent) AsBasicPartitionEvent() (BasicPartitionEvent, bool) {
27838	return nil, false
27839}
27840
27841// AsReplicaEvent is the BasicFabricEvent implementation for NodeNewHealthReportEvent.
27842func (nnhre NodeNewHealthReportEvent) AsReplicaEvent() (*ReplicaEvent, bool) {
27843	return nil, false
27844}
27845
27846// AsBasicReplicaEvent is the BasicFabricEvent implementation for NodeNewHealthReportEvent.
27847func (nnhre NodeNewHealthReportEvent) AsBasicReplicaEvent() (BasicReplicaEvent, bool) {
27848	return nil, false
27849}
27850
27851// AsServiceEvent is the BasicFabricEvent implementation for NodeNewHealthReportEvent.
27852func (nnhre NodeNewHealthReportEvent) AsServiceEvent() (*ServiceEvent, bool) {
27853	return nil, false
27854}
27855
27856// AsBasicServiceEvent is the BasicFabricEvent implementation for NodeNewHealthReportEvent.
27857func (nnhre NodeNewHealthReportEvent) AsBasicServiceEvent() (BasicServiceEvent, bool) {
27858	return nil, false
27859}
27860
27861// AsApplicationCreatedEvent is the BasicFabricEvent implementation for NodeNewHealthReportEvent.
27862func (nnhre NodeNewHealthReportEvent) AsApplicationCreatedEvent() (*ApplicationCreatedEvent, bool) {
27863	return nil, false
27864}
27865
27866// AsApplicationDeletedEvent is the BasicFabricEvent implementation for NodeNewHealthReportEvent.
27867func (nnhre NodeNewHealthReportEvent) AsApplicationDeletedEvent() (*ApplicationDeletedEvent, bool) {
27868	return nil, false
27869}
27870
27871// AsApplicationNewHealthReportEvent is the BasicFabricEvent implementation for NodeNewHealthReportEvent.
27872func (nnhre NodeNewHealthReportEvent) AsApplicationNewHealthReportEvent() (*ApplicationNewHealthReportEvent, bool) {
27873	return nil, false
27874}
27875
27876// AsApplicationHealthReportExpiredEvent is the BasicFabricEvent implementation for NodeNewHealthReportEvent.
27877func (nnhre NodeNewHealthReportEvent) AsApplicationHealthReportExpiredEvent() (*ApplicationHealthReportExpiredEvent, bool) {
27878	return nil, false
27879}
27880
27881// AsApplicationUpgradeCompletedEvent is the BasicFabricEvent implementation for NodeNewHealthReportEvent.
27882func (nnhre NodeNewHealthReportEvent) AsApplicationUpgradeCompletedEvent() (*ApplicationUpgradeCompletedEvent, bool) {
27883	return nil, false
27884}
27885
27886// AsApplicationUpgradeDomainCompletedEvent is the BasicFabricEvent implementation for NodeNewHealthReportEvent.
27887func (nnhre NodeNewHealthReportEvent) AsApplicationUpgradeDomainCompletedEvent() (*ApplicationUpgradeDomainCompletedEvent, bool) {
27888	return nil, false
27889}
27890
27891// AsApplicationUpgradeRollbackCompletedEvent is the BasicFabricEvent implementation for NodeNewHealthReportEvent.
27892func (nnhre NodeNewHealthReportEvent) AsApplicationUpgradeRollbackCompletedEvent() (*ApplicationUpgradeRollbackCompletedEvent, bool) {
27893	return nil, false
27894}
27895
27896// AsApplicationUpgradeRollbackStartedEvent is the BasicFabricEvent implementation for NodeNewHealthReportEvent.
27897func (nnhre NodeNewHealthReportEvent) AsApplicationUpgradeRollbackStartedEvent() (*ApplicationUpgradeRollbackStartedEvent, bool) {
27898	return nil, false
27899}
27900
27901// AsApplicationUpgradeStartedEvent is the BasicFabricEvent implementation for NodeNewHealthReportEvent.
27902func (nnhre NodeNewHealthReportEvent) AsApplicationUpgradeStartedEvent() (*ApplicationUpgradeStartedEvent, bool) {
27903	return nil, false
27904}
27905
27906// AsDeployedApplicationNewHealthReportEvent is the BasicFabricEvent implementation for NodeNewHealthReportEvent.
27907func (nnhre NodeNewHealthReportEvent) AsDeployedApplicationNewHealthReportEvent() (*DeployedApplicationNewHealthReportEvent, bool) {
27908	return nil, false
27909}
27910
27911// AsDeployedApplicationHealthReportExpiredEvent is the BasicFabricEvent implementation for NodeNewHealthReportEvent.
27912func (nnhre NodeNewHealthReportEvent) AsDeployedApplicationHealthReportExpiredEvent() (*DeployedApplicationHealthReportExpiredEvent, bool) {
27913	return nil, false
27914}
27915
27916// AsApplicationProcessExitedEvent is the BasicFabricEvent implementation for NodeNewHealthReportEvent.
27917func (nnhre NodeNewHealthReportEvent) AsApplicationProcessExitedEvent() (*ApplicationProcessExitedEvent, bool) {
27918	return nil, false
27919}
27920
27921// AsApplicationContainerInstanceExitedEvent is the BasicFabricEvent implementation for NodeNewHealthReportEvent.
27922func (nnhre NodeNewHealthReportEvent) AsApplicationContainerInstanceExitedEvent() (*ApplicationContainerInstanceExitedEvent, bool) {
27923	return nil, false
27924}
27925
27926// AsNodeAbortedEvent is the BasicFabricEvent implementation for NodeNewHealthReportEvent.
27927func (nnhre NodeNewHealthReportEvent) AsNodeAbortedEvent() (*NodeAbortedEvent, bool) {
27928	return nil, false
27929}
27930
27931// AsNodeAddedToClusterEvent is the BasicFabricEvent implementation for NodeNewHealthReportEvent.
27932func (nnhre NodeNewHealthReportEvent) AsNodeAddedToClusterEvent() (*NodeAddedToClusterEvent, bool) {
27933	return nil, false
27934}
27935
27936// AsNodeClosedEvent is the BasicFabricEvent implementation for NodeNewHealthReportEvent.
27937func (nnhre NodeNewHealthReportEvent) AsNodeClosedEvent() (*NodeClosedEvent, bool) {
27938	return nil, false
27939}
27940
27941// AsNodeDeactivateCompletedEvent is the BasicFabricEvent implementation for NodeNewHealthReportEvent.
27942func (nnhre NodeNewHealthReportEvent) AsNodeDeactivateCompletedEvent() (*NodeDeactivateCompletedEvent, bool) {
27943	return nil, false
27944}
27945
27946// AsNodeDeactivateStartedEvent is the BasicFabricEvent implementation for NodeNewHealthReportEvent.
27947func (nnhre NodeNewHealthReportEvent) AsNodeDeactivateStartedEvent() (*NodeDeactivateStartedEvent, bool) {
27948	return nil, false
27949}
27950
27951// AsNodeDownEvent is the BasicFabricEvent implementation for NodeNewHealthReportEvent.
27952func (nnhre NodeNewHealthReportEvent) AsNodeDownEvent() (*NodeDownEvent, bool) {
27953	return nil, false
27954}
27955
27956// AsNodeNewHealthReportEvent is the BasicFabricEvent implementation for NodeNewHealthReportEvent.
27957func (nnhre NodeNewHealthReportEvent) AsNodeNewHealthReportEvent() (*NodeNewHealthReportEvent, bool) {
27958	return &nnhre, true
27959}
27960
27961// AsNodeHealthReportExpiredEvent is the BasicFabricEvent implementation for NodeNewHealthReportEvent.
27962func (nnhre NodeNewHealthReportEvent) AsNodeHealthReportExpiredEvent() (*NodeHealthReportExpiredEvent, bool) {
27963	return nil, false
27964}
27965
27966// AsNodeOpenSucceededEvent is the BasicFabricEvent implementation for NodeNewHealthReportEvent.
27967func (nnhre NodeNewHealthReportEvent) AsNodeOpenSucceededEvent() (*NodeOpenSucceededEvent, bool) {
27968	return nil, false
27969}
27970
27971// AsNodeOpenFailedEvent is the BasicFabricEvent implementation for NodeNewHealthReportEvent.
27972func (nnhre NodeNewHealthReportEvent) AsNodeOpenFailedEvent() (*NodeOpenFailedEvent, bool) {
27973	return nil, false
27974}
27975
27976// AsNodeRemovedFromClusterEvent is the BasicFabricEvent implementation for NodeNewHealthReportEvent.
27977func (nnhre NodeNewHealthReportEvent) AsNodeRemovedFromClusterEvent() (*NodeRemovedFromClusterEvent, bool) {
27978	return nil, false
27979}
27980
27981// AsNodeUpEvent is the BasicFabricEvent implementation for NodeNewHealthReportEvent.
27982func (nnhre NodeNewHealthReportEvent) AsNodeUpEvent() (*NodeUpEvent, bool) {
27983	return nil, false
27984}
27985
27986// AsPartitionNewHealthReportEvent is the BasicFabricEvent implementation for NodeNewHealthReportEvent.
27987func (nnhre NodeNewHealthReportEvent) AsPartitionNewHealthReportEvent() (*PartitionNewHealthReportEvent, bool) {
27988	return nil, false
27989}
27990
27991// AsPartitionHealthReportExpiredEvent is the BasicFabricEvent implementation for NodeNewHealthReportEvent.
27992func (nnhre NodeNewHealthReportEvent) AsPartitionHealthReportExpiredEvent() (*PartitionHealthReportExpiredEvent, bool) {
27993	return nil, false
27994}
27995
27996// AsPartitionReconfiguredEvent is the BasicFabricEvent implementation for NodeNewHealthReportEvent.
27997func (nnhre NodeNewHealthReportEvent) AsPartitionReconfiguredEvent() (*PartitionReconfiguredEvent, bool) {
27998	return nil, false
27999}
28000
28001// AsPartitionPrimaryMoveAnalysisEvent is the BasicFabricEvent implementation for NodeNewHealthReportEvent.
28002func (nnhre NodeNewHealthReportEvent) AsPartitionPrimaryMoveAnalysisEvent() (*PartitionPrimaryMoveAnalysisEvent, bool) {
28003	return nil, false
28004}
28005
28006// AsServiceCreatedEvent is the BasicFabricEvent implementation for NodeNewHealthReportEvent.
28007func (nnhre NodeNewHealthReportEvent) AsServiceCreatedEvent() (*ServiceCreatedEvent, bool) {
28008	return nil, false
28009}
28010
28011// AsServiceDeletedEvent is the BasicFabricEvent implementation for NodeNewHealthReportEvent.
28012func (nnhre NodeNewHealthReportEvent) AsServiceDeletedEvent() (*ServiceDeletedEvent, bool) {
28013	return nil, false
28014}
28015
28016// AsServiceNewHealthReportEvent is the BasicFabricEvent implementation for NodeNewHealthReportEvent.
28017func (nnhre NodeNewHealthReportEvent) AsServiceNewHealthReportEvent() (*ServiceNewHealthReportEvent, bool) {
28018	return nil, false
28019}
28020
28021// AsServiceHealthReportExpiredEvent is the BasicFabricEvent implementation for NodeNewHealthReportEvent.
28022func (nnhre NodeNewHealthReportEvent) AsServiceHealthReportExpiredEvent() (*ServiceHealthReportExpiredEvent, bool) {
28023	return nil, false
28024}
28025
28026// AsDeployedServicePackageNewHealthReportEvent is the BasicFabricEvent implementation for NodeNewHealthReportEvent.
28027func (nnhre NodeNewHealthReportEvent) AsDeployedServicePackageNewHealthReportEvent() (*DeployedServicePackageNewHealthReportEvent, bool) {
28028	return nil, false
28029}
28030
28031// AsDeployedServicePackageHealthReportExpiredEvent is the BasicFabricEvent implementation for NodeNewHealthReportEvent.
28032func (nnhre NodeNewHealthReportEvent) AsDeployedServicePackageHealthReportExpiredEvent() (*DeployedServicePackageHealthReportExpiredEvent, bool) {
28033	return nil, false
28034}
28035
28036// AsStatefulReplicaNewHealthReportEvent is the BasicFabricEvent implementation for NodeNewHealthReportEvent.
28037func (nnhre NodeNewHealthReportEvent) AsStatefulReplicaNewHealthReportEvent() (*StatefulReplicaNewHealthReportEvent, bool) {
28038	return nil, false
28039}
28040
28041// AsStatefulReplicaHealthReportExpiredEvent is the BasicFabricEvent implementation for NodeNewHealthReportEvent.
28042func (nnhre NodeNewHealthReportEvent) AsStatefulReplicaHealthReportExpiredEvent() (*StatefulReplicaHealthReportExpiredEvent, bool) {
28043	return nil, false
28044}
28045
28046// AsStatelessReplicaNewHealthReportEvent is the BasicFabricEvent implementation for NodeNewHealthReportEvent.
28047func (nnhre NodeNewHealthReportEvent) AsStatelessReplicaNewHealthReportEvent() (*StatelessReplicaNewHealthReportEvent, bool) {
28048	return nil, false
28049}
28050
28051// AsStatelessReplicaHealthReportExpiredEvent is the BasicFabricEvent implementation for NodeNewHealthReportEvent.
28052func (nnhre NodeNewHealthReportEvent) AsStatelessReplicaHealthReportExpiredEvent() (*StatelessReplicaHealthReportExpiredEvent, bool) {
28053	return nil, false
28054}
28055
28056// AsClusterNewHealthReportEvent is the BasicFabricEvent implementation for NodeNewHealthReportEvent.
28057func (nnhre NodeNewHealthReportEvent) AsClusterNewHealthReportEvent() (*ClusterNewHealthReportEvent, bool) {
28058	return nil, false
28059}
28060
28061// AsClusterHealthReportExpiredEvent is the BasicFabricEvent implementation for NodeNewHealthReportEvent.
28062func (nnhre NodeNewHealthReportEvent) AsClusterHealthReportExpiredEvent() (*ClusterHealthReportExpiredEvent, bool) {
28063	return nil, false
28064}
28065
28066// AsClusterUpgradeCompletedEvent is the BasicFabricEvent implementation for NodeNewHealthReportEvent.
28067func (nnhre NodeNewHealthReportEvent) AsClusterUpgradeCompletedEvent() (*ClusterUpgradeCompletedEvent, bool) {
28068	return nil, false
28069}
28070
28071// AsClusterUpgradeDomainCompletedEvent is the BasicFabricEvent implementation for NodeNewHealthReportEvent.
28072func (nnhre NodeNewHealthReportEvent) AsClusterUpgradeDomainCompletedEvent() (*ClusterUpgradeDomainCompletedEvent, bool) {
28073	return nil, false
28074}
28075
28076// AsClusterUpgradeRollbackCompletedEvent is the BasicFabricEvent implementation for NodeNewHealthReportEvent.
28077func (nnhre NodeNewHealthReportEvent) AsClusterUpgradeRollbackCompletedEvent() (*ClusterUpgradeRollbackCompletedEvent, bool) {
28078	return nil, false
28079}
28080
28081// AsClusterUpgradeRollbackStartedEvent is the BasicFabricEvent implementation for NodeNewHealthReportEvent.
28082func (nnhre NodeNewHealthReportEvent) AsClusterUpgradeRollbackStartedEvent() (*ClusterUpgradeRollbackStartedEvent, bool) {
28083	return nil, false
28084}
28085
28086// AsClusterUpgradeStartedEvent is the BasicFabricEvent implementation for NodeNewHealthReportEvent.
28087func (nnhre NodeNewHealthReportEvent) AsClusterUpgradeStartedEvent() (*ClusterUpgradeStartedEvent, bool) {
28088	return nil, false
28089}
28090
28091// AsChaosStoppedEvent is the BasicFabricEvent implementation for NodeNewHealthReportEvent.
28092func (nnhre NodeNewHealthReportEvent) AsChaosStoppedEvent() (*ChaosStoppedEvent, bool) {
28093	return nil, false
28094}
28095
28096// AsChaosStartedEvent is the BasicFabricEvent implementation for NodeNewHealthReportEvent.
28097func (nnhre NodeNewHealthReportEvent) AsChaosStartedEvent() (*ChaosStartedEvent, bool) {
28098	return nil, false
28099}
28100
28101// AsChaosCodePackageRestartScheduledEvent is the BasicFabricEvent implementation for NodeNewHealthReportEvent.
28102func (nnhre NodeNewHealthReportEvent) AsChaosCodePackageRestartScheduledEvent() (*ChaosCodePackageRestartScheduledEvent, bool) {
28103	return nil, false
28104}
28105
28106// AsChaosReplicaRemovalScheduledEvent is the BasicFabricEvent implementation for NodeNewHealthReportEvent.
28107func (nnhre NodeNewHealthReportEvent) AsChaosReplicaRemovalScheduledEvent() (*ChaosReplicaRemovalScheduledEvent, bool) {
28108	return nil, false
28109}
28110
28111// AsChaosPartitionSecondaryMoveScheduledEvent is the BasicFabricEvent implementation for NodeNewHealthReportEvent.
28112func (nnhre NodeNewHealthReportEvent) AsChaosPartitionSecondaryMoveScheduledEvent() (*ChaosPartitionSecondaryMoveScheduledEvent, bool) {
28113	return nil, false
28114}
28115
28116// AsChaosPartitionPrimaryMoveScheduledEvent is the BasicFabricEvent implementation for NodeNewHealthReportEvent.
28117func (nnhre NodeNewHealthReportEvent) AsChaosPartitionPrimaryMoveScheduledEvent() (*ChaosPartitionPrimaryMoveScheduledEvent, bool) {
28118	return nil, false
28119}
28120
28121// AsChaosReplicaRestartScheduledEvent is the BasicFabricEvent implementation for NodeNewHealthReportEvent.
28122func (nnhre NodeNewHealthReportEvent) AsChaosReplicaRestartScheduledEvent() (*ChaosReplicaRestartScheduledEvent, bool) {
28123	return nil, false
28124}
28125
28126// AsChaosNodeRestartScheduledEvent is the BasicFabricEvent implementation for NodeNewHealthReportEvent.
28127func (nnhre NodeNewHealthReportEvent) AsChaosNodeRestartScheduledEvent() (*ChaosNodeRestartScheduledEvent, bool) {
28128	return nil, false
28129}
28130
28131// AsFabricEvent is the BasicFabricEvent implementation for NodeNewHealthReportEvent.
28132func (nnhre NodeNewHealthReportEvent) AsFabricEvent() (*FabricEvent, bool) {
28133	return nil, false
28134}
28135
28136// AsBasicFabricEvent is the BasicFabricEvent implementation for NodeNewHealthReportEvent.
28137func (nnhre NodeNewHealthReportEvent) AsBasicFabricEvent() (BasicFabricEvent, bool) {
28138	return &nnhre, true
28139}
28140
28141// NodeOpenFailedEvent node Open Failed event.
28142type NodeOpenFailedEvent struct {
28143	// NodeInstance - Id of Node instance.
28144	NodeInstance *int64 `json:"NodeInstance,omitempty"`
28145	// NodeID - Id of Node.
28146	NodeID *string `json:"NodeId,omitempty"`
28147	// UpgradeDomain - Upgrade domain of Node.
28148	UpgradeDomain *string `json:"UpgradeDomain,omitempty"`
28149	// FaultDomain - Fault domain of Node.
28150	FaultDomain *string `json:"FaultDomain,omitempty"`
28151	// IPAddressOrFQDN - IP address or FQDN.
28152	IPAddressOrFQDN *string `json:"IpAddressOrFQDN,omitempty"`
28153	// Hostname - Name of Host.
28154	Hostname *string `json:"Hostname,omitempty"`
28155	// IsSeedNode - Indicates if it is seed node.
28156	IsSeedNode *bool `json:"IsSeedNode,omitempty"`
28157	// NodeVersion - Version of Node.
28158	NodeVersion *string `json:"NodeVersion,omitempty"`
28159	// Error - Describes the error.
28160	Error *string `json:"Error,omitempty"`
28161	// NodeName - The name of a Service Fabric node.
28162	NodeName *string `json:"NodeName,omitempty"`
28163	// EventInstanceID - The identifier for the FabricEvent instance.
28164	EventInstanceID *uuid.UUID `json:"EventInstanceId,omitempty"`
28165	// Category - The category of event.
28166	Category *string `json:"Category,omitempty"`
28167	// TimeStamp - The time event was logged.
28168	TimeStamp *date.Time `json:"TimeStamp,omitempty"`
28169	// HasCorrelatedEvents - Shows there is existing related events available.
28170	HasCorrelatedEvents *bool `json:"HasCorrelatedEvents,omitempty"`
28171	// 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'
28172	Kind KindBasicFabricEvent `json:"Kind,omitempty"`
28173}
28174
28175// MarshalJSON is the custom marshaler for NodeOpenFailedEvent.
28176func (nofe NodeOpenFailedEvent) MarshalJSON() ([]byte, error) {
28177	nofe.Kind = KindNodeOpenFailed
28178	objectMap := make(map[string]interface{})
28179	if nofe.NodeInstance != nil {
28180		objectMap["NodeInstance"] = nofe.NodeInstance
28181	}
28182	if nofe.NodeID != nil {
28183		objectMap["NodeId"] = nofe.NodeID
28184	}
28185	if nofe.UpgradeDomain != nil {
28186		objectMap["UpgradeDomain"] = nofe.UpgradeDomain
28187	}
28188	if nofe.FaultDomain != nil {
28189		objectMap["FaultDomain"] = nofe.FaultDomain
28190	}
28191	if nofe.IPAddressOrFQDN != nil {
28192		objectMap["IpAddressOrFQDN"] = nofe.IPAddressOrFQDN
28193	}
28194	if nofe.Hostname != nil {
28195		objectMap["Hostname"] = nofe.Hostname
28196	}
28197	if nofe.IsSeedNode != nil {
28198		objectMap["IsSeedNode"] = nofe.IsSeedNode
28199	}
28200	if nofe.NodeVersion != nil {
28201		objectMap["NodeVersion"] = nofe.NodeVersion
28202	}
28203	if nofe.Error != nil {
28204		objectMap["Error"] = nofe.Error
28205	}
28206	if nofe.NodeName != nil {
28207		objectMap["NodeName"] = nofe.NodeName
28208	}
28209	if nofe.EventInstanceID != nil {
28210		objectMap["EventInstanceId"] = nofe.EventInstanceID
28211	}
28212	if nofe.Category != nil {
28213		objectMap["Category"] = nofe.Category
28214	}
28215	if nofe.TimeStamp != nil {
28216		objectMap["TimeStamp"] = nofe.TimeStamp
28217	}
28218	if nofe.HasCorrelatedEvents != nil {
28219		objectMap["HasCorrelatedEvents"] = nofe.HasCorrelatedEvents
28220	}
28221	if nofe.Kind != "" {
28222		objectMap["Kind"] = nofe.Kind
28223	}
28224	return json.Marshal(objectMap)
28225}
28226
28227// AsApplicationEvent is the BasicFabricEvent implementation for NodeOpenFailedEvent.
28228func (nofe NodeOpenFailedEvent) AsApplicationEvent() (*ApplicationEvent, bool) {
28229	return nil, false
28230}
28231
28232// AsBasicApplicationEvent is the BasicFabricEvent implementation for NodeOpenFailedEvent.
28233func (nofe NodeOpenFailedEvent) AsBasicApplicationEvent() (BasicApplicationEvent, bool) {
28234	return nil, false
28235}
28236
28237// AsClusterEvent is the BasicFabricEvent implementation for NodeOpenFailedEvent.
28238func (nofe NodeOpenFailedEvent) AsClusterEvent() (*ClusterEvent, bool) {
28239	return nil, false
28240}
28241
28242// AsBasicClusterEvent is the BasicFabricEvent implementation for NodeOpenFailedEvent.
28243func (nofe NodeOpenFailedEvent) AsBasicClusterEvent() (BasicClusterEvent, bool) {
28244	return nil, false
28245}
28246
28247// AsContainerInstanceEvent is the BasicFabricEvent implementation for NodeOpenFailedEvent.
28248func (nofe NodeOpenFailedEvent) AsContainerInstanceEvent() (*ContainerInstanceEvent, bool) {
28249	return nil, false
28250}
28251
28252// AsNodeEvent is the BasicFabricEvent implementation for NodeOpenFailedEvent.
28253func (nofe NodeOpenFailedEvent) AsNodeEvent() (*NodeEvent, bool) {
28254	return nil, false
28255}
28256
28257// AsBasicNodeEvent is the BasicFabricEvent implementation for NodeOpenFailedEvent.
28258func (nofe NodeOpenFailedEvent) AsBasicNodeEvent() (BasicNodeEvent, bool) {
28259	return &nofe, true
28260}
28261
28262// AsPartitionAnalysisEvent is the BasicFabricEvent implementation for NodeOpenFailedEvent.
28263func (nofe NodeOpenFailedEvent) AsPartitionAnalysisEvent() (*PartitionAnalysisEvent, bool) {
28264	return nil, false
28265}
28266
28267// AsBasicPartitionAnalysisEvent is the BasicFabricEvent implementation for NodeOpenFailedEvent.
28268func (nofe NodeOpenFailedEvent) AsBasicPartitionAnalysisEvent() (BasicPartitionAnalysisEvent, bool) {
28269	return nil, false
28270}
28271
28272// AsPartitionEvent is the BasicFabricEvent implementation for NodeOpenFailedEvent.
28273func (nofe NodeOpenFailedEvent) AsPartitionEvent() (*PartitionEvent, bool) {
28274	return nil, false
28275}
28276
28277// AsBasicPartitionEvent is the BasicFabricEvent implementation for NodeOpenFailedEvent.
28278func (nofe NodeOpenFailedEvent) AsBasicPartitionEvent() (BasicPartitionEvent, bool) {
28279	return nil, false
28280}
28281
28282// AsReplicaEvent is the BasicFabricEvent implementation for NodeOpenFailedEvent.
28283func (nofe NodeOpenFailedEvent) AsReplicaEvent() (*ReplicaEvent, bool) {
28284	return nil, false
28285}
28286
28287// AsBasicReplicaEvent is the BasicFabricEvent implementation for NodeOpenFailedEvent.
28288func (nofe NodeOpenFailedEvent) AsBasicReplicaEvent() (BasicReplicaEvent, bool) {
28289	return nil, false
28290}
28291
28292// AsServiceEvent is the BasicFabricEvent implementation for NodeOpenFailedEvent.
28293func (nofe NodeOpenFailedEvent) AsServiceEvent() (*ServiceEvent, bool) {
28294	return nil, false
28295}
28296
28297// AsBasicServiceEvent is the BasicFabricEvent implementation for NodeOpenFailedEvent.
28298func (nofe NodeOpenFailedEvent) AsBasicServiceEvent() (BasicServiceEvent, bool) {
28299	return nil, false
28300}
28301
28302// AsApplicationCreatedEvent is the BasicFabricEvent implementation for NodeOpenFailedEvent.
28303func (nofe NodeOpenFailedEvent) AsApplicationCreatedEvent() (*ApplicationCreatedEvent, bool) {
28304	return nil, false
28305}
28306
28307// AsApplicationDeletedEvent is the BasicFabricEvent implementation for NodeOpenFailedEvent.
28308func (nofe NodeOpenFailedEvent) AsApplicationDeletedEvent() (*ApplicationDeletedEvent, bool) {
28309	return nil, false
28310}
28311
28312// AsApplicationNewHealthReportEvent is the BasicFabricEvent implementation for NodeOpenFailedEvent.
28313func (nofe NodeOpenFailedEvent) AsApplicationNewHealthReportEvent() (*ApplicationNewHealthReportEvent, bool) {
28314	return nil, false
28315}
28316
28317// AsApplicationHealthReportExpiredEvent is the BasicFabricEvent implementation for NodeOpenFailedEvent.
28318func (nofe NodeOpenFailedEvent) AsApplicationHealthReportExpiredEvent() (*ApplicationHealthReportExpiredEvent, bool) {
28319	return nil, false
28320}
28321
28322// AsApplicationUpgradeCompletedEvent is the BasicFabricEvent implementation for NodeOpenFailedEvent.
28323func (nofe NodeOpenFailedEvent) AsApplicationUpgradeCompletedEvent() (*ApplicationUpgradeCompletedEvent, bool) {
28324	return nil, false
28325}
28326
28327// AsApplicationUpgradeDomainCompletedEvent is the BasicFabricEvent implementation for NodeOpenFailedEvent.
28328func (nofe NodeOpenFailedEvent) AsApplicationUpgradeDomainCompletedEvent() (*ApplicationUpgradeDomainCompletedEvent, bool) {
28329	return nil, false
28330}
28331
28332// AsApplicationUpgradeRollbackCompletedEvent is the BasicFabricEvent implementation for NodeOpenFailedEvent.
28333func (nofe NodeOpenFailedEvent) AsApplicationUpgradeRollbackCompletedEvent() (*ApplicationUpgradeRollbackCompletedEvent, bool) {
28334	return nil, false
28335}
28336
28337// AsApplicationUpgradeRollbackStartedEvent is the BasicFabricEvent implementation for NodeOpenFailedEvent.
28338func (nofe NodeOpenFailedEvent) AsApplicationUpgradeRollbackStartedEvent() (*ApplicationUpgradeRollbackStartedEvent, bool) {
28339	return nil, false
28340}
28341
28342// AsApplicationUpgradeStartedEvent is the BasicFabricEvent implementation for NodeOpenFailedEvent.
28343func (nofe NodeOpenFailedEvent) AsApplicationUpgradeStartedEvent() (*ApplicationUpgradeStartedEvent, bool) {
28344	return nil, false
28345}
28346
28347// AsDeployedApplicationNewHealthReportEvent is the BasicFabricEvent implementation for NodeOpenFailedEvent.
28348func (nofe NodeOpenFailedEvent) AsDeployedApplicationNewHealthReportEvent() (*DeployedApplicationNewHealthReportEvent, bool) {
28349	return nil, false
28350}
28351
28352// AsDeployedApplicationHealthReportExpiredEvent is the BasicFabricEvent implementation for NodeOpenFailedEvent.
28353func (nofe NodeOpenFailedEvent) AsDeployedApplicationHealthReportExpiredEvent() (*DeployedApplicationHealthReportExpiredEvent, bool) {
28354	return nil, false
28355}
28356
28357// AsApplicationProcessExitedEvent is the BasicFabricEvent implementation for NodeOpenFailedEvent.
28358func (nofe NodeOpenFailedEvent) AsApplicationProcessExitedEvent() (*ApplicationProcessExitedEvent, bool) {
28359	return nil, false
28360}
28361
28362// AsApplicationContainerInstanceExitedEvent is the BasicFabricEvent implementation for NodeOpenFailedEvent.
28363func (nofe NodeOpenFailedEvent) AsApplicationContainerInstanceExitedEvent() (*ApplicationContainerInstanceExitedEvent, bool) {
28364	return nil, false
28365}
28366
28367// AsNodeAbortedEvent is the BasicFabricEvent implementation for NodeOpenFailedEvent.
28368func (nofe NodeOpenFailedEvent) AsNodeAbortedEvent() (*NodeAbortedEvent, bool) {
28369	return nil, false
28370}
28371
28372// AsNodeAddedToClusterEvent is the BasicFabricEvent implementation for NodeOpenFailedEvent.
28373func (nofe NodeOpenFailedEvent) AsNodeAddedToClusterEvent() (*NodeAddedToClusterEvent, bool) {
28374	return nil, false
28375}
28376
28377// AsNodeClosedEvent is the BasicFabricEvent implementation for NodeOpenFailedEvent.
28378func (nofe NodeOpenFailedEvent) AsNodeClosedEvent() (*NodeClosedEvent, bool) {
28379	return nil, false
28380}
28381
28382// AsNodeDeactivateCompletedEvent is the BasicFabricEvent implementation for NodeOpenFailedEvent.
28383func (nofe NodeOpenFailedEvent) AsNodeDeactivateCompletedEvent() (*NodeDeactivateCompletedEvent, bool) {
28384	return nil, false
28385}
28386
28387// AsNodeDeactivateStartedEvent is the BasicFabricEvent implementation for NodeOpenFailedEvent.
28388func (nofe NodeOpenFailedEvent) AsNodeDeactivateStartedEvent() (*NodeDeactivateStartedEvent, bool) {
28389	return nil, false
28390}
28391
28392// AsNodeDownEvent is the BasicFabricEvent implementation for NodeOpenFailedEvent.
28393func (nofe NodeOpenFailedEvent) AsNodeDownEvent() (*NodeDownEvent, bool) {
28394	return nil, false
28395}
28396
28397// AsNodeNewHealthReportEvent is the BasicFabricEvent implementation for NodeOpenFailedEvent.
28398func (nofe NodeOpenFailedEvent) AsNodeNewHealthReportEvent() (*NodeNewHealthReportEvent, bool) {
28399	return nil, false
28400}
28401
28402// AsNodeHealthReportExpiredEvent is the BasicFabricEvent implementation for NodeOpenFailedEvent.
28403func (nofe NodeOpenFailedEvent) AsNodeHealthReportExpiredEvent() (*NodeHealthReportExpiredEvent, bool) {
28404	return nil, false
28405}
28406
28407// AsNodeOpenSucceededEvent is the BasicFabricEvent implementation for NodeOpenFailedEvent.
28408func (nofe NodeOpenFailedEvent) AsNodeOpenSucceededEvent() (*NodeOpenSucceededEvent, bool) {
28409	return nil, false
28410}
28411
28412// AsNodeOpenFailedEvent is the BasicFabricEvent implementation for NodeOpenFailedEvent.
28413func (nofe NodeOpenFailedEvent) AsNodeOpenFailedEvent() (*NodeOpenFailedEvent, bool) {
28414	return &nofe, true
28415}
28416
28417// AsNodeRemovedFromClusterEvent is the BasicFabricEvent implementation for NodeOpenFailedEvent.
28418func (nofe NodeOpenFailedEvent) AsNodeRemovedFromClusterEvent() (*NodeRemovedFromClusterEvent, bool) {
28419	return nil, false
28420}
28421
28422// AsNodeUpEvent is the BasicFabricEvent implementation for NodeOpenFailedEvent.
28423func (nofe NodeOpenFailedEvent) AsNodeUpEvent() (*NodeUpEvent, bool) {
28424	return nil, false
28425}
28426
28427// AsPartitionNewHealthReportEvent is the BasicFabricEvent implementation for NodeOpenFailedEvent.
28428func (nofe NodeOpenFailedEvent) AsPartitionNewHealthReportEvent() (*PartitionNewHealthReportEvent, bool) {
28429	return nil, false
28430}
28431
28432// AsPartitionHealthReportExpiredEvent is the BasicFabricEvent implementation for NodeOpenFailedEvent.
28433func (nofe NodeOpenFailedEvent) AsPartitionHealthReportExpiredEvent() (*PartitionHealthReportExpiredEvent, bool) {
28434	return nil, false
28435}
28436
28437// AsPartitionReconfiguredEvent is the BasicFabricEvent implementation for NodeOpenFailedEvent.
28438func (nofe NodeOpenFailedEvent) AsPartitionReconfiguredEvent() (*PartitionReconfiguredEvent, bool) {
28439	return nil, false
28440}
28441
28442// AsPartitionPrimaryMoveAnalysisEvent is the BasicFabricEvent implementation for NodeOpenFailedEvent.
28443func (nofe NodeOpenFailedEvent) AsPartitionPrimaryMoveAnalysisEvent() (*PartitionPrimaryMoveAnalysisEvent, bool) {
28444	return nil, false
28445}
28446
28447// AsServiceCreatedEvent is the BasicFabricEvent implementation for NodeOpenFailedEvent.
28448func (nofe NodeOpenFailedEvent) AsServiceCreatedEvent() (*ServiceCreatedEvent, bool) {
28449	return nil, false
28450}
28451
28452// AsServiceDeletedEvent is the BasicFabricEvent implementation for NodeOpenFailedEvent.
28453func (nofe NodeOpenFailedEvent) AsServiceDeletedEvent() (*ServiceDeletedEvent, bool) {
28454	return nil, false
28455}
28456
28457// AsServiceNewHealthReportEvent is the BasicFabricEvent implementation for NodeOpenFailedEvent.
28458func (nofe NodeOpenFailedEvent) AsServiceNewHealthReportEvent() (*ServiceNewHealthReportEvent, bool) {
28459	return nil, false
28460}
28461
28462// AsServiceHealthReportExpiredEvent is the BasicFabricEvent implementation for NodeOpenFailedEvent.
28463func (nofe NodeOpenFailedEvent) AsServiceHealthReportExpiredEvent() (*ServiceHealthReportExpiredEvent, bool) {
28464	return nil, false
28465}
28466
28467// AsDeployedServicePackageNewHealthReportEvent is the BasicFabricEvent implementation for NodeOpenFailedEvent.
28468func (nofe NodeOpenFailedEvent) AsDeployedServicePackageNewHealthReportEvent() (*DeployedServicePackageNewHealthReportEvent, bool) {
28469	return nil, false
28470}
28471
28472// AsDeployedServicePackageHealthReportExpiredEvent is the BasicFabricEvent implementation for NodeOpenFailedEvent.
28473func (nofe NodeOpenFailedEvent) AsDeployedServicePackageHealthReportExpiredEvent() (*DeployedServicePackageHealthReportExpiredEvent, bool) {
28474	return nil, false
28475}
28476
28477// AsStatefulReplicaNewHealthReportEvent is the BasicFabricEvent implementation for NodeOpenFailedEvent.
28478func (nofe NodeOpenFailedEvent) AsStatefulReplicaNewHealthReportEvent() (*StatefulReplicaNewHealthReportEvent, bool) {
28479	return nil, false
28480}
28481
28482// AsStatefulReplicaHealthReportExpiredEvent is the BasicFabricEvent implementation for NodeOpenFailedEvent.
28483func (nofe NodeOpenFailedEvent) AsStatefulReplicaHealthReportExpiredEvent() (*StatefulReplicaHealthReportExpiredEvent, bool) {
28484	return nil, false
28485}
28486
28487// AsStatelessReplicaNewHealthReportEvent is the BasicFabricEvent implementation for NodeOpenFailedEvent.
28488func (nofe NodeOpenFailedEvent) AsStatelessReplicaNewHealthReportEvent() (*StatelessReplicaNewHealthReportEvent, bool) {
28489	return nil, false
28490}
28491
28492// AsStatelessReplicaHealthReportExpiredEvent is the BasicFabricEvent implementation for NodeOpenFailedEvent.
28493func (nofe NodeOpenFailedEvent) AsStatelessReplicaHealthReportExpiredEvent() (*StatelessReplicaHealthReportExpiredEvent, bool) {
28494	return nil, false
28495}
28496
28497// AsClusterNewHealthReportEvent is the BasicFabricEvent implementation for NodeOpenFailedEvent.
28498func (nofe NodeOpenFailedEvent) AsClusterNewHealthReportEvent() (*ClusterNewHealthReportEvent, bool) {
28499	return nil, false
28500}
28501
28502// AsClusterHealthReportExpiredEvent is the BasicFabricEvent implementation for NodeOpenFailedEvent.
28503func (nofe NodeOpenFailedEvent) AsClusterHealthReportExpiredEvent() (*ClusterHealthReportExpiredEvent, bool) {
28504	return nil, false
28505}
28506
28507// AsClusterUpgradeCompletedEvent is the BasicFabricEvent implementation for NodeOpenFailedEvent.
28508func (nofe NodeOpenFailedEvent) AsClusterUpgradeCompletedEvent() (*ClusterUpgradeCompletedEvent, bool) {
28509	return nil, false
28510}
28511
28512// AsClusterUpgradeDomainCompletedEvent is the BasicFabricEvent implementation for NodeOpenFailedEvent.
28513func (nofe NodeOpenFailedEvent) AsClusterUpgradeDomainCompletedEvent() (*ClusterUpgradeDomainCompletedEvent, bool) {
28514	return nil, false
28515}
28516
28517// AsClusterUpgradeRollbackCompletedEvent is the BasicFabricEvent implementation for NodeOpenFailedEvent.
28518func (nofe NodeOpenFailedEvent) AsClusterUpgradeRollbackCompletedEvent() (*ClusterUpgradeRollbackCompletedEvent, bool) {
28519	return nil, false
28520}
28521
28522// AsClusterUpgradeRollbackStartedEvent is the BasicFabricEvent implementation for NodeOpenFailedEvent.
28523func (nofe NodeOpenFailedEvent) AsClusterUpgradeRollbackStartedEvent() (*ClusterUpgradeRollbackStartedEvent, bool) {
28524	return nil, false
28525}
28526
28527// AsClusterUpgradeStartedEvent is the BasicFabricEvent implementation for NodeOpenFailedEvent.
28528func (nofe NodeOpenFailedEvent) AsClusterUpgradeStartedEvent() (*ClusterUpgradeStartedEvent, bool) {
28529	return nil, false
28530}
28531
28532// AsChaosStoppedEvent is the BasicFabricEvent implementation for NodeOpenFailedEvent.
28533func (nofe NodeOpenFailedEvent) AsChaosStoppedEvent() (*ChaosStoppedEvent, bool) {
28534	return nil, false
28535}
28536
28537// AsChaosStartedEvent is the BasicFabricEvent implementation for NodeOpenFailedEvent.
28538func (nofe NodeOpenFailedEvent) AsChaosStartedEvent() (*ChaosStartedEvent, bool) {
28539	return nil, false
28540}
28541
28542// AsChaosCodePackageRestartScheduledEvent is the BasicFabricEvent implementation for NodeOpenFailedEvent.
28543func (nofe NodeOpenFailedEvent) AsChaosCodePackageRestartScheduledEvent() (*ChaosCodePackageRestartScheduledEvent, bool) {
28544	return nil, false
28545}
28546
28547// AsChaosReplicaRemovalScheduledEvent is the BasicFabricEvent implementation for NodeOpenFailedEvent.
28548func (nofe NodeOpenFailedEvent) AsChaosReplicaRemovalScheduledEvent() (*ChaosReplicaRemovalScheduledEvent, bool) {
28549	return nil, false
28550}
28551
28552// AsChaosPartitionSecondaryMoveScheduledEvent is the BasicFabricEvent implementation for NodeOpenFailedEvent.
28553func (nofe NodeOpenFailedEvent) AsChaosPartitionSecondaryMoveScheduledEvent() (*ChaosPartitionSecondaryMoveScheduledEvent, bool) {
28554	return nil, false
28555}
28556
28557// AsChaosPartitionPrimaryMoveScheduledEvent is the BasicFabricEvent implementation for NodeOpenFailedEvent.
28558func (nofe NodeOpenFailedEvent) AsChaosPartitionPrimaryMoveScheduledEvent() (*ChaosPartitionPrimaryMoveScheduledEvent, bool) {
28559	return nil, false
28560}
28561
28562// AsChaosReplicaRestartScheduledEvent is the BasicFabricEvent implementation for NodeOpenFailedEvent.
28563func (nofe NodeOpenFailedEvent) AsChaosReplicaRestartScheduledEvent() (*ChaosReplicaRestartScheduledEvent, bool) {
28564	return nil, false
28565}
28566
28567// AsChaosNodeRestartScheduledEvent is the BasicFabricEvent implementation for NodeOpenFailedEvent.
28568func (nofe NodeOpenFailedEvent) AsChaosNodeRestartScheduledEvent() (*ChaosNodeRestartScheduledEvent, bool) {
28569	return nil, false
28570}
28571
28572// AsFabricEvent is the BasicFabricEvent implementation for NodeOpenFailedEvent.
28573func (nofe NodeOpenFailedEvent) AsFabricEvent() (*FabricEvent, bool) {
28574	return nil, false
28575}
28576
28577// AsBasicFabricEvent is the BasicFabricEvent implementation for NodeOpenFailedEvent.
28578func (nofe NodeOpenFailedEvent) AsBasicFabricEvent() (BasicFabricEvent, bool) {
28579	return &nofe, true
28580}
28581
28582// NodeOpenSucceededEvent node Opened Succeeded event.
28583type NodeOpenSucceededEvent struct {
28584	// NodeInstance - Id of Node instance.
28585	NodeInstance *int64 `json:"NodeInstance,omitempty"`
28586	// NodeID - Id of Node.
28587	NodeID *string `json:"NodeId,omitempty"`
28588	// UpgradeDomain - Upgrade domain of Node.
28589	UpgradeDomain *string `json:"UpgradeDomain,omitempty"`
28590	// FaultDomain - Fault domain of Node.
28591	FaultDomain *string `json:"FaultDomain,omitempty"`
28592	// IPAddressOrFQDN - IP address or FQDN.
28593	IPAddressOrFQDN *string `json:"IpAddressOrFQDN,omitempty"`
28594	// Hostname - Name of Host.
28595	Hostname *string `json:"Hostname,omitempty"`
28596	// IsSeedNode - Indicates if it is seed node.
28597	IsSeedNode *bool `json:"IsSeedNode,omitempty"`
28598	// NodeVersion - Version of Node.
28599	NodeVersion *string `json:"NodeVersion,omitempty"`
28600	// NodeName - The name of a Service Fabric node.
28601	NodeName *string `json:"NodeName,omitempty"`
28602	// EventInstanceID - The identifier for the FabricEvent instance.
28603	EventInstanceID *uuid.UUID `json:"EventInstanceId,omitempty"`
28604	// Category - The category of event.
28605	Category *string `json:"Category,omitempty"`
28606	// TimeStamp - The time event was logged.
28607	TimeStamp *date.Time `json:"TimeStamp,omitempty"`
28608	// HasCorrelatedEvents - Shows there is existing related events available.
28609	HasCorrelatedEvents *bool `json:"HasCorrelatedEvents,omitempty"`
28610	// 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'
28611	Kind KindBasicFabricEvent `json:"Kind,omitempty"`
28612}
28613
28614// MarshalJSON is the custom marshaler for NodeOpenSucceededEvent.
28615func (nose NodeOpenSucceededEvent) MarshalJSON() ([]byte, error) {
28616	nose.Kind = KindNodeOpenSucceeded
28617	objectMap := make(map[string]interface{})
28618	if nose.NodeInstance != nil {
28619		objectMap["NodeInstance"] = nose.NodeInstance
28620	}
28621	if nose.NodeID != nil {
28622		objectMap["NodeId"] = nose.NodeID
28623	}
28624	if nose.UpgradeDomain != nil {
28625		objectMap["UpgradeDomain"] = nose.UpgradeDomain
28626	}
28627	if nose.FaultDomain != nil {
28628		objectMap["FaultDomain"] = nose.FaultDomain
28629	}
28630	if nose.IPAddressOrFQDN != nil {
28631		objectMap["IpAddressOrFQDN"] = nose.IPAddressOrFQDN
28632	}
28633	if nose.Hostname != nil {
28634		objectMap["Hostname"] = nose.Hostname
28635	}
28636	if nose.IsSeedNode != nil {
28637		objectMap["IsSeedNode"] = nose.IsSeedNode
28638	}
28639	if nose.NodeVersion != nil {
28640		objectMap["NodeVersion"] = nose.NodeVersion
28641	}
28642	if nose.NodeName != nil {
28643		objectMap["NodeName"] = nose.NodeName
28644	}
28645	if nose.EventInstanceID != nil {
28646		objectMap["EventInstanceId"] = nose.EventInstanceID
28647	}
28648	if nose.Category != nil {
28649		objectMap["Category"] = nose.Category
28650	}
28651	if nose.TimeStamp != nil {
28652		objectMap["TimeStamp"] = nose.TimeStamp
28653	}
28654	if nose.HasCorrelatedEvents != nil {
28655		objectMap["HasCorrelatedEvents"] = nose.HasCorrelatedEvents
28656	}
28657	if nose.Kind != "" {
28658		objectMap["Kind"] = nose.Kind
28659	}
28660	return json.Marshal(objectMap)
28661}
28662
28663// AsApplicationEvent is the BasicFabricEvent implementation for NodeOpenSucceededEvent.
28664func (nose NodeOpenSucceededEvent) AsApplicationEvent() (*ApplicationEvent, bool) {
28665	return nil, false
28666}
28667
28668// AsBasicApplicationEvent is the BasicFabricEvent implementation for NodeOpenSucceededEvent.
28669func (nose NodeOpenSucceededEvent) AsBasicApplicationEvent() (BasicApplicationEvent, bool) {
28670	return nil, false
28671}
28672
28673// AsClusterEvent is the BasicFabricEvent implementation for NodeOpenSucceededEvent.
28674func (nose NodeOpenSucceededEvent) AsClusterEvent() (*ClusterEvent, bool) {
28675	return nil, false
28676}
28677
28678// AsBasicClusterEvent is the BasicFabricEvent implementation for NodeOpenSucceededEvent.
28679func (nose NodeOpenSucceededEvent) AsBasicClusterEvent() (BasicClusterEvent, bool) {
28680	return nil, false
28681}
28682
28683// AsContainerInstanceEvent is the BasicFabricEvent implementation for NodeOpenSucceededEvent.
28684func (nose NodeOpenSucceededEvent) AsContainerInstanceEvent() (*ContainerInstanceEvent, bool) {
28685	return nil, false
28686}
28687
28688// AsNodeEvent is the BasicFabricEvent implementation for NodeOpenSucceededEvent.
28689func (nose NodeOpenSucceededEvent) AsNodeEvent() (*NodeEvent, bool) {
28690	return nil, false
28691}
28692
28693// AsBasicNodeEvent is the BasicFabricEvent implementation for NodeOpenSucceededEvent.
28694func (nose NodeOpenSucceededEvent) AsBasicNodeEvent() (BasicNodeEvent, bool) {
28695	return &nose, true
28696}
28697
28698// AsPartitionAnalysisEvent is the BasicFabricEvent implementation for NodeOpenSucceededEvent.
28699func (nose NodeOpenSucceededEvent) AsPartitionAnalysisEvent() (*PartitionAnalysisEvent, bool) {
28700	return nil, false
28701}
28702
28703// AsBasicPartitionAnalysisEvent is the BasicFabricEvent implementation for NodeOpenSucceededEvent.
28704func (nose NodeOpenSucceededEvent) AsBasicPartitionAnalysisEvent() (BasicPartitionAnalysisEvent, bool) {
28705	return nil, false
28706}
28707
28708// AsPartitionEvent is the BasicFabricEvent implementation for NodeOpenSucceededEvent.
28709func (nose NodeOpenSucceededEvent) AsPartitionEvent() (*PartitionEvent, bool) {
28710	return nil, false
28711}
28712
28713// AsBasicPartitionEvent is the BasicFabricEvent implementation for NodeOpenSucceededEvent.
28714func (nose NodeOpenSucceededEvent) AsBasicPartitionEvent() (BasicPartitionEvent, bool) {
28715	return nil, false
28716}
28717
28718// AsReplicaEvent is the BasicFabricEvent implementation for NodeOpenSucceededEvent.
28719func (nose NodeOpenSucceededEvent) AsReplicaEvent() (*ReplicaEvent, bool) {
28720	return nil, false
28721}
28722
28723// AsBasicReplicaEvent is the BasicFabricEvent implementation for NodeOpenSucceededEvent.
28724func (nose NodeOpenSucceededEvent) AsBasicReplicaEvent() (BasicReplicaEvent, bool) {
28725	return nil, false
28726}
28727
28728// AsServiceEvent is the BasicFabricEvent implementation for NodeOpenSucceededEvent.
28729func (nose NodeOpenSucceededEvent) AsServiceEvent() (*ServiceEvent, bool) {
28730	return nil, false
28731}
28732
28733// AsBasicServiceEvent is the BasicFabricEvent implementation for NodeOpenSucceededEvent.
28734func (nose NodeOpenSucceededEvent) AsBasicServiceEvent() (BasicServiceEvent, bool) {
28735	return nil, false
28736}
28737
28738// AsApplicationCreatedEvent is the BasicFabricEvent implementation for NodeOpenSucceededEvent.
28739func (nose NodeOpenSucceededEvent) AsApplicationCreatedEvent() (*ApplicationCreatedEvent, bool) {
28740	return nil, false
28741}
28742
28743// AsApplicationDeletedEvent is the BasicFabricEvent implementation for NodeOpenSucceededEvent.
28744func (nose NodeOpenSucceededEvent) AsApplicationDeletedEvent() (*ApplicationDeletedEvent, bool) {
28745	return nil, false
28746}
28747
28748// AsApplicationNewHealthReportEvent is the BasicFabricEvent implementation for NodeOpenSucceededEvent.
28749func (nose NodeOpenSucceededEvent) AsApplicationNewHealthReportEvent() (*ApplicationNewHealthReportEvent, bool) {
28750	return nil, false
28751}
28752
28753// AsApplicationHealthReportExpiredEvent is the BasicFabricEvent implementation for NodeOpenSucceededEvent.
28754func (nose NodeOpenSucceededEvent) AsApplicationHealthReportExpiredEvent() (*ApplicationHealthReportExpiredEvent, bool) {
28755	return nil, false
28756}
28757
28758// AsApplicationUpgradeCompletedEvent is the BasicFabricEvent implementation for NodeOpenSucceededEvent.
28759func (nose NodeOpenSucceededEvent) AsApplicationUpgradeCompletedEvent() (*ApplicationUpgradeCompletedEvent, bool) {
28760	return nil, false
28761}
28762
28763// AsApplicationUpgradeDomainCompletedEvent is the BasicFabricEvent implementation for NodeOpenSucceededEvent.
28764func (nose NodeOpenSucceededEvent) AsApplicationUpgradeDomainCompletedEvent() (*ApplicationUpgradeDomainCompletedEvent, bool) {
28765	return nil, false
28766}
28767
28768// AsApplicationUpgradeRollbackCompletedEvent is the BasicFabricEvent implementation for NodeOpenSucceededEvent.
28769func (nose NodeOpenSucceededEvent) AsApplicationUpgradeRollbackCompletedEvent() (*ApplicationUpgradeRollbackCompletedEvent, bool) {
28770	return nil, false
28771}
28772
28773// AsApplicationUpgradeRollbackStartedEvent is the BasicFabricEvent implementation for NodeOpenSucceededEvent.
28774func (nose NodeOpenSucceededEvent) AsApplicationUpgradeRollbackStartedEvent() (*ApplicationUpgradeRollbackStartedEvent, bool) {
28775	return nil, false
28776}
28777
28778// AsApplicationUpgradeStartedEvent is the BasicFabricEvent implementation for NodeOpenSucceededEvent.
28779func (nose NodeOpenSucceededEvent) AsApplicationUpgradeStartedEvent() (*ApplicationUpgradeStartedEvent, bool) {
28780	return nil, false
28781}
28782
28783// AsDeployedApplicationNewHealthReportEvent is the BasicFabricEvent implementation for NodeOpenSucceededEvent.
28784func (nose NodeOpenSucceededEvent) AsDeployedApplicationNewHealthReportEvent() (*DeployedApplicationNewHealthReportEvent, bool) {
28785	return nil, false
28786}
28787
28788// AsDeployedApplicationHealthReportExpiredEvent is the BasicFabricEvent implementation for NodeOpenSucceededEvent.
28789func (nose NodeOpenSucceededEvent) AsDeployedApplicationHealthReportExpiredEvent() (*DeployedApplicationHealthReportExpiredEvent, bool) {
28790	return nil, false
28791}
28792
28793// AsApplicationProcessExitedEvent is the BasicFabricEvent implementation for NodeOpenSucceededEvent.
28794func (nose NodeOpenSucceededEvent) AsApplicationProcessExitedEvent() (*ApplicationProcessExitedEvent, bool) {
28795	return nil, false
28796}
28797
28798// AsApplicationContainerInstanceExitedEvent is the BasicFabricEvent implementation for NodeOpenSucceededEvent.
28799func (nose NodeOpenSucceededEvent) AsApplicationContainerInstanceExitedEvent() (*ApplicationContainerInstanceExitedEvent, bool) {
28800	return nil, false
28801}
28802
28803// AsNodeAbortedEvent is the BasicFabricEvent implementation for NodeOpenSucceededEvent.
28804func (nose NodeOpenSucceededEvent) AsNodeAbortedEvent() (*NodeAbortedEvent, bool) {
28805	return nil, false
28806}
28807
28808// AsNodeAddedToClusterEvent is the BasicFabricEvent implementation for NodeOpenSucceededEvent.
28809func (nose NodeOpenSucceededEvent) AsNodeAddedToClusterEvent() (*NodeAddedToClusterEvent, bool) {
28810	return nil, false
28811}
28812
28813// AsNodeClosedEvent is the BasicFabricEvent implementation for NodeOpenSucceededEvent.
28814func (nose NodeOpenSucceededEvent) AsNodeClosedEvent() (*NodeClosedEvent, bool) {
28815	return nil, false
28816}
28817
28818// AsNodeDeactivateCompletedEvent is the BasicFabricEvent implementation for NodeOpenSucceededEvent.
28819func (nose NodeOpenSucceededEvent) AsNodeDeactivateCompletedEvent() (*NodeDeactivateCompletedEvent, bool) {
28820	return nil, false
28821}
28822
28823// AsNodeDeactivateStartedEvent is the BasicFabricEvent implementation for NodeOpenSucceededEvent.
28824func (nose NodeOpenSucceededEvent) AsNodeDeactivateStartedEvent() (*NodeDeactivateStartedEvent, bool) {
28825	return nil, false
28826}
28827
28828// AsNodeDownEvent is the BasicFabricEvent implementation for NodeOpenSucceededEvent.
28829func (nose NodeOpenSucceededEvent) AsNodeDownEvent() (*NodeDownEvent, bool) {
28830	return nil, false
28831}
28832
28833// AsNodeNewHealthReportEvent is the BasicFabricEvent implementation for NodeOpenSucceededEvent.
28834func (nose NodeOpenSucceededEvent) AsNodeNewHealthReportEvent() (*NodeNewHealthReportEvent, bool) {
28835	return nil, false
28836}
28837
28838// AsNodeHealthReportExpiredEvent is the BasicFabricEvent implementation for NodeOpenSucceededEvent.
28839func (nose NodeOpenSucceededEvent) AsNodeHealthReportExpiredEvent() (*NodeHealthReportExpiredEvent, bool) {
28840	return nil, false
28841}
28842
28843// AsNodeOpenSucceededEvent is the BasicFabricEvent implementation for NodeOpenSucceededEvent.
28844func (nose NodeOpenSucceededEvent) AsNodeOpenSucceededEvent() (*NodeOpenSucceededEvent, bool) {
28845	return &nose, true
28846}
28847
28848// AsNodeOpenFailedEvent is the BasicFabricEvent implementation for NodeOpenSucceededEvent.
28849func (nose NodeOpenSucceededEvent) AsNodeOpenFailedEvent() (*NodeOpenFailedEvent, bool) {
28850	return nil, false
28851}
28852
28853// AsNodeRemovedFromClusterEvent is the BasicFabricEvent implementation for NodeOpenSucceededEvent.
28854func (nose NodeOpenSucceededEvent) AsNodeRemovedFromClusterEvent() (*NodeRemovedFromClusterEvent, bool) {
28855	return nil, false
28856}
28857
28858// AsNodeUpEvent is the BasicFabricEvent implementation for NodeOpenSucceededEvent.
28859func (nose NodeOpenSucceededEvent) AsNodeUpEvent() (*NodeUpEvent, bool) {
28860	return nil, false
28861}
28862
28863// AsPartitionNewHealthReportEvent is the BasicFabricEvent implementation for NodeOpenSucceededEvent.
28864func (nose NodeOpenSucceededEvent) AsPartitionNewHealthReportEvent() (*PartitionNewHealthReportEvent, bool) {
28865	return nil, false
28866}
28867
28868// AsPartitionHealthReportExpiredEvent is the BasicFabricEvent implementation for NodeOpenSucceededEvent.
28869func (nose NodeOpenSucceededEvent) AsPartitionHealthReportExpiredEvent() (*PartitionHealthReportExpiredEvent, bool) {
28870	return nil, false
28871}
28872
28873// AsPartitionReconfiguredEvent is the BasicFabricEvent implementation for NodeOpenSucceededEvent.
28874func (nose NodeOpenSucceededEvent) AsPartitionReconfiguredEvent() (*PartitionReconfiguredEvent, bool) {
28875	return nil, false
28876}
28877
28878// AsPartitionPrimaryMoveAnalysisEvent is the BasicFabricEvent implementation for NodeOpenSucceededEvent.
28879func (nose NodeOpenSucceededEvent) AsPartitionPrimaryMoveAnalysisEvent() (*PartitionPrimaryMoveAnalysisEvent, bool) {
28880	return nil, false
28881}
28882
28883// AsServiceCreatedEvent is the BasicFabricEvent implementation for NodeOpenSucceededEvent.
28884func (nose NodeOpenSucceededEvent) AsServiceCreatedEvent() (*ServiceCreatedEvent, bool) {
28885	return nil, false
28886}
28887
28888// AsServiceDeletedEvent is the BasicFabricEvent implementation for NodeOpenSucceededEvent.
28889func (nose NodeOpenSucceededEvent) AsServiceDeletedEvent() (*ServiceDeletedEvent, bool) {
28890	return nil, false
28891}
28892
28893// AsServiceNewHealthReportEvent is the BasicFabricEvent implementation for NodeOpenSucceededEvent.
28894func (nose NodeOpenSucceededEvent) AsServiceNewHealthReportEvent() (*ServiceNewHealthReportEvent, bool) {
28895	return nil, false
28896}
28897
28898// AsServiceHealthReportExpiredEvent is the BasicFabricEvent implementation for NodeOpenSucceededEvent.
28899func (nose NodeOpenSucceededEvent) AsServiceHealthReportExpiredEvent() (*ServiceHealthReportExpiredEvent, bool) {
28900	return nil, false
28901}
28902
28903// AsDeployedServicePackageNewHealthReportEvent is the BasicFabricEvent implementation for NodeOpenSucceededEvent.
28904func (nose NodeOpenSucceededEvent) AsDeployedServicePackageNewHealthReportEvent() (*DeployedServicePackageNewHealthReportEvent, bool) {
28905	return nil, false
28906}
28907
28908// AsDeployedServicePackageHealthReportExpiredEvent is the BasicFabricEvent implementation for NodeOpenSucceededEvent.
28909func (nose NodeOpenSucceededEvent) AsDeployedServicePackageHealthReportExpiredEvent() (*DeployedServicePackageHealthReportExpiredEvent, bool) {
28910	return nil, false
28911}
28912
28913// AsStatefulReplicaNewHealthReportEvent is the BasicFabricEvent implementation for NodeOpenSucceededEvent.
28914func (nose NodeOpenSucceededEvent) AsStatefulReplicaNewHealthReportEvent() (*StatefulReplicaNewHealthReportEvent, bool) {
28915	return nil, false
28916}
28917
28918// AsStatefulReplicaHealthReportExpiredEvent is the BasicFabricEvent implementation for NodeOpenSucceededEvent.
28919func (nose NodeOpenSucceededEvent) AsStatefulReplicaHealthReportExpiredEvent() (*StatefulReplicaHealthReportExpiredEvent, bool) {
28920	return nil, false
28921}
28922
28923// AsStatelessReplicaNewHealthReportEvent is the BasicFabricEvent implementation for NodeOpenSucceededEvent.
28924func (nose NodeOpenSucceededEvent) AsStatelessReplicaNewHealthReportEvent() (*StatelessReplicaNewHealthReportEvent, bool) {
28925	return nil, false
28926}
28927
28928// AsStatelessReplicaHealthReportExpiredEvent is the BasicFabricEvent implementation for NodeOpenSucceededEvent.
28929func (nose NodeOpenSucceededEvent) AsStatelessReplicaHealthReportExpiredEvent() (*StatelessReplicaHealthReportExpiredEvent, bool) {
28930	return nil, false
28931}
28932
28933// AsClusterNewHealthReportEvent is the BasicFabricEvent implementation for NodeOpenSucceededEvent.
28934func (nose NodeOpenSucceededEvent) AsClusterNewHealthReportEvent() (*ClusterNewHealthReportEvent, bool) {
28935	return nil, false
28936}
28937
28938// AsClusterHealthReportExpiredEvent is the BasicFabricEvent implementation for NodeOpenSucceededEvent.
28939func (nose NodeOpenSucceededEvent) AsClusterHealthReportExpiredEvent() (*ClusterHealthReportExpiredEvent, bool) {
28940	return nil, false
28941}
28942
28943// AsClusterUpgradeCompletedEvent is the BasicFabricEvent implementation for NodeOpenSucceededEvent.
28944func (nose NodeOpenSucceededEvent) AsClusterUpgradeCompletedEvent() (*ClusterUpgradeCompletedEvent, bool) {
28945	return nil, false
28946}
28947
28948// AsClusterUpgradeDomainCompletedEvent is the BasicFabricEvent implementation for NodeOpenSucceededEvent.
28949func (nose NodeOpenSucceededEvent) AsClusterUpgradeDomainCompletedEvent() (*ClusterUpgradeDomainCompletedEvent, bool) {
28950	return nil, false
28951}
28952
28953// AsClusterUpgradeRollbackCompletedEvent is the BasicFabricEvent implementation for NodeOpenSucceededEvent.
28954func (nose NodeOpenSucceededEvent) AsClusterUpgradeRollbackCompletedEvent() (*ClusterUpgradeRollbackCompletedEvent, bool) {
28955	return nil, false
28956}
28957
28958// AsClusterUpgradeRollbackStartedEvent is the BasicFabricEvent implementation for NodeOpenSucceededEvent.
28959func (nose NodeOpenSucceededEvent) AsClusterUpgradeRollbackStartedEvent() (*ClusterUpgradeRollbackStartedEvent, bool) {
28960	return nil, false
28961}
28962
28963// AsClusterUpgradeStartedEvent is the BasicFabricEvent implementation for NodeOpenSucceededEvent.
28964func (nose NodeOpenSucceededEvent) AsClusterUpgradeStartedEvent() (*ClusterUpgradeStartedEvent, bool) {
28965	return nil, false
28966}
28967
28968// AsChaosStoppedEvent is the BasicFabricEvent implementation for NodeOpenSucceededEvent.
28969func (nose NodeOpenSucceededEvent) AsChaosStoppedEvent() (*ChaosStoppedEvent, bool) {
28970	return nil, false
28971}
28972
28973// AsChaosStartedEvent is the BasicFabricEvent implementation for NodeOpenSucceededEvent.
28974func (nose NodeOpenSucceededEvent) AsChaosStartedEvent() (*ChaosStartedEvent, bool) {
28975	return nil, false
28976}
28977
28978// AsChaosCodePackageRestartScheduledEvent is the BasicFabricEvent implementation for NodeOpenSucceededEvent.
28979func (nose NodeOpenSucceededEvent) AsChaosCodePackageRestartScheduledEvent() (*ChaosCodePackageRestartScheduledEvent, bool) {
28980	return nil, false
28981}
28982
28983// AsChaosReplicaRemovalScheduledEvent is the BasicFabricEvent implementation for NodeOpenSucceededEvent.
28984func (nose NodeOpenSucceededEvent) AsChaosReplicaRemovalScheduledEvent() (*ChaosReplicaRemovalScheduledEvent, bool) {
28985	return nil, false
28986}
28987
28988// AsChaosPartitionSecondaryMoveScheduledEvent is the BasicFabricEvent implementation for NodeOpenSucceededEvent.
28989func (nose NodeOpenSucceededEvent) AsChaosPartitionSecondaryMoveScheduledEvent() (*ChaosPartitionSecondaryMoveScheduledEvent, bool) {
28990	return nil, false
28991}
28992
28993// AsChaosPartitionPrimaryMoveScheduledEvent is the BasicFabricEvent implementation for NodeOpenSucceededEvent.
28994func (nose NodeOpenSucceededEvent) AsChaosPartitionPrimaryMoveScheduledEvent() (*ChaosPartitionPrimaryMoveScheduledEvent, bool) {
28995	return nil, false
28996}
28997
28998// AsChaosReplicaRestartScheduledEvent is the BasicFabricEvent implementation for NodeOpenSucceededEvent.
28999func (nose NodeOpenSucceededEvent) AsChaosReplicaRestartScheduledEvent() (*ChaosReplicaRestartScheduledEvent, bool) {
29000	return nil, false
29001}
29002
29003// AsChaosNodeRestartScheduledEvent is the BasicFabricEvent implementation for NodeOpenSucceededEvent.
29004func (nose NodeOpenSucceededEvent) AsChaosNodeRestartScheduledEvent() (*ChaosNodeRestartScheduledEvent, bool) {
29005	return nil, false
29006}
29007
29008// AsFabricEvent is the BasicFabricEvent implementation for NodeOpenSucceededEvent.
29009func (nose NodeOpenSucceededEvent) AsFabricEvent() (*FabricEvent, bool) {
29010	return nil, false
29011}
29012
29013// AsBasicFabricEvent is the BasicFabricEvent implementation for NodeOpenSucceededEvent.
29014func (nose NodeOpenSucceededEvent) AsBasicFabricEvent() (BasicFabricEvent, bool) {
29015	return &nose, true
29016}
29017
29018// NodeRemovedFromClusterEvent node Removed event.
29019type NodeRemovedFromClusterEvent struct {
29020	// NodeID - Id of Node.
29021	NodeID *string `json:"NodeId,omitempty"`
29022	// NodeInstance - Id of Node instance.
29023	NodeInstance *int64 `json:"NodeInstance,omitempty"`
29024	// NodeType - Type of Node.
29025	NodeType *string `json:"NodeType,omitempty"`
29026	// FabricVersion - Fabric version.
29027	FabricVersion *string `json:"FabricVersion,omitempty"`
29028	// IPAddressOrFQDN - IP address or FQDN.
29029	IPAddressOrFQDN *string `json:"IpAddressOrFQDN,omitempty"`
29030	// NodeCapacities - Capacities.
29031	NodeCapacities *string `json:"NodeCapacities,omitempty"`
29032	// NodeName - The name of a Service Fabric node.
29033	NodeName *string `json:"NodeName,omitempty"`
29034	// EventInstanceID - The identifier for the FabricEvent instance.
29035	EventInstanceID *uuid.UUID `json:"EventInstanceId,omitempty"`
29036	// Category - The category of event.
29037	Category *string `json:"Category,omitempty"`
29038	// TimeStamp - The time event was logged.
29039	TimeStamp *date.Time `json:"TimeStamp,omitempty"`
29040	// HasCorrelatedEvents - Shows there is existing related events available.
29041	HasCorrelatedEvents *bool `json:"HasCorrelatedEvents,omitempty"`
29042	// 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'
29043	Kind KindBasicFabricEvent `json:"Kind,omitempty"`
29044}
29045
29046// MarshalJSON is the custom marshaler for NodeRemovedFromClusterEvent.
29047func (nrfce NodeRemovedFromClusterEvent) MarshalJSON() ([]byte, error) {
29048	nrfce.Kind = KindNodeRemovedFromCluster
29049	objectMap := make(map[string]interface{})
29050	if nrfce.NodeID != nil {
29051		objectMap["NodeId"] = nrfce.NodeID
29052	}
29053	if nrfce.NodeInstance != nil {
29054		objectMap["NodeInstance"] = nrfce.NodeInstance
29055	}
29056	if nrfce.NodeType != nil {
29057		objectMap["NodeType"] = nrfce.NodeType
29058	}
29059	if nrfce.FabricVersion != nil {
29060		objectMap["FabricVersion"] = nrfce.FabricVersion
29061	}
29062	if nrfce.IPAddressOrFQDN != nil {
29063		objectMap["IpAddressOrFQDN"] = nrfce.IPAddressOrFQDN
29064	}
29065	if nrfce.NodeCapacities != nil {
29066		objectMap["NodeCapacities"] = nrfce.NodeCapacities
29067	}
29068	if nrfce.NodeName != nil {
29069		objectMap["NodeName"] = nrfce.NodeName
29070	}
29071	if nrfce.EventInstanceID != nil {
29072		objectMap["EventInstanceId"] = nrfce.EventInstanceID
29073	}
29074	if nrfce.Category != nil {
29075		objectMap["Category"] = nrfce.Category
29076	}
29077	if nrfce.TimeStamp != nil {
29078		objectMap["TimeStamp"] = nrfce.TimeStamp
29079	}
29080	if nrfce.HasCorrelatedEvents != nil {
29081		objectMap["HasCorrelatedEvents"] = nrfce.HasCorrelatedEvents
29082	}
29083	if nrfce.Kind != "" {
29084		objectMap["Kind"] = nrfce.Kind
29085	}
29086	return json.Marshal(objectMap)
29087}
29088
29089// AsApplicationEvent is the BasicFabricEvent implementation for NodeRemovedFromClusterEvent.
29090func (nrfce NodeRemovedFromClusterEvent) AsApplicationEvent() (*ApplicationEvent, bool) {
29091	return nil, false
29092}
29093
29094// AsBasicApplicationEvent is the BasicFabricEvent implementation for NodeRemovedFromClusterEvent.
29095func (nrfce NodeRemovedFromClusterEvent) AsBasicApplicationEvent() (BasicApplicationEvent, bool) {
29096	return nil, false
29097}
29098
29099// AsClusterEvent is the BasicFabricEvent implementation for NodeRemovedFromClusterEvent.
29100func (nrfce NodeRemovedFromClusterEvent) AsClusterEvent() (*ClusterEvent, bool) {
29101	return nil, false
29102}
29103
29104// AsBasicClusterEvent is the BasicFabricEvent implementation for NodeRemovedFromClusterEvent.
29105func (nrfce NodeRemovedFromClusterEvent) AsBasicClusterEvent() (BasicClusterEvent, bool) {
29106	return nil, false
29107}
29108
29109// AsContainerInstanceEvent is the BasicFabricEvent implementation for NodeRemovedFromClusterEvent.
29110func (nrfce NodeRemovedFromClusterEvent) AsContainerInstanceEvent() (*ContainerInstanceEvent, bool) {
29111	return nil, false
29112}
29113
29114// AsNodeEvent is the BasicFabricEvent implementation for NodeRemovedFromClusterEvent.
29115func (nrfce NodeRemovedFromClusterEvent) AsNodeEvent() (*NodeEvent, bool) {
29116	return nil, false
29117}
29118
29119// AsBasicNodeEvent is the BasicFabricEvent implementation for NodeRemovedFromClusterEvent.
29120func (nrfce NodeRemovedFromClusterEvent) AsBasicNodeEvent() (BasicNodeEvent, bool) {
29121	return &nrfce, true
29122}
29123
29124// AsPartitionAnalysisEvent is the BasicFabricEvent implementation for NodeRemovedFromClusterEvent.
29125func (nrfce NodeRemovedFromClusterEvent) AsPartitionAnalysisEvent() (*PartitionAnalysisEvent, bool) {
29126	return nil, false
29127}
29128
29129// AsBasicPartitionAnalysisEvent is the BasicFabricEvent implementation for NodeRemovedFromClusterEvent.
29130func (nrfce NodeRemovedFromClusterEvent) AsBasicPartitionAnalysisEvent() (BasicPartitionAnalysisEvent, bool) {
29131	return nil, false
29132}
29133
29134// AsPartitionEvent is the BasicFabricEvent implementation for NodeRemovedFromClusterEvent.
29135func (nrfce NodeRemovedFromClusterEvent) AsPartitionEvent() (*PartitionEvent, bool) {
29136	return nil, false
29137}
29138
29139// AsBasicPartitionEvent is the BasicFabricEvent implementation for NodeRemovedFromClusterEvent.
29140func (nrfce NodeRemovedFromClusterEvent) AsBasicPartitionEvent() (BasicPartitionEvent, bool) {
29141	return nil, false
29142}
29143
29144// AsReplicaEvent is the BasicFabricEvent implementation for NodeRemovedFromClusterEvent.
29145func (nrfce NodeRemovedFromClusterEvent) AsReplicaEvent() (*ReplicaEvent, bool) {
29146	return nil, false
29147}
29148
29149// AsBasicReplicaEvent is the BasicFabricEvent implementation for NodeRemovedFromClusterEvent.
29150func (nrfce NodeRemovedFromClusterEvent) AsBasicReplicaEvent() (BasicReplicaEvent, bool) {
29151	return nil, false
29152}
29153
29154// AsServiceEvent is the BasicFabricEvent implementation for NodeRemovedFromClusterEvent.
29155func (nrfce NodeRemovedFromClusterEvent) AsServiceEvent() (*ServiceEvent, bool) {
29156	return nil, false
29157}
29158
29159// AsBasicServiceEvent is the BasicFabricEvent implementation for NodeRemovedFromClusterEvent.
29160func (nrfce NodeRemovedFromClusterEvent) AsBasicServiceEvent() (BasicServiceEvent, bool) {
29161	return nil, false
29162}
29163
29164// AsApplicationCreatedEvent is the BasicFabricEvent implementation for NodeRemovedFromClusterEvent.
29165func (nrfce NodeRemovedFromClusterEvent) AsApplicationCreatedEvent() (*ApplicationCreatedEvent, bool) {
29166	return nil, false
29167}
29168
29169// AsApplicationDeletedEvent is the BasicFabricEvent implementation for NodeRemovedFromClusterEvent.
29170func (nrfce NodeRemovedFromClusterEvent) AsApplicationDeletedEvent() (*ApplicationDeletedEvent, bool) {
29171	return nil, false
29172}
29173
29174// AsApplicationNewHealthReportEvent is the BasicFabricEvent implementation for NodeRemovedFromClusterEvent.
29175func (nrfce NodeRemovedFromClusterEvent) AsApplicationNewHealthReportEvent() (*ApplicationNewHealthReportEvent, bool) {
29176	return nil, false
29177}
29178
29179// AsApplicationHealthReportExpiredEvent is the BasicFabricEvent implementation for NodeRemovedFromClusterEvent.
29180func (nrfce NodeRemovedFromClusterEvent) AsApplicationHealthReportExpiredEvent() (*ApplicationHealthReportExpiredEvent, bool) {
29181	return nil, false
29182}
29183
29184// AsApplicationUpgradeCompletedEvent is the BasicFabricEvent implementation for NodeRemovedFromClusterEvent.
29185func (nrfce NodeRemovedFromClusterEvent) AsApplicationUpgradeCompletedEvent() (*ApplicationUpgradeCompletedEvent, bool) {
29186	return nil, false
29187}
29188
29189// AsApplicationUpgradeDomainCompletedEvent is the BasicFabricEvent implementation for NodeRemovedFromClusterEvent.
29190func (nrfce NodeRemovedFromClusterEvent) AsApplicationUpgradeDomainCompletedEvent() (*ApplicationUpgradeDomainCompletedEvent, bool) {
29191	return nil, false
29192}
29193
29194// AsApplicationUpgradeRollbackCompletedEvent is the BasicFabricEvent implementation for NodeRemovedFromClusterEvent.
29195func (nrfce NodeRemovedFromClusterEvent) AsApplicationUpgradeRollbackCompletedEvent() (*ApplicationUpgradeRollbackCompletedEvent, bool) {
29196	return nil, false
29197}
29198
29199// AsApplicationUpgradeRollbackStartedEvent is the BasicFabricEvent implementation for NodeRemovedFromClusterEvent.
29200func (nrfce NodeRemovedFromClusterEvent) AsApplicationUpgradeRollbackStartedEvent() (*ApplicationUpgradeRollbackStartedEvent, bool) {
29201	return nil, false
29202}
29203
29204// AsApplicationUpgradeStartedEvent is the BasicFabricEvent implementation for NodeRemovedFromClusterEvent.
29205func (nrfce NodeRemovedFromClusterEvent) AsApplicationUpgradeStartedEvent() (*ApplicationUpgradeStartedEvent, bool) {
29206	return nil, false
29207}
29208
29209// AsDeployedApplicationNewHealthReportEvent is the BasicFabricEvent implementation for NodeRemovedFromClusterEvent.
29210func (nrfce NodeRemovedFromClusterEvent) AsDeployedApplicationNewHealthReportEvent() (*DeployedApplicationNewHealthReportEvent, bool) {
29211	return nil, false
29212}
29213
29214// AsDeployedApplicationHealthReportExpiredEvent is the BasicFabricEvent implementation for NodeRemovedFromClusterEvent.
29215func (nrfce NodeRemovedFromClusterEvent) AsDeployedApplicationHealthReportExpiredEvent() (*DeployedApplicationHealthReportExpiredEvent, bool) {
29216	return nil, false
29217}
29218
29219// AsApplicationProcessExitedEvent is the BasicFabricEvent implementation for NodeRemovedFromClusterEvent.
29220func (nrfce NodeRemovedFromClusterEvent) AsApplicationProcessExitedEvent() (*ApplicationProcessExitedEvent, bool) {
29221	return nil, false
29222}
29223
29224// AsApplicationContainerInstanceExitedEvent is the BasicFabricEvent implementation for NodeRemovedFromClusterEvent.
29225func (nrfce NodeRemovedFromClusterEvent) AsApplicationContainerInstanceExitedEvent() (*ApplicationContainerInstanceExitedEvent, bool) {
29226	return nil, false
29227}
29228
29229// AsNodeAbortedEvent is the BasicFabricEvent implementation for NodeRemovedFromClusterEvent.
29230func (nrfce NodeRemovedFromClusterEvent) AsNodeAbortedEvent() (*NodeAbortedEvent, bool) {
29231	return nil, false
29232}
29233
29234// AsNodeAddedToClusterEvent is the BasicFabricEvent implementation for NodeRemovedFromClusterEvent.
29235func (nrfce NodeRemovedFromClusterEvent) AsNodeAddedToClusterEvent() (*NodeAddedToClusterEvent, bool) {
29236	return nil, false
29237}
29238
29239// AsNodeClosedEvent is the BasicFabricEvent implementation for NodeRemovedFromClusterEvent.
29240func (nrfce NodeRemovedFromClusterEvent) AsNodeClosedEvent() (*NodeClosedEvent, bool) {
29241	return nil, false
29242}
29243
29244// AsNodeDeactivateCompletedEvent is the BasicFabricEvent implementation for NodeRemovedFromClusterEvent.
29245func (nrfce NodeRemovedFromClusterEvent) AsNodeDeactivateCompletedEvent() (*NodeDeactivateCompletedEvent, bool) {
29246	return nil, false
29247}
29248
29249// AsNodeDeactivateStartedEvent is the BasicFabricEvent implementation for NodeRemovedFromClusterEvent.
29250func (nrfce NodeRemovedFromClusterEvent) AsNodeDeactivateStartedEvent() (*NodeDeactivateStartedEvent, bool) {
29251	return nil, false
29252}
29253
29254// AsNodeDownEvent is the BasicFabricEvent implementation for NodeRemovedFromClusterEvent.
29255func (nrfce NodeRemovedFromClusterEvent) AsNodeDownEvent() (*NodeDownEvent, bool) {
29256	return nil, false
29257}
29258
29259// AsNodeNewHealthReportEvent is the BasicFabricEvent implementation for NodeRemovedFromClusterEvent.
29260func (nrfce NodeRemovedFromClusterEvent) AsNodeNewHealthReportEvent() (*NodeNewHealthReportEvent, bool) {
29261	return nil, false
29262}
29263
29264// AsNodeHealthReportExpiredEvent is the BasicFabricEvent implementation for NodeRemovedFromClusterEvent.
29265func (nrfce NodeRemovedFromClusterEvent) AsNodeHealthReportExpiredEvent() (*NodeHealthReportExpiredEvent, bool) {
29266	return nil, false
29267}
29268
29269// AsNodeOpenSucceededEvent is the BasicFabricEvent implementation for NodeRemovedFromClusterEvent.
29270func (nrfce NodeRemovedFromClusterEvent) AsNodeOpenSucceededEvent() (*NodeOpenSucceededEvent, bool) {
29271	return nil, false
29272}
29273
29274// AsNodeOpenFailedEvent is the BasicFabricEvent implementation for NodeRemovedFromClusterEvent.
29275func (nrfce NodeRemovedFromClusterEvent) AsNodeOpenFailedEvent() (*NodeOpenFailedEvent, bool) {
29276	return nil, false
29277}
29278
29279// AsNodeRemovedFromClusterEvent is the BasicFabricEvent implementation for NodeRemovedFromClusterEvent.
29280func (nrfce NodeRemovedFromClusterEvent) AsNodeRemovedFromClusterEvent() (*NodeRemovedFromClusterEvent, bool) {
29281	return &nrfce, true
29282}
29283
29284// AsNodeUpEvent is the BasicFabricEvent implementation for NodeRemovedFromClusterEvent.
29285func (nrfce NodeRemovedFromClusterEvent) AsNodeUpEvent() (*NodeUpEvent, bool) {
29286	return nil, false
29287}
29288
29289// AsPartitionNewHealthReportEvent is the BasicFabricEvent implementation for NodeRemovedFromClusterEvent.
29290func (nrfce NodeRemovedFromClusterEvent) AsPartitionNewHealthReportEvent() (*PartitionNewHealthReportEvent, bool) {
29291	return nil, false
29292}
29293
29294// AsPartitionHealthReportExpiredEvent is the BasicFabricEvent implementation for NodeRemovedFromClusterEvent.
29295func (nrfce NodeRemovedFromClusterEvent) AsPartitionHealthReportExpiredEvent() (*PartitionHealthReportExpiredEvent, bool) {
29296	return nil, false
29297}
29298
29299// AsPartitionReconfiguredEvent is the BasicFabricEvent implementation for NodeRemovedFromClusterEvent.
29300func (nrfce NodeRemovedFromClusterEvent) AsPartitionReconfiguredEvent() (*PartitionReconfiguredEvent, bool) {
29301	return nil, false
29302}
29303
29304// AsPartitionPrimaryMoveAnalysisEvent is the BasicFabricEvent implementation for NodeRemovedFromClusterEvent.
29305func (nrfce NodeRemovedFromClusterEvent) AsPartitionPrimaryMoveAnalysisEvent() (*PartitionPrimaryMoveAnalysisEvent, bool) {
29306	return nil, false
29307}
29308
29309// AsServiceCreatedEvent is the BasicFabricEvent implementation for NodeRemovedFromClusterEvent.
29310func (nrfce NodeRemovedFromClusterEvent) AsServiceCreatedEvent() (*ServiceCreatedEvent, bool) {
29311	return nil, false
29312}
29313
29314// AsServiceDeletedEvent is the BasicFabricEvent implementation for NodeRemovedFromClusterEvent.
29315func (nrfce NodeRemovedFromClusterEvent) AsServiceDeletedEvent() (*ServiceDeletedEvent, bool) {
29316	return nil, false
29317}
29318
29319// AsServiceNewHealthReportEvent is the BasicFabricEvent implementation for NodeRemovedFromClusterEvent.
29320func (nrfce NodeRemovedFromClusterEvent) AsServiceNewHealthReportEvent() (*ServiceNewHealthReportEvent, bool) {
29321	return nil, false
29322}
29323
29324// AsServiceHealthReportExpiredEvent is the BasicFabricEvent implementation for NodeRemovedFromClusterEvent.
29325func (nrfce NodeRemovedFromClusterEvent) AsServiceHealthReportExpiredEvent() (*ServiceHealthReportExpiredEvent, bool) {
29326	return nil, false
29327}
29328
29329// AsDeployedServicePackageNewHealthReportEvent is the BasicFabricEvent implementation for NodeRemovedFromClusterEvent.
29330func (nrfce NodeRemovedFromClusterEvent) AsDeployedServicePackageNewHealthReportEvent() (*DeployedServicePackageNewHealthReportEvent, bool) {
29331	return nil, false
29332}
29333
29334// AsDeployedServicePackageHealthReportExpiredEvent is the BasicFabricEvent implementation for NodeRemovedFromClusterEvent.
29335func (nrfce NodeRemovedFromClusterEvent) AsDeployedServicePackageHealthReportExpiredEvent() (*DeployedServicePackageHealthReportExpiredEvent, bool) {
29336	return nil, false
29337}
29338
29339// AsStatefulReplicaNewHealthReportEvent is the BasicFabricEvent implementation for NodeRemovedFromClusterEvent.
29340func (nrfce NodeRemovedFromClusterEvent) AsStatefulReplicaNewHealthReportEvent() (*StatefulReplicaNewHealthReportEvent, bool) {
29341	return nil, false
29342}
29343
29344// AsStatefulReplicaHealthReportExpiredEvent is the BasicFabricEvent implementation for NodeRemovedFromClusterEvent.
29345func (nrfce NodeRemovedFromClusterEvent) AsStatefulReplicaHealthReportExpiredEvent() (*StatefulReplicaHealthReportExpiredEvent, bool) {
29346	return nil, false
29347}
29348
29349// AsStatelessReplicaNewHealthReportEvent is the BasicFabricEvent implementation for NodeRemovedFromClusterEvent.
29350func (nrfce NodeRemovedFromClusterEvent) AsStatelessReplicaNewHealthReportEvent() (*StatelessReplicaNewHealthReportEvent, bool) {
29351	return nil, false
29352}
29353
29354// AsStatelessReplicaHealthReportExpiredEvent is the BasicFabricEvent implementation for NodeRemovedFromClusterEvent.
29355func (nrfce NodeRemovedFromClusterEvent) AsStatelessReplicaHealthReportExpiredEvent() (*StatelessReplicaHealthReportExpiredEvent, bool) {
29356	return nil, false
29357}
29358
29359// AsClusterNewHealthReportEvent is the BasicFabricEvent implementation for NodeRemovedFromClusterEvent.
29360func (nrfce NodeRemovedFromClusterEvent) AsClusterNewHealthReportEvent() (*ClusterNewHealthReportEvent, bool) {
29361	return nil, false
29362}
29363
29364// AsClusterHealthReportExpiredEvent is the BasicFabricEvent implementation for NodeRemovedFromClusterEvent.
29365func (nrfce NodeRemovedFromClusterEvent) AsClusterHealthReportExpiredEvent() (*ClusterHealthReportExpiredEvent, bool) {
29366	return nil, false
29367}
29368
29369// AsClusterUpgradeCompletedEvent is the BasicFabricEvent implementation for NodeRemovedFromClusterEvent.
29370func (nrfce NodeRemovedFromClusterEvent) AsClusterUpgradeCompletedEvent() (*ClusterUpgradeCompletedEvent, bool) {
29371	return nil, false
29372}
29373
29374// AsClusterUpgradeDomainCompletedEvent is the BasicFabricEvent implementation for NodeRemovedFromClusterEvent.
29375func (nrfce NodeRemovedFromClusterEvent) AsClusterUpgradeDomainCompletedEvent() (*ClusterUpgradeDomainCompletedEvent, bool) {
29376	return nil, false
29377}
29378
29379// AsClusterUpgradeRollbackCompletedEvent is the BasicFabricEvent implementation for NodeRemovedFromClusterEvent.
29380func (nrfce NodeRemovedFromClusterEvent) AsClusterUpgradeRollbackCompletedEvent() (*ClusterUpgradeRollbackCompletedEvent, bool) {
29381	return nil, false
29382}
29383
29384// AsClusterUpgradeRollbackStartedEvent is the BasicFabricEvent implementation for NodeRemovedFromClusterEvent.
29385func (nrfce NodeRemovedFromClusterEvent) AsClusterUpgradeRollbackStartedEvent() (*ClusterUpgradeRollbackStartedEvent, bool) {
29386	return nil, false
29387}
29388
29389// AsClusterUpgradeStartedEvent is the BasicFabricEvent implementation for NodeRemovedFromClusterEvent.
29390func (nrfce NodeRemovedFromClusterEvent) AsClusterUpgradeStartedEvent() (*ClusterUpgradeStartedEvent, bool) {
29391	return nil, false
29392}
29393
29394// AsChaosStoppedEvent is the BasicFabricEvent implementation for NodeRemovedFromClusterEvent.
29395func (nrfce NodeRemovedFromClusterEvent) AsChaosStoppedEvent() (*ChaosStoppedEvent, bool) {
29396	return nil, false
29397}
29398
29399// AsChaosStartedEvent is the BasicFabricEvent implementation for NodeRemovedFromClusterEvent.
29400func (nrfce NodeRemovedFromClusterEvent) AsChaosStartedEvent() (*ChaosStartedEvent, bool) {
29401	return nil, false
29402}
29403
29404// AsChaosCodePackageRestartScheduledEvent is the BasicFabricEvent implementation for NodeRemovedFromClusterEvent.
29405func (nrfce NodeRemovedFromClusterEvent) AsChaosCodePackageRestartScheduledEvent() (*ChaosCodePackageRestartScheduledEvent, bool) {
29406	return nil, false
29407}
29408
29409// AsChaosReplicaRemovalScheduledEvent is the BasicFabricEvent implementation for NodeRemovedFromClusterEvent.
29410func (nrfce NodeRemovedFromClusterEvent) AsChaosReplicaRemovalScheduledEvent() (*ChaosReplicaRemovalScheduledEvent, bool) {
29411	return nil, false
29412}
29413
29414// AsChaosPartitionSecondaryMoveScheduledEvent is the BasicFabricEvent implementation for NodeRemovedFromClusterEvent.
29415func (nrfce NodeRemovedFromClusterEvent) AsChaosPartitionSecondaryMoveScheduledEvent() (*ChaosPartitionSecondaryMoveScheduledEvent, bool) {
29416	return nil, false
29417}
29418
29419// AsChaosPartitionPrimaryMoveScheduledEvent is the BasicFabricEvent implementation for NodeRemovedFromClusterEvent.
29420func (nrfce NodeRemovedFromClusterEvent) AsChaosPartitionPrimaryMoveScheduledEvent() (*ChaosPartitionPrimaryMoveScheduledEvent, bool) {
29421	return nil, false
29422}
29423
29424// AsChaosReplicaRestartScheduledEvent is the BasicFabricEvent implementation for NodeRemovedFromClusterEvent.
29425func (nrfce NodeRemovedFromClusterEvent) AsChaosReplicaRestartScheduledEvent() (*ChaosReplicaRestartScheduledEvent, bool) {
29426	return nil, false
29427}
29428
29429// AsChaosNodeRestartScheduledEvent is the BasicFabricEvent implementation for NodeRemovedFromClusterEvent.
29430func (nrfce NodeRemovedFromClusterEvent) AsChaosNodeRestartScheduledEvent() (*ChaosNodeRestartScheduledEvent, bool) {
29431	return nil, false
29432}
29433
29434// AsFabricEvent is the BasicFabricEvent implementation for NodeRemovedFromClusterEvent.
29435func (nrfce NodeRemovedFromClusterEvent) AsFabricEvent() (*FabricEvent, bool) {
29436	return nil, false
29437}
29438
29439// AsBasicFabricEvent is the BasicFabricEvent implementation for NodeRemovedFromClusterEvent.
29440func (nrfce NodeRemovedFromClusterEvent) AsBasicFabricEvent() (BasicFabricEvent, bool) {
29441	return &nrfce, true
29442}
29443
29444// NodeRepairImpactDescription describes the expected impact of a repair on a set of nodes.
29445//
29446// This type supports the Service Fabric platform; it is not meant to be used directly from your code.
29447type NodeRepairImpactDescription struct {
29448	// NodeImpactList - The list of nodes impacted by a repair action and their respective expected impact.
29449	NodeImpactList *[]NodeImpact `json:"NodeImpactList,omitempty"`
29450	// Kind - Possible values include: 'KindBasicRepairImpactDescriptionBaseKindRepairImpactDescriptionBase', 'KindBasicRepairImpactDescriptionBaseKindNode'
29451	Kind KindBasicRepairImpactDescriptionBase `json:"Kind,omitempty"`
29452}
29453
29454// MarshalJSON is the custom marshaler for NodeRepairImpactDescription.
29455func (nrid NodeRepairImpactDescription) MarshalJSON() ([]byte, error) {
29456	nrid.Kind = KindBasicRepairImpactDescriptionBaseKindNode
29457	objectMap := make(map[string]interface{})
29458	if nrid.NodeImpactList != nil {
29459		objectMap["NodeImpactList"] = nrid.NodeImpactList
29460	}
29461	if nrid.Kind != "" {
29462		objectMap["Kind"] = nrid.Kind
29463	}
29464	return json.Marshal(objectMap)
29465}
29466
29467// AsNodeRepairImpactDescription is the BasicRepairImpactDescriptionBase implementation for NodeRepairImpactDescription.
29468func (nrid NodeRepairImpactDescription) AsNodeRepairImpactDescription() (*NodeRepairImpactDescription, bool) {
29469	return &nrid, true
29470}
29471
29472// AsRepairImpactDescriptionBase is the BasicRepairImpactDescriptionBase implementation for NodeRepairImpactDescription.
29473func (nrid NodeRepairImpactDescription) AsRepairImpactDescriptionBase() (*RepairImpactDescriptionBase, bool) {
29474	return nil, false
29475}
29476
29477// AsBasicRepairImpactDescriptionBase is the BasicRepairImpactDescriptionBase implementation for NodeRepairImpactDescription.
29478func (nrid NodeRepairImpactDescription) AsBasicRepairImpactDescriptionBase() (BasicRepairImpactDescriptionBase, bool) {
29479	return &nrid, true
29480}
29481
29482// NodeRepairTargetDescription describes the list of nodes targeted by a repair action.
29483//
29484// This type supports the Service Fabric platform; it is not meant to be used directly from your code.
29485type NodeRepairTargetDescription struct {
29486	// NodeNames - The list of nodes targeted by a repair action.
29487	NodeNames *[]string `json:"NodeNames,omitempty"`
29488	// Kind - Possible values include: 'KindBasicRepairTargetDescriptionBaseKindRepairTargetDescriptionBase', 'KindBasicRepairTargetDescriptionBaseKindNode'
29489	Kind KindBasicRepairTargetDescriptionBase `json:"Kind,omitempty"`
29490}
29491
29492// MarshalJSON is the custom marshaler for NodeRepairTargetDescription.
29493func (nrtd NodeRepairTargetDescription) MarshalJSON() ([]byte, error) {
29494	nrtd.Kind = KindBasicRepairTargetDescriptionBaseKindNode
29495	objectMap := make(map[string]interface{})
29496	if nrtd.NodeNames != nil {
29497		objectMap["NodeNames"] = nrtd.NodeNames
29498	}
29499	if nrtd.Kind != "" {
29500		objectMap["Kind"] = nrtd.Kind
29501	}
29502	return json.Marshal(objectMap)
29503}
29504
29505// AsNodeRepairTargetDescription is the BasicRepairTargetDescriptionBase implementation for NodeRepairTargetDescription.
29506func (nrtd NodeRepairTargetDescription) AsNodeRepairTargetDescription() (*NodeRepairTargetDescription, bool) {
29507	return &nrtd, true
29508}
29509
29510// AsRepairTargetDescriptionBase is the BasicRepairTargetDescriptionBase implementation for NodeRepairTargetDescription.
29511func (nrtd NodeRepairTargetDescription) AsRepairTargetDescriptionBase() (*RepairTargetDescriptionBase, bool) {
29512	return nil, false
29513}
29514
29515// AsBasicRepairTargetDescriptionBase is the BasicRepairTargetDescriptionBase implementation for NodeRepairTargetDescription.
29516func (nrtd NodeRepairTargetDescription) AsBasicRepairTargetDescriptionBase() (BasicRepairTargetDescriptionBase, bool) {
29517	return &nrtd, true
29518}
29519
29520// NodeResult contains information about a node that was targeted by a user-induced operation.
29521type NodeResult struct {
29522	// NodeName - The name of a Service Fabric node.
29523	NodeName *string `json:"NodeName,omitempty"`
29524	// NodeInstanceID - The node instance id.
29525	NodeInstanceID *string `json:"NodeInstanceId,omitempty"`
29526}
29527
29528// NodesHealthEvaluation represents health evaluation for nodes, containing health evaluations for each
29529// unhealthy node that impacted current aggregated health state. Can be returned when evaluating cluster
29530// health and the aggregated health state is either Error or Warning.
29531type NodesHealthEvaluation struct {
29532	// MaxPercentUnhealthyNodes - Maximum allowed percentage of unhealthy nodes from the ClusterHealthPolicy.
29533	MaxPercentUnhealthyNodes *int32 `json:"MaxPercentUnhealthyNodes,omitempty"`
29534	// TotalCount - Total number of nodes found in the health store.
29535	TotalCount *int64 `json:"TotalCount,omitempty"`
29536	// UnhealthyEvaluations - List of unhealthy evaluations that led to the aggregated health state. Includes all the unhealthy NodeHealthEvaluation that impacted the aggregated health.
29537	UnhealthyEvaluations *[]HealthEvaluationWrapper `json:"UnhealthyEvaluations,omitempty"`
29538	// 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'
29539	AggregatedHealthState HealthState `json:"AggregatedHealthState,omitempty"`
29540	// Description - Description of the health evaluation, which represents a summary of the evaluation process.
29541	Description *string `json:"Description,omitempty"`
29542	// 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'
29543	Kind Kind `json:"Kind,omitempty"`
29544}
29545
29546// MarshalJSON is the custom marshaler for NodesHealthEvaluation.
29547func (nhe NodesHealthEvaluation) MarshalJSON() ([]byte, error) {
29548	nhe.Kind = KindNodes
29549	objectMap := make(map[string]interface{})
29550	if nhe.MaxPercentUnhealthyNodes != nil {
29551		objectMap["MaxPercentUnhealthyNodes"] = nhe.MaxPercentUnhealthyNodes
29552	}
29553	if nhe.TotalCount != nil {
29554		objectMap["TotalCount"] = nhe.TotalCount
29555	}
29556	if nhe.UnhealthyEvaluations != nil {
29557		objectMap["UnhealthyEvaluations"] = nhe.UnhealthyEvaluations
29558	}
29559	if nhe.AggregatedHealthState != "" {
29560		objectMap["AggregatedHealthState"] = nhe.AggregatedHealthState
29561	}
29562	if nhe.Description != nil {
29563		objectMap["Description"] = nhe.Description
29564	}
29565	if nhe.Kind != "" {
29566		objectMap["Kind"] = nhe.Kind
29567	}
29568	return json.Marshal(objectMap)
29569}
29570
29571// AsApplicationHealthEvaluation is the BasicHealthEvaluation implementation for NodesHealthEvaluation.
29572func (nhe NodesHealthEvaluation) AsApplicationHealthEvaluation() (*ApplicationHealthEvaluation, bool) {
29573	return nil, false
29574}
29575
29576// AsApplicationsHealthEvaluation is the BasicHealthEvaluation implementation for NodesHealthEvaluation.
29577func (nhe NodesHealthEvaluation) AsApplicationsHealthEvaluation() (*ApplicationsHealthEvaluation, bool) {
29578	return nil, false
29579}
29580
29581// AsApplicationTypeApplicationsHealthEvaluation is the BasicHealthEvaluation implementation for NodesHealthEvaluation.
29582func (nhe NodesHealthEvaluation) AsApplicationTypeApplicationsHealthEvaluation() (*ApplicationTypeApplicationsHealthEvaluation, bool) {
29583	return nil, false
29584}
29585
29586// AsDeltaNodesCheckHealthEvaluation is the BasicHealthEvaluation implementation for NodesHealthEvaluation.
29587func (nhe NodesHealthEvaluation) AsDeltaNodesCheckHealthEvaluation() (*DeltaNodesCheckHealthEvaluation, bool) {
29588	return nil, false
29589}
29590
29591// AsDeployedApplicationHealthEvaluation is the BasicHealthEvaluation implementation for NodesHealthEvaluation.
29592func (nhe NodesHealthEvaluation) AsDeployedApplicationHealthEvaluation() (*DeployedApplicationHealthEvaluation, bool) {
29593	return nil, false
29594}
29595
29596// AsDeployedApplicationsHealthEvaluation is the BasicHealthEvaluation implementation for NodesHealthEvaluation.
29597func (nhe NodesHealthEvaluation) AsDeployedApplicationsHealthEvaluation() (*DeployedApplicationsHealthEvaluation, bool) {
29598	return nil, false
29599}
29600
29601// AsDeployedServicePackageHealthEvaluation is the BasicHealthEvaluation implementation for NodesHealthEvaluation.
29602func (nhe NodesHealthEvaluation) AsDeployedServicePackageHealthEvaluation() (*DeployedServicePackageHealthEvaluation, bool) {
29603	return nil, false
29604}
29605
29606// AsDeployedServicePackagesHealthEvaluation is the BasicHealthEvaluation implementation for NodesHealthEvaluation.
29607func (nhe NodesHealthEvaluation) AsDeployedServicePackagesHealthEvaluation() (*DeployedServicePackagesHealthEvaluation, bool) {
29608	return nil, false
29609}
29610
29611// AsEventHealthEvaluation is the BasicHealthEvaluation implementation for NodesHealthEvaluation.
29612func (nhe NodesHealthEvaluation) AsEventHealthEvaluation() (*EventHealthEvaluation, bool) {
29613	return nil, false
29614}
29615
29616// AsNodeHealthEvaluation is the BasicHealthEvaluation implementation for NodesHealthEvaluation.
29617func (nhe NodesHealthEvaluation) AsNodeHealthEvaluation() (*NodeHealthEvaluation, bool) {
29618	return nil, false
29619}
29620
29621// AsNodesHealthEvaluation is the BasicHealthEvaluation implementation for NodesHealthEvaluation.
29622func (nhe NodesHealthEvaluation) AsNodesHealthEvaluation() (*NodesHealthEvaluation, bool) {
29623	return &nhe, true
29624}
29625
29626// AsPartitionHealthEvaluation is the BasicHealthEvaluation implementation for NodesHealthEvaluation.
29627func (nhe NodesHealthEvaluation) AsPartitionHealthEvaluation() (*PartitionHealthEvaluation, bool) {
29628	return nil, false
29629}
29630
29631// AsPartitionsHealthEvaluation is the BasicHealthEvaluation implementation for NodesHealthEvaluation.
29632func (nhe NodesHealthEvaluation) AsPartitionsHealthEvaluation() (*PartitionsHealthEvaluation, bool) {
29633	return nil, false
29634}
29635
29636// AsReplicaHealthEvaluation is the BasicHealthEvaluation implementation for NodesHealthEvaluation.
29637func (nhe NodesHealthEvaluation) AsReplicaHealthEvaluation() (*ReplicaHealthEvaluation, bool) {
29638	return nil, false
29639}
29640
29641// AsReplicasHealthEvaluation is the BasicHealthEvaluation implementation for NodesHealthEvaluation.
29642func (nhe NodesHealthEvaluation) AsReplicasHealthEvaluation() (*ReplicasHealthEvaluation, bool) {
29643	return nil, false
29644}
29645
29646// AsServiceHealthEvaluation is the BasicHealthEvaluation implementation for NodesHealthEvaluation.
29647func (nhe NodesHealthEvaluation) AsServiceHealthEvaluation() (*ServiceHealthEvaluation, bool) {
29648	return nil, false
29649}
29650
29651// AsServicesHealthEvaluation is the BasicHealthEvaluation implementation for NodesHealthEvaluation.
29652func (nhe NodesHealthEvaluation) AsServicesHealthEvaluation() (*ServicesHealthEvaluation, bool) {
29653	return nil, false
29654}
29655
29656// AsSystemApplicationHealthEvaluation is the BasicHealthEvaluation implementation for NodesHealthEvaluation.
29657func (nhe NodesHealthEvaluation) AsSystemApplicationHealthEvaluation() (*SystemApplicationHealthEvaluation, bool) {
29658	return nil, false
29659}
29660
29661// AsUpgradeDomainDeltaNodesCheckHealthEvaluation is the BasicHealthEvaluation implementation for NodesHealthEvaluation.
29662func (nhe NodesHealthEvaluation) AsUpgradeDomainDeltaNodesCheckHealthEvaluation() (*UpgradeDomainDeltaNodesCheckHealthEvaluation, bool) {
29663	return nil, false
29664}
29665
29666// AsUpgradeDomainNodesHealthEvaluation is the BasicHealthEvaluation implementation for NodesHealthEvaluation.
29667func (nhe NodesHealthEvaluation) AsUpgradeDomainNodesHealthEvaluation() (*UpgradeDomainNodesHealthEvaluation, bool) {
29668	return nil, false
29669}
29670
29671// AsHealthEvaluation is the BasicHealthEvaluation implementation for NodesHealthEvaluation.
29672func (nhe NodesHealthEvaluation) AsHealthEvaluation() (*HealthEvaluation, bool) {
29673	return nil, false
29674}
29675
29676// AsBasicHealthEvaluation is the BasicHealthEvaluation implementation for NodesHealthEvaluation.
29677func (nhe NodesHealthEvaluation) AsBasicHealthEvaluation() (BasicHealthEvaluation, bool) {
29678	return &nhe, true
29679}
29680
29681// NodeTransitionProgress information about an NodeTransition operation.  This class contains an
29682// OperationState and a NodeTransitionResult.  The NodeTransitionResult is not valid until OperationState
29683// is Completed or Faulted.
29684type NodeTransitionProgress struct {
29685	autorest.Response `json:"-"`
29686	// State - The state of the operation. Possible values include: 'OperationStateInvalid', 'OperationStateRunning', 'OperationStateRollingBack', 'OperationStateCompleted', 'OperationStateFaulted', 'OperationStateCancelled', 'OperationStateForceCancelled'
29687	State OperationState `json:"State,omitempty"`
29688	// NodeTransitionResult - Represents information about an operation in a terminal state (Completed or Faulted).
29689	NodeTransitionResult *NodeTransitionResult `json:"NodeTransitionResult,omitempty"`
29690}
29691
29692// NodeTransitionResult represents information about an operation in a terminal state (Completed or
29693// Faulted).
29694type NodeTransitionResult struct {
29695	// ErrorCode - If OperationState is Completed, this is 0.  If OperationState is Faulted, this is an error code indicating the reason.
29696	ErrorCode *int32 `json:"ErrorCode,omitempty"`
29697	// NodeResult - Contains information about a node that was targeted by a user-induced operation.
29698	NodeResult *NodeResult `json:"NodeResult,omitempty"`
29699}
29700
29701// NodeUpEvent node Up event.
29702type NodeUpEvent struct {
29703	// NodeInstance - Id of Node instance.
29704	NodeInstance *int64 `json:"NodeInstance,omitempty"`
29705	// LastNodeDownAt - Time when Node was last down.
29706	LastNodeDownAt *date.Time `json:"LastNodeDownAt,omitempty"`
29707	// NodeName - The name of a Service Fabric node.
29708	NodeName *string `json:"NodeName,omitempty"`
29709	// EventInstanceID - The identifier for the FabricEvent instance.
29710	EventInstanceID *uuid.UUID `json:"EventInstanceId,omitempty"`
29711	// Category - The category of event.
29712	Category *string `json:"Category,omitempty"`
29713	// TimeStamp - The time event was logged.
29714	TimeStamp *date.Time `json:"TimeStamp,omitempty"`
29715	// HasCorrelatedEvents - Shows there is existing related events available.
29716	HasCorrelatedEvents *bool `json:"HasCorrelatedEvents,omitempty"`
29717	// 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'
29718	Kind KindBasicFabricEvent `json:"Kind,omitempty"`
29719}
29720
29721// MarshalJSON is the custom marshaler for NodeUpEvent.
29722func (nue NodeUpEvent) MarshalJSON() ([]byte, error) {
29723	nue.Kind = KindNodeUp
29724	objectMap := make(map[string]interface{})
29725	if nue.NodeInstance != nil {
29726		objectMap["NodeInstance"] = nue.NodeInstance
29727	}
29728	if nue.LastNodeDownAt != nil {
29729		objectMap["LastNodeDownAt"] = nue.LastNodeDownAt
29730	}
29731	if nue.NodeName != nil {
29732		objectMap["NodeName"] = nue.NodeName
29733	}
29734	if nue.EventInstanceID != nil {
29735		objectMap["EventInstanceId"] = nue.EventInstanceID
29736	}
29737	if nue.Category != nil {
29738		objectMap["Category"] = nue.Category
29739	}
29740	if nue.TimeStamp != nil {
29741		objectMap["TimeStamp"] = nue.TimeStamp
29742	}
29743	if nue.HasCorrelatedEvents != nil {
29744		objectMap["HasCorrelatedEvents"] = nue.HasCorrelatedEvents
29745	}
29746	if nue.Kind != "" {
29747		objectMap["Kind"] = nue.Kind
29748	}
29749	return json.Marshal(objectMap)
29750}
29751
29752// AsApplicationEvent is the BasicFabricEvent implementation for NodeUpEvent.
29753func (nue NodeUpEvent) AsApplicationEvent() (*ApplicationEvent, bool) {
29754	return nil, false
29755}
29756
29757// AsBasicApplicationEvent is the BasicFabricEvent implementation for NodeUpEvent.
29758func (nue NodeUpEvent) AsBasicApplicationEvent() (BasicApplicationEvent, bool) {
29759	return nil, false
29760}
29761
29762// AsClusterEvent is the BasicFabricEvent implementation for NodeUpEvent.
29763func (nue NodeUpEvent) AsClusterEvent() (*ClusterEvent, bool) {
29764	return nil, false
29765}
29766
29767// AsBasicClusterEvent is the BasicFabricEvent implementation for NodeUpEvent.
29768func (nue NodeUpEvent) AsBasicClusterEvent() (BasicClusterEvent, bool) {
29769	return nil, false
29770}
29771
29772// AsContainerInstanceEvent is the BasicFabricEvent implementation for NodeUpEvent.
29773func (nue NodeUpEvent) AsContainerInstanceEvent() (*ContainerInstanceEvent, bool) {
29774	return nil, false
29775}
29776
29777// AsNodeEvent is the BasicFabricEvent implementation for NodeUpEvent.
29778func (nue NodeUpEvent) AsNodeEvent() (*NodeEvent, bool) {
29779	return nil, false
29780}
29781
29782// AsBasicNodeEvent is the BasicFabricEvent implementation for NodeUpEvent.
29783func (nue NodeUpEvent) AsBasicNodeEvent() (BasicNodeEvent, bool) {
29784	return &nue, true
29785}
29786
29787// AsPartitionAnalysisEvent is the BasicFabricEvent implementation for NodeUpEvent.
29788func (nue NodeUpEvent) AsPartitionAnalysisEvent() (*PartitionAnalysisEvent, bool) {
29789	return nil, false
29790}
29791
29792// AsBasicPartitionAnalysisEvent is the BasicFabricEvent implementation for NodeUpEvent.
29793func (nue NodeUpEvent) AsBasicPartitionAnalysisEvent() (BasicPartitionAnalysisEvent, bool) {
29794	return nil, false
29795}
29796
29797// AsPartitionEvent is the BasicFabricEvent implementation for NodeUpEvent.
29798func (nue NodeUpEvent) AsPartitionEvent() (*PartitionEvent, bool) {
29799	return nil, false
29800}
29801
29802// AsBasicPartitionEvent is the BasicFabricEvent implementation for NodeUpEvent.
29803func (nue NodeUpEvent) AsBasicPartitionEvent() (BasicPartitionEvent, bool) {
29804	return nil, false
29805}
29806
29807// AsReplicaEvent is the BasicFabricEvent implementation for NodeUpEvent.
29808func (nue NodeUpEvent) AsReplicaEvent() (*ReplicaEvent, bool) {
29809	return nil, false
29810}
29811
29812// AsBasicReplicaEvent is the BasicFabricEvent implementation for NodeUpEvent.
29813func (nue NodeUpEvent) AsBasicReplicaEvent() (BasicReplicaEvent, bool) {
29814	return nil, false
29815}
29816
29817// AsServiceEvent is the BasicFabricEvent implementation for NodeUpEvent.
29818func (nue NodeUpEvent) AsServiceEvent() (*ServiceEvent, bool) {
29819	return nil, false
29820}
29821
29822// AsBasicServiceEvent is the BasicFabricEvent implementation for NodeUpEvent.
29823func (nue NodeUpEvent) AsBasicServiceEvent() (BasicServiceEvent, bool) {
29824	return nil, false
29825}
29826
29827// AsApplicationCreatedEvent is the BasicFabricEvent implementation for NodeUpEvent.
29828func (nue NodeUpEvent) AsApplicationCreatedEvent() (*ApplicationCreatedEvent, bool) {
29829	return nil, false
29830}
29831
29832// AsApplicationDeletedEvent is the BasicFabricEvent implementation for NodeUpEvent.
29833func (nue NodeUpEvent) AsApplicationDeletedEvent() (*ApplicationDeletedEvent, bool) {
29834	return nil, false
29835}
29836
29837// AsApplicationNewHealthReportEvent is the BasicFabricEvent implementation for NodeUpEvent.
29838func (nue NodeUpEvent) AsApplicationNewHealthReportEvent() (*ApplicationNewHealthReportEvent, bool) {
29839	return nil, false
29840}
29841
29842// AsApplicationHealthReportExpiredEvent is the BasicFabricEvent implementation for NodeUpEvent.
29843func (nue NodeUpEvent) AsApplicationHealthReportExpiredEvent() (*ApplicationHealthReportExpiredEvent, bool) {
29844	return nil, false
29845}
29846
29847// AsApplicationUpgradeCompletedEvent is the BasicFabricEvent implementation for NodeUpEvent.
29848func (nue NodeUpEvent) AsApplicationUpgradeCompletedEvent() (*ApplicationUpgradeCompletedEvent, bool) {
29849	return nil, false
29850}
29851
29852// AsApplicationUpgradeDomainCompletedEvent is the BasicFabricEvent implementation for NodeUpEvent.
29853func (nue NodeUpEvent) AsApplicationUpgradeDomainCompletedEvent() (*ApplicationUpgradeDomainCompletedEvent, bool) {
29854	return nil, false
29855}
29856
29857// AsApplicationUpgradeRollbackCompletedEvent is the BasicFabricEvent implementation for NodeUpEvent.
29858func (nue NodeUpEvent) AsApplicationUpgradeRollbackCompletedEvent() (*ApplicationUpgradeRollbackCompletedEvent, bool) {
29859	return nil, false
29860}
29861
29862// AsApplicationUpgradeRollbackStartedEvent is the BasicFabricEvent implementation for NodeUpEvent.
29863func (nue NodeUpEvent) AsApplicationUpgradeRollbackStartedEvent() (*ApplicationUpgradeRollbackStartedEvent, bool) {
29864	return nil, false
29865}
29866
29867// AsApplicationUpgradeStartedEvent is the BasicFabricEvent implementation for NodeUpEvent.
29868func (nue NodeUpEvent) AsApplicationUpgradeStartedEvent() (*ApplicationUpgradeStartedEvent, bool) {
29869	return nil, false
29870}
29871
29872// AsDeployedApplicationNewHealthReportEvent is the BasicFabricEvent implementation for NodeUpEvent.
29873func (nue NodeUpEvent) AsDeployedApplicationNewHealthReportEvent() (*DeployedApplicationNewHealthReportEvent, bool) {
29874	return nil, false
29875}
29876
29877// AsDeployedApplicationHealthReportExpiredEvent is the BasicFabricEvent implementation for NodeUpEvent.
29878func (nue NodeUpEvent) AsDeployedApplicationHealthReportExpiredEvent() (*DeployedApplicationHealthReportExpiredEvent, bool) {
29879	return nil, false
29880}
29881
29882// AsApplicationProcessExitedEvent is the BasicFabricEvent implementation for NodeUpEvent.
29883func (nue NodeUpEvent) AsApplicationProcessExitedEvent() (*ApplicationProcessExitedEvent, bool) {
29884	return nil, false
29885}
29886
29887// AsApplicationContainerInstanceExitedEvent is the BasicFabricEvent implementation for NodeUpEvent.
29888func (nue NodeUpEvent) AsApplicationContainerInstanceExitedEvent() (*ApplicationContainerInstanceExitedEvent, bool) {
29889	return nil, false
29890}
29891
29892// AsNodeAbortedEvent is the BasicFabricEvent implementation for NodeUpEvent.
29893func (nue NodeUpEvent) AsNodeAbortedEvent() (*NodeAbortedEvent, bool) {
29894	return nil, false
29895}
29896
29897// AsNodeAddedToClusterEvent is the BasicFabricEvent implementation for NodeUpEvent.
29898func (nue NodeUpEvent) AsNodeAddedToClusterEvent() (*NodeAddedToClusterEvent, bool) {
29899	return nil, false
29900}
29901
29902// AsNodeClosedEvent is the BasicFabricEvent implementation for NodeUpEvent.
29903func (nue NodeUpEvent) AsNodeClosedEvent() (*NodeClosedEvent, bool) {
29904	return nil, false
29905}
29906
29907// AsNodeDeactivateCompletedEvent is the BasicFabricEvent implementation for NodeUpEvent.
29908func (nue NodeUpEvent) AsNodeDeactivateCompletedEvent() (*NodeDeactivateCompletedEvent, bool) {
29909	return nil, false
29910}
29911
29912// AsNodeDeactivateStartedEvent is the BasicFabricEvent implementation for NodeUpEvent.
29913func (nue NodeUpEvent) AsNodeDeactivateStartedEvent() (*NodeDeactivateStartedEvent, bool) {
29914	return nil, false
29915}
29916
29917// AsNodeDownEvent is the BasicFabricEvent implementation for NodeUpEvent.
29918func (nue NodeUpEvent) AsNodeDownEvent() (*NodeDownEvent, bool) {
29919	return nil, false
29920}
29921
29922// AsNodeNewHealthReportEvent is the BasicFabricEvent implementation for NodeUpEvent.
29923func (nue NodeUpEvent) AsNodeNewHealthReportEvent() (*NodeNewHealthReportEvent, bool) {
29924	return nil, false
29925}
29926
29927// AsNodeHealthReportExpiredEvent is the BasicFabricEvent implementation for NodeUpEvent.
29928func (nue NodeUpEvent) AsNodeHealthReportExpiredEvent() (*NodeHealthReportExpiredEvent, bool) {
29929	return nil, false
29930}
29931
29932// AsNodeOpenSucceededEvent is the BasicFabricEvent implementation for NodeUpEvent.
29933func (nue NodeUpEvent) AsNodeOpenSucceededEvent() (*NodeOpenSucceededEvent, bool) {
29934	return nil, false
29935}
29936
29937// AsNodeOpenFailedEvent is the BasicFabricEvent implementation for NodeUpEvent.
29938func (nue NodeUpEvent) AsNodeOpenFailedEvent() (*NodeOpenFailedEvent, bool) {
29939	return nil, false
29940}
29941
29942// AsNodeRemovedFromClusterEvent is the BasicFabricEvent implementation for NodeUpEvent.
29943func (nue NodeUpEvent) AsNodeRemovedFromClusterEvent() (*NodeRemovedFromClusterEvent, bool) {
29944	return nil, false
29945}
29946
29947// AsNodeUpEvent is the BasicFabricEvent implementation for NodeUpEvent.
29948func (nue NodeUpEvent) AsNodeUpEvent() (*NodeUpEvent, bool) {
29949	return &nue, true
29950}
29951
29952// AsPartitionNewHealthReportEvent is the BasicFabricEvent implementation for NodeUpEvent.
29953func (nue NodeUpEvent) AsPartitionNewHealthReportEvent() (*PartitionNewHealthReportEvent, bool) {
29954	return nil, false
29955}
29956
29957// AsPartitionHealthReportExpiredEvent is the BasicFabricEvent implementation for NodeUpEvent.
29958func (nue NodeUpEvent) AsPartitionHealthReportExpiredEvent() (*PartitionHealthReportExpiredEvent, bool) {
29959	return nil, false
29960}
29961
29962// AsPartitionReconfiguredEvent is the BasicFabricEvent implementation for NodeUpEvent.
29963func (nue NodeUpEvent) AsPartitionReconfiguredEvent() (*PartitionReconfiguredEvent, bool) {
29964	return nil, false
29965}
29966
29967// AsPartitionPrimaryMoveAnalysisEvent is the BasicFabricEvent implementation for NodeUpEvent.
29968func (nue NodeUpEvent) AsPartitionPrimaryMoveAnalysisEvent() (*PartitionPrimaryMoveAnalysisEvent, bool) {
29969	return nil, false
29970}
29971
29972// AsServiceCreatedEvent is the BasicFabricEvent implementation for NodeUpEvent.
29973func (nue NodeUpEvent) AsServiceCreatedEvent() (*ServiceCreatedEvent, bool) {
29974	return nil, false
29975}
29976
29977// AsServiceDeletedEvent is the BasicFabricEvent implementation for NodeUpEvent.
29978func (nue NodeUpEvent) AsServiceDeletedEvent() (*ServiceDeletedEvent, bool) {
29979	return nil, false
29980}
29981
29982// AsServiceNewHealthReportEvent is the BasicFabricEvent implementation for NodeUpEvent.
29983func (nue NodeUpEvent) AsServiceNewHealthReportEvent() (*ServiceNewHealthReportEvent, bool) {
29984	return nil, false
29985}
29986
29987// AsServiceHealthReportExpiredEvent is the BasicFabricEvent implementation for NodeUpEvent.
29988func (nue NodeUpEvent) AsServiceHealthReportExpiredEvent() (*ServiceHealthReportExpiredEvent, bool) {
29989	return nil, false
29990}
29991
29992// AsDeployedServicePackageNewHealthReportEvent is the BasicFabricEvent implementation for NodeUpEvent.
29993func (nue NodeUpEvent) AsDeployedServicePackageNewHealthReportEvent() (*DeployedServicePackageNewHealthReportEvent, bool) {
29994	return nil, false
29995}
29996
29997// AsDeployedServicePackageHealthReportExpiredEvent is the BasicFabricEvent implementation for NodeUpEvent.
29998func (nue NodeUpEvent) AsDeployedServicePackageHealthReportExpiredEvent() (*DeployedServicePackageHealthReportExpiredEvent, bool) {
29999	return nil, false
30000}
30001
30002// AsStatefulReplicaNewHealthReportEvent is the BasicFabricEvent implementation for NodeUpEvent.
30003func (nue NodeUpEvent) AsStatefulReplicaNewHealthReportEvent() (*StatefulReplicaNewHealthReportEvent, bool) {
30004	return nil, false
30005}
30006
30007// AsStatefulReplicaHealthReportExpiredEvent is the BasicFabricEvent implementation for NodeUpEvent.
30008func (nue NodeUpEvent) AsStatefulReplicaHealthReportExpiredEvent() (*StatefulReplicaHealthReportExpiredEvent, bool) {
30009	return nil, false
30010}
30011
30012// AsStatelessReplicaNewHealthReportEvent is the BasicFabricEvent implementation for NodeUpEvent.
30013func (nue NodeUpEvent) AsStatelessReplicaNewHealthReportEvent() (*StatelessReplicaNewHealthReportEvent, bool) {
30014	return nil, false
30015}
30016
30017// AsStatelessReplicaHealthReportExpiredEvent is the BasicFabricEvent implementation for NodeUpEvent.
30018func (nue NodeUpEvent) AsStatelessReplicaHealthReportExpiredEvent() (*StatelessReplicaHealthReportExpiredEvent, bool) {
30019	return nil, false
30020}
30021
30022// AsClusterNewHealthReportEvent is the BasicFabricEvent implementation for NodeUpEvent.
30023func (nue NodeUpEvent) AsClusterNewHealthReportEvent() (*ClusterNewHealthReportEvent, bool) {
30024	return nil, false
30025}
30026
30027// AsClusterHealthReportExpiredEvent is the BasicFabricEvent implementation for NodeUpEvent.
30028func (nue NodeUpEvent) AsClusterHealthReportExpiredEvent() (*ClusterHealthReportExpiredEvent, bool) {
30029	return nil, false
30030}
30031
30032// AsClusterUpgradeCompletedEvent is the BasicFabricEvent implementation for NodeUpEvent.
30033func (nue NodeUpEvent) AsClusterUpgradeCompletedEvent() (*ClusterUpgradeCompletedEvent, bool) {
30034	return nil, false
30035}
30036
30037// AsClusterUpgradeDomainCompletedEvent is the BasicFabricEvent implementation for NodeUpEvent.
30038func (nue NodeUpEvent) AsClusterUpgradeDomainCompletedEvent() (*ClusterUpgradeDomainCompletedEvent, bool) {
30039	return nil, false
30040}
30041
30042// AsClusterUpgradeRollbackCompletedEvent is the BasicFabricEvent implementation for NodeUpEvent.
30043func (nue NodeUpEvent) AsClusterUpgradeRollbackCompletedEvent() (*ClusterUpgradeRollbackCompletedEvent, bool) {
30044	return nil, false
30045}
30046
30047// AsClusterUpgradeRollbackStartedEvent is the BasicFabricEvent implementation for NodeUpEvent.
30048func (nue NodeUpEvent) AsClusterUpgradeRollbackStartedEvent() (*ClusterUpgradeRollbackStartedEvent, bool) {
30049	return nil, false
30050}
30051
30052// AsClusterUpgradeStartedEvent is the BasicFabricEvent implementation for NodeUpEvent.
30053func (nue NodeUpEvent) AsClusterUpgradeStartedEvent() (*ClusterUpgradeStartedEvent, bool) {
30054	return nil, false
30055}
30056
30057// AsChaosStoppedEvent is the BasicFabricEvent implementation for NodeUpEvent.
30058func (nue NodeUpEvent) AsChaosStoppedEvent() (*ChaosStoppedEvent, bool) {
30059	return nil, false
30060}
30061
30062// AsChaosStartedEvent is the BasicFabricEvent implementation for NodeUpEvent.
30063func (nue NodeUpEvent) AsChaosStartedEvent() (*ChaosStartedEvent, bool) {
30064	return nil, false
30065}
30066
30067// AsChaosCodePackageRestartScheduledEvent is the BasicFabricEvent implementation for NodeUpEvent.
30068func (nue NodeUpEvent) AsChaosCodePackageRestartScheduledEvent() (*ChaosCodePackageRestartScheduledEvent, bool) {
30069	return nil, false
30070}
30071
30072// AsChaosReplicaRemovalScheduledEvent is the BasicFabricEvent implementation for NodeUpEvent.
30073func (nue NodeUpEvent) AsChaosReplicaRemovalScheduledEvent() (*ChaosReplicaRemovalScheduledEvent, bool) {
30074	return nil, false
30075}
30076
30077// AsChaosPartitionSecondaryMoveScheduledEvent is the BasicFabricEvent implementation for NodeUpEvent.
30078func (nue NodeUpEvent) AsChaosPartitionSecondaryMoveScheduledEvent() (*ChaosPartitionSecondaryMoveScheduledEvent, bool) {
30079	return nil, false
30080}
30081
30082// AsChaosPartitionPrimaryMoveScheduledEvent is the BasicFabricEvent implementation for NodeUpEvent.
30083func (nue NodeUpEvent) AsChaosPartitionPrimaryMoveScheduledEvent() (*ChaosPartitionPrimaryMoveScheduledEvent, bool) {
30084	return nil, false
30085}
30086
30087// AsChaosReplicaRestartScheduledEvent is the BasicFabricEvent implementation for NodeUpEvent.
30088func (nue NodeUpEvent) AsChaosReplicaRestartScheduledEvent() (*ChaosReplicaRestartScheduledEvent, bool) {
30089	return nil, false
30090}
30091
30092// AsChaosNodeRestartScheduledEvent is the BasicFabricEvent implementation for NodeUpEvent.
30093func (nue NodeUpEvent) AsChaosNodeRestartScheduledEvent() (*ChaosNodeRestartScheduledEvent, bool) {
30094	return nil, false
30095}
30096
30097// AsFabricEvent is the BasicFabricEvent implementation for NodeUpEvent.
30098func (nue NodeUpEvent) AsFabricEvent() (*FabricEvent, bool) {
30099	return nil, false
30100}
30101
30102// AsBasicFabricEvent is the BasicFabricEvent implementation for NodeUpEvent.
30103func (nue NodeUpEvent) AsBasicFabricEvent() (BasicFabricEvent, bool) {
30104	return &nue, true
30105}
30106
30107// NodeUpgradeProgressInfo information about the upgrading node and its status
30108type NodeUpgradeProgressInfo struct {
30109	// NodeName - The name of a Service Fabric node.
30110	NodeName *string `json:"NodeName,omitempty"`
30111	// UpgradePhase - The state of the upgrading node. Possible values include: 'NodeUpgradePhaseInvalid', 'NodeUpgradePhasePreUpgradeSafetyCheck', 'NodeUpgradePhaseUpgrading', 'NodeUpgradePhasePostUpgradeSafetyCheck'
30112	UpgradePhase NodeUpgradePhase `json:"UpgradePhase,omitempty"`
30113	// PendingSafetyChecks - List of pending safety checks
30114	PendingSafetyChecks *[]SafetyCheckWrapper `json:"PendingSafetyChecks,omitempty"`
30115}
30116
30117// OperationStatus contains the OperationId, OperationState, and OperationType for user-induced operations.
30118type OperationStatus struct {
30119	// OperationID - A GUID that identifies a call to this API.  This is also passed into the corresponding GetProgress API.
30120	OperationID *uuid.UUID `json:"OperationId,omitempty"`
30121	// State - The state of the operation. Possible values include: 'OperationStateInvalid', 'OperationStateRunning', 'OperationStateRollingBack', 'OperationStateCompleted', 'OperationStateFaulted', 'OperationStateCancelled', 'OperationStateForceCancelled'
30122	State OperationState `json:"State,omitempty"`
30123	// Type - The type of the operation. Possible values include: 'OperationTypeInvalid', 'OperationTypePartitionDataLoss', 'OperationTypePartitionQuorumLoss', 'OperationTypePartitionRestart', 'OperationTypeNodeTransition'
30124	Type OperationType `json:"Type,omitempty"`
30125}
30126
30127// PackageSharingPolicyInfo represents a policy for the package sharing.
30128type PackageSharingPolicyInfo struct {
30129	// SharedPackageName - The name of code, configuration or data package that should be shared.
30130	SharedPackageName *string `json:"SharedPackageName,omitempty"`
30131	// PackageSharingScope - Represents the scope for PackageSharingPolicy. This is specified during DeployServicePackageToNode operation. Possible values include: 'PackageSharingPolicyScopeNone', 'PackageSharingPolicyScopeAll', 'PackageSharingPolicyScopeCode', 'PackageSharingPolicyScopeConfig', 'PackageSharingPolicyScopeData'
30132	PackageSharingScope PackageSharingPolicyScope `json:"PackageSharingScope,omitempty"`
30133}
30134
30135// PagedApplicationInfoList the list of applications in the cluster. The list is paged when all of the
30136// results cannot fit in a single message. The next set of results can be obtained by executing the same
30137// query with the continuation token provided in this list.
30138type PagedApplicationInfoList struct {
30139	autorest.Response `json:"-"`
30140	// 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.
30141	ContinuationToken *string `json:"ContinuationToken,omitempty"`
30142	// Items - List of application information.
30143	Items *[]ApplicationInfo `json:"Items,omitempty"`
30144}
30145
30146// PagedApplicationResourceDescriptionList the list of application resources. The list is paged when all of
30147// the results cannot fit in a single message. The next set of results can be obtained by executing the
30148// same query with the continuation token provided in this list.
30149type PagedApplicationResourceDescriptionList struct {
30150	autorest.Response `json:"-"`
30151	// 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.
30152	ContinuationToken *string `json:"ContinuationToken,omitempty"`
30153	// Items - One page of the list.
30154	Items *[]ApplicationResourceDescription `json:"Items,omitempty"`
30155}
30156
30157// PagedApplicationTypeInfoList the list of application types that are provisioned or being provisioned in
30158// the cluster. The list is paged when all of the results cannot fit in a single message. The next set of
30159// results can be obtained by executing the same query with the continuation token provided in this list.
30160type PagedApplicationTypeInfoList struct {
30161	autorest.Response `json:"-"`
30162	// 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.
30163	ContinuationToken *string `json:"ContinuationToken,omitempty"`
30164	// Items - List of application type information.
30165	Items *[]ApplicationTypeInfo `json:"Items,omitempty"`
30166}
30167
30168// PagedBackupConfigurationInfoList the list of backup configuration information. The list is paged when
30169// all of the results cannot fit in a single message. The next set of results can be obtained by executing
30170// the same query with the continuation token provided in this list.
30171type PagedBackupConfigurationInfoList struct {
30172	autorest.Response `json:"-"`
30173	// 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.
30174	ContinuationToken *string `json:"ContinuationToken,omitempty"`
30175	// Items - List of backup configuration information.
30176	Items *[]BasicBackupConfigurationInfo `json:"Items,omitempty"`
30177}
30178
30179// UnmarshalJSON is the custom unmarshaler for PagedBackupConfigurationInfoList struct.
30180func (pbcil *PagedBackupConfigurationInfoList) UnmarshalJSON(body []byte) error {
30181	var m map[string]*json.RawMessage
30182	err := json.Unmarshal(body, &m)
30183	if err != nil {
30184		return err
30185	}
30186	for k, v := range m {
30187		switch k {
30188		case "ContinuationToken":
30189			if v != nil {
30190				var continuationToken string
30191				err = json.Unmarshal(*v, &continuationToken)
30192				if err != nil {
30193					return err
30194				}
30195				pbcil.ContinuationToken = &continuationToken
30196			}
30197		case "Items":
30198			if v != nil {
30199				items, err := unmarshalBasicBackupConfigurationInfoArray(*v)
30200				if err != nil {
30201					return err
30202				}
30203				pbcil.Items = &items
30204			}
30205		}
30206	}
30207
30208	return nil
30209}
30210
30211// PagedBackupEntityList the list of backup entities that are being periodically backed. The list is paged
30212// when all of the results cannot fit in a single message. The next set of results can be obtained by
30213// executing the same query with the continuation token provided in this list.
30214type PagedBackupEntityList struct {
30215	autorest.Response `json:"-"`
30216	// 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.
30217	ContinuationToken *string `json:"ContinuationToken,omitempty"`
30218	// Items - List of backup entity information.
30219	Items *[]BasicBackupEntity `json:"Items,omitempty"`
30220}
30221
30222// UnmarshalJSON is the custom unmarshaler for PagedBackupEntityList struct.
30223func (pbel *PagedBackupEntityList) UnmarshalJSON(body []byte) error {
30224	var m map[string]*json.RawMessage
30225	err := json.Unmarshal(body, &m)
30226	if err != nil {
30227		return err
30228	}
30229	for k, v := range m {
30230		switch k {
30231		case "ContinuationToken":
30232			if v != nil {
30233				var continuationToken string
30234				err = json.Unmarshal(*v, &continuationToken)
30235				if err != nil {
30236					return err
30237				}
30238				pbel.ContinuationToken = &continuationToken
30239			}
30240		case "Items":
30241			if v != nil {
30242				items, err := unmarshalBasicBackupEntityArray(*v)
30243				if err != nil {
30244					return err
30245				}
30246				pbel.Items = &items
30247			}
30248		}
30249	}
30250
30251	return nil
30252}
30253
30254// PagedBackupInfoList the list of backups. The list is paged when all of the results cannot fit in a
30255// single message. The next set of results can be obtained by executing the same query with the
30256// continuation token provided in this list.
30257type PagedBackupInfoList struct {
30258	autorest.Response `json:"-"`
30259	// 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.
30260	ContinuationToken *string `json:"ContinuationToken,omitempty"`
30261	// Items - List of backup information.
30262	Items *[]BackupInfo `json:"Items,omitempty"`
30263}
30264
30265// PagedBackupPolicyDescriptionList the list of backup policies configured in the cluster. The list is
30266// paged when all of the results cannot fit in a single message. The next set of results can be obtained by
30267// executing the same query with the continuation token provided in this list.
30268type PagedBackupPolicyDescriptionList struct {
30269	autorest.Response `json:"-"`
30270	// 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.
30271	ContinuationToken *string `json:"ContinuationToken,omitempty"`
30272	// Items - The list of backup policies information.
30273	Items *[]BackupPolicyDescription `json:"Items,omitempty"`
30274}
30275
30276// PagedComposeDeploymentStatusInfoList the list of compose deployments in the cluster. The list is paged
30277// when all of the results cannot fit in a single message. The next set of results can be obtained by
30278// executing the same query with the continuation token provided in this list.
30279type PagedComposeDeploymentStatusInfoList struct {
30280	autorest.Response `json:"-"`
30281	// 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.
30282	ContinuationToken *string `json:"ContinuationToken,omitempty"`
30283	// Items - List of compose deployment status information.
30284	Items *[]ComposeDeploymentStatusInfo `json:"Items,omitempty"`
30285}
30286
30287// PagedDeployedApplicationInfoList the list of deployed applications in activating, downloading, or active
30288// states on a node.
30289// The list is paged when all of the results cannot fit in a single message.
30290// The next set of results can be obtained by executing the same query with the continuation token provided
30291// in this list.
30292type PagedDeployedApplicationInfoList struct {
30293	autorest.Response `json:"-"`
30294	// 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.
30295	ContinuationToken *string `json:"ContinuationToken,omitempty"`
30296	// Items - List of deployed application information.
30297	Items *[]DeployedApplicationInfo `json:"Items,omitempty"`
30298}
30299
30300// PagedGatewayResourceDescriptionList the list of gateway resources. The list is paged when all of the
30301// results cannot fit in a single message. The next set of results can be obtained by executing the same
30302// query with the continuation token provided in this list.
30303type PagedGatewayResourceDescriptionList struct {
30304	autorest.Response `json:"-"`
30305	// 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.
30306	ContinuationToken *string `json:"ContinuationToken,omitempty"`
30307	// Items - One page of the list.
30308	Items *[]GatewayResourceDescription `json:"Items,omitempty"`
30309}
30310
30311// PagedNetworkResourceDescriptionList the list of network resources. The list is paged when all of the
30312// results cannot fit in a single message. The next set of results can be obtained by executing the same
30313// query with the continuation token provided in this list.
30314type PagedNetworkResourceDescriptionList struct {
30315	autorest.Response `json:"-"`
30316	// 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.
30317	ContinuationToken *string `json:"ContinuationToken,omitempty"`
30318	// Items - One page of the list.
30319	Items *[]NetworkResourceDescription `json:"Items,omitempty"`
30320}
30321
30322// PagedNodeInfoList the list of nodes in the cluster. The list is paged when all of the results cannot fit
30323// in a single message. The next set of results can be obtained by executing the same query with the
30324// continuation token provided in this list.
30325type PagedNodeInfoList struct {
30326	autorest.Response `json:"-"`
30327	// 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.
30328	ContinuationToken *string `json:"ContinuationToken,omitempty"`
30329	// Items - List of node information.
30330	Items *[]NodeInfo `json:"Items,omitempty"`
30331}
30332
30333// PagedPropertyInfoList the paged list of Service Fabric properties under a given name. The list is paged
30334// when all of the results cannot fit in a single message. The next set of results can be obtained by
30335// executing the same query with the continuation token provided in this list.
30336type PagedPropertyInfoList struct {
30337	autorest.Response `json:"-"`
30338	// 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.
30339	ContinuationToken *string `json:"ContinuationToken,omitempty"`
30340	// 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.
30341	IsConsistent *bool `json:"IsConsistent,omitempty"`
30342	// Properties - List of property information.
30343	Properties *[]PropertyInfo `json:"Properties,omitempty"`
30344}
30345
30346// PagedReplicaInfoList the list of replicas in the cluster for a given partition. The list is paged when
30347// all of the results cannot fit in a single message. The next set of results can be obtained by executing
30348// the same query with the continuation token provided in this list.
30349type PagedReplicaInfoList struct {
30350	autorest.Response `json:"-"`
30351	// 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.
30352	ContinuationToken *string `json:"ContinuationToken,omitempty"`
30353	// Items - List of replica information.
30354	Items *[]BasicReplicaInfo `json:"Items,omitempty"`
30355}
30356
30357// UnmarshalJSON is the custom unmarshaler for PagedReplicaInfoList struct.
30358func (pril *PagedReplicaInfoList) UnmarshalJSON(body []byte) error {
30359	var m map[string]*json.RawMessage
30360	err := json.Unmarshal(body, &m)
30361	if err != nil {
30362		return err
30363	}
30364	for k, v := range m {
30365		switch k {
30366		case "ContinuationToken":
30367			if v != nil {
30368				var continuationToken string
30369				err = json.Unmarshal(*v, &continuationToken)
30370				if err != nil {
30371					return err
30372				}
30373				pril.ContinuationToken = &continuationToken
30374			}
30375		case "Items":
30376			if v != nil {
30377				items, err := unmarshalBasicReplicaInfoArray(*v)
30378				if err != nil {
30379					return err
30380				}
30381				pril.Items = &items
30382			}
30383		}
30384	}
30385
30386	return nil
30387}
30388
30389// PagedSecretResourceDescriptionList the list of secret resources. The list is paged when all of the
30390// results cannot fit in a single message. The next set of results can be obtained by executing the same
30391// query with the continuation token provided in this list.
30392type PagedSecretResourceDescriptionList struct {
30393	autorest.Response `json:"-"`
30394	// 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.
30395	ContinuationToken *string `json:"ContinuationToken,omitempty"`
30396	// Items - One page of the list.
30397	Items *[]SecretResourceDescription `json:"Items,omitempty"`
30398}
30399
30400// PagedSecretValueResourceDescriptionList the list of values of a secret resource, paged if the number of
30401// results exceeds the limits of a single message. The next set of results can be obtained by executing the
30402// same query with the continuation token provided in the previous page.
30403type PagedSecretValueResourceDescriptionList struct {
30404	autorest.Response `json:"-"`
30405	// 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.
30406	ContinuationToken *string `json:"ContinuationToken,omitempty"`
30407	// Items - One page of the list.
30408	Items *[]SecretValueResourceDescription `json:"Items,omitempty"`
30409}
30410
30411// PagedServiceInfoList the list of services in the cluster for an application. The list is paged when all
30412// of the results cannot fit in a single message. The next set of results can be obtained by executing the
30413// same query with the continuation token provided in this list.
30414type PagedServiceInfoList struct {
30415	autorest.Response `json:"-"`
30416	// 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.
30417	ContinuationToken *string `json:"ContinuationToken,omitempty"`
30418	// Items - List of service information.
30419	Items *[]BasicServiceInfo `json:"Items,omitempty"`
30420}
30421
30422// UnmarshalJSON is the custom unmarshaler for PagedServiceInfoList struct.
30423func (psil *PagedServiceInfoList) UnmarshalJSON(body []byte) error {
30424	var m map[string]*json.RawMessage
30425	err := json.Unmarshal(body, &m)
30426	if err != nil {
30427		return err
30428	}
30429	for k, v := range m {
30430		switch k {
30431		case "ContinuationToken":
30432			if v != nil {
30433				var continuationToken string
30434				err = json.Unmarshal(*v, &continuationToken)
30435				if err != nil {
30436					return err
30437				}
30438				psil.ContinuationToken = &continuationToken
30439			}
30440		case "Items":
30441			if v != nil {
30442				items, err := unmarshalBasicServiceInfoArray(*v)
30443				if err != nil {
30444					return err
30445				}
30446				psil.Items = &items
30447			}
30448		}
30449	}
30450
30451	return nil
30452}
30453
30454// PagedServicePartitionInfoList the list of partition in the cluster for a service. The list is paged when
30455// all of the results cannot fit in a single message. The next set of results can be obtained by executing
30456// the same query with the continuation token provided in this list.
30457type PagedServicePartitionInfoList struct {
30458	autorest.Response `json:"-"`
30459	// 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.
30460	ContinuationToken *string `json:"ContinuationToken,omitempty"`
30461	// Items - List of service partition information.
30462	Items *[]BasicServicePartitionInfo `json:"Items,omitempty"`
30463}
30464
30465// UnmarshalJSON is the custom unmarshaler for PagedServicePartitionInfoList struct.
30466func (pspil *PagedServicePartitionInfoList) UnmarshalJSON(body []byte) error {
30467	var m map[string]*json.RawMessage
30468	err := json.Unmarshal(body, &m)
30469	if err != nil {
30470		return err
30471	}
30472	for k, v := range m {
30473		switch k {
30474		case "ContinuationToken":
30475			if v != nil {
30476				var continuationToken string
30477				err = json.Unmarshal(*v, &continuationToken)
30478				if err != nil {
30479					return err
30480				}
30481				pspil.ContinuationToken = &continuationToken
30482			}
30483		case "Items":
30484			if v != nil {
30485				items, err := unmarshalBasicServicePartitionInfoArray(*v)
30486				if err != nil {
30487					return err
30488				}
30489				pspil.Items = &items
30490			}
30491		}
30492	}
30493
30494	return nil
30495}
30496
30497// PagedServiceReplicaDescriptionList the list of service resource replicas in the cluster. The list is
30498// paged when all of the results cannot fit in a single message. The next set of results can be obtained by
30499// executing the same query with the continuation token provided in this list.
30500type PagedServiceReplicaDescriptionList struct {
30501	autorest.Response `json:"-"`
30502	// 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.
30503	ContinuationToken *string `json:"ContinuationToken,omitempty"`
30504	// Items - List of service resource replica description.
30505	Items *[]ServiceReplicaDescription `json:"Items,omitempty"`
30506}
30507
30508// PagedServiceResourceDescriptionList the list of service resources. The list is paged when all of the
30509// results cannot fit in a single message. The next set of results can be obtained by executing the same
30510// query with the continuation token provided in this list.
30511type PagedServiceResourceDescriptionList struct {
30512	autorest.Response `json:"-"`
30513	// 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.
30514	ContinuationToken *string `json:"ContinuationToken,omitempty"`
30515	// Items - One page of the list.
30516	Items *[]ServiceResourceDescription `json:"Items,omitempty"`
30517}
30518
30519// PagedSubNameInfoList a paged list of Service Fabric names. The list is paged when all of the results
30520// cannot fit in a single message. The next set of results can be obtained by executing the same query with
30521// the continuation token provided in this list.
30522type PagedSubNameInfoList struct {
30523	autorest.Response `json:"-"`
30524	// 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.
30525	ContinuationToken *string `json:"ContinuationToken,omitempty"`
30526	// 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.
30527	IsConsistent *bool `json:"IsConsistent,omitempty"`
30528	// SubNames - List of the child names.
30529	SubNames *[]string `json:"SubNames,omitempty"`
30530}
30531
30532// PagedUpdatePartitionLoadResultList the list of results of the call UpdatePartitionLoad. The list is
30533// paged when all of the results cannot fit in a single message. The next set of results can be obtained by
30534// executing the same query with the continuation token provided in this list.
30535type PagedUpdatePartitionLoadResultList struct {
30536	autorest.Response `json:"-"`
30537	// 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.
30538	ContinuationToken *string `json:"ContinuationToken,omitempty"`
30539	// Items - List of partition load update information.
30540	Items *[]UpdatePartitionLoadResult `json:"Items,omitempty"`
30541}
30542
30543// PagedVolumeResourceDescriptionList the list of volume resources. The list is paged when all of the
30544// results cannot fit in a single message. The next set of results can be obtained by executing the same
30545// query with the continuation token provided in this list.
30546type PagedVolumeResourceDescriptionList struct {
30547	autorest.Response `json:"-"`
30548	// 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.
30549	ContinuationToken *string `json:"ContinuationToken,omitempty"`
30550	// Items - One page of the list.
30551	Items *[]VolumeResourceDescription `json:"Items,omitempty"`
30552}
30553
30554// BasicPartitionAnalysisEvent represents the base for all Partition Analysis Events.
30555type BasicPartitionAnalysisEvent interface {
30556	AsPartitionPrimaryMoveAnalysisEvent() (*PartitionPrimaryMoveAnalysisEvent, bool)
30557	AsPartitionAnalysisEvent() (*PartitionAnalysisEvent, bool)
30558}
30559
30560// PartitionAnalysisEvent represents the base for all Partition Analysis Events.
30561type PartitionAnalysisEvent struct {
30562	// Metadata - Metadata about an Analysis Event.
30563	Metadata *AnalysisEventMetadata `json:"Metadata,omitempty"`
30564	// 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.
30565	PartitionID *uuid.UUID `json:"PartitionId,omitempty"`
30566	// EventInstanceID - The identifier for the FabricEvent instance.
30567	EventInstanceID *uuid.UUID `json:"EventInstanceId,omitempty"`
30568	// Category - The category of event.
30569	Category *string `json:"Category,omitempty"`
30570	// TimeStamp - The time event was logged.
30571	TimeStamp *date.Time `json:"TimeStamp,omitempty"`
30572	// HasCorrelatedEvents - Shows there is existing related events available.
30573	HasCorrelatedEvents *bool `json:"HasCorrelatedEvents,omitempty"`
30574	// 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'
30575	Kind KindBasicFabricEvent `json:"Kind,omitempty"`
30576}
30577
30578func unmarshalBasicPartitionAnalysisEvent(body []byte) (BasicPartitionAnalysisEvent, error) {
30579	var m map[string]interface{}
30580	err := json.Unmarshal(body, &m)
30581	if err != nil {
30582		return nil, err
30583	}
30584
30585	switch m["Kind"] {
30586	case string(KindPartitionPrimaryMoveAnalysis):
30587		var ppmae PartitionPrimaryMoveAnalysisEvent
30588		err := json.Unmarshal(body, &ppmae)
30589		return ppmae, err
30590	default:
30591		var pae PartitionAnalysisEvent
30592		err := json.Unmarshal(body, &pae)
30593		return pae, err
30594	}
30595}
30596func unmarshalBasicPartitionAnalysisEventArray(body []byte) ([]BasicPartitionAnalysisEvent, error) {
30597	var rawMessages []*json.RawMessage
30598	err := json.Unmarshal(body, &rawMessages)
30599	if err != nil {
30600		return nil, err
30601	}
30602
30603	paeArray := make([]BasicPartitionAnalysisEvent, len(rawMessages))
30604
30605	for index, rawMessage := range rawMessages {
30606		pae, err := unmarshalBasicPartitionAnalysisEvent(*rawMessage)
30607		if err != nil {
30608			return nil, err
30609		}
30610		paeArray[index] = pae
30611	}
30612	return paeArray, nil
30613}
30614
30615// MarshalJSON is the custom marshaler for PartitionAnalysisEvent.
30616func (pae PartitionAnalysisEvent) MarshalJSON() ([]byte, error) {
30617	pae.Kind = KindPartitionAnalysisEvent
30618	objectMap := make(map[string]interface{})
30619	if pae.Metadata != nil {
30620		objectMap["Metadata"] = pae.Metadata
30621	}
30622	if pae.PartitionID != nil {
30623		objectMap["PartitionId"] = pae.PartitionID
30624	}
30625	if pae.EventInstanceID != nil {
30626		objectMap["EventInstanceId"] = pae.EventInstanceID
30627	}
30628	if pae.Category != nil {
30629		objectMap["Category"] = pae.Category
30630	}
30631	if pae.TimeStamp != nil {
30632		objectMap["TimeStamp"] = pae.TimeStamp
30633	}
30634	if pae.HasCorrelatedEvents != nil {
30635		objectMap["HasCorrelatedEvents"] = pae.HasCorrelatedEvents
30636	}
30637	if pae.Kind != "" {
30638		objectMap["Kind"] = pae.Kind
30639	}
30640	return json.Marshal(objectMap)
30641}
30642
30643// AsApplicationEvent is the BasicFabricEvent implementation for PartitionAnalysisEvent.
30644func (pae PartitionAnalysisEvent) AsApplicationEvent() (*ApplicationEvent, bool) {
30645	return nil, false
30646}
30647
30648// AsBasicApplicationEvent is the BasicFabricEvent implementation for PartitionAnalysisEvent.
30649func (pae PartitionAnalysisEvent) AsBasicApplicationEvent() (BasicApplicationEvent, bool) {
30650	return nil, false
30651}
30652
30653// AsClusterEvent is the BasicFabricEvent implementation for PartitionAnalysisEvent.
30654func (pae PartitionAnalysisEvent) AsClusterEvent() (*ClusterEvent, bool) {
30655	return nil, false
30656}
30657
30658// AsBasicClusterEvent is the BasicFabricEvent implementation for PartitionAnalysisEvent.
30659func (pae PartitionAnalysisEvent) AsBasicClusterEvent() (BasicClusterEvent, bool) {
30660	return nil, false
30661}
30662
30663// AsContainerInstanceEvent is the BasicFabricEvent implementation for PartitionAnalysisEvent.
30664func (pae PartitionAnalysisEvent) AsContainerInstanceEvent() (*ContainerInstanceEvent, bool) {
30665	return nil, false
30666}
30667
30668// AsNodeEvent is the BasicFabricEvent implementation for PartitionAnalysisEvent.
30669func (pae PartitionAnalysisEvent) AsNodeEvent() (*NodeEvent, bool) {
30670	return nil, false
30671}
30672
30673// AsBasicNodeEvent is the BasicFabricEvent implementation for PartitionAnalysisEvent.
30674func (pae PartitionAnalysisEvent) AsBasicNodeEvent() (BasicNodeEvent, bool) {
30675	return nil, false
30676}
30677
30678// AsPartitionAnalysisEvent is the BasicFabricEvent implementation for PartitionAnalysisEvent.
30679func (pae PartitionAnalysisEvent) AsPartitionAnalysisEvent() (*PartitionAnalysisEvent, bool) {
30680	return &pae, true
30681}
30682
30683// AsBasicPartitionAnalysisEvent is the BasicFabricEvent implementation for PartitionAnalysisEvent.
30684func (pae PartitionAnalysisEvent) AsBasicPartitionAnalysisEvent() (BasicPartitionAnalysisEvent, bool) {
30685	return &pae, true
30686}
30687
30688// AsPartitionEvent is the BasicFabricEvent implementation for PartitionAnalysisEvent.
30689func (pae PartitionAnalysisEvent) AsPartitionEvent() (*PartitionEvent, bool) {
30690	return nil, false
30691}
30692
30693// AsBasicPartitionEvent is the BasicFabricEvent implementation for PartitionAnalysisEvent.
30694func (pae PartitionAnalysisEvent) AsBasicPartitionEvent() (BasicPartitionEvent, bool) {
30695	return &pae, true
30696}
30697
30698// AsReplicaEvent is the BasicFabricEvent implementation for PartitionAnalysisEvent.
30699func (pae PartitionAnalysisEvent) AsReplicaEvent() (*ReplicaEvent, bool) {
30700	return nil, false
30701}
30702
30703// AsBasicReplicaEvent is the BasicFabricEvent implementation for PartitionAnalysisEvent.
30704func (pae PartitionAnalysisEvent) AsBasicReplicaEvent() (BasicReplicaEvent, bool) {
30705	return nil, false
30706}
30707
30708// AsServiceEvent is the BasicFabricEvent implementation for PartitionAnalysisEvent.
30709func (pae PartitionAnalysisEvent) AsServiceEvent() (*ServiceEvent, bool) {
30710	return nil, false
30711}
30712
30713// AsBasicServiceEvent is the BasicFabricEvent implementation for PartitionAnalysisEvent.
30714func (pae PartitionAnalysisEvent) AsBasicServiceEvent() (BasicServiceEvent, bool) {
30715	return nil, false
30716}
30717
30718// AsApplicationCreatedEvent is the BasicFabricEvent implementation for PartitionAnalysisEvent.
30719func (pae PartitionAnalysisEvent) AsApplicationCreatedEvent() (*ApplicationCreatedEvent, bool) {
30720	return nil, false
30721}
30722
30723// AsApplicationDeletedEvent is the BasicFabricEvent implementation for PartitionAnalysisEvent.
30724func (pae PartitionAnalysisEvent) AsApplicationDeletedEvent() (*ApplicationDeletedEvent, bool) {
30725	return nil, false
30726}
30727
30728// AsApplicationNewHealthReportEvent is the BasicFabricEvent implementation for PartitionAnalysisEvent.
30729func (pae PartitionAnalysisEvent) AsApplicationNewHealthReportEvent() (*ApplicationNewHealthReportEvent, bool) {
30730	return nil, false
30731}
30732
30733// AsApplicationHealthReportExpiredEvent is the BasicFabricEvent implementation for PartitionAnalysisEvent.
30734func (pae PartitionAnalysisEvent) AsApplicationHealthReportExpiredEvent() (*ApplicationHealthReportExpiredEvent, bool) {
30735	return nil, false
30736}
30737
30738// AsApplicationUpgradeCompletedEvent is the BasicFabricEvent implementation for PartitionAnalysisEvent.
30739func (pae PartitionAnalysisEvent) AsApplicationUpgradeCompletedEvent() (*ApplicationUpgradeCompletedEvent, bool) {
30740	return nil, false
30741}
30742
30743// AsApplicationUpgradeDomainCompletedEvent is the BasicFabricEvent implementation for PartitionAnalysisEvent.
30744func (pae PartitionAnalysisEvent) AsApplicationUpgradeDomainCompletedEvent() (*ApplicationUpgradeDomainCompletedEvent, bool) {
30745	return nil, false
30746}
30747
30748// AsApplicationUpgradeRollbackCompletedEvent is the BasicFabricEvent implementation for PartitionAnalysisEvent.
30749func (pae PartitionAnalysisEvent) AsApplicationUpgradeRollbackCompletedEvent() (*ApplicationUpgradeRollbackCompletedEvent, bool) {
30750	return nil, false
30751}
30752
30753// AsApplicationUpgradeRollbackStartedEvent is the BasicFabricEvent implementation for PartitionAnalysisEvent.
30754func (pae PartitionAnalysisEvent) AsApplicationUpgradeRollbackStartedEvent() (*ApplicationUpgradeRollbackStartedEvent, bool) {
30755	return nil, false
30756}
30757
30758// AsApplicationUpgradeStartedEvent is the BasicFabricEvent implementation for PartitionAnalysisEvent.
30759func (pae PartitionAnalysisEvent) AsApplicationUpgradeStartedEvent() (*ApplicationUpgradeStartedEvent, bool) {
30760	return nil, false
30761}
30762
30763// AsDeployedApplicationNewHealthReportEvent is the BasicFabricEvent implementation for PartitionAnalysisEvent.
30764func (pae PartitionAnalysisEvent) AsDeployedApplicationNewHealthReportEvent() (*DeployedApplicationNewHealthReportEvent, bool) {
30765	return nil, false
30766}
30767
30768// AsDeployedApplicationHealthReportExpiredEvent is the BasicFabricEvent implementation for PartitionAnalysisEvent.
30769func (pae PartitionAnalysisEvent) AsDeployedApplicationHealthReportExpiredEvent() (*DeployedApplicationHealthReportExpiredEvent, bool) {
30770	return nil, false
30771}
30772
30773// AsApplicationProcessExitedEvent is the BasicFabricEvent implementation for PartitionAnalysisEvent.
30774func (pae PartitionAnalysisEvent) AsApplicationProcessExitedEvent() (*ApplicationProcessExitedEvent, bool) {
30775	return nil, false
30776}
30777
30778// AsApplicationContainerInstanceExitedEvent is the BasicFabricEvent implementation for PartitionAnalysisEvent.
30779func (pae PartitionAnalysisEvent) AsApplicationContainerInstanceExitedEvent() (*ApplicationContainerInstanceExitedEvent, bool) {
30780	return nil, false
30781}
30782
30783// AsNodeAbortedEvent is the BasicFabricEvent implementation for PartitionAnalysisEvent.
30784func (pae PartitionAnalysisEvent) AsNodeAbortedEvent() (*NodeAbortedEvent, bool) {
30785	return nil, false
30786}
30787
30788// AsNodeAddedToClusterEvent is the BasicFabricEvent implementation for PartitionAnalysisEvent.
30789func (pae PartitionAnalysisEvent) AsNodeAddedToClusterEvent() (*NodeAddedToClusterEvent, bool) {
30790	return nil, false
30791}
30792
30793// AsNodeClosedEvent is the BasicFabricEvent implementation for PartitionAnalysisEvent.
30794func (pae PartitionAnalysisEvent) AsNodeClosedEvent() (*NodeClosedEvent, bool) {
30795	return nil, false
30796}
30797
30798// AsNodeDeactivateCompletedEvent is the BasicFabricEvent implementation for PartitionAnalysisEvent.
30799func (pae PartitionAnalysisEvent) AsNodeDeactivateCompletedEvent() (*NodeDeactivateCompletedEvent, bool) {
30800	return nil, false
30801}
30802
30803// AsNodeDeactivateStartedEvent is the BasicFabricEvent implementation for PartitionAnalysisEvent.
30804func (pae PartitionAnalysisEvent) AsNodeDeactivateStartedEvent() (*NodeDeactivateStartedEvent, bool) {
30805	return nil, false
30806}
30807
30808// AsNodeDownEvent is the BasicFabricEvent implementation for PartitionAnalysisEvent.
30809func (pae PartitionAnalysisEvent) AsNodeDownEvent() (*NodeDownEvent, bool) {
30810	return nil, false
30811}
30812
30813// AsNodeNewHealthReportEvent is the BasicFabricEvent implementation for PartitionAnalysisEvent.
30814func (pae PartitionAnalysisEvent) AsNodeNewHealthReportEvent() (*NodeNewHealthReportEvent, bool) {
30815	return nil, false
30816}
30817
30818// AsNodeHealthReportExpiredEvent is the BasicFabricEvent implementation for PartitionAnalysisEvent.
30819func (pae PartitionAnalysisEvent) AsNodeHealthReportExpiredEvent() (*NodeHealthReportExpiredEvent, bool) {
30820	return nil, false
30821}
30822
30823// AsNodeOpenSucceededEvent is the BasicFabricEvent implementation for PartitionAnalysisEvent.
30824func (pae PartitionAnalysisEvent) AsNodeOpenSucceededEvent() (*NodeOpenSucceededEvent, bool) {
30825	return nil, false
30826}
30827
30828// AsNodeOpenFailedEvent is the BasicFabricEvent implementation for PartitionAnalysisEvent.
30829func (pae PartitionAnalysisEvent) AsNodeOpenFailedEvent() (*NodeOpenFailedEvent, bool) {
30830	return nil, false
30831}
30832
30833// AsNodeRemovedFromClusterEvent is the BasicFabricEvent implementation for PartitionAnalysisEvent.
30834func (pae PartitionAnalysisEvent) AsNodeRemovedFromClusterEvent() (*NodeRemovedFromClusterEvent, bool) {
30835	return nil, false
30836}
30837
30838// AsNodeUpEvent is the BasicFabricEvent implementation for PartitionAnalysisEvent.
30839func (pae PartitionAnalysisEvent) AsNodeUpEvent() (*NodeUpEvent, bool) {
30840	return nil, false
30841}
30842
30843// AsPartitionNewHealthReportEvent is the BasicFabricEvent implementation for PartitionAnalysisEvent.
30844func (pae PartitionAnalysisEvent) AsPartitionNewHealthReportEvent() (*PartitionNewHealthReportEvent, bool) {
30845	return nil, false
30846}
30847
30848// AsPartitionHealthReportExpiredEvent is the BasicFabricEvent implementation for PartitionAnalysisEvent.
30849func (pae PartitionAnalysisEvent) AsPartitionHealthReportExpiredEvent() (*PartitionHealthReportExpiredEvent, bool) {
30850	return nil, false
30851}
30852
30853// AsPartitionReconfiguredEvent is the BasicFabricEvent implementation for PartitionAnalysisEvent.
30854func (pae PartitionAnalysisEvent) AsPartitionReconfiguredEvent() (*PartitionReconfiguredEvent, bool) {
30855	return nil, false
30856}
30857
30858// AsPartitionPrimaryMoveAnalysisEvent is the BasicFabricEvent implementation for PartitionAnalysisEvent.
30859func (pae PartitionAnalysisEvent) AsPartitionPrimaryMoveAnalysisEvent() (*PartitionPrimaryMoveAnalysisEvent, bool) {
30860	return nil, false
30861}
30862
30863// AsServiceCreatedEvent is the BasicFabricEvent implementation for PartitionAnalysisEvent.
30864func (pae PartitionAnalysisEvent) AsServiceCreatedEvent() (*ServiceCreatedEvent, bool) {
30865	return nil, false
30866}
30867
30868// AsServiceDeletedEvent is the BasicFabricEvent implementation for PartitionAnalysisEvent.
30869func (pae PartitionAnalysisEvent) AsServiceDeletedEvent() (*ServiceDeletedEvent, bool) {
30870	return nil, false
30871}
30872
30873// AsServiceNewHealthReportEvent is the BasicFabricEvent implementation for PartitionAnalysisEvent.
30874func (pae PartitionAnalysisEvent) AsServiceNewHealthReportEvent() (*ServiceNewHealthReportEvent, bool) {
30875	return nil, false
30876}
30877
30878// AsServiceHealthReportExpiredEvent is the BasicFabricEvent implementation for PartitionAnalysisEvent.
30879func (pae PartitionAnalysisEvent) AsServiceHealthReportExpiredEvent() (*ServiceHealthReportExpiredEvent, bool) {
30880	return nil, false
30881}
30882
30883// AsDeployedServicePackageNewHealthReportEvent is the BasicFabricEvent implementation for PartitionAnalysisEvent.
30884func (pae PartitionAnalysisEvent) AsDeployedServicePackageNewHealthReportEvent() (*DeployedServicePackageNewHealthReportEvent, bool) {
30885	return nil, false
30886}
30887
30888// AsDeployedServicePackageHealthReportExpiredEvent is the BasicFabricEvent implementation for PartitionAnalysisEvent.
30889func (pae PartitionAnalysisEvent) AsDeployedServicePackageHealthReportExpiredEvent() (*DeployedServicePackageHealthReportExpiredEvent, bool) {
30890	return nil, false
30891}
30892
30893// AsStatefulReplicaNewHealthReportEvent is the BasicFabricEvent implementation for PartitionAnalysisEvent.
30894func (pae PartitionAnalysisEvent) AsStatefulReplicaNewHealthReportEvent() (*StatefulReplicaNewHealthReportEvent, bool) {
30895	return nil, false
30896}
30897
30898// AsStatefulReplicaHealthReportExpiredEvent is the BasicFabricEvent implementation for PartitionAnalysisEvent.
30899func (pae PartitionAnalysisEvent) AsStatefulReplicaHealthReportExpiredEvent() (*StatefulReplicaHealthReportExpiredEvent, bool) {
30900	return nil, false
30901}
30902
30903// AsStatelessReplicaNewHealthReportEvent is the BasicFabricEvent implementation for PartitionAnalysisEvent.
30904func (pae PartitionAnalysisEvent) AsStatelessReplicaNewHealthReportEvent() (*StatelessReplicaNewHealthReportEvent, bool) {
30905	return nil, false
30906}
30907
30908// AsStatelessReplicaHealthReportExpiredEvent is the BasicFabricEvent implementation for PartitionAnalysisEvent.
30909func (pae PartitionAnalysisEvent) AsStatelessReplicaHealthReportExpiredEvent() (*StatelessReplicaHealthReportExpiredEvent, bool) {
30910	return nil, false
30911}
30912
30913// AsClusterNewHealthReportEvent is the BasicFabricEvent implementation for PartitionAnalysisEvent.
30914func (pae PartitionAnalysisEvent) AsClusterNewHealthReportEvent() (*ClusterNewHealthReportEvent, bool) {
30915	return nil, false
30916}
30917
30918// AsClusterHealthReportExpiredEvent is the BasicFabricEvent implementation for PartitionAnalysisEvent.
30919func (pae PartitionAnalysisEvent) AsClusterHealthReportExpiredEvent() (*ClusterHealthReportExpiredEvent, bool) {
30920	return nil, false
30921}
30922
30923// AsClusterUpgradeCompletedEvent is the BasicFabricEvent implementation for PartitionAnalysisEvent.
30924func (pae PartitionAnalysisEvent) AsClusterUpgradeCompletedEvent() (*ClusterUpgradeCompletedEvent, bool) {
30925	return nil, false
30926}
30927
30928// AsClusterUpgradeDomainCompletedEvent is the BasicFabricEvent implementation for PartitionAnalysisEvent.
30929func (pae PartitionAnalysisEvent) AsClusterUpgradeDomainCompletedEvent() (*ClusterUpgradeDomainCompletedEvent, bool) {
30930	return nil, false
30931}
30932
30933// AsClusterUpgradeRollbackCompletedEvent is the BasicFabricEvent implementation for PartitionAnalysisEvent.
30934func (pae PartitionAnalysisEvent) AsClusterUpgradeRollbackCompletedEvent() (*ClusterUpgradeRollbackCompletedEvent, bool) {
30935	return nil, false
30936}
30937
30938// AsClusterUpgradeRollbackStartedEvent is the BasicFabricEvent implementation for PartitionAnalysisEvent.
30939func (pae PartitionAnalysisEvent) AsClusterUpgradeRollbackStartedEvent() (*ClusterUpgradeRollbackStartedEvent, bool) {
30940	return nil, false
30941}
30942
30943// AsClusterUpgradeStartedEvent is the BasicFabricEvent implementation for PartitionAnalysisEvent.
30944func (pae PartitionAnalysisEvent) AsClusterUpgradeStartedEvent() (*ClusterUpgradeStartedEvent, bool) {
30945	return nil, false
30946}
30947
30948// AsChaosStoppedEvent is the BasicFabricEvent implementation for PartitionAnalysisEvent.
30949func (pae PartitionAnalysisEvent) AsChaosStoppedEvent() (*ChaosStoppedEvent, bool) {
30950	return nil, false
30951}
30952
30953// AsChaosStartedEvent is the BasicFabricEvent implementation for PartitionAnalysisEvent.
30954func (pae PartitionAnalysisEvent) AsChaosStartedEvent() (*ChaosStartedEvent, bool) {
30955	return nil, false
30956}
30957
30958// AsChaosCodePackageRestartScheduledEvent is the BasicFabricEvent implementation for PartitionAnalysisEvent.
30959func (pae PartitionAnalysisEvent) AsChaosCodePackageRestartScheduledEvent() (*ChaosCodePackageRestartScheduledEvent, bool) {
30960	return nil, false
30961}
30962
30963// AsChaosReplicaRemovalScheduledEvent is the BasicFabricEvent implementation for PartitionAnalysisEvent.
30964func (pae PartitionAnalysisEvent) AsChaosReplicaRemovalScheduledEvent() (*ChaosReplicaRemovalScheduledEvent, bool) {
30965	return nil, false
30966}
30967
30968// AsChaosPartitionSecondaryMoveScheduledEvent is the BasicFabricEvent implementation for PartitionAnalysisEvent.
30969func (pae PartitionAnalysisEvent) AsChaosPartitionSecondaryMoveScheduledEvent() (*ChaosPartitionSecondaryMoveScheduledEvent, bool) {
30970	return nil, false
30971}
30972
30973// AsChaosPartitionPrimaryMoveScheduledEvent is the BasicFabricEvent implementation for PartitionAnalysisEvent.
30974func (pae PartitionAnalysisEvent) AsChaosPartitionPrimaryMoveScheduledEvent() (*ChaosPartitionPrimaryMoveScheduledEvent, bool) {
30975	return nil, false
30976}
30977
30978// AsChaosReplicaRestartScheduledEvent is the BasicFabricEvent implementation for PartitionAnalysisEvent.
30979func (pae PartitionAnalysisEvent) AsChaosReplicaRestartScheduledEvent() (*ChaosReplicaRestartScheduledEvent, bool) {
30980	return nil, false
30981}
30982
30983// AsChaosNodeRestartScheduledEvent is the BasicFabricEvent implementation for PartitionAnalysisEvent.
30984func (pae PartitionAnalysisEvent) AsChaosNodeRestartScheduledEvent() (*ChaosNodeRestartScheduledEvent, bool) {
30985	return nil, false
30986}
30987
30988// AsFabricEvent is the BasicFabricEvent implementation for PartitionAnalysisEvent.
30989func (pae PartitionAnalysisEvent) AsFabricEvent() (*FabricEvent, bool) {
30990	return nil, false
30991}
30992
30993// AsBasicFabricEvent is the BasicFabricEvent implementation for PartitionAnalysisEvent.
30994func (pae PartitionAnalysisEvent) AsBasicFabricEvent() (BasicFabricEvent, bool) {
30995	return &pae, true
30996}
30997
30998// PartitionBackupConfigurationInfo backup configuration information, for a specific partition, specifying
30999// what backup policy is being applied and suspend description, if any.
31000type PartitionBackupConfigurationInfo struct {
31001	autorest.Response `json:"-"`
31002	// ServiceName - The full name of the service with 'fabric:' URI scheme.
31003	ServiceName *string `json:"ServiceName,omitempty"`
31004	// PartitionID - The partition ID identifying the partition.
31005	PartitionID *uuid.UUID `json:"PartitionId,omitempty"`
31006	// PolicyName - The name of the backup policy which is applicable to this Service Fabric application or service or partition.
31007	PolicyName *string `json:"PolicyName,omitempty"`
31008	// PolicyInheritedFrom - Specifies the scope at which the backup policy is applied. Possible values include: 'BackupPolicyScopeInvalid', 'BackupPolicyScopePartition', 'BackupPolicyScopeService', 'BackupPolicyScopeApplication'
31009	PolicyInheritedFrom BackupPolicyScope `json:"PolicyInheritedFrom,omitempty"`
31010	// SuspensionInfo - Describes the backup suspension details.
31011	SuspensionInfo *BackupSuspensionInfo `json:"SuspensionInfo,omitempty"`
31012	// Kind - Possible values include: 'KindBasicBackupConfigurationInfoKindBackupConfigurationInfo', 'KindBasicBackupConfigurationInfoKindApplication', 'KindBasicBackupConfigurationInfoKindService', 'KindBasicBackupConfigurationInfoKindPartition'
31013	Kind KindBasicBackupConfigurationInfo `json:"Kind,omitempty"`
31014}
31015
31016// MarshalJSON is the custom marshaler for PartitionBackupConfigurationInfo.
31017func (pbci PartitionBackupConfigurationInfo) MarshalJSON() ([]byte, error) {
31018	pbci.Kind = KindBasicBackupConfigurationInfoKindPartition
31019	objectMap := make(map[string]interface{})
31020	if pbci.ServiceName != nil {
31021		objectMap["ServiceName"] = pbci.ServiceName
31022	}
31023	if pbci.PartitionID != nil {
31024		objectMap["PartitionId"] = pbci.PartitionID
31025	}
31026	if pbci.PolicyName != nil {
31027		objectMap["PolicyName"] = pbci.PolicyName
31028	}
31029	if pbci.PolicyInheritedFrom != "" {
31030		objectMap["PolicyInheritedFrom"] = pbci.PolicyInheritedFrom
31031	}
31032	if pbci.SuspensionInfo != nil {
31033		objectMap["SuspensionInfo"] = pbci.SuspensionInfo
31034	}
31035	if pbci.Kind != "" {
31036		objectMap["Kind"] = pbci.Kind
31037	}
31038	return json.Marshal(objectMap)
31039}
31040
31041// AsApplicationBackupConfigurationInfo is the BasicBackupConfigurationInfo implementation for PartitionBackupConfigurationInfo.
31042func (pbci PartitionBackupConfigurationInfo) AsApplicationBackupConfigurationInfo() (*ApplicationBackupConfigurationInfo, bool) {
31043	return nil, false
31044}
31045
31046// AsServiceBackupConfigurationInfo is the BasicBackupConfigurationInfo implementation for PartitionBackupConfigurationInfo.
31047func (pbci PartitionBackupConfigurationInfo) AsServiceBackupConfigurationInfo() (*ServiceBackupConfigurationInfo, bool) {
31048	return nil, false
31049}
31050
31051// AsPartitionBackupConfigurationInfo is the BasicBackupConfigurationInfo implementation for PartitionBackupConfigurationInfo.
31052func (pbci PartitionBackupConfigurationInfo) AsPartitionBackupConfigurationInfo() (*PartitionBackupConfigurationInfo, bool) {
31053	return &pbci, true
31054}
31055
31056// AsBackupConfigurationInfo is the BasicBackupConfigurationInfo implementation for PartitionBackupConfigurationInfo.
31057func (pbci PartitionBackupConfigurationInfo) AsBackupConfigurationInfo() (*BackupConfigurationInfo, bool) {
31058	return nil, false
31059}
31060
31061// AsBasicBackupConfigurationInfo is the BasicBackupConfigurationInfo implementation for PartitionBackupConfigurationInfo.
31062func (pbci PartitionBackupConfigurationInfo) AsBasicBackupConfigurationInfo() (BasicBackupConfigurationInfo, bool) {
31063	return &pbci, true
31064}
31065
31066// PartitionBackupEntity identifies the Service Fabric stateful partition which is being backed up.
31067type PartitionBackupEntity struct {
31068	// ServiceName - The full name of the service with 'fabric:' URI scheme.
31069	ServiceName *string `json:"ServiceName,omitempty"`
31070	// PartitionID - The partition ID identifying the partition.
31071	PartitionID *uuid.UUID `json:"PartitionId,omitempty"`
31072	// EntityKind - Possible values include: 'EntityKindBackupEntity', 'EntityKindApplication1', 'EntityKindService1', 'EntityKindPartition1'
31073	EntityKind EntityKindBasicBackupEntity `json:"EntityKind,omitempty"`
31074}
31075
31076// MarshalJSON is the custom marshaler for PartitionBackupEntity.
31077func (pbe PartitionBackupEntity) MarshalJSON() ([]byte, error) {
31078	pbe.EntityKind = EntityKindPartition1
31079	objectMap := make(map[string]interface{})
31080	if pbe.ServiceName != nil {
31081		objectMap["ServiceName"] = pbe.ServiceName
31082	}
31083	if pbe.PartitionID != nil {
31084		objectMap["PartitionId"] = pbe.PartitionID
31085	}
31086	if pbe.EntityKind != "" {
31087		objectMap["EntityKind"] = pbe.EntityKind
31088	}
31089	return json.Marshal(objectMap)
31090}
31091
31092// AsApplicationBackupEntity is the BasicBackupEntity implementation for PartitionBackupEntity.
31093func (pbe PartitionBackupEntity) AsApplicationBackupEntity() (*ApplicationBackupEntity, bool) {
31094	return nil, false
31095}
31096
31097// AsServiceBackupEntity is the BasicBackupEntity implementation for PartitionBackupEntity.
31098func (pbe PartitionBackupEntity) AsServiceBackupEntity() (*ServiceBackupEntity, bool) {
31099	return nil, false
31100}
31101
31102// AsPartitionBackupEntity is the BasicBackupEntity implementation for PartitionBackupEntity.
31103func (pbe PartitionBackupEntity) AsPartitionBackupEntity() (*PartitionBackupEntity, bool) {
31104	return &pbe, true
31105}
31106
31107// AsBackupEntity is the BasicBackupEntity implementation for PartitionBackupEntity.
31108func (pbe PartitionBackupEntity) AsBackupEntity() (*BackupEntity, bool) {
31109	return nil, false
31110}
31111
31112// AsBasicBackupEntity is the BasicBackupEntity implementation for PartitionBackupEntity.
31113func (pbe PartitionBackupEntity) AsBasicBackupEntity() (BasicBackupEntity, bool) {
31114	return &pbe, true
31115}
31116
31117// PartitionDataLossProgress information about a partition data loss user-induced operation.
31118type PartitionDataLossProgress struct {
31119	autorest.Response `json:"-"`
31120	// State - The state of the operation. Possible values include: 'OperationStateInvalid', 'OperationStateRunning', 'OperationStateRollingBack', 'OperationStateCompleted', 'OperationStateFaulted', 'OperationStateCancelled', 'OperationStateForceCancelled'
31121	State OperationState `json:"State,omitempty"`
31122	// InvokeDataLossResult - Represents information about an operation in a terminal state (Completed or Faulted).
31123	InvokeDataLossResult *InvokeDataLossResult `json:"InvokeDataLossResult,omitempty"`
31124}
31125
31126// BasicPartitionEvent represents the base for all Partition Events.
31127type BasicPartitionEvent interface {
31128	AsPartitionAnalysisEvent() (*PartitionAnalysisEvent, bool)
31129	AsBasicPartitionAnalysisEvent() (BasicPartitionAnalysisEvent, bool)
31130	AsPartitionNewHealthReportEvent() (*PartitionNewHealthReportEvent, bool)
31131	AsPartitionHealthReportExpiredEvent() (*PartitionHealthReportExpiredEvent, bool)
31132	AsPartitionReconfiguredEvent() (*PartitionReconfiguredEvent, bool)
31133	AsPartitionPrimaryMoveAnalysisEvent() (*PartitionPrimaryMoveAnalysisEvent, bool)
31134	AsChaosPartitionSecondaryMoveScheduledEvent() (*ChaosPartitionSecondaryMoveScheduledEvent, bool)
31135	AsChaosPartitionPrimaryMoveScheduledEvent() (*ChaosPartitionPrimaryMoveScheduledEvent, bool)
31136	AsPartitionEvent() (*PartitionEvent, bool)
31137}
31138
31139// PartitionEvent represents the base for all Partition Events.
31140type PartitionEvent struct {
31141	// 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.
31142	PartitionID *uuid.UUID `json:"PartitionId,omitempty"`
31143	// EventInstanceID - The identifier for the FabricEvent instance.
31144	EventInstanceID *uuid.UUID `json:"EventInstanceId,omitempty"`
31145	// Category - The category of event.
31146	Category *string `json:"Category,omitempty"`
31147	// TimeStamp - The time event was logged.
31148	TimeStamp *date.Time `json:"TimeStamp,omitempty"`
31149	// HasCorrelatedEvents - Shows there is existing related events available.
31150	HasCorrelatedEvents *bool `json:"HasCorrelatedEvents,omitempty"`
31151	// 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'
31152	Kind KindBasicFabricEvent `json:"Kind,omitempty"`
31153}
31154
31155func unmarshalBasicPartitionEvent(body []byte) (BasicPartitionEvent, error) {
31156	var m map[string]interface{}
31157	err := json.Unmarshal(body, &m)
31158	if err != nil {
31159		return nil, err
31160	}
31161
31162	switch m["Kind"] {
31163	case string(KindPartitionAnalysisEvent):
31164		var pae PartitionAnalysisEvent
31165		err := json.Unmarshal(body, &pae)
31166		return pae, err
31167	case string(KindPartitionNewHealthReport):
31168		var pnhre PartitionNewHealthReportEvent
31169		err := json.Unmarshal(body, &pnhre)
31170		return pnhre, err
31171	case string(KindPartitionHealthReportExpired):
31172		var phree PartitionHealthReportExpiredEvent
31173		err := json.Unmarshal(body, &phree)
31174		return phree, err
31175	case string(KindPartitionReconfigured):
31176		var pre PartitionReconfiguredEvent
31177		err := json.Unmarshal(body, &pre)
31178		return pre, err
31179	case string(KindPartitionPrimaryMoveAnalysis):
31180		var ppmae PartitionPrimaryMoveAnalysisEvent
31181		err := json.Unmarshal(body, &ppmae)
31182		return ppmae, err
31183	case string(KindChaosPartitionSecondaryMoveScheduled):
31184		var cpsmse ChaosPartitionSecondaryMoveScheduledEvent
31185		err := json.Unmarshal(body, &cpsmse)
31186		return cpsmse, err
31187	case string(KindChaosPartitionPrimaryMoveScheduled):
31188		var cppmse ChaosPartitionPrimaryMoveScheduledEvent
31189		err := json.Unmarshal(body, &cppmse)
31190		return cppmse, err
31191	default:
31192		var peVar PartitionEvent
31193		err := json.Unmarshal(body, &peVar)
31194		return peVar, err
31195	}
31196}
31197func unmarshalBasicPartitionEventArray(body []byte) ([]BasicPartitionEvent, error) {
31198	var rawMessages []*json.RawMessage
31199	err := json.Unmarshal(body, &rawMessages)
31200	if err != nil {
31201		return nil, err
31202	}
31203
31204	peVarArray := make([]BasicPartitionEvent, len(rawMessages))
31205
31206	for index, rawMessage := range rawMessages {
31207		peVar, err := unmarshalBasicPartitionEvent(*rawMessage)
31208		if err != nil {
31209			return nil, err
31210		}
31211		peVarArray[index] = peVar
31212	}
31213	return peVarArray, nil
31214}
31215
31216// MarshalJSON is the custom marshaler for PartitionEvent.
31217func (peVar PartitionEvent) MarshalJSON() ([]byte, error) {
31218	peVar.Kind = KindPartitionEvent
31219	objectMap := make(map[string]interface{})
31220	if peVar.PartitionID != nil {
31221		objectMap["PartitionId"] = peVar.PartitionID
31222	}
31223	if peVar.EventInstanceID != nil {
31224		objectMap["EventInstanceId"] = peVar.EventInstanceID
31225	}
31226	if peVar.Category != nil {
31227		objectMap["Category"] = peVar.Category
31228	}
31229	if peVar.TimeStamp != nil {
31230		objectMap["TimeStamp"] = peVar.TimeStamp
31231	}
31232	if peVar.HasCorrelatedEvents != nil {
31233		objectMap["HasCorrelatedEvents"] = peVar.HasCorrelatedEvents
31234	}
31235	if peVar.Kind != "" {
31236		objectMap["Kind"] = peVar.Kind
31237	}
31238	return json.Marshal(objectMap)
31239}
31240
31241// AsApplicationEvent is the BasicFabricEvent implementation for PartitionEvent.
31242func (peVar PartitionEvent) AsApplicationEvent() (*ApplicationEvent, bool) {
31243	return nil, false
31244}
31245
31246// AsBasicApplicationEvent is the BasicFabricEvent implementation for PartitionEvent.
31247func (peVar PartitionEvent) AsBasicApplicationEvent() (BasicApplicationEvent, bool) {
31248	return nil, false
31249}
31250
31251// AsClusterEvent is the BasicFabricEvent implementation for PartitionEvent.
31252func (peVar PartitionEvent) AsClusterEvent() (*ClusterEvent, bool) {
31253	return nil, false
31254}
31255
31256// AsBasicClusterEvent is the BasicFabricEvent implementation for PartitionEvent.
31257func (peVar PartitionEvent) AsBasicClusterEvent() (BasicClusterEvent, bool) {
31258	return nil, false
31259}
31260
31261// AsContainerInstanceEvent is the BasicFabricEvent implementation for PartitionEvent.
31262func (peVar PartitionEvent) AsContainerInstanceEvent() (*ContainerInstanceEvent, bool) {
31263	return nil, false
31264}
31265
31266// AsNodeEvent is the BasicFabricEvent implementation for PartitionEvent.
31267func (peVar PartitionEvent) AsNodeEvent() (*NodeEvent, bool) {
31268	return nil, false
31269}
31270
31271// AsBasicNodeEvent is the BasicFabricEvent implementation for PartitionEvent.
31272func (peVar PartitionEvent) AsBasicNodeEvent() (BasicNodeEvent, bool) {
31273	return nil, false
31274}
31275
31276// AsPartitionAnalysisEvent is the BasicFabricEvent implementation for PartitionEvent.
31277func (peVar PartitionEvent) AsPartitionAnalysisEvent() (*PartitionAnalysisEvent, bool) {
31278	return nil, false
31279}
31280
31281// AsBasicPartitionAnalysisEvent is the BasicFabricEvent implementation for PartitionEvent.
31282func (peVar PartitionEvent) AsBasicPartitionAnalysisEvent() (BasicPartitionAnalysisEvent, bool) {
31283	return nil, false
31284}
31285
31286// AsPartitionEvent is the BasicFabricEvent implementation for PartitionEvent.
31287func (peVar PartitionEvent) AsPartitionEvent() (*PartitionEvent, bool) {
31288	return &peVar, true
31289}
31290
31291// AsBasicPartitionEvent is the BasicFabricEvent implementation for PartitionEvent.
31292func (peVar PartitionEvent) AsBasicPartitionEvent() (BasicPartitionEvent, bool) {
31293	return &peVar, true
31294}
31295
31296// AsReplicaEvent is the BasicFabricEvent implementation for PartitionEvent.
31297func (peVar PartitionEvent) AsReplicaEvent() (*ReplicaEvent, bool) {
31298	return nil, false
31299}
31300
31301// AsBasicReplicaEvent is the BasicFabricEvent implementation for PartitionEvent.
31302func (peVar PartitionEvent) AsBasicReplicaEvent() (BasicReplicaEvent, bool) {
31303	return nil, false
31304}
31305
31306// AsServiceEvent is the BasicFabricEvent implementation for PartitionEvent.
31307func (peVar PartitionEvent) AsServiceEvent() (*ServiceEvent, bool) {
31308	return nil, false
31309}
31310
31311// AsBasicServiceEvent is the BasicFabricEvent implementation for PartitionEvent.
31312func (peVar PartitionEvent) AsBasicServiceEvent() (BasicServiceEvent, bool) {
31313	return nil, false
31314}
31315
31316// AsApplicationCreatedEvent is the BasicFabricEvent implementation for PartitionEvent.
31317func (peVar PartitionEvent) AsApplicationCreatedEvent() (*ApplicationCreatedEvent, bool) {
31318	return nil, false
31319}
31320
31321// AsApplicationDeletedEvent is the BasicFabricEvent implementation for PartitionEvent.
31322func (peVar PartitionEvent) AsApplicationDeletedEvent() (*ApplicationDeletedEvent, bool) {
31323	return nil, false
31324}
31325
31326// AsApplicationNewHealthReportEvent is the BasicFabricEvent implementation for PartitionEvent.
31327func (peVar PartitionEvent) AsApplicationNewHealthReportEvent() (*ApplicationNewHealthReportEvent, bool) {
31328	return nil, false
31329}
31330
31331// AsApplicationHealthReportExpiredEvent is the BasicFabricEvent implementation for PartitionEvent.
31332func (peVar PartitionEvent) AsApplicationHealthReportExpiredEvent() (*ApplicationHealthReportExpiredEvent, bool) {
31333	return nil, false
31334}
31335
31336// AsApplicationUpgradeCompletedEvent is the BasicFabricEvent implementation for PartitionEvent.
31337func (peVar PartitionEvent) AsApplicationUpgradeCompletedEvent() (*ApplicationUpgradeCompletedEvent, bool) {
31338	return nil, false
31339}
31340
31341// AsApplicationUpgradeDomainCompletedEvent is the BasicFabricEvent implementation for PartitionEvent.
31342func (peVar PartitionEvent) AsApplicationUpgradeDomainCompletedEvent() (*ApplicationUpgradeDomainCompletedEvent, bool) {
31343	return nil, false
31344}
31345
31346// AsApplicationUpgradeRollbackCompletedEvent is the BasicFabricEvent implementation for PartitionEvent.
31347func (peVar PartitionEvent) AsApplicationUpgradeRollbackCompletedEvent() (*ApplicationUpgradeRollbackCompletedEvent, bool) {
31348	return nil, false
31349}
31350
31351// AsApplicationUpgradeRollbackStartedEvent is the BasicFabricEvent implementation for PartitionEvent.
31352func (peVar PartitionEvent) AsApplicationUpgradeRollbackStartedEvent() (*ApplicationUpgradeRollbackStartedEvent, bool) {
31353	return nil, false
31354}
31355
31356// AsApplicationUpgradeStartedEvent is the BasicFabricEvent implementation for PartitionEvent.
31357func (peVar PartitionEvent) AsApplicationUpgradeStartedEvent() (*ApplicationUpgradeStartedEvent, bool) {
31358	return nil, false
31359}
31360
31361// AsDeployedApplicationNewHealthReportEvent is the BasicFabricEvent implementation for PartitionEvent.
31362func (peVar PartitionEvent) AsDeployedApplicationNewHealthReportEvent() (*DeployedApplicationNewHealthReportEvent, bool) {
31363	return nil, false
31364}
31365
31366// AsDeployedApplicationHealthReportExpiredEvent is the BasicFabricEvent implementation for PartitionEvent.
31367func (peVar PartitionEvent) AsDeployedApplicationHealthReportExpiredEvent() (*DeployedApplicationHealthReportExpiredEvent, bool) {
31368	return nil, false
31369}
31370
31371// AsApplicationProcessExitedEvent is the BasicFabricEvent implementation for PartitionEvent.
31372func (peVar PartitionEvent) AsApplicationProcessExitedEvent() (*ApplicationProcessExitedEvent, bool) {
31373	return nil, false
31374}
31375
31376// AsApplicationContainerInstanceExitedEvent is the BasicFabricEvent implementation for PartitionEvent.
31377func (peVar PartitionEvent) AsApplicationContainerInstanceExitedEvent() (*ApplicationContainerInstanceExitedEvent, bool) {
31378	return nil, false
31379}
31380
31381// AsNodeAbortedEvent is the BasicFabricEvent implementation for PartitionEvent.
31382func (peVar PartitionEvent) AsNodeAbortedEvent() (*NodeAbortedEvent, bool) {
31383	return nil, false
31384}
31385
31386// AsNodeAddedToClusterEvent is the BasicFabricEvent implementation for PartitionEvent.
31387func (peVar PartitionEvent) AsNodeAddedToClusterEvent() (*NodeAddedToClusterEvent, bool) {
31388	return nil, false
31389}
31390
31391// AsNodeClosedEvent is the BasicFabricEvent implementation for PartitionEvent.
31392func (peVar PartitionEvent) AsNodeClosedEvent() (*NodeClosedEvent, bool) {
31393	return nil, false
31394}
31395
31396// AsNodeDeactivateCompletedEvent is the BasicFabricEvent implementation for PartitionEvent.
31397func (peVar PartitionEvent) AsNodeDeactivateCompletedEvent() (*NodeDeactivateCompletedEvent, bool) {
31398	return nil, false
31399}
31400
31401// AsNodeDeactivateStartedEvent is the BasicFabricEvent implementation for PartitionEvent.
31402func (peVar PartitionEvent) AsNodeDeactivateStartedEvent() (*NodeDeactivateStartedEvent, bool) {
31403	return nil, false
31404}
31405
31406// AsNodeDownEvent is the BasicFabricEvent implementation for PartitionEvent.
31407func (peVar PartitionEvent) AsNodeDownEvent() (*NodeDownEvent, bool) {
31408	return nil, false
31409}
31410
31411// AsNodeNewHealthReportEvent is the BasicFabricEvent implementation for PartitionEvent.
31412func (peVar PartitionEvent) AsNodeNewHealthReportEvent() (*NodeNewHealthReportEvent, bool) {
31413	return nil, false
31414}
31415
31416// AsNodeHealthReportExpiredEvent is the BasicFabricEvent implementation for PartitionEvent.
31417func (peVar PartitionEvent) AsNodeHealthReportExpiredEvent() (*NodeHealthReportExpiredEvent, bool) {
31418	return nil, false
31419}
31420
31421// AsNodeOpenSucceededEvent is the BasicFabricEvent implementation for PartitionEvent.
31422func (peVar PartitionEvent) AsNodeOpenSucceededEvent() (*NodeOpenSucceededEvent, bool) {
31423	return nil, false
31424}
31425
31426// AsNodeOpenFailedEvent is the BasicFabricEvent implementation for PartitionEvent.
31427func (peVar PartitionEvent) AsNodeOpenFailedEvent() (*NodeOpenFailedEvent, bool) {
31428	return nil, false
31429}
31430
31431// AsNodeRemovedFromClusterEvent is the BasicFabricEvent implementation for PartitionEvent.
31432func (peVar PartitionEvent) AsNodeRemovedFromClusterEvent() (*NodeRemovedFromClusterEvent, bool) {
31433	return nil, false
31434}
31435
31436// AsNodeUpEvent is the BasicFabricEvent implementation for PartitionEvent.
31437func (peVar PartitionEvent) AsNodeUpEvent() (*NodeUpEvent, bool) {
31438	return nil, false
31439}
31440
31441// AsPartitionNewHealthReportEvent is the BasicFabricEvent implementation for PartitionEvent.
31442func (peVar PartitionEvent) AsPartitionNewHealthReportEvent() (*PartitionNewHealthReportEvent, bool) {
31443	return nil, false
31444}
31445
31446// AsPartitionHealthReportExpiredEvent is the BasicFabricEvent implementation for PartitionEvent.
31447func (peVar PartitionEvent) AsPartitionHealthReportExpiredEvent() (*PartitionHealthReportExpiredEvent, bool) {
31448	return nil, false
31449}
31450
31451// AsPartitionReconfiguredEvent is the BasicFabricEvent implementation for PartitionEvent.
31452func (peVar PartitionEvent) AsPartitionReconfiguredEvent() (*PartitionReconfiguredEvent, bool) {
31453	return nil, false
31454}
31455
31456// AsPartitionPrimaryMoveAnalysisEvent is the BasicFabricEvent implementation for PartitionEvent.
31457func (peVar PartitionEvent) AsPartitionPrimaryMoveAnalysisEvent() (*PartitionPrimaryMoveAnalysisEvent, bool) {
31458	return nil, false
31459}
31460
31461// AsServiceCreatedEvent is the BasicFabricEvent implementation for PartitionEvent.
31462func (peVar PartitionEvent) AsServiceCreatedEvent() (*ServiceCreatedEvent, bool) {
31463	return nil, false
31464}
31465
31466// AsServiceDeletedEvent is the BasicFabricEvent implementation for PartitionEvent.
31467func (peVar PartitionEvent) AsServiceDeletedEvent() (*ServiceDeletedEvent, bool) {
31468	return nil, false
31469}
31470
31471// AsServiceNewHealthReportEvent is the BasicFabricEvent implementation for PartitionEvent.
31472func (peVar PartitionEvent) AsServiceNewHealthReportEvent() (*ServiceNewHealthReportEvent, bool) {
31473	return nil, false
31474}
31475
31476// AsServiceHealthReportExpiredEvent is the BasicFabricEvent implementation for PartitionEvent.
31477func (peVar PartitionEvent) AsServiceHealthReportExpiredEvent() (*ServiceHealthReportExpiredEvent, bool) {
31478	return nil, false
31479}
31480
31481// AsDeployedServicePackageNewHealthReportEvent is the BasicFabricEvent implementation for PartitionEvent.
31482func (peVar PartitionEvent) AsDeployedServicePackageNewHealthReportEvent() (*DeployedServicePackageNewHealthReportEvent, bool) {
31483	return nil, false
31484}
31485
31486// AsDeployedServicePackageHealthReportExpiredEvent is the BasicFabricEvent implementation for PartitionEvent.
31487func (peVar PartitionEvent) AsDeployedServicePackageHealthReportExpiredEvent() (*DeployedServicePackageHealthReportExpiredEvent, bool) {
31488	return nil, false
31489}
31490
31491// AsStatefulReplicaNewHealthReportEvent is the BasicFabricEvent implementation for PartitionEvent.
31492func (peVar PartitionEvent) AsStatefulReplicaNewHealthReportEvent() (*StatefulReplicaNewHealthReportEvent, bool) {
31493	return nil, false
31494}
31495
31496// AsStatefulReplicaHealthReportExpiredEvent is the BasicFabricEvent implementation for PartitionEvent.
31497func (peVar PartitionEvent) AsStatefulReplicaHealthReportExpiredEvent() (*StatefulReplicaHealthReportExpiredEvent, bool) {
31498	return nil, false
31499}
31500
31501// AsStatelessReplicaNewHealthReportEvent is the BasicFabricEvent implementation for PartitionEvent.
31502func (peVar PartitionEvent) AsStatelessReplicaNewHealthReportEvent() (*StatelessReplicaNewHealthReportEvent, bool) {
31503	return nil, false
31504}
31505
31506// AsStatelessReplicaHealthReportExpiredEvent is the BasicFabricEvent implementation for PartitionEvent.
31507func (peVar PartitionEvent) AsStatelessReplicaHealthReportExpiredEvent() (*StatelessReplicaHealthReportExpiredEvent, bool) {
31508	return nil, false
31509}
31510
31511// AsClusterNewHealthReportEvent is the BasicFabricEvent implementation for PartitionEvent.
31512func (peVar PartitionEvent) AsClusterNewHealthReportEvent() (*ClusterNewHealthReportEvent, bool) {
31513	return nil, false
31514}
31515
31516// AsClusterHealthReportExpiredEvent is the BasicFabricEvent implementation for PartitionEvent.
31517func (peVar PartitionEvent) AsClusterHealthReportExpiredEvent() (*ClusterHealthReportExpiredEvent, bool) {
31518	return nil, false
31519}
31520
31521// AsClusterUpgradeCompletedEvent is the BasicFabricEvent implementation for PartitionEvent.
31522func (peVar PartitionEvent) AsClusterUpgradeCompletedEvent() (*ClusterUpgradeCompletedEvent, bool) {
31523	return nil, false
31524}
31525
31526// AsClusterUpgradeDomainCompletedEvent is the BasicFabricEvent implementation for PartitionEvent.
31527func (peVar PartitionEvent) AsClusterUpgradeDomainCompletedEvent() (*ClusterUpgradeDomainCompletedEvent, bool) {
31528	return nil, false
31529}
31530
31531// AsClusterUpgradeRollbackCompletedEvent is the BasicFabricEvent implementation for PartitionEvent.
31532func (peVar PartitionEvent) AsClusterUpgradeRollbackCompletedEvent() (*ClusterUpgradeRollbackCompletedEvent, bool) {
31533	return nil, false
31534}
31535
31536// AsClusterUpgradeRollbackStartedEvent is the BasicFabricEvent implementation for PartitionEvent.
31537func (peVar PartitionEvent) AsClusterUpgradeRollbackStartedEvent() (*ClusterUpgradeRollbackStartedEvent, bool) {
31538	return nil, false
31539}
31540
31541// AsClusterUpgradeStartedEvent is the BasicFabricEvent implementation for PartitionEvent.
31542func (peVar PartitionEvent) AsClusterUpgradeStartedEvent() (*ClusterUpgradeStartedEvent, bool) {
31543	return nil, false
31544}
31545
31546// AsChaosStoppedEvent is the BasicFabricEvent implementation for PartitionEvent.
31547func (peVar PartitionEvent) AsChaosStoppedEvent() (*ChaosStoppedEvent, bool) {
31548	return nil, false
31549}
31550
31551// AsChaosStartedEvent is the BasicFabricEvent implementation for PartitionEvent.
31552func (peVar PartitionEvent) AsChaosStartedEvent() (*ChaosStartedEvent, bool) {
31553	return nil, false
31554}
31555
31556// AsChaosCodePackageRestartScheduledEvent is the BasicFabricEvent implementation for PartitionEvent.
31557func (peVar PartitionEvent) AsChaosCodePackageRestartScheduledEvent() (*ChaosCodePackageRestartScheduledEvent, bool) {
31558	return nil, false
31559}
31560
31561// AsChaosReplicaRemovalScheduledEvent is the BasicFabricEvent implementation for PartitionEvent.
31562func (peVar PartitionEvent) AsChaosReplicaRemovalScheduledEvent() (*ChaosReplicaRemovalScheduledEvent, bool) {
31563	return nil, false
31564}
31565
31566// AsChaosPartitionSecondaryMoveScheduledEvent is the BasicFabricEvent implementation for PartitionEvent.
31567func (peVar PartitionEvent) AsChaosPartitionSecondaryMoveScheduledEvent() (*ChaosPartitionSecondaryMoveScheduledEvent, bool) {
31568	return nil, false
31569}
31570
31571// AsChaosPartitionPrimaryMoveScheduledEvent is the BasicFabricEvent implementation for PartitionEvent.
31572func (peVar PartitionEvent) AsChaosPartitionPrimaryMoveScheduledEvent() (*ChaosPartitionPrimaryMoveScheduledEvent, bool) {
31573	return nil, false
31574}
31575
31576// AsChaosReplicaRestartScheduledEvent is the BasicFabricEvent implementation for PartitionEvent.
31577func (peVar PartitionEvent) AsChaosReplicaRestartScheduledEvent() (*ChaosReplicaRestartScheduledEvent, bool) {
31578	return nil, false
31579}
31580
31581// AsChaosNodeRestartScheduledEvent is the BasicFabricEvent implementation for PartitionEvent.
31582func (peVar PartitionEvent) AsChaosNodeRestartScheduledEvent() (*ChaosNodeRestartScheduledEvent, bool) {
31583	return nil, false
31584}
31585
31586// AsFabricEvent is the BasicFabricEvent implementation for PartitionEvent.
31587func (peVar PartitionEvent) AsFabricEvent() (*FabricEvent, bool) {
31588	return nil, false
31589}
31590
31591// AsBasicFabricEvent is the BasicFabricEvent implementation for PartitionEvent.
31592func (peVar PartitionEvent) AsBasicFabricEvent() (BasicFabricEvent, bool) {
31593	return &peVar, true
31594}
31595
31596// PartitionHealth information about the health of a Service Fabric partition.
31597type PartitionHealth struct {
31598	autorest.Response `json:"-"`
31599	// PartitionID - ID of the partition whose health information is described by this object.
31600	PartitionID *uuid.UUID `json:"PartitionId,omitempty"`
31601	// ReplicaHealthStates - The list of replica health states associated with the partition.
31602	ReplicaHealthStates *[]BasicReplicaHealthState `json:"ReplicaHealthStates,omitempty"`
31603	// AggregatedHealthState - The HealthState representing the aggregated health state of the entity computed by Health Manager.
31604	// The health evaluation of the entity reflects all events reported on the entity and its children (if any).
31605	// The aggregation is done by applying the desired health policy. Possible values include: 'HealthStateInvalid', 'HealthStateOk', 'HealthStateWarning', 'HealthStateError', 'HealthStateUnknown'
31606	AggregatedHealthState HealthState `json:"AggregatedHealthState,omitempty"`
31607	// HealthEvents - The list of health events reported on the entity.
31608	HealthEvents *[]HealthEvent `json:"HealthEvents,omitempty"`
31609	// UnhealthyEvaluations - The unhealthy evaluations that show why the current aggregated health state was returned by Health Manager.
31610	UnhealthyEvaluations *[]HealthEvaluationWrapper `json:"UnhealthyEvaluations,omitempty"`
31611	// HealthStatistics - Shows the health statistics for all children types of the queried entity.
31612	HealthStatistics *HealthStatistics `json:"HealthStatistics,omitempty"`
31613}
31614
31615// UnmarshalJSON is the custom unmarshaler for PartitionHealth struct.
31616func (ph *PartitionHealth) UnmarshalJSON(body []byte) error {
31617	var m map[string]*json.RawMessage
31618	err := json.Unmarshal(body, &m)
31619	if err != nil {
31620		return err
31621	}
31622	for k, v := range m {
31623		switch k {
31624		case "PartitionId":
31625			if v != nil {
31626				var partitionID uuid.UUID
31627				err = json.Unmarshal(*v, &partitionID)
31628				if err != nil {
31629					return err
31630				}
31631				ph.PartitionID = &partitionID
31632			}
31633		case "ReplicaHealthStates":
31634			if v != nil {
31635				replicaHealthStates, err := unmarshalBasicReplicaHealthStateArray(*v)
31636				if err != nil {
31637					return err
31638				}
31639				ph.ReplicaHealthStates = &replicaHealthStates
31640			}
31641		case "AggregatedHealthState":
31642			if v != nil {
31643				var aggregatedHealthState HealthState
31644				err = json.Unmarshal(*v, &aggregatedHealthState)
31645				if err != nil {
31646					return err
31647				}
31648				ph.AggregatedHealthState = aggregatedHealthState
31649			}
31650		case "HealthEvents":
31651			if v != nil {
31652				var healthEvents []HealthEvent
31653				err = json.Unmarshal(*v, &healthEvents)
31654				if err != nil {
31655					return err
31656				}
31657				ph.HealthEvents = &healthEvents
31658			}
31659		case "UnhealthyEvaluations":
31660			if v != nil {
31661				var unhealthyEvaluations []HealthEvaluationWrapper
31662				err = json.Unmarshal(*v, &unhealthyEvaluations)
31663				if err != nil {
31664					return err
31665				}
31666				ph.UnhealthyEvaluations = &unhealthyEvaluations
31667			}
31668		case "HealthStatistics":
31669			if v != nil {
31670				var healthStatistics HealthStatistics
31671				err = json.Unmarshal(*v, &healthStatistics)
31672				if err != nil {
31673					return err
31674				}
31675				ph.HealthStatistics = &healthStatistics
31676			}
31677		}
31678	}
31679
31680	return nil
31681}
31682
31683// PartitionHealthEvaluation represents health evaluation for a partition, containing information about the
31684// data and the algorithm used by health store to evaluate health. The evaluation is returned only when the
31685// aggregated health state is either Error or Warning.
31686type PartitionHealthEvaluation struct {
31687	// PartitionID - Id of the partition whose health evaluation is described by this object.
31688	PartitionID *uuid.UUID `json:"PartitionId,omitempty"`
31689	// 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.
31690	UnhealthyEvaluations *[]HealthEvaluationWrapper `json:"UnhealthyEvaluations,omitempty"`
31691	// 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'
31692	AggregatedHealthState HealthState `json:"AggregatedHealthState,omitempty"`
31693	// Description - Description of the health evaluation, which represents a summary of the evaluation process.
31694	Description *string `json:"Description,omitempty"`
31695	// 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'
31696	Kind Kind `json:"Kind,omitempty"`
31697}
31698
31699// MarshalJSON is the custom marshaler for PartitionHealthEvaluation.
31700func (phe PartitionHealthEvaluation) MarshalJSON() ([]byte, error) {
31701	phe.Kind = KindPartition
31702	objectMap := make(map[string]interface{})
31703	if phe.PartitionID != nil {
31704		objectMap["PartitionId"] = phe.PartitionID
31705	}
31706	if phe.UnhealthyEvaluations != nil {
31707		objectMap["UnhealthyEvaluations"] = phe.UnhealthyEvaluations
31708	}
31709	if phe.AggregatedHealthState != "" {
31710		objectMap["AggregatedHealthState"] = phe.AggregatedHealthState
31711	}
31712	if phe.Description != nil {
31713		objectMap["Description"] = phe.Description
31714	}
31715	if phe.Kind != "" {
31716		objectMap["Kind"] = phe.Kind
31717	}
31718	return json.Marshal(objectMap)
31719}
31720
31721// AsApplicationHealthEvaluation is the BasicHealthEvaluation implementation for PartitionHealthEvaluation.
31722func (phe PartitionHealthEvaluation) AsApplicationHealthEvaluation() (*ApplicationHealthEvaluation, bool) {
31723	return nil, false
31724}
31725
31726// AsApplicationsHealthEvaluation is the BasicHealthEvaluation implementation for PartitionHealthEvaluation.
31727func (phe PartitionHealthEvaluation) AsApplicationsHealthEvaluation() (*ApplicationsHealthEvaluation, bool) {
31728	return nil, false
31729}
31730
31731// AsApplicationTypeApplicationsHealthEvaluation is the BasicHealthEvaluation implementation for PartitionHealthEvaluation.
31732func (phe PartitionHealthEvaluation) AsApplicationTypeApplicationsHealthEvaluation() (*ApplicationTypeApplicationsHealthEvaluation, bool) {
31733	return nil, false
31734}
31735
31736// AsDeltaNodesCheckHealthEvaluation is the BasicHealthEvaluation implementation for PartitionHealthEvaluation.
31737func (phe PartitionHealthEvaluation) AsDeltaNodesCheckHealthEvaluation() (*DeltaNodesCheckHealthEvaluation, bool) {
31738	return nil, false
31739}
31740
31741// AsDeployedApplicationHealthEvaluation is the BasicHealthEvaluation implementation for PartitionHealthEvaluation.
31742func (phe PartitionHealthEvaluation) AsDeployedApplicationHealthEvaluation() (*DeployedApplicationHealthEvaluation, bool) {
31743	return nil, false
31744}
31745
31746// AsDeployedApplicationsHealthEvaluation is the BasicHealthEvaluation implementation for PartitionHealthEvaluation.
31747func (phe PartitionHealthEvaluation) AsDeployedApplicationsHealthEvaluation() (*DeployedApplicationsHealthEvaluation, bool) {
31748	return nil, false
31749}
31750
31751// AsDeployedServicePackageHealthEvaluation is the BasicHealthEvaluation implementation for PartitionHealthEvaluation.
31752func (phe PartitionHealthEvaluation) AsDeployedServicePackageHealthEvaluation() (*DeployedServicePackageHealthEvaluation, bool) {
31753	return nil, false
31754}
31755
31756// AsDeployedServicePackagesHealthEvaluation is the BasicHealthEvaluation implementation for PartitionHealthEvaluation.
31757func (phe PartitionHealthEvaluation) AsDeployedServicePackagesHealthEvaluation() (*DeployedServicePackagesHealthEvaluation, bool) {
31758	return nil, false
31759}
31760
31761// AsEventHealthEvaluation is the BasicHealthEvaluation implementation for PartitionHealthEvaluation.
31762func (phe PartitionHealthEvaluation) AsEventHealthEvaluation() (*EventHealthEvaluation, bool) {
31763	return nil, false
31764}
31765
31766// AsNodeHealthEvaluation is the BasicHealthEvaluation implementation for PartitionHealthEvaluation.
31767func (phe PartitionHealthEvaluation) AsNodeHealthEvaluation() (*NodeHealthEvaluation, bool) {
31768	return nil, false
31769}
31770
31771// AsNodesHealthEvaluation is the BasicHealthEvaluation implementation for PartitionHealthEvaluation.
31772func (phe PartitionHealthEvaluation) AsNodesHealthEvaluation() (*NodesHealthEvaluation, bool) {
31773	return nil, false
31774}
31775
31776// AsPartitionHealthEvaluation is the BasicHealthEvaluation implementation for PartitionHealthEvaluation.
31777func (phe PartitionHealthEvaluation) AsPartitionHealthEvaluation() (*PartitionHealthEvaluation, bool) {
31778	return &phe, true
31779}
31780
31781// AsPartitionsHealthEvaluation is the BasicHealthEvaluation implementation for PartitionHealthEvaluation.
31782func (phe PartitionHealthEvaluation) AsPartitionsHealthEvaluation() (*PartitionsHealthEvaluation, bool) {
31783	return nil, false
31784}
31785
31786// AsReplicaHealthEvaluation is the BasicHealthEvaluation implementation for PartitionHealthEvaluation.
31787func (phe PartitionHealthEvaluation) AsReplicaHealthEvaluation() (*ReplicaHealthEvaluation, bool) {
31788	return nil, false
31789}
31790
31791// AsReplicasHealthEvaluation is the BasicHealthEvaluation implementation for PartitionHealthEvaluation.
31792func (phe PartitionHealthEvaluation) AsReplicasHealthEvaluation() (*ReplicasHealthEvaluation, bool) {
31793	return nil, false
31794}
31795
31796// AsServiceHealthEvaluation is the BasicHealthEvaluation implementation for PartitionHealthEvaluation.
31797func (phe PartitionHealthEvaluation) AsServiceHealthEvaluation() (*ServiceHealthEvaluation, bool) {
31798	return nil, false
31799}
31800
31801// AsServicesHealthEvaluation is the BasicHealthEvaluation implementation for PartitionHealthEvaluation.
31802func (phe PartitionHealthEvaluation) AsServicesHealthEvaluation() (*ServicesHealthEvaluation, bool) {
31803	return nil, false
31804}
31805
31806// AsSystemApplicationHealthEvaluation is the BasicHealthEvaluation implementation for PartitionHealthEvaluation.
31807func (phe PartitionHealthEvaluation) AsSystemApplicationHealthEvaluation() (*SystemApplicationHealthEvaluation, bool) {
31808	return nil, false
31809}
31810
31811// AsUpgradeDomainDeltaNodesCheckHealthEvaluation is the BasicHealthEvaluation implementation for PartitionHealthEvaluation.
31812func (phe PartitionHealthEvaluation) AsUpgradeDomainDeltaNodesCheckHealthEvaluation() (*UpgradeDomainDeltaNodesCheckHealthEvaluation, bool) {
31813	return nil, false
31814}
31815
31816// AsUpgradeDomainNodesHealthEvaluation is the BasicHealthEvaluation implementation for PartitionHealthEvaluation.
31817func (phe PartitionHealthEvaluation) AsUpgradeDomainNodesHealthEvaluation() (*UpgradeDomainNodesHealthEvaluation, bool) {
31818	return nil, false
31819}
31820
31821// AsHealthEvaluation is the BasicHealthEvaluation implementation for PartitionHealthEvaluation.
31822func (phe PartitionHealthEvaluation) AsHealthEvaluation() (*HealthEvaluation, bool) {
31823	return nil, false
31824}
31825
31826// AsBasicHealthEvaluation is the BasicHealthEvaluation implementation for PartitionHealthEvaluation.
31827func (phe PartitionHealthEvaluation) AsBasicHealthEvaluation() (BasicHealthEvaluation, bool) {
31828	return &phe, true
31829}
31830
31831// PartitionHealthReportExpiredEvent partition Health Report Expired event.
31832type PartitionHealthReportExpiredEvent struct {
31833	// SourceID - Id of report source.
31834	SourceID *string `json:"SourceId,omitempty"`
31835	// Property - Describes the property.
31836	Property *string `json:"Property,omitempty"`
31837	// HealthState - Describes the property health state.
31838	HealthState *string `json:"HealthState,omitempty"`
31839	// TimeToLiveMs - Time to live in milli-seconds.
31840	TimeToLiveMs *int64 `json:"TimeToLiveMs,omitempty"`
31841	// SequenceNumber - Sequence number of report.
31842	SequenceNumber *int64 `json:"SequenceNumber,omitempty"`
31843	// Description - Description of report.
31844	Description *string `json:"Description,omitempty"`
31845	// RemoveWhenExpired - Indicates the removal when it expires.
31846	RemoveWhenExpired *bool `json:"RemoveWhenExpired,omitempty"`
31847	// SourceUtcTimestamp - Source time.
31848	SourceUtcTimestamp *date.Time `json:"SourceUtcTimestamp,omitempty"`
31849	// 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.
31850	PartitionID *uuid.UUID `json:"PartitionId,omitempty"`
31851	// EventInstanceID - The identifier for the FabricEvent instance.
31852	EventInstanceID *uuid.UUID `json:"EventInstanceId,omitempty"`
31853	// Category - The category of event.
31854	Category *string `json:"Category,omitempty"`
31855	// TimeStamp - The time event was logged.
31856	TimeStamp *date.Time `json:"TimeStamp,omitempty"`
31857	// HasCorrelatedEvents - Shows there is existing related events available.
31858	HasCorrelatedEvents *bool `json:"HasCorrelatedEvents,omitempty"`
31859	// 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'
31860	Kind KindBasicFabricEvent `json:"Kind,omitempty"`
31861}
31862
31863// MarshalJSON is the custom marshaler for PartitionHealthReportExpiredEvent.
31864func (phree PartitionHealthReportExpiredEvent) MarshalJSON() ([]byte, error) {
31865	phree.Kind = KindPartitionHealthReportExpired
31866	objectMap := make(map[string]interface{})
31867	if phree.SourceID != nil {
31868		objectMap["SourceId"] = phree.SourceID
31869	}
31870	if phree.Property != nil {
31871		objectMap["Property"] = phree.Property
31872	}
31873	if phree.HealthState != nil {
31874		objectMap["HealthState"] = phree.HealthState
31875	}
31876	if phree.TimeToLiveMs != nil {
31877		objectMap["TimeToLiveMs"] = phree.TimeToLiveMs
31878	}
31879	if phree.SequenceNumber != nil {
31880		objectMap["SequenceNumber"] = phree.SequenceNumber
31881	}
31882	if phree.Description != nil {
31883		objectMap["Description"] = phree.Description
31884	}
31885	if phree.RemoveWhenExpired != nil {
31886		objectMap["RemoveWhenExpired"] = phree.RemoveWhenExpired
31887	}
31888	if phree.SourceUtcTimestamp != nil {
31889		objectMap["SourceUtcTimestamp"] = phree.SourceUtcTimestamp
31890	}
31891	if phree.PartitionID != nil {
31892		objectMap["PartitionId"] = phree.PartitionID
31893	}
31894	if phree.EventInstanceID != nil {
31895		objectMap["EventInstanceId"] = phree.EventInstanceID
31896	}
31897	if phree.Category != nil {
31898		objectMap["Category"] = phree.Category
31899	}
31900	if phree.TimeStamp != nil {
31901		objectMap["TimeStamp"] = phree.TimeStamp
31902	}
31903	if phree.HasCorrelatedEvents != nil {
31904		objectMap["HasCorrelatedEvents"] = phree.HasCorrelatedEvents
31905	}
31906	if phree.Kind != "" {
31907		objectMap["Kind"] = phree.Kind
31908	}
31909	return json.Marshal(objectMap)
31910}
31911
31912// AsApplicationEvent is the BasicFabricEvent implementation for PartitionHealthReportExpiredEvent.
31913func (phree PartitionHealthReportExpiredEvent) AsApplicationEvent() (*ApplicationEvent, bool) {
31914	return nil, false
31915}
31916
31917// AsBasicApplicationEvent is the BasicFabricEvent implementation for PartitionHealthReportExpiredEvent.
31918func (phree PartitionHealthReportExpiredEvent) AsBasicApplicationEvent() (BasicApplicationEvent, bool) {
31919	return nil, false
31920}
31921
31922// AsClusterEvent is the BasicFabricEvent implementation for PartitionHealthReportExpiredEvent.
31923func (phree PartitionHealthReportExpiredEvent) AsClusterEvent() (*ClusterEvent, bool) {
31924	return nil, false
31925}
31926
31927// AsBasicClusterEvent is the BasicFabricEvent implementation for PartitionHealthReportExpiredEvent.
31928func (phree PartitionHealthReportExpiredEvent) AsBasicClusterEvent() (BasicClusterEvent, bool) {
31929	return nil, false
31930}
31931
31932// AsContainerInstanceEvent is the BasicFabricEvent implementation for PartitionHealthReportExpiredEvent.
31933func (phree PartitionHealthReportExpiredEvent) AsContainerInstanceEvent() (*ContainerInstanceEvent, bool) {
31934	return nil, false
31935}
31936
31937// AsNodeEvent is the BasicFabricEvent implementation for PartitionHealthReportExpiredEvent.
31938func (phree PartitionHealthReportExpiredEvent) AsNodeEvent() (*NodeEvent, bool) {
31939	return nil, false
31940}
31941
31942// AsBasicNodeEvent is the BasicFabricEvent implementation for PartitionHealthReportExpiredEvent.
31943func (phree PartitionHealthReportExpiredEvent) AsBasicNodeEvent() (BasicNodeEvent, bool) {
31944	return nil, false
31945}
31946
31947// AsPartitionAnalysisEvent is the BasicFabricEvent implementation for PartitionHealthReportExpiredEvent.
31948func (phree PartitionHealthReportExpiredEvent) AsPartitionAnalysisEvent() (*PartitionAnalysisEvent, bool) {
31949	return nil, false
31950}
31951
31952// AsBasicPartitionAnalysisEvent is the BasicFabricEvent implementation for PartitionHealthReportExpiredEvent.
31953func (phree PartitionHealthReportExpiredEvent) AsBasicPartitionAnalysisEvent() (BasicPartitionAnalysisEvent, bool) {
31954	return nil, false
31955}
31956
31957// AsPartitionEvent is the BasicFabricEvent implementation for PartitionHealthReportExpiredEvent.
31958func (phree PartitionHealthReportExpiredEvent) AsPartitionEvent() (*PartitionEvent, bool) {
31959	return nil, false
31960}
31961
31962// AsBasicPartitionEvent is the BasicFabricEvent implementation for PartitionHealthReportExpiredEvent.
31963func (phree PartitionHealthReportExpiredEvent) AsBasicPartitionEvent() (BasicPartitionEvent, bool) {
31964	return &phree, true
31965}
31966
31967// AsReplicaEvent is the BasicFabricEvent implementation for PartitionHealthReportExpiredEvent.
31968func (phree PartitionHealthReportExpiredEvent) AsReplicaEvent() (*ReplicaEvent, bool) {
31969	return nil, false
31970}
31971
31972// AsBasicReplicaEvent is the BasicFabricEvent implementation for PartitionHealthReportExpiredEvent.
31973func (phree PartitionHealthReportExpiredEvent) AsBasicReplicaEvent() (BasicReplicaEvent, bool) {
31974	return nil, false
31975}
31976
31977// AsServiceEvent is the BasicFabricEvent implementation for PartitionHealthReportExpiredEvent.
31978func (phree PartitionHealthReportExpiredEvent) AsServiceEvent() (*ServiceEvent, bool) {
31979	return nil, false
31980}
31981
31982// AsBasicServiceEvent is the BasicFabricEvent implementation for PartitionHealthReportExpiredEvent.
31983func (phree PartitionHealthReportExpiredEvent) AsBasicServiceEvent() (BasicServiceEvent, bool) {
31984	return nil, false
31985}
31986
31987// AsApplicationCreatedEvent is the BasicFabricEvent implementation for PartitionHealthReportExpiredEvent.
31988func (phree PartitionHealthReportExpiredEvent) AsApplicationCreatedEvent() (*ApplicationCreatedEvent, bool) {
31989	return nil, false
31990}
31991
31992// AsApplicationDeletedEvent is the BasicFabricEvent implementation for PartitionHealthReportExpiredEvent.
31993func (phree PartitionHealthReportExpiredEvent) AsApplicationDeletedEvent() (*ApplicationDeletedEvent, bool) {
31994	return nil, false
31995}
31996
31997// AsApplicationNewHealthReportEvent is the BasicFabricEvent implementation for PartitionHealthReportExpiredEvent.
31998func (phree PartitionHealthReportExpiredEvent) AsApplicationNewHealthReportEvent() (*ApplicationNewHealthReportEvent, bool) {
31999	return nil, false
32000}
32001
32002// AsApplicationHealthReportExpiredEvent is the BasicFabricEvent implementation for PartitionHealthReportExpiredEvent.
32003func (phree PartitionHealthReportExpiredEvent) AsApplicationHealthReportExpiredEvent() (*ApplicationHealthReportExpiredEvent, bool) {
32004	return nil, false
32005}
32006
32007// AsApplicationUpgradeCompletedEvent is the BasicFabricEvent implementation for PartitionHealthReportExpiredEvent.
32008func (phree PartitionHealthReportExpiredEvent) AsApplicationUpgradeCompletedEvent() (*ApplicationUpgradeCompletedEvent, bool) {
32009	return nil, false
32010}
32011
32012// AsApplicationUpgradeDomainCompletedEvent is the BasicFabricEvent implementation for PartitionHealthReportExpiredEvent.
32013func (phree PartitionHealthReportExpiredEvent) AsApplicationUpgradeDomainCompletedEvent() (*ApplicationUpgradeDomainCompletedEvent, bool) {
32014	return nil, false
32015}
32016
32017// AsApplicationUpgradeRollbackCompletedEvent is the BasicFabricEvent implementation for PartitionHealthReportExpiredEvent.
32018func (phree PartitionHealthReportExpiredEvent) AsApplicationUpgradeRollbackCompletedEvent() (*ApplicationUpgradeRollbackCompletedEvent, bool) {
32019	return nil, false
32020}
32021
32022// AsApplicationUpgradeRollbackStartedEvent is the BasicFabricEvent implementation for PartitionHealthReportExpiredEvent.
32023func (phree PartitionHealthReportExpiredEvent) AsApplicationUpgradeRollbackStartedEvent() (*ApplicationUpgradeRollbackStartedEvent, bool) {
32024	return nil, false
32025}
32026
32027// AsApplicationUpgradeStartedEvent is the BasicFabricEvent implementation for PartitionHealthReportExpiredEvent.
32028func (phree PartitionHealthReportExpiredEvent) AsApplicationUpgradeStartedEvent() (*ApplicationUpgradeStartedEvent, bool) {
32029	return nil, false
32030}
32031
32032// AsDeployedApplicationNewHealthReportEvent is the BasicFabricEvent implementation for PartitionHealthReportExpiredEvent.
32033func (phree PartitionHealthReportExpiredEvent) AsDeployedApplicationNewHealthReportEvent() (*DeployedApplicationNewHealthReportEvent, bool) {
32034	return nil, false
32035}
32036
32037// AsDeployedApplicationHealthReportExpiredEvent is the BasicFabricEvent implementation for PartitionHealthReportExpiredEvent.
32038func (phree PartitionHealthReportExpiredEvent) AsDeployedApplicationHealthReportExpiredEvent() (*DeployedApplicationHealthReportExpiredEvent, bool) {
32039	return nil, false
32040}
32041
32042// AsApplicationProcessExitedEvent is the BasicFabricEvent implementation for PartitionHealthReportExpiredEvent.
32043func (phree PartitionHealthReportExpiredEvent) AsApplicationProcessExitedEvent() (*ApplicationProcessExitedEvent, bool) {
32044	return nil, false
32045}
32046
32047// AsApplicationContainerInstanceExitedEvent is the BasicFabricEvent implementation for PartitionHealthReportExpiredEvent.
32048func (phree PartitionHealthReportExpiredEvent) AsApplicationContainerInstanceExitedEvent() (*ApplicationContainerInstanceExitedEvent, bool) {
32049	return nil, false
32050}
32051
32052// AsNodeAbortedEvent is the BasicFabricEvent implementation for PartitionHealthReportExpiredEvent.
32053func (phree PartitionHealthReportExpiredEvent) AsNodeAbortedEvent() (*NodeAbortedEvent, bool) {
32054	return nil, false
32055}
32056
32057// AsNodeAddedToClusterEvent is the BasicFabricEvent implementation for PartitionHealthReportExpiredEvent.
32058func (phree PartitionHealthReportExpiredEvent) AsNodeAddedToClusterEvent() (*NodeAddedToClusterEvent, bool) {
32059	return nil, false
32060}
32061
32062// AsNodeClosedEvent is the BasicFabricEvent implementation for PartitionHealthReportExpiredEvent.
32063func (phree PartitionHealthReportExpiredEvent) AsNodeClosedEvent() (*NodeClosedEvent, bool) {
32064	return nil, false
32065}
32066
32067// AsNodeDeactivateCompletedEvent is the BasicFabricEvent implementation for PartitionHealthReportExpiredEvent.
32068func (phree PartitionHealthReportExpiredEvent) AsNodeDeactivateCompletedEvent() (*NodeDeactivateCompletedEvent, bool) {
32069	return nil, false
32070}
32071
32072// AsNodeDeactivateStartedEvent is the BasicFabricEvent implementation for PartitionHealthReportExpiredEvent.
32073func (phree PartitionHealthReportExpiredEvent) AsNodeDeactivateStartedEvent() (*NodeDeactivateStartedEvent, bool) {
32074	return nil, false
32075}
32076
32077// AsNodeDownEvent is the BasicFabricEvent implementation for PartitionHealthReportExpiredEvent.
32078func (phree PartitionHealthReportExpiredEvent) AsNodeDownEvent() (*NodeDownEvent, bool) {
32079	return nil, false
32080}
32081
32082// AsNodeNewHealthReportEvent is the BasicFabricEvent implementation for PartitionHealthReportExpiredEvent.
32083func (phree PartitionHealthReportExpiredEvent) AsNodeNewHealthReportEvent() (*NodeNewHealthReportEvent, bool) {
32084	return nil, false
32085}
32086
32087// AsNodeHealthReportExpiredEvent is the BasicFabricEvent implementation for PartitionHealthReportExpiredEvent.
32088func (phree PartitionHealthReportExpiredEvent) AsNodeHealthReportExpiredEvent() (*NodeHealthReportExpiredEvent, bool) {
32089	return nil, false
32090}
32091
32092// AsNodeOpenSucceededEvent is the BasicFabricEvent implementation for PartitionHealthReportExpiredEvent.
32093func (phree PartitionHealthReportExpiredEvent) AsNodeOpenSucceededEvent() (*NodeOpenSucceededEvent, bool) {
32094	return nil, false
32095}
32096
32097// AsNodeOpenFailedEvent is the BasicFabricEvent implementation for PartitionHealthReportExpiredEvent.
32098func (phree PartitionHealthReportExpiredEvent) AsNodeOpenFailedEvent() (*NodeOpenFailedEvent, bool) {
32099	return nil, false
32100}
32101
32102// AsNodeRemovedFromClusterEvent is the BasicFabricEvent implementation for PartitionHealthReportExpiredEvent.
32103func (phree PartitionHealthReportExpiredEvent) AsNodeRemovedFromClusterEvent() (*NodeRemovedFromClusterEvent, bool) {
32104	return nil, false
32105}
32106
32107// AsNodeUpEvent is the BasicFabricEvent implementation for PartitionHealthReportExpiredEvent.
32108func (phree PartitionHealthReportExpiredEvent) AsNodeUpEvent() (*NodeUpEvent, bool) {
32109	return nil, false
32110}
32111
32112// AsPartitionNewHealthReportEvent is the BasicFabricEvent implementation for PartitionHealthReportExpiredEvent.
32113func (phree PartitionHealthReportExpiredEvent) AsPartitionNewHealthReportEvent() (*PartitionNewHealthReportEvent, bool) {
32114	return nil, false
32115}
32116
32117// AsPartitionHealthReportExpiredEvent is the BasicFabricEvent implementation for PartitionHealthReportExpiredEvent.
32118func (phree PartitionHealthReportExpiredEvent) AsPartitionHealthReportExpiredEvent() (*PartitionHealthReportExpiredEvent, bool) {
32119	return &phree, true
32120}
32121
32122// AsPartitionReconfiguredEvent is the BasicFabricEvent implementation for PartitionHealthReportExpiredEvent.
32123func (phree PartitionHealthReportExpiredEvent) AsPartitionReconfiguredEvent() (*PartitionReconfiguredEvent, bool) {
32124	return nil, false
32125}
32126
32127// AsPartitionPrimaryMoveAnalysisEvent is the BasicFabricEvent implementation for PartitionHealthReportExpiredEvent.
32128func (phree PartitionHealthReportExpiredEvent) AsPartitionPrimaryMoveAnalysisEvent() (*PartitionPrimaryMoveAnalysisEvent, bool) {
32129	return nil, false
32130}
32131
32132// AsServiceCreatedEvent is the BasicFabricEvent implementation for PartitionHealthReportExpiredEvent.
32133func (phree PartitionHealthReportExpiredEvent) AsServiceCreatedEvent() (*ServiceCreatedEvent, bool) {
32134	return nil, false
32135}
32136
32137// AsServiceDeletedEvent is the BasicFabricEvent implementation for PartitionHealthReportExpiredEvent.
32138func (phree PartitionHealthReportExpiredEvent) AsServiceDeletedEvent() (*ServiceDeletedEvent, bool) {
32139	return nil, false
32140}
32141
32142// AsServiceNewHealthReportEvent is the BasicFabricEvent implementation for PartitionHealthReportExpiredEvent.
32143func (phree PartitionHealthReportExpiredEvent) AsServiceNewHealthReportEvent() (*ServiceNewHealthReportEvent, bool) {
32144	return nil, false
32145}
32146
32147// AsServiceHealthReportExpiredEvent is the BasicFabricEvent implementation for PartitionHealthReportExpiredEvent.
32148func (phree PartitionHealthReportExpiredEvent) AsServiceHealthReportExpiredEvent() (*ServiceHealthReportExpiredEvent, bool) {
32149	return nil, false
32150}
32151
32152// AsDeployedServicePackageNewHealthReportEvent is the BasicFabricEvent implementation for PartitionHealthReportExpiredEvent.
32153func (phree PartitionHealthReportExpiredEvent) AsDeployedServicePackageNewHealthReportEvent() (*DeployedServicePackageNewHealthReportEvent, bool) {
32154	return nil, false
32155}
32156
32157// AsDeployedServicePackageHealthReportExpiredEvent is the BasicFabricEvent implementation for PartitionHealthReportExpiredEvent.
32158func (phree PartitionHealthReportExpiredEvent) AsDeployedServicePackageHealthReportExpiredEvent() (*DeployedServicePackageHealthReportExpiredEvent, bool) {
32159	return nil, false
32160}
32161
32162// AsStatefulReplicaNewHealthReportEvent is the BasicFabricEvent implementation for PartitionHealthReportExpiredEvent.
32163func (phree PartitionHealthReportExpiredEvent) AsStatefulReplicaNewHealthReportEvent() (*StatefulReplicaNewHealthReportEvent, bool) {
32164	return nil, false
32165}
32166
32167// AsStatefulReplicaHealthReportExpiredEvent is the BasicFabricEvent implementation for PartitionHealthReportExpiredEvent.
32168func (phree PartitionHealthReportExpiredEvent) AsStatefulReplicaHealthReportExpiredEvent() (*StatefulReplicaHealthReportExpiredEvent, bool) {
32169	return nil, false
32170}
32171
32172// AsStatelessReplicaNewHealthReportEvent is the BasicFabricEvent implementation for PartitionHealthReportExpiredEvent.
32173func (phree PartitionHealthReportExpiredEvent) AsStatelessReplicaNewHealthReportEvent() (*StatelessReplicaNewHealthReportEvent, bool) {
32174	return nil, false
32175}
32176
32177// AsStatelessReplicaHealthReportExpiredEvent is the BasicFabricEvent implementation for PartitionHealthReportExpiredEvent.
32178func (phree PartitionHealthReportExpiredEvent) AsStatelessReplicaHealthReportExpiredEvent() (*StatelessReplicaHealthReportExpiredEvent, bool) {
32179	return nil, false
32180}
32181
32182// AsClusterNewHealthReportEvent is the BasicFabricEvent implementation for PartitionHealthReportExpiredEvent.
32183func (phree PartitionHealthReportExpiredEvent) AsClusterNewHealthReportEvent() (*ClusterNewHealthReportEvent, bool) {
32184	return nil, false
32185}
32186
32187// AsClusterHealthReportExpiredEvent is the BasicFabricEvent implementation for PartitionHealthReportExpiredEvent.
32188func (phree PartitionHealthReportExpiredEvent) AsClusterHealthReportExpiredEvent() (*ClusterHealthReportExpiredEvent, bool) {
32189	return nil, false
32190}
32191
32192// AsClusterUpgradeCompletedEvent is the BasicFabricEvent implementation for PartitionHealthReportExpiredEvent.
32193func (phree PartitionHealthReportExpiredEvent) AsClusterUpgradeCompletedEvent() (*ClusterUpgradeCompletedEvent, bool) {
32194	return nil, false
32195}
32196
32197// AsClusterUpgradeDomainCompletedEvent is the BasicFabricEvent implementation for PartitionHealthReportExpiredEvent.
32198func (phree PartitionHealthReportExpiredEvent) AsClusterUpgradeDomainCompletedEvent() (*ClusterUpgradeDomainCompletedEvent, bool) {
32199	return nil, false
32200}
32201
32202// AsClusterUpgradeRollbackCompletedEvent is the BasicFabricEvent implementation for PartitionHealthReportExpiredEvent.
32203func (phree PartitionHealthReportExpiredEvent) AsClusterUpgradeRollbackCompletedEvent() (*ClusterUpgradeRollbackCompletedEvent, bool) {
32204	return nil, false
32205}
32206
32207// AsClusterUpgradeRollbackStartedEvent is the BasicFabricEvent implementation for PartitionHealthReportExpiredEvent.
32208func (phree PartitionHealthReportExpiredEvent) AsClusterUpgradeRollbackStartedEvent() (*ClusterUpgradeRollbackStartedEvent, bool) {
32209	return nil, false
32210}
32211
32212// AsClusterUpgradeStartedEvent is the BasicFabricEvent implementation for PartitionHealthReportExpiredEvent.
32213func (phree PartitionHealthReportExpiredEvent) AsClusterUpgradeStartedEvent() (*ClusterUpgradeStartedEvent, bool) {
32214	return nil, false
32215}
32216
32217// AsChaosStoppedEvent is the BasicFabricEvent implementation for PartitionHealthReportExpiredEvent.
32218func (phree PartitionHealthReportExpiredEvent) AsChaosStoppedEvent() (*ChaosStoppedEvent, bool) {
32219	return nil, false
32220}
32221
32222// AsChaosStartedEvent is the BasicFabricEvent implementation for PartitionHealthReportExpiredEvent.
32223func (phree PartitionHealthReportExpiredEvent) AsChaosStartedEvent() (*ChaosStartedEvent, bool) {
32224	return nil, false
32225}
32226
32227// AsChaosCodePackageRestartScheduledEvent is the BasicFabricEvent implementation for PartitionHealthReportExpiredEvent.
32228func (phree PartitionHealthReportExpiredEvent) AsChaosCodePackageRestartScheduledEvent() (*ChaosCodePackageRestartScheduledEvent, bool) {
32229	return nil, false
32230}
32231
32232// AsChaosReplicaRemovalScheduledEvent is the BasicFabricEvent implementation for PartitionHealthReportExpiredEvent.
32233func (phree PartitionHealthReportExpiredEvent) AsChaosReplicaRemovalScheduledEvent() (*ChaosReplicaRemovalScheduledEvent, bool) {
32234	return nil, false
32235}
32236
32237// AsChaosPartitionSecondaryMoveScheduledEvent is the BasicFabricEvent implementation for PartitionHealthReportExpiredEvent.
32238func (phree PartitionHealthReportExpiredEvent) AsChaosPartitionSecondaryMoveScheduledEvent() (*ChaosPartitionSecondaryMoveScheduledEvent, bool) {
32239	return nil, false
32240}
32241
32242// AsChaosPartitionPrimaryMoveScheduledEvent is the BasicFabricEvent implementation for PartitionHealthReportExpiredEvent.
32243func (phree PartitionHealthReportExpiredEvent) AsChaosPartitionPrimaryMoveScheduledEvent() (*ChaosPartitionPrimaryMoveScheduledEvent, bool) {
32244	return nil, false
32245}
32246
32247// AsChaosReplicaRestartScheduledEvent is the BasicFabricEvent implementation for PartitionHealthReportExpiredEvent.
32248func (phree PartitionHealthReportExpiredEvent) AsChaosReplicaRestartScheduledEvent() (*ChaosReplicaRestartScheduledEvent, bool) {
32249	return nil, false
32250}
32251
32252// AsChaosNodeRestartScheduledEvent is the BasicFabricEvent implementation for PartitionHealthReportExpiredEvent.
32253func (phree PartitionHealthReportExpiredEvent) AsChaosNodeRestartScheduledEvent() (*ChaosNodeRestartScheduledEvent, bool) {
32254	return nil, false
32255}
32256
32257// AsFabricEvent is the BasicFabricEvent implementation for PartitionHealthReportExpiredEvent.
32258func (phree PartitionHealthReportExpiredEvent) AsFabricEvent() (*FabricEvent, bool) {
32259	return nil, false
32260}
32261
32262// AsBasicFabricEvent is the BasicFabricEvent implementation for PartitionHealthReportExpiredEvent.
32263func (phree PartitionHealthReportExpiredEvent) AsBasicFabricEvent() (BasicFabricEvent, bool) {
32264	return &phree, true
32265}
32266
32267// PartitionHealthState represents the health state of a partition, which contains the partition identifier
32268// and its aggregated health state.
32269type PartitionHealthState struct {
32270	// PartitionID - Id of the partition whose health state is described by this object.
32271	PartitionID *uuid.UUID `json:"PartitionId,omitempty"`
32272	// 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'
32273	AggregatedHealthState HealthState `json:"AggregatedHealthState,omitempty"`
32274}
32275
32276// PartitionHealthStateChunk represents the health state chunk of a partition, which contains the partition
32277// ID, its aggregated health state and any replicas that respect the filters in the cluster health chunk
32278// query description.
32279type PartitionHealthStateChunk struct {
32280	// PartitionID - The Id of the partition.
32281	PartitionID *uuid.UUID `json:"PartitionId,omitempty"`
32282	// ReplicaHealthStateChunks - The list of replica health state chunks belonging to the partition that respect the filters in the cluster health chunk query description.
32283	ReplicaHealthStateChunks *ReplicaHealthStateChunkList `json:"ReplicaHealthStateChunks,omitempty"`
32284	// 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'
32285	HealthState HealthState `json:"HealthState,omitempty"`
32286}
32287
32288// PartitionHealthStateChunkList the list of partition health state chunks that respect the input filters
32289// in the chunk query description.
32290// Returned by get cluster health state chunks query as part of the parent application hierarchy.
32291type PartitionHealthStateChunkList struct {
32292	// Items - The list of partition health state chunks that respect the input filters in the chunk query.
32293	Items *[]PartitionHealthStateChunk `json:"Items,omitempty"`
32294}
32295
32296// PartitionHealthStateFilter defines matching criteria to determine whether a partition should be included
32297// as a child of a service in the cluster health chunk.
32298// The partitions are only returned if the parent entities match a filter specified in the cluster health
32299// chunk query description. The parent service and application must be included in the cluster health
32300// chunk.
32301// One filter can match zero, one or multiple partitions, depending on its properties.
32302type PartitionHealthStateFilter struct {
32303	// PartitionIDFilter - ID of the partition that matches the filter. The filter is applied only to the specified partition, if it exists.
32304	// If the partition doesn't exist, no partition is returned in the cluster health chunk based on this filter.
32305	// If the partition exists, it is included in the cluster health chunk if it respects the other filter properties.
32306	// 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.
32307	PartitionIDFilter *uuid.UUID `json:"PartitionIdFilter,omitempty"`
32308	// HealthStateFilter - The filter for the health state of the partitions. It allows selecting partitions if they match the desired health states.
32309	// 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.
32310	// 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.
32311	// The state values are flag-based enumeration, so the value could be a combination of these values obtained using bitwise 'OR' operator.
32312	// For example, if the provided value is 6, it matches partitions with HealthState value of OK (2) and Warning (4).
32313	// - Default - Default value. Matches any HealthState. The value is zero.
32314	// - 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.
32315	// - Ok - Filter that matches input with HealthState value Ok. The value is 2.
32316	// - Warning - Filter that matches input with HealthState value Warning. The value is 4.
32317	// - Error - Filter that matches input with HealthState value Error. The value is 8.
32318	// - All - Filter that matches input with any HealthState value. The value is 65535.
32319	HealthStateFilter *int32 `json:"HealthStateFilter,omitempty"`
32320	// 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.
32321	// 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.
32322	// The partition filter may specify multiple replica filters.
32323	// 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.
32324	ReplicaFilters *[]ReplicaHealthStateFilter `json:"ReplicaFilters,omitempty"`
32325}
32326
32327// BasicPartitionInformation information about the partition identity, partitioning scheme and keys supported by it.
32328type BasicPartitionInformation interface {
32329	AsInt64RangePartitionInformation() (*Int64RangePartitionInformation, bool)
32330	AsNamedPartitionInformation() (*NamedPartitionInformation, bool)
32331	AsSingletonPartitionInformation() (*SingletonPartitionInformation, bool)
32332	AsPartitionInformation() (*PartitionInformation, bool)
32333}
32334
32335// PartitionInformation information about the partition identity, partitioning scheme and keys supported by it.
32336type PartitionInformation struct {
32337	// 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.
32338	ID *uuid.UUID `json:"Id,omitempty"`
32339	// ServicePartitionKind - Possible values include: 'ServicePartitionKindPartitionInformation', 'ServicePartitionKindInt64Range1', 'ServicePartitionKindNamed1', 'ServicePartitionKindSingleton1'
32340	ServicePartitionKind ServicePartitionKindBasicPartitionInformation `json:"ServicePartitionKind,omitempty"`
32341}
32342
32343func unmarshalBasicPartitionInformation(body []byte) (BasicPartitionInformation, error) {
32344	var m map[string]interface{}
32345	err := json.Unmarshal(body, &m)
32346	if err != nil {
32347		return nil, err
32348	}
32349
32350	switch m["ServicePartitionKind"] {
32351	case string(ServicePartitionKindInt64Range1):
32352		var i6rpi Int64RangePartitionInformation
32353		err := json.Unmarshal(body, &i6rpi)
32354		return i6rpi, err
32355	case string(ServicePartitionKindNamed1):
32356		var npi NamedPartitionInformation
32357		err := json.Unmarshal(body, &npi)
32358		return npi, err
32359	case string(ServicePartitionKindSingleton1):
32360		var spi SingletonPartitionInformation
32361		err := json.Unmarshal(body, &spi)
32362		return spi, err
32363	default:
32364		var pi PartitionInformation
32365		err := json.Unmarshal(body, &pi)
32366		return pi, err
32367	}
32368}
32369func unmarshalBasicPartitionInformationArray(body []byte) ([]BasicPartitionInformation, error) {
32370	var rawMessages []*json.RawMessage
32371	err := json.Unmarshal(body, &rawMessages)
32372	if err != nil {
32373		return nil, err
32374	}
32375
32376	piArray := make([]BasicPartitionInformation, len(rawMessages))
32377
32378	for index, rawMessage := range rawMessages {
32379		pi, err := unmarshalBasicPartitionInformation(*rawMessage)
32380		if err != nil {
32381			return nil, err
32382		}
32383		piArray[index] = pi
32384	}
32385	return piArray, nil
32386}
32387
32388// MarshalJSON is the custom marshaler for PartitionInformation.
32389func (pi PartitionInformation) MarshalJSON() ([]byte, error) {
32390	pi.ServicePartitionKind = ServicePartitionKindPartitionInformation
32391	objectMap := make(map[string]interface{})
32392	if pi.ID != nil {
32393		objectMap["Id"] = pi.ID
32394	}
32395	if pi.ServicePartitionKind != "" {
32396		objectMap["ServicePartitionKind"] = pi.ServicePartitionKind
32397	}
32398	return json.Marshal(objectMap)
32399}
32400
32401// AsInt64RangePartitionInformation is the BasicPartitionInformation implementation for PartitionInformation.
32402func (pi PartitionInformation) AsInt64RangePartitionInformation() (*Int64RangePartitionInformation, bool) {
32403	return nil, false
32404}
32405
32406// AsNamedPartitionInformation is the BasicPartitionInformation implementation for PartitionInformation.
32407func (pi PartitionInformation) AsNamedPartitionInformation() (*NamedPartitionInformation, bool) {
32408	return nil, false
32409}
32410
32411// AsSingletonPartitionInformation is the BasicPartitionInformation implementation for PartitionInformation.
32412func (pi PartitionInformation) AsSingletonPartitionInformation() (*SingletonPartitionInformation, bool) {
32413	return nil, false
32414}
32415
32416// AsPartitionInformation is the BasicPartitionInformation implementation for PartitionInformation.
32417func (pi PartitionInformation) AsPartitionInformation() (*PartitionInformation, bool) {
32418	return &pi, true
32419}
32420
32421// AsBasicPartitionInformation is the BasicPartitionInformation implementation for PartitionInformation.
32422func (pi PartitionInformation) AsBasicPartitionInformation() (BasicPartitionInformation, bool) {
32423	return &pi, true
32424}
32425
32426// PartitionInstanceCountScaleMechanism represents a scaling mechanism for adding or removing instances of
32427// stateless service partition.
32428type PartitionInstanceCountScaleMechanism struct {
32429	// MinInstanceCount - Minimum number of instances of the partition.
32430	MinInstanceCount *int32 `json:"MinInstanceCount,omitempty"`
32431	// MaxInstanceCount - Maximum number of instances of the partition.
32432	MaxInstanceCount *int32 `json:"MaxInstanceCount,omitempty"`
32433	// ScaleIncrement - The number of instances to add or remove during a scaling operation.
32434	ScaleIncrement *int32 `json:"ScaleIncrement,omitempty"`
32435	// Kind - Possible values include: 'KindScalingMechanismDescription', 'KindPartitionInstanceCount', 'KindAddRemoveIncrementalNamedPartition'
32436	Kind KindBasicScalingMechanismDescription `json:"Kind,omitempty"`
32437}
32438
32439// MarshalJSON is the custom marshaler for PartitionInstanceCountScaleMechanism.
32440func (picsm PartitionInstanceCountScaleMechanism) MarshalJSON() ([]byte, error) {
32441	picsm.Kind = KindPartitionInstanceCount
32442	objectMap := make(map[string]interface{})
32443	if picsm.MinInstanceCount != nil {
32444		objectMap["MinInstanceCount"] = picsm.MinInstanceCount
32445	}
32446	if picsm.MaxInstanceCount != nil {
32447		objectMap["MaxInstanceCount"] = picsm.MaxInstanceCount
32448	}
32449	if picsm.ScaleIncrement != nil {
32450		objectMap["ScaleIncrement"] = picsm.ScaleIncrement
32451	}
32452	if picsm.Kind != "" {
32453		objectMap["Kind"] = picsm.Kind
32454	}
32455	return json.Marshal(objectMap)
32456}
32457
32458// AsPartitionInstanceCountScaleMechanism is the BasicScalingMechanismDescription implementation for PartitionInstanceCountScaleMechanism.
32459func (picsm PartitionInstanceCountScaleMechanism) AsPartitionInstanceCountScaleMechanism() (*PartitionInstanceCountScaleMechanism, bool) {
32460	return &picsm, true
32461}
32462
32463// AsAddRemoveIncrementalNamedPartitionScalingMechanism is the BasicScalingMechanismDescription implementation for PartitionInstanceCountScaleMechanism.
32464func (picsm PartitionInstanceCountScaleMechanism) AsAddRemoveIncrementalNamedPartitionScalingMechanism() (*AddRemoveIncrementalNamedPartitionScalingMechanism, bool) {
32465	return nil, false
32466}
32467
32468// AsScalingMechanismDescription is the BasicScalingMechanismDescription implementation for PartitionInstanceCountScaleMechanism.
32469func (picsm PartitionInstanceCountScaleMechanism) AsScalingMechanismDescription() (*ScalingMechanismDescription, bool) {
32470	return nil, false
32471}
32472
32473// AsBasicScalingMechanismDescription is the BasicScalingMechanismDescription implementation for PartitionInstanceCountScaleMechanism.
32474func (picsm PartitionInstanceCountScaleMechanism) AsBasicScalingMechanismDescription() (BasicScalingMechanismDescription, bool) {
32475	return &picsm, true
32476}
32477
32478// PartitionLoadInformation represents load information for a partition, which contains the primary and
32479// secondary reported load metrics.
32480// In case there is no load reported, PartitionLoadInformation will contain the default load for the
32481// service of the partition.
32482// For default loads, LoadMetricReport's LastReportedUtc is set to 0.
32483type PartitionLoadInformation struct {
32484	autorest.Response `json:"-"`
32485	// PartitionID - Id of the partition.
32486	PartitionID *uuid.UUID `json:"PartitionId,omitempty"`
32487	// PrimaryLoadMetricReports - Array of load reports from the primary replica for this partition.
32488	PrimaryLoadMetricReports *[]LoadMetricReport `json:"PrimaryLoadMetricReports,omitempty"`
32489	// SecondaryLoadMetricReports - Array of aggregated load reports from all secondary replicas for this partition.
32490	// Array only contains the latest reported load for each metric.
32491	SecondaryLoadMetricReports *[]LoadMetricReport `json:"SecondaryLoadMetricReports,omitempty"`
32492}
32493
32494// PartitionMetricLoadDescription represents load information for a partition, which contains the metrics
32495// load information about primary, all secondary replicas/instances or a specific secondary
32496// replica/instance located on a specific node.
32497type PartitionMetricLoadDescription struct {
32498	// PartitionID - Id of the partition.
32499	PartitionID *uuid.UUID `json:"PartitionId,omitempty"`
32500	// PrimaryReplicaLoadEntries - Partition's load information for primary replica, in case partition is from a stateful service.
32501	PrimaryReplicaLoadEntries *[]MetricLoadDescription `json:"PrimaryReplicaLoadEntries,omitempty"`
32502	// SecondaryReplicasOrInstancesLoadEntries - Partition's load information for all secondary replicas or instances.
32503	SecondaryReplicasOrInstancesLoadEntries *[]MetricLoadDescription `json:"SecondaryReplicasOrInstancesLoadEntries,omitempty"`
32504	// SecondaryReplicaOrInstanceLoadEntriesPerNode - Partition's load information for a specific secondary replica or instance located on a specific node.
32505	SecondaryReplicaOrInstanceLoadEntriesPerNode *[]ReplicaMetricLoadDescription `json:"SecondaryReplicaOrInstanceLoadEntriesPerNode,omitempty"`
32506}
32507
32508// PartitionNewHealthReportEvent partition Health Report Created event.
32509type PartitionNewHealthReportEvent struct {
32510	// SourceID - Id of report source.
32511	SourceID *string `json:"SourceId,omitempty"`
32512	// Property - Describes the property.
32513	Property *string `json:"Property,omitempty"`
32514	// HealthState - Describes the property health state.
32515	HealthState *string `json:"HealthState,omitempty"`
32516	// TimeToLiveMs - Time to live in milli-seconds.
32517	TimeToLiveMs *int64 `json:"TimeToLiveMs,omitempty"`
32518	// SequenceNumber - Sequence number of report.
32519	SequenceNumber *int64 `json:"SequenceNumber,omitempty"`
32520	// Description - Description of report.
32521	Description *string `json:"Description,omitempty"`
32522	// RemoveWhenExpired - Indicates the removal when it expires.
32523	RemoveWhenExpired *bool `json:"RemoveWhenExpired,omitempty"`
32524	// SourceUtcTimestamp - Source time.
32525	SourceUtcTimestamp *date.Time `json:"SourceUtcTimestamp,omitempty"`
32526	// 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.
32527	PartitionID *uuid.UUID `json:"PartitionId,omitempty"`
32528	// EventInstanceID - The identifier for the FabricEvent instance.
32529	EventInstanceID *uuid.UUID `json:"EventInstanceId,omitempty"`
32530	// Category - The category of event.
32531	Category *string `json:"Category,omitempty"`
32532	// TimeStamp - The time event was logged.
32533	TimeStamp *date.Time `json:"TimeStamp,omitempty"`
32534	// HasCorrelatedEvents - Shows there is existing related events available.
32535	HasCorrelatedEvents *bool `json:"HasCorrelatedEvents,omitempty"`
32536	// 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'
32537	Kind KindBasicFabricEvent `json:"Kind,omitempty"`
32538}
32539
32540// MarshalJSON is the custom marshaler for PartitionNewHealthReportEvent.
32541func (pnhre PartitionNewHealthReportEvent) MarshalJSON() ([]byte, error) {
32542	pnhre.Kind = KindPartitionNewHealthReport
32543	objectMap := make(map[string]interface{})
32544	if pnhre.SourceID != nil {
32545		objectMap["SourceId"] = pnhre.SourceID
32546	}
32547	if pnhre.Property != nil {
32548		objectMap["Property"] = pnhre.Property
32549	}
32550	if pnhre.HealthState != nil {
32551		objectMap["HealthState"] = pnhre.HealthState
32552	}
32553	if pnhre.TimeToLiveMs != nil {
32554		objectMap["TimeToLiveMs"] = pnhre.TimeToLiveMs
32555	}
32556	if pnhre.SequenceNumber != nil {
32557		objectMap["SequenceNumber"] = pnhre.SequenceNumber
32558	}
32559	if pnhre.Description != nil {
32560		objectMap["Description"] = pnhre.Description
32561	}
32562	if pnhre.RemoveWhenExpired != nil {
32563		objectMap["RemoveWhenExpired"] = pnhre.RemoveWhenExpired
32564	}
32565	if pnhre.SourceUtcTimestamp != nil {
32566		objectMap["SourceUtcTimestamp"] = pnhre.SourceUtcTimestamp
32567	}
32568	if pnhre.PartitionID != nil {
32569		objectMap["PartitionId"] = pnhre.PartitionID
32570	}
32571	if pnhre.EventInstanceID != nil {
32572		objectMap["EventInstanceId"] = pnhre.EventInstanceID
32573	}
32574	if pnhre.Category != nil {
32575		objectMap["Category"] = pnhre.Category
32576	}
32577	if pnhre.TimeStamp != nil {
32578		objectMap["TimeStamp"] = pnhre.TimeStamp
32579	}
32580	if pnhre.HasCorrelatedEvents != nil {
32581		objectMap["HasCorrelatedEvents"] = pnhre.HasCorrelatedEvents
32582	}
32583	if pnhre.Kind != "" {
32584		objectMap["Kind"] = pnhre.Kind
32585	}
32586	return json.Marshal(objectMap)
32587}
32588
32589// AsApplicationEvent is the BasicFabricEvent implementation for PartitionNewHealthReportEvent.
32590func (pnhre PartitionNewHealthReportEvent) AsApplicationEvent() (*ApplicationEvent, bool) {
32591	return nil, false
32592}
32593
32594// AsBasicApplicationEvent is the BasicFabricEvent implementation for PartitionNewHealthReportEvent.
32595func (pnhre PartitionNewHealthReportEvent) AsBasicApplicationEvent() (BasicApplicationEvent, bool) {
32596	return nil, false
32597}
32598
32599// AsClusterEvent is the BasicFabricEvent implementation for PartitionNewHealthReportEvent.
32600func (pnhre PartitionNewHealthReportEvent) AsClusterEvent() (*ClusterEvent, bool) {
32601	return nil, false
32602}
32603
32604// AsBasicClusterEvent is the BasicFabricEvent implementation for PartitionNewHealthReportEvent.
32605func (pnhre PartitionNewHealthReportEvent) AsBasicClusterEvent() (BasicClusterEvent, bool) {
32606	return nil, false
32607}
32608
32609// AsContainerInstanceEvent is the BasicFabricEvent implementation for PartitionNewHealthReportEvent.
32610func (pnhre PartitionNewHealthReportEvent) AsContainerInstanceEvent() (*ContainerInstanceEvent, bool) {
32611	return nil, false
32612}
32613
32614// AsNodeEvent is the BasicFabricEvent implementation for PartitionNewHealthReportEvent.
32615func (pnhre PartitionNewHealthReportEvent) AsNodeEvent() (*NodeEvent, bool) {
32616	return nil, false
32617}
32618
32619// AsBasicNodeEvent is the BasicFabricEvent implementation for PartitionNewHealthReportEvent.
32620func (pnhre PartitionNewHealthReportEvent) AsBasicNodeEvent() (BasicNodeEvent, bool) {
32621	return nil, false
32622}
32623
32624// AsPartitionAnalysisEvent is the BasicFabricEvent implementation for PartitionNewHealthReportEvent.
32625func (pnhre PartitionNewHealthReportEvent) AsPartitionAnalysisEvent() (*PartitionAnalysisEvent, bool) {
32626	return nil, false
32627}
32628
32629// AsBasicPartitionAnalysisEvent is the BasicFabricEvent implementation for PartitionNewHealthReportEvent.
32630func (pnhre PartitionNewHealthReportEvent) AsBasicPartitionAnalysisEvent() (BasicPartitionAnalysisEvent, bool) {
32631	return nil, false
32632}
32633
32634// AsPartitionEvent is the BasicFabricEvent implementation for PartitionNewHealthReportEvent.
32635func (pnhre PartitionNewHealthReportEvent) AsPartitionEvent() (*PartitionEvent, bool) {
32636	return nil, false
32637}
32638
32639// AsBasicPartitionEvent is the BasicFabricEvent implementation for PartitionNewHealthReportEvent.
32640func (pnhre PartitionNewHealthReportEvent) AsBasicPartitionEvent() (BasicPartitionEvent, bool) {
32641	return &pnhre, true
32642}
32643
32644// AsReplicaEvent is the BasicFabricEvent implementation for PartitionNewHealthReportEvent.
32645func (pnhre PartitionNewHealthReportEvent) AsReplicaEvent() (*ReplicaEvent, bool) {
32646	return nil, false
32647}
32648
32649// AsBasicReplicaEvent is the BasicFabricEvent implementation for PartitionNewHealthReportEvent.
32650func (pnhre PartitionNewHealthReportEvent) AsBasicReplicaEvent() (BasicReplicaEvent, bool) {
32651	return nil, false
32652}
32653
32654// AsServiceEvent is the BasicFabricEvent implementation for PartitionNewHealthReportEvent.
32655func (pnhre PartitionNewHealthReportEvent) AsServiceEvent() (*ServiceEvent, bool) {
32656	return nil, false
32657}
32658
32659// AsBasicServiceEvent is the BasicFabricEvent implementation for PartitionNewHealthReportEvent.
32660func (pnhre PartitionNewHealthReportEvent) AsBasicServiceEvent() (BasicServiceEvent, bool) {
32661	return nil, false
32662}
32663
32664// AsApplicationCreatedEvent is the BasicFabricEvent implementation for PartitionNewHealthReportEvent.
32665func (pnhre PartitionNewHealthReportEvent) AsApplicationCreatedEvent() (*ApplicationCreatedEvent, bool) {
32666	return nil, false
32667}
32668
32669// AsApplicationDeletedEvent is the BasicFabricEvent implementation for PartitionNewHealthReportEvent.
32670func (pnhre PartitionNewHealthReportEvent) AsApplicationDeletedEvent() (*ApplicationDeletedEvent, bool) {
32671	return nil, false
32672}
32673
32674// AsApplicationNewHealthReportEvent is the BasicFabricEvent implementation for PartitionNewHealthReportEvent.
32675func (pnhre PartitionNewHealthReportEvent) AsApplicationNewHealthReportEvent() (*ApplicationNewHealthReportEvent, bool) {
32676	return nil, false
32677}
32678
32679// AsApplicationHealthReportExpiredEvent is the BasicFabricEvent implementation for PartitionNewHealthReportEvent.
32680func (pnhre PartitionNewHealthReportEvent) AsApplicationHealthReportExpiredEvent() (*ApplicationHealthReportExpiredEvent, bool) {
32681	return nil, false
32682}
32683
32684// AsApplicationUpgradeCompletedEvent is the BasicFabricEvent implementation for PartitionNewHealthReportEvent.
32685func (pnhre PartitionNewHealthReportEvent) AsApplicationUpgradeCompletedEvent() (*ApplicationUpgradeCompletedEvent, bool) {
32686	return nil, false
32687}
32688
32689// AsApplicationUpgradeDomainCompletedEvent is the BasicFabricEvent implementation for PartitionNewHealthReportEvent.
32690func (pnhre PartitionNewHealthReportEvent) AsApplicationUpgradeDomainCompletedEvent() (*ApplicationUpgradeDomainCompletedEvent, bool) {
32691	return nil, false
32692}
32693
32694// AsApplicationUpgradeRollbackCompletedEvent is the BasicFabricEvent implementation for PartitionNewHealthReportEvent.
32695func (pnhre PartitionNewHealthReportEvent) AsApplicationUpgradeRollbackCompletedEvent() (*ApplicationUpgradeRollbackCompletedEvent, bool) {
32696	return nil, false
32697}
32698
32699// AsApplicationUpgradeRollbackStartedEvent is the BasicFabricEvent implementation for PartitionNewHealthReportEvent.
32700func (pnhre PartitionNewHealthReportEvent) AsApplicationUpgradeRollbackStartedEvent() (*ApplicationUpgradeRollbackStartedEvent, bool) {
32701	return nil, false
32702}
32703
32704// AsApplicationUpgradeStartedEvent is the BasicFabricEvent implementation for PartitionNewHealthReportEvent.
32705func (pnhre PartitionNewHealthReportEvent) AsApplicationUpgradeStartedEvent() (*ApplicationUpgradeStartedEvent, bool) {
32706	return nil, false
32707}
32708
32709// AsDeployedApplicationNewHealthReportEvent is the BasicFabricEvent implementation for PartitionNewHealthReportEvent.
32710func (pnhre PartitionNewHealthReportEvent) AsDeployedApplicationNewHealthReportEvent() (*DeployedApplicationNewHealthReportEvent, bool) {
32711	return nil, false
32712}
32713
32714// AsDeployedApplicationHealthReportExpiredEvent is the BasicFabricEvent implementation for PartitionNewHealthReportEvent.
32715func (pnhre PartitionNewHealthReportEvent) AsDeployedApplicationHealthReportExpiredEvent() (*DeployedApplicationHealthReportExpiredEvent, bool) {
32716	return nil, false
32717}
32718
32719// AsApplicationProcessExitedEvent is the BasicFabricEvent implementation for PartitionNewHealthReportEvent.
32720func (pnhre PartitionNewHealthReportEvent) AsApplicationProcessExitedEvent() (*ApplicationProcessExitedEvent, bool) {
32721	return nil, false
32722}
32723
32724// AsApplicationContainerInstanceExitedEvent is the BasicFabricEvent implementation for PartitionNewHealthReportEvent.
32725func (pnhre PartitionNewHealthReportEvent) AsApplicationContainerInstanceExitedEvent() (*ApplicationContainerInstanceExitedEvent, bool) {
32726	return nil, false
32727}
32728
32729// AsNodeAbortedEvent is the BasicFabricEvent implementation for PartitionNewHealthReportEvent.
32730func (pnhre PartitionNewHealthReportEvent) AsNodeAbortedEvent() (*NodeAbortedEvent, bool) {
32731	return nil, false
32732}
32733
32734// AsNodeAddedToClusterEvent is the BasicFabricEvent implementation for PartitionNewHealthReportEvent.
32735func (pnhre PartitionNewHealthReportEvent) AsNodeAddedToClusterEvent() (*NodeAddedToClusterEvent, bool) {
32736	return nil, false
32737}
32738
32739// AsNodeClosedEvent is the BasicFabricEvent implementation for PartitionNewHealthReportEvent.
32740func (pnhre PartitionNewHealthReportEvent) AsNodeClosedEvent() (*NodeClosedEvent, bool) {
32741	return nil, false
32742}
32743
32744// AsNodeDeactivateCompletedEvent is the BasicFabricEvent implementation for PartitionNewHealthReportEvent.
32745func (pnhre PartitionNewHealthReportEvent) AsNodeDeactivateCompletedEvent() (*NodeDeactivateCompletedEvent, bool) {
32746	return nil, false
32747}
32748
32749// AsNodeDeactivateStartedEvent is the BasicFabricEvent implementation for PartitionNewHealthReportEvent.
32750func (pnhre PartitionNewHealthReportEvent) AsNodeDeactivateStartedEvent() (*NodeDeactivateStartedEvent, bool) {
32751	return nil, false
32752}
32753
32754// AsNodeDownEvent is the BasicFabricEvent implementation for PartitionNewHealthReportEvent.
32755func (pnhre PartitionNewHealthReportEvent) AsNodeDownEvent() (*NodeDownEvent, bool) {
32756	return nil, false
32757}
32758
32759// AsNodeNewHealthReportEvent is the BasicFabricEvent implementation for PartitionNewHealthReportEvent.
32760func (pnhre PartitionNewHealthReportEvent) AsNodeNewHealthReportEvent() (*NodeNewHealthReportEvent, bool) {
32761	return nil, false
32762}
32763
32764// AsNodeHealthReportExpiredEvent is the BasicFabricEvent implementation for PartitionNewHealthReportEvent.
32765func (pnhre PartitionNewHealthReportEvent) AsNodeHealthReportExpiredEvent() (*NodeHealthReportExpiredEvent, bool) {
32766	return nil, false
32767}
32768
32769// AsNodeOpenSucceededEvent is the BasicFabricEvent implementation for PartitionNewHealthReportEvent.
32770func (pnhre PartitionNewHealthReportEvent) AsNodeOpenSucceededEvent() (*NodeOpenSucceededEvent, bool) {
32771	return nil, false
32772}
32773
32774// AsNodeOpenFailedEvent is the BasicFabricEvent implementation for PartitionNewHealthReportEvent.
32775func (pnhre PartitionNewHealthReportEvent) AsNodeOpenFailedEvent() (*NodeOpenFailedEvent, bool) {
32776	return nil, false
32777}
32778
32779// AsNodeRemovedFromClusterEvent is the BasicFabricEvent implementation for PartitionNewHealthReportEvent.
32780func (pnhre PartitionNewHealthReportEvent) AsNodeRemovedFromClusterEvent() (*NodeRemovedFromClusterEvent, bool) {
32781	return nil, false
32782}
32783
32784// AsNodeUpEvent is the BasicFabricEvent implementation for PartitionNewHealthReportEvent.
32785func (pnhre PartitionNewHealthReportEvent) AsNodeUpEvent() (*NodeUpEvent, bool) {
32786	return nil, false
32787}
32788
32789// AsPartitionNewHealthReportEvent is the BasicFabricEvent implementation for PartitionNewHealthReportEvent.
32790func (pnhre PartitionNewHealthReportEvent) AsPartitionNewHealthReportEvent() (*PartitionNewHealthReportEvent, bool) {
32791	return &pnhre, true
32792}
32793
32794// AsPartitionHealthReportExpiredEvent is the BasicFabricEvent implementation for PartitionNewHealthReportEvent.
32795func (pnhre PartitionNewHealthReportEvent) AsPartitionHealthReportExpiredEvent() (*PartitionHealthReportExpiredEvent, bool) {
32796	return nil, false
32797}
32798
32799// AsPartitionReconfiguredEvent is the BasicFabricEvent implementation for PartitionNewHealthReportEvent.
32800func (pnhre PartitionNewHealthReportEvent) AsPartitionReconfiguredEvent() (*PartitionReconfiguredEvent, bool) {
32801	return nil, false
32802}
32803
32804// AsPartitionPrimaryMoveAnalysisEvent is the BasicFabricEvent implementation for PartitionNewHealthReportEvent.
32805func (pnhre PartitionNewHealthReportEvent) AsPartitionPrimaryMoveAnalysisEvent() (*PartitionPrimaryMoveAnalysisEvent, bool) {
32806	return nil, false
32807}
32808
32809// AsServiceCreatedEvent is the BasicFabricEvent implementation for PartitionNewHealthReportEvent.
32810func (pnhre PartitionNewHealthReportEvent) AsServiceCreatedEvent() (*ServiceCreatedEvent, bool) {
32811	return nil, false
32812}
32813
32814// AsServiceDeletedEvent is the BasicFabricEvent implementation for PartitionNewHealthReportEvent.
32815func (pnhre PartitionNewHealthReportEvent) AsServiceDeletedEvent() (*ServiceDeletedEvent, bool) {
32816	return nil, false
32817}
32818
32819// AsServiceNewHealthReportEvent is the BasicFabricEvent implementation for PartitionNewHealthReportEvent.
32820func (pnhre PartitionNewHealthReportEvent) AsServiceNewHealthReportEvent() (*ServiceNewHealthReportEvent, bool) {
32821	return nil, false
32822}
32823
32824// AsServiceHealthReportExpiredEvent is the BasicFabricEvent implementation for PartitionNewHealthReportEvent.
32825func (pnhre PartitionNewHealthReportEvent) AsServiceHealthReportExpiredEvent() (*ServiceHealthReportExpiredEvent, bool) {
32826	return nil, false
32827}
32828
32829// AsDeployedServicePackageNewHealthReportEvent is the BasicFabricEvent implementation for PartitionNewHealthReportEvent.
32830func (pnhre PartitionNewHealthReportEvent) AsDeployedServicePackageNewHealthReportEvent() (*DeployedServicePackageNewHealthReportEvent, bool) {
32831	return nil, false
32832}
32833
32834// AsDeployedServicePackageHealthReportExpiredEvent is the BasicFabricEvent implementation for PartitionNewHealthReportEvent.
32835func (pnhre PartitionNewHealthReportEvent) AsDeployedServicePackageHealthReportExpiredEvent() (*DeployedServicePackageHealthReportExpiredEvent, bool) {
32836	return nil, false
32837}
32838
32839// AsStatefulReplicaNewHealthReportEvent is the BasicFabricEvent implementation for PartitionNewHealthReportEvent.
32840func (pnhre PartitionNewHealthReportEvent) AsStatefulReplicaNewHealthReportEvent() (*StatefulReplicaNewHealthReportEvent, bool) {
32841	return nil, false
32842}
32843
32844// AsStatefulReplicaHealthReportExpiredEvent is the BasicFabricEvent implementation for PartitionNewHealthReportEvent.
32845func (pnhre PartitionNewHealthReportEvent) AsStatefulReplicaHealthReportExpiredEvent() (*StatefulReplicaHealthReportExpiredEvent, bool) {
32846	return nil, false
32847}
32848
32849// AsStatelessReplicaNewHealthReportEvent is the BasicFabricEvent implementation for PartitionNewHealthReportEvent.
32850func (pnhre PartitionNewHealthReportEvent) AsStatelessReplicaNewHealthReportEvent() (*StatelessReplicaNewHealthReportEvent, bool) {
32851	return nil, false
32852}
32853
32854// AsStatelessReplicaHealthReportExpiredEvent is the BasicFabricEvent implementation for PartitionNewHealthReportEvent.
32855func (pnhre PartitionNewHealthReportEvent) AsStatelessReplicaHealthReportExpiredEvent() (*StatelessReplicaHealthReportExpiredEvent, bool) {
32856	return nil, false
32857}
32858
32859// AsClusterNewHealthReportEvent is the BasicFabricEvent implementation for PartitionNewHealthReportEvent.
32860func (pnhre PartitionNewHealthReportEvent) AsClusterNewHealthReportEvent() (*ClusterNewHealthReportEvent, bool) {
32861	return nil, false
32862}
32863
32864// AsClusterHealthReportExpiredEvent is the BasicFabricEvent implementation for PartitionNewHealthReportEvent.
32865func (pnhre PartitionNewHealthReportEvent) AsClusterHealthReportExpiredEvent() (*ClusterHealthReportExpiredEvent, bool) {
32866	return nil, false
32867}
32868
32869// AsClusterUpgradeCompletedEvent is the BasicFabricEvent implementation for PartitionNewHealthReportEvent.
32870func (pnhre PartitionNewHealthReportEvent) AsClusterUpgradeCompletedEvent() (*ClusterUpgradeCompletedEvent, bool) {
32871	return nil, false
32872}
32873
32874// AsClusterUpgradeDomainCompletedEvent is the BasicFabricEvent implementation for PartitionNewHealthReportEvent.
32875func (pnhre PartitionNewHealthReportEvent) AsClusterUpgradeDomainCompletedEvent() (*ClusterUpgradeDomainCompletedEvent, bool) {
32876	return nil, false
32877}
32878
32879// AsClusterUpgradeRollbackCompletedEvent is the BasicFabricEvent implementation for PartitionNewHealthReportEvent.
32880func (pnhre PartitionNewHealthReportEvent) AsClusterUpgradeRollbackCompletedEvent() (*ClusterUpgradeRollbackCompletedEvent, bool) {
32881	return nil, false
32882}
32883
32884// AsClusterUpgradeRollbackStartedEvent is the BasicFabricEvent implementation for PartitionNewHealthReportEvent.
32885func (pnhre PartitionNewHealthReportEvent) AsClusterUpgradeRollbackStartedEvent() (*ClusterUpgradeRollbackStartedEvent, bool) {
32886	return nil, false
32887}
32888
32889// AsClusterUpgradeStartedEvent is the BasicFabricEvent implementation for PartitionNewHealthReportEvent.
32890func (pnhre PartitionNewHealthReportEvent) AsClusterUpgradeStartedEvent() (*ClusterUpgradeStartedEvent, bool) {
32891	return nil, false
32892}
32893
32894// AsChaosStoppedEvent is the BasicFabricEvent implementation for PartitionNewHealthReportEvent.
32895func (pnhre PartitionNewHealthReportEvent) AsChaosStoppedEvent() (*ChaosStoppedEvent, bool) {
32896	return nil, false
32897}
32898
32899// AsChaosStartedEvent is the BasicFabricEvent implementation for PartitionNewHealthReportEvent.
32900func (pnhre PartitionNewHealthReportEvent) AsChaosStartedEvent() (*ChaosStartedEvent, bool) {
32901	return nil, false
32902}
32903
32904// AsChaosCodePackageRestartScheduledEvent is the BasicFabricEvent implementation for PartitionNewHealthReportEvent.
32905func (pnhre PartitionNewHealthReportEvent) AsChaosCodePackageRestartScheduledEvent() (*ChaosCodePackageRestartScheduledEvent, bool) {
32906	return nil, false
32907}
32908
32909// AsChaosReplicaRemovalScheduledEvent is the BasicFabricEvent implementation for PartitionNewHealthReportEvent.
32910func (pnhre PartitionNewHealthReportEvent) AsChaosReplicaRemovalScheduledEvent() (*ChaosReplicaRemovalScheduledEvent, bool) {
32911	return nil, false
32912}
32913
32914// AsChaosPartitionSecondaryMoveScheduledEvent is the BasicFabricEvent implementation for PartitionNewHealthReportEvent.
32915func (pnhre PartitionNewHealthReportEvent) AsChaosPartitionSecondaryMoveScheduledEvent() (*ChaosPartitionSecondaryMoveScheduledEvent, bool) {
32916	return nil, false
32917}
32918
32919// AsChaosPartitionPrimaryMoveScheduledEvent is the BasicFabricEvent implementation for PartitionNewHealthReportEvent.
32920func (pnhre PartitionNewHealthReportEvent) AsChaosPartitionPrimaryMoveScheduledEvent() (*ChaosPartitionPrimaryMoveScheduledEvent, bool) {
32921	return nil, false
32922}
32923
32924// AsChaosReplicaRestartScheduledEvent is the BasicFabricEvent implementation for PartitionNewHealthReportEvent.
32925func (pnhre PartitionNewHealthReportEvent) AsChaosReplicaRestartScheduledEvent() (*ChaosReplicaRestartScheduledEvent, bool) {
32926	return nil, false
32927}
32928
32929// AsChaosNodeRestartScheduledEvent is the BasicFabricEvent implementation for PartitionNewHealthReportEvent.
32930func (pnhre PartitionNewHealthReportEvent) AsChaosNodeRestartScheduledEvent() (*ChaosNodeRestartScheduledEvent, bool) {
32931	return nil, false
32932}
32933
32934// AsFabricEvent is the BasicFabricEvent implementation for PartitionNewHealthReportEvent.
32935func (pnhre PartitionNewHealthReportEvent) AsFabricEvent() (*FabricEvent, bool) {
32936	return nil, false
32937}
32938
32939// AsBasicFabricEvent is the BasicFabricEvent implementation for PartitionNewHealthReportEvent.
32940func (pnhre PartitionNewHealthReportEvent) AsBasicFabricEvent() (BasicFabricEvent, bool) {
32941	return &pnhre, true
32942}
32943
32944// PartitionPrimaryMoveAnalysisEvent partition Primary Move Analysis event.
32945type PartitionPrimaryMoveAnalysisEvent struct {
32946	// WhenMoveCompleted - Time when the move was completed.
32947	WhenMoveCompleted *date.Time `json:"WhenMoveCompleted,omitempty"`
32948	// PreviousNode - The name of a Service Fabric node.
32949	PreviousNode *string `json:"PreviousNode,omitempty"`
32950	// CurrentNode - The name of a Service Fabric node.
32951	CurrentNode *string `json:"CurrentNode,omitempty"`
32952	// MoveReason - Move reason.
32953	MoveReason *string `json:"MoveReason,omitempty"`
32954	// RelevantTraces - Relevant traces.
32955	RelevantTraces *string `json:"RelevantTraces,omitempty"`
32956	// Metadata - Metadata about an Analysis Event.
32957	Metadata *AnalysisEventMetadata `json:"Metadata,omitempty"`
32958	// 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.
32959	PartitionID *uuid.UUID `json:"PartitionId,omitempty"`
32960	// EventInstanceID - The identifier for the FabricEvent instance.
32961	EventInstanceID *uuid.UUID `json:"EventInstanceId,omitempty"`
32962	// Category - The category of event.
32963	Category *string `json:"Category,omitempty"`
32964	// TimeStamp - The time event was logged.
32965	TimeStamp *date.Time `json:"TimeStamp,omitempty"`
32966	// HasCorrelatedEvents - Shows there is existing related events available.
32967	HasCorrelatedEvents *bool `json:"HasCorrelatedEvents,omitempty"`
32968	// 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'
32969	Kind KindBasicFabricEvent `json:"Kind,omitempty"`
32970}
32971
32972// MarshalJSON is the custom marshaler for PartitionPrimaryMoveAnalysisEvent.
32973func (ppmae PartitionPrimaryMoveAnalysisEvent) MarshalJSON() ([]byte, error) {
32974	ppmae.Kind = KindPartitionPrimaryMoveAnalysis
32975	objectMap := make(map[string]interface{})
32976	if ppmae.WhenMoveCompleted != nil {
32977		objectMap["WhenMoveCompleted"] = ppmae.WhenMoveCompleted
32978	}
32979	if ppmae.PreviousNode != nil {
32980		objectMap["PreviousNode"] = ppmae.PreviousNode
32981	}
32982	if ppmae.CurrentNode != nil {
32983		objectMap["CurrentNode"] = ppmae.CurrentNode
32984	}
32985	if ppmae.MoveReason != nil {
32986		objectMap["MoveReason"] = ppmae.MoveReason
32987	}
32988	if ppmae.RelevantTraces != nil {
32989		objectMap["RelevantTraces"] = ppmae.RelevantTraces
32990	}
32991	if ppmae.Metadata != nil {
32992		objectMap["Metadata"] = ppmae.Metadata
32993	}
32994	if ppmae.PartitionID != nil {
32995		objectMap["PartitionId"] = ppmae.PartitionID
32996	}
32997	if ppmae.EventInstanceID != nil {
32998		objectMap["EventInstanceId"] = ppmae.EventInstanceID
32999	}
33000	if ppmae.Category != nil {
33001		objectMap["Category"] = ppmae.Category
33002	}
33003	if ppmae.TimeStamp != nil {
33004		objectMap["TimeStamp"] = ppmae.TimeStamp
33005	}
33006	if ppmae.HasCorrelatedEvents != nil {
33007		objectMap["HasCorrelatedEvents"] = ppmae.HasCorrelatedEvents
33008	}
33009	if ppmae.Kind != "" {
33010		objectMap["Kind"] = ppmae.Kind
33011	}
33012	return json.Marshal(objectMap)
33013}
33014
33015// AsApplicationEvent is the BasicFabricEvent implementation for PartitionPrimaryMoveAnalysisEvent.
33016func (ppmae PartitionPrimaryMoveAnalysisEvent) AsApplicationEvent() (*ApplicationEvent, bool) {
33017	return nil, false
33018}
33019
33020// AsBasicApplicationEvent is the BasicFabricEvent implementation for PartitionPrimaryMoveAnalysisEvent.
33021func (ppmae PartitionPrimaryMoveAnalysisEvent) AsBasicApplicationEvent() (BasicApplicationEvent, bool) {
33022	return nil, false
33023}
33024
33025// AsClusterEvent is the BasicFabricEvent implementation for PartitionPrimaryMoveAnalysisEvent.
33026func (ppmae PartitionPrimaryMoveAnalysisEvent) AsClusterEvent() (*ClusterEvent, bool) {
33027	return nil, false
33028}
33029
33030// AsBasicClusterEvent is the BasicFabricEvent implementation for PartitionPrimaryMoveAnalysisEvent.
33031func (ppmae PartitionPrimaryMoveAnalysisEvent) AsBasicClusterEvent() (BasicClusterEvent, bool) {
33032	return nil, false
33033}
33034
33035// AsContainerInstanceEvent is the BasicFabricEvent implementation for PartitionPrimaryMoveAnalysisEvent.
33036func (ppmae PartitionPrimaryMoveAnalysisEvent) AsContainerInstanceEvent() (*ContainerInstanceEvent, bool) {
33037	return nil, false
33038}
33039
33040// AsNodeEvent is the BasicFabricEvent implementation for PartitionPrimaryMoveAnalysisEvent.
33041func (ppmae PartitionPrimaryMoveAnalysisEvent) AsNodeEvent() (*NodeEvent, bool) {
33042	return nil, false
33043}
33044
33045// AsBasicNodeEvent is the BasicFabricEvent implementation for PartitionPrimaryMoveAnalysisEvent.
33046func (ppmae PartitionPrimaryMoveAnalysisEvent) AsBasicNodeEvent() (BasicNodeEvent, bool) {
33047	return nil, false
33048}
33049
33050// AsPartitionAnalysisEvent is the BasicFabricEvent implementation for PartitionPrimaryMoveAnalysisEvent.
33051func (ppmae PartitionPrimaryMoveAnalysisEvent) AsPartitionAnalysisEvent() (*PartitionAnalysisEvent, bool) {
33052	return nil, false
33053}
33054
33055// AsBasicPartitionAnalysisEvent is the BasicFabricEvent implementation for PartitionPrimaryMoveAnalysisEvent.
33056func (ppmae PartitionPrimaryMoveAnalysisEvent) AsBasicPartitionAnalysisEvent() (BasicPartitionAnalysisEvent, bool) {
33057	return &ppmae, true
33058}
33059
33060// AsPartitionEvent is the BasicFabricEvent implementation for PartitionPrimaryMoveAnalysisEvent.
33061func (ppmae PartitionPrimaryMoveAnalysisEvent) AsPartitionEvent() (*PartitionEvent, bool) {
33062	return nil, false
33063}
33064
33065// AsBasicPartitionEvent is the BasicFabricEvent implementation for PartitionPrimaryMoveAnalysisEvent.
33066func (ppmae PartitionPrimaryMoveAnalysisEvent) AsBasicPartitionEvent() (BasicPartitionEvent, bool) {
33067	return &ppmae, true
33068}
33069
33070// AsReplicaEvent is the BasicFabricEvent implementation for PartitionPrimaryMoveAnalysisEvent.
33071func (ppmae PartitionPrimaryMoveAnalysisEvent) AsReplicaEvent() (*ReplicaEvent, bool) {
33072	return nil, false
33073}
33074
33075// AsBasicReplicaEvent is the BasicFabricEvent implementation for PartitionPrimaryMoveAnalysisEvent.
33076func (ppmae PartitionPrimaryMoveAnalysisEvent) AsBasicReplicaEvent() (BasicReplicaEvent, bool) {
33077	return nil, false
33078}
33079
33080// AsServiceEvent is the BasicFabricEvent implementation for PartitionPrimaryMoveAnalysisEvent.
33081func (ppmae PartitionPrimaryMoveAnalysisEvent) AsServiceEvent() (*ServiceEvent, bool) {
33082	return nil, false
33083}
33084
33085// AsBasicServiceEvent is the BasicFabricEvent implementation for PartitionPrimaryMoveAnalysisEvent.
33086func (ppmae PartitionPrimaryMoveAnalysisEvent) AsBasicServiceEvent() (BasicServiceEvent, bool) {
33087	return nil, false
33088}
33089
33090// AsApplicationCreatedEvent is the BasicFabricEvent implementation for PartitionPrimaryMoveAnalysisEvent.
33091func (ppmae PartitionPrimaryMoveAnalysisEvent) AsApplicationCreatedEvent() (*ApplicationCreatedEvent, bool) {
33092	return nil, false
33093}
33094
33095// AsApplicationDeletedEvent is the BasicFabricEvent implementation for PartitionPrimaryMoveAnalysisEvent.
33096func (ppmae PartitionPrimaryMoveAnalysisEvent) AsApplicationDeletedEvent() (*ApplicationDeletedEvent, bool) {
33097	return nil, false
33098}
33099
33100// AsApplicationNewHealthReportEvent is the BasicFabricEvent implementation for PartitionPrimaryMoveAnalysisEvent.
33101func (ppmae PartitionPrimaryMoveAnalysisEvent) AsApplicationNewHealthReportEvent() (*ApplicationNewHealthReportEvent, bool) {
33102	return nil, false
33103}
33104
33105// AsApplicationHealthReportExpiredEvent is the BasicFabricEvent implementation for PartitionPrimaryMoveAnalysisEvent.
33106func (ppmae PartitionPrimaryMoveAnalysisEvent) AsApplicationHealthReportExpiredEvent() (*ApplicationHealthReportExpiredEvent, bool) {
33107	return nil, false
33108}
33109
33110// AsApplicationUpgradeCompletedEvent is the BasicFabricEvent implementation for PartitionPrimaryMoveAnalysisEvent.
33111func (ppmae PartitionPrimaryMoveAnalysisEvent) AsApplicationUpgradeCompletedEvent() (*ApplicationUpgradeCompletedEvent, bool) {
33112	return nil, false
33113}
33114
33115// AsApplicationUpgradeDomainCompletedEvent is the BasicFabricEvent implementation for PartitionPrimaryMoveAnalysisEvent.
33116func (ppmae PartitionPrimaryMoveAnalysisEvent) AsApplicationUpgradeDomainCompletedEvent() (*ApplicationUpgradeDomainCompletedEvent, bool) {
33117	return nil, false
33118}
33119
33120// AsApplicationUpgradeRollbackCompletedEvent is the BasicFabricEvent implementation for PartitionPrimaryMoveAnalysisEvent.
33121func (ppmae PartitionPrimaryMoveAnalysisEvent) AsApplicationUpgradeRollbackCompletedEvent() (*ApplicationUpgradeRollbackCompletedEvent, bool) {
33122	return nil, false
33123}
33124
33125// AsApplicationUpgradeRollbackStartedEvent is the BasicFabricEvent implementation for PartitionPrimaryMoveAnalysisEvent.
33126func (ppmae PartitionPrimaryMoveAnalysisEvent) AsApplicationUpgradeRollbackStartedEvent() (*ApplicationUpgradeRollbackStartedEvent, bool) {
33127	return nil, false
33128}
33129
33130// AsApplicationUpgradeStartedEvent is the BasicFabricEvent implementation for PartitionPrimaryMoveAnalysisEvent.
33131func (ppmae PartitionPrimaryMoveAnalysisEvent) AsApplicationUpgradeStartedEvent() (*ApplicationUpgradeStartedEvent, bool) {
33132	return nil, false
33133}
33134
33135// AsDeployedApplicationNewHealthReportEvent is the BasicFabricEvent implementation for PartitionPrimaryMoveAnalysisEvent.
33136func (ppmae PartitionPrimaryMoveAnalysisEvent) AsDeployedApplicationNewHealthReportEvent() (*DeployedApplicationNewHealthReportEvent, bool) {
33137	return nil, false
33138}
33139
33140// AsDeployedApplicationHealthReportExpiredEvent is the BasicFabricEvent implementation for PartitionPrimaryMoveAnalysisEvent.
33141func (ppmae PartitionPrimaryMoveAnalysisEvent) AsDeployedApplicationHealthReportExpiredEvent() (*DeployedApplicationHealthReportExpiredEvent, bool) {
33142	return nil, false
33143}
33144
33145// AsApplicationProcessExitedEvent is the BasicFabricEvent implementation for PartitionPrimaryMoveAnalysisEvent.
33146func (ppmae PartitionPrimaryMoveAnalysisEvent) AsApplicationProcessExitedEvent() (*ApplicationProcessExitedEvent, bool) {
33147	return nil, false
33148}
33149
33150// AsApplicationContainerInstanceExitedEvent is the BasicFabricEvent implementation for PartitionPrimaryMoveAnalysisEvent.
33151func (ppmae PartitionPrimaryMoveAnalysisEvent) AsApplicationContainerInstanceExitedEvent() (*ApplicationContainerInstanceExitedEvent, bool) {
33152	return nil, false
33153}
33154
33155// AsNodeAbortedEvent is the BasicFabricEvent implementation for PartitionPrimaryMoveAnalysisEvent.
33156func (ppmae PartitionPrimaryMoveAnalysisEvent) AsNodeAbortedEvent() (*NodeAbortedEvent, bool) {
33157	return nil, false
33158}
33159
33160// AsNodeAddedToClusterEvent is the BasicFabricEvent implementation for PartitionPrimaryMoveAnalysisEvent.
33161func (ppmae PartitionPrimaryMoveAnalysisEvent) AsNodeAddedToClusterEvent() (*NodeAddedToClusterEvent, bool) {
33162	return nil, false
33163}
33164
33165// AsNodeClosedEvent is the BasicFabricEvent implementation for PartitionPrimaryMoveAnalysisEvent.
33166func (ppmae PartitionPrimaryMoveAnalysisEvent) AsNodeClosedEvent() (*NodeClosedEvent, bool) {
33167	return nil, false
33168}
33169
33170// AsNodeDeactivateCompletedEvent is the BasicFabricEvent implementation for PartitionPrimaryMoveAnalysisEvent.
33171func (ppmae PartitionPrimaryMoveAnalysisEvent) AsNodeDeactivateCompletedEvent() (*NodeDeactivateCompletedEvent, bool) {
33172	return nil, false
33173}
33174
33175// AsNodeDeactivateStartedEvent is the BasicFabricEvent implementation for PartitionPrimaryMoveAnalysisEvent.
33176func (ppmae PartitionPrimaryMoveAnalysisEvent) AsNodeDeactivateStartedEvent() (*NodeDeactivateStartedEvent, bool) {
33177	return nil, false
33178}
33179
33180// AsNodeDownEvent is the BasicFabricEvent implementation for PartitionPrimaryMoveAnalysisEvent.
33181func (ppmae PartitionPrimaryMoveAnalysisEvent) AsNodeDownEvent() (*NodeDownEvent, bool) {
33182	return nil, false
33183}
33184
33185// AsNodeNewHealthReportEvent is the BasicFabricEvent implementation for PartitionPrimaryMoveAnalysisEvent.
33186func (ppmae PartitionPrimaryMoveAnalysisEvent) AsNodeNewHealthReportEvent() (*NodeNewHealthReportEvent, bool) {
33187	return nil, false
33188}
33189
33190// AsNodeHealthReportExpiredEvent is the BasicFabricEvent implementation for PartitionPrimaryMoveAnalysisEvent.
33191func (ppmae PartitionPrimaryMoveAnalysisEvent) AsNodeHealthReportExpiredEvent() (*NodeHealthReportExpiredEvent, bool) {
33192	return nil, false
33193}
33194
33195// AsNodeOpenSucceededEvent is the BasicFabricEvent implementation for PartitionPrimaryMoveAnalysisEvent.
33196func (ppmae PartitionPrimaryMoveAnalysisEvent) AsNodeOpenSucceededEvent() (*NodeOpenSucceededEvent, bool) {
33197	return nil, false
33198}
33199
33200// AsNodeOpenFailedEvent is the BasicFabricEvent implementation for PartitionPrimaryMoveAnalysisEvent.
33201func (ppmae PartitionPrimaryMoveAnalysisEvent) AsNodeOpenFailedEvent() (*NodeOpenFailedEvent, bool) {
33202	return nil, false
33203}
33204
33205// AsNodeRemovedFromClusterEvent is the BasicFabricEvent implementation for PartitionPrimaryMoveAnalysisEvent.
33206func (ppmae PartitionPrimaryMoveAnalysisEvent) AsNodeRemovedFromClusterEvent() (*NodeRemovedFromClusterEvent, bool) {
33207	return nil, false
33208}
33209
33210// AsNodeUpEvent is the BasicFabricEvent implementation for PartitionPrimaryMoveAnalysisEvent.
33211func (ppmae PartitionPrimaryMoveAnalysisEvent) AsNodeUpEvent() (*NodeUpEvent, bool) {
33212	return nil, false
33213}
33214
33215// AsPartitionNewHealthReportEvent is the BasicFabricEvent implementation for PartitionPrimaryMoveAnalysisEvent.
33216func (ppmae PartitionPrimaryMoveAnalysisEvent) AsPartitionNewHealthReportEvent() (*PartitionNewHealthReportEvent, bool) {
33217	return nil, false
33218}
33219
33220// AsPartitionHealthReportExpiredEvent is the BasicFabricEvent implementation for PartitionPrimaryMoveAnalysisEvent.
33221func (ppmae PartitionPrimaryMoveAnalysisEvent) AsPartitionHealthReportExpiredEvent() (*PartitionHealthReportExpiredEvent, bool) {
33222	return nil, false
33223}
33224
33225// AsPartitionReconfiguredEvent is the BasicFabricEvent implementation for PartitionPrimaryMoveAnalysisEvent.
33226func (ppmae PartitionPrimaryMoveAnalysisEvent) AsPartitionReconfiguredEvent() (*PartitionReconfiguredEvent, bool) {
33227	return nil, false
33228}
33229
33230// AsPartitionPrimaryMoveAnalysisEvent is the BasicFabricEvent implementation for PartitionPrimaryMoveAnalysisEvent.
33231func (ppmae PartitionPrimaryMoveAnalysisEvent) AsPartitionPrimaryMoveAnalysisEvent() (*PartitionPrimaryMoveAnalysisEvent, bool) {
33232	return &ppmae, true
33233}
33234
33235// AsServiceCreatedEvent is the BasicFabricEvent implementation for PartitionPrimaryMoveAnalysisEvent.
33236func (ppmae PartitionPrimaryMoveAnalysisEvent) AsServiceCreatedEvent() (*ServiceCreatedEvent, bool) {
33237	return nil, false
33238}
33239
33240// AsServiceDeletedEvent is the BasicFabricEvent implementation for PartitionPrimaryMoveAnalysisEvent.
33241func (ppmae PartitionPrimaryMoveAnalysisEvent) AsServiceDeletedEvent() (*ServiceDeletedEvent, bool) {
33242	return nil, false
33243}
33244
33245// AsServiceNewHealthReportEvent is the BasicFabricEvent implementation for PartitionPrimaryMoveAnalysisEvent.
33246func (ppmae PartitionPrimaryMoveAnalysisEvent) AsServiceNewHealthReportEvent() (*ServiceNewHealthReportEvent, bool) {
33247	return nil, false
33248}
33249
33250// AsServiceHealthReportExpiredEvent is the BasicFabricEvent implementation for PartitionPrimaryMoveAnalysisEvent.
33251func (ppmae PartitionPrimaryMoveAnalysisEvent) AsServiceHealthReportExpiredEvent() (*ServiceHealthReportExpiredEvent, bool) {
33252	return nil, false
33253}
33254
33255// AsDeployedServicePackageNewHealthReportEvent is the BasicFabricEvent implementation for PartitionPrimaryMoveAnalysisEvent.
33256func (ppmae PartitionPrimaryMoveAnalysisEvent) AsDeployedServicePackageNewHealthReportEvent() (*DeployedServicePackageNewHealthReportEvent, bool) {
33257	return nil, false
33258}
33259
33260// AsDeployedServicePackageHealthReportExpiredEvent is the BasicFabricEvent implementation for PartitionPrimaryMoveAnalysisEvent.
33261func (ppmae PartitionPrimaryMoveAnalysisEvent) AsDeployedServicePackageHealthReportExpiredEvent() (*DeployedServicePackageHealthReportExpiredEvent, bool) {
33262	return nil, false
33263}
33264
33265// AsStatefulReplicaNewHealthReportEvent is the BasicFabricEvent implementation for PartitionPrimaryMoveAnalysisEvent.
33266func (ppmae PartitionPrimaryMoveAnalysisEvent) AsStatefulReplicaNewHealthReportEvent() (*StatefulReplicaNewHealthReportEvent, bool) {
33267	return nil, false
33268}
33269
33270// AsStatefulReplicaHealthReportExpiredEvent is the BasicFabricEvent implementation for PartitionPrimaryMoveAnalysisEvent.
33271func (ppmae PartitionPrimaryMoveAnalysisEvent) AsStatefulReplicaHealthReportExpiredEvent() (*StatefulReplicaHealthReportExpiredEvent, bool) {
33272	return nil, false
33273}
33274
33275// AsStatelessReplicaNewHealthReportEvent is the BasicFabricEvent implementation for PartitionPrimaryMoveAnalysisEvent.
33276func (ppmae PartitionPrimaryMoveAnalysisEvent) AsStatelessReplicaNewHealthReportEvent() (*StatelessReplicaNewHealthReportEvent, bool) {
33277	return nil, false
33278}
33279
33280// AsStatelessReplicaHealthReportExpiredEvent is the BasicFabricEvent implementation for PartitionPrimaryMoveAnalysisEvent.
33281func (ppmae PartitionPrimaryMoveAnalysisEvent) AsStatelessReplicaHealthReportExpiredEvent() (*StatelessReplicaHealthReportExpiredEvent, bool) {
33282	return nil, false
33283}
33284
33285// AsClusterNewHealthReportEvent is the BasicFabricEvent implementation for PartitionPrimaryMoveAnalysisEvent.
33286func (ppmae PartitionPrimaryMoveAnalysisEvent) AsClusterNewHealthReportEvent() (*ClusterNewHealthReportEvent, bool) {
33287	return nil, false
33288}
33289
33290// AsClusterHealthReportExpiredEvent is the BasicFabricEvent implementation for PartitionPrimaryMoveAnalysisEvent.
33291func (ppmae PartitionPrimaryMoveAnalysisEvent) AsClusterHealthReportExpiredEvent() (*ClusterHealthReportExpiredEvent, bool) {
33292	return nil, false
33293}
33294
33295// AsClusterUpgradeCompletedEvent is the BasicFabricEvent implementation for PartitionPrimaryMoveAnalysisEvent.
33296func (ppmae PartitionPrimaryMoveAnalysisEvent) AsClusterUpgradeCompletedEvent() (*ClusterUpgradeCompletedEvent, bool) {
33297	return nil, false
33298}
33299
33300// AsClusterUpgradeDomainCompletedEvent is the BasicFabricEvent implementation for PartitionPrimaryMoveAnalysisEvent.
33301func (ppmae PartitionPrimaryMoveAnalysisEvent) AsClusterUpgradeDomainCompletedEvent() (*ClusterUpgradeDomainCompletedEvent, bool) {
33302	return nil, false
33303}
33304
33305// AsClusterUpgradeRollbackCompletedEvent is the BasicFabricEvent implementation for PartitionPrimaryMoveAnalysisEvent.
33306func (ppmae PartitionPrimaryMoveAnalysisEvent) AsClusterUpgradeRollbackCompletedEvent() (*ClusterUpgradeRollbackCompletedEvent, bool) {
33307	return nil, false
33308}
33309
33310// AsClusterUpgradeRollbackStartedEvent is the BasicFabricEvent implementation for PartitionPrimaryMoveAnalysisEvent.
33311func (ppmae PartitionPrimaryMoveAnalysisEvent) AsClusterUpgradeRollbackStartedEvent() (*ClusterUpgradeRollbackStartedEvent, bool) {
33312	return nil, false
33313}
33314
33315// AsClusterUpgradeStartedEvent is the BasicFabricEvent implementation for PartitionPrimaryMoveAnalysisEvent.
33316func (ppmae PartitionPrimaryMoveAnalysisEvent) AsClusterUpgradeStartedEvent() (*ClusterUpgradeStartedEvent, bool) {
33317	return nil, false
33318}
33319
33320// AsChaosStoppedEvent is the BasicFabricEvent implementation for PartitionPrimaryMoveAnalysisEvent.
33321func (ppmae PartitionPrimaryMoveAnalysisEvent) AsChaosStoppedEvent() (*ChaosStoppedEvent, bool) {
33322	return nil, false
33323}
33324
33325// AsChaosStartedEvent is the BasicFabricEvent implementation for PartitionPrimaryMoveAnalysisEvent.
33326func (ppmae PartitionPrimaryMoveAnalysisEvent) AsChaosStartedEvent() (*ChaosStartedEvent, bool) {
33327	return nil, false
33328}
33329
33330// AsChaosCodePackageRestartScheduledEvent is the BasicFabricEvent implementation for PartitionPrimaryMoveAnalysisEvent.
33331func (ppmae PartitionPrimaryMoveAnalysisEvent) AsChaosCodePackageRestartScheduledEvent() (*ChaosCodePackageRestartScheduledEvent, bool) {
33332	return nil, false
33333}
33334
33335// AsChaosReplicaRemovalScheduledEvent is the BasicFabricEvent implementation for PartitionPrimaryMoveAnalysisEvent.
33336func (ppmae PartitionPrimaryMoveAnalysisEvent) AsChaosReplicaRemovalScheduledEvent() (*ChaosReplicaRemovalScheduledEvent, bool) {
33337	return nil, false
33338}
33339
33340// AsChaosPartitionSecondaryMoveScheduledEvent is the BasicFabricEvent implementation for PartitionPrimaryMoveAnalysisEvent.
33341func (ppmae PartitionPrimaryMoveAnalysisEvent) AsChaosPartitionSecondaryMoveScheduledEvent() (*ChaosPartitionSecondaryMoveScheduledEvent, bool) {
33342	return nil, false
33343}
33344
33345// AsChaosPartitionPrimaryMoveScheduledEvent is the BasicFabricEvent implementation for PartitionPrimaryMoveAnalysisEvent.
33346func (ppmae PartitionPrimaryMoveAnalysisEvent) AsChaosPartitionPrimaryMoveScheduledEvent() (*ChaosPartitionPrimaryMoveScheduledEvent, bool) {
33347	return nil, false
33348}
33349
33350// AsChaosReplicaRestartScheduledEvent is the BasicFabricEvent implementation for PartitionPrimaryMoveAnalysisEvent.
33351func (ppmae PartitionPrimaryMoveAnalysisEvent) AsChaosReplicaRestartScheduledEvent() (*ChaosReplicaRestartScheduledEvent, bool) {
33352	return nil, false
33353}
33354
33355// AsChaosNodeRestartScheduledEvent is the BasicFabricEvent implementation for PartitionPrimaryMoveAnalysisEvent.
33356func (ppmae PartitionPrimaryMoveAnalysisEvent) AsChaosNodeRestartScheduledEvent() (*ChaosNodeRestartScheduledEvent, bool) {
33357	return nil, false
33358}
33359
33360// AsFabricEvent is the BasicFabricEvent implementation for PartitionPrimaryMoveAnalysisEvent.
33361func (ppmae PartitionPrimaryMoveAnalysisEvent) AsFabricEvent() (*FabricEvent, bool) {
33362	return nil, false
33363}
33364
33365// AsBasicFabricEvent is the BasicFabricEvent implementation for PartitionPrimaryMoveAnalysisEvent.
33366func (ppmae PartitionPrimaryMoveAnalysisEvent) AsBasicFabricEvent() (BasicFabricEvent, bool) {
33367	return &ppmae, true
33368}
33369
33370// PartitionQuorumLossProgress information about a partition quorum loss user-induced operation.
33371type PartitionQuorumLossProgress struct {
33372	autorest.Response `json:"-"`
33373	// State - The state of the operation. Possible values include: 'OperationStateInvalid', 'OperationStateRunning', 'OperationStateRollingBack', 'OperationStateCompleted', 'OperationStateFaulted', 'OperationStateCancelled', 'OperationStateForceCancelled'
33374	State OperationState `json:"State,omitempty"`
33375	// InvokeQuorumLossResult - Represents information about an operation in a terminal state (Completed or Faulted).
33376	InvokeQuorumLossResult *InvokeQuorumLossResult `json:"InvokeQuorumLossResult,omitempty"`
33377}
33378
33379// PartitionReconfiguredEvent partition Reconfiguration event.
33380type PartitionReconfiguredEvent struct {
33381	// NodeName - The name of a Service Fabric node.
33382	NodeName *string `json:"NodeName,omitempty"`
33383	// NodeInstanceID - Id of Node instance.
33384	NodeInstanceID *string `json:"NodeInstanceId,omitempty"`
33385	// ServiceType - Type of Service.
33386	ServiceType *string `json:"ServiceType,omitempty"`
33387	// CcEpochDataLossVersion - CcEpochDataLoss version.
33388	CcEpochDataLossVersion *int64 `json:"CcEpochDataLossVersion,omitempty"`
33389	// CcEpochConfigVersion - CcEpochConfig version.
33390	CcEpochConfigVersion *int64 `json:"CcEpochConfigVersion,omitempty"`
33391	// ReconfigType - Type of reconfiguration.
33392	ReconfigType *string `json:"ReconfigType,omitempty"`
33393	// Result - Describes reconfiguration result.
33394	Result *string `json:"Result,omitempty"`
33395	// Phase0DurationMs - Duration of Phase0 in milli-seconds.
33396	Phase0DurationMs *float64 `json:"Phase0DurationMs,omitempty"`
33397	// Phase1DurationMs - Duration of Phase1 in milli-seconds.
33398	Phase1DurationMs *float64 `json:"Phase1DurationMs,omitempty"`
33399	// Phase2DurationMs - Duration of Phase2 in milli-seconds.
33400	Phase2DurationMs *float64 `json:"Phase2DurationMs,omitempty"`
33401	// Phase3DurationMs - Duration of Phase3 in milli-seconds.
33402	Phase3DurationMs *float64 `json:"Phase3DurationMs,omitempty"`
33403	// Phase4DurationMs - Duration of Phase4 in milli-seconds.
33404	Phase4DurationMs *float64 `json:"Phase4DurationMs,omitempty"`
33405	// TotalDurationMs - Total duration in milli-seconds.
33406	TotalDurationMs *float64 `json:"TotalDurationMs,omitempty"`
33407	// 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.
33408	PartitionID *uuid.UUID `json:"PartitionId,omitempty"`
33409	// EventInstanceID - The identifier for the FabricEvent instance.
33410	EventInstanceID *uuid.UUID `json:"EventInstanceId,omitempty"`
33411	// Category - The category of event.
33412	Category *string `json:"Category,omitempty"`
33413	// TimeStamp - The time event was logged.
33414	TimeStamp *date.Time `json:"TimeStamp,omitempty"`
33415	// HasCorrelatedEvents - Shows there is existing related events available.
33416	HasCorrelatedEvents *bool `json:"HasCorrelatedEvents,omitempty"`
33417	// 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'
33418	Kind KindBasicFabricEvent `json:"Kind,omitempty"`
33419}
33420
33421// MarshalJSON is the custom marshaler for PartitionReconfiguredEvent.
33422func (pre PartitionReconfiguredEvent) MarshalJSON() ([]byte, error) {
33423	pre.Kind = KindPartitionReconfigured
33424	objectMap := make(map[string]interface{})
33425	if pre.NodeName != nil {
33426		objectMap["NodeName"] = pre.NodeName
33427	}
33428	if pre.NodeInstanceID != nil {
33429		objectMap["NodeInstanceId"] = pre.NodeInstanceID
33430	}
33431	if pre.ServiceType != nil {
33432		objectMap["ServiceType"] = pre.ServiceType
33433	}
33434	if pre.CcEpochDataLossVersion != nil {
33435		objectMap["CcEpochDataLossVersion"] = pre.CcEpochDataLossVersion
33436	}
33437	if pre.CcEpochConfigVersion != nil {
33438		objectMap["CcEpochConfigVersion"] = pre.CcEpochConfigVersion
33439	}
33440	if pre.ReconfigType != nil {
33441		objectMap["ReconfigType"] = pre.ReconfigType
33442	}
33443	if pre.Result != nil {
33444		objectMap["Result"] = pre.Result
33445	}
33446	if pre.Phase0DurationMs != nil {
33447		objectMap["Phase0DurationMs"] = pre.Phase0DurationMs
33448	}
33449	if pre.Phase1DurationMs != nil {
33450		objectMap["Phase1DurationMs"] = pre.Phase1DurationMs
33451	}
33452	if pre.Phase2DurationMs != nil {
33453		objectMap["Phase2DurationMs"] = pre.Phase2DurationMs
33454	}
33455	if pre.Phase3DurationMs != nil {
33456		objectMap["Phase3DurationMs"] = pre.Phase3DurationMs
33457	}
33458	if pre.Phase4DurationMs != nil {
33459		objectMap["Phase4DurationMs"] = pre.Phase4DurationMs
33460	}
33461	if pre.TotalDurationMs != nil {
33462		objectMap["TotalDurationMs"] = pre.TotalDurationMs
33463	}
33464	if pre.PartitionID != nil {
33465		objectMap["PartitionId"] = pre.PartitionID
33466	}
33467	if pre.EventInstanceID != nil {
33468		objectMap["EventInstanceId"] = pre.EventInstanceID
33469	}
33470	if pre.Category != nil {
33471		objectMap["Category"] = pre.Category
33472	}
33473	if pre.TimeStamp != nil {
33474		objectMap["TimeStamp"] = pre.TimeStamp
33475	}
33476	if pre.HasCorrelatedEvents != nil {
33477		objectMap["HasCorrelatedEvents"] = pre.HasCorrelatedEvents
33478	}
33479	if pre.Kind != "" {
33480		objectMap["Kind"] = pre.Kind
33481	}
33482	return json.Marshal(objectMap)
33483}
33484
33485// AsApplicationEvent is the BasicFabricEvent implementation for PartitionReconfiguredEvent.
33486func (pre PartitionReconfiguredEvent) AsApplicationEvent() (*ApplicationEvent, bool) {
33487	return nil, false
33488}
33489
33490// AsBasicApplicationEvent is the BasicFabricEvent implementation for PartitionReconfiguredEvent.
33491func (pre PartitionReconfiguredEvent) AsBasicApplicationEvent() (BasicApplicationEvent, bool) {
33492	return nil, false
33493}
33494
33495// AsClusterEvent is the BasicFabricEvent implementation for PartitionReconfiguredEvent.
33496func (pre PartitionReconfiguredEvent) AsClusterEvent() (*ClusterEvent, bool) {
33497	return nil, false
33498}
33499
33500// AsBasicClusterEvent is the BasicFabricEvent implementation for PartitionReconfiguredEvent.
33501func (pre PartitionReconfiguredEvent) AsBasicClusterEvent() (BasicClusterEvent, bool) {
33502	return nil, false
33503}
33504
33505// AsContainerInstanceEvent is the BasicFabricEvent implementation for PartitionReconfiguredEvent.
33506func (pre PartitionReconfiguredEvent) AsContainerInstanceEvent() (*ContainerInstanceEvent, bool) {
33507	return nil, false
33508}
33509
33510// AsNodeEvent is the BasicFabricEvent implementation for PartitionReconfiguredEvent.
33511func (pre PartitionReconfiguredEvent) AsNodeEvent() (*NodeEvent, bool) {
33512	return nil, false
33513}
33514
33515// AsBasicNodeEvent is the BasicFabricEvent implementation for PartitionReconfiguredEvent.
33516func (pre PartitionReconfiguredEvent) AsBasicNodeEvent() (BasicNodeEvent, bool) {
33517	return nil, false
33518}
33519
33520// AsPartitionAnalysisEvent is the BasicFabricEvent implementation for PartitionReconfiguredEvent.
33521func (pre PartitionReconfiguredEvent) AsPartitionAnalysisEvent() (*PartitionAnalysisEvent, bool) {
33522	return nil, false
33523}
33524
33525// AsBasicPartitionAnalysisEvent is the BasicFabricEvent implementation for PartitionReconfiguredEvent.
33526func (pre PartitionReconfiguredEvent) AsBasicPartitionAnalysisEvent() (BasicPartitionAnalysisEvent, bool) {
33527	return nil, false
33528}
33529
33530// AsPartitionEvent is the BasicFabricEvent implementation for PartitionReconfiguredEvent.
33531func (pre PartitionReconfiguredEvent) AsPartitionEvent() (*PartitionEvent, bool) {
33532	return nil, false
33533}
33534
33535// AsBasicPartitionEvent is the BasicFabricEvent implementation for PartitionReconfiguredEvent.
33536func (pre PartitionReconfiguredEvent) AsBasicPartitionEvent() (BasicPartitionEvent, bool) {
33537	return &pre, true
33538}
33539
33540// AsReplicaEvent is the BasicFabricEvent implementation for PartitionReconfiguredEvent.
33541func (pre PartitionReconfiguredEvent) AsReplicaEvent() (*ReplicaEvent, bool) {
33542	return nil, false
33543}
33544
33545// AsBasicReplicaEvent is the BasicFabricEvent implementation for PartitionReconfiguredEvent.
33546func (pre PartitionReconfiguredEvent) AsBasicReplicaEvent() (BasicReplicaEvent, bool) {
33547	return nil, false
33548}
33549
33550// AsServiceEvent is the BasicFabricEvent implementation for PartitionReconfiguredEvent.
33551func (pre PartitionReconfiguredEvent) AsServiceEvent() (*ServiceEvent, bool) {
33552	return nil, false
33553}
33554
33555// AsBasicServiceEvent is the BasicFabricEvent implementation for PartitionReconfiguredEvent.
33556func (pre PartitionReconfiguredEvent) AsBasicServiceEvent() (BasicServiceEvent, bool) {
33557	return nil, false
33558}
33559
33560// AsApplicationCreatedEvent is the BasicFabricEvent implementation for PartitionReconfiguredEvent.
33561func (pre PartitionReconfiguredEvent) AsApplicationCreatedEvent() (*ApplicationCreatedEvent, bool) {
33562	return nil, false
33563}
33564
33565// AsApplicationDeletedEvent is the BasicFabricEvent implementation for PartitionReconfiguredEvent.
33566func (pre PartitionReconfiguredEvent) AsApplicationDeletedEvent() (*ApplicationDeletedEvent, bool) {
33567	return nil, false
33568}
33569
33570// AsApplicationNewHealthReportEvent is the BasicFabricEvent implementation for PartitionReconfiguredEvent.
33571func (pre PartitionReconfiguredEvent) AsApplicationNewHealthReportEvent() (*ApplicationNewHealthReportEvent, bool) {
33572	return nil, false
33573}
33574
33575// AsApplicationHealthReportExpiredEvent is the BasicFabricEvent implementation for PartitionReconfiguredEvent.
33576func (pre PartitionReconfiguredEvent) AsApplicationHealthReportExpiredEvent() (*ApplicationHealthReportExpiredEvent, bool) {
33577	return nil, false
33578}
33579
33580// AsApplicationUpgradeCompletedEvent is the BasicFabricEvent implementation for PartitionReconfiguredEvent.
33581func (pre PartitionReconfiguredEvent) AsApplicationUpgradeCompletedEvent() (*ApplicationUpgradeCompletedEvent, bool) {
33582	return nil, false
33583}
33584
33585// AsApplicationUpgradeDomainCompletedEvent is the BasicFabricEvent implementation for PartitionReconfiguredEvent.
33586func (pre PartitionReconfiguredEvent) AsApplicationUpgradeDomainCompletedEvent() (*ApplicationUpgradeDomainCompletedEvent, bool) {
33587	return nil, false
33588}
33589
33590// AsApplicationUpgradeRollbackCompletedEvent is the BasicFabricEvent implementation for PartitionReconfiguredEvent.
33591func (pre PartitionReconfiguredEvent) AsApplicationUpgradeRollbackCompletedEvent() (*ApplicationUpgradeRollbackCompletedEvent, bool) {
33592	return nil, false
33593}
33594
33595// AsApplicationUpgradeRollbackStartedEvent is the BasicFabricEvent implementation for PartitionReconfiguredEvent.
33596func (pre PartitionReconfiguredEvent) AsApplicationUpgradeRollbackStartedEvent() (*ApplicationUpgradeRollbackStartedEvent, bool) {
33597	return nil, false
33598}
33599
33600// AsApplicationUpgradeStartedEvent is the BasicFabricEvent implementation for PartitionReconfiguredEvent.
33601func (pre PartitionReconfiguredEvent) AsApplicationUpgradeStartedEvent() (*ApplicationUpgradeStartedEvent, bool) {
33602	return nil, false
33603}
33604
33605// AsDeployedApplicationNewHealthReportEvent is the BasicFabricEvent implementation for PartitionReconfiguredEvent.
33606func (pre PartitionReconfiguredEvent) AsDeployedApplicationNewHealthReportEvent() (*DeployedApplicationNewHealthReportEvent, bool) {
33607	return nil, false
33608}
33609
33610// AsDeployedApplicationHealthReportExpiredEvent is the BasicFabricEvent implementation for PartitionReconfiguredEvent.
33611func (pre PartitionReconfiguredEvent) AsDeployedApplicationHealthReportExpiredEvent() (*DeployedApplicationHealthReportExpiredEvent, bool) {
33612	return nil, false
33613}
33614
33615// AsApplicationProcessExitedEvent is the BasicFabricEvent implementation for PartitionReconfiguredEvent.
33616func (pre PartitionReconfiguredEvent) AsApplicationProcessExitedEvent() (*ApplicationProcessExitedEvent, bool) {
33617	return nil, false
33618}
33619
33620// AsApplicationContainerInstanceExitedEvent is the BasicFabricEvent implementation for PartitionReconfiguredEvent.
33621func (pre PartitionReconfiguredEvent) AsApplicationContainerInstanceExitedEvent() (*ApplicationContainerInstanceExitedEvent, bool) {
33622	return nil, false
33623}
33624
33625// AsNodeAbortedEvent is the BasicFabricEvent implementation for PartitionReconfiguredEvent.
33626func (pre PartitionReconfiguredEvent) AsNodeAbortedEvent() (*NodeAbortedEvent, bool) {
33627	return nil, false
33628}
33629
33630// AsNodeAddedToClusterEvent is the BasicFabricEvent implementation for PartitionReconfiguredEvent.
33631func (pre PartitionReconfiguredEvent) AsNodeAddedToClusterEvent() (*NodeAddedToClusterEvent, bool) {
33632	return nil, false
33633}
33634
33635// AsNodeClosedEvent is the BasicFabricEvent implementation for PartitionReconfiguredEvent.
33636func (pre PartitionReconfiguredEvent) AsNodeClosedEvent() (*NodeClosedEvent, bool) {
33637	return nil, false
33638}
33639
33640// AsNodeDeactivateCompletedEvent is the BasicFabricEvent implementation for PartitionReconfiguredEvent.
33641func (pre PartitionReconfiguredEvent) AsNodeDeactivateCompletedEvent() (*NodeDeactivateCompletedEvent, bool) {
33642	return nil, false
33643}
33644
33645// AsNodeDeactivateStartedEvent is the BasicFabricEvent implementation for PartitionReconfiguredEvent.
33646func (pre PartitionReconfiguredEvent) AsNodeDeactivateStartedEvent() (*NodeDeactivateStartedEvent, bool) {
33647	return nil, false
33648}
33649
33650// AsNodeDownEvent is the BasicFabricEvent implementation for PartitionReconfiguredEvent.
33651func (pre PartitionReconfiguredEvent) AsNodeDownEvent() (*NodeDownEvent, bool) {
33652	return nil, false
33653}
33654
33655// AsNodeNewHealthReportEvent is the BasicFabricEvent implementation for PartitionReconfiguredEvent.
33656func (pre PartitionReconfiguredEvent) AsNodeNewHealthReportEvent() (*NodeNewHealthReportEvent, bool) {
33657	return nil, false
33658}
33659
33660// AsNodeHealthReportExpiredEvent is the BasicFabricEvent implementation for PartitionReconfiguredEvent.
33661func (pre PartitionReconfiguredEvent) AsNodeHealthReportExpiredEvent() (*NodeHealthReportExpiredEvent, bool) {
33662	return nil, false
33663}
33664
33665// AsNodeOpenSucceededEvent is the BasicFabricEvent implementation for PartitionReconfiguredEvent.
33666func (pre PartitionReconfiguredEvent) AsNodeOpenSucceededEvent() (*NodeOpenSucceededEvent, bool) {
33667	return nil, false
33668}
33669
33670// AsNodeOpenFailedEvent is the BasicFabricEvent implementation for PartitionReconfiguredEvent.
33671func (pre PartitionReconfiguredEvent) AsNodeOpenFailedEvent() (*NodeOpenFailedEvent, bool) {
33672	return nil, false
33673}
33674
33675// AsNodeRemovedFromClusterEvent is the BasicFabricEvent implementation for PartitionReconfiguredEvent.
33676func (pre PartitionReconfiguredEvent) AsNodeRemovedFromClusterEvent() (*NodeRemovedFromClusterEvent, bool) {
33677	return nil, false
33678}
33679
33680// AsNodeUpEvent is the BasicFabricEvent implementation for PartitionReconfiguredEvent.
33681func (pre PartitionReconfiguredEvent) AsNodeUpEvent() (*NodeUpEvent, bool) {
33682	return nil, false
33683}
33684
33685// AsPartitionNewHealthReportEvent is the BasicFabricEvent implementation for PartitionReconfiguredEvent.
33686func (pre PartitionReconfiguredEvent) AsPartitionNewHealthReportEvent() (*PartitionNewHealthReportEvent, bool) {
33687	return nil, false
33688}
33689
33690// AsPartitionHealthReportExpiredEvent is the BasicFabricEvent implementation for PartitionReconfiguredEvent.
33691func (pre PartitionReconfiguredEvent) AsPartitionHealthReportExpiredEvent() (*PartitionHealthReportExpiredEvent, bool) {
33692	return nil, false
33693}
33694
33695// AsPartitionReconfiguredEvent is the BasicFabricEvent implementation for PartitionReconfiguredEvent.
33696func (pre PartitionReconfiguredEvent) AsPartitionReconfiguredEvent() (*PartitionReconfiguredEvent, bool) {
33697	return &pre, true
33698}
33699
33700// AsPartitionPrimaryMoveAnalysisEvent is the BasicFabricEvent implementation for PartitionReconfiguredEvent.
33701func (pre PartitionReconfiguredEvent) AsPartitionPrimaryMoveAnalysisEvent() (*PartitionPrimaryMoveAnalysisEvent, bool) {
33702	return nil, false
33703}
33704
33705// AsServiceCreatedEvent is the BasicFabricEvent implementation for PartitionReconfiguredEvent.
33706func (pre PartitionReconfiguredEvent) AsServiceCreatedEvent() (*ServiceCreatedEvent, bool) {
33707	return nil, false
33708}
33709
33710// AsServiceDeletedEvent is the BasicFabricEvent implementation for PartitionReconfiguredEvent.
33711func (pre PartitionReconfiguredEvent) AsServiceDeletedEvent() (*ServiceDeletedEvent, bool) {
33712	return nil, false
33713}
33714
33715// AsServiceNewHealthReportEvent is the BasicFabricEvent implementation for PartitionReconfiguredEvent.
33716func (pre PartitionReconfiguredEvent) AsServiceNewHealthReportEvent() (*ServiceNewHealthReportEvent, bool) {
33717	return nil, false
33718}
33719
33720// AsServiceHealthReportExpiredEvent is the BasicFabricEvent implementation for PartitionReconfiguredEvent.
33721func (pre PartitionReconfiguredEvent) AsServiceHealthReportExpiredEvent() (*ServiceHealthReportExpiredEvent, bool) {
33722	return nil, false
33723}
33724
33725// AsDeployedServicePackageNewHealthReportEvent is the BasicFabricEvent implementation for PartitionReconfiguredEvent.
33726func (pre PartitionReconfiguredEvent) AsDeployedServicePackageNewHealthReportEvent() (*DeployedServicePackageNewHealthReportEvent, bool) {
33727	return nil, false
33728}
33729
33730// AsDeployedServicePackageHealthReportExpiredEvent is the BasicFabricEvent implementation for PartitionReconfiguredEvent.
33731func (pre PartitionReconfiguredEvent) AsDeployedServicePackageHealthReportExpiredEvent() (*DeployedServicePackageHealthReportExpiredEvent, bool) {
33732	return nil, false
33733}
33734
33735// AsStatefulReplicaNewHealthReportEvent is the BasicFabricEvent implementation for PartitionReconfiguredEvent.
33736func (pre PartitionReconfiguredEvent) AsStatefulReplicaNewHealthReportEvent() (*StatefulReplicaNewHealthReportEvent, bool) {
33737	return nil, false
33738}
33739
33740// AsStatefulReplicaHealthReportExpiredEvent is the BasicFabricEvent implementation for PartitionReconfiguredEvent.
33741func (pre PartitionReconfiguredEvent) AsStatefulReplicaHealthReportExpiredEvent() (*StatefulReplicaHealthReportExpiredEvent, bool) {
33742	return nil, false
33743}
33744
33745// AsStatelessReplicaNewHealthReportEvent is the BasicFabricEvent implementation for PartitionReconfiguredEvent.
33746func (pre PartitionReconfiguredEvent) AsStatelessReplicaNewHealthReportEvent() (*StatelessReplicaNewHealthReportEvent, bool) {
33747	return nil, false
33748}
33749
33750// AsStatelessReplicaHealthReportExpiredEvent is the BasicFabricEvent implementation for PartitionReconfiguredEvent.
33751func (pre PartitionReconfiguredEvent) AsStatelessReplicaHealthReportExpiredEvent() (*StatelessReplicaHealthReportExpiredEvent, bool) {
33752	return nil, false
33753}
33754
33755// AsClusterNewHealthReportEvent is the BasicFabricEvent implementation for PartitionReconfiguredEvent.
33756func (pre PartitionReconfiguredEvent) AsClusterNewHealthReportEvent() (*ClusterNewHealthReportEvent, bool) {
33757	return nil, false
33758}
33759
33760// AsClusterHealthReportExpiredEvent is the BasicFabricEvent implementation for PartitionReconfiguredEvent.
33761func (pre PartitionReconfiguredEvent) AsClusterHealthReportExpiredEvent() (*ClusterHealthReportExpiredEvent, bool) {
33762	return nil, false
33763}
33764
33765// AsClusterUpgradeCompletedEvent is the BasicFabricEvent implementation for PartitionReconfiguredEvent.
33766func (pre PartitionReconfiguredEvent) AsClusterUpgradeCompletedEvent() (*ClusterUpgradeCompletedEvent, bool) {
33767	return nil, false
33768}
33769
33770// AsClusterUpgradeDomainCompletedEvent is the BasicFabricEvent implementation for PartitionReconfiguredEvent.
33771func (pre PartitionReconfiguredEvent) AsClusterUpgradeDomainCompletedEvent() (*ClusterUpgradeDomainCompletedEvent, bool) {
33772	return nil, false
33773}
33774
33775// AsClusterUpgradeRollbackCompletedEvent is the BasicFabricEvent implementation for PartitionReconfiguredEvent.
33776func (pre PartitionReconfiguredEvent) AsClusterUpgradeRollbackCompletedEvent() (*ClusterUpgradeRollbackCompletedEvent, bool) {
33777	return nil, false
33778}
33779
33780// AsClusterUpgradeRollbackStartedEvent is the BasicFabricEvent implementation for PartitionReconfiguredEvent.
33781func (pre PartitionReconfiguredEvent) AsClusterUpgradeRollbackStartedEvent() (*ClusterUpgradeRollbackStartedEvent, bool) {
33782	return nil, false
33783}
33784
33785// AsClusterUpgradeStartedEvent is the BasicFabricEvent implementation for PartitionReconfiguredEvent.
33786func (pre PartitionReconfiguredEvent) AsClusterUpgradeStartedEvent() (*ClusterUpgradeStartedEvent, bool) {
33787	return nil, false
33788}
33789
33790// AsChaosStoppedEvent is the BasicFabricEvent implementation for PartitionReconfiguredEvent.
33791func (pre PartitionReconfiguredEvent) AsChaosStoppedEvent() (*ChaosStoppedEvent, bool) {
33792	return nil, false
33793}
33794
33795// AsChaosStartedEvent is the BasicFabricEvent implementation for PartitionReconfiguredEvent.
33796func (pre PartitionReconfiguredEvent) AsChaosStartedEvent() (*ChaosStartedEvent, bool) {
33797	return nil, false
33798}
33799
33800// AsChaosCodePackageRestartScheduledEvent is the BasicFabricEvent implementation for PartitionReconfiguredEvent.
33801func (pre PartitionReconfiguredEvent) AsChaosCodePackageRestartScheduledEvent() (*ChaosCodePackageRestartScheduledEvent, bool) {
33802	return nil, false
33803}
33804
33805// AsChaosReplicaRemovalScheduledEvent is the BasicFabricEvent implementation for PartitionReconfiguredEvent.
33806func (pre PartitionReconfiguredEvent) AsChaosReplicaRemovalScheduledEvent() (*ChaosReplicaRemovalScheduledEvent, bool) {
33807	return nil, false
33808}
33809
33810// AsChaosPartitionSecondaryMoveScheduledEvent is the BasicFabricEvent implementation for PartitionReconfiguredEvent.
33811func (pre PartitionReconfiguredEvent) AsChaosPartitionSecondaryMoveScheduledEvent() (*ChaosPartitionSecondaryMoveScheduledEvent, bool) {
33812	return nil, false
33813}
33814
33815// AsChaosPartitionPrimaryMoveScheduledEvent is the BasicFabricEvent implementation for PartitionReconfiguredEvent.
33816func (pre PartitionReconfiguredEvent) AsChaosPartitionPrimaryMoveScheduledEvent() (*ChaosPartitionPrimaryMoveScheduledEvent, bool) {
33817	return nil, false
33818}
33819
33820// AsChaosReplicaRestartScheduledEvent is the BasicFabricEvent implementation for PartitionReconfiguredEvent.
33821func (pre PartitionReconfiguredEvent) AsChaosReplicaRestartScheduledEvent() (*ChaosReplicaRestartScheduledEvent, bool) {
33822	return nil, false
33823}
33824
33825// AsChaosNodeRestartScheduledEvent is the BasicFabricEvent implementation for PartitionReconfiguredEvent.
33826func (pre PartitionReconfiguredEvent) AsChaosNodeRestartScheduledEvent() (*ChaosNodeRestartScheduledEvent, bool) {
33827	return nil, false
33828}
33829
33830// AsFabricEvent is the BasicFabricEvent implementation for PartitionReconfiguredEvent.
33831func (pre PartitionReconfiguredEvent) AsFabricEvent() (*FabricEvent, bool) {
33832	return nil, false
33833}
33834
33835// AsBasicFabricEvent is the BasicFabricEvent implementation for PartitionReconfiguredEvent.
33836func (pre PartitionReconfiguredEvent) AsBasicFabricEvent() (BasicFabricEvent, bool) {
33837	return &pre, true
33838}
33839
33840// PartitionRestartProgress information about a partition restart user-induced operation.
33841type PartitionRestartProgress struct {
33842	autorest.Response `json:"-"`
33843	// State - The state of the operation. Possible values include: 'OperationStateInvalid', 'OperationStateRunning', 'OperationStateRollingBack', 'OperationStateCompleted', 'OperationStateFaulted', 'OperationStateCancelled', 'OperationStateForceCancelled'
33844	State OperationState `json:"State,omitempty"`
33845	// RestartPartitionResult - Represents information about an operation in a terminal state (Completed or Faulted).
33846	RestartPartitionResult *RestartPartitionResult `json:"RestartPartitionResult,omitempty"`
33847}
33848
33849// BasicPartitionSafetyCheck represents a safety check for the service partition being performed by service fabric
33850// before continuing with operations.
33851type BasicPartitionSafetyCheck interface {
33852	AsEnsureAvailabilitySafetyCheck() (*EnsureAvailabilitySafetyCheck, bool)
33853	AsEnsurePartitionQuorumSafetyCheck() (*EnsurePartitionQuorumSafetyCheck, bool)
33854	AsWaitForInbuildReplicaSafetyCheck() (*WaitForInbuildReplicaSafetyCheck, bool)
33855	AsWaitForPrimaryPlacementSafetyCheck() (*WaitForPrimaryPlacementSafetyCheck, bool)
33856	AsWaitForPrimarySwapSafetyCheck() (*WaitForPrimarySwapSafetyCheck, bool)
33857	AsWaitForReconfigurationSafetyCheck() (*WaitForReconfigurationSafetyCheck, bool)
33858	AsPartitionSafetyCheck() (*PartitionSafetyCheck, bool)
33859}
33860
33861// PartitionSafetyCheck represents a safety check for the service partition being performed by service fabric
33862// before continuing with operations.
33863type PartitionSafetyCheck struct {
33864	// PartitionID - Id of the partition which is undergoing the safety check.
33865	PartitionID *uuid.UUID `json:"PartitionId,omitempty"`
33866	// Kind - Possible values include: 'KindSafetyCheck', 'KindPartitionSafetyCheck', 'KindEnsureAvailability', 'KindEnsurePartitionQuorum', 'KindEnsureSeedNodeQuorum', 'KindWaitForInbuildReplica', 'KindWaitForPrimaryPlacement', 'KindWaitForPrimarySwap', 'KindWaitForReconfiguration'
33867	Kind KindBasicSafetyCheck `json:"Kind,omitempty"`
33868}
33869
33870func unmarshalBasicPartitionSafetyCheck(body []byte) (BasicPartitionSafetyCheck, error) {
33871	var m map[string]interface{}
33872	err := json.Unmarshal(body, &m)
33873	if err != nil {
33874		return nil, err
33875	}
33876
33877	switch m["Kind"] {
33878	case string(KindEnsureAvailability):
33879		var easc EnsureAvailabilitySafetyCheck
33880		err := json.Unmarshal(body, &easc)
33881		return easc, err
33882	case string(KindEnsurePartitionQuorum):
33883		var epqsc EnsurePartitionQuorumSafetyCheck
33884		err := json.Unmarshal(body, &epqsc)
33885		return epqsc, err
33886	case string(KindWaitForInbuildReplica):
33887		var wfirsc WaitForInbuildReplicaSafetyCheck
33888		err := json.Unmarshal(body, &wfirsc)
33889		return wfirsc, err
33890	case string(KindWaitForPrimaryPlacement):
33891		var wfppsc WaitForPrimaryPlacementSafetyCheck
33892		err := json.Unmarshal(body, &wfppsc)
33893		return wfppsc, err
33894	case string(KindWaitForPrimarySwap):
33895		var wfpssc WaitForPrimarySwapSafetyCheck
33896		err := json.Unmarshal(body, &wfpssc)
33897		return wfpssc, err
33898	case string(KindWaitForReconfiguration):
33899		var wfrsc WaitForReconfigurationSafetyCheck
33900		err := json.Unmarshal(body, &wfrsc)
33901		return wfrsc, err
33902	default:
33903		var psc PartitionSafetyCheck
33904		err := json.Unmarshal(body, &psc)
33905		return psc, err
33906	}
33907}
33908func unmarshalBasicPartitionSafetyCheckArray(body []byte) ([]BasicPartitionSafetyCheck, error) {
33909	var rawMessages []*json.RawMessage
33910	err := json.Unmarshal(body, &rawMessages)
33911	if err != nil {
33912		return nil, err
33913	}
33914
33915	pscArray := make([]BasicPartitionSafetyCheck, len(rawMessages))
33916
33917	for index, rawMessage := range rawMessages {
33918		psc, err := unmarshalBasicPartitionSafetyCheck(*rawMessage)
33919		if err != nil {
33920			return nil, err
33921		}
33922		pscArray[index] = psc
33923	}
33924	return pscArray, nil
33925}
33926
33927// MarshalJSON is the custom marshaler for PartitionSafetyCheck.
33928func (psc PartitionSafetyCheck) MarshalJSON() ([]byte, error) {
33929	psc.Kind = KindPartitionSafetyCheck
33930	objectMap := make(map[string]interface{})
33931	if psc.PartitionID != nil {
33932		objectMap["PartitionId"] = psc.PartitionID
33933	}
33934	if psc.Kind != "" {
33935		objectMap["Kind"] = psc.Kind
33936	}
33937	return json.Marshal(objectMap)
33938}
33939
33940// AsPartitionSafetyCheck is the BasicSafetyCheck implementation for PartitionSafetyCheck.
33941func (psc PartitionSafetyCheck) AsPartitionSafetyCheck() (*PartitionSafetyCheck, bool) {
33942	return &psc, true
33943}
33944
33945// AsBasicPartitionSafetyCheck is the BasicSafetyCheck implementation for PartitionSafetyCheck.
33946func (psc PartitionSafetyCheck) AsBasicPartitionSafetyCheck() (BasicPartitionSafetyCheck, bool) {
33947	return &psc, true
33948}
33949
33950// AsEnsureAvailabilitySafetyCheck is the BasicSafetyCheck implementation for PartitionSafetyCheck.
33951func (psc PartitionSafetyCheck) AsEnsureAvailabilitySafetyCheck() (*EnsureAvailabilitySafetyCheck, bool) {
33952	return nil, false
33953}
33954
33955// AsEnsurePartitionQuorumSafetyCheck is the BasicSafetyCheck implementation for PartitionSafetyCheck.
33956func (psc PartitionSafetyCheck) AsEnsurePartitionQuorumSafetyCheck() (*EnsurePartitionQuorumSafetyCheck, bool) {
33957	return nil, false
33958}
33959
33960// AsSeedNodeSafetyCheck is the BasicSafetyCheck implementation for PartitionSafetyCheck.
33961func (psc PartitionSafetyCheck) AsSeedNodeSafetyCheck() (*SeedNodeSafetyCheck, bool) {
33962	return nil, false
33963}
33964
33965// AsWaitForInbuildReplicaSafetyCheck is the BasicSafetyCheck implementation for PartitionSafetyCheck.
33966func (psc PartitionSafetyCheck) AsWaitForInbuildReplicaSafetyCheck() (*WaitForInbuildReplicaSafetyCheck, bool) {
33967	return nil, false
33968}
33969
33970// AsWaitForPrimaryPlacementSafetyCheck is the BasicSafetyCheck implementation for PartitionSafetyCheck.
33971func (psc PartitionSafetyCheck) AsWaitForPrimaryPlacementSafetyCheck() (*WaitForPrimaryPlacementSafetyCheck, bool) {
33972	return nil, false
33973}
33974
33975// AsWaitForPrimarySwapSafetyCheck is the BasicSafetyCheck implementation for PartitionSafetyCheck.
33976func (psc PartitionSafetyCheck) AsWaitForPrimarySwapSafetyCheck() (*WaitForPrimarySwapSafetyCheck, bool) {
33977	return nil, false
33978}
33979
33980// AsWaitForReconfigurationSafetyCheck is the BasicSafetyCheck implementation for PartitionSafetyCheck.
33981func (psc PartitionSafetyCheck) AsWaitForReconfigurationSafetyCheck() (*WaitForReconfigurationSafetyCheck, bool) {
33982	return nil, false
33983}
33984
33985// AsSafetyCheck is the BasicSafetyCheck implementation for PartitionSafetyCheck.
33986func (psc PartitionSafetyCheck) AsSafetyCheck() (*SafetyCheck, bool) {
33987	return nil, false
33988}
33989
33990// AsBasicSafetyCheck is the BasicSafetyCheck implementation for PartitionSafetyCheck.
33991func (psc PartitionSafetyCheck) AsBasicSafetyCheck() (BasicSafetyCheck, bool) {
33992	return &psc, true
33993}
33994
33995// BasicPartitionSchemeDescription describes how the service is partitioned.
33996type BasicPartitionSchemeDescription interface {
33997	AsNamedPartitionSchemeDescription() (*NamedPartitionSchemeDescription, bool)
33998	AsSingletonPartitionSchemeDescription() (*SingletonPartitionSchemeDescription, bool)
33999	AsUniformInt64RangePartitionSchemeDescription() (*UniformInt64RangePartitionSchemeDescription, bool)
34000	AsPartitionSchemeDescription() (*PartitionSchemeDescription, bool)
34001}
34002
34003// PartitionSchemeDescription describes how the service is partitioned.
34004type PartitionSchemeDescription struct {
34005	// PartitionScheme - Possible values include: 'PartitionSchemePartitionSchemeDescription', 'PartitionSchemeNamed1', 'PartitionSchemeSingleton1', 'PartitionSchemeUniformInt64Range1'
34006	PartitionScheme PartitionSchemeBasicPartitionSchemeDescription `json:"PartitionScheme,omitempty"`
34007}
34008
34009func unmarshalBasicPartitionSchemeDescription(body []byte) (BasicPartitionSchemeDescription, error) {
34010	var m map[string]interface{}
34011	err := json.Unmarshal(body, &m)
34012	if err != nil {
34013		return nil, err
34014	}
34015
34016	switch m["PartitionScheme"] {
34017	case string(PartitionSchemeNamed1):
34018		var npsd NamedPartitionSchemeDescription
34019		err := json.Unmarshal(body, &npsd)
34020		return npsd, err
34021	case string(PartitionSchemeSingleton1):
34022		var spsd SingletonPartitionSchemeDescription
34023		err := json.Unmarshal(body, &spsd)
34024		return spsd, err
34025	case string(PartitionSchemeUniformInt64Range1):
34026		var ui6rpsd UniformInt64RangePartitionSchemeDescription
34027		err := json.Unmarshal(body, &ui6rpsd)
34028		return ui6rpsd, err
34029	default:
34030		var psd PartitionSchemeDescription
34031		err := json.Unmarshal(body, &psd)
34032		return psd, err
34033	}
34034}
34035func unmarshalBasicPartitionSchemeDescriptionArray(body []byte) ([]BasicPartitionSchemeDescription, error) {
34036	var rawMessages []*json.RawMessage
34037	err := json.Unmarshal(body, &rawMessages)
34038	if err != nil {
34039		return nil, err
34040	}
34041
34042	psdArray := make([]BasicPartitionSchemeDescription, len(rawMessages))
34043
34044	for index, rawMessage := range rawMessages {
34045		psd, err := unmarshalBasicPartitionSchemeDescription(*rawMessage)
34046		if err != nil {
34047			return nil, err
34048		}
34049		psdArray[index] = psd
34050	}
34051	return psdArray, nil
34052}
34053
34054// MarshalJSON is the custom marshaler for PartitionSchemeDescription.
34055func (psd PartitionSchemeDescription) MarshalJSON() ([]byte, error) {
34056	psd.PartitionScheme = PartitionSchemePartitionSchemeDescription
34057	objectMap := make(map[string]interface{})
34058	if psd.PartitionScheme != "" {
34059		objectMap["PartitionScheme"] = psd.PartitionScheme
34060	}
34061	return json.Marshal(objectMap)
34062}
34063
34064// AsNamedPartitionSchemeDescription is the BasicPartitionSchemeDescription implementation for PartitionSchemeDescription.
34065func (psd PartitionSchemeDescription) AsNamedPartitionSchemeDescription() (*NamedPartitionSchemeDescription, bool) {
34066	return nil, false
34067}
34068
34069// AsSingletonPartitionSchemeDescription is the BasicPartitionSchemeDescription implementation for PartitionSchemeDescription.
34070func (psd PartitionSchemeDescription) AsSingletonPartitionSchemeDescription() (*SingletonPartitionSchemeDescription, bool) {
34071	return nil, false
34072}
34073
34074// AsUniformInt64RangePartitionSchemeDescription is the BasicPartitionSchemeDescription implementation for PartitionSchemeDescription.
34075func (psd PartitionSchemeDescription) AsUniformInt64RangePartitionSchemeDescription() (*UniformInt64RangePartitionSchemeDescription, bool) {
34076	return nil, false
34077}
34078
34079// AsPartitionSchemeDescription is the BasicPartitionSchemeDescription implementation for PartitionSchemeDescription.
34080func (psd PartitionSchemeDescription) AsPartitionSchemeDescription() (*PartitionSchemeDescription, bool) {
34081	return &psd, true
34082}
34083
34084// AsBasicPartitionSchemeDescription is the BasicPartitionSchemeDescription implementation for PartitionSchemeDescription.
34085func (psd PartitionSchemeDescription) AsBasicPartitionSchemeDescription() (BasicPartitionSchemeDescription, bool) {
34086	return &psd, true
34087}
34088
34089// PartitionsHealthEvaluation represents health evaluation for the partitions of a service, containing
34090// health evaluations for each unhealthy partition that impacts current aggregated health state. Can be
34091// returned when evaluating service health and the aggregated health state is either Error or Warning.
34092type PartitionsHealthEvaluation struct {
34093	// MaxPercentUnhealthyPartitionsPerService - Maximum allowed percentage of unhealthy partitions per service from the ServiceTypeHealthPolicy.
34094	MaxPercentUnhealthyPartitionsPerService *int32 `json:"MaxPercentUnhealthyPartitionsPerService,omitempty"`
34095	// TotalCount - Total number of partitions of the service from the health store.
34096	TotalCount *int64 `json:"TotalCount,omitempty"`
34097	// UnhealthyEvaluations - List of unhealthy evaluations that led to the aggregated health state. Includes all the unhealthy PartitionHealthEvaluation that impacted the aggregated health.
34098	UnhealthyEvaluations *[]HealthEvaluationWrapper `json:"UnhealthyEvaluations,omitempty"`
34099	// 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'
34100	AggregatedHealthState HealthState `json:"AggregatedHealthState,omitempty"`
34101	// Description - Description of the health evaluation, which represents a summary of the evaluation process.
34102	Description *string `json:"Description,omitempty"`
34103	// 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'
34104	Kind Kind `json:"Kind,omitempty"`
34105}
34106
34107// MarshalJSON is the custom marshaler for PartitionsHealthEvaluation.
34108func (phe PartitionsHealthEvaluation) MarshalJSON() ([]byte, error) {
34109	phe.Kind = KindPartitions
34110	objectMap := make(map[string]interface{})
34111	if phe.MaxPercentUnhealthyPartitionsPerService != nil {
34112		objectMap["MaxPercentUnhealthyPartitionsPerService"] = phe.MaxPercentUnhealthyPartitionsPerService
34113	}
34114	if phe.TotalCount != nil {
34115		objectMap["TotalCount"] = phe.TotalCount
34116	}
34117	if phe.UnhealthyEvaluations != nil {
34118		objectMap["UnhealthyEvaluations"] = phe.UnhealthyEvaluations
34119	}
34120	if phe.AggregatedHealthState != "" {
34121		objectMap["AggregatedHealthState"] = phe.AggregatedHealthState
34122	}
34123	if phe.Description != nil {
34124		objectMap["Description"] = phe.Description
34125	}
34126	if phe.Kind != "" {
34127		objectMap["Kind"] = phe.Kind
34128	}
34129	return json.Marshal(objectMap)
34130}
34131
34132// AsApplicationHealthEvaluation is the BasicHealthEvaluation implementation for PartitionsHealthEvaluation.
34133func (phe PartitionsHealthEvaluation) AsApplicationHealthEvaluation() (*ApplicationHealthEvaluation, bool) {
34134	return nil, false
34135}
34136
34137// AsApplicationsHealthEvaluation is the BasicHealthEvaluation implementation for PartitionsHealthEvaluation.
34138func (phe PartitionsHealthEvaluation) AsApplicationsHealthEvaluation() (*ApplicationsHealthEvaluation, bool) {
34139	return nil, false
34140}
34141
34142// AsApplicationTypeApplicationsHealthEvaluation is the BasicHealthEvaluation implementation for PartitionsHealthEvaluation.
34143func (phe PartitionsHealthEvaluation) AsApplicationTypeApplicationsHealthEvaluation() (*ApplicationTypeApplicationsHealthEvaluation, bool) {
34144	return nil, false
34145}
34146
34147// AsDeltaNodesCheckHealthEvaluation is the BasicHealthEvaluation implementation for PartitionsHealthEvaluation.
34148func (phe PartitionsHealthEvaluation) AsDeltaNodesCheckHealthEvaluation() (*DeltaNodesCheckHealthEvaluation, bool) {
34149	return nil, false
34150}
34151
34152// AsDeployedApplicationHealthEvaluation is the BasicHealthEvaluation implementation for PartitionsHealthEvaluation.
34153func (phe PartitionsHealthEvaluation) AsDeployedApplicationHealthEvaluation() (*DeployedApplicationHealthEvaluation, bool) {
34154	return nil, false
34155}
34156
34157// AsDeployedApplicationsHealthEvaluation is the BasicHealthEvaluation implementation for PartitionsHealthEvaluation.
34158func (phe PartitionsHealthEvaluation) AsDeployedApplicationsHealthEvaluation() (*DeployedApplicationsHealthEvaluation, bool) {
34159	return nil, false
34160}
34161
34162// AsDeployedServicePackageHealthEvaluation is the BasicHealthEvaluation implementation for PartitionsHealthEvaluation.
34163func (phe PartitionsHealthEvaluation) AsDeployedServicePackageHealthEvaluation() (*DeployedServicePackageHealthEvaluation, bool) {
34164	return nil, false
34165}
34166
34167// AsDeployedServicePackagesHealthEvaluation is the BasicHealthEvaluation implementation for PartitionsHealthEvaluation.
34168func (phe PartitionsHealthEvaluation) AsDeployedServicePackagesHealthEvaluation() (*DeployedServicePackagesHealthEvaluation, bool) {
34169	return nil, false
34170}
34171
34172// AsEventHealthEvaluation is the BasicHealthEvaluation implementation for PartitionsHealthEvaluation.
34173func (phe PartitionsHealthEvaluation) AsEventHealthEvaluation() (*EventHealthEvaluation, bool) {
34174	return nil, false
34175}
34176
34177// AsNodeHealthEvaluation is the BasicHealthEvaluation implementation for PartitionsHealthEvaluation.
34178func (phe PartitionsHealthEvaluation) AsNodeHealthEvaluation() (*NodeHealthEvaluation, bool) {
34179	return nil, false
34180}
34181
34182// AsNodesHealthEvaluation is the BasicHealthEvaluation implementation for PartitionsHealthEvaluation.
34183func (phe PartitionsHealthEvaluation) AsNodesHealthEvaluation() (*NodesHealthEvaluation, bool) {
34184	return nil, false
34185}
34186
34187// AsPartitionHealthEvaluation is the BasicHealthEvaluation implementation for PartitionsHealthEvaluation.
34188func (phe PartitionsHealthEvaluation) AsPartitionHealthEvaluation() (*PartitionHealthEvaluation, bool) {
34189	return nil, false
34190}
34191
34192// AsPartitionsHealthEvaluation is the BasicHealthEvaluation implementation for PartitionsHealthEvaluation.
34193func (phe PartitionsHealthEvaluation) AsPartitionsHealthEvaluation() (*PartitionsHealthEvaluation, bool) {
34194	return &phe, true
34195}
34196
34197// AsReplicaHealthEvaluation is the BasicHealthEvaluation implementation for PartitionsHealthEvaluation.
34198func (phe PartitionsHealthEvaluation) AsReplicaHealthEvaluation() (*ReplicaHealthEvaluation, bool) {
34199	return nil, false
34200}
34201
34202// AsReplicasHealthEvaluation is the BasicHealthEvaluation implementation for PartitionsHealthEvaluation.
34203func (phe PartitionsHealthEvaluation) AsReplicasHealthEvaluation() (*ReplicasHealthEvaluation, bool) {
34204	return nil, false
34205}
34206
34207// AsServiceHealthEvaluation is the BasicHealthEvaluation implementation for PartitionsHealthEvaluation.
34208func (phe PartitionsHealthEvaluation) AsServiceHealthEvaluation() (*ServiceHealthEvaluation, bool) {
34209	return nil, false
34210}
34211
34212// AsServicesHealthEvaluation is the BasicHealthEvaluation implementation for PartitionsHealthEvaluation.
34213func (phe PartitionsHealthEvaluation) AsServicesHealthEvaluation() (*ServicesHealthEvaluation, bool) {
34214	return nil, false
34215}
34216
34217// AsSystemApplicationHealthEvaluation is the BasicHealthEvaluation implementation for PartitionsHealthEvaluation.
34218func (phe PartitionsHealthEvaluation) AsSystemApplicationHealthEvaluation() (*SystemApplicationHealthEvaluation, bool) {
34219	return nil, false
34220}
34221
34222// AsUpgradeDomainDeltaNodesCheckHealthEvaluation is the BasicHealthEvaluation implementation for PartitionsHealthEvaluation.
34223func (phe PartitionsHealthEvaluation) AsUpgradeDomainDeltaNodesCheckHealthEvaluation() (*UpgradeDomainDeltaNodesCheckHealthEvaluation, bool) {
34224	return nil, false
34225}
34226
34227// AsUpgradeDomainNodesHealthEvaluation is the BasicHealthEvaluation implementation for PartitionsHealthEvaluation.
34228func (phe PartitionsHealthEvaluation) AsUpgradeDomainNodesHealthEvaluation() (*UpgradeDomainNodesHealthEvaluation, bool) {
34229	return nil, false
34230}
34231
34232// AsHealthEvaluation is the BasicHealthEvaluation implementation for PartitionsHealthEvaluation.
34233func (phe PartitionsHealthEvaluation) AsHealthEvaluation() (*HealthEvaluation, bool) {
34234	return nil, false
34235}
34236
34237// AsBasicHealthEvaluation is the BasicHealthEvaluation implementation for PartitionsHealthEvaluation.
34238func (phe PartitionsHealthEvaluation) AsBasicHealthEvaluation() (BasicHealthEvaluation, bool) {
34239	return &phe, true
34240}
34241
34242// PrimaryReplicatorStatus provides statistics about the Service Fabric Replicator, when it is functioning
34243// in a Primary role.
34244type PrimaryReplicatorStatus struct {
34245	// ReplicationQueueStatus - Details about the replication queue on the primary replicator.
34246	ReplicationQueueStatus *ReplicatorQueueStatus `json:"ReplicationQueueStatus,omitempty"`
34247	// RemoteReplicators - The status of all the active and idle secondary replicators that the primary is aware of.
34248	RemoteReplicators *[]RemoteReplicatorStatus `json:"RemoteReplicators,omitempty"`
34249	// Kind - Possible values include: 'KindReplicatorStatus', 'KindPrimary', 'KindSecondaryReplicatorStatus', 'KindActiveSecondary', 'KindIdleSecondary'
34250	Kind KindBasicReplicatorStatus `json:"Kind,omitempty"`
34251}
34252
34253// MarshalJSON is the custom marshaler for PrimaryReplicatorStatus.
34254func (prs PrimaryReplicatorStatus) MarshalJSON() ([]byte, error) {
34255	prs.Kind = KindPrimary
34256	objectMap := make(map[string]interface{})
34257	if prs.ReplicationQueueStatus != nil {
34258		objectMap["ReplicationQueueStatus"] = prs.ReplicationQueueStatus
34259	}
34260	if prs.RemoteReplicators != nil {
34261		objectMap["RemoteReplicators"] = prs.RemoteReplicators
34262	}
34263	if prs.Kind != "" {
34264		objectMap["Kind"] = prs.Kind
34265	}
34266	return json.Marshal(objectMap)
34267}
34268
34269// AsPrimaryReplicatorStatus is the BasicReplicatorStatus implementation for PrimaryReplicatorStatus.
34270func (prs PrimaryReplicatorStatus) AsPrimaryReplicatorStatus() (*PrimaryReplicatorStatus, bool) {
34271	return &prs, true
34272}
34273
34274// AsSecondaryReplicatorStatus is the BasicReplicatorStatus implementation for PrimaryReplicatorStatus.
34275func (prs PrimaryReplicatorStatus) AsSecondaryReplicatorStatus() (*SecondaryReplicatorStatus, bool) {
34276	return nil, false
34277}
34278
34279// AsBasicSecondaryReplicatorStatus is the BasicReplicatorStatus implementation for PrimaryReplicatorStatus.
34280func (prs PrimaryReplicatorStatus) AsBasicSecondaryReplicatorStatus() (BasicSecondaryReplicatorStatus, bool) {
34281	return nil, false
34282}
34283
34284// AsSecondaryActiveReplicatorStatus is the BasicReplicatorStatus implementation for PrimaryReplicatorStatus.
34285func (prs PrimaryReplicatorStatus) AsSecondaryActiveReplicatorStatus() (*SecondaryActiveReplicatorStatus, bool) {
34286	return nil, false
34287}
34288
34289// AsSecondaryIdleReplicatorStatus is the BasicReplicatorStatus implementation for PrimaryReplicatorStatus.
34290func (prs PrimaryReplicatorStatus) AsSecondaryIdleReplicatorStatus() (*SecondaryIdleReplicatorStatus, bool) {
34291	return nil, false
34292}
34293
34294// AsReplicatorStatus is the BasicReplicatorStatus implementation for PrimaryReplicatorStatus.
34295func (prs PrimaryReplicatorStatus) AsReplicatorStatus() (*ReplicatorStatus, bool) {
34296	return nil, false
34297}
34298
34299// AsBasicReplicatorStatus is the BasicReplicatorStatus implementation for PrimaryReplicatorStatus.
34300func (prs PrimaryReplicatorStatus) AsBasicReplicatorStatus() (BasicReplicatorStatus, bool) {
34301	return &prs, true
34302}
34303
34304// Probe probes have a number of fields that you can use to control their behavior.
34305type Probe struct {
34306	// InitialDelaySeconds - The initial delay in seconds to start executing probe once codepackage has started.
34307	InitialDelaySeconds *int32 `json:"initialDelaySeconds,omitempty"`
34308	// PeriodSeconds - Periodic seconds to execute probe.
34309	PeriodSeconds *int32 `json:"periodSeconds,omitempty"`
34310	// TimeoutSeconds - Period after which probe is considered as failed if it hasn't completed successfully.
34311	TimeoutSeconds *int32 `json:"timeoutSeconds,omitempty"`
34312	// SuccessThreshold - The count of successful probe executions after which probe is considered success.
34313	SuccessThreshold *int32 `json:"successThreshold,omitempty"`
34314	// FailureThreshold - The count of failures after which probe is considered failed.
34315	FailureThreshold *int32 `json:"failureThreshold,omitempty"`
34316	// Exec - Exec command to run inside the container.
34317	Exec *ProbeExec `json:"exec,omitempty"`
34318	// HTTPGet - Http probe for the container.
34319	HTTPGet *ProbeHTTPGet `json:"httpGet,omitempty"`
34320	// TCPSocket - Tcp port to probe inside the container.
34321	TCPSocket *ProbeTCPSocket `json:"tcpSocket,omitempty"`
34322}
34323
34324// ProbeExec exec command to run inside the container.
34325type ProbeExec struct {
34326	// Command - Comma separated command to run inside the container for example "sh, -c, echo hello world".
34327	Command *string `json:"command,omitempty"`
34328}
34329
34330// ProbeHTTPGet http probe for the container.
34331type ProbeHTTPGet struct {
34332	// Port - Port to access for probe.
34333	Port *int32 `json:"port,omitempty"`
34334	// Path - Path to access on the HTTP request.
34335	Path *string `json:"path,omitempty"`
34336	// Host - Host IP to connect to.
34337	Host *string `json:"host,omitempty"`
34338	// HTTPHeaders - Headers to set in the request.
34339	HTTPHeaders *[]ProbeHTTPGetHeaders `json:"httpHeaders,omitempty"`
34340	// Scheme - Scheme for the http probe. Can be Http or Https. Possible values include: 'HTTP', 'HTTPS'
34341	Scheme Scheme `json:"scheme,omitempty"`
34342}
34343
34344// ProbeHTTPGetHeaders http headers.
34345type ProbeHTTPGetHeaders struct {
34346	// Name - The name of the header.
34347	Name *string `json:"name,omitempty"`
34348	// Value - The value of the header.
34349	Value *string `json:"value,omitempty"`
34350}
34351
34352// ProbeTCPSocket tcp port to probe inside the container.
34353type ProbeTCPSocket struct {
34354	// Port - Port to access for probe.
34355	Port *int32 `json:"port,omitempty"`
34356}
34357
34358// PropertyBatchDescriptionList describes a list of property batch operations to be executed. Either all or
34359// none of the operations will be committed.
34360type PropertyBatchDescriptionList struct {
34361	// Operations - A list of the property batch operations to be executed.
34362	Operations *[]BasicPropertyBatchOperation `json:"Operations,omitempty"`
34363}
34364
34365// UnmarshalJSON is the custom unmarshaler for PropertyBatchDescriptionList struct.
34366func (pbdl *PropertyBatchDescriptionList) UnmarshalJSON(body []byte) error {
34367	var m map[string]*json.RawMessage
34368	err := json.Unmarshal(body, &m)
34369	if err != nil {
34370		return err
34371	}
34372	for k, v := range m {
34373		switch k {
34374		case "Operations":
34375			if v != nil {
34376				operations, err := unmarshalBasicPropertyBatchOperationArray(*v)
34377				if err != nil {
34378					return err
34379				}
34380				pbdl.Operations = &operations
34381			}
34382		}
34383	}
34384
34385	return nil
34386}
34387
34388// BasicPropertyBatchInfo information about the results of a property batch.
34389type BasicPropertyBatchInfo interface {
34390	AsSuccessfulPropertyBatchInfo() (*SuccessfulPropertyBatchInfo, bool)
34391	AsFailedPropertyBatchInfo() (*FailedPropertyBatchInfo, bool)
34392	AsPropertyBatchInfo() (*PropertyBatchInfo, bool)
34393}
34394
34395// PropertyBatchInfo information about the results of a property batch.
34396type PropertyBatchInfo struct {
34397	autorest.Response `json:"-"`
34398	// Kind - Possible values include: 'KindPropertyBatchInfo', 'KindSuccessful', 'KindFailed'
34399	Kind KindBasicPropertyBatchInfo `json:"Kind,omitempty"`
34400}
34401
34402func unmarshalBasicPropertyBatchInfo(body []byte) (BasicPropertyBatchInfo, error) {
34403	var m map[string]interface{}
34404	err := json.Unmarshal(body, &m)
34405	if err != nil {
34406		return nil, err
34407	}
34408
34409	switch m["Kind"] {
34410	case string(KindSuccessful):
34411		var spbi SuccessfulPropertyBatchInfo
34412		err := json.Unmarshal(body, &spbi)
34413		return spbi, err
34414	case string(KindFailed):
34415		var fpbi FailedPropertyBatchInfo
34416		err := json.Unmarshal(body, &fpbi)
34417		return fpbi, err
34418	default:
34419		var pbi PropertyBatchInfo
34420		err := json.Unmarshal(body, &pbi)
34421		return pbi, err
34422	}
34423}
34424func unmarshalBasicPropertyBatchInfoArray(body []byte) ([]BasicPropertyBatchInfo, error) {
34425	var rawMessages []*json.RawMessage
34426	err := json.Unmarshal(body, &rawMessages)
34427	if err != nil {
34428		return nil, err
34429	}
34430
34431	pbiArray := make([]BasicPropertyBatchInfo, len(rawMessages))
34432
34433	for index, rawMessage := range rawMessages {
34434		pbi, err := unmarshalBasicPropertyBatchInfo(*rawMessage)
34435		if err != nil {
34436			return nil, err
34437		}
34438		pbiArray[index] = pbi
34439	}
34440	return pbiArray, nil
34441}
34442
34443// MarshalJSON is the custom marshaler for PropertyBatchInfo.
34444func (pbi PropertyBatchInfo) MarshalJSON() ([]byte, error) {
34445	pbi.Kind = KindPropertyBatchInfo
34446	objectMap := make(map[string]interface{})
34447	if pbi.Kind != "" {
34448		objectMap["Kind"] = pbi.Kind
34449	}
34450	return json.Marshal(objectMap)
34451}
34452
34453// AsSuccessfulPropertyBatchInfo is the BasicPropertyBatchInfo implementation for PropertyBatchInfo.
34454func (pbi PropertyBatchInfo) AsSuccessfulPropertyBatchInfo() (*SuccessfulPropertyBatchInfo, bool) {
34455	return nil, false
34456}
34457
34458// AsFailedPropertyBatchInfo is the BasicPropertyBatchInfo implementation for PropertyBatchInfo.
34459func (pbi PropertyBatchInfo) AsFailedPropertyBatchInfo() (*FailedPropertyBatchInfo, bool) {
34460	return nil, false
34461}
34462
34463// AsPropertyBatchInfo is the BasicPropertyBatchInfo implementation for PropertyBatchInfo.
34464func (pbi PropertyBatchInfo) AsPropertyBatchInfo() (*PropertyBatchInfo, bool) {
34465	return &pbi, true
34466}
34467
34468// AsBasicPropertyBatchInfo is the BasicPropertyBatchInfo implementation for PropertyBatchInfo.
34469func (pbi PropertyBatchInfo) AsBasicPropertyBatchInfo() (BasicPropertyBatchInfo, bool) {
34470	return &pbi, true
34471}
34472
34473// PropertyBatchInfoModel ...
34474type PropertyBatchInfoModel struct {
34475	autorest.Response `json:"-"`
34476	Value             BasicPropertyBatchInfo `json:"value,omitempty"`
34477}
34478
34479// UnmarshalJSON is the custom unmarshaler for PropertyBatchInfoModel struct.
34480func (pbim *PropertyBatchInfoModel) UnmarshalJSON(body []byte) error {
34481	pbi, err := unmarshalBasicPropertyBatchInfo(body)
34482	if err != nil {
34483		return err
34484	}
34485	pbim.Value = pbi
34486
34487	return nil
34488}
34489
34490// BasicPropertyBatchOperation represents the base type for property operations that can be put into a batch and
34491// submitted.
34492type BasicPropertyBatchOperation interface {
34493	AsCheckExistsPropertyBatchOperation() (*CheckExistsPropertyBatchOperation, bool)
34494	AsCheckSequencePropertyBatchOperation() (*CheckSequencePropertyBatchOperation, bool)
34495	AsCheckValuePropertyBatchOperation() (*CheckValuePropertyBatchOperation, bool)
34496	AsDeletePropertyBatchOperation() (*DeletePropertyBatchOperation, bool)
34497	AsGetPropertyBatchOperation() (*GetPropertyBatchOperation, bool)
34498	AsPutPropertyBatchOperation() (*PutPropertyBatchOperation, bool)
34499	AsPropertyBatchOperation() (*PropertyBatchOperation, bool)
34500}
34501
34502// PropertyBatchOperation represents the base type for property operations that can be put into a batch and
34503// submitted.
34504type PropertyBatchOperation struct {
34505	// PropertyName - The name of the Service Fabric property.
34506	PropertyName *string `json:"PropertyName,omitempty"`
34507	// Kind - Possible values include: 'KindPropertyBatchOperation', 'KindCheckExists', 'KindCheckSequence', 'KindCheckValue', 'KindDelete', 'KindGet', 'KindPut'
34508	Kind KindBasicPropertyBatchOperation `json:"Kind,omitempty"`
34509}
34510
34511func unmarshalBasicPropertyBatchOperation(body []byte) (BasicPropertyBatchOperation, error) {
34512	var m map[string]interface{}
34513	err := json.Unmarshal(body, &m)
34514	if err != nil {
34515		return nil, err
34516	}
34517
34518	switch m["Kind"] {
34519	case string(KindCheckExists):
34520		var cepbo CheckExistsPropertyBatchOperation
34521		err := json.Unmarshal(body, &cepbo)
34522		return cepbo, err
34523	case string(KindCheckSequence):
34524		var cspbo CheckSequencePropertyBatchOperation
34525		err := json.Unmarshal(body, &cspbo)
34526		return cspbo, err
34527	case string(KindCheckValue):
34528		var cvpbo CheckValuePropertyBatchOperation
34529		err := json.Unmarshal(body, &cvpbo)
34530		return cvpbo, err
34531	case string(KindDelete):
34532		var dpbo DeletePropertyBatchOperation
34533		err := json.Unmarshal(body, &dpbo)
34534		return dpbo, err
34535	case string(KindGet):
34536		var gpbo GetPropertyBatchOperation
34537		err := json.Unmarshal(body, &gpbo)
34538		return gpbo, err
34539	case string(KindPut):
34540		var ppbo PutPropertyBatchOperation
34541		err := json.Unmarshal(body, &ppbo)
34542		return ppbo, err
34543	default:
34544		var pbo PropertyBatchOperation
34545		err := json.Unmarshal(body, &pbo)
34546		return pbo, err
34547	}
34548}
34549func unmarshalBasicPropertyBatchOperationArray(body []byte) ([]BasicPropertyBatchOperation, error) {
34550	var rawMessages []*json.RawMessage
34551	err := json.Unmarshal(body, &rawMessages)
34552	if err != nil {
34553		return nil, err
34554	}
34555
34556	pboArray := make([]BasicPropertyBatchOperation, len(rawMessages))
34557
34558	for index, rawMessage := range rawMessages {
34559		pbo, err := unmarshalBasicPropertyBatchOperation(*rawMessage)
34560		if err != nil {
34561			return nil, err
34562		}
34563		pboArray[index] = pbo
34564	}
34565	return pboArray, nil
34566}
34567
34568// MarshalJSON is the custom marshaler for PropertyBatchOperation.
34569func (pbo PropertyBatchOperation) MarshalJSON() ([]byte, error) {
34570	pbo.Kind = KindPropertyBatchOperation
34571	objectMap := make(map[string]interface{})
34572	if pbo.PropertyName != nil {
34573		objectMap["PropertyName"] = pbo.PropertyName
34574	}
34575	if pbo.Kind != "" {
34576		objectMap["Kind"] = pbo.Kind
34577	}
34578	return json.Marshal(objectMap)
34579}
34580
34581// AsCheckExistsPropertyBatchOperation is the BasicPropertyBatchOperation implementation for PropertyBatchOperation.
34582func (pbo PropertyBatchOperation) AsCheckExistsPropertyBatchOperation() (*CheckExistsPropertyBatchOperation, bool) {
34583	return nil, false
34584}
34585
34586// AsCheckSequencePropertyBatchOperation is the BasicPropertyBatchOperation implementation for PropertyBatchOperation.
34587func (pbo PropertyBatchOperation) AsCheckSequencePropertyBatchOperation() (*CheckSequencePropertyBatchOperation, bool) {
34588	return nil, false
34589}
34590
34591// AsCheckValuePropertyBatchOperation is the BasicPropertyBatchOperation implementation for PropertyBatchOperation.
34592func (pbo PropertyBatchOperation) AsCheckValuePropertyBatchOperation() (*CheckValuePropertyBatchOperation, bool) {
34593	return nil, false
34594}
34595
34596// AsDeletePropertyBatchOperation is the BasicPropertyBatchOperation implementation for PropertyBatchOperation.
34597func (pbo PropertyBatchOperation) AsDeletePropertyBatchOperation() (*DeletePropertyBatchOperation, bool) {
34598	return nil, false
34599}
34600
34601// AsGetPropertyBatchOperation is the BasicPropertyBatchOperation implementation for PropertyBatchOperation.
34602func (pbo PropertyBatchOperation) AsGetPropertyBatchOperation() (*GetPropertyBatchOperation, bool) {
34603	return nil, false
34604}
34605
34606// AsPutPropertyBatchOperation is the BasicPropertyBatchOperation implementation for PropertyBatchOperation.
34607func (pbo PropertyBatchOperation) AsPutPropertyBatchOperation() (*PutPropertyBatchOperation, bool) {
34608	return nil, false
34609}
34610
34611// AsPropertyBatchOperation is the BasicPropertyBatchOperation implementation for PropertyBatchOperation.
34612func (pbo PropertyBatchOperation) AsPropertyBatchOperation() (*PropertyBatchOperation, bool) {
34613	return &pbo, true
34614}
34615
34616// AsBasicPropertyBatchOperation is the BasicPropertyBatchOperation implementation for PropertyBatchOperation.
34617func (pbo PropertyBatchOperation) AsBasicPropertyBatchOperation() (BasicPropertyBatchOperation, bool) {
34618	return &pbo, true
34619}
34620
34621// PropertyDescription description of a Service Fabric property.
34622type PropertyDescription struct {
34623	// PropertyName - The name of the Service Fabric property.
34624	PropertyName *string `json:"PropertyName,omitempty"`
34625	// CustomTypeID - The property's custom type ID. Using this property, the user is able to tag the type of the value of the property.
34626	CustomTypeID *string `json:"CustomTypeId,omitempty"`
34627	// Value - Describes a Service Fabric property value.
34628	Value BasicPropertyValue `json:"Value,omitempty"`
34629}
34630
34631// UnmarshalJSON is the custom unmarshaler for PropertyDescription struct.
34632func (pd *PropertyDescription) UnmarshalJSON(body []byte) error {
34633	var m map[string]*json.RawMessage
34634	err := json.Unmarshal(body, &m)
34635	if err != nil {
34636		return err
34637	}
34638	for k, v := range m {
34639		switch k {
34640		case "PropertyName":
34641			if v != nil {
34642				var propertyName string
34643				err = json.Unmarshal(*v, &propertyName)
34644				if err != nil {
34645					return err
34646				}
34647				pd.PropertyName = &propertyName
34648			}
34649		case "CustomTypeId":
34650			if v != nil {
34651				var customTypeID string
34652				err = json.Unmarshal(*v, &customTypeID)
34653				if err != nil {
34654					return err
34655				}
34656				pd.CustomTypeID = &customTypeID
34657			}
34658		case "Value":
34659			if v != nil {
34660				value, err := unmarshalBasicPropertyValue(*v)
34661				if err != nil {
34662					return err
34663				}
34664				pd.Value = value
34665			}
34666		}
34667	}
34668
34669	return nil
34670}
34671
34672// PropertyInfo information about a Service Fabric property.
34673type PropertyInfo struct {
34674	autorest.Response `json:"-"`
34675	// Name - The name of the Service Fabric property.
34676	Name *string `json:"Name,omitempty"`
34677	// Value - Describes a Service Fabric property value.
34678	Value BasicPropertyValue `json:"Value,omitempty"`
34679	// Metadata - The metadata associated with a property, including the property's name.
34680	Metadata *PropertyMetadata `json:"Metadata,omitempty"`
34681}
34682
34683// UnmarshalJSON is the custom unmarshaler for PropertyInfo struct.
34684func (pi *PropertyInfo) UnmarshalJSON(body []byte) error {
34685	var m map[string]*json.RawMessage
34686	err := json.Unmarshal(body, &m)
34687	if err != nil {
34688		return err
34689	}
34690	for k, v := range m {
34691		switch k {
34692		case "Name":
34693			if v != nil {
34694				var name string
34695				err = json.Unmarshal(*v, &name)
34696				if err != nil {
34697					return err
34698				}
34699				pi.Name = &name
34700			}
34701		case "Value":
34702			if v != nil {
34703				value, err := unmarshalBasicPropertyValue(*v)
34704				if err != nil {
34705					return err
34706				}
34707				pi.Value = value
34708			}
34709		case "Metadata":
34710			if v != nil {
34711				var metadata PropertyMetadata
34712				err = json.Unmarshal(*v, &metadata)
34713				if err != nil {
34714					return err
34715				}
34716				pi.Metadata = &metadata
34717			}
34718		}
34719	}
34720
34721	return nil
34722}
34723
34724// PropertyMetadata the metadata associated with a property, including the property's name.
34725type PropertyMetadata struct {
34726	// 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'
34727	TypeID PropertyValueKind `json:"TypeId,omitempty"`
34728	// CustomTypeID - The property's custom type ID.
34729	CustomTypeID *string `json:"CustomTypeId,omitempty"`
34730	// 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.
34731	Parent *string `json:"Parent,omitempty"`
34732	// SizeInBytes - The length of the serialized property value.
34733	SizeInBytes *int32 `json:"SizeInBytes,omitempty"`
34734	// LastModifiedUtcTimestamp - Represents when the Property was last modified. Only write operations will cause this field to be updated.
34735	LastModifiedUtcTimestamp *date.Time `json:"LastModifiedUtcTimestamp,omitempty"`
34736	// SequenceNumber - The version of the property. Every time a property is modified, its sequence number is increased.
34737	SequenceNumber *string `json:"SequenceNumber,omitempty"`
34738}
34739
34740// BasicPropertyValue describes a Service Fabric property value.
34741type BasicPropertyValue interface {
34742	AsBinaryPropertyValue() (*BinaryPropertyValue, bool)
34743	AsInt64PropertyValue() (*Int64PropertyValue, bool)
34744	AsDoublePropertyValue() (*DoublePropertyValue, bool)
34745	AsStringPropertyValue() (*StringPropertyValue, bool)
34746	AsGUIDPropertyValue() (*GUIDPropertyValue, bool)
34747	AsPropertyValue() (*PropertyValue, bool)
34748}
34749
34750// PropertyValue describes a Service Fabric property value.
34751type PropertyValue struct {
34752	// Kind - Possible values include: 'KindPropertyValue', 'KindBinary', 'KindInt64', 'KindDouble', 'KindString', 'KindGUID'
34753	Kind KindBasicPropertyValue `json:"Kind,omitempty"`
34754}
34755
34756func unmarshalBasicPropertyValue(body []byte) (BasicPropertyValue, error) {
34757	var m map[string]interface{}
34758	err := json.Unmarshal(body, &m)
34759	if err != nil {
34760		return nil, err
34761	}
34762
34763	switch m["Kind"] {
34764	case string(KindBinary):
34765		var bpv BinaryPropertyValue
34766		err := json.Unmarshal(body, &bpv)
34767		return bpv, err
34768	case string(KindInt64):
34769		var i6pv Int64PropertyValue
34770		err := json.Unmarshal(body, &i6pv)
34771		return i6pv, err
34772	case string(KindDouble):
34773		var dpv DoublePropertyValue
34774		err := json.Unmarshal(body, &dpv)
34775		return dpv, err
34776	case string(KindString):
34777		var spv StringPropertyValue
34778		err := json.Unmarshal(body, &spv)
34779		return spv, err
34780	case string(KindGUID):
34781		var gpv GUIDPropertyValue
34782		err := json.Unmarshal(body, &gpv)
34783		return gpv, err
34784	default:
34785		var pv PropertyValue
34786		err := json.Unmarshal(body, &pv)
34787		return pv, err
34788	}
34789}
34790func unmarshalBasicPropertyValueArray(body []byte) ([]BasicPropertyValue, error) {
34791	var rawMessages []*json.RawMessage
34792	err := json.Unmarshal(body, &rawMessages)
34793	if err != nil {
34794		return nil, err
34795	}
34796
34797	pvArray := make([]BasicPropertyValue, len(rawMessages))
34798
34799	for index, rawMessage := range rawMessages {
34800		pv, err := unmarshalBasicPropertyValue(*rawMessage)
34801		if err != nil {
34802			return nil, err
34803		}
34804		pvArray[index] = pv
34805	}
34806	return pvArray, nil
34807}
34808
34809// MarshalJSON is the custom marshaler for PropertyValue.
34810func (pv PropertyValue) MarshalJSON() ([]byte, error) {
34811	pv.Kind = KindPropertyValue
34812	objectMap := make(map[string]interface{})
34813	if pv.Kind != "" {
34814		objectMap["Kind"] = pv.Kind
34815	}
34816	return json.Marshal(objectMap)
34817}
34818
34819// AsBinaryPropertyValue is the BasicPropertyValue implementation for PropertyValue.
34820func (pv PropertyValue) AsBinaryPropertyValue() (*BinaryPropertyValue, bool) {
34821	return nil, false
34822}
34823
34824// AsInt64PropertyValue is the BasicPropertyValue implementation for PropertyValue.
34825func (pv PropertyValue) AsInt64PropertyValue() (*Int64PropertyValue, bool) {
34826	return nil, false
34827}
34828
34829// AsDoublePropertyValue is the BasicPropertyValue implementation for PropertyValue.
34830func (pv PropertyValue) AsDoublePropertyValue() (*DoublePropertyValue, bool) {
34831	return nil, false
34832}
34833
34834// AsStringPropertyValue is the BasicPropertyValue implementation for PropertyValue.
34835func (pv PropertyValue) AsStringPropertyValue() (*StringPropertyValue, bool) {
34836	return nil, false
34837}
34838
34839// AsGUIDPropertyValue is the BasicPropertyValue implementation for PropertyValue.
34840func (pv PropertyValue) AsGUIDPropertyValue() (*GUIDPropertyValue, bool) {
34841	return nil, false
34842}
34843
34844// AsPropertyValue is the BasicPropertyValue implementation for PropertyValue.
34845func (pv PropertyValue) AsPropertyValue() (*PropertyValue, bool) {
34846	return &pv, true
34847}
34848
34849// AsBasicPropertyValue is the BasicPropertyValue implementation for PropertyValue.
34850func (pv PropertyValue) AsBasicPropertyValue() (BasicPropertyValue, bool) {
34851	return &pv, true
34852}
34853
34854// ProvisionApplicationTypeDescription describes the operation to register or provision an application type
34855// using an application package uploaded to the Service Fabric image store.
34856type ProvisionApplicationTypeDescription struct {
34857	// ApplicationTypeBuildPath - The relative path for the application package in the image store specified during the prior upload operation.
34858	ApplicationTypeBuildPath *string `json:"ApplicationTypeBuildPath,omitempty"`
34859	// 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'
34860	ApplicationPackageCleanupPolicy ApplicationPackageCleanupPolicy `json:"ApplicationPackageCleanupPolicy,omitempty"`
34861	// 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.
34862	Async *bool `json:"Async,omitempty"`
34863	// Kind - Possible values include: 'KindProvisionApplicationTypeDescriptionBase', 'KindImageStorePath', 'KindExternalStore'
34864	Kind KindBasicProvisionApplicationTypeDescriptionBase `json:"Kind,omitempty"`
34865}
34866
34867// MarshalJSON is the custom marshaler for ProvisionApplicationTypeDescription.
34868func (patd ProvisionApplicationTypeDescription) MarshalJSON() ([]byte, error) {
34869	patd.Kind = KindImageStorePath
34870	objectMap := make(map[string]interface{})
34871	if patd.ApplicationTypeBuildPath != nil {
34872		objectMap["ApplicationTypeBuildPath"] = patd.ApplicationTypeBuildPath
34873	}
34874	if patd.ApplicationPackageCleanupPolicy != "" {
34875		objectMap["ApplicationPackageCleanupPolicy"] = patd.ApplicationPackageCleanupPolicy
34876	}
34877	if patd.Async != nil {
34878		objectMap["Async"] = patd.Async
34879	}
34880	if patd.Kind != "" {
34881		objectMap["Kind"] = patd.Kind
34882	}
34883	return json.Marshal(objectMap)
34884}
34885
34886// AsProvisionApplicationTypeDescription is the BasicProvisionApplicationTypeDescriptionBase implementation for ProvisionApplicationTypeDescription.
34887func (patd ProvisionApplicationTypeDescription) AsProvisionApplicationTypeDescription() (*ProvisionApplicationTypeDescription, bool) {
34888	return &patd, true
34889}
34890
34891// AsExternalStoreProvisionApplicationTypeDescription is the BasicProvisionApplicationTypeDescriptionBase implementation for ProvisionApplicationTypeDescription.
34892func (patd ProvisionApplicationTypeDescription) AsExternalStoreProvisionApplicationTypeDescription() (*ExternalStoreProvisionApplicationTypeDescription, bool) {
34893	return nil, false
34894}
34895
34896// AsProvisionApplicationTypeDescriptionBase is the BasicProvisionApplicationTypeDescriptionBase implementation for ProvisionApplicationTypeDescription.
34897func (patd ProvisionApplicationTypeDescription) AsProvisionApplicationTypeDescriptionBase() (*ProvisionApplicationTypeDescriptionBase, bool) {
34898	return nil, false
34899}
34900
34901// AsBasicProvisionApplicationTypeDescriptionBase is the BasicProvisionApplicationTypeDescriptionBase implementation for ProvisionApplicationTypeDescription.
34902func (patd ProvisionApplicationTypeDescription) AsBasicProvisionApplicationTypeDescriptionBase() (BasicProvisionApplicationTypeDescriptionBase, bool) {
34903	return &patd, true
34904}
34905
34906// BasicProvisionApplicationTypeDescriptionBase represents the type of registration or provision requested, and if the
34907// operation needs to be asynchronous or not. Supported types of provision operations are from either image store or
34908// external store.
34909type BasicProvisionApplicationTypeDescriptionBase interface {
34910	AsProvisionApplicationTypeDescription() (*ProvisionApplicationTypeDescription, bool)
34911	AsExternalStoreProvisionApplicationTypeDescription() (*ExternalStoreProvisionApplicationTypeDescription, bool)
34912	AsProvisionApplicationTypeDescriptionBase() (*ProvisionApplicationTypeDescriptionBase, bool)
34913}
34914
34915// ProvisionApplicationTypeDescriptionBase represents the type of registration or provision requested, and if
34916// the operation needs to be asynchronous or not. Supported types of provision operations are from either image
34917// store or external store.
34918type ProvisionApplicationTypeDescriptionBase struct {
34919	// 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.
34920	Async *bool `json:"Async,omitempty"`
34921	// Kind - Possible values include: 'KindProvisionApplicationTypeDescriptionBase', 'KindImageStorePath', 'KindExternalStore'
34922	Kind KindBasicProvisionApplicationTypeDescriptionBase `json:"Kind,omitempty"`
34923}
34924
34925func unmarshalBasicProvisionApplicationTypeDescriptionBase(body []byte) (BasicProvisionApplicationTypeDescriptionBase, error) {
34926	var m map[string]interface{}
34927	err := json.Unmarshal(body, &m)
34928	if err != nil {
34929		return nil, err
34930	}
34931
34932	switch m["Kind"] {
34933	case string(KindImageStorePath):
34934		var patd ProvisionApplicationTypeDescription
34935		err := json.Unmarshal(body, &patd)
34936		return patd, err
34937	case string(KindExternalStore):
34938		var espatd ExternalStoreProvisionApplicationTypeDescription
34939		err := json.Unmarshal(body, &espatd)
34940		return espatd, err
34941	default:
34942		var patdb ProvisionApplicationTypeDescriptionBase
34943		err := json.Unmarshal(body, &patdb)
34944		return patdb, err
34945	}
34946}
34947func unmarshalBasicProvisionApplicationTypeDescriptionBaseArray(body []byte) ([]BasicProvisionApplicationTypeDescriptionBase, error) {
34948	var rawMessages []*json.RawMessage
34949	err := json.Unmarshal(body, &rawMessages)
34950	if err != nil {
34951		return nil, err
34952	}
34953
34954	patdbArray := make([]BasicProvisionApplicationTypeDescriptionBase, len(rawMessages))
34955
34956	for index, rawMessage := range rawMessages {
34957		patdb, err := unmarshalBasicProvisionApplicationTypeDescriptionBase(*rawMessage)
34958		if err != nil {
34959			return nil, err
34960		}
34961		patdbArray[index] = patdb
34962	}
34963	return patdbArray, nil
34964}
34965
34966// MarshalJSON is the custom marshaler for ProvisionApplicationTypeDescriptionBase.
34967func (patdb ProvisionApplicationTypeDescriptionBase) MarshalJSON() ([]byte, error) {
34968	patdb.Kind = KindProvisionApplicationTypeDescriptionBase
34969	objectMap := make(map[string]interface{})
34970	if patdb.Async != nil {
34971		objectMap["Async"] = patdb.Async
34972	}
34973	if patdb.Kind != "" {
34974		objectMap["Kind"] = patdb.Kind
34975	}
34976	return json.Marshal(objectMap)
34977}
34978
34979// AsProvisionApplicationTypeDescription is the BasicProvisionApplicationTypeDescriptionBase implementation for ProvisionApplicationTypeDescriptionBase.
34980func (patdb ProvisionApplicationTypeDescriptionBase) AsProvisionApplicationTypeDescription() (*ProvisionApplicationTypeDescription, bool) {
34981	return nil, false
34982}
34983
34984// AsExternalStoreProvisionApplicationTypeDescription is the BasicProvisionApplicationTypeDescriptionBase implementation for ProvisionApplicationTypeDescriptionBase.
34985func (patdb ProvisionApplicationTypeDescriptionBase) AsExternalStoreProvisionApplicationTypeDescription() (*ExternalStoreProvisionApplicationTypeDescription, bool) {
34986	return nil, false
34987}
34988
34989// AsProvisionApplicationTypeDescriptionBase is the BasicProvisionApplicationTypeDescriptionBase implementation for ProvisionApplicationTypeDescriptionBase.
34990func (patdb ProvisionApplicationTypeDescriptionBase) AsProvisionApplicationTypeDescriptionBase() (*ProvisionApplicationTypeDescriptionBase, bool) {
34991	return &patdb, true
34992}
34993
34994// AsBasicProvisionApplicationTypeDescriptionBase is the BasicProvisionApplicationTypeDescriptionBase implementation for ProvisionApplicationTypeDescriptionBase.
34995func (patdb ProvisionApplicationTypeDescriptionBase) AsBasicProvisionApplicationTypeDescriptionBase() (BasicProvisionApplicationTypeDescriptionBase, bool) {
34996	return &patdb, true
34997}
34998
34999// ProvisionFabricDescription describes the parameters for provisioning a cluster.
35000type ProvisionFabricDescription struct {
35001	// CodeFilePath - The cluster code package file path.
35002	CodeFilePath *string `json:"CodeFilePath,omitempty"`
35003	// ClusterManifestFilePath - The cluster manifest file path.
35004	ClusterManifestFilePath *string `json:"ClusterManifestFilePath,omitempty"`
35005}
35006
35007// PutPropertyBatchOperation puts the specified property under the specified name.
35008// Note that if one PropertyBatchOperation in a PropertyBatch fails,
35009// the entire batch fails and cannot be committed in a transactional manner.
35010type PutPropertyBatchOperation struct {
35011	// Value - Describes a Service Fabric property value.
35012	Value BasicPropertyValue `json:"Value,omitempty"`
35013	// CustomTypeID - The property's custom type ID. Using this property, the user is able to tag the type of the value of the property.
35014	CustomTypeID *string `json:"CustomTypeId,omitempty"`
35015	// PropertyName - The name of the Service Fabric property.
35016	PropertyName *string `json:"PropertyName,omitempty"`
35017	// Kind - Possible values include: 'KindPropertyBatchOperation', 'KindCheckExists', 'KindCheckSequence', 'KindCheckValue', 'KindDelete', 'KindGet', 'KindPut'
35018	Kind KindBasicPropertyBatchOperation `json:"Kind,omitempty"`
35019}
35020
35021// MarshalJSON is the custom marshaler for PutPropertyBatchOperation.
35022func (ppbo PutPropertyBatchOperation) MarshalJSON() ([]byte, error) {
35023	ppbo.Kind = KindPut
35024	objectMap := make(map[string]interface{})
35025	objectMap["Value"] = ppbo.Value
35026	if ppbo.CustomTypeID != nil {
35027		objectMap["CustomTypeId"] = ppbo.CustomTypeID
35028	}
35029	if ppbo.PropertyName != nil {
35030		objectMap["PropertyName"] = ppbo.PropertyName
35031	}
35032	if ppbo.Kind != "" {
35033		objectMap["Kind"] = ppbo.Kind
35034	}
35035	return json.Marshal(objectMap)
35036}
35037
35038// AsCheckExistsPropertyBatchOperation is the BasicPropertyBatchOperation implementation for PutPropertyBatchOperation.
35039func (ppbo PutPropertyBatchOperation) AsCheckExistsPropertyBatchOperation() (*CheckExistsPropertyBatchOperation, bool) {
35040	return nil, false
35041}
35042
35043// AsCheckSequencePropertyBatchOperation is the BasicPropertyBatchOperation implementation for PutPropertyBatchOperation.
35044func (ppbo PutPropertyBatchOperation) AsCheckSequencePropertyBatchOperation() (*CheckSequencePropertyBatchOperation, bool) {
35045	return nil, false
35046}
35047
35048// AsCheckValuePropertyBatchOperation is the BasicPropertyBatchOperation implementation for PutPropertyBatchOperation.
35049func (ppbo PutPropertyBatchOperation) AsCheckValuePropertyBatchOperation() (*CheckValuePropertyBatchOperation, bool) {
35050	return nil, false
35051}
35052
35053// AsDeletePropertyBatchOperation is the BasicPropertyBatchOperation implementation for PutPropertyBatchOperation.
35054func (ppbo PutPropertyBatchOperation) AsDeletePropertyBatchOperation() (*DeletePropertyBatchOperation, bool) {
35055	return nil, false
35056}
35057
35058// AsGetPropertyBatchOperation is the BasicPropertyBatchOperation implementation for PutPropertyBatchOperation.
35059func (ppbo PutPropertyBatchOperation) AsGetPropertyBatchOperation() (*GetPropertyBatchOperation, bool) {
35060	return nil, false
35061}
35062
35063// AsPutPropertyBatchOperation is the BasicPropertyBatchOperation implementation for PutPropertyBatchOperation.
35064func (ppbo PutPropertyBatchOperation) AsPutPropertyBatchOperation() (*PutPropertyBatchOperation, bool) {
35065	return &ppbo, true
35066}
35067
35068// AsPropertyBatchOperation is the BasicPropertyBatchOperation implementation for PutPropertyBatchOperation.
35069func (ppbo PutPropertyBatchOperation) AsPropertyBatchOperation() (*PropertyBatchOperation, bool) {
35070	return nil, false
35071}
35072
35073// AsBasicPropertyBatchOperation is the BasicPropertyBatchOperation implementation for PutPropertyBatchOperation.
35074func (ppbo PutPropertyBatchOperation) AsBasicPropertyBatchOperation() (BasicPropertyBatchOperation, bool) {
35075	return &ppbo, true
35076}
35077
35078// UnmarshalJSON is the custom unmarshaler for PutPropertyBatchOperation struct.
35079func (ppbo *PutPropertyBatchOperation) UnmarshalJSON(body []byte) error {
35080	var m map[string]*json.RawMessage
35081	err := json.Unmarshal(body, &m)
35082	if err != nil {
35083		return err
35084	}
35085	for k, v := range m {
35086		switch k {
35087		case "Value":
35088			if v != nil {
35089				value, err := unmarshalBasicPropertyValue(*v)
35090				if err != nil {
35091					return err
35092				}
35093				ppbo.Value = value
35094			}
35095		case "CustomTypeId":
35096			if v != nil {
35097				var customTypeID string
35098				err = json.Unmarshal(*v, &customTypeID)
35099				if err != nil {
35100					return err
35101				}
35102				ppbo.CustomTypeID = &customTypeID
35103			}
35104		case "PropertyName":
35105			if v != nil {
35106				var propertyName string
35107				err = json.Unmarshal(*v, &propertyName)
35108				if err != nil {
35109					return err
35110				}
35111				ppbo.PropertyName = &propertyName
35112			}
35113		case "Kind":
35114			if v != nil {
35115				var kind KindBasicPropertyBatchOperation
35116				err = json.Unmarshal(*v, &kind)
35117				if err != nil {
35118					return err
35119				}
35120				ppbo.Kind = kind
35121			}
35122		}
35123	}
35124
35125	return nil
35126}
35127
35128// ReconfigurationInformation information about current reconfiguration like phase, type, previous
35129// configuration role of replica and reconfiguration start date time.
35130type ReconfigurationInformation struct {
35131	// PreviousConfigurationRole - Replica role before reconfiguration started. Possible values include: 'ReplicaRoleUnknown', 'ReplicaRoleNone', 'ReplicaRolePrimary', 'ReplicaRoleIdleSecondary', 'ReplicaRoleActiveSecondary'
35132	PreviousConfigurationRole ReplicaRole `json:"PreviousConfigurationRole,omitempty"`
35133	// 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'
35134	ReconfigurationPhase ReconfigurationPhase `json:"ReconfigurationPhase,omitempty"`
35135	// ReconfigurationType - Type of current ongoing reconfiguration. If no reconfiguration is taking place then this value will be "None". Possible values include: 'Unknown', 'SwapPrimary', 'Failover', 'Other'
35136	ReconfigurationType ReconfigurationType `json:"ReconfigurationType,omitempty"`
35137	// ReconfigurationStartTimeUtc - Start time (in UTC) of the ongoing reconfiguration. If no reconfiguration is taking place then this value will be zero date-time.
35138	ReconfigurationStartTimeUtc *date.Time `json:"ReconfigurationStartTimeUtc,omitempty"`
35139}
35140
35141// RegistryCredential credential information to connect to container registry.
35142type RegistryCredential struct {
35143	// RegistryUserName - The user name to connect to container registry.
35144	RegistryUserName *string `json:"RegistryUserName,omitempty"`
35145	// RegistryPassword - The password for supplied username to connect to container registry.
35146	RegistryPassword *string `json:"RegistryPassword,omitempty"`
35147	// PasswordEncrypted - Indicates that supplied container registry password is encrypted.
35148	PasswordEncrypted *bool `json:"PasswordEncrypted,omitempty"`
35149}
35150
35151// ReliableCollectionsRef specifying this parameter adds support for reliable collections
35152type ReliableCollectionsRef struct {
35153	// Name - Name of ReliableCollection resource. Right now it's not used and you can use any string.
35154	Name *string `json:"name,omitempty"`
35155	// 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.
35156	DoNotPersistState *bool `json:"doNotPersistState,omitempty"`
35157}
35158
35159// RemoteReplicatorAcknowledgementDetail provides various statistics of the acknowledgements that are being
35160// received from the remote replicator.
35161type RemoteReplicatorAcknowledgementDetail struct {
35162	// AverageReceiveDuration - Represents the average duration it takes for the remote replicator to receive an operation.
35163	AverageReceiveDuration *string `json:"AverageReceiveDuration,omitempty"`
35164	// AverageApplyDuration - Represents the average duration it takes for the remote replicator to apply an operation. This usually entails writing the operation to disk.
35165	AverageApplyDuration *string `json:"AverageApplyDuration,omitempty"`
35166	// NotReceivedCount - Represents the number of operations not yet received by a remote replicator.
35167	NotReceivedCount *string `json:"NotReceivedCount,omitempty"`
35168	// ReceivedAndNotAppliedCount - Represents the number of operations received and not yet applied by a remote replicator.
35169	ReceivedAndNotAppliedCount *string `json:"ReceivedAndNotAppliedCount,omitempty"`
35170}
35171
35172// RemoteReplicatorAcknowledgementStatus provides details about the remote replicators from the primary
35173// replicator's point of view.
35174type RemoteReplicatorAcknowledgementStatus struct {
35175	// ReplicationStreamAcknowledgementDetail - Details about the acknowledgements for operations that are part of the replication stream data.
35176	ReplicationStreamAcknowledgementDetail *RemoteReplicatorAcknowledgementDetail `json:"ReplicationStreamAcknowledgementDetail,omitempty"`
35177	// CopyStreamAcknowledgementDetail - Details about the acknowledgements for operations that are part of the copy stream data.
35178	CopyStreamAcknowledgementDetail *RemoteReplicatorAcknowledgementDetail `json:"CopyStreamAcknowledgementDetail,omitempty"`
35179}
35180
35181// RemoteReplicatorStatus represents the state of the secondary replicator from the primary replicator’s
35182// point of view.
35183type RemoteReplicatorStatus struct {
35184	// ReplicaID - Represents the replica ID of the remote secondary replicator.
35185	ReplicaID *string `json:"ReplicaId,omitempty"`
35186	// LastAcknowledgementProcessedTimeUtc - The last timestamp (in UTC) when an acknowledgement from the secondary replicator was processed on the primary.
35187	// UTC 0 represents an invalid value, indicating that no acknowledgement messages were ever processed.
35188	LastAcknowledgementProcessedTimeUtc *date.Time `json:"LastAcknowledgementProcessedTimeUtc,omitempty"`
35189	// LastReceivedReplicationSequenceNumber - The highest replication operation sequence number that the secondary has received from the primary.
35190	LastReceivedReplicationSequenceNumber *string `json:"LastReceivedReplicationSequenceNumber,omitempty"`
35191	// LastAppliedReplicationSequenceNumber - The highest replication operation sequence number that the secondary has applied to its state.
35192	LastAppliedReplicationSequenceNumber *string `json:"LastAppliedReplicationSequenceNumber,omitempty"`
35193	// IsInBuild - A value that indicates whether the secondary replica is in the process of being built.
35194	IsInBuild *bool `json:"IsInBuild,omitempty"`
35195	// LastReceivedCopySequenceNumber - The highest copy operation sequence number that the secondary has received from the primary.
35196	// A value of -1 implies that the secondary has received all copy operations.
35197	LastReceivedCopySequenceNumber *string `json:"LastReceivedCopySequenceNumber,omitempty"`
35198	// LastAppliedCopySequenceNumber - The highest copy operation sequence number that the secondary has applied to its state.
35199	// A value of -1 implies that the secondary has applied all copy operations and the copy process is complete.
35200	LastAppliedCopySequenceNumber *string `json:"LastAppliedCopySequenceNumber,omitempty"`
35201	// RemoteReplicatorAcknowledgementStatus - Represents the acknowledgment status for the remote secondary replicator.
35202	RemoteReplicatorAcknowledgementStatus *RemoteReplicatorAcknowledgementStatus `json:"RemoteReplicatorAcknowledgementStatus,omitempty"`
35203}
35204
35205// BasicRepairImpactDescriptionBase describes the expected impact of executing a repair task.
35206//
35207// This type supports the Service Fabric platform; it is not meant to be used directly from your code.
35208type BasicRepairImpactDescriptionBase interface {
35209	AsNodeRepairImpactDescription() (*NodeRepairImpactDescription, bool)
35210	AsRepairImpactDescriptionBase() (*RepairImpactDescriptionBase, bool)
35211}
35212
35213// RepairImpactDescriptionBase describes the expected impact of executing a repair task.
35214//
35215// This type supports the Service Fabric platform; it is not meant to be used directly from your code.
35216type RepairImpactDescriptionBase struct {
35217	// Kind - Possible values include: 'KindBasicRepairImpactDescriptionBaseKindRepairImpactDescriptionBase', 'KindBasicRepairImpactDescriptionBaseKindNode'
35218	Kind KindBasicRepairImpactDescriptionBase `json:"Kind,omitempty"`
35219}
35220
35221func unmarshalBasicRepairImpactDescriptionBase(body []byte) (BasicRepairImpactDescriptionBase, error) {
35222	var m map[string]interface{}
35223	err := json.Unmarshal(body, &m)
35224	if err != nil {
35225		return nil, err
35226	}
35227
35228	switch m["Kind"] {
35229	case string(KindBasicRepairImpactDescriptionBaseKindNode):
35230		var nrid NodeRepairImpactDescription
35231		err := json.Unmarshal(body, &nrid)
35232		return nrid, err
35233	default:
35234		var ridb RepairImpactDescriptionBase
35235		err := json.Unmarshal(body, &ridb)
35236		return ridb, err
35237	}
35238}
35239func unmarshalBasicRepairImpactDescriptionBaseArray(body []byte) ([]BasicRepairImpactDescriptionBase, error) {
35240	var rawMessages []*json.RawMessage
35241	err := json.Unmarshal(body, &rawMessages)
35242	if err != nil {
35243		return nil, err
35244	}
35245
35246	ridbArray := make([]BasicRepairImpactDescriptionBase, len(rawMessages))
35247
35248	for index, rawMessage := range rawMessages {
35249		ridb, err := unmarshalBasicRepairImpactDescriptionBase(*rawMessage)
35250		if err != nil {
35251			return nil, err
35252		}
35253		ridbArray[index] = ridb
35254	}
35255	return ridbArray, nil
35256}
35257
35258// MarshalJSON is the custom marshaler for RepairImpactDescriptionBase.
35259func (ridb RepairImpactDescriptionBase) MarshalJSON() ([]byte, error) {
35260	ridb.Kind = KindBasicRepairImpactDescriptionBaseKindRepairImpactDescriptionBase
35261	objectMap := make(map[string]interface{})
35262	if ridb.Kind != "" {
35263		objectMap["Kind"] = ridb.Kind
35264	}
35265	return json.Marshal(objectMap)
35266}
35267
35268// AsNodeRepairImpactDescription is the BasicRepairImpactDescriptionBase implementation for RepairImpactDescriptionBase.
35269func (ridb RepairImpactDescriptionBase) AsNodeRepairImpactDescription() (*NodeRepairImpactDescription, bool) {
35270	return nil, false
35271}
35272
35273// AsRepairImpactDescriptionBase is the BasicRepairImpactDescriptionBase implementation for RepairImpactDescriptionBase.
35274func (ridb RepairImpactDescriptionBase) AsRepairImpactDescriptionBase() (*RepairImpactDescriptionBase, bool) {
35275	return &ridb, true
35276}
35277
35278// AsBasicRepairImpactDescriptionBase is the BasicRepairImpactDescriptionBase implementation for RepairImpactDescriptionBase.
35279func (ridb RepairImpactDescriptionBase) AsBasicRepairImpactDescriptionBase() (BasicRepairImpactDescriptionBase, bool) {
35280	return &ridb, true
35281}
35282
35283// BasicRepairTargetDescriptionBase describes the entities targeted by a repair action.
35284//
35285// This type supports the Service Fabric platform; it is not meant to be used directly from your code.
35286type BasicRepairTargetDescriptionBase interface {
35287	AsNodeRepairTargetDescription() (*NodeRepairTargetDescription, bool)
35288	AsRepairTargetDescriptionBase() (*RepairTargetDescriptionBase, bool)
35289}
35290
35291// RepairTargetDescriptionBase describes the entities targeted by a repair action.
35292//
35293// This type supports the Service Fabric platform; it is not meant to be used directly from your code.
35294type RepairTargetDescriptionBase struct {
35295	// Kind - Possible values include: 'KindBasicRepairTargetDescriptionBaseKindRepairTargetDescriptionBase', 'KindBasicRepairTargetDescriptionBaseKindNode'
35296	Kind KindBasicRepairTargetDescriptionBase `json:"Kind,omitempty"`
35297}
35298
35299func unmarshalBasicRepairTargetDescriptionBase(body []byte) (BasicRepairTargetDescriptionBase, error) {
35300	var m map[string]interface{}
35301	err := json.Unmarshal(body, &m)
35302	if err != nil {
35303		return nil, err
35304	}
35305
35306	switch m["Kind"] {
35307	case string(KindBasicRepairTargetDescriptionBaseKindNode):
35308		var nrtd NodeRepairTargetDescription
35309		err := json.Unmarshal(body, &nrtd)
35310		return nrtd, err
35311	default:
35312		var rtdb RepairTargetDescriptionBase
35313		err := json.Unmarshal(body, &rtdb)
35314		return rtdb, err
35315	}
35316}
35317func unmarshalBasicRepairTargetDescriptionBaseArray(body []byte) ([]BasicRepairTargetDescriptionBase, error) {
35318	var rawMessages []*json.RawMessage
35319	err := json.Unmarshal(body, &rawMessages)
35320	if err != nil {
35321		return nil, err
35322	}
35323
35324	rtdbArray := make([]BasicRepairTargetDescriptionBase, len(rawMessages))
35325
35326	for index, rawMessage := range rawMessages {
35327		rtdb, err := unmarshalBasicRepairTargetDescriptionBase(*rawMessage)
35328		if err != nil {
35329			return nil, err
35330		}
35331		rtdbArray[index] = rtdb
35332	}
35333	return rtdbArray, nil
35334}
35335
35336// MarshalJSON is the custom marshaler for RepairTargetDescriptionBase.
35337func (rtdb RepairTargetDescriptionBase) MarshalJSON() ([]byte, error) {
35338	rtdb.Kind = KindBasicRepairTargetDescriptionBaseKindRepairTargetDescriptionBase
35339	objectMap := make(map[string]interface{})
35340	if rtdb.Kind != "" {
35341		objectMap["Kind"] = rtdb.Kind
35342	}
35343	return json.Marshal(objectMap)
35344}
35345
35346// AsNodeRepairTargetDescription is the BasicRepairTargetDescriptionBase implementation for RepairTargetDescriptionBase.
35347func (rtdb RepairTargetDescriptionBase) AsNodeRepairTargetDescription() (*NodeRepairTargetDescription, bool) {
35348	return nil, false
35349}
35350
35351// AsRepairTargetDescriptionBase is the BasicRepairTargetDescriptionBase implementation for RepairTargetDescriptionBase.
35352func (rtdb RepairTargetDescriptionBase) AsRepairTargetDescriptionBase() (*RepairTargetDescriptionBase, bool) {
35353	return &rtdb, true
35354}
35355
35356// AsBasicRepairTargetDescriptionBase is the BasicRepairTargetDescriptionBase implementation for RepairTargetDescriptionBase.
35357func (rtdb RepairTargetDescriptionBase) AsBasicRepairTargetDescriptionBase() (BasicRepairTargetDescriptionBase, bool) {
35358	return &rtdb, true
35359}
35360
35361// RepairTask represents a repair task, which includes information about what kind of repair was requested,
35362// what its progress is, and what its final result was.
35363//
35364// This type supports the Service Fabric platform; it is not meant to be used directly from your code.
35365type RepairTask struct {
35366	// TaskID - The ID of the repair task.
35367	TaskID *string `json:"TaskId,omitempty"`
35368	// Version - The version of the repair task.
35369	// When creating a new repair task, the version must be set to zero.  When updating a repair task,
35370	// the version is used for optimistic concurrency checks.  If the version is
35371	// set to zero, the update will not check for write conflicts.  If the version is set to a non-zero value, then the
35372	// update will only succeed if the actual current version of the repair task matches this value.
35373	Version *string `json:"Version,omitempty"`
35374	// Description - A description of the purpose of the repair task, or other informational details.
35375	// May be set when the repair task is created, and is immutable once set.
35376	Description *string `json:"Description,omitempty"`
35377	// 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'
35378	State State `json:"State,omitempty"`
35379	// Flags - A bitwise-OR of the following values, which gives additional details about the status of the repair task.
35380	// - 1 - Cancellation of the repair has been requested
35381	// - 2 - Abort of the repair has been requested
35382	// - 4 - Approval of the repair was forced via client request
35383	Flags *int32 `json:"Flags,omitempty"`
35384	// Action - The requested repair action. Must be specified when the repair task is created, and is immutable once set.
35385	Action *string `json:"Action,omitempty"`
35386	// 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.
35387	// May be set when the repair task is created, and is immutable once set.
35388	Target BasicRepairTargetDescriptionBase `json:"Target,omitempty"`
35389	// Executor - The name of the repair executor. Must be specified in Claimed and later states, and is immutable once set.
35390	Executor *string `json:"Executor,omitempty"`
35391	// ExecutorData - A data string that the repair executor can use to store its internal state.
35392	ExecutorData *string `json:"ExecutorData,omitempty"`
35393	// 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.
35394	// Impact must be specified by the repair executor when transitioning to the Preparing state, and is immutable once set.
35395	Impact BasicRepairImpactDescriptionBase `json:"Impact,omitempty"`
35396	// 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'
35397	ResultStatus ResultStatus `json:"ResultStatus,omitempty"`
35398	// ResultCode - A numeric value providing additional details about the result of the repair task execution.
35399	// May be specified in the Restoring and later states, and is immutable once set.
35400	ResultCode *int32 `json:"ResultCode,omitempty"`
35401	// ResultDetails - A string providing additional details about the result of the repair task execution.
35402	// May be specified in the Restoring and later states, and is immutable once set.
35403	ResultDetails *string `json:"ResultDetails,omitempty"`
35404	// History - An object that contains timestamps of the repair task's state transitions.
35405	// These timestamps are updated by the system, and cannot be directly modified.
35406	History *RepairTaskHistory `json:"History,omitempty"`
35407	// 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'
35408	PreparingHealthCheckState RepairTaskHealthCheckState `json:"PreparingHealthCheckState,omitempty"`
35409	// 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'
35410	RestoringHealthCheckState RepairTaskHealthCheckState `json:"RestoringHealthCheckState,omitempty"`
35411	// PerformPreparingHealthCheck - A value to determine if health checks will be performed when the repair task enters the Preparing state.
35412	PerformPreparingHealthCheck *bool `json:"PerformPreparingHealthCheck,omitempty"`
35413	// PerformRestoringHealthCheck - A value to determine if health checks will be performed when the repair task enters the Restoring state.
35414	PerformRestoringHealthCheck *bool `json:"PerformRestoringHealthCheck,omitempty"`
35415}
35416
35417// UnmarshalJSON is the custom unmarshaler for RepairTask struct.
35418func (rt *RepairTask) UnmarshalJSON(body []byte) error {
35419	var m map[string]*json.RawMessage
35420	err := json.Unmarshal(body, &m)
35421	if err != nil {
35422		return err
35423	}
35424	for k, v := range m {
35425		switch k {
35426		case "TaskId":
35427			if v != nil {
35428				var taskID string
35429				err = json.Unmarshal(*v, &taskID)
35430				if err != nil {
35431					return err
35432				}
35433				rt.TaskID = &taskID
35434			}
35435		case "Version":
35436			if v != nil {
35437				var version string
35438				err = json.Unmarshal(*v, &version)
35439				if err != nil {
35440					return err
35441				}
35442				rt.Version = &version
35443			}
35444		case "Description":
35445			if v != nil {
35446				var description string
35447				err = json.Unmarshal(*v, &description)
35448				if err != nil {
35449					return err
35450				}
35451				rt.Description = &description
35452			}
35453		case "State":
35454			if v != nil {
35455				var state State
35456				err = json.Unmarshal(*v, &state)
35457				if err != nil {
35458					return err
35459				}
35460				rt.State = state
35461			}
35462		case "Flags":
35463			if v != nil {
35464				var flags int32
35465				err = json.Unmarshal(*v, &flags)
35466				if err != nil {
35467					return err
35468				}
35469				rt.Flags = &flags
35470			}
35471		case "Action":
35472			if v != nil {
35473				var action string
35474				err = json.Unmarshal(*v, &action)
35475				if err != nil {
35476					return err
35477				}
35478				rt.Action = &action
35479			}
35480		case "Target":
35481			if v != nil {
35482				target, err := unmarshalBasicRepairTargetDescriptionBase(*v)
35483				if err != nil {
35484					return err
35485				}
35486				rt.Target = target
35487			}
35488		case "Executor":
35489			if v != nil {
35490				var executor string
35491				err = json.Unmarshal(*v, &executor)
35492				if err != nil {
35493					return err
35494				}
35495				rt.Executor = &executor
35496			}
35497		case "ExecutorData":
35498			if v != nil {
35499				var executorData string
35500				err = json.Unmarshal(*v, &executorData)
35501				if err != nil {
35502					return err
35503				}
35504				rt.ExecutorData = &executorData
35505			}
35506		case "Impact":
35507			if v != nil {
35508				impact, err := unmarshalBasicRepairImpactDescriptionBase(*v)
35509				if err != nil {
35510					return err
35511				}
35512				rt.Impact = impact
35513			}
35514		case "ResultStatus":
35515			if v != nil {
35516				var resultStatus ResultStatus
35517				err = json.Unmarshal(*v, &resultStatus)
35518				if err != nil {
35519					return err
35520				}
35521				rt.ResultStatus = resultStatus
35522			}
35523		case "ResultCode":
35524			if v != nil {
35525				var resultCode int32
35526				err = json.Unmarshal(*v, &resultCode)
35527				if err != nil {
35528					return err
35529				}
35530				rt.ResultCode = &resultCode
35531			}
35532		case "ResultDetails":
35533			if v != nil {
35534				var resultDetails string
35535				err = json.Unmarshal(*v, &resultDetails)
35536				if err != nil {
35537					return err
35538				}
35539				rt.ResultDetails = &resultDetails
35540			}
35541		case "History":
35542			if v != nil {
35543				var history RepairTaskHistory
35544				err = json.Unmarshal(*v, &history)
35545				if err != nil {
35546					return err
35547				}
35548				rt.History = &history
35549			}
35550		case "PreparingHealthCheckState":
35551			if v != nil {
35552				var preparingHealthCheckState RepairTaskHealthCheckState
35553				err = json.Unmarshal(*v, &preparingHealthCheckState)
35554				if err != nil {
35555					return err
35556				}
35557				rt.PreparingHealthCheckState = preparingHealthCheckState
35558			}
35559		case "RestoringHealthCheckState":
35560			if v != nil {
35561				var restoringHealthCheckState RepairTaskHealthCheckState
35562				err = json.Unmarshal(*v, &restoringHealthCheckState)
35563				if err != nil {
35564					return err
35565				}
35566				rt.RestoringHealthCheckState = restoringHealthCheckState
35567			}
35568		case "PerformPreparingHealthCheck":
35569			if v != nil {
35570				var performPreparingHealthCheck bool
35571				err = json.Unmarshal(*v, &performPreparingHealthCheck)
35572				if err != nil {
35573					return err
35574				}
35575				rt.PerformPreparingHealthCheck = &performPreparingHealthCheck
35576			}
35577		case "PerformRestoringHealthCheck":
35578			if v != nil {
35579				var performRestoringHealthCheck bool
35580				err = json.Unmarshal(*v, &performRestoringHealthCheck)
35581				if err != nil {
35582					return err
35583				}
35584				rt.PerformRestoringHealthCheck = &performRestoringHealthCheck
35585			}
35586		}
35587	}
35588
35589	return nil
35590}
35591
35592// RepairTaskApproveDescription describes a request for forced approval of a repair task.
35593//
35594// This type supports the Service Fabric platform; it is not meant to be used directly from your code.
35595type RepairTaskApproveDescription struct {
35596	// TaskID - The ID of the repair task.
35597	TaskID *string `json:"TaskId,omitempty"`
35598	// 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.
35599	Version *string `json:"Version,omitempty"`
35600}
35601
35602// RepairTaskCancelDescription describes a request to cancel a repair task.
35603//
35604// This type supports the Service Fabric platform; it is not meant to be used directly from your code.
35605type RepairTaskCancelDescription struct {
35606	// TaskID - The ID of the repair task.
35607	TaskID *string `json:"TaskId,omitempty"`
35608	// 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.
35609	Version *string `json:"Version,omitempty"`
35610	// 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.
35611	RequestAbort *bool `json:"RequestAbort,omitempty"`
35612}
35613
35614// RepairTaskDeleteDescription describes a request to delete a completed repair task.
35615//
35616// This type supports the Service Fabric platform; it is not meant to be used directly from your code.
35617type RepairTaskDeleteDescription struct {
35618	// TaskID - The ID of the completed repair task to be deleted.
35619	TaskID *string `json:"TaskId,omitempty"`
35620	// 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.
35621	Version *string `json:"Version,omitempty"`
35622}
35623
35624// RepairTaskHistory a record of the times when the repair task entered each state.
35625//
35626// This type supports the Service Fabric platform; it is not meant to be used directly from your code.
35627type RepairTaskHistory struct {
35628	// CreatedUtcTimestamp - The time when the repair task entered the Created state.
35629	CreatedUtcTimestamp *date.Time `json:"CreatedUtcTimestamp,omitempty"`
35630	// ClaimedUtcTimestamp - The time when the repair task entered the Claimed state.
35631	ClaimedUtcTimestamp *date.Time `json:"ClaimedUtcTimestamp,omitempty"`
35632	// PreparingUtcTimestamp - The time when the repair task entered the Preparing state.
35633	PreparingUtcTimestamp *date.Time `json:"PreparingUtcTimestamp,omitempty"`
35634	// ApprovedUtcTimestamp - The time when the repair task entered the Approved state
35635	ApprovedUtcTimestamp *date.Time `json:"ApprovedUtcTimestamp,omitempty"`
35636	// ExecutingUtcTimestamp - The time when the repair task entered the Executing state
35637	ExecutingUtcTimestamp *date.Time `json:"ExecutingUtcTimestamp,omitempty"`
35638	// RestoringUtcTimestamp - The time when the repair task entered the Restoring state
35639	RestoringUtcTimestamp *date.Time `json:"RestoringUtcTimestamp,omitempty"`
35640	// CompletedUtcTimestamp - The time when the repair task entered the Completed state
35641	CompletedUtcTimestamp *date.Time `json:"CompletedUtcTimestamp,omitempty"`
35642	// PreparingHealthCheckStartUtcTimestamp - The time when the repair task started the health check in the Preparing state.
35643	PreparingHealthCheckStartUtcTimestamp *date.Time `json:"PreparingHealthCheckStartUtcTimestamp,omitempty"`
35644	// PreparingHealthCheckEndUtcTimestamp - The time when the repair task completed the health check in the Preparing state.
35645	PreparingHealthCheckEndUtcTimestamp *date.Time `json:"PreparingHealthCheckEndUtcTimestamp,omitempty"`
35646	// RestoringHealthCheckStartUtcTimestamp - The time when the repair task started the health check in the Restoring state.
35647	RestoringHealthCheckStartUtcTimestamp *date.Time `json:"RestoringHealthCheckStartUtcTimestamp,omitempty"`
35648	// RestoringHealthCheckEndUtcTimestamp - The time when the repair task completed the health check in the Restoring state.
35649	RestoringHealthCheckEndUtcTimestamp *date.Time `json:"RestoringHealthCheckEndUtcTimestamp,omitempty"`
35650}
35651
35652// RepairTaskUpdateHealthPolicyDescription describes a request to update the health policy of a repair
35653// task.
35654//
35655// This type supports the Service Fabric platform; it is not meant to be used directly from your code.
35656type RepairTaskUpdateHealthPolicyDescription struct {
35657	// TaskID - The ID of the repair task to be updated.
35658	TaskID *string `json:"TaskId,omitempty"`
35659	// 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.
35660	Version *string `json:"Version,omitempty"`
35661	// 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.
35662	PerformPreparingHealthCheck *bool `json:"PerformPreparingHealthCheck,omitempty"`
35663	// 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.
35664	PerformRestoringHealthCheck *bool `json:"PerformRestoringHealthCheck,omitempty"`
35665}
35666
35667// RepairTaskUpdateInfo describes the result of an operation that created or updated a repair task.
35668//
35669// This type supports the Service Fabric platform; it is not meant to be used directly from your code.
35670type RepairTaskUpdateInfo struct {
35671	autorest.Response `json:"-"`
35672	// Version - The new version of the repair task.
35673	Version *string `json:"Version,omitempty"`
35674}
35675
35676// BasicReplicaEvent represents the base for all Replica Events.
35677type BasicReplicaEvent interface {
35678	AsStatefulReplicaNewHealthReportEvent() (*StatefulReplicaNewHealthReportEvent, bool)
35679	AsStatefulReplicaHealthReportExpiredEvent() (*StatefulReplicaHealthReportExpiredEvent, bool)
35680	AsStatelessReplicaNewHealthReportEvent() (*StatelessReplicaNewHealthReportEvent, bool)
35681	AsStatelessReplicaHealthReportExpiredEvent() (*StatelessReplicaHealthReportExpiredEvent, bool)
35682	AsChaosReplicaRemovalScheduledEvent() (*ChaosReplicaRemovalScheduledEvent, bool)
35683	AsChaosReplicaRestartScheduledEvent() (*ChaosReplicaRestartScheduledEvent, bool)
35684	AsReplicaEvent() (*ReplicaEvent, bool)
35685}
35686
35687// ReplicaEvent represents the base for all Replica Events.
35688type ReplicaEvent struct {
35689	// 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.
35690	PartitionID *uuid.UUID `json:"PartitionId,omitempty"`
35691	// 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.
35692	ReplicaID *int64 `json:"ReplicaId,omitempty"`
35693	// EventInstanceID - The identifier for the FabricEvent instance.
35694	EventInstanceID *uuid.UUID `json:"EventInstanceId,omitempty"`
35695	// Category - The category of event.
35696	Category *string `json:"Category,omitempty"`
35697	// TimeStamp - The time event was logged.
35698	TimeStamp *date.Time `json:"TimeStamp,omitempty"`
35699	// HasCorrelatedEvents - Shows there is existing related events available.
35700	HasCorrelatedEvents *bool `json:"HasCorrelatedEvents,omitempty"`
35701	// 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'
35702	Kind KindBasicFabricEvent `json:"Kind,omitempty"`
35703}
35704
35705func unmarshalBasicReplicaEvent(body []byte) (BasicReplicaEvent, error) {
35706	var m map[string]interface{}
35707	err := json.Unmarshal(body, &m)
35708	if err != nil {
35709		return nil, err
35710	}
35711
35712	switch m["Kind"] {
35713	case string(KindStatefulReplicaNewHealthReport):
35714		var srnhre StatefulReplicaNewHealthReportEvent
35715		err := json.Unmarshal(body, &srnhre)
35716		return srnhre, err
35717	case string(KindStatefulReplicaHealthReportExpired):
35718		var srhree StatefulReplicaHealthReportExpiredEvent
35719		err := json.Unmarshal(body, &srhree)
35720		return srhree, err
35721	case string(KindStatelessReplicaNewHealthReport):
35722		var srnhre StatelessReplicaNewHealthReportEvent
35723		err := json.Unmarshal(body, &srnhre)
35724		return srnhre, err
35725	case string(KindStatelessReplicaHealthReportExpired):
35726		var srhree StatelessReplicaHealthReportExpiredEvent
35727		err := json.Unmarshal(body, &srhree)
35728		return srhree, err
35729	case string(KindChaosReplicaRemovalScheduled):
35730		var crrse ChaosReplicaRemovalScheduledEvent
35731		err := json.Unmarshal(body, &crrse)
35732		return crrse, err
35733	case string(KindChaosReplicaRestartScheduled):
35734		var crrse ChaosReplicaRestartScheduledEvent
35735		err := json.Unmarshal(body, &crrse)
35736		return crrse, err
35737	default:
35738		var re ReplicaEvent
35739		err := json.Unmarshal(body, &re)
35740		return re, err
35741	}
35742}
35743func unmarshalBasicReplicaEventArray(body []byte) ([]BasicReplicaEvent, error) {
35744	var rawMessages []*json.RawMessage
35745	err := json.Unmarshal(body, &rawMessages)
35746	if err != nil {
35747		return nil, err
35748	}
35749
35750	reArray := make([]BasicReplicaEvent, len(rawMessages))
35751
35752	for index, rawMessage := range rawMessages {
35753		re, err := unmarshalBasicReplicaEvent(*rawMessage)
35754		if err != nil {
35755			return nil, err
35756		}
35757		reArray[index] = re
35758	}
35759	return reArray, nil
35760}
35761
35762// MarshalJSON is the custom marshaler for ReplicaEvent.
35763func (re ReplicaEvent) MarshalJSON() ([]byte, error) {
35764	re.Kind = KindReplicaEvent
35765	objectMap := make(map[string]interface{})
35766	if re.PartitionID != nil {
35767		objectMap["PartitionId"] = re.PartitionID
35768	}
35769	if re.ReplicaID != nil {
35770		objectMap["ReplicaId"] = re.ReplicaID
35771	}
35772	if re.EventInstanceID != nil {
35773		objectMap["EventInstanceId"] = re.EventInstanceID
35774	}
35775	if re.Category != nil {
35776		objectMap["Category"] = re.Category
35777	}
35778	if re.TimeStamp != nil {
35779		objectMap["TimeStamp"] = re.TimeStamp
35780	}
35781	if re.HasCorrelatedEvents != nil {
35782		objectMap["HasCorrelatedEvents"] = re.HasCorrelatedEvents
35783	}
35784	if re.Kind != "" {
35785		objectMap["Kind"] = re.Kind
35786	}
35787	return json.Marshal(objectMap)
35788}
35789
35790// AsApplicationEvent is the BasicFabricEvent implementation for ReplicaEvent.
35791func (re ReplicaEvent) AsApplicationEvent() (*ApplicationEvent, bool) {
35792	return nil, false
35793}
35794
35795// AsBasicApplicationEvent is the BasicFabricEvent implementation for ReplicaEvent.
35796func (re ReplicaEvent) AsBasicApplicationEvent() (BasicApplicationEvent, bool) {
35797	return nil, false
35798}
35799
35800// AsClusterEvent is the BasicFabricEvent implementation for ReplicaEvent.
35801func (re ReplicaEvent) AsClusterEvent() (*ClusterEvent, bool) {
35802	return nil, false
35803}
35804
35805// AsBasicClusterEvent is the BasicFabricEvent implementation for ReplicaEvent.
35806func (re ReplicaEvent) AsBasicClusterEvent() (BasicClusterEvent, bool) {
35807	return nil, false
35808}
35809
35810// AsContainerInstanceEvent is the BasicFabricEvent implementation for ReplicaEvent.
35811func (re ReplicaEvent) AsContainerInstanceEvent() (*ContainerInstanceEvent, bool) {
35812	return nil, false
35813}
35814
35815// AsNodeEvent is the BasicFabricEvent implementation for ReplicaEvent.
35816func (re ReplicaEvent) AsNodeEvent() (*NodeEvent, bool) {
35817	return nil, false
35818}
35819
35820// AsBasicNodeEvent is the BasicFabricEvent implementation for ReplicaEvent.
35821func (re ReplicaEvent) AsBasicNodeEvent() (BasicNodeEvent, bool) {
35822	return nil, false
35823}
35824
35825// AsPartitionAnalysisEvent is the BasicFabricEvent implementation for ReplicaEvent.
35826func (re ReplicaEvent) AsPartitionAnalysisEvent() (*PartitionAnalysisEvent, bool) {
35827	return nil, false
35828}
35829
35830// AsBasicPartitionAnalysisEvent is the BasicFabricEvent implementation for ReplicaEvent.
35831func (re ReplicaEvent) AsBasicPartitionAnalysisEvent() (BasicPartitionAnalysisEvent, bool) {
35832	return nil, false
35833}
35834
35835// AsPartitionEvent is the BasicFabricEvent implementation for ReplicaEvent.
35836func (re ReplicaEvent) AsPartitionEvent() (*PartitionEvent, bool) {
35837	return nil, false
35838}
35839
35840// AsBasicPartitionEvent is the BasicFabricEvent implementation for ReplicaEvent.
35841func (re ReplicaEvent) AsBasicPartitionEvent() (BasicPartitionEvent, bool) {
35842	return nil, false
35843}
35844
35845// AsReplicaEvent is the BasicFabricEvent implementation for ReplicaEvent.
35846func (re ReplicaEvent) AsReplicaEvent() (*ReplicaEvent, bool) {
35847	return &re, true
35848}
35849
35850// AsBasicReplicaEvent is the BasicFabricEvent implementation for ReplicaEvent.
35851func (re ReplicaEvent) AsBasicReplicaEvent() (BasicReplicaEvent, bool) {
35852	return &re, true
35853}
35854
35855// AsServiceEvent is the BasicFabricEvent implementation for ReplicaEvent.
35856func (re ReplicaEvent) AsServiceEvent() (*ServiceEvent, bool) {
35857	return nil, false
35858}
35859
35860// AsBasicServiceEvent is the BasicFabricEvent implementation for ReplicaEvent.
35861func (re ReplicaEvent) AsBasicServiceEvent() (BasicServiceEvent, bool) {
35862	return nil, false
35863}
35864
35865// AsApplicationCreatedEvent is the BasicFabricEvent implementation for ReplicaEvent.
35866func (re ReplicaEvent) AsApplicationCreatedEvent() (*ApplicationCreatedEvent, bool) {
35867	return nil, false
35868}
35869
35870// AsApplicationDeletedEvent is the BasicFabricEvent implementation for ReplicaEvent.
35871func (re ReplicaEvent) AsApplicationDeletedEvent() (*ApplicationDeletedEvent, bool) {
35872	return nil, false
35873}
35874
35875// AsApplicationNewHealthReportEvent is the BasicFabricEvent implementation for ReplicaEvent.
35876func (re ReplicaEvent) AsApplicationNewHealthReportEvent() (*ApplicationNewHealthReportEvent, bool) {
35877	return nil, false
35878}
35879
35880// AsApplicationHealthReportExpiredEvent is the BasicFabricEvent implementation for ReplicaEvent.
35881func (re ReplicaEvent) AsApplicationHealthReportExpiredEvent() (*ApplicationHealthReportExpiredEvent, bool) {
35882	return nil, false
35883}
35884
35885// AsApplicationUpgradeCompletedEvent is the BasicFabricEvent implementation for ReplicaEvent.
35886func (re ReplicaEvent) AsApplicationUpgradeCompletedEvent() (*ApplicationUpgradeCompletedEvent, bool) {
35887	return nil, false
35888}
35889
35890// AsApplicationUpgradeDomainCompletedEvent is the BasicFabricEvent implementation for ReplicaEvent.
35891func (re ReplicaEvent) AsApplicationUpgradeDomainCompletedEvent() (*ApplicationUpgradeDomainCompletedEvent, bool) {
35892	return nil, false
35893}
35894
35895// AsApplicationUpgradeRollbackCompletedEvent is the BasicFabricEvent implementation for ReplicaEvent.
35896func (re ReplicaEvent) AsApplicationUpgradeRollbackCompletedEvent() (*ApplicationUpgradeRollbackCompletedEvent, bool) {
35897	return nil, false
35898}
35899
35900// AsApplicationUpgradeRollbackStartedEvent is the BasicFabricEvent implementation for ReplicaEvent.
35901func (re ReplicaEvent) AsApplicationUpgradeRollbackStartedEvent() (*ApplicationUpgradeRollbackStartedEvent, bool) {
35902	return nil, false
35903}
35904
35905// AsApplicationUpgradeStartedEvent is the BasicFabricEvent implementation for ReplicaEvent.
35906func (re ReplicaEvent) AsApplicationUpgradeStartedEvent() (*ApplicationUpgradeStartedEvent, bool) {
35907	return nil, false
35908}
35909
35910// AsDeployedApplicationNewHealthReportEvent is the BasicFabricEvent implementation for ReplicaEvent.
35911func (re ReplicaEvent) AsDeployedApplicationNewHealthReportEvent() (*DeployedApplicationNewHealthReportEvent, bool) {
35912	return nil, false
35913}
35914
35915// AsDeployedApplicationHealthReportExpiredEvent is the BasicFabricEvent implementation for ReplicaEvent.
35916func (re ReplicaEvent) AsDeployedApplicationHealthReportExpiredEvent() (*DeployedApplicationHealthReportExpiredEvent, bool) {
35917	return nil, false
35918}
35919
35920// AsApplicationProcessExitedEvent is the BasicFabricEvent implementation for ReplicaEvent.
35921func (re ReplicaEvent) AsApplicationProcessExitedEvent() (*ApplicationProcessExitedEvent, bool) {
35922	return nil, false
35923}
35924
35925// AsApplicationContainerInstanceExitedEvent is the BasicFabricEvent implementation for ReplicaEvent.
35926func (re ReplicaEvent) AsApplicationContainerInstanceExitedEvent() (*ApplicationContainerInstanceExitedEvent, bool) {
35927	return nil, false
35928}
35929
35930// AsNodeAbortedEvent is the BasicFabricEvent implementation for ReplicaEvent.
35931func (re ReplicaEvent) AsNodeAbortedEvent() (*NodeAbortedEvent, bool) {
35932	return nil, false
35933}
35934
35935// AsNodeAddedToClusterEvent is the BasicFabricEvent implementation for ReplicaEvent.
35936func (re ReplicaEvent) AsNodeAddedToClusterEvent() (*NodeAddedToClusterEvent, bool) {
35937	return nil, false
35938}
35939
35940// AsNodeClosedEvent is the BasicFabricEvent implementation for ReplicaEvent.
35941func (re ReplicaEvent) AsNodeClosedEvent() (*NodeClosedEvent, bool) {
35942	return nil, false
35943}
35944
35945// AsNodeDeactivateCompletedEvent is the BasicFabricEvent implementation for ReplicaEvent.
35946func (re ReplicaEvent) AsNodeDeactivateCompletedEvent() (*NodeDeactivateCompletedEvent, bool) {
35947	return nil, false
35948}
35949
35950// AsNodeDeactivateStartedEvent is the BasicFabricEvent implementation for ReplicaEvent.
35951func (re ReplicaEvent) AsNodeDeactivateStartedEvent() (*NodeDeactivateStartedEvent, bool) {
35952	return nil, false
35953}
35954
35955// AsNodeDownEvent is the BasicFabricEvent implementation for ReplicaEvent.
35956func (re ReplicaEvent) AsNodeDownEvent() (*NodeDownEvent, bool) {
35957	return nil, false
35958}
35959
35960// AsNodeNewHealthReportEvent is the BasicFabricEvent implementation for ReplicaEvent.
35961func (re ReplicaEvent) AsNodeNewHealthReportEvent() (*NodeNewHealthReportEvent, bool) {
35962	return nil, false
35963}
35964
35965// AsNodeHealthReportExpiredEvent is the BasicFabricEvent implementation for ReplicaEvent.
35966func (re ReplicaEvent) AsNodeHealthReportExpiredEvent() (*NodeHealthReportExpiredEvent, bool) {
35967	return nil, false
35968}
35969
35970// AsNodeOpenSucceededEvent is the BasicFabricEvent implementation for ReplicaEvent.
35971func (re ReplicaEvent) AsNodeOpenSucceededEvent() (*NodeOpenSucceededEvent, bool) {
35972	return nil, false
35973}
35974
35975// AsNodeOpenFailedEvent is the BasicFabricEvent implementation for ReplicaEvent.
35976func (re ReplicaEvent) AsNodeOpenFailedEvent() (*NodeOpenFailedEvent, bool) {
35977	return nil, false
35978}
35979
35980// AsNodeRemovedFromClusterEvent is the BasicFabricEvent implementation for ReplicaEvent.
35981func (re ReplicaEvent) AsNodeRemovedFromClusterEvent() (*NodeRemovedFromClusterEvent, bool) {
35982	return nil, false
35983}
35984
35985// AsNodeUpEvent is the BasicFabricEvent implementation for ReplicaEvent.
35986func (re ReplicaEvent) AsNodeUpEvent() (*NodeUpEvent, bool) {
35987	return nil, false
35988}
35989
35990// AsPartitionNewHealthReportEvent is the BasicFabricEvent implementation for ReplicaEvent.
35991func (re ReplicaEvent) AsPartitionNewHealthReportEvent() (*PartitionNewHealthReportEvent, bool) {
35992	return nil, false
35993}
35994
35995// AsPartitionHealthReportExpiredEvent is the BasicFabricEvent implementation for ReplicaEvent.
35996func (re ReplicaEvent) AsPartitionHealthReportExpiredEvent() (*PartitionHealthReportExpiredEvent, bool) {
35997	return nil, false
35998}
35999
36000// AsPartitionReconfiguredEvent is the BasicFabricEvent implementation for ReplicaEvent.
36001func (re ReplicaEvent) AsPartitionReconfiguredEvent() (*PartitionReconfiguredEvent, bool) {
36002	return nil, false
36003}
36004
36005// AsPartitionPrimaryMoveAnalysisEvent is the BasicFabricEvent implementation for ReplicaEvent.
36006func (re ReplicaEvent) AsPartitionPrimaryMoveAnalysisEvent() (*PartitionPrimaryMoveAnalysisEvent, bool) {
36007	return nil, false
36008}
36009
36010// AsServiceCreatedEvent is the BasicFabricEvent implementation for ReplicaEvent.
36011func (re ReplicaEvent) AsServiceCreatedEvent() (*ServiceCreatedEvent, bool) {
36012	return nil, false
36013}
36014
36015// AsServiceDeletedEvent is the BasicFabricEvent implementation for ReplicaEvent.
36016func (re ReplicaEvent) AsServiceDeletedEvent() (*ServiceDeletedEvent, bool) {
36017	return nil, false
36018}
36019
36020// AsServiceNewHealthReportEvent is the BasicFabricEvent implementation for ReplicaEvent.
36021func (re ReplicaEvent) AsServiceNewHealthReportEvent() (*ServiceNewHealthReportEvent, bool) {
36022	return nil, false
36023}
36024
36025// AsServiceHealthReportExpiredEvent is the BasicFabricEvent implementation for ReplicaEvent.
36026func (re ReplicaEvent) AsServiceHealthReportExpiredEvent() (*ServiceHealthReportExpiredEvent, bool) {
36027	return nil, false
36028}
36029
36030// AsDeployedServicePackageNewHealthReportEvent is the BasicFabricEvent implementation for ReplicaEvent.
36031func (re ReplicaEvent) AsDeployedServicePackageNewHealthReportEvent() (*DeployedServicePackageNewHealthReportEvent, bool) {
36032	return nil, false
36033}
36034
36035// AsDeployedServicePackageHealthReportExpiredEvent is the BasicFabricEvent implementation for ReplicaEvent.
36036func (re ReplicaEvent) AsDeployedServicePackageHealthReportExpiredEvent() (*DeployedServicePackageHealthReportExpiredEvent, bool) {
36037	return nil, false
36038}
36039
36040// AsStatefulReplicaNewHealthReportEvent is the BasicFabricEvent implementation for ReplicaEvent.
36041func (re ReplicaEvent) AsStatefulReplicaNewHealthReportEvent() (*StatefulReplicaNewHealthReportEvent, bool) {
36042	return nil, false
36043}
36044
36045// AsStatefulReplicaHealthReportExpiredEvent is the BasicFabricEvent implementation for ReplicaEvent.
36046func (re ReplicaEvent) AsStatefulReplicaHealthReportExpiredEvent() (*StatefulReplicaHealthReportExpiredEvent, bool) {
36047	return nil, false
36048}
36049
36050// AsStatelessReplicaNewHealthReportEvent is the BasicFabricEvent implementation for ReplicaEvent.
36051func (re ReplicaEvent) AsStatelessReplicaNewHealthReportEvent() (*StatelessReplicaNewHealthReportEvent, bool) {
36052	return nil, false
36053}
36054
36055// AsStatelessReplicaHealthReportExpiredEvent is the BasicFabricEvent implementation for ReplicaEvent.
36056func (re ReplicaEvent) AsStatelessReplicaHealthReportExpiredEvent() (*StatelessReplicaHealthReportExpiredEvent, bool) {
36057	return nil, false
36058}
36059
36060// AsClusterNewHealthReportEvent is the BasicFabricEvent implementation for ReplicaEvent.
36061func (re ReplicaEvent) AsClusterNewHealthReportEvent() (*ClusterNewHealthReportEvent, bool) {
36062	return nil, false
36063}
36064
36065// AsClusterHealthReportExpiredEvent is the BasicFabricEvent implementation for ReplicaEvent.
36066func (re ReplicaEvent) AsClusterHealthReportExpiredEvent() (*ClusterHealthReportExpiredEvent, bool) {
36067	return nil, false
36068}
36069
36070// AsClusterUpgradeCompletedEvent is the BasicFabricEvent implementation for ReplicaEvent.
36071func (re ReplicaEvent) AsClusterUpgradeCompletedEvent() (*ClusterUpgradeCompletedEvent, bool) {
36072	return nil, false
36073}
36074
36075// AsClusterUpgradeDomainCompletedEvent is the BasicFabricEvent implementation for ReplicaEvent.
36076func (re ReplicaEvent) AsClusterUpgradeDomainCompletedEvent() (*ClusterUpgradeDomainCompletedEvent, bool) {
36077	return nil, false
36078}
36079
36080// AsClusterUpgradeRollbackCompletedEvent is the BasicFabricEvent implementation for ReplicaEvent.
36081func (re ReplicaEvent) AsClusterUpgradeRollbackCompletedEvent() (*ClusterUpgradeRollbackCompletedEvent, bool) {
36082	return nil, false
36083}
36084
36085// AsClusterUpgradeRollbackStartedEvent is the BasicFabricEvent implementation for ReplicaEvent.
36086func (re ReplicaEvent) AsClusterUpgradeRollbackStartedEvent() (*ClusterUpgradeRollbackStartedEvent, bool) {
36087	return nil, false
36088}
36089
36090// AsClusterUpgradeStartedEvent is the BasicFabricEvent implementation for ReplicaEvent.
36091func (re ReplicaEvent) AsClusterUpgradeStartedEvent() (*ClusterUpgradeStartedEvent, bool) {
36092	return nil, false
36093}
36094
36095// AsChaosStoppedEvent is the BasicFabricEvent implementation for ReplicaEvent.
36096func (re ReplicaEvent) AsChaosStoppedEvent() (*ChaosStoppedEvent, bool) {
36097	return nil, false
36098}
36099
36100// AsChaosStartedEvent is the BasicFabricEvent implementation for ReplicaEvent.
36101func (re ReplicaEvent) AsChaosStartedEvent() (*ChaosStartedEvent, bool) {
36102	return nil, false
36103}
36104
36105// AsChaosCodePackageRestartScheduledEvent is the BasicFabricEvent implementation for ReplicaEvent.
36106func (re ReplicaEvent) AsChaosCodePackageRestartScheduledEvent() (*ChaosCodePackageRestartScheduledEvent, bool) {
36107	return nil, false
36108}
36109
36110// AsChaosReplicaRemovalScheduledEvent is the BasicFabricEvent implementation for ReplicaEvent.
36111func (re ReplicaEvent) AsChaosReplicaRemovalScheduledEvent() (*ChaosReplicaRemovalScheduledEvent, bool) {
36112	return nil, false
36113}
36114
36115// AsChaosPartitionSecondaryMoveScheduledEvent is the BasicFabricEvent implementation for ReplicaEvent.
36116func (re ReplicaEvent) AsChaosPartitionSecondaryMoveScheduledEvent() (*ChaosPartitionSecondaryMoveScheduledEvent, bool) {
36117	return nil, false
36118}
36119
36120// AsChaosPartitionPrimaryMoveScheduledEvent is the BasicFabricEvent implementation for ReplicaEvent.
36121func (re ReplicaEvent) AsChaosPartitionPrimaryMoveScheduledEvent() (*ChaosPartitionPrimaryMoveScheduledEvent, bool) {
36122	return nil, false
36123}
36124
36125// AsChaosReplicaRestartScheduledEvent is the BasicFabricEvent implementation for ReplicaEvent.
36126func (re ReplicaEvent) AsChaosReplicaRestartScheduledEvent() (*ChaosReplicaRestartScheduledEvent, bool) {
36127	return nil, false
36128}
36129
36130// AsChaosNodeRestartScheduledEvent is the BasicFabricEvent implementation for ReplicaEvent.
36131func (re ReplicaEvent) AsChaosNodeRestartScheduledEvent() (*ChaosNodeRestartScheduledEvent, bool) {
36132	return nil, false
36133}
36134
36135// AsFabricEvent is the BasicFabricEvent implementation for ReplicaEvent.
36136func (re ReplicaEvent) AsFabricEvent() (*FabricEvent, bool) {
36137	return nil, false
36138}
36139
36140// AsBasicFabricEvent is the BasicFabricEvent implementation for ReplicaEvent.
36141func (re ReplicaEvent) AsBasicFabricEvent() (BasicFabricEvent, bool) {
36142	return &re, true
36143}
36144
36145// BasicReplicaHealth represents a base class for stateful service replica or stateless service instance health.
36146// Contains the replica aggregated health state, the health events and the unhealthy evaluations.
36147type BasicReplicaHealth interface {
36148	AsStatefulServiceReplicaHealth() (*StatefulServiceReplicaHealth, bool)
36149	AsStatelessServiceInstanceHealth() (*StatelessServiceInstanceHealth, bool)
36150	AsReplicaHealth() (*ReplicaHealth, bool)
36151}
36152
36153// ReplicaHealth represents a base class for stateful service replica or stateless service instance health.
36154// Contains the replica aggregated health state, the health events and the unhealthy evaluations.
36155type ReplicaHealth struct {
36156	autorest.Response `json:"-"`
36157	// PartitionID - Id of the partition to which this replica belongs.
36158	PartitionID *uuid.UUID `json:"PartitionId,omitempty"`
36159	// ServiceKind - Possible values include: 'ServiceKindBasicReplicaHealthServiceKindReplicaHealth', 'ServiceKindBasicReplicaHealthServiceKindStateful', 'ServiceKindBasicReplicaHealthServiceKindStateless'
36160	ServiceKind ServiceKindBasicReplicaHealth `json:"ServiceKind,omitempty"`
36161	// AggregatedHealthState - The HealthState representing the aggregated health state of the entity computed by Health Manager.
36162	// The health evaluation of the entity reflects all events reported on the entity and its children (if any).
36163	// The aggregation is done by applying the desired health policy. Possible values include: 'HealthStateInvalid', 'HealthStateOk', 'HealthStateWarning', 'HealthStateError', 'HealthStateUnknown'
36164	AggregatedHealthState HealthState `json:"AggregatedHealthState,omitempty"`
36165	// HealthEvents - The list of health events reported on the entity.
36166	HealthEvents *[]HealthEvent `json:"HealthEvents,omitempty"`
36167	// UnhealthyEvaluations - The unhealthy evaluations that show why the current aggregated health state was returned by Health Manager.
36168	UnhealthyEvaluations *[]HealthEvaluationWrapper `json:"UnhealthyEvaluations,omitempty"`
36169	// HealthStatistics - Shows the health statistics for all children types of the queried entity.
36170	HealthStatistics *HealthStatistics `json:"HealthStatistics,omitempty"`
36171}
36172
36173func unmarshalBasicReplicaHealth(body []byte) (BasicReplicaHealth, error) {
36174	var m map[string]interface{}
36175	err := json.Unmarshal(body, &m)
36176	if err != nil {
36177		return nil, err
36178	}
36179
36180	switch m["ServiceKind"] {
36181	case string(ServiceKindBasicReplicaHealthServiceKindStateful):
36182		var ssrh StatefulServiceReplicaHealth
36183		err := json.Unmarshal(body, &ssrh)
36184		return ssrh, err
36185	case string(ServiceKindBasicReplicaHealthServiceKindStateless):
36186		var ssih StatelessServiceInstanceHealth
36187		err := json.Unmarshal(body, &ssih)
36188		return ssih, err
36189	default:
36190		var rh ReplicaHealth
36191		err := json.Unmarshal(body, &rh)
36192		return rh, err
36193	}
36194}
36195func unmarshalBasicReplicaHealthArray(body []byte) ([]BasicReplicaHealth, error) {
36196	var rawMessages []*json.RawMessage
36197	err := json.Unmarshal(body, &rawMessages)
36198	if err != nil {
36199		return nil, err
36200	}
36201
36202	rhArray := make([]BasicReplicaHealth, len(rawMessages))
36203
36204	for index, rawMessage := range rawMessages {
36205		rh, err := unmarshalBasicReplicaHealth(*rawMessage)
36206		if err != nil {
36207			return nil, err
36208		}
36209		rhArray[index] = rh
36210	}
36211	return rhArray, nil
36212}
36213
36214// MarshalJSON is the custom marshaler for ReplicaHealth.
36215func (rh ReplicaHealth) MarshalJSON() ([]byte, error) {
36216	rh.ServiceKind = ServiceKindBasicReplicaHealthServiceKindReplicaHealth
36217	objectMap := make(map[string]interface{})
36218	if rh.PartitionID != nil {
36219		objectMap["PartitionId"] = rh.PartitionID
36220	}
36221	if rh.ServiceKind != "" {
36222		objectMap["ServiceKind"] = rh.ServiceKind
36223	}
36224	if rh.AggregatedHealthState != "" {
36225		objectMap["AggregatedHealthState"] = rh.AggregatedHealthState
36226	}
36227	if rh.HealthEvents != nil {
36228		objectMap["HealthEvents"] = rh.HealthEvents
36229	}
36230	if rh.UnhealthyEvaluations != nil {
36231		objectMap["UnhealthyEvaluations"] = rh.UnhealthyEvaluations
36232	}
36233	if rh.HealthStatistics != nil {
36234		objectMap["HealthStatistics"] = rh.HealthStatistics
36235	}
36236	return json.Marshal(objectMap)
36237}
36238
36239// AsStatefulServiceReplicaHealth is the BasicReplicaHealth implementation for ReplicaHealth.
36240func (rh ReplicaHealth) AsStatefulServiceReplicaHealth() (*StatefulServiceReplicaHealth, bool) {
36241	return nil, false
36242}
36243
36244// AsStatelessServiceInstanceHealth is the BasicReplicaHealth implementation for ReplicaHealth.
36245func (rh ReplicaHealth) AsStatelessServiceInstanceHealth() (*StatelessServiceInstanceHealth, bool) {
36246	return nil, false
36247}
36248
36249// AsReplicaHealth is the BasicReplicaHealth implementation for ReplicaHealth.
36250func (rh ReplicaHealth) AsReplicaHealth() (*ReplicaHealth, bool) {
36251	return &rh, true
36252}
36253
36254// AsBasicReplicaHealth is the BasicReplicaHealth implementation for ReplicaHealth.
36255func (rh ReplicaHealth) AsBasicReplicaHealth() (BasicReplicaHealth, bool) {
36256	return &rh, true
36257}
36258
36259// ReplicaHealthEvaluation represents health evaluation for a replica, containing information about the
36260// data and the algorithm used by health store to evaluate health. The evaluation is returned only when the
36261// aggregated health state is either Error or Warning.
36262type ReplicaHealthEvaluation struct {
36263	// PartitionID - Id of the partition to which the replica belongs.
36264	PartitionID *uuid.UUID `json:"PartitionId,omitempty"`
36265	// 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.
36266	ReplicaOrInstanceID *string `json:"ReplicaOrInstanceId,omitempty"`
36267	// 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.
36268	UnhealthyEvaluations *[]HealthEvaluationWrapper `json:"UnhealthyEvaluations,omitempty"`
36269	// 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'
36270	AggregatedHealthState HealthState `json:"AggregatedHealthState,omitempty"`
36271	// Description - Description of the health evaluation, which represents a summary of the evaluation process.
36272	Description *string `json:"Description,omitempty"`
36273	// 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'
36274	Kind Kind `json:"Kind,omitempty"`
36275}
36276
36277// MarshalJSON is the custom marshaler for ReplicaHealthEvaluation.
36278func (rhe ReplicaHealthEvaluation) MarshalJSON() ([]byte, error) {
36279	rhe.Kind = KindReplica
36280	objectMap := make(map[string]interface{})
36281	if rhe.PartitionID != nil {
36282		objectMap["PartitionId"] = rhe.PartitionID
36283	}
36284	if rhe.ReplicaOrInstanceID != nil {
36285		objectMap["ReplicaOrInstanceId"] = rhe.ReplicaOrInstanceID
36286	}
36287	if rhe.UnhealthyEvaluations != nil {
36288		objectMap["UnhealthyEvaluations"] = rhe.UnhealthyEvaluations
36289	}
36290	if rhe.AggregatedHealthState != "" {
36291		objectMap["AggregatedHealthState"] = rhe.AggregatedHealthState
36292	}
36293	if rhe.Description != nil {
36294		objectMap["Description"] = rhe.Description
36295	}
36296	if rhe.Kind != "" {
36297		objectMap["Kind"] = rhe.Kind
36298	}
36299	return json.Marshal(objectMap)
36300}
36301
36302// AsApplicationHealthEvaluation is the BasicHealthEvaluation implementation for ReplicaHealthEvaluation.
36303func (rhe ReplicaHealthEvaluation) AsApplicationHealthEvaluation() (*ApplicationHealthEvaluation, bool) {
36304	return nil, false
36305}
36306
36307// AsApplicationsHealthEvaluation is the BasicHealthEvaluation implementation for ReplicaHealthEvaluation.
36308func (rhe ReplicaHealthEvaluation) AsApplicationsHealthEvaluation() (*ApplicationsHealthEvaluation, bool) {
36309	return nil, false
36310}
36311
36312// AsApplicationTypeApplicationsHealthEvaluation is the BasicHealthEvaluation implementation for ReplicaHealthEvaluation.
36313func (rhe ReplicaHealthEvaluation) AsApplicationTypeApplicationsHealthEvaluation() (*ApplicationTypeApplicationsHealthEvaluation, bool) {
36314	return nil, false
36315}
36316
36317// AsDeltaNodesCheckHealthEvaluation is the BasicHealthEvaluation implementation for ReplicaHealthEvaluation.
36318func (rhe ReplicaHealthEvaluation) AsDeltaNodesCheckHealthEvaluation() (*DeltaNodesCheckHealthEvaluation, bool) {
36319	return nil, false
36320}
36321
36322// AsDeployedApplicationHealthEvaluation is the BasicHealthEvaluation implementation for ReplicaHealthEvaluation.
36323func (rhe ReplicaHealthEvaluation) AsDeployedApplicationHealthEvaluation() (*DeployedApplicationHealthEvaluation, bool) {
36324	return nil, false
36325}
36326
36327// AsDeployedApplicationsHealthEvaluation is the BasicHealthEvaluation implementation for ReplicaHealthEvaluation.
36328func (rhe ReplicaHealthEvaluation) AsDeployedApplicationsHealthEvaluation() (*DeployedApplicationsHealthEvaluation, bool) {
36329	return nil, false
36330}
36331
36332// AsDeployedServicePackageHealthEvaluation is the BasicHealthEvaluation implementation for ReplicaHealthEvaluation.
36333func (rhe ReplicaHealthEvaluation) AsDeployedServicePackageHealthEvaluation() (*DeployedServicePackageHealthEvaluation, bool) {
36334	return nil, false
36335}
36336
36337// AsDeployedServicePackagesHealthEvaluation is the BasicHealthEvaluation implementation for ReplicaHealthEvaluation.
36338func (rhe ReplicaHealthEvaluation) AsDeployedServicePackagesHealthEvaluation() (*DeployedServicePackagesHealthEvaluation, bool) {
36339	return nil, false
36340}
36341
36342// AsEventHealthEvaluation is the BasicHealthEvaluation implementation for ReplicaHealthEvaluation.
36343func (rhe ReplicaHealthEvaluation) AsEventHealthEvaluation() (*EventHealthEvaluation, bool) {
36344	return nil, false
36345}
36346
36347// AsNodeHealthEvaluation is the BasicHealthEvaluation implementation for ReplicaHealthEvaluation.
36348func (rhe ReplicaHealthEvaluation) AsNodeHealthEvaluation() (*NodeHealthEvaluation, bool) {
36349	return nil, false
36350}
36351
36352// AsNodesHealthEvaluation is the BasicHealthEvaluation implementation for ReplicaHealthEvaluation.
36353func (rhe ReplicaHealthEvaluation) AsNodesHealthEvaluation() (*NodesHealthEvaluation, bool) {
36354	return nil, false
36355}
36356
36357// AsPartitionHealthEvaluation is the BasicHealthEvaluation implementation for ReplicaHealthEvaluation.
36358func (rhe ReplicaHealthEvaluation) AsPartitionHealthEvaluation() (*PartitionHealthEvaluation, bool) {
36359	return nil, false
36360}
36361
36362// AsPartitionsHealthEvaluation is the BasicHealthEvaluation implementation for ReplicaHealthEvaluation.
36363func (rhe ReplicaHealthEvaluation) AsPartitionsHealthEvaluation() (*PartitionsHealthEvaluation, bool) {
36364	return nil, false
36365}
36366
36367// AsReplicaHealthEvaluation is the BasicHealthEvaluation implementation for ReplicaHealthEvaluation.
36368func (rhe ReplicaHealthEvaluation) AsReplicaHealthEvaluation() (*ReplicaHealthEvaluation, bool) {
36369	return &rhe, true
36370}
36371
36372// AsReplicasHealthEvaluation is the BasicHealthEvaluation implementation for ReplicaHealthEvaluation.
36373func (rhe ReplicaHealthEvaluation) AsReplicasHealthEvaluation() (*ReplicasHealthEvaluation, bool) {
36374	return nil, false
36375}
36376
36377// AsServiceHealthEvaluation is the BasicHealthEvaluation implementation for ReplicaHealthEvaluation.
36378func (rhe ReplicaHealthEvaluation) AsServiceHealthEvaluation() (*ServiceHealthEvaluation, bool) {
36379	return nil, false
36380}
36381
36382// AsServicesHealthEvaluation is the BasicHealthEvaluation implementation for ReplicaHealthEvaluation.
36383func (rhe ReplicaHealthEvaluation) AsServicesHealthEvaluation() (*ServicesHealthEvaluation, bool) {
36384	return nil, false
36385}
36386
36387// AsSystemApplicationHealthEvaluation is the BasicHealthEvaluation implementation for ReplicaHealthEvaluation.
36388func (rhe ReplicaHealthEvaluation) AsSystemApplicationHealthEvaluation() (*SystemApplicationHealthEvaluation, bool) {
36389	return nil, false
36390}
36391
36392// AsUpgradeDomainDeltaNodesCheckHealthEvaluation is the BasicHealthEvaluation implementation for ReplicaHealthEvaluation.
36393func (rhe ReplicaHealthEvaluation) AsUpgradeDomainDeltaNodesCheckHealthEvaluation() (*UpgradeDomainDeltaNodesCheckHealthEvaluation, bool) {
36394	return nil, false
36395}
36396
36397// AsUpgradeDomainNodesHealthEvaluation is the BasicHealthEvaluation implementation for ReplicaHealthEvaluation.
36398func (rhe ReplicaHealthEvaluation) AsUpgradeDomainNodesHealthEvaluation() (*UpgradeDomainNodesHealthEvaluation, bool) {
36399	return nil, false
36400}
36401
36402// AsHealthEvaluation is the BasicHealthEvaluation implementation for ReplicaHealthEvaluation.
36403func (rhe ReplicaHealthEvaluation) AsHealthEvaluation() (*HealthEvaluation, bool) {
36404	return nil, false
36405}
36406
36407// AsBasicHealthEvaluation is the BasicHealthEvaluation implementation for ReplicaHealthEvaluation.
36408func (rhe ReplicaHealthEvaluation) AsBasicHealthEvaluation() (BasicHealthEvaluation, bool) {
36409	return &rhe, true
36410}
36411
36412// ReplicaHealthModel ...
36413type ReplicaHealthModel struct {
36414	autorest.Response `json:"-"`
36415	Value             BasicReplicaHealth `json:"value,omitempty"`
36416}
36417
36418// UnmarshalJSON is the custom unmarshaler for ReplicaHealthModel struct.
36419func (rhm *ReplicaHealthModel) UnmarshalJSON(body []byte) error {
36420	rh, err := unmarshalBasicReplicaHealth(body)
36421	if err != nil {
36422		return err
36423	}
36424	rhm.Value = rh
36425
36426	return nil
36427}
36428
36429// BasicReplicaHealthState represents a base class for stateful service replica or stateless service instance health
36430// state.
36431type BasicReplicaHealthState interface {
36432	AsStatefulServiceReplicaHealthState() (*StatefulServiceReplicaHealthState, bool)
36433	AsStatelessServiceInstanceHealthState() (*StatelessServiceInstanceHealthState, bool)
36434	AsReplicaHealthState() (*ReplicaHealthState, bool)
36435}
36436
36437// ReplicaHealthState represents a base class for stateful service replica or stateless service instance health
36438// state.
36439type ReplicaHealthState struct {
36440	// PartitionID - The ID of the partition to which this replica belongs.
36441	PartitionID *uuid.UUID `json:"PartitionId,omitempty"`
36442	// ServiceKind - Possible values include: 'ServiceKindBasicReplicaHealthStateServiceKindReplicaHealthState', 'ServiceKindBasicReplicaHealthStateServiceKindStateful', 'ServiceKindBasicReplicaHealthStateServiceKindStateless'
36443	ServiceKind ServiceKindBasicReplicaHealthState `json:"ServiceKind,omitempty"`
36444	// 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'
36445	AggregatedHealthState HealthState `json:"AggregatedHealthState,omitempty"`
36446}
36447
36448func unmarshalBasicReplicaHealthState(body []byte) (BasicReplicaHealthState, error) {
36449	var m map[string]interface{}
36450	err := json.Unmarshal(body, &m)
36451	if err != nil {
36452		return nil, err
36453	}
36454
36455	switch m["ServiceKind"] {
36456	case string(ServiceKindBasicReplicaHealthStateServiceKindStateful):
36457		var ssrhs StatefulServiceReplicaHealthState
36458		err := json.Unmarshal(body, &ssrhs)
36459		return ssrhs, err
36460	case string(ServiceKindBasicReplicaHealthStateServiceKindStateless):
36461		var ssihs StatelessServiceInstanceHealthState
36462		err := json.Unmarshal(body, &ssihs)
36463		return ssihs, err
36464	default:
36465		var RHS ReplicaHealthState
36466		err := json.Unmarshal(body, &RHS)
36467		return RHS, err
36468	}
36469}
36470func unmarshalBasicReplicaHealthStateArray(body []byte) ([]BasicReplicaHealthState, error) {
36471	var rawMessages []*json.RawMessage
36472	err := json.Unmarshal(body, &rawMessages)
36473	if err != nil {
36474		return nil, err
36475	}
36476
36477	RHSArray := make([]BasicReplicaHealthState, len(rawMessages))
36478
36479	for index, rawMessage := range rawMessages {
36480		RHS, err := unmarshalBasicReplicaHealthState(*rawMessage)
36481		if err != nil {
36482			return nil, err
36483		}
36484		RHSArray[index] = RHS
36485	}
36486	return RHSArray, nil
36487}
36488
36489// MarshalJSON is the custom marshaler for ReplicaHealthState.
36490func (RHS ReplicaHealthState) MarshalJSON() ([]byte, error) {
36491	RHS.ServiceKind = ServiceKindBasicReplicaHealthStateServiceKindReplicaHealthState
36492	objectMap := make(map[string]interface{})
36493	if RHS.PartitionID != nil {
36494		objectMap["PartitionId"] = RHS.PartitionID
36495	}
36496	if RHS.ServiceKind != "" {
36497		objectMap["ServiceKind"] = RHS.ServiceKind
36498	}
36499	if RHS.AggregatedHealthState != "" {
36500		objectMap["AggregatedHealthState"] = RHS.AggregatedHealthState
36501	}
36502	return json.Marshal(objectMap)
36503}
36504
36505// AsStatefulServiceReplicaHealthState is the BasicReplicaHealthState implementation for ReplicaHealthState.
36506func (RHS ReplicaHealthState) AsStatefulServiceReplicaHealthState() (*StatefulServiceReplicaHealthState, bool) {
36507	return nil, false
36508}
36509
36510// AsStatelessServiceInstanceHealthState is the BasicReplicaHealthState implementation for ReplicaHealthState.
36511func (RHS ReplicaHealthState) AsStatelessServiceInstanceHealthState() (*StatelessServiceInstanceHealthState, bool) {
36512	return nil, false
36513}
36514
36515// AsReplicaHealthState is the BasicReplicaHealthState implementation for ReplicaHealthState.
36516func (RHS ReplicaHealthState) AsReplicaHealthState() (*ReplicaHealthState, bool) {
36517	return &RHS, true
36518}
36519
36520// AsBasicReplicaHealthState is the BasicReplicaHealthState implementation for ReplicaHealthState.
36521func (RHS ReplicaHealthState) AsBasicReplicaHealthState() (BasicReplicaHealthState, bool) {
36522	return &RHS, true
36523}
36524
36525// ReplicaHealthStateChunk represents the health state chunk of a stateful service replica or a stateless
36526// service instance.
36527// The replica health state contains the replica ID and its aggregated health state.
36528type ReplicaHealthStateChunk struct {
36529	// 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.
36530	ReplicaOrInstanceID *string `json:"ReplicaOrInstanceId,omitempty"`
36531	// 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'
36532	HealthState HealthState `json:"HealthState,omitempty"`
36533}
36534
36535// ReplicaHealthStateChunkList the list of replica health state chunks that respect the input filters in
36536// the chunk query. Returned by get cluster health state chunks query.
36537type ReplicaHealthStateChunkList struct {
36538	// Items - The list of replica health state chunks that respect the input filters in the chunk query.
36539	Items *[]ReplicaHealthStateChunk `json:"Items,omitempty"`
36540}
36541
36542// ReplicaHealthStateFilter defines matching criteria to determine whether a replica should be included as
36543// a child of a partition in the cluster health chunk.
36544// The replicas are only returned if the parent entities match a filter specified in the cluster health
36545// chunk query description. The parent partition, service and application must be included in the cluster
36546// health chunk.
36547// One filter can match zero, one or multiple replicas, depending on its properties.
36548type ReplicaHealthStateFilter struct {
36549	// 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.
36550	// If the replica doesn't exist, no replica is returned in the cluster health chunk based on this filter.
36551	// If the replica exists, it is included in the cluster health chunk if it respects the other filter properties.
36552	// 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.
36553	ReplicaOrInstanceIDFilter *string `json:"ReplicaOrInstanceIdFilter,omitempty"`
36554	// HealthStateFilter - The filter for the health state of the replicas. It allows selecting replicas if they match the desired health states.
36555	// 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.
36556	// 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.
36557	// The state values are flag-based enumeration, so the value could be a combination of these values obtained using bitwise 'OR' operator.
36558	// For example, if the provided value is 6, it matches replicas with HealthState value of OK (2) and Warning (4).
36559	// - Default - Default value. Matches any HealthState. The value is zero.
36560	// - 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.
36561	// - Ok - Filter that matches input with HealthState value Ok. The value is 2.
36562	// - Warning - Filter that matches input with HealthState value Warning. The value is 4.
36563	// - Error - Filter that matches input with HealthState value Error. The value is 8.
36564	// - All - Filter that matches input with any HealthState value. The value is 65535.
36565	HealthStateFilter *int32 `json:"HealthStateFilter,omitempty"`
36566}
36567
36568// BasicReplicaInfo information about the identity, status, health, node name, uptime, and other details about the
36569// replica.
36570type BasicReplicaInfo interface {
36571	AsStatefulServiceReplicaInfo() (*StatefulServiceReplicaInfo, bool)
36572	AsStatelessServiceInstanceInfo() (*StatelessServiceInstanceInfo, bool)
36573	AsReplicaInfo() (*ReplicaInfo, bool)
36574}
36575
36576// ReplicaInfo information about the identity, status, health, node name, uptime, and other details about the
36577// replica.
36578type ReplicaInfo struct {
36579	autorest.Response `json:"-"`
36580	// ReplicaStatus - The status of a replica of a service. Possible values include: 'ReplicaStatusInvalid', 'ReplicaStatusInBuild', 'ReplicaStatusStandby', 'ReplicaStatusReady', 'ReplicaStatusDown', 'ReplicaStatusDropped'
36581	ReplicaStatus ReplicaStatus `json:"ReplicaStatus,omitempty"`
36582	// 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'
36583	HealthState HealthState `json:"HealthState,omitempty"`
36584	// NodeName - The name of a Service Fabric node.
36585	NodeName *string `json:"NodeName,omitempty"`
36586	// Address - The address the replica is listening on.
36587	Address *string `json:"Address,omitempty"`
36588	// LastInBuildDurationInSeconds - The last in build duration of the replica in seconds.
36589	LastInBuildDurationInSeconds *string `json:"LastInBuildDurationInSeconds,omitempty"`
36590	// ServiceKind - Possible values include: 'ServiceKindBasicReplicaInfoServiceKindReplicaInfo', 'ServiceKindBasicReplicaInfoServiceKindStateful', 'ServiceKindBasicReplicaInfoServiceKindStateless'
36591	ServiceKind ServiceKindBasicReplicaInfo `json:"ServiceKind,omitempty"`
36592}
36593
36594func unmarshalBasicReplicaInfo(body []byte) (BasicReplicaInfo, error) {
36595	var m map[string]interface{}
36596	err := json.Unmarshal(body, &m)
36597	if err != nil {
36598		return nil, err
36599	}
36600
36601	switch m["ServiceKind"] {
36602	case string(ServiceKindBasicReplicaInfoServiceKindStateful):
36603		var ssri StatefulServiceReplicaInfo
36604		err := json.Unmarshal(body, &ssri)
36605		return ssri, err
36606	case string(ServiceKindBasicReplicaInfoServiceKindStateless):
36607		var ssii StatelessServiceInstanceInfo
36608		err := json.Unmarshal(body, &ssii)
36609		return ssii, err
36610	default:
36611		var ri ReplicaInfo
36612		err := json.Unmarshal(body, &ri)
36613		return ri, err
36614	}
36615}
36616func unmarshalBasicReplicaInfoArray(body []byte) ([]BasicReplicaInfo, error) {
36617	var rawMessages []*json.RawMessage
36618	err := json.Unmarshal(body, &rawMessages)
36619	if err != nil {
36620		return nil, err
36621	}
36622
36623	riArray := make([]BasicReplicaInfo, len(rawMessages))
36624
36625	for index, rawMessage := range rawMessages {
36626		ri, err := unmarshalBasicReplicaInfo(*rawMessage)
36627		if err != nil {
36628			return nil, err
36629		}
36630		riArray[index] = ri
36631	}
36632	return riArray, nil
36633}
36634
36635// MarshalJSON is the custom marshaler for ReplicaInfo.
36636func (ri ReplicaInfo) MarshalJSON() ([]byte, error) {
36637	ri.ServiceKind = ServiceKindBasicReplicaInfoServiceKindReplicaInfo
36638	objectMap := make(map[string]interface{})
36639	if ri.ReplicaStatus != "" {
36640		objectMap["ReplicaStatus"] = ri.ReplicaStatus
36641	}
36642	if ri.HealthState != "" {
36643		objectMap["HealthState"] = ri.HealthState
36644	}
36645	if ri.NodeName != nil {
36646		objectMap["NodeName"] = ri.NodeName
36647	}
36648	if ri.Address != nil {
36649		objectMap["Address"] = ri.Address
36650	}
36651	if ri.LastInBuildDurationInSeconds != nil {
36652		objectMap["LastInBuildDurationInSeconds"] = ri.LastInBuildDurationInSeconds
36653	}
36654	if ri.ServiceKind != "" {
36655		objectMap["ServiceKind"] = ri.ServiceKind
36656	}
36657	return json.Marshal(objectMap)
36658}
36659
36660// AsStatefulServiceReplicaInfo is the BasicReplicaInfo implementation for ReplicaInfo.
36661func (ri ReplicaInfo) AsStatefulServiceReplicaInfo() (*StatefulServiceReplicaInfo, bool) {
36662	return nil, false
36663}
36664
36665// AsStatelessServiceInstanceInfo is the BasicReplicaInfo implementation for ReplicaInfo.
36666func (ri ReplicaInfo) AsStatelessServiceInstanceInfo() (*StatelessServiceInstanceInfo, bool) {
36667	return nil, false
36668}
36669
36670// AsReplicaInfo is the BasicReplicaInfo implementation for ReplicaInfo.
36671func (ri ReplicaInfo) AsReplicaInfo() (*ReplicaInfo, bool) {
36672	return &ri, true
36673}
36674
36675// AsBasicReplicaInfo is the BasicReplicaInfo implementation for ReplicaInfo.
36676func (ri ReplicaInfo) AsBasicReplicaInfo() (BasicReplicaInfo, bool) {
36677	return &ri, true
36678}
36679
36680// ReplicaInfoModel ...
36681type ReplicaInfoModel struct {
36682	autorest.Response `json:"-"`
36683	Value             BasicReplicaInfo `json:"value,omitempty"`
36684}
36685
36686// UnmarshalJSON is the custom unmarshaler for ReplicaInfoModel struct.
36687func (rim *ReplicaInfoModel) UnmarshalJSON(body []byte) error {
36688	ri, err := unmarshalBasicReplicaInfo(body)
36689	if err != nil {
36690		return err
36691	}
36692	rim.Value = ri
36693
36694	return nil
36695}
36696
36697// ReplicaMetricLoadDescription specifies metric loads of a partition's specific secondary replica or
36698// instance.
36699type ReplicaMetricLoadDescription struct {
36700	// NodeName - Node name of a specific secondary replica or instance.
36701	NodeName *string `json:"NodeName,omitempty"`
36702	// ReplicaOrInstanceLoadEntries - Loads of a different metrics for a partition's secondary replica or instance.
36703	ReplicaOrInstanceLoadEntries *[]MetricLoadDescription `json:"ReplicaOrInstanceLoadEntries,omitempty"`
36704}
36705
36706// ReplicasHealthEvaluation represents health evaluation for replicas, containing health evaluations for
36707// each unhealthy replica that impacted current aggregated health state. Can be returned when evaluating
36708// partition health and the aggregated health state is either Error or Warning.
36709type ReplicasHealthEvaluation struct {
36710	// MaxPercentUnhealthyReplicasPerPartition - Maximum allowed percentage of unhealthy replicas per partition from the ApplicationHealthPolicy.
36711	MaxPercentUnhealthyReplicasPerPartition *int32 `json:"MaxPercentUnhealthyReplicasPerPartition,omitempty"`
36712	// TotalCount - Total number of replicas in the partition from the health store.
36713	TotalCount *int64 `json:"TotalCount,omitempty"`
36714	// UnhealthyEvaluations - List of unhealthy evaluations that led to the aggregated health state. Includes all the unhealthy ReplicaHealthEvaluation that impacted the aggregated health.
36715	UnhealthyEvaluations *[]HealthEvaluationWrapper `json:"UnhealthyEvaluations,omitempty"`
36716	// 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'
36717	AggregatedHealthState HealthState `json:"AggregatedHealthState,omitempty"`
36718	// Description - Description of the health evaluation, which represents a summary of the evaluation process.
36719	Description *string `json:"Description,omitempty"`
36720	// 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'
36721	Kind Kind `json:"Kind,omitempty"`
36722}
36723
36724// MarshalJSON is the custom marshaler for ReplicasHealthEvaluation.
36725func (rhe ReplicasHealthEvaluation) MarshalJSON() ([]byte, error) {
36726	rhe.Kind = KindReplicas
36727	objectMap := make(map[string]interface{})
36728	if rhe.MaxPercentUnhealthyReplicasPerPartition != nil {
36729		objectMap["MaxPercentUnhealthyReplicasPerPartition"] = rhe.MaxPercentUnhealthyReplicasPerPartition
36730	}
36731	if rhe.TotalCount != nil {
36732		objectMap["TotalCount"] = rhe.TotalCount
36733	}
36734	if rhe.UnhealthyEvaluations != nil {
36735		objectMap["UnhealthyEvaluations"] = rhe.UnhealthyEvaluations
36736	}
36737	if rhe.AggregatedHealthState != "" {
36738		objectMap["AggregatedHealthState"] = rhe.AggregatedHealthState
36739	}
36740	if rhe.Description != nil {
36741		objectMap["Description"] = rhe.Description
36742	}
36743	if rhe.Kind != "" {
36744		objectMap["Kind"] = rhe.Kind
36745	}
36746	return json.Marshal(objectMap)
36747}
36748
36749// AsApplicationHealthEvaluation is the BasicHealthEvaluation implementation for ReplicasHealthEvaluation.
36750func (rhe ReplicasHealthEvaluation) AsApplicationHealthEvaluation() (*ApplicationHealthEvaluation, bool) {
36751	return nil, false
36752}
36753
36754// AsApplicationsHealthEvaluation is the BasicHealthEvaluation implementation for ReplicasHealthEvaluation.
36755func (rhe ReplicasHealthEvaluation) AsApplicationsHealthEvaluation() (*ApplicationsHealthEvaluation, bool) {
36756	return nil, false
36757}
36758
36759// AsApplicationTypeApplicationsHealthEvaluation is the BasicHealthEvaluation implementation for ReplicasHealthEvaluation.
36760func (rhe ReplicasHealthEvaluation) AsApplicationTypeApplicationsHealthEvaluation() (*ApplicationTypeApplicationsHealthEvaluation, bool) {
36761	return nil, false
36762}
36763
36764// AsDeltaNodesCheckHealthEvaluation is the BasicHealthEvaluation implementation for ReplicasHealthEvaluation.
36765func (rhe ReplicasHealthEvaluation) AsDeltaNodesCheckHealthEvaluation() (*DeltaNodesCheckHealthEvaluation, bool) {
36766	return nil, false
36767}
36768
36769// AsDeployedApplicationHealthEvaluation is the BasicHealthEvaluation implementation for ReplicasHealthEvaluation.
36770func (rhe ReplicasHealthEvaluation) AsDeployedApplicationHealthEvaluation() (*DeployedApplicationHealthEvaluation, bool) {
36771	return nil, false
36772}
36773
36774// AsDeployedApplicationsHealthEvaluation is the BasicHealthEvaluation implementation for ReplicasHealthEvaluation.
36775func (rhe ReplicasHealthEvaluation) AsDeployedApplicationsHealthEvaluation() (*DeployedApplicationsHealthEvaluation, bool) {
36776	return nil, false
36777}
36778
36779// AsDeployedServicePackageHealthEvaluation is the BasicHealthEvaluation implementation for ReplicasHealthEvaluation.
36780func (rhe ReplicasHealthEvaluation) AsDeployedServicePackageHealthEvaluation() (*DeployedServicePackageHealthEvaluation, bool) {
36781	return nil, false
36782}
36783
36784// AsDeployedServicePackagesHealthEvaluation is the BasicHealthEvaluation implementation for ReplicasHealthEvaluation.
36785func (rhe ReplicasHealthEvaluation) AsDeployedServicePackagesHealthEvaluation() (*DeployedServicePackagesHealthEvaluation, bool) {
36786	return nil, false
36787}
36788
36789// AsEventHealthEvaluation is the BasicHealthEvaluation implementation for ReplicasHealthEvaluation.
36790func (rhe ReplicasHealthEvaluation) AsEventHealthEvaluation() (*EventHealthEvaluation, bool) {
36791	return nil, false
36792}
36793
36794// AsNodeHealthEvaluation is the BasicHealthEvaluation implementation for ReplicasHealthEvaluation.
36795func (rhe ReplicasHealthEvaluation) AsNodeHealthEvaluation() (*NodeHealthEvaluation, bool) {
36796	return nil, false
36797}
36798
36799// AsNodesHealthEvaluation is the BasicHealthEvaluation implementation for ReplicasHealthEvaluation.
36800func (rhe ReplicasHealthEvaluation) AsNodesHealthEvaluation() (*NodesHealthEvaluation, bool) {
36801	return nil, false
36802}
36803
36804// AsPartitionHealthEvaluation is the BasicHealthEvaluation implementation for ReplicasHealthEvaluation.
36805func (rhe ReplicasHealthEvaluation) AsPartitionHealthEvaluation() (*PartitionHealthEvaluation, bool) {
36806	return nil, false
36807}
36808
36809// AsPartitionsHealthEvaluation is the BasicHealthEvaluation implementation for ReplicasHealthEvaluation.
36810func (rhe ReplicasHealthEvaluation) AsPartitionsHealthEvaluation() (*PartitionsHealthEvaluation, bool) {
36811	return nil, false
36812}
36813
36814// AsReplicaHealthEvaluation is the BasicHealthEvaluation implementation for ReplicasHealthEvaluation.
36815func (rhe ReplicasHealthEvaluation) AsReplicaHealthEvaluation() (*ReplicaHealthEvaluation, bool) {
36816	return nil, false
36817}
36818
36819// AsReplicasHealthEvaluation is the BasicHealthEvaluation implementation for ReplicasHealthEvaluation.
36820func (rhe ReplicasHealthEvaluation) AsReplicasHealthEvaluation() (*ReplicasHealthEvaluation, bool) {
36821	return &rhe, true
36822}
36823
36824// AsServiceHealthEvaluation is the BasicHealthEvaluation implementation for ReplicasHealthEvaluation.
36825func (rhe ReplicasHealthEvaluation) AsServiceHealthEvaluation() (*ServiceHealthEvaluation, bool) {
36826	return nil, false
36827}
36828
36829// AsServicesHealthEvaluation is the BasicHealthEvaluation implementation for ReplicasHealthEvaluation.
36830func (rhe ReplicasHealthEvaluation) AsServicesHealthEvaluation() (*ServicesHealthEvaluation, bool) {
36831	return nil, false
36832}
36833
36834// AsSystemApplicationHealthEvaluation is the BasicHealthEvaluation implementation for ReplicasHealthEvaluation.
36835func (rhe ReplicasHealthEvaluation) AsSystemApplicationHealthEvaluation() (*SystemApplicationHealthEvaluation, bool) {
36836	return nil, false
36837}
36838
36839// AsUpgradeDomainDeltaNodesCheckHealthEvaluation is the BasicHealthEvaluation implementation for ReplicasHealthEvaluation.
36840func (rhe ReplicasHealthEvaluation) AsUpgradeDomainDeltaNodesCheckHealthEvaluation() (*UpgradeDomainDeltaNodesCheckHealthEvaluation, bool) {
36841	return nil, false
36842}
36843
36844// AsUpgradeDomainNodesHealthEvaluation is the BasicHealthEvaluation implementation for ReplicasHealthEvaluation.
36845func (rhe ReplicasHealthEvaluation) AsUpgradeDomainNodesHealthEvaluation() (*UpgradeDomainNodesHealthEvaluation, bool) {
36846	return nil, false
36847}
36848
36849// AsHealthEvaluation is the BasicHealthEvaluation implementation for ReplicasHealthEvaluation.
36850func (rhe ReplicasHealthEvaluation) AsHealthEvaluation() (*HealthEvaluation, bool) {
36851	return nil, false
36852}
36853
36854// AsBasicHealthEvaluation is the BasicHealthEvaluation implementation for ReplicasHealthEvaluation.
36855func (rhe ReplicasHealthEvaluation) AsBasicHealthEvaluation() (BasicHealthEvaluation, bool) {
36856	return &rhe, true
36857}
36858
36859// BasicReplicaStatusBase information about the replica.
36860type BasicReplicaStatusBase interface {
36861	AsKeyValueStoreReplicaStatus() (*KeyValueStoreReplicaStatus, bool)
36862	AsReplicaStatusBase() (*ReplicaStatusBase, bool)
36863}
36864
36865// ReplicaStatusBase information about the replica.
36866type ReplicaStatusBase struct {
36867	// Kind - Possible values include: 'KindReplicaStatusBase', 'KindKeyValueStore'
36868	Kind KindBasicReplicaStatusBase `json:"Kind,omitempty"`
36869}
36870
36871func unmarshalBasicReplicaStatusBase(body []byte) (BasicReplicaStatusBase, error) {
36872	var m map[string]interface{}
36873	err := json.Unmarshal(body, &m)
36874	if err != nil {
36875		return nil, err
36876	}
36877
36878	switch m["Kind"] {
36879	case string(KindKeyValueStore):
36880		var kvsrs KeyValueStoreReplicaStatus
36881		err := json.Unmarshal(body, &kvsrs)
36882		return kvsrs, err
36883	default:
36884		var rsb ReplicaStatusBase
36885		err := json.Unmarshal(body, &rsb)
36886		return rsb, err
36887	}
36888}
36889func unmarshalBasicReplicaStatusBaseArray(body []byte) ([]BasicReplicaStatusBase, error) {
36890	var rawMessages []*json.RawMessage
36891	err := json.Unmarshal(body, &rawMessages)
36892	if err != nil {
36893		return nil, err
36894	}
36895
36896	rsbArray := make([]BasicReplicaStatusBase, len(rawMessages))
36897
36898	for index, rawMessage := range rawMessages {
36899		rsb, err := unmarshalBasicReplicaStatusBase(*rawMessage)
36900		if err != nil {
36901			return nil, err
36902		}
36903		rsbArray[index] = rsb
36904	}
36905	return rsbArray, nil
36906}
36907
36908// MarshalJSON is the custom marshaler for ReplicaStatusBase.
36909func (rsb ReplicaStatusBase) MarshalJSON() ([]byte, error) {
36910	rsb.Kind = KindReplicaStatusBase
36911	objectMap := make(map[string]interface{})
36912	if rsb.Kind != "" {
36913		objectMap["Kind"] = rsb.Kind
36914	}
36915	return json.Marshal(objectMap)
36916}
36917
36918// AsKeyValueStoreReplicaStatus is the BasicReplicaStatusBase implementation for ReplicaStatusBase.
36919func (rsb ReplicaStatusBase) AsKeyValueStoreReplicaStatus() (*KeyValueStoreReplicaStatus, bool) {
36920	return nil, false
36921}
36922
36923// AsReplicaStatusBase is the BasicReplicaStatusBase implementation for ReplicaStatusBase.
36924func (rsb ReplicaStatusBase) AsReplicaStatusBase() (*ReplicaStatusBase, bool) {
36925	return &rsb, true
36926}
36927
36928// AsBasicReplicaStatusBase is the BasicReplicaStatusBase implementation for ReplicaStatusBase.
36929func (rsb ReplicaStatusBase) AsBasicReplicaStatusBase() (BasicReplicaStatusBase, bool) {
36930	return &rsb, true
36931}
36932
36933// ReplicatorQueueStatus provides various statistics of the queue used in the service fabric replicator.
36934// Contains information about the service fabric replicator like the replication/copy queue utilization,
36935// last acknowledgement received timestamp, etc.
36936// Depending on the role of the replicator, the properties in this type imply different meanings.
36937type ReplicatorQueueStatus struct {
36938	// 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.
36939	QueueUtilizationPercentage *int32 `json:"QueueUtilizationPercentage,omitempty"`
36940	// QueueMemorySize - Represents the virtual memory consumed by the queue in bytes.
36941	QueueMemorySize *string `json:"QueueMemorySize,omitempty"`
36942	// FirstSequenceNumber - On a primary replicator, this is semantically the sequence number of the operation for which all the secondary replicas have sent an acknowledgement.
36943	// On a secondary replicator, this is the smallest sequence number of the operation that is present in the queue.
36944	FirstSequenceNumber *string `json:"FirstSequenceNumber,omitempty"`
36945	// 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.
36946	// On a secondary replicator, this is semantically the highest sequence number that has been applied to the persistent state.
36947	CompletedSequenceNumber *string `json:"CompletedSequenceNumber,omitempty"`
36948	// 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.
36949	// On a secondary replicator, this is semantically the highest sequence number of the in-order operation received from the primary.
36950	CommittedSequenceNumber *string `json:"CommittedSequenceNumber,omitempty"`
36951	// LastSequenceNumber - Represents the latest sequence number of the operation that is available in the queue.
36952	LastSequenceNumber *string `json:"LastSequenceNumber,omitempty"`
36953}
36954
36955// BasicReplicatorStatus represents a base class for primary or secondary replicator status.
36956// Contains information about the service fabric replicator like the replication/copy queue utilization, last
36957// acknowledgement received timestamp, etc.
36958type BasicReplicatorStatus interface {
36959	AsPrimaryReplicatorStatus() (*PrimaryReplicatorStatus, bool)
36960	AsSecondaryReplicatorStatus() (*SecondaryReplicatorStatus, bool)
36961	AsBasicSecondaryReplicatorStatus() (BasicSecondaryReplicatorStatus, bool)
36962	AsSecondaryActiveReplicatorStatus() (*SecondaryActiveReplicatorStatus, bool)
36963	AsSecondaryIdleReplicatorStatus() (*SecondaryIdleReplicatorStatus, bool)
36964	AsReplicatorStatus() (*ReplicatorStatus, bool)
36965}
36966
36967// ReplicatorStatus represents a base class for primary or secondary replicator status.
36968// Contains information about the service fabric replicator like the replication/copy queue utilization, last
36969// acknowledgement received timestamp, etc.
36970type ReplicatorStatus struct {
36971	// Kind - Possible values include: 'KindReplicatorStatus', 'KindPrimary', 'KindSecondaryReplicatorStatus', 'KindActiveSecondary', 'KindIdleSecondary'
36972	Kind KindBasicReplicatorStatus `json:"Kind,omitempty"`
36973}
36974
36975func unmarshalBasicReplicatorStatus(body []byte) (BasicReplicatorStatus, error) {
36976	var m map[string]interface{}
36977	err := json.Unmarshal(body, &m)
36978	if err != nil {
36979		return nil, err
36980	}
36981
36982	switch m["Kind"] {
36983	case string(KindPrimary):
36984		var prs PrimaryReplicatorStatus
36985		err := json.Unmarshal(body, &prs)
36986		return prs, err
36987	case string(KindSecondaryReplicatorStatus):
36988		var srs SecondaryReplicatorStatus
36989		err := json.Unmarshal(body, &srs)
36990		return srs, err
36991	case string(KindActiveSecondary):
36992		var sars SecondaryActiveReplicatorStatus
36993		err := json.Unmarshal(body, &sars)
36994		return sars, err
36995	case string(KindIdleSecondary):
36996		var sirs SecondaryIdleReplicatorStatus
36997		err := json.Unmarshal(body, &sirs)
36998		return sirs, err
36999	default:
37000		var rs ReplicatorStatus
37001		err := json.Unmarshal(body, &rs)
37002		return rs, err
37003	}
37004}
37005func unmarshalBasicReplicatorStatusArray(body []byte) ([]BasicReplicatorStatus, error) {
37006	var rawMessages []*json.RawMessage
37007	err := json.Unmarshal(body, &rawMessages)
37008	if err != nil {
37009		return nil, err
37010	}
37011
37012	rsArray := make([]BasicReplicatorStatus, len(rawMessages))
37013
37014	for index, rawMessage := range rawMessages {
37015		rs, err := unmarshalBasicReplicatorStatus(*rawMessage)
37016		if err != nil {
37017			return nil, err
37018		}
37019		rsArray[index] = rs
37020	}
37021	return rsArray, nil
37022}
37023
37024// MarshalJSON is the custom marshaler for ReplicatorStatus.
37025func (rs ReplicatorStatus) MarshalJSON() ([]byte, error) {
37026	rs.Kind = KindReplicatorStatus
37027	objectMap := make(map[string]interface{})
37028	if rs.Kind != "" {
37029		objectMap["Kind"] = rs.Kind
37030	}
37031	return json.Marshal(objectMap)
37032}
37033
37034// AsPrimaryReplicatorStatus is the BasicReplicatorStatus implementation for ReplicatorStatus.
37035func (rs ReplicatorStatus) AsPrimaryReplicatorStatus() (*PrimaryReplicatorStatus, bool) {
37036	return nil, false
37037}
37038
37039// AsSecondaryReplicatorStatus is the BasicReplicatorStatus implementation for ReplicatorStatus.
37040func (rs ReplicatorStatus) AsSecondaryReplicatorStatus() (*SecondaryReplicatorStatus, bool) {
37041	return nil, false
37042}
37043
37044// AsBasicSecondaryReplicatorStatus is the BasicReplicatorStatus implementation for ReplicatorStatus.
37045func (rs ReplicatorStatus) AsBasicSecondaryReplicatorStatus() (BasicSecondaryReplicatorStatus, bool) {
37046	return nil, false
37047}
37048
37049// AsSecondaryActiveReplicatorStatus is the BasicReplicatorStatus implementation for ReplicatorStatus.
37050func (rs ReplicatorStatus) AsSecondaryActiveReplicatorStatus() (*SecondaryActiveReplicatorStatus, bool) {
37051	return nil, false
37052}
37053
37054// AsSecondaryIdleReplicatorStatus is the BasicReplicatorStatus implementation for ReplicatorStatus.
37055func (rs ReplicatorStatus) AsSecondaryIdleReplicatorStatus() (*SecondaryIdleReplicatorStatus, bool) {
37056	return nil, false
37057}
37058
37059// AsReplicatorStatus is the BasicReplicatorStatus implementation for ReplicatorStatus.
37060func (rs ReplicatorStatus) AsReplicatorStatus() (*ReplicatorStatus, bool) {
37061	return &rs, true
37062}
37063
37064// AsBasicReplicatorStatus is the BasicReplicatorStatus implementation for ReplicatorStatus.
37065func (rs ReplicatorStatus) AsBasicReplicatorStatus() (BasicReplicatorStatus, bool) {
37066	return &rs, true
37067}
37068
37069// ResolvedServiceEndpoint endpoint of a resolved service partition.
37070type ResolvedServiceEndpoint struct {
37071	// Kind - The role of the replica where the endpoint is reported. Possible values include: 'ServiceEndpointRoleInvalid', 'ServiceEndpointRoleStateless', 'ServiceEndpointRoleStatefulPrimary', 'ServiceEndpointRoleStatefulSecondary'
37072	Kind ServiceEndpointRole `json:"Kind,omitempty"`
37073	// 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.
37074	Address *string `json:"Address,omitempty"`
37075}
37076
37077// ResolvedServicePartition information about a service partition and its associated endpoints.
37078type ResolvedServicePartition struct {
37079	autorest.Response `json:"-"`
37080	// Name - The full name of the service with 'fabric:' URI scheme.
37081	Name *string `json:"Name,omitempty"`
37082	// PartitionInformation - A representation of the resolved partition.
37083	PartitionInformation BasicPartitionInformation `json:"PartitionInformation,omitempty"`
37084	// Endpoints - List of resolved service endpoints of a service partition.
37085	Endpoints *[]ResolvedServiceEndpoint `json:"Endpoints,omitempty"`
37086	// 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.
37087	Version *string `json:"Version,omitempty"`
37088}
37089
37090// UnmarshalJSON is the custom unmarshaler for ResolvedServicePartition struct.
37091func (rsp *ResolvedServicePartition) UnmarshalJSON(body []byte) error {
37092	var m map[string]*json.RawMessage
37093	err := json.Unmarshal(body, &m)
37094	if err != nil {
37095		return err
37096	}
37097	for k, v := range m {
37098		switch k {
37099		case "Name":
37100			if v != nil {
37101				var name string
37102				err = json.Unmarshal(*v, &name)
37103				if err != nil {
37104					return err
37105				}
37106				rsp.Name = &name
37107			}
37108		case "PartitionInformation":
37109			if v != nil {
37110				partitionInformation, err := unmarshalBasicPartitionInformation(*v)
37111				if err != nil {
37112					return err
37113				}
37114				rsp.PartitionInformation = partitionInformation
37115			}
37116		case "Endpoints":
37117			if v != nil {
37118				var endpoints []ResolvedServiceEndpoint
37119				err = json.Unmarshal(*v, &endpoints)
37120				if err != nil {
37121					return err
37122				}
37123				rsp.Endpoints = &endpoints
37124			}
37125		case "Version":
37126			if v != nil {
37127				var version string
37128				err = json.Unmarshal(*v, &version)
37129				if err != nil {
37130					return err
37131				}
37132				rsp.Version = &version
37133			}
37134		}
37135	}
37136
37137	return nil
37138}
37139
37140// ResourceLimits this type describes the resource limits for a given container. It describes the most
37141// amount of resources a container is allowed to use before being restarted.
37142type ResourceLimits struct {
37143	// MemoryInGB - The memory limit in GB.
37144	MemoryInGB *float64 `json:"memoryInGB,omitempty"`
37145	// CPU - CPU limits in cores. At present, only full cores are supported.
37146	CPU *float64 `json:"cpu,omitempty"`
37147}
37148
37149// ResourceRequests this type describes the requested resources for a given container. It describes the
37150// least amount of resources required for the container. A container can consume more than requested
37151// resources up to the specified limits before being restarted. Currently, the requested resources are
37152// treated as limits.
37153type ResourceRequests struct {
37154	// MemoryInGB - The memory request in GB for this container.
37155	MemoryInGB *float64 `json:"memoryInGB,omitempty"`
37156	// CPU - Requested number of CPU cores. At present, only full cores are supported.
37157	CPU *float64 `json:"cpu,omitempty"`
37158}
37159
37160// ResourceRequirements this type describes the resource requirements for a container or a service.
37161type ResourceRequirements struct {
37162	// Requests - Describes the requested resources for a given container.
37163	Requests *ResourceRequests `json:"requests,omitempty"`
37164	// Limits - Describes the maximum limits on the resources for a given container.
37165	Limits *ResourceLimits `json:"limits,omitempty"`
37166}
37167
37168// RestartDeployedCodePackageDescription defines description for restarting a deployed code package on
37169// Service Fabric node.
37170type RestartDeployedCodePackageDescription struct {
37171	// ServiceManifestName - The name of service manifest that specified this code package.
37172	ServiceManifestName *string `json:"ServiceManifestName,omitempty"`
37173	// ServicePackageActivationID - The ActivationId of a deployed service package. If ServicePackageActivationMode specified at the time of creating the service
37174	// is 'SharedProcess' (or if it is not specified, in which case it defaults to 'SharedProcess'), then value of ServicePackageActivationId
37175	// is always an empty string.
37176	ServicePackageActivationID *string `json:"ServicePackageActivationId,omitempty"`
37177	// CodePackageName - The name of the code package defined in the service manifest.
37178	CodePackageName *string `json:"CodePackageName,omitempty"`
37179	// 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.
37180	// 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.
37181	// 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.
37182	// 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.
37183	CodePackageInstanceID *string `json:"CodePackageInstanceId,omitempty"`
37184}
37185
37186// RestartNodeDescription describes the parameters to restart a Service Fabric node.
37187type RestartNodeDescription struct {
37188	// 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.
37189	NodeInstanceID *string `json:"NodeInstanceId,omitempty"`
37190	// CreateFabricDump - Specify True to create a dump of the fabric node process. This is case-sensitive. Possible values include: 'False', 'True'
37191	CreateFabricDump CreateFabricDump `json:"CreateFabricDump,omitempty"`
37192}
37193
37194// RestartPartitionResult represents information about an operation in a terminal state (Completed or
37195// Faulted).
37196type RestartPartitionResult struct {
37197	// ErrorCode - If OperationState is Completed, this is 0.  If OperationState is Faulted, this is an error code indicating the reason.
37198	ErrorCode *int32 `json:"ErrorCode,omitempty"`
37199	// SelectedPartition - This class returns information about the partition that the user-induced operation acted upon.
37200	SelectedPartition *SelectedPartition `json:"SelectedPartition,omitempty"`
37201}
37202
37203// RestorePartitionDescription specifies the parameters needed to trigger a restore of a specific
37204// partition.
37205type RestorePartitionDescription struct {
37206	// BackupID - Unique backup ID.
37207	BackupID *uuid.UUID `json:"BackupId,omitempty"`
37208	// BackupLocation - Location of the backup relative to the backup storage specified/ configured.
37209	BackupLocation *string `json:"BackupLocation,omitempty"`
37210	// BackupStorage - Location of the backup from where the partition will be restored.
37211	BackupStorage BasicBackupStorageDescription `json:"BackupStorage,omitempty"`
37212}
37213
37214// UnmarshalJSON is the custom unmarshaler for RestorePartitionDescription struct.
37215func (rpd *RestorePartitionDescription) UnmarshalJSON(body []byte) error {
37216	var m map[string]*json.RawMessage
37217	err := json.Unmarshal(body, &m)
37218	if err != nil {
37219		return err
37220	}
37221	for k, v := range m {
37222		switch k {
37223		case "BackupId":
37224			if v != nil {
37225				var backupID uuid.UUID
37226				err = json.Unmarshal(*v, &backupID)
37227				if err != nil {
37228					return err
37229				}
37230				rpd.BackupID = &backupID
37231			}
37232		case "BackupLocation":
37233			if v != nil {
37234				var backupLocation string
37235				err = json.Unmarshal(*v, &backupLocation)
37236				if err != nil {
37237					return err
37238				}
37239				rpd.BackupLocation = &backupLocation
37240			}
37241		case "BackupStorage":
37242			if v != nil {
37243				backupStorage, err := unmarshalBasicBackupStorageDescription(*v)
37244				if err != nil {
37245					return err
37246				}
37247				rpd.BackupStorage = backupStorage
37248			}
37249		}
37250	}
37251
37252	return nil
37253}
37254
37255// RestoreProgressInfo describes the progress of a restore operation on a partition.
37256type RestoreProgressInfo struct {
37257	autorest.Response `json:"-"`
37258	// RestoreState - Represents the current state of the partition restore operation. Possible values include: 'RestoreStateInvalid', 'RestoreStateAccepted', 'RestoreStateRestoreInProgress', 'RestoreStateSuccess', 'RestoreStateFailure', 'RestoreStateTimeout'
37259	RestoreState RestoreState `json:"RestoreState,omitempty"`
37260	// TimeStampUtc - Timestamp when operation succeeded or failed.
37261	TimeStampUtc *date.Time `json:"TimeStampUtc,omitempty"`
37262	// RestoredEpoch - Describes the epoch at which the partition is restored.
37263	RestoredEpoch *Epoch `json:"RestoredEpoch,omitempty"`
37264	// RestoredLsn - Restored LSN.
37265	RestoredLsn *string `json:"RestoredLsn,omitempty"`
37266	// FailureError - Denotes the failure encountered in performing restore operation.
37267	FailureError *FabricErrorError `json:"FailureError,omitempty"`
37268}
37269
37270// ResumeApplicationUpgradeDescription describes the parameters for resuming an unmonitored manual Service
37271// Fabric application upgrade
37272type ResumeApplicationUpgradeDescription struct {
37273	// UpgradeDomainName - The name of the upgrade domain in which to resume the upgrade.
37274	UpgradeDomainName *string `json:"UpgradeDomainName,omitempty"`
37275}
37276
37277// ResumeClusterUpgradeDescription describes the parameters for resuming a cluster upgrade.
37278type ResumeClusterUpgradeDescription struct {
37279	// UpgradeDomain - The next upgrade domain for this cluster upgrade.
37280	UpgradeDomain *string `json:"UpgradeDomain,omitempty"`
37281}
37282
37283// BasicBasicRetentionPolicyDescription describes the retention policy configured.
37284type BasicBasicRetentionPolicyDescription interface {
37285	AsBasicRetentionPolicyDescription() (*BasicRetentionPolicyDescription, bool)
37286	AsRetentionPolicyDescription() (*RetentionPolicyDescription, bool)
37287}
37288
37289// RetentionPolicyDescription describes the retention policy configured.
37290type RetentionPolicyDescription struct {
37291	// RetentionPolicyType - Possible values include: 'RetentionPolicyTypeRetentionPolicyDescription', 'RetentionPolicyTypeBasic1'
37292	RetentionPolicyType RetentionPolicyTypeBasicBasicRetentionPolicyDescription `json:"RetentionPolicyType,omitempty"`
37293}
37294
37295func unmarshalBasicBasicRetentionPolicyDescription(body []byte) (BasicBasicRetentionPolicyDescription, error) {
37296	var m map[string]interface{}
37297	err := json.Unmarshal(body, &m)
37298	if err != nil {
37299		return nil, err
37300	}
37301
37302	switch m["RetentionPolicyType"] {
37303	case string(RetentionPolicyTypeBasic1):
37304		var brpd BasicRetentionPolicyDescription
37305		err := json.Unmarshal(body, &brpd)
37306		return brpd, err
37307	default:
37308		var rpd RetentionPolicyDescription
37309		err := json.Unmarshal(body, &rpd)
37310		return rpd, err
37311	}
37312}
37313func unmarshalBasicBasicRetentionPolicyDescriptionArray(body []byte) ([]BasicBasicRetentionPolicyDescription, error) {
37314	var rawMessages []*json.RawMessage
37315	err := json.Unmarshal(body, &rawMessages)
37316	if err != nil {
37317		return nil, err
37318	}
37319
37320	rpdArray := make([]BasicBasicRetentionPolicyDescription, len(rawMessages))
37321
37322	for index, rawMessage := range rawMessages {
37323		rpd, err := unmarshalBasicBasicRetentionPolicyDescription(*rawMessage)
37324		if err != nil {
37325			return nil, err
37326		}
37327		rpdArray[index] = rpd
37328	}
37329	return rpdArray, nil
37330}
37331
37332// MarshalJSON is the custom marshaler for RetentionPolicyDescription.
37333func (rpd RetentionPolicyDescription) MarshalJSON() ([]byte, error) {
37334	rpd.RetentionPolicyType = RetentionPolicyTypeRetentionPolicyDescription
37335	objectMap := make(map[string]interface{})
37336	if rpd.RetentionPolicyType != "" {
37337		objectMap["RetentionPolicyType"] = rpd.RetentionPolicyType
37338	}
37339	return json.Marshal(objectMap)
37340}
37341
37342// AsBasicRetentionPolicyDescription is the BasicBasicRetentionPolicyDescription implementation for RetentionPolicyDescription.
37343func (rpd RetentionPolicyDescription) AsBasicRetentionPolicyDescription() (*BasicRetentionPolicyDescription, bool) {
37344	return nil, false
37345}
37346
37347// AsRetentionPolicyDescription is the BasicBasicRetentionPolicyDescription implementation for RetentionPolicyDescription.
37348func (rpd RetentionPolicyDescription) AsRetentionPolicyDescription() (*RetentionPolicyDescription, bool) {
37349	return &rpd, true
37350}
37351
37352// AsBasicBasicRetentionPolicyDescription is the BasicBasicRetentionPolicyDescription implementation for RetentionPolicyDescription.
37353func (rpd RetentionPolicyDescription) AsBasicBasicRetentionPolicyDescription() (BasicBasicRetentionPolicyDescription, bool) {
37354	return &rpd, true
37355}
37356
37357// RollingUpgradeUpdateDescription describes the parameters for updating a rolling upgrade of application
37358// or cluster.
37359type RollingUpgradeUpdateDescription struct {
37360	// 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'
37361	RollingUpgradeMode UpgradeMode `json:"RollingUpgradeMode,omitempty"`
37362	// 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).
37363	ForceRestart *bool `json:"ForceRestart,omitempty"`
37364	// 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).
37365	ReplicaSetCheckTimeoutInMilliseconds *int64 `json:"ReplicaSetCheckTimeoutInMilliseconds,omitempty"`
37366	// FailureAction - The compensating action to perform when a Monitored upgrade encounters monitoring policy or health policy violations.
37367	// Invalid indicates the failure action is invalid. Rollback specifies that the upgrade will start rolling back automatically.
37368	// Manual indicates that the upgrade will switch to UnmonitoredManual upgrade mode. Possible values include: 'FailureActionInvalid', 'FailureActionRollback', 'FailureActionManual'
37369	FailureAction FailureAction `json:"FailureAction,omitempty"`
37370	// 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.
37371	HealthCheckWaitDurationInMilliseconds *string `json:"HealthCheckWaitDurationInMilliseconds,omitempty"`
37372	// 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.
37373	HealthCheckStableDurationInMilliseconds *string `json:"HealthCheckStableDurationInMilliseconds,omitempty"`
37374	// 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.
37375	HealthCheckRetryTimeoutInMilliseconds *string `json:"HealthCheckRetryTimeoutInMilliseconds,omitempty"`
37376	// 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.
37377	UpgradeTimeoutInMilliseconds *string `json:"UpgradeTimeoutInMilliseconds,omitempty"`
37378	// 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.
37379	UpgradeDomainTimeoutInMilliseconds *string `json:"UpgradeDomainTimeoutInMilliseconds,omitempty"`
37380	// InstanceCloseDelayDurationInSeconds - Duration in seconds, to wait before a stateless instance is closed, to allow the active requests to drain gracefully. This would be effective when the instance is closing during the application/cluster
37381	// upgrade, only for those instances which have a non-zero delay duration configured in the service description. See InstanceCloseDelayDurationSeconds property in $ref: "#/definitions/StatelessServiceDescription.yaml" for details.
37382	// Note, the default value of InstanceCloseDelayDurationInSeconds is 4294967295, which indicates that the behavior will entirely depend on the delay configured in the stateless service description.
37383	InstanceCloseDelayDurationInSeconds *int64 `json:"InstanceCloseDelayDurationInSeconds,omitempty"`
37384}
37385
37386// RunToCompletionExecutionPolicy the run to completion execution policy, the service will perform its
37387// desired operation and complete successfully. If the service encounters failure, it will restarted based
37388// on restart policy specified. If the service completes its operation successfully, it will not be
37389// restarted again.
37390type RunToCompletionExecutionPolicy struct {
37391	// Restart - Enumerates the restart policy for RunToCompletionExecutionPolicy. Possible values include: 'OnFailure', 'Never'
37392	Restart RestartPolicy `json:"restart,omitempty"`
37393	// Type - Possible values include: 'TypeExecutionPolicy', 'TypeDefault', 'TypeRunToCompletion'
37394	Type TypeBasicExecutionPolicy `json:"type,omitempty"`
37395}
37396
37397// MarshalJSON is the custom marshaler for RunToCompletionExecutionPolicy.
37398func (rtcep RunToCompletionExecutionPolicy) MarshalJSON() ([]byte, error) {
37399	rtcep.Type = TypeRunToCompletion
37400	objectMap := make(map[string]interface{})
37401	if rtcep.Restart != "" {
37402		objectMap["restart"] = rtcep.Restart
37403	}
37404	if rtcep.Type != "" {
37405		objectMap["type"] = rtcep.Type
37406	}
37407	return json.Marshal(objectMap)
37408}
37409
37410// AsDefaultExecutionPolicy is the BasicExecutionPolicy implementation for RunToCompletionExecutionPolicy.
37411func (rtcep RunToCompletionExecutionPolicy) AsDefaultExecutionPolicy() (*DefaultExecutionPolicy, bool) {
37412	return nil, false
37413}
37414
37415// AsRunToCompletionExecutionPolicy is the BasicExecutionPolicy implementation for RunToCompletionExecutionPolicy.
37416func (rtcep RunToCompletionExecutionPolicy) AsRunToCompletionExecutionPolicy() (*RunToCompletionExecutionPolicy, bool) {
37417	return &rtcep, true
37418}
37419
37420// AsExecutionPolicy is the BasicExecutionPolicy implementation for RunToCompletionExecutionPolicy.
37421func (rtcep RunToCompletionExecutionPolicy) AsExecutionPolicy() (*ExecutionPolicy, bool) {
37422	return nil, false
37423}
37424
37425// AsBasicExecutionPolicy is the BasicExecutionPolicy implementation for RunToCompletionExecutionPolicy.
37426func (rtcep RunToCompletionExecutionPolicy) AsBasicExecutionPolicy() (BasicExecutionPolicy, bool) {
37427	return &rtcep, true
37428}
37429
37430// BasicSafetyCheck represents a safety check performed by service fabric before continuing with the operations. These
37431// checks ensure the availability of the service and the reliability of the state.
37432type BasicSafetyCheck interface {
37433	AsPartitionSafetyCheck() (*PartitionSafetyCheck, bool)
37434	AsBasicPartitionSafetyCheck() (BasicPartitionSafetyCheck, bool)
37435	AsEnsureAvailabilitySafetyCheck() (*EnsureAvailabilitySafetyCheck, bool)
37436	AsEnsurePartitionQuorumSafetyCheck() (*EnsurePartitionQuorumSafetyCheck, bool)
37437	AsSeedNodeSafetyCheck() (*SeedNodeSafetyCheck, bool)
37438	AsWaitForInbuildReplicaSafetyCheck() (*WaitForInbuildReplicaSafetyCheck, bool)
37439	AsWaitForPrimaryPlacementSafetyCheck() (*WaitForPrimaryPlacementSafetyCheck, bool)
37440	AsWaitForPrimarySwapSafetyCheck() (*WaitForPrimarySwapSafetyCheck, bool)
37441	AsWaitForReconfigurationSafetyCheck() (*WaitForReconfigurationSafetyCheck, bool)
37442	AsSafetyCheck() (*SafetyCheck, bool)
37443}
37444
37445// SafetyCheck represents a safety check performed by service fabric before continuing with the operations.
37446// These checks ensure the availability of the service and the reliability of the state.
37447type SafetyCheck struct {
37448	// Kind - Possible values include: 'KindSafetyCheck', 'KindPartitionSafetyCheck', 'KindEnsureAvailability', 'KindEnsurePartitionQuorum', 'KindEnsureSeedNodeQuorum', 'KindWaitForInbuildReplica', 'KindWaitForPrimaryPlacement', 'KindWaitForPrimarySwap', 'KindWaitForReconfiguration'
37449	Kind KindBasicSafetyCheck `json:"Kind,omitempty"`
37450}
37451
37452func unmarshalBasicSafetyCheck(body []byte) (BasicSafetyCheck, error) {
37453	var m map[string]interface{}
37454	err := json.Unmarshal(body, &m)
37455	if err != nil {
37456		return nil, err
37457	}
37458
37459	switch m["Kind"] {
37460	case string(KindPartitionSafetyCheck):
37461		var psc PartitionSafetyCheck
37462		err := json.Unmarshal(body, &psc)
37463		return psc, err
37464	case string(KindEnsureAvailability):
37465		var easc EnsureAvailabilitySafetyCheck
37466		err := json.Unmarshal(body, &easc)
37467		return easc, err
37468	case string(KindEnsurePartitionQuorum):
37469		var epqsc EnsurePartitionQuorumSafetyCheck
37470		err := json.Unmarshal(body, &epqsc)
37471		return epqsc, err
37472	case string(KindEnsureSeedNodeQuorum):
37473		var snsc SeedNodeSafetyCheck
37474		err := json.Unmarshal(body, &snsc)
37475		return snsc, err
37476	case string(KindWaitForInbuildReplica):
37477		var wfirsc WaitForInbuildReplicaSafetyCheck
37478		err := json.Unmarshal(body, &wfirsc)
37479		return wfirsc, err
37480	case string(KindWaitForPrimaryPlacement):
37481		var wfppsc WaitForPrimaryPlacementSafetyCheck
37482		err := json.Unmarshal(body, &wfppsc)
37483		return wfppsc, err
37484	case string(KindWaitForPrimarySwap):
37485		var wfpssc WaitForPrimarySwapSafetyCheck
37486		err := json.Unmarshal(body, &wfpssc)
37487		return wfpssc, err
37488	case string(KindWaitForReconfiguration):
37489		var wfrsc WaitForReconfigurationSafetyCheck
37490		err := json.Unmarshal(body, &wfrsc)
37491		return wfrsc, err
37492	default:
37493		var sc SafetyCheck
37494		err := json.Unmarshal(body, &sc)
37495		return sc, err
37496	}
37497}
37498func unmarshalBasicSafetyCheckArray(body []byte) ([]BasicSafetyCheck, error) {
37499	var rawMessages []*json.RawMessage
37500	err := json.Unmarshal(body, &rawMessages)
37501	if err != nil {
37502		return nil, err
37503	}
37504
37505	scArray := make([]BasicSafetyCheck, len(rawMessages))
37506
37507	for index, rawMessage := range rawMessages {
37508		sc, err := unmarshalBasicSafetyCheck(*rawMessage)
37509		if err != nil {
37510			return nil, err
37511		}
37512		scArray[index] = sc
37513	}
37514	return scArray, nil
37515}
37516
37517// MarshalJSON is the custom marshaler for SafetyCheck.
37518func (sc SafetyCheck) MarshalJSON() ([]byte, error) {
37519	sc.Kind = KindSafetyCheck
37520	objectMap := make(map[string]interface{})
37521	if sc.Kind != "" {
37522		objectMap["Kind"] = sc.Kind
37523	}
37524	return json.Marshal(objectMap)
37525}
37526
37527// AsPartitionSafetyCheck is the BasicSafetyCheck implementation for SafetyCheck.
37528func (sc SafetyCheck) AsPartitionSafetyCheck() (*PartitionSafetyCheck, bool) {
37529	return nil, false
37530}
37531
37532// AsBasicPartitionSafetyCheck is the BasicSafetyCheck implementation for SafetyCheck.
37533func (sc SafetyCheck) AsBasicPartitionSafetyCheck() (BasicPartitionSafetyCheck, bool) {
37534	return nil, false
37535}
37536
37537// AsEnsureAvailabilitySafetyCheck is the BasicSafetyCheck implementation for SafetyCheck.
37538func (sc SafetyCheck) AsEnsureAvailabilitySafetyCheck() (*EnsureAvailabilitySafetyCheck, bool) {
37539	return nil, false
37540}
37541
37542// AsEnsurePartitionQuorumSafetyCheck is the BasicSafetyCheck implementation for SafetyCheck.
37543func (sc SafetyCheck) AsEnsurePartitionQuorumSafetyCheck() (*EnsurePartitionQuorumSafetyCheck, bool) {
37544	return nil, false
37545}
37546
37547// AsSeedNodeSafetyCheck is the BasicSafetyCheck implementation for SafetyCheck.
37548func (sc SafetyCheck) AsSeedNodeSafetyCheck() (*SeedNodeSafetyCheck, bool) {
37549	return nil, false
37550}
37551
37552// AsWaitForInbuildReplicaSafetyCheck is the BasicSafetyCheck implementation for SafetyCheck.
37553func (sc SafetyCheck) AsWaitForInbuildReplicaSafetyCheck() (*WaitForInbuildReplicaSafetyCheck, bool) {
37554	return nil, false
37555}
37556
37557// AsWaitForPrimaryPlacementSafetyCheck is the BasicSafetyCheck implementation for SafetyCheck.
37558func (sc SafetyCheck) AsWaitForPrimaryPlacementSafetyCheck() (*WaitForPrimaryPlacementSafetyCheck, bool) {
37559	return nil, false
37560}
37561
37562// AsWaitForPrimarySwapSafetyCheck is the BasicSafetyCheck implementation for SafetyCheck.
37563func (sc SafetyCheck) AsWaitForPrimarySwapSafetyCheck() (*WaitForPrimarySwapSafetyCheck, bool) {
37564	return nil, false
37565}
37566
37567// AsWaitForReconfigurationSafetyCheck is the BasicSafetyCheck implementation for SafetyCheck.
37568func (sc SafetyCheck) AsWaitForReconfigurationSafetyCheck() (*WaitForReconfigurationSafetyCheck, bool) {
37569	return nil, false
37570}
37571
37572// AsSafetyCheck is the BasicSafetyCheck implementation for SafetyCheck.
37573func (sc SafetyCheck) AsSafetyCheck() (*SafetyCheck, bool) {
37574	return &sc, true
37575}
37576
37577// AsBasicSafetyCheck is the BasicSafetyCheck implementation for SafetyCheck.
37578func (sc SafetyCheck) AsBasicSafetyCheck() (BasicSafetyCheck, bool) {
37579	return &sc, true
37580}
37581
37582// SafetyCheckWrapper a wrapper for the safety check object. Safety checks are performed by service fabric
37583// before continuing with the operations. These checks ensure the availability of the service and the
37584// reliability of the state.
37585type SafetyCheckWrapper struct {
37586	// 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.
37587	SafetyCheck BasicSafetyCheck `json:"SafetyCheck,omitempty"`
37588}
37589
37590// UnmarshalJSON is the custom unmarshaler for SafetyCheckWrapper struct.
37591func (scw *SafetyCheckWrapper) UnmarshalJSON(body []byte) error {
37592	var m map[string]*json.RawMessage
37593	err := json.Unmarshal(body, &m)
37594	if err != nil {
37595		return err
37596	}
37597	for k, v := range m {
37598		switch k {
37599		case "SafetyCheck":
37600			if v != nil {
37601				safetyCheck, err := unmarshalBasicSafetyCheck(*v)
37602				if err != nil {
37603					return err
37604				}
37605				scw.SafetyCheck = safetyCheck
37606			}
37607		}
37608	}
37609
37610	return nil
37611}
37612
37613// BasicScalingMechanismDescription describes the mechanism for performing a scaling operation.
37614type BasicScalingMechanismDescription interface {
37615	AsPartitionInstanceCountScaleMechanism() (*PartitionInstanceCountScaleMechanism, bool)
37616	AsAddRemoveIncrementalNamedPartitionScalingMechanism() (*AddRemoveIncrementalNamedPartitionScalingMechanism, bool)
37617	AsScalingMechanismDescription() (*ScalingMechanismDescription, bool)
37618}
37619
37620// ScalingMechanismDescription describes the mechanism for performing a scaling operation.
37621type ScalingMechanismDescription struct {
37622	// Kind - Possible values include: 'KindScalingMechanismDescription', 'KindPartitionInstanceCount', 'KindAddRemoveIncrementalNamedPartition'
37623	Kind KindBasicScalingMechanismDescription `json:"Kind,omitempty"`
37624}
37625
37626func unmarshalBasicScalingMechanismDescription(body []byte) (BasicScalingMechanismDescription, error) {
37627	var m map[string]interface{}
37628	err := json.Unmarshal(body, &m)
37629	if err != nil {
37630		return nil, err
37631	}
37632
37633	switch m["Kind"] {
37634	case string(KindPartitionInstanceCount):
37635		var picsm PartitionInstanceCountScaleMechanism
37636		err := json.Unmarshal(body, &picsm)
37637		return picsm, err
37638	case string(KindAddRemoveIncrementalNamedPartition):
37639		var arinpsm AddRemoveIncrementalNamedPartitionScalingMechanism
37640		err := json.Unmarshal(body, &arinpsm)
37641		return arinpsm, err
37642	default:
37643		var smd ScalingMechanismDescription
37644		err := json.Unmarshal(body, &smd)
37645		return smd, err
37646	}
37647}
37648func unmarshalBasicScalingMechanismDescriptionArray(body []byte) ([]BasicScalingMechanismDescription, error) {
37649	var rawMessages []*json.RawMessage
37650	err := json.Unmarshal(body, &rawMessages)
37651	if err != nil {
37652		return nil, err
37653	}
37654
37655	smdArray := make([]BasicScalingMechanismDescription, len(rawMessages))
37656
37657	for index, rawMessage := range rawMessages {
37658		smd, err := unmarshalBasicScalingMechanismDescription(*rawMessage)
37659		if err != nil {
37660			return nil, err
37661		}
37662		smdArray[index] = smd
37663	}
37664	return smdArray, nil
37665}
37666
37667// MarshalJSON is the custom marshaler for ScalingMechanismDescription.
37668func (smd ScalingMechanismDescription) MarshalJSON() ([]byte, error) {
37669	smd.Kind = KindScalingMechanismDescription
37670	objectMap := make(map[string]interface{})
37671	if smd.Kind != "" {
37672		objectMap["Kind"] = smd.Kind
37673	}
37674	return json.Marshal(objectMap)
37675}
37676
37677// AsPartitionInstanceCountScaleMechanism is the BasicScalingMechanismDescription implementation for ScalingMechanismDescription.
37678func (smd ScalingMechanismDescription) AsPartitionInstanceCountScaleMechanism() (*PartitionInstanceCountScaleMechanism, bool) {
37679	return nil, false
37680}
37681
37682// AsAddRemoveIncrementalNamedPartitionScalingMechanism is the BasicScalingMechanismDescription implementation for ScalingMechanismDescription.
37683func (smd ScalingMechanismDescription) AsAddRemoveIncrementalNamedPartitionScalingMechanism() (*AddRemoveIncrementalNamedPartitionScalingMechanism, bool) {
37684	return nil, false
37685}
37686
37687// AsScalingMechanismDescription is the BasicScalingMechanismDescription implementation for ScalingMechanismDescription.
37688func (smd ScalingMechanismDescription) AsScalingMechanismDescription() (*ScalingMechanismDescription, bool) {
37689	return &smd, true
37690}
37691
37692// AsBasicScalingMechanismDescription is the BasicScalingMechanismDescription implementation for ScalingMechanismDescription.
37693func (smd ScalingMechanismDescription) AsBasicScalingMechanismDescription() (BasicScalingMechanismDescription, bool) {
37694	return &smd, true
37695}
37696
37697// ScalingPolicyDescription describes how the scaling should be performed
37698type ScalingPolicyDescription struct {
37699	// ScalingTrigger - Specifies the trigger associated with this scaling policy
37700	ScalingTrigger BasicScalingTriggerDescription `json:"ScalingTrigger,omitempty"`
37701	// ScalingMechanism - Specifies the mechanism associated with this scaling policy
37702	ScalingMechanism BasicScalingMechanismDescription `json:"ScalingMechanism,omitempty"`
37703}
37704
37705// UnmarshalJSON is the custom unmarshaler for ScalingPolicyDescription struct.
37706func (spd *ScalingPolicyDescription) UnmarshalJSON(body []byte) error {
37707	var m map[string]*json.RawMessage
37708	err := json.Unmarshal(body, &m)
37709	if err != nil {
37710		return err
37711	}
37712	for k, v := range m {
37713		switch k {
37714		case "ScalingTrigger":
37715			if v != nil {
37716				scalingTrigger, err := unmarshalBasicScalingTriggerDescription(*v)
37717				if err != nil {
37718					return err
37719				}
37720				spd.ScalingTrigger = scalingTrigger
37721			}
37722		case "ScalingMechanism":
37723			if v != nil {
37724				scalingMechanism, err := unmarshalBasicScalingMechanismDescription(*v)
37725				if err != nil {
37726					return err
37727				}
37728				spd.ScalingMechanism = scalingMechanism
37729			}
37730		}
37731	}
37732
37733	return nil
37734}
37735
37736// BasicScalingTriggerDescription describes the trigger for performing a scaling operation.
37737type BasicScalingTriggerDescription interface {
37738	AsAveragePartitionLoadScalingTrigger() (*AveragePartitionLoadScalingTrigger, bool)
37739	AsAverageServiceLoadScalingTrigger() (*AverageServiceLoadScalingTrigger, bool)
37740	AsScalingTriggerDescription() (*ScalingTriggerDescription, bool)
37741}
37742
37743// ScalingTriggerDescription describes the trigger for performing a scaling operation.
37744type ScalingTriggerDescription struct {
37745	// Kind - Possible values include: 'KindScalingTriggerDescription', 'KindAveragePartitionLoad', 'KindAverageServiceLoad'
37746	Kind KindBasicScalingTriggerDescription `json:"Kind,omitempty"`
37747}
37748
37749func unmarshalBasicScalingTriggerDescription(body []byte) (BasicScalingTriggerDescription, error) {
37750	var m map[string]interface{}
37751	err := json.Unmarshal(body, &m)
37752	if err != nil {
37753		return nil, err
37754	}
37755
37756	switch m["Kind"] {
37757	case string(KindAveragePartitionLoad):
37758		var aplst AveragePartitionLoadScalingTrigger
37759		err := json.Unmarshal(body, &aplst)
37760		return aplst, err
37761	case string(KindAverageServiceLoad):
37762		var aslst AverageServiceLoadScalingTrigger
37763		err := json.Unmarshal(body, &aslst)
37764		return aslst, err
37765	default:
37766		var std ScalingTriggerDescription
37767		err := json.Unmarshal(body, &std)
37768		return std, err
37769	}
37770}
37771func unmarshalBasicScalingTriggerDescriptionArray(body []byte) ([]BasicScalingTriggerDescription, error) {
37772	var rawMessages []*json.RawMessage
37773	err := json.Unmarshal(body, &rawMessages)
37774	if err != nil {
37775		return nil, err
37776	}
37777
37778	stdArray := make([]BasicScalingTriggerDescription, len(rawMessages))
37779
37780	for index, rawMessage := range rawMessages {
37781		std, err := unmarshalBasicScalingTriggerDescription(*rawMessage)
37782		if err != nil {
37783			return nil, err
37784		}
37785		stdArray[index] = std
37786	}
37787	return stdArray, nil
37788}
37789
37790// MarshalJSON is the custom marshaler for ScalingTriggerDescription.
37791func (std ScalingTriggerDescription) MarshalJSON() ([]byte, error) {
37792	std.Kind = KindScalingTriggerDescription
37793	objectMap := make(map[string]interface{})
37794	if std.Kind != "" {
37795		objectMap["Kind"] = std.Kind
37796	}
37797	return json.Marshal(objectMap)
37798}
37799
37800// AsAveragePartitionLoadScalingTrigger is the BasicScalingTriggerDescription implementation for ScalingTriggerDescription.
37801func (std ScalingTriggerDescription) AsAveragePartitionLoadScalingTrigger() (*AveragePartitionLoadScalingTrigger, bool) {
37802	return nil, false
37803}
37804
37805// AsAverageServiceLoadScalingTrigger is the BasicScalingTriggerDescription implementation for ScalingTriggerDescription.
37806func (std ScalingTriggerDescription) AsAverageServiceLoadScalingTrigger() (*AverageServiceLoadScalingTrigger, bool) {
37807	return nil, false
37808}
37809
37810// AsScalingTriggerDescription is the BasicScalingTriggerDescription implementation for ScalingTriggerDescription.
37811func (std ScalingTriggerDescription) AsScalingTriggerDescription() (*ScalingTriggerDescription, bool) {
37812	return &std, true
37813}
37814
37815// AsBasicScalingTriggerDescription is the BasicScalingTriggerDescription implementation for ScalingTriggerDescription.
37816func (std ScalingTriggerDescription) AsBasicScalingTriggerDescription() (BasicScalingTriggerDescription, bool) {
37817	return &std, true
37818}
37819
37820// SecondaryActiveReplicatorStatus status of the secondary replicator when it is in active mode and is part
37821// of the replica set.
37822type SecondaryActiveReplicatorStatus struct {
37823	// ReplicationQueueStatus - Details about the replication queue on the secondary replicator.
37824	ReplicationQueueStatus *ReplicatorQueueStatus `json:"ReplicationQueueStatus,omitempty"`
37825	// LastReplicationOperationReceivedTimeUtc - The last time-stamp (UTC) at which a replication operation was received from the primary.
37826	// UTC 0 represents an invalid value, indicating that a replication operation message was never received.
37827	LastReplicationOperationReceivedTimeUtc *date.Time `json:"LastReplicationOperationReceivedTimeUtc,omitempty"`
37828	// IsInBuild - Value that indicates whether the replica is currently being built.
37829	IsInBuild *bool `json:"IsInBuild,omitempty"`
37830	// CopyQueueStatus - Details about the copy queue on the secondary replicator.
37831	CopyQueueStatus *ReplicatorQueueStatus `json:"CopyQueueStatus,omitempty"`
37832	// LastCopyOperationReceivedTimeUtc - The last time-stamp (UTC) at which a copy operation was received from the primary.
37833	// UTC 0 represents an invalid value, indicating that a copy operation message was never received.
37834	LastCopyOperationReceivedTimeUtc *date.Time `json:"LastCopyOperationReceivedTimeUtc,omitempty"`
37835	// LastAcknowledgementSentTimeUtc - The last time-stamp (UTC) at which an acknowledgment was sent to the primary replicator.
37836	// UTC 0 represents an invalid value, indicating that an acknowledgment message was never sent.
37837	LastAcknowledgementSentTimeUtc *date.Time `json:"LastAcknowledgementSentTimeUtc,omitempty"`
37838	// Kind - Possible values include: 'KindReplicatorStatus', 'KindPrimary', 'KindSecondaryReplicatorStatus', 'KindActiveSecondary', 'KindIdleSecondary'
37839	Kind KindBasicReplicatorStatus `json:"Kind,omitempty"`
37840}
37841
37842// MarshalJSON is the custom marshaler for SecondaryActiveReplicatorStatus.
37843func (sars SecondaryActiveReplicatorStatus) MarshalJSON() ([]byte, error) {
37844	sars.Kind = KindActiveSecondary
37845	objectMap := make(map[string]interface{})
37846	if sars.ReplicationQueueStatus != nil {
37847		objectMap["ReplicationQueueStatus"] = sars.ReplicationQueueStatus
37848	}
37849	if sars.LastReplicationOperationReceivedTimeUtc != nil {
37850		objectMap["LastReplicationOperationReceivedTimeUtc"] = sars.LastReplicationOperationReceivedTimeUtc
37851	}
37852	if sars.IsInBuild != nil {
37853		objectMap["IsInBuild"] = sars.IsInBuild
37854	}
37855	if sars.CopyQueueStatus != nil {
37856		objectMap["CopyQueueStatus"] = sars.CopyQueueStatus
37857	}
37858	if sars.LastCopyOperationReceivedTimeUtc != nil {
37859		objectMap["LastCopyOperationReceivedTimeUtc"] = sars.LastCopyOperationReceivedTimeUtc
37860	}
37861	if sars.LastAcknowledgementSentTimeUtc != nil {
37862		objectMap["LastAcknowledgementSentTimeUtc"] = sars.LastAcknowledgementSentTimeUtc
37863	}
37864	if sars.Kind != "" {
37865		objectMap["Kind"] = sars.Kind
37866	}
37867	return json.Marshal(objectMap)
37868}
37869
37870// AsPrimaryReplicatorStatus is the BasicReplicatorStatus implementation for SecondaryActiveReplicatorStatus.
37871func (sars SecondaryActiveReplicatorStatus) AsPrimaryReplicatorStatus() (*PrimaryReplicatorStatus, bool) {
37872	return nil, false
37873}
37874
37875// AsSecondaryReplicatorStatus is the BasicReplicatorStatus implementation for SecondaryActiveReplicatorStatus.
37876func (sars SecondaryActiveReplicatorStatus) AsSecondaryReplicatorStatus() (*SecondaryReplicatorStatus, bool) {
37877	return nil, false
37878}
37879
37880// AsBasicSecondaryReplicatorStatus is the BasicReplicatorStatus implementation for SecondaryActiveReplicatorStatus.
37881func (sars SecondaryActiveReplicatorStatus) AsBasicSecondaryReplicatorStatus() (BasicSecondaryReplicatorStatus, bool) {
37882	return &sars, true
37883}
37884
37885// AsSecondaryActiveReplicatorStatus is the BasicReplicatorStatus implementation for SecondaryActiveReplicatorStatus.
37886func (sars SecondaryActiveReplicatorStatus) AsSecondaryActiveReplicatorStatus() (*SecondaryActiveReplicatorStatus, bool) {
37887	return &sars, true
37888}
37889
37890// AsSecondaryIdleReplicatorStatus is the BasicReplicatorStatus implementation for SecondaryActiveReplicatorStatus.
37891func (sars SecondaryActiveReplicatorStatus) AsSecondaryIdleReplicatorStatus() (*SecondaryIdleReplicatorStatus, bool) {
37892	return nil, false
37893}
37894
37895// AsReplicatorStatus is the BasicReplicatorStatus implementation for SecondaryActiveReplicatorStatus.
37896func (sars SecondaryActiveReplicatorStatus) AsReplicatorStatus() (*ReplicatorStatus, bool) {
37897	return nil, false
37898}
37899
37900// AsBasicReplicatorStatus is the BasicReplicatorStatus implementation for SecondaryActiveReplicatorStatus.
37901func (sars SecondaryActiveReplicatorStatus) AsBasicReplicatorStatus() (BasicReplicatorStatus, bool) {
37902	return &sars, true
37903}
37904
37905// SecondaryIdleReplicatorStatus status of the secondary replicator when it is in idle mode and is being
37906// built by the primary.
37907type SecondaryIdleReplicatorStatus struct {
37908	// ReplicationQueueStatus - Details about the replication queue on the secondary replicator.
37909	ReplicationQueueStatus *ReplicatorQueueStatus `json:"ReplicationQueueStatus,omitempty"`
37910	// LastReplicationOperationReceivedTimeUtc - The last time-stamp (UTC) at which a replication operation was received from the primary.
37911	// UTC 0 represents an invalid value, indicating that a replication operation message was never received.
37912	LastReplicationOperationReceivedTimeUtc *date.Time `json:"LastReplicationOperationReceivedTimeUtc,omitempty"`
37913	// IsInBuild - Value that indicates whether the replica is currently being built.
37914	IsInBuild *bool `json:"IsInBuild,omitempty"`
37915	// CopyQueueStatus - Details about the copy queue on the secondary replicator.
37916	CopyQueueStatus *ReplicatorQueueStatus `json:"CopyQueueStatus,omitempty"`
37917	// LastCopyOperationReceivedTimeUtc - The last time-stamp (UTC) at which a copy operation was received from the primary.
37918	// UTC 0 represents an invalid value, indicating that a copy operation message was never received.
37919	LastCopyOperationReceivedTimeUtc *date.Time `json:"LastCopyOperationReceivedTimeUtc,omitempty"`
37920	// LastAcknowledgementSentTimeUtc - The last time-stamp (UTC) at which an acknowledgment was sent to the primary replicator.
37921	// UTC 0 represents an invalid value, indicating that an acknowledgment message was never sent.
37922	LastAcknowledgementSentTimeUtc *date.Time `json:"LastAcknowledgementSentTimeUtc,omitempty"`
37923	// Kind - Possible values include: 'KindReplicatorStatus', 'KindPrimary', 'KindSecondaryReplicatorStatus', 'KindActiveSecondary', 'KindIdleSecondary'
37924	Kind KindBasicReplicatorStatus `json:"Kind,omitempty"`
37925}
37926
37927// MarshalJSON is the custom marshaler for SecondaryIdleReplicatorStatus.
37928func (sirs SecondaryIdleReplicatorStatus) MarshalJSON() ([]byte, error) {
37929	sirs.Kind = KindIdleSecondary
37930	objectMap := make(map[string]interface{})
37931	if sirs.ReplicationQueueStatus != nil {
37932		objectMap["ReplicationQueueStatus"] = sirs.ReplicationQueueStatus
37933	}
37934	if sirs.LastReplicationOperationReceivedTimeUtc != nil {
37935		objectMap["LastReplicationOperationReceivedTimeUtc"] = sirs.LastReplicationOperationReceivedTimeUtc
37936	}
37937	if sirs.IsInBuild != nil {
37938		objectMap["IsInBuild"] = sirs.IsInBuild
37939	}
37940	if sirs.CopyQueueStatus != nil {
37941		objectMap["CopyQueueStatus"] = sirs.CopyQueueStatus
37942	}
37943	if sirs.LastCopyOperationReceivedTimeUtc != nil {
37944		objectMap["LastCopyOperationReceivedTimeUtc"] = sirs.LastCopyOperationReceivedTimeUtc
37945	}
37946	if sirs.LastAcknowledgementSentTimeUtc != nil {
37947		objectMap["LastAcknowledgementSentTimeUtc"] = sirs.LastAcknowledgementSentTimeUtc
37948	}
37949	if sirs.Kind != "" {
37950		objectMap["Kind"] = sirs.Kind
37951	}
37952	return json.Marshal(objectMap)
37953}
37954
37955// AsPrimaryReplicatorStatus is the BasicReplicatorStatus implementation for SecondaryIdleReplicatorStatus.
37956func (sirs SecondaryIdleReplicatorStatus) AsPrimaryReplicatorStatus() (*PrimaryReplicatorStatus, bool) {
37957	return nil, false
37958}
37959
37960// AsSecondaryReplicatorStatus is the BasicReplicatorStatus implementation for SecondaryIdleReplicatorStatus.
37961func (sirs SecondaryIdleReplicatorStatus) AsSecondaryReplicatorStatus() (*SecondaryReplicatorStatus, bool) {
37962	return nil, false
37963}
37964
37965// AsBasicSecondaryReplicatorStatus is the BasicReplicatorStatus implementation for SecondaryIdleReplicatorStatus.
37966func (sirs SecondaryIdleReplicatorStatus) AsBasicSecondaryReplicatorStatus() (BasicSecondaryReplicatorStatus, bool) {
37967	return &sirs, true
37968}
37969
37970// AsSecondaryActiveReplicatorStatus is the BasicReplicatorStatus implementation for SecondaryIdleReplicatorStatus.
37971func (sirs SecondaryIdleReplicatorStatus) AsSecondaryActiveReplicatorStatus() (*SecondaryActiveReplicatorStatus, bool) {
37972	return nil, false
37973}
37974
37975// AsSecondaryIdleReplicatorStatus is the BasicReplicatorStatus implementation for SecondaryIdleReplicatorStatus.
37976func (sirs SecondaryIdleReplicatorStatus) AsSecondaryIdleReplicatorStatus() (*SecondaryIdleReplicatorStatus, bool) {
37977	return &sirs, true
37978}
37979
37980// AsReplicatorStatus is the BasicReplicatorStatus implementation for SecondaryIdleReplicatorStatus.
37981func (sirs SecondaryIdleReplicatorStatus) AsReplicatorStatus() (*ReplicatorStatus, bool) {
37982	return nil, false
37983}
37984
37985// AsBasicReplicatorStatus is the BasicReplicatorStatus implementation for SecondaryIdleReplicatorStatus.
37986func (sirs SecondaryIdleReplicatorStatus) AsBasicReplicatorStatus() (BasicReplicatorStatus, bool) {
37987	return &sirs, true
37988}
37989
37990// BasicSecondaryReplicatorStatus provides statistics about the Service Fabric Replicator, when it is functioning in a
37991// ActiveSecondary role.
37992type BasicSecondaryReplicatorStatus interface {
37993	AsSecondaryActiveReplicatorStatus() (*SecondaryActiveReplicatorStatus, bool)
37994	AsSecondaryIdleReplicatorStatus() (*SecondaryIdleReplicatorStatus, bool)
37995	AsSecondaryReplicatorStatus() (*SecondaryReplicatorStatus, bool)
37996}
37997
37998// SecondaryReplicatorStatus provides statistics about the Service Fabric Replicator, when it is functioning in
37999// a ActiveSecondary role.
38000type SecondaryReplicatorStatus struct {
38001	// ReplicationQueueStatus - Details about the replication queue on the secondary replicator.
38002	ReplicationQueueStatus *ReplicatorQueueStatus `json:"ReplicationQueueStatus,omitempty"`
38003	// LastReplicationOperationReceivedTimeUtc - The last time-stamp (UTC) at which a replication operation was received from the primary.
38004	// UTC 0 represents an invalid value, indicating that a replication operation message was never received.
38005	LastReplicationOperationReceivedTimeUtc *date.Time `json:"LastReplicationOperationReceivedTimeUtc,omitempty"`
38006	// IsInBuild - Value that indicates whether the replica is currently being built.
38007	IsInBuild *bool `json:"IsInBuild,omitempty"`
38008	// CopyQueueStatus - Details about the copy queue on the secondary replicator.
38009	CopyQueueStatus *ReplicatorQueueStatus `json:"CopyQueueStatus,omitempty"`
38010	// LastCopyOperationReceivedTimeUtc - The last time-stamp (UTC) at which a copy operation was received from the primary.
38011	// UTC 0 represents an invalid value, indicating that a copy operation message was never received.
38012	LastCopyOperationReceivedTimeUtc *date.Time `json:"LastCopyOperationReceivedTimeUtc,omitempty"`
38013	// LastAcknowledgementSentTimeUtc - The last time-stamp (UTC) at which an acknowledgment was sent to the primary replicator.
38014	// UTC 0 represents an invalid value, indicating that an acknowledgment message was never sent.
38015	LastAcknowledgementSentTimeUtc *date.Time `json:"LastAcknowledgementSentTimeUtc,omitempty"`
38016	// Kind - Possible values include: 'KindReplicatorStatus', 'KindPrimary', 'KindSecondaryReplicatorStatus', 'KindActiveSecondary', 'KindIdleSecondary'
38017	Kind KindBasicReplicatorStatus `json:"Kind,omitempty"`
38018}
38019
38020func unmarshalBasicSecondaryReplicatorStatus(body []byte) (BasicSecondaryReplicatorStatus, error) {
38021	var m map[string]interface{}
38022	err := json.Unmarshal(body, &m)
38023	if err != nil {
38024		return nil, err
38025	}
38026
38027	switch m["Kind"] {
38028	case string(KindActiveSecondary):
38029		var sars SecondaryActiveReplicatorStatus
38030		err := json.Unmarshal(body, &sars)
38031		return sars, err
38032	case string(KindIdleSecondary):
38033		var sirs SecondaryIdleReplicatorStatus
38034		err := json.Unmarshal(body, &sirs)
38035		return sirs, err
38036	default:
38037		var srs SecondaryReplicatorStatus
38038		err := json.Unmarshal(body, &srs)
38039		return srs, err
38040	}
38041}
38042func unmarshalBasicSecondaryReplicatorStatusArray(body []byte) ([]BasicSecondaryReplicatorStatus, error) {
38043	var rawMessages []*json.RawMessage
38044	err := json.Unmarshal(body, &rawMessages)
38045	if err != nil {
38046		return nil, err
38047	}
38048
38049	srsArray := make([]BasicSecondaryReplicatorStatus, len(rawMessages))
38050
38051	for index, rawMessage := range rawMessages {
38052		srs, err := unmarshalBasicSecondaryReplicatorStatus(*rawMessage)
38053		if err != nil {
38054			return nil, err
38055		}
38056		srsArray[index] = srs
38057	}
38058	return srsArray, nil
38059}
38060
38061// MarshalJSON is the custom marshaler for SecondaryReplicatorStatus.
38062func (srs SecondaryReplicatorStatus) MarshalJSON() ([]byte, error) {
38063	srs.Kind = KindSecondaryReplicatorStatus
38064	objectMap := make(map[string]interface{})
38065	if srs.ReplicationQueueStatus != nil {
38066		objectMap["ReplicationQueueStatus"] = srs.ReplicationQueueStatus
38067	}
38068	if srs.LastReplicationOperationReceivedTimeUtc != nil {
38069		objectMap["LastReplicationOperationReceivedTimeUtc"] = srs.LastReplicationOperationReceivedTimeUtc
38070	}
38071	if srs.IsInBuild != nil {
38072		objectMap["IsInBuild"] = srs.IsInBuild
38073	}
38074	if srs.CopyQueueStatus != nil {
38075		objectMap["CopyQueueStatus"] = srs.CopyQueueStatus
38076	}
38077	if srs.LastCopyOperationReceivedTimeUtc != nil {
38078		objectMap["LastCopyOperationReceivedTimeUtc"] = srs.LastCopyOperationReceivedTimeUtc
38079	}
38080	if srs.LastAcknowledgementSentTimeUtc != nil {
38081		objectMap["LastAcknowledgementSentTimeUtc"] = srs.LastAcknowledgementSentTimeUtc
38082	}
38083	if srs.Kind != "" {
38084		objectMap["Kind"] = srs.Kind
38085	}
38086	return json.Marshal(objectMap)
38087}
38088
38089// AsPrimaryReplicatorStatus is the BasicReplicatorStatus implementation for SecondaryReplicatorStatus.
38090func (srs SecondaryReplicatorStatus) AsPrimaryReplicatorStatus() (*PrimaryReplicatorStatus, bool) {
38091	return nil, false
38092}
38093
38094// AsSecondaryReplicatorStatus is the BasicReplicatorStatus implementation for SecondaryReplicatorStatus.
38095func (srs SecondaryReplicatorStatus) AsSecondaryReplicatorStatus() (*SecondaryReplicatorStatus, bool) {
38096	return &srs, true
38097}
38098
38099// AsBasicSecondaryReplicatorStatus is the BasicReplicatorStatus implementation for SecondaryReplicatorStatus.
38100func (srs SecondaryReplicatorStatus) AsBasicSecondaryReplicatorStatus() (BasicSecondaryReplicatorStatus, bool) {
38101	return &srs, true
38102}
38103
38104// AsSecondaryActiveReplicatorStatus is the BasicReplicatorStatus implementation for SecondaryReplicatorStatus.
38105func (srs SecondaryReplicatorStatus) AsSecondaryActiveReplicatorStatus() (*SecondaryActiveReplicatorStatus, bool) {
38106	return nil, false
38107}
38108
38109// AsSecondaryIdleReplicatorStatus is the BasicReplicatorStatus implementation for SecondaryReplicatorStatus.
38110func (srs SecondaryReplicatorStatus) AsSecondaryIdleReplicatorStatus() (*SecondaryIdleReplicatorStatus, bool) {
38111	return nil, false
38112}
38113
38114// AsReplicatorStatus is the BasicReplicatorStatus implementation for SecondaryReplicatorStatus.
38115func (srs SecondaryReplicatorStatus) AsReplicatorStatus() (*ReplicatorStatus, bool) {
38116	return nil, false
38117}
38118
38119// AsBasicReplicatorStatus is the BasicReplicatorStatus implementation for SecondaryReplicatorStatus.
38120func (srs SecondaryReplicatorStatus) AsBasicReplicatorStatus() (BasicReplicatorStatus, bool) {
38121	return &srs, true
38122}
38123
38124// SecretResourceDescription this type describes a secret resource.
38125type SecretResourceDescription struct {
38126	autorest.Response `json:"-"`
38127	// Properties - Describes the properties of a secret resource.
38128	Properties BasicSecretResourceProperties `json:"properties,omitempty"`
38129	// Name - Name of the Secret resource.
38130	Name *string `json:"name,omitempty"`
38131}
38132
38133// UnmarshalJSON is the custom unmarshaler for SecretResourceDescription struct.
38134func (srd *SecretResourceDescription) UnmarshalJSON(body []byte) error {
38135	var m map[string]*json.RawMessage
38136	err := json.Unmarshal(body, &m)
38137	if err != nil {
38138		return err
38139	}
38140	for k, v := range m {
38141		switch k {
38142		case "properties":
38143			if v != nil {
38144				properties, err := unmarshalBasicSecretResourceProperties(*v)
38145				if err != nil {
38146					return err
38147				}
38148				srd.Properties = properties
38149			}
38150		case "name":
38151			if v != nil {
38152				var name string
38153				err = json.Unmarshal(*v, &name)
38154				if err != nil {
38155					return err
38156				}
38157				srd.Name = &name
38158			}
38159		}
38160	}
38161
38162	return nil
38163}
38164
38165// BasicSecretResourceProperties describes the properties of a secret resource.
38166type BasicSecretResourceProperties interface {
38167	AsInlinedValueSecretResourceProperties() (*InlinedValueSecretResourceProperties, bool)
38168	AsSecretResourceProperties() (*SecretResourceProperties, bool)
38169}
38170
38171// SecretResourceProperties describes the properties of a secret resource.
38172type SecretResourceProperties struct {
38173	// Description - User readable description of the secret.
38174	Description *string `json:"description,omitempty"`
38175	// Status - READ-ONLY; Status of the resource. Possible values include: 'ResourceStatusUnknown', 'ResourceStatusReady', 'ResourceStatusUpgrading', 'ResourceStatusCreating', 'ResourceStatusDeleting', 'ResourceStatusFailed'
38176	Status ResourceStatus `json:"status,omitempty"`
38177	// StatusDetails - READ-ONLY; Gives additional information about the current status of the secret.
38178	StatusDetails *string `json:"statusDetails,omitempty"`
38179	// 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.
38180	ContentType *string `json:"contentType,omitempty"`
38181	// Kind - Possible values include: 'KindSecretResourcePropertiesBase', 'KindSecretResourceProperties', 'KindInlinedValue'
38182	Kind KindBasicSecretResourcePropertiesBase `json:"kind,omitempty"`
38183}
38184
38185func unmarshalBasicSecretResourceProperties(body []byte) (BasicSecretResourceProperties, error) {
38186	var m map[string]interface{}
38187	err := json.Unmarshal(body, &m)
38188	if err != nil {
38189		return nil, err
38190	}
38191
38192	switch m["kind"] {
38193	case string(KindInlinedValue):
38194		var ivsrp InlinedValueSecretResourceProperties
38195		err := json.Unmarshal(body, &ivsrp)
38196		return ivsrp, err
38197	default:
38198		var srp SecretResourceProperties
38199		err := json.Unmarshal(body, &srp)
38200		return srp, err
38201	}
38202}
38203func unmarshalBasicSecretResourcePropertiesArray(body []byte) ([]BasicSecretResourceProperties, error) {
38204	var rawMessages []*json.RawMessage
38205	err := json.Unmarshal(body, &rawMessages)
38206	if err != nil {
38207		return nil, err
38208	}
38209
38210	srpArray := make([]BasicSecretResourceProperties, len(rawMessages))
38211
38212	for index, rawMessage := range rawMessages {
38213		srp, err := unmarshalBasicSecretResourceProperties(*rawMessage)
38214		if err != nil {
38215			return nil, err
38216		}
38217		srpArray[index] = srp
38218	}
38219	return srpArray, nil
38220}
38221
38222// MarshalJSON is the custom marshaler for SecretResourceProperties.
38223func (srp SecretResourceProperties) MarshalJSON() ([]byte, error) {
38224	srp.Kind = KindSecretResourceProperties
38225	objectMap := make(map[string]interface{})
38226	if srp.Description != nil {
38227		objectMap["description"] = srp.Description
38228	}
38229	if srp.ContentType != nil {
38230		objectMap["contentType"] = srp.ContentType
38231	}
38232	if srp.Kind != "" {
38233		objectMap["kind"] = srp.Kind
38234	}
38235	return json.Marshal(objectMap)
38236}
38237
38238// AsSecretResourceProperties is the BasicSecretResourcePropertiesBase implementation for SecretResourceProperties.
38239func (srp SecretResourceProperties) AsSecretResourceProperties() (*SecretResourceProperties, bool) {
38240	return &srp, true
38241}
38242
38243// AsBasicSecretResourceProperties is the BasicSecretResourcePropertiesBase implementation for SecretResourceProperties.
38244func (srp SecretResourceProperties) AsBasicSecretResourceProperties() (BasicSecretResourceProperties, bool) {
38245	return &srp, true
38246}
38247
38248// AsInlinedValueSecretResourceProperties is the BasicSecretResourcePropertiesBase implementation for SecretResourceProperties.
38249func (srp SecretResourceProperties) AsInlinedValueSecretResourceProperties() (*InlinedValueSecretResourceProperties, bool) {
38250	return nil, false
38251}
38252
38253// AsSecretResourcePropertiesBase is the BasicSecretResourcePropertiesBase implementation for SecretResourceProperties.
38254func (srp SecretResourceProperties) AsSecretResourcePropertiesBase() (*SecretResourcePropertiesBase, bool) {
38255	return nil, false
38256}
38257
38258// AsBasicSecretResourcePropertiesBase is the BasicSecretResourcePropertiesBase implementation for SecretResourceProperties.
38259func (srp SecretResourceProperties) AsBasicSecretResourcePropertiesBase() (BasicSecretResourcePropertiesBase, bool) {
38260	return &srp, true
38261}
38262
38263// BasicSecretResourcePropertiesBase this type describes the properties of a secret resource, including its kind.
38264type BasicSecretResourcePropertiesBase interface {
38265	AsSecretResourceProperties() (*SecretResourceProperties, bool)
38266	AsBasicSecretResourceProperties() (BasicSecretResourceProperties, bool)
38267	AsInlinedValueSecretResourceProperties() (*InlinedValueSecretResourceProperties, bool)
38268	AsSecretResourcePropertiesBase() (*SecretResourcePropertiesBase, bool)
38269}
38270
38271// SecretResourcePropertiesBase this type describes the properties of a secret resource, including its kind.
38272type SecretResourcePropertiesBase struct {
38273	// Kind - Possible values include: 'KindSecretResourcePropertiesBase', 'KindSecretResourceProperties', 'KindInlinedValue'
38274	Kind KindBasicSecretResourcePropertiesBase `json:"kind,omitempty"`
38275}
38276
38277func unmarshalBasicSecretResourcePropertiesBase(body []byte) (BasicSecretResourcePropertiesBase, error) {
38278	var m map[string]interface{}
38279	err := json.Unmarshal(body, &m)
38280	if err != nil {
38281		return nil, err
38282	}
38283
38284	switch m["kind"] {
38285	case string(KindSecretResourceProperties):
38286		var srp SecretResourceProperties
38287		err := json.Unmarshal(body, &srp)
38288		return srp, err
38289	case string(KindInlinedValue):
38290		var ivsrp InlinedValueSecretResourceProperties
38291		err := json.Unmarshal(body, &ivsrp)
38292		return ivsrp, err
38293	default:
38294		var srpb SecretResourcePropertiesBase
38295		err := json.Unmarshal(body, &srpb)
38296		return srpb, err
38297	}
38298}
38299func unmarshalBasicSecretResourcePropertiesBaseArray(body []byte) ([]BasicSecretResourcePropertiesBase, error) {
38300	var rawMessages []*json.RawMessage
38301	err := json.Unmarshal(body, &rawMessages)
38302	if err != nil {
38303		return nil, err
38304	}
38305
38306	srpbArray := make([]BasicSecretResourcePropertiesBase, len(rawMessages))
38307
38308	for index, rawMessage := range rawMessages {
38309		srpb, err := unmarshalBasicSecretResourcePropertiesBase(*rawMessage)
38310		if err != nil {
38311			return nil, err
38312		}
38313		srpbArray[index] = srpb
38314	}
38315	return srpbArray, nil
38316}
38317
38318// MarshalJSON is the custom marshaler for SecretResourcePropertiesBase.
38319func (srpb SecretResourcePropertiesBase) MarshalJSON() ([]byte, error) {
38320	srpb.Kind = KindSecretResourcePropertiesBase
38321	objectMap := make(map[string]interface{})
38322	if srpb.Kind != "" {
38323		objectMap["kind"] = srpb.Kind
38324	}
38325	return json.Marshal(objectMap)
38326}
38327
38328// AsSecretResourceProperties is the BasicSecretResourcePropertiesBase implementation for SecretResourcePropertiesBase.
38329func (srpb SecretResourcePropertiesBase) AsSecretResourceProperties() (*SecretResourceProperties, bool) {
38330	return nil, false
38331}
38332
38333// AsBasicSecretResourceProperties is the BasicSecretResourcePropertiesBase implementation for SecretResourcePropertiesBase.
38334func (srpb SecretResourcePropertiesBase) AsBasicSecretResourceProperties() (BasicSecretResourceProperties, bool) {
38335	return nil, false
38336}
38337
38338// AsInlinedValueSecretResourceProperties is the BasicSecretResourcePropertiesBase implementation for SecretResourcePropertiesBase.
38339func (srpb SecretResourcePropertiesBase) AsInlinedValueSecretResourceProperties() (*InlinedValueSecretResourceProperties, bool) {
38340	return nil, false
38341}
38342
38343// AsSecretResourcePropertiesBase is the BasicSecretResourcePropertiesBase implementation for SecretResourcePropertiesBase.
38344func (srpb SecretResourcePropertiesBase) AsSecretResourcePropertiesBase() (*SecretResourcePropertiesBase, bool) {
38345	return &srpb, true
38346}
38347
38348// AsBasicSecretResourcePropertiesBase is the BasicSecretResourcePropertiesBase implementation for SecretResourcePropertiesBase.
38349func (srpb SecretResourcePropertiesBase) AsBasicSecretResourcePropertiesBase() (BasicSecretResourcePropertiesBase, bool) {
38350	return &srpb, true
38351}
38352
38353// SecretValue this type represents the unencrypted value of the secret.
38354type SecretValue struct {
38355	autorest.Response `json:"-"`
38356	// Value - The actual value of the secret.
38357	Value *string `json:"value,omitempty"`
38358}
38359
38360// SecretValueProperties this type describes properties of secret value resource.
38361type SecretValueProperties struct {
38362	// Value - The actual value of the secret.
38363	Value *string `json:"value,omitempty"`
38364}
38365
38366// SecretValueResourceDescription this type describes a value of a secret resource. The name of this
38367// resource is the version identifier corresponding to this secret value.
38368type SecretValueResourceDescription struct {
38369	autorest.Response `json:"-"`
38370	// Name - Version identifier of the secret value.
38371	Name *string `json:"name,omitempty"`
38372	// SecretValueResourceProperties - This type describes properties of a secret value resource.
38373	*SecretValueResourceProperties `json:"properties,omitempty"`
38374}
38375
38376// MarshalJSON is the custom marshaler for SecretValueResourceDescription.
38377func (svrd SecretValueResourceDescription) MarshalJSON() ([]byte, error) {
38378	objectMap := make(map[string]interface{})
38379	if svrd.Name != nil {
38380		objectMap["name"] = svrd.Name
38381	}
38382	if svrd.SecretValueResourceProperties != nil {
38383		objectMap["properties"] = svrd.SecretValueResourceProperties
38384	}
38385	return json.Marshal(objectMap)
38386}
38387
38388// UnmarshalJSON is the custom unmarshaler for SecretValueResourceDescription struct.
38389func (svrd *SecretValueResourceDescription) UnmarshalJSON(body []byte) error {
38390	var m map[string]*json.RawMessage
38391	err := json.Unmarshal(body, &m)
38392	if err != nil {
38393		return err
38394	}
38395	for k, v := range m {
38396		switch k {
38397		case "name":
38398			if v != nil {
38399				var name string
38400				err = json.Unmarshal(*v, &name)
38401				if err != nil {
38402					return err
38403				}
38404				svrd.Name = &name
38405			}
38406		case "properties":
38407			if v != nil {
38408				var secretValueResourceProperties SecretValueResourceProperties
38409				err = json.Unmarshal(*v, &secretValueResourceProperties)
38410				if err != nil {
38411					return err
38412				}
38413				svrd.SecretValueResourceProperties = &secretValueResourceProperties
38414			}
38415		}
38416	}
38417
38418	return nil
38419}
38420
38421// SecretValueResourceProperties this type describes properties of a secret value resource.
38422type SecretValueResourceProperties struct {
38423	// Value - The actual value of the secret.
38424	Value *string `json:"value,omitempty"`
38425}
38426
38427// SeedNodeSafetyCheck represents a safety check for the seed nodes being performed by service fabric
38428// before continuing with node level operations.
38429type SeedNodeSafetyCheck struct {
38430	// Kind - Possible values include: 'KindSafetyCheck', 'KindPartitionSafetyCheck', 'KindEnsureAvailability', 'KindEnsurePartitionQuorum', 'KindEnsureSeedNodeQuorum', 'KindWaitForInbuildReplica', 'KindWaitForPrimaryPlacement', 'KindWaitForPrimarySwap', 'KindWaitForReconfiguration'
38431	Kind KindBasicSafetyCheck `json:"Kind,omitempty"`
38432}
38433
38434// MarshalJSON is the custom marshaler for SeedNodeSafetyCheck.
38435func (snsc SeedNodeSafetyCheck) MarshalJSON() ([]byte, error) {
38436	snsc.Kind = KindEnsureSeedNodeQuorum
38437	objectMap := make(map[string]interface{})
38438	if snsc.Kind != "" {
38439		objectMap["Kind"] = snsc.Kind
38440	}
38441	return json.Marshal(objectMap)
38442}
38443
38444// AsPartitionSafetyCheck is the BasicSafetyCheck implementation for SeedNodeSafetyCheck.
38445func (snsc SeedNodeSafetyCheck) AsPartitionSafetyCheck() (*PartitionSafetyCheck, bool) {
38446	return nil, false
38447}
38448
38449// AsBasicPartitionSafetyCheck is the BasicSafetyCheck implementation for SeedNodeSafetyCheck.
38450func (snsc SeedNodeSafetyCheck) AsBasicPartitionSafetyCheck() (BasicPartitionSafetyCheck, bool) {
38451	return nil, false
38452}
38453
38454// AsEnsureAvailabilitySafetyCheck is the BasicSafetyCheck implementation for SeedNodeSafetyCheck.
38455func (snsc SeedNodeSafetyCheck) AsEnsureAvailabilitySafetyCheck() (*EnsureAvailabilitySafetyCheck, bool) {
38456	return nil, false
38457}
38458
38459// AsEnsurePartitionQuorumSafetyCheck is the BasicSafetyCheck implementation for SeedNodeSafetyCheck.
38460func (snsc SeedNodeSafetyCheck) AsEnsurePartitionQuorumSafetyCheck() (*EnsurePartitionQuorumSafetyCheck, bool) {
38461	return nil, false
38462}
38463
38464// AsSeedNodeSafetyCheck is the BasicSafetyCheck implementation for SeedNodeSafetyCheck.
38465func (snsc SeedNodeSafetyCheck) AsSeedNodeSafetyCheck() (*SeedNodeSafetyCheck, bool) {
38466	return &snsc, true
38467}
38468
38469// AsWaitForInbuildReplicaSafetyCheck is the BasicSafetyCheck implementation for SeedNodeSafetyCheck.
38470func (snsc SeedNodeSafetyCheck) AsWaitForInbuildReplicaSafetyCheck() (*WaitForInbuildReplicaSafetyCheck, bool) {
38471	return nil, false
38472}
38473
38474// AsWaitForPrimaryPlacementSafetyCheck is the BasicSafetyCheck implementation for SeedNodeSafetyCheck.
38475func (snsc SeedNodeSafetyCheck) AsWaitForPrimaryPlacementSafetyCheck() (*WaitForPrimaryPlacementSafetyCheck, bool) {
38476	return nil, false
38477}
38478
38479// AsWaitForPrimarySwapSafetyCheck is the BasicSafetyCheck implementation for SeedNodeSafetyCheck.
38480func (snsc SeedNodeSafetyCheck) AsWaitForPrimarySwapSafetyCheck() (*WaitForPrimarySwapSafetyCheck, bool) {
38481	return nil, false
38482}
38483
38484// AsWaitForReconfigurationSafetyCheck is the BasicSafetyCheck implementation for SeedNodeSafetyCheck.
38485func (snsc SeedNodeSafetyCheck) AsWaitForReconfigurationSafetyCheck() (*WaitForReconfigurationSafetyCheck, bool) {
38486	return nil, false
38487}
38488
38489// AsSafetyCheck is the BasicSafetyCheck implementation for SeedNodeSafetyCheck.
38490func (snsc SeedNodeSafetyCheck) AsSafetyCheck() (*SafetyCheck, bool) {
38491	return nil, false
38492}
38493
38494// AsBasicSafetyCheck is the BasicSafetyCheck implementation for SeedNodeSafetyCheck.
38495func (snsc SeedNodeSafetyCheck) AsBasicSafetyCheck() (BasicSafetyCheck, bool) {
38496	return &snsc, true
38497}
38498
38499// SelectedPartition this class returns information about the partition that the user-induced operation
38500// acted upon.
38501type SelectedPartition struct {
38502	// ServiceName - The name of the service the partition belongs to.
38503	ServiceName *string `json:"ServiceName,omitempty"`
38504	// 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.
38505	PartitionID *uuid.UUID `json:"PartitionId,omitempty"`
38506}
38507
38508// ServiceBackupConfigurationInfo backup configuration information for a specific Service Fabric service
38509// specifying what backup policy is being applied and suspend description, if any.
38510type ServiceBackupConfigurationInfo struct {
38511	// ServiceName - The full name of the service with 'fabric:' URI scheme.
38512	ServiceName *string `json:"ServiceName,omitempty"`
38513	// PolicyName - The name of the backup policy which is applicable to this Service Fabric application or service or partition.
38514	PolicyName *string `json:"PolicyName,omitempty"`
38515	// PolicyInheritedFrom - Specifies the scope at which the backup policy is applied. Possible values include: 'BackupPolicyScopeInvalid', 'BackupPolicyScopePartition', 'BackupPolicyScopeService', 'BackupPolicyScopeApplication'
38516	PolicyInheritedFrom BackupPolicyScope `json:"PolicyInheritedFrom,omitempty"`
38517	// SuspensionInfo - Describes the backup suspension details.
38518	SuspensionInfo *BackupSuspensionInfo `json:"SuspensionInfo,omitempty"`
38519	// Kind - Possible values include: 'KindBasicBackupConfigurationInfoKindBackupConfigurationInfo', 'KindBasicBackupConfigurationInfoKindApplication', 'KindBasicBackupConfigurationInfoKindService', 'KindBasicBackupConfigurationInfoKindPartition'
38520	Kind KindBasicBackupConfigurationInfo `json:"Kind,omitempty"`
38521}
38522
38523// MarshalJSON is the custom marshaler for ServiceBackupConfigurationInfo.
38524func (sbci ServiceBackupConfigurationInfo) MarshalJSON() ([]byte, error) {
38525	sbci.Kind = KindBasicBackupConfigurationInfoKindService
38526	objectMap := make(map[string]interface{})
38527	if sbci.ServiceName != nil {
38528		objectMap["ServiceName"] = sbci.ServiceName
38529	}
38530	if sbci.PolicyName != nil {
38531		objectMap["PolicyName"] = sbci.PolicyName
38532	}
38533	if sbci.PolicyInheritedFrom != "" {
38534		objectMap["PolicyInheritedFrom"] = sbci.PolicyInheritedFrom
38535	}
38536	if sbci.SuspensionInfo != nil {
38537		objectMap["SuspensionInfo"] = sbci.SuspensionInfo
38538	}
38539	if sbci.Kind != "" {
38540		objectMap["Kind"] = sbci.Kind
38541	}
38542	return json.Marshal(objectMap)
38543}
38544
38545// AsApplicationBackupConfigurationInfo is the BasicBackupConfigurationInfo implementation for ServiceBackupConfigurationInfo.
38546func (sbci ServiceBackupConfigurationInfo) AsApplicationBackupConfigurationInfo() (*ApplicationBackupConfigurationInfo, bool) {
38547	return nil, false
38548}
38549
38550// AsServiceBackupConfigurationInfo is the BasicBackupConfigurationInfo implementation for ServiceBackupConfigurationInfo.
38551func (sbci ServiceBackupConfigurationInfo) AsServiceBackupConfigurationInfo() (*ServiceBackupConfigurationInfo, bool) {
38552	return &sbci, true
38553}
38554
38555// AsPartitionBackupConfigurationInfo is the BasicBackupConfigurationInfo implementation for ServiceBackupConfigurationInfo.
38556func (sbci ServiceBackupConfigurationInfo) AsPartitionBackupConfigurationInfo() (*PartitionBackupConfigurationInfo, bool) {
38557	return nil, false
38558}
38559
38560// AsBackupConfigurationInfo is the BasicBackupConfigurationInfo implementation for ServiceBackupConfigurationInfo.
38561func (sbci ServiceBackupConfigurationInfo) AsBackupConfigurationInfo() (*BackupConfigurationInfo, bool) {
38562	return nil, false
38563}
38564
38565// AsBasicBackupConfigurationInfo is the BasicBackupConfigurationInfo implementation for ServiceBackupConfigurationInfo.
38566func (sbci ServiceBackupConfigurationInfo) AsBasicBackupConfigurationInfo() (BasicBackupConfigurationInfo, bool) {
38567	return &sbci, true
38568}
38569
38570// ServiceBackupEntity identifies the Service Fabric stateful service which is being backed up.
38571type ServiceBackupEntity struct {
38572	// ServiceName - The full name of the service with 'fabric:' URI scheme.
38573	ServiceName *string `json:"ServiceName,omitempty"`
38574	// EntityKind - Possible values include: 'EntityKindBackupEntity', 'EntityKindApplication1', 'EntityKindService1', 'EntityKindPartition1'
38575	EntityKind EntityKindBasicBackupEntity `json:"EntityKind,omitempty"`
38576}
38577
38578// MarshalJSON is the custom marshaler for ServiceBackupEntity.
38579func (sbe ServiceBackupEntity) MarshalJSON() ([]byte, error) {
38580	sbe.EntityKind = EntityKindService1
38581	objectMap := make(map[string]interface{})
38582	if sbe.ServiceName != nil {
38583		objectMap["ServiceName"] = sbe.ServiceName
38584	}
38585	if sbe.EntityKind != "" {
38586		objectMap["EntityKind"] = sbe.EntityKind
38587	}
38588	return json.Marshal(objectMap)
38589}
38590
38591// AsApplicationBackupEntity is the BasicBackupEntity implementation for ServiceBackupEntity.
38592func (sbe ServiceBackupEntity) AsApplicationBackupEntity() (*ApplicationBackupEntity, bool) {
38593	return nil, false
38594}
38595
38596// AsServiceBackupEntity is the BasicBackupEntity implementation for ServiceBackupEntity.
38597func (sbe ServiceBackupEntity) AsServiceBackupEntity() (*ServiceBackupEntity, bool) {
38598	return &sbe, true
38599}
38600
38601// AsPartitionBackupEntity is the BasicBackupEntity implementation for ServiceBackupEntity.
38602func (sbe ServiceBackupEntity) AsPartitionBackupEntity() (*PartitionBackupEntity, bool) {
38603	return nil, false
38604}
38605
38606// AsBackupEntity is the BasicBackupEntity implementation for ServiceBackupEntity.
38607func (sbe ServiceBackupEntity) AsBackupEntity() (*BackupEntity, bool) {
38608	return nil, false
38609}
38610
38611// AsBasicBackupEntity is the BasicBackupEntity implementation for ServiceBackupEntity.
38612func (sbe ServiceBackupEntity) AsBasicBackupEntity() (BasicBackupEntity, bool) {
38613	return &sbe, true
38614}
38615
38616// ServiceCorrelationDescription creates a particular correlation between services.
38617type ServiceCorrelationDescription struct {
38618	// Scheme - The ServiceCorrelationScheme which describes the relationship between this service and the service specified via ServiceName. Possible values include: 'ServiceCorrelationSchemeInvalid', 'ServiceCorrelationSchemeAffinity', 'ServiceCorrelationSchemeAlignedAffinity', 'ServiceCorrelationSchemeNonAlignedAffinity'
38619	Scheme ServiceCorrelationScheme `json:"Scheme,omitempty"`
38620	// ServiceName - The name of the service that the correlation relationship is established with.
38621	ServiceName *string `json:"ServiceName,omitempty"`
38622}
38623
38624// ServiceCreatedEvent service Created event.
38625type ServiceCreatedEvent struct {
38626	// ServiceTypeName - Service type name.
38627	ServiceTypeName *string `json:"ServiceTypeName,omitempty"`
38628	// ApplicationName - Application name.
38629	ApplicationName *string `json:"ApplicationName,omitempty"`
38630	// ApplicationTypeName - Application type name.
38631	ApplicationTypeName *string `json:"ApplicationTypeName,omitempty"`
38632	// ServiceInstance - Id of Service instance.
38633	ServiceInstance *int64 `json:"ServiceInstance,omitempty"`
38634	// IsStateful - Indicates if Service is stateful.
38635	IsStateful *bool `json:"IsStateful,omitempty"`
38636	// PartitionCount - Number of partitions.
38637	PartitionCount *int32 `json:"PartitionCount,omitempty"`
38638	// TargetReplicaSetSize - Size of target replicas set.
38639	TargetReplicaSetSize *int32 `json:"TargetReplicaSetSize,omitempty"`
38640	// MinReplicaSetSize - Minimum size of replicas set.
38641	MinReplicaSetSize *int32 `json:"MinReplicaSetSize,omitempty"`
38642	// ServicePackageVersion - Version of Service package.
38643	ServicePackageVersion *string `json:"ServicePackageVersion,omitempty"`
38644	// 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.
38645	PartitionID *uuid.UUID `json:"PartitionId,omitempty"`
38646	// 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.
38647	// Starting in version 6.0, hierarchical names are delimited with the "\~" character. For example, if the service name is "fabric:/myapp/app1/svc1",
38648	// the service identity would be "myapp~app1\~svc1" in 6.0+ and "myapp/app1/svc1" in previous versions.
38649	ServiceID *string `json:"ServiceId,omitempty"`
38650	// EventInstanceID - The identifier for the FabricEvent instance.
38651	EventInstanceID *uuid.UUID `json:"EventInstanceId,omitempty"`
38652	// Category - The category of event.
38653	Category *string `json:"Category,omitempty"`
38654	// TimeStamp - The time event was logged.
38655	TimeStamp *date.Time `json:"TimeStamp,omitempty"`
38656	// HasCorrelatedEvents - Shows there is existing related events available.
38657	HasCorrelatedEvents *bool `json:"HasCorrelatedEvents,omitempty"`
38658	// 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'
38659	Kind KindBasicFabricEvent `json:"Kind,omitempty"`
38660}
38661
38662// MarshalJSON is the custom marshaler for ServiceCreatedEvent.
38663func (sce ServiceCreatedEvent) MarshalJSON() ([]byte, error) {
38664	sce.Kind = KindServiceCreated
38665	objectMap := make(map[string]interface{})
38666	if sce.ServiceTypeName != nil {
38667		objectMap["ServiceTypeName"] = sce.ServiceTypeName
38668	}
38669	if sce.ApplicationName != nil {
38670		objectMap["ApplicationName"] = sce.ApplicationName
38671	}
38672	if sce.ApplicationTypeName != nil {
38673		objectMap["ApplicationTypeName"] = sce.ApplicationTypeName
38674	}
38675	if sce.ServiceInstance != nil {
38676		objectMap["ServiceInstance"] = sce.ServiceInstance
38677	}
38678	if sce.IsStateful != nil {
38679		objectMap["IsStateful"] = sce.IsStateful
38680	}
38681	if sce.PartitionCount != nil {
38682		objectMap["PartitionCount"] = sce.PartitionCount
38683	}
38684	if sce.TargetReplicaSetSize != nil {
38685		objectMap["TargetReplicaSetSize"] = sce.TargetReplicaSetSize
38686	}
38687	if sce.MinReplicaSetSize != nil {
38688		objectMap["MinReplicaSetSize"] = sce.MinReplicaSetSize
38689	}
38690	if sce.ServicePackageVersion != nil {
38691		objectMap["ServicePackageVersion"] = sce.ServicePackageVersion
38692	}
38693	if sce.PartitionID != nil {
38694		objectMap["PartitionId"] = sce.PartitionID
38695	}
38696	if sce.ServiceID != nil {
38697		objectMap["ServiceId"] = sce.ServiceID
38698	}
38699	if sce.EventInstanceID != nil {
38700		objectMap["EventInstanceId"] = sce.EventInstanceID
38701	}
38702	if sce.Category != nil {
38703		objectMap["Category"] = sce.Category
38704	}
38705	if sce.TimeStamp != nil {
38706		objectMap["TimeStamp"] = sce.TimeStamp
38707	}
38708	if sce.HasCorrelatedEvents != nil {
38709		objectMap["HasCorrelatedEvents"] = sce.HasCorrelatedEvents
38710	}
38711	if sce.Kind != "" {
38712		objectMap["Kind"] = sce.Kind
38713	}
38714	return json.Marshal(objectMap)
38715}
38716
38717// AsApplicationEvent is the BasicFabricEvent implementation for ServiceCreatedEvent.
38718func (sce ServiceCreatedEvent) AsApplicationEvent() (*ApplicationEvent, bool) {
38719	return nil, false
38720}
38721
38722// AsBasicApplicationEvent is the BasicFabricEvent implementation for ServiceCreatedEvent.
38723func (sce ServiceCreatedEvent) AsBasicApplicationEvent() (BasicApplicationEvent, bool) {
38724	return nil, false
38725}
38726
38727// AsClusterEvent is the BasicFabricEvent implementation for ServiceCreatedEvent.
38728func (sce ServiceCreatedEvent) AsClusterEvent() (*ClusterEvent, bool) {
38729	return nil, false
38730}
38731
38732// AsBasicClusterEvent is the BasicFabricEvent implementation for ServiceCreatedEvent.
38733func (sce ServiceCreatedEvent) AsBasicClusterEvent() (BasicClusterEvent, bool) {
38734	return nil, false
38735}
38736
38737// AsContainerInstanceEvent is the BasicFabricEvent implementation for ServiceCreatedEvent.
38738func (sce ServiceCreatedEvent) AsContainerInstanceEvent() (*ContainerInstanceEvent, bool) {
38739	return nil, false
38740}
38741
38742// AsNodeEvent is the BasicFabricEvent implementation for ServiceCreatedEvent.
38743func (sce ServiceCreatedEvent) AsNodeEvent() (*NodeEvent, bool) {
38744	return nil, false
38745}
38746
38747// AsBasicNodeEvent is the BasicFabricEvent implementation for ServiceCreatedEvent.
38748func (sce ServiceCreatedEvent) AsBasicNodeEvent() (BasicNodeEvent, bool) {
38749	return nil, false
38750}
38751
38752// AsPartitionAnalysisEvent is the BasicFabricEvent implementation for ServiceCreatedEvent.
38753func (sce ServiceCreatedEvent) AsPartitionAnalysisEvent() (*PartitionAnalysisEvent, bool) {
38754	return nil, false
38755}
38756
38757// AsBasicPartitionAnalysisEvent is the BasicFabricEvent implementation for ServiceCreatedEvent.
38758func (sce ServiceCreatedEvent) AsBasicPartitionAnalysisEvent() (BasicPartitionAnalysisEvent, bool) {
38759	return nil, false
38760}
38761
38762// AsPartitionEvent is the BasicFabricEvent implementation for ServiceCreatedEvent.
38763func (sce ServiceCreatedEvent) AsPartitionEvent() (*PartitionEvent, bool) {
38764	return nil, false
38765}
38766
38767// AsBasicPartitionEvent is the BasicFabricEvent implementation for ServiceCreatedEvent.
38768func (sce ServiceCreatedEvent) AsBasicPartitionEvent() (BasicPartitionEvent, bool) {
38769	return nil, false
38770}
38771
38772// AsReplicaEvent is the BasicFabricEvent implementation for ServiceCreatedEvent.
38773func (sce ServiceCreatedEvent) AsReplicaEvent() (*ReplicaEvent, bool) {
38774	return nil, false
38775}
38776
38777// AsBasicReplicaEvent is the BasicFabricEvent implementation for ServiceCreatedEvent.
38778func (sce ServiceCreatedEvent) AsBasicReplicaEvent() (BasicReplicaEvent, bool) {
38779	return nil, false
38780}
38781
38782// AsServiceEvent is the BasicFabricEvent implementation for ServiceCreatedEvent.
38783func (sce ServiceCreatedEvent) AsServiceEvent() (*ServiceEvent, bool) {
38784	return nil, false
38785}
38786
38787// AsBasicServiceEvent is the BasicFabricEvent implementation for ServiceCreatedEvent.
38788func (sce ServiceCreatedEvent) AsBasicServiceEvent() (BasicServiceEvent, bool) {
38789	return &sce, true
38790}
38791
38792// AsApplicationCreatedEvent is the BasicFabricEvent implementation for ServiceCreatedEvent.
38793func (sce ServiceCreatedEvent) AsApplicationCreatedEvent() (*ApplicationCreatedEvent, bool) {
38794	return nil, false
38795}
38796
38797// AsApplicationDeletedEvent is the BasicFabricEvent implementation for ServiceCreatedEvent.
38798func (sce ServiceCreatedEvent) AsApplicationDeletedEvent() (*ApplicationDeletedEvent, bool) {
38799	return nil, false
38800}
38801
38802// AsApplicationNewHealthReportEvent is the BasicFabricEvent implementation for ServiceCreatedEvent.
38803func (sce ServiceCreatedEvent) AsApplicationNewHealthReportEvent() (*ApplicationNewHealthReportEvent, bool) {
38804	return nil, false
38805}
38806
38807// AsApplicationHealthReportExpiredEvent is the BasicFabricEvent implementation for ServiceCreatedEvent.
38808func (sce ServiceCreatedEvent) AsApplicationHealthReportExpiredEvent() (*ApplicationHealthReportExpiredEvent, bool) {
38809	return nil, false
38810}
38811
38812// AsApplicationUpgradeCompletedEvent is the BasicFabricEvent implementation for ServiceCreatedEvent.
38813func (sce ServiceCreatedEvent) AsApplicationUpgradeCompletedEvent() (*ApplicationUpgradeCompletedEvent, bool) {
38814	return nil, false
38815}
38816
38817// AsApplicationUpgradeDomainCompletedEvent is the BasicFabricEvent implementation for ServiceCreatedEvent.
38818func (sce ServiceCreatedEvent) AsApplicationUpgradeDomainCompletedEvent() (*ApplicationUpgradeDomainCompletedEvent, bool) {
38819	return nil, false
38820}
38821
38822// AsApplicationUpgradeRollbackCompletedEvent is the BasicFabricEvent implementation for ServiceCreatedEvent.
38823func (sce ServiceCreatedEvent) AsApplicationUpgradeRollbackCompletedEvent() (*ApplicationUpgradeRollbackCompletedEvent, bool) {
38824	return nil, false
38825}
38826
38827// AsApplicationUpgradeRollbackStartedEvent is the BasicFabricEvent implementation for ServiceCreatedEvent.
38828func (sce ServiceCreatedEvent) AsApplicationUpgradeRollbackStartedEvent() (*ApplicationUpgradeRollbackStartedEvent, bool) {
38829	return nil, false
38830}
38831
38832// AsApplicationUpgradeStartedEvent is the BasicFabricEvent implementation for ServiceCreatedEvent.
38833func (sce ServiceCreatedEvent) AsApplicationUpgradeStartedEvent() (*ApplicationUpgradeStartedEvent, bool) {
38834	return nil, false
38835}
38836
38837// AsDeployedApplicationNewHealthReportEvent is the BasicFabricEvent implementation for ServiceCreatedEvent.
38838func (sce ServiceCreatedEvent) AsDeployedApplicationNewHealthReportEvent() (*DeployedApplicationNewHealthReportEvent, bool) {
38839	return nil, false
38840}
38841
38842// AsDeployedApplicationHealthReportExpiredEvent is the BasicFabricEvent implementation for ServiceCreatedEvent.
38843func (sce ServiceCreatedEvent) AsDeployedApplicationHealthReportExpiredEvent() (*DeployedApplicationHealthReportExpiredEvent, bool) {
38844	return nil, false
38845}
38846
38847// AsApplicationProcessExitedEvent is the BasicFabricEvent implementation for ServiceCreatedEvent.
38848func (sce ServiceCreatedEvent) AsApplicationProcessExitedEvent() (*ApplicationProcessExitedEvent, bool) {
38849	return nil, false
38850}
38851
38852// AsApplicationContainerInstanceExitedEvent is the BasicFabricEvent implementation for ServiceCreatedEvent.
38853func (sce ServiceCreatedEvent) AsApplicationContainerInstanceExitedEvent() (*ApplicationContainerInstanceExitedEvent, bool) {
38854	return nil, false
38855}
38856
38857// AsNodeAbortedEvent is the BasicFabricEvent implementation for ServiceCreatedEvent.
38858func (sce ServiceCreatedEvent) AsNodeAbortedEvent() (*NodeAbortedEvent, bool) {
38859	return nil, false
38860}
38861
38862// AsNodeAddedToClusterEvent is the BasicFabricEvent implementation for ServiceCreatedEvent.
38863func (sce ServiceCreatedEvent) AsNodeAddedToClusterEvent() (*NodeAddedToClusterEvent, bool) {
38864	return nil, false
38865}
38866
38867// AsNodeClosedEvent is the BasicFabricEvent implementation for ServiceCreatedEvent.
38868func (sce ServiceCreatedEvent) AsNodeClosedEvent() (*NodeClosedEvent, bool) {
38869	return nil, false
38870}
38871
38872// AsNodeDeactivateCompletedEvent is the BasicFabricEvent implementation for ServiceCreatedEvent.
38873func (sce ServiceCreatedEvent) AsNodeDeactivateCompletedEvent() (*NodeDeactivateCompletedEvent, bool) {
38874	return nil, false
38875}
38876
38877// AsNodeDeactivateStartedEvent is the BasicFabricEvent implementation for ServiceCreatedEvent.
38878func (sce ServiceCreatedEvent) AsNodeDeactivateStartedEvent() (*NodeDeactivateStartedEvent, bool) {
38879	return nil, false
38880}
38881
38882// AsNodeDownEvent is the BasicFabricEvent implementation for ServiceCreatedEvent.
38883func (sce ServiceCreatedEvent) AsNodeDownEvent() (*NodeDownEvent, bool) {
38884	return nil, false
38885}
38886
38887// AsNodeNewHealthReportEvent is the BasicFabricEvent implementation for ServiceCreatedEvent.
38888func (sce ServiceCreatedEvent) AsNodeNewHealthReportEvent() (*NodeNewHealthReportEvent, bool) {
38889	return nil, false
38890}
38891
38892// AsNodeHealthReportExpiredEvent is the BasicFabricEvent implementation for ServiceCreatedEvent.
38893func (sce ServiceCreatedEvent) AsNodeHealthReportExpiredEvent() (*NodeHealthReportExpiredEvent, bool) {
38894	return nil, false
38895}
38896
38897// AsNodeOpenSucceededEvent is the BasicFabricEvent implementation for ServiceCreatedEvent.
38898func (sce ServiceCreatedEvent) AsNodeOpenSucceededEvent() (*NodeOpenSucceededEvent, bool) {
38899	return nil, false
38900}
38901
38902// AsNodeOpenFailedEvent is the BasicFabricEvent implementation for ServiceCreatedEvent.
38903func (sce ServiceCreatedEvent) AsNodeOpenFailedEvent() (*NodeOpenFailedEvent, bool) {
38904	return nil, false
38905}
38906
38907// AsNodeRemovedFromClusterEvent is the BasicFabricEvent implementation for ServiceCreatedEvent.
38908func (sce ServiceCreatedEvent) AsNodeRemovedFromClusterEvent() (*NodeRemovedFromClusterEvent, bool) {
38909	return nil, false
38910}
38911
38912// AsNodeUpEvent is the BasicFabricEvent implementation for ServiceCreatedEvent.
38913func (sce ServiceCreatedEvent) AsNodeUpEvent() (*NodeUpEvent, bool) {
38914	return nil, false
38915}
38916
38917// AsPartitionNewHealthReportEvent is the BasicFabricEvent implementation for ServiceCreatedEvent.
38918func (sce ServiceCreatedEvent) AsPartitionNewHealthReportEvent() (*PartitionNewHealthReportEvent, bool) {
38919	return nil, false
38920}
38921
38922// AsPartitionHealthReportExpiredEvent is the BasicFabricEvent implementation for ServiceCreatedEvent.
38923func (sce ServiceCreatedEvent) AsPartitionHealthReportExpiredEvent() (*PartitionHealthReportExpiredEvent, bool) {
38924	return nil, false
38925}
38926
38927// AsPartitionReconfiguredEvent is the BasicFabricEvent implementation for ServiceCreatedEvent.
38928func (sce ServiceCreatedEvent) AsPartitionReconfiguredEvent() (*PartitionReconfiguredEvent, bool) {
38929	return nil, false
38930}
38931
38932// AsPartitionPrimaryMoveAnalysisEvent is the BasicFabricEvent implementation for ServiceCreatedEvent.
38933func (sce ServiceCreatedEvent) AsPartitionPrimaryMoveAnalysisEvent() (*PartitionPrimaryMoveAnalysisEvent, bool) {
38934	return nil, false
38935}
38936
38937// AsServiceCreatedEvent is the BasicFabricEvent implementation for ServiceCreatedEvent.
38938func (sce ServiceCreatedEvent) AsServiceCreatedEvent() (*ServiceCreatedEvent, bool) {
38939	return &sce, true
38940}
38941
38942// AsServiceDeletedEvent is the BasicFabricEvent implementation for ServiceCreatedEvent.
38943func (sce ServiceCreatedEvent) AsServiceDeletedEvent() (*ServiceDeletedEvent, bool) {
38944	return nil, false
38945}
38946
38947// AsServiceNewHealthReportEvent is the BasicFabricEvent implementation for ServiceCreatedEvent.
38948func (sce ServiceCreatedEvent) AsServiceNewHealthReportEvent() (*ServiceNewHealthReportEvent, bool) {
38949	return nil, false
38950}
38951
38952// AsServiceHealthReportExpiredEvent is the BasicFabricEvent implementation for ServiceCreatedEvent.
38953func (sce ServiceCreatedEvent) AsServiceHealthReportExpiredEvent() (*ServiceHealthReportExpiredEvent, bool) {
38954	return nil, false
38955}
38956
38957// AsDeployedServicePackageNewHealthReportEvent is the BasicFabricEvent implementation for ServiceCreatedEvent.
38958func (sce ServiceCreatedEvent) AsDeployedServicePackageNewHealthReportEvent() (*DeployedServicePackageNewHealthReportEvent, bool) {
38959	return nil, false
38960}
38961
38962// AsDeployedServicePackageHealthReportExpiredEvent is the BasicFabricEvent implementation for ServiceCreatedEvent.
38963func (sce ServiceCreatedEvent) AsDeployedServicePackageHealthReportExpiredEvent() (*DeployedServicePackageHealthReportExpiredEvent, bool) {
38964	return nil, false
38965}
38966
38967// AsStatefulReplicaNewHealthReportEvent is the BasicFabricEvent implementation for ServiceCreatedEvent.
38968func (sce ServiceCreatedEvent) AsStatefulReplicaNewHealthReportEvent() (*StatefulReplicaNewHealthReportEvent, bool) {
38969	return nil, false
38970}
38971
38972// AsStatefulReplicaHealthReportExpiredEvent is the BasicFabricEvent implementation for ServiceCreatedEvent.
38973func (sce ServiceCreatedEvent) AsStatefulReplicaHealthReportExpiredEvent() (*StatefulReplicaHealthReportExpiredEvent, bool) {
38974	return nil, false
38975}
38976
38977// AsStatelessReplicaNewHealthReportEvent is the BasicFabricEvent implementation for ServiceCreatedEvent.
38978func (sce ServiceCreatedEvent) AsStatelessReplicaNewHealthReportEvent() (*StatelessReplicaNewHealthReportEvent, bool) {
38979	return nil, false
38980}
38981
38982// AsStatelessReplicaHealthReportExpiredEvent is the BasicFabricEvent implementation for ServiceCreatedEvent.
38983func (sce ServiceCreatedEvent) AsStatelessReplicaHealthReportExpiredEvent() (*StatelessReplicaHealthReportExpiredEvent, bool) {
38984	return nil, false
38985}
38986
38987// AsClusterNewHealthReportEvent is the BasicFabricEvent implementation for ServiceCreatedEvent.
38988func (sce ServiceCreatedEvent) AsClusterNewHealthReportEvent() (*ClusterNewHealthReportEvent, bool) {
38989	return nil, false
38990}
38991
38992// AsClusterHealthReportExpiredEvent is the BasicFabricEvent implementation for ServiceCreatedEvent.
38993func (sce ServiceCreatedEvent) AsClusterHealthReportExpiredEvent() (*ClusterHealthReportExpiredEvent, bool) {
38994	return nil, false
38995}
38996
38997// AsClusterUpgradeCompletedEvent is the BasicFabricEvent implementation for ServiceCreatedEvent.
38998func (sce ServiceCreatedEvent) AsClusterUpgradeCompletedEvent() (*ClusterUpgradeCompletedEvent, bool) {
38999	return nil, false
39000}
39001
39002// AsClusterUpgradeDomainCompletedEvent is the BasicFabricEvent implementation for ServiceCreatedEvent.
39003func (sce ServiceCreatedEvent) AsClusterUpgradeDomainCompletedEvent() (*ClusterUpgradeDomainCompletedEvent, bool) {
39004	return nil, false
39005}
39006
39007// AsClusterUpgradeRollbackCompletedEvent is the BasicFabricEvent implementation for ServiceCreatedEvent.
39008func (sce ServiceCreatedEvent) AsClusterUpgradeRollbackCompletedEvent() (*ClusterUpgradeRollbackCompletedEvent, bool) {
39009	return nil, false
39010}
39011
39012// AsClusterUpgradeRollbackStartedEvent is the BasicFabricEvent implementation for ServiceCreatedEvent.
39013func (sce ServiceCreatedEvent) AsClusterUpgradeRollbackStartedEvent() (*ClusterUpgradeRollbackStartedEvent, bool) {
39014	return nil, false
39015}
39016
39017// AsClusterUpgradeStartedEvent is the BasicFabricEvent implementation for ServiceCreatedEvent.
39018func (sce ServiceCreatedEvent) AsClusterUpgradeStartedEvent() (*ClusterUpgradeStartedEvent, bool) {
39019	return nil, false
39020}
39021
39022// AsChaosStoppedEvent is the BasicFabricEvent implementation for ServiceCreatedEvent.
39023func (sce ServiceCreatedEvent) AsChaosStoppedEvent() (*ChaosStoppedEvent, bool) {
39024	return nil, false
39025}
39026
39027// AsChaosStartedEvent is the BasicFabricEvent implementation for ServiceCreatedEvent.
39028func (sce ServiceCreatedEvent) AsChaosStartedEvent() (*ChaosStartedEvent, bool) {
39029	return nil, false
39030}
39031
39032// AsChaosCodePackageRestartScheduledEvent is the BasicFabricEvent implementation for ServiceCreatedEvent.
39033func (sce ServiceCreatedEvent) AsChaosCodePackageRestartScheduledEvent() (*ChaosCodePackageRestartScheduledEvent, bool) {
39034	return nil, false
39035}
39036
39037// AsChaosReplicaRemovalScheduledEvent is the BasicFabricEvent implementation for ServiceCreatedEvent.
39038func (sce ServiceCreatedEvent) AsChaosReplicaRemovalScheduledEvent() (*ChaosReplicaRemovalScheduledEvent, bool) {
39039	return nil, false
39040}
39041
39042// AsChaosPartitionSecondaryMoveScheduledEvent is the BasicFabricEvent implementation for ServiceCreatedEvent.
39043func (sce ServiceCreatedEvent) AsChaosPartitionSecondaryMoveScheduledEvent() (*ChaosPartitionSecondaryMoveScheduledEvent, bool) {
39044	return nil, false
39045}
39046
39047// AsChaosPartitionPrimaryMoveScheduledEvent is the BasicFabricEvent implementation for ServiceCreatedEvent.
39048func (sce ServiceCreatedEvent) AsChaosPartitionPrimaryMoveScheduledEvent() (*ChaosPartitionPrimaryMoveScheduledEvent, bool) {
39049	return nil, false
39050}
39051
39052// AsChaosReplicaRestartScheduledEvent is the BasicFabricEvent implementation for ServiceCreatedEvent.
39053func (sce ServiceCreatedEvent) AsChaosReplicaRestartScheduledEvent() (*ChaosReplicaRestartScheduledEvent, bool) {
39054	return nil, false
39055}
39056
39057// AsChaosNodeRestartScheduledEvent is the BasicFabricEvent implementation for ServiceCreatedEvent.
39058func (sce ServiceCreatedEvent) AsChaosNodeRestartScheduledEvent() (*ChaosNodeRestartScheduledEvent, bool) {
39059	return nil, false
39060}
39061
39062// AsFabricEvent is the BasicFabricEvent implementation for ServiceCreatedEvent.
39063func (sce ServiceCreatedEvent) AsFabricEvent() (*FabricEvent, bool) {
39064	return nil, false
39065}
39066
39067// AsBasicFabricEvent is the BasicFabricEvent implementation for ServiceCreatedEvent.
39068func (sce ServiceCreatedEvent) AsBasicFabricEvent() (BasicFabricEvent, bool) {
39069	return &sce, true
39070}
39071
39072// ServiceDeletedEvent service Deleted event.
39073type ServiceDeletedEvent struct {
39074	// ServiceTypeName - Service type name.
39075	ServiceTypeName *string `json:"ServiceTypeName,omitempty"`
39076	// ApplicationName - Application name.
39077	ApplicationName *string `json:"ApplicationName,omitempty"`
39078	// ApplicationTypeName - Application type name.
39079	ApplicationTypeName *string `json:"ApplicationTypeName,omitempty"`
39080	// ServiceInstance - Id of Service instance.
39081	ServiceInstance *int64 `json:"ServiceInstance,omitempty"`
39082	// IsStateful - Indicates if Service is stateful.
39083	IsStateful *bool `json:"IsStateful,omitempty"`
39084	// PartitionCount - Number of partitions.
39085	PartitionCount *int32 `json:"PartitionCount,omitempty"`
39086	// TargetReplicaSetSize - Size of target replicas set.
39087	TargetReplicaSetSize *int32 `json:"TargetReplicaSetSize,omitempty"`
39088	// MinReplicaSetSize - Minimum size of replicas set.
39089	MinReplicaSetSize *int32 `json:"MinReplicaSetSize,omitempty"`
39090	// ServicePackageVersion - Version of Service package.
39091	ServicePackageVersion *string `json:"ServicePackageVersion,omitempty"`
39092	// 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.
39093	// Starting in version 6.0, hierarchical names are delimited with the "\~" character. For example, if the service name is "fabric:/myapp/app1/svc1",
39094	// the service identity would be "myapp~app1\~svc1" in 6.0+ and "myapp/app1/svc1" in previous versions.
39095	ServiceID *string `json:"ServiceId,omitempty"`
39096	// EventInstanceID - The identifier for the FabricEvent instance.
39097	EventInstanceID *uuid.UUID `json:"EventInstanceId,omitempty"`
39098	// Category - The category of event.
39099	Category *string `json:"Category,omitempty"`
39100	// TimeStamp - The time event was logged.
39101	TimeStamp *date.Time `json:"TimeStamp,omitempty"`
39102	// HasCorrelatedEvents - Shows there is existing related events available.
39103	HasCorrelatedEvents *bool `json:"HasCorrelatedEvents,omitempty"`
39104	// 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'
39105	Kind KindBasicFabricEvent `json:"Kind,omitempty"`
39106}
39107
39108// MarshalJSON is the custom marshaler for ServiceDeletedEvent.
39109func (sde ServiceDeletedEvent) MarshalJSON() ([]byte, error) {
39110	sde.Kind = KindServiceDeleted
39111	objectMap := make(map[string]interface{})
39112	if sde.ServiceTypeName != nil {
39113		objectMap["ServiceTypeName"] = sde.ServiceTypeName
39114	}
39115	if sde.ApplicationName != nil {
39116		objectMap["ApplicationName"] = sde.ApplicationName
39117	}
39118	if sde.ApplicationTypeName != nil {
39119		objectMap["ApplicationTypeName"] = sde.ApplicationTypeName
39120	}
39121	if sde.ServiceInstance != nil {
39122		objectMap["ServiceInstance"] = sde.ServiceInstance
39123	}
39124	if sde.IsStateful != nil {
39125		objectMap["IsStateful"] = sde.IsStateful
39126	}
39127	if sde.PartitionCount != nil {
39128		objectMap["PartitionCount"] = sde.PartitionCount
39129	}
39130	if sde.TargetReplicaSetSize != nil {
39131		objectMap["TargetReplicaSetSize"] = sde.TargetReplicaSetSize
39132	}
39133	if sde.MinReplicaSetSize != nil {
39134		objectMap["MinReplicaSetSize"] = sde.MinReplicaSetSize
39135	}
39136	if sde.ServicePackageVersion != nil {
39137		objectMap["ServicePackageVersion"] = sde.ServicePackageVersion
39138	}
39139	if sde.ServiceID != nil {
39140		objectMap["ServiceId"] = sde.ServiceID
39141	}
39142	if sde.EventInstanceID != nil {
39143		objectMap["EventInstanceId"] = sde.EventInstanceID
39144	}
39145	if sde.Category != nil {
39146		objectMap["Category"] = sde.Category
39147	}
39148	if sde.TimeStamp != nil {
39149		objectMap["TimeStamp"] = sde.TimeStamp
39150	}
39151	if sde.HasCorrelatedEvents != nil {
39152		objectMap["HasCorrelatedEvents"] = sde.HasCorrelatedEvents
39153	}
39154	if sde.Kind != "" {
39155		objectMap["Kind"] = sde.Kind
39156	}
39157	return json.Marshal(objectMap)
39158}
39159
39160// AsApplicationEvent is the BasicFabricEvent implementation for ServiceDeletedEvent.
39161func (sde ServiceDeletedEvent) AsApplicationEvent() (*ApplicationEvent, bool) {
39162	return nil, false
39163}
39164
39165// AsBasicApplicationEvent is the BasicFabricEvent implementation for ServiceDeletedEvent.
39166func (sde ServiceDeletedEvent) AsBasicApplicationEvent() (BasicApplicationEvent, bool) {
39167	return nil, false
39168}
39169
39170// AsClusterEvent is the BasicFabricEvent implementation for ServiceDeletedEvent.
39171func (sde ServiceDeletedEvent) AsClusterEvent() (*ClusterEvent, bool) {
39172	return nil, false
39173}
39174
39175// AsBasicClusterEvent is the BasicFabricEvent implementation for ServiceDeletedEvent.
39176func (sde ServiceDeletedEvent) AsBasicClusterEvent() (BasicClusterEvent, bool) {
39177	return nil, false
39178}
39179
39180// AsContainerInstanceEvent is the BasicFabricEvent implementation for ServiceDeletedEvent.
39181func (sde ServiceDeletedEvent) AsContainerInstanceEvent() (*ContainerInstanceEvent, bool) {
39182	return nil, false
39183}
39184
39185// AsNodeEvent is the BasicFabricEvent implementation for ServiceDeletedEvent.
39186func (sde ServiceDeletedEvent) AsNodeEvent() (*NodeEvent, bool) {
39187	return nil, false
39188}
39189
39190// AsBasicNodeEvent is the BasicFabricEvent implementation for ServiceDeletedEvent.
39191func (sde ServiceDeletedEvent) AsBasicNodeEvent() (BasicNodeEvent, bool) {
39192	return nil, false
39193}
39194
39195// AsPartitionAnalysisEvent is the BasicFabricEvent implementation for ServiceDeletedEvent.
39196func (sde ServiceDeletedEvent) AsPartitionAnalysisEvent() (*PartitionAnalysisEvent, bool) {
39197	return nil, false
39198}
39199
39200// AsBasicPartitionAnalysisEvent is the BasicFabricEvent implementation for ServiceDeletedEvent.
39201func (sde ServiceDeletedEvent) AsBasicPartitionAnalysisEvent() (BasicPartitionAnalysisEvent, bool) {
39202	return nil, false
39203}
39204
39205// AsPartitionEvent is the BasicFabricEvent implementation for ServiceDeletedEvent.
39206func (sde ServiceDeletedEvent) AsPartitionEvent() (*PartitionEvent, bool) {
39207	return nil, false
39208}
39209
39210// AsBasicPartitionEvent is the BasicFabricEvent implementation for ServiceDeletedEvent.
39211func (sde ServiceDeletedEvent) AsBasicPartitionEvent() (BasicPartitionEvent, bool) {
39212	return nil, false
39213}
39214
39215// AsReplicaEvent is the BasicFabricEvent implementation for ServiceDeletedEvent.
39216func (sde ServiceDeletedEvent) AsReplicaEvent() (*ReplicaEvent, bool) {
39217	return nil, false
39218}
39219
39220// AsBasicReplicaEvent is the BasicFabricEvent implementation for ServiceDeletedEvent.
39221func (sde ServiceDeletedEvent) AsBasicReplicaEvent() (BasicReplicaEvent, bool) {
39222	return nil, false
39223}
39224
39225// AsServiceEvent is the BasicFabricEvent implementation for ServiceDeletedEvent.
39226func (sde ServiceDeletedEvent) AsServiceEvent() (*ServiceEvent, bool) {
39227	return nil, false
39228}
39229
39230// AsBasicServiceEvent is the BasicFabricEvent implementation for ServiceDeletedEvent.
39231func (sde ServiceDeletedEvent) AsBasicServiceEvent() (BasicServiceEvent, bool) {
39232	return &sde, true
39233}
39234
39235// AsApplicationCreatedEvent is the BasicFabricEvent implementation for ServiceDeletedEvent.
39236func (sde ServiceDeletedEvent) AsApplicationCreatedEvent() (*ApplicationCreatedEvent, bool) {
39237	return nil, false
39238}
39239
39240// AsApplicationDeletedEvent is the BasicFabricEvent implementation for ServiceDeletedEvent.
39241func (sde ServiceDeletedEvent) AsApplicationDeletedEvent() (*ApplicationDeletedEvent, bool) {
39242	return nil, false
39243}
39244
39245// AsApplicationNewHealthReportEvent is the BasicFabricEvent implementation for ServiceDeletedEvent.
39246func (sde ServiceDeletedEvent) AsApplicationNewHealthReportEvent() (*ApplicationNewHealthReportEvent, bool) {
39247	return nil, false
39248}
39249
39250// AsApplicationHealthReportExpiredEvent is the BasicFabricEvent implementation for ServiceDeletedEvent.
39251func (sde ServiceDeletedEvent) AsApplicationHealthReportExpiredEvent() (*ApplicationHealthReportExpiredEvent, bool) {
39252	return nil, false
39253}
39254
39255// AsApplicationUpgradeCompletedEvent is the BasicFabricEvent implementation for ServiceDeletedEvent.
39256func (sde ServiceDeletedEvent) AsApplicationUpgradeCompletedEvent() (*ApplicationUpgradeCompletedEvent, bool) {
39257	return nil, false
39258}
39259
39260// AsApplicationUpgradeDomainCompletedEvent is the BasicFabricEvent implementation for ServiceDeletedEvent.
39261func (sde ServiceDeletedEvent) AsApplicationUpgradeDomainCompletedEvent() (*ApplicationUpgradeDomainCompletedEvent, bool) {
39262	return nil, false
39263}
39264
39265// AsApplicationUpgradeRollbackCompletedEvent is the BasicFabricEvent implementation for ServiceDeletedEvent.
39266func (sde ServiceDeletedEvent) AsApplicationUpgradeRollbackCompletedEvent() (*ApplicationUpgradeRollbackCompletedEvent, bool) {
39267	return nil, false
39268}
39269
39270// AsApplicationUpgradeRollbackStartedEvent is the BasicFabricEvent implementation for ServiceDeletedEvent.
39271func (sde ServiceDeletedEvent) AsApplicationUpgradeRollbackStartedEvent() (*ApplicationUpgradeRollbackStartedEvent, bool) {
39272	return nil, false
39273}
39274
39275// AsApplicationUpgradeStartedEvent is the BasicFabricEvent implementation for ServiceDeletedEvent.
39276func (sde ServiceDeletedEvent) AsApplicationUpgradeStartedEvent() (*ApplicationUpgradeStartedEvent, bool) {
39277	return nil, false
39278}
39279
39280// AsDeployedApplicationNewHealthReportEvent is the BasicFabricEvent implementation for ServiceDeletedEvent.
39281func (sde ServiceDeletedEvent) AsDeployedApplicationNewHealthReportEvent() (*DeployedApplicationNewHealthReportEvent, bool) {
39282	return nil, false
39283}
39284
39285// AsDeployedApplicationHealthReportExpiredEvent is the BasicFabricEvent implementation for ServiceDeletedEvent.
39286func (sde ServiceDeletedEvent) AsDeployedApplicationHealthReportExpiredEvent() (*DeployedApplicationHealthReportExpiredEvent, bool) {
39287	return nil, false
39288}
39289
39290// AsApplicationProcessExitedEvent is the BasicFabricEvent implementation for ServiceDeletedEvent.
39291func (sde ServiceDeletedEvent) AsApplicationProcessExitedEvent() (*ApplicationProcessExitedEvent, bool) {
39292	return nil, false
39293}
39294
39295// AsApplicationContainerInstanceExitedEvent is the BasicFabricEvent implementation for ServiceDeletedEvent.
39296func (sde ServiceDeletedEvent) AsApplicationContainerInstanceExitedEvent() (*ApplicationContainerInstanceExitedEvent, bool) {
39297	return nil, false
39298}
39299
39300// AsNodeAbortedEvent is the BasicFabricEvent implementation for ServiceDeletedEvent.
39301func (sde ServiceDeletedEvent) AsNodeAbortedEvent() (*NodeAbortedEvent, bool) {
39302	return nil, false
39303}
39304
39305// AsNodeAddedToClusterEvent is the BasicFabricEvent implementation for ServiceDeletedEvent.
39306func (sde ServiceDeletedEvent) AsNodeAddedToClusterEvent() (*NodeAddedToClusterEvent, bool) {
39307	return nil, false
39308}
39309
39310// AsNodeClosedEvent is the BasicFabricEvent implementation for ServiceDeletedEvent.
39311func (sde ServiceDeletedEvent) AsNodeClosedEvent() (*NodeClosedEvent, bool) {
39312	return nil, false
39313}
39314
39315// AsNodeDeactivateCompletedEvent is the BasicFabricEvent implementation for ServiceDeletedEvent.
39316func (sde ServiceDeletedEvent) AsNodeDeactivateCompletedEvent() (*NodeDeactivateCompletedEvent, bool) {
39317	return nil, false
39318}
39319
39320// AsNodeDeactivateStartedEvent is the BasicFabricEvent implementation for ServiceDeletedEvent.
39321func (sde ServiceDeletedEvent) AsNodeDeactivateStartedEvent() (*NodeDeactivateStartedEvent, bool) {
39322	return nil, false
39323}
39324
39325// AsNodeDownEvent is the BasicFabricEvent implementation for ServiceDeletedEvent.
39326func (sde ServiceDeletedEvent) AsNodeDownEvent() (*NodeDownEvent, bool) {
39327	return nil, false
39328}
39329
39330// AsNodeNewHealthReportEvent is the BasicFabricEvent implementation for ServiceDeletedEvent.
39331func (sde ServiceDeletedEvent) AsNodeNewHealthReportEvent() (*NodeNewHealthReportEvent, bool) {
39332	return nil, false
39333}
39334
39335// AsNodeHealthReportExpiredEvent is the BasicFabricEvent implementation for ServiceDeletedEvent.
39336func (sde ServiceDeletedEvent) AsNodeHealthReportExpiredEvent() (*NodeHealthReportExpiredEvent, bool) {
39337	return nil, false
39338}
39339
39340// AsNodeOpenSucceededEvent is the BasicFabricEvent implementation for ServiceDeletedEvent.
39341func (sde ServiceDeletedEvent) AsNodeOpenSucceededEvent() (*NodeOpenSucceededEvent, bool) {
39342	return nil, false
39343}
39344
39345// AsNodeOpenFailedEvent is the BasicFabricEvent implementation for ServiceDeletedEvent.
39346func (sde ServiceDeletedEvent) AsNodeOpenFailedEvent() (*NodeOpenFailedEvent, bool) {
39347	return nil, false
39348}
39349
39350// AsNodeRemovedFromClusterEvent is the BasicFabricEvent implementation for ServiceDeletedEvent.
39351func (sde ServiceDeletedEvent) AsNodeRemovedFromClusterEvent() (*NodeRemovedFromClusterEvent, bool) {
39352	return nil, false
39353}
39354
39355// AsNodeUpEvent is the BasicFabricEvent implementation for ServiceDeletedEvent.
39356func (sde ServiceDeletedEvent) AsNodeUpEvent() (*NodeUpEvent, bool) {
39357	return nil, false
39358}
39359
39360// AsPartitionNewHealthReportEvent is the BasicFabricEvent implementation for ServiceDeletedEvent.
39361func (sde ServiceDeletedEvent) AsPartitionNewHealthReportEvent() (*PartitionNewHealthReportEvent, bool) {
39362	return nil, false
39363}
39364
39365// AsPartitionHealthReportExpiredEvent is the BasicFabricEvent implementation for ServiceDeletedEvent.
39366func (sde ServiceDeletedEvent) AsPartitionHealthReportExpiredEvent() (*PartitionHealthReportExpiredEvent, bool) {
39367	return nil, false
39368}
39369
39370// AsPartitionReconfiguredEvent is the BasicFabricEvent implementation for ServiceDeletedEvent.
39371func (sde ServiceDeletedEvent) AsPartitionReconfiguredEvent() (*PartitionReconfiguredEvent, bool) {
39372	return nil, false
39373}
39374
39375// AsPartitionPrimaryMoveAnalysisEvent is the BasicFabricEvent implementation for ServiceDeletedEvent.
39376func (sde ServiceDeletedEvent) AsPartitionPrimaryMoveAnalysisEvent() (*PartitionPrimaryMoveAnalysisEvent, bool) {
39377	return nil, false
39378}
39379
39380// AsServiceCreatedEvent is the BasicFabricEvent implementation for ServiceDeletedEvent.
39381func (sde ServiceDeletedEvent) AsServiceCreatedEvent() (*ServiceCreatedEvent, bool) {
39382	return nil, false
39383}
39384
39385// AsServiceDeletedEvent is the BasicFabricEvent implementation for ServiceDeletedEvent.
39386func (sde ServiceDeletedEvent) AsServiceDeletedEvent() (*ServiceDeletedEvent, bool) {
39387	return &sde, true
39388}
39389
39390// AsServiceNewHealthReportEvent is the BasicFabricEvent implementation for ServiceDeletedEvent.
39391func (sde ServiceDeletedEvent) AsServiceNewHealthReportEvent() (*ServiceNewHealthReportEvent, bool) {
39392	return nil, false
39393}
39394
39395// AsServiceHealthReportExpiredEvent is the BasicFabricEvent implementation for ServiceDeletedEvent.
39396func (sde ServiceDeletedEvent) AsServiceHealthReportExpiredEvent() (*ServiceHealthReportExpiredEvent, bool) {
39397	return nil, false
39398}
39399
39400// AsDeployedServicePackageNewHealthReportEvent is the BasicFabricEvent implementation for ServiceDeletedEvent.
39401func (sde ServiceDeletedEvent) AsDeployedServicePackageNewHealthReportEvent() (*DeployedServicePackageNewHealthReportEvent, bool) {
39402	return nil, false
39403}
39404
39405// AsDeployedServicePackageHealthReportExpiredEvent is the BasicFabricEvent implementation for ServiceDeletedEvent.
39406func (sde ServiceDeletedEvent) AsDeployedServicePackageHealthReportExpiredEvent() (*DeployedServicePackageHealthReportExpiredEvent, bool) {
39407	return nil, false
39408}
39409
39410// AsStatefulReplicaNewHealthReportEvent is the BasicFabricEvent implementation for ServiceDeletedEvent.
39411func (sde ServiceDeletedEvent) AsStatefulReplicaNewHealthReportEvent() (*StatefulReplicaNewHealthReportEvent, bool) {
39412	return nil, false
39413}
39414
39415// AsStatefulReplicaHealthReportExpiredEvent is the BasicFabricEvent implementation for ServiceDeletedEvent.
39416func (sde ServiceDeletedEvent) AsStatefulReplicaHealthReportExpiredEvent() (*StatefulReplicaHealthReportExpiredEvent, bool) {
39417	return nil, false
39418}
39419
39420// AsStatelessReplicaNewHealthReportEvent is the BasicFabricEvent implementation for ServiceDeletedEvent.
39421func (sde ServiceDeletedEvent) AsStatelessReplicaNewHealthReportEvent() (*StatelessReplicaNewHealthReportEvent, bool) {
39422	return nil, false
39423}
39424
39425// AsStatelessReplicaHealthReportExpiredEvent is the BasicFabricEvent implementation for ServiceDeletedEvent.
39426func (sde ServiceDeletedEvent) AsStatelessReplicaHealthReportExpiredEvent() (*StatelessReplicaHealthReportExpiredEvent, bool) {
39427	return nil, false
39428}
39429
39430// AsClusterNewHealthReportEvent is the BasicFabricEvent implementation for ServiceDeletedEvent.
39431func (sde ServiceDeletedEvent) AsClusterNewHealthReportEvent() (*ClusterNewHealthReportEvent, bool) {
39432	return nil, false
39433}
39434
39435// AsClusterHealthReportExpiredEvent is the BasicFabricEvent implementation for ServiceDeletedEvent.
39436func (sde ServiceDeletedEvent) AsClusterHealthReportExpiredEvent() (*ClusterHealthReportExpiredEvent, bool) {
39437	return nil, false
39438}
39439
39440// AsClusterUpgradeCompletedEvent is the BasicFabricEvent implementation for ServiceDeletedEvent.
39441func (sde ServiceDeletedEvent) AsClusterUpgradeCompletedEvent() (*ClusterUpgradeCompletedEvent, bool) {
39442	return nil, false
39443}
39444
39445// AsClusterUpgradeDomainCompletedEvent is the BasicFabricEvent implementation for ServiceDeletedEvent.
39446func (sde ServiceDeletedEvent) AsClusterUpgradeDomainCompletedEvent() (*ClusterUpgradeDomainCompletedEvent, bool) {
39447	return nil, false
39448}
39449
39450// AsClusterUpgradeRollbackCompletedEvent is the BasicFabricEvent implementation for ServiceDeletedEvent.
39451func (sde ServiceDeletedEvent) AsClusterUpgradeRollbackCompletedEvent() (*ClusterUpgradeRollbackCompletedEvent, bool) {
39452	return nil, false
39453}
39454
39455// AsClusterUpgradeRollbackStartedEvent is the BasicFabricEvent implementation for ServiceDeletedEvent.
39456func (sde ServiceDeletedEvent) AsClusterUpgradeRollbackStartedEvent() (*ClusterUpgradeRollbackStartedEvent, bool) {
39457	return nil, false
39458}
39459
39460// AsClusterUpgradeStartedEvent is the BasicFabricEvent implementation for ServiceDeletedEvent.
39461func (sde ServiceDeletedEvent) AsClusterUpgradeStartedEvent() (*ClusterUpgradeStartedEvent, bool) {
39462	return nil, false
39463}
39464
39465// AsChaosStoppedEvent is the BasicFabricEvent implementation for ServiceDeletedEvent.
39466func (sde ServiceDeletedEvent) AsChaosStoppedEvent() (*ChaosStoppedEvent, bool) {
39467	return nil, false
39468}
39469
39470// AsChaosStartedEvent is the BasicFabricEvent implementation for ServiceDeletedEvent.
39471func (sde ServiceDeletedEvent) AsChaosStartedEvent() (*ChaosStartedEvent, bool) {
39472	return nil, false
39473}
39474
39475// AsChaosCodePackageRestartScheduledEvent is the BasicFabricEvent implementation for ServiceDeletedEvent.
39476func (sde ServiceDeletedEvent) AsChaosCodePackageRestartScheduledEvent() (*ChaosCodePackageRestartScheduledEvent, bool) {
39477	return nil, false
39478}
39479
39480// AsChaosReplicaRemovalScheduledEvent is the BasicFabricEvent implementation for ServiceDeletedEvent.
39481func (sde ServiceDeletedEvent) AsChaosReplicaRemovalScheduledEvent() (*ChaosReplicaRemovalScheduledEvent, bool) {
39482	return nil, false
39483}
39484
39485// AsChaosPartitionSecondaryMoveScheduledEvent is the BasicFabricEvent implementation for ServiceDeletedEvent.
39486func (sde ServiceDeletedEvent) AsChaosPartitionSecondaryMoveScheduledEvent() (*ChaosPartitionSecondaryMoveScheduledEvent, bool) {
39487	return nil, false
39488}
39489
39490// AsChaosPartitionPrimaryMoveScheduledEvent is the BasicFabricEvent implementation for ServiceDeletedEvent.
39491func (sde ServiceDeletedEvent) AsChaosPartitionPrimaryMoveScheduledEvent() (*ChaosPartitionPrimaryMoveScheduledEvent, bool) {
39492	return nil, false
39493}
39494
39495// AsChaosReplicaRestartScheduledEvent is the BasicFabricEvent implementation for ServiceDeletedEvent.
39496func (sde ServiceDeletedEvent) AsChaosReplicaRestartScheduledEvent() (*ChaosReplicaRestartScheduledEvent, bool) {
39497	return nil, false
39498}
39499
39500// AsChaosNodeRestartScheduledEvent is the BasicFabricEvent implementation for ServiceDeletedEvent.
39501func (sde ServiceDeletedEvent) AsChaosNodeRestartScheduledEvent() (*ChaosNodeRestartScheduledEvent, bool) {
39502	return nil, false
39503}
39504
39505// AsFabricEvent is the BasicFabricEvent implementation for ServiceDeletedEvent.
39506func (sde ServiceDeletedEvent) AsFabricEvent() (*FabricEvent, bool) {
39507	return nil, false
39508}
39509
39510// AsBasicFabricEvent is the BasicFabricEvent implementation for ServiceDeletedEvent.
39511func (sde ServiceDeletedEvent) AsBasicFabricEvent() (BasicFabricEvent, bool) {
39512	return &sde, true
39513}
39514
39515// BasicServiceDescription a ServiceDescription contains all of the information necessary to create a service.
39516type BasicServiceDescription interface {
39517	AsStatefulServiceDescription() (*StatefulServiceDescription, bool)
39518	AsStatelessServiceDescription() (*StatelessServiceDescription, bool)
39519	AsServiceDescription() (*ServiceDescription, bool)
39520}
39521
39522// ServiceDescription a ServiceDescription contains all of the information necessary to create a service.
39523type ServiceDescription struct {
39524	autorest.Response `json:"-"`
39525	// ApplicationName - The name of the application, including the 'fabric:' URI scheme.
39526	ApplicationName *string `json:"ApplicationName,omitempty"`
39527	// ServiceName - The full name of the service with 'fabric:' URI scheme.
39528	ServiceName *string `json:"ServiceName,omitempty"`
39529	// ServiceTypeName - Name of the service type as specified in the service manifest.
39530	ServiceTypeName *string `json:"ServiceTypeName,omitempty"`
39531	// InitializationData - The initialization data as an array of bytes. Initialization data is passed to service instances or replicas when they are created.
39532	InitializationData *[]int32 `json:"InitializationData,omitempty"`
39533	// PartitionDescription - The partition description as an object.
39534	PartitionDescription BasicPartitionSchemeDescription `json:"PartitionDescription,omitempty"`
39535	// 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)".
39536	PlacementConstraints *string `json:"PlacementConstraints,omitempty"`
39537	// CorrelationScheme - The correlation scheme.
39538	CorrelationScheme *[]ServiceCorrelationDescription `json:"CorrelationScheme,omitempty"`
39539	// ServiceLoadMetrics - The service load metrics.
39540	ServiceLoadMetrics *[]ServiceLoadMetricDescription `json:"ServiceLoadMetrics,omitempty"`
39541	// ServicePlacementPolicies - The service placement policies.
39542	ServicePlacementPolicies *[]BasicServicePlacementPolicyDescription `json:"ServicePlacementPolicies,omitempty"`
39543	// DefaultMoveCost - The move cost for the service. Possible values include: 'Zero', 'Low', 'Medium', 'High', 'VeryHigh'
39544	DefaultMoveCost MoveCost `json:"DefaultMoveCost,omitempty"`
39545	// IsDefaultMoveCostSpecified - Indicates if the DefaultMoveCost property is specified.
39546	IsDefaultMoveCostSpecified *bool `json:"IsDefaultMoveCostSpecified,omitempty"`
39547	// ServicePackageActivationMode - The activation mode of service package to be used for a service. Possible values include: 'SharedProcess', 'ExclusiveProcess'
39548	ServicePackageActivationMode ServicePackageActivationMode `json:"ServicePackageActivationMode,omitempty"`
39549	// ServiceDNSName - The DNS name of the service. It requires the DNS system service to be enabled in Service Fabric cluster.
39550	ServiceDNSName *string `json:"ServiceDnsName,omitempty"`
39551	// ScalingPolicies - Scaling policies for this service.
39552	ScalingPolicies *[]ScalingPolicyDescription `json:"ScalingPolicies,omitempty"`
39553	// ServiceKind - Possible values include: 'ServiceKindBasicServiceDescriptionServiceKindServiceDescription', 'ServiceKindBasicServiceDescriptionServiceKindStateful', 'ServiceKindBasicServiceDescriptionServiceKindStateless'
39554	ServiceKind ServiceKindBasicServiceDescription `json:"ServiceKind,omitempty"`
39555}
39556
39557func unmarshalBasicServiceDescription(body []byte) (BasicServiceDescription, error) {
39558	var m map[string]interface{}
39559	err := json.Unmarshal(body, &m)
39560	if err != nil {
39561		return nil, err
39562	}
39563
39564	switch m["ServiceKind"] {
39565	case string(ServiceKindBasicServiceDescriptionServiceKindStateful):
39566		var ssd StatefulServiceDescription
39567		err := json.Unmarshal(body, &ssd)
39568		return ssd, err
39569	case string(ServiceKindBasicServiceDescriptionServiceKindStateless):
39570		var ssd StatelessServiceDescription
39571		err := json.Unmarshal(body, &ssd)
39572		return ssd, err
39573	default:
39574		var sd ServiceDescription
39575		err := json.Unmarshal(body, &sd)
39576		return sd, err
39577	}
39578}
39579func unmarshalBasicServiceDescriptionArray(body []byte) ([]BasicServiceDescription, error) {
39580	var rawMessages []*json.RawMessage
39581	err := json.Unmarshal(body, &rawMessages)
39582	if err != nil {
39583		return nil, err
39584	}
39585
39586	sdArray := make([]BasicServiceDescription, len(rawMessages))
39587
39588	for index, rawMessage := range rawMessages {
39589		sd, err := unmarshalBasicServiceDescription(*rawMessage)
39590		if err != nil {
39591			return nil, err
39592		}
39593		sdArray[index] = sd
39594	}
39595	return sdArray, nil
39596}
39597
39598// MarshalJSON is the custom marshaler for ServiceDescription.
39599func (sd ServiceDescription) MarshalJSON() ([]byte, error) {
39600	sd.ServiceKind = ServiceKindBasicServiceDescriptionServiceKindServiceDescription
39601	objectMap := make(map[string]interface{})
39602	if sd.ApplicationName != nil {
39603		objectMap["ApplicationName"] = sd.ApplicationName
39604	}
39605	if sd.ServiceName != nil {
39606		objectMap["ServiceName"] = sd.ServiceName
39607	}
39608	if sd.ServiceTypeName != nil {
39609		objectMap["ServiceTypeName"] = sd.ServiceTypeName
39610	}
39611	if sd.InitializationData != nil {
39612		objectMap["InitializationData"] = sd.InitializationData
39613	}
39614	objectMap["PartitionDescription"] = sd.PartitionDescription
39615	if sd.PlacementConstraints != nil {
39616		objectMap["PlacementConstraints"] = sd.PlacementConstraints
39617	}
39618	if sd.CorrelationScheme != nil {
39619		objectMap["CorrelationScheme"] = sd.CorrelationScheme
39620	}
39621	if sd.ServiceLoadMetrics != nil {
39622		objectMap["ServiceLoadMetrics"] = sd.ServiceLoadMetrics
39623	}
39624	if sd.ServicePlacementPolicies != nil {
39625		objectMap["ServicePlacementPolicies"] = sd.ServicePlacementPolicies
39626	}
39627	if sd.DefaultMoveCost != "" {
39628		objectMap["DefaultMoveCost"] = sd.DefaultMoveCost
39629	}
39630	if sd.IsDefaultMoveCostSpecified != nil {
39631		objectMap["IsDefaultMoveCostSpecified"] = sd.IsDefaultMoveCostSpecified
39632	}
39633	if sd.ServicePackageActivationMode != "" {
39634		objectMap["ServicePackageActivationMode"] = sd.ServicePackageActivationMode
39635	}
39636	if sd.ServiceDNSName != nil {
39637		objectMap["ServiceDnsName"] = sd.ServiceDNSName
39638	}
39639	if sd.ScalingPolicies != nil {
39640		objectMap["ScalingPolicies"] = sd.ScalingPolicies
39641	}
39642	if sd.ServiceKind != "" {
39643		objectMap["ServiceKind"] = sd.ServiceKind
39644	}
39645	return json.Marshal(objectMap)
39646}
39647
39648// AsStatefulServiceDescription is the BasicServiceDescription implementation for ServiceDescription.
39649func (sd ServiceDescription) AsStatefulServiceDescription() (*StatefulServiceDescription, bool) {
39650	return nil, false
39651}
39652
39653// AsStatelessServiceDescription is the BasicServiceDescription implementation for ServiceDescription.
39654func (sd ServiceDescription) AsStatelessServiceDescription() (*StatelessServiceDescription, bool) {
39655	return nil, false
39656}
39657
39658// AsServiceDescription is the BasicServiceDescription implementation for ServiceDescription.
39659func (sd ServiceDescription) AsServiceDescription() (*ServiceDescription, bool) {
39660	return &sd, true
39661}
39662
39663// AsBasicServiceDescription is the BasicServiceDescription implementation for ServiceDescription.
39664func (sd ServiceDescription) AsBasicServiceDescription() (BasicServiceDescription, bool) {
39665	return &sd, true
39666}
39667
39668// UnmarshalJSON is the custom unmarshaler for ServiceDescription struct.
39669func (sd *ServiceDescription) UnmarshalJSON(body []byte) error {
39670	var m map[string]*json.RawMessage
39671	err := json.Unmarshal(body, &m)
39672	if err != nil {
39673		return err
39674	}
39675	for k, v := range m {
39676		switch k {
39677		case "ApplicationName":
39678			if v != nil {
39679				var applicationName string
39680				err = json.Unmarshal(*v, &applicationName)
39681				if err != nil {
39682					return err
39683				}
39684				sd.ApplicationName = &applicationName
39685			}
39686		case "ServiceName":
39687			if v != nil {
39688				var serviceName string
39689				err = json.Unmarshal(*v, &serviceName)
39690				if err != nil {
39691					return err
39692				}
39693				sd.ServiceName = &serviceName
39694			}
39695		case "ServiceTypeName":
39696			if v != nil {
39697				var serviceTypeName string
39698				err = json.Unmarshal(*v, &serviceTypeName)
39699				if err != nil {
39700					return err
39701				}
39702				sd.ServiceTypeName = &serviceTypeName
39703			}
39704		case "InitializationData":
39705			if v != nil {
39706				var initializationData []int32
39707				err = json.Unmarshal(*v, &initializationData)
39708				if err != nil {
39709					return err
39710				}
39711				sd.InitializationData = &initializationData
39712			}
39713		case "PartitionDescription":
39714			if v != nil {
39715				partitionDescription, err := unmarshalBasicPartitionSchemeDescription(*v)
39716				if err != nil {
39717					return err
39718				}
39719				sd.PartitionDescription = partitionDescription
39720			}
39721		case "PlacementConstraints":
39722			if v != nil {
39723				var placementConstraints string
39724				err = json.Unmarshal(*v, &placementConstraints)
39725				if err != nil {
39726					return err
39727				}
39728				sd.PlacementConstraints = &placementConstraints
39729			}
39730		case "CorrelationScheme":
39731			if v != nil {
39732				var correlationScheme []ServiceCorrelationDescription
39733				err = json.Unmarshal(*v, &correlationScheme)
39734				if err != nil {
39735					return err
39736				}
39737				sd.CorrelationScheme = &correlationScheme
39738			}
39739		case "ServiceLoadMetrics":
39740			if v != nil {
39741				var serviceLoadMetrics []ServiceLoadMetricDescription
39742				err = json.Unmarshal(*v, &serviceLoadMetrics)
39743				if err != nil {
39744					return err
39745				}
39746				sd.ServiceLoadMetrics = &serviceLoadMetrics
39747			}
39748		case "ServicePlacementPolicies":
39749			if v != nil {
39750				servicePlacementPolicies, err := unmarshalBasicServicePlacementPolicyDescriptionArray(*v)
39751				if err != nil {
39752					return err
39753				}
39754				sd.ServicePlacementPolicies = &servicePlacementPolicies
39755			}
39756		case "DefaultMoveCost":
39757			if v != nil {
39758				var defaultMoveCost MoveCost
39759				err = json.Unmarshal(*v, &defaultMoveCost)
39760				if err != nil {
39761					return err
39762				}
39763				sd.DefaultMoveCost = defaultMoveCost
39764			}
39765		case "IsDefaultMoveCostSpecified":
39766			if v != nil {
39767				var isDefaultMoveCostSpecified bool
39768				err = json.Unmarshal(*v, &isDefaultMoveCostSpecified)
39769				if err != nil {
39770					return err
39771				}
39772				sd.IsDefaultMoveCostSpecified = &isDefaultMoveCostSpecified
39773			}
39774		case "ServicePackageActivationMode":
39775			if v != nil {
39776				var servicePackageActivationMode ServicePackageActivationMode
39777				err = json.Unmarshal(*v, &servicePackageActivationMode)
39778				if err != nil {
39779					return err
39780				}
39781				sd.ServicePackageActivationMode = servicePackageActivationMode
39782			}
39783		case "ServiceDnsName":
39784			if v != nil {
39785				var serviceDNSName string
39786				err = json.Unmarshal(*v, &serviceDNSName)
39787				if err != nil {
39788					return err
39789				}
39790				sd.ServiceDNSName = &serviceDNSName
39791			}
39792		case "ScalingPolicies":
39793			if v != nil {
39794				var scalingPolicies []ScalingPolicyDescription
39795				err = json.Unmarshal(*v, &scalingPolicies)
39796				if err != nil {
39797					return err
39798				}
39799				sd.ScalingPolicies = &scalingPolicies
39800			}
39801		case "ServiceKind":
39802			if v != nil {
39803				var serviceKind ServiceKindBasicServiceDescription
39804				err = json.Unmarshal(*v, &serviceKind)
39805				if err != nil {
39806					return err
39807				}
39808				sd.ServiceKind = serviceKind
39809			}
39810		}
39811	}
39812
39813	return nil
39814}
39815
39816// ServiceDescriptionModel ...
39817type ServiceDescriptionModel struct {
39818	autorest.Response `json:"-"`
39819	Value             BasicServiceDescription `json:"value,omitempty"`
39820}
39821
39822// UnmarshalJSON is the custom unmarshaler for ServiceDescriptionModel struct.
39823func (sdm *ServiceDescriptionModel) UnmarshalJSON(body []byte) error {
39824	sd, err := unmarshalBasicServiceDescription(body)
39825	if err != nil {
39826		return err
39827	}
39828	sdm.Value = sd
39829
39830	return nil
39831}
39832
39833// BasicServiceEvent represents the base for all Service Events.
39834type BasicServiceEvent interface {
39835	AsServiceCreatedEvent() (*ServiceCreatedEvent, bool)
39836	AsServiceDeletedEvent() (*ServiceDeletedEvent, bool)
39837	AsServiceNewHealthReportEvent() (*ServiceNewHealthReportEvent, bool)
39838	AsServiceHealthReportExpiredEvent() (*ServiceHealthReportExpiredEvent, bool)
39839	AsServiceEvent() (*ServiceEvent, bool)
39840}
39841
39842// ServiceEvent represents the base for all Service Events.
39843type ServiceEvent struct {
39844	// 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.
39845	// Starting in version 6.0, hierarchical names are delimited with the "\~" character. For example, if the service name is "fabric:/myapp/app1/svc1",
39846	// the service identity would be "myapp~app1\~svc1" in 6.0+ and "myapp/app1/svc1" in previous versions.
39847	ServiceID *string `json:"ServiceId,omitempty"`
39848	// EventInstanceID - The identifier for the FabricEvent instance.
39849	EventInstanceID *uuid.UUID `json:"EventInstanceId,omitempty"`
39850	// Category - The category of event.
39851	Category *string `json:"Category,omitempty"`
39852	// TimeStamp - The time event was logged.
39853	TimeStamp *date.Time `json:"TimeStamp,omitempty"`
39854	// HasCorrelatedEvents - Shows there is existing related events available.
39855	HasCorrelatedEvents *bool `json:"HasCorrelatedEvents,omitempty"`
39856	// 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'
39857	Kind KindBasicFabricEvent `json:"Kind,omitempty"`
39858}
39859
39860func unmarshalBasicServiceEvent(body []byte) (BasicServiceEvent, error) {
39861	var m map[string]interface{}
39862	err := json.Unmarshal(body, &m)
39863	if err != nil {
39864		return nil, err
39865	}
39866
39867	switch m["Kind"] {
39868	case string(KindServiceCreated):
39869		var sce ServiceCreatedEvent
39870		err := json.Unmarshal(body, &sce)
39871		return sce, err
39872	case string(KindServiceDeleted):
39873		var sde ServiceDeletedEvent
39874		err := json.Unmarshal(body, &sde)
39875		return sde, err
39876	case string(KindServiceNewHealthReport):
39877		var snhre ServiceNewHealthReportEvent
39878		err := json.Unmarshal(body, &snhre)
39879		return snhre, err
39880	case string(KindServiceHealthReportExpired):
39881		var shree ServiceHealthReportExpiredEvent
39882		err := json.Unmarshal(body, &shree)
39883		return shree, err
39884	default:
39885		var se ServiceEvent
39886		err := json.Unmarshal(body, &se)
39887		return se, err
39888	}
39889}
39890func unmarshalBasicServiceEventArray(body []byte) ([]BasicServiceEvent, error) {
39891	var rawMessages []*json.RawMessage
39892	err := json.Unmarshal(body, &rawMessages)
39893	if err != nil {
39894		return nil, err
39895	}
39896
39897	seArray := make([]BasicServiceEvent, len(rawMessages))
39898
39899	for index, rawMessage := range rawMessages {
39900		se, err := unmarshalBasicServiceEvent(*rawMessage)
39901		if err != nil {
39902			return nil, err
39903		}
39904		seArray[index] = se
39905	}
39906	return seArray, nil
39907}
39908
39909// MarshalJSON is the custom marshaler for ServiceEvent.
39910func (se ServiceEvent) MarshalJSON() ([]byte, error) {
39911	se.Kind = KindServiceEvent
39912	objectMap := make(map[string]interface{})
39913	if se.ServiceID != nil {
39914		objectMap["ServiceId"] = se.ServiceID
39915	}
39916	if se.EventInstanceID != nil {
39917		objectMap["EventInstanceId"] = se.EventInstanceID
39918	}
39919	if se.Category != nil {
39920		objectMap["Category"] = se.Category
39921	}
39922	if se.TimeStamp != nil {
39923		objectMap["TimeStamp"] = se.TimeStamp
39924	}
39925	if se.HasCorrelatedEvents != nil {
39926		objectMap["HasCorrelatedEvents"] = se.HasCorrelatedEvents
39927	}
39928	if se.Kind != "" {
39929		objectMap["Kind"] = se.Kind
39930	}
39931	return json.Marshal(objectMap)
39932}
39933
39934// AsApplicationEvent is the BasicFabricEvent implementation for ServiceEvent.
39935func (se ServiceEvent) AsApplicationEvent() (*ApplicationEvent, bool) {
39936	return nil, false
39937}
39938
39939// AsBasicApplicationEvent is the BasicFabricEvent implementation for ServiceEvent.
39940func (se ServiceEvent) AsBasicApplicationEvent() (BasicApplicationEvent, bool) {
39941	return nil, false
39942}
39943
39944// AsClusterEvent is the BasicFabricEvent implementation for ServiceEvent.
39945func (se ServiceEvent) AsClusterEvent() (*ClusterEvent, bool) {
39946	return nil, false
39947}
39948
39949// AsBasicClusterEvent is the BasicFabricEvent implementation for ServiceEvent.
39950func (se ServiceEvent) AsBasicClusterEvent() (BasicClusterEvent, bool) {
39951	return nil, false
39952}
39953
39954// AsContainerInstanceEvent is the BasicFabricEvent implementation for ServiceEvent.
39955func (se ServiceEvent) AsContainerInstanceEvent() (*ContainerInstanceEvent, bool) {
39956	return nil, false
39957}
39958
39959// AsNodeEvent is the BasicFabricEvent implementation for ServiceEvent.
39960func (se ServiceEvent) AsNodeEvent() (*NodeEvent, bool) {
39961	return nil, false
39962}
39963
39964// AsBasicNodeEvent is the BasicFabricEvent implementation for ServiceEvent.
39965func (se ServiceEvent) AsBasicNodeEvent() (BasicNodeEvent, bool) {
39966	return nil, false
39967}
39968
39969// AsPartitionAnalysisEvent is the BasicFabricEvent implementation for ServiceEvent.
39970func (se ServiceEvent) AsPartitionAnalysisEvent() (*PartitionAnalysisEvent, bool) {
39971	return nil, false
39972}
39973
39974// AsBasicPartitionAnalysisEvent is the BasicFabricEvent implementation for ServiceEvent.
39975func (se ServiceEvent) AsBasicPartitionAnalysisEvent() (BasicPartitionAnalysisEvent, bool) {
39976	return nil, false
39977}
39978
39979// AsPartitionEvent is the BasicFabricEvent implementation for ServiceEvent.
39980func (se ServiceEvent) AsPartitionEvent() (*PartitionEvent, bool) {
39981	return nil, false
39982}
39983
39984// AsBasicPartitionEvent is the BasicFabricEvent implementation for ServiceEvent.
39985func (se ServiceEvent) AsBasicPartitionEvent() (BasicPartitionEvent, bool) {
39986	return nil, false
39987}
39988
39989// AsReplicaEvent is the BasicFabricEvent implementation for ServiceEvent.
39990func (se ServiceEvent) AsReplicaEvent() (*ReplicaEvent, bool) {
39991	return nil, false
39992}
39993
39994// AsBasicReplicaEvent is the BasicFabricEvent implementation for ServiceEvent.
39995func (se ServiceEvent) AsBasicReplicaEvent() (BasicReplicaEvent, bool) {
39996	return nil, false
39997}
39998
39999// AsServiceEvent is the BasicFabricEvent implementation for ServiceEvent.
40000func (se ServiceEvent) AsServiceEvent() (*ServiceEvent, bool) {
40001	return &se, true
40002}
40003
40004// AsBasicServiceEvent is the BasicFabricEvent implementation for ServiceEvent.
40005func (se ServiceEvent) AsBasicServiceEvent() (BasicServiceEvent, bool) {
40006	return &se, true
40007}
40008
40009// AsApplicationCreatedEvent is the BasicFabricEvent implementation for ServiceEvent.
40010func (se ServiceEvent) AsApplicationCreatedEvent() (*ApplicationCreatedEvent, bool) {
40011	return nil, false
40012}
40013
40014// AsApplicationDeletedEvent is the BasicFabricEvent implementation for ServiceEvent.
40015func (se ServiceEvent) AsApplicationDeletedEvent() (*ApplicationDeletedEvent, bool) {
40016	return nil, false
40017}
40018
40019// AsApplicationNewHealthReportEvent is the BasicFabricEvent implementation for ServiceEvent.
40020func (se ServiceEvent) AsApplicationNewHealthReportEvent() (*ApplicationNewHealthReportEvent, bool) {
40021	return nil, false
40022}
40023
40024// AsApplicationHealthReportExpiredEvent is the BasicFabricEvent implementation for ServiceEvent.
40025func (se ServiceEvent) AsApplicationHealthReportExpiredEvent() (*ApplicationHealthReportExpiredEvent, bool) {
40026	return nil, false
40027}
40028
40029// AsApplicationUpgradeCompletedEvent is the BasicFabricEvent implementation for ServiceEvent.
40030func (se ServiceEvent) AsApplicationUpgradeCompletedEvent() (*ApplicationUpgradeCompletedEvent, bool) {
40031	return nil, false
40032}
40033
40034// AsApplicationUpgradeDomainCompletedEvent is the BasicFabricEvent implementation for ServiceEvent.
40035func (se ServiceEvent) AsApplicationUpgradeDomainCompletedEvent() (*ApplicationUpgradeDomainCompletedEvent, bool) {
40036	return nil, false
40037}
40038
40039// AsApplicationUpgradeRollbackCompletedEvent is the BasicFabricEvent implementation for ServiceEvent.
40040func (se ServiceEvent) AsApplicationUpgradeRollbackCompletedEvent() (*ApplicationUpgradeRollbackCompletedEvent, bool) {
40041	return nil, false
40042}
40043
40044// AsApplicationUpgradeRollbackStartedEvent is the BasicFabricEvent implementation for ServiceEvent.
40045func (se ServiceEvent) AsApplicationUpgradeRollbackStartedEvent() (*ApplicationUpgradeRollbackStartedEvent, bool) {
40046	return nil, false
40047}
40048
40049// AsApplicationUpgradeStartedEvent is the BasicFabricEvent implementation for ServiceEvent.
40050func (se ServiceEvent) AsApplicationUpgradeStartedEvent() (*ApplicationUpgradeStartedEvent, bool) {
40051	return nil, false
40052}
40053
40054// AsDeployedApplicationNewHealthReportEvent is the BasicFabricEvent implementation for ServiceEvent.
40055func (se ServiceEvent) AsDeployedApplicationNewHealthReportEvent() (*DeployedApplicationNewHealthReportEvent, bool) {
40056	return nil, false
40057}
40058
40059// AsDeployedApplicationHealthReportExpiredEvent is the BasicFabricEvent implementation for ServiceEvent.
40060func (se ServiceEvent) AsDeployedApplicationHealthReportExpiredEvent() (*DeployedApplicationHealthReportExpiredEvent, bool) {
40061	return nil, false
40062}
40063
40064// AsApplicationProcessExitedEvent is the BasicFabricEvent implementation for ServiceEvent.
40065func (se ServiceEvent) AsApplicationProcessExitedEvent() (*ApplicationProcessExitedEvent, bool) {
40066	return nil, false
40067}
40068
40069// AsApplicationContainerInstanceExitedEvent is the BasicFabricEvent implementation for ServiceEvent.
40070func (se ServiceEvent) AsApplicationContainerInstanceExitedEvent() (*ApplicationContainerInstanceExitedEvent, bool) {
40071	return nil, false
40072}
40073
40074// AsNodeAbortedEvent is the BasicFabricEvent implementation for ServiceEvent.
40075func (se ServiceEvent) AsNodeAbortedEvent() (*NodeAbortedEvent, bool) {
40076	return nil, false
40077}
40078
40079// AsNodeAddedToClusterEvent is the BasicFabricEvent implementation for ServiceEvent.
40080func (se ServiceEvent) AsNodeAddedToClusterEvent() (*NodeAddedToClusterEvent, bool) {
40081	return nil, false
40082}
40083
40084// AsNodeClosedEvent is the BasicFabricEvent implementation for ServiceEvent.
40085func (se ServiceEvent) AsNodeClosedEvent() (*NodeClosedEvent, bool) {
40086	return nil, false
40087}
40088
40089// AsNodeDeactivateCompletedEvent is the BasicFabricEvent implementation for ServiceEvent.
40090func (se ServiceEvent) AsNodeDeactivateCompletedEvent() (*NodeDeactivateCompletedEvent, bool) {
40091	return nil, false
40092}
40093
40094// AsNodeDeactivateStartedEvent is the BasicFabricEvent implementation for ServiceEvent.
40095func (se ServiceEvent) AsNodeDeactivateStartedEvent() (*NodeDeactivateStartedEvent, bool) {
40096	return nil, false
40097}
40098
40099// AsNodeDownEvent is the BasicFabricEvent implementation for ServiceEvent.
40100func (se ServiceEvent) AsNodeDownEvent() (*NodeDownEvent, bool) {
40101	return nil, false
40102}
40103
40104// AsNodeNewHealthReportEvent is the BasicFabricEvent implementation for ServiceEvent.
40105func (se ServiceEvent) AsNodeNewHealthReportEvent() (*NodeNewHealthReportEvent, bool) {
40106	return nil, false
40107}
40108
40109// AsNodeHealthReportExpiredEvent is the BasicFabricEvent implementation for ServiceEvent.
40110func (se ServiceEvent) AsNodeHealthReportExpiredEvent() (*NodeHealthReportExpiredEvent, bool) {
40111	return nil, false
40112}
40113
40114// AsNodeOpenSucceededEvent is the BasicFabricEvent implementation for ServiceEvent.
40115func (se ServiceEvent) AsNodeOpenSucceededEvent() (*NodeOpenSucceededEvent, bool) {
40116	return nil, false
40117}
40118
40119// AsNodeOpenFailedEvent is the BasicFabricEvent implementation for ServiceEvent.
40120func (se ServiceEvent) AsNodeOpenFailedEvent() (*NodeOpenFailedEvent, bool) {
40121	return nil, false
40122}
40123
40124// AsNodeRemovedFromClusterEvent is the BasicFabricEvent implementation for ServiceEvent.
40125func (se ServiceEvent) AsNodeRemovedFromClusterEvent() (*NodeRemovedFromClusterEvent, bool) {
40126	return nil, false
40127}
40128
40129// AsNodeUpEvent is the BasicFabricEvent implementation for ServiceEvent.
40130func (se ServiceEvent) AsNodeUpEvent() (*NodeUpEvent, bool) {
40131	return nil, false
40132}
40133
40134// AsPartitionNewHealthReportEvent is the BasicFabricEvent implementation for ServiceEvent.
40135func (se ServiceEvent) AsPartitionNewHealthReportEvent() (*PartitionNewHealthReportEvent, bool) {
40136	return nil, false
40137}
40138
40139// AsPartitionHealthReportExpiredEvent is the BasicFabricEvent implementation for ServiceEvent.
40140func (se ServiceEvent) AsPartitionHealthReportExpiredEvent() (*PartitionHealthReportExpiredEvent, bool) {
40141	return nil, false
40142}
40143
40144// AsPartitionReconfiguredEvent is the BasicFabricEvent implementation for ServiceEvent.
40145func (se ServiceEvent) AsPartitionReconfiguredEvent() (*PartitionReconfiguredEvent, bool) {
40146	return nil, false
40147}
40148
40149// AsPartitionPrimaryMoveAnalysisEvent is the BasicFabricEvent implementation for ServiceEvent.
40150func (se ServiceEvent) AsPartitionPrimaryMoveAnalysisEvent() (*PartitionPrimaryMoveAnalysisEvent, bool) {
40151	return nil, false
40152}
40153
40154// AsServiceCreatedEvent is the BasicFabricEvent implementation for ServiceEvent.
40155func (se ServiceEvent) AsServiceCreatedEvent() (*ServiceCreatedEvent, bool) {
40156	return nil, false
40157}
40158
40159// AsServiceDeletedEvent is the BasicFabricEvent implementation for ServiceEvent.
40160func (se ServiceEvent) AsServiceDeletedEvent() (*ServiceDeletedEvent, bool) {
40161	return nil, false
40162}
40163
40164// AsServiceNewHealthReportEvent is the BasicFabricEvent implementation for ServiceEvent.
40165func (se ServiceEvent) AsServiceNewHealthReportEvent() (*ServiceNewHealthReportEvent, bool) {
40166	return nil, false
40167}
40168
40169// AsServiceHealthReportExpiredEvent is the BasicFabricEvent implementation for ServiceEvent.
40170func (se ServiceEvent) AsServiceHealthReportExpiredEvent() (*ServiceHealthReportExpiredEvent, bool) {
40171	return nil, false
40172}
40173
40174// AsDeployedServicePackageNewHealthReportEvent is the BasicFabricEvent implementation for ServiceEvent.
40175func (se ServiceEvent) AsDeployedServicePackageNewHealthReportEvent() (*DeployedServicePackageNewHealthReportEvent, bool) {
40176	return nil, false
40177}
40178
40179// AsDeployedServicePackageHealthReportExpiredEvent is the BasicFabricEvent implementation for ServiceEvent.
40180func (se ServiceEvent) AsDeployedServicePackageHealthReportExpiredEvent() (*DeployedServicePackageHealthReportExpiredEvent, bool) {
40181	return nil, false
40182}
40183
40184// AsStatefulReplicaNewHealthReportEvent is the BasicFabricEvent implementation for ServiceEvent.
40185func (se ServiceEvent) AsStatefulReplicaNewHealthReportEvent() (*StatefulReplicaNewHealthReportEvent, bool) {
40186	return nil, false
40187}
40188
40189// AsStatefulReplicaHealthReportExpiredEvent is the BasicFabricEvent implementation for ServiceEvent.
40190func (se ServiceEvent) AsStatefulReplicaHealthReportExpiredEvent() (*StatefulReplicaHealthReportExpiredEvent, bool) {
40191	return nil, false
40192}
40193
40194// AsStatelessReplicaNewHealthReportEvent is the BasicFabricEvent implementation for ServiceEvent.
40195func (se ServiceEvent) AsStatelessReplicaNewHealthReportEvent() (*StatelessReplicaNewHealthReportEvent, bool) {
40196	return nil, false
40197}
40198
40199// AsStatelessReplicaHealthReportExpiredEvent is the BasicFabricEvent implementation for ServiceEvent.
40200func (se ServiceEvent) AsStatelessReplicaHealthReportExpiredEvent() (*StatelessReplicaHealthReportExpiredEvent, bool) {
40201	return nil, false
40202}
40203
40204// AsClusterNewHealthReportEvent is the BasicFabricEvent implementation for ServiceEvent.
40205func (se ServiceEvent) AsClusterNewHealthReportEvent() (*ClusterNewHealthReportEvent, bool) {
40206	return nil, false
40207}
40208
40209// AsClusterHealthReportExpiredEvent is the BasicFabricEvent implementation for ServiceEvent.
40210func (se ServiceEvent) AsClusterHealthReportExpiredEvent() (*ClusterHealthReportExpiredEvent, bool) {
40211	return nil, false
40212}
40213
40214// AsClusterUpgradeCompletedEvent is the BasicFabricEvent implementation for ServiceEvent.
40215func (se ServiceEvent) AsClusterUpgradeCompletedEvent() (*ClusterUpgradeCompletedEvent, bool) {
40216	return nil, false
40217}
40218
40219// AsClusterUpgradeDomainCompletedEvent is the BasicFabricEvent implementation for ServiceEvent.
40220func (se ServiceEvent) AsClusterUpgradeDomainCompletedEvent() (*ClusterUpgradeDomainCompletedEvent, bool) {
40221	return nil, false
40222}
40223
40224// AsClusterUpgradeRollbackCompletedEvent is the BasicFabricEvent implementation for ServiceEvent.
40225func (se ServiceEvent) AsClusterUpgradeRollbackCompletedEvent() (*ClusterUpgradeRollbackCompletedEvent, bool) {
40226	return nil, false
40227}
40228
40229// AsClusterUpgradeRollbackStartedEvent is the BasicFabricEvent implementation for ServiceEvent.
40230func (se ServiceEvent) AsClusterUpgradeRollbackStartedEvent() (*ClusterUpgradeRollbackStartedEvent, bool) {
40231	return nil, false
40232}
40233
40234// AsClusterUpgradeStartedEvent is the BasicFabricEvent implementation for ServiceEvent.
40235func (se ServiceEvent) AsClusterUpgradeStartedEvent() (*ClusterUpgradeStartedEvent, bool) {
40236	return nil, false
40237}
40238
40239// AsChaosStoppedEvent is the BasicFabricEvent implementation for ServiceEvent.
40240func (se ServiceEvent) AsChaosStoppedEvent() (*ChaosStoppedEvent, bool) {
40241	return nil, false
40242}
40243
40244// AsChaosStartedEvent is the BasicFabricEvent implementation for ServiceEvent.
40245func (se ServiceEvent) AsChaosStartedEvent() (*ChaosStartedEvent, bool) {
40246	return nil, false
40247}
40248
40249// AsChaosCodePackageRestartScheduledEvent is the BasicFabricEvent implementation for ServiceEvent.
40250func (se ServiceEvent) AsChaosCodePackageRestartScheduledEvent() (*ChaosCodePackageRestartScheduledEvent, bool) {
40251	return nil, false
40252}
40253
40254// AsChaosReplicaRemovalScheduledEvent is the BasicFabricEvent implementation for ServiceEvent.
40255func (se ServiceEvent) AsChaosReplicaRemovalScheduledEvent() (*ChaosReplicaRemovalScheduledEvent, bool) {
40256	return nil, false
40257}
40258
40259// AsChaosPartitionSecondaryMoveScheduledEvent is the BasicFabricEvent implementation for ServiceEvent.
40260func (se ServiceEvent) AsChaosPartitionSecondaryMoveScheduledEvent() (*ChaosPartitionSecondaryMoveScheduledEvent, bool) {
40261	return nil, false
40262}
40263
40264// AsChaosPartitionPrimaryMoveScheduledEvent is the BasicFabricEvent implementation for ServiceEvent.
40265func (se ServiceEvent) AsChaosPartitionPrimaryMoveScheduledEvent() (*ChaosPartitionPrimaryMoveScheduledEvent, bool) {
40266	return nil, false
40267}
40268
40269// AsChaosReplicaRestartScheduledEvent is the BasicFabricEvent implementation for ServiceEvent.
40270func (se ServiceEvent) AsChaosReplicaRestartScheduledEvent() (*ChaosReplicaRestartScheduledEvent, bool) {
40271	return nil, false
40272}
40273
40274// AsChaosNodeRestartScheduledEvent is the BasicFabricEvent implementation for ServiceEvent.
40275func (se ServiceEvent) AsChaosNodeRestartScheduledEvent() (*ChaosNodeRestartScheduledEvent, bool) {
40276	return nil, false
40277}
40278
40279// AsFabricEvent is the BasicFabricEvent implementation for ServiceEvent.
40280func (se ServiceEvent) AsFabricEvent() (*FabricEvent, bool) {
40281	return nil, false
40282}
40283
40284// AsBasicFabricEvent is the BasicFabricEvent implementation for ServiceEvent.
40285func (se ServiceEvent) AsBasicFabricEvent() (BasicFabricEvent, bool) {
40286	return &se, true
40287}
40288
40289// ServiceFromTemplateDescription defines description for creating a Service Fabric service from a template
40290// defined in the application manifest.
40291type ServiceFromTemplateDescription struct {
40292	// ApplicationName - The name of the application, including the 'fabric:' URI scheme.
40293	ApplicationName *string `json:"ApplicationName,omitempty"`
40294	// ServiceName - The full name of the service with 'fabric:' URI scheme.
40295	ServiceName *string `json:"ServiceName,omitempty"`
40296	// ServiceTypeName - Name of the service type as specified in the service manifest.
40297	ServiceTypeName *string `json:"ServiceTypeName,omitempty"`
40298	// InitializationData - The initialization data for the newly created service instance.
40299	InitializationData *[]int32 `json:"InitializationData,omitempty"`
40300	// ServicePackageActivationMode - The activation mode of service package to be used for a service. Possible values include: 'SharedProcess', 'ExclusiveProcess'
40301	ServicePackageActivationMode ServicePackageActivationMode `json:"ServicePackageActivationMode,omitempty"`
40302	// ServiceDNSName - The DNS name of the service. It requires the DNS system service to be enabled in Service Fabric cluster.
40303	ServiceDNSName *string `json:"ServiceDnsName,omitempty"`
40304}
40305
40306// ServiceHealth information about the health of a Service Fabric service.
40307type ServiceHealth struct {
40308	autorest.Response `json:"-"`
40309	// Name - The name of the service whose health information is described by this object.
40310	Name *string `json:"Name,omitempty"`
40311	// PartitionHealthStates - The list of partition health states associated with the service.
40312	PartitionHealthStates *[]PartitionHealthState `json:"PartitionHealthStates,omitempty"`
40313	// AggregatedHealthState - The HealthState representing the aggregated health state of the entity computed by Health Manager.
40314	// The health evaluation of the entity reflects all events reported on the entity and its children (if any).
40315	// The aggregation is done by applying the desired health policy. Possible values include: 'HealthStateInvalid', 'HealthStateOk', 'HealthStateWarning', 'HealthStateError', 'HealthStateUnknown'
40316	AggregatedHealthState HealthState `json:"AggregatedHealthState,omitempty"`
40317	// HealthEvents - The list of health events reported on the entity.
40318	HealthEvents *[]HealthEvent `json:"HealthEvents,omitempty"`
40319	// UnhealthyEvaluations - The unhealthy evaluations that show why the current aggregated health state was returned by Health Manager.
40320	UnhealthyEvaluations *[]HealthEvaluationWrapper `json:"UnhealthyEvaluations,omitempty"`
40321	// HealthStatistics - Shows the health statistics for all children types of the queried entity.
40322	HealthStatistics *HealthStatistics `json:"HealthStatistics,omitempty"`
40323}
40324
40325// ServiceHealthEvaluation represents health evaluation for a service, containing information about the
40326// data and the algorithm used by health store to evaluate health. The evaluation is returned only when the
40327// aggregated health state is either Error or Warning.
40328type ServiceHealthEvaluation struct {
40329	// ServiceName - Name of the service whose health evaluation is described by this object.
40330	ServiceName *string `json:"ServiceName,omitempty"`
40331	// 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.
40332	UnhealthyEvaluations *[]HealthEvaluationWrapper `json:"UnhealthyEvaluations,omitempty"`
40333	// 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'
40334	AggregatedHealthState HealthState `json:"AggregatedHealthState,omitempty"`
40335	// Description - Description of the health evaluation, which represents a summary of the evaluation process.
40336	Description *string `json:"Description,omitempty"`
40337	// 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'
40338	Kind Kind `json:"Kind,omitempty"`
40339}
40340
40341// MarshalJSON is the custom marshaler for ServiceHealthEvaluation.
40342func (she ServiceHealthEvaluation) MarshalJSON() ([]byte, error) {
40343	she.Kind = KindService
40344	objectMap := make(map[string]interface{})
40345	if she.ServiceName != nil {
40346		objectMap["ServiceName"] = she.ServiceName
40347	}
40348	if she.UnhealthyEvaluations != nil {
40349		objectMap["UnhealthyEvaluations"] = she.UnhealthyEvaluations
40350	}
40351	if she.AggregatedHealthState != "" {
40352		objectMap["AggregatedHealthState"] = she.AggregatedHealthState
40353	}
40354	if she.Description != nil {
40355		objectMap["Description"] = she.Description
40356	}
40357	if she.Kind != "" {
40358		objectMap["Kind"] = she.Kind
40359	}
40360	return json.Marshal(objectMap)
40361}
40362
40363// AsApplicationHealthEvaluation is the BasicHealthEvaluation implementation for ServiceHealthEvaluation.
40364func (she ServiceHealthEvaluation) AsApplicationHealthEvaluation() (*ApplicationHealthEvaluation, bool) {
40365	return nil, false
40366}
40367
40368// AsApplicationsHealthEvaluation is the BasicHealthEvaluation implementation for ServiceHealthEvaluation.
40369func (she ServiceHealthEvaluation) AsApplicationsHealthEvaluation() (*ApplicationsHealthEvaluation, bool) {
40370	return nil, false
40371}
40372
40373// AsApplicationTypeApplicationsHealthEvaluation is the BasicHealthEvaluation implementation for ServiceHealthEvaluation.
40374func (she ServiceHealthEvaluation) AsApplicationTypeApplicationsHealthEvaluation() (*ApplicationTypeApplicationsHealthEvaluation, bool) {
40375	return nil, false
40376}
40377
40378// AsDeltaNodesCheckHealthEvaluation is the BasicHealthEvaluation implementation for ServiceHealthEvaluation.
40379func (she ServiceHealthEvaluation) AsDeltaNodesCheckHealthEvaluation() (*DeltaNodesCheckHealthEvaluation, bool) {
40380	return nil, false
40381}
40382
40383// AsDeployedApplicationHealthEvaluation is the BasicHealthEvaluation implementation for ServiceHealthEvaluation.
40384func (she ServiceHealthEvaluation) AsDeployedApplicationHealthEvaluation() (*DeployedApplicationHealthEvaluation, bool) {
40385	return nil, false
40386}
40387
40388// AsDeployedApplicationsHealthEvaluation is the BasicHealthEvaluation implementation for ServiceHealthEvaluation.
40389func (she ServiceHealthEvaluation) AsDeployedApplicationsHealthEvaluation() (*DeployedApplicationsHealthEvaluation, bool) {
40390	return nil, false
40391}
40392
40393// AsDeployedServicePackageHealthEvaluation is the BasicHealthEvaluation implementation for ServiceHealthEvaluation.
40394func (she ServiceHealthEvaluation) AsDeployedServicePackageHealthEvaluation() (*DeployedServicePackageHealthEvaluation, bool) {
40395	return nil, false
40396}
40397
40398// AsDeployedServicePackagesHealthEvaluation is the BasicHealthEvaluation implementation for ServiceHealthEvaluation.
40399func (she ServiceHealthEvaluation) AsDeployedServicePackagesHealthEvaluation() (*DeployedServicePackagesHealthEvaluation, bool) {
40400	return nil, false
40401}
40402
40403// AsEventHealthEvaluation is the BasicHealthEvaluation implementation for ServiceHealthEvaluation.
40404func (she ServiceHealthEvaluation) AsEventHealthEvaluation() (*EventHealthEvaluation, bool) {
40405	return nil, false
40406}
40407
40408// AsNodeHealthEvaluation is the BasicHealthEvaluation implementation for ServiceHealthEvaluation.
40409func (she ServiceHealthEvaluation) AsNodeHealthEvaluation() (*NodeHealthEvaluation, bool) {
40410	return nil, false
40411}
40412
40413// AsNodesHealthEvaluation is the BasicHealthEvaluation implementation for ServiceHealthEvaluation.
40414func (she ServiceHealthEvaluation) AsNodesHealthEvaluation() (*NodesHealthEvaluation, bool) {
40415	return nil, false
40416}
40417
40418// AsPartitionHealthEvaluation is the BasicHealthEvaluation implementation for ServiceHealthEvaluation.
40419func (she ServiceHealthEvaluation) AsPartitionHealthEvaluation() (*PartitionHealthEvaluation, bool) {
40420	return nil, false
40421}
40422
40423// AsPartitionsHealthEvaluation is the BasicHealthEvaluation implementation for ServiceHealthEvaluation.
40424func (she ServiceHealthEvaluation) AsPartitionsHealthEvaluation() (*PartitionsHealthEvaluation, bool) {
40425	return nil, false
40426}
40427
40428// AsReplicaHealthEvaluation is the BasicHealthEvaluation implementation for ServiceHealthEvaluation.
40429func (she ServiceHealthEvaluation) AsReplicaHealthEvaluation() (*ReplicaHealthEvaluation, bool) {
40430	return nil, false
40431}
40432
40433// AsReplicasHealthEvaluation is the BasicHealthEvaluation implementation for ServiceHealthEvaluation.
40434func (she ServiceHealthEvaluation) AsReplicasHealthEvaluation() (*ReplicasHealthEvaluation, bool) {
40435	return nil, false
40436}
40437
40438// AsServiceHealthEvaluation is the BasicHealthEvaluation implementation for ServiceHealthEvaluation.
40439func (she ServiceHealthEvaluation) AsServiceHealthEvaluation() (*ServiceHealthEvaluation, bool) {
40440	return &she, true
40441}
40442
40443// AsServicesHealthEvaluation is the BasicHealthEvaluation implementation for ServiceHealthEvaluation.
40444func (she ServiceHealthEvaluation) AsServicesHealthEvaluation() (*ServicesHealthEvaluation, bool) {
40445	return nil, false
40446}
40447
40448// AsSystemApplicationHealthEvaluation is the BasicHealthEvaluation implementation for ServiceHealthEvaluation.
40449func (she ServiceHealthEvaluation) AsSystemApplicationHealthEvaluation() (*SystemApplicationHealthEvaluation, bool) {
40450	return nil, false
40451}
40452
40453// AsUpgradeDomainDeltaNodesCheckHealthEvaluation is the BasicHealthEvaluation implementation for ServiceHealthEvaluation.
40454func (she ServiceHealthEvaluation) AsUpgradeDomainDeltaNodesCheckHealthEvaluation() (*UpgradeDomainDeltaNodesCheckHealthEvaluation, bool) {
40455	return nil, false
40456}
40457
40458// AsUpgradeDomainNodesHealthEvaluation is the BasicHealthEvaluation implementation for ServiceHealthEvaluation.
40459func (she ServiceHealthEvaluation) AsUpgradeDomainNodesHealthEvaluation() (*UpgradeDomainNodesHealthEvaluation, bool) {
40460	return nil, false
40461}
40462
40463// AsHealthEvaluation is the BasicHealthEvaluation implementation for ServiceHealthEvaluation.
40464func (she ServiceHealthEvaluation) AsHealthEvaluation() (*HealthEvaluation, bool) {
40465	return nil, false
40466}
40467
40468// AsBasicHealthEvaluation is the BasicHealthEvaluation implementation for ServiceHealthEvaluation.
40469func (she ServiceHealthEvaluation) AsBasicHealthEvaluation() (BasicHealthEvaluation, bool) {
40470	return &she, true
40471}
40472
40473// ServiceHealthReportExpiredEvent service Health Report Expired event.
40474type ServiceHealthReportExpiredEvent struct {
40475	// InstanceID - Id of Service instance.
40476	InstanceID *int64 `json:"InstanceId,omitempty"`
40477	// SourceID - Id of report source.
40478	SourceID *string `json:"SourceId,omitempty"`
40479	// Property - Describes the property.
40480	Property *string `json:"Property,omitempty"`
40481	// HealthState - Describes the property health state.
40482	HealthState *string `json:"HealthState,omitempty"`
40483	// TimeToLiveMs - Time to live in milli-seconds.
40484	TimeToLiveMs *int64 `json:"TimeToLiveMs,omitempty"`
40485	// SequenceNumber - Sequence number of report.
40486	SequenceNumber *int64 `json:"SequenceNumber,omitempty"`
40487	// Description - Description of report.
40488	Description *string `json:"Description,omitempty"`
40489	// RemoveWhenExpired - Indicates the removal when it expires.
40490	RemoveWhenExpired *bool `json:"RemoveWhenExpired,omitempty"`
40491	// SourceUtcTimestamp - Source time.
40492	SourceUtcTimestamp *date.Time `json:"SourceUtcTimestamp,omitempty"`
40493	// 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.
40494	// Starting in version 6.0, hierarchical names are delimited with the "\~" character. For example, if the service name is "fabric:/myapp/app1/svc1",
40495	// the service identity would be "myapp~app1\~svc1" in 6.0+ and "myapp/app1/svc1" in previous versions.
40496	ServiceID *string `json:"ServiceId,omitempty"`
40497	// EventInstanceID - The identifier for the FabricEvent instance.
40498	EventInstanceID *uuid.UUID `json:"EventInstanceId,omitempty"`
40499	// Category - The category of event.
40500	Category *string `json:"Category,omitempty"`
40501	// TimeStamp - The time event was logged.
40502	TimeStamp *date.Time `json:"TimeStamp,omitempty"`
40503	// HasCorrelatedEvents - Shows there is existing related events available.
40504	HasCorrelatedEvents *bool `json:"HasCorrelatedEvents,omitempty"`
40505	// 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'
40506	Kind KindBasicFabricEvent `json:"Kind,omitempty"`
40507}
40508
40509// MarshalJSON is the custom marshaler for ServiceHealthReportExpiredEvent.
40510func (shree ServiceHealthReportExpiredEvent) MarshalJSON() ([]byte, error) {
40511	shree.Kind = KindServiceHealthReportExpired
40512	objectMap := make(map[string]interface{})
40513	if shree.InstanceID != nil {
40514		objectMap["InstanceId"] = shree.InstanceID
40515	}
40516	if shree.SourceID != nil {
40517		objectMap["SourceId"] = shree.SourceID
40518	}
40519	if shree.Property != nil {
40520		objectMap["Property"] = shree.Property
40521	}
40522	if shree.HealthState != nil {
40523		objectMap["HealthState"] = shree.HealthState
40524	}
40525	if shree.TimeToLiveMs != nil {
40526		objectMap["TimeToLiveMs"] = shree.TimeToLiveMs
40527	}
40528	if shree.SequenceNumber != nil {
40529		objectMap["SequenceNumber"] = shree.SequenceNumber
40530	}
40531	if shree.Description != nil {
40532		objectMap["Description"] = shree.Description
40533	}
40534	if shree.RemoveWhenExpired != nil {
40535		objectMap["RemoveWhenExpired"] = shree.RemoveWhenExpired
40536	}
40537	if shree.SourceUtcTimestamp != nil {
40538		objectMap["SourceUtcTimestamp"] = shree.SourceUtcTimestamp
40539	}
40540	if shree.ServiceID != nil {
40541		objectMap["ServiceId"] = shree.ServiceID
40542	}
40543	if shree.EventInstanceID != nil {
40544		objectMap["EventInstanceId"] = shree.EventInstanceID
40545	}
40546	if shree.Category != nil {
40547		objectMap["Category"] = shree.Category
40548	}
40549	if shree.TimeStamp != nil {
40550		objectMap["TimeStamp"] = shree.TimeStamp
40551	}
40552	if shree.HasCorrelatedEvents != nil {
40553		objectMap["HasCorrelatedEvents"] = shree.HasCorrelatedEvents
40554	}
40555	if shree.Kind != "" {
40556		objectMap["Kind"] = shree.Kind
40557	}
40558	return json.Marshal(objectMap)
40559}
40560
40561// AsApplicationEvent is the BasicFabricEvent implementation for ServiceHealthReportExpiredEvent.
40562func (shree ServiceHealthReportExpiredEvent) AsApplicationEvent() (*ApplicationEvent, bool) {
40563	return nil, false
40564}
40565
40566// AsBasicApplicationEvent is the BasicFabricEvent implementation for ServiceHealthReportExpiredEvent.
40567func (shree ServiceHealthReportExpiredEvent) AsBasicApplicationEvent() (BasicApplicationEvent, bool) {
40568	return nil, false
40569}
40570
40571// AsClusterEvent is the BasicFabricEvent implementation for ServiceHealthReportExpiredEvent.
40572func (shree ServiceHealthReportExpiredEvent) AsClusterEvent() (*ClusterEvent, bool) {
40573	return nil, false
40574}
40575
40576// AsBasicClusterEvent is the BasicFabricEvent implementation for ServiceHealthReportExpiredEvent.
40577func (shree ServiceHealthReportExpiredEvent) AsBasicClusterEvent() (BasicClusterEvent, bool) {
40578	return nil, false
40579}
40580
40581// AsContainerInstanceEvent is the BasicFabricEvent implementation for ServiceHealthReportExpiredEvent.
40582func (shree ServiceHealthReportExpiredEvent) AsContainerInstanceEvent() (*ContainerInstanceEvent, bool) {
40583	return nil, false
40584}
40585
40586// AsNodeEvent is the BasicFabricEvent implementation for ServiceHealthReportExpiredEvent.
40587func (shree ServiceHealthReportExpiredEvent) AsNodeEvent() (*NodeEvent, bool) {
40588	return nil, false
40589}
40590
40591// AsBasicNodeEvent is the BasicFabricEvent implementation for ServiceHealthReportExpiredEvent.
40592func (shree ServiceHealthReportExpiredEvent) AsBasicNodeEvent() (BasicNodeEvent, bool) {
40593	return nil, false
40594}
40595
40596// AsPartitionAnalysisEvent is the BasicFabricEvent implementation for ServiceHealthReportExpiredEvent.
40597func (shree ServiceHealthReportExpiredEvent) AsPartitionAnalysisEvent() (*PartitionAnalysisEvent, bool) {
40598	return nil, false
40599}
40600
40601// AsBasicPartitionAnalysisEvent is the BasicFabricEvent implementation for ServiceHealthReportExpiredEvent.
40602func (shree ServiceHealthReportExpiredEvent) AsBasicPartitionAnalysisEvent() (BasicPartitionAnalysisEvent, bool) {
40603	return nil, false
40604}
40605
40606// AsPartitionEvent is the BasicFabricEvent implementation for ServiceHealthReportExpiredEvent.
40607func (shree ServiceHealthReportExpiredEvent) AsPartitionEvent() (*PartitionEvent, bool) {
40608	return nil, false
40609}
40610
40611// AsBasicPartitionEvent is the BasicFabricEvent implementation for ServiceHealthReportExpiredEvent.
40612func (shree ServiceHealthReportExpiredEvent) AsBasicPartitionEvent() (BasicPartitionEvent, bool) {
40613	return nil, false
40614}
40615
40616// AsReplicaEvent is the BasicFabricEvent implementation for ServiceHealthReportExpiredEvent.
40617func (shree ServiceHealthReportExpiredEvent) AsReplicaEvent() (*ReplicaEvent, bool) {
40618	return nil, false
40619}
40620
40621// AsBasicReplicaEvent is the BasicFabricEvent implementation for ServiceHealthReportExpiredEvent.
40622func (shree ServiceHealthReportExpiredEvent) AsBasicReplicaEvent() (BasicReplicaEvent, bool) {
40623	return nil, false
40624}
40625
40626// AsServiceEvent is the BasicFabricEvent implementation for ServiceHealthReportExpiredEvent.
40627func (shree ServiceHealthReportExpiredEvent) AsServiceEvent() (*ServiceEvent, bool) {
40628	return nil, false
40629}
40630
40631// AsBasicServiceEvent is the BasicFabricEvent implementation for ServiceHealthReportExpiredEvent.
40632func (shree ServiceHealthReportExpiredEvent) AsBasicServiceEvent() (BasicServiceEvent, bool) {
40633	return &shree, true
40634}
40635
40636// AsApplicationCreatedEvent is the BasicFabricEvent implementation for ServiceHealthReportExpiredEvent.
40637func (shree ServiceHealthReportExpiredEvent) AsApplicationCreatedEvent() (*ApplicationCreatedEvent, bool) {
40638	return nil, false
40639}
40640
40641// AsApplicationDeletedEvent is the BasicFabricEvent implementation for ServiceHealthReportExpiredEvent.
40642func (shree ServiceHealthReportExpiredEvent) AsApplicationDeletedEvent() (*ApplicationDeletedEvent, bool) {
40643	return nil, false
40644}
40645
40646// AsApplicationNewHealthReportEvent is the BasicFabricEvent implementation for ServiceHealthReportExpiredEvent.
40647func (shree ServiceHealthReportExpiredEvent) AsApplicationNewHealthReportEvent() (*ApplicationNewHealthReportEvent, bool) {
40648	return nil, false
40649}
40650
40651// AsApplicationHealthReportExpiredEvent is the BasicFabricEvent implementation for ServiceHealthReportExpiredEvent.
40652func (shree ServiceHealthReportExpiredEvent) AsApplicationHealthReportExpiredEvent() (*ApplicationHealthReportExpiredEvent, bool) {
40653	return nil, false
40654}
40655
40656// AsApplicationUpgradeCompletedEvent is the BasicFabricEvent implementation for ServiceHealthReportExpiredEvent.
40657func (shree ServiceHealthReportExpiredEvent) AsApplicationUpgradeCompletedEvent() (*ApplicationUpgradeCompletedEvent, bool) {
40658	return nil, false
40659}
40660
40661// AsApplicationUpgradeDomainCompletedEvent is the BasicFabricEvent implementation for ServiceHealthReportExpiredEvent.
40662func (shree ServiceHealthReportExpiredEvent) AsApplicationUpgradeDomainCompletedEvent() (*ApplicationUpgradeDomainCompletedEvent, bool) {
40663	return nil, false
40664}
40665
40666// AsApplicationUpgradeRollbackCompletedEvent is the BasicFabricEvent implementation for ServiceHealthReportExpiredEvent.
40667func (shree ServiceHealthReportExpiredEvent) AsApplicationUpgradeRollbackCompletedEvent() (*ApplicationUpgradeRollbackCompletedEvent, bool) {
40668	return nil, false
40669}
40670
40671// AsApplicationUpgradeRollbackStartedEvent is the BasicFabricEvent implementation for ServiceHealthReportExpiredEvent.
40672func (shree ServiceHealthReportExpiredEvent) AsApplicationUpgradeRollbackStartedEvent() (*ApplicationUpgradeRollbackStartedEvent, bool) {
40673	return nil, false
40674}
40675
40676// AsApplicationUpgradeStartedEvent is the BasicFabricEvent implementation for ServiceHealthReportExpiredEvent.
40677func (shree ServiceHealthReportExpiredEvent) AsApplicationUpgradeStartedEvent() (*ApplicationUpgradeStartedEvent, bool) {
40678	return nil, false
40679}
40680
40681// AsDeployedApplicationNewHealthReportEvent is the BasicFabricEvent implementation for ServiceHealthReportExpiredEvent.
40682func (shree ServiceHealthReportExpiredEvent) AsDeployedApplicationNewHealthReportEvent() (*DeployedApplicationNewHealthReportEvent, bool) {
40683	return nil, false
40684}
40685
40686// AsDeployedApplicationHealthReportExpiredEvent is the BasicFabricEvent implementation for ServiceHealthReportExpiredEvent.
40687func (shree ServiceHealthReportExpiredEvent) AsDeployedApplicationHealthReportExpiredEvent() (*DeployedApplicationHealthReportExpiredEvent, bool) {
40688	return nil, false
40689}
40690
40691// AsApplicationProcessExitedEvent is the BasicFabricEvent implementation for ServiceHealthReportExpiredEvent.
40692func (shree ServiceHealthReportExpiredEvent) AsApplicationProcessExitedEvent() (*ApplicationProcessExitedEvent, bool) {
40693	return nil, false
40694}
40695
40696// AsApplicationContainerInstanceExitedEvent is the BasicFabricEvent implementation for ServiceHealthReportExpiredEvent.
40697func (shree ServiceHealthReportExpiredEvent) AsApplicationContainerInstanceExitedEvent() (*ApplicationContainerInstanceExitedEvent, bool) {
40698	return nil, false
40699}
40700
40701// AsNodeAbortedEvent is the BasicFabricEvent implementation for ServiceHealthReportExpiredEvent.
40702func (shree ServiceHealthReportExpiredEvent) AsNodeAbortedEvent() (*NodeAbortedEvent, bool) {
40703	return nil, false
40704}
40705
40706// AsNodeAddedToClusterEvent is the BasicFabricEvent implementation for ServiceHealthReportExpiredEvent.
40707func (shree ServiceHealthReportExpiredEvent) AsNodeAddedToClusterEvent() (*NodeAddedToClusterEvent, bool) {
40708	return nil, false
40709}
40710
40711// AsNodeClosedEvent is the BasicFabricEvent implementation for ServiceHealthReportExpiredEvent.
40712func (shree ServiceHealthReportExpiredEvent) AsNodeClosedEvent() (*NodeClosedEvent, bool) {
40713	return nil, false
40714}
40715
40716// AsNodeDeactivateCompletedEvent is the BasicFabricEvent implementation for ServiceHealthReportExpiredEvent.
40717func (shree ServiceHealthReportExpiredEvent) AsNodeDeactivateCompletedEvent() (*NodeDeactivateCompletedEvent, bool) {
40718	return nil, false
40719}
40720
40721// AsNodeDeactivateStartedEvent is the BasicFabricEvent implementation for ServiceHealthReportExpiredEvent.
40722func (shree ServiceHealthReportExpiredEvent) AsNodeDeactivateStartedEvent() (*NodeDeactivateStartedEvent, bool) {
40723	return nil, false
40724}
40725
40726// AsNodeDownEvent is the BasicFabricEvent implementation for ServiceHealthReportExpiredEvent.
40727func (shree ServiceHealthReportExpiredEvent) AsNodeDownEvent() (*NodeDownEvent, bool) {
40728	return nil, false
40729}
40730
40731// AsNodeNewHealthReportEvent is the BasicFabricEvent implementation for ServiceHealthReportExpiredEvent.
40732func (shree ServiceHealthReportExpiredEvent) AsNodeNewHealthReportEvent() (*NodeNewHealthReportEvent, bool) {
40733	return nil, false
40734}
40735
40736// AsNodeHealthReportExpiredEvent is the BasicFabricEvent implementation for ServiceHealthReportExpiredEvent.
40737func (shree ServiceHealthReportExpiredEvent) AsNodeHealthReportExpiredEvent() (*NodeHealthReportExpiredEvent, bool) {
40738	return nil, false
40739}
40740
40741// AsNodeOpenSucceededEvent is the BasicFabricEvent implementation for ServiceHealthReportExpiredEvent.
40742func (shree ServiceHealthReportExpiredEvent) AsNodeOpenSucceededEvent() (*NodeOpenSucceededEvent, bool) {
40743	return nil, false
40744}
40745
40746// AsNodeOpenFailedEvent is the BasicFabricEvent implementation for ServiceHealthReportExpiredEvent.
40747func (shree ServiceHealthReportExpiredEvent) AsNodeOpenFailedEvent() (*NodeOpenFailedEvent, bool) {
40748	return nil, false
40749}
40750
40751// AsNodeRemovedFromClusterEvent is the BasicFabricEvent implementation for ServiceHealthReportExpiredEvent.
40752func (shree ServiceHealthReportExpiredEvent) AsNodeRemovedFromClusterEvent() (*NodeRemovedFromClusterEvent, bool) {
40753	return nil, false
40754}
40755
40756// AsNodeUpEvent is the BasicFabricEvent implementation for ServiceHealthReportExpiredEvent.
40757func (shree ServiceHealthReportExpiredEvent) AsNodeUpEvent() (*NodeUpEvent, bool) {
40758	return nil, false
40759}
40760
40761// AsPartitionNewHealthReportEvent is the BasicFabricEvent implementation for ServiceHealthReportExpiredEvent.
40762func (shree ServiceHealthReportExpiredEvent) AsPartitionNewHealthReportEvent() (*PartitionNewHealthReportEvent, bool) {
40763	return nil, false
40764}
40765
40766// AsPartitionHealthReportExpiredEvent is the BasicFabricEvent implementation for ServiceHealthReportExpiredEvent.
40767func (shree ServiceHealthReportExpiredEvent) AsPartitionHealthReportExpiredEvent() (*PartitionHealthReportExpiredEvent, bool) {
40768	return nil, false
40769}
40770
40771// AsPartitionReconfiguredEvent is the BasicFabricEvent implementation for ServiceHealthReportExpiredEvent.
40772func (shree ServiceHealthReportExpiredEvent) AsPartitionReconfiguredEvent() (*PartitionReconfiguredEvent, bool) {
40773	return nil, false
40774}
40775
40776// AsPartitionPrimaryMoveAnalysisEvent is the BasicFabricEvent implementation for ServiceHealthReportExpiredEvent.
40777func (shree ServiceHealthReportExpiredEvent) AsPartitionPrimaryMoveAnalysisEvent() (*PartitionPrimaryMoveAnalysisEvent, bool) {
40778	return nil, false
40779}
40780
40781// AsServiceCreatedEvent is the BasicFabricEvent implementation for ServiceHealthReportExpiredEvent.
40782func (shree ServiceHealthReportExpiredEvent) AsServiceCreatedEvent() (*ServiceCreatedEvent, bool) {
40783	return nil, false
40784}
40785
40786// AsServiceDeletedEvent is the BasicFabricEvent implementation for ServiceHealthReportExpiredEvent.
40787func (shree ServiceHealthReportExpiredEvent) AsServiceDeletedEvent() (*ServiceDeletedEvent, bool) {
40788	return nil, false
40789}
40790
40791// AsServiceNewHealthReportEvent is the BasicFabricEvent implementation for ServiceHealthReportExpiredEvent.
40792func (shree ServiceHealthReportExpiredEvent) AsServiceNewHealthReportEvent() (*ServiceNewHealthReportEvent, bool) {
40793	return nil, false
40794}
40795
40796// AsServiceHealthReportExpiredEvent is the BasicFabricEvent implementation for ServiceHealthReportExpiredEvent.
40797func (shree ServiceHealthReportExpiredEvent) AsServiceHealthReportExpiredEvent() (*ServiceHealthReportExpiredEvent, bool) {
40798	return &shree, true
40799}
40800
40801// AsDeployedServicePackageNewHealthReportEvent is the BasicFabricEvent implementation for ServiceHealthReportExpiredEvent.
40802func (shree ServiceHealthReportExpiredEvent) AsDeployedServicePackageNewHealthReportEvent() (*DeployedServicePackageNewHealthReportEvent, bool) {
40803	return nil, false
40804}
40805
40806// AsDeployedServicePackageHealthReportExpiredEvent is the BasicFabricEvent implementation for ServiceHealthReportExpiredEvent.
40807func (shree ServiceHealthReportExpiredEvent) AsDeployedServicePackageHealthReportExpiredEvent() (*DeployedServicePackageHealthReportExpiredEvent, bool) {
40808	return nil, false
40809}
40810
40811// AsStatefulReplicaNewHealthReportEvent is the BasicFabricEvent implementation for ServiceHealthReportExpiredEvent.
40812func (shree ServiceHealthReportExpiredEvent) AsStatefulReplicaNewHealthReportEvent() (*StatefulReplicaNewHealthReportEvent, bool) {
40813	return nil, false
40814}
40815
40816// AsStatefulReplicaHealthReportExpiredEvent is the BasicFabricEvent implementation for ServiceHealthReportExpiredEvent.
40817func (shree ServiceHealthReportExpiredEvent) AsStatefulReplicaHealthReportExpiredEvent() (*StatefulReplicaHealthReportExpiredEvent, bool) {
40818	return nil, false
40819}
40820
40821// AsStatelessReplicaNewHealthReportEvent is the BasicFabricEvent implementation for ServiceHealthReportExpiredEvent.
40822func (shree ServiceHealthReportExpiredEvent) AsStatelessReplicaNewHealthReportEvent() (*StatelessReplicaNewHealthReportEvent, bool) {
40823	return nil, false
40824}
40825
40826// AsStatelessReplicaHealthReportExpiredEvent is the BasicFabricEvent implementation for ServiceHealthReportExpiredEvent.
40827func (shree ServiceHealthReportExpiredEvent) AsStatelessReplicaHealthReportExpiredEvent() (*StatelessReplicaHealthReportExpiredEvent, bool) {
40828	return nil, false
40829}
40830
40831// AsClusterNewHealthReportEvent is the BasicFabricEvent implementation for ServiceHealthReportExpiredEvent.
40832func (shree ServiceHealthReportExpiredEvent) AsClusterNewHealthReportEvent() (*ClusterNewHealthReportEvent, bool) {
40833	return nil, false
40834}
40835
40836// AsClusterHealthReportExpiredEvent is the BasicFabricEvent implementation for ServiceHealthReportExpiredEvent.
40837func (shree ServiceHealthReportExpiredEvent) AsClusterHealthReportExpiredEvent() (*ClusterHealthReportExpiredEvent, bool) {
40838	return nil, false
40839}
40840
40841// AsClusterUpgradeCompletedEvent is the BasicFabricEvent implementation for ServiceHealthReportExpiredEvent.
40842func (shree ServiceHealthReportExpiredEvent) AsClusterUpgradeCompletedEvent() (*ClusterUpgradeCompletedEvent, bool) {
40843	return nil, false
40844}
40845
40846// AsClusterUpgradeDomainCompletedEvent is the BasicFabricEvent implementation for ServiceHealthReportExpiredEvent.
40847func (shree ServiceHealthReportExpiredEvent) AsClusterUpgradeDomainCompletedEvent() (*ClusterUpgradeDomainCompletedEvent, bool) {
40848	return nil, false
40849}
40850
40851// AsClusterUpgradeRollbackCompletedEvent is the BasicFabricEvent implementation for ServiceHealthReportExpiredEvent.
40852func (shree ServiceHealthReportExpiredEvent) AsClusterUpgradeRollbackCompletedEvent() (*ClusterUpgradeRollbackCompletedEvent, bool) {
40853	return nil, false
40854}
40855
40856// AsClusterUpgradeRollbackStartedEvent is the BasicFabricEvent implementation for ServiceHealthReportExpiredEvent.
40857func (shree ServiceHealthReportExpiredEvent) AsClusterUpgradeRollbackStartedEvent() (*ClusterUpgradeRollbackStartedEvent, bool) {
40858	return nil, false
40859}
40860
40861// AsClusterUpgradeStartedEvent is the BasicFabricEvent implementation for ServiceHealthReportExpiredEvent.
40862func (shree ServiceHealthReportExpiredEvent) AsClusterUpgradeStartedEvent() (*ClusterUpgradeStartedEvent, bool) {
40863	return nil, false
40864}
40865
40866// AsChaosStoppedEvent is the BasicFabricEvent implementation for ServiceHealthReportExpiredEvent.
40867func (shree ServiceHealthReportExpiredEvent) AsChaosStoppedEvent() (*ChaosStoppedEvent, bool) {
40868	return nil, false
40869}
40870
40871// AsChaosStartedEvent is the BasicFabricEvent implementation for ServiceHealthReportExpiredEvent.
40872func (shree ServiceHealthReportExpiredEvent) AsChaosStartedEvent() (*ChaosStartedEvent, bool) {
40873	return nil, false
40874}
40875
40876// AsChaosCodePackageRestartScheduledEvent is the BasicFabricEvent implementation for ServiceHealthReportExpiredEvent.
40877func (shree ServiceHealthReportExpiredEvent) AsChaosCodePackageRestartScheduledEvent() (*ChaosCodePackageRestartScheduledEvent, bool) {
40878	return nil, false
40879}
40880
40881// AsChaosReplicaRemovalScheduledEvent is the BasicFabricEvent implementation for ServiceHealthReportExpiredEvent.
40882func (shree ServiceHealthReportExpiredEvent) AsChaosReplicaRemovalScheduledEvent() (*ChaosReplicaRemovalScheduledEvent, bool) {
40883	return nil, false
40884}
40885
40886// AsChaosPartitionSecondaryMoveScheduledEvent is the BasicFabricEvent implementation for ServiceHealthReportExpiredEvent.
40887func (shree ServiceHealthReportExpiredEvent) AsChaosPartitionSecondaryMoveScheduledEvent() (*ChaosPartitionSecondaryMoveScheduledEvent, bool) {
40888	return nil, false
40889}
40890
40891// AsChaosPartitionPrimaryMoveScheduledEvent is the BasicFabricEvent implementation for ServiceHealthReportExpiredEvent.
40892func (shree ServiceHealthReportExpiredEvent) AsChaosPartitionPrimaryMoveScheduledEvent() (*ChaosPartitionPrimaryMoveScheduledEvent, bool) {
40893	return nil, false
40894}
40895
40896// AsChaosReplicaRestartScheduledEvent is the BasicFabricEvent implementation for ServiceHealthReportExpiredEvent.
40897func (shree ServiceHealthReportExpiredEvent) AsChaosReplicaRestartScheduledEvent() (*ChaosReplicaRestartScheduledEvent, bool) {
40898	return nil, false
40899}
40900
40901// AsChaosNodeRestartScheduledEvent is the BasicFabricEvent implementation for ServiceHealthReportExpiredEvent.
40902func (shree ServiceHealthReportExpiredEvent) AsChaosNodeRestartScheduledEvent() (*ChaosNodeRestartScheduledEvent, bool) {
40903	return nil, false
40904}
40905
40906// AsFabricEvent is the BasicFabricEvent implementation for ServiceHealthReportExpiredEvent.
40907func (shree ServiceHealthReportExpiredEvent) AsFabricEvent() (*FabricEvent, bool) {
40908	return nil, false
40909}
40910
40911// AsBasicFabricEvent is the BasicFabricEvent implementation for ServiceHealthReportExpiredEvent.
40912func (shree ServiceHealthReportExpiredEvent) AsBasicFabricEvent() (BasicFabricEvent, bool) {
40913	return &shree, true
40914}
40915
40916// ServiceHealthState represents the health state of a service, which contains the service identifier and
40917// its aggregated health state.
40918type ServiceHealthState struct {
40919	// ServiceName - Name of the service whose health state is represented by this object.
40920	ServiceName *string `json:"ServiceName,omitempty"`
40921	// 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'
40922	AggregatedHealthState HealthState `json:"AggregatedHealthState,omitempty"`
40923}
40924
40925// ServiceHealthStateChunk represents the health state chunk of a service, which contains the service name,
40926// its aggregated health state and any partitions that respect the filters in the cluster health chunk
40927// query description.
40928type ServiceHealthStateChunk struct {
40929	// ServiceName - The name of the service whose health state chunk is provided in this object.
40930	ServiceName *string `json:"ServiceName,omitempty"`
40931	// PartitionHealthStateChunks - The list of partition health state chunks belonging to the service that respect the filters in the cluster health chunk query description.
40932	PartitionHealthStateChunks *PartitionHealthStateChunkList `json:"PartitionHealthStateChunks,omitempty"`
40933	// 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'
40934	HealthState HealthState `json:"HealthState,omitempty"`
40935}
40936
40937// ServiceHealthStateChunkList the list of service health state chunks that respect the input filters in
40938// the chunk query. Returned by get cluster health state chunks query.
40939type ServiceHealthStateChunkList struct {
40940	// Items - The list of service health state chunks that respect the input filters in the chunk query.
40941	Items *[]ServiceHealthStateChunk `json:"Items,omitempty"`
40942}
40943
40944// ServiceHealthStateFilter defines matching criteria to determine whether a service should be included as
40945// a child of an application in the cluster health chunk.
40946// The services are only returned if the parent application matches a filter specified in the cluster
40947// health chunk query description.
40948// One filter can match zero, one or multiple services, depending on its properties.
40949type ServiceHealthStateFilter struct {
40950	// ServiceNameFilter - The name of the service that matches the filter. The filter is applied only to the specified service, if it exists.
40951	// If the service doesn't exist, no service is returned in the cluster health chunk based on this filter.
40952	// If the service exists, it is included as the application's child if the health state matches the other filter properties.
40953	// 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.
40954	ServiceNameFilter *string `json:"ServiceNameFilter,omitempty"`
40955	// HealthStateFilter - The filter for the health state of the services. It allows selecting services if they match the desired health states.
40956	// 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.
40957	// 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.
40958	// The state values are flag-based enumeration, so the value could be a combination of these values obtained using bitwise 'OR' operator.
40959	// For example, if the provided value is 6, it matches services with HealthState value of OK (2) and Warning (4).
40960	// - Default - Default value. Matches any HealthState. The value is zero.
40961	// - 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.
40962	// - Ok - Filter that matches input with HealthState value Ok. The value is 2.
40963	// - Warning - Filter that matches input with HealthState value Warning. The value is 4.
40964	// - Error - Filter that matches input with HealthState value Error. The value is 8.
40965	// - All - Filter that matches input with any HealthState value. The value is 65535.
40966	HealthStateFilter *int32 `json:"HealthStateFilter,omitempty"`
40967	// 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.
40968	// 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.
40969	// The service filter may specify multiple partition filters.
40970	// 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.
40971	PartitionFilters *[]PartitionHealthStateFilter `json:"PartitionFilters,omitempty"`
40972}
40973
40974// ServiceIdentity map service identity friendly name to an application identity.
40975type ServiceIdentity struct {
40976	// Name - The identity friendly name.
40977	Name *string `json:"name,omitempty"`
40978	// IdentityRef - The application identity name.
40979	IdentityRef *string `json:"identityRef,omitempty"`
40980}
40981
40982// BasicServiceInfo information about a Service Fabric service.
40983type BasicServiceInfo interface {
40984	AsStatefulServiceInfo() (*StatefulServiceInfo, bool)
40985	AsStatelessServiceInfo() (*StatelessServiceInfo, bool)
40986	AsServiceInfo() (*ServiceInfo, bool)
40987}
40988
40989// ServiceInfo information about a Service Fabric service.
40990type ServiceInfo struct {
40991	autorest.Response `json:"-"`
40992	// 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.
40993	// Starting in version 6.0, hierarchical names are delimited with the "\~" character. For example, if the service name is "fabric:/myapp/app1/svc1",
40994	// the service identity would be "myapp~app1\~svc1" in 6.0+ and "myapp/app1/svc1" in previous versions.
40995	ID *string `json:"Id,omitempty"`
40996	// Name - The full name of the service with 'fabric:' URI scheme.
40997	Name *string `json:"Name,omitempty"`
40998	// TypeName - Name of the service type as specified in the service manifest.
40999	TypeName *string `json:"TypeName,omitempty"`
41000	// ManifestVersion - The version of the service manifest.
41001	ManifestVersion *string `json:"ManifestVersion,omitempty"`
41002	// 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'
41003	HealthState HealthState `json:"HealthState,omitempty"`
41004	// ServiceStatus - The status of the application. Possible values include: 'ServiceStatusUnknown', 'ServiceStatusActive', 'ServiceStatusUpgrading', 'ServiceStatusDeleting', 'ServiceStatusCreating', 'ServiceStatusFailed'
41005	ServiceStatus ServiceStatus `json:"ServiceStatus,omitempty"`
41006	// IsServiceGroup - Whether the service is in a service group.
41007	IsServiceGroup *bool `json:"IsServiceGroup,omitempty"`
41008	// ServiceKind - Possible values include: 'ServiceKindBasicServiceInfoServiceKindServiceInfo', 'ServiceKindBasicServiceInfoServiceKindStateful', 'ServiceKindBasicServiceInfoServiceKindStateless'
41009	ServiceKind ServiceKindBasicServiceInfo `json:"ServiceKind,omitempty"`
41010}
41011
41012func unmarshalBasicServiceInfo(body []byte) (BasicServiceInfo, error) {
41013	var m map[string]interface{}
41014	err := json.Unmarshal(body, &m)
41015	if err != nil {
41016		return nil, err
41017	}
41018
41019	switch m["ServiceKind"] {
41020	case string(ServiceKindBasicServiceInfoServiceKindStateful):
41021		var ssi StatefulServiceInfo
41022		err := json.Unmarshal(body, &ssi)
41023		return ssi, err
41024	case string(ServiceKindBasicServiceInfoServiceKindStateless):
41025		var ssi StatelessServiceInfo
41026		err := json.Unmarshal(body, &ssi)
41027		return ssi, err
41028	default:
41029		var si ServiceInfo
41030		err := json.Unmarshal(body, &si)
41031		return si, err
41032	}
41033}
41034func unmarshalBasicServiceInfoArray(body []byte) ([]BasicServiceInfo, error) {
41035	var rawMessages []*json.RawMessage
41036	err := json.Unmarshal(body, &rawMessages)
41037	if err != nil {
41038		return nil, err
41039	}
41040
41041	siArray := make([]BasicServiceInfo, len(rawMessages))
41042
41043	for index, rawMessage := range rawMessages {
41044		si, err := unmarshalBasicServiceInfo(*rawMessage)
41045		if err != nil {
41046			return nil, err
41047		}
41048		siArray[index] = si
41049	}
41050	return siArray, nil
41051}
41052
41053// MarshalJSON is the custom marshaler for ServiceInfo.
41054func (si ServiceInfo) MarshalJSON() ([]byte, error) {
41055	si.ServiceKind = ServiceKindBasicServiceInfoServiceKindServiceInfo
41056	objectMap := make(map[string]interface{})
41057	if si.ID != nil {
41058		objectMap["Id"] = si.ID
41059	}
41060	if si.Name != nil {
41061		objectMap["Name"] = si.Name
41062	}
41063	if si.TypeName != nil {
41064		objectMap["TypeName"] = si.TypeName
41065	}
41066	if si.ManifestVersion != nil {
41067		objectMap["ManifestVersion"] = si.ManifestVersion
41068	}
41069	if si.HealthState != "" {
41070		objectMap["HealthState"] = si.HealthState
41071	}
41072	if si.ServiceStatus != "" {
41073		objectMap["ServiceStatus"] = si.ServiceStatus
41074	}
41075	if si.IsServiceGroup != nil {
41076		objectMap["IsServiceGroup"] = si.IsServiceGroup
41077	}
41078	if si.ServiceKind != "" {
41079		objectMap["ServiceKind"] = si.ServiceKind
41080	}
41081	return json.Marshal(objectMap)
41082}
41083
41084// AsStatefulServiceInfo is the BasicServiceInfo implementation for ServiceInfo.
41085func (si ServiceInfo) AsStatefulServiceInfo() (*StatefulServiceInfo, bool) {
41086	return nil, false
41087}
41088
41089// AsStatelessServiceInfo is the BasicServiceInfo implementation for ServiceInfo.
41090func (si ServiceInfo) AsStatelessServiceInfo() (*StatelessServiceInfo, bool) {
41091	return nil, false
41092}
41093
41094// AsServiceInfo is the BasicServiceInfo implementation for ServiceInfo.
41095func (si ServiceInfo) AsServiceInfo() (*ServiceInfo, bool) {
41096	return &si, true
41097}
41098
41099// AsBasicServiceInfo is the BasicServiceInfo implementation for ServiceInfo.
41100func (si ServiceInfo) AsBasicServiceInfo() (BasicServiceInfo, bool) {
41101	return &si, true
41102}
41103
41104// ServiceInfoModel ...
41105type ServiceInfoModel struct {
41106	autorest.Response `json:"-"`
41107	Value             BasicServiceInfo `json:"value,omitempty"`
41108}
41109
41110// UnmarshalJSON is the custom unmarshaler for ServiceInfoModel struct.
41111func (sim *ServiceInfoModel) UnmarshalJSON(body []byte) error {
41112	si, err := unmarshalBasicServiceInfo(body)
41113	if err != nil {
41114		return err
41115	}
41116	sim.Value = si
41117
41118	return nil
41119}
41120
41121// ServiceLoadMetricDescription specifies a metric to load balance a service during runtime.
41122type ServiceLoadMetricDescription struct {
41123	// 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.
41124	Name *string `json:"Name,omitempty"`
41125	// 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'
41126	Weight ServiceLoadMetricWeight `json:"Weight,omitempty"`
41127	// 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.
41128	PrimaryDefaultLoad *int32 `json:"PrimaryDefaultLoad,omitempty"`
41129	// 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.
41130	SecondaryDefaultLoad *int32 `json:"SecondaryDefaultLoad,omitempty"`
41131	// DefaultLoad - Used only for Stateless services. The default amount of load, as a number, that this service creates for this metric.
41132	DefaultLoad *int32 `json:"DefaultLoad,omitempty"`
41133}
41134
41135// ServiceNameInfo information about the service name.
41136type ServiceNameInfo struct {
41137	autorest.Response `json:"-"`
41138	// 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.
41139	// Starting in version 6.0, hierarchical names are delimited with the "\~" character. For example, if the service name is "fabric:/myapp/app1/svc1",
41140	// the service identity would be "myapp~app1\~svc1" in 6.0+ and "myapp/app1/svc1" in previous versions.
41141	ID *string `json:"Id,omitempty"`
41142	// Name - The full name of the service with 'fabric:' URI scheme.
41143	Name *string `json:"Name,omitempty"`
41144}
41145
41146// ServiceNewHealthReportEvent service Health Report Created event.
41147type ServiceNewHealthReportEvent struct {
41148	// InstanceID - Id of Service instance.
41149	InstanceID *int64 `json:"InstanceId,omitempty"`
41150	// SourceID - Id of report source.
41151	SourceID *string `json:"SourceId,omitempty"`
41152	// Property - Describes the property.
41153	Property *string `json:"Property,omitempty"`
41154	// HealthState - Describes the property health state.
41155	HealthState *string `json:"HealthState,omitempty"`
41156	// TimeToLiveMs - Time to live in milli-seconds.
41157	TimeToLiveMs *int64 `json:"TimeToLiveMs,omitempty"`
41158	// SequenceNumber - Sequence number of report.
41159	SequenceNumber *int64 `json:"SequenceNumber,omitempty"`
41160	// Description - Description of report.
41161	Description *string `json:"Description,omitempty"`
41162	// RemoveWhenExpired - Indicates the removal when it expires.
41163	RemoveWhenExpired *bool `json:"RemoveWhenExpired,omitempty"`
41164	// SourceUtcTimestamp - Source time.
41165	SourceUtcTimestamp *date.Time `json:"SourceUtcTimestamp,omitempty"`
41166	// 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.
41167	// Starting in version 6.0, hierarchical names are delimited with the "\~" character. For example, if the service name is "fabric:/myapp/app1/svc1",
41168	// the service identity would be "myapp~app1\~svc1" in 6.0+ and "myapp/app1/svc1" in previous versions.
41169	ServiceID *string `json:"ServiceId,omitempty"`
41170	// EventInstanceID - The identifier for the FabricEvent instance.
41171	EventInstanceID *uuid.UUID `json:"EventInstanceId,omitempty"`
41172	// Category - The category of event.
41173	Category *string `json:"Category,omitempty"`
41174	// TimeStamp - The time event was logged.
41175	TimeStamp *date.Time `json:"TimeStamp,omitempty"`
41176	// HasCorrelatedEvents - Shows there is existing related events available.
41177	HasCorrelatedEvents *bool `json:"HasCorrelatedEvents,omitempty"`
41178	// 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'
41179	Kind KindBasicFabricEvent `json:"Kind,omitempty"`
41180}
41181
41182// MarshalJSON is the custom marshaler for ServiceNewHealthReportEvent.
41183func (snhre ServiceNewHealthReportEvent) MarshalJSON() ([]byte, error) {
41184	snhre.Kind = KindServiceNewHealthReport
41185	objectMap := make(map[string]interface{})
41186	if snhre.InstanceID != nil {
41187		objectMap["InstanceId"] = snhre.InstanceID
41188	}
41189	if snhre.SourceID != nil {
41190		objectMap["SourceId"] = snhre.SourceID
41191	}
41192	if snhre.Property != nil {
41193		objectMap["Property"] = snhre.Property
41194	}
41195	if snhre.HealthState != nil {
41196		objectMap["HealthState"] = snhre.HealthState
41197	}
41198	if snhre.TimeToLiveMs != nil {
41199		objectMap["TimeToLiveMs"] = snhre.TimeToLiveMs
41200	}
41201	if snhre.SequenceNumber != nil {
41202		objectMap["SequenceNumber"] = snhre.SequenceNumber
41203	}
41204	if snhre.Description != nil {
41205		objectMap["Description"] = snhre.Description
41206	}
41207	if snhre.RemoveWhenExpired != nil {
41208		objectMap["RemoveWhenExpired"] = snhre.RemoveWhenExpired
41209	}
41210	if snhre.SourceUtcTimestamp != nil {
41211		objectMap["SourceUtcTimestamp"] = snhre.SourceUtcTimestamp
41212	}
41213	if snhre.ServiceID != nil {
41214		objectMap["ServiceId"] = snhre.ServiceID
41215	}
41216	if snhre.EventInstanceID != nil {
41217		objectMap["EventInstanceId"] = snhre.EventInstanceID
41218	}
41219	if snhre.Category != nil {
41220		objectMap["Category"] = snhre.Category
41221	}
41222	if snhre.TimeStamp != nil {
41223		objectMap["TimeStamp"] = snhre.TimeStamp
41224	}
41225	if snhre.HasCorrelatedEvents != nil {
41226		objectMap["HasCorrelatedEvents"] = snhre.HasCorrelatedEvents
41227	}
41228	if snhre.Kind != "" {
41229		objectMap["Kind"] = snhre.Kind
41230	}
41231	return json.Marshal(objectMap)
41232}
41233
41234// AsApplicationEvent is the BasicFabricEvent implementation for ServiceNewHealthReportEvent.
41235func (snhre ServiceNewHealthReportEvent) AsApplicationEvent() (*ApplicationEvent, bool) {
41236	return nil, false
41237}
41238
41239// AsBasicApplicationEvent is the BasicFabricEvent implementation for ServiceNewHealthReportEvent.
41240func (snhre ServiceNewHealthReportEvent) AsBasicApplicationEvent() (BasicApplicationEvent, bool) {
41241	return nil, false
41242}
41243
41244// AsClusterEvent is the BasicFabricEvent implementation for ServiceNewHealthReportEvent.
41245func (snhre ServiceNewHealthReportEvent) AsClusterEvent() (*ClusterEvent, bool) {
41246	return nil, false
41247}
41248
41249// AsBasicClusterEvent is the BasicFabricEvent implementation for ServiceNewHealthReportEvent.
41250func (snhre ServiceNewHealthReportEvent) AsBasicClusterEvent() (BasicClusterEvent, bool) {
41251	return nil, false
41252}
41253
41254// AsContainerInstanceEvent is the BasicFabricEvent implementation for ServiceNewHealthReportEvent.
41255func (snhre ServiceNewHealthReportEvent) AsContainerInstanceEvent() (*ContainerInstanceEvent, bool) {
41256	return nil, false
41257}
41258
41259// AsNodeEvent is the BasicFabricEvent implementation for ServiceNewHealthReportEvent.
41260func (snhre ServiceNewHealthReportEvent) AsNodeEvent() (*NodeEvent, bool) {
41261	return nil, false
41262}
41263
41264// AsBasicNodeEvent is the BasicFabricEvent implementation for ServiceNewHealthReportEvent.
41265func (snhre ServiceNewHealthReportEvent) AsBasicNodeEvent() (BasicNodeEvent, bool) {
41266	return nil, false
41267}
41268
41269// AsPartitionAnalysisEvent is the BasicFabricEvent implementation for ServiceNewHealthReportEvent.
41270func (snhre ServiceNewHealthReportEvent) AsPartitionAnalysisEvent() (*PartitionAnalysisEvent, bool) {
41271	return nil, false
41272}
41273
41274// AsBasicPartitionAnalysisEvent is the BasicFabricEvent implementation for ServiceNewHealthReportEvent.
41275func (snhre ServiceNewHealthReportEvent) AsBasicPartitionAnalysisEvent() (BasicPartitionAnalysisEvent, bool) {
41276	return nil, false
41277}
41278
41279// AsPartitionEvent is the BasicFabricEvent implementation for ServiceNewHealthReportEvent.
41280func (snhre ServiceNewHealthReportEvent) AsPartitionEvent() (*PartitionEvent, bool) {
41281	return nil, false
41282}
41283
41284// AsBasicPartitionEvent is the BasicFabricEvent implementation for ServiceNewHealthReportEvent.
41285func (snhre ServiceNewHealthReportEvent) AsBasicPartitionEvent() (BasicPartitionEvent, bool) {
41286	return nil, false
41287}
41288
41289// AsReplicaEvent is the BasicFabricEvent implementation for ServiceNewHealthReportEvent.
41290func (snhre ServiceNewHealthReportEvent) AsReplicaEvent() (*ReplicaEvent, bool) {
41291	return nil, false
41292}
41293
41294// AsBasicReplicaEvent is the BasicFabricEvent implementation for ServiceNewHealthReportEvent.
41295func (snhre ServiceNewHealthReportEvent) AsBasicReplicaEvent() (BasicReplicaEvent, bool) {
41296	return nil, false
41297}
41298
41299// AsServiceEvent is the BasicFabricEvent implementation for ServiceNewHealthReportEvent.
41300func (snhre ServiceNewHealthReportEvent) AsServiceEvent() (*ServiceEvent, bool) {
41301	return nil, false
41302}
41303
41304// AsBasicServiceEvent is the BasicFabricEvent implementation for ServiceNewHealthReportEvent.
41305func (snhre ServiceNewHealthReportEvent) AsBasicServiceEvent() (BasicServiceEvent, bool) {
41306	return &snhre, true
41307}
41308
41309// AsApplicationCreatedEvent is the BasicFabricEvent implementation for ServiceNewHealthReportEvent.
41310func (snhre ServiceNewHealthReportEvent) AsApplicationCreatedEvent() (*ApplicationCreatedEvent, bool) {
41311	return nil, false
41312}
41313
41314// AsApplicationDeletedEvent is the BasicFabricEvent implementation for ServiceNewHealthReportEvent.
41315func (snhre ServiceNewHealthReportEvent) AsApplicationDeletedEvent() (*ApplicationDeletedEvent, bool) {
41316	return nil, false
41317}
41318
41319// AsApplicationNewHealthReportEvent is the BasicFabricEvent implementation for ServiceNewHealthReportEvent.
41320func (snhre ServiceNewHealthReportEvent) AsApplicationNewHealthReportEvent() (*ApplicationNewHealthReportEvent, bool) {
41321	return nil, false
41322}
41323
41324// AsApplicationHealthReportExpiredEvent is the BasicFabricEvent implementation for ServiceNewHealthReportEvent.
41325func (snhre ServiceNewHealthReportEvent) AsApplicationHealthReportExpiredEvent() (*ApplicationHealthReportExpiredEvent, bool) {
41326	return nil, false
41327}
41328
41329// AsApplicationUpgradeCompletedEvent is the BasicFabricEvent implementation for ServiceNewHealthReportEvent.
41330func (snhre ServiceNewHealthReportEvent) AsApplicationUpgradeCompletedEvent() (*ApplicationUpgradeCompletedEvent, bool) {
41331	return nil, false
41332}
41333
41334// AsApplicationUpgradeDomainCompletedEvent is the BasicFabricEvent implementation for ServiceNewHealthReportEvent.
41335func (snhre ServiceNewHealthReportEvent) AsApplicationUpgradeDomainCompletedEvent() (*ApplicationUpgradeDomainCompletedEvent, bool) {
41336	return nil, false
41337}
41338
41339// AsApplicationUpgradeRollbackCompletedEvent is the BasicFabricEvent implementation for ServiceNewHealthReportEvent.
41340func (snhre ServiceNewHealthReportEvent) AsApplicationUpgradeRollbackCompletedEvent() (*ApplicationUpgradeRollbackCompletedEvent, bool) {
41341	return nil, false
41342}
41343
41344// AsApplicationUpgradeRollbackStartedEvent is the BasicFabricEvent implementation for ServiceNewHealthReportEvent.
41345func (snhre ServiceNewHealthReportEvent) AsApplicationUpgradeRollbackStartedEvent() (*ApplicationUpgradeRollbackStartedEvent, bool) {
41346	return nil, false
41347}
41348
41349// AsApplicationUpgradeStartedEvent is the BasicFabricEvent implementation for ServiceNewHealthReportEvent.
41350func (snhre ServiceNewHealthReportEvent) AsApplicationUpgradeStartedEvent() (*ApplicationUpgradeStartedEvent, bool) {
41351	return nil, false
41352}
41353
41354// AsDeployedApplicationNewHealthReportEvent is the BasicFabricEvent implementation for ServiceNewHealthReportEvent.
41355func (snhre ServiceNewHealthReportEvent) AsDeployedApplicationNewHealthReportEvent() (*DeployedApplicationNewHealthReportEvent, bool) {
41356	return nil, false
41357}
41358
41359// AsDeployedApplicationHealthReportExpiredEvent is the BasicFabricEvent implementation for ServiceNewHealthReportEvent.
41360func (snhre ServiceNewHealthReportEvent) AsDeployedApplicationHealthReportExpiredEvent() (*DeployedApplicationHealthReportExpiredEvent, bool) {
41361	return nil, false
41362}
41363
41364// AsApplicationProcessExitedEvent is the BasicFabricEvent implementation for ServiceNewHealthReportEvent.
41365func (snhre ServiceNewHealthReportEvent) AsApplicationProcessExitedEvent() (*ApplicationProcessExitedEvent, bool) {
41366	return nil, false
41367}
41368
41369// AsApplicationContainerInstanceExitedEvent is the BasicFabricEvent implementation for ServiceNewHealthReportEvent.
41370func (snhre ServiceNewHealthReportEvent) AsApplicationContainerInstanceExitedEvent() (*ApplicationContainerInstanceExitedEvent, bool) {
41371	return nil, false
41372}
41373
41374// AsNodeAbortedEvent is the BasicFabricEvent implementation for ServiceNewHealthReportEvent.
41375func (snhre ServiceNewHealthReportEvent) AsNodeAbortedEvent() (*NodeAbortedEvent, bool) {
41376	return nil, false
41377}
41378
41379// AsNodeAddedToClusterEvent is the BasicFabricEvent implementation for ServiceNewHealthReportEvent.
41380func (snhre ServiceNewHealthReportEvent) AsNodeAddedToClusterEvent() (*NodeAddedToClusterEvent, bool) {
41381	return nil, false
41382}
41383
41384// AsNodeClosedEvent is the BasicFabricEvent implementation for ServiceNewHealthReportEvent.
41385func (snhre ServiceNewHealthReportEvent) AsNodeClosedEvent() (*NodeClosedEvent, bool) {
41386	return nil, false
41387}
41388
41389// AsNodeDeactivateCompletedEvent is the BasicFabricEvent implementation for ServiceNewHealthReportEvent.
41390func (snhre ServiceNewHealthReportEvent) AsNodeDeactivateCompletedEvent() (*NodeDeactivateCompletedEvent, bool) {
41391	return nil, false
41392}
41393
41394// AsNodeDeactivateStartedEvent is the BasicFabricEvent implementation for ServiceNewHealthReportEvent.
41395func (snhre ServiceNewHealthReportEvent) AsNodeDeactivateStartedEvent() (*NodeDeactivateStartedEvent, bool) {
41396	return nil, false
41397}
41398
41399// AsNodeDownEvent is the BasicFabricEvent implementation for ServiceNewHealthReportEvent.
41400func (snhre ServiceNewHealthReportEvent) AsNodeDownEvent() (*NodeDownEvent, bool) {
41401	return nil, false
41402}
41403
41404// AsNodeNewHealthReportEvent is the BasicFabricEvent implementation for ServiceNewHealthReportEvent.
41405func (snhre ServiceNewHealthReportEvent) AsNodeNewHealthReportEvent() (*NodeNewHealthReportEvent, bool) {
41406	return nil, false
41407}
41408
41409// AsNodeHealthReportExpiredEvent is the BasicFabricEvent implementation for ServiceNewHealthReportEvent.
41410func (snhre ServiceNewHealthReportEvent) AsNodeHealthReportExpiredEvent() (*NodeHealthReportExpiredEvent, bool) {
41411	return nil, false
41412}
41413
41414// AsNodeOpenSucceededEvent is the BasicFabricEvent implementation for ServiceNewHealthReportEvent.
41415func (snhre ServiceNewHealthReportEvent) AsNodeOpenSucceededEvent() (*NodeOpenSucceededEvent, bool) {
41416	return nil, false
41417}
41418
41419// AsNodeOpenFailedEvent is the BasicFabricEvent implementation for ServiceNewHealthReportEvent.
41420func (snhre ServiceNewHealthReportEvent) AsNodeOpenFailedEvent() (*NodeOpenFailedEvent, bool) {
41421	return nil, false
41422}
41423
41424// AsNodeRemovedFromClusterEvent is the BasicFabricEvent implementation for ServiceNewHealthReportEvent.
41425func (snhre ServiceNewHealthReportEvent) AsNodeRemovedFromClusterEvent() (*NodeRemovedFromClusterEvent, bool) {
41426	return nil, false
41427}
41428
41429// AsNodeUpEvent is the BasicFabricEvent implementation for ServiceNewHealthReportEvent.
41430func (snhre ServiceNewHealthReportEvent) AsNodeUpEvent() (*NodeUpEvent, bool) {
41431	return nil, false
41432}
41433
41434// AsPartitionNewHealthReportEvent is the BasicFabricEvent implementation for ServiceNewHealthReportEvent.
41435func (snhre ServiceNewHealthReportEvent) AsPartitionNewHealthReportEvent() (*PartitionNewHealthReportEvent, bool) {
41436	return nil, false
41437}
41438
41439// AsPartitionHealthReportExpiredEvent is the BasicFabricEvent implementation for ServiceNewHealthReportEvent.
41440func (snhre ServiceNewHealthReportEvent) AsPartitionHealthReportExpiredEvent() (*PartitionHealthReportExpiredEvent, bool) {
41441	return nil, false
41442}
41443
41444// AsPartitionReconfiguredEvent is the BasicFabricEvent implementation for ServiceNewHealthReportEvent.
41445func (snhre ServiceNewHealthReportEvent) AsPartitionReconfiguredEvent() (*PartitionReconfiguredEvent, bool) {
41446	return nil, false
41447}
41448
41449// AsPartitionPrimaryMoveAnalysisEvent is the BasicFabricEvent implementation for ServiceNewHealthReportEvent.
41450func (snhre ServiceNewHealthReportEvent) AsPartitionPrimaryMoveAnalysisEvent() (*PartitionPrimaryMoveAnalysisEvent, bool) {
41451	return nil, false
41452}
41453
41454// AsServiceCreatedEvent is the BasicFabricEvent implementation for ServiceNewHealthReportEvent.
41455func (snhre ServiceNewHealthReportEvent) AsServiceCreatedEvent() (*ServiceCreatedEvent, bool) {
41456	return nil, false
41457}
41458
41459// AsServiceDeletedEvent is the BasicFabricEvent implementation for ServiceNewHealthReportEvent.
41460func (snhre ServiceNewHealthReportEvent) AsServiceDeletedEvent() (*ServiceDeletedEvent, bool) {
41461	return nil, false
41462}
41463
41464// AsServiceNewHealthReportEvent is the BasicFabricEvent implementation for ServiceNewHealthReportEvent.
41465func (snhre ServiceNewHealthReportEvent) AsServiceNewHealthReportEvent() (*ServiceNewHealthReportEvent, bool) {
41466	return &snhre, true
41467}
41468
41469// AsServiceHealthReportExpiredEvent is the BasicFabricEvent implementation for ServiceNewHealthReportEvent.
41470func (snhre ServiceNewHealthReportEvent) AsServiceHealthReportExpiredEvent() (*ServiceHealthReportExpiredEvent, bool) {
41471	return nil, false
41472}
41473
41474// AsDeployedServicePackageNewHealthReportEvent is the BasicFabricEvent implementation for ServiceNewHealthReportEvent.
41475func (snhre ServiceNewHealthReportEvent) AsDeployedServicePackageNewHealthReportEvent() (*DeployedServicePackageNewHealthReportEvent, bool) {
41476	return nil, false
41477}
41478
41479// AsDeployedServicePackageHealthReportExpiredEvent is the BasicFabricEvent implementation for ServiceNewHealthReportEvent.
41480func (snhre ServiceNewHealthReportEvent) AsDeployedServicePackageHealthReportExpiredEvent() (*DeployedServicePackageHealthReportExpiredEvent, bool) {
41481	return nil, false
41482}
41483
41484// AsStatefulReplicaNewHealthReportEvent is the BasicFabricEvent implementation for ServiceNewHealthReportEvent.
41485func (snhre ServiceNewHealthReportEvent) AsStatefulReplicaNewHealthReportEvent() (*StatefulReplicaNewHealthReportEvent, bool) {
41486	return nil, false
41487}
41488
41489// AsStatefulReplicaHealthReportExpiredEvent is the BasicFabricEvent implementation for ServiceNewHealthReportEvent.
41490func (snhre ServiceNewHealthReportEvent) AsStatefulReplicaHealthReportExpiredEvent() (*StatefulReplicaHealthReportExpiredEvent, bool) {
41491	return nil, false
41492}
41493
41494// AsStatelessReplicaNewHealthReportEvent is the BasicFabricEvent implementation for ServiceNewHealthReportEvent.
41495func (snhre ServiceNewHealthReportEvent) AsStatelessReplicaNewHealthReportEvent() (*StatelessReplicaNewHealthReportEvent, bool) {
41496	return nil, false
41497}
41498
41499// AsStatelessReplicaHealthReportExpiredEvent is the BasicFabricEvent implementation for ServiceNewHealthReportEvent.
41500func (snhre ServiceNewHealthReportEvent) AsStatelessReplicaHealthReportExpiredEvent() (*StatelessReplicaHealthReportExpiredEvent, bool) {
41501	return nil, false
41502}
41503
41504// AsClusterNewHealthReportEvent is the BasicFabricEvent implementation for ServiceNewHealthReportEvent.
41505func (snhre ServiceNewHealthReportEvent) AsClusterNewHealthReportEvent() (*ClusterNewHealthReportEvent, bool) {
41506	return nil, false
41507}
41508
41509// AsClusterHealthReportExpiredEvent is the BasicFabricEvent implementation for ServiceNewHealthReportEvent.
41510func (snhre ServiceNewHealthReportEvent) AsClusterHealthReportExpiredEvent() (*ClusterHealthReportExpiredEvent, bool) {
41511	return nil, false
41512}
41513
41514// AsClusterUpgradeCompletedEvent is the BasicFabricEvent implementation for ServiceNewHealthReportEvent.
41515func (snhre ServiceNewHealthReportEvent) AsClusterUpgradeCompletedEvent() (*ClusterUpgradeCompletedEvent, bool) {
41516	return nil, false
41517}
41518
41519// AsClusterUpgradeDomainCompletedEvent is the BasicFabricEvent implementation for ServiceNewHealthReportEvent.
41520func (snhre ServiceNewHealthReportEvent) AsClusterUpgradeDomainCompletedEvent() (*ClusterUpgradeDomainCompletedEvent, bool) {
41521	return nil, false
41522}
41523
41524// AsClusterUpgradeRollbackCompletedEvent is the BasicFabricEvent implementation for ServiceNewHealthReportEvent.
41525func (snhre ServiceNewHealthReportEvent) AsClusterUpgradeRollbackCompletedEvent() (*ClusterUpgradeRollbackCompletedEvent, bool) {
41526	return nil, false
41527}
41528
41529// AsClusterUpgradeRollbackStartedEvent is the BasicFabricEvent implementation for ServiceNewHealthReportEvent.
41530func (snhre ServiceNewHealthReportEvent) AsClusterUpgradeRollbackStartedEvent() (*ClusterUpgradeRollbackStartedEvent, bool) {
41531	return nil, false
41532}
41533
41534// AsClusterUpgradeStartedEvent is the BasicFabricEvent implementation for ServiceNewHealthReportEvent.
41535func (snhre ServiceNewHealthReportEvent) AsClusterUpgradeStartedEvent() (*ClusterUpgradeStartedEvent, bool) {
41536	return nil, false
41537}
41538
41539// AsChaosStoppedEvent is the BasicFabricEvent implementation for ServiceNewHealthReportEvent.
41540func (snhre ServiceNewHealthReportEvent) AsChaosStoppedEvent() (*ChaosStoppedEvent, bool) {
41541	return nil, false
41542}
41543
41544// AsChaosStartedEvent is the BasicFabricEvent implementation for ServiceNewHealthReportEvent.
41545func (snhre ServiceNewHealthReportEvent) AsChaosStartedEvent() (*ChaosStartedEvent, bool) {
41546	return nil, false
41547}
41548
41549// AsChaosCodePackageRestartScheduledEvent is the BasicFabricEvent implementation for ServiceNewHealthReportEvent.
41550func (snhre ServiceNewHealthReportEvent) AsChaosCodePackageRestartScheduledEvent() (*ChaosCodePackageRestartScheduledEvent, bool) {
41551	return nil, false
41552}
41553
41554// AsChaosReplicaRemovalScheduledEvent is the BasicFabricEvent implementation for ServiceNewHealthReportEvent.
41555func (snhre ServiceNewHealthReportEvent) AsChaosReplicaRemovalScheduledEvent() (*ChaosReplicaRemovalScheduledEvent, bool) {
41556	return nil, false
41557}
41558
41559// AsChaosPartitionSecondaryMoveScheduledEvent is the BasicFabricEvent implementation for ServiceNewHealthReportEvent.
41560func (snhre ServiceNewHealthReportEvent) AsChaosPartitionSecondaryMoveScheduledEvent() (*ChaosPartitionSecondaryMoveScheduledEvent, bool) {
41561	return nil, false
41562}
41563
41564// AsChaosPartitionPrimaryMoveScheduledEvent is the BasicFabricEvent implementation for ServiceNewHealthReportEvent.
41565func (snhre ServiceNewHealthReportEvent) AsChaosPartitionPrimaryMoveScheduledEvent() (*ChaosPartitionPrimaryMoveScheduledEvent, bool) {
41566	return nil, false
41567}
41568
41569// AsChaosReplicaRestartScheduledEvent is the BasicFabricEvent implementation for ServiceNewHealthReportEvent.
41570func (snhre ServiceNewHealthReportEvent) AsChaosReplicaRestartScheduledEvent() (*ChaosReplicaRestartScheduledEvent, bool) {
41571	return nil, false
41572}
41573
41574// AsChaosNodeRestartScheduledEvent is the BasicFabricEvent implementation for ServiceNewHealthReportEvent.
41575func (snhre ServiceNewHealthReportEvent) AsChaosNodeRestartScheduledEvent() (*ChaosNodeRestartScheduledEvent, bool) {
41576	return nil, false
41577}
41578
41579// AsFabricEvent is the BasicFabricEvent implementation for ServiceNewHealthReportEvent.
41580func (snhre ServiceNewHealthReportEvent) AsFabricEvent() (*FabricEvent, bool) {
41581	return nil, false
41582}
41583
41584// AsBasicFabricEvent is the BasicFabricEvent implementation for ServiceNewHealthReportEvent.
41585func (snhre ServiceNewHealthReportEvent) AsBasicFabricEvent() (BasicFabricEvent, bool) {
41586	return &snhre, true
41587}
41588
41589// BasicServicePartitionInfo information about a partition of a Service Fabric service.
41590type BasicServicePartitionInfo interface {
41591	AsStatefulServicePartitionInfo() (*StatefulServicePartitionInfo, bool)
41592	AsStatelessServicePartitionInfo() (*StatelessServicePartitionInfo, bool)
41593	AsServicePartitionInfo() (*ServicePartitionInfo, bool)
41594}
41595
41596// ServicePartitionInfo information about a partition of a Service Fabric service.
41597type ServicePartitionInfo struct {
41598	autorest.Response `json:"-"`
41599	// 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'
41600	HealthState HealthState `json:"HealthState,omitempty"`
41601	// PartitionStatus - The status of the service fabric service partition. Possible values include: 'ServicePartitionStatusInvalid', 'ServicePartitionStatusReady', 'ServicePartitionStatusNotReady', 'ServicePartitionStatusInQuorumLoss', 'ServicePartitionStatusReconfiguring', 'ServicePartitionStatusDeleting'
41602	PartitionStatus ServicePartitionStatus `json:"PartitionStatus,omitempty"`
41603	// PartitionInformation - Information about the partition identity, partitioning scheme and keys supported by it.
41604	PartitionInformation BasicPartitionInformation `json:"PartitionInformation,omitempty"`
41605	// ServiceKind - Possible values include: 'ServiceKindBasicServicePartitionInfoServiceKindServicePartitionInfo', 'ServiceKindBasicServicePartitionInfoServiceKindStateful', 'ServiceKindBasicServicePartitionInfoServiceKindStateless'
41606	ServiceKind ServiceKindBasicServicePartitionInfo `json:"ServiceKind,omitempty"`
41607}
41608
41609func unmarshalBasicServicePartitionInfo(body []byte) (BasicServicePartitionInfo, error) {
41610	var m map[string]interface{}
41611	err := json.Unmarshal(body, &m)
41612	if err != nil {
41613		return nil, err
41614	}
41615
41616	switch m["ServiceKind"] {
41617	case string(ServiceKindBasicServicePartitionInfoServiceKindStateful):
41618		var sspi StatefulServicePartitionInfo
41619		err := json.Unmarshal(body, &sspi)
41620		return sspi, err
41621	case string(ServiceKindBasicServicePartitionInfoServiceKindStateless):
41622		var sspi StatelessServicePartitionInfo
41623		err := json.Unmarshal(body, &sspi)
41624		return sspi, err
41625	default:
41626		var spi ServicePartitionInfo
41627		err := json.Unmarshal(body, &spi)
41628		return spi, err
41629	}
41630}
41631func unmarshalBasicServicePartitionInfoArray(body []byte) ([]BasicServicePartitionInfo, error) {
41632	var rawMessages []*json.RawMessage
41633	err := json.Unmarshal(body, &rawMessages)
41634	if err != nil {
41635		return nil, err
41636	}
41637
41638	spiArray := make([]BasicServicePartitionInfo, len(rawMessages))
41639
41640	for index, rawMessage := range rawMessages {
41641		spi, err := unmarshalBasicServicePartitionInfo(*rawMessage)
41642		if err != nil {
41643			return nil, err
41644		}
41645		spiArray[index] = spi
41646	}
41647	return spiArray, nil
41648}
41649
41650// MarshalJSON is the custom marshaler for ServicePartitionInfo.
41651func (spi ServicePartitionInfo) MarshalJSON() ([]byte, error) {
41652	spi.ServiceKind = ServiceKindBasicServicePartitionInfoServiceKindServicePartitionInfo
41653	objectMap := make(map[string]interface{})
41654	if spi.HealthState != "" {
41655		objectMap["HealthState"] = spi.HealthState
41656	}
41657	if spi.PartitionStatus != "" {
41658		objectMap["PartitionStatus"] = spi.PartitionStatus
41659	}
41660	objectMap["PartitionInformation"] = spi.PartitionInformation
41661	if spi.ServiceKind != "" {
41662		objectMap["ServiceKind"] = spi.ServiceKind
41663	}
41664	return json.Marshal(objectMap)
41665}
41666
41667// AsStatefulServicePartitionInfo is the BasicServicePartitionInfo implementation for ServicePartitionInfo.
41668func (spi ServicePartitionInfo) AsStatefulServicePartitionInfo() (*StatefulServicePartitionInfo, bool) {
41669	return nil, false
41670}
41671
41672// AsStatelessServicePartitionInfo is the BasicServicePartitionInfo implementation for ServicePartitionInfo.
41673func (spi ServicePartitionInfo) AsStatelessServicePartitionInfo() (*StatelessServicePartitionInfo, bool) {
41674	return nil, false
41675}
41676
41677// AsServicePartitionInfo is the BasicServicePartitionInfo implementation for ServicePartitionInfo.
41678func (spi ServicePartitionInfo) AsServicePartitionInfo() (*ServicePartitionInfo, bool) {
41679	return &spi, true
41680}
41681
41682// AsBasicServicePartitionInfo is the BasicServicePartitionInfo implementation for ServicePartitionInfo.
41683func (spi ServicePartitionInfo) AsBasicServicePartitionInfo() (BasicServicePartitionInfo, bool) {
41684	return &spi, true
41685}
41686
41687// UnmarshalJSON is the custom unmarshaler for ServicePartitionInfo struct.
41688func (spi *ServicePartitionInfo) UnmarshalJSON(body []byte) error {
41689	var m map[string]*json.RawMessage
41690	err := json.Unmarshal(body, &m)
41691	if err != nil {
41692		return err
41693	}
41694	for k, v := range m {
41695		switch k {
41696		case "HealthState":
41697			if v != nil {
41698				var healthState HealthState
41699				err = json.Unmarshal(*v, &healthState)
41700				if err != nil {
41701					return err
41702				}
41703				spi.HealthState = healthState
41704			}
41705		case "PartitionStatus":
41706			if v != nil {
41707				var partitionStatus ServicePartitionStatus
41708				err = json.Unmarshal(*v, &partitionStatus)
41709				if err != nil {
41710					return err
41711				}
41712				spi.PartitionStatus = partitionStatus
41713			}
41714		case "PartitionInformation":
41715			if v != nil {
41716				partitionInformation, err := unmarshalBasicPartitionInformation(*v)
41717				if err != nil {
41718					return err
41719				}
41720				spi.PartitionInformation = partitionInformation
41721			}
41722		case "ServiceKind":
41723			if v != nil {
41724				var serviceKind ServiceKindBasicServicePartitionInfo
41725				err = json.Unmarshal(*v, &serviceKind)
41726				if err != nil {
41727					return err
41728				}
41729				spi.ServiceKind = serviceKind
41730			}
41731		}
41732	}
41733
41734	return nil
41735}
41736
41737// ServicePartitionInfoModel ...
41738type ServicePartitionInfoModel struct {
41739	autorest.Response `json:"-"`
41740	Value             BasicServicePartitionInfo `json:"value,omitempty"`
41741}
41742
41743// UnmarshalJSON is the custom unmarshaler for ServicePartitionInfoModel struct.
41744func (spim *ServicePartitionInfoModel) UnmarshalJSON(body []byte) error {
41745	spi, err := unmarshalBasicServicePartitionInfo(body)
41746	if err != nil {
41747		return err
41748	}
41749	spim.Value = spi
41750
41751	return nil
41752}
41753
41754// ServicePlacementInvalidDomainPolicyDescription describes the policy to be used for placement of a
41755// Service Fabric service where a particular fault or upgrade domain should not be used for placement of
41756// the instances or replicas of that service.
41757type ServicePlacementInvalidDomainPolicyDescription struct {
41758	// DomainName - The name of the domain that should not be used for placement.
41759	DomainName *string `json:"DomainName,omitempty"`
41760	// Type - Possible values include: 'TypeServicePlacementPolicyDescription', 'TypeInvalidDomain', 'TypeNonPartiallyPlaceService', 'TypePreferPrimaryDomain', 'TypeRequireDomain', 'TypeRequireDomainDistribution'
41761	Type Type `json:"Type,omitempty"`
41762}
41763
41764// MarshalJSON is the custom marshaler for ServicePlacementInvalidDomainPolicyDescription.
41765func (spidpd ServicePlacementInvalidDomainPolicyDescription) MarshalJSON() ([]byte, error) {
41766	spidpd.Type = TypeInvalidDomain
41767	objectMap := make(map[string]interface{})
41768	if spidpd.DomainName != nil {
41769		objectMap["DomainName"] = spidpd.DomainName
41770	}
41771	if spidpd.Type != "" {
41772		objectMap["Type"] = spidpd.Type
41773	}
41774	return json.Marshal(objectMap)
41775}
41776
41777// AsServicePlacementInvalidDomainPolicyDescription is the BasicServicePlacementPolicyDescription implementation for ServicePlacementInvalidDomainPolicyDescription.
41778func (spidpd ServicePlacementInvalidDomainPolicyDescription) AsServicePlacementInvalidDomainPolicyDescription() (*ServicePlacementInvalidDomainPolicyDescription, bool) {
41779	return &spidpd, true
41780}
41781
41782// AsServicePlacementNonPartiallyPlaceServicePolicyDescription is the BasicServicePlacementPolicyDescription implementation for ServicePlacementInvalidDomainPolicyDescription.
41783func (spidpd ServicePlacementInvalidDomainPolicyDescription) AsServicePlacementNonPartiallyPlaceServicePolicyDescription() (*ServicePlacementNonPartiallyPlaceServicePolicyDescription, bool) {
41784	return nil, false
41785}
41786
41787// AsServicePlacementPreferPrimaryDomainPolicyDescription is the BasicServicePlacementPolicyDescription implementation for ServicePlacementInvalidDomainPolicyDescription.
41788func (spidpd ServicePlacementInvalidDomainPolicyDescription) AsServicePlacementPreferPrimaryDomainPolicyDescription() (*ServicePlacementPreferPrimaryDomainPolicyDescription, bool) {
41789	return nil, false
41790}
41791
41792// AsServicePlacementRequiredDomainPolicyDescription is the BasicServicePlacementPolicyDescription implementation for ServicePlacementInvalidDomainPolicyDescription.
41793func (spidpd ServicePlacementInvalidDomainPolicyDescription) AsServicePlacementRequiredDomainPolicyDescription() (*ServicePlacementRequiredDomainPolicyDescription, bool) {
41794	return nil, false
41795}
41796
41797// AsServicePlacementRequireDomainDistributionPolicyDescription is the BasicServicePlacementPolicyDescription implementation for ServicePlacementInvalidDomainPolicyDescription.
41798func (spidpd ServicePlacementInvalidDomainPolicyDescription) AsServicePlacementRequireDomainDistributionPolicyDescription() (*ServicePlacementRequireDomainDistributionPolicyDescription, bool) {
41799	return nil, false
41800}
41801
41802// AsServicePlacementPolicyDescription is the BasicServicePlacementPolicyDescription implementation for ServicePlacementInvalidDomainPolicyDescription.
41803func (spidpd ServicePlacementInvalidDomainPolicyDescription) AsServicePlacementPolicyDescription() (*ServicePlacementPolicyDescription, bool) {
41804	return nil, false
41805}
41806
41807// AsBasicServicePlacementPolicyDescription is the BasicServicePlacementPolicyDescription implementation for ServicePlacementInvalidDomainPolicyDescription.
41808func (spidpd ServicePlacementInvalidDomainPolicyDescription) AsBasicServicePlacementPolicyDescription() (BasicServicePlacementPolicyDescription, bool) {
41809	return &spidpd, true
41810}
41811
41812// ServicePlacementNonPartiallyPlaceServicePolicyDescription describes the policy to be used for placement
41813// of a Service Fabric service where all replicas must be able to be placed in order for any replicas to be
41814// created.
41815type ServicePlacementNonPartiallyPlaceServicePolicyDescription struct {
41816	// Type - Possible values include: 'TypeServicePlacementPolicyDescription', 'TypeInvalidDomain', 'TypeNonPartiallyPlaceService', 'TypePreferPrimaryDomain', 'TypeRequireDomain', 'TypeRequireDomainDistribution'
41817	Type Type `json:"Type,omitempty"`
41818}
41819
41820// MarshalJSON is the custom marshaler for ServicePlacementNonPartiallyPlaceServicePolicyDescription.
41821func (spnppspd ServicePlacementNonPartiallyPlaceServicePolicyDescription) MarshalJSON() ([]byte, error) {
41822	spnppspd.Type = TypeNonPartiallyPlaceService
41823	objectMap := make(map[string]interface{})
41824	if spnppspd.Type != "" {
41825		objectMap["Type"] = spnppspd.Type
41826	}
41827	return json.Marshal(objectMap)
41828}
41829
41830// AsServicePlacementInvalidDomainPolicyDescription is the BasicServicePlacementPolicyDescription implementation for ServicePlacementNonPartiallyPlaceServicePolicyDescription.
41831func (spnppspd ServicePlacementNonPartiallyPlaceServicePolicyDescription) AsServicePlacementInvalidDomainPolicyDescription() (*ServicePlacementInvalidDomainPolicyDescription, bool) {
41832	return nil, false
41833}
41834
41835// AsServicePlacementNonPartiallyPlaceServicePolicyDescription is the BasicServicePlacementPolicyDescription implementation for ServicePlacementNonPartiallyPlaceServicePolicyDescription.
41836func (spnppspd ServicePlacementNonPartiallyPlaceServicePolicyDescription) AsServicePlacementNonPartiallyPlaceServicePolicyDescription() (*ServicePlacementNonPartiallyPlaceServicePolicyDescription, bool) {
41837	return &spnppspd, true
41838}
41839
41840// AsServicePlacementPreferPrimaryDomainPolicyDescription is the BasicServicePlacementPolicyDescription implementation for ServicePlacementNonPartiallyPlaceServicePolicyDescription.
41841func (spnppspd ServicePlacementNonPartiallyPlaceServicePolicyDescription) AsServicePlacementPreferPrimaryDomainPolicyDescription() (*ServicePlacementPreferPrimaryDomainPolicyDescription, bool) {
41842	return nil, false
41843}
41844
41845// AsServicePlacementRequiredDomainPolicyDescription is the BasicServicePlacementPolicyDescription implementation for ServicePlacementNonPartiallyPlaceServicePolicyDescription.
41846func (spnppspd ServicePlacementNonPartiallyPlaceServicePolicyDescription) AsServicePlacementRequiredDomainPolicyDescription() (*ServicePlacementRequiredDomainPolicyDescription, bool) {
41847	return nil, false
41848}
41849
41850// AsServicePlacementRequireDomainDistributionPolicyDescription is the BasicServicePlacementPolicyDescription implementation for ServicePlacementNonPartiallyPlaceServicePolicyDescription.
41851func (spnppspd ServicePlacementNonPartiallyPlaceServicePolicyDescription) AsServicePlacementRequireDomainDistributionPolicyDescription() (*ServicePlacementRequireDomainDistributionPolicyDescription, bool) {
41852	return nil, false
41853}
41854
41855// AsServicePlacementPolicyDescription is the BasicServicePlacementPolicyDescription implementation for ServicePlacementNonPartiallyPlaceServicePolicyDescription.
41856func (spnppspd ServicePlacementNonPartiallyPlaceServicePolicyDescription) AsServicePlacementPolicyDescription() (*ServicePlacementPolicyDescription, bool) {
41857	return nil, false
41858}
41859
41860// AsBasicServicePlacementPolicyDescription is the BasicServicePlacementPolicyDescription implementation for ServicePlacementNonPartiallyPlaceServicePolicyDescription.
41861func (spnppspd ServicePlacementNonPartiallyPlaceServicePolicyDescription) AsBasicServicePlacementPolicyDescription() (BasicServicePlacementPolicyDescription, bool) {
41862	return &spnppspd, true
41863}
41864
41865// BasicServicePlacementPolicyDescription describes the policy to be used for placement of a Service Fabric service.
41866type BasicServicePlacementPolicyDescription interface {
41867	AsServicePlacementInvalidDomainPolicyDescription() (*ServicePlacementInvalidDomainPolicyDescription, bool)
41868	AsServicePlacementNonPartiallyPlaceServicePolicyDescription() (*ServicePlacementNonPartiallyPlaceServicePolicyDescription, bool)
41869	AsServicePlacementPreferPrimaryDomainPolicyDescription() (*ServicePlacementPreferPrimaryDomainPolicyDescription, bool)
41870	AsServicePlacementRequiredDomainPolicyDescription() (*ServicePlacementRequiredDomainPolicyDescription, bool)
41871	AsServicePlacementRequireDomainDistributionPolicyDescription() (*ServicePlacementRequireDomainDistributionPolicyDescription, bool)
41872	AsServicePlacementPolicyDescription() (*ServicePlacementPolicyDescription, bool)
41873}
41874
41875// ServicePlacementPolicyDescription describes the policy to be used for placement of a Service Fabric service.
41876type ServicePlacementPolicyDescription struct {
41877	// Type - Possible values include: 'TypeServicePlacementPolicyDescription', 'TypeInvalidDomain', 'TypeNonPartiallyPlaceService', 'TypePreferPrimaryDomain', 'TypeRequireDomain', 'TypeRequireDomainDistribution'
41878	Type Type `json:"Type,omitempty"`
41879}
41880
41881func unmarshalBasicServicePlacementPolicyDescription(body []byte) (BasicServicePlacementPolicyDescription, error) {
41882	var m map[string]interface{}
41883	err := json.Unmarshal(body, &m)
41884	if err != nil {
41885		return nil, err
41886	}
41887
41888	switch m["Type"] {
41889	case string(TypeInvalidDomain):
41890		var spidpd ServicePlacementInvalidDomainPolicyDescription
41891		err := json.Unmarshal(body, &spidpd)
41892		return spidpd, err
41893	case string(TypeNonPartiallyPlaceService):
41894		var spnppspd ServicePlacementNonPartiallyPlaceServicePolicyDescription
41895		err := json.Unmarshal(body, &spnppspd)
41896		return spnppspd, err
41897	case string(TypePreferPrimaryDomain):
41898		var spppdpd ServicePlacementPreferPrimaryDomainPolicyDescription
41899		err := json.Unmarshal(body, &spppdpd)
41900		return spppdpd, err
41901	case string(TypeRequireDomain):
41902		var sprdpd ServicePlacementRequiredDomainPolicyDescription
41903		err := json.Unmarshal(body, &sprdpd)
41904		return sprdpd, err
41905	case string(TypeRequireDomainDistribution):
41906		var sprddpd ServicePlacementRequireDomainDistributionPolicyDescription
41907		err := json.Unmarshal(body, &sprddpd)
41908		return sprddpd, err
41909	default:
41910		var sppd ServicePlacementPolicyDescription
41911		err := json.Unmarshal(body, &sppd)
41912		return sppd, err
41913	}
41914}
41915func unmarshalBasicServicePlacementPolicyDescriptionArray(body []byte) ([]BasicServicePlacementPolicyDescription, error) {
41916	var rawMessages []*json.RawMessage
41917	err := json.Unmarshal(body, &rawMessages)
41918	if err != nil {
41919		return nil, err
41920	}
41921
41922	sppdArray := make([]BasicServicePlacementPolicyDescription, len(rawMessages))
41923
41924	for index, rawMessage := range rawMessages {
41925		sppd, err := unmarshalBasicServicePlacementPolicyDescription(*rawMessage)
41926		if err != nil {
41927			return nil, err
41928		}
41929		sppdArray[index] = sppd
41930	}
41931	return sppdArray, nil
41932}
41933
41934// MarshalJSON is the custom marshaler for ServicePlacementPolicyDescription.
41935func (sppd ServicePlacementPolicyDescription) MarshalJSON() ([]byte, error) {
41936	sppd.Type = TypeServicePlacementPolicyDescription
41937	objectMap := make(map[string]interface{})
41938	if sppd.Type != "" {
41939		objectMap["Type"] = sppd.Type
41940	}
41941	return json.Marshal(objectMap)
41942}
41943
41944// AsServicePlacementInvalidDomainPolicyDescription is the BasicServicePlacementPolicyDescription implementation for ServicePlacementPolicyDescription.
41945func (sppd ServicePlacementPolicyDescription) AsServicePlacementInvalidDomainPolicyDescription() (*ServicePlacementInvalidDomainPolicyDescription, bool) {
41946	return nil, false
41947}
41948
41949// AsServicePlacementNonPartiallyPlaceServicePolicyDescription is the BasicServicePlacementPolicyDescription implementation for ServicePlacementPolicyDescription.
41950func (sppd ServicePlacementPolicyDescription) AsServicePlacementNonPartiallyPlaceServicePolicyDescription() (*ServicePlacementNonPartiallyPlaceServicePolicyDescription, bool) {
41951	return nil, false
41952}
41953
41954// AsServicePlacementPreferPrimaryDomainPolicyDescription is the BasicServicePlacementPolicyDescription implementation for ServicePlacementPolicyDescription.
41955func (sppd ServicePlacementPolicyDescription) AsServicePlacementPreferPrimaryDomainPolicyDescription() (*ServicePlacementPreferPrimaryDomainPolicyDescription, bool) {
41956	return nil, false
41957}
41958
41959// AsServicePlacementRequiredDomainPolicyDescription is the BasicServicePlacementPolicyDescription implementation for ServicePlacementPolicyDescription.
41960func (sppd ServicePlacementPolicyDescription) AsServicePlacementRequiredDomainPolicyDescription() (*ServicePlacementRequiredDomainPolicyDescription, bool) {
41961	return nil, false
41962}
41963
41964// AsServicePlacementRequireDomainDistributionPolicyDescription is the BasicServicePlacementPolicyDescription implementation for ServicePlacementPolicyDescription.
41965func (sppd ServicePlacementPolicyDescription) AsServicePlacementRequireDomainDistributionPolicyDescription() (*ServicePlacementRequireDomainDistributionPolicyDescription, bool) {
41966	return nil, false
41967}
41968
41969// AsServicePlacementPolicyDescription is the BasicServicePlacementPolicyDescription implementation for ServicePlacementPolicyDescription.
41970func (sppd ServicePlacementPolicyDescription) AsServicePlacementPolicyDescription() (*ServicePlacementPolicyDescription, bool) {
41971	return &sppd, true
41972}
41973
41974// AsBasicServicePlacementPolicyDescription is the BasicServicePlacementPolicyDescription implementation for ServicePlacementPolicyDescription.
41975func (sppd ServicePlacementPolicyDescription) AsBasicServicePlacementPolicyDescription() (BasicServicePlacementPolicyDescription, bool) {
41976	return &sppd, true
41977}
41978
41979// ServicePlacementPreferPrimaryDomainPolicyDescription describes the policy to be used for placement of a
41980// Service Fabric service where the service's Primary replicas should optimally be placed in a particular
41981// domain.
41982//
41983// This placement policy is usually used with fault domains in scenarios where the Service Fabric cluster
41984// is geographically distributed in order to indicate that a service's primary replica should be located in
41985// a particular fault domain, which in geo-distributed scenarios usually aligns with regional or datacenter
41986// boundaries. Note that since this is an optimization it is possible that the Primary replica may not end
41987// up located in this domain due to failures, capacity limits, or other constraints.
41988type ServicePlacementPreferPrimaryDomainPolicyDescription struct {
41989	// DomainName - The name of the domain that should used for placement as per this policy.
41990	DomainName *string `json:"DomainName,omitempty"`
41991	// Type - Possible values include: 'TypeServicePlacementPolicyDescription', 'TypeInvalidDomain', 'TypeNonPartiallyPlaceService', 'TypePreferPrimaryDomain', 'TypeRequireDomain', 'TypeRequireDomainDistribution'
41992	Type Type `json:"Type,omitempty"`
41993}
41994
41995// MarshalJSON is the custom marshaler for ServicePlacementPreferPrimaryDomainPolicyDescription.
41996func (spppdpd ServicePlacementPreferPrimaryDomainPolicyDescription) MarshalJSON() ([]byte, error) {
41997	spppdpd.Type = TypePreferPrimaryDomain
41998	objectMap := make(map[string]interface{})
41999	if spppdpd.DomainName != nil {
42000		objectMap["DomainName"] = spppdpd.DomainName
42001	}
42002	if spppdpd.Type != "" {
42003		objectMap["Type"] = spppdpd.Type
42004	}
42005	return json.Marshal(objectMap)
42006}
42007
42008// AsServicePlacementInvalidDomainPolicyDescription is the BasicServicePlacementPolicyDescription implementation for ServicePlacementPreferPrimaryDomainPolicyDescription.
42009func (spppdpd ServicePlacementPreferPrimaryDomainPolicyDescription) AsServicePlacementInvalidDomainPolicyDescription() (*ServicePlacementInvalidDomainPolicyDescription, bool) {
42010	return nil, false
42011}
42012
42013// AsServicePlacementNonPartiallyPlaceServicePolicyDescription is the BasicServicePlacementPolicyDescription implementation for ServicePlacementPreferPrimaryDomainPolicyDescription.
42014func (spppdpd ServicePlacementPreferPrimaryDomainPolicyDescription) AsServicePlacementNonPartiallyPlaceServicePolicyDescription() (*ServicePlacementNonPartiallyPlaceServicePolicyDescription, bool) {
42015	return nil, false
42016}
42017
42018// AsServicePlacementPreferPrimaryDomainPolicyDescription is the BasicServicePlacementPolicyDescription implementation for ServicePlacementPreferPrimaryDomainPolicyDescription.
42019func (spppdpd ServicePlacementPreferPrimaryDomainPolicyDescription) AsServicePlacementPreferPrimaryDomainPolicyDescription() (*ServicePlacementPreferPrimaryDomainPolicyDescription, bool) {
42020	return &spppdpd, true
42021}
42022
42023// AsServicePlacementRequiredDomainPolicyDescription is the BasicServicePlacementPolicyDescription implementation for ServicePlacementPreferPrimaryDomainPolicyDescription.
42024func (spppdpd ServicePlacementPreferPrimaryDomainPolicyDescription) AsServicePlacementRequiredDomainPolicyDescription() (*ServicePlacementRequiredDomainPolicyDescription, bool) {
42025	return nil, false
42026}
42027
42028// AsServicePlacementRequireDomainDistributionPolicyDescription is the BasicServicePlacementPolicyDescription implementation for ServicePlacementPreferPrimaryDomainPolicyDescription.
42029func (spppdpd ServicePlacementPreferPrimaryDomainPolicyDescription) AsServicePlacementRequireDomainDistributionPolicyDescription() (*ServicePlacementRequireDomainDistributionPolicyDescription, bool) {
42030	return nil, false
42031}
42032
42033// AsServicePlacementPolicyDescription is the BasicServicePlacementPolicyDescription implementation for ServicePlacementPreferPrimaryDomainPolicyDescription.
42034func (spppdpd ServicePlacementPreferPrimaryDomainPolicyDescription) AsServicePlacementPolicyDescription() (*ServicePlacementPolicyDescription, bool) {
42035	return nil, false
42036}
42037
42038// AsBasicServicePlacementPolicyDescription is the BasicServicePlacementPolicyDescription implementation for ServicePlacementPreferPrimaryDomainPolicyDescription.
42039func (spppdpd ServicePlacementPreferPrimaryDomainPolicyDescription) AsBasicServicePlacementPolicyDescription() (BasicServicePlacementPolicyDescription, bool) {
42040	return &spppdpd, true
42041}
42042
42043// ServicePlacementRequiredDomainPolicyDescription describes the policy to be used for placement of a
42044// Service Fabric service where the instances or replicas of that service must be placed in a particular
42045// domain
42046type ServicePlacementRequiredDomainPolicyDescription struct {
42047	// DomainName - The name of the domain that should used for placement as per this policy.
42048	DomainName *string `json:"DomainName,omitempty"`
42049	// Type - Possible values include: 'TypeServicePlacementPolicyDescription', 'TypeInvalidDomain', 'TypeNonPartiallyPlaceService', 'TypePreferPrimaryDomain', 'TypeRequireDomain', 'TypeRequireDomainDistribution'
42050	Type Type `json:"Type,omitempty"`
42051}
42052
42053// MarshalJSON is the custom marshaler for ServicePlacementRequiredDomainPolicyDescription.
42054func (sprdpd ServicePlacementRequiredDomainPolicyDescription) MarshalJSON() ([]byte, error) {
42055	sprdpd.Type = TypeRequireDomain
42056	objectMap := make(map[string]interface{})
42057	if sprdpd.DomainName != nil {
42058		objectMap["DomainName"] = sprdpd.DomainName
42059	}
42060	if sprdpd.Type != "" {
42061		objectMap["Type"] = sprdpd.Type
42062	}
42063	return json.Marshal(objectMap)
42064}
42065
42066// AsServicePlacementInvalidDomainPolicyDescription is the BasicServicePlacementPolicyDescription implementation for ServicePlacementRequiredDomainPolicyDescription.
42067func (sprdpd ServicePlacementRequiredDomainPolicyDescription) AsServicePlacementInvalidDomainPolicyDescription() (*ServicePlacementInvalidDomainPolicyDescription, bool) {
42068	return nil, false
42069}
42070
42071// AsServicePlacementNonPartiallyPlaceServicePolicyDescription is the BasicServicePlacementPolicyDescription implementation for ServicePlacementRequiredDomainPolicyDescription.
42072func (sprdpd ServicePlacementRequiredDomainPolicyDescription) AsServicePlacementNonPartiallyPlaceServicePolicyDescription() (*ServicePlacementNonPartiallyPlaceServicePolicyDescription, bool) {
42073	return nil, false
42074}
42075
42076// AsServicePlacementPreferPrimaryDomainPolicyDescription is the BasicServicePlacementPolicyDescription implementation for ServicePlacementRequiredDomainPolicyDescription.
42077func (sprdpd ServicePlacementRequiredDomainPolicyDescription) AsServicePlacementPreferPrimaryDomainPolicyDescription() (*ServicePlacementPreferPrimaryDomainPolicyDescription, bool) {
42078	return nil, false
42079}
42080
42081// AsServicePlacementRequiredDomainPolicyDescription is the BasicServicePlacementPolicyDescription implementation for ServicePlacementRequiredDomainPolicyDescription.
42082func (sprdpd ServicePlacementRequiredDomainPolicyDescription) AsServicePlacementRequiredDomainPolicyDescription() (*ServicePlacementRequiredDomainPolicyDescription, bool) {
42083	return &sprdpd, true
42084}
42085
42086// AsServicePlacementRequireDomainDistributionPolicyDescription is the BasicServicePlacementPolicyDescription implementation for ServicePlacementRequiredDomainPolicyDescription.
42087func (sprdpd ServicePlacementRequiredDomainPolicyDescription) AsServicePlacementRequireDomainDistributionPolicyDescription() (*ServicePlacementRequireDomainDistributionPolicyDescription, bool) {
42088	return nil, false
42089}
42090
42091// AsServicePlacementPolicyDescription is the BasicServicePlacementPolicyDescription implementation for ServicePlacementRequiredDomainPolicyDescription.
42092func (sprdpd ServicePlacementRequiredDomainPolicyDescription) AsServicePlacementPolicyDescription() (*ServicePlacementPolicyDescription, bool) {
42093	return nil, false
42094}
42095
42096// AsBasicServicePlacementPolicyDescription is the BasicServicePlacementPolicyDescription implementation for ServicePlacementRequiredDomainPolicyDescription.
42097func (sprdpd ServicePlacementRequiredDomainPolicyDescription) AsBasicServicePlacementPolicyDescription() (BasicServicePlacementPolicyDescription, bool) {
42098	return &sprdpd, true
42099}
42100
42101// ServicePlacementRequireDomainDistributionPolicyDescription describes the policy to be used for placement
42102// of a Service Fabric service where two replicas from the same partition should never be placed in the
42103// same fault or upgrade domain.
42104//
42105// While this is not common it can expose the service to an increased risk of concurrent failures due to
42106// unplanned outages or other cases of subsequent/concurrent failures. As an example, consider a case where
42107// replicas are deployed across different data center, with one replica per location. In the event that one
42108// of the datacenters goes offline, normally the replica that was placed in that datacenter will be packed
42109// into one of the remaining datacenters. If this is not desirable then this policy should be set.
42110type ServicePlacementRequireDomainDistributionPolicyDescription struct {
42111	// DomainName - The name of the domain that should used for placement as per this policy.
42112	DomainName *string `json:"DomainName,omitempty"`
42113	// Type - Possible values include: 'TypeServicePlacementPolicyDescription', 'TypeInvalidDomain', 'TypeNonPartiallyPlaceService', 'TypePreferPrimaryDomain', 'TypeRequireDomain', 'TypeRequireDomainDistribution'
42114	Type Type `json:"Type,omitempty"`
42115}
42116
42117// MarshalJSON is the custom marshaler for ServicePlacementRequireDomainDistributionPolicyDescription.
42118func (sprddpd ServicePlacementRequireDomainDistributionPolicyDescription) MarshalJSON() ([]byte, error) {
42119	sprddpd.Type = TypeRequireDomainDistribution
42120	objectMap := make(map[string]interface{})
42121	if sprddpd.DomainName != nil {
42122		objectMap["DomainName"] = sprddpd.DomainName
42123	}
42124	if sprddpd.Type != "" {
42125		objectMap["Type"] = sprddpd.Type
42126	}
42127	return json.Marshal(objectMap)
42128}
42129
42130// AsServicePlacementInvalidDomainPolicyDescription is the BasicServicePlacementPolicyDescription implementation for ServicePlacementRequireDomainDistributionPolicyDescription.
42131func (sprddpd ServicePlacementRequireDomainDistributionPolicyDescription) AsServicePlacementInvalidDomainPolicyDescription() (*ServicePlacementInvalidDomainPolicyDescription, bool) {
42132	return nil, false
42133}
42134
42135// AsServicePlacementNonPartiallyPlaceServicePolicyDescription is the BasicServicePlacementPolicyDescription implementation for ServicePlacementRequireDomainDistributionPolicyDescription.
42136func (sprddpd ServicePlacementRequireDomainDistributionPolicyDescription) AsServicePlacementNonPartiallyPlaceServicePolicyDescription() (*ServicePlacementNonPartiallyPlaceServicePolicyDescription, bool) {
42137	return nil, false
42138}
42139
42140// AsServicePlacementPreferPrimaryDomainPolicyDescription is the BasicServicePlacementPolicyDescription implementation for ServicePlacementRequireDomainDistributionPolicyDescription.
42141func (sprddpd ServicePlacementRequireDomainDistributionPolicyDescription) AsServicePlacementPreferPrimaryDomainPolicyDescription() (*ServicePlacementPreferPrimaryDomainPolicyDescription, bool) {
42142	return nil, false
42143}
42144
42145// AsServicePlacementRequiredDomainPolicyDescription is the BasicServicePlacementPolicyDescription implementation for ServicePlacementRequireDomainDistributionPolicyDescription.
42146func (sprddpd ServicePlacementRequireDomainDistributionPolicyDescription) AsServicePlacementRequiredDomainPolicyDescription() (*ServicePlacementRequiredDomainPolicyDescription, bool) {
42147	return nil, false
42148}
42149
42150// AsServicePlacementRequireDomainDistributionPolicyDescription is the BasicServicePlacementPolicyDescription implementation for ServicePlacementRequireDomainDistributionPolicyDescription.
42151func (sprddpd ServicePlacementRequireDomainDistributionPolicyDescription) AsServicePlacementRequireDomainDistributionPolicyDescription() (*ServicePlacementRequireDomainDistributionPolicyDescription, bool) {
42152	return &sprddpd, true
42153}
42154
42155// AsServicePlacementPolicyDescription is the BasicServicePlacementPolicyDescription implementation for ServicePlacementRequireDomainDistributionPolicyDescription.
42156func (sprddpd ServicePlacementRequireDomainDistributionPolicyDescription) AsServicePlacementPolicyDescription() (*ServicePlacementPolicyDescription, bool) {
42157	return nil, false
42158}
42159
42160// AsBasicServicePlacementPolicyDescription is the BasicServicePlacementPolicyDescription implementation for ServicePlacementRequireDomainDistributionPolicyDescription.
42161func (sprddpd ServicePlacementRequireDomainDistributionPolicyDescription) AsBasicServicePlacementPolicyDescription() (BasicServicePlacementPolicyDescription, bool) {
42162	return &sprddpd, true
42163}
42164
42165// ServiceProperties describes properties of a service resource.
42166type ServiceProperties struct {
42167	// Description - User readable description of the service.
42168	Description *string `json:"description,omitempty"`
42169	// ReplicaCount - The number of replicas of the service to create. Defaults to 1 if not specified.
42170	ReplicaCount *int32 `json:"replicaCount,omitempty"`
42171	// ExecutionPolicy - The execution policy of the service
42172	ExecutionPolicy BasicExecutionPolicy `json:"executionPolicy,omitempty"`
42173	// AutoScalingPolicies - Auto scaling policies
42174	AutoScalingPolicies *[]AutoScalingPolicy `json:"autoScalingPolicies,omitempty"`
42175	// Status - READ-ONLY; Status of the service. Possible values include: 'ResourceStatusUnknown', 'ResourceStatusReady', 'ResourceStatusUpgrading', 'ResourceStatusCreating', 'ResourceStatusDeleting', 'ResourceStatusFailed'
42176	Status ResourceStatus `json:"status,omitempty"`
42177	// StatusDetails - READ-ONLY; Gives additional information about the current status of the service.
42178	StatusDetails *string `json:"statusDetails,omitempty"`
42179	// HealthState - READ-ONLY; Describes the health state of an application resource. Possible values include: 'HealthStateInvalid', 'HealthStateOk', 'HealthStateWarning', 'HealthStateError', 'HealthStateUnknown'
42180	HealthState HealthState `json:"healthState,omitempty"`
42181	// UnhealthyEvaluation - READ-ONLY; 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.
42182	UnhealthyEvaluation *string `json:"unhealthyEvaluation,omitempty"`
42183	// IdentityRefs - The service identity list.
42184	IdentityRefs *[]ServiceIdentity `json:"identityRefs,omitempty"`
42185	// DNSName - Dns name of the service.
42186	DNSName *string `json:"dnsName,omitempty"`
42187}
42188
42189// MarshalJSON is the custom marshaler for ServiceProperties.
42190func (sp ServiceProperties) MarshalJSON() ([]byte, error) {
42191	objectMap := make(map[string]interface{})
42192	if sp.Description != nil {
42193		objectMap["description"] = sp.Description
42194	}
42195	if sp.ReplicaCount != nil {
42196		objectMap["replicaCount"] = sp.ReplicaCount
42197	}
42198	objectMap["executionPolicy"] = sp.ExecutionPolicy
42199	if sp.AutoScalingPolicies != nil {
42200		objectMap["autoScalingPolicies"] = sp.AutoScalingPolicies
42201	}
42202	if sp.IdentityRefs != nil {
42203		objectMap["identityRefs"] = sp.IdentityRefs
42204	}
42205	if sp.DNSName != nil {
42206		objectMap["dnsName"] = sp.DNSName
42207	}
42208	return json.Marshal(objectMap)
42209}
42210
42211// UnmarshalJSON is the custom unmarshaler for ServiceProperties struct.
42212func (sp *ServiceProperties) UnmarshalJSON(body []byte) error {
42213	var m map[string]*json.RawMessage
42214	err := json.Unmarshal(body, &m)
42215	if err != nil {
42216		return err
42217	}
42218	for k, v := range m {
42219		switch k {
42220		case "description":
42221			if v != nil {
42222				var description string
42223				err = json.Unmarshal(*v, &description)
42224				if err != nil {
42225					return err
42226				}
42227				sp.Description = &description
42228			}
42229		case "replicaCount":
42230			if v != nil {
42231				var replicaCount int32
42232				err = json.Unmarshal(*v, &replicaCount)
42233				if err != nil {
42234					return err
42235				}
42236				sp.ReplicaCount = &replicaCount
42237			}
42238		case "executionPolicy":
42239			if v != nil {
42240				executionPolicy, err := unmarshalBasicExecutionPolicy(*v)
42241				if err != nil {
42242					return err
42243				}
42244				sp.ExecutionPolicy = executionPolicy
42245			}
42246		case "autoScalingPolicies":
42247			if v != nil {
42248				var autoScalingPolicies []AutoScalingPolicy
42249				err = json.Unmarshal(*v, &autoScalingPolicies)
42250				if err != nil {
42251					return err
42252				}
42253				sp.AutoScalingPolicies = &autoScalingPolicies
42254			}
42255		case "status":
42256			if v != nil {
42257				var status ResourceStatus
42258				err = json.Unmarshal(*v, &status)
42259				if err != nil {
42260					return err
42261				}
42262				sp.Status = status
42263			}
42264		case "statusDetails":
42265			if v != nil {
42266				var statusDetails string
42267				err = json.Unmarshal(*v, &statusDetails)
42268				if err != nil {
42269					return err
42270				}
42271				sp.StatusDetails = &statusDetails
42272			}
42273		case "healthState":
42274			if v != nil {
42275				var healthState HealthState
42276				err = json.Unmarshal(*v, &healthState)
42277				if err != nil {
42278					return err
42279				}
42280				sp.HealthState = healthState
42281			}
42282		case "unhealthyEvaluation":
42283			if v != nil {
42284				var unhealthyEvaluation string
42285				err = json.Unmarshal(*v, &unhealthyEvaluation)
42286				if err != nil {
42287					return err
42288				}
42289				sp.UnhealthyEvaluation = &unhealthyEvaluation
42290			}
42291		case "identityRefs":
42292			if v != nil {
42293				var identityRefs []ServiceIdentity
42294				err = json.Unmarshal(*v, &identityRefs)
42295				if err != nil {
42296					return err
42297				}
42298				sp.IdentityRefs = &identityRefs
42299			}
42300		case "dnsName":
42301			if v != nil {
42302				var DNSName string
42303				err = json.Unmarshal(*v, &DNSName)
42304				if err != nil {
42305					return err
42306				}
42307				sp.DNSName = &DNSName
42308			}
42309		}
42310	}
42311
42312	return nil
42313}
42314
42315// ServiceReplicaDescription describes a replica of a service resource.
42316type ServiceReplicaDescription struct {
42317	autorest.Response `json:"-"`
42318	// ReplicaName - Name of the replica.
42319	ReplicaName *string `json:"replicaName,omitempty"`
42320	// OsType - The operation system required by the code in service. Possible values include: 'Linux', 'Windows'
42321	OsType OperatingSystemType `json:"osType,omitempty"`
42322	// 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.).
42323	CodePackages *[]ContainerCodePackageProperties `json:"codePackages,omitempty"`
42324	// NetworkRefs - The names of the private networks that this service needs to be part of.
42325	NetworkRefs *[]NetworkRef `json:"networkRefs,omitempty"`
42326	// Diagnostics - Reference to sinks in DiagnosticsDescription.
42327	Diagnostics *DiagnosticsRef `json:"diagnostics,omitempty"`
42328}
42329
42330// ServiceReplicaProperties describes the properties of a service replica.
42331type ServiceReplicaProperties struct {
42332	// OsType - The operation system required by the code in service. Possible values include: 'Linux', 'Windows'
42333	OsType OperatingSystemType `json:"osType,omitempty"`
42334	// 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.).
42335	CodePackages *[]ContainerCodePackageProperties `json:"codePackages,omitempty"`
42336	// NetworkRefs - The names of the private networks that this service needs to be part of.
42337	NetworkRefs *[]NetworkRef `json:"networkRefs,omitempty"`
42338	// Diagnostics - Reference to sinks in DiagnosticsDescription.
42339	Diagnostics *DiagnosticsRef `json:"diagnostics,omitempty"`
42340}
42341
42342// ServiceResourceDescription this type describes a service resource.
42343type ServiceResourceDescription struct {
42344	autorest.Response `json:"-"`
42345	// Name - Name of the Service resource.
42346	Name *string `json:"name,omitempty"`
42347	// ServiceResourceProperties - This type describes properties of a service resource.
42348	*ServiceResourceProperties `json:"properties,omitempty"`
42349}
42350
42351// MarshalJSON is the custom marshaler for ServiceResourceDescription.
42352func (srd ServiceResourceDescription) MarshalJSON() ([]byte, error) {
42353	objectMap := make(map[string]interface{})
42354	if srd.Name != nil {
42355		objectMap["name"] = srd.Name
42356	}
42357	if srd.ServiceResourceProperties != nil {
42358		objectMap["properties"] = srd.ServiceResourceProperties
42359	}
42360	return json.Marshal(objectMap)
42361}
42362
42363// UnmarshalJSON is the custom unmarshaler for ServiceResourceDescription struct.
42364func (srd *ServiceResourceDescription) UnmarshalJSON(body []byte) error {
42365	var m map[string]*json.RawMessage
42366	err := json.Unmarshal(body, &m)
42367	if err != nil {
42368		return err
42369	}
42370	for k, v := range m {
42371		switch k {
42372		case "name":
42373			if v != nil {
42374				var name string
42375				err = json.Unmarshal(*v, &name)
42376				if err != nil {
42377					return err
42378				}
42379				srd.Name = &name
42380			}
42381		case "properties":
42382			if v != nil {
42383				var serviceResourceProperties ServiceResourceProperties
42384				err = json.Unmarshal(*v, &serviceResourceProperties)
42385				if err != nil {
42386					return err
42387				}
42388				srd.ServiceResourceProperties = &serviceResourceProperties
42389			}
42390		}
42391	}
42392
42393	return nil
42394}
42395
42396// ServiceResourceProperties this type describes properties of a service resource.
42397type ServiceResourceProperties struct {
42398	// OsType - The operation system required by the code in service. Possible values include: 'Linux', 'Windows'
42399	OsType OperatingSystemType `json:"osType,omitempty"`
42400	// 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.).
42401	CodePackages *[]ContainerCodePackageProperties `json:"codePackages,omitempty"`
42402	// NetworkRefs - The names of the private networks that this service needs to be part of.
42403	NetworkRefs *[]NetworkRef `json:"networkRefs,omitempty"`
42404	// Diagnostics - Reference to sinks in DiagnosticsDescription.
42405	Diagnostics *DiagnosticsRef `json:"diagnostics,omitempty"`
42406	// Description - User readable description of the service.
42407	Description *string `json:"description,omitempty"`
42408	// ReplicaCount - The number of replicas of the service to create. Defaults to 1 if not specified.
42409	ReplicaCount *int32 `json:"replicaCount,omitempty"`
42410	// ExecutionPolicy - The execution policy of the service
42411	ExecutionPolicy BasicExecutionPolicy `json:"executionPolicy,omitempty"`
42412	// AutoScalingPolicies - Auto scaling policies
42413	AutoScalingPolicies *[]AutoScalingPolicy `json:"autoScalingPolicies,omitempty"`
42414	// Status - READ-ONLY; Status of the service. Possible values include: 'ResourceStatusUnknown', 'ResourceStatusReady', 'ResourceStatusUpgrading', 'ResourceStatusCreating', 'ResourceStatusDeleting', 'ResourceStatusFailed'
42415	Status ResourceStatus `json:"status,omitempty"`
42416	// StatusDetails - READ-ONLY; Gives additional information about the current status of the service.
42417	StatusDetails *string `json:"statusDetails,omitempty"`
42418	// HealthState - READ-ONLY; Describes the health state of an application resource. Possible values include: 'HealthStateInvalid', 'HealthStateOk', 'HealthStateWarning', 'HealthStateError', 'HealthStateUnknown'
42419	HealthState HealthState `json:"healthState,omitempty"`
42420	// UnhealthyEvaluation - READ-ONLY; 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.
42421	UnhealthyEvaluation *string `json:"unhealthyEvaluation,omitempty"`
42422	// IdentityRefs - The service identity list.
42423	IdentityRefs *[]ServiceIdentity `json:"identityRefs,omitempty"`
42424	// DNSName - Dns name of the service.
42425	DNSName *string `json:"dnsName,omitempty"`
42426}
42427
42428// MarshalJSON is the custom marshaler for ServiceResourceProperties.
42429func (srp ServiceResourceProperties) MarshalJSON() ([]byte, error) {
42430	objectMap := make(map[string]interface{})
42431	if srp.OsType != "" {
42432		objectMap["osType"] = srp.OsType
42433	}
42434	if srp.CodePackages != nil {
42435		objectMap["codePackages"] = srp.CodePackages
42436	}
42437	if srp.NetworkRefs != nil {
42438		objectMap["networkRefs"] = srp.NetworkRefs
42439	}
42440	if srp.Diagnostics != nil {
42441		objectMap["diagnostics"] = srp.Diagnostics
42442	}
42443	if srp.Description != nil {
42444		objectMap["description"] = srp.Description
42445	}
42446	if srp.ReplicaCount != nil {
42447		objectMap["replicaCount"] = srp.ReplicaCount
42448	}
42449	objectMap["executionPolicy"] = srp.ExecutionPolicy
42450	if srp.AutoScalingPolicies != nil {
42451		objectMap["autoScalingPolicies"] = srp.AutoScalingPolicies
42452	}
42453	if srp.IdentityRefs != nil {
42454		objectMap["identityRefs"] = srp.IdentityRefs
42455	}
42456	if srp.DNSName != nil {
42457		objectMap["dnsName"] = srp.DNSName
42458	}
42459	return json.Marshal(objectMap)
42460}
42461
42462// UnmarshalJSON is the custom unmarshaler for ServiceResourceProperties struct.
42463func (srp *ServiceResourceProperties) UnmarshalJSON(body []byte) error {
42464	var m map[string]*json.RawMessage
42465	err := json.Unmarshal(body, &m)
42466	if err != nil {
42467		return err
42468	}
42469	for k, v := range m {
42470		switch k {
42471		case "osType":
42472			if v != nil {
42473				var osType OperatingSystemType
42474				err = json.Unmarshal(*v, &osType)
42475				if err != nil {
42476					return err
42477				}
42478				srp.OsType = osType
42479			}
42480		case "codePackages":
42481			if v != nil {
42482				var codePackages []ContainerCodePackageProperties
42483				err = json.Unmarshal(*v, &codePackages)
42484				if err != nil {
42485					return err
42486				}
42487				srp.CodePackages = &codePackages
42488			}
42489		case "networkRefs":
42490			if v != nil {
42491				var networkRefs []NetworkRef
42492				err = json.Unmarshal(*v, &networkRefs)
42493				if err != nil {
42494					return err
42495				}
42496				srp.NetworkRefs = &networkRefs
42497			}
42498		case "diagnostics":
42499			if v != nil {
42500				var diagnostics DiagnosticsRef
42501				err = json.Unmarshal(*v, &diagnostics)
42502				if err != nil {
42503					return err
42504				}
42505				srp.Diagnostics = &diagnostics
42506			}
42507		case "description":
42508			if v != nil {
42509				var description string
42510				err = json.Unmarshal(*v, &description)
42511				if err != nil {
42512					return err
42513				}
42514				srp.Description = &description
42515			}
42516		case "replicaCount":
42517			if v != nil {
42518				var replicaCount int32
42519				err = json.Unmarshal(*v, &replicaCount)
42520				if err != nil {
42521					return err
42522				}
42523				srp.ReplicaCount = &replicaCount
42524			}
42525		case "executionPolicy":
42526			if v != nil {
42527				executionPolicy, err := unmarshalBasicExecutionPolicy(*v)
42528				if err != nil {
42529					return err
42530				}
42531				srp.ExecutionPolicy = executionPolicy
42532			}
42533		case "autoScalingPolicies":
42534			if v != nil {
42535				var autoScalingPolicies []AutoScalingPolicy
42536				err = json.Unmarshal(*v, &autoScalingPolicies)
42537				if err != nil {
42538					return err
42539				}
42540				srp.AutoScalingPolicies = &autoScalingPolicies
42541			}
42542		case "status":
42543			if v != nil {
42544				var status ResourceStatus
42545				err = json.Unmarshal(*v, &status)
42546				if err != nil {
42547					return err
42548				}
42549				srp.Status = status
42550			}
42551		case "statusDetails":
42552			if v != nil {
42553				var statusDetails string
42554				err = json.Unmarshal(*v, &statusDetails)
42555				if err != nil {
42556					return err
42557				}
42558				srp.StatusDetails = &statusDetails
42559			}
42560		case "healthState":
42561			if v != nil {
42562				var healthState HealthState
42563				err = json.Unmarshal(*v, &healthState)
42564				if err != nil {
42565					return err
42566				}
42567				srp.HealthState = healthState
42568			}
42569		case "unhealthyEvaluation":
42570			if v != nil {
42571				var unhealthyEvaluation string
42572				err = json.Unmarshal(*v, &unhealthyEvaluation)
42573				if err != nil {
42574					return err
42575				}
42576				srp.UnhealthyEvaluation = &unhealthyEvaluation
42577			}
42578		case "identityRefs":
42579			if v != nil {
42580				var identityRefs []ServiceIdentity
42581				err = json.Unmarshal(*v, &identityRefs)
42582				if err != nil {
42583					return err
42584				}
42585				srp.IdentityRefs = &identityRefs
42586			}
42587		case "dnsName":
42588			if v != nil {
42589				var DNSName string
42590				err = json.Unmarshal(*v, &DNSName)
42591				if err != nil {
42592					return err
42593				}
42594				srp.DNSName = &DNSName
42595			}
42596		}
42597	}
42598
42599	return nil
42600}
42601
42602// ServicesHealthEvaluation represents health evaluation for services of a certain service type belonging
42603// to an application, containing health evaluations for each unhealthy service that impacted current
42604// aggregated health state. Can be returned when evaluating application health and the aggregated health
42605// state is either Error or Warning.
42606type ServicesHealthEvaluation struct {
42607	// ServiceTypeName - Name of the service type of the services.
42608	ServiceTypeName *string `json:"ServiceTypeName,omitempty"`
42609	// MaxPercentUnhealthyServices - Maximum allowed percentage of unhealthy services from the ServiceTypeHealthPolicy.
42610	MaxPercentUnhealthyServices *int32 `json:"MaxPercentUnhealthyServices,omitempty"`
42611	// TotalCount - Total number of services of the current service type in the application from the health store.
42612	TotalCount *int64 `json:"TotalCount,omitempty"`
42613	// UnhealthyEvaluations - List of unhealthy evaluations that led to the aggregated health state. Includes all the unhealthy ServiceHealthEvaluation that impacted the aggregated health.
42614	UnhealthyEvaluations *[]HealthEvaluationWrapper `json:"UnhealthyEvaluations,omitempty"`
42615	// 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'
42616	AggregatedHealthState HealthState `json:"AggregatedHealthState,omitempty"`
42617	// Description - Description of the health evaluation, which represents a summary of the evaluation process.
42618	Description *string `json:"Description,omitempty"`
42619	// 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'
42620	Kind Kind `json:"Kind,omitempty"`
42621}
42622
42623// MarshalJSON is the custom marshaler for ServicesHealthEvaluation.
42624func (she ServicesHealthEvaluation) MarshalJSON() ([]byte, error) {
42625	she.Kind = KindServices
42626	objectMap := make(map[string]interface{})
42627	if she.ServiceTypeName != nil {
42628		objectMap["ServiceTypeName"] = she.ServiceTypeName
42629	}
42630	if she.MaxPercentUnhealthyServices != nil {
42631		objectMap["MaxPercentUnhealthyServices"] = she.MaxPercentUnhealthyServices
42632	}
42633	if she.TotalCount != nil {
42634		objectMap["TotalCount"] = she.TotalCount
42635	}
42636	if she.UnhealthyEvaluations != nil {
42637		objectMap["UnhealthyEvaluations"] = she.UnhealthyEvaluations
42638	}
42639	if she.AggregatedHealthState != "" {
42640		objectMap["AggregatedHealthState"] = she.AggregatedHealthState
42641	}
42642	if she.Description != nil {
42643		objectMap["Description"] = she.Description
42644	}
42645	if she.Kind != "" {
42646		objectMap["Kind"] = she.Kind
42647	}
42648	return json.Marshal(objectMap)
42649}
42650
42651// AsApplicationHealthEvaluation is the BasicHealthEvaluation implementation for ServicesHealthEvaluation.
42652func (she ServicesHealthEvaluation) AsApplicationHealthEvaluation() (*ApplicationHealthEvaluation, bool) {
42653	return nil, false
42654}
42655
42656// AsApplicationsHealthEvaluation is the BasicHealthEvaluation implementation for ServicesHealthEvaluation.
42657func (she ServicesHealthEvaluation) AsApplicationsHealthEvaluation() (*ApplicationsHealthEvaluation, bool) {
42658	return nil, false
42659}
42660
42661// AsApplicationTypeApplicationsHealthEvaluation is the BasicHealthEvaluation implementation for ServicesHealthEvaluation.
42662func (she ServicesHealthEvaluation) AsApplicationTypeApplicationsHealthEvaluation() (*ApplicationTypeApplicationsHealthEvaluation, bool) {
42663	return nil, false
42664}
42665
42666// AsDeltaNodesCheckHealthEvaluation is the BasicHealthEvaluation implementation for ServicesHealthEvaluation.
42667func (she ServicesHealthEvaluation) AsDeltaNodesCheckHealthEvaluation() (*DeltaNodesCheckHealthEvaluation, bool) {
42668	return nil, false
42669}
42670
42671// AsDeployedApplicationHealthEvaluation is the BasicHealthEvaluation implementation for ServicesHealthEvaluation.
42672func (she ServicesHealthEvaluation) AsDeployedApplicationHealthEvaluation() (*DeployedApplicationHealthEvaluation, bool) {
42673	return nil, false
42674}
42675
42676// AsDeployedApplicationsHealthEvaluation is the BasicHealthEvaluation implementation for ServicesHealthEvaluation.
42677func (she ServicesHealthEvaluation) AsDeployedApplicationsHealthEvaluation() (*DeployedApplicationsHealthEvaluation, bool) {
42678	return nil, false
42679}
42680
42681// AsDeployedServicePackageHealthEvaluation is the BasicHealthEvaluation implementation for ServicesHealthEvaluation.
42682func (she ServicesHealthEvaluation) AsDeployedServicePackageHealthEvaluation() (*DeployedServicePackageHealthEvaluation, bool) {
42683	return nil, false
42684}
42685
42686// AsDeployedServicePackagesHealthEvaluation is the BasicHealthEvaluation implementation for ServicesHealthEvaluation.
42687func (she ServicesHealthEvaluation) AsDeployedServicePackagesHealthEvaluation() (*DeployedServicePackagesHealthEvaluation, bool) {
42688	return nil, false
42689}
42690
42691// AsEventHealthEvaluation is the BasicHealthEvaluation implementation for ServicesHealthEvaluation.
42692func (she ServicesHealthEvaluation) AsEventHealthEvaluation() (*EventHealthEvaluation, bool) {
42693	return nil, false
42694}
42695
42696// AsNodeHealthEvaluation is the BasicHealthEvaluation implementation for ServicesHealthEvaluation.
42697func (she ServicesHealthEvaluation) AsNodeHealthEvaluation() (*NodeHealthEvaluation, bool) {
42698	return nil, false
42699}
42700
42701// AsNodesHealthEvaluation is the BasicHealthEvaluation implementation for ServicesHealthEvaluation.
42702func (she ServicesHealthEvaluation) AsNodesHealthEvaluation() (*NodesHealthEvaluation, bool) {
42703	return nil, false
42704}
42705
42706// AsPartitionHealthEvaluation is the BasicHealthEvaluation implementation for ServicesHealthEvaluation.
42707func (she ServicesHealthEvaluation) AsPartitionHealthEvaluation() (*PartitionHealthEvaluation, bool) {
42708	return nil, false
42709}
42710
42711// AsPartitionsHealthEvaluation is the BasicHealthEvaluation implementation for ServicesHealthEvaluation.
42712func (she ServicesHealthEvaluation) AsPartitionsHealthEvaluation() (*PartitionsHealthEvaluation, bool) {
42713	return nil, false
42714}
42715
42716// AsReplicaHealthEvaluation is the BasicHealthEvaluation implementation for ServicesHealthEvaluation.
42717func (she ServicesHealthEvaluation) AsReplicaHealthEvaluation() (*ReplicaHealthEvaluation, bool) {
42718	return nil, false
42719}
42720
42721// AsReplicasHealthEvaluation is the BasicHealthEvaluation implementation for ServicesHealthEvaluation.
42722func (she ServicesHealthEvaluation) AsReplicasHealthEvaluation() (*ReplicasHealthEvaluation, bool) {
42723	return nil, false
42724}
42725
42726// AsServiceHealthEvaluation is the BasicHealthEvaluation implementation for ServicesHealthEvaluation.
42727func (she ServicesHealthEvaluation) AsServiceHealthEvaluation() (*ServiceHealthEvaluation, bool) {
42728	return nil, false
42729}
42730
42731// AsServicesHealthEvaluation is the BasicHealthEvaluation implementation for ServicesHealthEvaluation.
42732func (she ServicesHealthEvaluation) AsServicesHealthEvaluation() (*ServicesHealthEvaluation, bool) {
42733	return &she, true
42734}
42735
42736// AsSystemApplicationHealthEvaluation is the BasicHealthEvaluation implementation for ServicesHealthEvaluation.
42737func (she ServicesHealthEvaluation) AsSystemApplicationHealthEvaluation() (*SystemApplicationHealthEvaluation, bool) {
42738	return nil, false
42739}
42740
42741// AsUpgradeDomainDeltaNodesCheckHealthEvaluation is the BasicHealthEvaluation implementation for ServicesHealthEvaluation.
42742func (she ServicesHealthEvaluation) AsUpgradeDomainDeltaNodesCheckHealthEvaluation() (*UpgradeDomainDeltaNodesCheckHealthEvaluation, bool) {
42743	return nil, false
42744}
42745
42746// AsUpgradeDomainNodesHealthEvaluation is the BasicHealthEvaluation implementation for ServicesHealthEvaluation.
42747func (she ServicesHealthEvaluation) AsUpgradeDomainNodesHealthEvaluation() (*UpgradeDomainNodesHealthEvaluation, bool) {
42748	return nil, false
42749}
42750
42751// AsHealthEvaluation is the BasicHealthEvaluation implementation for ServicesHealthEvaluation.
42752func (she ServicesHealthEvaluation) AsHealthEvaluation() (*HealthEvaluation, bool) {
42753	return nil, false
42754}
42755
42756// AsBasicHealthEvaluation is the BasicHealthEvaluation implementation for ServicesHealthEvaluation.
42757func (she ServicesHealthEvaluation) AsBasicHealthEvaluation() (BasicHealthEvaluation, bool) {
42758	return &she, true
42759}
42760
42761// BasicServiceTypeDescription describes a service type defined in the service manifest of a provisioned application
42762// type. The properties the ones defined in the service manifest.
42763type BasicServiceTypeDescription interface {
42764	AsStatefulServiceTypeDescription() (*StatefulServiceTypeDescription, bool)
42765	AsStatelessServiceTypeDescription() (*StatelessServiceTypeDescription, bool)
42766	AsServiceTypeDescription() (*ServiceTypeDescription, bool)
42767}
42768
42769// ServiceTypeDescription describes a service type defined in the service manifest of a provisioned application
42770// type. The properties the ones defined in the service manifest.
42771type ServiceTypeDescription struct {
42772	// 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.
42773	IsStateful *bool `json:"IsStateful,omitempty"`
42774	// ServiceTypeName - Name of the service type as specified in the service manifest.
42775	ServiceTypeName *string `json:"ServiceTypeName,omitempty"`
42776	// PlacementConstraints - The placement constraint to be used when instantiating this service in a Service Fabric cluster.
42777	PlacementConstraints *string `json:"PlacementConstraints,omitempty"`
42778	// LoadMetrics - The service load metrics is given as an array of ServiceLoadMetricDescription objects.
42779	LoadMetrics *[]ServiceLoadMetricDescription `json:"LoadMetrics,omitempty"`
42780	// ServicePlacementPolicies - List of service placement policy descriptions.
42781	ServicePlacementPolicies *[]BasicServicePlacementPolicyDescription `json:"ServicePlacementPolicies,omitempty"`
42782	// Extensions - List of service type extensions.
42783	Extensions *[]ServiceTypeExtensionDescription `json:"Extensions,omitempty"`
42784	// Kind - Possible values include: 'KindServiceTypeDescription', 'KindStateful', 'KindStateless'
42785	Kind KindBasicServiceTypeDescription `json:"Kind,omitempty"`
42786}
42787
42788func unmarshalBasicServiceTypeDescription(body []byte) (BasicServiceTypeDescription, error) {
42789	var m map[string]interface{}
42790	err := json.Unmarshal(body, &m)
42791	if err != nil {
42792		return nil, err
42793	}
42794
42795	switch m["Kind"] {
42796	case string(KindStateful):
42797		var sstd StatefulServiceTypeDescription
42798		err := json.Unmarshal(body, &sstd)
42799		return sstd, err
42800	case string(KindStateless):
42801		var sstd StatelessServiceTypeDescription
42802		err := json.Unmarshal(body, &sstd)
42803		return sstd, err
42804	default:
42805		var std ServiceTypeDescription
42806		err := json.Unmarshal(body, &std)
42807		return std, err
42808	}
42809}
42810func unmarshalBasicServiceTypeDescriptionArray(body []byte) ([]BasicServiceTypeDescription, error) {
42811	var rawMessages []*json.RawMessage
42812	err := json.Unmarshal(body, &rawMessages)
42813	if err != nil {
42814		return nil, err
42815	}
42816
42817	stdArray := make([]BasicServiceTypeDescription, len(rawMessages))
42818
42819	for index, rawMessage := range rawMessages {
42820		std, err := unmarshalBasicServiceTypeDescription(*rawMessage)
42821		if err != nil {
42822			return nil, err
42823		}
42824		stdArray[index] = std
42825	}
42826	return stdArray, nil
42827}
42828
42829// MarshalJSON is the custom marshaler for ServiceTypeDescription.
42830func (std ServiceTypeDescription) MarshalJSON() ([]byte, error) {
42831	std.Kind = KindServiceTypeDescription
42832	objectMap := make(map[string]interface{})
42833	if std.IsStateful != nil {
42834		objectMap["IsStateful"] = std.IsStateful
42835	}
42836	if std.ServiceTypeName != nil {
42837		objectMap["ServiceTypeName"] = std.ServiceTypeName
42838	}
42839	if std.PlacementConstraints != nil {
42840		objectMap["PlacementConstraints"] = std.PlacementConstraints
42841	}
42842	if std.LoadMetrics != nil {
42843		objectMap["LoadMetrics"] = std.LoadMetrics
42844	}
42845	if std.ServicePlacementPolicies != nil {
42846		objectMap["ServicePlacementPolicies"] = std.ServicePlacementPolicies
42847	}
42848	if std.Extensions != nil {
42849		objectMap["Extensions"] = std.Extensions
42850	}
42851	if std.Kind != "" {
42852		objectMap["Kind"] = std.Kind
42853	}
42854	return json.Marshal(objectMap)
42855}
42856
42857// AsStatefulServiceTypeDescription is the BasicServiceTypeDescription implementation for ServiceTypeDescription.
42858func (std ServiceTypeDescription) AsStatefulServiceTypeDescription() (*StatefulServiceTypeDescription, bool) {
42859	return nil, false
42860}
42861
42862// AsStatelessServiceTypeDescription is the BasicServiceTypeDescription implementation for ServiceTypeDescription.
42863func (std ServiceTypeDescription) AsStatelessServiceTypeDescription() (*StatelessServiceTypeDescription, bool) {
42864	return nil, false
42865}
42866
42867// AsServiceTypeDescription is the BasicServiceTypeDescription implementation for ServiceTypeDescription.
42868func (std ServiceTypeDescription) AsServiceTypeDescription() (*ServiceTypeDescription, bool) {
42869	return &std, true
42870}
42871
42872// AsBasicServiceTypeDescription is the BasicServiceTypeDescription implementation for ServiceTypeDescription.
42873func (std ServiceTypeDescription) AsBasicServiceTypeDescription() (BasicServiceTypeDescription, bool) {
42874	return &std, true
42875}
42876
42877// UnmarshalJSON is the custom unmarshaler for ServiceTypeDescription struct.
42878func (std *ServiceTypeDescription) UnmarshalJSON(body []byte) error {
42879	var m map[string]*json.RawMessage
42880	err := json.Unmarshal(body, &m)
42881	if err != nil {
42882		return err
42883	}
42884	for k, v := range m {
42885		switch k {
42886		case "IsStateful":
42887			if v != nil {
42888				var isStateful bool
42889				err = json.Unmarshal(*v, &isStateful)
42890				if err != nil {
42891					return err
42892				}
42893				std.IsStateful = &isStateful
42894			}
42895		case "ServiceTypeName":
42896			if v != nil {
42897				var serviceTypeName string
42898				err = json.Unmarshal(*v, &serviceTypeName)
42899				if err != nil {
42900					return err
42901				}
42902				std.ServiceTypeName = &serviceTypeName
42903			}
42904		case "PlacementConstraints":
42905			if v != nil {
42906				var placementConstraints string
42907				err = json.Unmarshal(*v, &placementConstraints)
42908				if err != nil {
42909					return err
42910				}
42911				std.PlacementConstraints = &placementConstraints
42912			}
42913		case "LoadMetrics":
42914			if v != nil {
42915				var loadMetrics []ServiceLoadMetricDescription
42916				err = json.Unmarshal(*v, &loadMetrics)
42917				if err != nil {
42918					return err
42919				}
42920				std.LoadMetrics = &loadMetrics
42921			}
42922		case "ServicePlacementPolicies":
42923			if v != nil {
42924				servicePlacementPolicies, err := unmarshalBasicServicePlacementPolicyDescriptionArray(*v)
42925				if err != nil {
42926					return err
42927				}
42928				std.ServicePlacementPolicies = &servicePlacementPolicies
42929			}
42930		case "Extensions":
42931			if v != nil {
42932				var extensions []ServiceTypeExtensionDescription
42933				err = json.Unmarshal(*v, &extensions)
42934				if err != nil {
42935					return err
42936				}
42937				std.Extensions = &extensions
42938			}
42939		case "Kind":
42940			if v != nil {
42941				var kind KindBasicServiceTypeDescription
42942				err = json.Unmarshal(*v, &kind)
42943				if err != nil {
42944					return err
42945				}
42946				std.Kind = kind
42947			}
42948		}
42949	}
42950
42951	return nil
42952}
42953
42954// ServiceTypeExtensionDescription describes extension of a service type defined in the service manifest.
42955type ServiceTypeExtensionDescription struct {
42956	// Key - The name of the extension.
42957	Key *string `json:"Key,omitempty"`
42958	// Value - The extension value.
42959	Value *string `json:"Value,omitempty"`
42960}
42961
42962// ServiceTypeHealthPolicy represents the health policy used to evaluate the health of services belonging
42963// to a service type.
42964type ServiceTypeHealthPolicy struct {
42965	// MaxPercentUnhealthyPartitionsPerService - The maximum allowed percentage of unhealthy partitions per service. Allowed values are Byte values from zero to 100
42966	// The percentage represents the maximum tolerated percentage of partitions that can be unhealthy before the service is considered in error.
42967	// If the percentage is respected but there is at least one unhealthy partition, the health is evaluated as Warning.
42968	// The percentage is calculated by dividing the number of unhealthy partitions over the total number of partitions in the service.
42969	// The computation rounds up to tolerate one failure on small numbers of partitions. Default percentage is zero.
42970	MaxPercentUnhealthyPartitionsPerService *int32 `json:"MaxPercentUnhealthyPartitionsPerService,omitempty"`
42971	// MaxPercentUnhealthyReplicasPerPartition - The maximum allowed percentage of unhealthy replicas per partition. Allowed values are Byte values from zero to 100.
42972	// The percentage represents the maximum tolerated percentage of replicas that can be unhealthy before the partition is considered in error.
42973	// If the percentage is respected but there is at least one unhealthy replica, the health is evaluated as Warning.
42974	// The percentage is calculated by dividing the number of unhealthy replicas over the total number of replicas in the partition.
42975	// The computation rounds up to tolerate one failure on small numbers of replicas. Default percentage is zero.
42976	MaxPercentUnhealthyReplicasPerPartition *int32 `json:"MaxPercentUnhealthyReplicasPerPartition,omitempty"`
42977	// MaxPercentUnhealthyServices - The maximum allowed percentage of unhealthy services. Allowed values are Byte values from zero to 100.
42978	// The percentage represents the maximum tolerated percentage of services that can be unhealthy before the application is considered in error.
42979	// If the percentage is respected but there is at least one unhealthy service, the health is evaluated as Warning.
42980	// 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.
42981	// The computation rounds up to tolerate one failure on small numbers of services. Default percentage is zero.
42982	MaxPercentUnhealthyServices *int32 `json:"MaxPercentUnhealthyServices,omitempty"`
42983}
42984
42985// ServiceTypeHealthPolicyMapItem defines an item in ServiceTypeHealthPolicyMap.
42986type ServiceTypeHealthPolicyMapItem struct {
42987	// Key - The key of the service type health policy map item. This is the name of the service type.
42988	Key *string `json:"Key,omitempty"`
42989	// Value - The value of the service type health policy map item. This is the ServiceTypeHealthPolicy for this service type.
42990	Value *ServiceTypeHealthPolicy `json:"Value,omitempty"`
42991}
42992
42993// ServiceTypeInfo information about a service type that is defined in a service manifest of a provisioned
42994// application type.
42995type ServiceTypeInfo struct {
42996	autorest.Response `json:"-"`
42997	// ServiceTypeDescription - Describes a service type defined in the service manifest of a provisioned application type. The properties the ones defined in the service manifest.
42998	ServiceTypeDescription BasicServiceTypeDescription `json:"ServiceTypeDescription,omitempty"`
42999	// ServiceManifestName - The name of the service manifest in which this service type is defined.
43000	ServiceManifestName *string `json:"ServiceManifestName,omitempty"`
43001	// ServiceManifestVersion - The version of the service manifest in which this service type is defined.
43002	ServiceManifestVersion *string `json:"ServiceManifestVersion,omitempty"`
43003	// IsServiceGroup - Indicates whether the service is a service group. If it is, the property value is true otherwise false.
43004	IsServiceGroup *bool `json:"IsServiceGroup,omitempty"`
43005}
43006
43007// UnmarshalJSON is the custom unmarshaler for ServiceTypeInfo struct.
43008func (sti *ServiceTypeInfo) UnmarshalJSON(body []byte) error {
43009	var m map[string]*json.RawMessage
43010	err := json.Unmarshal(body, &m)
43011	if err != nil {
43012		return err
43013	}
43014	for k, v := range m {
43015		switch k {
43016		case "ServiceTypeDescription":
43017			if v != nil {
43018				serviceTypeDescription, err := unmarshalBasicServiceTypeDescription(*v)
43019				if err != nil {
43020					return err
43021				}
43022				sti.ServiceTypeDescription = serviceTypeDescription
43023			}
43024		case "ServiceManifestName":
43025			if v != nil {
43026				var serviceManifestName string
43027				err = json.Unmarshal(*v, &serviceManifestName)
43028				if err != nil {
43029					return err
43030				}
43031				sti.ServiceManifestName = &serviceManifestName
43032			}
43033		case "ServiceManifestVersion":
43034			if v != nil {
43035				var serviceManifestVersion string
43036				err = json.Unmarshal(*v, &serviceManifestVersion)
43037				if err != nil {
43038					return err
43039				}
43040				sti.ServiceManifestVersion = &serviceManifestVersion
43041			}
43042		case "IsServiceGroup":
43043			if v != nil {
43044				var isServiceGroup bool
43045				err = json.Unmarshal(*v, &isServiceGroup)
43046				if err != nil {
43047					return err
43048				}
43049				sti.IsServiceGroup = &isServiceGroup
43050			}
43051		}
43052	}
43053
43054	return nil
43055}
43056
43057// ServiceTypeManifest contains the manifest describing a service type registered as part of an application
43058// in a Service Fabric cluster.
43059type ServiceTypeManifest struct {
43060	autorest.Response `json:"-"`
43061	// Manifest - The XML manifest as a string.
43062	Manifest *string `json:"Manifest,omitempty"`
43063}
43064
43065// BasicServiceUpdateDescription a ServiceUpdateDescription contains all of the information necessary to update a
43066// service.
43067type BasicServiceUpdateDescription interface {
43068	AsStatefulServiceUpdateDescription() (*StatefulServiceUpdateDescription, bool)
43069	AsStatelessServiceUpdateDescription() (*StatelessServiceUpdateDescription, bool)
43070	AsServiceUpdateDescription() (*ServiceUpdateDescription, bool)
43071}
43072
43073// ServiceUpdateDescription a ServiceUpdateDescription contains all of the information necessary to update a
43074// service.
43075type ServiceUpdateDescription struct {
43076	// 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.
43077	// This property can be a combination of those flags obtained using bitwise 'OR' operator.
43078	// For example, if the provided value is 6 then the flags for ReplicaRestartWaitDuration (2) and QuorumLossWaitDuration (4) are set.
43079	// - None - Does not indicate any other properties are set. The value is zero.
43080	// - TargetReplicaSetSize/InstanceCount - Indicates whether the TargetReplicaSetSize property (for Stateful services) or the InstanceCount property (for Stateless services) is set. The value is 1.
43081	// - ReplicaRestartWaitDuration - Indicates the ReplicaRestartWaitDuration property is set. The value is  2.
43082	// - QuorumLossWaitDuration - Indicates the QuorumLossWaitDuration property is set. The value is 4.
43083	// - StandByReplicaKeepDuration - Indicates the StandByReplicaKeepDuration property is set. The value is 8.
43084	// - MinReplicaSetSize - Indicates the MinReplicaSetSize property is set. The value is 16.
43085	// - PlacementConstraints - Indicates the PlacementConstraints property is set. The value is 32.
43086	// - PlacementPolicyList - Indicates the ServicePlacementPolicies property is set. The value is 64.
43087	// - Correlation - Indicates the CorrelationScheme property is set. The value is 128.
43088	// - Metrics - Indicates the ServiceLoadMetrics property is set. The value is 256.
43089	// - DefaultMoveCost - Indicates the DefaultMoveCost property is set. The value is 512.
43090	// - ScalingPolicy - Indicates the ScalingPolicies property is set. The value is 1024.
43091	// - ServicePlacementTimeLimit - Indicates the ServicePlacementTimeLimit property is set. The value is 2048.
43092	// - MinInstanceCount - Indicates the MinInstanceCount property is set. The value is 4096.
43093	// - MinInstancePercentage - Indicates the MinInstancePercentage property is set. The value is 8192.
43094	// - InstanceCloseDelayDuration - Indicates the InstanceCloseDelayDuration property is set. The value is 16384.
43095	// - DropSourceReplicaOnMove - Indicates the DropSourceReplicaOnMove property is set. The value is 32768.
43096	Flags *string `json:"Flags,omitempty"`
43097	// 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)".
43098	PlacementConstraints *string `json:"PlacementConstraints,omitempty"`
43099	// CorrelationScheme - The correlation scheme.
43100	CorrelationScheme *[]ServiceCorrelationDescription `json:"CorrelationScheme,omitempty"`
43101	// LoadMetrics - The service load metrics.
43102	LoadMetrics *[]ServiceLoadMetricDescription `json:"LoadMetrics,omitempty"`
43103	// ServicePlacementPolicies - The service placement policies.
43104	ServicePlacementPolicies *[]BasicServicePlacementPolicyDescription `json:"ServicePlacementPolicies,omitempty"`
43105	// DefaultMoveCost - The move cost for the service. Possible values include: 'Zero', 'Low', 'Medium', 'High', 'VeryHigh'
43106	DefaultMoveCost MoveCost `json:"DefaultMoveCost,omitempty"`
43107	// ScalingPolicies - Scaling policies for this service.
43108	ScalingPolicies *[]ScalingPolicyDescription `json:"ScalingPolicies,omitempty"`
43109	// ServiceKind - Possible values include: 'ServiceKindBasicServiceUpdateDescriptionServiceKindServiceUpdateDescription', 'ServiceKindBasicServiceUpdateDescriptionServiceKindStateful', 'ServiceKindBasicServiceUpdateDescriptionServiceKindStateless'
43110	ServiceKind ServiceKindBasicServiceUpdateDescription `json:"ServiceKind,omitempty"`
43111}
43112
43113func unmarshalBasicServiceUpdateDescription(body []byte) (BasicServiceUpdateDescription, error) {
43114	var m map[string]interface{}
43115	err := json.Unmarshal(body, &m)
43116	if err != nil {
43117		return nil, err
43118	}
43119
43120	switch m["ServiceKind"] {
43121	case string(ServiceKindBasicServiceUpdateDescriptionServiceKindStateful):
43122		var ssud StatefulServiceUpdateDescription
43123		err := json.Unmarshal(body, &ssud)
43124		return ssud, err
43125	case string(ServiceKindBasicServiceUpdateDescriptionServiceKindStateless):
43126		var ssud StatelessServiceUpdateDescription
43127		err := json.Unmarshal(body, &ssud)
43128		return ssud, err
43129	default:
43130		var sud ServiceUpdateDescription
43131		err := json.Unmarshal(body, &sud)
43132		return sud, err
43133	}
43134}
43135func unmarshalBasicServiceUpdateDescriptionArray(body []byte) ([]BasicServiceUpdateDescription, error) {
43136	var rawMessages []*json.RawMessage
43137	err := json.Unmarshal(body, &rawMessages)
43138	if err != nil {
43139		return nil, err
43140	}
43141
43142	sudArray := make([]BasicServiceUpdateDescription, len(rawMessages))
43143
43144	for index, rawMessage := range rawMessages {
43145		sud, err := unmarshalBasicServiceUpdateDescription(*rawMessage)
43146		if err != nil {
43147			return nil, err
43148		}
43149		sudArray[index] = sud
43150	}
43151	return sudArray, nil
43152}
43153
43154// MarshalJSON is the custom marshaler for ServiceUpdateDescription.
43155func (sud ServiceUpdateDescription) MarshalJSON() ([]byte, error) {
43156	sud.ServiceKind = ServiceKindBasicServiceUpdateDescriptionServiceKindServiceUpdateDescription
43157	objectMap := make(map[string]interface{})
43158	if sud.Flags != nil {
43159		objectMap["Flags"] = sud.Flags
43160	}
43161	if sud.PlacementConstraints != nil {
43162		objectMap["PlacementConstraints"] = sud.PlacementConstraints
43163	}
43164	if sud.CorrelationScheme != nil {
43165		objectMap["CorrelationScheme"] = sud.CorrelationScheme
43166	}
43167	if sud.LoadMetrics != nil {
43168		objectMap["LoadMetrics"] = sud.LoadMetrics
43169	}
43170	if sud.ServicePlacementPolicies != nil {
43171		objectMap["ServicePlacementPolicies"] = sud.ServicePlacementPolicies
43172	}
43173	if sud.DefaultMoveCost != "" {
43174		objectMap["DefaultMoveCost"] = sud.DefaultMoveCost
43175	}
43176	if sud.ScalingPolicies != nil {
43177		objectMap["ScalingPolicies"] = sud.ScalingPolicies
43178	}
43179	if sud.ServiceKind != "" {
43180		objectMap["ServiceKind"] = sud.ServiceKind
43181	}
43182	return json.Marshal(objectMap)
43183}
43184
43185// AsStatefulServiceUpdateDescription is the BasicServiceUpdateDescription implementation for ServiceUpdateDescription.
43186func (sud ServiceUpdateDescription) AsStatefulServiceUpdateDescription() (*StatefulServiceUpdateDescription, bool) {
43187	return nil, false
43188}
43189
43190// AsStatelessServiceUpdateDescription is the BasicServiceUpdateDescription implementation for ServiceUpdateDescription.
43191func (sud ServiceUpdateDescription) AsStatelessServiceUpdateDescription() (*StatelessServiceUpdateDescription, bool) {
43192	return nil, false
43193}
43194
43195// AsServiceUpdateDescription is the BasicServiceUpdateDescription implementation for ServiceUpdateDescription.
43196func (sud ServiceUpdateDescription) AsServiceUpdateDescription() (*ServiceUpdateDescription, bool) {
43197	return &sud, true
43198}
43199
43200// AsBasicServiceUpdateDescription is the BasicServiceUpdateDescription implementation for ServiceUpdateDescription.
43201func (sud ServiceUpdateDescription) AsBasicServiceUpdateDescription() (BasicServiceUpdateDescription, bool) {
43202	return &sud, true
43203}
43204
43205// UnmarshalJSON is the custom unmarshaler for ServiceUpdateDescription struct.
43206func (sud *ServiceUpdateDescription) UnmarshalJSON(body []byte) error {
43207	var m map[string]*json.RawMessage
43208	err := json.Unmarshal(body, &m)
43209	if err != nil {
43210		return err
43211	}
43212	for k, v := range m {
43213		switch k {
43214		case "Flags":
43215			if v != nil {
43216				var flags string
43217				err = json.Unmarshal(*v, &flags)
43218				if err != nil {
43219					return err
43220				}
43221				sud.Flags = &flags
43222			}
43223		case "PlacementConstraints":
43224			if v != nil {
43225				var placementConstraints string
43226				err = json.Unmarshal(*v, &placementConstraints)
43227				if err != nil {
43228					return err
43229				}
43230				sud.PlacementConstraints = &placementConstraints
43231			}
43232		case "CorrelationScheme":
43233			if v != nil {
43234				var correlationScheme []ServiceCorrelationDescription
43235				err = json.Unmarshal(*v, &correlationScheme)
43236				if err != nil {
43237					return err
43238				}
43239				sud.CorrelationScheme = &correlationScheme
43240			}
43241		case "LoadMetrics":
43242			if v != nil {
43243				var loadMetrics []ServiceLoadMetricDescription
43244				err = json.Unmarshal(*v, &loadMetrics)
43245				if err != nil {
43246					return err
43247				}
43248				sud.LoadMetrics = &loadMetrics
43249			}
43250		case "ServicePlacementPolicies":
43251			if v != nil {
43252				servicePlacementPolicies, err := unmarshalBasicServicePlacementPolicyDescriptionArray(*v)
43253				if err != nil {
43254					return err
43255				}
43256				sud.ServicePlacementPolicies = &servicePlacementPolicies
43257			}
43258		case "DefaultMoveCost":
43259			if v != nil {
43260				var defaultMoveCost MoveCost
43261				err = json.Unmarshal(*v, &defaultMoveCost)
43262				if err != nil {
43263					return err
43264				}
43265				sud.DefaultMoveCost = defaultMoveCost
43266			}
43267		case "ScalingPolicies":
43268			if v != nil {
43269				var scalingPolicies []ScalingPolicyDescription
43270				err = json.Unmarshal(*v, &scalingPolicies)
43271				if err != nil {
43272					return err
43273				}
43274				sud.ScalingPolicies = &scalingPolicies
43275			}
43276		case "ServiceKind":
43277			if v != nil {
43278				var serviceKind ServiceKindBasicServiceUpdateDescription
43279				err = json.Unmarshal(*v, &serviceKind)
43280				if err != nil {
43281					return err
43282				}
43283				sud.ServiceKind = serviceKind
43284			}
43285		}
43286	}
43287
43288	return nil
43289}
43290
43291// ServiceUpgradeProgress information about how many replicas are completed or pending for a specific
43292// service during upgrade.
43293type ServiceUpgradeProgress struct {
43294	// ServiceName - Name of the Service resource.
43295	ServiceName *string `json:"ServiceName,omitempty"`
43296	// CompletedReplicaCount - The number of replicas that completes the upgrade in the service.
43297	CompletedReplicaCount *string `json:"CompletedReplicaCount,omitempty"`
43298	// PendingReplicaCount - The number of replicas that are waiting to be upgraded in the service.
43299	PendingReplicaCount *string `json:"PendingReplicaCount,omitempty"`
43300}
43301
43302// Setting describes a setting for the container. The setting file path can be fetched from environment
43303// variable "Fabric_SettingPath". The path for Windows container is "C:\\secrets". The path for Linux
43304// container is "/var/secrets".
43305type Setting struct {
43306	// Type - The type of the setting being given in value. Possible values include: 'SettingTypeClearText', 'SettingTypeKeyVaultReference', 'SettingTypeSecretValueReference'
43307	Type SettingType `json:"type,omitempty"`
43308	// Name - The name of the setting.
43309	Name *string `json:"name,omitempty"`
43310	// Value - The value of the setting, will be processed based on the type provided.
43311	Value *string `json:"value,omitempty"`
43312}
43313
43314// SingletonPartitionInformation information about a partition that is singleton. The services with
43315// singleton partitioning scheme are effectively non-partitioned. They only have one partition.
43316type SingletonPartitionInformation struct {
43317	// 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.
43318	ID *uuid.UUID `json:"Id,omitempty"`
43319	// ServicePartitionKind - Possible values include: 'ServicePartitionKindPartitionInformation', 'ServicePartitionKindInt64Range1', 'ServicePartitionKindNamed1', 'ServicePartitionKindSingleton1'
43320	ServicePartitionKind ServicePartitionKindBasicPartitionInformation `json:"ServicePartitionKind,omitempty"`
43321}
43322
43323// MarshalJSON is the custom marshaler for SingletonPartitionInformation.
43324func (spi SingletonPartitionInformation) MarshalJSON() ([]byte, error) {
43325	spi.ServicePartitionKind = ServicePartitionKindSingleton1
43326	objectMap := make(map[string]interface{})
43327	if spi.ID != nil {
43328		objectMap["Id"] = spi.ID
43329	}
43330	if spi.ServicePartitionKind != "" {
43331		objectMap["ServicePartitionKind"] = spi.ServicePartitionKind
43332	}
43333	return json.Marshal(objectMap)
43334}
43335
43336// AsInt64RangePartitionInformation is the BasicPartitionInformation implementation for SingletonPartitionInformation.
43337func (spi SingletonPartitionInformation) AsInt64RangePartitionInformation() (*Int64RangePartitionInformation, bool) {
43338	return nil, false
43339}
43340
43341// AsNamedPartitionInformation is the BasicPartitionInformation implementation for SingletonPartitionInformation.
43342func (spi SingletonPartitionInformation) AsNamedPartitionInformation() (*NamedPartitionInformation, bool) {
43343	return nil, false
43344}
43345
43346// AsSingletonPartitionInformation is the BasicPartitionInformation implementation for SingletonPartitionInformation.
43347func (spi SingletonPartitionInformation) AsSingletonPartitionInformation() (*SingletonPartitionInformation, bool) {
43348	return &spi, true
43349}
43350
43351// AsPartitionInformation is the BasicPartitionInformation implementation for SingletonPartitionInformation.
43352func (spi SingletonPartitionInformation) AsPartitionInformation() (*PartitionInformation, bool) {
43353	return nil, false
43354}
43355
43356// AsBasicPartitionInformation is the BasicPartitionInformation implementation for SingletonPartitionInformation.
43357func (spi SingletonPartitionInformation) AsBasicPartitionInformation() (BasicPartitionInformation, bool) {
43358	return &spi, true
43359}
43360
43361// SingletonPartitionSchemeDescription describes the partition scheme of a singleton-partitioned, or
43362// non-partitioned service.
43363type SingletonPartitionSchemeDescription struct {
43364	// PartitionScheme - Possible values include: 'PartitionSchemePartitionSchemeDescription', 'PartitionSchemeNamed1', 'PartitionSchemeSingleton1', 'PartitionSchemeUniformInt64Range1'
43365	PartitionScheme PartitionSchemeBasicPartitionSchemeDescription `json:"PartitionScheme,omitempty"`
43366}
43367
43368// MarshalJSON is the custom marshaler for SingletonPartitionSchemeDescription.
43369func (spsd SingletonPartitionSchemeDescription) MarshalJSON() ([]byte, error) {
43370	spsd.PartitionScheme = PartitionSchemeSingleton1
43371	objectMap := make(map[string]interface{})
43372	if spsd.PartitionScheme != "" {
43373		objectMap["PartitionScheme"] = spsd.PartitionScheme
43374	}
43375	return json.Marshal(objectMap)
43376}
43377
43378// AsNamedPartitionSchemeDescription is the BasicPartitionSchemeDescription implementation for SingletonPartitionSchemeDescription.
43379func (spsd SingletonPartitionSchemeDescription) AsNamedPartitionSchemeDescription() (*NamedPartitionSchemeDescription, bool) {
43380	return nil, false
43381}
43382
43383// AsSingletonPartitionSchemeDescription is the BasicPartitionSchemeDescription implementation for SingletonPartitionSchemeDescription.
43384func (spsd SingletonPartitionSchemeDescription) AsSingletonPartitionSchemeDescription() (*SingletonPartitionSchemeDescription, bool) {
43385	return &spsd, true
43386}
43387
43388// AsUniformInt64RangePartitionSchemeDescription is the BasicPartitionSchemeDescription implementation for SingletonPartitionSchemeDescription.
43389func (spsd SingletonPartitionSchemeDescription) AsUniformInt64RangePartitionSchemeDescription() (*UniformInt64RangePartitionSchemeDescription, bool) {
43390	return nil, false
43391}
43392
43393// AsPartitionSchemeDescription is the BasicPartitionSchemeDescription implementation for SingletonPartitionSchemeDescription.
43394func (spsd SingletonPartitionSchemeDescription) AsPartitionSchemeDescription() (*PartitionSchemeDescription, bool) {
43395	return nil, false
43396}
43397
43398// AsBasicPartitionSchemeDescription is the BasicPartitionSchemeDescription implementation for SingletonPartitionSchemeDescription.
43399func (spsd SingletonPartitionSchemeDescription) AsBasicPartitionSchemeDescription() (BasicPartitionSchemeDescription, bool) {
43400	return &spsd, true
43401}
43402
43403// StartClusterUpgradeDescription describes the parameters for starting a cluster upgrade.
43404type StartClusterUpgradeDescription struct {
43405	// CodeVersion - The cluster code version.
43406	CodeVersion *string `json:"CodeVersion,omitempty"`
43407	// ConfigVersion - The cluster configuration version.
43408	ConfigVersion *string `json:"ConfigVersion,omitempty"`
43409	// UpgradeKind - The kind of upgrade out of the following possible values. Possible values include: 'UpgradeKindInvalid', 'UpgradeKindRolling'
43410	UpgradeKind UpgradeKind `json:"UpgradeKind,omitempty"`
43411	// 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'
43412	RollingUpgradeMode UpgradeMode `json:"RollingUpgradeMode,omitempty"`
43413	// 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).
43414	UpgradeReplicaSetCheckTimeoutInSeconds *int64 `json:"UpgradeReplicaSetCheckTimeoutInSeconds,omitempty"`
43415	// 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).
43416	ForceRestart *bool `json:"ForceRestart,omitempty"`
43417	// SortOrder - Defines the order in which an upgrade proceeds through the cluster. Possible values include: 'UpgradeSortOrderInvalid', 'UpgradeSortOrderDefault', 'UpgradeSortOrderNumeric', 'UpgradeSortOrderLexicographical', 'UpgradeSortOrderReverseNumeric', 'UpgradeSortOrderReverseLexicographical'
43418	SortOrder UpgradeSortOrder `json:"SortOrder,omitempty"`
43419	// MonitoringPolicy - Describes the parameters for monitoring an upgrade in Monitored mode.
43420	MonitoringPolicy *MonitoringPolicyDescription `json:"MonitoringPolicy,omitempty"`
43421	// ClusterHealthPolicy - Defines a health policy used to evaluate the health of the cluster or of a cluster node.
43422	ClusterHealthPolicy *ClusterHealthPolicy `json:"ClusterHealthPolicy,omitempty"`
43423	// EnableDeltaHealthEvaluation - When true, enables delta health evaluation rather than absolute health evaluation after completion of each upgrade domain.
43424	EnableDeltaHealthEvaluation *bool `json:"EnableDeltaHealthEvaluation,omitempty"`
43425	// ClusterUpgradeHealthPolicy - Defines a health policy used to evaluate the health of the cluster during a cluster upgrade.
43426	ClusterUpgradeHealthPolicy *ClusterUpgradeHealthPolicyObject `json:"ClusterUpgradeHealthPolicy,omitempty"`
43427	// ApplicationHealthPolicyMap - Defines the application health policy map used to evaluate the health of an application or one of its children entities.
43428	ApplicationHealthPolicyMap *ApplicationHealthPolicies `json:"ApplicationHealthPolicyMap,omitempty"`
43429	// InstanceCloseDelayDurationInSeconds - Duration in seconds, to wait before a stateless instance is closed, to allow the active requests to drain gracefully. This would be effective when the instance is closing during the application/cluster
43430	// upgrade, only for those instances which have a non-zero delay duration configured in the service description. See InstanceCloseDelayDurationSeconds property in $ref: "#/definitions/StatelessServiceDescription.yaml" for details.
43431	// Note, the default value of InstanceCloseDelayDurationInSeconds is 4294967295, which indicates that the behavior will entirely depend on the delay configured in the stateless service description.
43432	InstanceCloseDelayDurationInSeconds *int64 `json:"InstanceCloseDelayDurationInSeconds,omitempty"`
43433}
43434
43435// StartedChaosEvent describes a Chaos event that gets generated when Chaos is started.
43436type StartedChaosEvent struct {
43437	// ChaosParameters - Defines all the parameters to configure a Chaos run.
43438	ChaosParameters *ChaosParameters `json:"ChaosParameters,omitempty"`
43439	// TimeStampUtc - The UTC timestamp when this Chaos event was generated.
43440	TimeStampUtc *date.Time `json:"TimeStampUtc,omitempty"`
43441	// Kind - Possible values include: 'KindChaosEvent', 'KindExecutingFaults', 'KindStarted', 'KindStopped', 'KindTestError', 'KindValidationFailed', 'KindWaiting'
43442	Kind KindBasicChaosEvent `json:"Kind,omitempty"`
43443}
43444
43445// MarshalJSON is the custom marshaler for StartedChaosEvent.
43446func (sce StartedChaosEvent) MarshalJSON() ([]byte, error) {
43447	sce.Kind = KindStarted
43448	objectMap := make(map[string]interface{})
43449	if sce.ChaosParameters != nil {
43450		objectMap["ChaosParameters"] = sce.ChaosParameters
43451	}
43452	if sce.TimeStampUtc != nil {
43453		objectMap["TimeStampUtc"] = sce.TimeStampUtc
43454	}
43455	if sce.Kind != "" {
43456		objectMap["Kind"] = sce.Kind
43457	}
43458	return json.Marshal(objectMap)
43459}
43460
43461// AsExecutingFaultsChaosEvent is the BasicChaosEvent implementation for StartedChaosEvent.
43462func (sce StartedChaosEvent) AsExecutingFaultsChaosEvent() (*ExecutingFaultsChaosEvent, bool) {
43463	return nil, false
43464}
43465
43466// AsStartedChaosEvent is the BasicChaosEvent implementation for StartedChaosEvent.
43467func (sce StartedChaosEvent) AsStartedChaosEvent() (*StartedChaosEvent, bool) {
43468	return &sce, true
43469}
43470
43471// AsStoppedChaosEvent is the BasicChaosEvent implementation for StartedChaosEvent.
43472func (sce StartedChaosEvent) AsStoppedChaosEvent() (*StoppedChaosEvent, bool) {
43473	return nil, false
43474}
43475
43476// AsTestErrorChaosEvent is the BasicChaosEvent implementation for StartedChaosEvent.
43477func (sce StartedChaosEvent) AsTestErrorChaosEvent() (*TestErrorChaosEvent, bool) {
43478	return nil, false
43479}
43480
43481// AsValidationFailedChaosEvent is the BasicChaosEvent implementation for StartedChaosEvent.
43482func (sce StartedChaosEvent) AsValidationFailedChaosEvent() (*ValidationFailedChaosEvent, bool) {
43483	return nil, false
43484}
43485
43486// AsWaitingChaosEvent is the BasicChaosEvent implementation for StartedChaosEvent.
43487func (sce StartedChaosEvent) AsWaitingChaosEvent() (*WaitingChaosEvent, bool) {
43488	return nil, false
43489}
43490
43491// AsChaosEvent is the BasicChaosEvent implementation for StartedChaosEvent.
43492func (sce StartedChaosEvent) AsChaosEvent() (*ChaosEvent, bool) {
43493	return nil, false
43494}
43495
43496// AsBasicChaosEvent is the BasicChaosEvent implementation for StartedChaosEvent.
43497func (sce StartedChaosEvent) AsBasicChaosEvent() (BasicChaosEvent, bool) {
43498	return &sce, true
43499}
43500
43501// StatefulReplicaHealthReportExpiredEvent stateful Replica Health Report Expired event.
43502type StatefulReplicaHealthReportExpiredEvent struct {
43503	// ReplicaInstanceID - Id of Replica instance.
43504	ReplicaInstanceID *int64 `json:"ReplicaInstanceId,omitempty"`
43505	// SourceID - Id of report source.
43506	SourceID *string `json:"SourceId,omitempty"`
43507	// Property - Describes the property.
43508	Property *string `json:"Property,omitempty"`
43509	// HealthState - Describes the property health state.
43510	HealthState *string `json:"HealthState,omitempty"`
43511	// TimeToLiveMs - Time to live in milli-seconds.
43512	TimeToLiveMs *int64 `json:"TimeToLiveMs,omitempty"`
43513	// SequenceNumber - Sequence number of report.
43514	SequenceNumber *int64 `json:"SequenceNumber,omitempty"`
43515	// Description - Description of report.
43516	Description *string `json:"Description,omitempty"`
43517	// RemoveWhenExpired - Indicates the removal when it expires.
43518	RemoveWhenExpired *bool `json:"RemoveWhenExpired,omitempty"`
43519	// SourceUtcTimestamp - Source time.
43520	SourceUtcTimestamp *date.Time `json:"SourceUtcTimestamp,omitempty"`
43521	// 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.
43522	PartitionID *uuid.UUID `json:"PartitionId,omitempty"`
43523	// 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.
43524	ReplicaID *int64 `json:"ReplicaId,omitempty"`
43525	// EventInstanceID - The identifier for the FabricEvent instance.
43526	EventInstanceID *uuid.UUID `json:"EventInstanceId,omitempty"`
43527	// Category - The category of event.
43528	Category *string `json:"Category,omitempty"`
43529	// TimeStamp - The time event was logged.
43530	TimeStamp *date.Time `json:"TimeStamp,omitempty"`
43531	// HasCorrelatedEvents - Shows there is existing related events available.
43532	HasCorrelatedEvents *bool `json:"HasCorrelatedEvents,omitempty"`
43533	// 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'
43534	Kind KindBasicFabricEvent `json:"Kind,omitempty"`
43535}
43536
43537// MarshalJSON is the custom marshaler for StatefulReplicaHealthReportExpiredEvent.
43538func (srhree StatefulReplicaHealthReportExpiredEvent) MarshalJSON() ([]byte, error) {
43539	srhree.Kind = KindStatefulReplicaHealthReportExpired
43540	objectMap := make(map[string]interface{})
43541	if srhree.ReplicaInstanceID != nil {
43542		objectMap["ReplicaInstanceId"] = srhree.ReplicaInstanceID
43543	}
43544	if srhree.SourceID != nil {
43545		objectMap["SourceId"] = srhree.SourceID
43546	}
43547	if srhree.Property != nil {
43548		objectMap["Property"] = srhree.Property
43549	}
43550	if srhree.HealthState != nil {
43551		objectMap["HealthState"] = srhree.HealthState
43552	}
43553	if srhree.TimeToLiveMs != nil {
43554		objectMap["TimeToLiveMs"] = srhree.TimeToLiveMs
43555	}
43556	if srhree.SequenceNumber != nil {
43557		objectMap["SequenceNumber"] = srhree.SequenceNumber
43558	}
43559	if srhree.Description != nil {
43560		objectMap["Description"] = srhree.Description
43561	}
43562	if srhree.RemoveWhenExpired != nil {
43563		objectMap["RemoveWhenExpired"] = srhree.RemoveWhenExpired
43564	}
43565	if srhree.SourceUtcTimestamp != nil {
43566		objectMap["SourceUtcTimestamp"] = srhree.SourceUtcTimestamp
43567	}
43568	if srhree.PartitionID != nil {
43569		objectMap["PartitionId"] = srhree.PartitionID
43570	}
43571	if srhree.ReplicaID != nil {
43572		objectMap["ReplicaId"] = srhree.ReplicaID
43573	}
43574	if srhree.EventInstanceID != nil {
43575		objectMap["EventInstanceId"] = srhree.EventInstanceID
43576	}
43577	if srhree.Category != nil {
43578		objectMap["Category"] = srhree.Category
43579	}
43580	if srhree.TimeStamp != nil {
43581		objectMap["TimeStamp"] = srhree.TimeStamp
43582	}
43583	if srhree.HasCorrelatedEvents != nil {
43584		objectMap["HasCorrelatedEvents"] = srhree.HasCorrelatedEvents
43585	}
43586	if srhree.Kind != "" {
43587		objectMap["Kind"] = srhree.Kind
43588	}
43589	return json.Marshal(objectMap)
43590}
43591
43592// AsApplicationEvent is the BasicFabricEvent implementation for StatefulReplicaHealthReportExpiredEvent.
43593func (srhree StatefulReplicaHealthReportExpiredEvent) AsApplicationEvent() (*ApplicationEvent, bool) {
43594	return nil, false
43595}
43596
43597// AsBasicApplicationEvent is the BasicFabricEvent implementation for StatefulReplicaHealthReportExpiredEvent.
43598func (srhree StatefulReplicaHealthReportExpiredEvent) AsBasicApplicationEvent() (BasicApplicationEvent, bool) {
43599	return nil, false
43600}
43601
43602// AsClusterEvent is the BasicFabricEvent implementation for StatefulReplicaHealthReportExpiredEvent.
43603func (srhree StatefulReplicaHealthReportExpiredEvent) AsClusterEvent() (*ClusterEvent, bool) {
43604	return nil, false
43605}
43606
43607// AsBasicClusterEvent is the BasicFabricEvent implementation for StatefulReplicaHealthReportExpiredEvent.
43608func (srhree StatefulReplicaHealthReportExpiredEvent) AsBasicClusterEvent() (BasicClusterEvent, bool) {
43609	return nil, false
43610}
43611
43612// AsContainerInstanceEvent is the BasicFabricEvent implementation for StatefulReplicaHealthReportExpiredEvent.
43613func (srhree StatefulReplicaHealthReportExpiredEvent) AsContainerInstanceEvent() (*ContainerInstanceEvent, bool) {
43614	return nil, false
43615}
43616
43617// AsNodeEvent is the BasicFabricEvent implementation for StatefulReplicaHealthReportExpiredEvent.
43618func (srhree StatefulReplicaHealthReportExpiredEvent) AsNodeEvent() (*NodeEvent, bool) {
43619	return nil, false
43620}
43621
43622// AsBasicNodeEvent is the BasicFabricEvent implementation for StatefulReplicaHealthReportExpiredEvent.
43623func (srhree StatefulReplicaHealthReportExpiredEvent) AsBasicNodeEvent() (BasicNodeEvent, bool) {
43624	return nil, false
43625}
43626
43627// AsPartitionAnalysisEvent is the BasicFabricEvent implementation for StatefulReplicaHealthReportExpiredEvent.
43628func (srhree StatefulReplicaHealthReportExpiredEvent) AsPartitionAnalysisEvent() (*PartitionAnalysisEvent, bool) {
43629	return nil, false
43630}
43631
43632// AsBasicPartitionAnalysisEvent is the BasicFabricEvent implementation for StatefulReplicaHealthReportExpiredEvent.
43633func (srhree StatefulReplicaHealthReportExpiredEvent) AsBasicPartitionAnalysisEvent() (BasicPartitionAnalysisEvent, bool) {
43634	return nil, false
43635}
43636
43637// AsPartitionEvent is the BasicFabricEvent implementation for StatefulReplicaHealthReportExpiredEvent.
43638func (srhree StatefulReplicaHealthReportExpiredEvent) AsPartitionEvent() (*PartitionEvent, bool) {
43639	return nil, false
43640}
43641
43642// AsBasicPartitionEvent is the BasicFabricEvent implementation for StatefulReplicaHealthReportExpiredEvent.
43643func (srhree StatefulReplicaHealthReportExpiredEvent) AsBasicPartitionEvent() (BasicPartitionEvent, bool) {
43644	return nil, false
43645}
43646
43647// AsReplicaEvent is the BasicFabricEvent implementation for StatefulReplicaHealthReportExpiredEvent.
43648func (srhree StatefulReplicaHealthReportExpiredEvent) AsReplicaEvent() (*ReplicaEvent, bool) {
43649	return nil, false
43650}
43651
43652// AsBasicReplicaEvent is the BasicFabricEvent implementation for StatefulReplicaHealthReportExpiredEvent.
43653func (srhree StatefulReplicaHealthReportExpiredEvent) AsBasicReplicaEvent() (BasicReplicaEvent, bool) {
43654	return &srhree, true
43655}
43656
43657// AsServiceEvent is the BasicFabricEvent implementation for StatefulReplicaHealthReportExpiredEvent.
43658func (srhree StatefulReplicaHealthReportExpiredEvent) AsServiceEvent() (*ServiceEvent, bool) {
43659	return nil, false
43660}
43661
43662// AsBasicServiceEvent is the BasicFabricEvent implementation for StatefulReplicaHealthReportExpiredEvent.
43663func (srhree StatefulReplicaHealthReportExpiredEvent) AsBasicServiceEvent() (BasicServiceEvent, bool) {
43664	return nil, false
43665}
43666
43667// AsApplicationCreatedEvent is the BasicFabricEvent implementation for StatefulReplicaHealthReportExpiredEvent.
43668func (srhree StatefulReplicaHealthReportExpiredEvent) AsApplicationCreatedEvent() (*ApplicationCreatedEvent, bool) {
43669	return nil, false
43670}
43671
43672// AsApplicationDeletedEvent is the BasicFabricEvent implementation for StatefulReplicaHealthReportExpiredEvent.
43673func (srhree StatefulReplicaHealthReportExpiredEvent) AsApplicationDeletedEvent() (*ApplicationDeletedEvent, bool) {
43674	return nil, false
43675}
43676
43677// AsApplicationNewHealthReportEvent is the BasicFabricEvent implementation for StatefulReplicaHealthReportExpiredEvent.
43678func (srhree StatefulReplicaHealthReportExpiredEvent) AsApplicationNewHealthReportEvent() (*ApplicationNewHealthReportEvent, bool) {
43679	return nil, false
43680}
43681
43682// AsApplicationHealthReportExpiredEvent is the BasicFabricEvent implementation for StatefulReplicaHealthReportExpiredEvent.
43683func (srhree StatefulReplicaHealthReportExpiredEvent) AsApplicationHealthReportExpiredEvent() (*ApplicationHealthReportExpiredEvent, bool) {
43684	return nil, false
43685}
43686
43687// AsApplicationUpgradeCompletedEvent is the BasicFabricEvent implementation for StatefulReplicaHealthReportExpiredEvent.
43688func (srhree StatefulReplicaHealthReportExpiredEvent) AsApplicationUpgradeCompletedEvent() (*ApplicationUpgradeCompletedEvent, bool) {
43689	return nil, false
43690}
43691
43692// AsApplicationUpgradeDomainCompletedEvent is the BasicFabricEvent implementation for StatefulReplicaHealthReportExpiredEvent.
43693func (srhree StatefulReplicaHealthReportExpiredEvent) AsApplicationUpgradeDomainCompletedEvent() (*ApplicationUpgradeDomainCompletedEvent, bool) {
43694	return nil, false
43695}
43696
43697// AsApplicationUpgradeRollbackCompletedEvent is the BasicFabricEvent implementation for StatefulReplicaHealthReportExpiredEvent.
43698func (srhree StatefulReplicaHealthReportExpiredEvent) AsApplicationUpgradeRollbackCompletedEvent() (*ApplicationUpgradeRollbackCompletedEvent, bool) {
43699	return nil, false
43700}
43701
43702// AsApplicationUpgradeRollbackStartedEvent is the BasicFabricEvent implementation for StatefulReplicaHealthReportExpiredEvent.
43703func (srhree StatefulReplicaHealthReportExpiredEvent) AsApplicationUpgradeRollbackStartedEvent() (*ApplicationUpgradeRollbackStartedEvent, bool) {
43704	return nil, false
43705}
43706
43707// AsApplicationUpgradeStartedEvent is the BasicFabricEvent implementation for StatefulReplicaHealthReportExpiredEvent.
43708func (srhree StatefulReplicaHealthReportExpiredEvent) AsApplicationUpgradeStartedEvent() (*ApplicationUpgradeStartedEvent, bool) {
43709	return nil, false
43710}
43711
43712// AsDeployedApplicationNewHealthReportEvent is the BasicFabricEvent implementation for StatefulReplicaHealthReportExpiredEvent.
43713func (srhree StatefulReplicaHealthReportExpiredEvent) AsDeployedApplicationNewHealthReportEvent() (*DeployedApplicationNewHealthReportEvent, bool) {
43714	return nil, false
43715}
43716
43717// AsDeployedApplicationHealthReportExpiredEvent is the BasicFabricEvent implementation for StatefulReplicaHealthReportExpiredEvent.
43718func (srhree StatefulReplicaHealthReportExpiredEvent) AsDeployedApplicationHealthReportExpiredEvent() (*DeployedApplicationHealthReportExpiredEvent, bool) {
43719	return nil, false
43720}
43721
43722// AsApplicationProcessExitedEvent is the BasicFabricEvent implementation for StatefulReplicaHealthReportExpiredEvent.
43723func (srhree StatefulReplicaHealthReportExpiredEvent) AsApplicationProcessExitedEvent() (*ApplicationProcessExitedEvent, bool) {
43724	return nil, false
43725}
43726
43727// AsApplicationContainerInstanceExitedEvent is the BasicFabricEvent implementation for StatefulReplicaHealthReportExpiredEvent.
43728func (srhree StatefulReplicaHealthReportExpiredEvent) AsApplicationContainerInstanceExitedEvent() (*ApplicationContainerInstanceExitedEvent, bool) {
43729	return nil, false
43730}
43731
43732// AsNodeAbortedEvent is the BasicFabricEvent implementation for StatefulReplicaHealthReportExpiredEvent.
43733func (srhree StatefulReplicaHealthReportExpiredEvent) AsNodeAbortedEvent() (*NodeAbortedEvent, bool) {
43734	return nil, false
43735}
43736
43737// AsNodeAddedToClusterEvent is the BasicFabricEvent implementation for StatefulReplicaHealthReportExpiredEvent.
43738func (srhree StatefulReplicaHealthReportExpiredEvent) AsNodeAddedToClusterEvent() (*NodeAddedToClusterEvent, bool) {
43739	return nil, false
43740}
43741
43742// AsNodeClosedEvent is the BasicFabricEvent implementation for StatefulReplicaHealthReportExpiredEvent.
43743func (srhree StatefulReplicaHealthReportExpiredEvent) AsNodeClosedEvent() (*NodeClosedEvent, bool) {
43744	return nil, false
43745}
43746
43747// AsNodeDeactivateCompletedEvent is the BasicFabricEvent implementation for StatefulReplicaHealthReportExpiredEvent.
43748func (srhree StatefulReplicaHealthReportExpiredEvent) AsNodeDeactivateCompletedEvent() (*NodeDeactivateCompletedEvent, bool) {
43749	return nil, false
43750}
43751
43752// AsNodeDeactivateStartedEvent is the BasicFabricEvent implementation for StatefulReplicaHealthReportExpiredEvent.
43753func (srhree StatefulReplicaHealthReportExpiredEvent) AsNodeDeactivateStartedEvent() (*NodeDeactivateStartedEvent, bool) {
43754	return nil, false
43755}
43756
43757// AsNodeDownEvent is the BasicFabricEvent implementation for StatefulReplicaHealthReportExpiredEvent.
43758func (srhree StatefulReplicaHealthReportExpiredEvent) AsNodeDownEvent() (*NodeDownEvent, bool) {
43759	return nil, false
43760}
43761
43762// AsNodeNewHealthReportEvent is the BasicFabricEvent implementation for StatefulReplicaHealthReportExpiredEvent.
43763func (srhree StatefulReplicaHealthReportExpiredEvent) AsNodeNewHealthReportEvent() (*NodeNewHealthReportEvent, bool) {
43764	return nil, false
43765}
43766
43767// AsNodeHealthReportExpiredEvent is the BasicFabricEvent implementation for StatefulReplicaHealthReportExpiredEvent.
43768func (srhree StatefulReplicaHealthReportExpiredEvent) AsNodeHealthReportExpiredEvent() (*NodeHealthReportExpiredEvent, bool) {
43769	return nil, false
43770}
43771
43772// AsNodeOpenSucceededEvent is the BasicFabricEvent implementation for StatefulReplicaHealthReportExpiredEvent.
43773func (srhree StatefulReplicaHealthReportExpiredEvent) AsNodeOpenSucceededEvent() (*NodeOpenSucceededEvent, bool) {
43774	return nil, false
43775}
43776
43777// AsNodeOpenFailedEvent is the BasicFabricEvent implementation for StatefulReplicaHealthReportExpiredEvent.
43778func (srhree StatefulReplicaHealthReportExpiredEvent) AsNodeOpenFailedEvent() (*NodeOpenFailedEvent, bool) {
43779	return nil, false
43780}
43781
43782// AsNodeRemovedFromClusterEvent is the BasicFabricEvent implementation for StatefulReplicaHealthReportExpiredEvent.
43783func (srhree StatefulReplicaHealthReportExpiredEvent) AsNodeRemovedFromClusterEvent() (*NodeRemovedFromClusterEvent, bool) {
43784	return nil, false
43785}
43786
43787// AsNodeUpEvent is the BasicFabricEvent implementation for StatefulReplicaHealthReportExpiredEvent.
43788func (srhree StatefulReplicaHealthReportExpiredEvent) AsNodeUpEvent() (*NodeUpEvent, bool) {
43789	return nil, false
43790}
43791
43792// AsPartitionNewHealthReportEvent is the BasicFabricEvent implementation for StatefulReplicaHealthReportExpiredEvent.
43793func (srhree StatefulReplicaHealthReportExpiredEvent) AsPartitionNewHealthReportEvent() (*PartitionNewHealthReportEvent, bool) {
43794	return nil, false
43795}
43796
43797// AsPartitionHealthReportExpiredEvent is the BasicFabricEvent implementation for StatefulReplicaHealthReportExpiredEvent.
43798func (srhree StatefulReplicaHealthReportExpiredEvent) AsPartitionHealthReportExpiredEvent() (*PartitionHealthReportExpiredEvent, bool) {
43799	return nil, false
43800}
43801
43802// AsPartitionReconfiguredEvent is the BasicFabricEvent implementation for StatefulReplicaHealthReportExpiredEvent.
43803func (srhree StatefulReplicaHealthReportExpiredEvent) AsPartitionReconfiguredEvent() (*PartitionReconfiguredEvent, bool) {
43804	return nil, false
43805}
43806
43807// AsPartitionPrimaryMoveAnalysisEvent is the BasicFabricEvent implementation for StatefulReplicaHealthReportExpiredEvent.
43808func (srhree StatefulReplicaHealthReportExpiredEvent) AsPartitionPrimaryMoveAnalysisEvent() (*PartitionPrimaryMoveAnalysisEvent, bool) {
43809	return nil, false
43810}
43811
43812// AsServiceCreatedEvent is the BasicFabricEvent implementation for StatefulReplicaHealthReportExpiredEvent.
43813func (srhree StatefulReplicaHealthReportExpiredEvent) AsServiceCreatedEvent() (*ServiceCreatedEvent, bool) {
43814	return nil, false
43815}
43816
43817// AsServiceDeletedEvent is the BasicFabricEvent implementation for StatefulReplicaHealthReportExpiredEvent.
43818func (srhree StatefulReplicaHealthReportExpiredEvent) AsServiceDeletedEvent() (*ServiceDeletedEvent, bool) {
43819	return nil, false
43820}
43821
43822// AsServiceNewHealthReportEvent is the BasicFabricEvent implementation for StatefulReplicaHealthReportExpiredEvent.
43823func (srhree StatefulReplicaHealthReportExpiredEvent) AsServiceNewHealthReportEvent() (*ServiceNewHealthReportEvent, bool) {
43824	return nil, false
43825}
43826
43827// AsServiceHealthReportExpiredEvent is the BasicFabricEvent implementation for StatefulReplicaHealthReportExpiredEvent.
43828func (srhree StatefulReplicaHealthReportExpiredEvent) AsServiceHealthReportExpiredEvent() (*ServiceHealthReportExpiredEvent, bool) {
43829	return nil, false
43830}
43831
43832// AsDeployedServicePackageNewHealthReportEvent is the BasicFabricEvent implementation for StatefulReplicaHealthReportExpiredEvent.
43833func (srhree StatefulReplicaHealthReportExpiredEvent) AsDeployedServicePackageNewHealthReportEvent() (*DeployedServicePackageNewHealthReportEvent, bool) {
43834	return nil, false
43835}
43836
43837// AsDeployedServicePackageHealthReportExpiredEvent is the BasicFabricEvent implementation for StatefulReplicaHealthReportExpiredEvent.
43838func (srhree StatefulReplicaHealthReportExpiredEvent) AsDeployedServicePackageHealthReportExpiredEvent() (*DeployedServicePackageHealthReportExpiredEvent, bool) {
43839	return nil, false
43840}
43841
43842// AsStatefulReplicaNewHealthReportEvent is the BasicFabricEvent implementation for StatefulReplicaHealthReportExpiredEvent.
43843func (srhree StatefulReplicaHealthReportExpiredEvent) AsStatefulReplicaNewHealthReportEvent() (*StatefulReplicaNewHealthReportEvent, bool) {
43844	return nil, false
43845}
43846
43847// AsStatefulReplicaHealthReportExpiredEvent is the BasicFabricEvent implementation for StatefulReplicaHealthReportExpiredEvent.
43848func (srhree StatefulReplicaHealthReportExpiredEvent) AsStatefulReplicaHealthReportExpiredEvent() (*StatefulReplicaHealthReportExpiredEvent, bool) {
43849	return &srhree, true
43850}
43851
43852// AsStatelessReplicaNewHealthReportEvent is the BasicFabricEvent implementation for StatefulReplicaHealthReportExpiredEvent.
43853func (srhree StatefulReplicaHealthReportExpiredEvent) AsStatelessReplicaNewHealthReportEvent() (*StatelessReplicaNewHealthReportEvent, bool) {
43854	return nil, false
43855}
43856
43857// AsStatelessReplicaHealthReportExpiredEvent is the BasicFabricEvent implementation for StatefulReplicaHealthReportExpiredEvent.
43858func (srhree StatefulReplicaHealthReportExpiredEvent) AsStatelessReplicaHealthReportExpiredEvent() (*StatelessReplicaHealthReportExpiredEvent, bool) {
43859	return nil, false
43860}
43861
43862// AsClusterNewHealthReportEvent is the BasicFabricEvent implementation for StatefulReplicaHealthReportExpiredEvent.
43863func (srhree StatefulReplicaHealthReportExpiredEvent) AsClusterNewHealthReportEvent() (*ClusterNewHealthReportEvent, bool) {
43864	return nil, false
43865}
43866
43867// AsClusterHealthReportExpiredEvent is the BasicFabricEvent implementation for StatefulReplicaHealthReportExpiredEvent.
43868func (srhree StatefulReplicaHealthReportExpiredEvent) AsClusterHealthReportExpiredEvent() (*ClusterHealthReportExpiredEvent, bool) {
43869	return nil, false
43870}
43871
43872// AsClusterUpgradeCompletedEvent is the BasicFabricEvent implementation for StatefulReplicaHealthReportExpiredEvent.
43873func (srhree StatefulReplicaHealthReportExpiredEvent) AsClusterUpgradeCompletedEvent() (*ClusterUpgradeCompletedEvent, bool) {
43874	return nil, false
43875}
43876
43877// AsClusterUpgradeDomainCompletedEvent is the BasicFabricEvent implementation for StatefulReplicaHealthReportExpiredEvent.
43878func (srhree StatefulReplicaHealthReportExpiredEvent) AsClusterUpgradeDomainCompletedEvent() (*ClusterUpgradeDomainCompletedEvent, bool) {
43879	return nil, false
43880}
43881
43882// AsClusterUpgradeRollbackCompletedEvent is the BasicFabricEvent implementation for StatefulReplicaHealthReportExpiredEvent.
43883func (srhree StatefulReplicaHealthReportExpiredEvent) AsClusterUpgradeRollbackCompletedEvent() (*ClusterUpgradeRollbackCompletedEvent, bool) {
43884	return nil, false
43885}
43886
43887// AsClusterUpgradeRollbackStartedEvent is the BasicFabricEvent implementation for StatefulReplicaHealthReportExpiredEvent.
43888func (srhree StatefulReplicaHealthReportExpiredEvent) AsClusterUpgradeRollbackStartedEvent() (*ClusterUpgradeRollbackStartedEvent, bool) {
43889	return nil, false
43890}
43891
43892// AsClusterUpgradeStartedEvent is the BasicFabricEvent implementation for StatefulReplicaHealthReportExpiredEvent.
43893func (srhree StatefulReplicaHealthReportExpiredEvent) AsClusterUpgradeStartedEvent() (*ClusterUpgradeStartedEvent, bool) {
43894	return nil, false
43895}
43896
43897// AsChaosStoppedEvent is the BasicFabricEvent implementation for StatefulReplicaHealthReportExpiredEvent.
43898func (srhree StatefulReplicaHealthReportExpiredEvent) AsChaosStoppedEvent() (*ChaosStoppedEvent, bool) {
43899	return nil, false
43900}
43901
43902// AsChaosStartedEvent is the BasicFabricEvent implementation for StatefulReplicaHealthReportExpiredEvent.
43903func (srhree StatefulReplicaHealthReportExpiredEvent) AsChaosStartedEvent() (*ChaosStartedEvent, bool) {
43904	return nil, false
43905}
43906
43907// AsChaosCodePackageRestartScheduledEvent is the BasicFabricEvent implementation for StatefulReplicaHealthReportExpiredEvent.
43908func (srhree StatefulReplicaHealthReportExpiredEvent) AsChaosCodePackageRestartScheduledEvent() (*ChaosCodePackageRestartScheduledEvent, bool) {
43909	return nil, false
43910}
43911
43912// AsChaosReplicaRemovalScheduledEvent is the BasicFabricEvent implementation for StatefulReplicaHealthReportExpiredEvent.
43913func (srhree StatefulReplicaHealthReportExpiredEvent) AsChaosReplicaRemovalScheduledEvent() (*ChaosReplicaRemovalScheduledEvent, bool) {
43914	return nil, false
43915}
43916
43917// AsChaosPartitionSecondaryMoveScheduledEvent is the BasicFabricEvent implementation for StatefulReplicaHealthReportExpiredEvent.
43918func (srhree StatefulReplicaHealthReportExpiredEvent) AsChaosPartitionSecondaryMoveScheduledEvent() (*ChaosPartitionSecondaryMoveScheduledEvent, bool) {
43919	return nil, false
43920}
43921
43922// AsChaosPartitionPrimaryMoveScheduledEvent is the BasicFabricEvent implementation for StatefulReplicaHealthReportExpiredEvent.
43923func (srhree StatefulReplicaHealthReportExpiredEvent) AsChaosPartitionPrimaryMoveScheduledEvent() (*ChaosPartitionPrimaryMoveScheduledEvent, bool) {
43924	return nil, false
43925}
43926
43927// AsChaosReplicaRestartScheduledEvent is the BasicFabricEvent implementation for StatefulReplicaHealthReportExpiredEvent.
43928func (srhree StatefulReplicaHealthReportExpiredEvent) AsChaosReplicaRestartScheduledEvent() (*ChaosReplicaRestartScheduledEvent, bool) {
43929	return nil, false
43930}
43931
43932// AsChaosNodeRestartScheduledEvent is the BasicFabricEvent implementation for StatefulReplicaHealthReportExpiredEvent.
43933func (srhree StatefulReplicaHealthReportExpiredEvent) AsChaosNodeRestartScheduledEvent() (*ChaosNodeRestartScheduledEvent, bool) {
43934	return nil, false
43935}
43936
43937// AsFabricEvent is the BasicFabricEvent implementation for StatefulReplicaHealthReportExpiredEvent.
43938func (srhree StatefulReplicaHealthReportExpiredEvent) AsFabricEvent() (*FabricEvent, bool) {
43939	return nil, false
43940}
43941
43942// AsBasicFabricEvent is the BasicFabricEvent implementation for StatefulReplicaHealthReportExpiredEvent.
43943func (srhree StatefulReplicaHealthReportExpiredEvent) AsBasicFabricEvent() (BasicFabricEvent, bool) {
43944	return &srhree, true
43945}
43946
43947// StatefulReplicaNewHealthReportEvent stateful Replica Health Report Created event.
43948type StatefulReplicaNewHealthReportEvent struct {
43949	// ReplicaInstanceID - Id of Replica instance.
43950	ReplicaInstanceID *int64 `json:"ReplicaInstanceId,omitempty"`
43951	// SourceID - Id of report source.
43952	SourceID *string `json:"SourceId,omitempty"`
43953	// Property - Describes the property.
43954	Property *string `json:"Property,omitempty"`
43955	// HealthState - Describes the property health state.
43956	HealthState *string `json:"HealthState,omitempty"`
43957	// TimeToLiveMs - Time to live in milli-seconds.
43958	TimeToLiveMs *int64 `json:"TimeToLiveMs,omitempty"`
43959	// SequenceNumber - Sequence number of report.
43960	SequenceNumber *int64 `json:"SequenceNumber,omitempty"`
43961	// Description - Description of report.
43962	Description *string `json:"Description,omitempty"`
43963	// RemoveWhenExpired - Indicates the removal when it expires.
43964	RemoveWhenExpired *bool `json:"RemoveWhenExpired,omitempty"`
43965	// SourceUtcTimestamp - Source time.
43966	SourceUtcTimestamp *date.Time `json:"SourceUtcTimestamp,omitempty"`
43967	// 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.
43968	PartitionID *uuid.UUID `json:"PartitionId,omitempty"`
43969	// 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.
43970	ReplicaID *int64 `json:"ReplicaId,omitempty"`
43971	// EventInstanceID - The identifier for the FabricEvent instance.
43972	EventInstanceID *uuid.UUID `json:"EventInstanceId,omitempty"`
43973	// Category - The category of event.
43974	Category *string `json:"Category,omitempty"`
43975	// TimeStamp - The time event was logged.
43976	TimeStamp *date.Time `json:"TimeStamp,omitempty"`
43977	// HasCorrelatedEvents - Shows there is existing related events available.
43978	HasCorrelatedEvents *bool `json:"HasCorrelatedEvents,omitempty"`
43979	// 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'
43980	Kind KindBasicFabricEvent `json:"Kind,omitempty"`
43981}
43982
43983// MarshalJSON is the custom marshaler for StatefulReplicaNewHealthReportEvent.
43984func (srnhre StatefulReplicaNewHealthReportEvent) MarshalJSON() ([]byte, error) {
43985	srnhre.Kind = KindStatefulReplicaNewHealthReport
43986	objectMap := make(map[string]interface{})
43987	if srnhre.ReplicaInstanceID != nil {
43988		objectMap["ReplicaInstanceId"] = srnhre.ReplicaInstanceID
43989	}
43990	if srnhre.SourceID != nil {
43991		objectMap["SourceId"] = srnhre.SourceID
43992	}
43993	if srnhre.Property != nil {
43994		objectMap["Property"] = srnhre.Property
43995	}
43996	if srnhre.HealthState != nil {
43997		objectMap["HealthState"] = srnhre.HealthState
43998	}
43999	if srnhre.TimeToLiveMs != nil {
44000		objectMap["TimeToLiveMs"] = srnhre.TimeToLiveMs
44001	}
44002	if srnhre.SequenceNumber != nil {
44003		objectMap["SequenceNumber"] = srnhre.SequenceNumber
44004	}
44005	if srnhre.Description != nil {
44006		objectMap["Description"] = srnhre.Description
44007	}
44008	if srnhre.RemoveWhenExpired != nil {
44009		objectMap["RemoveWhenExpired"] = srnhre.RemoveWhenExpired
44010	}
44011	if srnhre.SourceUtcTimestamp != nil {
44012		objectMap["SourceUtcTimestamp"] = srnhre.SourceUtcTimestamp
44013	}
44014	if srnhre.PartitionID != nil {
44015		objectMap["PartitionId"] = srnhre.PartitionID
44016	}
44017	if srnhre.ReplicaID != nil {
44018		objectMap["ReplicaId"] = srnhre.ReplicaID
44019	}
44020	if srnhre.EventInstanceID != nil {
44021		objectMap["EventInstanceId"] = srnhre.EventInstanceID
44022	}
44023	if srnhre.Category != nil {
44024		objectMap["Category"] = srnhre.Category
44025	}
44026	if srnhre.TimeStamp != nil {
44027		objectMap["TimeStamp"] = srnhre.TimeStamp
44028	}
44029	if srnhre.HasCorrelatedEvents != nil {
44030		objectMap["HasCorrelatedEvents"] = srnhre.HasCorrelatedEvents
44031	}
44032	if srnhre.Kind != "" {
44033		objectMap["Kind"] = srnhre.Kind
44034	}
44035	return json.Marshal(objectMap)
44036}
44037
44038// AsApplicationEvent is the BasicFabricEvent implementation for StatefulReplicaNewHealthReportEvent.
44039func (srnhre StatefulReplicaNewHealthReportEvent) AsApplicationEvent() (*ApplicationEvent, bool) {
44040	return nil, false
44041}
44042
44043// AsBasicApplicationEvent is the BasicFabricEvent implementation for StatefulReplicaNewHealthReportEvent.
44044func (srnhre StatefulReplicaNewHealthReportEvent) AsBasicApplicationEvent() (BasicApplicationEvent, bool) {
44045	return nil, false
44046}
44047
44048// AsClusterEvent is the BasicFabricEvent implementation for StatefulReplicaNewHealthReportEvent.
44049func (srnhre StatefulReplicaNewHealthReportEvent) AsClusterEvent() (*ClusterEvent, bool) {
44050	return nil, false
44051}
44052
44053// AsBasicClusterEvent is the BasicFabricEvent implementation for StatefulReplicaNewHealthReportEvent.
44054func (srnhre StatefulReplicaNewHealthReportEvent) AsBasicClusterEvent() (BasicClusterEvent, bool) {
44055	return nil, false
44056}
44057
44058// AsContainerInstanceEvent is the BasicFabricEvent implementation for StatefulReplicaNewHealthReportEvent.
44059func (srnhre StatefulReplicaNewHealthReportEvent) AsContainerInstanceEvent() (*ContainerInstanceEvent, bool) {
44060	return nil, false
44061}
44062
44063// AsNodeEvent is the BasicFabricEvent implementation for StatefulReplicaNewHealthReportEvent.
44064func (srnhre StatefulReplicaNewHealthReportEvent) AsNodeEvent() (*NodeEvent, bool) {
44065	return nil, false
44066}
44067
44068// AsBasicNodeEvent is the BasicFabricEvent implementation for StatefulReplicaNewHealthReportEvent.
44069func (srnhre StatefulReplicaNewHealthReportEvent) AsBasicNodeEvent() (BasicNodeEvent, bool) {
44070	return nil, false
44071}
44072
44073// AsPartitionAnalysisEvent is the BasicFabricEvent implementation for StatefulReplicaNewHealthReportEvent.
44074func (srnhre StatefulReplicaNewHealthReportEvent) AsPartitionAnalysisEvent() (*PartitionAnalysisEvent, bool) {
44075	return nil, false
44076}
44077
44078// AsBasicPartitionAnalysisEvent is the BasicFabricEvent implementation for StatefulReplicaNewHealthReportEvent.
44079func (srnhre StatefulReplicaNewHealthReportEvent) AsBasicPartitionAnalysisEvent() (BasicPartitionAnalysisEvent, bool) {
44080	return nil, false
44081}
44082
44083// AsPartitionEvent is the BasicFabricEvent implementation for StatefulReplicaNewHealthReportEvent.
44084func (srnhre StatefulReplicaNewHealthReportEvent) AsPartitionEvent() (*PartitionEvent, bool) {
44085	return nil, false
44086}
44087
44088// AsBasicPartitionEvent is the BasicFabricEvent implementation for StatefulReplicaNewHealthReportEvent.
44089func (srnhre StatefulReplicaNewHealthReportEvent) AsBasicPartitionEvent() (BasicPartitionEvent, bool) {
44090	return nil, false
44091}
44092
44093// AsReplicaEvent is the BasicFabricEvent implementation for StatefulReplicaNewHealthReportEvent.
44094func (srnhre StatefulReplicaNewHealthReportEvent) AsReplicaEvent() (*ReplicaEvent, bool) {
44095	return nil, false
44096}
44097
44098// AsBasicReplicaEvent is the BasicFabricEvent implementation for StatefulReplicaNewHealthReportEvent.
44099func (srnhre StatefulReplicaNewHealthReportEvent) AsBasicReplicaEvent() (BasicReplicaEvent, bool) {
44100	return &srnhre, true
44101}
44102
44103// AsServiceEvent is the BasicFabricEvent implementation for StatefulReplicaNewHealthReportEvent.
44104func (srnhre StatefulReplicaNewHealthReportEvent) AsServiceEvent() (*ServiceEvent, bool) {
44105	return nil, false
44106}
44107
44108// AsBasicServiceEvent is the BasicFabricEvent implementation for StatefulReplicaNewHealthReportEvent.
44109func (srnhre StatefulReplicaNewHealthReportEvent) AsBasicServiceEvent() (BasicServiceEvent, bool) {
44110	return nil, false
44111}
44112
44113// AsApplicationCreatedEvent is the BasicFabricEvent implementation for StatefulReplicaNewHealthReportEvent.
44114func (srnhre StatefulReplicaNewHealthReportEvent) AsApplicationCreatedEvent() (*ApplicationCreatedEvent, bool) {
44115	return nil, false
44116}
44117
44118// AsApplicationDeletedEvent is the BasicFabricEvent implementation for StatefulReplicaNewHealthReportEvent.
44119func (srnhre StatefulReplicaNewHealthReportEvent) AsApplicationDeletedEvent() (*ApplicationDeletedEvent, bool) {
44120	return nil, false
44121}
44122
44123// AsApplicationNewHealthReportEvent is the BasicFabricEvent implementation for StatefulReplicaNewHealthReportEvent.
44124func (srnhre StatefulReplicaNewHealthReportEvent) AsApplicationNewHealthReportEvent() (*ApplicationNewHealthReportEvent, bool) {
44125	return nil, false
44126}
44127
44128// AsApplicationHealthReportExpiredEvent is the BasicFabricEvent implementation for StatefulReplicaNewHealthReportEvent.
44129func (srnhre StatefulReplicaNewHealthReportEvent) AsApplicationHealthReportExpiredEvent() (*ApplicationHealthReportExpiredEvent, bool) {
44130	return nil, false
44131}
44132
44133// AsApplicationUpgradeCompletedEvent is the BasicFabricEvent implementation for StatefulReplicaNewHealthReportEvent.
44134func (srnhre StatefulReplicaNewHealthReportEvent) AsApplicationUpgradeCompletedEvent() (*ApplicationUpgradeCompletedEvent, bool) {
44135	return nil, false
44136}
44137
44138// AsApplicationUpgradeDomainCompletedEvent is the BasicFabricEvent implementation for StatefulReplicaNewHealthReportEvent.
44139func (srnhre StatefulReplicaNewHealthReportEvent) AsApplicationUpgradeDomainCompletedEvent() (*ApplicationUpgradeDomainCompletedEvent, bool) {
44140	return nil, false
44141}
44142
44143// AsApplicationUpgradeRollbackCompletedEvent is the BasicFabricEvent implementation for StatefulReplicaNewHealthReportEvent.
44144func (srnhre StatefulReplicaNewHealthReportEvent) AsApplicationUpgradeRollbackCompletedEvent() (*ApplicationUpgradeRollbackCompletedEvent, bool) {
44145	return nil, false
44146}
44147
44148// AsApplicationUpgradeRollbackStartedEvent is the BasicFabricEvent implementation for StatefulReplicaNewHealthReportEvent.
44149func (srnhre StatefulReplicaNewHealthReportEvent) AsApplicationUpgradeRollbackStartedEvent() (*ApplicationUpgradeRollbackStartedEvent, bool) {
44150	return nil, false
44151}
44152
44153// AsApplicationUpgradeStartedEvent is the BasicFabricEvent implementation for StatefulReplicaNewHealthReportEvent.
44154func (srnhre StatefulReplicaNewHealthReportEvent) AsApplicationUpgradeStartedEvent() (*ApplicationUpgradeStartedEvent, bool) {
44155	return nil, false
44156}
44157
44158// AsDeployedApplicationNewHealthReportEvent is the BasicFabricEvent implementation for StatefulReplicaNewHealthReportEvent.
44159func (srnhre StatefulReplicaNewHealthReportEvent) AsDeployedApplicationNewHealthReportEvent() (*DeployedApplicationNewHealthReportEvent, bool) {
44160	return nil, false
44161}
44162
44163// AsDeployedApplicationHealthReportExpiredEvent is the BasicFabricEvent implementation for StatefulReplicaNewHealthReportEvent.
44164func (srnhre StatefulReplicaNewHealthReportEvent) AsDeployedApplicationHealthReportExpiredEvent() (*DeployedApplicationHealthReportExpiredEvent, bool) {
44165	return nil, false
44166}
44167
44168// AsApplicationProcessExitedEvent is the BasicFabricEvent implementation for StatefulReplicaNewHealthReportEvent.
44169func (srnhre StatefulReplicaNewHealthReportEvent) AsApplicationProcessExitedEvent() (*ApplicationProcessExitedEvent, bool) {
44170	return nil, false
44171}
44172
44173// AsApplicationContainerInstanceExitedEvent is the BasicFabricEvent implementation for StatefulReplicaNewHealthReportEvent.
44174func (srnhre StatefulReplicaNewHealthReportEvent) AsApplicationContainerInstanceExitedEvent() (*ApplicationContainerInstanceExitedEvent, bool) {
44175	return nil, false
44176}
44177
44178// AsNodeAbortedEvent is the BasicFabricEvent implementation for StatefulReplicaNewHealthReportEvent.
44179func (srnhre StatefulReplicaNewHealthReportEvent) AsNodeAbortedEvent() (*NodeAbortedEvent, bool) {
44180	return nil, false
44181}
44182
44183// AsNodeAddedToClusterEvent is the BasicFabricEvent implementation for StatefulReplicaNewHealthReportEvent.
44184func (srnhre StatefulReplicaNewHealthReportEvent) AsNodeAddedToClusterEvent() (*NodeAddedToClusterEvent, bool) {
44185	return nil, false
44186}
44187
44188// AsNodeClosedEvent is the BasicFabricEvent implementation for StatefulReplicaNewHealthReportEvent.
44189func (srnhre StatefulReplicaNewHealthReportEvent) AsNodeClosedEvent() (*NodeClosedEvent, bool) {
44190	return nil, false
44191}
44192
44193// AsNodeDeactivateCompletedEvent is the BasicFabricEvent implementation for StatefulReplicaNewHealthReportEvent.
44194func (srnhre StatefulReplicaNewHealthReportEvent) AsNodeDeactivateCompletedEvent() (*NodeDeactivateCompletedEvent, bool) {
44195	return nil, false
44196}
44197
44198// AsNodeDeactivateStartedEvent is the BasicFabricEvent implementation for StatefulReplicaNewHealthReportEvent.
44199func (srnhre StatefulReplicaNewHealthReportEvent) AsNodeDeactivateStartedEvent() (*NodeDeactivateStartedEvent, bool) {
44200	return nil, false
44201}
44202
44203// AsNodeDownEvent is the BasicFabricEvent implementation for StatefulReplicaNewHealthReportEvent.
44204func (srnhre StatefulReplicaNewHealthReportEvent) AsNodeDownEvent() (*NodeDownEvent, bool) {
44205	return nil, false
44206}
44207
44208// AsNodeNewHealthReportEvent is the BasicFabricEvent implementation for StatefulReplicaNewHealthReportEvent.
44209func (srnhre StatefulReplicaNewHealthReportEvent) AsNodeNewHealthReportEvent() (*NodeNewHealthReportEvent, bool) {
44210	return nil, false
44211}
44212
44213// AsNodeHealthReportExpiredEvent is the BasicFabricEvent implementation for StatefulReplicaNewHealthReportEvent.
44214func (srnhre StatefulReplicaNewHealthReportEvent) AsNodeHealthReportExpiredEvent() (*NodeHealthReportExpiredEvent, bool) {
44215	return nil, false
44216}
44217
44218// AsNodeOpenSucceededEvent is the BasicFabricEvent implementation for StatefulReplicaNewHealthReportEvent.
44219func (srnhre StatefulReplicaNewHealthReportEvent) AsNodeOpenSucceededEvent() (*NodeOpenSucceededEvent, bool) {
44220	return nil, false
44221}
44222
44223// AsNodeOpenFailedEvent is the BasicFabricEvent implementation for StatefulReplicaNewHealthReportEvent.
44224func (srnhre StatefulReplicaNewHealthReportEvent) AsNodeOpenFailedEvent() (*NodeOpenFailedEvent, bool) {
44225	return nil, false
44226}
44227
44228// AsNodeRemovedFromClusterEvent is the BasicFabricEvent implementation for StatefulReplicaNewHealthReportEvent.
44229func (srnhre StatefulReplicaNewHealthReportEvent) AsNodeRemovedFromClusterEvent() (*NodeRemovedFromClusterEvent, bool) {
44230	return nil, false
44231}
44232
44233// AsNodeUpEvent is the BasicFabricEvent implementation for StatefulReplicaNewHealthReportEvent.
44234func (srnhre StatefulReplicaNewHealthReportEvent) AsNodeUpEvent() (*NodeUpEvent, bool) {
44235	return nil, false
44236}
44237
44238// AsPartitionNewHealthReportEvent is the BasicFabricEvent implementation for StatefulReplicaNewHealthReportEvent.
44239func (srnhre StatefulReplicaNewHealthReportEvent) AsPartitionNewHealthReportEvent() (*PartitionNewHealthReportEvent, bool) {
44240	return nil, false
44241}
44242
44243// AsPartitionHealthReportExpiredEvent is the BasicFabricEvent implementation for StatefulReplicaNewHealthReportEvent.
44244func (srnhre StatefulReplicaNewHealthReportEvent) AsPartitionHealthReportExpiredEvent() (*PartitionHealthReportExpiredEvent, bool) {
44245	return nil, false
44246}
44247
44248// AsPartitionReconfiguredEvent is the BasicFabricEvent implementation for StatefulReplicaNewHealthReportEvent.
44249func (srnhre StatefulReplicaNewHealthReportEvent) AsPartitionReconfiguredEvent() (*PartitionReconfiguredEvent, bool) {
44250	return nil, false
44251}
44252
44253// AsPartitionPrimaryMoveAnalysisEvent is the BasicFabricEvent implementation for StatefulReplicaNewHealthReportEvent.
44254func (srnhre StatefulReplicaNewHealthReportEvent) AsPartitionPrimaryMoveAnalysisEvent() (*PartitionPrimaryMoveAnalysisEvent, bool) {
44255	return nil, false
44256}
44257
44258// AsServiceCreatedEvent is the BasicFabricEvent implementation for StatefulReplicaNewHealthReportEvent.
44259func (srnhre StatefulReplicaNewHealthReportEvent) AsServiceCreatedEvent() (*ServiceCreatedEvent, bool) {
44260	return nil, false
44261}
44262
44263// AsServiceDeletedEvent is the BasicFabricEvent implementation for StatefulReplicaNewHealthReportEvent.
44264func (srnhre StatefulReplicaNewHealthReportEvent) AsServiceDeletedEvent() (*ServiceDeletedEvent, bool) {
44265	return nil, false
44266}
44267
44268// AsServiceNewHealthReportEvent is the BasicFabricEvent implementation for StatefulReplicaNewHealthReportEvent.
44269func (srnhre StatefulReplicaNewHealthReportEvent) AsServiceNewHealthReportEvent() (*ServiceNewHealthReportEvent, bool) {
44270	return nil, false
44271}
44272
44273// AsServiceHealthReportExpiredEvent is the BasicFabricEvent implementation for StatefulReplicaNewHealthReportEvent.
44274func (srnhre StatefulReplicaNewHealthReportEvent) AsServiceHealthReportExpiredEvent() (*ServiceHealthReportExpiredEvent, bool) {
44275	return nil, false
44276}
44277
44278// AsDeployedServicePackageNewHealthReportEvent is the BasicFabricEvent implementation for StatefulReplicaNewHealthReportEvent.
44279func (srnhre StatefulReplicaNewHealthReportEvent) AsDeployedServicePackageNewHealthReportEvent() (*DeployedServicePackageNewHealthReportEvent, bool) {
44280	return nil, false
44281}
44282
44283// AsDeployedServicePackageHealthReportExpiredEvent is the BasicFabricEvent implementation for StatefulReplicaNewHealthReportEvent.
44284func (srnhre StatefulReplicaNewHealthReportEvent) AsDeployedServicePackageHealthReportExpiredEvent() (*DeployedServicePackageHealthReportExpiredEvent, bool) {
44285	return nil, false
44286}
44287
44288// AsStatefulReplicaNewHealthReportEvent is the BasicFabricEvent implementation for StatefulReplicaNewHealthReportEvent.
44289func (srnhre StatefulReplicaNewHealthReportEvent) AsStatefulReplicaNewHealthReportEvent() (*StatefulReplicaNewHealthReportEvent, bool) {
44290	return &srnhre, true
44291}
44292
44293// AsStatefulReplicaHealthReportExpiredEvent is the BasicFabricEvent implementation for StatefulReplicaNewHealthReportEvent.
44294func (srnhre StatefulReplicaNewHealthReportEvent) AsStatefulReplicaHealthReportExpiredEvent() (*StatefulReplicaHealthReportExpiredEvent, bool) {
44295	return nil, false
44296}
44297
44298// AsStatelessReplicaNewHealthReportEvent is the BasicFabricEvent implementation for StatefulReplicaNewHealthReportEvent.
44299func (srnhre StatefulReplicaNewHealthReportEvent) AsStatelessReplicaNewHealthReportEvent() (*StatelessReplicaNewHealthReportEvent, bool) {
44300	return nil, false
44301}
44302
44303// AsStatelessReplicaHealthReportExpiredEvent is the BasicFabricEvent implementation for StatefulReplicaNewHealthReportEvent.
44304func (srnhre StatefulReplicaNewHealthReportEvent) AsStatelessReplicaHealthReportExpiredEvent() (*StatelessReplicaHealthReportExpiredEvent, bool) {
44305	return nil, false
44306}
44307
44308// AsClusterNewHealthReportEvent is the BasicFabricEvent implementation for StatefulReplicaNewHealthReportEvent.
44309func (srnhre StatefulReplicaNewHealthReportEvent) AsClusterNewHealthReportEvent() (*ClusterNewHealthReportEvent, bool) {
44310	return nil, false
44311}
44312
44313// AsClusterHealthReportExpiredEvent is the BasicFabricEvent implementation for StatefulReplicaNewHealthReportEvent.
44314func (srnhre StatefulReplicaNewHealthReportEvent) AsClusterHealthReportExpiredEvent() (*ClusterHealthReportExpiredEvent, bool) {
44315	return nil, false
44316}
44317
44318// AsClusterUpgradeCompletedEvent is the BasicFabricEvent implementation for StatefulReplicaNewHealthReportEvent.
44319func (srnhre StatefulReplicaNewHealthReportEvent) AsClusterUpgradeCompletedEvent() (*ClusterUpgradeCompletedEvent, bool) {
44320	return nil, false
44321}
44322
44323// AsClusterUpgradeDomainCompletedEvent is the BasicFabricEvent implementation for StatefulReplicaNewHealthReportEvent.
44324func (srnhre StatefulReplicaNewHealthReportEvent) AsClusterUpgradeDomainCompletedEvent() (*ClusterUpgradeDomainCompletedEvent, bool) {
44325	return nil, false
44326}
44327
44328// AsClusterUpgradeRollbackCompletedEvent is the BasicFabricEvent implementation for StatefulReplicaNewHealthReportEvent.
44329func (srnhre StatefulReplicaNewHealthReportEvent) AsClusterUpgradeRollbackCompletedEvent() (*ClusterUpgradeRollbackCompletedEvent, bool) {
44330	return nil, false
44331}
44332
44333// AsClusterUpgradeRollbackStartedEvent is the BasicFabricEvent implementation for StatefulReplicaNewHealthReportEvent.
44334func (srnhre StatefulReplicaNewHealthReportEvent) AsClusterUpgradeRollbackStartedEvent() (*ClusterUpgradeRollbackStartedEvent, bool) {
44335	return nil, false
44336}
44337
44338// AsClusterUpgradeStartedEvent is the BasicFabricEvent implementation for StatefulReplicaNewHealthReportEvent.
44339func (srnhre StatefulReplicaNewHealthReportEvent) AsClusterUpgradeStartedEvent() (*ClusterUpgradeStartedEvent, bool) {
44340	return nil, false
44341}
44342
44343// AsChaosStoppedEvent is the BasicFabricEvent implementation for StatefulReplicaNewHealthReportEvent.
44344func (srnhre StatefulReplicaNewHealthReportEvent) AsChaosStoppedEvent() (*ChaosStoppedEvent, bool) {
44345	return nil, false
44346}
44347
44348// AsChaosStartedEvent is the BasicFabricEvent implementation for StatefulReplicaNewHealthReportEvent.
44349func (srnhre StatefulReplicaNewHealthReportEvent) AsChaosStartedEvent() (*ChaosStartedEvent, bool) {
44350	return nil, false
44351}
44352
44353// AsChaosCodePackageRestartScheduledEvent is the BasicFabricEvent implementation for StatefulReplicaNewHealthReportEvent.
44354func (srnhre StatefulReplicaNewHealthReportEvent) AsChaosCodePackageRestartScheduledEvent() (*ChaosCodePackageRestartScheduledEvent, bool) {
44355	return nil, false
44356}
44357
44358// AsChaosReplicaRemovalScheduledEvent is the BasicFabricEvent implementation for StatefulReplicaNewHealthReportEvent.
44359func (srnhre StatefulReplicaNewHealthReportEvent) AsChaosReplicaRemovalScheduledEvent() (*ChaosReplicaRemovalScheduledEvent, bool) {
44360	return nil, false
44361}
44362
44363// AsChaosPartitionSecondaryMoveScheduledEvent is the BasicFabricEvent implementation for StatefulReplicaNewHealthReportEvent.
44364func (srnhre StatefulReplicaNewHealthReportEvent) AsChaosPartitionSecondaryMoveScheduledEvent() (*ChaosPartitionSecondaryMoveScheduledEvent, bool) {
44365	return nil, false
44366}
44367
44368// AsChaosPartitionPrimaryMoveScheduledEvent is the BasicFabricEvent implementation for StatefulReplicaNewHealthReportEvent.
44369func (srnhre StatefulReplicaNewHealthReportEvent) AsChaosPartitionPrimaryMoveScheduledEvent() (*ChaosPartitionPrimaryMoveScheduledEvent, bool) {
44370	return nil, false
44371}
44372
44373// AsChaosReplicaRestartScheduledEvent is the BasicFabricEvent implementation for StatefulReplicaNewHealthReportEvent.
44374func (srnhre StatefulReplicaNewHealthReportEvent) AsChaosReplicaRestartScheduledEvent() (*ChaosReplicaRestartScheduledEvent, bool) {
44375	return nil, false
44376}
44377
44378// AsChaosNodeRestartScheduledEvent is the BasicFabricEvent implementation for StatefulReplicaNewHealthReportEvent.
44379func (srnhre StatefulReplicaNewHealthReportEvent) AsChaosNodeRestartScheduledEvent() (*ChaosNodeRestartScheduledEvent, bool) {
44380	return nil, false
44381}
44382
44383// AsFabricEvent is the BasicFabricEvent implementation for StatefulReplicaNewHealthReportEvent.
44384func (srnhre StatefulReplicaNewHealthReportEvent) AsFabricEvent() (*FabricEvent, bool) {
44385	return nil, false
44386}
44387
44388// AsBasicFabricEvent is the BasicFabricEvent implementation for StatefulReplicaNewHealthReportEvent.
44389func (srnhre StatefulReplicaNewHealthReportEvent) AsBasicFabricEvent() (BasicFabricEvent, bool) {
44390	return &srnhre, true
44391}
44392
44393// StatefulServiceDescription describes a stateful service.
44394type StatefulServiceDescription struct {
44395	// TargetReplicaSetSize - The target replica set size as a number.
44396	TargetReplicaSetSize *int32 `json:"TargetReplicaSetSize,omitempty"`
44397	// MinReplicaSetSize - The minimum replica set size as a number.
44398	MinReplicaSetSize *int32 `json:"MinReplicaSetSize,omitempty"`
44399	// 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.
44400	HasPersistedState *bool `json:"HasPersistedState,omitempty"`
44401	// 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.
44402	// This property can be a combination of those flags obtained using bitwise 'OR' operator.
44403	// For example, if the provided value is 6 then the flags for QuorumLossWaitDuration (2) and StandByReplicaKeepDuration(4) are set.
44404	// - None - Does not indicate any other properties are set. The value is zero.
44405	// - ReplicaRestartWaitDuration - Indicates the ReplicaRestartWaitDuration property is set. The value is 1.
44406	// - QuorumLossWaitDuration - Indicates the QuorumLossWaitDuration property is set. The value is 2.
44407	// - StandByReplicaKeepDuration - Indicates the StandByReplicaKeepDuration property is set. The value is 4.
44408	// - ServicePlacementTimeLimit - Indicates the ServicePlacementTimeLimit property is set. The value is 8.
44409	// - DropSourceReplicaOnMove - Indicates the DropSourceReplicaOnMove property is set. The value is 16.
44410	Flags *int32 `json:"Flags,omitempty"`
44411	// ReplicaRestartWaitDurationSeconds - The duration, in seconds, between when a replica goes down and when a new replica is created.
44412	ReplicaRestartWaitDurationSeconds *int64 `json:"ReplicaRestartWaitDurationSeconds,omitempty"`
44413	// QuorumLossWaitDurationSeconds - The maximum duration, in seconds, for which a partition is allowed to be in a state of quorum loss.
44414	QuorumLossWaitDurationSeconds *int64 `json:"QuorumLossWaitDurationSeconds,omitempty"`
44415	// StandByReplicaKeepDurationSeconds - The definition on how long StandBy replicas should be maintained before being removed.
44416	StandByReplicaKeepDurationSeconds *int64 `json:"StandByReplicaKeepDurationSeconds,omitempty"`
44417	// ServicePlacementTimeLimitSeconds - The duration for which replicas can stay InBuild before reporting that build is stuck.
44418	ServicePlacementTimeLimitSeconds *int64 `json:"ServicePlacementTimeLimitSeconds,omitempty"`
44419	// DropSourceReplicaOnMove - Indicates whether to drop source Secondary replica even if the target replica has not finished build. If desired behavior is to drop it as soon as possible the value of this property is true, if not it is false.
44420	DropSourceReplicaOnMove *bool `json:"DropSourceReplicaOnMove,omitempty"`
44421	// ApplicationName - The name of the application, including the 'fabric:' URI scheme.
44422	ApplicationName *string `json:"ApplicationName,omitempty"`
44423	// ServiceName - The full name of the service with 'fabric:' URI scheme.
44424	ServiceName *string `json:"ServiceName,omitempty"`
44425	// ServiceTypeName - Name of the service type as specified in the service manifest.
44426	ServiceTypeName *string `json:"ServiceTypeName,omitempty"`
44427	// InitializationData - The initialization data as an array of bytes. Initialization data is passed to service instances or replicas when they are created.
44428	InitializationData *[]int32 `json:"InitializationData,omitempty"`
44429	// PartitionDescription - The partition description as an object.
44430	PartitionDescription BasicPartitionSchemeDescription `json:"PartitionDescription,omitempty"`
44431	// 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)".
44432	PlacementConstraints *string `json:"PlacementConstraints,omitempty"`
44433	// CorrelationScheme - The correlation scheme.
44434	CorrelationScheme *[]ServiceCorrelationDescription `json:"CorrelationScheme,omitempty"`
44435	// ServiceLoadMetrics - The service load metrics.
44436	ServiceLoadMetrics *[]ServiceLoadMetricDescription `json:"ServiceLoadMetrics,omitempty"`
44437	// ServicePlacementPolicies - The service placement policies.
44438	ServicePlacementPolicies *[]BasicServicePlacementPolicyDescription `json:"ServicePlacementPolicies,omitempty"`
44439	// DefaultMoveCost - The move cost for the service. Possible values include: 'Zero', 'Low', 'Medium', 'High', 'VeryHigh'
44440	DefaultMoveCost MoveCost `json:"DefaultMoveCost,omitempty"`
44441	// IsDefaultMoveCostSpecified - Indicates if the DefaultMoveCost property is specified.
44442	IsDefaultMoveCostSpecified *bool `json:"IsDefaultMoveCostSpecified,omitempty"`
44443	// ServicePackageActivationMode - The activation mode of service package to be used for a service. Possible values include: 'SharedProcess', 'ExclusiveProcess'
44444	ServicePackageActivationMode ServicePackageActivationMode `json:"ServicePackageActivationMode,omitempty"`
44445	// ServiceDNSName - The DNS name of the service. It requires the DNS system service to be enabled in Service Fabric cluster.
44446	ServiceDNSName *string `json:"ServiceDnsName,omitempty"`
44447	// ScalingPolicies - Scaling policies for this service.
44448	ScalingPolicies *[]ScalingPolicyDescription `json:"ScalingPolicies,omitempty"`
44449	// ServiceKind - Possible values include: 'ServiceKindBasicServiceDescriptionServiceKindServiceDescription', 'ServiceKindBasicServiceDescriptionServiceKindStateful', 'ServiceKindBasicServiceDescriptionServiceKindStateless'
44450	ServiceKind ServiceKindBasicServiceDescription `json:"ServiceKind,omitempty"`
44451}
44452
44453// MarshalJSON is the custom marshaler for StatefulServiceDescription.
44454func (ssd StatefulServiceDescription) MarshalJSON() ([]byte, error) {
44455	ssd.ServiceKind = ServiceKindBasicServiceDescriptionServiceKindStateful
44456	objectMap := make(map[string]interface{})
44457	if ssd.TargetReplicaSetSize != nil {
44458		objectMap["TargetReplicaSetSize"] = ssd.TargetReplicaSetSize
44459	}
44460	if ssd.MinReplicaSetSize != nil {
44461		objectMap["MinReplicaSetSize"] = ssd.MinReplicaSetSize
44462	}
44463	if ssd.HasPersistedState != nil {
44464		objectMap["HasPersistedState"] = ssd.HasPersistedState
44465	}
44466	if ssd.Flags != nil {
44467		objectMap["Flags"] = ssd.Flags
44468	}
44469	if ssd.ReplicaRestartWaitDurationSeconds != nil {
44470		objectMap["ReplicaRestartWaitDurationSeconds"] = ssd.ReplicaRestartWaitDurationSeconds
44471	}
44472	if ssd.QuorumLossWaitDurationSeconds != nil {
44473		objectMap["QuorumLossWaitDurationSeconds"] = ssd.QuorumLossWaitDurationSeconds
44474	}
44475	if ssd.StandByReplicaKeepDurationSeconds != nil {
44476		objectMap["StandByReplicaKeepDurationSeconds"] = ssd.StandByReplicaKeepDurationSeconds
44477	}
44478	if ssd.ServicePlacementTimeLimitSeconds != nil {
44479		objectMap["ServicePlacementTimeLimitSeconds"] = ssd.ServicePlacementTimeLimitSeconds
44480	}
44481	if ssd.DropSourceReplicaOnMove != nil {
44482		objectMap["DropSourceReplicaOnMove"] = ssd.DropSourceReplicaOnMove
44483	}
44484	if ssd.ApplicationName != nil {
44485		objectMap["ApplicationName"] = ssd.ApplicationName
44486	}
44487	if ssd.ServiceName != nil {
44488		objectMap["ServiceName"] = ssd.ServiceName
44489	}
44490	if ssd.ServiceTypeName != nil {
44491		objectMap["ServiceTypeName"] = ssd.ServiceTypeName
44492	}
44493	if ssd.InitializationData != nil {
44494		objectMap["InitializationData"] = ssd.InitializationData
44495	}
44496	objectMap["PartitionDescription"] = ssd.PartitionDescription
44497	if ssd.PlacementConstraints != nil {
44498		objectMap["PlacementConstraints"] = ssd.PlacementConstraints
44499	}
44500	if ssd.CorrelationScheme != nil {
44501		objectMap["CorrelationScheme"] = ssd.CorrelationScheme
44502	}
44503	if ssd.ServiceLoadMetrics != nil {
44504		objectMap["ServiceLoadMetrics"] = ssd.ServiceLoadMetrics
44505	}
44506	if ssd.ServicePlacementPolicies != nil {
44507		objectMap["ServicePlacementPolicies"] = ssd.ServicePlacementPolicies
44508	}
44509	if ssd.DefaultMoveCost != "" {
44510		objectMap["DefaultMoveCost"] = ssd.DefaultMoveCost
44511	}
44512	if ssd.IsDefaultMoveCostSpecified != nil {
44513		objectMap["IsDefaultMoveCostSpecified"] = ssd.IsDefaultMoveCostSpecified
44514	}
44515	if ssd.ServicePackageActivationMode != "" {
44516		objectMap["ServicePackageActivationMode"] = ssd.ServicePackageActivationMode
44517	}
44518	if ssd.ServiceDNSName != nil {
44519		objectMap["ServiceDnsName"] = ssd.ServiceDNSName
44520	}
44521	if ssd.ScalingPolicies != nil {
44522		objectMap["ScalingPolicies"] = ssd.ScalingPolicies
44523	}
44524	if ssd.ServiceKind != "" {
44525		objectMap["ServiceKind"] = ssd.ServiceKind
44526	}
44527	return json.Marshal(objectMap)
44528}
44529
44530// AsStatefulServiceDescription is the BasicServiceDescription implementation for StatefulServiceDescription.
44531func (ssd StatefulServiceDescription) AsStatefulServiceDescription() (*StatefulServiceDescription, bool) {
44532	return &ssd, true
44533}
44534
44535// AsStatelessServiceDescription is the BasicServiceDescription implementation for StatefulServiceDescription.
44536func (ssd StatefulServiceDescription) AsStatelessServiceDescription() (*StatelessServiceDescription, bool) {
44537	return nil, false
44538}
44539
44540// AsServiceDescription is the BasicServiceDescription implementation for StatefulServiceDescription.
44541func (ssd StatefulServiceDescription) AsServiceDescription() (*ServiceDescription, bool) {
44542	return nil, false
44543}
44544
44545// AsBasicServiceDescription is the BasicServiceDescription implementation for StatefulServiceDescription.
44546func (ssd StatefulServiceDescription) AsBasicServiceDescription() (BasicServiceDescription, bool) {
44547	return &ssd, true
44548}
44549
44550// UnmarshalJSON is the custom unmarshaler for StatefulServiceDescription struct.
44551func (ssd *StatefulServiceDescription) UnmarshalJSON(body []byte) error {
44552	var m map[string]*json.RawMessage
44553	err := json.Unmarshal(body, &m)
44554	if err != nil {
44555		return err
44556	}
44557	for k, v := range m {
44558		switch k {
44559		case "TargetReplicaSetSize":
44560			if v != nil {
44561				var targetReplicaSetSize int32
44562				err = json.Unmarshal(*v, &targetReplicaSetSize)
44563				if err != nil {
44564					return err
44565				}
44566				ssd.TargetReplicaSetSize = &targetReplicaSetSize
44567			}
44568		case "MinReplicaSetSize":
44569			if v != nil {
44570				var minReplicaSetSize int32
44571				err = json.Unmarshal(*v, &minReplicaSetSize)
44572				if err != nil {
44573					return err
44574				}
44575				ssd.MinReplicaSetSize = &minReplicaSetSize
44576			}
44577		case "HasPersistedState":
44578			if v != nil {
44579				var hasPersistedState bool
44580				err = json.Unmarshal(*v, &hasPersistedState)
44581				if err != nil {
44582					return err
44583				}
44584				ssd.HasPersistedState = &hasPersistedState
44585			}
44586		case "Flags":
44587			if v != nil {
44588				var flags int32
44589				err = json.Unmarshal(*v, &flags)
44590				if err != nil {
44591					return err
44592				}
44593				ssd.Flags = &flags
44594			}
44595		case "ReplicaRestartWaitDurationSeconds":
44596			if v != nil {
44597				var replicaRestartWaitDurationSeconds int64
44598				err = json.Unmarshal(*v, &replicaRestartWaitDurationSeconds)
44599				if err != nil {
44600					return err
44601				}
44602				ssd.ReplicaRestartWaitDurationSeconds = &replicaRestartWaitDurationSeconds
44603			}
44604		case "QuorumLossWaitDurationSeconds":
44605			if v != nil {
44606				var quorumLossWaitDurationSeconds int64
44607				err = json.Unmarshal(*v, &quorumLossWaitDurationSeconds)
44608				if err != nil {
44609					return err
44610				}
44611				ssd.QuorumLossWaitDurationSeconds = &quorumLossWaitDurationSeconds
44612			}
44613		case "StandByReplicaKeepDurationSeconds":
44614			if v != nil {
44615				var standByReplicaKeepDurationSeconds int64
44616				err = json.Unmarshal(*v, &standByReplicaKeepDurationSeconds)
44617				if err != nil {
44618					return err
44619				}
44620				ssd.StandByReplicaKeepDurationSeconds = &standByReplicaKeepDurationSeconds
44621			}
44622		case "ServicePlacementTimeLimitSeconds":
44623			if v != nil {
44624				var servicePlacementTimeLimitSeconds int64
44625				err = json.Unmarshal(*v, &servicePlacementTimeLimitSeconds)
44626				if err != nil {
44627					return err
44628				}
44629				ssd.ServicePlacementTimeLimitSeconds = &servicePlacementTimeLimitSeconds
44630			}
44631		case "DropSourceReplicaOnMove":
44632			if v != nil {
44633				var dropSourceReplicaOnMove bool
44634				err = json.Unmarshal(*v, &dropSourceReplicaOnMove)
44635				if err != nil {
44636					return err
44637				}
44638				ssd.DropSourceReplicaOnMove = &dropSourceReplicaOnMove
44639			}
44640		case "ApplicationName":
44641			if v != nil {
44642				var applicationName string
44643				err = json.Unmarshal(*v, &applicationName)
44644				if err != nil {
44645					return err
44646				}
44647				ssd.ApplicationName = &applicationName
44648			}
44649		case "ServiceName":
44650			if v != nil {
44651				var serviceName string
44652				err = json.Unmarshal(*v, &serviceName)
44653				if err != nil {
44654					return err
44655				}
44656				ssd.ServiceName = &serviceName
44657			}
44658		case "ServiceTypeName":
44659			if v != nil {
44660				var serviceTypeName string
44661				err = json.Unmarshal(*v, &serviceTypeName)
44662				if err != nil {
44663					return err
44664				}
44665				ssd.ServiceTypeName = &serviceTypeName
44666			}
44667		case "InitializationData":
44668			if v != nil {
44669				var initializationData []int32
44670				err = json.Unmarshal(*v, &initializationData)
44671				if err != nil {
44672					return err
44673				}
44674				ssd.InitializationData = &initializationData
44675			}
44676		case "PartitionDescription":
44677			if v != nil {
44678				partitionDescription, err := unmarshalBasicPartitionSchemeDescription(*v)
44679				if err != nil {
44680					return err
44681				}
44682				ssd.PartitionDescription = partitionDescription
44683			}
44684		case "PlacementConstraints":
44685			if v != nil {
44686				var placementConstraints string
44687				err = json.Unmarshal(*v, &placementConstraints)
44688				if err != nil {
44689					return err
44690				}
44691				ssd.PlacementConstraints = &placementConstraints
44692			}
44693		case "CorrelationScheme":
44694			if v != nil {
44695				var correlationScheme []ServiceCorrelationDescription
44696				err = json.Unmarshal(*v, &correlationScheme)
44697				if err != nil {
44698					return err
44699				}
44700				ssd.CorrelationScheme = &correlationScheme
44701			}
44702		case "ServiceLoadMetrics":
44703			if v != nil {
44704				var serviceLoadMetrics []ServiceLoadMetricDescription
44705				err = json.Unmarshal(*v, &serviceLoadMetrics)
44706				if err != nil {
44707					return err
44708				}
44709				ssd.ServiceLoadMetrics = &serviceLoadMetrics
44710			}
44711		case "ServicePlacementPolicies":
44712			if v != nil {
44713				servicePlacementPolicies, err := unmarshalBasicServicePlacementPolicyDescriptionArray(*v)
44714				if err != nil {
44715					return err
44716				}
44717				ssd.ServicePlacementPolicies = &servicePlacementPolicies
44718			}
44719		case "DefaultMoveCost":
44720			if v != nil {
44721				var defaultMoveCost MoveCost
44722				err = json.Unmarshal(*v, &defaultMoveCost)
44723				if err != nil {
44724					return err
44725				}
44726				ssd.DefaultMoveCost = defaultMoveCost
44727			}
44728		case "IsDefaultMoveCostSpecified":
44729			if v != nil {
44730				var isDefaultMoveCostSpecified bool
44731				err = json.Unmarshal(*v, &isDefaultMoveCostSpecified)
44732				if err != nil {
44733					return err
44734				}
44735				ssd.IsDefaultMoveCostSpecified = &isDefaultMoveCostSpecified
44736			}
44737		case "ServicePackageActivationMode":
44738			if v != nil {
44739				var servicePackageActivationMode ServicePackageActivationMode
44740				err = json.Unmarshal(*v, &servicePackageActivationMode)
44741				if err != nil {
44742					return err
44743				}
44744				ssd.ServicePackageActivationMode = servicePackageActivationMode
44745			}
44746		case "ServiceDnsName":
44747			if v != nil {
44748				var serviceDNSName string
44749				err = json.Unmarshal(*v, &serviceDNSName)
44750				if err != nil {
44751					return err
44752				}
44753				ssd.ServiceDNSName = &serviceDNSName
44754			}
44755		case "ScalingPolicies":
44756			if v != nil {
44757				var scalingPolicies []ScalingPolicyDescription
44758				err = json.Unmarshal(*v, &scalingPolicies)
44759				if err != nil {
44760					return err
44761				}
44762				ssd.ScalingPolicies = &scalingPolicies
44763			}
44764		case "ServiceKind":
44765			if v != nil {
44766				var serviceKind ServiceKindBasicServiceDescription
44767				err = json.Unmarshal(*v, &serviceKind)
44768				if err != nil {
44769					return err
44770				}
44771				ssd.ServiceKind = serviceKind
44772			}
44773		}
44774	}
44775
44776	return nil
44777}
44778
44779// StatefulServiceInfo information about a stateful Service Fabric service.
44780type StatefulServiceInfo struct {
44781	// HasPersistedState - Whether the service has persisted state.
44782	HasPersistedState *bool `json:"HasPersistedState,omitempty"`
44783	// 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.
44784	// Starting in version 6.0, hierarchical names are delimited with the "\~" character. For example, if the service name is "fabric:/myapp/app1/svc1",
44785	// the service identity would be "myapp~app1\~svc1" in 6.0+ and "myapp/app1/svc1" in previous versions.
44786	ID *string `json:"Id,omitempty"`
44787	// Name - The full name of the service with 'fabric:' URI scheme.
44788	Name *string `json:"Name,omitempty"`
44789	// TypeName - Name of the service type as specified in the service manifest.
44790	TypeName *string `json:"TypeName,omitempty"`
44791	// ManifestVersion - The version of the service manifest.
44792	ManifestVersion *string `json:"ManifestVersion,omitempty"`
44793	// 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'
44794	HealthState HealthState `json:"HealthState,omitempty"`
44795	// ServiceStatus - The status of the application. Possible values include: 'ServiceStatusUnknown', 'ServiceStatusActive', 'ServiceStatusUpgrading', 'ServiceStatusDeleting', 'ServiceStatusCreating', 'ServiceStatusFailed'
44796	ServiceStatus ServiceStatus `json:"ServiceStatus,omitempty"`
44797	// IsServiceGroup - Whether the service is in a service group.
44798	IsServiceGroup *bool `json:"IsServiceGroup,omitempty"`
44799	// ServiceKind - Possible values include: 'ServiceKindBasicServiceInfoServiceKindServiceInfo', 'ServiceKindBasicServiceInfoServiceKindStateful', 'ServiceKindBasicServiceInfoServiceKindStateless'
44800	ServiceKind ServiceKindBasicServiceInfo `json:"ServiceKind,omitempty"`
44801}
44802
44803// MarshalJSON is the custom marshaler for StatefulServiceInfo.
44804func (ssi StatefulServiceInfo) MarshalJSON() ([]byte, error) {
44805	ssi.ServiceKind = ServiceKindBasicServiceInfoServiceKindStateful
44806	objectMap := make(map[string]interface{})
44807	if ssi.HasPersistedState != nil {
44808		objectMap["HasPersistedState"] = ssi.HasPersistedState
44809	}
44810	if ssi.ID != nil {
44811		objectMap["Id"] = ssi.ID
44812	}
44813	if ssi.Name != nil {
44814		objectMap["Name"] = ssi.Name
44815	}
44816	if ssi.TypeName != nil {
44817		objectMap["TypeName"] = ssi.TypeName
44818	}
44819	if ssi.ManifestVersion != nil {
44820		objectMap["ManifestVersion"] = ssi.ManifestVersion
44821	}
44822	if ssi.HealthState != "" {
44823		objectMap["HealthState"] = ssi.HealthState
44824	}
44825	if ssi.ServiceStatus != "" {
44826		objectMap["ServiceStatus"] = ssi.ServiceStatus
44827	}
44828	if ssi.IsServiceGroup != nil {
44829		objectMap["IsServiceGroup"] = ssi.IsServiceGroup
44830	}
44831	if ssi.ServiceKind != "" {
44832		objectMap["ServiceKind"] = ssi.ServiceKind
44833	}
44834	return json.Marshal(objectMap)
44835}
44836
44837// AsStatefulServiceInfo is the BasicServiceInfo implementation for StatefulServiceInfo.
44838func (ssi StatefulServiceInfo) AsStatefulServiceInfo() (*StatefulServiceInfo, bool) {
44839	return &ssi, true
44840}
44841
44842// AsStatelessServiceInfo is the BasicServiceInfo implementation for StatefulServiceInfo.
44843func (ssi StatefulServiceInfo) AsStatelessServiceInfo() (*StatelessServiceInfo, bool) {
44844	return nil, false
44845}
44846
44847// AsServiceInfo is the BasicServiceInfo implementation for StatefulServiceInfo.
44848func (ssi StatefulServiceInfo) AsServiceInfo() (*ServiceInfo, bool) {
44849	return nil, false
44850}
44851
44852// AsBasicServiceInfo is the BasicServiceInfo implementation for StatefulServiceInfo.
44853func (ssi StatefulServiceInfo) AsBasicServiceInfo() (BasicServiceInfo, bool) {
44854	return &ssi, true
44855}
44856
44857// StatefulServicePartitionInfo information about a partition of a stateful Service Fabric service..
44858type StatefulServicePartitionInfo struct {
44859	// TargetReplicaSetSize - The target replica set size as a number.
44860	TargetReplicaSetSize *int64 `json:"TargetReplicaSetSize,omitempty"`
44861	// MinReplicaSetSize - The minimum replica set size as a number.
44862	MinReplicaSetSize *int64 `json:"MinReplicaSetSize,omitempty"`
44863	// 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.
44864	LastQuorumLossDuration *string `json:"LastQuorumLossDuration,omitempty"`
44865	// 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.
44866	PrimaryEpoch *Epoch `json:"PrimaryEpoch,omitempty"`
44867	// 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'
44868	HealthState HealthState `json:"HealthState,omitempty"`
44869	// PartitionStatus - The status of the service fabric service partition. Possible values include: 'ServicePartitionStatusInvalid', 'ServicePartitionStatusReady', 'ServicePartitionStatusNotReady', 'ServicePartitionStatusInQuorumLoss', 'ServicePartitionStatusReconfiguring', 'ServicePartitionStatusDeleting'
44870	PartitionStatus ServicePartitionStatus `json:"PartitionStatus,omitempty"`
44871	// PartitionInformation - Information about the partition identity, partitioning scheme and keys supported by it.
44872	PartitionInformation BasicPartitionInformation `json:"PartitionInformation,omitempty"`
44873	// ServiceKind - Possible values include: 'ServiceKindBasicServicePartitionInfoServiceKindServicePartitionInfo', 'ServiceKindBasicServicePartitionInfoServiceKindStateful', 'ServiceKindBasicServicePartitionInfoServiceKindStateless'
44874	ServiceKind ServiceKindBasicServicePartitionInfo `json:"ServiceKind,omitempty"`
44875}
44876
44877// MarshalJSON is the custom marshaler for StatefulServicePartitionInfo.
44878func (sspi StatefulServicePartitionInfo) MarshalJSON() ([]byte, error) {
44879	sspi.ServiceKind = ServiceKindBasicServicePartitionInfoServiceKindStateful
44880	objectMap := make(map[string]interface{})
44881	if sspi.TargetReplicaSetSize != nil {
44882		objectMap["TargetReplicaSetSize"] = sspi.TargetReplicaSetSize
44883	}
44884	if sspi.MinReplicaSetSize != nil {
44885		objectMap["MinReplicaSetSize"] = sspi.MinReplicaSetSize
44886	}
44887	if sspi.LastQuorumLossDuration != nil {
44888		objectMap["LastQuorumLossDuration"] = sspi.LastQuorumLossDuration
44889	}
44890	if sspi.PrimaryEpoch != nil {
44891		objectMap["PrimaryEpoch"] = sspi.PrimaryEpoch
44892	}
44893	if sspi.HealthState != "" {
44894		objectMap["HealthState"] = sspi.HealthState
44895	}
44896	if sspi.PartitionStatus != "" {
44897		objectMap["PartitionStatus"] = sspi.PartitionStatus
44898	}
44899	objectMap["PartitionInformation"] = sspi.PartitionInformation
44900	if sspi.ServiceKind != "" {
44901		objectMap["ServiceKind"] = sspi.ServiceKind
44902	}
44903	return json.Marshal(objectMap)
44904}
44905
44906// AsStatefulServicePartitionInfo is the BasicServicePartitionInfo implementation for StatefulServicePartitionInfo.
44907func (sspi StatefulServicePartitionInfo) AsStatefulServicePartitionInfo() (*StatefulServicePartitionInfo, bool) {
44908	return &sspi, true
44909}
44910
44911// AsStatelessServicePartitionInfo is the BasicServicePartitionInfo implementation for StatefulServicePartitionInfo.
44912func (sspi StatefulServicePartitionInfo) AsStatelessServicePartitionInfo() (*StatelessServicePartitionInfo, bool) {
44913	return nil, false
44914}
44915
44916// AsServicePartitionInfo is the BasicServicePartitionInfo implementation for StatefulServicePartitionInfo.
44917func (sspi StatefulServicePartitionInfo) AsServicePartitionInfo() (*ServicePartitionInfo, bool) {
44918	return nil, false
44919}
44920
44921// AsBasicServicePartitionInfo is the BasicServicePartitionInfo implementation for StatefulServicePartitionInfo.
44922func (sspi StatefulServicePartitionInfo) AsBasicServicePartitionInfo() (BasicServicePartitionInfo, bool) {
44923	return &sspi, true
44924}
44925
44926// UnmarshalJSON is the custom unmarshaler for StatefulServicePartitionInfo struct.
44927func (sspi *StatefulServicePartitionInfo) UnmarshalJSON(body []byte) error {
44928	var m map[string]*json.RawMessage
44929	err := json.Unmarshal(body, &m)
44930	if err != nil {
44931		return err
44932	}
44933	for k, v := range m {
44934		switch k {
44935		case "TargetReplicaSetSize":
44936			if v != nil {
44937				var targetReplicaSetSize int64
44938				err = json.Unmarshal(*v, &targetReplicaSetSize)
44939				if err != nil {
44940					return err
44941				}
44942				sspi.TargetReplicaSetSize = &targetReplicaSetSize
44943			}
44944		case "MinReplicaSetSize":
44945			if v != nil {
44946				var minReplicaSetSize int64
44947				err = json.Unmarshal(*v, &minReplicaSetSize)
44948				if err != nil {
44949					return err
44950				}
44951				sspi.MinReplicaSetSize = &minReplicaSetSize
44952			}
44953		case "LastQuorumLossDuration":
44954			if v != nil {
44955				var lastQuorumLossDuration string
44956				err = json.Unmarshal(*v, &lastQuorumLossDuration)
44957				if err != nil {
44958					return err
44959				}
44960				sspi.LastQuorumLossDuration = &lastQuorumLossDuration
44961			}
44962		case "PrimaryEpoch":
44963			if v != nil {
44964				var primaryEpoch Epoch
44965				err = json.Unmarshal(*v, &primaryEpoch)
44966				if err != nil {
44967					return err
44968				}
44969				sspi.PrimaryEpoch = &primaryEpoch
44970			}
44971		case "HealthState":
44972			if v != nil {
44973				var healthState HealthState
44974				err = json.Unmarshal(*v, &healthState)
44975				if err != nil {
44976					return err
44977				}
44978				sspi.HealthState = healthState
44979			}
44980		case "PartitionStatus":
44981			if v != nil {
44982				var partitionStatus ServicePartitionStatus
44983				err = json.Unmarshal(*v, &partitionStatus)
44984				if err != nil {
44985					return err
44986				}
44987				sspi.PartitionStatus = partitionStatus
44988			}
44989		case "PartitionInformation":
44990			if v != nil {
44991				partitionInformation, err := unmarshalBasicPartitionInformation(*v)
44992				if err != nil {
44993					return err
44994				}
44995				sspi.PartitionInformation = partitionInformation
44996			}
44997		case "ServiceKind":
44998			if v != nil {
44999				var serviceKind ServiceKindBasicServicePartitionInfo
45000				err = json.Unmarshal(*v, &serviceKind)
45001				if err != nil {
45002					return err
45003				}
45004				sspi.ServiceKind = serviceKind
45005			}
45006		}
45007	}
45008
45009	return nil
45010}
45011
45012// StatefulServiceReplicaHealth represents the health of the stateful service replica.
45013// Contains the replica aggregated health state, the health events and the unhealthy evaluations.
45014type StatefulServiceReplicaHealth struct {
45015	// 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.
45016	ReplicaID *string `json:"ReplicaId,omitempty"`
45017	// PartitionID - Id of the partition to which this replica belongs.
45018	PartitionID *uuid.UUID `json:"PartitionId,omitempty"`
45019	// ServiceKind - Possible values include: 'ServiceKindBasicReplicaHealthServiceKindReplicaHealth', 'ServiceKindBasicReplicaHealthServiceKindStateful', 'ServiceKindBasicReplicaHealthServiceKindStateless'
45020	ServiceKind ServiceKindBasicReplicaHealth `json:"ServiceKind,omitempty"`
45021	// AggregatedHealthState - The HealthState representing the aggregated health state of the entity computed by Health Manager.
45022	// The health evaluation of the entity reflects all events reported on the entity and its children (if any).
45023	// The aggregation is done by applying the desired health policy. Possible values include: 'HealthStateInvalid', 'HealthStateOk', 'HealthStateWarning', 'HealthStateError', 'HealthStateUnknown'
45024	AggregatedHealthState HealthState `json:"AggregatedHealthState,omitempty"`
45025	// HealthEvents - The list of health events reported on the entity.
45026	HealthEvents *[]HealthEvent `json:"HealthEvents,omitempty"`
45027	// UnhealthyEvaluations - The unhealthy evaluations that show why the current aggregated health state was returned by Health Manager.
45028	UnhealthyEvaluations *[]HealthEvaluationWrapper `json:"UnhealthyEvaluations,omitempty"`
45029	// HealthStatistics - Shows the health statistics for all children types of the queried entity.
45030	HealthStatistics *HealthStatistics `json:"HealthStatistics,omitempty"`
45031}
45032
45033// MarshalJSON is the custom marshaler for StatefulServiceReplicaHealth.
45034func (ssrh StatefulServiceReplicaHealth) MarshalJSON() ([]byte, error) {
45035	ssrh.ServiceKind = ServiceKindBasicReplicaHealthServiceKindStateful
45036	objectMap := make(map[string]interface{})
45037	if ssrh.ReplicaID != nil {
45038		objectMap["ReplicaId"] = ssrh.ReplicaID
45039	}
45040	if ssrh.PartitionID != nil {
45041		objectMap["PartitionId"] = ssrh.PartitionID
45042	}
45043	if ssrh.ServiceKind != "" {
45044		objectMap["ServiceKind"] = ssrh.ServiceKind
45045	}
45046	if ssrh.AggregatedHealthState != "" {
45047		objectMap["AggregatedHealthState"] = ssrh.AggregatedHealthState
45048	}
45049	if ssrh.HealthEvents != nil {
45050		objectMap["HealthEvents"] = ssrh.HealthEvents
45051	}
45052	if ssrh.UnhealthyEvaluations != nil {
45053		objectMap["UnhealthyEvaluations"] = ssrh.UnhealthyEvaluations
45054	}
45055	if ssrh.HealthStatistics != nil {
45056		objectMap["HealthStatistics"] = ssrh.HealthStatistics
45057	}
45058	return json.Marshal(objectMap)
45059}
45060
45061// AsStatefulServiceReplicaHealth is the BasicReplicaHealth implementation for StatefulServiceReplicaHealth.
45062func (ssrh StatefulServiceReplicaHealth) AsStatefulServiceReplicaHealth() (*StatefulServiceReplicaHealth, bool) {
45063	return &ssrh, true
45064}
45065
45066// AsStatelessServiceInstanceHealth is the BasicReplicaHealth implementation for StatefulServiceReplicaHealth.
45067func (ssrh StatefulServiceReplicaHealth) AsStatelessServiceInstanceHealth() (*StatelessServiceInstanceHealth, bool) {
45068	return nil, false
45069}
45070
45071// AsReplicaHealth is the BasicReplicaHealth implementation for StatefulServiceReplicaHealth.
45072func (ssrh StatefulServiceReplicaHealth) AsReplicaHealth() (*ReplicaHealth, bool) {
45073	return nil, false
45074}
45075
45076// AsBasicReplicaHealth is the BasicReplicaHealth implementation for StatefulServiceReplicaHealth.
45077func (ssrh StatefulServiceReplicaHealth) AsBasicReplicaHealth() (BasicReplicaHealth, bool) {
45078	return &ssrh, true
45079}
45080
45081// StatefulServiceReplicaHealthState represents the health state of the stateful service replica, which
45082// contains the replica ID and the aggregated health state.
45083type StatefulServiceReplicaHealthState struct {
45084	// 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.
45085	ReplicaID *string `json:"ReplicaId,omitempty"`
45086	// PartitionID - The ID of the partition to which this replica belongs.
45087	PartitionID *uuid.UUID `json:"PartitionId,omitempty"`
45088	// ServiceKind - Possible values include: 'ServiceKindBasicReplicaHealthStateServiceKindReplicaHealthState', 'ServiceKindBasicReplicaHealthStateServiceKindStateful', 'ServiceKindBasicReplicaHealthStateServiceKindStateless'
45089	ServiceKind ServiceKindBasicReplicaHealthState `json:"ServiceKind,omitempty"`
45090	// 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'
45091	AggregatedHealthState HealthState `json:"AggregatedHealthState,omitempty"`
45092}
45093
45094// MarshalJSON is the custom marshaler for StatefulServiceReplicaHealthState.
45095func (ssrhs StatefulServiceReplicaHealthState) MarshalJSON() ([]byte, error) {
45096	ssrhs.ServiceKind = ServiceKindBasicReplicaHealthStateServiceKindStateful
45097	objectMap := make(map[string]interface{})
45098	if ssrhs.ReplicaID != nil {
45099		objectMap["ReplicaId"] = ssrhs.ReplicaID
45100	}
45101	if ssrhs.PartitionID != nil {
45102		objectMap["PartitionId"] = ssrhs.PartitionID
45103	}
45104	if ssrhs.ServiceKind != "" {
45105		objectMap["ServiceKind"] = ssrhs.ServiceKind
45106	}
45107	if ssrhs.AggregatedHealthState != "" {
45108		objectMap["AggregatedHealthState"] = ssrhs.AggregatedHealthState
45109	}
45110	return json.Marshal(objectMap)
45111}
45112
45113// AsStatefulServiceReplicaHealthState is the BasicReplicaHealthState implementation for StatefulServiceReplicaHealthState.
45114func (ssrhs StatefulServiceReplicaHealthState) AsStatefulServiceReplicaHealthState() (*StatefulServiceReplicaHealthState, bool) {
45115	return &ssrhs, true
45116}
45117
45118// AsStatelessServiceInstanceHealthState is the BasicReplicaHealthState implementation for StatefulServiceReplicaHealthState.
45119func (ssrhs StatefulServiceReplicaHealthState) AsStatelessServiceInstanceHealthState() (*StatelessServiceInstanceHealthState, bool) {
45120	return nil, false
45121}
45122
45123// AsReplicaHealthState is the BasicReplicaHealthState implementation for StatefulServiceReplicaHealthState.
45124func (ssrhs StatefulServiceReplicaHealthState) AsReplicaHealthState() (*ReplicaHealthState, bool) {
45125	return nil, false
45126}
45127
45128// AsBasicReplicaHealthState is the BasicReplicaHealthState implementation for StatefulServiceReplicaHealthState.
45129func (ssrhs StatefulServiceReplicaHealthState) AsBasicReplicaHealthState() (BasicReplicaHealthState, bool) {
45130	return &ssrhs, true
45131}
45132
45133// StatefulServiceReplicaInfo represents a stateful service replica. This includes information about the
45134// identity, role, status, health, node name, uptime, and other details about the replica.
45135type StatefulServiceReplicaInfo struct {
45136	// ReplicaRole - The role of a replica of a stateful service. Possible values include: 'ReplicaRoleUnknown', 'ReplicaRoleNone', 'ReplicaRolePrimary', 'ReplicaRoleIdleSecondary', 'ReplicaRoleActiveSecondary'
45137	ReplicaRole ReplicaRole `json:"ReplicaRole,omitempty"`
45138	// 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.
45139	ReplicaID *string `json:"ReplicaId,omitempty"`
45140	// ReplicaStatus - The status of a replica of a service. Possible values include: 'ReplicaStatusInvalid', 'ReplicaStatusInBuild', 'ReplicaStatusStandby', 'ReplicaStatusReady', 'ReplicaStatusDown', 'ReplicaStatusDropped'
45141	ReplicaStatus ReplicaStatus `json:"ReplicaStatus,omitempty"`
45142	// 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'
45143	HealthState HealthState `json:"HealthState,omitempty"`
45144	// NodeName - The name of a Service Fabric node.
45145	NodeName *string `json:"NodeName,omitempty"`
45146	// Address - The address the replica is listening on.
45147	Address *string `json:"Address,omitempty"`
45148	// LastInBuildDurationInSeconds - The last in build duration of the replica in seconds.
45149	LastInBuildDurationInSeconds *string `json:"LastInBuildDurationInSeconds,omitempty"`
45150	// ServiceKind - Possible values include: 'ServiceKindBasicReplicaInfoServiceKindReplicaInfo', 'ServiceKindBasicReplicaInfoServiceKindStateful', 'ServiceKindBasicReplicaInfoServiceKindStateless'
45151	ServiceKind ServiceKindBasicReplicaInfo `json:"ServiceKind,omitempty"`
45152}
45153
45154// MarshalJSON is the custom marshaler for StatefulServiceReplicaInfo.
45155func (ssri StatefulServiceReplicaInfo) MarshalJSON() ([]byte, error) {
45156	ssri.ServiceKind = ServiceKindBasicReplicaInfoServiceKindStateful
45157	objectMap := make(map[string]interface{})
45158	if ssri.ReplicaRole != "" {
45159		objectMap["ReplicaRole"] = ssri.ReplicaRole
45160	}
45161	if ssri.ReplicaID != nil {
45162		objectMap["ReplicaId"] = ssri.ReplicaID
45163	}
45164	if ssri.ReplicaStatus != "" {
45165		objectMap["ReplicaStatus"] = ssri.ReplicaStatus
45166	}
45167	if ssri.HealthState != "" {
45168		objectMap["HealthState"] = ssri.HealthState
45169	}
45170	if ssri.NodeName != nil {
45171		objectMap["NodeName"] = ssri.NodeName
45172	}
45173	if ssri.Address != nil {
45174		objectMap["Address"] = ssri.Address
45175	}
45176	if ssri.LastInBuildDurationInSeconds != nil {
45177		objectMap["LastInBuildDurationInSeconds"] = ssri.LastInBuildDurationInSeconds
45178	}
45179	if ssri.ServiceKind != "" {
45180		objectMap["ServiceKind"] = ssri.ServiceKind
45181	}
45182	return json.Marshal(objectMap)
45183}
45184
45185// AsStatefulServiceReplicaInfo is the BasicReplicaInfo implementation for StatefulServiceReplicaInfo.
45186func (ssri StatefulServiceReplicaInfo) AsStatefulServiceReplicaInfo() (*StatefulServiceReplicaInfo, bool) {
45187	return &ssri, true
45188}
45189
45190// AsStatelessServiceInstanceInfo is the BasicReplicaInfo implementation for StatefulServiceReplicaInfo.
45191func (ssri StatefulServiceReplicaInfo) AsStatelessServiceInstanceInfo() (*StatelessServiceInstanceInfo, bool) {
45192	return nil, false
45193}
45194
45195// AsReplicaInfo is the BasicReplicaInfo implementation for StatefulServiceReplicaInfo.
45196func (ssri StatefulServiceReplicaInfo) AsReplicaInfo() (*ReplicaInfo, bool) {
45197	return nil, false
45198}
45199
45200// AsBasicReplicaInfo is the BasicReplicaInfo implementation for StatefulServiceReplicaInfo.
45201func (ssri StatefulServiceReplicaInfo) AsBasicReplicaInfo() (BasicReplicaInfo, bool) {
45202	return &ssri, true
45203}
45204
45205// StatefulServiceTypeDescription describes a stateful service type defined in the service manifest of a
45206// provisioned application type.
45207type StatefulServiceTypeDescription struct {
45208	// 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.
45209	HasPersistedState *bool `json:"HasPersistedState,omitempty"`
45210	// 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.
45211	IsStateful *bool `json:"IsStateful,omitempty"`
45212	// ServiceTypeName - Name of the service type as specified in the service manifest.
45213	ServiceTypeName *string `json:"ServiceTypeName,omitempty"`
45214	// PlacementConstraints - The placement constraint to be used when instantiating this service in a Service Fabric cluster.
45215	PlacementConstraints *string `json:"PlacementConstraints,omitempty"`
45216	// LoadMetrics - The service load metrics is given as an array of ServiceLoadMetricDescription objects.
45217	LoadMetrics *[]ServiceLoadMetricDescription `json:"LoadMetrics,omitempty"`
45218	// ServicePlacementPolicies - List of service placement policy descriptions.
45219	ServicePlacementPolicies *[]BasicServicePlacementPolicyDescription `json:"ServicePlacementPolicies,omitempty"`
45220	// Extensions - List of service type extensions.
45221	Extensions *[]ServiceTypeExtensionDescription `json:"Extensions,omitempty"`
45222	// Kind - Possible values include: 'KindServiceTypeDescription', 'KindStateful', 'KindStateless'
45223	Kind KindBasicServiceTypeDescription `json:"Kind,omitempty"`
45224}
45225
45226// MarshalJSON is the custom marshaler for StatefulServiceTypeDescription.
45227func (sstd StatefulServiceTypeDescription) MarshalJSON() ([]byte, error) {
45228	sstd.Kind = KindStateful
45229	objectMap := make(map[string]interface{})
45230	if sstd.HasPersistedState != nil {
45231		objectMap["HasPersistedState"] = sstd.HasPersistedState
45232	}
45233	if sstd.IsStateful != nil {
45234		objectMap["IsStateful"] = sstd.IsStateful
45235	}
45236	if sstd.ServiceTypeName != nil {
45237		objectMap["ServiceTypeName"] = sstd.ServiceTypeName
45238	}
45239	if sstd.PlacementConstraints != nil {
45240		objectMap["PlacementConstraints"] = sstd.PlacementConstraints
45241	}
45242	if sstd.LoadMetrics != nil {
45243		objectMap["LoadMetrics"] = sstd.LoadMetrics
45244	}
45245	if sstd.ServicePlacementPolicies != nil {
45246		objectMap["ServicePlacementPolicies"] = sstd.ServicePlacementPolicies
45247	}
45248	if sstd.Extensions != nil {
45249		objectMap["Extensions"] = sstd.Extensions
45250	}
45251	if sstd.Kind != "" {
45252		objectMap["Kind"] = sstd.Kind
45253	}
45254	return json.Marshal(objectMap)
45255}
45256
45257// AsStatefulServiceTypeDescription is the BasicServiceTypeDescription implementation for StatefulServiceTypeDescription.
45258func (sstd StatefulServiceTypeDescription) AsStatefulServiceTypeDescription() (*StatefulServiceTypeDescription, bool) {
45259	return &sstd, true
45260}
45261
45262// AsStatelessServiceTypeDescription is the BasicServiceTypeDescription implementation for StatefulServiceTypeDescription.
45263func (sstd StatefulServiceTypeDescription) AsStatelessServiceTypeDescription() (*StatelessServiceTypeDescription, bool) {
45264	return nil, false
45265}
45266
45267// AsServiceTypeDescription is the BasicServiceTypeDescription implementation for StatefulServiceTypeDescription.
45268func (sstd StatefulServiceTypeDescription) AsServiceTypeDescription() (*ServiceTypeDescription, bool) {
45269	return nil, false
45270}
45271
45272// AsBasicServiceTypeDescription is the BasicServiceTypeDescription implementation for StatefulServiceTypeDescription.
45273func (sstd StatefulServiceTypeDescription) AsBasicServiceTypeDescription() (BasicServiceTypeDescription, bool) {
45274	return &sstd, true
45275}
45276
45277// UnmarshalJSON is the custom unmarshaler for StatefulServiceTypeDescription struct.
45278func (sstd *StatefulServiceTypeDescription) UnmarshalJSON(body []byte) error {
45279	var m map[string]*json.RawMessage
45280	err := json.Unmarshal(body, &m)
45281	if err != nil {
45282		return err
45283	}
45284	for k, v := range m {
45285		switch k {
45286		case "HasPersistedState":
45287			if v != nil {
45288				var hasPersistedState bool
45289				err = json.Unmarshal(*v, &hasPersistedState)
45290				if err != nil {
45291					return err
45292				}
45293				sstd.HasPersistedState = &hasPersistedState
45294			}
45295		case "IsStateful":
45296			if v != nil {
45297				var isStateful bool
45298				err = json.Unmarshal(*v, &isStateful)
45299				if err != nil {
45300					return err
45301				}
45302				sstd.IsStateful = &isStateful
45303			}
45304		case "ServiceTypeName":
45305			if v != nil {
45306				var serviceTypeName string
45307				err = json.Unmarshal(*v, &serviceTypeName)
45308				if err != nil {
45309					return err
45310				}
45311				sstd.ServiceTypeName = &serviceTypeName
45312			}
45313		case "PlacementConstraints":
45314			if v != nil {
45315				var placementConstraints string
45316				err = json.Unmarshal(*v, &placementConstraints)
45317				if err != nil {
45318					return err
45319				}
45320				sstd.PlacementConstraints = &placementConstraints
45321			}
45322		case "LoadMetrics":
45323			if v != nil {
45324				var loadMetrics []ServiceLoadMetricDescription
45325				err = json.Unmarshal(*v, &loadMetrics)
45326				if err != nil {
45327					return err
45328				}
45329				sstd.LoadMetrics = &loadMetrics
45330			}
45331		case "ServicePlacementPolicies":
45332			if v != nil {
45333				servicePlacementPolicies, err := unmarshalBasicServicePlacementPolicyDescriptionArray(*v)
45334				if err != nil {
45335					return err
45336				}
45337				sstd.ServicePlacementPolicies = &servicePlacementPolicies
45338			}
45339		case "Extensions":
45340			if v != nil {
45341				var extensions []ServiceTypeExtensionDescription
45342				err = json.Unmarshal(*v, &extensions)
45343				if err != nil {
45344					return err
45345				}
45346				sstd.Extensions = &extensions
45347			}
45348		case "Kind":
45349			if v != nil {
45350				var kind KindBasicServiceTypeDescription
45351				err = json.Unmarshal(*v, &kind)
45352				if err != nil {
45353					return err
45354				}
45355				sstd.Kind = kind
45356			}
45357		}
45358	}
45359
45360	return nil
45361}
45362
45363// StatefulServiceUpdateDescription describes an update for a stateful service.
45364type StatefulServiceUpdateDescription struct {
45365	// TargetReplicaSetSize - The target replica set size as a number.
45366	TargetReplicaSetSize *int32 `json:"TargetReplicaSetSize,omitempty"`
45367	// MinReplicaSetSize - The minimum replica set size as a number.
45368	MinReplicaSetSize *int32 `json:"MinReplicaSetSize,omitempty"`
45369	// ReplicaRestartWaitDurationSeconds - The duration, in seconds, between when a replica goes down and when a new replica is created.
45370	ReplicaRestartWaitDurationSeconds *string `json:"ReplicaRestartWaitDurationSeconds,omitempty"`
45371	// QuorumLossWaitDurationSeconds - The maximum duration, in seconds, for which a partition is allowed to be in a state of quorum loss.
45372	QuorumLossWaitDurationSeconds *string `json:"QuorumLossWaitDurationSeconds,omitempty"`
45373	// StandByReplicaKeepDurationSeconds - The definition on how long StandBy replicas should be maintained before being removed.
45374	StandByReplicaKeepDurationSeconds *string `json:"StandByReplicaKeepDurationSeconds,omitempty"`
45375	// ServicePlacementTimeLimitSeconds - The duration for which replicas can stay InBuild before reporting that build is stuck.
45376	ServicePlacementTimeLimitSeconds *string `json:"ServicePlacementTimeLimitSeconds,omitempty"`
45377	// DropSourceReplicaOnMove - Indicates whether to drop source Secondary replica even if the target replica has not finished build. If desired behavior is to drop it as soon as possible the value of this property is true, if not it is false.
45378	DropSourceReplicaOnMove *bool `json:"DropSourceReplicaOnMove,omitempty"`
45379	// 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.
45380	// This property can be a combination of those flags obtained using bitwise 'OR' operator.
45381	// For example, if the provided value is 6 then the flags for ReplicaRestartWaitDuration (2) and QuorumLossWaitDuration (4) are set.
45382	// - None - Does not indicate any other properties are set. The value is zero.
45383	// - TargetReplicaSetSize/InstanceCount - Indicates whether the TargetReplicaSetSize property (for Stateful services) or the InstanceCount property (for Stateless services) is set. The value is 1.
45384	// - ReplicaRestartWaitDuration - Indicates the ReplicaRestartWaitDuration property is set. The value is  2.
45385	// - QuorumLossWaitDuration - Indicates the QuorumLossWaitDuration property is set. The value is 4.
45386	// - StandByReplicaKeepDuration - Indicates the StandByReplicaKeepDuration property is set. The value is 8.
45387	// - MinReplicaSetSize - Indicates the MinReplicaSetSize property is set. The value is 16.
45388	// - PlacementConstraints - Indicates the PlacementConstraints property is set. The value is 32.
45389	// - PlacementPolicyList - Indicates the ServicePlacementPolicies property is set. The value is 64.
45390	// - Correlation - Indicates the CorrelationScheme property is set. The value is 128.
45391	// - Metrics - Indicates the ServiceLoadMetrics property is set. The value is 256.
45392	// - DefaultMoveCost - Indicates the DefaultMoveCost property is set. The value is 512.
45393	// - ScalingPolicy - Indicates the ScalingPolicies property is set. The value is 1024.
45394	// - ServicePlacementTimeLimit - Indicates the ServicePlacementTimeLimit property is set. The value is 2048.
45395	// - MinInstanceCount - Indicates the MinInstanceCount property is set. The value is 4096.
45396	// - MinInstancePercentage - Indicates the MinInstancePercentage property is set. The value is 8192.
45397	// - InstanceCloseDelayDuration - Indicates the InstanceCloseDelayDuration property is set. The value is 16384.
45398	// - DropSourceReplicaOnMove - Indicates the DropSourceReplicaOnMove property is set. The value is 32768.
45399	Flags *string `json:"Flags,omitempty"`
45400	// 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)".
45401	PlacementConstraints *string `json:"PlacementConstraints,omitempty"`
45402	// CorrelationScheme - The correlation scheme.
45403	CorrelationScheme *[]ServiceCorrelationDescription `json:"CorrelationScheme,omitempty"`
45404	// LoadMetrics - The service load metrics.
45405	LoadMetrics *[]ServiceLoadMetricDescription `json:"LoadMetrics,omitempty"`
45406	// ServicePlacementPolicies - The service placement policies.
45407	ServicePlacementPolicies *[]BasicServicePlacementPolicyDescription `json:"ServicePlacementPolicies,omitempty"`
45408	// DefaultMoveCost - The move cost for the service. Possible values include: 'Zero', 'Low', 'Medium', 'High', 'VeryHigh'
45409	DefaultMoveCost MoveCost `json:"DefaultMoveCost,omitempty"`
45410	// ScalingPolicies - Scaling policies for this service.
45411	ScalingPolicies *[]ScalingPolicyDescription `json:"ScalingPolicies,omitempty"`
45412	// ServiceKind - Possible values include: 'ServiceKindBasicServiceUpdateDescriptionServiceKindServiceUpdateDescription', 'ServiceKindBasicServiceUpdateDescriptionServiceKindStateful', 'ServiceKindBasicServiceUpdateDescriptionServiceKindStateless'
45413	ServiceKind ServiceKindBasicServiceUpdateDescription `json:"ServiceKind,omitempty"`
45414}
45415
45416// MarshalJSON is the custom marshaler for StatefulServiceUpdateDescription.
45417func (ssud StatefulServiceUpdateDescription) MarshalJSON() ([]byte, error) {
45418	ssud.ServiceKind = ServiceKindBasicServiceUpdateDescriptionServiceKindStateful
45419	objectMap := make(map[string]interface{})
45420	if ssud.TargetReplicaSetSize != nil {
45421		objectMap["TargetReplicaSetSize"] = ssud.TargetReplicaSetSize
45422	}
45423	if ssud.MinReplicaSetSize != nil {
45424		objectMap["MinReplicaSetSize"] = ssud.MinReplicaSetSize
45425	}
45426	if ssud.ReplicaRestartWaitDurationSeconds != nil {
45427		objectMap["ReplicaRestartWaitDurationSeconds"] = ssud.ReplicaRestartWaitDurationSeconds
45428	}
45429	if ssud.QuorumLossWaitDurationSeconds != nil {
45430		objectMap["QuorumLossWaitDurationSeconds"] = ssud.QuorumLossWaitDurationSeconds
45431	}
45432	if ssud.StandByReplicaKeepDurationSeconds != nil {
45433		objectMap["StandByReplicaKeepDurationSeconds"] = ssud.StandByReplicaKeepDurationSeconds
45434	}
45435	if ssud.ServicePlacementTimeLimitSeconds != nil {
45436		objectMap["ServicePlacementTimeLimitSeconds"] = ssud.ServicePlacementTimeLimitSeconds
45437	}
45438	if ssud.DropSourceReplicaOnMove != nil {
45439		objectMap["DropSourceReplicaOnMove"] = ssud.DropSourceReplicaOnMove
45440	}
45441	if ssud.Flags != nil {
45442		objectMap["Flags"] = ssud.Flags
45443	}
45444	if ssud.PlacementConstraints != nil {
45445		objectMap["PlacementConstraints"] = ssud.PlacementConstraints
45446	}
45447	if ssud.CorrelationScheme != nil {
45448		objectMap["CorrelationScheme"] = ssud.CorrelationScheme
45449	}
45450	if ssud.LoadMetrics != nil {
45451		objectMap["LoadMetrics"] = ssud.LoadMetrics
45452	}
45453	if ssud.ServicePlacementPolicies != nil {
45454		objectMap["ServicePlacementPolicies"] = ssud.ServicePlacementPolicies
45455	}
45456	if ssud.DefaultMoveCost != "" {
45457		objectMap["DefaultMoveCost"] = ssud.DefaultMoveCost
45458	}
45459	if ssud.ScalingPolicies != nil {
45460		objectMap["ScalingPolicies"] = ssud.ScalingPolicies
45461	}
45462	if ssud.ServiceKind != "" {
45463		objectMap["ServiceKind"] = ssud.ServiceKind
45464	}
45465	return json.Marshal(objectMap)
45466}
45467
45468// AsStatefulServiceUpdateDescription is the BasicServiceUpdateDescription implementation for StatefulServiceUpdateDescription.
45469func (ssud StatefulServiceUpdateDescription) AsStatefulServiceUpdateDescription() (*StatefulServiceUpdateDescription, bool) {
45470	return &ssud, true
45471}
45472
45473// AsStatelessServiceUpdateDescription is the BasicServiceUpdateDescription implementation for StatefulServiceUpdateDescription.
45474func (ssud StatefulServiceUpdateDescription) AsStatelessServiceUpdateDescription() (*StatelessServiceUpdateDescription, bool) {
45475	return nil, false
45476}
45477
45478// AsServiceUpdateDescription is the BasicServiceUpdateDescription implementation for StatefulServiceUpdateDescription.
45479func (ssud StatefulServiceUpdateDescription) AsServiceUpdateDescription() (*ServiceUpdateDescription, bool) {
45480	return nil, false
45481}
45482
45483// AsBasicServiceUpdateDescription is the BasicServiceUpdateDescription implementation for StatefulServiceUpdateDescription.
45484func (ssud StatefulServiceUpdateDescription) AsBasicServiceUpdateDescription() (BasicServiceUpdateDescription, bool) {
45485	return &ssud, true
45486}
45487
45488// UnmarshalJSON is the custom unmarshaler for StatefulServiceUpdateDescription struct.
45489func (ssud *StatefulServiceUpdateDescription) UnmarshalJSON(body []byte) error {
45490	var m map[string]*json.RawMessage
45491	err := json.Unmarshal(body, &m)
45492	if err != nil {
45493		return err
45494	}
45495	for k, v := range m {
45496		switch k {
45497		case "TargetReplicaSetSize":
45498			if v != nil {
45499				var targetReplicaSetSize int32
45500				err = json.Unmarshal(*v, &targetReplicaSetSize)
45501				if err != nil {
45502					return err
45503				}
45504				ssud.TargetReplicaSetSize = &targetReplicaSetSize
45505			}
45506		case "MinReplicaSetSize":
45507			if v != nil {
45508				var minReplicaSetSize int32
45509				err = json.Unmarshal(*v, &minReplicaSetSize)
45510				if err != nil {
45511					return err
45512				}
45513				ssud.MinReplicaSetSize = &minReplicaSetSize
45514			}
45515		case "ReplicaRestartWaitDurationSeconds":
45516			if v != nil {
45517				var replicaRestartWaitDurationSeconds string
45518				err = json.Unmarshal(*v, &replicaRestartWaitDurationSeconds)
45519				if err != nil {
45520					return err
45521				}
45522				ssud.ReplicaRestartWaitDurationSeconds = &replicaRestartWaitDurationSeconds
45523			}
45524		case "QuorumLossWaitDurationSeconds":
45525			if v != nil {
45526				var quorumLossWaitDurationSeconds string
45527				err = json.Unmarshal(*v, &quorumLossWaitDurationSeconds)
45528				if err != nil {
45529					return err
45530				}
45531				ssud.QuorumLossWaitDurationSeconds = &quorumLossWaitDurationSeconds
45532			}
45533		case "StandByReplicaKeepDurationSeconds":
45534			if v != nil {
45535				var standByReplicaKeepDurationSeconds string
45536				err = json.Unmarshal(*v, &standByReplicaKeepDurationSeconds)
45537				if err != nil {
45538					return err
45539				}
45540				ssud.StandByReplicaKeepDurationSeconds = &standByReplicaKeepDurationSeconds
45541			}
45542		case "ServicePlacementTimeLimitSeconds":
45543			if v != nil {
45544				var servicePlacementTimeLimitSeconds string
45545				err = json.Unmarshal(*v, &servicePlacementTimeLimitSeconds)
45546				if err != nil {
45547					return err
45548				}
45549				ssud.ServicePlacementTimeLimitSeconds = &servicePlacementTimeLimitSeconds
45550			}
45551		case "DropSourceReplicaOnMove":
45552			if v != nil {
45553				var dropSourceReplicaOnMove bool
45554				err = json.Unmarshal(*v, &dropSourceReplicaOnMove)
45555				if err != nil {
45556					return err
45557				}
45558				ssud.DropSourceReplicaOnMove = &dropSourceReplicaOnMove
45559			}
45560		case "Flags":
45561			if v != nil {
45562				var flags string
45563				err = json.Unmarshal(*v, &flags)
45564				if err != nil {
45565					return err
45566				}
45567				ssud.Flags = &flags
45568			}
45569		case "PlacementConstraints":
45570			if v != nil {
45571				var placementConstraints string
45572				err = json.Unmarshal(*v, &placementConstraints)
45573				if err != nil {
45574					return err
45575				}
45576				ssud.PlacementConstraints = &placementConstraints
45577			}
45578		case "CorrelationScheme":
45579			if v != nil {
45580				var correlationScheme []ServiceCorrelationDescription
45581				err = json.Unmarshal(*v, &correlationScheme)
45582				if err != nil {
45583					return err
45584				}
45585				ssud.CorrelationScheme = &correlationScheme
45586			}
45587		case "LoadMetrics":
45588			if v != nil {
45589				var loadMetrics []ServiceLoadMetricDescription
45590				err = json.Unmarshal(*v, &loadMetrics)
45591				if err != nil {
45592					return err
45593				}
45594				ssud.LoadMetrics = &loadMetrics
45595			}
45596		case "ServicePlacementPolicies":
45597			if v != nil {
45598				servicePlacementPolicies, err := unmarshalBasicServicePlacementPolicyDescriptionArray(*v)
45599				if err != nil {
45600					return err
45601				}
45602				ssud.ServicePlacementPolicies = &servicePlacementPolicies
45603			}
45604		case "DefaultMoveCost":
45605			if v != nil {
45606				var defaultMoveCost MoveCost
45607				err = json.Unmarshal(*v, &defaultMoveCost)
45608				if err != nil {
45609					return err
45610				}
45611				ssud.DefaultMoveCost = defaultMoveCost
45612			}
45613		case "ScalingPolicies":
45614			if v != nil {
45615				var scalingPolicies []ScalingPolicyDescription
45616				err = json.Unmarshal(*v, &scalingPolicies)
45617				if err != nil {
45618					return err
45619				}
45620				ssud.ScalingPolicies = &scalingPolicies
45621			}
45622		case "ServiceKind":
45623			if v != nil {
45624				var serviceKind ServiceKindBasicServiceUpdateDescription
45625				err = json.Unmarshal(*v, &serviceKind)
45626				if err != nil {
45627					return err
45628				}
45629				ssud.ServiceKind = serviceKind
45630			}
45631		}
45632	}
45633
45634	return nil
45635}
45636
45637// StatelessReplicaHealthReportExpiredEvent stateless Replica Health Report Expired event.
45638type StatelessReplicaHealthReportExpiredEvent struct {
45639	// SourceID - Id of report source.
45640	SourceID *string `json:"SourceId,omitempty"`
45641	// Property - Describes the property.
45642	Property *string `json:"Property,omitempty"`
45643	// HealthState - Describes the property health state.
45644	HealthState *string `json:"HealthState,omitempty"`
45645	// TimeToLiveMs - Time to live in milli-seconds.
45646	TimeToLiveMs *int64 `json:"TimeToLiveMs,omitempty"`
45647	// SequenceNumber - Sequence number of report.
45648	SequenceNumber *int64 `json:"SequenceNumber,omitempty"`
45649	// Description - Description of report.
45650	Description *string `json:"Description,omitempty"`
45651	// RemoveWhenExpired - Indicates the removal when it expires.
45652	RemoveWhenExpired *bool `json:"RemoveWhenExpired,omitempty"`
45653	// SourceUtcTimestamp - Source time.
45654	SourceUtcTimestamp *date.Time `json:"SourceUtcTimestamp,omitempty"`
45655	// 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.
45656	PartitionID *uuid.UUID `json:"PartitionId,omitempty"`
45657	// 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.
45658	ReplicaID *int64 `json:"ReplicaId,omitempty"`
45659	// EventInstanceID - The identifier for the FabricEvent instance.
45660	EventInstanceID *uuid.UUID `json:"EventInstanceId,omitempty"`
45661	// Category - The category of event.
45662	Category *string `json:"Category,omitempty"`
45663	// TimeStamp - The time event was logged.
45664	TimeStamp *date.Time `json:"TimeStamp,omitempty"`
45665	// HasCorrelatedEvents - Shows there is existing related events available.
45666	HasCorrelatedEvents *bool `json:"HasCorrelatedEvents,omitempty"`
45667	// 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'
45668	Kind KindBasicFabricEvent `json:"Kind,omitempty"`
45669}
45670
45671// MarshalJSON is the custom marshaler for StatelessReplicaHealthReportExpiredEvent.
45672func (srhree StatelessReplicaHealthReportExpiredEvent) MarshalJSON() ([]byte, error) {
45673	srhree.Kind = KindStatelessReplicaHealthReportExpired
45674	objectMap := make(map[string]interface{})
45675	if srhree.SourceID != nil {
45676		objectMap["SourceId"] = srhree.SourceID
45677	}
45678	if srhree.Property != nil {
45679		objectMap["Property"] = srhree.Property
45680	}
45681	if srhree.HealthState != nil {
45682		objectMap["HealthState"] = srhree.HealthState
45683	}
45684	if srhree.TimeToLiveMs != nil {
45685		objectMap["TimeToLiveMs"] = srhree.TimeToLiveMs
45686	}
45687	if srhree.SequenceNumber != nil {
45688		objectMap["SequenceNumber"] = srhree.SequenceNumber
45689	}
45690	if srhree.Description != nil {
45691		objectMap["Description"] = srhree.Description
45692	}
45693	if srhree.RemoveWhenExpired != nil {
45694		objectMap["RemoveWhenExpired"] = srhree.RemoveWhenExpired
45695	}
45696	if srhree.SourceUtcTimestamp != nil {
45697		objectMap["SourceUtcTimestamp"] = srhree.SourceUtcTimestamp
45698	}
45699	if srhree.PartitionID != nil {
45700		objectMap["PartitionId"] = srhree.PartitionID
45701	}
45702	if srhree.ReplicaID != nil {
45703		objectMap["ReplicaId"] = srhree.ReplicaID
45704	}
45705	if srhree.EventInstanceID != nil {
45706		objectMap["EventInstanceId"] = srhree.EventInstanceID
45707	}
45708	if srhree.Category != nil {
45709		objectMap["Category"] = srhree.Category
45710	}
45711	if srhree.TimeStamp != nil {
45712		objectMap["TimeStamp"] = srhree.TimeStamp
45713	}
45714	if srhree.HasCorrelatedEvents != nil {
45715		objectMap["HasCorrelatedEvents"] = srhree.HasCorrelatedEvents
45716	}
45717	if srhree.Kind != "" {
45718		objectMap["Kind"] = srhree.Kind
45719	}
45720	return json.Marshal(objectMap)
45721}
45722
45723// AsApplicationEvent is the BasicFabricEvent implementation for StatelessReplicaHealthReportExpiredEvent.
45724func (srhree StatelessReplicaHealthReportExpiredEvent) AsApplicationEvent() (*ApplicationEvent, bool) {
45725	return nil, false
45726}
45727
45728// AsBasicApplicationEvent is the BasicFabricEvent implementation for StatelessReplicaHealthReportExpiredEvent.
45729func (srhree StatelessReplicaHealthReportExpiredEvent) AsBasicApplicationEvent() (BasicApplicationEvent, bool) {
45730	return nil, false
45731}
45732
45733// AsClusterEvent is the BasicFabricEvent implementation for StatelessReplicaHealthReportExpiredEvent.
45734func (srhree StatelessReplicaHealthReportExpiredEvent) AsClusterEvent() (*ClusterEvent, bool) {
45735	return nil, false
45736}
45737
45738// AsBasicClusterEvent is the BasicFabricEvent implementation for StatelessReplicaHealthReportExpiredEvent.
45739func (srhree StatelessReplicaHealthReportExpiredEvent) AsBasicClusterEvent() (BasicClusterEvent, bool) {
45740	return nil, false
45741}
45742
45743// AsContainerInstanceEvent is the BasicFabricEvent implementation for StatelessReplicaHealthReportExpiredEvent.
45744func (srhree StatelessReplicaHealthReportExpiredEvent) AsContainerInstanceEvent() (*ContainerInstanceEvent, bool) {
45745	return nil, false
45746}
45747
45748// AsNodeEvent is the BasicFabricEvent implementation for StatelessReplicaHealthReportExpiredEvent.
45749func (srhree StatelessReplicaHealthReportExpiredEvent) AsNodeEvent() (*NodeEvent, bool) {
45750	return nil, false
45751}
45752
45753// AsBasicNodeEvent is the BasicFabricEvent implementation for StatelessReplicaHealthReportExpiredEvent.
45754func (srhree StatelessReplicaHealthReportExpiredEvent) AsBasicNodeEvent() (BasicNodeEvent, bool) {
45755	return nil, false
45756}
45757
45758// AsPartitionAnalysisEvent is the BasicFabricEvent implementation for StatelessReplicaHealthReportExpiredEvent.
45759func (srhree StatelessReplicaHealthReportExpiredEvent) AsPartitionAnalysisEvent() (*PartitionAnalysisEvent, bool) {
45760	return nil, false
45761}
45762
45763// AsBasicPartitionAnalysisEvent is the BasicFabricEvent implementation for StatelessReplicaHealthReportExpiredEvent.
45764func (srhree StatelessReplicaHealthReportExpiredEvent) AsBasicPartitionAnalysisEvent() (BasicPartitionAnalysisEvent, bool) {
45765	return nil, false
45766}
45767
45768// AsPartitionEvent is the BasicFabricEvent implementation for StatelessReplicaHealthReportExpiredEvent.
45769func (srhree StatelessReplicaHealthReportExpiredEvent) AsPartitionEvent() (*PartitionEvent, bool) {
45770	return nil, false
45771}
45772
45773// AsBasicPartitionEvent is the BasicFabricEvent implementation for StatelessReplicaHealthReportExpiredEvent.
45774func (srhree StatelessReplicaHealthReportExpiredEvent) AsBasicPartitionEvent() (BasicPartitionEvent, bool) {
45775	return nil, false
45776}
45777
45778// AsReplicaEvent is the BasicFabricEvent implementation for StatelessReplicaHealthReportExpiredEvent.
45779func (srhree StatelessReplicaHealthReportExpiredEvent) AsReplicaEvent() (*ReplicaEvent, bool) {
45780	return nil, false
45781}
45782
45783// AsBasicReplicaEvent is the BasicFabricEvent implementation for StatelessReplicaHealthReportExpiredEvent.
45784func (srhree StatelessReplicaHealthReportExpiredEvent) AsBasicReplicaEvent() (BasicReplicaEvent, bool) {
45785	return &srhree, true
45786}
45787
45788// AsServiceEvent is the BasicFabricEvent implementation for StatelessReplicaHealthReportExpiredEvent.
45789func (srhree StatelessReplicaHealthReportExpiredEvent) AsServiceEvent() (*ServiceEvent, bool) {
45790	return nil, false
45791}
45792
45793// AsBasicServiceEvent is the BasicFabricEvent implementation for StatelessReplicaHealthReportExpiredEvent.
45794func (srhree StatelessReplicaHealthReportExpiredEvent) AsBasicServiceEvent() (BasicServiceEvent, bool) {
45795	return nil, false
45796}
45797
45798// AsApplicationCreatedEvent is the BasicFabricEvent implementation for StatelessReplicaHealthReportExpiredEvent.
45799func (srhree StatelessReplicaHealthReportExpiredEvent) AsApplicationCreatedEvent() (*ApplicationCreatedEvent, bool) {
45800	return nil, false
45801}
45802
45803// AsApplicationDeletedEvent is the BasicFabricEvent implementation for StatelessReplicaHealthReportExpiredEvent.
45804func (srhree StatelessReplicaHealthReportExpiredEvent) AsApplicationDeletedEvent() (*ApplicationDeletedEvent, bool) {
45805	return nil, false
45806}
45807
45808// AsApplicationNewHealthReportEvent is the BasicFabricEvent implementation for StatelessReplicaHealthReportExpiredEvent.
45809func (srhree StatelessReplicaHealthReportExpiredEvent) AsApplicationNewHealthReportEvent() (*ApplicationNewHealthReportEvent, bool) {
45810	return nil, false
45811}
45812
45813// AsApplicationHealthReportExpiredEvent is the BasicFabricEvent implementation for StatelessReplicaHealthReportExpiredEvent.
45814func (srhree StatelessReplicaHealthReportExpiredEvent) AsApplicationHealthReportExpiredEvent() (*ApplicationHealthReportExpiredEvent, bool) {
45815	return nil, false
45816}
45817
45818// AsApplicationUpgradeCompletedEvent is the BasicFabricEvent implementation for StatelessReplicaHealthReportExpiredEvent.
45819func (srhree StatelessReplicaHealthReportExpiredEvent) AsApplicationUpgradeCompletedEvent() (*ApplicationUpgradeCompletedEvent, bool) {
45820	return nil, false
45821}
45822
45823// AsApplicationUpgradeDomainCompletedEvent is the BasicFabricEvent implementation for StatelessReplicaHealthReportExpiredEvent.
45824func (srhree StatelessReplicaHealthReportExpiredEvent) AsApplicationUpgradeDomainCompletedEvent() (*ApplicationUpgradeDomainCompletedEvent, bool) {
45825	return nil, false
45826}
45827
45828// AsApplicationUpgradeRollbackCompletedEvent is the BasicFabricEvent implementation for StatelessReplicaHealthReportExpiredEvent.
45829func (srhree StatelessReplicaHealthReportExpiredEvent) AsApplicationUpgradeRollbackCompletedEvent() (*ApplicationUpgradeRollbackCompletedEvent, bool) {
45830	return nil, false
45831}
45832
45833// AsApplicationUpgradeRollbackStartedEvent is the BasicFabricEvent implementation for StatelessReplicaHealthReportExpiredEvent.
45834func (srhree StatelessReplicaHealthReportExpiredEvent) AsApplicationUpgradeRollbackStartedEvent() (*ApplicationUpgradeRollbackStartedEvent, bool) {
45835	return nil, false
45836}
45837
45838// AsApplicationUpgradeStartedEvent is the BasicFabricEvent implementation for StatelessReplicaHealthReportExpiredEvent.
45839func (srhree StatelessReplicaHealthReportExpiredEvent) AsApplicationUpgradeStartedEvent() (*ApplicationUpgradeStartedEvent, bool) {
45840	return nil, false
45841}
45842
45843// AsDeployedApplicationNewHealthReportEvent is the BasicFabricEvent implementation for StatelessReplicaHealthReportExpiredEvent.
45844func (srhree StatelessReplicaHealthReportExpiredEvent) AsDeployedApplicationNewHealthReportEvent() (*DeployedApplicationNewHealthReportEvent, bool) {
45845	return nil, false
45846}
45847
45848// AsDeployedApplicationHealthReportExpiredEvent is the BasicFabricEvent implementation for StatelessReplicaHealthReportExpiredEvent.
45849func (srhree StatelessReplicaHealthReportExpiredEvent) AsDeployedApplicationHealthReportExpiredEvent() (*DeployedApplicationHealthReportExpiredEvent, bool) {
45850	return nil, false
45851}
45852
45853// AsApplicationProcessExitedEvent is the BasicFabricEvent implementation for StatelessReplicaHealthReportExpiredEvent.
45854func (srhree StatelessReplicaHealthReportExpiredEvent) AsApplicationProcessExitedEvent() (*ApplicationProcessExitedEvent, bool) {
45855	return nil, false
45856}
45857
45858// AsApplicationContainerInstanceExitedEvent is the BasicFabricEvent implementation for StatelessReplicaHealthReportExpiredEvent.
45859func (srhree StatelessReplicaHealthReportExpiredEvent) AsApplicationContainerInstanceExitedEvent() (*ApplicationContainerInstanceExitedEvent, bool) {
45860	return nil, false
45861}
45862
45863// AsNodeAbortedEvent is the BasicFabricEvent implementation for StatelessReplicaHealthReportExpiredEvent.
45864func (srhree StatelessReplicaHealthReportExpiredEvent) AsNodeAbortedEvent() (*NodeAbortedEvent, bool) {
45865	return nil, false
45866}
45867
45868// AsNodeAddedToClusterEvent is the BasicFabricEvent implementation for StatelessReplicaHealthReportExpiredEvent.
45869func (srhree StatelessReplicaHealthReportExpiredEvent) AsNodeAddedToClusterEvent() (*NodeAddedToClusterEvent, bool) {
45870	return nil, false
45871}
45872
45873// AsNodeClosedEvent is the BasicFabricEvent implementation for StatelessReplicaHealthReportExpiredEvent.
45874func (srhree StatelessReplicaHealthReportExpiredEvent) AsNodeClosedEvent() (*NodeClosedEvent, bool) {
45875	return nil, false
45876}
45877
45878// AsNodeDeactivateCompletedEvent is the BasicFabricEvent implementation for StatelessReplicaHealthReportExpiredEvent.
45879func (srhree StatelessReplicaHealthReportExpiredEvent) AsNodeDeactivateCompletedEvent() (*NodeDeactivateCompletedEvent, bool) {
45880	return nil, false
45881}
45882
45883// AsNodeDeactivateStartedEvent is the BasicFabricEvent implementation for StatelessReplicaHealthReportExpiredEvent.
45884func (srhree StatelessReplicaHealthReportExpiredEvent) AsNodeDeactivateStartedEvent() (*NodeDeactivateStartedEvent, bool) {
45885	return nil, false
45886}
45887
45888// AsNodeDownEvent is the BasicFabricEvent implementation for StatelessReplicaHealthReportExpiredEvent.
45889func (srhree StatelessReplicaHealthReportExpiredEvent) AsNodeDownEvent() (*NodeDownEvent, bool) {
45890	return nil, false
45891}
45892
45893// AsNodeNewHealthReportEvent is the BasicFabricEvent implementation for StatelessReplicaHealthReportExpiredEvent.
45894func (srhree StatelessReplicaHealthReportExpiredEvent) AsNodeNewHealthReportEvent() (*NodeNewHealthReportEvent, bool) {
45895	return nil, false
45896}
45897
45898// AsNodeHealthReportExpiredEvent is the BasicFabricEvent implementation for StatelessReplicaHealthReportExpiredEvent.
45899func (srhree StatelessReplicaHealthReportExpiredEvent) AsNodeHealthReportExpiredEvent() (*NodeHealthReportExpiredEvent, bool) {
45900	return nil, false
45901}
45902
45903// AsNodeOpenSucceededEvent is the BasicFabricEvent implementation for StatelessReplicaHealthReportExpiredEvent.
45904func (srhree StatelessReplicaHealthReportExpiredEvent) AsNodeOpenSucceededEvent() (*NodeOpenSucceededEvent, bool) {
45905	return nil, false
45906}
45907
45908// AsNodeOpenFailedEvent is the BasicFabricEvent implementation for StatelessReplicaHealthReportExpiredEvent.
45909func (srhree StatelessReplicaHealthReportExpiredEvent) AsNodeOpenFailedEvent() (*NodeOpenFailedEvent, bool) {
45910	return nil, false
45911}
45912
45913// AsNodeRemovedFromClusterEvent is the BasicFabricEvent implementation for StatelessReplicaHealthReportExpiredEvent.
45914func (srhree StatelessReplicaHealthReportExpiredEvent) AsNodeRemovedFromClusterEvent() (*NodeRemovedFromClusterEvent, bool) {
45915	return nil, false
45916}
45917
45918// AsNodeUpEvent is the BasicFabricEvent implementation for StatelessReplicaHealthReportExpiredEvent.
45919func (srhree StatelessReplicaHealthReportExpiredEvent) AsNodeUpEvent() (*NodeUpEvent, bool) {
45920	return nil, false
45921}
45922
45923// AsPartitionNewHealthReportEvent is the BasicFabricEvent implementation for StatelessReplicaHealthReportExpiredEvent.
45924func (srhree StatelessReplicaHealthReportExpiredEvent) AsPartitionNewHealthReportEvent() (*PartitionNewHealthReportEvent, bool) {
45925	return nil, false
45926}
45927
45928// AsPartitionHealthReportExpiredEvent is the BasicFabricEvent implementation for StatelessReplicaHealthReportExpiredEvent.
45929func (srhree StatelessReplicaHealthReportExpiredEvent) AsPartitionHealthReportExpiredEvent() (*PartitionHealthReportExpiredEvent, bool) {
45930	return nil, false
45931}
45932
45933// AsPartitionReconfiguredEvent is the BasicFabricEvent implementation for StatelessReplicaHealthReportExpiredEvent.
45934func (srhree StatelessReplicaHealthReportExpiredEvent) AsPartitionReconfiguredEvent() (*PartitionReconfiguredEvent, bool) {
45935	return nil, false
45936}
45937
45938// AsPartitionPrimaryMoveAnalysisEvent is the BasicFabricEvent implementation for StatelessReplicaHealthReportExpiredEvent.
45939func (srhree StatelessReplicaHealthReportExpiredEvent) AsPartitionPrimaryMoveAnalysisEvent() (*PartitionPrimaryMoveAnalysisEvent, bool) {
45940	return nil, false
45941}
45942
45943// AsServiceCreatedEvent is the BasicFabricEvent implementation for StatelessReplicaHealthReportExpiredEvent.
45944func (srhree StatelessReplicaHealthReportExpiredEvent) AsServiceCreatedEvent() (*ServiceCreatedEvent, bool) {
45945	return nil, false
45946}
45947
45948// AsServiceDeletedEvent is the BasicFabricEvent implementation for StatelessReplicaHealthReportExpiredEvent.
45949func (srhree StatelessReplicaHealthReportExpiredEvent) AsServiceDeletedEvent() (*ServiceDeletedEvent, bool) {
45950	return nil, false
45951}
45952
45953// AsServiceNewHealthReportEvent is the BasicFabricEvent implementation for StatelessReplicaHealthReportExpiredEvent.
45954func (srhree StatelessReplicaHealthReportExpiredEvent) AsServiceNewHealthReportEvent() (*ServiceNewHealthReportEvent, bool) {
45955	return nil, false
45956}
45957
45958// AsServiceHealthReportExpiredEvent is the BasicFabricEvent implementation for StatelessReplicaHealthReportExpiredEvent.
45959func (srhree StatelessReplicaHealthReportExpiredEvent) AsServiceHealthReportExpiredEvent() (*ServiceHealthReportExpiredEvent, bool) {
45960	return nil, false
45961}
45962
45963// AsDeployedServicePackageNewHealthReportEvent is the BasicFabricEvent implementation for StatelessReplicaHealthReportExpiredEvent.
45964func (srhree StatelessReplicaHealthReportExpiredEvent) AsDeployedServicePackageNewHealthReportEvent() (*DeployedServicePackageNewHealthReportEvent, bool) {
45965	return nil, false
45966}
45967
45968// AsDeployedServicePackageHealthReportExpiredEvent is the BasicFabricEvent implementation for StatelessReplicaHealthReportExpiredEvent.
45969func (srhree StatelessReplicaHealthReportExpiredEvent) AsDeployedServicePackageHealthReportExpiredEvent() (*DeployedServicePackageHealthReportExpiredEvent, bool) {
45970	return nil, false
45971}
45972
45973// AsStatefulReplicaNewHealthReportEvent is the BasicFabricEvent implementation for StatelessReplicaHealthReportExpiredEvent.
45974func (srhree StatelessReplicaHealthReportExpiredEvent) AsStatefulReplicaNewHealthReportEvent() (*StatefulReplicaNewHealthReportEvent, bool) {
45975	return nil, false
45976}
45977
45978// AsStatefulReplicaHealthReportExpiredEvent is the BasicFabricEvent implementation for StatelessReplicaHealthReportExpiredEvent.
45979func (srhree StatelessReplicaHealthReportExpiredEvent) AsStatefulReplicaHealthReportExpiredEvent() (*StatefulReplicaHealthReportExpiredEvent, bool) {
45980	return nil, false
45981}
45982
45983// AsStatelessReplicaNewHealthReportEvent is the BasicFabricEvent implementation for StatelessReplicaHealthReportExpiredEvent.
45984func (srhree StatelessReplicaHealthReportExpiredEvent) AsStatelessReplicaNewHealthReportEvent() (*StatelessReplicaNewHealthReportEvent, bool) {
45985	return nil, false
45986}
45987
45988// AsStatelessReplicaHealthReportExpiredEvent is the BasicFabricEvent implementation for StatelessReplicaHealthReportExpiredEvent.
45989func (srhree StatelessReplicaHealthReportExpiredEvent) AsStatelessReplicaHealthReportExpiredEvent() (*StatelessReplicaHealthReportExpiredEvent, bool) {
45990	return &srhree, true
45991}
45992
45993// AsClusterNewHealthReportEvent is the BasicFabricEvent implementation for StatelessReplicaHealthReportExpiredEvent.
45994func (srhree StatelessReplicaHealthReportExpiredEvent) AsClusterNewHealthReportEvent() (*ClusterNewHealthReportEvent, bool) {
45995	return nil, false
45996}
45997
45998// AsClusterHealthReportExpiredEvent is the BasicFabricEvent implementation for StatelessReplicaHealthReportExpiredEvent.
45999func (srhree StatelessReplicaHealthReportExpiredEvent) AsClusterHealthReportExpiredEvent() (*ClusterHealthReportExpiredEvent, bool) {
46000	return nil, false
46001}
46002
46003// AsClusterUpgradeCompletedEvent is the BasicFabricEvent implementation for StatelessReplicaHealthReportExpiredEvent.
46004func (srhree StatelessReplicaHealthReportExpiredEvent) AsClusterUpgradeCompletedEvent() (*ClusterUpgradeCompletedEvent, bool) {
46005	return nil, false
46006}
46007
46008// AsClusterUpgradeDomainCompletedEvent is the BasicFabricEvent implementation for StatelessReplicaHealthReportExpiredEvent.
46009func (srhree StatelessReplicaHealthReportExpiredEvent) AsClusterUpgradeDomainCompletedEvent() (*ClusterUpgradeDomainCompletedEvent, bool) {
46010	return nil, false
46011}
46012
46013// AsClusterUpgradeRollbackCompletedEvent is the BasicFabricEvent implementation for StatelessReplicaHealthReportExpiredEvent.
46014func (srhree StatelessReplicaHealthReportExpiredEvent) AsClusterUpgradeRollbackCompletedEvent() (*ClusterUpgradeRollbackCompletedEvent, bool) {
46015	return nil, false
46016}
46017
46018// AsClusterUpgradeRollbackStartedEvent is the BasicFabricEvent implementation for StatelessReplicaHealthReportExpiredEvent.
46019func (srhree StatelessReplicaHealthReportExpiredEvent) AsClusterUpgradeRollbackStartedEvent() (*ClusterUpgradeRollbackStartedEvent, bool) {
46020	return nil, false
46021}
46022
46023// AsClusterUpgradeStartedEvent is the BasicFabricEvent implementation for StatelessReplicaHealthReportExpiredEvent.
46024func (srhree StatelessReplicaHealthReportExpiredEvent) AsClusterUpgradeStartedEvent() (*ClusterUpgradeStartedEvent, bool) {
46025	return nil, false
46026}
46027
46028// AsChaosStoppedEvent is the BasicFabricEvent implementation for StatelessReplicaHealthReportExpiredEvent.
46029func (srhree StatelessReplicaHealthReportExpiredEvent) AsChaosStoppedEvent() (*ChaosStoppedEvent, bool) {
46030	return nil, false
46031}
46032
46033// AsChaosStartedEvent is the BasicFabricEvent implementation for StatelessReplicaHealthReportExpiredEvent.
46034func (srhree StatelessReplicaHealthReportExpiredEvent) AsChaosStartedEvent() (*ChaosStartedEvent, bool) {
46035	return nil, false
46036}
46037
46038// AsChaosCodePackageRestartScheduledEvent is the BasicFabricEvent implementation for StatelessReplicaHealthReportExpiredEvent.
46039func (srhree StatelessReplicaHealthReportExpiredEvent) AsChaosCodePackageRestartScheduledEvent() (*ChaosCodePackageRestartScheduledEvent, bool) {
46040	return nil, false
46041}
46042
46043// AsChaosReplicaRemovalScheduledEvent is the BasicFabricEvent implementation for StatelessReplicaHealthReportExpiredEvent.
46044func (srhree StatelessReplicaHealthReportExpiredEvent) AsChaosReplicaRemovalScheduledEvent() (*ChaosReplicaRemovalScheduledEvent, bool) {
46045	return nil, false
46046}
46047
46048// AsChaosPartitionSecondaryMoveScheduledEvent is the BasicFabricEvent implementation for StatelessReplicaHealthReportExpiredEvent.
46049func (srhree StatelessReplicaHealthReportExpiredEvent) AsChaosPartitionSecondaryMoveScheduledEvent() (*ChaosPartitionSecondaryMoveScheduledEvent, bool) {
46050	return nil, false
46051}
46052
46053// AsChaosPartitionPrimaryMoveScheduledEvent is the BasicFabricEvent implementation for StatelessReplicaHealthReportExpiredEvent.
46054func (srhree StatelessReplicaHealthReportExpiredEvent) AsChaosPartitionPrimaryMoveScheduledEvent() (*ChaosPartitionPrimaryMoveScheduledEvent, bool) {
46055	return nil, false
46056}
46057
46058// AsChaosReplicaRestartScheduledEvent is the BasicFabricEvent implementation for StatelessReplicaHealthReportExpiredEvent.
46059func (srhree StatelessReplicaHealthReportExpiredEvent) AsChaosReplicaRestartScheduledEvent() (*ChaosReplicaRestartScheduledEvent, bool) {
46060	return nil, false
46061}
46062
46063// AsChaosNodeRestartScheduledEvent is the BasicFabricEvent implementation for StatelessReplicaHealthReportExpiredEvent.
46064func (srhree StatelessReplicaHealthReportExpiredEvent) AsChaosNodeRestartScheduledEvent() (*ChaosNodeRestartScheduledEvent, bool) {
46065	return nil, false
46066}
46067
46068// AsFabricEvent is the BasicFabricEvent implementation for StatelessReplicaHealthReportExpiredEvent.
46069func (srhree StatelessReplicaHealthReportExpiredEvent) AsFabricEvent() (*FabricEvent, bool) {
46070	return nil, false
46071}
46072
46073// AsBasicFabricEvent is the BasicFabricEvent implementation for StatelessReplicaHealthReportExpiredEvent.
46074func (srhree StatelessReplicaHealthReportExpiredEvent) AsBasicFabricEvent() (BasicFabricEvent, bool) {
46075	return &srhree, true
46076}
46077
46078// StatelessReplicaNewHealthReportEvent stateless Replica Health Report Created event.
46079type StatelessReplicaNewHealthReportEvent struct {
46080	// SourceID - Id of report source.
46081	SourceID *string `json:"SourceId,omitempty"`
46082	// Property - Describes the property.
46083	Property *string `json:"Property,omitempty"`
46084	// HealthState - Describes the property health state.
46085	HealthState *string `json:"HealthState,omitempty"`
46086	// TimeToLiveMs - Time to live in milli-seconds.
46087	TimeToLiveMs *int64 `json:"TimeToLiveMs,omitempty"`
46088	// SequenceNumber - Sequence number of report.
46089	SequenceNumber *int64 `json:"SequenceNumber,omitempty"`
46090	// Description - Description of report.
46091	Description *string `json:"Description,omitempty"`
46092	// RemoveWhenExpired - Indicates the removal when it expires.
46093	RemoveWhenExpired *bool `json:"RemoveWhenExpired,omitempty"`
46094	// SourceUtcTimestamp - Source time.
46095	SourceUtcTimestamp *date.Time `json:"SourceUtcTimestamp,omitempty"`
46096	// 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.
46097	PartitionID *uuid.UUID `json:"PartitionId,omitempty"`
46098	// 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.
46099	ReplicaID *int64 `json:"ReplicaId,omitempty"`
46100	// EventInstanceID - The identifier for the FabricEvent instance.
46101	EventInstanceID *uuid.UUID `json:"EventInstanceId,omitempty"`
46102	// Category - The category of event.
46103	Category *string `json:"Category,omitempty"`
46104	// TimeStamp - The time event was logged.
46105	TimeStamp *date.Time `json:"TimeStamp,omitempty"`
46106	// HasCorrelatedEvents - Shows there is existing related events available.
46107	HasCorrelatedEvents *bool `json:"HasCorrelatedEvents,omitempty"`
46108	// 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'
46109	Kind KindBasicFabricEvent `json:"Kind,omitempty"`
46110}
46111
46112// MarshalJSON is the custom marshaler for StatelessReplicaNewHealthReportEvent.
46113func (srnhre StatelessReplicaNewHealthReportEvent) MarshalJSON() ([]byte, error) {
46114	srnhre.Kind = KindStatelessReplicaNewHealthReport
46115	objectMap := make(map[string]interface{})
46116	if srnhre.SourceID != nil {
46117		objectMap["SourceId"] = srnhre.SourceID
46118	}
46119	if srnhre.Property != nil {
46120		objectMap["Property"] = srnhre.Property
46121	}
46122	if srnhre.HealthState != nil {
46123		objectMap["HealthState"] = srnhre.HealthState
46124	}
46125	if srnhre.TimeToLiveMs != nil {
46126		objectMap["TimeToLiveMs"] = srnhre.TimeToLiveMs
46127	}
46128	if srnhre.SequenceNumber != nil {
46129		objectMap["SequenceNumber"] = srnhre.SequenceNumber
46130	}
46131	if srnhre.Description != nil {
46132		objectMap["Description"] = srnhre.Description
46133	}
46134	if srnhre.RemoveWhenExpired != nil {
46135		objectMap["RemoveWhenExpired"] = srnhre.RemoveWhenExpired
46136	}
46137	if srnhre.SourceUtcTimestamp != nil {
46138		objectMap["SourceUtcTimestamp"] = srnhre.SourceUtcTimestamp
46139	}
46140	if srnhre.PartitionID != nil {
46141		objectMap["PartitionId"] = srnhre.PartitionID
46142	}
46143	if srnhre.ReplicaID != nil {
46144		objectMap["ReplicaId"] = srnhre.ReplicaID
46145	}
46146	if srnhre.EventInstanceID != nil {
46147		objectMap["EventInstanceId"] = srnhre.EventInstanceID
46148	}
46149	if srnhre.Category != nil {
46150		objectMap["Category"] = srnhre.Category
46151	}
46152	if srnhre.TimeStamp != nil {
46153		objectMap["TimeStamp"] = srnhre.TimeStamp
46154	}
46155	if srnhre.HasCorrelatedEvents != nil {
46156		objectMap["HasCorrelatedEvents"] = srnhre.HasCorrelatedEvents
46157	}
46158	if srnhre.Kind != "" {
46159		objectMap["Kind"] = srnhre.Kind
46160	}
46161	return json.Marshal(objectMap)
46162}
46163
46164// AsApplicationEvent is the BasicFabricEvent implementation for StatelessReplicaNewHealthReportEvent.
46165func (srnhre StatelessReplicaNewHealthReportEvent) AsApplicationEvent() (*ApplicationEvent, bool) {
46166	return nil, false
46167}
46168
46169// AsBasicApplicationEvent is the BasicFabricEvent implementation for StatelessReplicaNewHealthReportEvent.
46170func (srnhre StatelessReplicaNewHealthReportEvent) AsBasicApplicationEvent() (BasicApplicationEvent, bool) {
46171	return nil, false
46172}
46173
46174// AsClusterEvent is the BasicFabricEvent implementation for StatelessReplicaNewHealthReportEvent.
46175func (srnhre StatelessReplicaNewHealthReportEvent) AsClusterEvent() (*ClusterEvent, bool) {
46176	return nil, false
46177}
46178
46179// AsBasicClusterEvent is the BasicFabricEvent implementation for StatelessReplicaNewHealthReportEvent.
46180func (srnhre StatelessReplicaNewHealthReportEvent) AsBasicClusterEvent() (BasicClusterEvent, bool) {
46181	return nil, false
46182}
46183
46184// AsContainerInstanceEvent is the BasicFabricEvent implementation for StatelessReplicaNewHealthReportEvent.
46185func (srnhre StatelessReplicaNewHealthReportEvent) AsContainerInstanceEvent() (*ContainerInstanceEvent, bool) {
46186	return nil, false
46187}
46188
46189// AsNodeEvent is the BasicFabricEvent implementation for StatelessReplicaNewHealthReportEvent.
46190func (srnhre StatelessReplicaNewHealthReportEvent) AsNodeEvent() (*NodeEvent, bool) {
46191	return nil, false
46192}
46193
46194// AsBasicNodeEvent is the BasicFabricEvent implementation for StatelessReplicaNewHealthReportEvent.
46195func (srnhre StatelessReplicaNewHealthReportEvent) AsBasicNodeEvent() (BasicNodeEvent, bool) {
46196	return nil, false
46197}
46198
46199// AsPartitionAnalysisEvent is the BasicFabricEvent implementation for StatelessReplicaNewHealthReportEvent.
46200func (srnhre StatelessReplicaNewHealthReportEvent) AsPartitionAnalysisEvent() (*PartitionAnalysisEvent, bool) {
46201	return nil, false
46202}
46203
46204// AsBasicPartitionAnalysisEvent is the BasicFabricEvent implementation for StatelessReplicaNewHealthReportEvent.
46205func (srnhre StatelessReplicaNewHealthReportEvent) AsBasicPartitionAnalysisEvent() (BasicPartitionAnalysisEvent, bool) {
46206	return nil, false
46207}
46208
46209// AsPartitionEvent is the BasicFabricEvent implementation for StatelessReplicaNewHealthReportEvent.
46210func (srnhre StatelessReplicaNewHealthReportEvent) AsPartitionEvent() (*PartitionEvent, bool) {
46211	return nil, false
46212}
46213
46214// AsBasicPartitionEvent is the BasicFabricEvent implementation for StatelessReplicaNewHealthReportEvent.
46215func (srnhre StatelessReplicaNewHealthReportEvent) AsBasicPartitionEvent() (BasicPartitionEvent, bool) {
46216	return nil, false
46217}
46218
46219// AsReplicaEvent is the BasicFabricEvent implementation for StatelessReplicaNewHealthReportEvent.
46220func (srnhre StatelessReplicaNewHealthReportEvent) AsReplicaEvent() (*ReplicaEvent, bool) {
46221	return nil, false
46222}
46223
46224// AsBasicReplicaEvent is the BasicFabricEvent implementation for StatelessReplicaNewHealthReportEvent.
46225func (srnhre StatelessReplicaNewHealthReportEvent) AsBasicReplicaEvent() (BasicReplicaEvent, bool) {
46226	return &srnhre, true
46227}
46228
46229// AsServiceEvent is the BasicFabricEvent implementation for StatelessReplicaNewHealthReportEvent.
46230func (srnhre StatelessReplicaNewHealthReportEvent) AsServiceEvent() (*ServiceEvent, bool) {
46231	return nil, false
46232}
46233
46234// AsBasicServiceEvent is the BasicFabricEvent implementation for StatelessReplicaNewHealthReportEvent.
46235func (srnhre StatelessReplicaNewHealthReportEvent) AsBasicServiceEvent() (BasicServiceEvent, bool) {
46236	return nil, false
46237}
46238
46239// AsApplicationCreatedEvent is the BasicFabricEvent implementation for StatelessReplicaNewHealthReportEvent.
46240func (srnhre StatelessReplicaNewHealthReportEvent) AsApplicationCreatedEvent() (*ApplicationCreatedEvent, bool) {
46241	return nil, false
46242}
46243
46244// AsApplicationDeletedEvent is the BasicFabricEvent implementation for StatelessReplicaNewHealthReportEvent.
46245func (srnhre StatelessReplicaNewHealthReportEvent) AsApplicationDeletedEvent() (*ApplicationDeletedEvent, bool) {
46246	return nil, false
46247}
46248
46249// AsApplicationNewHealthReportEvent is the BasicFabricEvent implementation for StatelessReplicaNewHealthReportEvent.
46250func (srnhre StatelessReplicaNewHealthReportEvent) AsApplicationNewHealthReportEvent() (*ApplicationNewHealthReportEvent, bool) {
46251	return nil, false
46252}
46253
46254// AsApplicationHealthReportExpiredEvent is the BasicFabricEvent implementation for StatelessReplicaNewHealthReportEvent.
46255func (srnhre StatelessReplicaNewHealthReportEvent) AsApplicationHealthReportExpiredEvent() (*ApplicationHealthReportExpiredEvent, bool) {
46256	return nil, false
46257}
46258
46259// AsApplicationUpgradeCompletedEvent is the BasicFabricEvent implementation for StatelessReplicaNewHealthReportEvent.
46260func (srnhre StatelessReplicaNewHealthReportEvent) AsApplicationUpgradeCompletedEvent() (*ApplicationUpgradeCompletedEvent, bool) {
46261	return nil, false
46262}
46263
46264// AsApplicationUpgradeDomainCompletedEvent is the BasicFabricEvent implementation for StatelessReplicaNewHealthReportEvent.
46265func (srnhre StatelessReplicaNewHealthReportEvent) AsApplicationUpgradeDomainCompletedEvent() (*ApplicationUpgradeDomainCompletedEvent, bool) {
46266	return nil, false
46267}
46268
46269// AsApplicationUpgradeRollbackCompletedEvent is the BasicFabricEvent implementation for StatelessReplicaNewHealthReportEvent.
46270func (srnhre StatelessReplicaNewHealthReportEvent) AsApplicationUpgradeRollbackCompletedEvent() (*ApplicationUpgradeRollbackCompletedEvent, bool) {
46271	return nil, false
46272}
46273
46274// AsApplicationUpgradeRollbackStartedEvent is the BasicFabricEvent implementation for StatelessReplicaNewHealthReportEvent.
46275func (srnhre StatelessReplicaNewHealthReportEvent) AsApplicationUpgradeRollbackStartedEvent() (*ApplicationUpgradeRollbackStartedEvent, bool) {
46276	return nil, false
46277}
46278
46279// AsApplicationUpgradeStartedEvent is the BasicFabricEvent implementation for StatelessReplicaNewHealthReportEvent.
46280func (srnhre StatelessReplicaNewHealthReportEvent) AsApplicationUpgradeStartedEvent() (*ApplicationUpgradeStartedEvent, bool) {
46281	return nil, false
46282}
46283
46284// AsDeployedApplicationNewHealthReportEvent is the BasicFabricEvent implementation for StatelessReplicaNewHealthReportEvent.
46285func (srnhre StatelessReplicaNewHealthReportEvent) AsDeployedApplicationNewHealthReportEvent() (*DeployedApplicationNewHealthReportEvent, bool) {
46286	return nil, false
46287}
46288
46289// AsDeployedApplicationHealthReportExpiredEvent is the BasicFabricEvent implementation for StatelessReplicaNewHealthReportEvent.
46290func (srnhre StatelessReplicaNewHealthReportEvent) AsDeployedApplicationHealthReportExpiredEvent() (*DeployedApplicationHealthReportExpiredEvent, bool) {
46291	return nil, false
46292}
46293
46294// AsApplicationProcessExitedEvent is the BasicFabricEvent implementation for StatelessReplicaNewHealthReportEvent.
46295func (srnhre StatelessReplicaNewHealthReportEvent) AsApplicationProcessExitedEvent() (*ApplicationProcessExitedEvent, bool) {
46296	return nil, false
46297}
46298
46299// AsApplicationContainerInstanceExitedEvent is the BasicFabricEvent implementation for StatelessReplicaNewHealthReportEvent.
46300func (srnhre StatelessReplicaNewHealthReportEvent) AsApplicationContainerInstanceExitedEvent() (*ApplicationContainerInstanceExitedEvent, bool) {
46301	return nil, false
46302}
46303
46304// AsNodeAbortedEvent is the BasicFabricEvent implementation for StatelessReplicaNewHealthReportEvent.
46305func (srnhre StatelessReplicaNewHealthReportEvent) AsNodeAbortedEvent() (*NodeAbortedEvent, bool) {
46306	return nil, false
46307}
46308
46309// AsNodeAddedToClusterEvent is the BasicFabricEvent implementation for StatelessReplicaNewHealthReportEvent.
46310func (srnhre StatelessReplicaNewHealthReportEvent) AsNodeAddedToClusterEvent() (*NodeAddedToClusterEvent, bool) {
46311	return nil, false
46312}
46313
46314// AsNodeClosedEvent is the BasicFabricEvent implementation for StatelessReplicaNewHealthReportEvent.
46315func (srnhre StatelessReplicaNewHealthReportEvent) AsNodeClosedEvent() (*NodeClosedEvent, bool) {
46316	return nil, false
46317}
46318
46319// AsNodeDeactivateCompletedEvent is the BasicFabricEvent implementation for StatelessReplicaNewHealthReportEvent.
46320func (srnhre StatelessReplicaNewHealthReportEvent) AsNodeDeactivateCompletedEvent() (*NodeDeactivateCompletedEvent, bool) {
46321	return nil, false
46322}
46323
46324// AsNodeDeactivateStartedEvent is the BasicFabricEvent implementation for StatelessReplicaNewHealthReportEvent.
46325func (srnhre StatelessReplicaNewHealthReportEvent) AsNodeDeactivateStartedEvent() (*NodeDeactivateStartedEvent, bool) {
46326	return nil, false
46327}
46328
46329// AsNodeDownEvent is the BasicFabricEvent implementation for StatelessReplicaNewHealthReportEvent.
46330func (srnhre StatelessReplicaNewHealthReportEvent) AsNodeDownEvent() (*NodeDownEvent, bool) {
46331	return nil, false
46332}
46333
46334// AsNodeNewHealthReportEvent is the BasicFabricEvent implementation for StatelessReplicaNewHealthReportEvent.
46335func (srnhre StatelessReplicaNewHealthReportEvent) AsNodeNewHealthReportEvent() (*NodeNewHealthReportEvent, bool) {
46336	return nil, false
46337}
46338
46339// AsNodeHealthReportExpiredEvent is the BasicFabricEvent implementation for StatelessReplicaNewHealthReportEvent.
46340func (srnhre StatelessReplicaNewHealthReportEvent) AsNodeHealthReportExpiredEvent() (*NodeHealthReportExpiredEvent, bool) {
46341	return nil, false
46342}
46343
46344// AsNodeOpenSucceededEvent is the BasicFabricEvent implementation for StatelessReplicaNewHealthReportEvent.
46345func (srnhre StatelessReplicaNewHealthReportEvent) AsNodeOpenSucceededEvent() (*NodeOpenSucceededEvent, bool) {
46346	return nil, false
46347}
46348
46349// AsNodeOpenFailedEvent is the BasicFabricEvent implementation for StatelessReplicaNewHealthReportEvent.
46350func (srnhre StatelessReplicaNewHealthReportEvent) AsNodeOpenFailedEvent() (*NodeOpenFailedEvent, bool) {
46351	return nil, false
46352}
46353
46354// AsNodeRemovedFromClusterEvent is the BasicFabricEvent implementation for StatelessReplicaNewHealthReportEvent.
46355func (srnhre StatelessReplicaNewHealthReportEvent) AsNodeRemovedFromClusterEvent() (*NodeRemovedFromClusterEvent, bool) {
46356	return nil, false
46357}
46358
46359// AsNodeUpEvent is the BasicFabricEvent implementation for StatelessReplicaNewHealthReportEvent.
46360func (srnhre StatelessReplicaNewHealthReportEvent) AsNodeUpEvent() (*NodeUpEvent, bool) {
46361	return nil, false
46362}
46363
46364// AsPartitionNewHealthReportEvent is the BasicFabricEvent implementation for StatelessReplicaNewHealthReportEvent.
46365func (srnhre StatelessReplicaNewHealthReportEvent) AsPartitionNewHealthReportEvent() (*PartitionNewHealthReportEvent, bool) {
46366	return nil, false
46367}
46368
46369// AsPartitionHealthReportExpiredEvent is the BasicFabricEvent implementation for StatelessReplicaNewHealthReportEvent.
46370func (srnhre StatelessReplicaNewHealthReportEvent) AsPartitionHealthReportExpiredEvent() (*PartitionHealthReportExpiredEvent, bool) {
46371	return nil, false
46372}
46373
46374// AsPartitionReconfiguredEvent is the BasicFabricEvent implementation for StatelessReplicaNewHealthReportEvent.
46375func (srnhre StatelessReplicaNewHealthReportEvent) AsPartitionReconfiguredEvent() (*PartitionReconfiguredEvent, bool) {
46376	return nil, false
46377}
46378
46379// AsPartitionPrimaryMoveAnalysisEvent is the BasicFabricEvent implementation for StatelessReplicaNewHealthReportEvent.
46380func (srnhre StatelessReplicaNewHealthReportEvent) AsPartitionPrimaryMoveAnalysisEvent() (*PartitionPrimaryMoveAnalysisEvent, bool) {
46381	return nil, false
46382}
46383
46384// AsServiceCreatedEvent is the BasicFabricEvent implementation for StatelessReplicaNewHealthReportEvent.
46385func (srnhre StatelessReplicaNewHealthReportEvent) AsServiceCreatedEvent() (*ServiceCreatedEvent, bool) {
46386	return nil, false
46387}
46388
46389// AsServiceDeletedEvent is the BasicFabricEvent implementation for StatelessReplicaNewHealthReportEvent.
46390func (srnhre StatelessReplicaNewHealthReportEvent) AsServiceDeletedEvent() (*ServiceDeletedEvent, bool) {
46391	return nil, false
46392}
46393
46394// AsServiceNewHealthReportEvent is the BasicFabricEvent implementation for StatelessReplicaNewHealthReportEvent.
46395func (srnhre StatelessReplicaNewHealthReportEvent) AsServiceNewHealthReportEvent() (*ServiceNewHealthReportEvent, bool) {
46396	return nil, false
46397}
46398
46399// AsServiceHealthReportExpiredEvent is the BasicFabricEvent implementation for StatelessReplicaNewHealthReportEvent.
46400func (srnhre StatelessReplicaNewHealthReportEvent) AsServiceHealthReportExpiredEvent() (*ServiceHealthReportExpiredEvent, bool) {
46401	return nil, false
46402}
46403
46404// AsDeployedServicePackageNewHealthReportEvent is the BasicFabricEvent implementation for StatelessReplicaNewHealthReportEvent.
46405func (srnhre StatelessReplicaNewHealthReportEvent) AsDeployedServicePackageNewHealthReportEvent() (*DeployedServicePackageNewHealthReportEvent, bool) {
46406	return nil, false
46407}
46408
46409// AsDeployedServicePackageHealthReportExpiredEvent is the BasicFabricEvent implementation for StatelessReplicaNewHealthReportEvent.
46410func (srnhre StatelessReplicaNewHealthReportEvent) AsDeployedServicePackageHealthReportExpiredEvent() (*DeployedServicePackageHealthReportExpiredEvent, bool) {
46411	return nil, false
46412}
46413
46414// AsStatefulReplicaNewHealthReportEvent is the BasicFabricEvent implementation for StatelessReplicaNewHealthReportEvent.
46415func (srnhre StatelessReplicaNewHealthReportEvent) AsStatefulReplicaNewHealthReportEvent() (*StatefulReplicaNewHealthReportEvent, bool) {
46416	return nil, false
46417}
46418
46419// AsStatefulReplicaHealthReportExpiredEvent is the BasicFabricEvent implementation for StatelessReplicaNewHealthReportEvent.
46420func (srnhre StatelessReplicaNewHealthReportEvent) AsStatefulReplicaHealthReportExpiredEvent() (*StatefulReplicaHealthReportExpiredEvent, bool) {
46421	return nil, false
46422}
46423
46424// AsStatelessReplicaNewHealthReportEvent is the BasicFabricEvent implementation for StatelessReplicaNewHealthReportEvent.
46425func (srnhre StatelessReplicaNewHealthReportEvent) AsStatelessReplicaNewHealthReportEvent() (*StatelessReplicaNewHealthReportEvent, bool) {
46426	return &srnhre, true
46427}
46428
46429// AsStatelessReplicaHealthReportExpiredEvent is the BasicFabricEvent implementation for StatelessReplicaNewHealthReportEvent.
46430func (srnhre StatelessReplicaNewHealthReportEvent) AsStatelessReplicaHealthReportExpiredEvent() (*StatelessReplicaHealthReportExpiredEvent, bool) {
46431	return nil, false
46432}
46433
46434// AsClusterNewHealthReportEvent is the BasicFabricEvent implementation for StatelessReplicaNewHealthReportEvent.
46435func (srnhre StatelessReplicaNewHealthReportEvent) AsClusterNewHealthReportEvent() (*ClusterNewHealthReportEvent, bool) {
46436	return nil, false
46437}
46438
46439// AsClusterHealthReportExpiredEvent is the BasicFabricEvent implementation for StatelessReplicaNewHealthReportEvent.
46440func (srnhre StatelessReplicaNewHealthReportEvent) AsClusterHealthReportExpiredEvent() (*ClusterHealthReportExpiredEvent, bool) {
46441	return nil, false
46442}
46443
46444// AsClusterUpgradeCompletedEvent is the BasicFabricEvent implementation for StatelessReplicaNewHealthReportEvent.
46445func (srnhre StatelessReplicaNewHealthReportEvent) AsClusterUpgradeCompletedEvent() (*ClusterUpgradeCompletedEvent, bool) {
46446	return nil, false
46447}
46448
46449// AsClusterUpgradeDomainCompletedEvent is the BasicFabricEvent implementation for StatelessReplicaNewHealthReportEvent.
46450func (srnhre StatelessReplicaNewHealthReportEvent) AsClusterUpgradeDomainCompletedEvent() (*ClusterUpgradeDomainCompletedEvent, bool) {
46451	return nil, false
46452}
46453
46454// AsClusterUpgradeRollbackCompletedEvent is the BasicFabricEvent implementation for StatelessReplicaNewHealthReportEvent.
46455func (srnhre StatelessReplicaNewHealthReportEvent) AsClusterUpgradeRollbackCompletedEvent() (*ClusterUpgradeRollbackCompletedEvent, bool) {
46456	return nil, false
46457}
46458
46459// AsClusterUpgradeRollbackStartedEvent is the BasicFabricEvent implementation for StatelessReplicaNewHealthReportEvent.
46460func (srnhre StatelessReplicaNewHealthReportEvent) AsClusterUpgradeRollbackStartedEvent() (*ClusterUpgradeRollbackStartedEvent, bool) {
46461	return nil, false
46462}
46463
46464// AsClusterUpgradeStartedEvent is the BasicFabricEvent implementation for StatelessReplicaNewHealthReportEvent.
46465func (srnhre StatelessReplicaNewHealthReportEvent) AsClusterUpgradeStartedEvent() (*ClusterUpgradeStartedEvent, bool) {
46466	return nil, false
46467}
46468
46469// AsChaosStoppedEvent is the BasicFabricEvent implementation for StatelessReplicaNewHealthReportEvent.
46470func (srnhre StatelessReplicaNewHealthReportEvent) AsChaosStoppedEvent() (*ChaosStoppedEvent, bool) {
46471	return nil, false
46472}
46473
46474// AsChaosStartedEvent is the BasicFabricEvent implementation for StatelessReplicaNewHealthReportEvent.
46475func (srnhre StatelessReplicaNewHealthReportEvent) AsChaosStartedEvent() (*ChaosStartedEvent, bool) {
46476	return nil, false
46477}
46478
46479// AsChaosCodePackageRestartScheduledEvent is the BasicFabricEvent implementation for StatelessReplicaNewHealthReportEvent.
46480func (srnhre StatelessReplicaNewHealthReportEvent) AsChaosCodePackageRestartScheduledEvent() (*ChaosCodePackageRestartScheduledEvent, bool) {
46481	return nil, false
46482}
46483
46484// AsChaosReplicaRemovalScheduledEvent is the BasicFabricEvent implementation for StatelessReplicaNewHealthReportEvent.
46485func (srnhre StatelessReplicaNewHealthReportEvent) AsChaosReplicaRemovalScheduledEvent() (*ChaosReplicaRemovalScheduledEvent, bool) {
46486	return nil, false
46487}
46488
46489// AsChaosPartitionSecondaryMoveScheduledEvent is the BasicFabricEvent implementation for StatelessReplicaNewHealthReportEvent.
46490func (srnhre StatelessReplicaNewHealthReportEvent) AsChaosPartitionSecondaryMoveScheduledEvent() (*ChaosPartitionSecondaryMoveScheduledEvent, bool) {
46491	return nil, false
46492}
46493
46494// AsChaosPartitionPrimaryMoveScheduledEvent is the BasicFabricEvent implementation for StatelessReplicaNewHealthReportEvent.
46495func (srnhre StatelessReplicaNewHealthReportEvent) AsChaosPartitionPrimaryMoveScheduledEvent() (*ChaosPartitionPrimaryMoveScheduledEvent, bool) {
46496	return nil, false
46497}
46498
46499// AsChaosReplicaRestartScheduledEvent is the BasicFabricEvent implementation for StatelessReplicaNewHealthReportEvent.
46500func (srnhre StatelessReplicaNewHealthReportEvent) AsChaosReplicaRestartScheduledEvent() (*ChaosReplicaRestartScheduledEvent, bool) {
46501	return nil, false
46502}
46503
46504// AsChaosNodeRestartScheduledEvent is the BasicFabricEvent implementation for StatelessReplicaNewHealthReportEvent.
46505func (srnhre StatelessReplicaNewHealthReportEvent) AsChaosNodeRestartScheduledEvent() (*ChaosNodeRestartScheduledEvent, bool) {
46506	return nil, false
46507}
46508
46509// AsFabricEvent is the BasicFabricEvent implementation for StatelessReplicaNewHealthReportEvent.
46510func (srnhre StatelessReplicaNewHealthReportEvent) AsFabricEvent() (*FabricEvent, bool) {
46511	return nil, false
46512}
46513
46514// AsBasicFabricEvent is the BasicFabricEvent implementation for StatelessReplicaNewHealthReportEvent.
46515func (srnhre StatelessReplicaNewHealthReportEvent) AsBasicFabricEvent() (BasicFabricEvent, bool) {
46516	return &srnhre, true
46517}
46518
46519// StatelessServiceDescription describes a stateless service.
46520type StatelessServiceDescription struct {
46521	// InstanceCount - The instance count.
46522	InstanceCount *int32 `json:"InstanceCount,omitempty"`
46523	// MinInstanceCount - MinInstanceCount is the minimum number of instances that must be up to meet the EnsureAvailability safety check during operations like upgrade or deactivate node.
46524	// The actual number that is used is max( MinInstanceCount, ceil( MinInstancePercentage/100.0 * InstanceCount) ).
46525	// Note, if InstanceCount is set to -1, during MinInstanceCount computation -1 is first converted into the number of nodes on which the instances are allowed to be placed according to the placement constraints on the service.
46526	MinInstanceCount *int32 `json:"MinInstanceCount,omitempty"`
46527	// MinInstancePercentage - MinInstancePercentage is the minimum percentage of InstanceCount that must be up to meet the EnsureAvailability safety check during operations like upgrade or deactivate node.
46528	// The actual number that is used is max( MinInstanceCount, ceil( MinInstancePercentage/100.0 * InstanceCount) ).
46529	// Note, if InstanceCount is set to -1, during MinInstancePercentage computation, -1 is first converted into the number of nodes on which the instances are allowed to be placed according to the placement constraints on the service.
46530	MinInstancePercentage *int32 `json:"MinInstancePercentage,omitempty"`
46531	// 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.
46532	// This property can be a combination of those flags obtained using bitwise 'OR' operator.
46533	// For example, if the provided value is 1 then the flags for InstanceCloseDelayDuration is set.
46534	// - None - Does not indicate any other properties are set. The value is zero.
46535	// - InstanceCloseDelayDuration - Indicates the InstanceCloseDelayDuration property is set. The value is 1.
46536	Flags *int32 `json:"Flags,omitempty"`
46537	// InstanceCloseDelayDurationSeconds - Duration in seconds, to wait before a stateless instance is closed, to allow the active requests to drain gracefully. This would be effective when the instance is closing during the application/cluster upgrade and disabling node.
46538	// The endpoint exposed on this instance is removed prior to starting the delay, which prevents new connections to this instance.
46539	// In addition, clients that have subscribed to service endpoint change events(https://docs.microsoft.com/dotnet/api/system.fabric.fabricclient.servicemanagementclient.registerservicenotificationfilterasync), can do
46540	// the following upon receiving the endpoint removal notification:
46541	//     - Stop sending new requests to this instance.
46542	//     - Close existing connections after in-flight requests have completed.
46543	//     - Connect to a different instance of the service partition for future requests.
46544	// Note, the default value of InstanceCloseDelayDuration is 0, which indicates that there won't be any delay or removal of the endpoint prior to closing the instance.
46545	InstanceCloseDelayDurationSeconds *int64 `json:"InstanceCloseDelayDurationSeconds,omitempty"`
46546	// ApplicationName - The name of the application, including the 'fabric:' URI scheme.
46547	ApplicationName *string `json:"ApplicationName,omitempty"`
46548	// ServiceName - The full name of the service with 'fabric:' URI scheme.
46549	ServiceName *string `json:"ServiceName,omitempty"`
46550	// ServiceTypeName - Name of the service type as specified in the service manifest.
46551	ServiceTypeName *string `json:"ServiceTypeName,omitempty"`
46552	// InitializationData - The initialization data as an array of bytes. Initialization data is passed to service instances or replicas when they are created.
46553	InitializationData *[]int32 `json:"InitializationData,omitempty"`
46554	// PartitionDescription - The partition description as an object.
46555	PartitionDescription BasicPartitionSchemeDescription `json:"PartitionDescription,omitempty"`
46556	// 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)".
46557	PlacementConstraints *string `json:"PlacementConstraints,omitempty"`
46558	// CorrelationScheme - The correlation scheme.
46559	CorrelationScheme *[]ServiceCorrelationDescription `json:"CorrelationScheme,omitempty"`
46560	// ServiceLoadMetrics - The service load metrics.
46561	ServiceLoadMetrics *[]ServiceLoadMetricDescription `json:"ServiceLoadMetrics,omitempty"`
46562	// ServicePlacementPolicies - The service placement policies.
46563	ServicePlacementPolicies *[]BasicServicePlacementPolicyDescription `json:"ServicePlacementPolicies,omitempty"`
46564	// DefaultMoveCost - The move cost for the service. Possible values include: 'Zero', 'Low', 'Medium', 'High', 'VeryHigh'
46565	DefaultMoveCost MoveCost `json:"DefaultMoveCost,omitempty"`
46566	// IsDefaultMoveCostSpecified - Indicates if the DefaultMoveCost property is specified.
46567	IsDefaultMoveCostSpecified *bool `json:"IsDefaultMoveCostSpecified,omitempty"`
46568	// ServicePackageActivationMode - The activation mode of service package to be used for a service. Possible values include: 'SharedProcess', 'ExclusiveProcess'
46569	ServicePackageActivationMode ServicePackageActivationMode `json:"ServicePackageActivationMode,omitempty"`
46570	// ServiceDNSName - The DNS name of the service. It requires the DNS system service to be enabled in Service Fabric cluster.
46571	ServiceDNSName *string `json:"ServiceDnsName,omitempty"`
46572	// ScalingPolicies - Scaling policies for this service.
46573	ScalingPolicies *[]ScalingPolicyDescription `json:"ScalingPolicies,omitempty"`
46574	// ServiceKind - Possible values include: 'ServiceKindBasicServiceDescriptionServiceKindServiceDescription', 'ServiceKindBasicServiceDescriptionServiceKindStateful', 'ServiceKindBasicServiceDescriptionServiceKindStateless'
46575	ServiceKind ServiceKindBasicServiceDescription `json:"ServiceKind,omitempty"`
46576}
46577
46578// MarshalJSON is the custom marshaler for StatelessServiceDescription.
46579func (ssd StatelessServiceDescription) MarshalJSON() ([]byte, error) {
46580	ssd.ServiceKind = ServiceKindBasicServiceDescriptionServiceKindStateless
46581	objectMap := make(map[string]interface{})
46582	if ssd.InstanceCount != nil {
46583		objectMap["InstanceCount"] = ssd.InstanceCount
46584	}
46585	if ssd.MinInstanceCount != nil {
46586		objectMap["MinInstanceCount"] = ssd.MinInstanceCount
46587	}
46588	if ssd.MinInstancePercentage != nil {
46589		objectMap["MinInstancePercentage"] = ssd.MinInstancePercentage
46590	}
46591	if ssd.Flags != nil {
46592		objectMap["Flags"] = ssd.Flags
46593	}
46594	if ssd.InstanceCloseDelayDurationSeconds != nil {
46595		objectMap["InstanceCloseDelayDurationSeconds"] = ssd.InstanceCloseDelayDurationSeconds
46596	}
46597	if ssd.ApplicationName != nil {
46598		objectMap["ApplicationName"] = ssd.ApplicationName
46599	}
46600	if ssd.ServiceName != nil {
46601		objectMap["ServiceName"] = ssd.ServiceName
46602	}
46603	if ssd.ServiceTypeName != nil {
46604		objectMap["ServiceTypeName"] = ssd.ServiceTypeName
46605	}
46606	if ssd.InitializationData != nil {
46607		objectMap["InitializationData"] = ssd.InitializationData
46608	}
46609	objectMap["PartitionDescription"] = ssd.PartitionDescription
46610	if ssd.PlacementConstraints != nil {
46611		objectMap["PlacementConstraints"] = ssd.PlacementConstraints
46612	}
46613	if ssd.CorrelationScheme != nil {
46614		objectMap["CorrelationScheme"] = ssd.CorrelationScheme
46615	}
46616	if ssd.ServiceLoadMetrics != nil {
46617		objectMap["ServiceLoadMetrics"] = ssd.ServiceLoadMetrics
46618	}
46619	if ssd.ServicePlacementPolicies != nil {
46620		objectMap["ServicePlacementPolicies"] = ssd.ServicePlacementPolicies
46621	}
46622	if ssd.DefaultMoveCost != "" {
46623		objectMap["DefaultMoveCost"] = ssd.DefaultMoveCost
46624	}
46625	if ssd.IsDefaultMoveCostSpecified != nil {
46626		objectMap["IsDefaultMoveCostSpecified"] = ssd.IsDefaultMoveCostSpecified
46627	}
46628	if ssd.ServicePackageActivationMode != "" {
46629		objectMap["ServicePackageActivationMode"] = ssd.ServicePackageActivationMode
46630	}
46631	if ssd.ServiceDNSName != nil {
46632		objectMap["ServiceDnsName"] = ssd.ServiceDNSName
46633	}
46634	if ssd.ScalingPolicies != nil {
46635		objectMap["ScalingPolicies"] = ssd.ScalingPolicies
46636	}
46637	if ssd.ServiceKind != "" {
46638		objectMap["ServiceKind"] = ssd.ServiceKind
46639	}
46640	return json.Marshal(objectMap)
46641}
46642
46643// AsStatefulServiceDescription is the BasicServiceDescription implementation for StatelessServiceDescription.
46644func (ssd StatelessServiceDescription) AsStatefulServiceDescription() (*StatefulServiceDescription, bool) {
46645	return nil, false
46646}
46647
46648// AsStatelessServiceDescription is the BasicServiceDescription implementation for StatelessServiceDescription.
46649func (ssd StatelessServiceDescription) AsStatelessServiceDescription() (*StatelessServiceDescription, bool) {
46650	return &ssd, true
46651}
46652
46653// AsServiceDescription is the BasicServiceDescription implementation for StatelessServiceDescription.
46654func (ssd StatelessServiceDescription) AsServiceDescription() (*ServiceDescription, bool) {
46655	return nil, false
46656}
46657
46658// AsBasicServiceDescription is the BasicServiceDescription implementation for StatelessServiceDescription.
46659func (ssd StatelessServiceDescription) AsBasicServiceDescription() (BasicServiceDescription, bool) {
46660	return &ssd, true
46661}
46662
46663// UnmarshalJSON is the custom unmarshaler for StatelessServiceDescription struct.
46664func (ssd *StatelessServiceDescription) UnmarshalJSON(body []byte) error {
46665	var m map[string]*json.RawMessage
46666	err := json.Unmarshal(body, &m)
46667	if err != nil {
46668		return err
46669	}
46670	for k, v := range m {
46671		switch k {
46672		case "InstanceCount":
46673			if v != nil {
46674				var instanceCount int32
46675				err = json.Unmarshal(*v, &instanceCount)
46676				if err != nil {
46677					return err
46678				}
46679				ssd.InstanceCount = &instanceCount
46680			}
46681		case "MinInstanceCount":
46682			if v != nil {
46683				var minInstanceCount int32
46684				err = json.Unmarshal(*v, &minInstanceCount)
46685				if err != nil {
46686					return err
46687				}
46688				ssd.MinInstanceCount = &minInstanceCount
46689			}
46690		case "MinInstancePercentage":
46691			if v != nil {
46692				var minInstancePercentage int32
46693				err = json.Unmarshal(*v, &minInstancePercentage)
46694				if err != nil {
46695					return err
46696				}
46697				ssd.MinInstancePercentage = &minInstancePercentage
46698			}
46699		case "Flags":
46700			if v != nil {
46701				var flags int32
46702				err = json.Unmarshal(*v, &flags)
46703				if err != nil {
46704					return err
46705				}
46706				ssd.Flags = &flags
46707			}
46708		case "InstanceCloseDelayDurationSeconds":
46709			if v != nil {
46710				var instanceCloseDelayDurationSeconds int64
46711				err = json.Unmarshal(*v, &instanceCloseDelayDurationSeconds)
46712				if err != nil {
46713					return err
46714				}
46715				ssd.InstanceCloseDelayDurationSeconds = &instanceCloseDelayDurationSeconds
46716			}
46717		case "ApplicationName":
46718			if v != nil {
46719				var applicationName string
46720				err = json.Unmarshal(*v, &applicationName)
46721				if err != nil {
46722					return err
46723				}
46724				ssd.ApplicationName = &applicationName
46725			}
46726		case "ServiceName":
46727			if v != nil {
46728				var serviceName string
46729				err = json.Unmarshal(*v, &serviceName)
46730				if err != nil {
46731					return err
46732				}
46733				ssd.ServiceName = &serviceName
46734			}
46735		case "ServiceTypeName":
46736			if v != nil {
46737				var serviceTypeName string
46738				err = json.Unmarshal(*v, &serviceTypeName)
46739				if err != nil {
46740					return err
46741				}
46742				ssd.ServiceTypeName = &serviceTypeName
46743			}
46744		case "InitializationData":
46745			if v != nil {
46746				var initializationData []int32
46747				err = json.Unmarshal(*v, &initializationData)
46748				if err != nil {
46749					return err
46750				}
46751				ssd.InitializationData = &initializationData
46752			}
46753		case "PartitionDescription":
46754			if v != nil {
46755				partitionDescription, err := unmarshalBasicPartitionSchemeDescription(*v)
46756				if err != nil {
46757					return err
46758				}
46759				ssd.PartitionDescription = partitionDescription
46760			}
46761		case "PlacementConstraints":
46762			if v != nil {
46763				var placementConstraints string
46764				err = json.Unmarshal(*v, &placementConstraints)
46765				if err != nil {
46766					return err
46767				}
46768				ssd.PlacementConstraints = &placementConstraints
46769			}
46770		case "CorrelationScheme":
46771			if v != nil {
46772				var correlationScheme []ServiceCorrelationDescription
46773				err = json.Unmarshal(*v, &correlationScheme)
46774				if err != nil {
46775					return err
46776				}
46777				ssd.CorrelationScheme = &correlationScheme
46778			}
46779		case "ServiceLoadMetrics":
46780			if v != nil {
46781				var serviceLoadMetrics []ServiceLoadMetricDescription
46782				err = json.Unmarshal(*v, &serviceLoadMetrics)
46783				if err != nil {
46784					return err
46785				}
46786				ssd.ServiceLoadMetrics = &serviceLoadMetrics
46787			}
46788		case "ServicePlacementPolicies":
46789			if v != nil {
46790				servicePlacementPolicies, err := unmarshalBasicServicePlacementPolicyDescriptionArray(*v)
46791				if err != nil {
46792					return err
46793				}
46794				ssd.ServicePlacementPolicies = &servicePlacementPolicies
46795			}
46796		case "DefaultMoveCost":
46797			if v != nil {
46798				var defaultMoveCost MoveCost
46799				err = json.Unmarshal(*v, &defaultMoveCost)
46800				if err != nil {
46801					return err
46802				}
46803				ssd.DefaultMoveCost = defaultMoveCost
46804			}
46805		case "IsDefaultMoveCostSpecified":
46806			if v != nil {
46807				var isDefaultMoveCostSpecified bool
46808				err = json.Unmarshal(*v, &isDefaultMoveCostSpecified)
46809				if err != nil {
46810					return err
46811				}
46812				ssd.IsDefaultMoveCostSpecified = &isDefaultMoveCostSpecified
46813			}
46814		case "ServicePackageActivationMode":
46815			if v != nil {
46816				var servicePackageActivationMode ServicePackageActivationMode
46817				err = json.Unmarshal(*v, &servicePackageActivationMode)
46818				if err != nil {
46819					return err
46820				}
46821				ssd.ServicePackageActivationMode = servicePackageActivationMode
46822			}
46823		case "ServiceDnsName":
46824			if v != nil {
46825				var serviceDNSName string
46826				err = json.Unmarshal(*v, &serviceDNSName)
46827				if err != nil {
46828					return err
46829				}
46830				ssd.ServiceDNSName = &serviceDNSName
46831			}
46832		case "ScalingPolicies":
46833			if v != nil {
46834				var scalingPolicies []ScalingPolicyDescription
46835				err = json.Unmarshal(*v, &scalingPolicies)
46836				if err != nil {
46837					return err
46838				}
46839				ssd.ScalingPolicies = &scalingPolicies
46840			}
46841		case "ServiceKind":
46842			if v != nil {
46843				var serviceKind ServiceKindBasicServiceDescription
46844				err = json.Unmarshal(*v, &serviceKind)
46845				if err != nil {
46846					return err
46847				}
46848				ssd.ServiceKind = serviceKind
46849			}
46850		}
46851	}
46852
46853	return nil
46854}
46855
46856// StatelessServiceInfo information about a stateless Service Fabric service.
46857type StatelessServiceInfo struct {
46858	// 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.
46859	// Starting in version 6.0, hierarchical names are delimited with the "\~" character. For example, if the service name is "fabric:/myapp/app1/svc1",
46860	// the service identity would be "myapp~app1\~svc1" in 6.0+ and "myapp/app1/svc1" in previous versions.
46861	ID *string `json:"Id,omitempty"`
46862	// Name - The full name of the service with 'fabric:' URI scheme.
46863	Name *string `json:"Name,omitempty"`
46864	// TypeName - Name of the service type as specified in the service manifest.
46865	TypeName *string `json:"TypeName,omitempty"`
46866	// ManifestVersion - The version of the service manifest.
46867	ManifestVersion *string `json:"ManifestVersion,omitempty"`
46868	// 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'
46869	HealthState HealthState `json:"HealthState,omitempty"`
46870	// ServiceStatus - The status of the application. Possible values include: 'ServiceStatusUnknown', 'ServiceStatusActive', 'ServiceStatusUpgrading', 'ServiceStatusDeleting', 'ServiceStatusCreating', 'ServiceStatusFailed'
46871	ServiceStatus ServiceStatus `json:"ServiceStatus,omitempty"`
46872	// IsServiceGroup - Whether the service is in a service group.
46873	IsServiceGroup *bool `json:"IsServiceGroup,omitempty"`
46874	// ServiceKind - Possible values include: 'ServiceKindBasicServiceInfoServiceKindServiceInfo', 'ServiceKindBasicServiceInfoServiceKindStateful', 'ServiceKindBasicServiceInfoServiceKindStateless'
46875	ServiceKind ServiceKindBasicServiceInfo `json:"ServiceKind,omitempty"`
46876}
46877
46878// MarshalJSON is the custom marshaler for StatelessServiceInfo.
46879func (ssi StatelessServiceInfo) MarshalJSON() ([]byte, error) {
46880	ssi.ServiceKind = ServiceKindBasicServiceInfoServiceKindStateless
46881	objectMap := make(map[string]interface{})
46882	if ssi.ID != nil {
46883		objectMap["Id"] = ssi.ID
46884	}
46885	if ssi.Name != nil {
46886		objectMap["Name"] = ssi.Name
46887	}
46888	if ssi.TypeName != nil {
46889		objectMap["TypeName"] = ssi.TypeName
46890	}
46891	if ssi.ManifestVersion != nil {
46892		objectMap["ManifestVersion"] = ssi.ManifestVersion
46893	}
46894	if ssi.HealthState != "" {
46895		objectMap["HealthState"] = ssi.HealthState
46896	}
46897	if ssi.ServiceStatus != "" {
46898		objectMap["ServiceStatus"] = ssi.ServiceStatus
46899	}
46900	if ssi.IsServiceGroup != nil {
46901		objectMap["IsServiceGroup"] = ssi.IsServiceGroup
46902	}
46903	if ssi.ServiceKind != "" {
46904		objectMap["ServiceKind"] = ssi.ServiceKind
46905	}
46906	return json.Marshal(objectMap)
46907}
46908
46909// AsStatefulServiceInfo is the BasicServiceInfo implementation for StatelessServiceInfo.
46910func (ssi StatelessServiceInfo) AsStatefulServiceInfo() (*StatefulServiceInfo, bool) {
46911	return nil, false
46912}
46913
46914// AsStatelessServiceInfo is the BasicServiceInfo implementation for StatelessServiceInfo.
46915func (ssi StatelessServiceInfo) AsStatelessServiceInfo() (*StatelessServiceInfo, bool) {
46916	return &ssi, true
46917}
46918
46919// AsServiceInfo is the BasicServiceInfo implementation for StatelessServiceInfo.
46920func (ssi StatelessServiceInfo) AsServiceInfo() (*ServiceInfo, bool) {
46921	return nil, false
46922}
46923
46924// AsBasicServiceInfo is the BasicServiceInfo implementation for StatelessServiceInfo.
46925func (ssi StatelessServiceInfo) AsBasicServiceInfo() (BasicServiceInfo, bool) {
46926	return &ssi, true
46927}
46928
46929// StatelessServiceInstanceHealth represents the health of the stateless service instance.
46930// Contains the instance aggregated health state, the health events and the unhealthy evaluations.
46931type StatelessServiceInstanceHealth struct {
46932	// 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.
46933	InstanceID *string `json:"InstanceId,omitempty"`
46934	// PartitionID - Id of the partition to which this replica belongs.
46935	PartitionID *uuid.UUID `json:"PartitionId,omitempty"`
46936	// ServiceKind - Possible values include: 'ServiceKindBasicReplicaHealthServiceKindReplicaHealth', 'ServiceKindBasicReplicaHealthServiceKindStateful', 'ServiceKindBasicReplicaHealthServiceKindStateless'
46937	ServiceKind ServiceKindBasicReplicaHealth `json:"ServiceKind,omitempty"`
46938	// AggregatedHealthState - The HealthState representing the aggregated health state of the entity computed by Health Manager.
46939	// The health evaluation of the entity reflects all events reported on the entity and its children (if any).
46940	// The aggregation is done by applying the desired health policy. Possible values include: 'HealthStateInvalid', 'HealthStateOk', 'HealthStateWarning', 'HealthStateError', 'HealthStateUnknown'
46941	AggregatedHealthState HealthState `json:"AggregatedHealthState,omitempty"`
46942	// HealthEvents - The list of health events reported on the entity.
46943	HealthEvents *[]HealthEvent `json:"HealthEvents,omitempty"`
46944	// UnhealthyEvaluations - The unhealthy evaluations that show why the current aggregated health state was returned by Health Manager.
46945	UnhealthyEvaluations *[]HealthEvaluationWrapper `json:"UnhealthyEvaluations,omitempty"`
46946	// HealthStatistics - Shows the health statistics for all children types of the queried entity.
46947	HealthStatistics *HealthStatistics `json:"HealthStatistics,omitempty"`
46948}
46949
46950// MarshalJSON is the custom marshaler for StatelessServiceInstanceHealth.
46951func (ssih StatelessServiceInstanceHealth) MarshalJSON() ([]byte, error) {
46952	ssih.ServiceKind = ServiceKindBasicReplicaHealthServiceKindStateless
46953	objectMap := make(map[string]interface{})
46954	if ssih.InstanceID != nil {
46955		objectMap["InstanceId"] = ssih.InstanceID
46956	}
46957	if ssih.PartitionID != nil {
46958		objectMap["PartitionId"] = ssih.PartitionID
46959	}
46960	if ssih.ServiceKind != "" {
46961		objectMap["ServiceKind"] = ssih.ServiceKind
46962	}
46963	if ssih.AggregatedHealthState != "" {
46964		objectMap["AggregatedHealthState"] = ssih.AggregatedHealthState
46965	}
46966	if ssih.HealthEvents != nil {
46967		objectMap["HealthEvents"] = ssih.HealthEvents
46968	}
46969	if ssih.UnhealthyEvaluations != nil {
46970		objectMap["UnhealthyEvaluations"] = ssih.UnhealthyEvaluations
46971	}
46972	if ssih.HealthStatistics != nil {
46973		objectMap["HealthStatistics"] = ssih.HealthStatistics
46974	}
46975	return json.Marshal(objectMap)
46976}
46977
46978// AsStatefulServiceReplicaHealth is the BasicReplicaHealth implementation for StatelessServiceInstanceHealth.
46979func (ssih StatelessServiceInstanceHealth) AsStatefulServiceReplicaHealth() (*StatefulServiceReplicaHealth, bool) {
46980	return nil, false
46981}
46982
46983// AsStatelessServiceInstanceHealth is the BasicReplicaHealth implementation for StatelessServiceInstanceHealth.
46984func (ssih StatelessServiceInstanceHealth) AsStatelessServiceInstanceHealth() (*StatelessServiceInstanceHealth, bool) {
46985	return &ssih, true
46986}
46987
46988// AsReplicaHealth is the BasicReplicaHealth implementation for StatelessServiceInstanceHealth.
46989func (ssih StatelessServiceInstanceHealth) AsReplicaHealth() (*ReplicaHealth, bool) {
46990	return nil, false
46991}
46992
46993// AsBasicReplicaHealth is the BasicReplicaHealth implementation for StatelessServiceInstanceHealth.
46994func (ssih StatelessServiceInstanceHealth) AsBasicReplicaHealth() (BasicReplicaHealth, bool) {
46995	return &ssih, true
46996}
46997
46998// StatelessServiceInstanceHealthState represents the health state of the stateless service instance, which
46999// contains the instance ID and the aggregated health state.
47000type StatelessServiceInstanceHealthState struct {
47001	// ReplicaID - Id of the stateless service instance on the wire this field is called ReplicaId.
47002	ReplicaID *string `json:"ReplicaId,omitempty"`
47003	// PartitionID - The ID of the partition to which this replica belongs.
47004	PartitionID *uuid.UUID `json:"PartitionId,omitempty"`
47005	// ServiceKind - Possible values include: 'ServiceKindBasicReplicaHealthStateServiceKindReplicaHealthState', 'ServiceKindBasicReplicaHealthStateServiceKindStateful', 'ServiceKindBasicReplicaHealthStateServiceKindStateless'
47006	ServiceKind ServiceKindBasicReplicaHealthState `json:"ServiceKind,omitempty"`
47007	// 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'
47008	AggregatedHealthState HealthState `json:"AggregatedHealthState,omitempty"`
47009}
47010
47011// MarshalJSON is the custom marshaler for StatelessServiceInstanceHealthState.
47012func (ssihs StatelessServiceInstanceHealthState) MarshalJSON() ([]byte, error) {
47013	ssihs.ServiceKind = ServiceKindBasicReplicaHealthStateServiceKindStateless
47014	objectMap := make(map[string]interface{})
47015	if ssihs.ReplicaID != nil {
47016		objectMap["ReplicaId"] = ssihs.ReplicaID
47017	}
47018	if ssihs.PartitionID != nil {
47019		objectMap["PartitionId"] = ssihs.PartitionID
47020	}
47021	if ssihs.ServiceKind != "" {
47022		objectMap["ServiceKind"] = ssihs.ServiceKind
47023	}
47024	if ssihs.AggregatedHealthState != "" {
47025		objectMap["AggregatedHealthState"] = ssihs.AggregatedHealthState
47026	}
47027	return json.Marshal(objectMap)
47028}
47029
47030// AsStatefulServiceReplicaHealthState is the BasicReplicaHealthState implementation for StatelessServiceInstanceHealthState.
47031func (ssihs StatelessServiceInstanceHealthState) AsStatefulServiceReplicaHealthState() (*StatefulServiceReplicaHealthState, bool) {
47032	return nil, false
47033}
47034
47035// AsStatelessServiceInstanceHealthState is the BasicReplicaHealthState implementation for StatelessServiceInstanceHealthState.
47036func (ssihs StatelessServiceInstanceHealthState) AsStatelessServiceInstanceHealthState() (*StatelessServiceInstanceHealthState, bool) {
47037	return &ssihs, true
47038}
47039
47040// AsReplicaHealthState is the BasicReplicaHealthState implementation for StatelessServiceInstanceHealthState.
47041func (ssihs StatelessServiceInstanceHealthState) AsReplicaHealthState() (*ReplicaHealthState, bool) {
47042	return nil, false
47043}
47044
47045// AsBasicReplicaHealthState is the BasicReplicaHealthState implementation for StatelessServiceInstanceHealthState.
47046func (ssihs StatelessServiceInstanceHealthState) AsBasicReplicaHealthState() (BasicReplicaHealthState, bool) {
47047	return &ssihs, true
47048}
47049
47050// StatelessServiceInstanceInfo represents a stateless service instance. This includes information about
47051// the identity, status, health, node name, uptime, and other details about the instance.
47052type StatelessServiceInstanceInfo struct {
47053	// 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.
47054	InstanceID *string `json:"InstanceId,omitempty"`
47055	// ReplicaStatus - The status of a replica of a service. Possible values include: 'ReplicaStatusInvalid', 'ReplicaStatusInBuild', 'ReplicaStatusStandby', 'ReplicaStatusReady', 'ReplicaStatusDown', 'ReplicaStatusDropped'
47056	ReplicaStatus ReplicaStatus `json:"ReplicaStatus,omitempty"`
47057	// 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'
47058	HealthState HealthState `json:"HealthState,omitempty"`
47059	// NodeName - The name of a Service Fabric node.
47060	NodeName *string `json:"NodeName,omitempty"`
47061	// Address - The address the replica is listening on.
47062	Address *string `json:"Address,omitempty"`
47063	// LastInBuildDurationInSeconds - The last in build duration of the replica in seconds.
47064	LastInBuildDurationInSeconds *string `json:"LastInBuildDurationInSeconds,omitempty"`
47065	// ServiceKind - Possible values include: 'ServiceKindBasicReplicaInfoServiceKindReplicaInfo', 'ServiceKindBasicReplicaInfoServiceKindStateful', 'ServiceKindBasicReplicaInfoServiceKindStateless'
47066	ServiceKind ServiceKindBasicReplicaInfo `json:"ServiceKind,omitempty"`
47067}
47068
47069// MarshalJSON is the custom marshaler for StatelessServiceInstanceInfo.
47070func (ssii StatelessServiceInstanceInfo) MarshalJSON() ([]byte, error) {
47071	ssii.ServiceKind = ServiceKindBasicReplicaInfoServiceKindStateless
47072	objectMap := make(map[string]interface{})
47073	if ssii.InstanceID != nil {
47074		objectMap["InstanceId"] = ssii.InstanceID
47075	}
47076	if ssii.ReplicaStatus != "" {
47077		objectMap["ReplicaStatus"] = ssii.ReplicaStatus
47078	}
47079	if ssii.HealthState != "" {
47080		objectMap["HealthState"] = ssii.HealthState
47081	}
47082	if ssii.NodeName != nil {
47083		objectMap["NodeName"] = ssii.NodeName
47084	}
47085	if ssii.Address != nil {
47086		objectMap["Address"] = ssii.Address
47087	}
47088	if ssii.LastInBuildDurationInSeconds != nil {
47089		objectMap["LastInBuildDurationInSeconds"] = ssii.LastInBuildDurationInSeconds
47090	}
47091	if ssii.ServiceKind != "" {
47092		objectMap["ServiceKind"] = ssii.ServiceKind
47093	}
47094	return json.Marshal(objectMap)
47095}
47096
47097// AsStatefulServiceReplicaInfo is the BasicReplicaInfo implementation for StatelessServiceInstanceInfo.
47098func (ssii StatelessServiceInstanceInfo) AsStatefulServiceReplicaInfo() (*StatefulServiceReplicaInfo, bool) {
47099	return nil, false
47100}
47101
47102// AsStatelessServiceInstanceInfo is the BasicReplicaInfo implementation for StatelessServiceInstanceInfo.
47103func (ssii StatelessServiceInstanceInfo) AsStatelessServiceInstanceInfo() (*StatelessServiceInstanceInfo, bool) {
47104	return &ssii, true
47105}
47106
47107// AsReplicaInfo is the BasicReplicaInfo implementation for StatelessServiceInstanceInfo.
47108func (ssii StatelessServiceInstanceInfo) AsReplicaInfo() (*ReplicaInfo, bool) {
47109	return nil, false
47110}
47111
47112// AsBasicReplicaInfo is the BasicReplicaInfo implementation for StatelessServiceInstanceInfo.
47113func (ssii StatelessServiceInstanceInfo) AsBasicReplicaInfo() (BasicReplicaInfo, bool) {
47114	return &ssii, true
47115}
47116
47117// StatelessServicePartitionInfo information about a partition of a stateless Service Fabric service.
47118type StatelessServicePartitionInfo struct {
47119	// InstanceCount - Number of instances of this partition.
47120	InstanceCount *int64 `json:"InstanceCount,omitempty"`
47121	// MinInstanceCount - MinInstanceCount is the minimum number of instances that must be up to meet the EnsureAvailability safety check during operations like upgrade or deactivate node.
47122	// The actual number that is used is max( MinInstanceCount, ceil( MinInstancePercentage/100.0 * InstanceCount) ).
47123	// Note, if InstanceCount is set to -1, during MinInstanceCount computation -1 is first converted into the number of nodes on which the instances are allowed to be placed according to the placement constraints on the service.
47124	MinInstanceCount *int32 `json:"MinInstanceCount,omitempty"`
47125	// MinInstancePercentage - MinInstancePercentage is the minimum percentage of InstanceCount that must be up to meet the EnsureAvailability safety check during operations like upgrade or deactivate node.
47126	// The actual number that is used is max( MinInstanceCount, ceil( MinInstancePercentage/100.0 * InstanceCount) ).
47127	// Note, if InstanceCount is set to -1, during MinInstancePercentage computation, -1 is first converted into the number of nodes on which the instances are allowed to be placed according to the placement constraints on the service.
47128	MinInstancePercentage *int32 `json:"MinInstancePercentage,omitempty"`
47129	// 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'
47130	HealthState HealthState `json:"HealthState,omitempty"`
47131	// PartitionStatus - The status of the service fabric service partition. Possible values include: 'ServicePartitionStatusInvalid', 'ServicePartitionStatusReady', 'ServicePartitionStatusNotReady', 'ServicePartitionStatusInQuorumLoss', 'ServicePartitionStatusReconfiguring', 'ServicePartitionStatusDeleting'
47132	PartitionStatus ServicePartitionStatus `json:"PartitionStatus,omitempty"`
47133	// PartitionInformation - Information about the partition identity, partitioning scheme and keys supported by it.
47134	PartitionInformation BasicPartitionInformation `json:"PartitionInformation,omitempty"`
47135	// ServiceKind - Possible values include: 'ServiceKindBasicServicePartitionInfoServiceKindServicePartitionInfo', 'ServiceKindBasicServicePartitionInfoServiceKindStateful', 'ServiceKindBasicServicePartitionInfoServiceKindStateless'
47136	ServiceKind ServiceKindBasicServicePartitionInfo `json:"ServiceKind,omitempty"`
47137}
47138
47139// MarshalJSON is the custom marshaler for StatelessServicePartitionInfo.
47140func (sspi StatelessServicePartitionInfo) MarshalJSON() ([]byte, error) {
47141	sspi.ServiceKind = ServiceKindBasicServicePartitionInfoServiceKindStateless
47142	objectMap := make(map[string]interface{})
47143	if sspi.InstanceCount != nil {
47144		objectMap["InstanceCount"] = sspi.InstanceCount
47145	}
47146	if sspi.MinInstanceCount != nil {
47147		objectMap["MinInstanceCount"] = sspi.MinInstanceCount
47148	}
47149	if sspi.MinInstancePercentage != nil {
47150		objectMap["MinInstancePercentage"] = sspi.MinInstancePercentage
47151	}
47152	if sspi.HealthState != "" {
47153		objectMap["HealthState"] = sspi.HealthState
47154	}
47155	if sspi.PartitionStatus != "" {
47156		objectMap["PartitionStatus"] = sspi.PartitionStatus
47157	}
47158	objectMap["PartitionInformation"] = sspi.PartitionInformation
47159	if sspi.ServiceKind != "" {
47160		objectMap["ServiceKind"] = sspi.ServiceKind
47161	}
47162	return json.Marshal(objectMap)
47163}
47164
47165// AsStatefulServicePartitionInfo is the BasicServicePartitionInfo implementation for StatelessServicePartitionInfo.
47166func (sspi StatelessServicePartitionInfo) AsStatefulServicePartitionInfo() (*StatefulServicePartitionInfo, bool) {
47167	return nil, false
47168}
47169
47170// AsStatelessServicePartitionInfo is the BasicServicePartitionInfo implementation for StatelessServicePartitionInfo.
47171func (sspi StatelessServicePartitionInfo) AsStatelessServicePartitionInfo() (*StatelessServicePartitionInfo, bool) {
47172	return &sspi, true
47173}
47174
47175// AsServicePartitionInfo is the BasicServicePartitionInfo implementation for StatelessServicePartitionInfo.
47176func (sspi StatelessServicePartitionInfo) AsServicePartitionInfo() (*ServicePartitionInfo, bool) {
47177	return nil, false
47178}
47179
47180// AsBasicServicePartitionInfo is the BasicServicePartitionInfo implementation for StatelessServicePartitionInfo.
47181func (sspi StatelessServicePartitionInfo) AsBasicServicePartitionInfo() (BasicServicePartitionInfo, bool) {
47182	return &sspi, true
47183}
47184
47185// UnmarshalJSON is the custom unmarshaler for StatelessServicePartitionInfo struct.
47186func (sspi *StatelessServicePartitionInfo) UnmarshalJSON(body []byte) error {
47187	var m map[string]*json.RawMessage
47188	err := json.Unmarshal(body, &m)
47189	if err != nil {
47190		return err
47191	}
47192	for k, v := range m {
47193		switch k {
47194		case "InstanceCount":
47195			if v != nil {
47196				var instanceCount int64
47197				err = json.Unmarshal(*v, &instanceCount)
47198				if err != nil {
47199					return err
47200				}
47201				sspi.InstanceCount = &instanceCount
47202			}
47203		case "MinInstanceCount":
47204			if v != nil {
47205				var minInstanceCount int32
47206				err = json.Unmarshal(*v, &minInstanceCount)
47207				if err != nil {
47208					return err
47209				}
47210				sspi.MinInstanceCount = &minInstanceCount
47211			}
47212		case "MinInstancePercentage":
47213			if v != nil {
47214				var minInstancePercentage int32
47215				err = json.Unmarshal(*v, &minInstancePercentage)
47216				if err != nil {
47217					return err
47218				}
47219				sspi.MinInstancePercentage = &minInstancePercentage
47220			}
47221		case "HealthState":
47222			if v != nil {
47223				var healthState HealthState
47224				err = json.Unmarshal(*v, &healthState)
47225				if err != nil {
47226					return err
47227				}
47228				sspi.HealthState = healthState
47229			}
47230		case "PartitionStatus":
47231			if v != nil {
47232				var partitionStatus ServicePartitionStatus
47233				err = json.Unmarshal(*v, &partitionStatus)
47234				if err != nil {
47235					return err
47236				}
47237				sspi.PartitionStatus = partitionStatus
47238			}
47239		case "PartitionInformation":
47240			if v != nil {
47241				partitionInformation, err := unmarshalBasicPartitionInformation(*v)
47242				if err != nil {
47243					return err
47244				}
47245				sspi.PartitionInformation = partitionInformation
47246			}
47247		case "ServiceKind":
47248			if v != nil {
47249				var serviceKind ServiceKindBasicServicePartitionInfo
47250				err = json.Unmarshal(*v, &serviceKind)
47251				if err != nil {
47252					return err
47253				}
47254				sspi.ServiceKind = serviceKind
47255			}
47256		}
47257	}
47258
47259	return nil
47260}
47261
47262// StatelessServiceTypeDescription describes a stateless service type defined in the service manifest of a
47263// provisioned application type.
47264type StatelessServiceTypeDescription struct {
47265	// 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.
47266	UseImplicitHost *bool `json:"UseImplicitHost,omitempty"`
47267	// 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.
47268	IsStateful *bool `json:"IsStateful,omitempty"`
47269	// ServiceTypeName - Name of the service type as specified in the service manifest.
47270	ServiceTypeName *string `json:"ServiceTypeName,omitempty"`
47271	// PlacementConstraints - The placement constraint to be used when instantiating this service in a Service Fabric cluster.
47272	PlacementConstraints *string `json:"PlacementConstraints,omitempty"`
47273	// LoadMetrics - The service load metrics is given as an array of ServiceLoadMetricDescription objects.
47274	LoadMetrics *[]ServiceLoadMetricDescription `json:"LoadMetrics,omitempty"`
47275	// ServicePlacementPolicies - List of service placement policy descriptions.
47276	ServicePlacementPolicies *[]BasicServicePlacementPolicyDescription `json:"ServicePlacementPolicies,omitempty"`
47277	// Extensions - List of service type extensions.
47278	Extensions *[]ServiceTypeExtensionDescription `json:"Extensions,omitempty"`
47279	// Kind - Possible values include: 'KindServiceTypeDescription', 'KindStateful', 'KindStateless'
47280	Kind KindBasicServiceTypeDescription `json:"Kind,omitempty"`
47281}
47282
47283// MarshalJSON is the custom marshaler for StatelessServiceTypeDescription.
47284func (sstd StatelessServiceTypeDescription) MarshalJSON() ([]byte, error) {
47285	sstd.Kind = KindStateless
47286	objectMap := make(map[string]interface{})
47287	if sstd.UseImplicitHost != nil {
47288		objectMap["UseImplicitHost"] = sstd.UseImplicitHost
47289	}
47290	if sstd.IsStateful != nil {
47291		objectMap["IsStateful"] = sstd.IsStateful
47292	}
47293	if sstd.ServiceTypeName != nil {
47294		objectMap["ServiceTypeName"] = sstd.ServiceTypeName
47295	}
47296	if sstd.PlacementConstraints != nil {
47297		objectMap["PlacementConstraints"] = sstd.PlacementConstraints
47298	}
47299	if sstd.LoadMetrics != nil {
47300		objectMap["LoadMetrics"] = sstd.LoadMetrics
47301	}
47302	if sstd.ServicePlacementPolicies != nil {
47303		objectMap["ServicePlacementPolicies"] = sstd.ServicePlacementPolicies
47304	}
47305	if sstd.Extensions != nil {
47306		objectMap["Extensions"] = sstd.Extensions
47307	}
47308	if sstd.Kind != "" {
47309		objectMap["Kind"] = sstd.Kind
47310	}
47311	return json.Marshal(objectMap)
47312}
47313
47314// AsStatefulServiceTypeDescription is the BasicServiceTypeDescription implementation for StatelessServiceTypeDescription.
47315func (sstd StatelessServiceTypeDescription) AsStatefulServiceTypeDescription() (*StatefulServiceTypeDescription, bool) {
47316	return nil, false
47317}
47318
47319// AsStatelessServiceTypeDescription is the BasicServiceTypeDescription implementation for StatelessServiceTypeDescription.
47320func (sstd StatelessServiceTypeDescription) AsStatelessServiceTypeDescription() (*StatelessServiceTypeDescription, bool) {
47321	return &sstd, true
47322}
47323
47324// AsServiceTypeDescription is the BasicServiceTypeDescription implementation for StatelessServiceTypeDescription.
47325func (sstd StatelessServiceTypeDescription) AsServiceTypeDescription() (*ServiceTypeDescription, bool) {
47326	return nil, false
47327}
47328
47329// AsBasicServiceTypeDescription is the BasicServiceTypeDescription implementation for StatelessServiceTypeDescription.
47330func (sstd StatelessServiceTypeDescription) AsBasicServiceTypeDescription() (BasicServiceTypeDescription, bool) {
47331	return &sstd, true
47332}
47333
47334// UnmarshalJSON is the custom unmarshaler for StatelessServiceTypeDescription struct.
47335func (sstd *StatelessServiceTypeDescription) UnmarshalJSON(body []byte) error {
47336	var m map[string]*json.RawMessage
47337	err := json.Unmarshal(body, &m)
47338	if err != nil {
47339		return err
47340	}
47341	for k, v := range m {
47342		switch k {
47343		case "UseImplicitHost":
47344			if v != nil {
47345				var useImplicitHost bool
47346				err = json.Unmarshal(*v, &useImplicitHost)
47347				if err != nil {
47348					return err
47349				}
47350				sstd.UseImplicitHost = &useImplicitHost
47351			}
47352		case "IsStateful":
47353			if v != nil {
47354				var isStateful bool
47355				err = json.Unmarshal(*v, &isStateful)
47356				if err != nil {
47357					return err
47358				}
47359				sstd.IsStateful = &isStateful
47360			}
47361		case "ServiceTypeName":
47362			if v != nil {
47363				var serviceTypeName string
47364				err = json.Unmarshal(*v, &serviceTypeName)
47365				if err != nil {
47366					return err
47367				}
47368				sstd.ServiceTypeName = &serviceTypeName
47369			}
47370		case "PlacementConstraints":
47371			if v != nil {
47372				var placementConstraints string
47373				err = json.Unmarshal(*v, &placementConstraints)
47374				if err != nil {
47375					return err
47376				}
47377				sstd.PlacementConstraints = &placementConstraints
47378			}
47379		case "LoadMetrics":
47380			if v != nil {
47381				var loadMetrics []ServiceLoadMetricDescription
47382				err = json.Unmarshal(*v, &loadMetrics)
47383				if err != nil {
47384					return err
47385				}
47386				sstd.LoadMetrics = &loadMetrics
47387			}
47388		case "ServicePlacementPolicies":
47389			if v != nil {
47390				servicePlacementPolicies, err := unmarshalBasicServicePlacementPolicyDescriptionArray(*v)
47391				if err != nil {
47392					return err
47393				}
47394				sstd.ServicePlacementPolicies = &servicePlacementPolicies
47395			}
47396		case "Extensions":
47397			if v != nil {
47398				var extensions []ServiceTypeExtensionDescription
47399				err = json.Unmarshal(*v, &extensions)
47400				if err != nil {
47401					return err
47402				}
47403				sstd.Extensions = &extensions
47404			}
47405		case "Kind":
47406			if v != nil {
47407				var kind KindBasicServiceTypeDescription
47408				err = json.Unmarshal(*v, &kind)
47409				if err != nil {
47410					return err
47411				}
47412				sstd.Kind = kind
47413			}
47414		}
47415	}
47416
47417	return nil
47418}
47419
47420// StatelessServiceUpdateDescription describes an update for a stateless service.
47421type StatelessServiceUpdateDescription struct {
47422	// InstanceCount - The instance count.
47423	InstanceCount *int32 `json:"InstanceCount,omitempty"`
47424	// MinInstanceCount - MinInstanceCount is the minimum number of instances that must be up to meet the EnsureAvailability safety check during operations like upgrade or deactivate node.
47425	// The actual number that is used is max( MinInstanceCount, ceil( MinInstancePercentage/100.0 * InstanceCount) ).
47426	// Note, if InstanceCount is set to -1, during MinInstanceCount computation -1 is first converted into the number of nodes on which the instances are allowed to be placed according to the placement constraints on the service.
47427	MinInstanceCount *int32 `json:"MinInstanceCount,omitempty"`
47428	// MinInstancePercentage - MinInstancePercentage is the minimum percentage of InstanceCount that must be up to meet the EnsureAvailability safety check during operations like upgrade or deactivate node.
47429	// The actual number that is used is max( MinInstanceCount, ceil( MinInstancePercentage/100.0 * InstanceCount) ).
47430	// Note, if InstanceCount is set to -1, during MinInstancePercentage computation, -1 is first converted into the number of nodes on which the instances are allowed to be placed according to the placement constraints on the service.
47431	MinInstancePercentage *int32 `json:"MinInstancePercentage,omitempty"`
47432	// InstanceCloseDelayDurationSeconds - Duration in seconds, to wait before a stateless instance is closed, to allow the active requests to drain gracefully. This would be effective when the instance is closing during the application/cluster upgrade and disabling node.
47433	// The endpoint exposed on this instance is removed prior to starting the delay, which prevents new connections to this instance.
47434	// In addition, clients that have subscribed to service endpoint change events(https://docs.microsoft.com/dotnet/api/system.fabric.fabricclient.servicemanagementclient.registerservicenotificationfilterasync), can do
47435	// the following upon receiving the endpoint removal notification:
47436	//     - Stop sending new requests to this instance.
47437	//     - Close existing connections after in-flight requests have completed.
47438	//     - Connect to a different instance of the service partition for future requests.
47439	InstanceCloseDelayDurationSeconds *string `json:"InstanceCloseDelayDurationSeconds,omitempty"`
47440	// 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.
47441	// This property can be a combination of those flags obtained using bitwise 'OR' operator.
47442	// For example, if the provided value is 6 then the flags for ReplicaRestartWaitDuration (2) and QuorumLossWaitDuration (4) are set.
47443	// - None - Does not indicate any other properties are set. The value is zero.
47444	// - TargetReplicaSetSize/InstanceCount - Indicates whether the TargetReplicaSetSize property (for Stateful services) or the InstanceCount property (for Stateless services) is set. The value is 1.
47445	// - ReplicaRestartWaitDuration - Indicates the ReplicaRestartWaitDuration property is set. The value is  2.
47446	// - QuorumLossWaitDuration - Indicates the QuorumLossWaitDuration property is set. The value is 4.
47447	// - StandByReplicaKeepDuration - Indicates the StandByReplicaKeepDuration property is set. The value is 8.
47448	// - MinReplicaSetSize - Indicates the MinReplicaSetSize property is set. The value is 16.
47449	// - PlacementConstraints - Indicates the PlacementConstraints property is set. The value is 32.
47450	// - PlacementPolicyList - Indicates the ServicePlacementPolicies property is set. The value is 64.
47451	// - Correlation - Indicates the CorrelationScheme property is set. The value is 128.
47452	// - Metrics - Indicates the ServiceLoadMetrics property is set. The value is 256.
47453	// - DefaultMoveCost - Indicates the DefaultMoveCost property is set. The value is 512.
47454	// - ScalingPolicy - Indicates the ScalingPolicies property is set. The value is 1024.
47455	// - ServicePlacementTimeLimit - Indicates the ServicePlacementTimeLimit property is set. The value is 2048.
47456	// - MinInstanceCount - Indicates the MinInstanceCount property is set. The value is 4096.
47457	// - MinInstancePercentage - Indicates the MinInstancePercentage property is set. The value is 8192.
47458	// - InstanceCloseDelayDuration - Indicates the InstanceCloseDelayDuration property is set. The value is 16384.
47459	// - DropSourceReplicaOnMove - Indicates the DropSourceReplicaOnMove property is set. The value is 32768.
47460	Flags *string `json:"Flags,omitempty"`
47461	// 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)".
47462	PlacementConstraints *string `json:"PlacementConstraints,omitempty"`
47463	// CorrelationScheme - The correlation scheme.
47464	CorrelationScheme *[]ServiceCorrelationDescription `json:"CorrelationScheme,omitempty"`
47465	// LoadMetrics - The service load metrics.
47466	LoadMetrics *[]ServiceLoadMetricDescription `json:"LoadMetrics,omitempty"`
47467	// ServicePlacementPolicies - The service placement policies.
47468	ServicePlacementPolicies *[]BasicServicePlacementPolicyDescription `json:"ServicePlacementPolicies,omitempty"`
47469	// DefaultMoveCost - The move cost for the service. Possible values include: 'Zero', 'Low', 'Medium', 'High', 'VeryHigh'
47470	DefaultMoveCost MoveCost `json:"DefaultMoveCost,omitempty"`
47471	// ScalingPolicies - Scaling policies for this service.
47472	ScalingPolicies *[]ScalingPolicyDescription `json:"ScalingPolicies,omitempty"`
47473	// ServiceKind - Possible values include: 'ServiceKindBasicServiceUpdateDescriptionServiceKindServiceUpdateDescription', 'ServiceKindBasicServiceUpdateDescriptionServiceKindStateful', 'ServiceKindBasicServiceUpdateDescriptionServiceKindStateless'
47474	ServiceKind ServiceKindBasicServiceUpdateDescription `json:"ServiceKind,omitempty"`
47475}
47476
47477// MarshalJSON is the custom marshaler for StatelessServiceUpdateDescription.
47478func (ssud StatelessServiceUpdateDescription) MarshalJSON() ([]byte, error) {
47479	ssud.ServiceKind = ServiceKindBasicServiceUpdateDescriptionServiceKindStateless
47480	objectMap := make(map[string]interface{})
47481	if ssud.InstanceCount != nil {
47482		objectMap["InstanceCount"] = ssud.InstanceCount
47483	}
47484	if ssud.MinInstanceCount != nil {
47485		objectMap["MinInstanceCount"] = ssud.MinInstanceCount
47486	}
47487	if ssud.MinInstancePercentage != nil {
47488		objectMap["MinInstancePercentage"] = ssud.MinInstancePercentage
47489	}
47490	if ssud.InstanceCloseDelayDurationSeconds != nil {
47491		objectMap["InstanceCloseDelayDurationSeconds"] = ssud.InstanceCloseDelayDurationSeconds
47492	}
47493	if ssud.Flags != nil {
47494		objectMap["Flags"] = ssud.Flags
47495	}
47496	if ssud.PlacementConstraints != nil {
47497		objectMap["PlacementConstraints"] = ssud.PlacementConstraints
47498	}
47499	if ssud.CorrelationScheme != nil {
47500		objectMap["CorrelationScheme"] = ssud.CorrelationScheme
47501	}
47502	if ssud.LoadMetrics != nil {
47503		objectMap["LoadMetrics"] = ssud.LoadMetrics
47504	}
47505	if ssud.ServicePlacementPolicies != nil {
47506		objectMap["ServicePlacementPolicies"] = ssud.ServicePlacementPolicies
47507	}
47508	if ssud.DefaultMoveCost != "" {
47509		objectMap["DefaultMoveCost"] = ssud.DefaultMoveCost
47510	}
47511	if ssud.ScalingPolicies != nil {
47512		objectMap["ScalingPolicies"] = ssud.ScalingPolicies
47513	}
47514	if ssud.ServiceKind != "" {
47515		objectMap["ServiceKind"] = ssud.ServiceKind
47516	}
47517	return json.Marshal(objectMap)
47518}
47519
47520// AsStatefulServiceUpdateDescription is the BasicServiceUpdateDescription implementation for StatelessServiceUpdateDescription.
47521func (ssud StatelessServiceUpdateDescription) AsStatefulServiceUpdateDescription() (*StatefulServiceUpdateDescription, bool) {
47522	return nil, false
47523}
47524
47525// AsStatelessServiceUpdateDescription is the BasicServiceUpdateDescription implementation for StatelessServiceUpdateDescription.
47526func (ssud StatelessServiceUpdateDescription) AsStatelessServiceUpdateDescription() (*StatelessServiceUpdateDescription, bool) {
47527	return &ssud, true
47528}
47529
47530// AsServiceUpdateDescription is the BasicServiceUpdateDescription implementation for StatelessServiceUpdateDescription.
47531func (ssud StatelessServiceUpdateDescription) AsServiceUpdateDescription() (*ServiceUpdateDescription, bool) {
47532	return nil, false
47533}
47534
47535// AsBasicServiceUpdateDescription is the BasicServiceUpdateDescription implementation for StatelessServiceUpdateDescription.
47536func (ssud StatelessServiceUpdateDescription) AsBasicServiceUpdateDescription() (BasicServiceUpdateDescription, bool) {
47537	return &ssud, true
47538}
47539
47540// UnmarshalJSON is the custom unmarshaler for StatelessServiceUpdateDescription struct.
47541func (ssud *StatelessServiceUpdateDescription) UnmarshalJSON(body []byte) error {
47542	var m map[string]*json.RawMessage
47543	err := json.Unmarshal(body, &m)
47544	if err != nil {
47545		return err
47546	}
47547	for k, v := range m {
47548		switch k {
47549		case "InstanceCount":
47550			if v != nil {
47551				var instanceCount int32
47552				err = json.Unmarshal(*v, &instanceCount)
47553				if err != nil {
47554					return err
47555				}
47556				ssud.InstanceCount = &instanceCount
47557			}
47558		case "MinInstanceCount":
47559			if v != nil {
47560				var minInstanceCount int32
47561				err = json.Unmarshal(*v, &minInstanceCount)
47562				if err != nil {
47563					return err
47564				}
47565				ssud.MinInstanceCount = &minInstanceCount
47566			}
47567		case "MinInstancePercentage":
47568			if v != nil {
47569				var minInstancePercentage int32
47570				err = json.Unmarshal(*v, &minInstancePercentage)
47571				if err != nil {
47572					return err
47573				}
47574				ssud.MinInstancePercentage = &minInstancePercentage
47575			}
47576		case "InstanceCloseDelayDurationSeconds":
47577			if v != nil {
47578				var instanceCloseDelayDurationSeconds string
47579				err = json.Unmarshal(*v, &instanceCloseDelayDurationSeconds)
47580				if err != nil {
47581					return err
47582				}
47583				ssud.InstanceCloseDelayDurationSeconds = &instanceCloseDelayDurationSeconds
47584			}
47585		case "Flags":
47586			if v != nil {
47587				var flags string
47588				err = json.Unmarshal(*v, &flags)
47589				if err != nil {
47590					return err
47591				}
47592				ssud.Flags = &flags
47593			}
47594		case "PlacementConstraints":
47595			if v != nil {
47596				var placementConstraints string
47597				err = json.Unmarshal(*v, &placementConstraints)
47598				if err != nil {
47599					return err
47600				}
47601				ssud.PlacementConstraints = &placementConstraints
47602			}
47603		case "CorrelationScheme":
47604			if v != nil {
47605				var correlationScheme []ServiceCorrelationDescription
47606				err = json.Unmarshal(*v, &correlationScheme)
47607				if err != nil {
47608					return err
47609				}
47610				ssud.CorrelationScheme = &correlationScheme
47611			}
47612		case "LoadMetrics":
47613			if v != nil {
47614				var loadMetrics []ServiceLoadMetricDescription
47615				err = json.Unmarshal(*v, &loadMetrics)
47616				if err != nil {
47617					return err
47618				}
47619				ssud.LoadMetrics = &loadMetrics
47620			}
47621		case "ServicePlacementPolicies":
47622			if v != nil {
47623				servicePlacementPolicies, err := unmarshalBasicServicePlacementPolicyDescriptionArray(*v)
47624				if err != nil {
47625					return err
47626				}
47627				ssud.ServicePlacementPolicies = &servicePlacementPolicies
47628			}
47629		case "DefaultMoveCost":
47630			if v != nil {
47631				var defaultMoveCost MoveCost
47632				err = json.Unmarshal(*v, &defaultMoveCost)
47633				if err != nil {
47634					return err
47635				}
47636				ssud.DefaultMoveCost = defaultMoveCost
47637			}
47638		case "ScalingPolicies":
47639			if v != nil {
47640				var scalingPolicies []ScalingPolicyDescription
47641				err = json.Unmarshal(*v, &scalingPolicies)
47642				if err != nil {
47643					return err
47644				}
47645				ssud.ScalingPolicies = &scalingPolicies
47646			}
47647		case "ServiceKind":
47648			if v != nil {
47649				var serviceKind ServiceKindBasicServiceUpdateDescription
47650				err = json.Unmarshal(*v, &serviceKind)
47651				if err != nil {
47652					return err
47653				}
47654				ssud.ServiceKind = serviceKind
47655			}
47656		}
47657	}
47658
47659	return nil
47660}
47661
47662// StoppedChaosEvent describes a Chaos event that gets generated when Chaos stops because either the user
47663// issued a stop or the time to run was up.
47664type StoppedChaosEvent struct {
47665	// Reason - Describes why Chaos stopped. Chaos can stop because of StopChaos API call or the timeToRun provided in ChaosParameters is over.
47666	Reason *string `json:"Reason,omitempty"`
47667	// TimeStampUtc - The UTC timestamp when this Chaos event was generated.
47668	TimeStampUtc *date.Time `json:"TimeStampUtc,omitempty"`
47669	// Kind - Possible values include: 'KindChaosEvent', 'KindExecutingFaults', 'KindStarted', 'KindStopped', 'KindTestError', 'KindValidationFailed', 'KindWaiting'
47670	Kind KindBasicChaosEvent `json:"Kind,omitempty"`
47671}
47672
47673// MarshalJSON is the custom marshaler for StoppedChaosEvent.
47674func (sce StoppedChaosEvent) MarshalJSON() ([]byte, error) {
47675	sce.Kind = KindStopped
47676	objectMap := make(map[string]interface{})
47677	if sce.Reason != nil {
47678		objectMap["Reason"] = sce.Reason
47679	}
47680	if sce.TimeStampUtc != nil {
47681		objectMap["TimeStampUtc"] = sce.TimeStampUtc
47682	}
47683	if sce.Kind != "" {
47684		objectMap["Kind"] = sce.Kind
47685	}
47686	return json.Marshal(objectMap)
47687}
47688
47689// AsExecutingFaultsChaosEvent is the BasicChaosEvent implementation for StoppedChaosEvent.
47690func (sce StoppedChaosEvent) AsExecutingFaultsChaosEvent() (*ExecutingFaultsChaosEvent, bool) {
47691	return nil, false
47692}
47693
47694// AsStartedChaosEvent is the BasicChaosEvent implementation for StoppedChaosEvent.
47695func (sce StoppedChaosEvent) AsStartedChaosEvent() (*StartedChaosEvent, bool) {
47696	return nil, false
47697}
47698
47699// AsStoppedChaosEvent is the BasicChaosEvent implementation for StoppedChaosEvent.
47700func (sce StoppedChaosEvent) AsStoppedChaosEvent() (*StoppedChaosEvent, bool) {
47701	return &sce, true
47702}
47703
47704// AsTestErrorChaosEvent is the BasicChaosEvent implementation for StoppedChaosEvent.
47705func (sce StoppedChaosEvent) AsTestErrorChaosEvent() (*TestErrorChaosEvent, bool) {
47706	return nil, false
47707}
47708
47709// AsValidationFailedChaosEvent is the BasicChaosEvent implementation for StoppedChaosEvent.
47710func (sce StoppedChaosEvent) AsValidationFailedChaosEvent() (*ValidationFailedChaosEvent, bool) {
47711	return nil, false
47712}
47713
47714// AsWaitingChaosEvent is the BasicChaosEvent implementation for StoppedChaosEvent.
47715func (sce StoppedChaosEvent) AsWaitingChaosEvent() (*WaitingChaosEvent, bool) {
47716	return nil, false
47717}
47718
47719// AsChaosEvent is the BasicChaosEvent implementation for StoppedChaosEvent.
47720func (sce StoppedChaosEvent) AsChaosEvent() (*ChaosEvent, bool) {
47721	return nil, false
47722}
47723
47724// AsBasicChaosEvent is the BasicChaosEvent implementation for StoppedChaosEvent.
47725func (sce StoppedChaosEvent) AsBasicChaosEvent() (BasicChaosEvent, bool) {
47726	return &sce, true
47727}
47728
47729// String ...
47730type String struct {
47731	autorest.Response `json:"-"`
47732	Value             *string `json:"value,omitempty"`
47733}
47734
47735// StringPropertyValue describes a Service Fabric property value of type String.
47736type StringPropertyValue struct {
47737	// Data - The data of the property value.
47738	Data *string `json:"Data,omitempty"`
47739	// Kind - Possible values include: 'KindPropertyValue', 'KindBinary', 'KindInt64', 'KindDouble', 'KindString', 'KindGUID'
47740	Kind KindBasicPropertyValue `json:"Kind,omitempty"`
47741}
47742
47743// MarshalJSON is the custom marshaler for StringPropertyValue.
47744func (spv StringPropertyValue) MarshalJSON() ([]byte, error) {
47745	spv.Kind = KindString
47746	objectMap := make(map[string]interface{})
47747	if spv.Data != nil {
47748		objectMap["Data"] = spv.Data
47749	}
47750	if spv.Kind != "" {
47751		objectMap["Kind"] = spv.Kind
47752	}
47753	return json.Marshal(objectMap)
47754}
47755
47756// AsBinaryPropertyValue is the BasicPropertyValue implementation for StringPropertyValue.
47757func (spv StringPropertyValue) AsBinaryPropertyValue() (*BinaryPropertyValue, bool) {
47758	return nil, false
47759}
47760
47761// AsInt64PropertyValue is the BasicPropertyValue implementation for StringPropertyValue.
47762func (spv StringPropertyValue) AsInt64PropertyValue() (*Int64PropertyValue, bool) {
47763	return nil, false
47764}
47765
47766// AsDoublePropertyValue is the BasicPropertyValue implementation for StringPropertyValue.
47767func (spv StringPropertyValue) AsDoublePropertyValue() (*DoublePropertyValue, bool) {
47768	return nil, false
47769}
47770
47771// AsStringPropertyValue is the BasicPropertyValue implementation for StringPropertyValue.
47772func (spv StringPropertyValue) AsStringPropertyValue() (*StringPropertyValue, bool) {
47773	return &spv, true
47774}
47775
47776// AsGUIDPropertyValue is the BasicPropertyValue implementation for StringPropertyValue.
47777func (spv StringPropertyValue) AsGUIDPropertyValue() (*GUIDPropertyValue, bool) {
47778	return nil, false
47779}
47780
47781// AsPropertyValue is the BasicPropertyValue implementation for StringPropertyValue.
47782func (spv StringPropertyValue) AsPropertyValue() (*PropertyValue, bool) {
47783	return nil, false
47784}
47785
47786// AsBasicPropertyValue is the BasicPropertyValue implementation for StringPropertyValue.
47787func (spv StringPropertyValue) AsBasicPropertyValue() (BasicPropertyValue, bool) {
47788	return &spv, true
47789}
47790
47791// SuccessfulPropertyBatchInfo derived from PropertyBatchInfo. Represents the property batch succeeding.
47792// Contains the results of any "Get" operations in the batch.
47793type SuccessfulPropertyBatchInfo struct {
47794	// 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.
47795	Properties map[string]*PropertyInfo `json:"Properties"`
47796	// Kind - Possible values include: 'KindPropertyBatchInfo', 'KindSuccessful', 'KindFailed'
47797	Kind KindBasicPropertyBatchInfo `json:"Kind,omitempty"`
47798}
47799
47800// MarshalJSON is the custom marshaler for SuccessfulPropertyBatchInfo.
47801func (spbi SuccessfulPropertyBatchInfo) MarshalJSON() ([]byte, error) {
47802	spbi.Kind = KindSuccessful
47803	objectMap := make(map[string]interface{})
47804	if spbi.Properties != nil {
47805		objectMap["Properties"] = spbi.Properties
47806	}
47807	if spbi.Kind != "" {
47808		objectMap["Kind"] = spbi.Kind
47809	}
47810	return json.Marshal(objectMap)
47811}
47812
47813// AsSuccessfulPropertyBatchInfo is the BasicPropertyBatchInfo implementation for SuccessfulPropertyBatchInfo.
47814func (spbi SuccessfulPropertyBatchInfo) AsSuccessfulPropertyBatchInfo() (*SuccessfulPropertyBatchInfo, bool) {
47815	return &spbi, true
47816}
47817
47818// AsFailedPropertyBatchInfo is the BasicPropertyBatchInfo implementation for SuccessfulPropertyBatchInfo.
47819func (spbi SuccessfulPropertyBatchInfo) AsFailedPropertyBatchInfo() (*FailedPropertyBatchInfo, bool) {
47820	return nil, false
47821}
47822
47823// AsPropertyBatchInfo is the BasicPropertyBatchInfo implementation for SuccessfulPropertyBatchInfo.
47824func (spbi SuccessfulPropertyBatchInfo) AsPropertyBatchInfo() (*PropertyBatchInfo, bool) {
47825	return nil, false
47826}
47827
47828// AsBasicPropertyBatchInfo is the BasicPropertyBatchInfo implementation for SuccessfulPropertyBatchInfo.
47829func (spbi SuccessfulPropertyBatchInfo) AsBasicPropertyBatchInfo() (BasicPropertyBatchInfo, bool) {
47830	return &spbi, true
47831}
47832
47833// SystemApplicationHealthEvaluation represents health evaluation for the fabric:/System application,
47834// containing information about the data and the algorithm used by health store to evaluate health. The
47835// evaluation is returned only when the aggregated health state of the cluster is either Error or Warning.
47836type SystemApplicationHealthEvaluation struct {
47837	// 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.
47838	UnhealthyEvaluations *[]HealthEvaluationWrapper `json:"UnhealthyEvaluations,omitempty"`
47839	// 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'
47840	AggregatedHealthState HealthState `json:"AggregatedHealthState,omitempty"`
47841	// Description - Description of the health evaluation, which represents a summary of the evaluation process.
47842	Description *string `json:"Description,omitempty"`
47843	// 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'
47844	Kind Kind `json:"Kind,omitempty"`
47845}
47846
47847// MarshalJSON is the custom marshaler for SystemApplicationHealthEvaluation.
47848func (sahe SystemApplicationHealthEvaluation) MarshalJSON() ([]byte, error) {
47849	sahe.Kind = KindSystemApplication
47850	objectMap := make(map[string]interface{})
47851	if sahe.UnhealthyEvaluations != nil {
47852		objectMap["UnhealthyEvaluations"] = sahe.UnhealthyEvaluations
47853	}
47854	if sahe.AggregatedHealthState != "" {
47855		objectMap["AggregatedHealthState"] = sahe.AggregatedHealthState
47856	}
47857	if sahe.Description != nil {
47858		objectMap["Description"] = sahe.Description
47859	}
47860	if sahe.Kind != "" {
47861		objectMap["Kind"] = sahe.Kind
47862	}
47863	return json.Marshal(objectMap)
47864}
47865
47866// AsApplicationHealthEvaluation is the BasicHealthEvaluation implementation for SystemApplicationHealthEvaluation.
47867func (sahe SystemApplicationHealthEvaluation) AsApplicationHealthEvaluation() (*ApplicationHealthEvaluation, bool) {
47868	return nil, false
47869}
47870
47871// AsApplicationsHealthEvaluation is the BasicHealthEvaluation implementation for SystemApplicationHealthEvaluation.
47872func (sahe SystemApplicationHealthEvaluation) AsApplicationsHealthEvaluation() (*ApplicationsHealthEvaluation, bool) {
47873	return nil, false
47874}
47875
47876// AsApplicationTypeApplicationsHealthEvaluation is the BasicHealthEvaluation implementation for SystemApplicationHealthEvaluation.
47877func (sahe SystemApplicationHealthEvaluation) AsApplicationTypeApplicationsHealthEvaluation() (*ApplicationTypeApplicationsHealthEvaluation, bool) {
47878	return nil, false
47879}
47880
47881// AsDeltaNodesCheckHealthEvaluation is the BasicHealthEvaluation implementation for SystemApplicationHealthEvaluation.
47882func (sahe SystemApplicationHealthEvaluation) AsDeltaNodesCheckHealthEvaluation() (*DeltaNodesCheckHealthEvaluation, bool) {
47883	return nil, false
47884}
47885
47886// AsDeployedApplicationHealthEvaluation is the BasicHealthEvaluation implementation for SystemApplicationHealthEvaluation.
47887func (sahe SystemApplicationHealthEvaluation) AsDeployedApplicationHealthEvaluation() (*DeployedApplicationHealthEvaluation, bool) {
47888	return nil, false
47889}
47890
47891// AsDeployedApplicationsHealthEvaluation is the BasicHealthEvaluation implementation for SystemApplicationHealthEvaluation.
47892func (sahe SystemApplicationHealthEvaluation) AsDeployedApplicationsHealthEvaluation() (*DeployedApplicationsHealthEvaluation, bool) {
47893	return nil, false
47894}
47895
47896// AsDeployedServicePackageHealthEvaluation is the BasicHealthEvaluation implementation for SystemApplicationHealthEvaluation.
47897func (sahe SystemApplicationHealthEvaluation) AsDeployedServicePackageHealthEvaluation() (*DeployedServicePackageHealthEvaluation, bool) {
47898	return nil, false
47899}
47900
47901// AsDeployedServicePackagesHealthEvaluation is the BasicHealthEvaluation implementation for SystemApplicationHealthEvaluation.
47902func (sahe SystemApplicationHealthEvaluation) AsDeployedServicePackagesHealthEvaluation() (*DeployedServicePackagesHealthEvaluation, bool) {
47903	return nil, false
47904}
47905
47906// AsEventHealthEvaluation is the BasicHealthEvaluation implementation for SystemApplicationHealthEvaluation.
47907func (sahe SystemApplicationHealthEvaluation) AsEventHealthEvaluation() (*EventHealthEvaluation, bool) {
47908	return nil, false
47909}
47910
47911// AsNodeHealthEvaluation is the BasicHealthEvaluation implementation for SystemApplicationHealthEvaluation.
47912func (sahe SystemApplicationHealthEvaluation) AsNodeHealthEvaluation() (*NodeHealthEvaluation, bool) {
47913	return nil, false
47914}
47915
47916// AsNodesHealthEvaluation is the BasicHealthEvaluation implementation for SystemApplicationHealthEvaluation.
47917func (sahe SystemApplicationHealthEvaluation) AsNodesHealthEvaluation() (*NodesHealthEvaluation, bool) {
47918	return nil, false
47919}
47920
47921// AsPartitionHealthEvaluation is the BasicHealthEvaluation implementation for SystemApplicationHealthEvaluation.
47922func (sahe SystemApplicationHealthEvaluation) AsPartitionHealthEvaluation() (*PartitionHealthEvaluation, bool) {
47923	return nil, false
47924}
47925
47926// AsPartitionsHealthEvaluation is the BasicHealthEvaluation implementation for SystemApplicationHealthEvaluation.
47927func (sahe SystemApplicationHealthEvaluation) AsPartitionsHealthEvaluation() (*PartitionsHealthEvaluation, bool) {
47928	return nil, false
47929}
47930
47931// AsReplicaHealthEvaluation is the BasicHealthEvaluation implementation for SystemApplicationHealthEvaluation.
47932func (sahe SystemApplicationHealthEvaluation) AsReplicaHealthEvaluation() (*ReplicaHealthEvaluation, bool) {
47933	return nil, false
47934}
47935
47936// AsReplicasHealthEvaluation is the BasicHealthEvaluation implementation for SystemApplicationHealthEvaluation.
47937func (sahe SystemApplicationHealthEvaluation) AsReplicasHealthEvaluation() (*ReplicasHealthEvaluation, bool) {
47938	return nil, false
47939}
47940
47941// AsServiceHealthEvaluation is the BasicHealthEvaluation implementation for SystemApplicationHealthEvaluation.
47942func (sahe SystemApplicationHealthEvaluation) AsServiceHealthEvaluation() (*ServiceHealthEvaluation, bool) {
47943	return nil, false
47944}
47945
47946// AsServicesHealthEvaluation is the BasicHealthEvaluation implementation for SystemApplicationHealthEvaluation.
47947func (sahe SystemApplicationHealthEvaluation) AsServicesHealthEvaluation() (*ServicesHealthEvaluation, bool) {
47948	return nil, false
47949}
47950
47951// AsSystemApplicationHealthEvaluation is the BasicHealthEvaluation implementation for SystemApplicationHealthEvaluation.
47952func (sahe SystemApplicationHealthEvaluation) AsSystemApplicationHealthEvaluation() (*SystemApplicationHealthEvaluation, bool) {
47953	return &sahe, true
47954}
47955
47956// AsUpgradeDomainDeltaNodesCheckHealthEvaluation is the BasicHealthEvaluation implementation for SystemApplicationHealthEvaluation.
47957func (sahe SystemApplicationHealthEvaluation) AsUpgradeDomainDeltaNodesCheckHealthEvaluation() (*UpgradeDomainDeltaNodesCheckHealthEvaluation, bool) {
47958	return nil, false
47959}
47960
47961// AsUpgradeDomainNodesHealthEvaluation is the BasicHealthEvaluation implementation for SystemApplicationHealthEvaluation.
47962func (sahe SystemApplicationHealthEvaluation) AsUpgradeDomainNodesHealthEvaluation() (*UpgradeDomainNodesHealthEvaluation, bool) {
47963	return nil, false
47964}
47965
47966// AsHealthEvaluation is the BasicHealthEvaluation implementation for SystemApplicationHealthEvaluation.
47967func (sahe SystemApplicationHealthEvaluation) AsHealthEvaluation() (*HealthEvaluation, bool) {
47968	return nil, false
47969}
47970
47971// AsBasicHealthEvaluation is the BasicHealthEvaluation implementation for SystemApplicationHealthEvaluation.
47972func (sahe SystemApplicationHealthEvaluation) AsBasicHealthEvaluation() (BasicHealthEvaluation, bool) {
47973	return &sahe, true
47974}
47975
47976// TCPConfig describes the tcp configuration for external connectivity for this network.
47977type TCPConfig struct {
47978	// Name - tcp gateway config name.
47979	Name *string `json:"name,omitempty"`
47980	// Port - Specifies the port at which the service endpoint below needs to be exposed.
47981	Port *int32 `json:"port,omitempty"`
47982	// Destination - Describes destination endpoint for routing traffic.
47983	Destination *GatewayDestination `json:"destination,omitempty"`
47984}
47985
47986// TestErrorChaosEvent describes a Chaos event that gets generated when an unexpected event occurs in the
47987// Chaos engine.
47988// For example, due to the cluster snapshot being inconsistent, while faulting an entity, Chaos found that
47989// the entity was already faulted -- which would be an unexpected event.
47990type TestErrorChaosEvent struct {
47991	// 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.
47992	Reason *string `json:"Reason,omitempty"`
47993	// TimeStampUtc - The UTC timestamp when this Chaos event was generated.
47994	TimeStampUtc *date.Time `json:"TimeStampUtc,omitempty"`
47995	// Kind - Possible values include: 'KindChaosEvent', 'KindExecutingFaults', 'KindStarted', 'KindStopped', 'KindTestError', 'KindValidationFailed', 'KindWaiting'
47996	Kind KindBasicChaosEvent `json:"Kind,omitempty"`
47997}
47998
47999// MarshalJSON is the custom marshaler for TestErrorChaosEvent.
48000func (tece TestErrorChaosEvent) MarshalJSON() ([]byte, error) {
48001	tece.Kind = KindTestError
48002	objectMap := make(map[string]interface{})
48003	if tece.Reason != nil {
48004		objectMap["Reason"] = tece.Reason
48005	}
48006	if tece.TimeStampUtc != nil {
48007		objectMap["TimeStampUtc"] = tece.TimeStampUtc
48008	}
48009	if tece.Kind != "" {
48010		objectMap["Kind"] = tece.Kind
48011	}
48012	return json.Marshal(objectMap)
48013}
48014
48015// AsExecutingFaultsChaosEvent is the BasicChaosEvent implementation for TestErrorChaosEvent.
48016func (tece TestErrorChaosEvent) AsExecutingFaultsChaosEvent() (*ExecutingFaultsChaosEvent, bool) {
48017	return nil, false
48018}
48019
48020// AsStartedChaosEvent is the BasicChaosEvent implementation for TestErrorChaosEvent.
48021func (tece TestErrorChaosEvent) AsStartedChaosEvent() (*StartedChaosEvent, bool) {
48022	return nil, false
48023}
48024
48025// AsStoppedChaosEvent is the BasicChaosEvent implementation for TestErrorChaosEvent.
48026func (tece TestErrorChaosEvent) AsStoppedChaosEvent() (*StoppedChaosEvent, bool) {
48027	return nil, false
48028}
48029
48030// AsTestErrorChaosEvent is the BasicChaosEvent implementation for TestErrorChaosEvent.
48031func (tece TestErrorChaosEvent) AsTestErrorChaosEvent() (*TestErrorChaosEvent, bool) {
48032	return &tece, true
48033}
48034
48035// AsValidationFailedChaosEvent is the BasicChaosEvent implementation for TestErrorChaosEvent.
48036func (tece TestErrorChaosEvent) AsValidationFailedChaosEvent() (*ValidationFailedChaosEvent, bool) {
48037	return nil, false
48038}
48039
48040// AsWaitingChaosEvent is the BasicChaosEvent implementation for TestErrorChaosEvent.
48041func (tece TestErrorChaosEvent) AsWaitingChaosEvent() (*WaitingChaosEvent, bool) {
48042	return nil, false
48043}
48044
48045// AsChaosEvent is the BasicChaosEvent implementation for TestErrorChaosEvent.
48046func (tece TestErrorChaosEvent) AsChaosEvent() (*ChaosEvent, bool) {
48047	return nil, false
48048}
48049
48050// AsBasicChaosEvent is the BasicChaosEvent implementation for TestErrorChaosEvent.
48051func (tece TestErrorChaosEvent) AsBasicChaosEvent() (BasicChaosEvent, bool) {
48052	return &tece, true
48053}
48054
48055// TimeBasedBackupScheduleDescription describes the time based backup schedule.
48056type TimeBasedBackupScheduleDescription struct {
48057	// ScheduleFrequencyType - Describes the frequency with which to run the time based backup schedule. Possible values include: 'BackupScheduleFrequencyTypeInvalid', 'BackupScheduleFrequencyTypeDaily', 'BackupScheduleFrequencyTypeWeekly'
48058	ScheduleFrequencyType BackupScheduleFrequencyType `json:"ScheduleFrequencyType,omitempty"`
48059	// 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.
48060	RunDays *[]DayOfWeek `json:"RunDays,omitempty"`
48061	// 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.
48062	RunTimes *[]date.Time `json:"RunTimes,omitempty"`
48063	// ScheduleKind - Possible values include: 'ScheduleKindBackupScheduleDescription', 'ScheduleKindFrequencyBased', 'ScheduleKindTimeBased'
48064	ScheduleKind ScheduleKind `json:"ScheduleKind,omitempty"`
48065}
48066
48067// MarshalJSON is the custom marshaler for TimeBasedBackupScheduleDescription.
48068func (tbbsd TimeBasedBackupScheduleDescription) MarshalJSON() ([]byte, error) {
48069	tbbsd.ScheduleKind = ScheduleKindTimeBased
48070	objectMap := make(map[string]interface{})
48071	if tbbsd.ScheduleFrequencyType != "" {
48072		objectMap["ScheduleFrequencyType"] = tbbsd.ScheduleFrequencyType
48073	}
48074	if tbbsd.RunDays != nil {
48075		objectMap["RunDays"] = tbbsd.RunDays
48076	}
48077	if tbbsd.RunTimes != nil {
48078		objectMap["RunTimes"] = tbbsd.RunTimes
48079	}
48080	if tbbsd.ScheduleKind != "" {
48081		objectMap["ScheduleKind"] = tbbsd.ScheduleKind
48082	}
48083	return json.Marshal(objectMap)
48084}
48085
48086// AsFrequencyBasedBackupScheduleDescription is the BasicBackupScheduleDescription implementation for TimeBasedBackupScheduleDescription.
48087func (tbbsd TimeBasedBackupScheduleDescription) AsFrequencyBasedBackupScheduleDescription() (*FrequencyBasedBackupScheduleDescription, bool) {
48088	return nil, false
48089}
48090
48091// AsTimeBasedBackupScheduleDescription is the BasicBackupScheduleDescription implementation for TimeBasedBackupScheduleDescription.
48092func (tbbsd TimeBasedBackupScheduleDescription) AsTimeBasedBackupScheduleDescription() (*TimeBasedBackupScheduleDescription, bool) {
48093	return &tbbsd, true
48094}
48095
48096// AsBackupScheduleDescription is the BasicBackupScheduleDescription implementation for TimeBasedBackupScheduleDescription.
48097func (tbbsd TimeBasedBackupScheduleDescription) AsBackupScheduleDescription() (*BackupScheduleDescription, bool) {
48098	return nil, false
48099}
48100
48101// AsBasicBackupScheduleDescription is the BasicBackupScheduleDescription implementation for TimeBasedBackupScheduleDescription.
48102func (tbbsd TimeBasedBackupScheduleDescription) AsBasicBackupScheduleDescription() (BasicBackupScheduleDescription, bool) {
48103	return &tbbsd, true
48104}
48105
48106// TimeOfDay defines an hour and minute of the day specified in 24 hour time.
48107type TimeOfDay struct {
48108	// Hour - Represents the hour of the day. Value must be between 0 and 23 inclusive.
48109	Hour *int32 `json:"Hour,omitempty"`
48110	// Minute - Represents the minute of the hour. Value must be between 0 to 59 inclusive.
48111	Minute *int32 `json:"Minute,omitempty"`
48112}
48113
48114// TimeRange defines a time range in a 24 hour day specified by a start and end time.
48115type TimeRange struct {
48116	// StartTime - Defines an hour and minute of the day specified in 24 hour time.
48117	StartTime *TimeOfDay `json:"StartTime,omitempty"`
48118	// EndTime - Defines an hour and minute of the day specified in 24 hour time.
48119	EndTime *TimeOfDay `json:"EndTime,omitempty"`
48120}
48121
48122// UniformInt64RangePartitionSchemeDescription describes a partitioning scheme where an integer range is
48123// allocated evenly across a number of partitions.
48124type UniformInt64RangePartitionSchemeDescription struct {
48125	// Count - The number of partitions.
48126	Count *int32 `json:"Count,omitempty"`
48127	// LowKey - String indicating the lower bound of the partition key range that
48128	// should be split between the partitions.
48129	LowKey *string `json:"LowKey,omitempty"`
48130	// HighKey - String indicating the upper bound of the partition key range that
48131	// should be split between the partitions.
48132	HighKey *string `json:"HighKey,omitempty"`
48133	// PartitionScheme - Possible values include: 'PartitionSchemePartitionSchemeDescription', 'PartitionSchemeNamed1', 'PartitionSchemeSingleton1', 'PartitionSchemeUniformInt64Range1'
48134	PartitionScheme PartitionSchemeBasicPartitionSchemeDescription `json:"PartitionScheme,omitempty"`
48135}
48136
48137// MarshalJSON is the custom marshaler for UniformInt64RangePartitionSchemeDescription.
48138func (ui6rpsd UniformInt64RangePartitionSchemeDescription) MarshalJSON() ([]byte, error) {
48139	ui6rpsd.PartitionScheme = PartitionSchemeUniformInt64Range1
48140	objectMap := make(map[string]interface{})
48141	if ui6rpsd.Count != nil {
48142		objectMap["Count"] = ui6rpsd.Count
48143	}
48144	if ui6rpsd.LowKey != nil {
48145		objectMap["LowKey"] = ui6rpsd.LowKey
48146	}
48147	if ui6rpsd.HighKey != nil {
48148		objectMap["HighKey"] = ui6rpsd.HighKey
48149	}
48150	if ui6rpsd.PartitionScheme != "" {
48151		objectMap["PartitionScheme"] = ui6rpsd.PartitionScheme
48152	}
48153	return json.Marshal(objectMap)
48154}
48155
48156// AsNamedPartitionSchemeDescription is the BasicPartitionSchemeDescription implementation for UniformInt64RangePartitionSchemeDescription.
48157func (ui6rpsd UniformInt64RangePartitionSchemeDescription) AsNamedPartitionSchemeDescription() (*NamedPartitionSchemeDescription, bool) {
48158	return nil, false
48159}
48160
48161// AsSingletonPartitionSchemeDescription is the BasicPartitionSchemeDescription implementation for UniformInt64RangePartitionSchemeDescription.
48162func (ui6rpsd UniformInt64RangePartitionSchemeDescription) AsSingletonPartitionSchemeDescription() (*SingletonPartitionSchemeDescription, bool) {
48163	return nil, false
48164}
48165
48166// AsUniformInt64RangePartitionSchemeDescription is the BasicPartitionSchemeDescription implementation for UniformInt64RangePartitionSchemeDescription.
48167func (ui6rpsd UniformInt64RangePartitionSchemeDescription) AsUniformInt64RangePartitionSchemeDescription() (*UniformInt64RangePartitionSchemeDescription, bool) {
48168	return &ui6rpsd, true
48169}
48170
48171// AsPartitionSchemeDescription is the BasicPartitionSchemeDescription implementation for UniformInt64RangePartitionSchemeDescription.
48172func (ui6rpsd UniformInt64RangePartitionSchemeDescription) AsPartitionSchemeDescription() (*PartitionSchemeDescription, bool) {
48173	return nil, false
48174}
48175
48176// AsBasicPartitionSchemeDescription is the BasicPartitionSchemeDescription implementation for UniformInt64RangePartitionSchemeDescription.
48177func (ui6rpsd UniformInt64RangePartitionSchemeDescription) AsBasicPartitionSchemeDescription() (BasicPartitionSchemeDescription, bool) {
48178	return &ui6rpsd, true
48179}
48180
48181// UnplacedReplicaInformation contains information for an unplaced replica.
48182type UnplacedReplicaInformation struct {
48183	autorest.Response `json:"-"`
48184	// ServiceName - The name of the service.
48185	ServiceName *string `json:"ServiceName,omitempty"`
48186	// PartitionID - The ID of the partition.
48187	PartitionID *uuid.UUID `json:"PartitionId,omitempty"`
48188	// UnplacedReplicaDetails - List of reasons due to which a replica cannot be placed.
48189	UnplacedReplicaDetails *[]string `json:"UnplacedReplicaDetails,omitempty"`
48190}
48191
48192// UnprovisionApplicationTypeDescriptionInfo describes the operation to unregister or unprovision an
48193// application type and its version that was registered with the Service Fabric.
48194type UnprovisionApplicationTypeDescriptionInfo struct {
48195	// ApplicationTypeVersion - The version of the application type as defined in the application manifest.
48196	ApplicationTypeVersion *string `json:"ApplicationTypeVersion,omitempty"`
48197	// 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.
48198	Async *bool `json:"Async,omitempty"`
48199}
48200
48201// UnprovisionFabricDescription describes the parameters for unprovisioning a cluster.
48202type UnprovisionFabricDescription struct {
48203	// CodeVersion - The cluster code package version.
48204	CodeVersion *string `json:"CodeVersion,omitempty"`
48205	// ConfigVersion - The cluster manifest version.
48206	ConfigVersion *string `json:"ConfigVersion,omitempty"`
48207}
48208
48209// UpdateClusterUpgradeDescription parameters for updating a cluster upgrade.
48210type UpdateClusterUpgradeDescription struct {
48211	// UpgradeKind - The type of upgrade out of the following possible values. Possible values include: 'UpgradeTypeInvalid', 'UpgradeTypeRolling', 'UpgradeTypeRollingForceRestart'
48212	UpgradeKind UpgradeType `json:"UpgradeKind,omitempty"`
48213	// UpdateDescription - Describes the parameters for updating a rolling upgrade of application or cluster.
48214	UpdateDescription *RollingUpgradeUpdateDescription `json:"UpdateDescription,omitempty"`
48215	// ClusterHealthPolicy - Defines a health policy used to evaluate the health of the cluster or of a cluster node.
48216	ClusterHealthPolicy *ClusterHealthPolicy `json:"ClusterHealthPolicy,omitempty"`
48217	// EnableDeltaHealthEvaluation - When true, enables delta health evaluation rather than absolute health evaluation after completion of each upgrade domain.
48218	EnableDeltaHealthEvaluation *bool `json:"EnableDeltaHealthEvaluation,omitempty"`
48219	// ClusterUpgradeHealthPolicy - Defines a health policy used to evaluate the health of the cluster during a cluster upgrade.
48220	ClusterUpgradeHealthPolicy *ClusterUpgradeHealthPolicyObject `json:"ClusterUpgradeHealthPolicy,omitempty"`
48221	// ApplicationHealthPolicyMap - Defines the application health policy map used to evaluate the health of an application or one of its children entities.
48222	ApplicationHealthPolicyMap *ApplicationHealthPolicies `json:"ApplicationHealthPolicyMap,omitempty"`
48223}
48224
48225// UpdatePartitionLoadResult specifies result of updating load for specified partitions. The output will be
48226// ordered based on the partition ID.
48227type UpdatePartitionLoadResult struct {
48228	// PartitionID - Id of the partition.
48229	PartitionID *uuid.UUID `json:"PartitionId,omitempty"`
48230	// PartitionErrorCode - If OperationState is Completed - this is 0.  If OperationState is Faulted - this is an error code indicating the reason.
48231	PartitionErrorCode *int32 `json:"PartitionErrorCode,omitempty"`
48232}
48233
48234// UpgradeDomainDeltaNodesCheckHealthEvaluation represents health evaluation for delta unhealthy cluster
48235// nodes in an upgrade domain, containing health evaluations for each unhealthy node that impacted current
48236// aggregated health state.
48237// Can be returned during cluster upgrade when cluster aggregated health state is Warning or Error.
48238type UpgradeDomainDeltaNodesCheckHealthEvaluation struct {
48239	// UpgradeDomainName - Name of the upgrade domain where nodes health is currently evaluated.
48240	UpgradeDomainName *string `json:"UpgradeDomainName,omitempty"`
48241	// BaselineErrorCount - Number of upgrade domain nodes with aggregated heath state Error in the health store at the beginning of the cluster upgrade.
48242	BaselineErrorCount *int64 `json:"BaselineErrorCount,omitempty"`
48243	// BaselineTotalCount - Total number of upgrade domain nodes in the health store at the beginning of the cluster upgrade.
48244	BaselineTotalCount *int64 `json:"BaselineTotalCount,omitempty"`
48245	// MaxPercentDeltaUnhealthyNodes - Maximum allowed percentage of upgrade domain delta unhealthy nodes from the ClusterUpgradeHealthPolicy.
48246	MaxPercentDeltaUnhealthyNodes *int32 `json:"MaxPercentDeltaUnhealthyNodes,omitempty"`
48247	// TotalCount - Total number of upgrade domain nodes in the health store.
48248	TotalCount *int64 `json:"TotalCount,omitempty"`
48249	// UnhealthyEvaluations - List of unhealthy evaluations that led to the aggregated health state. Includes all the unhealthy NodeHealthEvaluation that impacted the aggregated health.
48250	UnhealthyEvaluations *[]HealthEvaluationWrapper `json:"UnhealthyEvaluations,omitempty"`
48251	// 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'
48252	AggregatedHealthState HealthState `json:"AggregatedHealthState,omitempty"`
48253	// Description - Description of the health evaluation, which represents a summary of the evaluation process.
48254	Description *string `json:"Description,omitempty"`
48255	// 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'
48256	Kind Kind `json:"Kind,omitempty"`
48257}
48258
48259// MarshalJSON is the custom marshaler for UpgradeDomainDeltaNodesCheckHealthEvaluation.
48260func (uddnche UpgradeDomainDeltaNodesCheckHealthEvaluation) MarshalJSON() ([]byte, error) {
48261	uddnche.Kind = KindUpgradeDomainDeltaNodesCheck
48262	objectMap := make(map[string]interface{})
48263	if uddnche.UpgradeDomainName != nil {
48264		objectMap["UpgradeDomainName"] = uddnche.UpgradeDomainName
48265	}
48266	if uddnche.BaselineErrorCount != nil {
48267		objectMap["BaselineErrorCount"] = uddnche.BaselineErrorCount
48268	}
48269	if uddnche.BaselineTotalCount != nil {
48270		objectMap["BaselineTotalCount"] = uddnche.BaselineTotalCount
48271	}
48272	if uddnche.MaxPercentDeltaUnhealthyNodes != nil {
48273		objectMap["MaxPercentDeltaUnhealthyNodes"] = uddnche.MaxPercentDeltaUnhealthyNodes
48274	}
48275	if uddnche.TotalCount != nil {
48276		objectMap["TotalCount"] = uddnche.TotalCount
48277	}
48278	if uddnche.UnhealthyEvaluations != nil {
48279		objectMap["UnhealthyEvaluations"] = uddnche.UnhealthyEvaluations
48280	}
48281	if uddnche.AggregatedHealthState != "" {
48282		objectMap["AggregatedHealthState"] = uddnche.AggregatedHealthState
48283	}
48284	if uddnche.Description != nil {
48285		objectMap["Description"] = uddnche.Description
48286	}
48287	if uddnche.Kind != "" {
48288		objectMap["Kind"] = uddnche.Kind
48289	}
48290	return json.Marshal(objectMap)
48291}
48292
48293// AsApplicationHealthEvaluation is the BasicHealthEvaluation implementation for UpgradeDomainDeltaNodesCheckHealthEvaluation.
48294func (uddnche UpgradeDomainDeltaNodesCheckHealthEvaluation) AsApplicationHealthEvaluation() (*ApplicationHealthEvaluation, bool) {
48295	return nil, false
48296}
48297
48298// AsApplicationsHealthEvaluation is the BasicHealthEvaluation implementation for UpgradeDomainDeltaNodesCheckHealthEvaluation.
48299func (uddnche UpgradeDomainDeltaNodesCheckHealthEvaluation) AsApplicationsHealthEvaluation() (*ApplicationsHealthEvaluation, bool) {
48300	return nil, false
48301}
48302
48303// AsApplicationTypeApplicationsHealthEvaluation is the BasicHealthEvaluation implementation for UpgradeDomainDeltaNodesCheckHealthEvaluation.
48304func (uddnche UpgradeDomainDeltaNodesCheckHealthEvaluation) AsApplicationTypeApplicationsHealthEvaluation() (*ApplicationTypeApplicationsHealthEvaluation, bool) {
48305	return nil, false
48306}
48307
48308// AsDeltaNodesCheckHealthEvaluation is the BasicHealthEvaluation implementation for UpgradeDomainDeltaNodesCheckHealthEvaluation.
48309func (uddnche UpgradeDomainDeltaNodesCheckHealthEvaluation) AsDeltaNodesCheckHealthEvaluation() (*DeltaNodesCheckHealthEvaluation, bool) {
48310	return nil, false
48311}
48312
48313// AsDeployedApplicationHealthEvaluation is the BasicHealthEvaluation implementation for UpgradeDomainDeltaNodesCheckHealthEvaluation.
48314func (uddnche UpgradeDomainDeltaNodesCheckHealthEvaluation) AsDeployedApplicationHealthEvaluation() (*DeployedApplicationHealthEvaluation, bool) {
48315	return nil, false
48316}
48317
48318// AsDeployedApplicationsHealthEvaluation is the BasicHealthEvaluation implementation for UpgradeDomainDeltaNodesCheckHealthEvaluation.
48319func (uddnche UpgradeDomainDeltaNodesCheckHealthEvaluation) AsDeployedApplicationsHealthEvaluation() (*DeployedApplicationsHealthEvaluation, bool) {
48320	return nil, false
48321}
48322
48323// AsDeployedServicePackageHealthEvaluation is the BasicHealthEvaluation implementation for UpgradeDomainDeltaNodesCheckHealthEvaluation.
48324func (uddnche UpgradeDomainDeltaNodesCheckHealthEvaluation) AsDeployedServicePackageHealthEvaluation() (*DeployedServicePackageHealthEvaluation, bool) {
48325	return nil, false
48326}
48327
48328// AsDeployedServicePackagesHealthEvaluation is the BasicHealthEvaluation implementation for UpgradeDomainDeltaNodesCheckHealthEvaluation.
48329func (uddnche UpgradeDomainDeltaNodesCheckHealthEvaluation) AsDeployedServicePackagesHealthEvaluation() (*DeployedServicePackagesHealthEvaluation, bool) {
48330	return nil, false
48331}
48332
48333// AsEventHealthEvaluation is the BasicHealthEvaluation implementation for UpgradeDomainDeltaNodesCheckHealthEvaluation.
48334func (uddnche UpgradeDomainDeltaNodesCheckHealthEvaluation) AsEventHealthEvaluation() (*EventHealthEvaluation, bool) {
48335	return nil, false
48336}
48337
48338// AsNodeHealthEvaluation is the BasicHealthEvaluation implementation for UpgradeDomainDeltaNodesCheckHealthEvaluation.
48339func (uddnche UpgradeDomainDeltaNodesCheckHealthEvaluation) AsNodeHealthEvaluation() (*NodeHealthEvaluation, bool) {
48340	return nil, false
48341}
48342
48343// AsNodesHealthEvaluation is the BasicHealthEvaluation implementation for UpgradeDomainDeltaNodesCheckHealthEvaluation.
48344func (uddnche UpgradeDomainDeltaNodesCheckHealthEvaluation) AsNodesHealthEvaluation() (*NodesHealthEvaluation, bool) {
48345	return nil, false
48346}
48347
48348// AsPartitionHealthEvaluation is the BasicHealthEvaluation implementation for UpgradeDomainDeltaNodesCheckHealthEvaluation.
48349func (uddnche UpgradeDomainDeltaNodesCheckHealthEvaluation) AsPartitionHealthEvaluation() (*PartitionHealthEvaluation, bool) {
48350	return nil, false
48351}
48352
48353// AsPartitionsHealthEvaluation is the BasicHealthEvaluation implementation for UpgradeDomainDeltaNodesCheckHealthEvaluation.
48354func (uddnche UpgradeDomainDeltaNodesCheckHealthEvaluation) AsPartitionsHealthEvaluation() (*PartitionsHealthEvaluation, bool) {
48355	return nil, false
48356}
48357
48358// AsReplicaHealthEvaluation is the BasicHealthEvaluation implementation for UpgradeDomainDeltaNodesCheckHealthEvaluation.
48359func (uddnche UpgradeDomainDeltaNodesCheckHealthEvaluation) AsReplicaHealthEvaluation() (*ReplicaHealthEvaluation, bool) {
48360	return nil, false
48361}
48362
48363// AsReplicasHealthEvaluation is the BasicHealthEvaluation implementation for UpgradeDomainDeltaNodesCheckHealthEvaluation.
48364func (uddnche UpgradeDomainDeltaNodesCheckHealthEvaluation) AsReplicasHealthEvaluation() (*ReplicasHealthEvaluation, bool) {
48365	return nil, false
48366}
48367
48368// AsServiceHealthEvaluation is the BasicHealthEvaluation implementation for UpgradeDomainDeltaNodesCheckHealthEvaluation.
48369func (uddnche UpgradeDomainDeltaNodesCheckHealthEvaluation) AsServiceHealthEvaluation() (*ServiceHealthEvaluation, bool) {
48370	return nil, false
48371}
48372
48373// AsServicesHealthEvaluation is the BasicHealthEvaluation implementation for UpgradeDomainDeltaNodesCheckHealthEvaluation.
48374func (uddnche UpgradeDomainDeltaNodesCheckHealthEvaluation) AsServicesHealthEvaluation() (*ServicesHealthEvaluation, bool) {
48375	return nil, false
48376}
48377
48378// AsSystemApplicationHealthEvaluation is the BasicHealthEvaluation implementation for UpgradeDomainDeltaNodesCheckHealthEvaluation.
48379func (uddnche UpgradeDomainDeltaNodesCheckHealthEvaluation) AsSystemApplicationHealthEvaluation() (*SystemApplicationHealthEvaluation, bool) {
48380	return nil, false
48381}
48382
48383// AsUpgradeDomainDeltaNodesCheckHealthEvaluation is the BasicHealthEvaluation implementation for UpgradeDomainDeltaNodesCheckHealthEvaluation.
48384func (uddnche UpgradeDomainDeltaNodesCheckHealthEvaluation) AsUpgradeDomainDeltaNodesCheckHealthEvaluation() (*UpgradeDomainDeltaNodesCheckHealthEvaluation, bool) {
48385	return &uddnche, true
48386}
48387
48388// AsUpgradeDomainNodesHealthEvaluation is the BasicHealthEvaluation implementation for UpgradeDomainDeltaNodesCheckHealthEvaluation.
48389func (uddnche UpgradeDomainDeltaNodesCheckHealthEvaluation) AsUpgradeDomainNodesHealthEvaluation() (*UpgradeDomainNodesHealthEvaluation, bool) {
48390	return nil, false
48391}
48392
48393// AsHealthEvaluation is the BasicHealthEvaluation implementation for UpgradeDomainDeltaNodesCheckHealthEvaluation.
48394func (uddnche UpgradeDomainDeltaNodesCheckHealthEvaluation) AsHealthEvaluation() (*HealthEvaluation, bool) {
48395	return nil, false
48396}
48397
48398// AsBasicHealthEvaluation is the BasicHealthEvaluation implementation for UpgradeDomainDeltaNodesCheckHealthEvaluation.
48399func (uddnche UpgradeDomainDeltaNodesCheckHealthEvaluation) AsBasicHealthEvaluation() (BasicHealthEvaluation, bool) {
48400	return &uddnche, true
48401}
48402
48403// UpgradeDomainInfo information about an upgrade domain.
48404type UpgradeDomainInfo struct {
48405	// Name - The name of the upgrade domain
48406	Name *string `json:"Name,omitempty"`
48407	// State - The state of the upgrade domain. Possible values include: 'UpgradeDomainStateInvalid', 'UpgradeDomainStatePending', 'UpgradeDomainStateInProgress', 'UpgradeDomainStateCompleted'
48408	State UpgradeDomainState `json:"State,omitempty"`
48409}
48410
48411// UpgradeDomainNodesHealthEvaluation represents health evaluation for cluster nodes in an upgrade domain,
48412// containing health evaluations for each unhealthy node that impacted current aggregated health state. Can
48413// be returned when evaluating cluster health during cluster upgrade and the aggregated health state is
48414// either Error or Warning.
48415type UpgradeDomainNodesHealthEvaluation struct {
48416	// UpgradeDomainName - Name of the upgrade domain where nodes health is currently evaluated.
48417	UpgradeDomainName *string `json:"UpgradeDomainName,omitempty"`
48418	// MaxPercentUnhealthyNodes - Maximum allowed percentage of unhealthy nodes from the ClusterHealthPolicy.
48419	MaxPercentUnhealthyNodes *int32 `json:"MaxPercentUnhealthyNodes,omitempty"`
48420	// TotalCount - Total number of nodes in the current upgrade domain.
48421	TotalCount *int64 `json:"TotalCount,omitempty"`
48422	// UnhealthyEvaluations - List of unhealthy evaluations that led to the aggregated health state. Includes all the unhealthy NodeHealthEvaluation that impacted the aggregated health.
48423	UnhealthyEvaluations *[]HealthEvaluationWrapper `json:"UnhealthyEvaluations,omitempty"`
48424	// 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'
48425	AggregatedHealthState HealthState `json:"AggregatedHealthState,omitempty"`
48426	// Description - Description of the health evaluation, which represents a summary of the evaluation process.
48427	Description *string `json:"Description,omitempty"`
48428	// 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'
48429	Kind Kind `json:"Kind,omitempty"`
48430}
48431
48432// MarshalJSON is the custom marshaler for UpgradeDomainNodesHealthEvaluation.
48433func (udnhe UpgradeDomainNodesHealthEvaluation) MarshalJSON() ([]byte, error) {
48434	udnhe.Kind = KindUpgradeDomainNodes
48435	objectMap := make(map[string]interface{})
48436	if udnhe.UpgradeDomainName != nil {
48437		objectMap["UpgradeDomainName"] = udnhe.UpgradeDomainName
48438	}
48439	if udnhe.MaxPercentUnhealthyNodes != nil {
48440		objectMap["MaxPercentUnhealthyNodes"] = udnhe.MaxPercentUnhealthyNodes
48441	}
48442	if udnhe.TotalCount != nil {
48443		objectMap["TotalCount"] = udnhe.TotalCount
48444	}
48445	if udnhe.UnhealthyEvaluations != nil {
48446		objectMap["UnhealthyEvaluations"] = udnhe.UnhealthyEvaluations
48447	}
48448	if udnhe.AggregatedHealthState != "" {
48449		objectMap["AggregatedHealthState"] = udnhe.AggregatedHealthState
48450	}
48451	if udnhe.Description != nil {
48452		objectMap["Description"] = udnhe.Description
48453	}
48454	if udnhe.Kind != "" {
48455		objectMap["Kind"] = udnhe.Kind
48456	}
48457	return json.Marshal(objectMap)
48458}
48459
48460// AsApplicationHealthEvaluation is the BasicHealthEvaluation implementation for UpgradeDomainNodesHealthEvaluation.
48461func (udnhe UpgradeDomainNodesHealthEvaluation) AsApplicationHealthEvaluation() (*ApplicationHealthEvaluation, bool) {
48462	return nil, false
48463}
48464
48465// AsApplicationsHealthEvaluation is the BasicHealthEvaluation implementation for UpgradeDomainNodesHealthEvaluation.
48466func (udnhe UpgradeDomainNodesHealthEvaluation) AsApplicationsHealthEvaluation() (*ApplicationsHealthEvaluation, bool) {
48467	return nil, false
48468}
48469
48470// AsApplicationTypeApplicationsHealthEvaluation is the BasicHealthEvaluation implementation for UpgradeDomainNodesHealthEvaluation.
48471func (udnhe UpgradeDomainNodesHealthEvaluation) AsApplicationTypeApplicationsHealthEvaluation() (*ApplicationTypeApplicationsHealthEvaluation, bool) {
48472	return nil, false
48473}
48474
48475// AsDeltaNodesCheckHealthEvaluation is the BasicHealthEvaluation implementation for UpgradeDomainNodesHealthEvaluation.
48476func (udnhe UpgradeDomainNodesHealthEvaluation) AsDeltaNodesCheckHealthEvaluation() (*DeltaNodesCheckHealthEvaluation, bool) {
48477	return nil, false
48478}
48479
48480// AsDeployedApplicationHealthEvaluation is the BasicHealthEvaluation implementation for UpgradeDomainNodesHealthEvaluation.
48481func (udnhe UpgradeDomainNodesHealthEvaluation) AsDeployedApplicationHealthEvaluation() (*DeployedApplicationHealthEvaluation, bool) {
48482	return nil, false
48483}
48484
48485// AsDeployedApplicationsHealthEvaluation is the BasicHealthEvaluation implementation for UpgradeDomainNodesHealthEvaluation.
48486func (udnhe UpgradeDomainNodesHealthEvaluation) AsDeployedApplicationsHealthEvaluation() (*DeployedApplicationsHealthEvaluation, bool) {
48487	return nil, false
48488}
48489
48490// AsDeployedServicePackageHealthEvaluation is the BasicHealthEvaluation implementation for UpgradeDomainNodesHealthEvaluation.
48491func (udnhe UpgradeDomainNodesHealthEvaluation) AsDeployedServicePackageHealthEvaluation() (*DeployedServicePackageHealthEvaluation, bool) {
48492	return nil, false
48493}
48494
48495// AsDeployedServicePackagesHealthEvaluation is the BasicHealthEvaluation implementation for UpgradeDomainNodesHealthEvaluation.
48496func (udnhe UpgradeDomainNodesHealthEvaluation) AsDeployedServicePackagesHealthEvaluation() (*DeployedServicePackagesHealthEvaluation, bool) {
48497	return nil, false
48498}
48499
48500// AsEventHealthEvaluation is the BasicHealthEvaluation implementation for UpgradeDomainNodesHealthEvaluation.
48501func (udnhe UpgradeDomainNodesHealthEvaluation) AsEventHealthEvaluation() (*EventHealthEvaluation, bool) {
48502	return nil, false
48503}
48504
48505// AsNodeHealthEvaluation is the BasicHealthEvaluation implementation for UpgradeDomainNodesHealthEvaluation.
48506func (udnhe UpgradeDomainNodesHealthEvaluation) AsNodeHealthEvaluation() (*NodeHealthEvaluation, bool) {
48507	return nil, false
48508}
48509
48510// AsNodesHealthEvaluation is the BasicHealthEvaluation implementation for UpgradeDomainNodesHealthEvaluation.
48511func (udnhe UpgradeDomainNodesHealthEvaluation) AsNodesHealthEvaluation() (*NodesHealthEvaluation, bool) {
48512	return nil, false
48513}
48514
48515// AsPartitionHealthEvaluation is the BasicHealthEvaluation implementation for UpgradeDomainNodesHealthEvaluation.
48516func (udnhe UpgradeDomainNodesHealthEvaluation) AsPartitionHealthEvaluation() (*PartitionHealthEvaluation, bool) {
48517	return nil, false
48518}
48519
48520// AsPartitionsHealthEvaluation is the BasicHealthEvaluation implementation for UpgradeDomainNodesHealthEvaluation.
48521func (udnhe UpgradeDomainNodesHealthEvaluation) AsPartitionsHealthEvaluation() (*PartitionsHealthEvaluation, bool) {
48522	return nil, false
48523}
48524
48525// AsReplicaHealthEvaluation is the BasicHealthEvaluation implementation for UpgradeDomainNodesHealthEvaluation.
48526func (udnhe UpgradeDomainNodesHealthEvaluation) AsReplicaHealthEvaluation() (*ReplicaHealthEvaluation, bool) {
48527	return nil, false
48528}
48529
48530// AsReplicasHealthEvaluation is the BasicHealthEvaluation implementation for UpgradeDomainNodesHealthEvaluation.
48531func (udnhe UpgradeDomainNodesHealthEvaluation) AsReplicasHealthEvaluation() (*ReplicasHealthEvaluation, bool) {
48532	return nil, false
48533}
48534
48535// AsServiceHealthEvaluation is the BasicHealthEvaluation implementation for UpgradeDomainNodesHealthEvaluation.
48536func (udnhe UpgradeDomainNodesHealthEvaluation) AsServiceHealthEvaluation() (*ServiceHealthEvaluation, bool) {
48537	return nil, false
48538}
48539
48540// AsServicesHealthEvaluation is the BasicHealthEvaluation implementation for UpgradeDomainNodesHealthEvaluation.
48541func (udnhe UpgradeDomainNodesHealthEvaluation) AsServicesHealthEvaluation() (*ServicesHealthEvaluation, bool) {
48542	return nil, false
48543}
48544
48545// AsSystemApplicationHealthEvaluation is the BasicHealthEvaluation implementation for UpgradeDomainNodesHealthEvaluation.
48546func (udnhe UpgradeDomainNodesHealthEvaluation) AsSystemApplicationHealthEvaluation() (*SystemApplicationHealthEvaluation, bool) {
48547	return nil, false
48548}
48549
48550// AsUpgradeDomainDeltaNodesCheckHealthEvaluation is the BasicHealthEvaluation implementation for UpgradeDomainNodesHealthEvaluation.
48551func (udnhe UpgradeDomainNodesHealthEvaluation) AsUpgradeDomainDeltaNodesCheckHealthEvaluation() (*UpgradeDomainDeltaNodesCheckHealthEvaluation, bool) {
48552	return nil, false
48553}
48554
48555// AsUpgradeDomainNodesHealthEvaluation is the BasicHealthEvaluation implementation for UpgradeDomainNodesHealthEvaluation.
48556func (udnhe UpgradeDomainNodesHealthEvaluation) AsUpgradeDomainNodesHealthEvaluation() (*UpgradeDomainNodesHealthEvaluation, bool) {
48557	return &udnhe, true
48558}
48559
48560// AsHealthEvaluation is the BasicHealthEvaluation implementation for UpgradeDomainNodesHealthEvaluation.
48561func (udnhe UpgradeDomainNodesHealthEvaluation) AsHealthEvaluation() (*HealthEvaluation, bool) {
48562	return nil, false
48563}
48564
48565// AsBasicHealthEvaluation is the BasicHealthEvaluation implementation for UpgradeDomainNodesHealthEvaluation.
48566func (udnhe UpgradeDomainNodesHealthEvaluation) AsBasicHealthEvaluation() (BasicHealthEvaluation, bool) {
48567	return &udnhe, true
48568}
48569
48570// UpgradeOrchestrationServiceState service state of Service Fabric Upgrade Orchestration Service.
48571type UpgradeOrchestrationServiceState struct {
48572	autorest.Response `json:"-"`
48573	// ServiceState - The state of Service Fabric Upgrade Orchestration Service.
48574	ServiceState *string `json:"ServiceState,omitempty"`
48575}
48576
48577// UpgradeOrchestrationServiceStateSummary service state summary of Service Fabric Upgrade Orchestration
48578// Service.
48579type UpgradeOrchestrationServiceStateSummary struct {
48580	autorest.Response `json:"-"`
48581	// CurrentCodeVersion - The current code version of the cluster.
48582	CurrentCodeVersion *string `json:"CurrentCodeVersion,omitempty"`
48583	// CurrentManifestVersion - The current manifest version of the cluster.
48584	CurrentManifestVersion *string `json:"CurrentManifestVersion,omitempty"`
48585	// TargetCodeVersion - The target code version of  the cluster.
48586	TargetCodeVersion *string `json:"TargetCodeVersion,omitempty"`
48587	// TargetManifestVersion - The target manifest version of the cluster.
48588	TargetManifestVersion *string `json:"TargetManifestVersion,omitempty"`
48589	// PendingUpgradeType - The type of the pending upgrade of the cluster.
48590	PendingUpgradeType *string `json:"PendingUpgradeType,omitempty"`
48591}
48592
48593// UploadChunkRange information about which portion of the file to upload.
48594type UploadChunkRange struct {
48595	// StartPosition - The start position of the portion of the file. It's represented by the number of bytes.
48596	StartPosition *string `json:"StartPosition,omitempty"`
48597	// EndPosition - The end position of the portion of the file. It's represented by the number of bytes.
48598	EndPosition *string `json:"EndPosition,omitempty"`
48599}
48600
48601// UploadSession information about a image store upload session
48602type UploadSession struct {
48603	autorest.Response `json:"-"`
48604	// 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.
48605	UploadSessions *[]UploadSessionInfo `json:"UploadSessions,omitempty"`
48606}
48607
48608// UploadSessionInfo information about an image store upload session. A session is associated with a
48609// relative path in the image store.
48610type UploadSessionInfo struct {
48611	// StoreRelativePath - The remote location within image store. This path is relative to the image store root.
48612	StoreRelativePath *string `json:"StoreRelativePath,omitempty"`
48613	// SessionID - A unique ID of the upload session. A session ID can be reused only if the session was committed or removed.
48614	SessionID *uuid.UUID `json:"SessionId,omitempty"`
48615	// ModifiedDate - The date and time when the upload session was last modified.
48616	ModifiedDate *date.Time `json:"ModifiedDate,omitempty"`
48617	// FileSize - The size in bytes of the uploading file.
48618	FileSize *string `json:"FileSize,omitempty"`
48619	// ExpectedRanges - List of chunk ranges that image store has not received yet.
48620	ExpectedRanges *[]UploadChunkRange `json:"ExpectedRanges,omitempty"`
48621}
48622
48623// UsageInfo information about how much space and how many files in the file system the ImageStore is using
48624// in this category
48625type UsageInfo struct {
48626	// UsedSpace - the size of all files in this category
48627	UsedSpace *string `json:"UsedSpace,omitempty"`
48628	// FileCount - the number of all files in this category
48629	FileCount *string `json:"FileCount,omitempty"`
48630}
48631
48632// ValidationFailedChaosEvent chaos event corresponding to a failure during validation.
48633type ValidationFailedChaosEvent struct {
48634	// 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.
48635	Reason *string `json:"Reason,omitempty"`
48636	// TimeStampUtc - The UTC timestamp when this Chaos event was generated.
48637	TimeStampUtc *date.Time `json:"TimeStampUtc,omitempty"`
48638	// Kind - Possible values include: 'KindChaosEvent', 'KindExecutingFaults', 'KindStarted', 'KindStopped', 'KindTestError', 'KindValidationFailed', 'KindWaiting'
48639	Kind KindBasicChaosEvent `json:"Kind,omitempty"`
48640}
48641
48642// MarshalJSON is the custom marshaler for ValidationFailedChaosEvent.
48643func (vfce ValidationFailedChaosEvent) MarshalJSON() ([]byte, error) {
48644	vfce.Kind = KindValidationFailed
48645	objectMap := make(map[string]interface{})
48646	if vfce.Reason != nil {
48647		objectMap["Reason"] = vfce.Reason
48648	}
48649	if vfce.TimeStampUtc != nil {
48650		objectMap["TimeStampUtc"] = vfce.TimeStampUtc
48651	}
48652	if vfce.Kind != "" {
48653		objectMap["Kind"] = vfce.Kind
48654	}
48655	return json.Marshal(objectMap)
48656}
48657
48658// AsExecutingFaultsChaosEvent is the BasicChaosEvent implementation for ValidationFailedChaosEvent.
48659func (vfce ValidationFailedChaosEvent) AsExecutingFaultsChaosEvent() (*ExecutingFaultsChaosEvent, bool) {
48660	return nil, false
48661}
48662
48663// AsStartedChaosEvent is the BasicChaosEvent implementation for ValidationFailedChaosEvent.
48664func (vfce ValidationFailedChaosEvent) AsStartedChaosEvent() (*StartedChaosEvent, bool) {
48665	return nil, false
48666}
48667
48668// AsStoppedChaosEvent is the BasicChaosEvent implementation for ValidationFailedChaosEvent.
48669func (vfce ValidationFailedChaosEvent) AsStoppedChaosEvent() (*StoppedChaosEvent, bool) {
48670	return nil, false
48671}
48672
48673// AsTestErrorChaosEvent is the BasicChaosEvent implementation for ValidationFailedChaosEvent.
48674func (vfce ValidationFailedChaosEvent) AsTestErrorChaosEvent() (*TestErrorChaosEvent, bool) {
48675	return nil, false
48676}
48677
48678// AsValidationFailedChaosEvent is the BasicChaosEvent implementation for ValidationFailedChaosEvent.
48679func (vfce ValidationFailedChaosEvent) AsValidationFailedChaosEvent() (*ValidationFailedChaosEvent, bool) {
48680	return &vfce, true
48681}
48682
48683// AsWaitingChaosEvent is the BasicChaosEvent implementation for ValidationFailedChaosEvent.
48684func (vfce ValidationFailedChaosEvent) AsWaitingChaosEvent() (*WaitingChaosEvent, bool) {
48685	return nil, false
48686}
48687
48688// AsChaosEvent is the BasicChaosEvent implementation for ValidationFailedChaosEvent.
48689func (vfce ValidationFailedChaosEvent) AsChaosEvent() (*ChaosEvent, bool) {
48690	return nil, false
48691}
48692
48693// AsBasicChaosEvent is the BasicChaosEvent implementation for ValidationFailedChaosEvent.
48694func (vfce ValidationFailedChaosEvent) AsBasicChaosEvent() (BasicChaosEvent, bool) {
48695	return &vfce, true
48696}
48697
48698// VolumeProperties describes properties of a volume resource.
48699type VolumeProperties struct {
48700	// Description - User readable description of the volume.
48701	Description *string `json:"description,omitempty"`
48702	// Status - READ-ONLY; Status of the volume. Possible values include: 'ResourceStatusUnknown', 'ResourceStatusReady', 'ResourceStatusUpgrading', 'ResourceStatusCreating', 'ResourceStatusDeleting', 'ResourceStatusFailed'
48703	Status ResourceStatus `json:"status,omitempty"`
48704	// StatusDetails - READ-ONLY; Gives additional information about the current status of the volume.
48705	StatusDetails *string `json:"statusDetails,omitempty"`
48706	// Provider - Provider of the volume.
48707	Provider *string `json:"provider,omitempty"`
48708	// AzureFileParameters - This type describes a volume provided by an Azure Files file share.
48709	AzureFileParameters *VolumeProviderParametersAzureFile `json:"azureFileParameters,omitempty"`
48710}
48711
48712// MarshalJSON is the custom marshaler for VolumeProperties.
48713func (vp VolumeProperties) MarshalJSON() ([]byte, error) {
48714	objectMap := make(map[string]interface{})
48715	if vp.Description != nil {
48716		objectMap["description"] = vp.Description
48717	}
48718	if vp.Provider != nil {
48719		objectMap["provider"] = vp.Provider
48720	}
48721	if vp.AzureFileParameters != nil {
48722		objectMap["azureFileParameters"] = vp.AzureFileParameters
48723	}
48724	return json.Marshal(objectMap)
48725}
48726
48727// VolumeProviderParametersAzureFile this type describes a volume provided by an Azure Files file share.
48728type VolumeProviderParametersAzureFile struct {
48729	// AccountName - Name of the Azure storage account for the File Share.
48730	AccountName *string `json:"accountName,omitempty"`
48731	// AccountKey - Access key of the Azure storage account for the File Share.
48732	AccountKey *string `json:"accountKey,omitempty"`
48733	// ShareName - Name of the Azure Files file share that provides storage for the volume.
48734	ShareName *string `json:"shareName,omitempty"`
48735}
48736
48737// VolumeReference describes a reference to a volume resource.
48738type VolumeReference struct {
48739	// Name - Name of the volume being referenced.
48740	Name *string `json:"name,omitempty"`
48741	// ReadOnly - The flag indicating whether the volume is read only. Default is 'false'.
48742	ReadOnly *bool `json:"readOnly,omitempty"`
48743	// DestinationPath - The path within the container at which the volume should be mounted. Only valid path characters are allowed.
48744	DestinationPath *string `json:"destinationPath,omitempty"`
48745}
48746
48747// VolumeResourceDescription this type describes a volume resource.
48748type VolumeResourceDescription struct {
48749	autorest.Response `json:"-"`
48750	// Name - Name of the Volume resource.
48751	Name *string `json:"name,omitempty"`
48752	// VolumeProperties - Describes properties of a volume resource.
48753	*VolumeProperties `json:"properties,omitempty"`
48754}
48755
48756// MarshalJSON is the custom marshaler for VolumeResourceDescription.
48757func (vrd VolumeResourceDescription) MarshalJSON() ([]byte, error) {
48758	objectMap := make(map[string]interface{})
48759	if vrd.Name != nil {
48760		objectMap["name"] = vrd.Name
48761	}
48762	if vrd.VolumeProperties != nil {
48763		objectMap["properties"] = vrd.VolumeProperties
48764	}
48765	return json.Marshal(objectMap)
48766}
48767
48768// UnmarshalJSON is the custom unmarshaler for VolumeResourceDescription struct.
48769func (vrd *VolumeResourceDescription) UnmarshalJSON(body []byte) error {
48770	var m map[string]*json.RawMessage
48771	err := json.Unmarshal(body, &m)
48772	if err != nil {
48773		return err
48774	}
48775	for k, v := range m {
48776		switch k {
48777		case "name":
48778			if v != nil {
48779				var name string
48780				err = json.Unmarshal(*v, &name)
48781				if err != nil {
48782					return err
48783				}
48784				vrd.Name = &name
48785			}
48786		case "properties":
48787			if v != nil {
48788				var volumeProperties VolumeProperties
48789				err = json.Unmarshal(*v, &volumeProperties)
48790				if err != nil {
48791					return err
48792				}
48793				vrd.VolumeProperties = &volumeProperties
48794			}
48795		}
48796	}
48797
48798	return nil
48799}
48800
48801// WaitForInbuildReplicaSafetyCheck safety check that waits for the replica build operation to finish. This
48802// indicates that there is a replica that is going through the copy or is providing data for building
48803// another replica. Bring the node down will abort this copy operation which are typically expensive
48804// involving data movements.
48805type WaitForInbuildReplicaSafetyCheck struct {
48806	// PartitionID - Id of the partition which is undergoing the safety check.
48807	PartitionID *uuid.UUID `json:"PartitionId,omitempty"`
48808	// Kind - Possible values include: 'KindSafetyCheck', 'KindPartitionSafetyCheck', 'KindEnsureAvailability', 'KindEnsurePartitionQuorum', 'KindEnsureSeedNodeQuorum', 'KindWaitForInbuildReplica', 'KindWaitForPrimaryPlacement', 'KindWaitForPrimarySwap', 'KindWaitForReconfiguration'
48809	Kind KindBasicSafetyCheck `json:"Kind,omitempty"`
48810}
48811
48812// MarshalJSON is the custom marshaler for WaitForInbuildReplicaSafetyCheck.
48813func (wfirsc WaitForInbuildReplicaSafetyCheck) MarshalJSON() ([]byte, error) {
48814	wfirsc.Kind = KindWaitForInbuildReplica
48815	objectMap := make(map[string]interface{})
48816	if wfirsc.PartitionID != nil {
48817		objectMap["PartitionId"] = wfirsc.PartitionID
48818	}
48819	if wfirsc.Kind != "" {
48820		objectMap["Kind"] = wfirsc.Kind
48821	}
48822	return json.Marshal(objectMap)
48823}
48824
48825// AsPartitionSafetyCheck is the BasicSafetyCheck implementation for WaitForInbuildReplicaSafetyCheck.
48826func (wfirsc WaitForInbuildReplicaSafetyCheck) AsPartitionSafetyCheck() (*PartitionSafetyCheck, bool) {
48827	return nil, false
48828}
48829
48830// AsBasicPartitionSafetyCheck is the BasicSafetyCheck implementation for WaitForInbuildReplicaSafetyCheck.
48831func (wfirsc WaitForInbuildReplicaSafetyCheck) AsBasicPartitionSafetyCheck() (BasicPartitionSafetyCheck, bool) {
48832	return &wfirsc, true
48833}
48834
48835// AsEnsureAvailabilitySafetyCheck is the BasicSafetyCheck implementation for WaitForInbuildReplicaSafetyCheck.
48836func (wfirsc WaitForInbuildReplicaSafetyCheck) AsEnsureAvailabilitySafetyCheck() (*EnsureAvailabilitySafetyCheck, bool) {
48837	return nil, false
48838}
48839
48840// AsEnsurePartitionQuorumSafetyCheck is the BasicSafetyCheck implementation for WaitForInbuildReplicaSafetyCheck.
48841func (wfirsc WaitForInbuildReplicaSafetyCheck) AsEnsurePartitionQuorumSafetyCheck() (*EnsurePartitionQuorumSafetyCheck, bool) {
48842	return nil, false
48843}
48844
48845// AsSeedNodeSafetyCheck is the BasicSafetyCheck implementation for WaitForInbuildReplicaSafetyCheck.
48846func (wfirsc WaitForInbuildReplicaSafetyCheck) AsSeedNodeSafetyCheck() (*SeedNodeSafetyCheck, bool) {
48847	return nil, false
48848}
48849
48850// AsWaitForInbuildReplicaSafetyCheck is the BasicSafetyCheck implementation for WaitForInbuildReplicaSafetyCheck.
48851func (wfirsc WaitForInbuildReplicaSafetyCheck) AsWaitForInbuildReplicaSafetyCheck() (*WaitForInbuildReplicaSafetyCheck, bool) {
48852	return &wfirsc, true
48853}
48854
48855// AsWaitForPrimaryPlacementSafetyCheck is the BasicSafetyCheck implementation for WaitForInbuildReplicaSafetyCheck.
48856func (wfirsc WaitForInbuildReplicaSafetyCheck) AsWaitForPrimaryPlacementSafetyCheck() (*WaitForPrimaryPlacementSafetyCheck, bool) {
48857	return nil, false
48858}
48859
48860// AsWaitForPrimarySwapSafetyCheck is the BasicSafetyCheck implementation for WaitForInbuildReplicaSafetyCheck.
48861func (wfirsc WaitForInbuildReplicaSafetyCheck) AsWaitForPrimarySwapSafetyCheck() (*WaitForPrimarySwapSafetyCheck, bool) {
48862	return nil, false
48863}
48864
48865// AsWaitForReconfigurationSafetyCheck is the BasicSafetyCheck implementation for WaitForInbuildReplicaSafetyCheck.
48866func (wfirsc WaitForInbuildReplicaSafetyCheck) AsWaitForReconfigurationSafetyCheck() (*WaitForReconfigurationSafetyCheck, bool) {
48867	return nil, false
48868}
48869
48870// AsSafetyCheck is the BasicSafetyCheck implementation for WaitForInbuildReplicaSafetyCheck.
48871func (wfirsc WaitForInbuildReplicaSafetyCheck) AsSafetyCheck() (*SafetyCheck, bool) {
48872	return nil, false
48873}
48874
48875// AsBasicSafetyCheck is the BasicSafetyCheck implementation for WaitForInbuildReplicaSafetyCheck.
48876func (wfirsc WaitForInbuildReplicaSafetyCheck) AsBasicSafetyCheck() (BasicSafetyCheck, bool) {
48877	return &wfirsc, true
48878}
48879
48880// WaitForPrimaryPlacementSafetyCheck safety check that waits for the primary replica that was moved out of
48881// the node due to upgrade to be placed back again on that node.
48882type WaitForPrimaryPlacementSafetyCheck struct {
48883	// PartitionID - Id of the partition which is undergoing the safety check.
48884	PartitionID *uuid.UUID `json:"PartitionId,omitempty"`
48885	// Kind - Possible values include: 'KindSafetyCheck', 'KindPartitionSafetyCheck', 'KindEnsureAvailability', 'KindEnsurePartitionQuorum', 'KindEnsureSeedNodeQuorum', 'KindWaitForInbuildReplica', 'KindWaitForPrimaryPlacement', 'KindWaitForPrimarySwap', 'KindWaitForReconfiguration'
48886	Kind KindBasicSafetyCheck `json:"Kind,omitempty"`
48887}
48888
48889// MarshalJSON is the custom marshaler for WaitForPrimaryPlacementSafetyCheck.
48890func (wfppsc WaitForPrimaryPlacementSafetyCheck) MarshalJSON() ([]byte, error) {
48891	wfppsc.Kind = KindWaitForPrimaryPlacement
48892	objectMap := make(map[string]interface{})
48893	if wfppsc.PartitionID != nil {
48894		objectMap["PartitionId"] = wfppsc.PartitionID
48895	}
48896	if wfppsc.Kind != "" {
48897		objectMap["Kind"] = wfppsc.Kind
48898	}
48899	return json.Marshal(objectMap)
48900}
48901
48902// AsPartitionSafetyCheck is the BasicSafetyCheck implementation for WaitForPrimaryPlacementSafetyCheck.
48903func (wfppsc WaitForPrimaryPlacementSafetyCheck) AsPartitionSafetyCheck() (*PartitionSafetyCheck, bool) {
48904	return nil, false
48905}
48906
48907// AsBasicPartitionSafetyCheck is the BasicSafetyCheck implementation for WaitForPrimaryPlacementSafetyCheck.
48908func (wfppsc WaitForPrimaryPlacementSafetyCheck) AsBasicPartitionSafetyCheck() (BasicPartitionSafetyCheck, bool) {
48909	return &wfppsc, true
48910}
48911
48912// AsEnsureAvailabilitySafetyCheck is the BasicSafetyCheck implementation for WaitForPrimaryPlacementSafetyCheck.
48913func (wfppsc WaitForPrimaryPlacementSafetyCheck) AsEnsureAvailabilitySafetyCheck() (*EnsureAvailabilitySafetyCheck, bool) {
48914	return nil, false
48915}
48916
48917// AsEnsurePartitionQuorumSafetyCheck is the BasicSafetyCheck implementation for WaitForPrimaryPlacementSafetyCheck.
48918func (wfppsc WaitForPrimaryPlacementSafetyCheck) AsEnsurePartitionQuorumSafetyCheck() (*EnsurePartitionQuorumSafetyCheck, bool) {
48919	return nil, false
48920}
48921
48922// AsSeedNodeSafetyCheck is the BasicSafetyCheck implementation for WaitForPrimaryPlacementSafetyCheck.
48923func (wfppsc WaitForPrimaryPlacementSafetyCheck) AsSeedNodeSafetyCheck() (*SeedNodeSafetyCheck, bool) {
48924	return nil, false
48925}
48926
48927// AsWaitForInbuildReplicaSafetyCheck is the BasicSafetyCheck implementation for WaitForPrimaryPlacementSafetyCheck.
48928func (wfppsc WaitForPrimaryPlacementSafetyCheck) AsWaitForInbuildReplicaSafetyCheck() (*WaitForInbuildReplicaSafetyCheck, bool) {
48929	return nil, false
48930}
48931
48932// AsWaitForPrimaryPlacementSafetyCheck is the BasicSafetyCheck implementation for WaitForPrimaryPlacementSafetyCheck.
48933func (wfppsc WaitForPrimaryPlacementSafetyCheck) AsWaitForPrimaryPlacementSafetyCheck() (*WaitForPrimaryPlacementSafetyCheck, bool) {
48934	return &wfppsc, true
48935}
48936
48937// AsWaitForPrimarySwapSafetyCheck is the BasicSafetyCheck implementation for WaitForPrimaryPlacementSafetyCheck.
48938func (wfppsc WaitForPrimaryPlacementSafetyCheck) AsWaitForPrimarySwapSafetyCheck() (*WaitForPrimarySwapSafetyCheck, bool) {
48939	return nil, false
48940}
48941
48942// AsWaitForReconfigurationSafetyCheck is the BasicSafetyCheck implementation for WaitForPrimaryPlacementSafetyCheck.
48943func (wfppsc WaitForPrimaryPlacementSafetyCheck) AsWaitForReconfigurationSafetyCheck() (*WaitForReconfigurationSafetyCheck, bool) {
48944	return nil, false
48945}
48946
48947// AsSafetyCheck is the BasicSafetyCheck implementation for WaitForPrimaryPlacementSafetyCheck.
48948func (wfppsc WaitForPrimaryPlacementSafetyCheck) AsSafetyCheck() (*SafetyCheck, bool) {
48949	return nil, false
48950}
48951
48952// AsBasicSafetyCheck is the BasicSafetyCheck implementation for WaitForPrimaryPlacementSafetyCheck.
48953func (wfppsc WaitForPrimaryPlacementSafetyCheck) AsBasicSafetyCheck() (BasicSafetyCheck, bool) {
48954	return &wfppsc, true
48955}
48956
48957// WaitForPrimarySwapSafetyCheck safety check that waits for the primary replica to be moved out of the
48958// node before starting an upgrade to ensure the availability of the primary replica for the partition.
48959type WaitForPrimarySwapSafetyCheck struct {
48960	// PartitionID - Id of the partition which is undergoing the safety check.
48961	PartitionID *uuid.UUID `json:"PartitionId,omitempty"`
48962	// Kind - Possible values include: 'KindSafetyCheck', 'KindPartitionSafetyCheck', 'KindEnsureAvailability', 'KindEnsurePartitionQuorum', 'KindEnsureSeedNodeQuorum', 'KindWaitForInbuildReplica', 'KindWaitForPrimaryPlacement', 'KindWaitForPrimarySwap', 'KindWaitForReconfiguration'
48963	Kind KindBasicSafetyCheck `json:"Kind,omitempty"`
48964}
48965
48966// MarshalJSON is the custom marshaler for WaitForPrimarySwapSafetyCheck.
48967func (wfpssc WaitForPrimarySwapSafetyCheck) MarshalJSON() ([]byte, error) {
48968	wfpssc.Kind = KindWaitForPrimarySwap
48969	objectMap := make(map[string]interface{})
48970	if wfpssc.PartitionID != nil {
48971		objectMap["PartitionId"] = wfpssc.PartitionID
48972	}
48973	if wfpssc.Kind != "" {
48974		objectMap["Kind"] = wfpssc.Kind
48975	}
48976	return json.Marshal(objectMap)
48977}
48978
48979// AsPartitionSafetyCheck is the BasicSafetyCheck implementation for WaitForPrimarySwapSafetyCheck.
48980func (wfpssc WaitForPrimarySwapSafetyCheck) AsPartitionSafetyCheck() (*PartitionSafetyCheck, bool) {
48981	return nil, false
48982}
48983
48984// AsBasicPartitionSafetyCheck is the BasicSafetyCheck implementation for WaitForPrimarySwapSafetyCheck.
48985func (wfpssc WaitForPrimarySwapSafetyCheck) AsBasicPartitionSafetyCheck() (BasicPartitionSafetyCheck, bool) {
48986	return &wfpssc, true
48987}
48988
48989// AsEnsureAvailabilitySafetyCheck is the BasicSafetyCheck implementation for WaitForPrimarySwapSafetyCheck.
48990func (wfpssc WaitForPrimarySwapSafetyCheck) AsEnsureAvailabilitySafetyCheck() (*EnsureAvailabilitySafetyCheck, bool) {
48991	return nil, false
48992}
48993
48994// AsEnsurePartitionQuorumSafetyCheck is the BasicSafetyCheck implementation for WaitForPrimarySwapSafetyCheck.
48995func (wfpssc WaitForPrimarySwapSafetyCheck) AsEnsurePartitionQuorumSafetyCheck() (*EnsurePartitionQuorumSafetyCheck, bool) {
48996	return nil, false
48997}
48998
48999// AsSeedNodeSafetyCheck is the BasicSafetyCheck implementation for WaitForPrimarySwapSafetyCheck.
49000func (wfpssc WaitForPrimarySwapSafetyCheck) AsSeedNodeSafetyCheck() (*SeedNodeSafetyCheck, bool) {
49001	return nil, false
49002}
49003
49004// AsWaitForInbuildReplicaSafetyCheck is the BasicSafetyCheck implementation for WaitForPrimarySwapSafetyCheck.
49005func (wfpssc WaitForPrimarySwapSafetyCheck) AsWaitForInbuildReplicaSafetyCheck() (*WaitForInbuildReplicaSafetyCheck, bool) {
49006	return nil, false
49007}
49008
49009// AsWaitForPrimaryPlacementSafetyCheck is the BasicSafetyCheck implementation for WaitForPrimarySwapSafetyCheck.
49010func (wfpssc WaitForPrimarySwapSafetyCheck) AsWaitForPrimaryPlacementSafetyCheck() (*WaitForPrimaryPlacementSafetyCheck, bool) {
49011	return nil, false
49012}
49013
49014// AsWaitForPrimarySwapSafetyCheck is the BasicSafetyCheck implementation for WaitForPrimarySwapSafetyCheck.
49015func (wfpssc WaitForPrimarySwapSafetyCheck) AsWaitForPrimarySwapSafetyCheck() (*WaitForPrimarySwapSafetyCheck, bool) {
49016	return &wfpssc, true
49017}
49018
49019// AsWaitForReconfigurationSafetyCheck is the BasicSafetyCheck implementation for WaitForPrimarySwapSafetyCheck.
49020func (wfpssc WaitForPrimarySwapSafetyCheck) AsWaitForReconfigurationSafetyCheck() (*WaitForReconfigurationSafetyCheck, bool) {
49021	return nil, false
49022}
49023
49024// AsSafetyCheck is the BasicSafetyCheck implementation for WaitForPrimarySwapSafetyCheck.
49025func (wfpssc WaitForPrimarySwapSafetyCheck) AsSafetyCheck() (*SafetyCheck, bool) {
49026	return nil, false
49027}
49028
49029// AsBasicSafetyCheck is the BasicSafetyCheck implementation for WaitForPrimarySwapSafetyCheck.
49030func (wfpssc WaitForPrimarySwapSafetyCheck) AsBasicSafetyCheck() (BasicSafetyCheck, bool) {
49031	return &wfpssc, true
49032}
49033
49034// WaitForReconfigurationSafetyCheck safety check that waits for the current reconfiguration of the
49035// partition to be completed before starting an upgrade.
49036type WaitForReconfigurationSafetyCheck struct {
49037	// PartitionID - Id of the partition which is undergoing the safety check.
49038	PartitionID *uuid.UUID `json:"PartitionId,omitempty"`
49039	// Kind - Possible values include: 'KindSafetyCheck', 'KindPartitionSafetyCheck', 'KindEnsureAvailability', 'KindEnsurePartitionQuorum', 'KindEnsureSeedNodeQuorum', 'KindWaitForInbuildReplica', 'KindWaitForPrimaryPlacement', 'KindWaitForPrimarySwap', 'KindWaitForReconfiguration'
49040	Kind KindBasicSafetyCheck `json:"Kind,omitempty"`
49041}
49042
49043// MarshalJSON is the custom marshaler for WaitForReconfigurationSafetyCheck.
49044func (wfrsc WaitForReconfigurationSafetyCheck) MarshalJSON() ([]byte, error) {
49045	wfrsc.Kind = KindWaitForReconfiguration
49046	objectMap := make(map[string]interface{})
49047	if wfrsc.PartitionID != nil {
49048		objectMap["PartitionId"] = wfrsc.PartitionID
49049	}
49050	if wfrsc.Kind != "" {
49051		objectMap["Kind"] = wfrsc.Kind
49052	}
49053	return json.Marshal(objectMap)
49054}
49055
49056// AsPartitionSafetyCheck is the BasicSafetyCheck implementation for WaitForReconfigurationSafetyCheck.
49057func (wfrsc WaitForReconfigurationSafetyCheck) AsPartitionSafetyCheck() (*PartitionSafetyCheck, bool) {
49058	return nil, false
49059}
49060
49061// AsBasicPartitionSafetyCheck is the BasicSafetyCheck implementation for WaitForReconfigurationSafetyCheck.
49062func (wfrsc WaitForReconfigurationSafetyCheck) AsBasicPartitionSafetyCheck() (BasicPartitionSafetyCheck, bool) {
49063	return &wfrsc, true
49064}
49065
49066// AsEnsureAvailabilitySafetyCheck is the BasicSafetyCheck implementation for WaitForReconfigurationSafetyCheck.
49067func (wfrsc WaitForReconfigurationSafetyCheck) AsEnsureAvailabilitySafetyCheck() (*EnsureAvailabilitySafetyCheck, bool) {
49068	return nil, false
49069}
49070
49071// AsEnsurePartitionQuorumSafetyCheck is the BasicSafetyCheck implementation for WaitForReconfigurationSafetyCheck.
49072func (wfrsc WaitForReconfigurationSafetyCheck) AsEnsurePartitionQuorumSafetyCheck() (*EnsurePartitionQuorumSafetyCheck, bool) {
49073	return nil, false
49074}
49075
49076// AsSeedNodeSafetyCheck is the BasicSafetyCheck implementation for WaitForReconfigurationSafetyCheck.
49077func (wfrsc WaitForReconfigurationSafetyCheck) AsSeedNodeSafetyCheck() (*SeedNodeSafetyCheck, bool) {
49078	return nil, false
49079}
49080
49081// AsWaitForInbuildReplicaSafetyCheck is the BasicSafetyCheck implementation for WaitForReconfigurationSafetyCheck.
49082func (wfrsc WaitForReconfigurationSafetyCheck) AsWaitForInbuildReplicaSafetyCheck() (*WaitForInbuildReplicaSafetyCheck, bool) {
49083	return nil, false
49084}
49085
49086// AsWaitForPrimaryPlacementSafetyCheck is the BasicSafetyCheck implementation for WaitForReconfigurationSafetyCheck.
49087func (wfrsc WaitForReconfigurationSafetyCheck) AsWaitForPrimaryPlacementSafetyCheck() (*WaitForPrimaryPlacementSafetyCheck, bool) {
49088	return nil, false
49089}
49090
49091// AsWaitForPrimarySwapSafetyCheck is the BasicSafetyCheck implementation for WaitForReconfigurationSafetyCheck.
49092func (wfrsc WaitForReconfigurationSafetyCheck) AsWaitForPrimarySwapSafetyCheck() (*WaitForPrimarySwapSafetyCheck, bool) {
49093	return nil, false
49094}
49095
49096// AsWaitForReconfigurationSafetyCheck is the BasicSafetyCheck implementation for WaitForReconfigurationSafetyCheck.
49097func (wfrsc WaitForReconfigurationSafetyCheck) AsWaitForReconfigurationSafetyCheck() (*WaitForReconfigurationSafetyCheck, bool) {
49098	return &wfrsc, true
49099}
49100
49101// AsSafetyCheck is the BasicSafetyCheck implementation for WaitForReconfigurationSafetyCheck.
49102func (wfrsc WaitForReconfigurationSafetyCheck) AsSafetyCheck() (*SafetyCheck, bool) {
49103	return nil, false
49104}
49105
49106// AsBasicSafetyCheck is the BasicSafetyCheck implementation for WaitForReconfigurationSafetyCheck.
49107func (wfrsc WaitForReconfigurationSafetyCheck) AsBasicSafetyCheck() (BasicSafetyCheck, bool) {
49108	return &wfrsc, true
49109}
49110
49111// WaitingChaosEvent describes a Chaos event that gets generated when Chaos is waiting for the cluster to
49112// become ready for faulting, for example, Chaos may be waiting for the on-going upgrade to finish.
49113type WaitingChaosEvent struct {
49114	// Reason - Describes why the WaitingChaosEvent was generated, for example, due to a cluster upgrade.
49115	Reason *string `json:"Reason,omitempty"`
49116	// TimeStampUtc - The UTC timestamp when this Chaos event was generated.
49117	TimeStampUtc *date.Time `json:"TimeStampUtc,omitempty"`
49118	// Kind - Possible values include: 'KindChaosEvent', 'KindExecutingFaults', 'KindStarted', 'KindStopped', 'KindTestError', 'KindValidationFailed', 'KindWaiting'
49119	Kind KindBasicChaosEvent `json:"Kind,omitempty"`
49120}
49121
49122// MarshalJSON is the custom marshaler for WaitingChaosEvent.
49123func (wce WaitingChaosEvent) MarshalJSON() ([]byte, error) {
49124	wce.Kind = KindWaiting
49125	objectMap := make(map[string]interface{})
49126	if wce.Reason != nil {
49127		objectMap["Reason"] = wce.Reason
49128	}
49129	if wce.TimeStampUtc != nil {
49130		objectMap["TimeStampUtc"] = wce.TimeStampUtc
49131	}
49132	if wce.Kind != "" {
49133		objectMap["Kind"] = wce.Kind
49134	}
49135	return json.Marshal(objectMap)
49136}
49137
49138// AsExecutingFaultsChaosEvent is the BasicChaosEvent implementation for WaitingChaosEvent.
49139func (wce WaitingChaosEvent) AsExecutingFaultsChaosEvent() (*ExecutingFaultsChaosEvent, bool) {
49140	return nil, false
49141}
49142
49143// AsStartedChaosEvent is the BasicChaosEvent implementation for WaitingChaosEvent.
49144func (wce WaitingChaosEvent) AsStartedChaosEvent() (*StartedChaosEvent, bool) {
49145	return nil, false
49146}
49147
49148// AsStoppedChaosEvent is the BasicChaosEvent implementation for WaitingChaosEvent.
49149func (wce WaitingChaosEvent) AsStoppedChaosEvent() (*StoppedChaosEvent, bool) {
49150	return nil, false
49151}
49152
49153// AsTestErrorChaosEvent is the BasicChaosEvent implementation for WaitingChaosEvent.
49154func (wce WaitingChaosEvent) AsTestErrorChaosEvent() (*TestErrorChaosEvent, bool) {
49155	return nil, false
49156}
49157
49158// AsValidationFailedChaosEvent is the BasicChaosEvent implementation for WaitingChaosEvent.
49159func (wce WaitingChaosEvent) AsValidationFailedChaosEvent() (*ValidationFailedChaosEvent, bool) {
49160	return nil, false
49161}
49162
49163// AsWaitingChaosEvent is the BasicChaosEvent implementation for WaitingChaosEvent.
49164func (wce WaitingChaosEvent) AsWaitingChaosEvent() (*WaitingChaosEvent, bool) {
49165	return &wce, true
49166}
49167
49168// AsChaosEvent is the BasicChaosEvent implementation for WaitingChaosEvent.
49169func (wce WaitingChaosEvent) AsChaosEvent() (*ChaosEvent, bool) {
49170	return nil, false
49171}
49172
49173// AsBasicChaosEvent is the BasicChaosEvent implementation for WaitingChaosEvent.
49174func (wce WaitingChaosEvent) AsBasicChaosEvent() (BasicChaosEvent, bool) {
49175	return &wce, true
49176}
49177