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/6.5/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// ApplicationHealthReportExpiredEvent application Health Report Expired event.
2289type ApplicationHealthReportExpiredEvent struct {
2290	// ApplicationInstanceID - Id of Application instance.
2291	ApplicationInstanceID *int64 `json:"ApplicationInstanceId,omitempty"`
2292	// SourceID - Id of report source.
2293	SourceID *string `json:"SourceId,omitempty"`
2294	// Property - Describes the property.
2295	Property *string `json:"Property,omitempty"`
2296	// HealthState - Describes the property health state.
2297	HealthState *string `json:"HealthState,omitempty"`
2298	// TimeToLiveMs - Time to live in milli-seconds.
2299	TimeToLiveMs *int64 `json:"TimeToLiveMs,omitempty"`
2300	// SequenceNumber - Sequence number of report.
2301	SequenceNumber *int64 `json:"SequenceNumber,omitempty"`
2302	// Description - Description of report.
2303	Description *string `json:"Description,omitempty"`
2304	// RemoveWhenExpired - Indicates the removal when it expires.
2305	RemoveWhenExpired *bool `json:"RemoveWhenExpired,omitempty"`
2306	// SourceUtcTimestamp - Source time.
2307	SourceUtcTimestamp *date.Time `json:"SourceUtcTimestamp,omitempty"`
2308	// 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.
2309	// Starting in version 6.0, hierarchical names are delimited with the "\~" character. For example, if the application name is "fabric:/myapp/app1",
2310	// the application identity would be "myapp\~app1" in 6.0+ and "myapp/app1" in previous versions.
2311	ApplicationID *string `json:"ApplicationId,omitempty"`
2312	// EventInstanceID - The identifier for the FabricEvent instance.
2313	EventInstanceID *uuid.UUID `json:"EventInstanceId,omitempty"`
2314	// Category - The category of event.
2315	Category *string `json:"Category,omitempty"`
2316	// TimeStamp - The time event was logged.
2317	TimeStamp *date.Time `json:"TimeStamp,omitempty"`
2318	// HasCorrelatedEvents - Shows there is existing related events available.
2319	HasCorrelatedEvents *bool `json:"HasCorrelatedEvents,omitempty"`
2320	// 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'
2321	Kind KindBasicFabricEvent `json:"Kind,omitempty"`
2322}
2323
2324// MarshalJSON is the custom marshaler for ApplicationHealthReportExpiredEvent.
2325func (ahree ApplicationHealthReportExpiredEvent) MarshalJSON() ([]byte, error) {
2326	ahree.Kind = KindApplicationHealthReportExpired
2327	objectMap := make(map[string]interface{})
2328	if ahree.ApplicationInstanceID != nil {
2329		objectMap["ApplicationInstanceId"] = ahree.ApplicationInstanceID
2330	}
2331	if ahree.SourceID != nil {
2332		objectMap["SourceId"] = ahree.SourceID
2333	}
2334	if ahree.Property != nil {
2335		objectMap["Property"] = ahree.Property
2336	}
2337	if ahree.HealthState != nil {
2338		objectMap["HealthState"] = ahree.HealthState
2339	}
2340	if ahree.TimeToLiveMs != nil {
2341		objectMap["TimeToLiveMs"] = ahree.TimeToLiveMs
2342	}
2343	if ahree.SequenceNumber != nil {
2344		objectMap["SequenceNumber"] = ahree.SequenceNumber
2345	}
2346	if ahree.Description != nil {
2347		objectMap["Description"] = ahree.Description
2348	}
2349	if ahree.RemoveWhenExpired != nil {
2350		objectMap["RemoveWhenExpired"] = ahree.RemoveWhenExpired
2351	}
2352	if ahree.SourceUtcTimestamp != nil {
2353		objectMap["SourceUtcTimestamp"] = ahree.SourceUtcTimestamp
2354	}
2355	if ahree.ApplicationID != nil {
2356		objectMap["ApplicationId"] = ahree.ApplicationID
2357	}
2358	if ahree.EventInstanceID != nil {
2359		objectMap["EventInstanceId"] = ahree.EventInstanceID
2360	}
2361	if ahree.Category != nil {
2362		objectMap["Category"] = ahree.Category
2363	}
2364	if ahree.TimeStamp != nil {
2365		objectMap["TimeStamp"] = ahree.TimeStamp
2366	}
2367	if ahree.HasCorrelatedEvents != nil {
2368		objectMap["HasCorrelatedEvents"] = ahree.HasCorrelatedEvents
2369	}
2370	if ahree.Kind != "" {
2371		objectMap["Kind"] = ahree.Kind
2372	}
2373	return json.Marshal(objectMap)
2374}
2375
2376// AsApplicationEvent is the BasicFabricEvent implementation for ApplicationHealthReportExpiredEvent.
2377func (ahree ApplicationHealthReportExpiredEvent) AsApplicationEvent() (*ApplicationEvent, bool) {
2378	return nil, false
2379}
2380
2381// AsBasicApplicationEvent is the BasicFabricEvent implementation for ApplicationHealthReportExpiredEvent.
2382func (ahree ApplicationHealthReportExpiredEvent) AsBasicApplicationEvent() (BasicApplicationEvent, bool) {
2383	return &ahree, true
2384}
2385
2386// AsClusterEvent is the BasicFabricEvent implementation for ApplicationHealthReportExpiredEvent.
2387func (ahree ApplicationHealthReportExpiredEvent) AsClusterEvent() (*ClusterEvent, bool) {
2388	return nil, false
2389}
2390
2391// AsBasicClusterEvent is the BasicFabricEvent implementation for ApplicationHealthReportExpiredEvent.
2392func (ahree ApplicationHealthReportExpiredEvent) AsBasicClusterEvent() (BasicClusterEvent, bool) {
2393	return nil, false
2394}
2395
2396// AsContainerInstanceEvent is the BasicFabricEvent implementation for ApplicationHealthReportExpiredEvent.
2397func (ahree ApplicationHealthReportExpiredEvent) AsContainerInstanceEvent() (*ContainerInstanceEvent, bool) {
2398	return nil, false
2399}
2400
2401// AsNodeEvent is the BasicFabricEvent implementation for ApplicationHealthReportExpiredEvent.
2402func (ahree ApplicationHealthReportExpiredEvent) AsNodeEvent() (*NodeEvent, bool) {
2403	return nil, false
2404}
2405
2406// AsBasicNodeEvent is the BasicFabricEvent implementation for ApplicationHealthReportExpiredEvent.
2407func (ahree ApplicationHealthReportExpiredEvent) AsBasicNodeEvent() (BasicNodeEvent, bool) {
2408	return nil, false
2409}
2410
2411// AsPartitionAnalysisEvent is the BasicFabricEvent implementation for ApplicationHealthReportExpiredEvent.
2412func (ahree ApplicationHealthReportExpiredEvent) AsPartitionAnalysisEvent() (*PartitionAnalysisEvent, bool) {
2413	return nil, false
2414}
2415
2416// AsBasicPartitionAnalysisEvent is the BasicFabricEvent implementation for ApplicationHealthReportExpiredEvent.
2417func (ahree ApplicationHealthReportExpiredEvent) AsBasicPartitionAnalysisEvent() (BasicPartitionAnalysisEvent, bool) {
2418	return nil, false
2419}
2420
2421// AsPartitionEvent is the BasicFabricEvent implementation for ApplicationHealthReportExpiredEvent.
2422func (ahree ApplicationHealthReportExpiredEvent) AsPartitionEvent() (*PartitionEvent, bool) {
2423	return nil, false
2424}
2425
2426// AsBasicPartitionEvent is the BasicFabricEvent implementation for ApplicationHealthReportExpiredEvent.
2427func (ahree ApplicationHealthReportExpiredEvent) AsBasicPartitionEvent() (BasicPartitionEvent, bool) {
2428	return nil, false
2429}
2430
2431// AsReplicaEvent is the BasicFabricEvent implementation for ApplicationHealthReportExpiredEvent.
2432func (ahree ApplicationHealthReportExpiredEvent) AsReplicaEvent() (*ReplicaEvent, bool) {
2433	return nil, false
2434}
2435
2436// AsBasicReplicaEvent is the BasicFabricEvent implementation for ApplicationHealthReportExpiredEvent.
2437func (ahree ApplicationHealthReportExpiredEvent) AsBasicReplicaEvent() (BasicReplicaEvent, bool) {
2438	return nil, false
2439}
2440
2441// AsServiceEvent is the BasicFabricEvent implementation for ApplicationHealthReportExpiredEvent.
2442func (ahree ApplicationHealthReportExpiredEvent) AsServiceEvent() (*ServiceEvent, bool) {
2443	return nil, false
2444}
2445
2446// AsBasicServiceEvent is the BasicFabricEvent implementation for ApplicationHealthReportExpiredEvent.
2447func (ahree ApplicationHealthReportExpiredEvent) AsBasicServiceEvent() (BasicServiceEvent, bool) {
2448	return nil, false
2449}
2450
2451// AsApplicationCreatedEvent is the BasicFabricEvent implementation for ApplicationHealthReportExpiredEvent.
2452func (ahree ApplicationHealthReportExpiredEvent) AsApplicationCreatedEvent() (*ApplicationCreatedEvent, bool) {
2453	return nil, false
2454}
2455
2456// AsApplicationDeletedEvent is the BasicFabricEvent implementation for ApplicationHealthReportExpiredEvent.
2457func (ahree ApplicationHealthReportExpiredEvent) AsApplicationDeletedEvent() (*ApplicationDeletedEvent, bool) {
2458	return nil, false
2459}
2460
2461// AsApplicationNewHealthReportEvent is the BasicFabricEvent implementation for ApplicationHealthReportExpiredEvent.
2462func (ahree ApplicationHealthReportExpiredEvent) AsApplicationNewHealthReportEvent() (*ApplicationNewHealthReportEvent, bool) {
2463	return nil, false
2464}
2465
2466// AsApplicationHealthReportExpiredEvent is the BasicFabricEvent implementation for ApplicationHealthReportExpiredEvent.
2467func (ahree ApplicationHealthReportExpiredEvent) AsApplicationHealthReportExpiredEvent() (*ApplicationHealthReportExpiredEvent, bool) {
2468	return &ahree, true
2469}
2470
2471// AsApplicationUpgradeCompletedEvent is the BasicFabricEvent implementation for ApplicationHealthReportExpiredEvent.
2472func (ahree ApplicationHealthReportExpiredEvent) AsApplicationUpgradeCompletedEvent() (*ApplicationUpgradeCompletedEvent, bool) {
2473	return nil, false
2474}
2475
2476// AsApplicationUpgradeDomainCompletedEvent is the BasicFabricEvent implementation for ApplicationHealthReportExpiredEvent.
2477func (ahree ApplicationHealthReportExpiredEvent) AsApplicationUpgradeDomainCompletedEvent() (*ApplicationUpgradeDomainCompletedEvent, bool) {
2478	return nil, false
2479}
2480
2481// AsApplicationUpgradeRollbackCompletedEvent is the BasicFabricEvent implementation for ApplicationHealthReportExpiredEvent.
2482func (ahree ApplicationHealthReportExpiredEvent) AsApplicationUpgradeRollbackCompletedEvent() (*ApplicationUpgradeRollbackCompletedEvent, bool) {
2483	return nil, false
2484}
2485
2486// AsApplicationUpgradeRollbackStartedEvent is the BasicFabricEvent implementation for ApplicationHealthReportExpiredEvent.
2487func (ahree ApplicationHealthReportExpiredEvent) AsApplicationUpgradeRollbackStartedEvent() (*ApplicationUpgradeRollbackStartedEvent, bool) {
2488	return nil, false
2489}
2490
2491// AsApplicationUpgradeStartedEvent is the BasicFabricEvent implementation for ApplicationHealthReportExpiredEvent.
2492func (ahree ApplicationHealthReportExpiredEvent) AsApplicationUpgradeStartedEvent() (*ApplicationUpgradeStartedEvent, bool) {
2493	return nil, false
2494}
2495
2496// AsDeployedApplicationNewHealthReportEvent is the BasicFabricEvent implementation for ApplicationHealthReportExpiredEvent.
2497func (ahree ApplicationHealthReportExpiredEvent) AsDeployedApplicationNewHealthReportEvent() (*DeployedApplicationNewHealthReportEvent, bool) {
2498	return nil, false
2499}
2500
2501// AsDeployedApplicationHealthReportExpiredEvent is the BasicFabricEvent implementation for ApplicationHealthReportExpiredEvent.
2502func (ahree ApplicationHealthReportExpiredEvent) AsDeployedApplicationHealthReportExpiredEvent() (*DeployedApplicationHealthReportExpiredEvent, bool) {
2503	return nil, false
2504}
2505
2506// AsApplicationProcessExitedEvent is the BasicFabricEvent implementation for ApplicationHealthReportExpiredEvent.
2507func (ahree ApplicationHealthReportExpiredEvent) AsApplicationProcessExitedEvent() (*ApplicationProcessExitedEvent, bool) {
2508	return nil, false
2509}
2510
2511// AsApplicationContainerInstanceExitedEvent is the BasicFabricEvent implementation for ApplicationHealthReportExpiredEvent.
2512func (ahree ApplicationHealthReportExpiredEvent) AsApplicationContainerInstanceExitedEvent() (*ApplicationContainerInstanceExitedEvent, bool) {
2513	return nil, false
2514}
2515
2516// AsNodeAbortedEvent is the BasicFabricEvent implementation for ApplicationHealthReportExpiredEvent.
2517func (ahree ApplicationHealthReportExpiredEvent) AsNodeAbortedEvent() (*NodeAbortedEvent, bool) {
2518	return nil, false
2519}
2520
2521// AsNodeAddedToClusterEvent is the BasicFabricEvent implementation for ApplicationHealthReportExpiredEvent.
2522func (ahree ApplicationHealthReportExpiredEvent) AsNodeAddedToClusterEvent() (*NodeAddedToClusterEvent, bool) {
2523	return nil, false
2524}
2525
2526// AsNodeClosedEvent is the BasicFabricEvent implementation for ApplicationHealthReportExpiredEvent.
2527func (ahree ApplicationHealthReportExpiredEvent) AsNodeClosedEvent() (*NodeClosedEvent, bool) {
2528	return nil, false
2529}
2530
2531// AsNodeDeactivateCompletedEvent is the BasicFabricEvent implementation for ApplicationHealthReportExpiredEvent.
2532func (ahree ApplicationHealthReportExpiredEvent) AsNodeDeactivateCompletedEvent() (*NodeDeactivateCompletedEvent, bool) {
2533	return nil, false
2534}
2535
2536// AsNodeDeactivateStartedEvent is the BasicFabricEvent implementation for ApplicationHealthReportExpiredEvent.
2537func (ahree ApplicationHealthReportExpiredEvent) AsNodeDeactivateStartedEvent() (*NodeDeactivateStartedEvent, bool) {
2538	return nil, false
2539}
2540
2541// AsNodeDownEvent is the BasicFabricEvent implementation for ApplicationHealthReportExpiredEvent.
2542func (ahree ApplicationHealthReportExpiredEvent) AsNodeDownEvent() (*NodeDownEvent, bool) {
2543	return nil, false
2544}
2545
2546// AsNodeNewHealthReportEvent is the BasicFabricEvent implementation for ApplicationHealthReportExpiredEvent.
2547func (ahree ApplicationHealthReportExpiredEvent) AsNodeNewHealthReportEvent() (*NodeNewHealthReportEvent, bool) {
2548	return nil, false
2549}
2550
2551// AsNodeHealthReportExpiredEvent is the BasicFabricEvent implementation for ApplicationHealthReportExpiredEvent.
2552func (ahree ApplicationHealthReportExpiredEvent) AsNodeHealthReportExpiredEvent() (*NodeHealthReportExpiredEvent, bool) {
2553	return nil, false
2554}
2555
2556// AsNodeOpenSucceededEvent is the BasicFabricEvent implementation for ApplicationHealthReportExpiredEvent.
2557func (ahree ApplicationHealthReportExpiredEvent) AsNodeOpenSucceededEvent() (*NodeOpenSucceededEvent, bool) {
2558	return nil, false
2559}
2560
2561// AsNodeOpenFailedEvent is the BasicFabricEvent implementation for ApplicationHealthReportExpiredEvent.
2562func (ahree ApplicationHealthReportExpiredEvent) AsNodeOpenFailedEvent() (*NodeOpenFailedEvent, bool) {
2563	return nil, false
2564}
2565
2566// AsNodeRemovedFromClusterEvent is the BasicFabricEvent implementation for ApplicationHealthReportExpiredEvent.
2567func (ahree ApplicationHealthReportExpiredEvent) AsNodeRemovedFromClusterEvent() (*NodeRemovedFromClusterEvent, bool) {
2568	return nil, false
2569}
2570
2571// AsNodeUpEvent is the BasicFabricEvent implementation for ApplicationHealthReportExpiredEvent.
2572func (ahree ApplicationHealthReportExpiredEvent) AsNodeUpEvent() (*NodeUpEvent, bool) {
2573	return nil, false
2574}
2575
2576// AsPartitionNewHealthReportEvent is the BasicFabricEvent implementation for ApplicationHealthReportExpiredEvent.
2577func (ahree ApplicationHealthReportExpiredEvent) AsPartitionNewHealthReportEvent() (*PartitionNewHealthReportEvent, bool) {
2578	return nil, false
2579}
2580
2581// AsPartitionHealthReportExpiredEvent is the BasicFabricEvent implementation for ApplicationHealthReportExpiredEvent.
2582func (ahree ApplicationHealthReportExpiredEvent) AsPartitionHealthReportExpiredEvent() (*PartitionHealthReportExpiredEvent, bool) {
2583	return nil, false
2584}
2585
2586// AsPartitionReconfiguredEvent is the BasicFabricEvent implementation for ApplicationHealthReportExpiredEvent.
2587func (ahree ApplicationHealthReportExpiredEvent) AsPartitionReconfiguredEvent() (*PartitionReconfiguredEvent, bool) {
2588	return nil, false
2589}
2590
2591// AsPartitionPrimaryMoveAnalysisEvent is the BasicFabricEvent implementation for ApplicationHealthReportExpiredEvent.
2592func (ahree ApplicationHealthReportExpiredEvent) AsPartitionPrimaryMoveAnalysisEvent() (*PartitionPrimaryMoveAnalysisEvent, bool) {
2593	return nil, false
2594}
2595
2596// AsServiceCreatedEvent is the BasicFabricEvent implementation for ApplicationHealthReportExpiredEvent.
2597func (ahree ApplicationHealthReportExpiredEvent) AsServiceCreatedEvent() (*ServiceCreatedEvent, bool) {
2598	return nil, false
2599}
2600
2601// AsServiceDeletedEvent is the BasicFabricEvent implementation for ApplicationHealthReportExpiredEvent.
2602func (ahree ApplicationHealthReportExpiredEvent) AsServiceDeletedEvent() (*ServiceDeletedEvent, bool) {
2603	return nil, false
2604}
2605
2606// AsServiceNewHealthReportEvent is the BasicFabricEvent implementation for ApplicationHealthReportExpiredEvent.
2607func (ahree ApplicationHealthReportExpiredEvent) AsServiceNewHealthReportEvent() (*ServiceNewHealthReportEvent, bool) {
2608	return nil, false
2609}
2610
2611// AsServiceHealthReportExpiredEvent is the BasicFabricEvent implementation for ApplicationHealthReportExpiredEvent.
2612func (ahree ApplicationHealthReportExpiredEvent) AsServiceHealthReportExpiredEvent() (*ServiceHealthReportExpiredEvent, bool) {
2613	return nil, false
2614}
2615
2616// AsDeployedServicePackageNewHealthReportEvent is the BasicFabricEvent implementation for ApplicationHealthReportExpiredEvent.
2617func (ahree ApplicationHealthReportExpiredEvent) AsDeployedServicePackageNewHealthReportEvent() (*DeployedServicePackageNewHealthReportEvent, bool) {
2618	return nil, false
2619}
2620
2621// AsDeployedServicePackageHealthReportExpiredEvent is the BasicFabricEvent implementation for ApplicationHealthReportExpiredEvent.
2622func (ahree ApplicationHealthReportExpiredEvent) AsDeployedServicePackageHealthReportExpiredEvent() (*DeployedServicePackageHealthReportExpiredEvent, bool) {
2623	return nil, false
2624}
2625
2626// AsStatefulReplicaNewHealthReportEvent is the BasicFabricEvent implementation for ApplicationHealthReportExpiredEvent.
2627func (ahree ApplicationHealthReportExpiredEvent) AsStatefulReplicaNewHealthReportEvent() (*StatefulReplicaNewHealthReportEvent, bool) {
2628	return nil, false
2629}
2630
2631// AsStatefulReplicaHealthReportExpiredEvent is the BasicFabricEvent implementation for ApplicationHealthReportExpiredEvent.
2632func (ahree ApplicationHealthReportExpiredEvent) AsStatefulReplicaHealthReportExpiredEvent() (*StatefulReplicaHealthReportExpiredEvent, bool) {
2633	return nil, false
2634}
2635
2636// AsStatelessReplicaNewHealthReportEvent is the BasicFabricEvent implementation for ApplicationHealthReportExpiredEvent.
2637func (ahree ApplicationHealthReportExpiredEvent) AsStatelessReplicaNewHealthReportEvent() (*StatelessReplicaNewHealthReportEvent, bool) {
2638	return nil, false
2639}
2640
2641// AsStatelessReplicaHealthReportExpiredEvent is the BasicFabricEvent implementation for ApplicationHealthReportExpiredEvent.
2642func (ahree ApplicationHealthReportExpiredEvent) AsStatelessReplicaHealthReportExpiredEvent() (*StatelessReplicaHealthReportExpiredEvent, bool) {
2643	return nil, false
2644}
2645
2646// AsClusterNewHealthReportEvent is the BasicFabricEvent implementation for ApplicationHealthReportExpiredEvent.
2647func (ahree ApplicationHealthReportExpiredEvent) AsClusterNewHealthReportEvent() (*ClusterNewHealthReportEvent, bool) {
2648	return nil, false
2649}
2650
2651// AsClusterHealthReportExpiredEvent is the BasicFabricEvent implementation for ApplicationHealthReportExpiredEvent.
2652func (ahree ApplicationHealthReportExpiredEvent) AsClusterHealthReportExpiredEvent() (*ClusterHealthReportExpiredEvent, bool) {
2653	return nil, false
2654}
2655
2656// AsClusterUpgradeCompletedEvent is the BasicFabricEvent implementation for ApplicationHealthReportExpiredEvent.
2657func (ahree ApplicationHealthReportExpiredEvent) AsClusterUpgradeCompletedEvent() (*ClusterUpgradeCompletedEvent, bool) {
2658	return nil, false
2659}
2660
2661// AsClusterUpgradeDomainCompletedEvent is the BasicFabricEvent implementation for ApplicationHealthReportExpiredEvent.
2662func (ahree ApplicationHealthReportExpiredEvent) AsClusterUpgradeDomainCompletedEvent() (*ClusterUpgradeDomainCompletedEvent, bool) {
2663	return nil, false
2664}
2665
2666// AsClusterUpgradeRollbackCompletedEvent is the BasicFabricEvent implementation for ApplicationHealthReportExpiredEvent.
2667func (ahree ApplicationHealthReportExpiredEvent) AsClusterUpgradeRollbackCompletedEvent() (*ClusterUpgradeRollbackCompletedEvent, bool) {
2668	return nil, false
2669}
2670
2671// AsClusterUpgradeRollbackStartedEvent is the BasicFabricEvent implementation for ApplicationHealthReportExpiredEvent.
2672func (ahree ApplicationHealthReportExpiredEvent) AsClusterUpgradeRollbackStartedEvent() (*ClusterUpgradeRollbackStartedEvent, bool) {
2673	return nil, false
2674}
2675
2676// AsClusterUpgradeStartedEvent is the BasicFabricEvent implementation for ApplicationHealthReportExpiredEvent.
2677func (ahree ApplicationHealthReportExpiredEvent) AsClusterUpgradeStartedEvent() (*ClusterUpgradeStartedEvent, bool) {
2678	return nil, false
2679}
2680
2681// AsChaosStoppedEvent is the BasicFabricEvent implementation for ApplicationHealthReportExpiredEvent.
2682func (ahree ApplicationHealthReportExpiredEvent) AsChaosStoppedEvent() (*ChaosStoppedEvent, bool) {
2683	return nil, false
2684}
2685
2686// AsChaosStartedEvent is the BasicFabricEvent implementation for ApplicationHealthReportExpiredEvent.
2687func (ahree ApplicationHealthReportExpiredEvent) AsChaosStartedEvent() (*ChaosStartedEvent, bool) {
2688	return nil, false
2689}
2690
2691// AsChaosCodePackageRestartScheduledEvent is the BasicFabricEvent implementation for ApplicationHealthReportExpiredEvent.
2692func (ahree ApplicationHealthReportExpiredEvent) AsChaosCodePackageRestartScheduledEvent() (*ChaosCodePackageRestartScheduledEvent, bool) {
2693	return nil, false
2694}
2695
2696// AsChaosReplicaRemovalScheduledEvent is the BasicFabricEvent implementation for ApplicationHealthReportExpiredEvent.
2697func (ahree ApplicationHealthReportExpiredEvent) AsChaosReplicaRemovalScheduledEvent() (*ChaosReplicaRemovalScheduledEvent, bool) {
2698	return nil, false
2699}
2700
2701// AsChaosPartitionSecondaryMoveScheduledEvent is the BasicFabricEvent implementation for ApplicationHealthReportExpiredEvent.
2702func (ahree ApplicationHealthReportExpiredEvent) AsChaosPartitionSecondaryMoveScheduledEvent() (*ChaosPartitionSecondaryMoveScheduledEvent, bool) {
2703	return nil, false
2704}
2705
2706// AsChaosPartitionPrimaryMoveScheduledEvent is the BasicFabricEvent implementation for ApplicationHealthReportExpiredEvent.
2707func (ahree ApplicationHealthReportExpiredEvent) AsChaosPartitionPrimaryMoveScheduledEvent() (*ChaosPartitionPrimaryMoveScheduledEvent, bool) {
2708	return nil, false
2709}
2710
2711// AsChaosReplicaRestartScheduledEvent is the BasicFabricEvent implementation for ApplicationHealthReportExpiredEvent.
2712func (ahree ApplicationHealthReportExpiredEvent) AsChaosReplicaRestartScheduledEvent() (*ChaosReplicaRestartScheduledEvent, bool) {
2713	return nil, false
2714}
2715
2716// AsChaosNodeRestartScheduledEvent is the BasicFabricEvent implementation for ApplicationHealthReportExpiredEvent.
2717func (ahree ApplicationHealthReportExpiredEvent) AsChaosNodeRestartScheduledEvent() (*ChaosNodeRestartScheduledEvent, bool) {
2718	return nil, false
2719}
2720
2721// AsFabricEvent is the BasicFabricEvent implementation for ApplicationHealthReportExpiredEvent.
2722func (ahree ApplicationHealthReportExpiredEvent) AsFabricEvent() (*FabricEvent, bool) {
2723	return nil, false
2724}
2725
2726// AsBasicFabricEvent is the BasicFabricEvent implementation for ApplicationHealthReportExpiredEvent.
2727func (ahree ApplicationHealthReportExpiredEvent) AsBasicFabricEvent() (BasicFabricEvent, bool) {
2728	return &ahree, true
2729}
2730
2731// ApplicationHealthState represents the health state of an application, which contains the application
2732// identifier and the aggregated health state.
2733type ApplicationHealthState struct {
2734	// Name - The name of the application, including the 'fabric:' URI scheme.
2735	Name *string `json:"Name,omitempty"`
2736	// 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'
2737	AggregatedHealthState HealthState `json:"AggregatedHealthState,omitempty"`
2738}
2739
2740// ApplicationHealthStateChunk represents the health state chunk of a application.
2741// The application health state chunk contains the application name, its aggregated health state and any
2742// children services and deployed applications that respect the filters in cluster health chunk query
2743// description.
2744type ApplicationHealthStateChunk struct {
2745	// ApplicationName - The name of the application, including the 'fabric:' URI scheme.
2746	ApplicationName *string `json:"ApplicationName,omitempty"`
2747	// ApplicationTypeName - The application type name as defined in the application manifest.
2748	ApplicationTypeName *string `json:"ApplicationTypeName,omitempty"`
2749	// ServiceHealthStateChunks - The list of service health state chunks in the cluster that respect the filters in the cluster health chunk query description.
2750	ServiceHealthStateChunks *ServiceHealthStateChunkList `json:"ServiceHealthStateChunks,omitempty"`
2751	// DeployedApplicationHealthStateChunks - The list of deployed application health state chunks in the cluster that respect the filters in the cluster health chunk query description.
2752	DeployedApplicationHealthStateChunks *DeployedApplicationHealthStateChunkList `json:"DeployedApplicationHealthStateChunks,omitempty"`
2753	// 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'
2754	HealthState HealthState `json:"HealthState,omitempty"`
2755}
2756
2757// ApplicationHealthStateChunkList the list of application health state chunks in the cluster that respect
2758// the input filters in the chunk query. Returned by get cluster health state chunks query.
2759type ApplicationHealthStateChunkList struct {
2760	// Items - The list of application health state chunks that respect the input filters in the chunk query.
2761	Items *[]ApplicationHealthStateChunk `json:"Items,omitempty"`
2762	// TotalCount - Total number of entity health state objects that match the specified filters from the cluster health chunk query description.
2763	TotalCount *int64 `json:"TotalCount,omitempty"`
2764}
2765
2766// ApplicationHealthStateFilter defines matching criteria to determine whether a application should be
2767// included in the cluster health chunk.
2768// One filter can match zero, one or multiple applications, depending on its properties.
2769type ApplicationHealthStateFilter struct {
2770	// 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.
2771	// If the application doesn't exist, no application is returned in the cluster health chunk based on this filter.
2772	// If the application exists, it is included in the cluster health chunk if it respects the other filter properties.
2773	// If not specified, all applications are matched against the other filter members, like health state filter.
2774	ApplicationNameFilter *string `json:"ApplicationNameFilter,omitempty"`
2775	// ApplicationTypeNameFilter - The name of the application type that matches the filter.
2776	// If specified, the filter is applied only to applications of the selected application type, if any exists.
2777	// If no applications of the specified application type exists, no application is returned in the cluster health chunk based on this filter.
2778	// Each application of the specified application type is included in the cluster health chunk if it respects the other filter properties.
2779	// If not specified, all applications are matched against the other filter members, like health state filter.
2780	ApplicationTypeNameFilter *string `json:"ApplicationTypeNameFilter,omitempty"`
2781	// HealthStateFilter - The filter for the health state of the applications. It allows selecting applications if they match the desired health states.
2782	// 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.
2783	// 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.
2784	// The state values are flag-based enumeration, so the value could be a combination of these values obtained using bitwise 'OR' operator.
2785	// For example, if the provided value is 6, it matches applications with HealthState value of OK (2) and Warning (4).
2786	// - Default - Default value. Matches any HealthState. The value is zero.
2787	// - 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.
2788	// - Ok - Filter that matches input with HealthState value Ok. The value is 2.
2789	// - Warning - Filter that matches input with HealthState value Warning. The value is 4.
2790	// - Error - Filter that matches input with HealthState value Error. The value is 8.
2791	// - All - Filter that matches input with any HealthState value. The value is 65535.
2792	HealthStateFilter *int32 `json:"HealthStateFilter,omitempty"`
2793	// 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.
2794	// 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.
2795	// The application filter may specify multiple service filters.
2796	// 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.
2797	ServiceFilters *[]ServiceHealthStateFilter `json:"ServiceFilters,omitempty"`
2798	// 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.
2799	// 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.
2800	// The application filter may specify multiple deployed application filters.
2801	// 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.
2802	DeployedApplicationFilters *[]DeployedApplicationHealthStateFilter `json:"DeployedApplicationFilters,omitempty"`
2803}
2804
2805// ApplicationInfo information about a Service Fabric application.
2806type ApplicationInfo struct {
2807	autorest.Response `json:"-"`
2808	// 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.
2809	// Starting in version 6.0, hierarchical names are delimited with the "\~" character. For example, if the application name is "fabric:/myapp/app1",
2810	// the application identity would be "myapp\~app1" in 6.0+ and "myapp/app1" in previous versions.
2811	ID *string `json:"Id,omitempty"`
2812	// Name - The name of the application, including the 'fabric:' URI scheme.
2813	Name *string `json:"Name,omitempty"`
2814	// TypeName - The application type name as defined in the application manifest.
2815	TypeName *string `json:"TypeName,omitempty"`
2816	// TypeVersion - The version of the application type as defined in the application manifest.
2817	TypeVersion *string `json:"TypeVersion,omitempty"`
2818	// Status - The status of the application. Possible values include: 'ApplicationStatusInvalid', 'ApplicationStatusReady', 'ApplicationStatusUpgrading', 'ApplicationStatusCreating', 'ApplicationStatusDeleting', 'ApplicationStatusFailed'
2819	Status ApplicationStatus `json:"Status,omitempty"`
2820	// Parameters - List of application parameters with overridden values from their default values specified in the application manifest.
2821	Parameters *[]ApplicationParameter `json:"Parameters,omitempty"`
2822	// 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'
2823	HealthState HealthState `json:"HealthState,omitempty"`
2824	// ApplicationDefinitionKind - The mechanism used to define a Service Fabric application. Possible values include: 'Invalid', 'ServiceFabricApplicationDescription', 'Compose'
2825	ApplicationDefinitionKind ApplicationDefinitionKind `json:"ApplicationDefinitionKind,omitempty"`
2826}
2827
2828// ApplicationLoadInfo load Information about a Service Fabric application.
2829type ApplicationLoadInfo struct {
2830	autorest.Response `json:"-"`
2831	// 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.
2832	// Starting in version 6.0, hierarchical names are delimited with the "\~" character. For example, if the application name is "fabric:/myapp/app1",
2833	// the application identity would be "myapp\~app1" in 6.0+ and "myapp/app1" in previous versions.
2834	ID *string `json:"Id,omitempty"`
2835	// MinimumNodes - The minimum number of nodes for this application.
2836	// It is the number of nodes where Service Fabric will reserve Capacity in the cluster which equals to ReservedLoad * MinimumNodes for this Application instance.
2837	// For applications that do not have application capacity defined this value will be zero.
2838	MinimumNodes *int64 `json:"MinimumNodes,omitempty"`
2839	// MaximumNodes - The maximum number of nodes where this application can be instantiated.
2840	// It is the number of nodes this application is allowed to span.
2841	// For applications that do not have application capacity defined this value will be zero.
2842	MaximumNodes *int64 `json:"MaximumNodes,omitempty"`
2843	// NodeCount - The number of nodes on which this application is instantiated.
2844	// For applications that do not have application capacity defined this value will be zero.
2845	NodeCount *int64 `json:"NodeCount,omitempty"`
2846	// ApplicationLoadMetricInformation - List of application capacity metric description.
2847	ApplicationLoadMetricInformation *[]ApplicationMetricDescription `json:"ApplicationLoadMetricInformation,omitempty"`
2848}
2849
2850// ApplicationMetricDescription describes capacity information for a custom resource balancing metric. This
2851// can be used to limit the total consumption of this metric by the services of this application.
2852type ApplicationMetricDescription struct {
2853	// Name - The name of the metric.
2854	Name *string `json:"Name,omitempty"`
2855	// MaximumCapacity - The maximum node capacity for Service Fabric application.
2856	// 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.
2857	// If set to zero, capacity for this metric is unlimited on each node.
2858	// 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.
2859	// When updating existing application with application capacity, the product of MaximumNodes and this value must always be smaller than or equal to TotalApplicationCapacity.
2860	MaximumCapacity *int64 `json:"MaximumCapacity,omitempty"`
2861	// ReservationCapacity - The node reservation capacity for Service Fabric application.
2862	// This is the amount of load which is reserved on nodes which have instances of this application.
2863	// If MinimumNodes is specified, then the product of these values will be the capacity reserved in the cluster for the application.
2864	// If set to zero, no capacity is reserved for this metric.
2865	// When setting application capacity or when updating application capacity; this value must be smaller than or equal to MaximumCapacity for each metric.
2866	ReservationCapacity *int64 `json:"ReservationCapacity,omitempty"`
2867	// TotalApplicationCapacity - The total metric capacity for Service Fabric application.
2868	// 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.
2869	// 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.
2870	TotalApplicationCapacity *int64 `json:"TotalApplicationCapacity,omitempty"`
2871}
2872
2873// ApplicationNameInfo information about the application name.
2874type ApplicationNameInfo struct {
2875	autorest.Response `json:"-"`
2876	// 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.
2877	// Starting in version 6.0, hierarchical names are delimited with the "\~" character. For example, if the application name is "fabric:/myapp/app1",
2878	// the application identity would be "myapp\~app1" in 6.0+ and "myapp/app1" in previous versions.
2879	ID *string `json:"Id,omitempty"`
2880	// Name - The name of the application, including the 'fabric:' URI scheme.
2881	Name *string `json:"Name,omitempty"`
2882}
2883
2884// ApplicationNewHealthReportEvent application Health Report Created event.
2885type ApplicationNewHealthReportEvent struct {
2886	// ApplicationInstanceID - Id of Application instance.
2887	ApplicationInstanceID *int64 `json:"ApplicationInstanceId,omitempty"`
2888	// SourceID - Id of report source.
2889	SourceID *string `json:"SourceId,omitempty"`
2890	// Property - Describes the property.
2891	Property *string `json:"Property,omitempty"`
2892	// HealthState - Describes the property health state.
2893	HealthState *string `json:"HealthState,omitempty"`
2894	// TimeToLiveMs - Time to live in milli-seconds.
2895	TimeToLiveMs *int64 `json:"TimeToLiveMs,omitempty"`
2896	// SequenceNumber - Sequence number of report.
2897	SequenceNumber *int64 `json:"SequenceNumber,omitempty"`
2898	// Description - Description of report.
2899	Description *string `json:"Description,omitempty"`
2900	// RemoveWhenExpired - Indicates the removal when it expires.
2901	RemoveWhenExpired *bool `json:"RemoveWhenExpired,omitempty"`
2902	// SourceUtcTimestamp - Source time.
2903	SourceUtcTimestamp *date.Time `json:"SourceUtcTimestamp,omitempty"`
2904	// 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.
2905	// Starting in version 6.0, hierarchical names are delimited with the "\~" character. For example, if the application name is "fabric:/myapp/app1",
2906	// the application identity would be "myapp\~app1" in 6.0+ and "myapp/app1" in previous versions.
2907	ApplicationID *string `json:"ApplicationId,omitempty"`
2908	// EventInstanceID - The identifier for the FabricEvent instance.
2909	EventInstanceID *uuid.UUID `json:"EventInstanceId,omitempty"`
2910	// Category - The category of event.
2911	Category *string `json:"Category,omitempty"`
2912	// TimeStamp - The time event was logged.
2913	TimeStamp *date.Time `json:"TimeStamp,omitempty"`
2914	// HasCorrelatedEvents - Shows there is existing related events available.
2915	HasCorrelatedEvents *bool `json:"HasCorrelatedEvents,omitempty"`
2916	// 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'
2917	Kind KindBasicFabricEvent `json:"Kind,omitempty"`
2918}
2919
2920// MarshalJSON is the custom marshaler for ApplicationNewHealthReportEvent.
2921func (anhre ApplicationNewHealthReportEvent) MarshalJSON() ([]byte, error) {
2922	anhre.Kind = KindApplicationNewHealthReport
2923	objectMap := make(map[string]interface{})
2924	if anhre.ApplicationInstanceID != nil {
2925		objectMap["ApplicationInstanceId"] = anhre.ApplicationInstanceID
2926	}
2927	if anhre.SourceID != nil {
2928		objectMap["SourceId"] = anhre.SourceID
2929	}
2930	if anhre.Property != nil {
2931		objectMap["Property"] = anhre.Property
2932	}
2933	if anhre.HealthState != nil {
2934		objectMap["HealthState"] = anhre.HealthState
2935	}
2936	if anhre.TimeToLiveMs != nil {
2937		objectMap["TimeToLiveMs"] = anhre.TimeToLiveMs
2938	}
2939	if anhre.SequenceNumber != nil {
2940		objectMap["SequenceNumber"] = anhre.SequenceNumber
2941	}
2942	if anhre.Description != nil {
2943		objectMap["Description"] = anhre.Description
2944	}
2945	if anhre.RemoveWhenExpired != nil {
2946		objectMap["RemoveWhenExpired"] = anhre.RemoveWhenExpired
2947	}
2948	if anhre.SourceUtcTimestamp != nil {
2949		objectMap["SourceUtcTimestamp"] = anhre.SourceUtcTimestamp
2950	}
2951	if anhre.ApplicationID != nil {
2952		objectMap["ApplicationId"] = anhre.ApplicationID
2953	}
2954	if anhre.EventInstanceID != nil {
2955		objectMap["EventInstanceId"] = anhre.EventInstanceID
2956	}
2957	if anhre.Category != nil {
2958		objectMap["Category"] = anhre.Category
2959	}
2960	if anhre.TimeStamp != nil {
2961		objectMap["TimeStamp"] = anhre.TimeStamp
2962	}
2963	if anhre.HasCorrelatedEvents != nil {
2964		objectMap["HasCorrelatedEvents"] = anhre.HasCorrelatedEvents
2965	}
2966	if anhre.Kind != "" {
2967		objectMap["Kind"] = anhre.Kind
2968	}
2969	return json.Marshal(objectMap)
2970}
2971
2972// AsApplicationEvent is the BasicFabricEvent implementation for ApplicationNewHealthReportEvent.
2973func (anhre ApplicationNewHealthReportEvent) AsApplicationEvent() (*ApplicationEvent, bool) {
2974	return nil, false
2975}
2976
2977// AsBasicApplicationEvent is the BasicFabricEvent implementation for ApplicationNewHealthReportEvent.
2978func (anhre ApplicationNewHealthReportEvent) AsBasicApplicationEvent() (BasicApplicationEvent, bool) {
2979	return &anhre, true
2980}
2981
2982// AsClusterEvent is the BasicFabricEvent implementation for ApplicationNewHealthReportEvent.
2983func (anhre ApplicationNewHealthReportEvent) AsClusterEvent() (*ClusterEvent, bool) {
2984	return nil, false
2985}
2986
2987// AsBasicClusterEvent is the BasicFabricEvent implementation for ApplicationNewHealthReportEvent.
2988func (anhre ApplicationNewHealthReportEvent) AsBasicClusterEvent() (BasicClusterEvent, bool) {
2989	return nil, false
2990}
2991
2992// AsContainerInstanceEvent is the BasicFabricEvent implementation for ApplicationNewHealthReportEvent.
2993func (anhre ApplicationNewHealthReportEvent) AsContainerInstanceEvent() (*ContainerInstanceEvent, bool) {
2994	return nil, false
2995}
2996
2997// AsNodeEvent is the BasicFabricEvent implementation for ApplicationNewHealthReportEvent.
2998func (anhre ApplicationNewHealthReportEvent) AsNodeEvent() (*NodeEvent, bool) {
2999	return nil, false
3000}
3001
3002// AsBasicNodeEvent is the BasicFabricEvent implementation for ApplicationNewHealthReportEvent.
3003func (anhre ApplicationNewHealthReportEvent) AsBasicNodeEvent() (BasicNodeEvent, bool) {
3004	return nil, false
3005}
3006
3007// AsPartitionAnalysisEvent is the BasicFabricEvent implementation for ApplicationNewHealthReportEvent.
3008func (anhre ApplicationNewHealthReportEvent) AsPartitionAnalysisEvent() (*PartitionAnalysisEvent, bool) {
3009	return nil, false
3010}
3011
3012// AsBasicPartitionAnalysisEvent is the BasicFabricEvent implementation for ApplicationNewHealthReportEvent.
3013func (anhre ApplicationNewHealthReportEvent) AsBasicPartitionAnalysisEvent() (BasicPartitionAnalysisEvent, bool) {
3014	return nil, false
3015}
3016
3017// AsPartitionEvent is the BasicFabricEvent implementation for ApplicationNewHealthReportEvent.
3018func (anhre ApplicationNewHealthReportEvent) AsPartitionEvent() (*PartitionEvent, bool) {
3019	return nil, false
3020}
3021
3022// AsBasicPartitionEvent is the BasicFabricEvent implementation for ApplicationNewHealthReportEvent.
3023func (anhre ApplicationNewHealthReportEvent) AsBasicPartitionEvent() (BasicPartitionEvent, bool) {
3024	return nil, false
3025}
3026
3027// AsReplicaEvent is the BasicFabricEvent implementation for ApplicationNewHealthReportEvent.
3028func (anhre ApplicationNewHealthReportEvent) AsReplicaEvent() (*ReplicaEvent, bool) {
3029	return nil, false
3030}
3031
3032// AsBasicReplicaEvent is the BasicFabricEvent implementation for ApplicationNewHealthReportEvent.
3033func (anhre ApplicationNewHealthReportEvent) AsBasicReplicaEvent() (BasicReplicaEvent, bool) {
3034	return nil, false
3035}
3036
3037// AsServiceEvent is the BasicFabricEvent implementation for ApplicationNewHealthReportEvent.
3038func (anhre ApplicationNewHealthReportEvent) AsServiceEvent() (*ServiceEvent, bool) {
3039	return nil, false
3040}
3041
3042// AsBasicServiceEvent is the BasicFabricEvent implementation for ApplicationNewHealthReportEvent.
3043func (anhre ApplicationNewHealthReportEvent) AsBasicServiceEvent() (BasicServiceEvent, bool) {
3044	return nil, false
3045}
3046
3047// AsApplicationCreatedEvent is the BasicFabricEvent implementation for ApplicationNewHealthReportEvent.
3048func (anhre ApplicationNewHealthReportEvent) AsApplicationCreatedEvent() (*ApplicationCreatedEvent, bool) {
3049	return nil, false
3050}
3051
3052// AsApplicationDeletedEvent is the BasicFabricEvent implementation for ApplicationNewHealthReportEvent.
3053func (anhre ApplicationNewHealthReportEvent) AsApplicationDeletedEvent() (*ApplicationDeletedEvent, bool) {
3054	return nil, false
3055}
3056
3057// AsApplicationNewHealthReportEvent is the BasicFabricEvent implementation for ApplicationNewHealthReportEvent.
3058func (anhre ApplicationNewHealthReportEvent) AsApplicationNewHealthReportEvent() (*ApplicationNewHealthReportEvent, bool) {
3059	return &anhre, true
3060}
3061
3062// AsApplicationHealthReportExpiredEvent is the BasicFabricEvent implementation for ApplicationNewHealthReportEvent.
3063func (anhre ApplicationNewHealthReportEvent) AsApplicationHealthReportExpiredEvent() (*ApplicationHealthReportExpiredEvent, bool) {
3064	return nil, false
3065}
3066
3067// AsApplicationUpgradeCompletedEvent is the BasicFabricEvent implementation for ApplicationNewHealthReportEvent.
3068func (anhre ApplicationNewHealthReportEvent) AsApplicationUpgradeCompletedEvent() (*ApplicationUpgradeCompletedEvent, bool) {
3069	return nil, false
3070}
3071
3072// AsApplicationUpgradeDomainCompletedEvent is the BasicFabricEvent implementation for ApplicationNewHealthReportEvent.
3073func (anhre ApplicationNewHealthReportEvent) AsApplicationUpgradeDomainCompletedEvent() (*ApplicationUpgradeDomainCompletedEvent, bool) {
3074	return nil, false
3075}
3076
3077// AsApplicationUpgradeRollbackCompletedEvent is the BasicFabricEvent implementation for ApplicationNewHealthReportEvent.
3078func (anhre ApplicationNewHealthReportEvent) AsApplicationUpgradeRollbackCompletedEvent() (*ApplicationUpgradeRollbackCompletedEvent, bool) {
3079	return nil, false
3080}
3081
3082// AsApplicationUpgradeRollbackStartedEvent is the BasicFabricEvent implementation for ApplicationNewHealthReportEvent.
3083func (anhre ApplicationNewHealthReportEvent) AsApplicationUpgradeRollbackStartedEvent() (*ApplicationUpgradeRollbackStartedEvent, bool) {
3084	return nil, false
3085}
3086
3087// AsApplicationUpgradeStartedEvent is the BasicFabricEvent implementation for ApplicationNewHealthReportEvent.
3088func (anhre ApplicationNewHealthReportEvent) AsApplicationUpgradeStartedEvent() (*ApplicationUpgradeStartedEvent, bool) {
3089	return nil, false
3090}
3091
3092// AsDeployedApplicationNewHealthReportEvent is the BasicFabricEvent implementation for ApplicationNewHealthReportEvent.
3093func (anhre ApplicationNewHealthReportEvent) AsDeployedApplicationNewHealthReportEvent() (*DeployedApplicationNewHealthReportEvent, bool) {
3094	return nil, false
3095}
3096
3097// AsDeployedApplicationHealthReportExpiredEvent is the BasicFabricEvent implementation for ApplicationNewHealthReportEvent.
3098func (anhre ApplicationNewHealthReportEvent) AsDeployedApplicationHealthReportExpiredEvent() (*DeployedApplicationHealthReportExpiredEvent, bool) {
3099	return nil, false
3100}
3101
3102// AsApplicationProcessExitedEvent is the BasicFabricEvent implementation for ApplicationNewHealthReportEvent.
3103func (anhre ApplicationNewHealthReportEvent) AsApplicationProcessExitedEvent() (*ApplicationProcessExitedEvent, bool) {
3104	return nil, false
3105}
3106
3107// AsApplicationContainerInstanceExitedEvent is the BasicFabricEvent implementation for ApplicationNewHealthReportEvent.
3108func (anhre ApplicationNewHealthReportEvent) AsApplicationContainerInstanceExitedEvent() (*ApplicationContainerInstanceExitedEvent, bool) {
3109	return nil, false
3110}
3111
3112// AsNodeAbortedEvent is the BasicFabricEvent implementation for ApplicationNewHealthReportEvent.
3113func (anhre ApplicationNewHealthReportEvent) AsNodeAbortedEvent() (*NodeAbortedEvent, bool) {
3114	return nil, false
3115}
3116
3117// AsNodeAddedToClusterEvent is the BasicFabricEvent implementation for ApplicationNewHealthReportEvent.
3118func (anhre ApplicationNewHealthReportEvent) AsNodeAddedToClusterEvent() (*NodeAddedToClusterEvent, bool) {
3119	return nil, false
3120}
3121
3122// AsNodeClosedEvent is the BasicFabricEvent implementation for ApplicationNewHealthReportEvent.
3123func (anhre ApplicationNewHealthReportEvent) AsNodeClosedEvent() (*NodeClosedEvent, bool) {
3124	return nil, false
3125}
3126
3127// AsNodeDeactivateCompletedEvent is the BasicFabricEvent implementation for ApplicationNewHealthReportEvent.
3128func (anhre ApplicationNewHealthReportEvent) AsNodeDeactivateCompletedEvent() (*NodeDeactivateCompletedEvent, bool) {
3129	return nil, false
3130}
3131
3132// AsNodeDeactivateStartedEvent is the BasicFabricEvent implementation for ApplicationNewHealthReportEvent.
3133func (anhre ApplicationNewHealthReportEvent) AsNodeDeactivateStartedEvent() (*NodeDeactivateStartedEvent, bool) {
3134	return nil, false
3135}
3136
3137// AsNodeDownEvent is the BasicFabricEvent implementation for ApplicationNewHealthReportEvent.
3138func (anhre ApplicationNewHealthReportEvent) AsNodeDownEvent() (*NodeDownEvent, bool) {
3139	return nil, false
3140}
3141
3142// AsNodeNewHealthReportEvent is the BasicFabricEvent implementation for ApplicationNewHealthReportEvent.
3143func (anhre ApplicationNewHealthReportEvent) AsNodeNewHealthReportEvent() (*NodeNewHealthReportEvent, bool) {
3144	return nil, false
3145}
3146
3147// AsNodeHealthReportExpiredEvent is the BasicFabricEvent implementation for ApplicationNewHealthReportEvent.
3148func (anhre ApplicationNewHealthReportEvent) AsNodeHealthReportExpiredEvent() (*NodeHealthReportExpiredEvent, bool) {
3149	return nil, false
3150}
3151
3152// AsNodeOpenSucceededEvent is the BasicFabricEvent implementation for ApplicationNewHealthReportEvent.
3153func (anhre ApplicationNewHealthReportEvent) AsNodeOpenSucceededEvent() (*NodeOpenSucceededEvent, bool) {
3154	return nil, false
3155}
3156
3157// AsNodeOpenFailedEvent is the BasicFabricEvent implementation for ApplicationNewHealthReportEvent.
3158func (anhre ApplicationNewHealthReportEvent) AsNodeOpenFailedEvent() (*NodeOpenFailedEvent, bool) {
3159	return nil, false
3160}
3161
3162// AsNodeRemovedFromClusterEvent is the BasicFabricEvent implementation for ApplicationNewHealthReportEvent.
3163func (anhre ApplicationNewHealthReportEvent) AsNodeRemovedFromClusterEvent() (*NodeRemovedFromClusterEvent, bool) {
3164	return nil, false
3165}
3166
3167// AsNodeUpEvent is the BasicFabricEvent implementation for ApplicationNewHealthReportEvent.
3168func (anhre ApplicationNewHealthReportEvent) AsNodeUpEvent() (*NodeUpEvent, bool) {
3169	return nil, false
3170}
3171
3172// AsPartitionNewHealthReportEvent is the BasicFabricEvent implementation for ApplicationNewHealthReportEvent.
3173func (anhre ApplicationNewHealthReportEvent) AsPartitionNewHealthReportEvent() (*PartitionNewHealthReportEvent, bool) {
3174	return nil, false
3175}
3176
3177// AsPartitionHealthReportExpiredEvent is the BasicFabricEvent implementation for ApplicationNewHealthReportEvent.
3178func (anhre ApplicationNewHealthReportEvent) AsPartitionHealthReportExpiredEvent() (*PartitionHealthReportExpiredEvent, bool) {
3179	return nil, false
3180}
3181
3182// AsPartitionReconfiguredEvent is the BasicFabricEvent implementation for ApplicationNewHealthReportEvent.
3183func (anhre ApplicationNewHealthReportEvent) AsPartitionReconfiguredEvent() (*PartitionReconfiguredEvent, bool) {
3184	return nil, false
3185}
3186
3187// AsPartitionPrimaryMoveAnalysisEvent is the BasicFabricEvent implementation for ApplicationNewHealthReportEvent.
3188func (anhre ApplicationNewHealthReportEvent) AsPartitionPrimaryMoveAnalysisEvent() (*PartitionPrimaryMoveAnalysisEvent, bool) {
3189	return nil, false
3190}
3191
3192// AsServiceCreatedEvent is the BasicFabricEvent implementation for ApplicationNewHealthReportEvent.
3193func (anhre ApplicationNewHealthReportEvent) AsServiceCreatedEvent() (*ServiceCreatedEvent, bool) {
3194	return nil, false
3195}
3196
3197// AsServiceDeletedEvent is the BasicFabricEvent implementation for ApplicationNewHealthReportEvent.
3198func (anhre ApplicationNewHealthReportEvent) AsServiceDeletedEvent() (*ServiceDeletedEvent, bool) {
3199	return nil, false
3200}
3201
3202// AsServiceNewHealthReportEvent is the BasicFabricEvent implementation for ApplicationNewHealthReportEvent.
3203func (anhre ApplicationNewHealthReportEvent) AsServiceNewHealthReportEvent() (*ServiceNewHealthReportEvent, bool) {
3204	return nil, false
3205}
3206
3207// AsServiceHealthReportExpiredEvent is the BasicFabricEvent implementation for ApplicationNewHealthReportEvent.
3208func (anhre ApplicationNewHealthReportEvent) AsServiceHealthReportExpiredEvent() (*ServiceHealthReportExpiredEvent, bool) {
3209	return nil, false
3210}
3211
3212// AsDeployedServicePackageNewHealthReportEvent is the BasicFabricEvent implementation for ApplicationNewHealthReportEvent.
3213func (anhre ApplicationNewHealthReportEvent) AsDeployedServicePackageNewHealthReportEvent() (*DeployedServicePackageNewHealthReportEvent, bool) {
3214	return nil, false
3215}
3216
3217// AsDeployedServicePackageHealthReportExpiredEvent is the BasicFabricEvent implementation for ApplicationNewHealthReportEvent.
3218func (anhre ApplicationNewHealthReportEvent) AsDeployedServicePackageHealthReportExpiredEvent() (*DeployedServicePackageHealthReportExpiredEvent, bool) {
3219	return nil, false
3220}
3221
3222// AsStatefulReplicaNewHealthReportEvent is the BasicFabricEvent implementation for ApplicationNewHealthReportEvent.
3223func (anhre ApplicationNewHealthReportEvent) AsStatefulReplicaNewHealthReportEvent() (*StatefulReplicaNewHealthReportEvent, bool) {
3224	return nil, false
3225}
3226
3227// AsStatefulReplicaHealthReportExpiredEvent is the BasicFabricEvent implementation for ApplicationNewHealthReportEvent.
3228func (anhre ApplicationNewHealthReportEvent) AsStatefulReplicaHealthReportExpiredEvent() (*StatefulReplicaHealthReportExpiredEvent, bool) {
3229	return nil, false
3230}
3231
3232// AsStatelessReplicaNewHealthReportEvent is the BasicFabricEvent implementation for ApplicationNewHealthReportEvent.
3233func (anhre ApplicationNewHealthReportEvent) AsStatelessReplicaNewHealthReportEvent() (*StatelessReplicaNewHealthReportEvent, bool) {
3234	return nil, false
3235}
3236
3237// AsStatelessReplicaHealthReportExpiredEvent is the BasicFabricEvent implementation for ApplicationNewHealthReportEvent.
3238func (anhre ApplicationNewHealthReportEvent) AsStatelessReplicaHealthReportExpiredEvent() (*StatelessReplicaHealthReportExpiredEvent, bool) {
3239	return nil, false
3240}
3241
3242// AsClusterNewHealthReportEvent is the BasicFabricEvent implementation for ApplicationNewHealthReportEvent.
3243func (anhre ApplicationNewHealthReportEvent) AsClusterNewHealthReportEvent() (*ClusterNewHealthReportEvent, bool) {
3244	return nil, false
3245}
3246
3247// AsClusterHealthReportExpiredEvent is the BasicFabricEvent implementation for ApplicationNewHealthReportEvent.
3248func (anhre ApplicationNewHealthReportEvent) AsClusterHealthReportExpiredEvent() (*ClusterHealthReportExpiredEvent, bool) {
3249	return nil, false
3250}
3251
3252// AsClusterUpgradeCompletedEvent is the BasicFabricEvent implementation for ApplicationNewHealthReportEvent.
3253func (anhre ApplicationNewHealthReportEvent) AsClusterUpgradeCompletedEvent() (*ClusterUpgradeCompletedEvent, bool) {
3254	return nil, false
3255}
3256
3257// AsClusterUpgradeDomainCompletedEvent is the BasicFabricEvent implementation for ApplicationNewHealthReportEvent.
3258func (anhre ApplicationNewHealthReportEvent) AsClusterUpgradeDomainCompletedEvent() (*ClusterUpgradeDomainCompletedEvent, bool) {
3259	return nil, false
3260}
3261
3262// AsClusterUpgradeRollbackCompletedEvent is the BasicFabricEvent implementation for ApplicationNewHealthReportEvent.
3263func (anhre ApplicationNewHealthReportEvent) AsClusterUpgradeRollbackCompletedEvent() (*ClusterUpgradeRollbackCompletedEvent, bool) {
3264	return nil, false
3265}
3266
3267// AsClusterUpgradeRollbackStartedEvent is the BasicFabricEvent implementation for ApplicationNewHealthReportEvent.
3268func (anhre ApplicationNewHealthReportEvent) AsClusterUpgradeRollbackStartedEvent() (*ClusterUpgradeRollbackStartedEvent, bool) {
3269	return nil, false
3270}
3271
3272// AsClusterUpgradeStartedEvent is the BasicFabricEvent implementation for ApplicationNewHealthReportEvent.
3273func (anhre ApplicationNewHealthReportEvent) AsClusterUpgradeStartedEvent() (*ClusterUpgradeStartedEvent, bool) {
3274	return nil, false
3275}
3276
3277// AsChaosStoppedEvent is the BasicFabricEvent implementation for ApplicationNewHealthReportEvent.
3278func (anhre ApplicationNewHealthReportEvent) AsChaosStoppedEvent() (*ChaosStoppedEvent, bool) {
3279	return nil, false
3280}
3281
3282// AsChaosStartedEvent is the BasicFabricEvent implementation for ApplicationNewHealthReportEvent.
3283func (anhre ApplicationNewHealthReportEvent) AsChaosStartedEvent() (*ChaosStartedEvent, bool) {
3284	return nil, false
3285}
3286
3287// AsChaosCodePackageRestartScheduledEvent is the BasicFabricEvent implementation for ApplicationNewHealthReportEvent.
3288func (anhre ApplicationNewHealthReportEvent) AsChaosCodePackageRestartScheduledEvent() (*ChaosCodePackageRestartScheduledEvent, bool) {
3289	return nil, false
3290}
3291
3292// AsChaosReplicaRemovalScheduledEvent is the BasicFabricEvent implementation for ApplicationNewHealthReportEvent.
3293func (anhre ApplicationNewHealthReportEvent) AsChaosReplicaRemovalScheduledEvent() (*ChaosReplicaRemovalScheduledEvent, bool) {
3294	return nil, false
3295}
3296
3297// AsChaosPartitionSecondaryMoveScheduledEvent is the BasicFabricEvent implementation for ApplicationNewHealthReportEvent.
3298func (anhre ApplicationNewHealthReportEvent) AsChaosPartitionSecondaryMoveScheduledEvent() (*ChaosPartitionSecondaryMoveScheduledEvent, bool) {
3299	return nil, false
3300}
3301
3302// AsChaosPartitionPrimaryMoveScheduledEvent is the BasicFabricEvent implementation for ApplicationNewHealthReportEvent.
3303func (anhre ApplicationNewHealthReportEvent) AsChaosPartitionPrimaryMoveScheduledEvent() (*ChaosPartitionPrimaryMoveScheduledEvent, bool) {
3304	return nil, false
3305}
3306
3307// AsChaosReplicaRestartScheduledEvent is the BasicFabricEvent implementation for ApplicationNewHealthReportEvent.
3308func (anhre ApplicationNewHealthReportEvent) AsChaosReplicaRestartScheduledEvent() (*ChaosReplicaRestartScheduledEvent, bool) {
3309	return nil, false
3310}
3311
3312// AsChaosNodeRestartScheduledEvent is the BasicFabricEvent implementation for ApplicationNewHealthReportEvent.
3313func (anhre ApplicationNewHealthReportEvent) AsChaosNodeRestartScheduledEvent() (*ChaosNodeRestartScheduledEvent, bool) {
3314	return nil, false
3315}
3316
3317// AsFabricEvent is the BasicFabricEvent implementation for ApplicationNewHealthReportEvent.
3318func (anhre ApplicationNewHealthReportEvent) AsFabricEvent() (*FabricEvent, bool) {
3319	return nil, false
3320}
3321
3322// AsBasicFabricEvent is the BasicFabricEvent implementation for ApplicationNewHealthReportEvent.
3323func (anhre ApplicationNewHealthReportEvent) AsBasicFabricEvent() (BasicFabricEvent, bool) {
3324	return &anhre, true
3325}
3326
3327// ApplicationParameter describes an application parameter override to be applied when creating or
3328// upgrading an application.
3329type ApplicationParameter struct {
3330	// Key - The name of the parameter.
3331	Key *string `json:"Key,omitempty"`
3332	// Value - The value of the parameter.
3333	Value *string `json:"Value,omitempty"`
3334}
3335
3336// ApplicationProcessExitedEvent process Exited event.
3337type ApplicationProcessExitedEvent struct {
3338	// ServiceName - Name of Service.
3339	ServiceName *string `json:"ServiceName,omitempty"`
3340	// ServicePackageName - Name of Service package.
3341	ServicePackageName *string `json:"ServicePackageName,omitempty"`
3342	// ServicePackageActivationID - Activation Id of Service package.
3343	ServicePackageActivationID *string `json:"ServicePackageActivationId,omitempty"`
3344	// IsExclusive - Indicates IsExclusive flag.
3345	IsExclusive *bool `json:"IsExclusive,omitempty"`
3346	// CodePackageName - Name of Code package.
3347	CodePackageName *string `json:"CodePackageName,omitempty"`
3348	// EntryPointType - Type of EntryPoint.
3349	EntryPointType *string `json:"EntryPointType,omitempty"`
3350	// ExeName - Name of executable.
3351	ExeName *string `json:"ExeName,omitempty"`
3352	// ProcessID - Process Id.
3353	ProcessID *int64 `json:"ProcessId,omitempty"`
3354	// HostID - Host Id.
3355	HostID *string `json:"HostId,omitempty"`
3356	// ExitCode - Exit code of process.
3357	ExitCode *int64 `json:"ExitCode,omitempty"`
3358	// UnexpectedTermination - Indicates if termination is unexpected.
3359	UnexpectedTermination *bool `json:"UnexpectedTermination,omitempty"`
3360	// StartTime - Start time of process.
3361	StartTime *date.Time `json:"StartTime,omitempty"`
3362	// 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.
3363	// Starting in version 6.0, hierarchical names are delimited with the "\~" character. For example, if the application name is "fabric:/myapp/app1",
3364	// the application identity would be "myapp\~app1" in 6.0+ and "myapp/app1" in previous versions.
3365	ApplicationID *string `json:"ApplicationId,omitempty"`
3366	// EventInstanceID - The identifier for the FabricEvent instance.
3367	EventInstanceID *uuid.UUID `json:"EventInstanceId,omitempty"`
3368	// Category - The category of event.
3369	Category *string `json:"Category,omitempty"`
3370	// TimeStamp - The time event was logged.
3371	TimeStamp *date.Time `json:"TimeStamp,omitempty"`
3372	// HasCorrelatedEvents - Shows there is existing related events available.
3373	HasCorrelatedEvents *bool `json:"HasCorrelatedEvents,omitempty"`
3374	// 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'
3375	Kind KindBasicFabricEvent `json:"Kind,omitempty"`
3376}
3377
3378// MarshalJSON is the custom marshaler for ApplicationProcessExitedEvent.
3379func (apee ApplicationProcessExitedEvent) MarshalJSON() ([]byte, error) {
3380	apee.Kind = KindApplicationProcessExited
3381	objectMap := make(map[string]interface{})
3382	if apee.ServiceName != nil {
3383		objectMap["ServiceName"] = apee.ServiceName
3384	}
3385	if apee.ServicePackageName != nil {
3386		objectMap["ServicePackageName"] = apee.ServicePackageName
3387	}
3388	if apee.ServicePackageActivationID != nil {
3389		objectMap["ServicePackageActivationId"] = apee.ServicePackageActivationID
3390	}
3391	if apee.IsExclusive != nil {
3392		objectMap["IsExclusive"] = apee.IsExclusive
3393	}
3394	if apee.CodePackageName != nil {
3395		objectMap["CodePackageName"] = apee.CodePackageName
3396	}
3397	if apee.EntryPointType != nil {
3398		objectMap["EntryPointType"] = apee.EntryPointType
3399	}
3400	if apee.ExeName != nil {
3401		objectMap["ExeName"] = apee.ExeName
3402	}
3403	if apee.ProcessID != nil {
3404		objectMap["ProcessId"] = apee.ProcessID
3405	}
3406	if apee.HostID != nil {
3407		objectMap["HostId"] = apee.HostID
3408	}
3409	if apee.ExitCode != nil {
3410		objectMap["ExitCode"] = apee.ExitCode
3411	}
3412	if apee.UnexpectedTermination != nil {
3413		objectMap["UnexpectedTermination"] = apee.UnexpectedTermination
3414	}
3415	if apee.StartTime != nil {
3416		objectMap["StartTime"] = apee.StartTime
3417	}
3418	if apee.ApplicationID != nil {
3419		objectMap["ApplicationId"] = apee.ApplicationID
3420	}
3421	if apee.EventInstanceID != nil {
3422		objectMap["EventInstanceId"] = apee.EventInstanceID
3423	}
3424	if apee.Category != nil {
3425		objectMap["Category"] = apee.Category
3426	}
3427	if apee.TimeStamp != nil {
3428		objectMap["TimeStamp"] = apee.TimeStamp
3429	}
3430	if apee.HasCorrelatedEvents != nil {
3431		objectMap["HasCorrelatedEvents"] = apee.HasCorrelatedEvents
3432	}
3433	if apee.Kind != "" {
3434		objectMap["Kind"] = apee.Kind
3435	}
3436	return json.Marshal(objectMap)
3437}
3438
3439// AsApplicationEvent is the BasicFabricEvent implementation for ApplicationProcessExitedEvent.
3440func (apee ApplicationProcessExitedEvent) AsApplicationEvent() (*ApplicationEvent, bool) {
3441	return nil, false
3442}
3443
3444// AsBasicApplicationEvent is the BasicFabricEvent implementation for ApplicationProcessExitedEvent.
3445func (apee ApplicationProcessExitedEvent) AsBasicApplicationEvent() (BasicApplicationEvent, bool) {
3446	return &apee, true
3447}
3448
3449// AsClusterEvent is the BasicFabricEvent implementation for ApplicationProcessExitedEvent.
3450func (apee ApplicationProcessExitedEvent) AsClusterEvent() (*ClusterEvent, bool) {
3451	return nil, false
3452}
3453
3454// AsBasicClusterEvent is the BasicFabricEvent implementation for ApplicationProcessExitedEvent.
3455func (apee ApplicationProcessExitedEvent) AsBasicClusterEvent() (BasicClusterEvent, bool) {
3456	return nil, false
3457}
3458
3459// AsContainerInstanceEvent is the BasicFabricEvent implementation for ApplicationProcessExitedEvent.
3460func (apee ApplicationProcessExitedEvent) AsContainerInstanceEvent() (*ContainerInstanceEvent, bool) {
3461	return nil, false
3462}
3463
3464// AsNodeEvent is the BasicFabricEvent implementation for ApplicationProcessExitedEvent.
3465func (apee ApplicationProcessExitedEvent) AsNodeEvent() (*NodeEvent, bool) {
3466	return nil, false
3467}
3468
3469// AsBasicNodeEvent is the BasicFabricEvent implementation for ApplicationProcessExitedEvent.
3470func (apee ApplicationProcessExitedEvent) AsBasicNodeEvent() (BasicNodeEvent, bool) {
3471	return nil, false
3472}
3473
3474// AsPartitionAnalysisEvent is the BasicFabricEvent implementation for ApplicationProcessExitedEvent.
3475func (apee ApplicationProcessExitedEvent) AsPartitionAnalysisEvent() (*PartitionAnalysisEvent, bool) {
3476	return nil, false
3477}
3478
3479// AsBasicPartitionAnalysisEvent is the BasicFabricEvent implementation for ApplicationProcessExitedEvent.
3480func (apee ApplicationProcessExitedEvent) AsBasicPartitionAnalysisEvent() (BasicPartitionAnalysisEvent, bool) {
3481	return nil, false
3482}
3483
3484// AsPartitionEvent is the BasicFabricEvent implementation for ApplicationProcessExitedEvent.
3485func (apee ApplicationProcessExitedEvent) AsPartitionEvent() (*PartitionEvent, bool) {
3486	return nil, false
3487}
3488
3489// AsBasicPartitionEvent is the BasicFabricEvent implementation for ApplicationProcessExitedEvent.
3490func (apee ApplicationProcessExitedEvent) AsBasicPartitionEvent() (BasicPartitionEvent, bool) {
3491	return nil, false
3492}
3493
3494// AsReplicaEvent is the BasicFabricEvent implementation for ApplicationProcessExitedEvent.
3495func (apee ApplicationProcessExitedEvent) AsReplicaEvent() (*ReplicaEvent, bool) {
3496	return nil, false
3497}
3498
3499// AsBasicReplicaEvent is the BasicFabricEvent implementation for ApplicationProcessExitedEvent.
3500func (apee ApplicationProcessExitedEvent) AsBasicReplicaEvent() (BasicReplicaEvent, bool) {
3501	return nil, false
3502}
3503
3504// AsServiceEvent is the BasicFabricEvent implementation for ApplicationProcessExitedEvent.
3505func (apee ApplicationProcessExitedEvent) AsServiceEvent() (*ServiceEvent, bool) {
3506	return nil, false
3507}
3508
3509// AsBasicServiceEvent is the BasicFabricEvent implementation for ApplicationProcessExitedEvent.
3510func (apee ApplicationProcessExitedEvent) AsBasicServiceEvent() (BasicServiceEvent, bool) {
3511	return nil, false
3512}
3513
3514// AsApplicationCreatedEvent is the BasicFabricEvent implementation for ApplicationProcessExitedEvent.
3515func (apee ApplicationProcessExitedEvent) AsApplicationCreatedEvent() (*ApplicationCreatedEvent, bool) {
3516	return nil, false
3517}
3518
3519// AsApplicationDeletedEvent is the BasicFabricEvent implementation for ApplicationProcessExitedEvent.
3520func (apee ApplicationProcessExitedEvent) AsApplicationDeletedEvent() (*ApplicationDeletedEvent, bool) {
3521	return nil, false
3522}
3523
3524// AsApplicationNewHealthReportEvent is the BasicFabricEvent implementation for ApplicationProcessExitedEvent.
3525func (apee ApplicationProcessExitedEvent) AsApplicationNewHealthReportEvent() (*ApplicationNewHealthReportEvent, bool) {
3526	return nil, false
3527}
3528
3529// AsApplicationHealthReportExpiredEvent is the BasicFabricEvent implementation for ApplicationProcessExitedEvent.
3530func (apee ApplicationProcessExitedEvent) AsApplicationHealthReportExpiredEvent() (*ApplicationHealthReportExpiredEvent, bool) {
3531	return nil, false
3532}
3533
3534// AsApplicationUpgradeCompletedEvent is the BasicFabricEvent implementation for ApplicationProcessExitedEvent.
3535func (apee ApplicationProcessExitedEvent) AsApplicationUpgradeCompletedEvent() (*ApplicationUpgradeCompletedEvent, bool) {
3536	return nil, false
3537}
3538
3539// AsApplicationUpgradeDomainCompletedEvent is the BasicFabricEvent implementation for ApplicationProcessExitedEvent.
3540func (apee ApplicationProcessExitedEvent) AsApplicationUpgradeDomainCompletedEvent() (*ApplicationUpgradeDomainCompletedEvent, bool) {
3541	return nil, false
3542}
3543
3544// AsApplicationUpgradeRollbackCompletedEvent is the BasicFabricEvent implementation for ApplicationProcessExitedEvent.
3545func (apee ApplicationProcessExitedEvent) AsApplicationUpgradeRollbackCompletedEvent() (*ApplicationUpgradeRollbackCompletedEvent, bool) {
3546	return nil, false
3547}
3548
3549// AsApplicationUpgradeRollbackStartedEvent is the BasicFabricEvent implementation for ApplicationProcessExitedEvent.
3550func (apee ApplicationProcessExitedEvent) AsApplicationUpgradeRollbackStartedEvent() (*ApplicationUpgradeRollbackStartedEvent, bool) {
3551	return nil, false
3552}
3553
3554// AsApplicationUpgradeStartedEvent is the BasicFabricEvent implementation for ApplicationProcessExitedEvent.
3555func (apee ApplicationProcessExitedEvent) AsApplicationUpgradeStartedEvent() (*ApplicationUpgradeStartedEvent, bool) {
3556	return nil, false
3557}
3558
3559// AsDeployedApplicationNewHealthReportEvent is the BasicFabricEvent implementation for ApplicationProcessExitedEvent.
3560func (apee ApplicationProcessExitedEvent) AsDeployedApplicationNewHealthReportEvent() (*DeployedApplicationNewHealthReportEvent, bool) {
3561	return nil, false
3562}
3563
3564// AsDeployedApplicationHealthReportExpiredEvent is the BasicFabricEvent implementation for ApplicationProcessExitedEvent.
3565func (apee ApplicationProcessExitedEvent) AsDeployedApplicationHealthReportExpiredEvent() (*DeployedApplicationHealthReportExpiredEvent, bool) {
3566	return nil, false
3567}
3568
3569// AsApplicationProcessExitedEvent is the BasicFabricEvent implementation for ApplicationProcessExitedEvent.
3570func (apee ApplicationProcessExitedEvent) AsApplicationProcessExitedEvent() (*ApplicationProcessExitedEvent, bool) {
3571	return &apee, true
3572}
3573
3574// AsApplicationContainerInstanceExitedEvent is the BasicFabricEvent implementation for ApplicationProcessExitedEvent.
3575func (apee ApplicationProcessExitedEvent) AsApplicationContainerInstanceExitedEvent() (*ApplicationContainerInstanceExitedEvent, bool) {
3576	return nil, false
3577}
3578
3579// AsNodeAbortedEvent is the BasicFabricEvent implementation for ApplicationProcessExitedEvent.
3580func (apee ApplicationProcessExitedEvent) AsNodeAbortedEvent() (*NodeAbortedEvent, bool) {
3581	return nil, false
3582}
3583
3584// AsNodeAddedToClusterEvent is the BasicFabricEvent implementation for ApplicationProcessExitedEvent.
3585func (apee ApplicationProcessExitedEvent) AsNodeAddedToClusterEvent() (*NodeAddedToClusterEvent, bool) {
3586	return nil, false
3587}
3588
3589// AsNodeClosedEvent is the BasicFabricEvent implementation for ApplicationProcessExitedEvent.
3590func (apee ApplicationProcessExitedEvent) AsNodeClosedEvent() (*NodeClosedEvent, bool) {
3591	return nil, false
3592}
3593
3594// AsNodeDeactivateCompletedEvent is the BasicFabricEvent implementation for ApplicationProcessExitedEvent.
3595func (apee ApplicationProcessExitedEvent) AsNodeDeactivateCompletedEvent() (*NodeDeactivateCompletedEvent, bool) {
3596	return nil, false
3597}
3598
3599// AsNodeDeactivateStartedEvent is the BasicFabricEvent implementation for ApplicationProcessExitedEvent.
3600func (apee ApplicationProcessExitedEvent) AsNodeDeactivateStartedEvent() (*NodeDeactivateStartedEvent, bool) {
3601	return nil, false
3602}
3603
3604// AsNodeDownEvent is the BasicFabricEvent implementation for ApplicationProcessExitedEvent.
3605func (apee ApplicationProcessExitedEvent) AsNodeDownEvent() (*NodeDownEvent, bool) {
3606	return nil, false
3607}
3608
3609// AsNodeNewHealthReportEvent is the BasicFabricEvent implementation for ApplicationProcessExitedEvent.
3610func (apee ApplicationProcessExitedEvent) AsNodeNewHealthReportEvent() (*NodeNewHealthReportEvent, bool) {
3611	return nil, false
3612}
3613
3614// AsNodeHealthReportExpiredEvent is the BasicFabricEvent implementation for ApplicationProcessExitedEvent.
3615func (apee ApplicationProcessExitedEvent) AsNodeHealthReportExpiredEvent() (*NodeHealthReportExpiredEvent, bool) {
3616	return nil, false
3617}
3618
3619// AsNodeOpenSucceededEvent is the BasicFabricEvent implementation for ApplicationProcessExitedEvent.
3620func (apee ApplicationProcessExitedEvent) AsNodeOpenSucceededEvent() (*NodeOpenSucceededEvent, bool) {
3621	return nil, false
3622}
3623
3624// AsNodeOpenFailedEvent is the BasicFabricEvent implementation for ApplicationProcessExitedEvent.
3625func (apee ApplicationProcessExitedEvent) AsNodeOpenFailedEvent() (*NodeOpenFailedEvent, bool) {
3626	return nil, false
3627}
3628
3629// AsNodeRemovedFromClusterEvent is the BasicFabricEvent implementation for ApplicationProcessExitedEvent.
3630func (apee ApplicationProcessExitedEvent) AsNodeRemovedFromClusterEvent() (*NodeRemovedFromClusterEvent, bool) {
3631	return nil, false
3632}
3633
3634// AsNodeUpEvent is the BasicFabricEvent implementation for ApplicationProcessExitedEvent.
3635func (apee ApplicationProcessExitedEvent) AsNodeUpEvent() (*NodeUpEvent, bool) {
3636	return nil, false
3637}
3638
3639// AsPartitionNewHealthReportEvent is the BasicFabricEvent implementation for ApplicationProcessExitedEvent.
3640func (apee ApplicationProcessExitedEvent) AsPartitionNewHealthReportEvent() (*PartitionNewHealthReportEvent, bool) {
3641	return nil, false
3642}
3643
3644// AsPartitionHealthReportExpiredEvent is the BasicFabricEvent implementation for ApplicationProcessExitedEvent.
3645func (apee ApplicationProcessExitedEvent) AsPartitionHealthReportExpiredEvent() (*PartitionHealthReportExpiredEvent, bool) {
3646	return nil, false
3647}
3648
3649// AsPartitionReconfiguredEvent is the BasicFabricEvent implementation for ApplicationProcessExitedEvent.
3650func (apee ApplicationProcessExitedEvent) AsPartitionReconfiguredEvent() (*PartitionReconfiguredEvent, bool) {
3651	return nil, false
3652}
3653
3654// AsPartitionPrimaryMoveAnalysisEvent is the BasicFabricEvent implementation for ApplicationProcessExitedEvent.
3655func (apee ApplicationProcessExitedEvent) AsPartitionPrimaryMoveAnalysisEvent() (*PartitionPrimaryMoveAnalysisEvent, bool) {
3656	return nil, false
3657}
3658
3659// AsServiceCreatedEvent is the BasicFabricEvent implementation for ApplicationProcessExitedEvent.
3660func (apee ApplicationProcessExitedEvent) AsServiceCreatedEvent() (*ServiceCreatedEvent, bool) {
3661	return nil, false
3662}
3663
3664// AsServiceDeletedEvent is the BasicFabricEvent implementation for ApplicationProcessExitedEvent.
3665func (apee ApplicationProcessExitedEvent) AsServiceDeletedEvent() (*ServiceDeletedEvent, bool) {
3666	return nil, false
3667}
3668
3669// AsServiceNewHealthReportEvent is the BasicFabricEvent implementation for ApplicationProcessExitedEvent.
3670func (apee ApplicationProcessExitedEvent) AsServiceNewHealthReportEvent() (*ServiceNewHealthReportEvent, bool) {
3671	return nil, false
3672}
3673
3674// AsServiceHealthReportExpiredEvent is the BasicFabricEvent implementation for ApplicationProcessExitedEvent.
3675func (apee ApplicationProcessExitedEvent) AsServiceHealthReportExpiredEvent() (*ServiceHealthReportExpiredEvent, bool) {
3676	return nil, false
3677}
3678
3679// AsDeployedServicePackageNewHealthReportEvent is the BasicFabricEvent implementation for ApplicationProcessExitedEvent.
3680func (apee ApplicationProcessExitedEvent) AsDeployedServicePackageNewHealthReportEvent() (*DeployedServicePackageNewHealthReportEvent, bool) {
3681	return nil, false
3682}
3683
3684// AsDeployedServicePackageHealthReportExpiredEvent is the BasicFabricEvent implementation for ApplicationProcessExitedEvent.
3685func (apee ApplicationProcessExitedEvent) AsDeployedServicePackageHealthReportExpiredEvent() (*DeployedServicePackageHealthReportExpiredEvent, bool) {
3686	return nil, false
3687}
3688
3689// AsStatefulReplicaNewHealthReportEvent is the BasicFabricEvent implementation for ApplicationProcessExitedEvent.
3690func (apee ApplicationProcessExitedEvent) AsStatefulReplicaNewHealthReportEvent() (*StatefulReplicaNewHealthReportEvent, bool) {
3691	return nil, false
3692}
3693
3694// AsStatefulReplicaHealthReportExpiredEvent is the BasicFabricEvent implementation for ApplicationProcessExitedEvent.
3695func (apee ApplicationProcessExitedEvent) AsStatefulReplicaHealthReportExpiredEvent() (*StatefulReplicaHealthReportExpiredEvent, bool) {
3696	return nil, false
3697}
3698
3699// AsStatelessReplicaNewHealthReportEvent is the BasicFabricEvent implementation for ApplicationProcessExitedEvent.
3700func (apee ApplicationProcessExitedEvent) AsStatelessReplicaNewHealthReportEvent() (*StatelessReplicaNewHealthReportEvent, bool) {
3701	return nil, false
3702}
3703
3704// AsStatelessReplicaHealthReportExpiredEvent is the BasicFabricEvent implementation for ApplicationProcessExitedEvent.
3705func (apee ApplicationProcessExitedEvent) AsStatelessReplicaHealthReportExpiredEvent() (*StatelessReplicaHealthReportExpiredEvent, bool) {
3706	return nil, false
3707}
3708
3709// AsClusterNewHealthReportEvent is the BasicFabricEvent implementation for ApplicationProcessExitedEvent.
3710func (apee ApplicationProcessExitedEvent) AsClusterNewHealthReportEvent() (*ClusterNewHealthReportEvent, bool) {
3711	return nil, false
3712}
3713
3714// AsClusterHealthReportExpiredEvent is the BasicFabricEvent implementation for ApplicationProcessExitedEvent.
3715func (apee ApplicationProcessExitedEvent) AsClusterHealthReportExpiredEvent() (*ClusterHealthReportExpiredEvent, bool) {
3716	return nil, false
3717}
3718
3719// AsClusterUpgradeCompletedEvent is the BasicFabricEvent implementation for ApplicationProcessExitedEvent.
3720func (apee ApplicationProcessExitedEvent) AsClusterUpgradeCompletedEvent() (*ClusterUpgradeCompletedEvent, bool) {
3721	return nil, false
3722}
3723
3724// AsClusterUpgradeDomainCompletedEvent is the BasicFabricEvent implementation for ApplicationProcessExitedEvent.
3725func (apee ApplicationProcessExitedEvent) AsClusterUpgradeDomainCompletedEvent() (*ClusterUpgradeDomainCompletedEvent, bool) {
3726	return nil, false
3727}
3728
3729// AsClusterUpgradeRollbackCompletedEvent is the BasicFabricEvent implementation for ApplicationProcessExitedEvent.
3730func (apee ApplicationProcessExitedEvent) AsClusterUpgradeRollbackCompletedEvent() (*ClusterUpgradeRollbackCompletedEvent, bool) {
3731	return nil, false
3732}
3733
3734// AsClusterUpgradeRollbackStartedEvent is the BasicFabricEvent implementation for ApplicationProcessExitedEvent.
3735func (apee ApplicationProcessExitedEvent) AsClusterUpgradeRollbackStartedEvent() (*ClusterUpgradeRollbackStartedEvent, bool) {
3736	return nil, false
3737}
3738
3739// AsClusterUpgradeStartedEvent is the BasicFabricEvent implementation for ApplicationProcessExitedEvent.
3740func (apee ApplicationProcessExitedEvent) AsClusterUpgradeStartedEvent() (*ClusterUpgradeStartedEvent, bool) {
3741	return nil, false
3742}
3743
3744// AsChaosStoppedEvent is the BasicFabricEvent implementation for ApplicationProcessExitedEvent.
3745func (apee ApplicationProcessExitedEvent) AsChaosStoppedEvent() (*ChaosStoppedEvent, bool) {
3746	return nil, false
3747}
3748
3749// AsChaosStartedEvent is the BasicFabricEvent implementation for ApplicationProcessExitedEvent.
3750func (apee ApplicationProcessExitedEvent) AsChaosStartedEvent() (*ChaosStartedEvent, bool) {
3751	return nil, false
3752}
3753
3754// AsChaosCodePackageRestartScheduledEvent is the BasicFabricEvent implementation for ApplicationProcessExitedEvent.
3755func (apee ApplicationProcessExitedEvent) AsChaosCodePackageRestartScheduledEvent() (*ChaosCodePackageRestartScheduledEvent, bool) {
3756	return nil, false
3757}
3758
3759// AsChaosReplicaRemovalScheduledEvent is the BasicFabricEvent implementation for ApplicationProcessExitedEvent.
3760func (apee ApplicationProcessExitedEvent) AsChaosReplicaRemovalScheduledEvent() (*ChaosReplicaRemovalScheduledEvent, bool) {
3761	return nil, false
3762}
3763
3764// AsChaosPartitionSecondaryMoveScheduledEvent is the BasicFabricEvent implementation for ApplicationProcessExitedEvent.
3765func (apee ApplicationProcessExitedEvent) AsChaosPartitionSecondaryMoveScheduledEvent() (*ChaosPartitionSecondaryMoveScheduledEvent, bool) {
3766	return nil, false
3767}
3768
3769// AsChaosPartitionPrimaryMoveScheduledEvent is the BasicFabricEvent implementation for ApplicationProcessExitedEvent.
3770func (apee ApplicationProcessExitedEvent) AsChaosPartitionPrimaryMoveScheduledEvent() (*ChaosPartitionPrimaryMoveScheduledEvent, bool) {
3771	return nil, false
3772}
3773
3774// AsChaosReplicaRestartScheduledEvent is the BasicFabricEvent implementation for ApplicationProcessExitedEvent.
3775func (apee ApplicationProcessExitedEvent) AsChaosReplicaRestartScheduledEvent() (*ChaosReplicaRestartScheduledEvent, bool) {
3776	return nil, false
3777}
3778
3779// AsChaosNodeRestartScheduledEvent is the BasicFabricEvent implementation for ApplicationProcessExitedEvent.
3780func (apee ApplicationProcessExitedEvent) AsChaosNodeRestartScheduledEvent() (*ChaosNodeRestartScheduledEvent, bool) {
3781	return nil, false
3782}
3783
3784// AsFabricEvent is the BasicFabricEvent implementation for ApplicationProcessExitedEvent.
3785func (apee ApplicationProcessExitedEvent) AsFabricEvent() (*FabricEvent, bool) {
3786	return nil, false
3787}
3788
3789// AsBasicFabricEvent is the BasicFabricEvent implementation for ApplicationProcessExitedEvent.
3790func (apee ApplicationProcessExitedEvent) AsBasicFabricEvent() (BasicFabricEvent, bool) {
3791	return &apee, true
3792}
3793
3794// ApplicationProperties describes properties of a application resource.
3795type ApplicationProperties struct {
3796	// Description - User readable description of the application.
3797	Description *string `json:"description,omitempty"`
3798	// 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.
3799	Services *[]ServiceResourceDescription `json:"services,omitempty"`
3800	// Diagnostics - Describes the diagnostics definition and usage for an application resource.
3801	Diagnostics *DiagnosticsDescription `json:"diagnostics,omitempty"`
3802	// DebugParams - Internal - used by Visual Studio to setup the debugging session on the local development environment.
3803	DebugParams *string `json:"debugParams,omitempty"`
3804	// ServiceNames - READ-ONLY; Names of the services in the application.
3805	ServiceNames *[]string `json:"serviceNames,omitempty"`
3806	// Status - READ-ONLY; Status of the application. Possible values include: 'ResourceStatusUnknown', 'ResourceStatusReady', 'ResourceStatusUpgrading', 'ResourceStatusCreating', 'ResourceStatusDeleting', 'ResourceStatusFailed'
3807	Status ResourceStatus `json:"status,omitempty"`
3808	// StatusDetails - READ-ONLY; Gives additional information about the current status of the application.
3809	StatusDetails *string `json:"statusDetails,omitempty"`
3810	// HealthState - READ-ONLY; Describes the health state of an application resource. Possible values include: 'HealthStateInvalid', 'HealthStateOk', 'HealthStateWarning', 'HealthStateError', 'HealthStateUnknown'
3811	HealthState HealthState `json:"healthState,omitempty"`
3812	// 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.
3813	UnhealthyEvaluation *string `json:"unhealthyEvaluation,omitempty"`
3814}
3815
3816// MarshalJSON is the custom marshaler for ApplicationProperties.
3817func (ap ApplicationProperties) MarshalJSON() ([]byte, error) {
3818	objectMap := make(map[string]interface{})
3819	if ap.Description != nil {
3820		objectMap["description"] = ap.Description
3821	}
3822	if ap.Services != nil {
3823		objectMap["services"] = ap.Services
3824	}
3825	if ap.Diagnostics != nil {
3826		objectMap["diagnostics"] = ap.Diagnostics
3827	}
3828	if ap.DebugParams != nil {
3829		objectMap["debugParams"] = ap.DebugParams
3830	}
3831	return json.Marshal(objectMap)
3832}
3833
3834// ApplicationResourceDescription this type describes a application resource.
3835type ApplicationResourceDescription struct {
3836	autorest.Response `json:"-"`
3837	// Name - Name of the Application resource.
3838	Name *string `json:"name,omitempty"`
3839	// ApplicationProperties - Describes properties of a application resource.
3840	*ApplicationProperties `json:"properties,omitempty"`
3841	// Identity - Describes the identity of the application.
3842	Identity *IdentityDescription `json:"identity,omitempty"`
3843}
3844
3845// MarshalJSON is the custom marshaler for ApplicationResourceDescription.
3846func (ard ApplicationResourceDescription) MarshalJSON() ([]byte, error) {
3847	objectMap := make(map[string]interface{})
3848	if ard.Name != nil {
3849		objectMap["name"] = ard.Name
3850	}
3851	if ard.ApplicationProperties != nil {
3852		objectMap["properties"] = ard.ApplicationProperties
3853	}
3854	if ard.Identity != nil {
3855		objectMap["identity"] = ard.Identity
3856	}
3857	return json.Marshal(objectMap)
3858}
3859
3860// UnmarshalJSON is the custom unmarshaler for ApplicationResourceDescription struct.
3861func (ard *ApplicationResourceDescription) UnmarshalJSON(body []byte) error {
3862	var m map[string]*json.RawMessage
3863	err := json.Unmarshal(body, &m)
3864	if err != nil {
3865		return err
3866	}
3867	for k, v := range m {
3868		switch k {
3869		case "name":
3870			if v != nil {
3871				var name string
3872				err = json.Unmarshal(*v, &name)
3873				if err != nil {
3874					return err
3875				}
3876				ard.Name = &name
3877			}
3878		case "properties":
3879			if v != nil {
3880				var applicationProperties ApplicationProperties
3881				err = json.Unmarshal(*v, &applicationProperties)
3882				if err != nil {
3883					return err
3884				}
3885				ard.ApplicationProperties = &applicationProperties
3886			}
3887		case "identity":
3888			if v != nil {
3889				var identity IdentityDescription
3890				err = json.Unmarshal(*v, &identity)
3891				if err != nil {
3892					return err
3893				}
3894				ard.Identity = &identity
3895			}
3896		}
3897	}
3898
3899	return nil
3900}
3901
3902// ApplicationScopedVolume describes a volume whose lifetime is scoped to the application's lifetime.
3903type ApplicationScopedVolume struct {
3904	// CreationParameters - Describes parameters for creating application-scoped volumes.
3905	CreationParameters BasicApplicationScopedVolumeCreationParameters `json:"creationParameters,omitempty"`
3906	// Name - Name of the volume being referenced.
3907	Name *string `json:"name,omitempty"`
3908	// ReadOnly - The flag indicating whether the volume is read only. Default is 'false'.
3909	ReadOnly *bool `json:"readOnly,omitempty"`
3910	// DestinationPath - The path within the container at which the volume should be mounted. Only valid path characters are allowed.
3911	DestinationPath *string `json:"destinationPath,omitempty"`
3912}
3913
3914// UnmarshalJSON is the custom unmarshaler for ApplicationScopedVolume struct.
3915func (asv *ApplicationScopedVolume) UnmarshalJSON(body []byte) error {
3916	var m map[string]*json.RawMessage
3917	err := json.Unmarshal(body, &m)
3918	if err != nil {
3919		return err
3920	}
3921	for k, v := range m {
3922		switch k {
3923		case "creationParameters":
3924			if v != nil {
3925				creationParameters, err := unmarshalBasicApplicationScopedVolumeCreationParameters(*v)
3926				if err != nil {
3927					return err
3928				}
3929				asv.CreationParameters = creationParameters
3930			}
3931		case "name":
3932			if v != nil {
3933				var name string
3934				err = json.Unmarshal(*v, &name)
3935				if err != nil {
3936					return err
3937				}
3938				asv.Name = &name
3939			}
3940		case "readOnly":
3941			if v != nil {
3942				var readOnly bool
3943				err = json.Unmarshal(*v, &readOnly)
3944				if err != nil {
3945					return err
3946				}
3947				asv.ReadOnly = &readOnly
3948			}
3949		case "destinationPath":
3950			if v != nil {
3951				var destinationPath string
3952				err = json.Unmarshal(*v, &destinationPath)
3953				if err != nil {
3954					return err
3955				}
3956				asv.DestinationPath = &destinationPath
3957			}
3958		}
3959	}
3960
3961	return nil
3962}
3963
3964// BasicApplicationScopedVolumeCreationParameters describes parameters for creating application-scoped volumes.
3965type BasicApplicationScopedVolumeCreationParameters interface {
3966	AsApplicationScopedVolumeCreationParametersServiceFabricVolumeDisk() (*ApplicationScopedVolumeCreationParametersServiceFabricVolumeDisk, bool)
3967	AsApplicationScopedVolumeCreationParameters() (*ApplicationScopedVolumeCreationParameters, bool)
3968}
3969
3970// ApplicationScopedVolumeCreationParameters describes parameters for creating application-scoped volumes.
3971type ApplicationScopedVolumeCreationParameters struct {
3972	// Description - User readable description of the volume.
3973	Description *string `json:"description,omitempty"`
3974	// Kind - Possible values include: 'KindApplicationScopedVolumeCreationParameters', 'KindServiceFabricVolumeDisk'
3975	Kind KindBasicApplicationScopedVolumeCreationParameters `json:"kind,omitempty"`
3976}
3977
3978func unmarshalBasicApplicationScopedVolumeCreationParameters(body []byte) (BasicApplicationScopedVolumeCreationParameters, error) {
3979	var m map[string]interface{}
3980	err := json.Unmarshal(body, &m)
3981	if err != nil {
3982		return nil, err
3983	}
3984
3985	switch m["kind"] {
3986	case string(KindServiceFabricVolumeDisk):
3987		var asvcpsfvd ApplicationScopedVolumeCreationParametersServiceFabricVolumeDisk
3988		err := json.Unmarshal(body, &asvcpsfvd)
3989		return asvcpsfvd, err
3990	default:
3991		var asvcp ApplicationScopedVolumeCreationParameters
3992		err := json.Unmarshal(body, &asvcp)
3993		return asvcp, err
3994	}
3995}
3996func unmarshalBasicApplicationScopedVolumeCreationParametersArray(body []byte) ([]BasicApplicationScopedVolumeCreationParameters, error) {
3997	var rawMessages []*json.RawMessage
3998	err := json.Unmarshal(body, &rawMessages)
3999	if err != nil {
4000		return nil, err
4001	}
4002
4003	asvcpArray := make([]BasicApplicationScopedVolumeCreationParameters, len(rawMessages))
4004
4005	for index, rawMessage := range rawMessages {
4006		asvcp, err := unmarshalBasicApplicationScopedVolumeCreationParameters(*rawMessage)
4007		if err != nil {
4008			return nil, err
4009		}
4010		asvcpArray[index] = asvcp
4011	}
4012	return asvcpArray, nil
4013}
4014
4015// MarshalJSON is the custom marshaler for ApplicationScopedVolumeCreationParameters.
4016func (asvcp ApplicationScopedVolumeCreationParameters) MarshalJSON() ([]byte, error) {
4017	asvcp.Kind = KindApplicationScopedVolumeCreationParameters
4018	objectMap := make(map[string]interface{})
4019	if asvcp.Description != nil {
4020		objectMap["description"] = asvcp.Description
4021	}
4022	if asvcp.Kind != "" {
4023		objectMap["kind"] = asvcp.Kind
4024	}
4025	return json.Marshal(objectMap)
4026}
4027
4028// AsApplicationScopedVolumeCreationParametersServiceFabricVolumeDisk is the BasicApplicationScopedVolumeCreationParameters implementation for ApplicationScopedVolumeCreationParameters.
4029func (asvcp ApplicationScopedVolumeCreationParameters) AsApplicationScopedVolumeCreationParametersServiceFabricVolumeDisk() (*ApplicationScopedVolumeCreationParametersServiceFabricVolumeDisk, bool) {
4030	return nil, false
4031}
4032
4033// AsApplicationScopedVolumeCreationParameters is the BasicApplicationScopedVolumeCreationParameters implementation for ApplicationScopedVolumeCreationParameters.
4034func (asvcp ApplicationScopedVolumeCreationParameters) AsApplicationScopedVolumeCreationParameters() (*ApplicationScopedVolumeCreationParameters, bool) {
4035	return &asvcp, true
4036}
4037
4038// AsBasicApplicationScopedVolumeCreationParameters is the BasicApplicationScopedVolumeCreationParameters implementation for ApplicationScopedVolumeCreationParameters.
4039func (asvcp ApplicationScopedVolumeCreationParameters) AsBasicApplicationScopedVolumeCreationParameters() (BasicApplicationScopedVolumeCreationParameters, bool) {
4040	return &asvcp, true
4041}
4042
4043// ApplicationScopedVolumeCreationParametersServiceFabricVolumeDisk describes parameters for creating
4044// application-scoped volumes provided by Service Fabric Volume Disks
4045type ApplicationScopedVolumeCreationParametersServiceFabricVolumeDisk struct {
4046	// SizeDisk - Volume size. Possible values include: 'SizeTypesSmall', 'SizeTypesMedium', 'SizeTypesLarge'
4047	SizeDisk SizeTypes `json:"sizeDisk,omitempty"`
4048	// Description - User readable description of the volume.
4049	Description *string `json:"description,omitempty"`
4050	// Kind - Possible values include: 'KindApplicationScopedVolumeCreationParameters', 'KindServiceFabricVolumeDisk'
4051	Kind KindBasicApplicationScopedVolumeCreationParameters `json:"kind,omitempty"`
4052}
4053
4054// MarshalJSON is the custom marshaler for ApplicationScopedVolumeCreationParametersServiceFabricVolumeDisk.
4055func (asvcpsfvd ApplicationScopedVolumeCreationParametersServiceFabricVolumeDisk) MarshalJSON() ([]byte, error) {
4056	asvcpsfvd.Kind = KindServiceFabricVolumeDisk
4057	objectMap := make(map[string]interface{})
4058	if asvcpsfvd.SizeDisk != "" {
4059		objectMap["sizeDisk"] = asvcpsfvd.SizeDisk
4060	}
4061	if asvcpsfvd.Description != nil {
4062		objectMap["description"] = asvcpsfvd.Description
4063	}
4064	if asvcpsfvd.Kind != "" {
4065		objectMap["kind"] = asvcpsfvd.Kind
4066	}
4067	return json.Marshal(objectMap)
4068}
4069
4070// AsApplicationScopedVolumeCreationParametersServiceFabricVolumeDisk is the BasicApplicationScopedVolumeCreationParameters implementation for ApplicationScopedVolumeCreationParametersServiceFabricVolumeDisk.
4071func (asvcpsfvd ApplicationScopedVolumeCreationParametersServiceFabricVolumeDisk) AsApplicationScopedVolumeCreationParametersServiceFabricVolumeDisk() (*ApplicationScopedVolumeCreationParametersServiceFabricVolumeDisk, bool) {
4072	return &asvcpsfvd, true
4073}
4074
4075// AsApplicationScopedVolumeCreationParameters is the BasicApplicationScopedVolumeCreationParameters implementation for ApplicationScopedVolumeCreationParametersServiceFabricVolumeDisk.
4076func (asvcpsfvd ApplicationScopedVolumeCreationParametersServiceFabricVolumeDisk) AsApplicationScopedVolumeCreationParameters() (*ApplicationScopedVolumeCreationParameters, bool) {
4077	return nil, false
4078}
4079
4080// AsBasicApplicationScopedVolumeCreationParameters is the BasicApplicationScopedVolumeCreationParameters implementation for ApplicationScopedVolumeCreationParametersServiceFabricVolumeDisk.
4081func (asvcpsfvd ApplicationScopedVolumeCreationParametersServiceFabricVolumeDisk) AsBasicApplicationScopedVolumeCreationParameters() (BasicApplicationScopedVolumeCreationParameters, bool) {
4082	return &asvcpsfvd, true
4083}
4084
4085// ApplicationsHealthEvaluation represents health evaluation for applications, containing health
4086// evaluations for each unhealthy application that impacted current aggregated health state.
4087type ApplicationsHealthEvaluation struct {
4088	// MaxPercentUnhealthyApplications - Maximum allowed percentage of unhealthy applications from the ClusterHealthPolicy.
4089	MaxPercentUnhealthyApplications *int32 `json:"MaxPercentUnhealthyApplications,omitempty"`
4090	// TotalCount - Total number of applications from the health store.
4091	TotalCount *int64 `json:"TotalCount,omitempty"`
4092	// UnhealthyEvaluations - List of unhealthy evaluations that led to the aggregated health state. Includes all the unhealthy ApplicationHealthEvaluation that impacted the aggregated health.
4093	UnhealthyEvaluations *[]HealthEvaluationWrapper `json:"UnhealthyEvaluations,omitempty"`
4094	// 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'
4095	AggregatedHealthState HealthState `json:"AggregatedHealthState,omitempty"`
4096	// Description - Description of the health evaluation, which represents a summary of the evaluation process.
4097	Description *string `json:"Description,omitempty"`
4098	// 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'
4099	Kind Kind `json:"Kind,omitempty"`
4100}
4101
4102// MarshalJSON is the custom marshaler for ApplicationsHealthEvaluation.
4103func (ahe ApplicationsHealthEvaluation) MarshalJSON() ([]byte, error) {
4104	ahe.Kind = KindApplications
4105	objectMap := make(map[string]interface{})
4106	if ahe.MaxPercentUnhealthyApplications != nil {
4107		objectMap["MaxPercentUnhealthyApplications"] = ahe.MaxPercentUnhealthyApplications
4108	}
4109	if ahe.TotalCount != nil {
4110		objectMap["TotalCount"] = ahe.TotalCount
4111	}
4112	if ahe.UnhealthyEvaluations != nil {
4113		objectMap["UnhealthyEvaluations"] = ahe.UnhealthyEvaluations
4114	}
4115	if ahe.AggregatedHealthState != "" {
4116		objectMap["AggregatedHealthState"] = ahe.AggregatedHealthState
4117	}
4118	if ahe.Description != nil {
4119		objectMap["Description"] = ahe.Description
4120	}
4121	if ahe.Kind != "" {
4122		objectMap["Kind"] = ahe.Kind
4123	}
4124	return json.Marshal(objectMap)
4125}
4126
4127// AsApplicationHealthEvaluation is the BasicHealthEvaluation implementation for ApplicationsHealthEvaluation.
4128func (ahe ApplicationsHealthEvaluation) AsApplicationHealthEvaluation() (*ApplicationHealthEvaluation, bool) {
4129	return nil, false
4130}
4131
4132// AsApplicationsHealthEvaluation is the BasicHealthEvaluation implementation for ApplicationsHealthEvaluation.
4133func (ahe ApplicationsHealthEvaluation) AsApplicationsHealthEvaluation() (*ApplicationsHealthEvaluation, bool) {
4134	return &ahe, true
4135}
4136
4137// AsApplicationTypeApplicationsHealthEvaluation is the BasicHealthEvaluation implementation for ApplicationsHealthEvaluation.
4138func (ahe ApplicationsHealthEvaluation) AsApplicationTypeApplicationsHealthEvaluation() (*ApplicationTypeApplicationsHealthEvaluation, bool) {
4139	return nil, false
4140}
4141
4142// AsDeltaNodesCheckHealthEvaluation is the BasicHealthEvaluation implementation for ApplicationsHealthEvaluation.
4143func (ahe ApplicationsHealthEvaluation) AsDeltaNodesCheckHealthEvaluation() (*DeltaNodesCheckHealthEvaluation, bool) {
4144	return nil, false
4145}
4146
4147// AsDeployedApplicationHealthEvaluation is the BasicHealthEvaluation implementation for ApplicationsHealthEvaluation.
4148func (ahe ApplicationsHealthEvaluation) AsDeployedApplicationHealthEvaluation() (*DeployedApplicationHealthEvaluation, bool) {
4149	return nil, false
4150}
4151
4152// AsDeployedApplicationsHealthEvaluation is the BasicHealthEvaluation implementation for ApplicationsHealthEvaluation.
4153func (ahe ApplicationsHealthEvaluation) AsDeployedApplicationsHealthEvaluation() (*DeployedApplicationsHealthEvaluation, bool) {
4154	return nil, false
4155}
4156
4157// AsDeployedServicePackageHealthEvaluation is the BasicHealthEvaluation implementation for ApplicationsHealthEvaluation.
4158func (ahe ApplicationsHealthEvaluation) AsDeployedServicePackageHealthEvaluation() (*DeployedServicePackageHealthEvaluation, bool) {
4159	return nil, false
4160}
4161
4162// AsDeployedServicePackagesHealthEvaluation is the BasicHealthEvaluation implementation for ApplicationsHealthEvaluation.
4163func (ahe ApplicationsHealthEvaluation) AsDeployedServicePackagesHealthEvaluation() (*DeployedServicePackagesHealthEvaluation, bool) {
4164	return nil, false
4165}
4166
4167// AsEventHealthEvaluation is the BasicHealthEvaluation implementation for ApplicationsHealthEvaluation.
4168func (ahe ApplicationsHealthEvaluation) AsEventHealthEvaluation() (*EventHealthEvaluation, bool) {
4169	return nil, false
4170}
4171
4172// AsNodeHealthEvaluation is the BasicHealthEvaluation implementation for ApplicationsHealthEvaluation.
4173func (ahe ApplicationsHealthEvaluation) AsNodeHealthEvaluation() (*NodeHealthEvaluation, bool) {
4174	return nil, false
4175}
4176
4177// AsNodesHealthEvaluation is the BasicHealthEvaluation implementation for ApplicationsHealthEvaluation.
4178func (ahe ApplicationsHealthEvaluation) AsNodesHealthEvaluation() (*NodesHealthEvaluation, bool) {
4179	return nil, false
4180}
4181
4182// AsPartitionHealthEvaluation is the BasicHealthEvaluation implementation for ApplicationsHealthEvaluation.
4183func (ahe ApplicationsHealthEvaluation) AsPartitionHealthEvaluation() (*PartitionHealthEvaluation, bool) {
4184	return nil, false
4185}
4186
4187// AsPartitionsHealthEvaluation is the BasicHealthEvaluation implementation for ApplicationsHealthEvaluation.
4188func (ahe ApplicationsHealthEvaluation) AsPartitionsHealthEvaluation() (*PartitionsHealthEvaluation, bool) {
4189	return nil, false
4190}
4191
4192// AsReplicaHealthEvaluation is the BasicHealthEvaluation implementation for ApplicationsHealthEvaluation.
4193func (ahe ApplicationsHealthEvaluation) AsReplicaHealthEvaluation() (*ReplicaHealthEvaluation, bool) {
4194	return nil, false
4195}
4196
4197// AsReplicasHealthEvaluation is the BasicHealthEvaluation implementation for ApplicationsHealthEvaluation.
4198func (ahe ApplicationsHealthEvaluation) AsReplicasHealthEvaluation() (*ReplicasHealthEvaluation, bool) {
4199	return nil, false
4200}
4201
4202// AsServiceHealthEvaluation is the BasicHealthEvaluation implementation for ApplicationsHealthEvaluation.
4203func (ahe ApplicationsHealthEvaluation) AsServiceHealthEvaluation() (*ServiceHealthEvaluation, bool) {
4204	return nil, false
4205}
4206
4207// AsServicesHealthEvaluation is the BasicHealthEvaluation implementation for ApplicationsHealthEvaluation.
4208func (ahe ApplicationsHealthEvaluation) AsServicesHealthEvaluation() (*ServicesHealthEvaluation, bool) {
4209	return nil, false
4210}
4211
4212// AsSystemApplicationHealthEvaluation is the BasicHealthEvaluation implementation for ApplicationsHealthEvaluation.
4213func (ahe ApplicationsHealthEvaluation) AsSystemApplicationHealthEvaluation() (*SystemApplicationHealthEvaluation, bool) {
4214	return nil, false
4215}
4216
4217// AsUpgradeDomainDeltaNodesCheckHealthEvaluation is the BasicHealthEvaluation implementation for ApplicationsHealthEvaluation.
4218func (ahe ApplicationsHealthEvaluation) AsUpgradeDomainDeltaNodesCheckHealthEvaluation() (*UpgradeDomainDeltaNodesCheckHealthEvaluation, bool) {
4219	return nil, false
4220}
4221
4222// AsUpgradeDomainNodesHealthEvaluation is the BasicHealthEvaluation implementation for ApplicationsHealthEvaluation.
4223func (ahe ApplicationsHealthEvaluation) AsUpgradeDomainNodesHealthEvaluation() (*UpgradeDomainNodesHealthEvaluation, bool) {
4224	return nil, false
4225}
4226
4227// AsHealthEvaluation is the BasicHealthEvaluation implementation for ApplicationsHealthEvaluation.
4228func (ahe ApplicationsHealthEvaluation) AsHealthEvaluation() (*HealthEvaluation, bool) {
4229	return nil, false
4230}
4231
4232// AsBasicHealthEvaluation is the BasicHealthEvaluation implementation for ApplicationsHealthEvaluation.
4233func (ahe ApplicationsHealthEvaluation) AsBasicHealthEvaluation() (BasicHealthEvaluation, bool) {
4234	return &ahe, true
4235}
4236
4237// ApplicationTypeApplicationsHealthEvaluation represents health evaluation for applications of a
4238// particular application type. The application type applications evaluation can be returned when cluster
4239// health evaluation returns unhealthy aggregated health state, either Error or Warning. It contains health
4240// evaluations for each unhealthy application of the included application type that impacted current
4241// aggregated health state.
4242type ApplicationTypeApplicationsHealthEvaluation struct {
4243	// ApplicationTypeName - The application type name as defined in the application manifest.
4244	ApplicationTypeName *string `json:"ApplicationTypeName,omitempty"`
4245	// MaxPercentUnhealthyApplications - Maximum allowed percentage of unhealthy applications for the application type, specified as an entry in ApplicationTypeHealthPolicyMap.
4246	MaxPercentUnhealthyApplications *int32 `json:"MaxPercentUnhealthyApplications,omitempty"`
4247	// TotalCount - Total number of applications of the application type found in the health store.
4248	TotalCount *int64 `json:"TotalCount,omitempty"`
4249	// 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.
4250	UnhealthyEvaluations *[]HealthEvaluationWrapper `json:"UnhealthyEvaluations,omitempty"`
4251	// 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'
4252	AggregatedHealthState HealthState `json:"AggregatedHealthState,omitempty"`
4253	// Description - Description of the health evaluation, which represents a summary of the evaluation process.
4254	Description *string `json:"Description,omitempty"`
4255	// 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'
4256	Kind Kind `json:"Kind,omitempty"`
4257}
4258
4259// MarshalJSON is the custom marshaler for ApplicationTypeApplicationsHealthEvaluation.
4260func (atahe ApplicationTypeApplicationsHealthEvaluation) MarshalJSON() ([]byte, error) {
4261	atahe.Kind = KindApplicationTypeApplications
4262	objectMap := make(map[string]interface{})
4263	if atahe.ApplicationTypeName != nil {
4264		objectMap["ApplicationTypeName"] = atahe.ApplicationTypeName
4265	}
4266	if atahe.MaxPercentUnhealthyApplications != nil {
4267		objectMap["MaxPercentUnhealthyApplications"] = atahe.MaxPercentUnhealthyApplications
4268	}
4269	if atahe.TotalCount != nil {
4270		objectMap["TotalCount"] = atahe.TotalCount
4271	}
4272	if atahe.UnhealthyEvaluations != nil {
4273		objectMap["UnhealthyEvaluations"] = atahe.UnhealthyEvaluations
4274	}
4275	if atahe.AggregatedHealthState != "" {
4276		objectMap["AggregatedHealthState"] = atahe.AggregatedHealthState
4277	}
4278	if atahe.Description != nil {
4279		objectMap["Description"] = atahe.Description
4280	}
4281	if atahe.Kind != "" {
4282		objectMap["Kind"] = atahe.Kind
4283	}
4284	return json.Marshal(objectMap)
4285}
4286
4287// AsApplicationHealthEvaluation is the BasicHealthEvaluation implementation for ApplicationTypeApplicationsHealthEvaluation.
4288func (atahe ApplicationTypeApplicationsHealthEvaluation) AsApplicationHealthEvaluation() (*ApplicationHealthEvaluation, bool) {
4289	return nil, false
4290}
4291
4292// AsApplicationsHealthEvaluation is the BasicHealthEvaluation implementation for ApplicationTypeApplicationsHealthEvaluation.
4293func (atahe ApplicationTypeApplicationsHealthEvaluation) AsApplicationsHealthEvaluation() (*ApplicationsHealthEvaluation, bool) {
4294	return nil, false
4295}
4296
4297// AsApplicationTypeApplicationsHealthEvaluation is the BasicHealthEvaluation implementation for ApplicationTypeApplicationsHealthEvaluation.
4298func (atahe ApplicationTypeApplicationsHealthEvaluation) AsApplicationTypeApplicationsHealthEvaluation() (*ApplicationTypeApplicationsHealthEvaluation, bool) {
4299	return &atahe, true
4300}
4301
4302// AsDeltaNodesCheckHealthEvaluation is the BasicHealthEvaluation implementation for ApplicationTypeApplicationsHealthEvaluation.
4303func (atahe ApplicationTypeApplicationsHealthEvaluation) AsDeltaNodesCheckHealthEvaluation() (*DeltaNodesCheckHealthEvaluation, bool) {
4304	return nil, false
4305}
4306
4307// AsDeployedApplicationHealthEvaluation is the BasicHealthEvaluation implementation for ApplicationTypeApplicationsHealthEvaluation.
4308func (atahe ApplicationTypeApplicationsHealthEvaluation) AsDeployedApplicationHealthEvaluation() (*DeployedApplicationHealthEvaluation, bool) {
4309	return nil, false
4310}
4311
4312// AsDeployedApplicationsHealthEvaluation is the BasicHealthEvaluation implementation for ApplicationTypeApplicationsHealthEvaluation.
4313func (atahe ApplicationTypeApplicationsHealthEvaluation) AsDeployedApplicationsHealthEvaluation() (*DeployedApplicationsHealthEvaluation, bool) {
4314	return nil, false
4315}
4316
4317// AsDeployedServicePackageHealthEvaluation is the BasicHealthEvaluation implementation for ApplicationTypeApplicationsHealthEvaluation.
4318func (atahe ApplicationTypeApplicationsHealthEvaluation) AsDeployedServicePackageHealthEvaluation() (*DeployedServicePackageHealthEvaluation, bool) {
4319	return nil, false
4320}
4321
4322// AsDeployedServicePackagesHealthEvaluation is the BasicHealthEvaluation implementation for ApplicationTypeApplicationsHealthEvaluation.
4323func (atahe ApplicationTypeApplicationsHealthEvaluation) AsDeployedServicePackagesHealthEvaluation() (*DeployedServicePackagesHealthEvaluation, bool) {
4324	return nil, false
4325}
4326
4327// AsEventHealthEvaluation is the BasicHealthEvaluation implementation for ApplicationTypeApplicationsHealthEvaluation.
4328func (atahe ApplicationTypeApplicationsHealthEvaluation) AsEventHealthEvaluation() (*EventHealthEvaluation, bool) {
4329	return nil, false
4330}
4331
4332// AsNodeHealthEvaluation is the BasicHealthEvaluation implementation for ApplicationTypeApplicationsHealthEvaluation.
4333func (atahe ApplicationTypeApplicationsHealthEvaluation) AsNodeHealthEvaluation() (*NodeHealthEvaluation, bool) {
4334	return nil, false
4335}
4336
4337// AsNodesHealthEvaluation is the BasicHealthEvaluation implementation for ApplicationTypeApplicationsHealthEvaluation.
4338func (atahe ApplicationTypeApplicationsHealthEvaluation) AsNodesHealthEvaluation() (*NodesHealthEvaluation, bool) {
4339	return nil, false
4340}
4341
4342// AsPartitionHealthEvaluation is the BasicHealthEvaluation implementation for ApplicationTypeApplicationsHealthEvaluation.
4343func (atahe ApplicationTypeApplicationsHealthEvaluation) AsPartitionHealthEvaluation() (*PartitionHealthEvaluation, bool) {
4344	return nil, false
4345}
4346
4347// AsPartitionsHealthEvaluation is the BasicHealthEvaluation implementation for ApplicationTypeApplicationsHealthEvaluation.
4348func (atahe ApplicationTypeApplicationsHealthEvaluation) AsPartitionsHealthEvaluation() (*PartitionsHealthEvaluation, bool) {
4349	return nil, false
4350}
4351
4352// AsReplicaHealthEvaluation is the BasicHealthEvaluation implementation for ApplicationTypeApplicationsHealthEvaluation.
4353func (atahe ApplicationTypeApplicationsHealthEvaluation) AsReplicaHealthEvaluation() (*ReplicaHealthEvaluation, bool) {
4354	return nil, false
4355}
4356
4357// AsReplicasHealthEvaluation is the BasicHealthEvaluation implementation for ApplicationTypeApplicationsHealthEvaluation.
4358func (atahe ApplicationTypeApplicationsHealthEvaluation) AsReplicasHealthEvaluation() (*ReplicasHealthEvaluation, bool) {
4359	return nil, false
4360}
4361
4362// AsServiceHealthEvaluation is the BasicHealthEvaluation implementation for ApplicationTypeApplicationsHealthEvaluation.
4363func (atahe ApplicationTypeApplicationsHealthEvaluation) AsServiceHealthEvaluation() (*ServiceHealthEvaluation, bool) {
4364	return nil, false
4365}
4366
4367// AsServicesHealthEvaluation is the BasicHealthEvaluation implementation for ApplicationTypeApplicationsHealthEvaluation.
4368func (atahe ApplicationTypeApplicationsHealthEvaluation) AsServicesHealthEvaluation() (*ServicesHealthEvaluation, bool) {
4369	return nil, false
4370}
4371
4372// AsSystemApplicationHealthEvaluation is the BasicHealthEvaluation implementation for ApplicationTypeApplicationsHealthEvaluation.
4373func (atahe ApplicationTypeApplicationsHealthEvaluation) AsSystemApplicationHealthEvaluation() (*SystemApplicationHealthEvaluation, bool) {
4374	return nil, false
4375}
4376
4377// AsUpgradeDomainDeltaNodesCheckHealthEvaluation is the BasicHealthEvaluation implementation for ApplicationTypeApplicationsHealthEvaluation.
4378func (atahe ApplicationTypeApplicationsHealthEvaluation) AsUpgradeDomainDeltaNodesCheckHealthEvaluation() (*UpgradeDomainDeltaNodesCheckHealthEvaluation, bool) {
4379	return nil, false
4380}
4381
4382// AsUpgradeDomainNodesHealthEvaluation is the BasicHealthEvaluation implementation for ApplicationTypeApplicationsHealthEvaluation.
4383func (atahe ApplicationTypeApplicationsHealthEvaluation) AsUpgradeDomainNodesHealthEvaluation() (*UpgradeDomainNodesHealthEvaluation, bool) {
4384	return nil, false
4385}
4386
4387// AsHealthEvaluation is the BasicHealthEvaluation implementation for ApplicationTypeApplicationsHealthEvaluation.
4388func (atahe ApplicationTypeApplicationsHealthEvaluation) AsHealthEvaluation() (*HealthEvaluation, bool) {
4389	return nil, false
4390}
4391
4392// AsBasicHealthEvaluation is the BasicHealthEvaluation implementation for ApplicationTypeApplicationsHealthEvaluation.
4393func (atahe ApplicationTypeApplicationsHealthEvaluation) AsBasicHealthEvaluation() (BasicHealthEvaluation, bool) {
4394	return &atahe, true
4395}
4396
4397// ApplicationTypeHealthPolicyMapItem defines an item in ApplicationTypeHealthPolicyMap.
4398type ApplicationTypeHealthPolicyMapItem struct {
4399	// Key - The key of the application type health policy map item. This is the name of the application type.
4400	Key *string `json:"Key,omitempty"`
4401	// Value - The value of the application type health policy map item.
4402	// The max percent unhealthy applications allowed for the application type. Must be between zero and 100.
4403	Value *int32 `json:"Value,omitempty"`
4404}
4405
4406// ApplicationTypeImageStorePath path description for the application package in the image store specified
4407// during the prior copy operation.
4408type ApplicationTypeImageStorePath struct {
4409	// ApplicationTypeBuildPath - The relative image store path to the application package.
4410	ApplicationTypeBuildPath *string `json:"ApplicationTypeBuildPath,omitempty"`
4411}
4412
4413// ApplicationTypeInfo information about an application type.
4414type ApplicationTypeInfo struct {
4415	// Name - The application type name as defined in the application manifest.
4416	Name *string `json:"Name,omitempty"`
4417	// Version - The version of the application type as defined in the application manifest.
4418	Version *string `json:"Version,omitempty"`
4419	// DefaultParameterList - List of application type parameters that can be overridden when creating or updating the application.
4420	DefaultParameterList *[]ApplicationParameter `json:"DefaultParameterList,omitempty"`
4421	// Status - The status of the application type. Possible values include: 'ApplicationTypeStatusInvalid', 'ApplicationTypeStatusProvisioning', 'ApplicationTypeStatusAvailable', 'ApplicationTypeStatusUnprovisioning', 'ApplicationTypeStatusFailed'
4422	Status ApplicationTypeStatus `json:"Status,omitempty"`
4423	// StatusDetails - Additional detailed information about the status of the application type.
4424	StatusDetails *string `json:"StatusDetails,omitempty"`
4425	// ApplicationTypeDefinitionKind - The mechanism used to define a Service Fabric application type. Possible values include: 'ApplicationTypeDefinitionKindInvalid', 'ApplicationTypeDefinitionKindServiceFabricApplicationPackage', 'ApplicationTypeDefinitionKindCompose'
4426	ApplicationTypeDefinitionKind ApplicationTypeDefinitionKind `json:"ApplicationTypeDefinitionKind,omitempty"`
4427}
4428
4429// ApplicationTypeManifest contains the manifest describing an application type registered in a Service
4430// Fabric cluster.
4431type ApplicationTypeManifest struct {
4432	autorest.Response `json:"-"`
4433	// Manifest - The XML manifest as a string.
4434	Manifest *string `json:"Manifest,omitempty"`
4435}
4436
4437// ApplicationUpgradeCompletedEvent application Upgrade Completed event.
4438type ApplicationUpgradeCompletedEvent struct {
4439	// ApplicationTypeName - Application type name.
4440	ApplicationTypeName *string `json:"ApplicationTypeName,omitempty"`
4441	// ApplicationTypeVersion - Application type version.
4442	ApplicationTypeVersion *string `json:"ApplicationTypeVersion,omitempty"`
4443	// OverallUpgradeElapsedTimeInMs - Overall upgrade time in milli-seconds.
4444	OverallUpgradeElapsedTimeInMs *float64 `json:"OverallUpgradeElapsedTimeInMs,omitempty"`
4445	// 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.
4446	// Starting in version 6.0, hierarchical names are delimited with the "\~" character. For example, if the application name is "fabric:/myapp/app1",
4447	// the application identity would be "myapp\~app1" in 6.0+ and "myapp/app1" in previous versions.
4448	ApplicationID *string `json:"ApplicationId,omitempty"`
4449	// EventInstanceID - The identifier for the FabricEvent instance.
4450	EventInstanceID *uuid.UUID `json:"EventInstanceId,omitempty"`
4451	// Category - The category of event.
4452	Category *string `json:"Category,omitempty"`
4453	// TimeStamp - The time event was logged.
4454	TimeStamp *date.Time `json:"TimeStamp,omitempty"`
4455	// HasCorrelatedEvents - Shows there is existing related events available.
4456	HasCorrelatedEvents *bool `json:"HasCorrelatedEvents,omitempty"`
4457	// 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'
4458	Kind KindBasicFabricEvent `json:"Kind,omitempty"`
4459}
4460
4461// MarshalJSON is the custom marshaler for ApplicationUpgradeCompletedEvent.
4462func (auce ApplicationUpgradeCompletedEvent) MarshalJSON() ([]byte, error) {
4463	auce.Kind = KindApplicationUpgradeCompleted
4464	objectMap := make(map[string]interface{})
4465	if auce.ApplicationTypeName != nil {
4466		objectMap["ApplicationTypeName"] = auce.ApplicationTypeName
4467	}
4468	if auce.ApplicationTypeVersion != nil {
4469		objectMap["ApplicationTypeVersion"] = auce.ApplicationTypeVersion
4470	}
4471	if auce.OverallUpgradeElapsedTimeInMs != nil {
4472		objectMap["OverallUpgradeElapsedTimeInMs"] = auce.OverallUpgradeElapsedTimeInMs
4473	}
4474	if auce.ApplicationID != nil {
4475		objectMap["ApplicationId"] = auce.ApplicationID
4476	}
4477	if auce.EventInstanceID != nil {
4478		objectMap["EventInstanceId"] = auce.EventInstanceID
4479	}
4480	if auce.Category != nil {
4481		objectMap["Category"] = auce.Category
4482	}
4483	if auce.TimeStamp != nil {
4484		objectMap["TimeStamp"] = auce.TimeStamp
4485	}
4486	if auce.HasCorrelatedEvents != nil {
4487		objectMap["HasCorrelatedEvents"] = auce.HasCorrelatedEvents
4488	}
4489	if auce.Kind != "" {
4490		objectMap["Kind"] = auce.Kind
4491	}
4492	return json.Marshal(objectMap)
4493}
4494
4495// AsApplicationEvent is the BasicFabricEvent implementation for ApplicationUpgradeCompletedEvent.
4496func (auce ApplicationUpgradeCompletedEvent) AsApplicationEvent() (*ApplicationEvent, bool) {
4497	return nil, false
4498}
4499
4500// AsBasicApplicationEvent is the BasicFabricEvent implementation for ApplicationUpgradeCompletedEvent.
4501func (auce ApplicationUpgradeCompletedEvent) AsBasicApplicationEvent() (BasicApplicationEvent, bool) {
4502	return &auce, true
4503}
4504
4505// AsClusterEvent is the BasicFabricEvent implementation for ApplicationUpgradeCompletedEvent.
4506func (auce ApplicationUpgradeCompletedEvent) AsClusterEvent() (*ClusterEvent, bool) {
4507	return nil, false
4508}
4509
4510// AsBasicClusterEvent is the BasicFabricEvent implementation for ApplicationUpgradeCompletedEvent.
4511func (auce ApplicationUpgradeCompletedEvent) AsBasicClusterEvent() (BasicClusterEvent, bool) {
4512	return nil, false
4513}
4514
4515// AsContainerInstanceEvent is the BasicFabricEvent implementation for ApplicationUpgradeCompletedEvent.
4516func (auce ApplicationUpgradeCompletedEvent) AsContainerInstanceEvent() (*ContainerInstanceEvent, bool) {
4517	return nil, false
4518}
4519
4520// AsNodeEvent is the BasicFabricEvent implementation for ApplicationUpgradeCompletedEvent.
4521func (auce ApplicationUpgradeCompletedEvent) AsNodeEvent() (*NodeEvent, bool) {
4522	return nil, false
4523}
4524
4525// AsBasicNodeEvent is the BasicFabricEvent implementation for ApplicationUpgradeCompletedEvent.
4526func (auce ApplicationUpgradeCompletedEvent) AsBasicNodeEvent() (BasicNodeEvent, bool) {
4527	return nil, false
4528}
4529
4530// AsPartitionAnalysisEvent is the BasicFabricEvent implementation for ApplicationUpgradeCompletedEvent.
4531func (auce ApplicationUpgradeCompletedEvent) AsPartitionAnalysisEvent() (*PartitionAnalysisEvent, bool) {
4532	return nil, false
4533}
4534
4535// AsBasicPartitionAnalysisEvent is the BasicFabricEvent implementation for ApplicationUpgradeCompletedEvent.
4536func (auce ApplicationUpgradeCompletedEvent) AsBasicPartitionAnalysisEvent() (BasicPartitionAnalysisEvent, bool) {
4537	return nil, false
4538}
4539
4540// AsPartitionEvent is the BasicFabricEvent implementation for ApplicationUpgradeCompletedEvent.
4541func (auce ApplicationUpgradeCompletedEvent) AsPartitionEvent() (*PartitionEvent, bool) {
4542	return nil, false
4543}
4544
4545// AsBasicPartitionEvent is the BasicFabricEvent implementation for ApplicationUpgradeCompletedEvent.
4546func (auce ApplicationUpgradeCompletedEvent) AsBasicPartitionEvent() (BasicPartitionEvent, bool) {
4547	return nil, false
4548}
4549
4550// AsReplicaEvent is the BasicFabricEvent implementation for ApplicationUpgradeCompletedEvent.
4551func (auce ApplicationUpgradeCompletedEvent) AsReplicaEvent() (*ReplicaEvent, bool) {
4552	return nil, false
4553}
4554
4555// AsBasicReplicaEvent is the BasicFabricEvent implementation for ApplicationUpgradeCompletedEvent.
4556func (auce ApplicationUpgradeCompletedEvent) AsBasicReplicaEvent() (BasicReplicaEvent, bool) {
4557	return nil, false
4558}
4559
4560// AsServiceEvent is the BasicFabricEvent implementation for ApplicationUpgradeCompletedEvent.
4561func (auce ApplicationUpgradeCompletedEvent) AsServiceEvent() (*ServiceEvent, bool) {
4562	return nil, false
4563}
4564
4565// AsBasicServiceEvent is the BasicFabricEvent implementation for ApplicationUpgradeCompletedEvent.
4566func (auce ApplicationUpgradeCompletedEvent) AsBasicServiceEvent() (BasicServiceEvent, bool) {
4567	return nil, false
4568}
4569
4570// AsApplicationCreatedEvent is the BasicFabricEvent implementation for ApplicationUpgradeCompletedEvent.
4571func (auce ApplicationUpgradeCompletedEvent) AsApplicationCreatedEvent() (*ApplicationCreatedEvent, bool) {
4572	return nil, false
4573}
4574
4575// AsApplicationDeletedEvent is the BasicFabricEvent implementation for ApplicationUpgradeCompletedEvent.
4576func (auce ApplicationUpgradeCompletedEvent) AsApplicationDeletedEvent() (*ApplicationDeletedEvent, bool) {
4577	return nil, false
4578}
4579
4580// AsApplicationNewHealthReportEvent is the BasicFabricEvent implementation for ApplicationUpgradeCompletedEvent.
4581func (auce ApplicationUpgradeCompletedEvent) AsApplicationNewHealthReportEvent() (*ApplicationNewHealthReportEvent, bool) {
4582	return nil, false
4583}
4584
4585// AsApplicationHealthReportExpiredEvent is the BasicFabricEvent implementation for ApplicationUpgradeCompletedEvent.
4586func (auce ApplicationUpgradeCompletedEvent) AsApplicationHealthReportExpiredEvent() (*ApplicationHealthReportExpiredEvent, bool) {
4587	return nil, false
4588}
4589
4590// AsApplicationUpgradeCompletedEvent is the BasicFabricEvent implementation for ApplicationUpgradeCompletedEvent.
4591func (auce ApplicationUpgradeCompletedEvent) AsApplicationUpgradeCompletedEvent() (*ApplicationUpgradeCompletedEvent, bool) {
4592	return &auce, true
4593}
4594
4595// AsApplicationUpgradeDomainCompletedEvent is the BasicFabricEvent implementation for ApplicationUpgradeCompletedEvent.
4596func (auce ApplicationUpgradeCompletedEvent) AsApplicationUpgradeDomainCompletedEvent() (*ApplicationUpgradeDomainCompletedEvent, bool) {
4597	return nil, false
4598}
4599
4600// AsApplicationUpgradeRollbackCompletedEvent is the BasicFabricEvent implementation for ApplicationUpgradeCompletedEvent.
4601func (auce ApplicationUpgradeCompletedEvent) AsApplicationUpgradeRollbackCompletedEvent() (*ApplicationUpgradeRollbackCompletedEvent, bool) {
4602	return nil, false
4603}
4604
4605// AsApplicationUpgradeRollbackStartedEvent is the BasicFabricEvent implementation for ApplicationUpgradeCompletedEvent.
4606func (auce ApplicationUpgradeCompletedEvent) AsApplicationUpgradeRollbackStartedEvent() (*ApplicationUpgradeRollbackStartedEvent, bool) {
4607	return nil, false
4608}
4609
4610// AsApplicationUpgradeStartedEvent is the BasicFabricEvent implementation for ApplicationUpgradeCompletedEvent.
4611func (auce ApplicationUpgradeCompletedEvent) AsApplicationUpgradeStartedEvent() (*ApplicationUpgradeStartedEvent, bool) {
4612	return nil, false
4613}
4614
4615// AsDeployedApplicationNewHealthReportEvent is the BasicFabricEvent implementation for ApplicationUpgradeCompletedEvent.
4616func (auce ApplicationUpgradeCompletedEvent) AsDeployedApplicationNewHealthReportEvent() (*DeployedApplicationNewHealthReportEvent, bool) {
4617	return nil, false
4618}
4619
4620// AsDeployedApplicationHealthReportExpiredEvent is the BasicFabricEvent implementation for ApplicationUpgradeCompletedEvent.
4621func (auce ApplicationUpgradeCompletedEvent) AsDeployedApplicationHealthReportExpiredEvent() (*DeployedApplicationHealthReportExpiredEvent, bool) {
4622	return nil, false
4623}
4624
4625// AsApplicationProcessExitedEvent is the BasicFabricEvent implementation for ApplicationUpgradeCompletedEvent.
4626func (auce ApplicationUpgradeCompletedEvent) AsApplicationProcessExitedEvent() (*ApplicationProcessExitedEvent, bool) {
4627	return nil, false
4628}
4629
4630// AsApplicationContainerInstanceExitedEvent is the BasicFabricEvent implementation for ApplicationUpgradeCompletedEvent.
4631func (auce ApplicationUpgradeCompletedEvent) AsApplicationContainerInstanceExitedEvent() (*ApplicationContainerInstanceExitedEvent, bool) {
4632	return nil, false
4633}
4634
4635// AsNodeAbortedEvent is the BasicFabricEvent implementation for ApplicationUpgradeCompletedEvent.
4636func (auce ApplicationUpgradeCompletedEvent) AsNodeAbortedEvent() (*NodeAbortedEvent, bool) {
4637	return nil, false
4638}
4639
4640// AsNodeAddedToClusterEvent is the BasicFabricEvent implementation for ApplicationUpgradeCompletedEvent.
4641func (auce ApplicationUpgradeCompletedEvent) AsNodeAddedToClusterEvent() (*NodeAddedToClusterEvent, bool) {
4642	return nil, false
4643}
4644
4645// AsNodeClosedEvent is the BasicFabricEvent implementation for ApplicationUpgradeCompletedEvent.
4646func (auce ApplicationUpgradeCompletedEvent) AsNodeClosedEvent() (*NodeClosedEvent, bool) {
4647	return nil, false
4648}
4649
4650// AsNodeDeactivateCompletedEvent is the BasicFabricEvent implementation for ApplicationUpgradeCompletedEvent.
4651func (auce ApplicationUpgradeCompletedEvent) AsNodeDeactivateCompletedEvent() (*NodeDeactivateCompletedEvent, bool) {
4652	return nil, false
4653}
4654
4655// AsNodeDeactivateStartedEvent is the BasicFabricEvent implementation for ApplicationUpgradeCompletedEvent.
4656func (auce ApplicationUpgradeCompletedEvent) AsNodeDeactivateStartedEvent() (*NodeDeactivateStartedEvent, bool) {
4657	return nil, false
4658}
4659
4660// AsNodeDownEvent is the BasicFabricEvent implementation for ApplicationUpgradeCompletedEvent.
4661func (auce ApplicationUpgradeCompletedEvent) AsNodeDownEvent() (*NodeDownEvent, bool) {
4662	return nil, false
4663}
4664
4665// AsNodeNewHealthReportEvent is the BasicFabricEvent implementation for ApplicationUpgradeCompletedEvent.
4666func (auce ApplicationUpgradeCompletedEvent) AsNodeNewHealthReportEvent() (*NodeNewHealthReportEvent, bool) {
4667	return nil, false
4668}
4669
4670// AsNodeHealthReportExpiredEvent is the BasicFabricEvent implementation for ApplicationUpgradeCompletedEvent.
4671func (auce ApplicationUpgradeCompletedEvent) AsNodeHealthReportExpiredEvent() (*NodeHealthReportExpiredEvent, bool) {
4672	return nil, false
4673}
4674
4675// AsNodeOpenSucceededEvent is the BasicFabricEvent implementation for ApplicationUpgradeCompletedEvent.
4676func (auce ApplicationUpgradeCompletedEvent) AsNodeOpenSucceededEvent() (*NodeOpenSucceededEvent, bool) {
4677	return nil, false
4678}
4679
4680// AsNodeOpenFailedEvent is the BasicFabricEvent implementation for ApplicationUpgradeCompletedEvent.
4681func (auce ApplicationUpgradeCompletedEvent) AsNodeOpenFailedEvent() (*NodeOpenFailedEvent, bool) {
4682	return nil, false
4683}
4684
4685// AsNodeRemovedFromClusterEvent is the BasicFabricEvent implementation for ApplicationUpgradeCompletedEvent.
4686func (auce ApplicationUpgradeCompletedEvent) AsNodeRemovedFromClusterEvent() (*NodeRemovedFromClusterEvent, bool) {
4687	return nil, false
4688}
4689
4690// AsNodeUpEvent is the BasicFabricEvent implementation for ApplicationUpgradeCompletedEvent.
4691func (auce ApplicationUpgradeCompletedEvent) AsNodeUpEvent() (*NodeUpEvent, bool) {
4692	return nil, false
4693}
4694
4695// AsPartitionNewHealthReportEvent is the BasicFabricEvent implementation for ApplicationUpgradeCompletedEvent.
4696func (auce ApplicationUpgradeCompletedEvent) AsPartitionNewHealthReportEvent() (*PartitionNewHealthReportEvent, bool) {
4697	return nil, false
4698}
4699
4700// AsPartitionHealthReportExpiredEvent is the BasicFabricEvent implementation for ApplicationUpgradeCompletedEvent.
4701func (auce ApplicationUpgradeCompletedEvent) AsPartitionHealthReportExpiredEvent() (*PartitionHealthReportExpiredEvent, bool) {
4702	return nil, false
4703}
4704
4705// AsPartitionReconfiguredEvent is the BasicFabricEvent implementation for ApplicationUpgradeCompletedEvent.
4706func (auce ApplicationUpgradeCompletedEvent) AsPartitionReconfiguredEvent() (*PartitionReconfiguredEvent, bool) {
4707	return nil, false
4708}
4709
4710// AsPartitionPrimaryMoveAnalysisEvent is the BasicFabricEvent implementation for ApplicationUpgradeCompletedEvent.
4711func (auce ApplicationUpgradeCompletedEvent) AsPartitionPrimaryMoveAnalysisEvent() (*PartitionPrimaryMoveAnalysisEvent, bool) {
4712	return nil, false
4713}
4714
4715// AsServiceCreatedEvent is the BasicFabricEvent implementation for ApplicationUpgradeCompletedEvent.
4716func (auce ApplicationUpgradeCompletedEvent) AsServiceCreatedEvent() (*ServiceCreatedEvent, bool) {
4717	return nil, false
4718}
4719
4720// AsServiceDeletedEvent is the BasicFabricEvent implementation for ApplicationUpgradeCompletedEvent.
4721func (auce ApplicationUpgradeCompletedEvent) AsServiceDeletedEvent() (*ServiceDeletedEvent, bool) {
4722	return nil, false
4723}
4724
4725// AsServiceNewHealthReportEvent is the BasicFabricEvent implementation for ApplicationUpgradeCompletedEvent.
4726func (auce ApplicationUpgradeCompletedEvent) AsServiceNewHealthReportEvent() (*ServiceNewHealthReportEvent, bool) {
4727	return nil, false
4728}
4729
4730// AsServiceHealthReportExpiredEvent is the BasicFabricEvent implementation for ApplicationUpgradeCompletedEvent.
4731func (auce ApplicationUpgradeCompletedEvent) AsServiceHealthReportExpiredEvent() (*ServiceHealthReportExpiredEvent, bool) {
4732	return nil, false
4733}
4734
4735// AsDeployedServicePackageNewHealthReportEvent is the BasicFabricEvent implementation for ApplicationUpgradeCompletedEvent.
4736func (auce ApplicationUpgradeCompletedEvent) AsDeployedServicePackageNewHealthReportEvent() (*DeployedServicePackageNewHealthReportEvent, bool) {
4737	return nil, false
4738}
4739
4740// AsDeployedServicePackageHealthReportExpiredEvent is the BasicFabricEvent implementation for ApplicationUpgradeCompletedEvent.
4741func (auce ApplicationUpgradeCompletedEvent) AsDeployedServicePackageHealthReportExpiredEvent() (*DeployedServicePackageHealthReportExpiredEvent, bool) {
4742	return nil, false
4743}
4744
4745// AsStatefulReplicaNewHealthReportEvent is the BasicFabricEvent implementation for ApplicationUpgradeCompletedEvent.
4746func (auce ApplicationUpgradeCompletedEvent) AsStatefulReplicaNewHealthReportEvent() (*StatefulReplicaNewHealthReportEvent, bool) {
4747	return nil, false
4748}
4749
4750// AsStatefulReplicaHealthReportExpiredEvent is the BasicFabricEvent implementation for ApplicationUpgradeCompletedEvent.
4751func (auce ApplicationUpgradeCompletedEvent) AsStatefulReplicaHealthReportExpiredEvent() (*StatefulReplicaHealthReportExpiredEvent, bool) {
4752	return nil, false
4753}
4754
4755// AsStatelessReplicaNewHealthReportEvent is the BasicFabricEvent implementation for ApplicationUpgradeCompletedEvent.
4756func (auce ApplicationUpgradeCompletedEvent) AsStatelessReplicaNewHealthReportEvent() (*StatelessReplicaNewHealthReportEvent, bool) {
4757	return nil, false
4758}
4759
4760// AsStatelessReplicaHealthReportExpiredEvent is the BasicFabricEvent implementation for ApplicationUpgradeCompletedEvent.
4761func (auce ApplicationUpgradeCompletedEvent) AsStatelessReplicaHealthReportExpiredEvent() (*StatelessReplicaHealthReportExpiredEvent, bool) {
4762	return nil, false
4763}
4764
4765// AsClusterNewHealthReportEvent is the BasicFabricEvent implementation for ApplicationUpgradeCompletedEvent.
4766func (auce ApplicationUpgradeCompletedEvent) AsClusterNewHealthReportEvent() (*ClusterNewHealthReportEvent, bool) {
4767	return nil, false
4768}
4769
4770// AsClusterHealthReportExpiredEvent is the BasicFabricEvent implementation for ApplicationUpgradeCompletedEvent.
4771func (auce ApplicationUpgradeCompletedEvent) AsClusterHealthReportExpiredEvent() (*ClusterHealthReportExpiredEvent, bool) {
4772	return nil, false
4773}
4774
4775// AsClusterUpgradeCompletedEvent is the BasicFabricEvent implementation for ApplicationUpgradeCompletedEvent.
4776func (auce ApplicationUpgradeCompletedEvent) AsClusterUpgradeCompletedEvent() (*ClusterUpgradeCompletedEvent, bool) {
4777	return nil, false
4778}
4779
4780// AsClusterUpgradeDomainCompletedEvent is the BasicFabricEvent implementation for ApplicationUpgradeCompletedEvent.
4781func (auce ApplicationUpgradeCompletedEvent) AsClusterUpgradeDomainCompletedEvent() (*ClusterUpgradeDomainCompletedEvent, bool) {
4782	return nil, false
4783}
4784
4785// AsClusterUpgradeRollbackCompletedEvent is the BasicFabricEvent implementation for ApplicationUpgradeCompletedEvent.
4786func (auce ApplicationUpgradeCompletedEvent) AsClusterUpgradeRollbackCompletedEvent() (*ClusterUpgradeRollbackCompletedEvent, bool) {
4787	return nil, false
4788}
4789
4790// AsClusterUpgradeRollbackStartedEvent is the BasicFabricEvent implementation for ApplicationUpgradeCompletedEvent.
4791func (auce ApplicationUpgradeCompletedEvent) AsClusterUpgradeRollbackStartedEvent() (*ClusterUpgradeRollbackStartedEvent, bool) {
4792	return nil, false
4793}
4794
4795// AsClusterUpgradeStartedEvent is the BasicFabricEvent implementation for ApplicationUpgradeCompletedEvent.
4796func (auce ApplicationUpgradeCompletedEvent) AsClusterUpgradeStartedEvent() (*ClusterUpgradeStartedEvent, bool) {
4797	return nil, false
4798}
4799
4800// AsChaosStoppedEvent is the BasicFabricEvent implementation for ApplicationUpgradeCompletedEvent.
4801func (auce ApplicationUpgradeCompletedEvent) AsChaosStoppedEvent() (*ChaosStoppedEvent, bool) {
4802	return nil, false
4803}
4804
4805// AsChaosStartedEvent is the BasicFabricEvent implementation for ApplicationUpgradeCompletedEvent.
4806func (auce ApplicationUpgradeCompletedEvent) AsChaosStartedEvent() (*ChaosStartedEvent, bool) {
4807	return nil, false
4808}
4809
4810// AsChaosCodePackageRestartScheduledEvent is the BasicFabricEvent implementation for ApplicationUpgradeCompletedEvent.
4811func (auce ApplicationUpgradeCompletedEvent) AsChaosCodePackageRestartScheduledEvent() (*ChaosCodePackageRestartScheduledEvent, bool) {
4812	return nil, false
4813}
4814
4815// AsChaosReplicaRemovalScheduledEvent is the BasicFabricEvent implementation for ApplicationUpgradeCompletedEvent.
4816func (auce ApplicationUpgradeCompletedEvent) AsChaosReplicaRemovalScheduledEvent() (*ChaosReplicaRemovalScheduledEvent, bool) {
4817	return nil, false
4818}
4819
4820// AsChaosPartitionSecondaryMoveScheduledEvent is the BasicFabricEvent implementation for ApplicationUpgradeCompletedEvent.
4821func (auce ApplicationUpgradeCompletedEvent) AsChaosPartitionSecondaryMoveScheduledEvent() (*ChaosPartitionSecondaryMoveScheduledEvent, bool) {
4822	return nil, false
4823}
4824
4825// AsChaosPartitionPrimaryMoveScheduledEvent is the BasicFabricEvent implementation for ApplicationUpgradeCompletedEvent.
4826func (auce ApplicationUpgradeCompletedEvent) AsChaosPartitionPrimaryMoveScheduledEvent() (*ChaosPartitionPrimaryMoveScheduledEvent, bool) {
4827	return nil, false
4828}
4829
4830// AsChaosReplicaRestartScheduledEvent is the BasicFabricEvent implementation for ApplicationUpgradeCompletedEvent.
4831func (auce ApplicationUpgradeCompletedEvent) AsChaosReplicaRestartScheduledEvent() (*ChaosReplicaRestartScheduledEvent, bool) {
4832	return nil, false
4833}
4834
4835// AsChaosNodeRestartScheduledEvent is the BasicFabricEvent implementation for ApplicationUpgradeCompletedEvent.
4836func (auce ApplicationUpgradeCompletedEvent) AsChaosNodeRestartScheduledEvent() (*ChaosNodeRestartScheduledEvent, bool) {
4837	return nil, false
4838}
4839
4840// AsFabricEvent is the BasicFabricEvent implementation for ApplicationUpgradeCompletedEvent.
4841func (auce ApplicationUpgradeCompletedEvent) AsFabricEvent() (*FabricEvent, bool) {
4842	return nil, false
4843}
4844
4845// AsBasicFabricEvent is the BasicFabricEvent implementation for ApplicationUpgradeCompletedEvent.
4846func (auce ApplicationUpgradeCompletedEvent) AsBasicFabricEvent() (BasicFabricEvent, bool) {
4847	return &auce, true
4848}
4849
4850// ApplicationUpgradeDescription describes the parameters for an application upgrade. Note that upgrade
4851// description replaces the existing application description. This means that if the parameters are not
4852// specified, the existing parameters on the applications will be overwritten with the empty parameters
4853// list. This would result in the application using the default value of the parameters from the
4854// application manifest. If you do not want to change any existing parameter values, please get the
4855// application parameters first using the GetApplicationInfo query and then supply those values as
4856// Parameters in this ApplicationUpgradeDescription.
4857type ApplicationUpgradeDescription struct {
4858	// Name - The name of the target application, including the 'fabric:' URI scheme.
4859	Name *string `json:"Name,omitempty"`
4860	// TargetApplicationTypeVersion - The target application type version (found in the application manifest) for the application upgrade.
4861	TargetApplicationTypeVersion *string `json:"TargetApplicationTypeVersion,omitempty"`
4862	// Parameters - List of application parameters with overridden values from their default values specified in the application manifest.
4863	Parameters *[]ApplicationParameter `json:"Parameters,omitempty"`
4864	// UpgradeKind - The kind of upgrade out of the following possible values. Possible values include: 'UpgradeKindInvalid', 'UpgradeKindRolling'
4865	UpgradeKind UpgradeKind `json:"UpgradeKind,omitempty"`
4866	// 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'
4867	RollingUpgradeMode UpgradeMode `json:"RollingUpgradeMode,omitempty"`
4868	// 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).
4869	UpgradeReplicaSetCheckTimeoutInSeconds *int64 `json:"UpgradeReplicaSetCheckTimeoutInSeconds,omitempty"`
4870	// 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).
4871	ForceRestart *bool `json:"ForceRestart,omitempty"`
4872	// SortOrder - Defines the order in which an upgrade proceeds through the cluster. Possible values include: 'UpgradeSortOrderInvalid', 'UpgradeSortOrderDefault', 'UpgradeSortOrderNumeric', 'UpgradeSortOrderLexicographical', 'UpgradeSortOrderReverseNumeric', 'UpgradeSortOrderReverseLexicographical'
4873	SortOrder UpgradeSortOrder `json:"SortOrder,omitempty"`
4874	// MonitoringPolicy - Describes the parameters for monitoring an upgrade in Monitored mode.
4875	MonitoringPolicy *MonitoringPolicyDescription `json:"MonitoringPolicy,omitempty"`
4876	// ApplicationHealthPolicy - Defines a health policy used to evaluate the health of an application or one of its children entities.
4877	ApplicationHealthPolicy *ApplicationHealthPolicy `json:"ApplicationHealthPolicy,omitempty"`
4878}
4879
4880// ApplicationUpgradeDomainCompletedEvent application Upgrade Domain Completed event.
4881type ApplicationUpgradeDomainCompletedEvent struct {
4882	// ApplicationTypeName - Application type name.
4883	ApplicationTypeName *string `json:"ApplicationTypeName,omitempty"`
4884	// CurrentApplicationTypeVersion - Current Application type version.
4885	CurrentApplicationTypeVersion *string `json:"CurrentApplicationTypeVersion,omitempty"`
4886	// ApplicationTypeVersion - Target Application type version.
4887	ApplicationTypeVersion *string `json:"ApplicationTypeVersion,omitempty"`
4888	// UpgradeState - State of upgrade.
4889	UpgradeState *string `json:"UpgradeState,omitempty"`
4890	// UpgradeDomains - Upgrade domains.
4891	UpgradeDomains *string `json:"UpgradeDomains,omitempty"`
4892	// UpgradeDomainElapsedTimeInMs - Upgrade time of domain in milli-seconds.
4893	UpgradeDomainElapsedTimeInMs *float64 `json:"UpgradeDomainElapsedTimeInMs,omitempty"`
4894	// 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.
4895	// Starting in version 6.0, hierarchical names are delimited with the "\~" character. For example, if the application name is "fabric:/myapp/app1",
4896	// the application identity would be "myapp\~app1" in 6.0+ and "myapp/app1" in previous versions.
4897	ApplicationID *string `json:"ApplicationId,omitempty"`
4898	// EventInstanceID - The identifier for the FabricEvent instance.
4899	EventInstanceID *uuid.UUID `json:"EventInstanceId,omitempty"`
4900	// Category - The category of event.
4901	Category *string `json:"Category,omitempty"`
4902	// TimeStamp - The time event was logged.
4903	TimeStamp *date.Time `json:"TimeStamp,omitempty"`
4904	// HasCorrelatedEvents - Shows there is existing related events available.
4905	HasCorrelatedEvents *bool `json:"HasCorrelatedEvents,omitempty"`
4906	// 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'
4907	Kind KindBasicFabricEvent `json:"Kind,omitempty"`
4908}
4909
4910// MarshalJSON is the custom marshaler for ApplicationUpgradeDomainCompletedEvent.
4911func (audce ApplicationUpgradeDomainCompletedEvent) MarshalJSON() ([]byte, error) {
4912	audce.Kind = KindApplicationUpgradeDomainCompleted
4913	objectMap := make(map[string]interface{})
4914	if audce.ApplicationTypeName != nil {
4915		objectMap["ApplicationTypeName"] = audce.ApplicationTypeName
4916	}
4917	if audce.CurrentApplicationTypeVersion != nil {
4918		objectMap["CurrentApplicationTypeVersion"] = audce.CurrentApplicationTypeVersion
4919	}
4920	if audce.ApplicationTypeVersion != nil {
4921		objectMap["ApplicationTypeVersion"] = audce.ApplicationTypeVersion
4922	}
4923	if audce.UpgradeState != nil {
4924		objectMap["UpgradeState"] = audce.UpgradeState
4925	}
4926	if audce.UpgradeDomains != nil {
4927		objectMap["UpgradeDomains"] = audce.UpgradeDomains
4928	}
4929	if audce.UpgradeDomainElapsedTimeInMs != nil {
4930		objectMap["UpgradeDomainElapsedTimeInMs"] = audce.UpgradeDomainElapsedTimeInMs
4931	}
4932	if audce.ApplicationID != nil {
4933		objectMap["ApplicationId"] = audce.ApplicationID
4934	}
4935	if audce.EventInstanceID != nil {
4936		objectMap["EventInstanceId"] = audce.EventInstanceID
4937	}
4938	if audce.Category != nil {
4939		objectMap["Category"] = audce.Category
4940	}
4941	if audce.TimeStamp != nil {
4942		objectMap["TimeStamp"] = audce.TimeStamp
4943	}
4944	if audce.HasCorrelatedEvents != nil {
4945		objectMap["HasCorrelatedEvents"] = audce.HasCorrelatedEvents
4946	}
4947	if audce.Kind != "" {
4948		objectMap["Kind"] = audce.Kind
4949	}
4950	return json.Marshal(objectMap)
4951}
4952
4953// AsApplicationEvent is the BasicFabricEvent implementation for ApplicationUpgradeDomainCompletedEvent.
4954func (audce ApplicationUpgradeDomainCompletedEvent) AsApplicationEvent() (*ApplicationEvent, bool) {
4955	return nil, false
4956}
4957
4958// AsBasicApplicationEvent is the BasicFabricEvent implementation for ApplicationUpgradeDomainCompletedEvent.
4959func (audce ApplicationUpgradeDomainCompletedEvent) AsBasicApplicationEvent() (BasicApplicationEvent, bool) {
4960	return &audce, true
4961}
4962
4963// AsClusterEvent is the BasicFabricEvent implementation for ApplicationUpgradeDomainCompletedEvent.
4964func (audce ApplicationUpgradeDomainCompletedEvent) AsClusterEvent() (*ClusterEvent, bool) {
4965	return nil, false
4966}
4967
4968// AsBasicClusterEvent is the BasicFabricEvent implementation for ApplicationUpgradeDomainCompletedEvent.
4969func (audce ApplicationUpgradeDomainCompletedEvent) AsBasicClusterEvent() (BasicClusterEvent, bool) {
4970	return nil, false
4971}
4972
4973// AsContainerInstanceEvent is the BasicFabricEvent implementation for ApplicationUpgradeDomainCompletedEvent.
4974func (audce ApplicationUpgradeDomainCompletedEvent) AsContainerInstanceEvent() (*ContainerInstanceEvent, bool) {
4975	return nil, false
4976}
4977
4978// AsNodeEvent is the BasicFabricEvent implementation for ApplicationUpgradeDomainCompletedEvent.
4979func (audce ApplicationUpgradeDomainCompletedEvent) AsNodeEvent() (*NodeEvent, bool) {
4980	return nil, false
4981}
4982
4983// AsBasicNodeEvent is the BasicFabricEvent implementation for ApplicationUpgradeDomainCompletedEvent.
4984func (audce ApplicationUpgradeDomainCompletedEvent) AsBasicNodeEvent() (BasicNodeEvent, bool) {
4985	return nil, false
4986}
4987
4988// AsPartitionAnalysisEvent is the BasicFabricEvent implementation for ApplicationUpgradeDomainCompletedEvent.
4989func (audce ApplicationUpgradeDomainCompletedEvent) AsPartitionAnalysisEvent() (*PartitionAnalysisEvent, bool) {
4990	return nil, false
4991}
4992
4993// AsBasicPartitionAnalysisEvent is the BasicFabricEvent implementation for ApplicationUpgradeDomainCompletedEvent.
4994func (audce ApplicationUpgradeDomainCompletedEvent) AsBasicPartitionAnalysisEvent() (BasicPartitionAnalysisEvent, bool) {
4995	return nil, false
4996}
4997
4998// AsPartitionEvent is the BasicFabricEvent implementation for ApplicationUpgradeDomainCompletedEvent.
4999func (audce ApplicationUpgradeDomainCompletedEvent) AsPartitionEvent() (*PartitionEvent, bool) {
5000	return nil, false
5001}
5002
5003// AsBasicPartitionEvent is the BasicFabricEvent implementation for ApplicationUpgradeDomainCompletedEvent.
5004func (audce ApplicationUpgradeDomainCompletedEvent) AsBasicPartitionEvent() (BasicPartitionEvent, bool) {
5005	return nil, false
5006}
5007
5008// AsReplicaEvent is the BasicFabricEvent implementation for ApplicationUpgradeDomainCompletedEvent.
5009func (audce ApplicationUpgradeDomainCompletedEvent) AsReplicaEvent() (*ReplicaEvent, bool) {
5010	return nil, false
5011}
5012
5013// AsBasicReplicaEvent is the BasicFabricEvent implementation for ApplicationUpgradeDomainCompletedEvent.
5014func (audce ApplicationUpgradeDomainCompletedEvent) AsBasicReplicaEvent() (BasicReplicaEvent, bool) {
5015	return nil, false
5016}
5017
5018// AsServiceEvent is the BasicFabricEvent implementation for ApplicationUpgradeDomainCompletedEvent.
5019func (audce ApplicationUpgradeDomainCompletedEvent) AsServiceEvent() (*ServiceEvent, bool) {
5020	return nil, false
5021}
5022
5023// AsBasicServiceEvent is the BasicFabricEvent implementation for ApplicationUpgradeDomainCompletedEvent.
5024func (audce ApplicationUpgradeDomainCompletedEvent) AsBasicServiceEvent() (BasicServiceEvent, bool) {
5025	return nil, false
5026}
5027
5028// AsApplicationCreatedEvent is the BasicFabricEvent implementation for ApplicationUpgradeDomainCompletedEvent.
5029func (audce ApplicationUpgradeDomainCompletedEvent) AsApplicationCreatedEvent() (*ApplicationCreatedEvent, bool) {
5030	return nil, false
5031}
5032
5033// AsApplicationDeletedEvent is the BasicFabricEvent implementation for ApplicationUpgradeDomainCompletedEvent.
5034func (audce ApplicationUpgradeDomainCompletedEvent) AsApplicationDeletedEvent() (*ApplicationDeletedEvent, bool) {
5035	return nil, false
5036}
5037
5038// AsApplicationNewHealthReportEvent is the BasicFabricEvent implementation for ApplicationUpgradeDomainCompletedEvent.
5039func (audce ApplicationUpgradeDomainCompletedEvent) AsApplicationNewHealthReportEvent() (*ApplicationNewHealthReportEvent, bool) {
5040	return nil, false
5041}
5042
5043// AsApplicationHealthReportExpiredEvent is the BasicFabricEvent implementation for ApplicationUpgradeDomainCompletedEvent.
5044func (audce ApplicationUpgradeDomainCompletedEvent) AsApplicationHealthReportExpiredEvent() (*ApplicationHealthReportExpiredEvent, bool) {
5045	return nil, false
5046}
5047
5048// AsApplicationUpgradeCompletedEvent is the BasicFabricEvent implementation for ApplicationUpgradeDomainCompletedEvent.
5049func (audce ApplicationUpgradeDomainCompletedEvent) AsApplicationUpgradeCompletedEvent() (*ApplicationUpgradeCompletedEvent, bool) {
5050	return nil, false
5051}
5052
5053// AsApplicationUpgradeDomainCompletedEvent is the BasicFabricEvent implementation for ApplicationUpgradeDomainCompletedEvent.
5054func (audce ApplicationUpgradeDomainCompletedEvent) AsApplicationUpgradeDomainCompletedEvent() (*ApplicationUpgradeDomainCompletedEvent, bool) {
5055	return &audce, true
5056}
5057
5058// AsApplicationUpgradeRollbackCompletedEvent is the BasicFabricEvent implementation for ApplicationUpgradeDomainCompletedEvent.
5059func (audce ApplicationUpgradeDomainCompletedEvent) AsApplicationUpgradeRollbackCompletedEvent() (*ApplicationUpgradeRollbackCompletedEvent, bool) {
5060	return nil, false
5061}
5062
5063// AsApplicationUpgradeRollbackStartedEvent is the BasicFabricEvent implementation for ApplicationUpgradeDomainCompletedEvent.
5064func (audce ApplicationUpgradeDomainCompletedEvent) AsApplicationUpgradeRollbackStartedEvent() (*ApplicationUpgradeRollbackStartedEvent, bool) {
5065	return nil, false
5066}
5067
5068// AsApplicationUpgradeStartedEvent is the BasicFabricEvent implementation for ApplicationUpgradeDomainCompletedEvent.
5069func (audce ApplicationUpgradeDomainCompletedEvent) AsApplicationUpgradeStartedEvent() (*ApplicationUpgradeStartedEvent, bool) {
5070	return nil, false
5071}
5072
5073// AsDeployedApplicationNewHealthReportEvent is the BasicFabricEvent implementation for ApplicationUpgradeDomainCompletedEvent.
5074func (audce ApplicationUpgradeDomainCompletedEvent) AsDeployedApplicationNewHealthReportEvent() (*DeployedApplicationNewHealthReportEvent, bool) {
5075	return nil, false
5076}
5077
5078// AsDeployedApplicationHealthReportExpiredEvent is the BasicFabricEvent implementation for ApplicationUpgradeDomainCompletedEvent.
5079func (audce ApplicationUpgradeDomainCompletedEvent) AsDeployedApplicationHealthReportExpiredEvent() (*DeployedApplicationHealthReportExpiredEvent, bool) {
5080	return nil, false
5081}
5082
5083// AsApplicationProcessExitedEvent is the BasicFabricEvent implementation for ApplicationUpgradeDomainCompletedEvent.
5084func (audce ApplicationUpgradeDomainCompletedEvent) AsApplicationProcessExitedEvent() (*ApplicationProcessExitedEvent, bool) {
5085	return nil, false
5086}
5087
5088// AsApplicationContainerInstanceExitedEvent is the BasicFabricEvent implementation for ApplicationUpgradeDomainCompletedEvent.
5089func (audce ApplicationUpgradeDomainCompletedEvent) AsApplicationContainerInstanceExitedEvent() (*ApplicationContainerInstanceExitedEvent, bool) {
5090	return nil, false
5091}
5092
5093// AsNodeAbortedEvent is the BasicFabricEvent implementation for ApplicationUpgradeDomainCompletedEvent.
5094func (audce ApplicationUpgradeDomainCompletedEvent) AsNodeAbortedEvent() (*NodeAbortedEvent, bool) {
5095	return nil, false
5096}
5097
5098// AsNodeAddedToClusterEvent is the BasicFabricEvent implementation for ApplicationUpgradeDomainCompletedEvent.
5099func (audce ApplicationUpgradeDomainCompletedEvent) AsNodeAddedToClusterEvent() (*NodeAddedToClusterEvent, bool) {
5100	return nil, false
5101}
5102
5103// AsNodeClosedEvent is the BasicFabricEvent implementation for ApplicationUpgradeDomainCompletedEvent.
5104func (audce ApplicationUpgradeDomainCompletedEvent) AsNodeClosedEvent() (*NodeClosedEvent, bool) {
5105	return nil, false
5106}
5107
5108// AsNodeDeactivateCompletedEvent is the BasicFabricEvent implementation for ApplicationUpgradeDomainCompletedEvent.
5109func (audce ApplicationUpgradeDomainCompletedEvent) AsNodeDeactivateCompletedEvent() (*NodeDeactivateCompletedEvent, bool) {
5110	return nil, false
5111}
5112
5113// AsNodeDeactivateStartedEvent is the BasicFabricEvent implementation for ApplicationUpgradeDomainCompletedEvent.
5114func (audce ApplicationUpgradeDomainCompletedEvent) AsNodeDeactivateStartedEvent() (*NodeDeactivateStartedEvent, bool) {
5115	return nil, false
5116}
5117
5118// AsNodeDownEvent is the BasicFabricEvent implementation for ApplicationUpgradeDomainCompletedEvent.
5119func (audce ApplicationUpgradeDomainCompletedEvent) AsNodeDownEvent() (*NodeDownEvent, bool) {
5120	return nil, false
5121}
5122
5123// AsNodeNewHealthReportEvent is the BasicFabricEvent implementation for ApplicationUpgradeDomainCompletedEvent.
5124func (audce ApplicationUpgradeDomainCompletedEvent) AsNodeNewHealthReportEvent() (*NodeNewHealthReportEvent, bool) {
5125	return nil, false
5126}
5127
5128// AsNodeHealthReportExpiredEvent is the BasicFabricEvent implementation for ApplicationUpgradeDomainCompletedEvent.
5129func (audce ApplicationUpgradeDomainCompletedEvent) AsNodeHealthReportExpiredEvent() (*NodeHealthReportExpiredEvent, bool) {
5130	return nil, false
5131}
5132
5133// AsNodeOpenSucceededEvent is the BasicFabricEvent implementation for ApplicationUpgradeDomainCompletedEvent.
5134func (audce ApplicationUpgradeDomainCompletedEvent) AsNodeOpenSucceededEvent() (*NodeOpenSucceededEvent, bool) {
5135	return nil, false
5136}
5137
5138// AsNodeOpenFailedEvent is the BasicFabricEvent implementation for ApplicationUpgradeDomainCompletedEvent.
5139func (audce ApplicationUpgradeDomainCompletedEvent) AsNodeOpenFailedEvent() (*NodeOpenFailedEvent, bool) {
5140	return nil, false
5141}
5142
5143// AsNodeRemovedFromClusterEvent is the BasicFabricEvent implementation for ApplicationUpgradeDomainCompletedEvent.
5144func (audce ApplicationUpgradeDomainCompletedEvent) AsNodeRemovedFromClusterEvent() (*NodeRemovedFromClusterEvent, bool) {
5145	return nil, false
5146}
5147
5148// AsNodeUpEvent is the BasicFabricEvent implementation for ApplicationUpgradeDomainCompletedEvent.
5149func (audce ApplicationUpgradeDomainCompletedEvent) AsNodeUpEvent() (*NodeUpEvent, bool) {
5150	return nil, false
5151}
5152
5153// AsPartitionNewHealthReportEvent is the BasicFabricEvent implementation for ApplicationUpgradeDomainCompletedEvent.
5154func (audce ApplicationUpgradeDomainCompletedEvent) AsPartitionNewHealthReportEvent() (*PartitionNewHealthReportEvent, bool) {
5155	return nil, false
5156}
5157
5158// AsPartitionHealthReportExpiredEvent is the BasicFabricEvent implementation for ApplicationUpgradeDomainCompletedEvent.
5159func (audce ApplicationUpgradeDomainCompletedEvent) AsPartitionHealthReportExpiredEvent() (*PartitionHealthReportExpiredEvent, bool) {
5160	return nil, false
5161}
5162
5163// AsPartitionReconfiguredEvent is the BasicFabricEvent implementation for ApplicationUpgradeDomainCompletedEvent.
5164func (audce ApplicationUpgradeDomainCompletedEvent) AsPartitionReconfiguredEvent() (*PartitionReconfiguredEvent, bool) {
5165	return nil, false
5166}
5167
5168// AsPartitionPrimaryMoveAnalysisEvent is the BasicFabricEvent implementation for ApplicationUpgradeDomainCompletedEvent.
5169func (audce ApplicationUpgradeDomainCompletedEvent) AsPartitionPrimaryMoveAnalysisEvent() (*PartitionPrimaryMoveAnalysisEvent, bool) {
5170	return nil, false
5171}
5172
5173// AsServiceCreatedEvent is the BasicFabricEvent implementation for ApplicationUpgradeDomainCompletedEvent.
5174func (audce ApplicationUpgradeDomainCompletedEvent) AsServiceCreatedEvent() (*ServiceCreatedEvent, bool) {
5175	return nil, false
5176}
5177
5178// AsServiceDeletedEvent is the BasicFabricEvent implementation for ApplicationUpgradeDomainCompletedEvent.
5179func (audce ApplicationUpgradeDomainCompletedEvent) AsServiceDeletedEvent() (*ServiceDeletedEvent, bool) {
5180	return nil, false
5181}
5182
5183// AsServiceNewHealthReportEvent is the BasicFabricEvent implementation for ApplicationUpgradeDomainCompletedEvent.
5184func (audce ApplicationUpgradeDomainCompletedEvent) AsServiceNewHealthReportEvent() (*ServiceNewHealthReportEvent, bool) {
5185	return nil, false
5186}
5187
5188// AsServiceHealthReportExpiredEvent is the BasicFabricEvent implementation for ApplicationUpgradeDomainCompletedEvent.
5189func (audce ApplicationUpgradeDomainCompletedEvent) AsServiceHealthReportExpiredEvent() (*ServiceHealthReportExpiredEvent, bool) {
5190	return nil, false
5191}
5192
5193// AsDeployedServicePackageNewHealthReportEvent is the BasicFabricEvent implementation for ApplicationUpgradeDomainCompletedEvent.
5194func (audce ApplicationUpgradeDomainCompletedEvent) AsDeployedServicePackageNewHealthReportEvent() (*DeployedServicePackageNewHealthReportEvent, bool) {
5195	return nil, false
5196}
5197
5198// AsDeployedServicePackageHealthReportExpiredEvent is the BasicFabricEvent implementation for ApplicationUpgradeDomainCompletedEvent.
5199func (audce ApplicationUpgradeDomainCompletedEvent) AsDeployedServicePackageHealthReportExpiredEvent() (*DeployedServicePackageHealthReportExpiredEvent, bool) {
5200	return nil, false
5201}
5202
5203// AsStatefulReplicaNewHealthReportEvent is the BasicFabricEvent implementation for ApplicationUpgradeDomainCompletedEvent.
5204func (audce ApplicationUpgradeDomainCompletedEvent) AsStatefulReplicaNewHealthReportEvent() (*StatefulReplicaNewHealthReportEvent, bool) {
5205	return nil, false
5206}
5207
5208// AsStatefulReplicaHealthReportExpiredEvent is the BasicFabricEvent implementation for ApplicationUpgradeDomainCompletedEvent.
5209func (audce ApplicationUpgradeDomainCompletedEvent) AsStatefulReplicaHealthReportExpiredEvent() (*StatefulReplicaHealthReportExpiredEvent, bool) {
5210	return nil, false
5211}
5212
5213// AsStatelessReplicaNewHealthReportEvent is the BasicFabricEvent implementation for ApplicationUpgradeDomainCompletedEvent.
5214func (audce ApplicationUpgradeDomainCompletedEvent) AsStatelessReplicaNewHealthReportEvent() (*StatelessReplicaNewHealthReportEvent, bool) {
5215	return nil, false
5216}
5217
5218// AsStatelessReplicaHealthReportExpiredEvent is the BasicFabricEvent implementation for ApplicationUpgradeDomainCompletedEvent.
5219func (audce ApplicationUpgradeDomainCompletedEvent) AsStatelessReplicaHealthReportExpiredEvent() (*StatelessReplicaHealthReportExpiredEvent, bool) {
5220	return nil, false
5221}
5222
5223// AsClusterNewHealthReportEvent is the BasicFabricEvent implementation for ApplicationUpgradeDomainCompletedEvent.
5224func (audce ApplicationUpgradeDomainCompletedEvent) AsClusterNewHealthReportEvent() (*ClusterNewHealthReportEvent, bool) {
5225	return nil, false
5226}
5227
5228// AsClusterHealthReportExpiredEvent is the BasicFabricEvent implementation for ApplicationUpgradeDomainCompletedEvent.
5229func (audce ApplicationUpgradeDomainCompletedEvent) AsClusterHealthReportExpiredEvent() (*ClusterHealthReportExpiredEvent, bool) {
5230	return nil, false
5231}
5232
5233// AsClusterUpgradeCompletedEvent is the BasicFabricEvent implementation for ApplicationUpgradeDomainCompletedEvent.
5234func (audce ApplicationUpgradeDomainCompletedEvent) AsClusterUpgradeCompletedEvent() (*ClusterUpgradeCompletedEvent, bool) {
5235	return nil, false
5236}
5237
5238// AsClusterUpgradeDomainCompletedEvent is the BasicFabricEvent implementation for ApplicationUpgradeDomainCompletedEvent.
5239func (audce ApplicationUpgradeDomainCompletedEvent) AsClusterUpgradeDomainCompletedEvent() (*ClusterUpgradeDomainCompletedEvent, bool) {
5240	return nil, false
5241}
5242
5243// AsClusterUpgradeRollbackCompletedEvent is the BasicFabricEvent implementation for ApplicationUpgradeDomainCompletedEvent.
5244func (audce ApplicationUpgradeDomainCompletedEvent) AsClusterUpgradeRollbackCompletedEvent() (*ClusterUpgradeRollbackCompletedEvent, bool) {
5245	return nil, false
5246}
5247
5248// AsClusterUpgradeRollbackStartedEvent is the BasicFabricEvent implementation for ApplicationUpgradeDomainCompletedEvent.
5249func (audce ApplicationUpgradeDomainCompletedEvent) AsClusterUpgradeRollbackStartedEvent() (*ClusterUpgradeRollbackStartedEvent, bool) {
5250	return nil, false
5251}
5252
5253// AsClusterUpgradeStartedEvent is the BasicFabricEvent implementation for ApplicationUpgradeDomainCompletedEvent.
5254func (audce ApplicationUpgradeDomainCompletedEvent) AsClusterUpgradeStartedEvent() (*ClusterUpgradeStartedEvent, bool) {
5255	return nil, false
5256}
5257
5258// AsChaosStoppedEvent is the BasicFabricEvent implementation for ApplicationUpgradeDomainCompletedEvent.
5259func (audce ApplicationUpgradeDomainCompletedEvent) AsChaosStoppedEvent() (*ChaosStoppedEvent, bool) {
5260	return nil, false
5261}
5262
5263// AsChaosStartedEvent is the BasicFabricEvent implementation for ApplicationUpgradeDomainCompletedEvent.
5264func (audce ApplicationUpgradeDomainCompletedEvent) AsChaosStartedEvent() (*ChaosStartedEvent, bool) {
5265	return nil, false
5266}
5267
5268// AsChaosCodePackageRestartScheduledEvent is the BasicFabricEvent implementation for ApplicationUpgradeDomainCompletedEvent.
5269func (audce ApplicationUpgradeDomainCompletedEvent) AsChaosCodePackageRestartScheduledEvent() (*ChaosCodePackageRestartScheduledEvent, bool) {
5270	return nil, false
5271}
5272
5273// AsChaosReplicaRemovalScheduledEvent is the BasicFabricEvent implementation for ApplicationUpgradeDomainCompletedEvent.
5274func (audce ApplicationUpgradeDomainCompletedEvent) AsChaosReplicaRemovalScheduledEvent() (*ChaosReplicaRemovalScheduledEvent, bool) {
5275	return nil, false
5276}
5277
5278// AsChaosPartitionSecondaryMoveScheduledEvent is the BasicFabricEvent implementation for ApplicationUpgradeDomainCompletedEvent.
5279func (audce ApplicationUpgradeDomainCompletedEvent) AsChaosPartitionSecondaryMoveScheduledEvent() (*ChaosPartitionSecondaryMoveScheduledEvent, bool) {
5280	return nil, false
5281}
5282
5283// AsChaosPartitionPrimaryMoveScheduledEvent is the BasicFabricEvent implementation for ApplicationUpgradeDomainCompletedEvent.
5284func (audce ApplicationUpgradeDomainCompletedEvent) AsChaosPartitionPrimaryMoveScheduledEvent() (*ChaosPartitionPrimaryMoveScheduledEvent, bool) {
5285	return nil, false
5286}
5287
5288// AsChaosReplicaRestartScheduledEvent is the BasicFabricEvent implementation for ApplicationUpgradeDomainCompletedEvent.
5289func (audce ApplicationUpgradeDomainCompletedEvent) AsChaosReplicaRestartScheduledEvent() (*ChaosReplicaRestartScheduledEvent, bool) {
5290	return nil, false
5291}
5292
5293// AsChaosNodeRestartScheduledEvent is the BasicFabricEvent implementation for ApplicationUpgradeDomainCompletedEvent.
5294func (audce ApplicationUpgradeDomainCompletedEvent) AsChaosNodeRestartScheduledEvent() (*ChaosNodeRestartScheduledEvent, bool) {
5295	return nil, false
5296}
5297
5298// AsFabricEvent is the BasicFabricEvent implementation for ApplicationUpgradeDomainCompletedEvent.
5299func (audce ApplicationUpgradeDomainCompletedEvent) AsFabricEvent() (*FabricEvent, bool) {
5300	return nil, false
5301}
5302
5303// AsBasicFabricEvent is the BasicFabricEvent implementation for ApplicationUpgradeDomainCompletedEvent.
5304func (audce ApplicationUpgradeDomainCompletedEvent) AsBasicFabricEvent() (BasicFabricEvent, bool) {
5305	return &audce, true
5306}
5307
5308// ApplicationUpgradeProgressInfo describes the parameters for an application upgrade.
5309type ApplicationUpgradeProgressInfo struct {
5310	autorest.Response `json:"-"`
5311	// Name - The name of the target application, including the 'fabric:' URI scheme.
5312	Name *string `json:"Name,omitempty"`
5313	// TypeName - The application type name as defined in the application manifest.
5314	TypeName *string `json:"TypeName,omitempty"`
5315	// TargetApplicationTypeVersion - The target application type version (found in the application manifest) for the application upgrade.
5316	TargetApplicationTypeVersion *string `json:"TargetApplicationTypeVersion,omitempty"`
5317	// UpgradeDomains - List of upgrade domains and their statuses.
5318	UpgradeDomains *[]UpgradeDomainInfo `json:"UpgradeDomains,omitempty"`
5319	// UpgradeState - The state of the upgrade domain. Possible values include: 'UpgradeStateInvalid', 'UpgradeStateRollingBackInProgress', 'UpgradeStateRollingBackCompleted', 'UpgradeStateRollingForwardPending', 'UpgradeStateRollingForwardInProgress', 'UpgradeStateRollingForwardCompleted', 'UpgradeStateFailed'
5320	UpgradeState UpgradeState `json:"UpgradeState,omitempty"`
5321	// NextUpgradeDomain - The name of the next upgrade domain to be processed.
5322	NextUpgradeDomain *string `json:"NextUpgradeDomain,omitempty"`
5323	// 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'
5324	RollingUpgradeMode UpgradeMode `json:"RollingUpgradeMode,omitempty"`
5325	// 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.
5326	UpgradeDescription *ApplicationUpgradeDescription `json:"UpgradeDescription,omitempty"`
5327	// UpgradeDurationInMilliseconds - The estimated total amount of time spent processing the overall upgrade.
5328	UpgradeDurationInMilliseconds *string `json:"UpgradeDurationInMilliseconds,omitempty"`
5329	// UpgradeDomainDurationInMilliseconds - The estimated total amount of time spent processing the current upgrade domain.
5330	UpgradeDomainDurationInMilliseconds *string `json:"UpgradeDomainDurationInMilliseconds,omitempty"`
5331	// UnhealthyEvaluations - List of health evaluations that resulted in the current aggregated health state.
5332	UnhealthyEvaluations *[]HealthEvaluationWrapper `json:"UnhealthyEvaluations,omitempty"`
5333	// CurrentUpgradeDomainProgress - Information about the current in-progress upgrade domain.
5334	CurrentUpgradeDomainProgress *CurrentUpgradeDomainProgressInfo `json:"CurrentUpgradeDomainProgress,omitempty"`
5335	// StartTimestampUtc - The estimated UTC datetime when the upgrade started.
5336	StartTimestampUtc *string `json:"StartTimestampUtc,omitempty"`
5337	// FailureTimestampUtc - The estimated UTC datetime when the upgrade failed and FailureAction was executed.
5338	FailureTimestampUtc *string `json:"FailureTimestampUtc,omitempty"`
5339	// FailureReason - The cause of an upgrade failure that resulted in FailureAction being executed. Possible values include: 'None', 'Interrupted', 'HealthCheck', 'UpgradeDomainTimeout', 'OverallUpgradeTimeout'
5340	FailureReason FailureReason `json:"FailureReason,omitempty"`
5341	// UpgradeDomainProgressAtFailure - Information about the upgrade domain progress at the time of upgrade failure.
5342	UpgradeDomainProgressAtFailure *FailureUpgradeDomainProgressInfo `json:"UpgradeDomainProgressAtFailure,omitempty"`
5343	// UpgradeStatusDetails - Additional detailed information about the status of the pending upgrade.
5344	UpgradeStatusDetails *string `json:"UpgradeStatusDetails,omitempty"`
5345}
5346
5347// ApplicationUpgradeRollbackCompletedEvent application Upgrade Rollback Completed event.
5348type ApplicationUpgradeRollbackCompletedEvent struct {
5349	// ApplicationTypeName - Application type name.
5350	ApplicationTypeName *string `json:"ApplicationTypeName,omitempty"`
5351	// ApplicationTypeVersion - Application type version.
5352	ApplicationTypeVersion *string `json:"ApplicationTypeVersion,omitempty"`
5353	// FailureReason - Describes reason of failure.
5354	FailureReason *string `json:"FailureReason,omitempty"`
5355	// OverallUpgradeElapsedTimeInMs - Overall upgrade time in milli-seconds.
5356	OverallUpgradeElapsedTimeInMs *float64 `json:"OverallUpgradeElapsedTimeInMs,omitempty"`
5357	// 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.
5358	// Starting in version 6.0, hierarchical names are delimited with the "\~" character. For example, if the application name is "fabric:/myapp/app1",
5359	// the application identity would be "myapp\~app1" in 6.0+ and "myapp/app1" in previous versions.
5360	ApplicationID *string `json:"ApplicationId,omitempty"`
5361	// EventInstanceID - The identifier for the FabricEvent instance.
5362	EventInstanceID *uuid.UUID `json:"EventInstanceId,omitempty"`
5363	// Category - The category of event.
5364	Category *string `json:"Category,omitempty"`
5365	// TimeStamp - The time event was logged.
5366	TimeStamp *date.Time `json:"TimeStamp,omitempty"`
5367	// HasCorrelatedEvents - Shows there is existing related events available.
5368	HasCorrelatedEvents *bool `json:"HasCorrelatedEvents,omitempty"`
5369	// 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'
5370	Kind KindBasicFabricEvent `json:"Kind,omitempty"`
5371}
5372
5373// MarshalJSON is the custom marshaler for ApplicationUpgradeRollbackCompletedEvent.
5374func (aurce ApplicationUpgradeRollbackCompletedEvent) MarshalJSON() ([]byte, error) {
5375	aurce.Kind = KindApplicationUpgradeRollbackCompleted
5376	objectMap := make(map[string]interface{})
5377	if aurce.ApplicationTypeName != nil {
5378		objectMap["ApplicationTypeName"] = aurce.ApplicationTypeName
5379	}
5380	if aurce.ApplicationTypeVersion != nil {
5381		objectMap["ApplicationTypeVersion"] = aurce.ApplicationTypeVersion
5382	}
5383	if aurce.FailureReason != nil {
5384		objectMap["FailureReason"] = aurce.FailureReason
5385	}
5386	if aurce.OverallUpgradeElapsedTimeInMs != nil {
5387		objectMap["OverallUpgradeElapsedTimeInMs"] = aurce.OverallUpgradeElapsedTimeInMs
5388	}
5389	if aurce.ApplicationID != nil {
5390		objectMap["ApplicationId"] = aurce.ApplicationID
5391	}
5392	if aurce.EventInstanceID != nil {
5393		objectMap["EventInstanceId"] = aurce.EventInstanceID
5394	}
5395	if aurce.Category != nil {
5396		objectMap["Category"] = aurce.Category
5397	}
5398	if aurce.TimeStamp != nil {
5399		objectMap["TimeStamp"] = aurce.TimeStamp
5400	}
5401	if aurce.HasCorrelatedEvents != nil {
5402		objectMap["HasCorrelatedEvents"] = aurce.HasCorrelatedEvents
5403	}
5404	if aurce.Kind != "" {
5405		objectMap["Kind"] = aurce.Kind
5406	}
5407	return json.Marshal(objectMap)
5408}
5409
5410// AsApplicationEvent is the BasicFabricEvent implementation for ApplicationUpgradeRollbackCompletedEvent.
5411func (aurce ApplicationUpgradeRollbackCompletedEvent) AsApplicationEvent() (*ApplicationEvent, bool) {
5412	return nil, false
5413}
5414
5415// AsBasicApplicationEvent is the BasicFabricEvent implementation for ApplicationUpgradeRollbackCompletedEvent.
5416func (aurce ApplicationUpgradeRollbackCompletedEvent) AsBasicApplicationEvent() (BasicApplicationEvent, bool) {
5417	return &aurce, true
5418}
5419
5420// AsClusterEvent is the BasicFabricEvent implementation for ApplicationUpgradeRollbackCompletedEvent.
5421func (aurce ApplicationUpgradeRollbackCompletedEvent) AsClusterEvent() (*ClusterEvent, bool) {
5422	return nil, false
5423}
5424
5425// AsBasicClusterEvent is the BasicFabricEvent implementation for ApplicationUpgradeRollbackCompletedEvent.
5426func (aurce ApplicationUpgradeRollbackCompletedEvent) AsBasicClusterEvent() (BasicClusterEvent, bool) {
5427	return nil, false
5428}
5429
5430// AsContainerInstanceEvent is the BasicFabricEvent implementation for ApplicationUpgradeRollbackCompletedEvent.
5431func (aurce ApplicationUpgradeRollbackCompletedEvent) AsContainerInstanceEvent() (*ContainerInstanceEvent, bool) {
5432	return nil, false
5433}
5434
5435// AsNodeEvent is the BasicFabricEvent implementation for ApplicationUpgradeRollbackCompletedEvent.
5436func (aurce ApplicationUpgradeRollbackCompletedEvent) AsNodeEvent() (*NodeEvent, bool) {
5437	return nil, false
5438}
5439
5440// AsBasicNodeEvent is the BasicFabricEvent implementation for ApplicationUpgradeRollbackCompletedEvent.
5441func (aurce ApplicationUpgradeRollbackCompletedEvent) AsBasicNodeEvent() (BasicNodeEvent, bool) {
5442	return nil, false
5443}
5444
5445// AsPartitionAnalysisEvent is the BasicFabricEvent implementation for ApplicationUpgradeRollbackCompletedEvent.
5446func (aurce ApplicationUpgradeRollbackCompletedEvent) AsPartitionAnalysisEvent() (*PartitionAnalysisEvent, bool) {
5447	return nil, false
5448}
5449
5450// AsBasicPartitionAnalysisEvent is the BasicFabricEvent implementation for ApplicationUpgradeRollbackCompletedEvent.
5451func (aurce ApplicationUpgradeRollbackCompletedEvent) AsBasicPartitionAnalysisEvent() (BasicPartitionAnalysisEvent, bool) {
5452	return nil, false
5453}
5454
5455// AsPartitionEvent is the BasicFabricEvent implementation for ApplicationUpgradeRollbackCompletedEvent.
5456func (aurce ApplicationUpgradeRollbackCompletedEvent) AsPartitionEvent() (*PartitionEvent, bool) {
5457	return nil, false
5458}
5459
5460// AsBasicPartitionEvent is the BasicFabricEvent implementation for ApplicationUpgradeRollbackCompletedEvent.
5461func (aurce ApplicationUpgradeRollbackCompletedEvent) AsBasicPartitionEvent() (BasicPartitionEvent, bool) {
5462	return nil, false
5463}
5464
5465// AsReplicaEvent is the BasicFabricEvent implementation for ApplicationUpgradeRollbackCompletedEvent.
5466func (aurce ApplicationUpgradeRollbackCompletedEvent) AsReplicaEvent() (*ReplicaEvent, bool) {
5467	return nil, false
5468}
5469
5470// AsBasicReplicaEvent is the BasicFabricEvent implementation for ApplicationUpgradeRollbackCompletedEvent.
5471func (aurce ApplicationUpgradeRollbackCompletedEvent) AsBasicReplicaEvent() (BasicReplicaEvent, bool) {
5472	return nil, false
5473}
5474
5475// AsServiceEvent is the BasicFabricEvent implementation for ApplicationUpgradeRollbackCompletedEvent.
5476func (aurce ApplicationUpgradeRollbackCompletedEvent) AsServiceEvent() (*ServiceEvent, bool) {
5477	return nil, false
5478}
5479
5480// AsBasicServiceEvent is the BasicFabricEvent implementation for ApplicationUpgradeRollbackCompletedEvent.
5481func (aurce ApplicationUpgradeRollbackCompletedEvent) AsBasicServiceEvent() (BasicServiceEvent, bool) {
5482	return nil, false
5483}
5484
5485// AsApplicationCreatedEvent is the BasicFabricEvent implementation for ApplicationUpgradeRollbackCompletedEvent.
5486func (aurce ApplicationUpgradeRollbackCompletedEvent) AsApplicationCreatedEvent() (*ApplicationCreatedEvent, bool) {
5487	return nil, false
5488}
5489
5490// AsApplicationDeletedEvent is the BasicFabricEvent implementation for ApplicationUpgradeRollbackCompletedEvent.
5491func (aurce ApplicationUpgradeRollbackCompletedEvent) AsApplicationDeletedEvent() (*ApplicationDeletedEvent, bool) {
5492	return nil, false
5493}
5494
5495// AsApplicationNewHealthReportEvent is the BasicFabricEvent implementation for ApplicationUpgradeRollbackCompletedEvent.
5496func (aurce ApplicationUpgradeRollbackCompletedEvent) AsApplicationNewHealthReportEvent() (*ApplicationNewHealthReportEvent, bool) {
5497	return nil, false
5498}
5499
5500// AsApplicationHealthReportExpiredEvent is the BasicFabricEvent implementation for ApplicationUpgradeRollbackCompletedEvent.
5501func (aurce ApplicationUpgradeRollbackCompletedEvent) AsApplicationHealthReportExpiredEvent() (*ApplicationHealthReportExpiredEvent, bool) {
5502	return nil, false
5503}
5504
5505// AsApplicationUpgradeCompletedEvent is the BasicFabricEvent implementation for ApplicationUpgradeRollbackCompletedEvent.
5506func (aurce ApplicationUpgradeRollbackCompletedEvent) AsApplicationUpgradeCompletedEvent() (*ApplicationUpgradeCompletedEvent, bool) {
5507	return nil, false
5508}
5509
5510// AsApplicationUpgradeDomainCompletedEvent is the BasicFabricEvent implementation for ApplicationUpgradeRollbackCompletedEvent.
5511func (aurce ApplicationUpgradeRollbackCompletedEvent) AsApplicationUpgradeDomainCompletedEvent() (*ApplicationUpgradeDomainCompletedEvent, bool) {
5512	return nil, false
5513}
5514
5515// AsApplicationUpgradeRollbackCompletedEvent is the BasicFabricEvent implementation for ApplicationUpgradeRollbackCompletedEvent.
5516func (aurce ApplicationUpgradeRollbackCompletedEvent) AsApplicationUpgradeRollbackCompletedEvent() (*ApplicationUpgradeRollbackCompletedEvent, bool) {
5517	return &aurce, true
5518}
5519
5520// AsApplicationUpgradeRollbackStartedEvent is the BasicFabricEvent implementation for ApplicationUpgradeRollbackCompletedEvent.
5521func (aurce ApplicationUpgradeRollbackCompletedEvent) AsApplicationUpgradeRollbackStartedEvent() (*ApplicationUpgradeRollbackStartedEvent, bool) {
5522	return nil, false
5523}
5524
5525// AsApplicationUpgradeStartedEvent is the BasicFabricEvent implementation for ApplicationUpgradeRollbackCompletedEvent.
5526func (aurce ApplicationUpgradeRollbackCompletedEvent) AsApplicationUpgradeStartedEvent() (*ApplicationUpgradeStartedEvent, bool) {
5527	return nil, false
5528}
5529
5530// AsDeployedApplicationNewHealthReportEvent is the BasicFabricEvent implementation for ApplicationUpgradeRollbackCompletedEvent.
5531func (aurce ApplicationUpgradeRollbackCompletedEvent) AsDeployedApplicationNewHealthReportEvent() (*DeployedApplicationNewHealthReportEvent, bool) {
5532	return nil, false
5533}
5534
5535// AsDeployedApplicationHealthReportExpiredEvent is the BasicFabricEvent implementation for ApplicationUpgradeRollbackCompletedEvent.
5536func (aurce ApplicationUpgradeRollbackCompletedEvent) AsDeployedApplicationHealthReportExpiredEvent() (*DeployedApplicationHealthReportExpiredEvent, bool) {
5537	return nil, false
5538}
5539
5540// AsApplicationProcessExitedEvent is the BasicFabricEvent implementation for ApplicationUpgradeRollbackCompletedEvent.
5541func (aurce ApplicationUpgradeRollbackCompletedEvent) AsApplicationProcessExitedEvent() (*ApplicationProcessExitedEvent, bool) {
5542	return nil, false
5543}
5544
5545// AsApplicationContainerInstanceExitedEvent is the BasicFabricEvent implementation for ApplicationUpgradeRollbackCompletedEvent.
5546func (aurce ApplicationUpgradeRollbackCompletedEvent) AsApplicationContainerInstanceExitedEvent() (*ApplicationContainerInstanceExitedEvent, bool) {
5547	return nil, false
5548}
5549
5550// AsNodeAbortedEvent is the BasicFabricEvent implementation for ApplicationUpgradeRollbackCompletedEvent.
5551func (aurce ApplicationUpgradeRollbackCompletedEvent) AsNodeAbortedEvent() (*NodeAbortedEvent, bool) {
5552	return nil, false
5553}
5554
5555// AsNodeAddedToClusterEvent is the BasicFabricEvent implementation for ApplicationUpgradeRollbackCompletedEvent.
5556func (aurce ApplicationUpgradeRollbackCompletedEvent) AsNodeAddedToClusterEvent() (*NodeAddedToClusterEvent, bool) {
5557	return nil, false
5558}
5559
5560// AsNodeClosedEvent is the BasicFabricEvent implementation for ApplicationUpgradeRollbackCompletedEvent.
5561func (aurce ApplicationUpgradeRollbackCompletedEvent) AsNodeClosedEvent() (*NodeClosedEvent, bool) {
5562	return nil, false
5563}
5564
5565// AsNodeDeactivateCompletedEvent is the BasicFabricEvent implementation for ApplicationUpgradeRollbackCompletedEvent.
5566func (aurce ApplicationUpgradeRollbackCompletedEvent) AsNodeDeactivateCompletedEvent() (*NodeDeactivateCompletedEvent, bool) {
5567	return nil, false
5568}
5569
5570// AsNodeDeactivateStartedEvent is the BasicFabricEvent implementation for ApplicationUpgradeRollbackCompletedEvent.
5571func (aurce ApplicationUpgradeRollbackCompletedEvent) AsNodeDeactivateStartedEvent() (*NodeDeactivateStartedEvent, bool) {
5572	return nil, false
5573}
5574
5575// AsNodeDownEvent is the BasicFabricEvent implementation for ApplicationUpgradeRollbackCompletedEvent.
5576func (aurce ApplicationUpgradeRollbackCompletedEvent) AsNodeDownEvent() (*NodeDownEvent, bool) {
5577	return nil, false
5578}
5579
5580// AsNodeNewHealthReportEvent is the BasicFabricEvent implementation for ApplicationUpgradeRollbackCompletedEvent.
5581func (aurce ApplicationUpgradeRollbackCompletedEvent) AsNodeNewHealthReportEvent() (*NodeNewHealthReportEvent, bool) {
5582	return nil, false
5583}
5584
5585// AsNodeHealthReportExpiredEvent is the BasicFabricEvent implementation for ApplicationUpgradeRollbackCompletedEvent.
5586func (aurce ApplicationUpgradeRollbackCompletedEvent) AsNodeHealthReportExpiredEvent() (*NodeHealthReportExpiredEvent, bool) {
5587	return nil, false
5588}
5589
5590// AsNodeOpenSucceededEvent is the BasicFabricEvent implementation for ApplicationUpgradeRollbackCompletedEvent.
5591func (aurce ApplicationUpgradeRollbackCompletedEvent) AsNodeOpenSucceededEvent() (*NodeOpenSucceededEvent, bool) {
5592	return nil, false
5593}
5594
5595// AsNodeOpenFailedEvent is the BasicFabricEvent implementation for ApplicationUpgradeRollbackCompletedEvent.
5596func (aurce ApplicationUpgradeRollbackCompletedEvent) AsNodeOpenFailedEvent() (*NodeOpenFailedEvent, bool) {
5597	return nil, false
5598}
5599
5600// AsNodeRemovedFromClusterEvent is the BasicFabricEvent implementation for ApplicationUpgradeRollbackCompletedEvent.
5601func (aurce ApplicationUpgradeRollbackCompletedEvent) AsNodeRemovedFromClusterEvent() (*NodeRemovedFromClusterEvent, bool) {
5602	return nil, false
5603}
5604
5605// AsNodeUpEvent is the BasicFabricEvent implementation for ApplicationUpgradeRollbackCompletedEvent.
5606func (aurce ApplicationUpgradeRollbackCompletedEvent) AsNodeUpEvent() (*NodeUpEvent, bool) {
5607	return nil, false
5608}
5609
5610// AsPartitionNewHealthReportEvent is the BasicFabricEvent implementation for ApplicationUpgradeRollbackCompletedEvent.
5611func (aurce ApplicationUpgradeRollbackCompletedEvent) AsPartitionNewHealthReportEvent() (*PartitionNewHealthReportEvent, bool) {
5612	return nil, false
5613}
5614
5615// AsPartitionHealthReportExpiredEvent is the BasicFabricEvent implementation for ApplicationUpgradeRollbackCompletedEvent.
5616func (aurce ApplicationUpgradeRollbackCompletedEvent) AsPartitionHealthReportExpiredEvent() (*PartitionHealthReportExpiredEvent, bool) {
5617	return nil, false
5618}
5619
5620// AsPartitionReconfiguredEvent is the BasicFabricEvent implementation for ApplicationUpgradeRollbackCompletedEvent.
5621func (aurce ApplicationUpgradeRollbackCompletedEvent) AsPartitionReconfiguredEvent() (*PartitionReconfiguredEvent, bool) {
5622	return nil, false
5623}
5624
5625// AsPartitionPrimaryMoveAnalysisEvent is the BasicFabricEvent implementation for ApplicationUpgradeRollbackCompletedEvent.
5626func (aurce ApplicationUpgradeRollbackCompletedEvent) AsPartitionPrimaryMoveAnalysisEvent() (*PartitionPrimaryMoveAnalysisEvent, bool) {
5627	return nil, false
5628}
5629
5630// AsServiceCreatedEvent is the BasicFabricEvent implementation for ApplicationUpgradeRollbackCompletedEvent.
5631func (aurce ApplicationUpgradeRollbackCompletedEvent) AsServiceCreatedEvent() (*ServiceCreatedEvent, bool) {
5632	return nil, false
5633}
5634
5635// AsServiceDeletedEvent is the BasicFabricEvent implementation for ApplicationUpgradeRollbackCompletedEvent.
5636func (aurce ApplicationUpgradeRollbackCompletedEvent) AsServiceDeletedEvent() (*ServiceDeletedEvent, bool) {
5637	return nil, false
5638}
5639
5640// AsServiceNewHealthReportEvent is the BasicFabricEvent implementation for ApplicationUpgradeRollbackCompletedEvent.
5641func (aurce ApplicationUpgradeRollbackCompletedEvent) AsServiceNewHealthReportEvent() (*ServiceNewHealthReportEvent, bool) {
5642	return nil, false
5643}
5644
5645// AsServiceHealthReportExpiredEvent is the BasicFabricEvent implementation for ApplicationUpgradeRollbackCompletedEvent.
5646func (aurce ApplicationUpgradeRollbackCompletedEvent) AsServiceHealthReportExpiredEvent() (*ServiceHealthReportExpiredEvent, bool) {
5647	return nil, false
5648}
5649
5650// AsDeployedServicePackageNewHealthReportEvent is the BasicFabricEvent implementation for ApplicationUpgradeRollbackCompletedEvent.
5651func (aurce ApplicationUpgradeRollbackCompletedEvent) AsDeployedServicePackageNewHealthReportEvent() (*DeployedServicePackageNewHealthReportEvent, bool) {
5652	return nil, false
5653}
5654
5655// AsDeployedServicePackageHealthReportExpiredEvent is the BasicFabricEvent implementation for ApplicationUpgradeRollbackCompletedEvent.
5656func (aurce ApplicationUpgradeRollbackCompletedEvent) AsDeployedServicePackageHealthReportExpiredEvent() (*DeployedServicePackageHealthReportExpiredEvent, bool) {
5657	return nil, false
5658}
5659
5660// AsStatefulReplicaNewHealthReportEvent is the BasicFabricEvent implementation for ApplicationUpgradeRollbackCompletedEvent.
5661func (aurce ApplicationUpgradeRollbackCompletedEvent) AsStatefulReplicaNewHealthReportEvent() (*StatefulReplicaNewHealthReportEvent, bool) {
5662	return nil, false
5663}
5664
5665// AsStatefulReplicaHealthReportExpiredEvent is the BasicFabricEvent implementation for ApplicationUpgradeRollbackCompletedEvent.
5666func (aurce ApplicationUpgradeRollbackCompletedEvent) AsStatefulReplicaHealthReportExpiredEvent() (*StatefulReplicaHealthReportExpiredEvent, bool) {
5667	return nil, false
5668}
5669
5670// AsStatelessReplicaNewHealthReportEvent is the BasicFabricEvent implementation for ApplicationUpgradeRollbackCompletedEvent.
5671func (aurce ApplicationUpgradeRollbackCompletedEvent) AsStatelessReplicaNewHealthReportEvent() (*StatelessReplicaNewHealthReportEvent, bool) {
5672	return nil, false
5673}
5674
5675// AsStatelessReplicaHealthReportExpiredEvent is the BasicFabricEvent implementation for ApplicationUpgradeRollbackCompletedEvent.
5676func (aurce ApplicationUpgradeRollbackCompletedEvent) AsStatelessReplicaHealthReportExpiredEvent() (*StatelessReplicaHealthReportExpiredEvent, bool) {
5677	return nil, false
5678}
5679
5680// AsClusterNewHealthReportEvent is the BasicFabricEvent implementation for ApplicationUpgradeRollbackCompletedEvent.
5681func (aurce ApplicationUpgradeRollbackCompletedEvent) AsClusterNewHealthReportEvent() (*ClusterNewHealthReportEvent, bool) {
5682	return nil, false
5683}
5684
5685// AsClusterHealthReportExpiredEvent is the BasicFabricEvent implementation for ApplicationUpgradeRollbackCompletedEvent.
5686func (aurce ApplicationUpgradeRollbackCompletedEvent) AsClusterHealthReportExpiredEvent() (*ClusterHealthReportExpiredEvent, bool) {
5687	return nil, false
5688}
5689
5690// AsClusterUpgradeCompletedEvent is the BasicFabricEvent implementation for ApplicationUpgradeRollbackCompletedEvent.
5691func (aurce ApplicationUpgradeRollbackCompletedEvent) AsClusterUpgradeCompletedEvent() (*ClusterUpgradeCompletedEvent, bool) {
5692	return nil, false
5693}
5694
5695// AsClusterUpgradeDomainCompletedEvent is the BasicFabricEvent implementation for ApplicationUpgradeRollbackCompletedEvent.
5696func (aurce ApplicationUpgradeRollbackCompletedEvent) AsClusterUpgradeDomainCompletedEvent() (*ClusterUpgradeDomainCompletedEvent, bool) {
5697	return nil, false
5698}
5699
5700// AsClusterUpgradeRollbackCompletedEvent is the BasicFabricEvent implementation for ApplicationUpgradeRollbackCompletedEvent.
5701func (aurce ApplicationUpgradeRollbackCompletedEvent) AsClusterUpgradeRollbackCompletedEvent() (*ClusterUpgradeRollbackCompletedEvent, bool) {
5702	return nil, false
5703}
5704
5705// AsClusterUpgradeRollbackStartedEvent is the BasicFabricEvent implementation for ApplicationUpgradeRollbackCompletedEvent.
5706func (aurce ApplicationUpgradeRollbackCompletedEvent) AsClusterUpgradeRollbackStartedEvent() (*ClusterUpgradeRollbackStartedEvent, bool) {
5707	return nil, false
5708}
5709
5710// AsClusterUpgradeStartedEvent is the BasicFabricEvent implementation for ApplicationUpgradeRollbackCompletedEvent.
5711func (aurce ApplicationUpgradeRollbackCompletedEvent) AsClusterUpgradeStartedEvent() (*ClusterUpgradeStartedEvent, bool) {
5712	return nil, false
5713}
5714
5715// AsChaosStoppedEvent is the BasicFabricEvent implementation for ApplicationUpgradeRollbackCompletedEvent.
5716func (aurce ApplicationUpgradeRollbackCompletedEvent) AsChaosStoppedEvent() (*ChaosStoppedEvent, bool) {
5717	return nil, false
5718}
5719
5720// AsChaosStartedEvent is the BasicFabricEvent implementation for ApplicationUpgradeRollbackCompletedEvent.
5721func (aurce ApplicationUpgradeRollbackCompletedEvent) AsChaosStartedEvent() (*ChaosStartedEvent, bool) {
5722	return nil, false
5723}
5724
5725// AsChaosCodePackageRestartScheduledEvent is the BasicFabricEvent implementation for ApplicationUpgradeRollbackCompletedEvent.
5726func (aurce ApplicationUpgradeRollbackCompletedEvent) AsChaosCodePackageRestartScheduledEvent() (*ChaosCodePackageRestartScheduledEvent, bool) {
5727	return nil, false
5728}
5729
5730// AsChaosReplicaRemovalScheduledEvent is the BasicFabricEvent implementation for ApplicationUpgradeRollbackCompletedEvent.
5731func (aurce ApplicationUpgradeRollbackCompletedEvent) AsChaosReplicaRemovalScheduledEvent() (*ChaosReplicaRemovalScheduledEvent, bool) {
5732	return nil, false
5733}
5734
5735// AsChaosPartitionSecondaryMoveScheduledEvent is the BasicFabricEvent implementation for ApplicationUpgradeRollbackCompletedEvent.
5736func (aurce ApplicationUpgradeRollbackCompletedEvent) AsChaosPartitionSecondaryMoveScheduledEvent() (*ChaosPartitionSecondaryMoveScheduledEvent, bool) {
5737	return nil, false
5738}
5739
5740// AsChaosPartitionPrimaryMoveScheduledEvent is the BasicFabricEvent implementation for ApplicationUpgradeRollbackCompletedEvent.
5741func (aurce ApplicationUpgradeRollbackCompletedEvent) AsChaosPartitionPrimaryMoveScheduledEvent() (*ChaosPartitionPrimaryMoveScheduledEvent, bool) {
5742	return nil, false
5743}
5744
5745// AsChaosReplicaRestartScheduledEvent is the BasicFabricEvent implementation for ApplicationUpgradeRollbackCompletedEvent.
5746func (aurce ApplicationUpgradeRollbackCompletedEvent) AsChaosReplicaRestartScheduledEvent() (*ChaosReplicaRestartScheduledEvent, bool) {
5747	return nil, false
5748}
5749
5750// AsChaosNodeRestartScheduledEvent is the BasicFabricEvent implementation for ApplicationUpgradeRollbackCompletedEvent.
5751func (aurce ApplicationUpgradeRollbackCompletedEvent) AsChaosNodeRestartScheduledEvent() (*ChaosNodeRestartScheduledEvent, bool) {
5752	return nil, false
5753}
5754
5755// AsFabricEvent is the BasicFabricEvent implementation for ApplicationUpgradeRollbackCompletedEvent.
5756func (aurce ApplicationUpgradeRollbackCompletedEvent) AsFabricEvent() (*FabricEvent, bool) {
5757	return nil, false
5758}
5759
5760// AsBasicFabricEvent is the BasicFabricEvent implementation for ApplicationUpgradeRollbackCompletedEvent.
5761func (aurce ApplicationUpgradeRollbackCompletedEvent) AsBasicFabricEvent() (BasicFabricEvent, bool) {
5762	return &aurce, true
5763}
5764
5765// ApplicationUpgradeRollbackStartedEvent application Upgrade Rollback Started event.
5766type ApplicationUpgradeRollbackStartedEvent struct {
5767	// ApplicationTypeName - Application type name.
5768	ApplicationTypeName *string `json:"ApplicationTypeName,omitempty"`
5769	// CurrentApplicationTypeVersion - Current Application type version.
5770	CurrentApplicationTypeVersion *string `json:"CurrentApplicationTypeVersion,omitempty"`
5771	// ApplicationTypeVersion - Target Application type version.
5772	ApplicationTypeVersion *string `json:"ApplicationTypeVersion,omitempty"`
5773	// FailureReason - Describes reason of failure.
5774	FailureReason *string `json:"FailureReason,omitempty"`
5775	// OverallUpgradeElapsedTimeInMs - Overall upgrade time in milli-seconds.
5776	OverallUpgradeElapsedTimeInMs *float64 `json:"OverallUpgradeElapsedTimeInMs,omitempty"`
5777	// 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.
5778	// Starting in version 6.0, hierarchical names are delimited with the "\~" character. For example, if the application name is "fabric:/myapp/app1",
5779	// the application identity would be "myapp\~app1" in 6.0+ and "myapp/app1" in previous versions.
5780	ApplicationID *string `json:"ApplicationId,omitempty"`
5781	// EventInstanceID - The identifier for the FabricEvent instance.
5782	EventInstanceID *uuid.UUID `json:"EventInstanceId,omitempty"`
5783	// Category - The category of event.
5784	Category *string `json:"Category,omitempty"`
5785	// TimeStamp - The time event was logged.
5786	TimeStamp *date.Time `json:"TimeStamp,omitempty"`
5787	// HasCorrelatedEvents - Shows there is existing related events available.
5788	HasCorrelatedEvents *bool `json:"HasCorrelatedEvents,omitempty"`
5789	// 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'
5790	Kind KindBasicFabricEvent `json:"Kind,omitempty"`
5791}
5792
5793// MarshalJSON is the custom marshaler for ApplicationUpgradeRollbackStartedEvent.
5794func (aurse ApplicationUpgradeRollbackStartedEvent) MarshalJSON() ([]byte, error) {
5795	aurse.Kind = KindApplicationUpgradeRollbackStarted
5796	objectMap := make(map[string]interface{})
5797	if aurse.ApplicationTypeName != nil {
5798		objectMap["ApplicationTypeName"] = aurse.ApplicationTypeName
5799	}
5800	if aurse.CurrentApplicationTypeVersion != nil {
5801		objectMap["CurrentApplicationTypeVersion"] = aurse.CurrentApplicationTypeVersion
5802	}
5803	if aurse.ApplicationTypeVersion != nil {
5804		objectMap["ApplicationTypeVersion"] = aurse.ApplicationTypeVersion
5805	}
5806	if aurse.FailureReason != nil {
5807		objectMap["FailureReason"] = aurse.FailureReason
5808	}
5809	if aurse.OverallUpgradeElapsedTimeInMs != nil {
5810		objectMap["OverallUpgradeElapsedTimeInMs"] = aurse.OverallUpgradeElapsedTimeInMs
5811	}
5812	if aurse.ApplicationID != nil {
5813		objectMap["ApplicationId"] = aurse.ApplicationID
5814	}
5815	if aurse.EventInstanceID != nil {
5816		objectMap["EventInstanceId"] = aurse.EventInstanceID
5817	}
5818	if aurse.Category != nil {
5819		objectMap["Category"] = aurse.Category
5820	}
5821	if aurse.TimeStamp != nil {
5822		objectMap["TimeStamp"] = aurse.TimeStamp
5823	}
5824	if aurse.HasCorrelatedEvents != nil {
5825		objectMap["HasCorrelatedEvents"] = aurse.HasCorrelatedEvents
5826	}
5827	if aurse.Kind != "" {
5828		objectMap["Kind"] = aurse.Kind
5829	}
5830	return json.Marshal(objectMap)
5831}
5832
5833// AsApplicationEvent is the BasicFabricEvent implementation for ApplicationUpgradeRollbackStartedEvent.
5834func (aurse ApplicationUpgradeRollbackStartedEvent) AsApplicationEvent() (*ApplicationEvent, bool) {
5835	return nil, false
5836}
5837
5838// AsBasicApplicationEvent is the BasicFabricEvent implementation for ApplicationUpgradeRollbackStartedEvent.
5839func (aurse ApplicationUpgradeRollbackStartedEvent) AsBasicApplicationEvent() (BasicApplicationEvent, bool) {
5840	return &aurse, true
5841}
5842
5843// AsClusterEvent is the BasicFabricEvent implementation for ApplicationUpgradeRollbackStartedEvent.
5844func (aurse ApplicationUpgradeRollbackStartedEvent) AsClusterEvent() (*ClusterEvent, bool) {
5845	return nil, false
5846}
5847
5848// AsBasicClusterEvent is the BasicFabricEvent implementation for ApplicationUpgradeRollbackStartedEvent.
5849func (aurse ApplicationUpgradeRollbackStartedEvent) AsBasicClusterEvent() (BasicClusterEvent, bool) {
5850	return nil, false
5851}
5852
5853// AsContainerInstanceEvent is the BasicFabricEvent implementation for ApplicationUpgradeRollbackStartedEvent.
5854func (aurse ApplicationUpgradeRollbackStartedEvent) AsContainerInstanceEvent() (*ContainerInstanceEvent, bool) {
5855	return nil, false
5856}
5857
5858// AsNodeEvent is the BasicFabricEvent implementation for ApplicationUpgradeRollbackStartedEvent.
5859func (aurse ApplicationUpgradeRollbackStartedEvent) AsNodeEvent() (*NodeEvent, bool) {
5860	return nil, false
5861}
5862
5863// AsBasicNodeEvent is the BasicFabricEvent implementation for ApplicationUpgradeRollbackStartedEvent.
5864func (aurse ApplicationUpgradeRollbackStartedEvent) AsBasicNodeEvent() (BasicNodeEvent, bool) {
5865	return nil, false
5866}
5867
5868// AsPartitionAnalysisEvent is the BasicFabricEvent implementation for ApplicationUpgradeRollbackStartedEvent.
5869func (aurse ApplicationUpgradeRollbackStartedEvent) AsPartitionAnalysisEvent() (*PartitionAnalysisEvent, bool) {
5870	return nil, false
5871}
5872
5873// AsBasicPartitionAnalysisEvent is the BasicFabricEvent implementation for ApplicationUpgradeRollbackStartedEvent.
5874func (aurse ApplicationUpgradeRollbackStartedEvent) AsBasicPartitionAnalysisEvent() (BasicPartitionAnalysisEvent, bool) {
5875	return nil, false
5876}
5877
5878// AsPartitionEvent is the BasicFabricEvent implementation for ApplicationUpgradeRollbackStartedEvent.
5879func (aurse ApplicationUpgradeRollbackStartedEvent) AsPartitionEvent() (*PartitionEvent, bool) {
5880	return nil, false
5881}
5882
5883// AsBasicPartitionEvent is the BasicFabricEvent implementation for ApplicationUpgradeRollbackStartedEvent.
5884func (aurse ApplicationUpgradeRollbackStartedEvent) AsBasicPartitionEvent() (BasicPartitionEvent, bool) {
5885	return nil, false
5886}
5887
5888// AsReplicaEvent is the BasicFabricEvent implementation for ApplicationUpgradeRollbackStartedEvent.
5889func (aurse ApplicationUpgradeRollbackStartedEvent) AsReplicaEvent() (*ReplicaEvent, bool) {
5890	return nil, false
5891}
5892
5893// AsBasicReplicaEvent is the BasicFabricEvent implementation for ApplicationUpgradeRollbackStartedEvent.
5894func (aurse ApplicationUpgradeRollbackStartedEvent) AsBasicReplicaEvent() (BasicReplicaEvent, bool) {
5895	return nil, false
5896}
5897
5898// AsServiceEvent is the BasicFabricEvent implementation for ApplicationUpgradeRollbackStartedEvent.
5899func (aurse ApplicationUpgradeRollbackStartedEvent) AsServiceEvent() (*ServiceEvent, bool) {
5900	return nil, false
5901}
5902
5903// AsBasicServiceEvent is the BasicFabricEvent implementation for ApplicationUpgradeRollbackStartedEvent.
5904func (aurse ApplicationUpgradeRollbackStartedEvent) AsBasicServiceEvent() (BasicServiceEvent, bool) {
5905	return nil, false
5906}
5907
5908// AsApplicationCreatedEvent is the BasicFabricEvent implementation for ApplicationUpgradeRollbackStartedEvent.
5909func (aurse ApplicationUpgradeRollbackStartedEvent) AsApplicationCreatedEvent() (*ApplicationCreatedEvent, bool) {
5910	return nil, false
5911}
5912
5913// AsApplicationDeletedEvent is the BasicFabricEvent implementation for ApplicationUpgradeRollbackStartedEvent.
5914func (aurse ApplicationUpgradeRollbackStartedEvent) AsApplicationDeletedEvent() (*ApplicationDeletedEvent, bool) {
5915	return nil, false
5916}
5917
5918// AsApplicationNewHealthReportEvent is the BasicFabricEvent implementation for ApplicationUpgradeRollbackStartedEvent.
5919func (aurse ApplicationUpgradeRollbackStartedEvent) AsApplicationNewHealthReportEvent() (*ApplicationNewHealthReportEvent, bool) {
5920	return nil, false
5921}
5922
5923// AsApplicationHealthReportExpiredEvent is the BasicFabricEvent implementation for ApplicationUpgradeRollbackStartedEvent.
5924func (aurse ApplicationUpgradeRollbackStartedEvent) AsApplicationHealthReportExpiredEvent() (*ApplicationHealthReportExpiredEvent, bool) {
5925	return nil, false
5926}
5927
5928// AsApplicationUpgradeCompletedEvent is the BasicFabricEvent implementation for ApplicationUpgradeRollbackStartedEvent.
5929func (aurse ApplicationUpgradeRollbackStartedEvent) AsApplicationUpgradeCompletedEvent() (*ApplicationUpgradeCompletedEvent, bool) {
5930	return nil, false
5931}
5932
5933// AsApplicationUpgradeDomainCompletedEvent is the BasicFabricEvent implementation for ApplicationUpgradeRollbackStartedEvent.
5934func (aurse ApplicationUpgradeRollbackStartedEvent) AsApplicationUpgradeDomainCompletedEvent() (*ApplicationUpgradeDomainCompletedEvent, bool) {
5935	return nil, false
5936}
5937
5938// AsApplicationUpgradeRollbackCompletedEvent is the BasicFabricEvent implementation for ApplicationUpgradeRollbackStartedEvent.
5939func (aurse ApplicationUpgradeRollbackStartedEvent) AsApplicationUpgradeRollbackCompletedEvent() (*ApplicationUpgradeRollbackCompletedEvent, bool) {
5940	return nil, false
5941}
5942
5943// AsApplicationUpgradeRollbackStartedEvent is the BasicFabricEvent implementation for ApplicationUpgradeRollbackStartedEvent.
5944func (aurse ApplicationUpgradeRollbackStartedEvent) AsApplicationUpgradeRollbackStartedEvent() (*ApplicationUpgradeRollbackStartedEvent, bool) {
5945	return &aurse, true
5946}
5947
5948// AsApplicationUpgradeStartedEvent is the BasicFabricEvent implementation for ApplicationUpgradeRollbackStartedEvent.
5949func (aurse ApplicationUpgradeRollbackStartedEvent) AsApplicationUpgradeStartedEvent() (*ApplicationUpgradeStartedEvent, bool) {
5950	return nil, false
5951}
5952
5953// AsDeployedApplicationNewHealthReportEvent is the BasicFabricEvent implementation for ApplicationUpgradeRollbackStartedEvent.
5954func (aurse ApplicationUpgradeRollbackStartedEvent) AsDeployedApplicationNewHealthReportEvent() (*DeployedApplicationNewHealthReportEvent, bool) {
5955	return nil, false
5956}
5957
5958// AsDeployedApplicationHealthReportExpiredEvent is the BasicFabricEvent implementation for ApplicationUpgradeRollbackStartedEvent.
5959func (aurse ApplicationUpgradeRollbackStartedEvent) AsDeployedApplicationHealthReportExpiredEvent() (*DeployedApplicationHealthReportExpiredEvent, bool) {
5960	return nil, false
5961}
5962
5963// AsApplicationProcessExitedEvent is the BasicFabricEvent implementation for ApplicationUpgradeRollbackStartedEvent.
5964func (aurse ApplicationUpgradeRollbackStartedEvent) AsApplicationProcessExitedEvent() (*ApplicationProcessExitedEvent, bool) {
5965	return nil, false
5966}
5967
5968// AsApplicationContainerInstanceExitedEvent is the BasicFabricEvent implementation for ApplicationUpgradeRollbackStartedEvent.
5969func (aurse ApplicationUpgradeRollbackStartedEvent) AsApplicationContainerInstanceExitedEvent() (*ApplicationContainerInstanceExitedEvent, bool) {
5970	return nil, false
5971}
5972
5973// AsNodeAbortedEvent is the BasicFabricEvent implementation for ApplicationUpgradeRollbackStartedEvent.
5974func (aurse ApplicationUpgradeRollbackStartedEvent) AsNodeAbortedEvent() (*NodeAbortedEvent, bool) {
5975	return nil, false
5976}
5977
5978// AsNodeAddedToClusterEvent is the BasicFabricEvent implementation for ApplicationUpgradeRollbackStartedEvent.
5979func (aurse ApplicationUpgradeRollbackStartedEvent) AsNodeAddedToClusterEvent() (*NodeAddedToClusterEvent, bool) {
5980	return nil, false
5981}
5982
5983// AsNodeClosedEvent is the BasicFabricEvent implementation for ApplicationUpgradeRollbackStartedEvent.
5984func (aurse ApplicationUpgradeRollbackStartedEvent) AsNodeClosedEvent() (*NodeClosedEvent, bool) {
5985	return nil, false
5986}
5987
5988// AsNodeDeactivateCompletedEvent is the BasicFabricEvent implementation for ApplicationUpgradeRollbackStartedEvent.
5989func (aurse ApplicationUpgradeRollbackStartedEvent) AsNodeDeactivateCompletedEvent() (*NodeDeactivateCompletedEvent, bool) {
5990	return nil, false
5991}
5992
5993// AsNodeDeactivateStartedEvent is the BasicFabricEvent implementation for ApplicationUpgradeRollbackStartedEvent.
5994func (aurse ApplicationUpgradeRollbackStartedEvent) AsNodeDeactivateStartedEvent() (*NodeDeactivateStartedEvent, bool) {
5995	return nil, false
5996}
5997
5998// AsNodeDownEvent is the BasicFabricEvent implementation for ApplicationUpgradeRollbackStartedEvent.
5999func (aurse ApplicationUpgradeRollbackStartedEvent) AsNodeDownEvent() (*NodeDownEvent, bool) {
6000	return nil, false
6001}
6002
6003// AsNodeNewHealthReportEvent is the BasicFabricEvent implementation for ApplicationUpgradeRollbackStartedEvent.
6004func (aurse ApplicationUpgradeRollbackStartedEvent) AsNodeNewHealthReportEvent() (*NodeNewHealthReportEvent, bool) {
6005	return nil, false
6006}
6007
6008// AsNodeHealthReportExpiredEvent is the BasicFabricEvent implementation for ApplicationUpgradeRollbackStartedEvent.
6009func (aurse ApplicationUpgradeRollbackStartedEvent) AsNodeHealthReportExpiredEvent() (*NodeHealthReportExpiredEvent, bool) {
6010	return nil, false
6011}
6012
6013// AsNodeOpenSucceededEvent is the BasicFabricEvent implementation for ApplicationUpgradeRollbackStartedEvent.
6014func (aurse ApplicationUpgradeRollbackStartedEvent) AsNodeOpenSucceededEvent() (*NodeOpenSucceededEvent, bool) {
6015	return nil, false
6016}
6017
6018// AsNodeOpenFailedEvent is the BasicFabricEvent implementation for ApplicationUpgradeRollbackStartedEvent.
6019func (aurse ApplicationUpgradeRollbackStartedEvent) AsNodeOpenFailedEvent() (*NodeOpenFailedEvent, bool) {
6020	return nil, false
6021}
6022
6023// AsNodeRemovedFromClusterEvent is the BasicFabricEvent implementation for ApplicationUpgradeRollbackStartedEvent.
6024func (aurse ApplicationUpgradeRollbackStartedEvent) AsNodeRemovedFromClusterEvent() (*NodeRemovedFromClusterEvent, bool) {
6025	return nil, false
6026}
6027
6028// AsNodeUpEvent is the BasicFabricEvent implementation for ApplicationUpgradeRollbackStartedEvent.
6029func (aurse ApplicationUpgradeRollbackStartedEvent) AsNodeUpEvent() (*NodeUpEvent, bool) {
6030	return nil, false
6031}
6032
6033// AsPartitionNewHealthReportEvent is the BasicFabricEvent implementation for ApplicationUpgradeRollbackStartedEvent.
6034func (aurse ApplicationUpgradeRollbackStartedEvent) AsPartitionNewHealthReportEvent() (*PartitionNewHealthReportEvent, bool) {
6035	return nil, false
6036}
6037
6038// AsPartitionHealthReportExpiredEvent is the BasicFabricEvent implementation for ApplicationUpgradeRollbackStartedEvent.
6039func (aurse ApplicationUpgradeRollbackStartedEvent) AsPartitionHealthReportExpiredEvent() (*PartitionHealthReportExpiredEvent, bool) {
6040	return nil, false
6041}
6042
6043// AsPartitionReconfiguredEvent is the BasicFabricEvent implementation for ApplicationUpgradeRollbackStartedEvent.
6044func (aurse ApplicationUpgradeRollbackStartedEvent) AsPartitionReconfiguredEvent() (*PartitionReconfiguredEvent, bool) {
6045	return nil, false
6046}
6047
6048// AsPartitionPrimaryMoveAnalysisEvent is the BasicFabricEvent implementation for ApplicationUpgradeRollbackStartedEvent.
6049func (aurse ApplicationUpgradeRollbackStartedEvent) AsPartitionPrimaryMoveAnalysisEvent() (*PartitionPrimaryMoveAnalysisEvent, bool) {
6050	return nil, false
6051}
6052
6053// AsServiceCreatedEvent is the BasicFabricEvent implementation for ApplicationUpgradeRollbackStartedEvent.
6054func (aurse ApplicationUpgradeRollbackStartedEvent) AsServiceCreatedEvent() (*ServiceCreatedEvent, bool) {
6055	return nil, false
6056}
6057
6058// AsServiceDeletedEvent is the BasicFabricEvent implementation for ApplicationUpgradeRollbackStartedEvent.
6059func (aurse ApplicationUpgradeRollbackStartedEvent) AsServiceDeletedEvent() (*ServiceDeletedEvent, bool) {
6060	return nil, false
6061}
6062
6063// AsServiceNewHealthReportEvent is the BasicFabricEvent implementation for ApplicationUpgradeRollbackStartedEvent.
6064func (aurse ApplicationUpgradeRollbackStartedEvent) AsServiceNewHealthReportEvent() (*ServiceNewHealthReportEvent, bool) {
6065	return nil, false
6066}
6067
6068// AsServiceHealthReportExpiredEvent is the BasicFabricEvent implementation for ApplicationUpgradeRollbackStartedEvent.
6069func (aurse ApplicationUpgradeRollbackStartedEvent) AsServiceHealthReportExpiredEvent() (*ServiceHealthReportExpiredEvent, bool) {
6070	return nil, false
6071}
6072
6073// AsDeployedServicePackageNewHealthReportEvent is the BasicFabricEvent implementation for ApplicationUpgradeRollbackStartedEvent.
6074func (aurse ApplicationUpgradeRollbackStartedEvent) AsDeployedServicePackageNewHealthReportEvent() (*DeployedServicePackageNewHealthReportEvent, bool) {
6075	return nil, false
6076}
6077
6078// AsDeployedServicePackageHealthReportExpiredEvent is the BasicFabricEvent implementation for ApplicationUpgradeRollbackStartedEvent.
6079func (aurse ApplicationUpgradeRollbackStartedEvent) AsDeployedServicePackageHealthReportExpiredEvent() (*DeployedServicePackageHealthReportExpiredEvent, bool) {
6080	return nil, false
6081}
6082
6083// AsStatefulReplicaNewHealthReportEvent is the BasicFabricEvent implementation for ApplicationUpgradeRollbackStartedEvent.
6084func (aurse ApplicationUpgradeRollbackStartedEvent) AsStatefulReplicaNewHealthReportEvent() (*StatefulReplicaNewHealthReportEvent, bool) {
6085	return nil, false
6086}
6087
6088// AsStatefulReplicaHealthReportExpiredEvent is the BasicFabricEvent implementation for ApplicationUpgradeRollbackStartedEvent.
6089func (aurse ApplicationUpgradeRollbackStartedEvent) AsStatefulReplicaHealthReportExpiredEvent() (*StatefulReplicaHealthReportExpiredEvent, bool) {
6090	return nil, false
6091}
6092
6093// AsStatelessReplicaNewHealthReportEvent is the BasicFabricEvent implementation for ApplicationUpgradeRollbackStartedEvent.
6094func (aurse ApplicationUpgradeRollbackStartedEvent) AsStatelessReplicaNewHealthReportEvent() (*StatelessReplicaNewHealthReportEvent, bool) {
6095	return nil, false
6096}
6097
6098// AsStatelessReplicaHealthReportExpiredEvent is the BasicFabricEvent implementation for ApplicationUpgradeRollbackStartedEvent.
6099func (aurse ApplicationUpgradeRollbackStartedEvent) AsStatelessReplicaHealthReportExpiredEvent() (*StatelessReplicaHealthReportExpiredEvent, bool) {
6100	return nil, false
6101}
6102
6103// AsClusterNewHealthReportEvent is the BasicFabricEvent implementation for ApplicationUpgradeRollbackStartedEvent.
6104func (aurse ApplicationUpgradeRollbackStartedEvent) AsClusterNewHealthReportEvent() (*ClusterNewHealthReportEvent, bool) {
6105	return nil, false
6106}
6107
6108// AsClusterHealthReportExpiredEvent is the BasicFabricEvent implementation for ApplicationUpgradeRollbackStartedEvent.
6109func (aurse ApplicationUpgradeRollbackStartedEvent) AsClusterHealthReportExpiredEvent() (*ClusterHealthReportExpiredEvent, bool) {
6110	return nil, false
6111}
6112
6113// AsClusterUpgradeCompletedEvent is the BasicFabricEvent implementation for ApplicationUpgradeRollbackStartedEvent.
6114func (aurse ApplicationUpgradeRollbackStartedEvent) AsClusterUpgradeCompletedEvent() (*ClusterUpgradeCompletedEvent, bool) {
6115	return nil, false
6116}
6117
6118// AsClusterUpgradeDomainCompletedEvent is the BasicFabricEvent implementation for ApplicationUpgradeRollbackStartedEvent.
6119func (aurse ApplicationUpgradeRollbackStartedEvent) AsClusterUpgradeDomainCompletedEvent() (*ClusterUpgradeDomainCompletedEvent, bool) {
6120	return nil, false
6121}
6122
6123// AsClusterUpgradeRollbackCompletedEvent is the BasicFabricEvent implementation for ApplicationUpgradeRollbackStartedEvent.
6124func (aurse ApplicationUpgradeRollbackStartedEvent) AsClusterUpgradeRollbackCompletedEvent() (*ClusterUpgradeRollbackCompletedEvent, bool) {
6125	return nil, false
6126}
6127
6128// AsClusterUpgradeRollbackStartedEvent is the BasicFabricEvent implementation for ApplicationUpgradeRollbackStartedEvent.
6129func (aurse ApplicationUpgradeRollbackStartedEvent) AsClusterUpgradeRollbackStartedEvent() (*ClusterUpgradeRollbackStartedEvent, bool) {
6130	return nil, false
6131}
6132
6133// AsClusterUpgradeStartedEvent is the BasicFabricEvent implementation for ApplicationUpgradeRollbackStartedEvent.
6134func (aurse ApplicationUpgradeRollbackStartedEvent) AsClusterUpgradeStartedEvent() (*ClusterUpgradeStartedEvent, bool) {
6135	return nil, false
6136}
6137
6138// AsChaosStoppedEvent is the BasicFabricEvent implementation for ApplicationUpgradeRollbackStartedEvent.
6139func (aurse ApplicationUpgradeRollbackStartedEvent) AsChaosStoppedEvent() (*ChaosStoppedEvent, bool) {
6140	return nil, false
6141}
6142
6143// AsChaosStartedEvent is the BasicFabricEvent implementation for ApplicationUpgradeRollbackStartedEvent.
6144func (aurse ApplicationUpgradeRollbackStartedEvent) AsChaosStartedEvent() (*ChaosStartedEvent, bool) {
6145	return nil, false
6146}
6147
6148// AsChaosCodePackageRestartScheduledEvent is the BasicFabricEvent implementation for ApplicationUpgradeRollbackStartedEvent.
6149func (aurse ApplicationUpgradeRollbackStartedEvent) AsChaosCodePackageRestartScheduledEvent() (*ChaosCodePackageRestartScheduledEvent, bool) {
6150	return nil, false
6151}
6152
6153// AsChaosReplicaRemovalScheduledEvent is the BasicFabricEvent implementation for ApplicationUpgradeRollbackStartedEvent.
6154func (aurse ApplicationUpgradeRollbackStartedEvent) AsChaosReplicaRemovalScheduledEvent() (*ChaosReplicaRemovalScheduledEvent, bool) {
6155	return nil, false
6156}
6157
6158// AsChaosPartitionSecondaryMoveScheduledEvent is the BasicFabricEvent implementation for ApplicationUpgradeRollbackStartedEvent.
6159func (aurse ApplicationUpgradeRollbackStartedEvent) AsChaosPartitionSecondaryMoveScheduledEvent() (*ChaosPartitionSecondaryMoveScheduledEvent, bool) {
6160	return nil, false
6161}
6162
6163// AsChaosPartitionPrimaryMoveScheduledEvent is the BasicFabricEvent implementation for ApplicationUpgradeRollbackStartedEvent.
6164func (aurse ApplicationUpgradeRollbackStartedEvent) AsChaosPartitionPrimaryMoveScheduledEvent() (*ChaosPartitionPrimaryMoveScheduledEvent, bool) {
6165	return nil, false
6166}
6167
6168// AsChaosReplicaRestartScheduledEvent is the BasicFabricEvent implementation for ApplicationUpgradeRollbackStartedEvent.
6169func (aurse ApplicationUpgradeRollbackStartedEvent) AsChaosReplicaRestartScheduledEvent() (*ChaosReplicaRestartScheduledEvent, bool) {
6170	return nil, false
6171}
6172
6173// AsChaosNodeRestartScheduledEvent is the BasicFabricEvent implementation for ApplicationUpgradeRollbackStartedEvent.
6174func (aurse ApplicationUpgradeRollbackStartedEvent) AsChaosNodeRestartScheduledEvent() (*ChaosNodeRestartScheduledEvent, bool) {
6175	return nil, false
6176}
6177
6178// AsFabricEvent is the BasicFabricEvent implementation for ApplicationUpgradeRollbackStartedEvent.
6179func (aurse ApplicationUpgradeRollbackStartedEvent) AsFabricEvent() (*FabricEvent, bool) {
6180	return nil, false
6181}
6182
6183// AsBasicFabricEvent is the BasicFabricEvent implementation for ApplicationUpgradeRollbackStartedEvent.
6184func (aurse ApplicationUpgradeRollbackStartedEvent) AsBasicFabricEvent() (BasicFabricEvent, bool) {
6185	return &aurse, true
6186}
6187
6188// ApplicationUpgradeStartedEvent application Upgrade Started event.
6189type ApplicationUpgradeStartedEvent struct {
6190	// ApplicationTypeName - Application type name.
6191	ApplicationTypeName *string `json:"ApplicationTypeName,omitempty"`
6192	// CurrentApplicationTypeVersion - Current Application type version.
6193	CurrentApplicationTypeVersion *string `json:"CurrentApplicationTypeVersion,omitempty"`
6194	// ApplicationTypeVersion - Target Application type version.
6195	ApplicationTypeVersion *string `json:"ApplicationTypeVersion,omitempty"`
6196	// UpgradeType - Type of upgrade.
6197	UpgradeType *string `json:"UpgradeType,omitempty"`
6198	// RollingUpgradeMode - Mode of upgrade.
6199	RollingUpgradeMode *string `json:"RollingUpgradeMode,omitempty"`
6200	// FailureAction - Action if failed.
6201	FailureAction *string `json:"FailureAction,omitempty"`
6202	// 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.
6203	// Starting in version 6.0, hierarchical names are delimited with the "\~" character. For example, if the application name is "fabric:/myapp/app1",
6204	// the application identity would be "myapp\~app1" in 6.0+ and "myapp/app1" in previous versions.
6205	ApplicationID *string `json:"ApplicationId,omitempty"`
6206	// EventInstanceID - The identifier for the FabricEvent instance.
6207	EventInstanceID *uuid.UUID `json:"EventInstanceId,omitempty"`
6208	// Category - The category of event.
6209	Category *string `json:"Category,omitempty"`
6210	// TimeStamp - The time event was logged.
6211	TimeStamp *date.Time `json:"TimeStamp,omitempty"`
6212	// HasCorrelatedEvents - Shows there is existing related events available.
6213	HasCorrelatedEvents *bool `json:"HasCorrelatedEvents,omitempty"`
6214	// 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'
6215	Kind KindBasicFabricEvent `json:"Kind,omitempty"`
6216}
6217
6218// MarshalJSON is the custom marshaler for ApplicationUpgradeStartedEvent.
6219func (ause ApplicationUpgradeStartedEvent) MarshalJSON() ([]byte, error) {
6220	ause.Kind = KindApplicationUpgradeStarted
6221	objectMap := make(map[string]interface{})
6222	if ause.ApplicationTypeName != nil {
6223		objectMap["ApplicationTypeName"] = ause.ApplicationTypeName
6224	}
6225	if ause.CurrentApplicationTypeVersion != nil {
6226		objectMap["CurrentApplicationTypeVersion"] = ause.CurrentApplicationTypeVersion
6227	}
6228	if ause.ApplicationTypeVersion != nil {
6229		objectMap["ApplicationTypeVersion"] = ause.ApplicationTypeVersion
6230	}
6231	if ause.UpgradeType != nil {
6232		objectMap["UpgradeType"] = ause.UpgradeType
6233	}
6234	if ause.RollingUpgradeMode != nil {
6235		objectMap["RollingUpgradeMode"] = ause.RollingUpgradeMode
6236	}
6237	if ause.FailureAction != nil {
6238		objectMap["FailureAction"] = ause.FailureAction
6239	}
6240	if ause.ApplicationID != nil {
6241		objectMap["ApplicationId"] = ause.ApplicationID
6242	}
6243	if ause.EventInstanceID != nil {
6244		objectMap["EventInstanceId"] = ause.EventInstanceID
6245	}
6246	if ause.Category != nil {
6247		objectMap["Category"] = ause.Category
6248	}
6249	if ause.TimeStamp != nil {
6250		objectMap["TimeStamp"] = ause.TimeStamp
6251	}
6252	if ause.HasCorrelatedEvents != nil {
6253		objectMap["HasCorrelatedEvents"] = ause.HasCorrelatedEvents
6254	}
6255	if ause.Kind != "" {
6256		objectMap["Kind"] = ause.Kind
6257	}
6258	return json.Marshal(objectMap)
6259}
6260
6261// AsApplicationEvent is the BasicFabricEvent implementation for ApplicationUpgradeStartedEvent.
6262func (ause ApplicationUpgradeStartedEvent) AsApplicationEvent() (*ApplicationEvent, bool) {
6263	return nil, false
6264}
6265
6266// AsBasicApplicationEvent is the BasicFabricEvent implementation for ApplicationUpgradeStartedEvent.
6267func (ause ApplicationUpgradeStartedEvent) AsBasicApplicationEvent() (BasicApplicationEvent, bool) {
6268	return &ause, true
6269}
6270
6271// AsClusterEvent is the BasicFabricEvent implementation for ApplicationUpgradeStartedEvent.
6272func (ause ApplicationUpgradeStartedEvent) AsClusterEvent() (*ClusterEvent, bool) {
6273	return nil, false
6274}
6275
6276// AsBasicClusterEvent is the BasicFabricEvent implementation for ApplicationUpgradeStartedEvent.
6277func (ause ApplicationUpgradeStartedEvent) AsBasicClusterEvent() (BasicClusterEvent, bool) {
6278	return nil, false
6279}
6280
6281// AsContainerInstanceEvent is the BasicFabricEvent implementation for ApplicationUpgradeStartedEvent.
6282func (ause ApplicationUpgradeStartedEvent) AsContainerInstanceEvent() (*ContainerInstanceEvent, bool) {
6283	return nil, false
6284}
6285
6286// AsNodeEvent is the BasicFabricEvent implementation for ApplicationUpgradeStartedEvent.
6287func (ause ApplicationUpgradeStartedEvent) AsNodeEvent() (*NodeEvent, bool) {
6288	return nil, false
6289}
6290
6291// AsBasicNodeEvent is the BasicFabricEvent implementation for ApplicationUpgradeStartedEvent.
6292func (ause ApplicationUpgradeStartedEvent) AsBasicNodeEvent() (BasicNodeEvent, bool) {
6293	return nil, false
6294}
6295
6296// AsPartitionAnalysisEvent is the BasicFabricEvent implementation for ApplicationUpgradeStartedEvent.
6297func (ause ApplicationUpgradeStartedEvent) AsPartitionAnalysisEvent() (*PartitionAnalysisEvent, bool) {
6298	return nil, false
6299}
6300
6301// AsBasicPartitionAnalysisEvent is the BasicFabricEvent implementation for ApplicationUpgradeStartedEvent.
6302func (ause ApplicationUpgradeStartedEvent) AsBasicPartitionAnalysisEvent() (BasicPartitionAnalysisEvent, bool) {
6303	return nil, false
6304}
6305
6306// AsPartitionEvent is the BasicFabricEvent implementation for ApplicationUpgradeStartedEvent.
6307func (ause ApplicationUpgradeStartedEvent) AsPartitionEvent() (*PartitionEvent, bool) {
6308	return nil, false
6309}
6310
6311// AsBasicPartitionEvent is the BasicFabricEvent implementation for ApplicationUpgradeStartedEvent.
6312func (ause ApplicationUpgradeStartedEvent) AsBasicPartitionEvent() (BasicPartitionEvent, bool) {
6313	return nil, false
6314}
6315
6316// AsReplicaEvent is the BasicFabricEvent implementation for ApplicationUpgradeStartedEvent.
6317func (ause ApplicationUpgradeStartedEvent) AsReplicaEvent() (*ReplicaEvent, bool) {
6318	return nil, false
6319}
6320
6321// AsBasicReplicaEvent is the BasicFabricEvent implementation for ApplicationUpgradeStartedEvent.
6322func (ause ApplicationUpgradeStartedEvent) AsBasicReplicaEvent() (BasicReplicaEvent, bool) {
6323	return nil, false
6324}
6325
6326// AsServiceEvent is the BasicFabricEvent implementation for ApplicationUpgradeStartedEvent.
6327func (ause ApplicationUpgradeStartedEvent) AsServiceEvent() (*ServiceEvent, bool) {
6328	return nil, false
6329}
6330
6331// AsBasicServiceEvent is the BasicFabricEvent implementation for ApplicationUpgradeStartedEvent.
6332func (ause ApplicationUpgradeStartedEvent) AsBasicServiceEvent() (BasicServiceEvent, bool) {
6333	return nil, false
6334}
6335
6336// AsApplicationCreatedEvent is the BasicFabricEvent implementation for ApplicationUpgradeStartedEvent.
6337func (ause ApplicationUpgradeStartedEvent) AsApplicationCreatedEvent() (*ApplicationCreatedEvent, bool) {
6338	return nil, false
6339}
6340
6341// AsApplicationDeletedEvent is the BasicFabricEvent implementation for ApplicationUpgradeStartedEvent.
6342func (ause ApplicationUpgradeStartedEvent) AsApplicationDeletedEvent() (*ApplicationDeletedEvent, bool) {
6343	return nil, false
6344}
6345
6346// AsApplicationNewHealthReportEvent is the BasicFabricEvent implementation for ApplicationUpgradeStartedEvent.
6347func (ause ApplicationUpgradeStartedEvent) AsApplicationNewHealthReportEvent() (*ApplicationNewHealthReportEvent, bool) {
6348	return nil, false
6349}
6350
6351// AsApplicationHealthReportExpiredEvent is the BasicFabricEvent implementation for ApplicationUpgradeStartedEvent.
6352func (ause ApplicationUpgradeStartedEvent) AsApplicationHealthReportExpiredEvent() (*ApplicationHealthReportExpiredEvent, bool) {
6353	return nil, false
6354}
6355
6356// AsApplicationUpgradeCompletedEvent is the BasicFabricEvent implementation for ApplicationUpgradeStartedEvent.
6357func (ause ApplicationUpgradeStartedEvent) AsApplicationUpgradeCompletedEvent() (*ApplicationUpgradeCompletedEvent, bool) {
6358	return nil, false
6359}
6360
6361// AsApplicationUpgradeDomainCompletedEvent is the BasicFabricEvent implementation for ApplicationUpgradeStartedEvent.
6362func (ause ApplicationUpgradeStartedEvent) AsApplicationUpgradeDomainCompletedEvent() (*ApplicationUpgradeDomainCompletedEvent, bool) {
6363	return nil, false
6364}
6365
6366// AsApplicationUpgradeRollbackCompletedEvent is the BasicFabricEvent implementation for ApplicationUpgradeStartedEvent.
6367func (ause ApplicationUpgradeStartedEvent) AsApplicationUpgradeRollbackCompletedEvent() (*ApplicationUpgradeRollbackCompletedEvent, bool) {
6368	return nil, false
6369}
6370
6371// AsApplicationUpgradeRollbackStartedEvent is the BasicFabricEvent implementation for ApplicationUpgradeStartedEvent.
6372func (ause ApplicationUpgradeStartedEvent) AsApplicationUpgradeRollbackStartedEvent() (*ApplicationUpgradeRollbackStartedEvent, bool) {
6373	return nil, false
6374}
6375
6376// AsApplicationUpgradeStartedEvent is the BasicFabricEvent implementation for ApplicationUpgradeStartedEvent.
6377func (ause ApplicationUpgradeStartedEvent) AsApplicationUpgradeStartedEvent() (*ApplicationUpgradeStartedEvent, bool) {
6378	return &ause, true
6379}
6380
6381// AsDeployedApplicationNewHealthReportEvent is the BasicFabricEvent implementation for ApplicationUpgradeStartedEvent.
6382func (ause ApplicationUpgradeStartedEvent) AsDeployedApplicationNewHealthReportEvent() (*DeployedApplicationNewHealthReportEvent, bool) {
6383	return nil, false
6384}
6385
6386// AsDeployedApplicationHealthReportExpiredEvent is the BasicFabricEvent implementation for ApplicationUpgradeStartedEvent.
6387func (ause ApplicationUpgradeStartedEvent) AsDeployedApplicationHealthReportExpiredEvent() (*DeployedApplicationHealthReportExpiredEvent, bool) {
6388	return nil, false
6389}
6390
6391// AsApplicationProcessExitedEvent is the BasicFabricEvent implementation for ApplicationUpgradeStartedEvent.
6392func (ause ApplicationUpgradeStartedEvent) AsApplicationProcessExitedEvent() (*ApplicationProcessExitedEvent, bool) {
6393	return nil, false
6394}
6395
6396// AsApplicationContainerInstanceExitedEvent is the BasicFabricEvent implementation for ApplicationUpgradeStartedEvent.
6397func (ause ApplicationUpgradeStartedEvent) AsApplicationContainerInstanceExitedEvent() (*ApplicationContainerInstanceExitedEvent, bool) {
6398	return nil, false
6399}
6400
6401// AsNodeAbortedEvent is the BasicFabricEvent implementation for ApplicationUpgradeStartedEvent.
6402func (ause ApplicationUpgradeStartedEvent) AsNodeAbortedEvent() (*NodeAbortedEvent, bool) {
6403	return nil, false
6404}
6405
6406// AsNodeAddedToClusterEvent is the BasicFabricEvent implementation for ApplicationUpgradeStartedEvent.
6407func (ause ApplicationUpgradeStartedEvent) AsNodeAddedToClusterEvent() (*NodeAddedToClusterEvent, bool) {
6408	return nil, false
6409}
6410
6411// AsNodeClosedEvent is the BasicFabricEvent implementation for ApplicationUpgradeStartedEvent.
6412func (ause ApplicationUpgradeStartedEvent) AsNodeClosedEvent() (*NodeClosedEvent, bool) {
6413	return nil, false
6414}
6415
6416// AsNodeDeactivateCompletedEvent is the BasicFabricEvent implementation for ApplicationUpgradeStartedEvent.
6417func (ause ApplicationUpgradeStartedEvent) AsNodeDeactivateCompletedEvent() (*NodeDeactivateCompletedEvent, bool) {
6418	return nil, false
6419}
6420
6421// AsNodeDeactivateStartedEvent is the BasicFabricEvent implementation for ApplicationUpgradeStartedEvent.
6422func (ause ApplicationUpgradeStartedEvent) AsNodeDeactivateStartedEvent() (*NodeDeactivateStartedEvent, bool) {
6423	return nil, false
6424}
6425
6426// AsNodeDownEvent is the BasicFabricEvent implementation for ApplicationUpgradeStartedEvent.
6427func (ause ApplicationUpgradeStartedEvent) AsNodeDownEvent() (*NodeDownEvent, bool) {
6428	return nil, false
6429}
6430
6431// AsNodeNewHealthReportEvent is the BasicFabricEvent implementation for ApplicationUpgradeStartedEvent.
6432func (ause ApplicationUpgradeStartedEvent) AsNodeNewHealthReportEvent() (*NodeNewHealthReportEvent, bool) {
6433	return nil, false
6434}
6435
6436// AsNodeHealthReportExpiredEvent is the BasicFabricEvent implementation for ApplicationUpgradeStartedEvent.
6437func (ause ApplicationUpgradeStartedEvent) AsNodeHealthReportExpiredEvent() (*NodeHealthReportExpiredEvent, bool) {
6438	return nil, false
6439}
6440
6441// AsNodeOpenSucceededEvent is the BasicFabricEvent implementation for ApplicationUpgradeStartedEvent.
6442func (ause ApplicationUpgradeStartedEvent) AsNodeOpenSucceededEvent() (*NodeOpenSucceededEvent, bool) {
6443	return nil, false
6444}
6445
6446// AsNodeOpenFailedEvent is the BasicFabricEvent implementation for ApplicationUpgradeStartedEvent.
6447func (ause ApplicationUpgradeStartedEvent) AsNodeOpenFailedEvent() (*NodeOpenFailedEvent, bool) {
6448	return nil, false
6449}
6450
6451// AsNodeRemovedFromClusterEvent is the BasicFabricEvent implementation for ApplicationUpgradeStartedEvent.
6452func (ause ApplicationUpgradeStartedEvent) AsNodeRemovedFromClusterEvent() (*NodeRemovedFromClusterEvent, bool) {
6453	return nil, false
6454}
6455
6456// AsNodeUpEvent is the BasicFabricEvent implementation for ApplicationUpgradeStartedEvent.
6457func (ause ApplicationUpgradeStartedEvent) AsNodeUpEvent() (*NodeUpEvent, bool) {
6458	return nil, false
6459}
6460
6461// AsPartitionNewHealthReportEvent is the BasicFabricEvent implementation for ApplicationUpgradeStartedEvent.
6462func (ause ApplicationUpgradeStartedEvent) AsPartitionNewHealthReportEvent() (*PartitionNewHealthReportEvent, bool) {
6463	return nil, false
6464}
6465
6466// AsPartitionHealthReportExpiredEvent is the BasicFabricEvent implementation for ApplicationUpgradeStartedEvent.
6467func (ause ApplicationUpgradeStartedEvent) AsPartitionHealthReportExpiredEvent() (*PartitionHealthReportExpiredEvent, bool) {
6468	return nil, false
6469}
6470
6471// AsPartitionReconfiguredEvent is the BasicFabricEvent implementation for ApplicationUpgradeStartedEvent.
6472func (ause ApplicationUpgradeStartedEvent) AsPartitionReconfiguredEvent() (*PartitionReconfiguredEvent, bool) {
6473	return nil, false
6474}
6475
6476// AsPartitionPrimaryMoveAnalysisEvent is the BasicFabricEvent implementation for ApplicationUpgradeStartedEvent.
6477func (ause ApplicationUpgradeStartedEvent) AsPartitionPrimaryMoveAnalysisEvent() (*PartitionPrimaryMoveAnalysisEvent, bool) {
6478	return nil, false
6479}
6480
6481// AsServiceCreatedEvent is the BasicFabricEvent implementation for ApplicationUpgradeStartedEvent.
6482func (ause ApplicationUpgradeStartedEvent) AsServiceCreatedEvent() (*ServiceCreatedEvent, bool) {
6483	return nil, false
6484}
6485
6486// AsServiceDeletedEvent is the BasicFabricEvent implementation for ApplicationUpgradeStartedEvent.
6487func (ause ApplicationUpgradeStartedEvent) AsServiceDeletedEvent() (*ServiceDeletedEvent, bool) {
6488	return nil, false
6489}
6490
6491// AsServiceNewHealthReportEvent is the BasicFabricEvent implementation for ApplicationUpgradeStartedEvent.
6492func (ause ApplicationUpgradeStartedEvent) AsServiceNewHealthReportEvent() (*ServiceNewHealthReportEvent, bool) {
6493	return nil, false
6494}
6495
6496// AsServiceHealthReportExpiredEvent is the BasicFabricEvent implementation for ApplicationUpgradeStartedEvent.
6497func (ause ApplicationUpgradeStartedEvent) AsServiceHealthReportExpiredEvent() (*ServiceHealthReportExpiredEvent, bool) {
6498	return nil, false
6499}
6500
6501// AsDeployedServicePackageNewHealthReportEvent is the BasicFabricEvent implementation for ApplicationUpgradeStartedEvent.
6502func (ause ApplicationUpgradeStartedEvent) AsDeployedServicePackageNewHealthReportEvent() (*DeployedServicePackageNewHealthReportEvent, bool) {
6503	return nil, false
6504}
6505
6506// AsDeployedServicePackageHealthReportExpiredEvent is the BasicFabricEvent implementation for ApplicationUpgradeStartedEvent.
6507func (ause ApplicationUpgradeStartedEvent) AsDeployedServicePackageHealthReportExpiredEvent() (*DeployedServicePackageHealthReportExpiredEvent, bool) {
6508	return nil, false
6509}
6510
6511// AsStatefulReplicaNewHealthReportEvent is the BasicFabricEvent implementation for ApplicationUpgradeStartedEvent.
6512func (ause ApplicationUpgradeStartedEvent) AsStatefulReplicaNewHealthReportEvent() (*StatefulReplicaNewHealthReportEvent, bool) {
6513	return nil, false
6514}
6515
6516// AsStatefulReplicaHealthReportExpiredEvent is the BasicFabricEvent implementation for ApplicationUpgradeStartedEvent.
6517func (ause ApplicationUpgradeStartedEvent) AsStatefulReplicaHealthReportExpiredEvent() (*StatefulReplicaHealthReportExpiredEvent, bool) {
6518	return nil, false
6519}
6520
6521// AsStatelessReplicaNewHealthReportEvent is the BasicFabricEvent implementation for ApplicationUpgradeStartedEvent.
6522func (ause ApplicationUpgradeStartedEvent) AsStatelessReplicaNewHealthReportEvent() (*StatelessReplicaNewHealthReportEvent, bool) {
6523	return nil, false
6524}
6525
6526// AsStatelessReplicaHealthReportExpiredEvent is the BasicFabricEvent implementation for ApplicationUpgradeStartedEvent.
6527func (ause ApplicationUpgradeStartedEvent) AsStatelessReplicaHealthReportExpiredEvent() (*StatelessReplicaHealthReportExpiredEvent, bool) {
6528	return nil, false
6529}
6530
6531// AsClusterNewHealthReportEvent is the BasicFabricEvent implementation for ApplicationUpgradeStartedEvent.
6532func (ause ApplicationUpgradeStartedEvent) AsClusterNewHealthReportEvent() (*ClusterNewHealthReportEvent, bool) {
6533	return nil, false
6534}
6535
6536// AsClusterHealthReportExpiredEvent is the BasicFabricEvent implementation for ApplicationUpgradeStartedEvent.
6537func (ause ApplicationUpgradeStartedEvent) AsClusterHealthReportExpiredEvent() (*ClusterHealthReportExpiredEvent, bool) {
6538	return nil, false
6539}
6540
6541// AsClusterUpgradeCompletedEvent is the BasicFabricEvent implementation for ApplicationUpgradeStartedEvent.
6542func (ause ApplicationUpgradeStartedEvent) AsClusterUpgradeCompletedEvent() (*ClusterUpgradeCompletedEvent, bool) {
6543	return nil, false
6544}
6545
6546// AsClusterUpgradeDomainCompletedEvent is the BasicFabricEvent implementation for ApplicationUpgradeStartedEvent.
6547func (ause ApplicationUpgradeStartedEvent) AsClusterUpgradeDomainCompletedEvent() (*ClusterUpgradeDomainCompletedEvent, bool) {
6548	return nil, false
6549}
6550
6551// AsClusterUpgradeRollbackCompletedEvent is the BasicFabricEvent implementation for ApplicationUpgradeStartedEvent.
6552func (ause ApplicationUpgradeStartedEvent) AsClusterUpgradeRollbackCompletedEvent() (*ClusterUpgradeRollbackCompletedEvent, bool) {
6553	return nil, false
6554}
6555
6556// AsClusterUpgradeRollbackStartedEvent is the BasicFabricEvent implementation for ApplicationUpgradeStartedEvent.
6557func (ause ApplicationUpgradeStartedEvent) AsClusterUpgradeRollbackStartedEvent() (*ClusterUpgradeRollbackStartedEvent, bool) {
6558	return nil, false
6559}
6560
6561// AsClusterUpgradeStartedEvent is the BasicFabricEvent implementation for ApplicationUpgradeStartedEvent.
6562func (ause ApplicationUpgradeStartedEvent) AsClusterUpgradeStartedEvent() (*ClusterUpgradeStartedEvent, bool) {
6563	return nil, false
6564}
6565
6566// AsChaosStoppedEvent is the BasicFabricEvent implementation for ApplicationUpgradeStartedEvent.
6567func (ause ApplicationUpgradeStartedEvent) AsChaosStoppedEvent() (*ChaosStoppedEvent, bool) {
6568	return nil, false
6569}
6570
6571// AsChaosStartedEvent is the BasicFabricEvent implementation for ApplicationUpgradeStartedEvent.
6572func (ause ApplicationUpgradeStartedEvent) AsChaosStartedEvent() (*ChaosStartedEvent, bool) {
6573	return nil, false
6574}
6575
6576// AsChaosCodePackageRestartScheduledEvent is the BasicFabricEvent implementation for ApplicationUpgradeStartedEvent.
6577func (ause ApplicationUpgradeStartedEvent) AsChaosCodePackageRestartScheduledEvent() (*ChaosCodePackageRestartScheduledEvent, bool) {
6578	return nil, false
6579}
6580
6581// AsChaosReplicaRemovalScheduledEvent is the BasicFabricEvent implementation for ApplicationUpgradeStartedEvent.
6582func (ause ApplicationUpgradeStartedEvent) AsChaosReplicaRemovalScheduledEvent() (*ChaosReplicaRemovalScheduledEvent, bool) {
6583	return nil, false
6584}
6585
6586// AsChaosPartitionSecondaryMoveScheduledEvent is the BasicFabricEvent implementation for ApplicationUpgradeStartedEvent.
6587func (ause ApplicationUpgradeStartedEvent) AsChaosPartitionSecondaryMoveScheduledEvent() (*ChaosPartitionSecondaryMoveScheduledEvent, bool) {
6588	return nil, false
6589}
6590
6591// AsChaosPartitionPrimaryMoveScheduledEvent is the BasicFabricEvent implementation for ApplicationUpgradeStartedEvent.
6592func (ause ApplicationUpgradeStartedEvent) AsChaosPartitionPrimaryMoveScheduledEvent() (*ChaosPartitionPrimaryMoveScheduledEvent, bool) {
6593	return nil, false
6594}
6595
6596// AsChaosReplicaRestartScheduledEvent is the BasicFabricEvent implementation for ApplicationUpgradeStartedEvent.
6597func (ause ApplicationUpgradeStartedEvent) AsChaosReplicaRestartScheduledEvent() (*ChaosReplicaRestartScheduledEvent, bool) {
6598	return nil, false
6599}
6600
6601// AsChaosNodeRestartScheduledEvent is the BasicFabricEvent implementation for ApplicationUpgradeStartedEvent.
6602func (ause ApplicationUpgradeStartedEvent) AsChaosNodeRestartScheduledEvent() (*ChaosNodeRestartScheduledEvent, bool) {
6603	return nil, false
6604}
6605
6606// AsFabricEvent is the BasicFabricEvent implementation for ApplicationUpgradeStartedEvent.
6607func (ause ApplicationUpgradeStartedEvent) AsFabricEvent() (*FabricEvent, bool) {
6608	return nil, false
6609}
6610
6611// AsBasicFabricEvent is the BasicFabricEvent implementation for ApplicationUpgradeStartedEvent.
6612func (ause ApplicationUpgradeStartedEvent) AsBasicFabricEvent() (BasicFabricEvent, bool) {
6613	return &ause, true
6614}
6615
6616// ApplicationUpgradeUpdateDescription describes the parameters for updating an ongoing application
6617// upgrade.
6618type ApplicationUpgradeUpdateDescription struct {
6619	// Name - The name of the application, including the 'fabric:' URI scheme.
6620	Name *string `json:"Name,omitempty"`
6621	// UpgradeKind - The kind of upgrade out of the following possible values. Possible values include: 'UpgradeKindInvalid', 'UpgradeKindRolling'
6622	UpgradeKind UpgradeKind `json:"UpgradeKind,omitempty"`
6623	// ApplicationHealthPolicy - Defines a health policy used to evaluate the health of an application or one of its children entities.
6624	ApplicationHealthPolicy *ApplicationHealthPolicy `json:"ApplicationHealthPolicy,omitempty"`
6625	// UpdateDescription - Describes the parameters for updating a rolling upgrade of application or cluster.
6626	UpdateDescription *RollingUpgradeUpdateDescription `json:"UpdateDescription,omitempty"`
6627}
6628
6629// BasicAutoScalingMechanism describes the mechanism for performing auto scaling operation. Derived classes will
6630// describe the actual mechanism.
6631type BasicAutoScalingMechanism interface {
6632	AsAddRemoveReplicaScalingMechanism() (*AddRemoveReplicaScalingMechanism, bool)
6633	AsAutoScalingMechanism() (*AutoScalingMechanism, bool)
6634}
6635
6636// AutoScalingMechanism describes the mechanism for performing auto scaling operation. Derived classes will
6637// describe the actual mechanism.
6638type AutoScalingMechanism struct {
6639	// Kind - Possible values include: 'KindAutoScalingMechanism', 'KindAddRemoveReplica'
6640	Kind KindBasicAutoScalingMechanism `json:"kind,omitempty"`
6641}
6642
6643func unmarshalBasicAutoScalingMechanism(body []byte) (BasicAutoScalingMechanism, error) {
6644	var m map[string]interface{}
6645	err := json.Unmarshal(body, &m)
6646	if err != nil {
6647		return nil, err
6648	}
6649
6650	switch m["kind"] {
6651	case string(KindAddRemoveReplica):
6652		var arrsm AddRemoveReplicaScalingMechanism
6653		err := json.Unmarshal(body, &arrsm)
6654		return arrsm, err
6655	default:
6656		var asm AutoScalingMechanism
6657		err := json.Unmarshal(body, &asm)
6658		return asm, err
6659	}
6660}
6661func unmarshalBasicAutoScalingMechanismArray(body []byte) ([]BasicAutoScalingMechanism, error) {
6662	var rawMessages []*json.RawMessage
6663	err := json.Unmarshal(body, &rawMessages)
6664	if err != nil {
6665		return nil, err
6666	}
6667
6668	asmArray := make([]BasicAutoScalingMechanism, len(rawMessages))
6669
6670	for index, rawMessage := range rawMessages {
6671		asm, err := unmarshalBasicAutoScalingMechanism(*rawMessage)
6672		if err != nil {
6673			return nil, err
6674		}
6675		asmArray[index] = asm
6676	}
6677	return asmArray, nil
6678}
6679
6680// MarshalJSON is the custom marshaler for AutoScalingMechanism.
6681func (asm AutoScalingMechanism) MarshalJSON() ([]byte, error) {
6682	asm.Kind = KindAutoScalingMechanism
6683	objectMap := make(map[string]interface{})
6684	if asm.Kind != "" {
6685		objectMap["kind"] = asm.Kind
6686	}
6687	return json.Marshal(objectMap)
6688}
6689
6690// AsAddRemoveReplicaScalingMechanism is the BasicAutoScalingMechanism implementation for AutoScalingMechanism.
6691func (asm AutoScalingMechanism) AsAddRemoveReplicaScalingMechanism() (*AddRemoveReplicaScalingMechanism, bool) {
6692	return nil, false
6693}
6694
6695// AsAutoScalingMechanism is the BasicAutoScalingMechanism implementation for AutoScalingMechanism.
6696func (asm AutoScalingMechanism) AsAutoScalingMechanism() (*AutoScalingMechanism, bool) {
6697	return &asm, true
6698}
6699
6700// AsBasicAutoScalingMechanism is the BasicAutoScalingMechanism implementation for AutoScalingMechanism.
6701func (asm AutoScalingMechanism) AsBasicAutoScalingMechanism() (BasicAutoScalingMechanism, bool) {
6702	return &asm, true
6703}
6704
6705// BasicAutoScalingMetric describes the metric that is used for triggering auto scaling operation. Derived classes will
6706// describe resources or metrics.
6707type BasicAutoScalingMetric interface {
6708	AsAutoScalingResourceMetric() (*AutoScalingResourceMetric, bool)
6709	AsAutoScalingMetric() (*AutoScalingMetric, bool)
6710}
6711
6712// AutoScalingMetric describes the metric that is used for triggering auto scaling operation. Derived classes
6713// will describe resources or metrics.
6714type AutoScalingMetric struct {
6715	// Kind - Possible values include: 'KindAutoScalingMetric', 'KindResource'
6716	Kind KindBasicAutoScalingMetric `json:"kind,omitempty"`
6717}
6718
6719func unmarshalBasicAutoScalingMetric(body []byte) (BasicAutoScalingMetric, error) {
6720	var m map[string]interface{}
6721	err := json.Unmarshal(body, &m)
6722	if err != nil {
6723		return nil, err
6724	}
6725
6726	switch m["kind"] {
6727	case string(KindResource):
6728		var asrm AutoScalingResourceMetric
6729		err := json.Unmarshal(body, &asrm)
6730		return asrm, err
6731	default:
6732		var asm AutoScalingMetric
6733		err := json.Unmarshal(body, &asm)
6734		return asm, err
6735	}
6736}
6737func unmarshalBasicAutoScalingMetricArray(body []byte) ([]BasicAutoScalingMetric, error) {
6738	var rawMessages []*json.RawMessage
6739	err := json.Unmarshal(body, &rawMessages)
6740	if err != nil {
6741		return nil, err
6742	}
6743
6744	asmArray := make([]BasicAutoScalingMetric, len(rawMessages))
6745
6746	for index, rawMessage := range rawMessages {
6747		asm, err := unmarshalBasicAutoScalingMetric(*rawMessage)
6748		if err != nil {
6749			return nil, err
6750		}
6751		asmArray[index] = asm
6752	}
6753	return asmArray, nil
6754}
6755
6756// MarshalJSON is the custom marshaler for AutoScalingMetric.
6757func (asm AutoScalingMetric) MarshalJSON() ([]byte, error) {
6758	asm.Kind = KindAutoScalingMetric
6759	objectMap := make(map[string]interface{})
6760	if asm.Kind != "" {
6761		objectMap["kind"] = asm.Kind
6762	}
6763	return json.Marshal(objectMap)
6764}
6765
6766// AsAutoScalingResourceMetric is the BasicAutoScalingMetric implementation for AutoScalingMetric.
6767func (asm AutoScalingMetric) AsAutoScalingResourceMetric() (*AutoScalingResourceMetric, bool) {
6768	return nil, false
6769}
6770
6771// AsAutoScalingMetric is the BasicAutoScalingMetric implementation for AutoScalingMetric.
6772func (asm AutoScalingMetric) AsAutoScalingMetric() (*AutoScalingMetric, bool) {
6773	return &asm, true
6774}
6775
6776// AsBasicAutoScalingMetric is the BasicAutoScalingMetric implementation for AutoScalingMetric.
6777func (asm AutoScalingMetric) AsBasicAutoScalingMetric() (BasicAutoScalingMetric, bool) {
6778	return &asm, true
6779}
6780
6781// AutoScalingPolicy describes the auto scaling policy
6782type AutoScalingPolicy struct {
6783	// Name - The name of the auto scaling policy.
6784	Name *string `json:"name,omitempty"`
6785	// Trigger - Determines when auto scaling operation will be invoked.
6786	Trigger BasicAutoScalingTrigger `json:"trigger,omitempty"`
6787	// Mechanism - The mechanism that is used to scale when auto scaling operation is invoked.
6788	Mechanism BasicAutoScalingMechanism `json:"mechanism,omitempty"`
6789}
6790
6791// UnmarshalJSON is the custom unmarshaler for AutoScalingPolicy struct.
6792func (asp *AutoScalingPolicy) UnmarshalJSON(body []byte) error {
6793	var m map[string]*json.RawMessage
6794	err := json.Unmarshal(body, &m)
6795	if err != nil {
6796		return err
6797	}
6798	for k, v := range m {
6799		switch k {
6800		case "name":
6801			if v != nil {
6802				var name string
6803				err = json.Unmarshal(*v, &name)
6804				if err != nil {
6805					return err
6806				}
6807				asp.Name = &name
6808			}
6809		case "trigger":
6810			if v != nil {
6811				trigger, err := unmarshalBasicAutoScalingTrigger(*v)
6812				if err != nil {
6813					return err
6814				}
6815				asp.Trigger = trigger
6816			}
6817		case "mechanism":
6818			if v != nil {
6819				mechanism, err := unmarshalBasicAutoScalingMechanism(*v)
6820				if err != nil {
6821					return err
6822				}
6823				asp.Mechanism = mechanism
6824			}
6825		}
6826	}
6827
6828	return nil
6829}
6830
6831// AutoScalingResourceMetric describes the resource that is used for triggering auto scaling.
6832type AutoScalingResourceMetric struct {
6833	// Name - Name of the resource. Possible values include: 'CPU', 'MemoryInGB'
6834	Name AutoScalingResourceMetricName `json:"name,omitempty"`
6835	// Kind - Possible values include: 'KindAutoScalingMetric', 'KindResource'
6836	Kind KindBasicAutoScalingMetric `json:"kind,omitempty"`
6837}
6838
6839// MarshalJSON is the custom marshaler for AutoScalingResourceMetric.
6840func (asrm AutoScalingResourceMetric) MarshalJSON() ([]byte, error) {
6841	asrm.Kind = KindResource
6842	objectMap := make(map[string]interface{})
6843	if asrm.Name != "" {
6844		objectMap["name"] = asrm.Name
6845	}
6846	if asrm.Kind != "" {
6847		objectMap["kind"] = asrm.Kind
6848	}
6849	return json.Marshal(objectMap)
6850}
6851
6852// AsAutoScalingResourceMetric is the BasicAutoScalingMetric implementation for AutoScalingResourceMetric.
6853func (asrm AutoScalingResourceMetric) AsAutoScalingResourceMetric() (*AutoScalingResourceMetric, bool) {
6854	return &asrm, true
6855}
6856
6857// AsAutoScalingMetric is the BasicAutoScalingMetric implementation for AutoScalingResourceMetric.
6858func (asrm AutoScalingResourceMetric) AsAutoScalingMetric() (*AutoScalingMetric, bool) {
6859	return nil, false
6860}
6861
6862// AsBasicAutoScalingMetric is the BasicAutoScalingMetric implementation for AutoScalingResourceMetric.
6863func (asrm AutoScalingResourceMetric) AsBasicAutoScalingMetric() (BasicAutoScalingMetric, bool) {
6864	return &asrm, true
6865}
6866
6867// BasicAutoScalingTrigger describes the trigger for performing auto scaling operation.
6868type BasicAutoScalingTrigger interface {
6869	AsAverageLoadScalingTrigger() (*AverageLoadScalingTrigger, bool)
6870	AsAutoScalingTrigger() (*AutoScalingTrigger, bool)
6871}
6872
6873// AutoScalingTrigger describes the trigger for performing auto scaling operation.
6874type AutoScalingTrigger struct {
6875	// Kind - Possible values include: 'KindAutoScalingTrigger', 'KindAverageLoad'
6876	Kind KindBasicAutoScalingTrigger `json:"kind,omitempty"`
6877}
6878
6879func unmarshalBasicAutoScalingTrigger(body []byte) (BasicAutoScalingTrigger, error) {
6880	var m map[string]interface{}
6881	err := json.Unmarshal(body, &m)
6882	if err != nil {
6883		return nil, err
6884	}
6885
6886	switch m["kind"] {
6887	case string(KindAverageLoad):
6888		var alst AverageLoadScalingTrigger
6889		err := json.Unmarshal(body, &alst)
6890		return alst, err
6891	default:
6892		var astVar AutoScalingTrigger
6893		err := json.Unmarshal(body, &astVar)
6894		return astVar, err
6895	}
6896}
6897func unmarshalBasicAutoScalingTriggerArray(body []byte) ([]BasicAutoScalingTrigger, error) {
6898	var rawMessages []*json.RawMessage
6899	err := json.Unmarshal(body, &rawMessages)
6900	if err != nil {
6901		return nil, err
6902	}
6903
6904	astVarArray := make([]BasicAutoScalingTrigger, len(rawMessages))
6905
6906	for index, rawMessage := range rawMessages {
6907		astVar, err := unmarshalBasicAutoScalingTrigger(*rawMessage)
6908		if err != nil {
6909			return nil, err
6910		}
6911		astVarArray[index] = astVar
6912	}
6913	return astVarArray, nil
6914}
6915
6916// MarshalJSON is the custom marshaler for AutoScalingTrigger.
6917func (astVar AutoScalingTrigger) MarshalJSON() ([]byte, error) {
6918	astVar.Kind = KindAutoScalingTrigger
6919	objectMap := make(map[string]interface{})
6920	if astVar.Kind != "" {
6921		objectMap["kind"] = astVar.Kind
6922	}
6923	return json.Marshal(objectMap)
6924}
6925
6926// AsAverageLoadScalingTrigger is the BasicAutoScalingTrigger implementation for AutoScalingTrigger.
6927func (astVar AutoScalingTrigger) AsAverageLoadScalingTrigger() (*AverageLoadScalingTrigger, bool) {
6928	return nil, false
6929}
6930
6931// AsAutoScalingTrigger is the BasicAutoScalingTrigger implementation for AutoScalingTrigger.
6932func (astVar AutoScalingTrigger) AsAutoScalingTrigger() (*AutoScalingTrigger, bool) {
6933	return &astVar, true
6934}
6935
6936// AsBasicAutoScalingTrigger is the BasicAutoScalingTrigger implementation for AutoScalingTrigger.
6937func (astVar AutoScalingTrigger) AsBasicAutoScalingTrigger() (BasicAutoScalingTrigger, bool) {
6938	return &astVar, true
6939}
6940
6941// AverageLoadScalingTrigger describes the average load trigger used for auto scaling.
6942type AverageLoadScalingTrigger struct {
6943	// Metric - Description of the metric that is used for scaling.
6944	Metric BasicAutoScalingMetric `json:"metric,omitempty"`
6945	// LowerLoadThreshold - Lower load threshold (if average load is below this threshold, service will scale down).
6946	LowerLoadThreshold *float64 `json:"lowerLoadThreshold,omitempty"`
6947	// UpperLoadThreshold - Upper load threshold (if average load is above this threshold, service will scale up).
6948	UpperLoadThreshold *float64 `json:"upperLoadThreshold,omitempty"`
6949	// ScaleIntervalInSeconds - Scale interval that indicates how often will this trigger be checked.
6950	ScaleIntervalInSeconds *int32 `json:"scaleIntervalInSeconds,omitempty"`
6951	// Kind - Possible values include: 'KindAutoScalingTrigger', 'KindAverageLoad'
6952	Kind KindBasicAutoScalingTrigger `json:"kind,omitempty"`
6953}
6954
6955// MarshalJSON is the custom marshaler for AverageLoadScalingTrigger.
6956func (alst AverageLoadScalingTrigger) MarshalJSON() ([]byte, error) {
6957	alst.Kind = KindAverageLoad
6958	objectMap := make(map[string]interface{})
6959	objectMap["metric"] = alst.Metric
6960	if alst.LowerLoadThreshold != nil {
6961		objectMap["lowerLoadThreshold"] = alst.LowerLoadThreshold
6962	}
6963	if alst.UpperLoadThreshold != nil {
6964		objectMap["upperLoadThreshold"] = alst.UpperLoadThreshold
6965	}
6966	if alst.ScaleIntervalInSeconds != nil {
6967		objectMap["scaleIntervalInSeconds"] = alst.ScaleIntervalInSeconds
6968	}
6969	if alst.Kind != "" {
6970		objectMap["kind"] = alst.Kind
6971	}
6972	return json.Marshal(objectMap)
6973}
6974
6975// AsAverageLoadScalingTrigger is the BasicAutoScalingTrigger implementation for AverageLoadScalingTrigger.
6976func (alst AverageLoadScalingTrigger) AsAverageLoadScalingTrigger() (*AverageLoadScalingTrigger, bool) {
6977	return &alst, true
6978}
6979
6980// AsAutoScalingTrigger is the BasicAutoScalingTrigger implementation for AverageLoadScalingTrigger.
6981func (alst AverageLoadScalingTrigger) AsAutoScalingTrigger() (*AutoScalingTrigger, bool) {
6982	return nil, false
6983}
6984
6985// AsBasicAutoScalingTrigger is the BasicAutoScalingTrigger implementation for AverageLoadScalingTrigger.
6986func (alst AverageLoadScalingTrigger) AsBasicAutoScalingTrigger() (BasicAutoScalingTrigger, bool) {
6987	return &alst, true
6988}
6989
6990// UnmarshalJSON is the custom unmarshaler for AverageLoadScalingTrigger struct.
6991func (alst *AverageLoadScalingTrigger) UnmarshalJSON(body []byte) error {
6992	var m map[string]*json.RawMessage
6993	err := json.Unmarshal(body, &m)
6994	if err != nil {
6995		return err
6996	}
6997	for k, v := range m {
6998		switch k {
6999		case "metric":
7000			if v != nil {
7001				metric, err := unmarshalBasicAutoScalingMetric(*v)
7002				if err != nil {
7003					return err
7004				}
7005				alst.Metric = metric
7006			}
7007		case "lowerLoadThreshold":
7008			if v != nil {
7009				var lowerLoadThreshold float64
7010				err = json.Unmarshal(*v, &lowerLoadThreshold)
7011				if err != nil {
7012					return err
7013				}
7014				alst.LowerLoadThreshold = &lowerLoadThreshold
7015			}
7016		case "upperLoadThreshold":
7017			if v != nil {
7018				var upperLoadThreshold float64
7019				err = json.Unmarshal(*v, &upperLoadThreshold)
7020				if err != nil {
7021					return err
7022				}
7023				alst.UpperLoadThreshold = &upperLoadThreshold
7024			}
7025		case "scaleIntervalInSeconds":
7026			if v != nil {
7027				var scaleIntervalInSeconds int32
7028				err = json.Unmarshal(*v, &scaleIntervalInSeconds)
7029				if err != nil {
7030					return err
7031				}
7032				alst.ScaleIntervalInSeconds = &scaleIntervalInSeconds
7033			}
7034		case "kind":
7035			if v != nil {
7036				var kind KindBasicAutoScalingTrigger
7037				err = json.Unmarshal(*v, &kind)
7038				if err != nil {
7039					return err
7040				}
7041				alst.Kind = kind
7042			}
7043		}
7044	}
7045
7046	return nil
7047}
7048
7049// AveragePartitionLoadScalingTrigger represents a scaling trigger related to an average load of a
7050// metric/resource of a partition.
7051type AveragePartitionLoadScalingTrigger struct {
7052	// MetricName - The name of the metric for which usage should be tracked.
7053	MetricName *string `json:"MetricName,omitempty"`
7054	// LowerLoadThreshold - The lower limit of the load below which a scale in operation should be performed.
7055	LowerLoadThreshold *string `json:"LowerLoadThreshold,omitempty"`
7056	// UpperLoadThreshold - The upper limit of the load beyond which a scale out operation should be performed.
7057	UpperLoadThreshold *string `json:"UpperLoadThreshold,omitempty"`
7058	// ScaleIntervalInSeconds - The period in seconds on which a decision is made whether to scale or not.
7059	ScaleIntervalInSeconds *int64 `json:"ScaleIntervalInSeconds,omitempty"`
7060	// Kind - Possible values include: 'KindScalingTriggerDescription', 'KindAveragePartitionLoad', 'KindAverageServiceLoad'
7061	Kind KindBasicScalingTriggerDescription `json:"Kind,omitempty"`
7062}
7063
7064// MarshalJSON is the custom marshaler for AveragePartitionLoadScalingTrigger.
7065func (aplst AveragePartitionLoadScalingTrigger) MarshalJSON() ([]byte, error) {
7066	aplst.Kind = KindAveragePartitionLoad
7067	objectMap := make(map[string]interface{})
7068	if aplst.MetricName != nil {
7069		objectMap["MetricName"] = aplst.MetricName
7070	}
7071	if aplst.LowerLoadThreshold != nil {
7072		objectMap["LowerLoadThreshold"] = aplst.LowerLoadThreshold
7073	}
7074	if aplst.UpperLoadThreshold != nil {
7075		objectMap["UpperLoadThreshold"] = aplst.UpperLoadThreshold
7076	}
7077	if aplst.ScaleIntervalInSeconds != nil {
7078		objectMap["ScaleIntervalInSeconds"] = aplst.ScaleIntervalInSeconds
7079	}
7080	if aplst.Kind != "" {
7081		objectMap["Kind"] = aplst.Kind
7082	}
7083	return json.Marshal(objectMap)
7084}
7085
7086// AsAveragePartitionLoadScalingTrigger is the BasicScalingTriggerDescription implementation for AveragePartitionLoadScalingTrigger.
7087func (aplst AveragePartitionLoadScalingTrigger) AsAveragePartitionLoadScalingTrigger() (*AveragePartitionLoadScalingTrigger, bool) {
7088	return &aplst, true
7089}
7090
7091// AsAverageServiceLoadScalingTrigger is the BasicScalingTriggerDescription implementation for AveragePartitionLoadScalingTrigger.
7092func (aplst AveragePartitionLoadScalingTrigger) AsAverageServiceLoadScalingTrigger() (*AverageServiceLoadScalingTrigger, bool) {
7093	return nil, false
7094}
7095
7096// AsScalingTriggerDescription is the BasicScalingTriggerDescription implementation for AveragePartitionLoadScalingTrigger.
7097func (aplst AveragePartitionLoadScalingTrigger) AsScalingTriggerDescription() (*ScalingTriggerDescription, bool) {
7098	return nil, false
7099}
7100
7101// AsBasicScalingTriggerDescription is the BasicScalingTriggerDescription implementation for AveragePartitionLoadScalingTrigger.
7102func (aplst AveragePartitionLoadScalingTrigger) AsBasicScalingTriggerDescription() (BasicScalingTriggerDescription, bool) {
7103	return &aplst, true
7104}
7105
7106// AverageServiceLoadScalingTrigger represents a scaling policy related to an average load of a
7107// metric/resource of a service.
7108type AverageServiceLoadScalingTrigger 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 AverageServiceLoadScalingTrigger.
7122func (aslst AverageServiceLoadScalingTrigger) MarshalJSON() ([]byte, error) {
7123	aslst.Kind = KindAverageServiceLoad
7124	objectMap := make(map[string]interface{})
7125	if aslst.MetricName != nil {
7126		objectMap["MetricName"] = aslst.MetricName
7127	}
7128	if aslst.LowerLoadThreshold != nil {
7129		objectMap["LowerLoadThreshold"] = aslst.LowerLoadThreshold
7130	}
7131	if aslst.UpperLoadThreshold != nil {
7132		objectMap["UpperLoadThreshold"] = aslst.UpperLoadThreshold
7133	}
7134	if aslst.ScaleIntervalInSeconds != nil {
7135		objectMap["ScaleIntervalInSeconds"] = aslst.ScaleIntervalInSeconds
7136	}
7137	if aslst.Kind != "" {
7138		objectMap["Kind"] = aslst.Kind
7139	}
7140	return json.Marshal(objectMap)
7141}
7142
7143// AsAveragePartitionLoadScalingTrigger is the BasicScalingTriggerDescription implementation for AverageServiceLoadScalingTrigger.
7144func (aslst AverageServiceLoadScalingTrigger) AsAveragePartitionLoadScalingTrigger() (*AveragePartitionLoadScalingTrigger, bool) {
7145	return nil, false
7146}
7147
7148// AsAverageServiceLoadScalingTrigger is the BasicScalingTriggerDescription implementation for AverageServiceLoadScalingTrigger.
7149func (aslst AverageServiceLoadScalingTrigger) AsAverageServiceLoadScalingTrigger() (*AverageServiceLoadScalingTrigger, bool) {
7150	return &aslst, true
7151}
7152
7153// AsScalingTriggerDescription is the BasicScalingTriggerDescription implementation for AverageServiceLoadScalingTrigger.
7154func (aslst AverageServiceLoadScalingTrigger) AsScalingTriggerDescription() (*ScalingTriggerDescription, bool) {
7155	return nil, false
7156}
7157
7158// AsBasicScalingTriggerDescription is the BasicScalingTriggerDescription implementation for AverageServiceLoadScalingTrigger.
7159func (aslst AverageServiceLoadScalingTrigger) AsBasicScalingTriggerDescription() (BasicScalingTriggerDescription, bool) {
7160	return &aslst, true
7161}
7162
7163// AzureBlobBackupStorageDescription describes the parameters for Azure blob store used for storing and
7164// enumerating backups.
7165type AzureBlobBackupStorageDescription struct {
7166	// ConnectionString - The connection string to connect to the Azure blob store.
7167	ConnectionString *string `json:"ConnectionString,omitempty"`
7168	// ContainerName - The name of the container in the blob store to store and enumerate backups from.
7169	ContainerName *string `json:"ContainerName,omitempty"`
7170	// FriendlyName - Friendly name for this backup storage.
7171	FriendlyName *string `json:"FriendlyName,omitempty"`
7172	// StorageKind - Possible values include: 'StorageKindBackupStorageDescription', 'StorageKindAzureBlobStore', 'StorageKindFileShare'
7173	StorageKind StorageKind `json:"StorageKind,omitempty"`
7174}
7175
7176// MarshalJSON is the custom marshaler for AzureBlobBackupStorageDescription.
7177func (abbsd AzureBlobBackupStorageDescription) MarshalJSON() ([]byte, error) {
7178	abbsd.StorageKind = StorageKindAzureBlobStore
7179	objectMap := make(map[string]interface{})
7180	if abbsd.ConnectionString != nil {
7181		objectMap["ConnectionString"] = abbsd.ConnectionString
7182	}
7183	if abbsd.ContainerName != nil {
7184		objectMap["ContainerName"] = abbsd.ContainerName
7185	}
7186	if abbsd.FriendlyName != nil {
7187		objectMap["FriendlyName"] = abbsd.FriendlyName
7188	}
7189	if abbsd.StorageKind != "" {
7190		objectMap["StorageKind"] = abbsd.StorageKind
7191	}
7192	return json.Marshal(objectMap)
7193}
7194
7195// AsAzureBlobBackupStorageDescription is the BasicBackupStorageDescription implementation for AzureBlobBackupStorageDescription.
7196func (abbsd AzureBlobBackupStorageDescription) AsAzureBlobBackupStorageDescription() (*AzureBlobBackupStorageDescription, bool) {
7197	return &abbsd, true
7198}
7199
7200// AsFileShareBackupStorageDescription is the BasicBackupStorageDescription implementation for AzureBlobBackupStorageDescription.
7201func (abbsd AzureBlobBackupStorageDescription) AsFileShareBackupStorageDescription() (*FileShareBackupStorageDescription, bool) {
7202	return nil, false
7203}
7204
7205// AsBackupStorageDescription is the BasicBackupStorageDescription implementation for AzureBlobBackupStorageDescription.
7206func (abbsd AzureBlobBackupStorageDescription) AsBackupStorageDescription() (*BackupStorageDescription, bool) {
7207	return nil, false
7208}
7209
7210// AsBasicBackupStorageDescription is the BasicBackupStorageDescription implementation for AzureBlobBackupStorageDescription.
7211func (abbsd AzureBlobBackupStorageDescription) AsBasicBackupStorageDescription() (BasicBackupStorageDescription, bool) {
7212	return &abbsd, true
7213}
7214
7215// AzureInternalMonitoringPipelineSinkDescription diagnostics settings for Geneva.
7216type AzureInternalMonitoringPipelineSinkDescription struct {
7217	// AccountName - Azure Internal monitoring pipeline account.
7218	AccountName *string `json:"accountName,omitempty"`
7219	// Namespace - Azure Internal monitoring pipeline account namespace.
7220	Namespace *string `json:"namespace,omitempty"`
7221	// MaConfigURL - Azure Internal monitoring agent configuration.
7222	MaConfigURL *string `json:"maConfigUrl,omitempty"`
7223	// FluentdConfigURL - Azure Internal monitoring agent fluentd configuration.
7224	FluentdConfigURL *string `json:"fluentdConfigUrl,omitempty"`
7225	// AutoKeyConfigURL - Azure Internal monitoring pipeline autokey associated with the certificate.
7226	AutoKeyConfigURL *string `json:"autoKeyConfigUrl,omitempty"`
7227	// Name - Name of the sink. This value is referenced by DiagnosticsReferenceDescription
7228	Name *string `json:"name,omitempty"`
7229	// Description - A description of the sink.
7230	Description *string `json:"description,omitempty"`
7231	// Kind - Possible values include: 'KindDiagnosticsSinkProperties', 'KindAzureInternalMonitoringPipeline'
7232	Kind KindBasicDiagnosticsSinkProperties `json:"kind,omitempty"`
7233}
7234
7235// MarshalJSON is the custom marshaler for AzureInternalMonitoringPipelineSinkDescription.
7236func (aimpsd AzureInternalMonitoringPipelineSinkDescription) MarshalJSON() ([]byte, error) {
7237	aimpsd.Kind = KindAzureInternalMonitoringPipeline
7238	objectMap := make(map[string]interface{})
7239	if aimpsd.AccountName != nil {
7240		objectMap["accountName"] = aimpsd.AccountName
7241	}
7242	if aimpsd.Namespace != nil {
7243		objectMap["namespace"] = aimpsd.Namespace
7244	}
7245	if aimpsd.MaConfigURL != nil {
7246		objectMap["maConfigUrl"] = aimpsd.MaConfigURL
7247	}
7248	if aimpsd.FluentdConfigURL != nil {
7249		objectMap["fluentdConfigUrl"] = aimpsd.FluentdConfigURL
7250	}
7251	if aimpsd.AutoKeyConfigURL != nil {
7252		objectMap["autoKeyConfigUrl"] = aimpsd.AutoKeyConfigURL
7253	}
7254	if aimpsd.Name != nil {
7255		objectMap["name"] = aimpsd.Name
7256	}
7257	if aimpsd.Description != nil {
7258		objectMap["description"] = aimpsd.Description
7259	}
7260	if aimpsd.Kind != "" {
7261		objectMap["kind"] = aimpsd.Kind
7262	}
7263	return json.Marshal(objectMap)
7264}
7265
7266// AsAzureInternalMonitoringPipelineSinkDescription is the BasicDiagnosticsSinkProperties implementation for AzureInternalMonitoringPipelineSinkDescription.
7267func (aimpsd AzureInternalMonitoringPipelineSinkDescription) AsAzureInternalMonitoringPipelineSinkDescription() (*AzureInternalMonitoringPipelineSinkDescription, bool) {
7268	return &aimpsd, true
7269}
7270
7271// AsDiagnosticsSinkProperties is the BasicDiagnosticsSinkProperties implementation for AzureInternalMonitoringPipelineSinkDescription.
7272func (aimpsd AzureInternalMonitoringPipelineSinkDescription) AsDiagnosticsSinkProperties() (*DiagnosticsSinkProperties, bool) {
7273	return nil, false
7274}
7275
7276// AsBasicDiagnosticsSinkProperties is the BasicDiagnosticsSinkProperties implementation for AzureInternalMonitoringPipelineSinkDescription.
7277func (aimpsd AzureInternalMonitoringPipelineSinkDescription) AsBasicDiagnosticsSinkProperties() (BasicDiagnosticsSinkProperties, bool) {
7278	return &aimpsd, true
7279}
7280
7281// BasicBackupConfigurationInfo describes the backup configuration information.
7282type BasicBackupConfigurationInfo interface {
7283	AsApplicationBackupConfigurationInfo() (*ApplicationBackupConfigurationInfo, bool)
7284	AsServiceBackupConfigurationInfo() (*ServiceBackupConfigurationInfo, bool)
7285	AsPartitionBackupConfigurationInfo() (*PartitionBackupConfigurationInfo, bool)
7286	AsBackupConfigurationInfo() (*BackupConfigurationInfo, bool)
7287}
7288
7289// BackupConfigurationInfo describes the backup configuration information.
7290type BackupConfigurationInfo struct {
7291	// PolicyName - The name of the backup policy which is applicable to this Service Fabric application or service or partition.
7292	PolicyName *string `json:"PolicyName,omitempty"`
7293	// PolicyInheritedFrom - Specifies the scope at which the backup policy is applied. Possible values include: 'BackupPolicyScopeInvalid', 'BackupPolicyScopePartition', 'BackupPolicyScopeService', 'BackupPolicyScopeApplication'
7294	PolicyInheritedFrom BackupPolicyScope `json:"PolicyInheritedFrom,omitempty"`
7295	// SuspensionInfo - Describes the backup suspension details.
7296	SuspensionInfo *BackupSuspensionInfo `json:"SuspensionInfo,omitempty"`
7297	// Kind - Possible values include: 'KindBasicBackupConfigurationInfoKindBackupConfigurationInfo', 'KindBasicBackupConfigurationInfoKindApplication', 'KindBasicBackupConfigurationInfoKindService', 'KindBasicBackupConfigurationInfoKindPartition'
7298	Kind KindBasicBackupConfigurationInfo `json:"Kind,omitempty"`
7299}
7300
7301func unmarshalBasicBackupConfigurationInfo(body []byte) (BasicBackupConfigurationInfo, error) {
7302	var m map[string]interface{}
7303	err := json.Unmarshal(body, &m)
7304	if err != nil {
7305		return nil, err
7306	}
7307
7308	switch m["Kind"] {
7309	case string(KindBasicBackupConfigurationInfoKindApplication):
7310		var abci ApplicationBackupConfigurationInfo
7311		err := json.Unmarshal(body, &abci)
7312		return abci, err
7313	case string(KindBasicBackupConfigurationInfoKindService):
7314		var sbci ServiceBackupConfigurationInfo
7315		err := json.Unmarshal(body, &sbci)
7316		return sbci, err
7317	case string(KindBasicBackupConfigurationInfoKindPartition):
7318		var pbci PartitionBackupConfigurationInfo
7319		err := json.Unmarshal(body, &pbci)
7320		return pbci, err
7321	default:
7322		var bci BackupConfigurationInfo
7323		err := json.Unmarshal(body, &bci)
7324		return bci, err
7325	}
7326}
7327func unmarshalBasicBackupConfigurationInfoArray(body []byte) ([]BasicBackupConfigurationInfo, error) {
7328	var rawMessages []*json.RawMessage
7329	err := json.Unmarshal(body, &rawMessages)
7330	if err != nil {
7331		return nil, err
7332	}
7333
7334	bciArray := make([]BasicBackupConfigurationInfo, len(rawMessages))
7335
7336	for index, rawMessage := range rawMessages {
7337		bci, err := unmarshalBasicBackupConfigurationInfo(*rawMessage)
7338		if err != nil {
7339			return nil, err
7340		}
7341		bciArray[index] = bci
7342	}
7343	return bciArray, nil
7344}
7345
7346// MarshalJSON is the custom marshaler for BackupConfigurationInfo.
7347func (bci BackupConfigurationInfo) MarshalJSON() ([]byte, error) {
7348	bci.Kind = KindBasicBackupConfigurationInfoKindBackupConfigurationInfo
7349	objectMap := make(map[string]interface{})
7350	if bci.PolicyName != nil {
7351		objectMap["PolicyName"] = bci.PolicyName
7352	}
7353	if bci.PolicyInheritedFrom != "" {
7354		objectMap["PolicyInheritedFrom"] = bci.PolicyInheritedFrom
7355	}
7356	if bci.SuspensionInfo != nil {
7357		objectMap["SuspensionInfo"] = bci.SuspensionInfo
7358	}
7359	if bci.Kind != "" {
7360		objectMap["Kind"] = bci.Kind
7361	}
7362	return json.Marshal(objectMap)
7363}
7364
7365// AsApplicationBackupConfigurationInfo is the BasicBackupConfigurationInfo implementation for BackupConfigurationInfo.
7366func (bci BackupConfigurationInfo) AsApplicationBackupConfigurationInfo() (*ApplicationBackupConfigurationInfo, bool) {
7367	return nil, false
7368}
7369
7370// AsServiceBackupConfigurationInfo is the BasicBackupConfigurationInfo implementation for BackupConfigurationInfo.
7371func (bci BackupConfigurationInfo) AsServiceBackupConfigurationInfo() (*ServiceBackupConfigurationInfo, bool) {
7372	return nil, false
7373}
7374
7375// AsPartitionBackupConfigurationInfo is the BasicBackupConfigurationInfo implementation for BackupConfigurationInfo.
7376func (bci BackupConfigurationInfo) AsPartitionBackupConfigurationInfo() (*PartitionBackupConfigurationInfo, bool) {
7377	return nil, false
7378}
7379
7380// AsBackupConfigurationInfo is the BasicBackupConfigurationInfo implementation for BackupConfigurationInfo.
7381func (bci BackupConfigurationInfo) AsBackupConfigurationInfo() (*BackupConfigurationInfo, bool) {
7382	return &bci, true
7383}
7384
7385// AsBasicBackupConfigurationInfo is the BasicBackupConfigurationInfo implementation for BackupConfigurationInfo.
7386func (bci BackupConfigurationInfo) AsBasicBackupConfigurationInfo() (BasicBackupConfigurationInfo, bool) {
7387	return &bci, true
7388}
7389
7390// BasicBackupEntity describes the Service Fabric entity that is configured for backup.
7391type BasicBackupEntity interface {
7392	AsApplicationBackupEntity() (*ApplicationBackupEntity, bool)
7393	AsServiceBackupEntity() (*ServiceBackupEntity, bool)
7394	AsPartitionBackupEntity() (*PartitionBackupEntity, bool)
7395	AsBackupEntity() (*BackupEntity, bool)
7396}
7397
7398// BackupEntity describes the Service Fabric entity that is configured for backup.
7399type BackupEntity struct {
7400	// EntityKind - Possible values include: 'EntityKindBackupEntity', 'EntityKindApplication1', 'EntityKindService1', 'EntityKindPartition1'
7401	EntityKind EntityKindBasicBackupEntity `json:"EntityKind,omitempty"`
7402}
7403
7404func unmarshalBasicBackupEntity(body []byte) (BasicBackupEntity, error) {
7405	var m map[string]interface{}
7406	err := json.Unmarshal(body, &m)
7407	if err != nil {
7408		return nil, err
7409	}
7410
7411	switch m["EntityKind"] {
7412	case string(EntityKindApplication1):
7413		var abe ApplicationBackupEntity
7414		err := json.Unmarshal(body, &abe)
7415		return abe, err
7416	case string(EntityKindService1):
7417		var sbe ServiceBackupEntity
7418		err := json.Unmarshal(body, &sbe)
7419		return sbe, err
7420	case string(EntityKindPartition1):
7421		var pbe PartitionBackupEntity
7422		err := json.Unmarshal(body, &pbe)
7423		return pbe, err
7424	default:
7425		var be BackupEntity
7426		err := json.Unmarshal(body, &be)
7427		return be, err
7428	}
7429}
7430func unmarshalBasicBackupEntityArray(body []byte) ([]BasicBackupEntity, error) {
7431	var rawMessages []*json.RawMessage
7432	err := json.Unmarshal(body, &rawMessages)
7433	if err != nil {
7434		return nil, err
7435	}
7436
7437	beArray := make([]BasicBackupEntity, len(rawMessages))
7438
7439	for index, rawMessage := range rawMessages {
7440		be, err := unmarshalBasicBackupEntity(*rawMessage)
7441		if err != nil {
7442			return nil, err
7443		}
7444		beArray[index] = be
7445	}
7446	return beArray, nil
7447}
7448
7449// MarshalJSON is the custom marshaler for BackupEntity.
7450func (be BackupEntity) MarshalJSON() ([]byte, error) {
7451	be.EntityKind = EntityKindBackupEntity
7452	objectMap := make(map[string]interface{})
7453	if be.EntityKind != "" {
7454		objectMap["EntityKind"] = be.EntityKind
7455	}
7456	return json.Marshal(objectMap)
7457}
7458
7459// AsApplicationBackupEntity is the BasicBackupEntity implementation for BackupEntity.
7460func (be BackupEntity) AsApplicationBackupEntity() (*ApplicationBackupEntity, bool) {
7461	return nil, false
7462}
7463
7464// AsServiceBackupEntity is the BasicBackupEntity implementation for BackupEntity.
7465func (be BackupEntity) AsServiceBackupEntity() (*ServiceBackupEntity, bool) {
7466	return nil, false
7467}
7468
7469// AsPartitionBackupEntity is the BasicBackupEntity implementation for BackupEntity.
7470func (be BackupEntity) AsPartitionBackupEntity() (*PartitionBackupEntity, bool) {
7471	return nil, false
7472}
7473
7474// AsBackupEntity is the BasicBackupEntity implementation for BackupEntity.
7475func (be BackupEntity) AsBackupEntity() (*BackupEntity, bool) {
7476	return &be, true
7477}
7478
7479// AsBasicBackupEntity is the BasicBackupEntity implementation for BackupEntity.
7480func (be BackupEntity) AsBasicBackupEntity() (BasicBackupEntity, bool) {
7481	return &be, true
7482}
7483
7484// BackupInfo represents a backup point which can be used to trigger a restore.
7485type BackupInfo struct {
7486	// BackupID - Unique backup ID .
7487	BackupID *uuid.UUID `json:"BackupId,omitempty"`
7488	// 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.
7489	BackupChainID *uuid.UUID `json:"BackupChainId,omitempty"`
7490	// ApplicationName - Name of the Service Fabric application this partition backup belongs to.
7491	ApplicationName *string `json:"ApplicationName,omitempty"`
7492	// ServiceName - Name of the Service Fabric service this partition backup belongs to.
7493	ServiceName *string `json:"ServiceName,omitempty"`
7494	// PartitionInformation - Information about the partition to which this backup belongs to
7495	PartitionInformation BasicPartitionInformation `json:"PartitionInformation,omitempty"`
7496	// BackupLocation - Location of the backup, relative to the backup store.
7497	BackupLocation *string `json:"BackupLocation,omitempty"`
7498	// BackupType - Describes the type of backup, whether its full or incremental. Possible values include: 'BackupTypeInvalid', 'BackupTypeFull', 'BackupTypeIncremental'
7499	BackupType BackupType `json:"BackupType,omitempty"`
7500	// EpochOfLastBackupRecord - Epoch of the last record in this backup.
7501	EpochOfLastBackupRecord *Epoch `json:"EpochOfLastBackupRecord,omitempty"`
7502	// LsnOfLastBackupRecord - LSN of the last record in this backup.
7503	LsnOfLastBackupRecord *string `json:"LsnOfLastBackupRecord,omitempty"`
7504	// CreationTimeUtc - The date time when this backup was taken.
7505	CreationTimeUtc *date.Time `json:"CreationTimeUtc,omitempty"`
7506	// ServiceManifestVersion - Manifest Version of the service this partition backup belongs to.
7507	ServiceManifestVersion *string `json:"ServiceManifestVersion,omitempty"`
7508	// FailureError - Denotes the failure encountered in getting backup point information.
7509	FailureError *FabricErrorError `json:"FailureError,omitempty"`
7510}
7511
7512// UnmarshalJSON is the custom unmarshaler for BackupInfo struct.
7513func (bi *BackupInfo) UnmarshalJSON(body []byte) error {
7514	var m map[string]*json.RawMessage
7515	err := json.Unmarshal(body, &m)
7516	if err != nil {
7517		return err
7518	}
7519	for k, v := range m {
7520		switch k {
7521		case "BackupId":
7522			if v != nil {
7523				var backupID uuid.UUID
7524				err = json.Unmarshal(*v, &backupID)
7525				if err != nil {
7526					return err
7527				}
7528				bi.BackupID = &backupID
7529			}
7530		case "BackupChainId":
7531			if v != nil {
7532				var backupChainID uuid.UUID
7533				err = json.Unmarshal(*v, &backupChainID)
7534				if err != nil {
7535					return err
7536				}
7537				bi.BackupChainID = &backupChainID
7538			}
7539		case "ApplicationName":
7540			if v != nil {
7541				var applicationName string
7542				err = json.Unmarshal(*v, &applicationName)
7543				if err != nil {
7544					return err
7545				}
7546				bi.ApplicationName = &applicationName
7547			}
7548		case "ServiceName":
7549			if v != nil {
7550				var serviceName string
7551				err = json.Unmarshal(*v, &serviceName)
7552				if err != nil {
7553					return err
7554				}
7555				bi.ServiceName = &serviceName
7556			}
7557		case "PartitionInformation":
7558			if v != nil {
7559				partitionInformation, err := unmarshalBasicPartitionInformation(*v)
7560				if err != nil {
7561					return err
7562				}
7563				bi.PartitionInformation = partitionInformation
7564			}
7565		case "BackupLocation":
7566			if v != nil {
7567				var backupLocation string
7568				err = json.Unmarshal(*v, &backupLocation)
7569				if err != nil {
7570					return err
7571				}
7572				bi.BackupLocation = &backupLocation
7573			}
7574		case "BackupType":
7575			if v != nil {
7576				var backupType BackupType
7577				err = json.Unmarshal(*v, &backupType)
7578				if err != nil {
7579					return err
7580				}
7581				bi.BackupType = backupType
7582			}
7583		case "EpochOfLastBackupRecord":
7584			if v != nil {
7585				var epochOfLastBackupRecord Epoch
7586				err = json.Unmarshal(*v, &epochOfLastBackupRecord)
7587				if err != nil {
7588					return err
7589				}
7590				bi.EpochOfLastBackupRecord = &epochOfLastBackupRecord
7591			}
7592		case "LsnOfLastBackupRecord":
7593			if v != nil {
7594				var lsnOfLastBackupRecord string
7595				err = json.Unmarshal(*v, &lsnOfLastBackupRecord)
7596				if err != nil {
7597					return err
7598				}
7599				bi.LsnOfLastBackupRecord = &lsnOfLastBackupRecord
7600			}
7601		case "CreationTimeUtc":
7602			if v != nil {
7603				var creationTimeUtc date.Time
7604				err = json.Unmarshal(*v, &creationTimeUtc)
7605				if err != nil {
7606					return err
7607				}
7608				bi.CreationTimeUtc = &creationTimeUtc
7609			}
7610		case "ServiceManifestVersion":
7611			if v != nil {
7612				var serviceManifestVersion string
7613				err = json.Unmarshal(*v, &serviceManifestVersion)
7614				if err != nil {
7615					return err
7616				}
7617				bi.ServiceManifestVersion = &serviceManifestVersion
7618			}
7619		case "FailureError":
7620			if v != nil {
7621				var failureError FabricErrorError
7622				err = json.Unmarshal(*v, &failureError)
7623				if err != nil {
7624					return err
7625				}
7626				bi.FailureError = &failureError
7627			}
7628		}
7629	}
7630
7631	return nil
7632}
7633
7634// BackupPartitionDescription describes the parameters for triggering partition's backup.
7635type BackupPartitionDescription struct {
7636	// BackupStorage - Specifies the details of the backup storage where to save the backup.
7637	BackupStorage BasicBackupStorageDescription `json:"BackupStorage,omitempty"`
7638}
7639
7640// UnmarshalJSON is the custom unmarshaler for BackupPartitionDescription struct.
7641func (bpd *BackupPartitionDescription) UnmarshalJSON(body []byte) error {
7642	var m map[string]*json.RawMessage
7643	err := json.Unmarshal(body, &m)
7644	if err != nil {
7645		return err
7646	}
7647	for k, v := range m {
7648		switch k {
7649		case "BackupStorage":
7650			if v != nil {
7651				backupStorage, err := unmarshalBasicBackupStorageDescription(*v)
7652				if err != nil {
7653					return err
7654				}
7655				bpd.BackupStorage = backupStorage
7656			}
7657		}
7658	}
7659
7660	return nil
7661}
7662
7663// BackupPolicyDescription describes a backup policy for configuring periodic backup.
7664type BackupPolicyDescription struct {
7665	autorest.Response `json:"-"`
7666	// Name - The unique name identifying this backup policy.
7667	Name *string `json:"Name,omitempty"`
7668	// AutoRestoreOnDataLoss - Specifies whether to trigger restore automatically using the latest available backup in case the partition experiences a data loss event.
7669	AutoRestoreOnDataLoss *bool `json:"AutoRestoreOnDataLoss,omitempty"`
7670	// 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
7671	// - The replica has never taken a full backup since it has become primary,
7672	// - Some of the log records since the last backup has been truncated, or
7673	// - Replica passed the MaxAccumulatedBackupLogSizeInMB limit.
7674	MaxIncrementalBackups *int32 `json:"MaxIncrementalBackups,omitempty"`
7675	// Schedule - Describes the backup schedule parameters.
7676	Schedule BasicBackupScheduleDescription `json:"Schedule,omitempty"`
7677	// Storage - Describes the details of backup storage where to store the periodic backups.
7678	Storage BasicBackupStorageDescription `json:"Storage,omitempty"`
7679	// RetentionPolicy - Describes the policy to retain backups in storage.
7680	RetentionPolicy BasicBasicRetentionPolicyDescription `json:"RetentionPolicy,omitempty"`
7681}
7682
7683// UnmarshalJSON is the custom unmarshaler for BackupPolicyDescription struct.
7684func (bpd *BackupPolicyDescription) UnmarshalJSON(body []byte) error {
7685	var m map[string]*json.RawMessage
7686	err := json.Unmarshal(body, &m)
7687	if err != nil {
7688		return err
7689	}
7690	for k, v := range m {
7691		switch k {
7692		case "Name":
7693			if v != nil {
7694				var name string
7695				err = json.Unmarshal(*v, &name)
7696				if err != nil {
7697					return err
7698				}
7699				bpd.Name = &name
7700			}
7701		case "AutoRestoreOnDataLoss":
7702			if v != nil {
7703				var autoRestoreOnDataLoss bool
7704				err = json.Unmarshal(*v, &autoRestoreOnDataLoss)
7705				if err != nil {
7706					return err
7707				}
7708				bpd.AutoRestoreOnDataLoss = &autoRestoreOnDataLoss
7709			}
7710		case "MaxIncrementalBackups":
7711			if v != nil {
7712				var maxIncrementalBackups int32
7713				err = json.Unmarshal(*v, &maxIncrementalBackups)
7714				if err != nil {
7715					return err
7716				}
7717				bpd.MaxIncrementalBackups = &maxIncrementalBackups
7718			}
7719		case "Schedule":
7720			if v != nil {
7721				schedule, err := unmarshalBasicBackupScheduleDescription(*v)
7722				if err != nil {
7723					return err
7724				}
7725				bpd.Schedule = schedule
7726			}
7727		case "Storage":
7728			if v != nil {
7729				storage, err := unmarshalBasicBackupStorageDescription(*v)
7730				if err != nil {
7731					return err
7732				}
7733				bpd.Storage = storage
7734			}
7735		case "RetentionPolicy":
7736			if v != nil {
7737				retentionPolicy, err := unmarshalBasicBasicRetentionPolicyDescription(*v)
7738				if err != nil {
7739					return err
7740				}
7741				bpd.RetentionPolicy = retentionPolicy
7742			}
7743		}
7744	}
7745
7746	return nil
7747}
7748
7749// BackupProgressInfo describes the progress of a partition's backup.
7750type BackupProgressInfo struct {
7751	autorest.Response `json:"-"`
7752	// BackupState - Represents the current state of the partition backup operation. Possible values include: 'BackupStateInvalid', 'BackupStateAccepted', 'BackupStateBackupInProgress', 'BackupStateSuccess', 'BackupStateFailure', 'BackupStateTimeout'
7753	BackupState BackupState `json:"BackupState,omitempty"`
7754	// TimeStampUtc - TimeStamp in UTC when operation succeeded or failed.
7755	TimeStampUtc *date.Time `json:"TimeStampUtc,omitempty"`
7756	// BackupID - Unique ID of the newly created backup.
7757	BackupID *uuid.UUID `json:"BackupId,omitempty"`
7758	// BackupLocation - Location, relative to the backup store, of the newly created backup.
7759	BackupLocation *string `json:"BackupLocation,omitempty"`
7760	// EpochOfLastBackupRecord - Specifies the epoch of the last record included in backup.
7761	EpochOfLastBackupRecord *Epoch `json:"EpochOfLastBackupRecord,omitempty"`
7762	// LsnOfLastBackupRecord - The LSN of last record included in backup.
7763	LsnOfLastBackupRecord *string `json:"LsnOfLastBackupRecord,omitempty"`
7764	// FailureError - Denotes the failure encountered in performing backup operation.
7765	FailureError *FabricErrorError `json:"FailureError,omitempty"`
7766}
7767
7768// BasicBackupScheduleDescription describes the backup schedule parameters.
7769type BasicBackupScheduleDescription interface {
7770	AsFrequencyBasedBackupScheduleDescription() (*FrequencyBasedBackupScheduleDescription, bool)
7771	AsTimeBasedBackupScheduleDescription() (*TimeBasedBackupScheduleDescription, bool)
7772	AsBackupScheduleDescription() (*BackupScheduleDescription, bool)
7773}
7774
7775// BackupScheduleDescription describes the backup schedule parameters.
7776type BackupScheduleDescription struct {
7777	// ScheduleKind - Possible values include: 'ScheduleKindBackupScheduleDescription', 'ScheduleKindFrequencyBased', 'ScheduleKindTimeBased'
7778	ScheduleKind ScheduleKind `json:"ScheduleKind,omitempty"`
7779}
7780
7781func unmarshalBasicBackupScheduleDescription(body []byte) (BasicBackupScheduleDescription, error) {
7782	var m map[string]interface{}
7783	err := json.Unmarshal(body, &m)
7784	if err != nil {
7785		return nil, err
7786	}
7787
7788	switch m["ScheduleKind"] {
7789	case string(ScheduleKindFrequencyBased):
7790		var fbbsd FrequencyBasedBackupScheduleDescription
7791		err := json.Unmarshal(body, &fbbsd)
7792		return fbbsd, err
7793	case string(ScheduleKindTimeBased):
7794		var tbbsd TimeBasedBackupScheduleDescription
7795		err := json.Unmarshal(body, &tbbsd)
7796		return tbbsd, err
7797	default:
7798		var bsd BackupScheduleDescription
7799		err := json.Unmarshal(body, &bsd)
7800		return bsd, err
7801	}
7802}
7803func unmarshalBasicBackupScheduleDescriptionArray(body []byte) ([]BasicBackupScheduleDescription, error) {
7804	var rawMessages []*json.RawMessage
7805	err := json.Unmarshal(body, &rawMessages)
7806	if err != nil {
7807		return nil, err
7808	}
7809
7810	bsdArray := make([]BasicBackupScheduleDescription, len(rawMessages))
7811
7812	for index, rawMessage := range rawMessages {
7813		bsd, err := unmarshalBasicBackupScheduleDescription(*rawMessage)
7814		if err != nil {
7815			return nil, err
7816		}
7817		bsdArray[index] = bsd
7818	}
7819	return bsdArray, nil
7820}
7821
7822// MarshalJSON is the custom marshaler for BackupScheduleDescription.
7823func (bsd BackupScheduleDescription) MarshalJSON() ([]byte, error) {
7824	bsd.ScheduleKind = ScheduleKindBackupScheduleDescription
7825	objectMap := make(map[string]interface{})
7826	if bsd.ScheduleKind != "" {
7827		objectMap["ScheduleKind"] = bsd.ScheduleKind
7828	}
7829	return json.Marshal(objectMap)
7830}
7831
7832// AsFrequencyBasedBackupScheduleDescription is the BasicBackupScheduleDescription implementation for BackupScheduleDescription.
7833func (bsd BackupScheduleDescription) AsFrequencyBasedBackupScheduleDescription() (*FrequencyBasedBackupScheduleDescription, bool) {
7834	return nil, false
7835}
7836
7837// AsTimeBasedBackupScheduleDescription is the BasicBackupScheduleDescription implementation for BackupScheduleDescription.
7838func (bsd BackupScheduleDescription) AsTimeBasedBackupScheduleDescription() (*TimeBasedBackupScheduleDescription, bool) {
7839	return nil, false
7840}
7841
7842// AsBackupScheduleDescription is the BasicBackupScheduleDescription implementation for BackupScheduleDescription.
7843func (bsd BackupScheduleDescription) AsBackupScheduleDescription() (*BackupScheduleDescription, bool) {
7844	return &bsd, true
7845}
7846
7847// AsBasicBackupScheduleDescription is the BasicBackupScheduleDescription implementation for BackupScheduleDescription.
7848func (bsd BackupScheduleDescription) AsBasicBackupScheduleDescription() (BasicBackupScheduleDescription, bool) {
7849	return &bsd, true
7850}
7851
7852// BasicBackupStorageDescription describes the parameters for the backup storage.
7853type BasicBackupStorageDescription interface {
7854	AsAzureBlobBackupStorageDescription() (*AzureBlobBackupStorageDescription, bool)
7855	AsFileShareBackupStorageDescription() (*FileShareBackupStorageDescription, bool)
7856	AsBackupStorageDescription() (*BackupStorageDescription, bool)
7857}
7858
7859// BackupStorageDescription describes the parameters for the backup storage.
7860type BackupStorageDescription struct {
7861	// FriendlyName - Friendly name for this backup storage.
7862	FriendlyName *string `json:"FriendlyName,omitempty"`
7863	// StorageKind - Possible values include: 'StorageKindBackupStorageDescription', 'StorageKindAzureBlobStore', 'StorageKindFileShare'
7864	StorageKind StorageKind `json:"StorageKind,omitempty"`
7865}
7866
7867func unmarshalBasicBackupStorageDescription(body []byte) (BasicBackupStorageDescription, error) {
7868	var m map[string]interface{}
7869	err := json.Unmarshal(body, &m)
7870	if err != nil {
7871		return nil, err
7872	}
7873
7874	switch m["StorageKind"] {
7875	case string(StorageKindAzureBlobStore):
7876		var abbsd AzureBlobBackupStorageDescription
7877		err := json.Unmarshal(body, &abbsd)
7878		return abbsd, err
7879	case string(StorageKindFileShare):
7880		var fsbsd FileShareBackupStorageDescription
7881		err := json.Unmarshal(body, &fsbsd)
7882		return fsbsd, err
7883	default:
7884		var bsd BackupStorageDescription
7885		err := json.Unmarshal(body, &bsd)
7886		return bsd, err
7887	}
7888}
7889func unmarshalBasicBackupStorageDescriptionArray(body []byte) ([]BasicBackupStorageDescription, error) {
7890	var rawMessages []*json.RawMessage
7891	err := json.Unmarshal(body, &rawMessages)
7892	if err != nil {
7893		return nil, err
7894	}
7895
7896	bsdArray := make([]BasicBackupStorageDescription, len(rawMessages))
7897
7898	for index, rawMessage := range rawMessages {
7899		bsd, err := unmarshalBasicBackupStorageDescription(*rawMessage)
7900		if err != nil {
7901			return nil, err
7902		}
7903		bsdArray[index] = bsd
7904	}
7905	return bsdArray, nil
7906}
7907
7908// MarshalJSON is the custom marshaler for BackupStorageDescription.
7909func (bsd BackupStorageDescription) MarshalJSON() ([]byte, error) {
7910	bsd.StorageKind = StorageKindBackupStorageDescription
7911	objectMap := make(map[string]interface{})
7912	if bsd.FriendlyName != nil {
7913		objectMap["FriendlyName"] = bsd.FriendlyName
7914	}
7915	if bsd.StorageKind != "" {
7916		objectMap["StorageKind"] = bsd.StorageKind
7917	}
7918	return json.Marshal(objectMap)
7919}
7920
7921// AsAzureBlobBackupStorageDescription is the BasicBackupStorageDescription implementation for BackupStorageDescription.
7922func (bsd BackupStorageDescription) AsAzureBlobBackupStorageDescription() (*AzureBlobBackupStorageDescription, bool) {
7923	return nil, false
7924}
7925
7926// AsFileShareBackupStorageDescription is the BasicBackupStorageDescription implementation for BackupStorageDescription.
7927func (bsd BackupStorageDescription) AsFileShareBackupStorageDescription() (*FileShareBackupStorageDescription, bool) {
7928	return nil, false
7929}
7930
7931// AsBackupStorageDescription is the BasicBackupStorageDescription implementation for BackupStorageDescription.
7932func (bsd BackupStorageDescription) AsBackupStorageDescription() (*BackupStorageDescription, bool) {
7933	return &bsd, true
7934}
7935
7936// AsBasicBackupStorageDescription is the BasicBackupStorageDescription implementation for BackupStorageDescription.
7937func (bsd BackupStorageDescription) AsBasicBackupStorageDescription() (BasicBackupStorageDescription, bool) {
7938	return &bsd, true
7939}
7940
7941// BackupSuspensionInfo describes the backup suspension details.
7942type BackupSuspensionInfo struct {
7943	// IsSuspended - Indicates whether periodic backup is suspended at this level or not.
7944	IsSuspended *bool `json:"IsSuspended,omitempty"`
7945	// SuspensionInheritedFrom - Specifies the scope at which the backup suspension was applied. Possible values include: 'BackupSuspensionScopeInvalid', 'BackupSuspensionScopePartition', 'BackupSuspensionScopeService', 'BackupSuspensionScopeApplication'
7946	SuspensionInheritedFrom BackupSuspensionScope `json:"SuspensionInheritedFrom,omitempty"`
7947}
7948
7949// BasicRetentionPolicyDescription describes basic retention policy.
7950type BasicRetentionPolicyDescription struct {
7951	// 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.
7952	RetentionDuration *string `json:"RetentionDuration,omitempty"`
7953	// 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.
7954	MinimumNumberOfBackups *int32 `json:"MinimumNumberOfBackups,omitempty"`
7955	// RetentionPolicyType - Possible values include: 'RetentionPolicyTypeRetentionPolicyDescription', 'RetentionPolicyTypeBasic1'
7956	RetentionPolicyType RetentionPolicyTypeBasicBasicRetentionPolicyDescription `json:"RetentionPolicyType,omitempty"`
7957}
7958
7959// MarshalJSON is the custom marshaler for BasicRetentionPolicyDescription.
7960func (brpd BasicRetentionPolicyDescription) MarshalJSON() ([]byte, error) {
7961	brpd.RetentionPolicyType = RetentionPolicyTypeBasic1
7962	objectMap := make(map[string]interface{})
7963	if brpd.RetentionDuration != nil {
7964		objectMap["RetentionDuration"] = brpd.RetentionDuration
7965	}
7966	if brpd.MinimumNumberOfBackups != nil {
7967		objectMap["MinimumNumberOfBackups"] = brpd.MinimumNumberOfBackups
7968	}
7969	if brpd.RetentionPolicyType != "" {
7970		objectMap["RetentionPolicyType"] = brpd.RetentionPolicyType
7971	}
7972	return json.Marshal(objectMap)
7973}
7974
7975// AsBasicRetentionPolicyDescription is the BasicBasicRetentionPolicyDescription implementation for BasicRetentionPolicyDescription.
7976func (brpd BasicRetentionPolicyDescription) AsBasicRetentionPolicyDescription() (*BasicRetentionPolicyDescription, bool) {
7977	return &brpd, true
7978}
7979
7980// AsRetentionPolicyDescription is the BasicBasicRetentionPolicyDescription implementation for BasicRetentionPolicyDescription.
7981func (brpd BasicRetentionPolicyDescription) AsRetentionPolicyDescription() (*RetentionPolicyDescription, bool) {
7982	return nil, false
7983}
7984
7985// AsBasicBasicRetentionPolicyDescription is the BasicBasicRetentionPolicyDescription implementation for BasicRetentionPolicyDescription.
7986func (brpd BasicRetentionPolicyDescription) AsBasicBasicRetentionPolicyDescription() (BasicBasicRetentionPolicyDescription, bool) {
7987	return &brpd, true
7988}
7989
7990// BinaryPropertyValue describes a Service Fabric property value of type Binary.
7991type BinaryPropertyValue struct {
7992	// Data - Array of bytes to be sent as an integer array. Each element of array is a number between 0 and 255.
7993	Data *[]int32 `json:"Data,omitempty"`
7994	// Kind - Possible values include: 'KindPropertyValue', 'KindBinary', 'KindInt64', 'KindDouble', 'KindString', 'KindGUID'
7995	Kind KindBasicPropertyValue `json:"Kind,omitempty"`
7996}
7997
7998// MarshalJSON is the custom marshaler for BinaryPropertyValue.
7999func (bpv BinaryPropertyValue) MarshalJSON() ([]byte, error) {
8000	bpv.Kind = KindBinary
8001	objectMap := make(map[string]interface{})
8002	if bpv.Data != nil {
8003		objectMap["Data"] = bpv.Data
8004	}
8005	if bpv.Kind != "" {
8006		objectMap["Kind"] = bpv.Kind
8007	}
8008	return json.Marshal(objectMap)
8009}
8010
8011// AsBinaryPropertyValue is the BasicPropertyValue implementation for BinaryPropertyValue.
8012func (bpv BinaryPropertyValue) AsBinaryPropertyValue() (*BinaryPropertyValue, bool) {
8013	return &bpv, true
8014}
8015
8016// AsInt64PropertyValue is the BasicPropertyValue implementation for BinaryPropertyValue.
8017func (bpv BinaryPropertyValue) AsInt64PropertyValue() (*Int64PropertyValue, bool) {
8018	return nil, false
8019}
8020
8021// AsDoublePropertyValue is the BasicPropertyValue implementation for BinaryPropertyValue.
8022func (bpv BinaryPropertyValue) AsDoublePropertyValue() (*DoublePropertyValue, bool) {
8023	return nil, false
8024}
8025
8026// AsStringPropertyValue is the BasicPropertyValue implementation for BinaryPropertyValue.
8027func (bpv BinaryPropertyValue) AsStringPropertyValue() (*StringPropertyValue, bool) {
8028	return nil, false
8029}
8030
8031// AsGUIDPropertyValue is the BasicPropertyValue implementation for BinaryPropertyValue.
8032func (bpv BinaryPropertyValue) AsGUIDPropertyValue() (*GUIDPropertyValue, bool) {
8033	return nil, false
8034}
8035
8036// AsPropertyValue is the BasicPropertyValue implementation for BinaryPropertyValue.
8037func (bpv BinaryPropertyValue) AsPropertyValue() (*PropertyValue, bool) {
8038	return nil, false
8039}
8040
8041// AsBasicPropertyValue is the BasicPropertyValue implementation for BinaryPropertyValue.
8042func (bpv BinaryPropertyValue) AsBasicPropertyValue() (BasicPropertyValue, bool) {
8043	return &bpv, true
8044}
8045
8046// Chaos contains a description of Chaos.
8047type Chaos struct {
8048	autorest.Response `json:"-"`
8049	// ChaosParameters - If Chaos is running, these are the parameters Chaos is running with.
8050	ChaosParameters *ChaosParameters `json:"ChaosParameters,omitempty"`
8051	// Status - Current status of the Chaos run. Possible values include: 'ChaosStatusInvalid', 'ChaosStatusRunning', 'ChaosStatusStopped'
8052	Status ChaosStatus `json:"Status,omitempty"`
8053	// ScheduleStatus - Current status of the schedule. Possible values include: 'ChaosScheduleStatusInvalid', 'ChaosScheduleStatusStopped', 'ChaosScheduleStatusActive', 'ChaosScheduleStatusExpired', 'ChaosScheduleStatusPending'
8054	ScheduleStatus ChaosScheduleStatus `json:"ScheduleStatus,omitempty"`
8055}
8056
8057// ChaosCodePackageRestartScheduledEvent chaos Restart Code Package Fault Scheduled event.
8058type ChaosCodePackageRestartScheduledEvent struct {
8059	// FaultGroupID - Id of fault group.
8060	FaultGroupID *uuid.UUID `json:"FaultGroupId,omitempty"`
8061	// FaultID - Id of fault.
8062	FaultID *uuid.UUID `json:"FaultId,omitempty"`
8063	// NodeName - The name of a Service Fabric node.
8064	NodeName *string `json:"NodeName,omitempty"`
8065	// ServiceManifestName - Service manifest name.
8066	ServiceManifestName *string `json:"ServiceManifestName,omitempty"`
8067	// CodePackageName - Code package name.
8068	CodePackageName *string `json:"CodePackageName,omitempty"`
8069	// ServicePackageActivationID - Id of Service package activation.
8070	ServicePackageActivationID *string `json:"ServicePackageActivationId,omitempty"`
8071	// 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.
8072	// Starting in version 6.0, hierarchical names are delimited with the "\~" character. For example, if the application name is "fabric:/myapp/app1",
8073	// the application identity would be "myapp\~app1" in 6.0+ and "myapp/app1" in previous versions.
8074	ApplicationID *string `json:"ApplicationId,omitempty"`
8075	// EventInstanceID - The identifier for the FabricEvent instance.
8076	EventInstanceID *uuid.UUID `json:"EventInstanceId,omitempty"`
8077	// Category - The category of event.
8078	Category *string `json:"Category,omitempty"`
8079	// TimeStamp - The time event was logged.
8080	TimeStamp *date.Time `json:"TimeStamp,omitempty"`
8081	// HasCorrelatedEvents - Shows there is existing related events available.
8082	HasCorrelatedEvents *bool `json:"HasCorrelatedEvents,omitempty"`
8083	// 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'
8084	Kind KindBasicFabricEvent `json:"Kind,omitempty"`
8085}
8086
8087// MarshalJSON is the custom marshaler for ChaosCodePackageRestartScheduledEvent.
8088func (ccprse ChaosCodePackageRestartScheduledEvent) MarshalJSON() ([]byte, error) {
8089	ccprse.Kind = KindChaosCodePackageRestartScheduled
8090	objectMap := make(map[string]interface{})
8091	if ccprse.FaultGroupID != nil {
8092		objectMap["FaultGroupId"] = ccprse.FaultGroupID
8093	}
8094	if ccprse.FaultID != nil {
8095		objectMap["FaultId"] = ccprse.FaultID
8096	}
8097	if ccprse.NodeName != nil {
8098		objectMap["NodeName"] = ccprse.NodeName
8099	}
8100	if ccprse.ServiceManifestName != nil {
8101		objectMap["ServiceManifestName"] = ccprse.ServiceManifestName
8102	}
8103	if ccprse.CodePackageName != nil {
8104		objectMap["CodePackageName"] = ccprse.CodePackageName
8105	}
8106	if ccprse.ServicePackageActivationID != nil {
8107		objectMap["ServicePackageActivationId"] = ccprse.ServicePackageActivationID
8108	}
8109	if ccprse.ApplicationID != nil {
8110		objectMap["ApplicationId"] = ccprse.ApplicationID
8111	}
8112	if ccprse.EventInstanceID != nil {
8113		objectMap["EventInstanceId"] = ccprse.EventInstanceID
8114	}
8115	if ccprse.Category != nil {
8116		objectMap["Category"] = ccprse.Category
8117	}
8118	if ccprse.TimeStamp != nil {
8119		objectMap["TimeStamp"] = ccprse.TimeStamp
8120	}
8121	if ccprse.HasCorrelatedEvents != nil {
8122		objectMap["HasCorrelatedEvents"] = ccprse.HasCorrelatedEvents
8123	}
8124	if ccprse.Kind != "" {
8125		objectMap["Kind"] = ccprse.Kind
8126	}
8127	return json.Marshal(objectMap)
8128}
8129
8130// AsApplicationEvent is the BasicFabricEvent implementation for ChaosCodePackageRestartScheduledEvent.
8131func (ccprse ChaosCodePackageRestartScheduledEvent) AsApplicationEvent() (*ApplicationEvent, bool) {
8132	return nil, false
8133}
8134
8135// AsBasicApplicationEvent is the BasicFabricEvent implementation for ChaosCodePackageRestartScheduledEvent.
8136func (ccprse ChaosCodePackageRestartScheduledEvent) AsBasicApplicationEvent() (BasicApplicationEvent, bool) {
8137	return &ccprse, true
8138}
8139
8140// AsClusterEvent is the BasicFabricEvent implementation for ChaosCodePackageRestartScheduledEvent.
8141func (ccprse ChaosCodePackageRestartScheduledEvent) AsClusterEvent() (*ClusterEvent, bool) {
8142	return nil, false
8143}
8144
8145// AsBasicClusterEvent is the BasicFabricEvent implementation for ChaosCodePackageRestartScheduledEvent.
8146func (ccprse ChaosCodePackageRestartScheduledEvent) AsBasicClusterEvent() (BasicClusterEvent, bool) {
8147	return nil, false
8148}
8149
8150// AsContainerInstanceEvent is the BasicFabricEvent implementation for ChaosCodePackageRestartScheduledEvent.
8151func (ccprse ChaosCodePackageRestartScheduledEvent) AsContainerInstanceEvent() (*ContainerInstanceEvent, bool) {
8152	return nil, false
8153}
8154
8155// AsNodeEvent is the BasicFabricEvent implementation for ChaosCodePackageRestartScheduledEvent.
8156func (ccprse ChaosCodePackageRestartScheduledEvent) AsNodeEvent() (*NodeEvent, bool) {
8157	return nil, false
8158}
8159
8160// AsBasicNodeEvent is the BasicFabricEvent implementation for ChaosCodePackageRestartScheduledEvent.
8161func (ccprse ChaosCodePackageRestartScheduledEvent) AsBasicNodeEvent() (BasicNodeEvent, bool) {
8162	return nil, false
8163}
8164
8165// AsPartitionAnalysisEvent is the BasicFabricEvent implementation for ChaosCodePackageRestartScheduledEvent.
8166func (ccprse ChaosCodePackageRestartScheduledEvent) AsPartitionAnalysisEvent() (*PartitionAnalysisEvent, bool) {
8167	return nil, false
8168}
8169
8170// AsBasicPartitionAnalysisEvent is the BasicFabricEvent implementation for ChaosCodePackageRestartScheduledEvent.
8171func (ccprse ChaosCodePackageRestartScheduledEvent) AsBasicPartitionAnalysisEvent() (BasicPartitionAnalysisEvent, bool) {
8172	return nil, false
8173}
8174
8175// AsPartitionEvent is the BasicFabricEvent implementation for ChaosCodePackageRestartScheduledEvent.
8176func (ccprse ChaosCodePackageRestartScheduledEvent) AsPartitionEvent() (*PartitionEvent, bool) {
8177	return nil, false
8178}
8179
8180// AsBasicPartitionEvent is the BasicFabricEvent implementation for ChaosCodePackageRestartScheduledEvent.
8181func (ccprse ChaosCodePackageRestartScheduledEvent) AsBasicPartitionEvent() (BasicPartitionEvent, bool) {
8182	return nil, false
8183}
8184
8185// AsReplicaEvent is the BasicFabricEvent implementation for ChaosCodePackageRestartScheduledEvent.
8186func (ccprse ChaosCodePackageRestartScheduledEvent) AsReplicaEvent() (*ReplicaEvent, bool) {
8187	return nil, false
8188}
8189
8190// AsBasicReplicaEvent is the BasicFabricEvent implementation for ChaosCodePackageRestartScheduledEvent.
8191func (ccprse ChaosCodePackageRestartScheduledEvent) AsBasicReplicaEvent() (BasicReplicaEvent, bool) {
8192	return nil, false
8193}
8194
8195// AsServiceEvent is the BasicFabricEvent implementation for ChaosCodePackageRestartScheduledEvent.
8196func (ccprse ChaosCodePackageRestartScheduledEvent) AsServiceEvent() (*ServiceEvent, bool) {
8197	return nil, false
8198}
8199
8200// AsBasicServiceEvent is the BasicFabricEvent implementation for ChaosCodePackageRestartScheduledEvent.
8201func (ccprse ChaosCodePackageRestartScheduledEvent) AsBasicServiceEvent() (BasicServiceEvent, bool) {
8202	return nil, false
8203}
8204
8205// AsApplicationCreatedEvent is the BasicFabricEvent implementation for ChaosCodePackageRestartScheduledEvent.
8206func (ccprse ChaosCodePackageRestartScheduledEvent) AsApplicationCreatedEvent() (*ApplicationCreatedEvent, bool) {
8207	return nil, false
8208}
8209
8210// AsApplicationDeletedEvent is the BasicFabricEvent implementation for ChaosCodePackageRestartScheduledEvent.
8211func (ccprse ChaosCodePackageRestartScheduledEvent) AsApplicationDeletedEvent() (*ApplicationDeletedEvent, bool) {
8212	return nil, false
8213}
8214
8215// AsApplicationNewHealthReportEvent is the BasicFabricEvent implementation for ChaosCodePackageRestartScheduledEvent.
8216func (ccprse ChaosCodePackageRestartScheduledEvent) AsApplicationNewHealthReportEvent() (*ApplicationNewHealthReportEvent, bool) {
8217	return nil, false
8218}
8219
8220// AsApplicationHealthReportExpiredEvent is the BasicFabricEvent implementation for ChaosCodePackageRestartScheduledEvent.
8221func (ccprse ChaosCodePackageRestartScheduledEvent) AsApplicationHealthReportExpiredEvent() (*ApplicationHealthReportExpiredEvent, bool) {
8222	return nil, false
8223}
8224
8225// AsApplicationUpgradeCompletedEvent is the BasicFabricEvent implementation for ChaosCodePackageRestartScheduledEvent.
8226func (ccprse ChaosCodePackageRestartScheduledEvent) AsApplicationUpgradeCompletedEvent() (*ApplicationUpgradeCompletedEvent, bool) {
8227	return nil, false
8228}
8229
8230// AsApplicationUpgradeDomainCompletedEvent is the BasicFabricEvent implementation for ChaosCodePackageRestartScheduledEvent.
8231func (ccprse ChaosCodePackageRestartScheduledEvent) AsApplicationUpgradeDomainCompletedEvent() (*ApplicationUpgradeDomainCompletedEvent, bool) {
8232	return nil, false
8233}
8234
8235// AsApplicationUpgradeRollbackCompletedEvent is the BasicFabricEvent implementation for ChaosCodePackageRestartScheduledEvent.
8236func (ccprse ChaosCodePackageRestartScheduledEvent) AsApplicationUpgradeRollbackCompletedEvent() (*ApplicationUpgradeRollbackCompletedEvent, bool) {
8237	return nil, false
8238}
8239
8240// AsApplicationUpgradeRollbackStartedEvent is the BasicFabricEvent implementation for ChaosCodePackageRestartScheduledEvent.
8241func (ccprse ChaosCodePackageRestartScheduledEvent) AsApplicationUpgradeRollbackStartedEvent() (*ApplicationUpgradeRollbackStartedEvent, bool) {
8242	return nil, false
8243}
8244
8245// AsApplicationUpgradeStartedEvent is the BasicFabricEvent implementation for ChaosCodePackageRestartScheduledEvent.
8246func (ccprse ChaosCodePackageRestartScheduledEvent) AsApplicationUpgradeStartedEvent() (*ApplicationUpgradeStartedEvent, bool) {
8247	return nil, false
8248}
8249
8250// AsDeployedApplicationNewHealthReportEvent is the BasicFabricEvent implementation for ChaosCodePackageRestartScheduledEvent.
8251func (ccprse ChaosCodePackageRestartScheduledEvent) AsDeployedApplicationNewHealthReportEvent() (*DeployedApplicationNewHealthReportEvent, bool) {
8252	return nil, false
8253}
8254
8255// AsDeployedApplicationHealthReportExpiredEvent is the BasicFabricEvent implementation for ChaosCodePackageRestartScheduledEvent.
8256func (ccprse ChaosCodePackageRestartScheduledEvent) AsDeployedApplicationHealthReportExpiredEvent() (*DeployedApplicationHealthReportExpiredEvent, bool) {
8257	return nil, false
8258}
8259
8260// AsApplicationProcessExitedEvent is the BasicFabricEvent implementation for ChaosCodePackageRestartScheduledEvent.
8261func (ccprse ChaosCodePackageRestartScheduledEvent) AsApplicationProcessExitedEvent() (*ApplicationProcessExitedEvent, bool) {
8262	return nil, false
8263}
8264
8265// AsApplicationContainerInstanceExitedEvent is the BasicFabricEvent implementation for ChaosCodePackageRestartScheduledEvent.
8266func (ccprse ChaosCodePackageRestartScheduledEvent) AsApplicationContainerInstanceExitedEvent() (*ApplicationContainerInstanceExitedEvent, bool) {
8267	return nil, false
8268}
8269
8270// AsNodeAbortedEvent is the BasicFabricEvent implementation for ChaosCodePackageRestartScheduledEvent.
8271func (ccprse ChaosCodePackageRestartScheduledEvent) AsNodeAbortedEvent() (*NodeAbortedEvent, bool) {
8272	return nil, false
8273}
8274
8275// AsNodeAddedToClusterEvent is the BasicFabricEvent implementation for ChaosCodePackageRestartScheduledEvent.
8276func (ccprse ChaosCodePackageRestartScheduledEvent) AsNodeAddedToClusterEvent() (*NodeAddedToClusterEvent, bool) {
8277	return nil, false
8278}
8279
8280// AsNodeClosedEvent is the BasicFabricEvent implementation for ChaosCodePackageRestartScheduledEvent.
8281func (ccprse ChaosCodePackageRestartScheduledEvent) AsNodeClosedEvent() (*NodeClosedEvent, bool) {
8282	return nil, false
8283}
8284
8285// AsNodeDeactivateCompletedEvent is the BasicFabricEvent implementation for ChaosCodePackageRestartScheduledEvent.
8286func (ccprse ChaosCodePackageRestartScheduledEvent) AsNodeDeactivateCompletedEvent() (*NodeDeactivateCompletedEvent, bool) {
8287	return nil, false
8288}
8289
8290// AsNodeDeactivateStartedEvent is the BasicFabricEvent implementation for ChaosCodePackageRestartScheduledEvent.
8291func (ccprse ChaosCodePackageRestartScheduledEvent) AsNodeDeactivateStartedEvent() (*NodeDeactivateStartedEvent, bool) {
8292	return nil, false
8293}
8294
8295// AsNodeDownEvent is the BasicFabricEvent implementation for ChaosCodePackageRestartScheduledEvent.
8296func (ccprse ChaosCodePackageRestartScheduledEvent) AsNodeDownEvent() (*NodeDownEvent, bool) {
8297	return nil, false
8298}
8299
8300// AsNodeNewHealthReportEvent is the BasicFabricEvent implementation for ChaosCodePackageRestartScheduledEvent.
8301func (ccprse ChaosCodePackageRestartScheduledEvent) AsNodeNewHealthReportEvent() (*NodeNewHealthReportEvent, bool) {
8302	return nil, false
8303}
8304
8305// AsNodeHealthReportExpiredEvent is the BasicFabricEvent implementation for ChaosCodePackageRestartScheduledEvent.
8306func (ccprse ChaosCodePackageRestartScheduledEvent) AsNodeHealthReportExpiredEvent() (*NodeHealthReportExpiredEvent, bool) {
8307	return nil, false
8308}
8309
8310// AsNodeOpenSucceededEvent is the BasicFabricEvent implementation for ChaosCodePackageRestartScheduledEvent.
8311func (ccprse ChaosCodePackageRestartScheduledEvent) AsNodeOpenSucceededEvent() (*NodeOpenSucceededEvent, bool) {
8312	return nil, false
8313}
8314
8315// AsNodeOpenFailedEvent is the BasicFabricEvent implementation for ChaosCodePackageRestartScheduledEvent.
8316func (ccprse ChaosCodePackageRestartScheduledEvent) AsNodeOpenFailedEvent() (*NodeOpenFailedEvent, bool) {
8317	return nil, false
8318}
8319
8320// AsNodeRemovedFromClusterEvent is the BasicFabricEvent implementation for ChaosCodePackageRestartScheduledEvent.
8321func (ccprse ChaosCodePackageRestartScheduledEvent) AsNodeRemovedFromClusterEvent() (*NodeRemovedFromClusterEvent, bool) {
8322	return nil, false
8323}
8324
8325// AsNodeUpEvent is the BasicFabricEvent implementation for ChaosCodePackageRestartScheduledEvent.
8326func (ccprse ChaosCodePackageRestartScheduledEvent) AsNodeUpEvent() (*NodeUpEvent, bool) {
8327	return nil, false
8328}
8329
8330// AsPartitionNewHealthReportEvent is the BasicFabricEvent implementation for ChaosCodePackageRestartScheduledEvent.
8331func (ccprse ChaosCodePackageRestartScheduledEvent) AsPartitionNewHealthReportEvent() (*PartitionNewHealthReportEvent, bool) {
8332	return nil, false
8333}
8334
8335// AsPartitionHealthReportExpiredEvent is the BasicFabricEvent implementation for ChaosCodePackageRestartScheduledEvent.
8336func (ccprse ChaosCodePackageRestartScheduledEvent) AsPartitionHealthReportExpiredEvent() (*PartitionHealthReportExpiredEvent, bool) {
8337	return nil, false
8338}
8339
8340// AsPartitionReconfiguredEvent is the BasicFabricEvent implementation for ChaosCodePackageRestartScheduledEvent.
8341func (ccprse ChaosCodePackageRestartScheduledEvent) AsPartitionReconfiguredEvent() (*PartitionReconfiguredEvent, bool) {
8342	return nil, false
8343}
8344
8345// AsPartitionPrimaryMoveAnalysisEvent is the BasicFabricEvent implementation for ChaosCodePackageRestartScheduledEvent.
8346func (ccprse ChaosCodePackageRestartScheduledEvent) AsPartitionPrimaryMoveAnalysisEvent() (*PartitionPrimaryMoveAnalysisEvent, bool) {
8347	return nil, false
8348}
8349
8350// AsServiceCreatedEvent is the BasicFabricEvent implementation for ChaosCodePackageRestartScheduledEvent.
8351func (ccprse ChaosCodePackageRestartScheduledEvent) AsServiceCreatedEvent() (*ServiceCreatedEvent, bool) {
8352	return nil, false
8353}
8354
8355// AsServiceDeletedEvent is the BasicFabricEvent implementation for ChaosCodePackageRestartScheduledEvent.
8356func (ccprse ChaosCodePackageRestartScheduledEvent) AsServiceDeletedEvent() (*ServiceDeletedEvent, bool) {
8357	return nil, false
8358}
8359
8360// AsServiceNewHealthReportEvent is the BasicFabricEvent implementation for ChaosCodePackageRestartScheduledEvent.
8361func (ccprse ChaosCodePackageRestartScheduledEvent) AsServiceNewHealthReportEvent() (*ServiceNewHealthReportEvent, bool) {
8362	return nil, false
8363}
8364
8365// AsServiceHealthReportExpiredEvent is the BasicFabricEvent implementation for ChaosCodePackageRestartScheduledEvent.
8366func (ccprse ChaosCodePackageRestartScheduledEvent) AsServiceHealthReportExpiredEvent() (*ServiceHealthReportExpiredEvent, bool) {
8367	return nil, false
8368}
8369
8370// AsDeployedServicePackageNewHealthReportEvent is the BasicFabricEvent implementation for ChaosCodePackageRestartScheduledEvent.
8371func (ccprse ChaosCodePackageRestartScheduledEvent) AsDeployedServicePackageNewHealthReportEvent() (*DeployedServicePackageNewHealthReportEvent, bool) {
8372	return nil, false
8373}
8374
8375// AsDeployedServicePackageHealthReportExpiredEvent is the BasicFabricEvent implementation for ChaosCodePackageRestartScheduledEvent.
8376func (ccprse ChaosCodePackageRestartScheduledEvent) AsDeployedServicePackageHealthReportExpiredEvent() (*DeployedServicePackageHealthReportExpiredEvent, bool) {
8377	return nil, false
8378}
8379
8380// AsStatefulReplicaNewHealthReportEvent is the BasicFabricEvent implementation for ChaosCodePackageRestartScheduledEvent.
8381func (ccprse ChaosCodePackageRestartScheduledEvent) AsStatefulReplicaNewHealthReportEvent() (*StatefulReplicaNewHealthReportEvent, bool) {
8382	return nil, false
8383}
8384
8385// AsStatefulReplicaHealthReportExpiredEvent is the BasicFabricEvent implementation for ChaosCodePackageRestartScheduledEvent.
8386func (ccprse ChaosCodePackageRestartScheduledEvent) AsStatefulReplicaHealthReportExpiredEvent() (*StatefulReplicaHealthReportExpiredEvent, bool) {
8387	return nil, false
8388}
8389
8390// AsStatelessReplicaNewHealthReportEvent is the BasicFabricEvent implementation for ChaosCodePackageRestartScheduledEvent.
8391func (ccprse ChaosCodePackageRestartScheduledEvent) AsStatelessReplicaNewHealthReportEvent() (*StatelessReplicaNewHealthReportEvent, bool) {
8392	return nil, false
8393}
8394
8395// AsStatelessReplicaHealthReportExpiredEvent is the BasicFabricEvent implementation for ChaosCodePackageRestartScheduledEvent.
8396func (ccprse ChaosCodePackageRestartScheduledEvent) AsStatelessReplicaHealthReportExpiredEvent() (*StatelessReplicaHealthReportExpiredEvent, bool) {
8397	return nil, false
8398}
8399
8400// AsClusterNewHealthReportEvent is the BasicFabricEvent implementation for ChaosCodePackageRestartScheduledEvent.
8401func (ccprse ChaosCodePackageRestartScheduledEvent) AsClusterNewHealthReportEvent() (*ClusterNewHealthReportEvent, bool) {
8402	return nil, false
8403}
8404
8405// AsClusterHealthReportExpiredEvent is the BasicFabricEvent implementation for ChaosCodePackageRestartScheduledEvent.
8406func (ccprse ChaosCodePackageRestartScheduledEvent) AsClusterHealthReportExpiredEvent() (*ClusterHealthReportExpiredEvent, bool) {
8407	return nil, false
8408}
8409
8410// AsClusterUpgradeCompletedEvent is the BasicFabricEvent implementation for ChaosCodePackageRestartScheduledEvent.
8411func (ccprse ChaosCodePackageRestartScheduledEvent) AsClusterUpgradeCompletedEvent() (*ClusterUpgradeCompletedEvent, bool) {
8412	return nil, false
8413}
8414
8415// AsClusterUpgradeDomainCompletedEvent is the BasicFabricEvent implementation for ChaosCodePackageRestartScheduledEvent.
8416func (ccprse ChaosCodePackageRestartScheduledEvent) AsClusterUpgradeDomainCompletedEvent() (*ClusterUpgradeDomainCompletedEvent, bool) {
8417	return nil, false
8418}
8419
8420// AsClusterUpgradeRollbackCompletedEvent is the BasicFabricEvent implementation for ChaosCodePackageRestartScheduledEvent.
8421func (ccprse ChaosCodePackageRestartScheduledEvent) AsClusterUpgradeRollbackCompletedEvent() (*ClusterUpgradeRollbackCompletedEvent, bool) {
8422	return nil, false
8423}
8424
8425// AsClusterUpgradeRollbackStartedEvent is the BasicFabricEvent implementation for ChaosCodePackageRestartScheduledEvent.
8426func (ccprse ChaosCodePackageRestartScheduledEvent) AsClusterUpgradeRollbackStartedEvent() (*ClusterUpgradeRollbackStartedEvent, bool) {
8427	return nil, false
8428}
8429
8430// AsClusterUpgradeStartedEvent is the BasicFabricEvent implementation for ChaosCodePackageRestartScheduledEvent.
8431func (ccprse ChaosCodePackageRestartScheduledEvent) AsClusterUpgradeStartedEvent() (*ClusterUpgradeStartedEvent, bool) {
8432	return nil, false
8433}
8434
8435// AsChaosStoppedEvent is the BasicFabricEvent implementation for ChaosCodePackageRestartScheduledEvent.
8436func (ccprse ChaosCodePackageRestartScheduledEvent) AsChaosStoppedEvent() (*ChaosStoppedEvent, bool) {
8437	return nil, false
8438}
8439
8440// AsChaosStartedEvent is the BasicFabricEvent implementation for ChaosCodePackageRestartScheduledEvent.
8441func (ccprse ChaosCodePackageRestartScheduledEvent) AsChaosStartedEvent() (*ChaosStartedEvent, bool) {
8442	return nil, false
8443}
8444
8445// AsChaosCodePackageRestartScheduledEvent is the BasicFabricEvent implementation for ChaosCodePackageRestartScheduledEvent.
8446func (ccprse ChaosCodePackageRestartScheduledEvent) AsChaosCodePackageRestartScheduledEvent() (*ChaosCodePackageRestartScheduledEvent, bool) {
8447	return &ccprse, true
8448}
8449
8450// AsChaosReplicaRemovalScheduledEvent is the BasicFabricEvent implementation for ChaosCodePackageRestartScheduledEvent.
8451func (ccprse ChaosCodePackageRestartScheduledEvent) AsChaosReplicaRemovalScheduledEvent() (*ChaosReplicaRemovalScheduledEvent, bool) {
8452	return nil, false
8453}
8454
8455// AsChaosPartitionSecondaryMoveScheduledEvent is the BasicFabricEvent implementation for ChaosCodePackageRestartScheduledEvent.
8456func (ccprse ChaosCodePackageRestartScheduledEvent) AsChaosPartitionSecondaryMoveScheduledEvent() (*ChaosPartitionSecondaryMoveScheduledEvent, bool) {
8457	return nil, false
8458}
8459
8460// AsChaosPartitionPrimaryMoveScheduledEvent is the BasicFabricEvent implementation for ChaosCodePackageRestartScheduledEvent.
8461func (ccprse ChaosCodePackageRestartScheduledEvent) AsChaosPartitionPrimaryMoveScheduledEvent() (*ChaosPartitionPrimaryMoveScheduledEvent, bool) {
8462	return nil, false
8463}
8464
8465// AsChaosReplicaRestartScheduledEvent is the BasicFabricEvent implementation for ChaosCodePackageRestartScheduledEvent.
8466func (ccprse ChaosCodePackageRestartScheduledEvent) AsChaosReplicaRestartScheduledEvent() (*ChaosReplicaRestartScheduledEvent, bool) {
8467	return nil, false
8468}
8469
8470// AsChaosNodeRestartScheduledEvent is the BasicFabricEvent implementation for ChaosCodePackageRestartScheduledEvent.
8471func (ccprse ChaosCodePackageRestartScheduledEvent) AsChaosNodeRestartScheduledEvent() (*ChaosNodeRestartScheduledEvent, bool) {
8472	return nil, false
8473}
8474
8475// AsFabricEvent is the BasicFabricEvent implementation for ChaosCodePackageRestartScheduledEvent.
8476func (ccprse ChaosCodePackageRestartScheduledEvent) AsFabricEvent() (*FabricEvent, bool) {
8477	return nil, false
8478}
8479
8480// AsBasicFabricEvent is the BasicFabricEvent implementation for ChaosCodePackageRestartScheduledEvent.
8481func (ccprse ChaosCodePackageRestartScheduledEvent) AsBasicFabricEvent() (BasicFabricEvent, bool) {
8482	return &ccprse, true
8483}
8484
8485// ChaosContext describes a map, which is a collection of (string, string) type key-value pairs. The map
8486// can be used to record information about
8487// the Chaos run. There cannot be more than 100 such pairs and each string (key or value) can be at most
8488// 4095 characters long.
8489// This map is set by the starter of the Chaos run to optionally store the context about the specific run.
8490type ChaosContext struct {
8491	// Map - Describes a map that contains a collection of ChaosContextMapItem's.
8492	Map map[string]*string `json:"Map"`
8493}
8494
8495// MarshalJSON is the custom marshaler for ChaosContext.
8496func (cc ChaosContext) MarshalJSON() ([]byte, error) {
8497	objectMap := make(map[string]interface{})
8498	if cc.Map != nil {
8499		objectMap["Map"] = cc.Map
8500	}
8501	return json.Marshal(objectMap)
8502}
8503
8504// BasicChaosEvent represents an event generated during a Chaos run.
8505type BasicChaosEvent interface {
8506	AsExecutingFaultsChaosEvent() (*ExecutingFaultsChaosEvent, bool)
8507	AsStartedChaosEvent() (*StartedChaosEvent, bool)
8508	AsStoppedChaosEvent() (*StoppedChaosEvent, bool)
8509	AsTestErrorChaosEvent() (*TestErrorChaosEvent, bool)
8510	AsValidationFailedChaosEvent() (*ValidationFailedChaosEvent, bool)
8511	AsWaitingChaosEvent() (*WaitingChaosEvent, bool)
8512	AsChaosEvent() (*ChaosEvent, bool)
8513}
8514
8515// ChaosEvent represents an event generated during a Chaos run.
8516type ChaosEvent struct {
8517	// TimeStampUtc - The UTC timestamp when this Chaos event was generated.
8518	TimeStampUtc *date.Time `json:"TimeStampUtc,omitempty"`
8519	// Kind - Possible values include: 'KindChaosEvent', 'KindExecutingFaults', 'KindStarted', 'KindStopped', 'KindTestError', 'KindValidationFailed', 'KindWaiting'
8520	Kind KindBasicChaosEvent `json:"Kind,omitempty"`
8521}
8522
8523func unmarshalBasicChaosEvent(body []byte) (BasicChaosEvent, error) {
8524	var m map[string]interface{}
8525	err := json.Unmarshal(body, &m)
8526	if err != nil {
8527		return nil, err
8528	}
8529
8530	switch m["Kind"] {
8531	case string(KindExecutingFaults):
8532		var efce ExecutingFaultsChaosEvent
8533		err := json.Unmarshal(body, &efce)
8534		return efce, err
8535	case string(KindStarted):
8536		var sce StartedChaosEvent
8537		err := json.Unmarshal(body, &sce)
8538		return sce, err
8539	case string(KindStopped):
8540		var sce StoppedChaosEvent
8541		err := json.Unmarshal(body, &sce)
8542		return sce, err
8543	case string(KindTestError):
8544		var tece TestErrorChaosEvent
8545		err := json.Unmarshal(body, &tece)
8546		return tece, err
8547	case string(KindValidationFailed):
8548		var vfce ValidationFailedChaosEvent
8549		err := json.Unmarshal(body, &vfce)
8550		return vfce, err
8551	case string(KindWaiting):
8552		var wce WaitingChaosEvent
8553		err := json.Unmarshal(body, &wce)
8554		return wce, err
8555	default:
8556		var ce ChaosEvent
8557		err := json.Unmarshal(body, &ce)
8558		return ce, err
8559	}
8560}
8561func unmarshalBasicChaosEventArray(body []byte) ([]BasicChaosEvent, error) {
8562	var rawMessages []*json.RawMessage
8563	err := json.Unmarshal(body, &rawMessages)
8564	if err != nil {
8565		return nil, err
8566	}
8567
8568	ceArray := make([]BasicChaosEvent, len(rawMessages))
8569
8570	for index, rawMessage := range rawMessages {
8571		ce, err := unmarshalBasicChaosEvent(*rawMessage)
8572		if err != nil {
8573			return nil, err
8574		}
8575		ceArray[index] = ce
8576	}
8577	return ceArray, nil
8578}
8579
8580// MarshalJSON is the custom marshaler for ChaosEvent.
8581func (ce ChaosEvent) MarshalJSON() ([]byte, error) {
8582	ce.Kind = KindChaosEvent
8583	objectMap := make(map[string]interface{})
8584	if ce.TimeStampUtc != nil {
8585		objectMap["TimeStampUtc"] = ce.TimeStampUtc
8586	}
8587	if ce.Kind != "" {
8588		objectMap["Kind"] = ce.Kind
8589	}
8590	return json.Marshal(objectMap)
8591}
8592
8593// AsExecutingFaultsChaosEvent is the BasicChaosEvent implementation for ChaosEvent.
8594func (ce ChaosEvent) AsExecutingFaultsChaosEvent() (*ExecutingFaultsChaosEvent, bool) {
8595	return nil, false
8596}
8597
8598// AsStartedChaosEvent is the BasicChaosEvent implementation for ChaosEvent.
8599func (ce ChaosEvent) AsStartedChaosEvent() (*StartedChaosEvent, bool) {
8600	return nil, false
8601}
8602
8603// AsStoppedChaosEvent is the BasicChaosEvent implementation for ChaosEvent.
8604func (ce ChaosEvent) AsStoppedChaosEvent() (*StoppedChaosEvent, bool) {
8605	return nil, false
8606}
8607
8608// AsTestErrorChaosEvent is the BasicChaosEvent implementation for ChaosEvent.
8609func (ce ChaosEvent) AsTestErrorChaosEvent() (*TestErrorChaosEvent, bool) {
8610	return nil, false
8611}
8612
8613// AsValidationFailedChaosEvent is the BasicChaosEvent implementation for ChaosEvent.
8614func (ce ChaosEvent) AsValidationFailedChaosEvent() (*ValidationFailedChaosEvent, bool) {
8615	return nil, false
8616}
8617
8618// AsWaitingChaosEvent is the BasicChaosEvent implementation for ChaosEvent.
8619func (ce ChaosEvent) AsWaitingChaosEvent() (*WaitingChaosEvent, bool) {
8620	return nil, false
8621}
8622
8623// AsChaosEvent is the BasicChaosEvent implementation for ChaosEvent.
8624func (ce ChaosEvent) AsChaosEvent() (*ChaosEvent, bool) {
8625	return &ce, true
8626}
8627
8628// AsBasicChaosEvent is the BasicChaosEvent implementation for ChaosEvent.
8629func (ce ChaosEvent) AsBasicChaosEvent() (BasicChaosEvent, bool) {
8630	return &ce, true
8631}
8632
8633// ChaosEventsSegment contains the list of Chaos events and the continuation token to get the next segment.
8634type ChaosEventsSegment struct {
8635	autorest.Response `json:"-"`
8636	// 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.
8637	ContinuationToken *string `json:"ContinuationToken,omitempty"`
8638	// History - List of Chaos events that meet the user-supplied criteria.
8639	History *[]ChaosEventWrapper `json:"History,omitempty"`
8640}
8641
8642// ChaosEventWrapper wrapper object for Chaos event.
8643type ChaosEventWrapper struct {
8644	// ChaosEvent - Represents an event generated during a Chaos run.
8645	ChaosEvent BasicChaosEvent `json:"ChaosEvent,omitempty"`
8646}
8647
8648// UnmarshalJSON is the custom unmarshaler for ChaosEventWrapper struct.
8649func (cew *ChaosEventWrapper) UnmarshalJSON(body []byte) error {
8650	var m map[string]*json.RawMessage
8651	err := json.Unmarshal(body, &m)
8652	if err != nil {
8653		return err
8654	}
8655	for k, v := range m {
8656		switch k {
8657		case "ChaosEvent":
8658			if v != nil {
8659				chaosEvent, err := unmarshalBasicChaosEvent(*v)
8660				if err != nil {
8661					return err
8662				}
8663				cew.ChaosEvent = chaosEvent
8664			}
8665		}
8666	}
8667
8668	return nil
8669}
8670
8671// ChaosNodeRestartScheduledEvent chaos Restart Node Fault Scheduled event.
8672type ChaosNodeRestartScheduledEvent struct {
8673	// NodeInstanceID - Id of Node instance.
8674	NodeInstanceID *int64 `json:"NodeInstanceId,omitempty"`
8675	// FaultGroupID - Id of fault group.
8676	FaultGroupID *uuid.UUID `json:"FaultGroupId,omitempty"`
8677	// FaultID - Id of fault.
8678	FaultID *uuid.UUID `json:"FaultId,omitempty"`
8679	// NodeName - The name of a Service Fabric node.
8680	NodeName *string `json:"NodeName,omitempty"`
8681	// EventInstanceID - The identifier for the FabricEvent instance.
8682	EventInstanceID *uuid.UUID `json:"EventInstanceId,omitempty"`
8683	// Category - The category of event.
8684	Category *string `json:"Category,omitempty"`
8685	// TimeStamp - The time event was logged.
8686	TimeStamp *date.Time `json:"TimeStamp,omitempty"`
8687	// HasCorrelatedEvents - Shows there is existing related events available.
8688	HasCorrelatedEvents *bool `json:"HasCorrelatedEvents,omitempty"`
8689	// 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'
8690	Kind KindBasicFabricEvent `json:"Kind,omitempty"`
8691}
8692
8693// MarshalJSON is the custom marshaler for ChaosNodeRestartScheduledEvent.
8694func (cnrse ChaosNodeRestartScheduledEvent) MarshalJSON() ([]byte, error) {
8695	cnrse.Kind = KindChaosNodeRestartScheduled
8696	objectMap := make(map[string]interface{})
8697	if cnrse.NodeInstanceID != nil {
8698		objectMap["NodeInstanceId"] = cnrse.NodeInstanceID
8699	}
8700	if cnrse.FaultGroupID != nil {
8701		objectMap["FaultGroupId"] = cnrse.FaultGroupID
8702	}
8703	if cnrse.FaultID != nil {
8704		objectMap["FaultId"] = cnrse.FaultID
8705	}
8706	if cnrse.NodeName != nil {
8707		objectMap["NodeName"] = cnrse.NodeName
8708	}
8709	if cnrse.EventInstanceID != nil {
8710		objectMap["EventInstanceId"] = cnrse.EventInstanceID
8711	}
8712	if cnrse.Category != nil {
8713		objectMap["Category"] = cnrse.Category
8714	}
8715	if cnrse.TimeStamp != nil {
8716		objectMap["TimeStamp"] = cnrse.TimeStamp
8717	}
8718	if cnrse.HasCorrelatedEvents != nil {
8719		objectMap["HasCorrelatedEvents"] = cnrse.HasCorrelatedEvents
8720	}
8721	if cnrse.Kind != "" {
8722		objectMap["Kind"] = cnrse.Kind
8723	}
8724	return json.Marshal(objectMap)
8725}
8726
8727// AsApplicationEvent is the BasicFabricEvent implementation for ChaosNodeRestartScheduledEvent.
8728func (cnrse ChaosNodeRestartScheduledEvent) AsApplicationEvent() (*ApplicationEvent, bool) {
8729	return nil, false
8730}
8731
8732// AsBasicApplicationEvent is the BasicFabricEvent implementation for ChaosNodeRestartScheduledEvent.
8733func (cnrse ChaosNodeRestartScheduledEvent) AsBasicApplicationEvent() (BasicApplicationEvent, bool) {
8734	return nil, false
8735}
8736
8737// AsClusterEvent is the BasicFabricEvent implementation for ChaosNodeRestartScheduledEvent.
8738func (cnrse ChaosNodeRestartScheduledEvent) AsClusterEvent() (*ClusterEvent, bool) {
8739	return nil, false
8740}
8741
8742// AsBasicClusterEvent is the BasicFabricEvent implementation for ChaosNodeRestartScheduledEvent.
8743func (cnrse ChaosNodeRestartScheduledEvent) AsBasicClusterEvent() (BasicClusterEvent, bool) {
8744	return nil, false
8745}
8746
8747// AsContainerInstanceEvent is the BasicFabricEvent implementation for ChaosNodeRestartScheduledEvent.
8748func (cnrse ChaosNodeRestartScheduledEvent) AsContainerInstanceEvent() (*ContainerInstanceEvent, bool) {
8749	return nil, false
8750}
8751
8752// AsNodeEvent is the BasicFabricEvent implementation for ChaosNodeRestartScheduledEvent.
8753func (cnrse ChaosNodeRestartScheduledEvent) AsNodeEvent() (*NodeEvent, bool) {
8754	return nil, false
8755}
8756
8757// AsBasicNodeEvent is the BasicFabricEvent implementation for ChaosNodeRestartScheduledEvent.
8758func (cnrse ChaosNodeRestartScheduledEvent) AsBasicNodeEvent() (BasicNodeEvent, bool) {
8759	return &cnrse, true
8760}
8761
8762// AsPartitionAnalysisEvent is the BasicFabricEvent implementation for ChaosNodeRestartScheduledEvent.
8763func (cnrse ChaosNodeRestartScheduledEvent) AsPartitionAnalysisEvent() (*PartitionAnalysisEvent, bool) {
8764	return nil, false
8765}
8766
8767// AsBasicPartitionAnalysisEvent is the BasicFabricEvent implementation for ChaosNodeRestartScheduledEvent.
8768func (cnrse ChaosNodeRestartScheduledEvent) AsBasicPartitionAnalysisEvent() (BasicPartitionAnalysisEvent, bool) {
8769	return nil, false
8770}
8771
8772// AsPartitionEvent is the BasicFabricEvent implementation for ChaosNodeRestartScheduledEvent.
8773func (cnrse ChaosNodeRestartScheduledEvent) AsPartitionEvent() (*PartitionEvent, bool) {
8774	return nil, false
8775}
8776
8777// AsBasicPartitionEvent is the BasicFabricEvent implementation for ChaosNodeRestartScheduledEvent.
8778func (cnrse ChaosNodeRestartScheduledEvent) AsBasicPartitionEvent() (BasicPartitionEvent, bool) {
8779	return nil, false
8780}
8781
8782// AsReplicaEvent is the BasicFabricEvent implementation for ChaosNodeRestartScheduledEvent.
8783func (cnrse ChaosNodeRestartScheduledEvent) AsReplicaEvent() (*ReplicaEvent, bool) {
8784	return nil, false
8785}
8786
8787// AsBasicReplicaEvent is the BasicFabricEvent implementation for ChaosNodeRestartScheduledEvent.
8788func (cnrse ChaosNodeRestartScheduledEvent) AsBasicReplicaEvent() (BasicReplicaEvent, bool) {
8789	return nil, false
8790}
8791
8792// AsServiceEvent is the BasicFabricEvent implementation for ChaosNodeRestartScheduledEvent.
8793func (cnrse ChaosNodeRestartScheduledEvent) AsServiceEvent() (*ServiceEvent, bool) {
8794	return nil, false
8795}
8796
8797// AsBasicServiceEvent is the BasicFabricEvent implementation for ChaosNodeRestartScheduledEvent.
8798func (cnrse ChaosNodeRestartScheduledEvent) AsBasicServiceEvent() (BasicServiceEvent, bool) {
8799	return nil, false
8800}
8801
8802// AsApplicationCreatedEvent is the BasicFabricEvent implementation for ChaosNodeRestartScheduledEvent.
8803func (cnrse ChaosNodeRestartScheduledEvent) AsApplicationCreatedEvent() (*ApplicationCreatedEvent, bool) {
8804	return nil, false
8805}
8806
8807// AsApplicationDeletedEvent is the BasicFabricEvent implementation for ChaosNodeRestartScheduledEvent.
8808func (cnrse ChaosNodeRestartScheduledEvent) AsApplicationDeletedEvent() (*ApplicationDeletedEvent, bool) {
8809	return nil, false
8810}
8811
8812// AsApplicationNewHealthReportEvent is the BasicFabricEvent implementation for ChaosNodeRestartScheduledEvent.
8813func (cnrse ChaosNodeRestartScheduledEvent) AsApplicationNewHealthReportEvent() (*ApplicationNewHealthReportEvent, bool) {
8814	return nil, false
8815}
8816
8817// AsApplicationHealthReportExpiredEvent is the BasicFabricEvent implementation for ChaosNodeRestartScheduledEvent.
8818func (cnrse ChaosNodeRestartScheduledEvent) AsApplicationHealthReportExpiredEvent() (*ApplicationHealthReportExpiredEvent, bool) {
8819	return nil, false
8820}
8821
8822// AsApplicationUpgradeCompletedEvent is the BasicFabricEvent implementation for ChaosNodeRestartScheduledEvent.
8823func (cnrse ChaosNodeRestartScheduledEvent) AsApplicationUpgradeCompletedEvent() (*ApplicationUpgradeCompletedEvent, bool) {
8824	return nil, false
8825}
8826
8827// AsApplicationUpgradeDomainCompletedEvent is the BasicFabricEvent implementation for ChaosNodeRestartScheduledEvent.
8828func (cnrse ChaosNodeRestartScheduledEvent) AsApplicationUpgradeDomainCompletedEvent() (*ApplicationUpgradeDomainCompletedEvent, bool) {
8829	return nil, false
8830}
8831
8832// AsApplicationUpgradeRollbackCompletedEvent is the BasicFabricEvent implementation for ChaosNodeRestartScheduledEvent.
8833func (cnrse ChaosNodeRestartScheduledEvent) AsApplicationUpgradeRollbackCompletedEvent() (*ApplicationUpgradeRollbackCompletedEvent, bool) {
8834	return nil, false
8835}
8836
8837// AsApplicationUpgradeRollbackStartedEvent is the BasicFabricEvent implementation for ChaosNodeRestartScheduledEvent.
8838func (cnrse ChaosNodeRestartScheduledEvent) AsApplicationUpgradeRollbackStartedEvent() (*ApplicationUpgradeRollbackStartedEvent, bool) {
8839	return nil, false
8840}
8841
8842// AsApplicationUpgradeStartedEvent is the BasicFabricEvent implementation for ChaosNodeRestartScheduledEvent.
8843func (cnrse ChaosNodeRestartScheduledEvent) AsApplicationUpgradeStartedEvent() (*ApplicationUpgradeStartedEvent, bool) {
8844	return nil, false
8845}
8846
8847// AsDeployedApplicationNewHealthReportEvent is the BasicFabricEvent implementation for ChaosNodeRestartScheduledEvent.
8848func (cnrse ChaosNodeRestartScheduledEvent) AsDeployedApplicationNewHealthReportEvent() (*DeployedApplicationNewHealthReportEvent, bool) {
8849	return nil, false
8850}
8851
8852// AsDeployedApplicationHealthReportExpiredEvent is the BasicFabricEvent implementation for ChaosNodeRestartScheduledEvent.
8853func (cnrse ChaosNodeRestartScheduledEvent) AsDeployedApplicationHealthReportExpiredEvent() (*DeployedApplicationHealthReportExpiredEvent, bool) {
8854	return nil, false
8855}
8856
8857// AsApplicationProcessExitedEvent is the BasicFabricEvent implementation for ChaosNodeRestartScheduledEvent.
8858func (cnrse ChaosNodeRestartScheduledEvent) AsApplicationProcessExitedEvent() (*ApplicationProcessExitedEvent, bool) {
8859	return nil, false
8860}
8861
8862// AsApplicationContainerInstanceExitedEvent is the BasicFabricEvent implementation for ChaosNodeRestartScheduledEvent.
8863func (cnrse ChaosNodeRestartScheduledEvent) AsApplicationContainerInstanceExitedEvent() (*ApplicationContainerInstanceExitedEvent, bool) {
8864	return nil, false
8865}
8866
8867// AsNodeAbortedEvent is the BasicFabricEvent implementation for ChaosNodeRestartScheduledEvent.
8868func (cnrse ChaosNodeRestartScheduledEvent) AsNodeAbortedEvent() (*NodeAbortedEvent, bool) {
8869	return nil, false
8870}
8871
8872// AsNodeAddedToClusterEvent is the BasicFabricEvent implementation for ChaosNodeRestartScheduledEvent.
8873func (cnrse ChaosNodeRestartScheduledEvent) AsNodeAddedToClusterEvent() (*NodeAddedToClusterEvent, bool) {
8874	return nil, false
8875}
8876
8877// AsNodeClosedEvent is the BasicFabricEvent implementation for ChaosNodeRestartScheduledEvent.
8878func (cnrse ChaosNodeRestartScheduledEvent) AsNodeClosedEvent() (*NodeClosedEvent, bool) {
8879	return nil, false
8880}
8881
8882// AsNodeDeactivateCompletedEvent is the BasicFabricEvent implementation for ChaosNodeRestartScheduledEvent.
8883func (cnrse ChaosNodeRestartScheduledEvent) AsNodeDeactivateCompletedEvent() (*NodeDeactivateCompletedEvent, bool) {
8884	return nil, false
8885}
8886
8887// AsNodeDeactivateStartedEvent is the BasicFabricEvent implementation for ChaosNodeRestartScheduledEvent.
8888func (cnrse ChaosNodeRestartScheduledEvent) AsNodeDeactivateStartedEvent() (*NodeDeactivateStartedEvent, bool) {
8889	return nil, false
8890}
8891
8892// AsNodeDownEvent is the BasicFabricEvent implementation for ChaosNodeRestartScheduledEvent.
8893func (cnrse ChaosNodeRestartScheduledEvent) AsNodeDownEvent() (*NodeDownEvent, bool) {
8894	return nil, false
8895}
8896
8897// AsNodeNewHealthReportEvent is the BasicFabricEvent implementation for ChaosNodeRestartScheduledEvent.
8898func (cnrse ChaosNodeRestartScheduledEvent) AsNodeNewHealthReportEvent() (*NodeNewHealthReportEvent, bool) {
8899	return nil, false
8900}
8901
8902// AsNodeHealthReportExpiredEvent is the BasicFabricEvent implementation for ChaosNodeRestartScheduledEvent.
8903func (cnrse ChaosNodeRestartScheduledEvent) AsNodeHealthReportExpiredEvent() (*NodeHealthReportExpiredEvent, bool) {
8904	return nil, false
8905}
8906
8907// AsNodeOpenSucceededEvent is the BasicFabricEvent implementation for ChaosNodeRestartScheduledEvent.
8908func (cnrse ChaosNodeRestartScheduledEvent) AsNodeOpenSucceededEvent() (*NodeOpenSucceededEvent, bool) {
8909	return nil, false
8910}
8911
8912// AsNodeOpenFailedEvent is the BasicFabricEvent implementation for ChaosNodeRestartScheduledEvent.
8913func (cnrse ChaosNodeRestartScheduledEvent) AsNodeOpenFailedEvent() (*NodeOpenFailedEvent, bool) {
8914	return nil, false
8915}
8916
8917// AsNodeRemovedFromClusterEvent is the BasicFabricEvent implementation for ChaosNodeRestartScheduledEvent.
8918func (cnrse ChaosNodeRestartScheduledEvent) AsNodeRemovedFromClusterEvent() (*NodeRemovedFromClusterEvent, bool) {
8919	return nil, false
8920}
8921
8922// AsNodeUpEvent is the BasicFabricEvent implementation for ChaosNodeRestartScheduledEvent.
8923func (cnrse ChaosNodeRestartScheduledEvent) AsNodeUpEvent() (*NodeUpEvent, bool) {
8924	return nil, false
8925}
8926
8927// AsPartitionNewHealthReportEvent is the BasicFabricEvent implementation for ChaosNodeRestartScheduledEvent.
8928func (cnrse ChaosNodeRestartScheduledEvent) AsPartitionNewHealthReportEvent() (*PartitionNewHealthReportEvent, bool) {
8929	return nil, false
8930}
8931
8932// AsPartitionHealthReportExpiredEvent is the BasicFabricEvent implementation for ChaosNodeRestartScheduledEvent.
8933func (cnrse ChaosNodeRestartScheduledEvent) AsPartitionHealthReportExpiredEvent() (*PartitionHealthReportExpiredEvent, bool) {
8934	return nil, false
8935}
8936
8937// AsPartitionReconfiguredEvent is the BasicFabricEvent implementation for ChaosNodeRestartScheduledEvent.
8938func (cnrse ChaosNodeRestartScheduledEvent) AsPartitionReconfiguredEvent() (*PartitionReconfiguredEvent, bool) {
8939	return nil, false
8940}
8941
8942// AsPartitionPrimaryMoveAnalysisEvent is the BasicFabricEvent implementation for ChaosNodeRestartScheduledEvent.
8943func (cnrse ChaosNodeRestartScheduledEvent) AsPartitionPrimaryMoveAnalysisEvent() (*PartitionPrimaryMoveAnalysisEvent, bool) {
8944	return nil, false
8945}
8946
8947// AsServiceCreatedEvent is the BasicFabricEvent implementation for ChaosNodeRestartScheduledEvent.
8948func (cnrse ChaosNodeRestartScheduledEvent) AsServiceCreatedEvent() (*ServiceCreatedEvent, bool) {
8949	return nil, false
8950}
8951
8952// AsServiceDeletedEvent is the BasicFabricEvent implementation for ChaosNodeRestartScheduledEvent.
8953func (cnrse ChaosNodeRestartScheduledEvent) AsServiceDeletedEvent() (*ServiceDeletedEvent, bool) {
8954	return nil, false
8955}
8956
8957// AsServiceNewHealthReportEvent is the BasicFabricEvent implementation for ChaosNodeRestartScheduledEvent.
8958func (cnrse ChaosNodeRestartScheduledEvent) AsServiceNewHealthReportEvent() (*ServiceNewHealthReportEvent, bool) {
8959	return nil, false
8960}
8961
8962// AsServiceHealthReportExpiredEvent is the BasicFabricEvent implementation for ChaosNodeRestartScheduledEvent.
8963func (cnrse ChaosNodeRestartScheduledEvent) AsServiceHealthReportExpiredEvent() (*ServiceHealthReportExpiredEvent, bool) {
8964	return nil, false
8965}
8966
8967// AsDeployedServicePackageNewHealthReportEvent is the BasicFabricEvent implementation for ChaosNodeRestartScheduledEvent.
8968func (cnrse ChaosNodeRestartScheduledEvent) AsDeployedServicePackageNewHealthReportEvent() (*DeployedServicePackageNewHealthReportEvent, bool) {
8969	return nil, false
8970}
8971
8972// AsDeployedServicePackageHealthReportExpiredEvent is the BasicFabricEvent implementation for ChaosNodeRestartScheduledEvent.
8973func (cnrse ChaosNodeRestartScheduledEvent) AsDeployedServicePackageHealthReportExpiredEvent() (*DeployedServicePackageHealthReportExpiredEvent, bool) {
8974	return nil, false
8975}
8976
8977// AsStatefulReplicaNewHealthReportEvent is the BasicFabricEvent implementation for ChaosNodeRestartScheduledEvent.
8978func (cnrse ChaosNodeRestartScheduledEvent) AsStatefulReplicaNewHealthReportEvent() (*StatefulReplicaNewHealthReportEvent, bool) {
8979	return nil, false
8980}
8981
8982// AsStatefulReplicaHealthReportExpiredEvent is the BasicFabricEvent implementation for ChaosNodeRestartScheduledEvent.
8983func (cnrse ChaosNodeRestartScheduledEvent) AsStatefulReplicaHealthReportExpiredEvent() (*StatefulReplicaHealthReportExpiredEvent, bool) {
8984	return nil, false
8985}
8986
8987// AsStatelessReplicaNewHealthReportEvent is the BasicFabricEvent implementation for ChaosNodeRestartScheduledEvent.
8988func (cnrse ChaosNodeRestartScheduledEvent) AsStatelessReplicaNewHealthReportEvent() (*StatelessReplicaNewHealthReportEvent, bool) {
8989	return nil, false
8990}
8991
8992// AsStatelessReplicaHealthReportExpiredEvent is the BasicFabricEvent implementation for ChaosNodeRestartScheduledEvent.
8993func (cnrse ChaosNodeRestartScheduledEvent) AsStatelessReplicaHealthReportExpiredEvent() (*StatelessReplicaHealthReportExpiredEvent, bool) {
8994	return nil, false
8995}
8996
8997// AsClusterNewHealthReportEvent is the BasicFabricEvent implementation for ChaosNodeRestartScheduledEvent.
8998func (cnrse ChaosNodeRestartScheduledEvent) AsClusterNewHealthReportEvent() (*ClusterNewHealthReportEvent, bool) {
8999	return nil, false
9000}
9001
9002// AsClusterHealthReportExpiredEvent is the BasicFabricEvent implementation for ChaosNodeRestartScheduledEvent.
9003func (cnrse ChaosNodeRestartScheduledEvent) AsClusterHealthReportExpiredEvent() (*ClusterHealthReportExpiredEvent, bool) {
9004	return nil, false
9005}
9006
9007// AsClusterUpgradeCompletedEvent is the BasicFabricEvent implementation for ChaosNodeRestartScheduledEvent.
9008func (cnrse ChaosNodeRestartScheduledEvent) AsClusterUpgradeCompletedEvent() (*ClusterUpgradeCompletedEvent, bool) {
9009	return nil, false
9010}
9011
9012// AsClusterUpgradeDomainCompletedEvent is the BasicFabricEvent implementation for ChaosNodeRestartScheduledEvent.
9013func (cnrse ChaosNodeRestartScheduledEvent) AsClusterUpgradeDomainCompletedEvent() (*ClusterUpgradeDomainCompletedEvent, bool) {
9014	return nil, false
9015}
9016
9017// AsClusterUpgradeRollbackCompletedEvent is the BasicFabricEvent implementation for ChaosNodeRestartScheduledEvent.
9018func (cnrse ChaosNodeRestartScheduledEvent) AsClusterUpgradeRollbackCompletedEvent() (*ClusterUpgradeRollbackCompletedEvent, bool) {
9019	return nil, false
9020}
9021
9022// AsClusterUpgradeRollbackStartedEvent is the BasicFabricEvent implementation for ChaosNodeRestartScheduledEvent.
9023func (cnrse ChaosNodeRestartScheduledEvent) AsClusterUpgradeRollbackStartedEvent() (*ClusterUpgradeRollbackStartedEvent, bool) {
9024	return nil, false
9025}
9026
9027// AsClusterUpgradeStartedEvent is the BasicFabricEvent implementation for ChaosNodeRestartScheduledEvent.
9028func (cnrse ChaosNodeRestartScheduledEvent) AsClusterUpgradeStartedEvent() (*ClusterUpgradeStartedEvent, bool) {
9029	return nil, false
9030}
9031
9032// AsChaosStoppedEvent is the BasicFabricEvent implementation for ChaosNodeRestartScheduledEvent.
9033func (cnrse ChaosNodeRestartScheduledEvent) AsChaosStoppedEvent() (*ChaosStoppedEvent, bool) {
9034	return nil, false
9035}
9036
9037// AsChaosStartedEvent is the BasicFabricEvent implementation for ChaosNodeRestartScheduledEvent.
9038func (cnrse ChaosNodeRestartScheduledEvent) AsChaosStartedEvent() (*ChaosStartedEvent, bool) {
9039	return nil, false
9040}
9041
9042// AsChaosCodePackageRestartScheduledEvent is the BasicFabricEvent implementation for ChaosNodeRestartScheduledEvent.
9043func (cnrse ChaosNodeRestartScheduledEvent) AsChaosCodePackageRestartScheduledEvent() (*ChaosCodePackageRestartScheduledEvent, bool) {
9044	return nil, false
9045}
9046
9047// AsChaosReplicaRemovalScheduledEvent is the BasicFabricEvent implementation for ChaosNodeRestartScheduledEvent.
9048func (cnrse ChaosNodeRestartScheduledEvent) AsChaosReplicaRemovalScheduledEvent() (*ChaosReplicaRemovalScheduledEvent, bool) {
9049	return nil, false
9050}
9051
9052// AsChaosPartitionSecondaryMoveScheduledEvent is the BasicFabricEvent implementation for ChaosNodeRestartScheduledEvent.
9053func (cnrse ChaosNodeRestartScheduledEvent) AsChaosPartitionSecondaryMoveScheduledEvent() (*ChaosPartitionSecondaryMoveScheduledEvent, bool) {
9054	return nil, false
9055}
9056
9057// AsChaosPartitionPrimaryMoveScheduledEvent is the BasicFabricEvent implementation for ChaosNodeRestartScheduledEvent.
9058func (cnrse ChaosNodeRestartScheduledEvent) AsChaosPartitionPrimaryMoveScheduledEvent() (*ChaosPartitionPrimaryMoveScheduledEvent, bool) {
9059	return nil, false
9060}
9061
9062// AsChaosReplicaRestartScheduledEvent is the BasicFabricEvent implementation for ChaosNodeRestartScheduledEvent.
9063func (cnrse ChaosNodeRestartScheduledEvent) AsChaosReplicaRestartScheduledEvent() (*ChaosReplicaRestartScheduledEvent, bool) {
9064	return nil, false
9065}
9066
9067// AsChaosNodeRestartScheduledEvent is the BasicFabricEvent implementation for ChaosNodeRestartScheduledEvent.
9068func (cnrse ChaosNodeRestartScheduledEvent) AsChaosNodeRestartScheduledEvent() (*ChaosNodeRestartScheduledEvent, bool) {
9069	return &cnrse, true
9070}
9071
9072// AsFabricEvent is the BasicFabricEvent implementation for ChaosNodeRestartScheduledEvent.
9073func (cnrse ChaosNodeRestartScheduledEvent) AsFabricEvent() (*FabricEvent, bool) {
9074	return nil, false
9075}
9076
9077// AsBasicFabricEvent is the BasicFabricEvent implementation for ChaosNodeRestartScheduledEvent.
9078func (cnrse ChaosNodeRestartScheduledEvent) AsBasicFabricEvent() (BasicFabricEvent, bool) {
9079	return &cnrse, true
9080}
9081
9082// ChaosParameters defines all the parameters to configure a Chaos run.
9083type ChaosParameters struct {
9084	// 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).
9085	TimeToRunInSeconds *string `json:"TimeToRunInSeconds,omitempty"`
9086	// 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.
9087	// During validation if a cluster entity is not stable and healthy within MaxClusterStabilizationTimeoutInSeconds, Chaos generates a validation failed event.
9088	MaxClusterStabilizationTimeoutInSeconds *int64 `json:"MaxClusterStabilizationTimeoutInSeconds,omitempty"`
9089	// MaxConcurrentFaults - MaxConcurrentFaults is the maximum number of concurrent faults induced per iteration.
9090	// Chaos executes in iterations and two consecutive iterations are separated by a validation phase.
9091	// The higher the concurrency, the more aggressive the injection of faults, leading to inducing more complex series of states to uncover bugs.
9092	// The recommendation is to start with a value of 2 or 3 and to exercise caution while moving up.
9093	MaxConcurrentFaults *int64 `json:"MaxConcurrentFaults,omitempty"`
9094	// EnableMoveReplicaFaults - Enables or disables the move primary and move secondary faults.
9095	EnableMoveReplicaFaults *bool `json:"EnableMoveReplicaFaults,omitempty"`
9096	// WaitTimeBetweenFaultsInSeconds - Wait time (in seconds) between consecutive faults within a single iteration.
9097	// The larger the value, the lower the overlapping between faults and the simpler the sequence of state transitions that the cluster goes through.
9098	// The recommendation is to start with a value between 1 and 5 and exercise caution while moving up.
9099	WaitTimeBetweenFaultsInSeconds *int64 `json:"WaitTimeBetweenFaultsInSeconds,omitempty"`
9100	// WaitTimeBetweenIterationsInSeconds - Time-separation (in seconds) between two consecutive iterations of Chaos.
9101	// The larger the value, the lower the fault injection rate.
9102	WaitTimeBetweenIterationsInSeconds *int64 `json:"WaitTimeBetweenIterationsInSeconds,omitempty"`
9103	// 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.
9104	ClusterHealthPolicy *ClusterHealthPolicy `json:"ClusterHealthPolicy,omitempty"`
9105	// Context - Describes a map, which is a collection of (string, string) type key-value pairs. The map can be used to record information about
9106	// the Chaos run. There cannot be more than 100 such pairs and each string (key or value) can be at most 4095 characters long.
9107	// This map is set by the starter of the Chaos run to optionally store the context about the specific run.
9108	Context *ChaosContext `json:"Context,omitempty"`
9109	// ChaosTargetFilter - List of cluster entities to target for Chaos faults.
9110	// 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.
9111	// If ChaosTargetFilter is used, Chaos faults only the entities that meet the ChaosTargetFilter specification.
9112	ChaosTargetFilter *ChaosTargetFilter `json:"ChaosTargetFilter,omitempty"`
9113}
9114
9115// ChaosParametersDictionaryItem defines an item in ChaosParametersDictionary of the Chaos Schedule.
9116type ChaosParametersDictionaryItem struct {
9117	// Key - The key identifying the Chaos Parameter in the dictionary. This key is referenced by Chaos Schedule Jobs.
9118	Key *string `json:"Key,omitempty"`
9119	// Value - Defines all the parameters to configure a Chaos run.
9120	Value *ChaosParameters `json:"Value,omitempty"`
9121}
9122
9123// ChaosPartitionPrimaryMoveScheduledEvent chaos Move Primary Fault Scheduled event.
9124type ChaosPartitionPrimaryMoveScheduledEvent struct {
9125	// FaultGroupID - Id of fault group.
9126	FaultGroupID *uuid.UUID `json:"FaultGroupId,omitempty"`
9127	// FaultID - Id of fault.
9128	FaultID *uuid.UUID `json:"FaultId,omitempty"`
9129	// ServiceName - Service name.
9130	ServiceName *string `json:"ServiceName,omitempty"`
9131	// NodeTo - The name of a Service Fabric node.
9132	NodeTo *string `json:"NodeTo,omitempty"`
9133	// ForcedMove - Indicates a forced move.
9134	ForcedMove *bool `json:"ForcedMove,omitempty"`
9135	// 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.
9136	PartitionID *uuid.UUID `json:"PartitionId,omitempty"`
9137	// EventInstanceID - The identifier for the FabricEvent instance.
9138	EventInstanceID *uuid.UUID `json:"EventInstanceId,omitempty"`
9139	// Category - The category of event.
9140	Category *string `json:"Category,omitempty"`
9141	// TimeStamp - The time event was logged.
9142	TimeStamp *date.Time `json:"TimeStamp,omitempty"`
9143	// HasCorrelatedEvents - Shows there is existing related events available.
9144	HasCorrelatedEvents *bool `json:"HasCorrelatedEvents,omitempty"`
9145	// 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'
9146	Kind KindBasicFabricEvent `json:"Kind,omitempty"`
9147}
9148
9149// MarshalJSON is the custom marshaler for ChaosPartitionPrimaryMoveScheduledEvent.
9150func (cppmse ChaosPartitionPrimaryMoveScheduledEvent) MarshalJSON() ([]byte, error) {
9151	cppmse.Kind = KindChaosPartitionPrimaryMoveScheduled
9152	objectMap := make(map[string]interface{})
9153	if cppmse.FaultGroupID != nil {
9154		objectMap["FaultGroupId"] = cppmse.FaultGroupID
9155	}
9156	if cppmse.FaultID != nil {
9157		objectMap["FaultId"] = cppmse.FaultID
9158	}
9159	if cppmse.ServiceName != nil {
9160		objectMap["ServiceName"] = cppmse.ServiceName
9161	}
9162	if cppmse.NodeTo != nil {
9163		objectMap["NodeTo"] = cppmse.NodeTo
9164	}
9165	if cppmse.ForcedMove != nil {
9166		objectMap["ForcedMove"] = cppmse.ForcedMove
9167	}
9168	if cppmse.PartitionID != nil {
9169		objectMap["PartitionId"] = cppmse.PartitionID
9170	}
9171	if cppmse.EventInstanceID != nil {
9172		objectMap["EventInstanceId"] = cppmse.EventInstanceID
9173	}
9174	if cppmse.Category != nil {
9175		objectMap["Category"] = cppmse.Category
9176	}
9177	if cppmse.TimeStamp != nil {
9178		objectMap["TimeStamp"] = cppmse.TimeStamp
9179	}
9180	if cppmse.HasCorrelatedEvents != nil {
9181		objectMap["HasCorrelatedEvents"] = cppmse.HasCorrelatedEvents
9182	}
9183	if cppmse.Kind != "" {
9184		objectMap["Kind"] = cppmse.Kind
9185	}
9186	return json.Marshal(objectMap)
9187}
9188
9189// AsApplicationEvent is the BasicFabricEvent implementation for ChaosPartitionPrimaryMoveScheduledEvent.
9190func (cppmse ChaosPartitionPrimaryMoveScheduledEvent) AsApplicationEvent() (*ApplicationEvent, bool) {
9191	return nil, false
9192}
9193
9194// AsBasicApplicationEvent is the BasicFabricEvent implementation for ChaosPartitionPrimaryMoveScheduledEvent.
9195func (cppmse ChaosPartitionPrimaryMoveScheduledEvent) AsBasicApplicationEvent() (BasicApplicationEvent, bool) {
9196	return nil, false
9197}
9198
9199// AsClusterEvent is the BasicFabricEvent implementation for ChaosPartitionPrimaryMoveScheduledEvent.
9200func (cppmse ChaosPartitionPrimaryMoveScheduledEvent) AsClusterEvent() (*ClusterEvent, bool) {
9201	return nil, false
9202}
9203
9204// AsBasicClusterEvent is the BasicFabricEvent implementation for ChaosPartitionPrimaryMoveScheduledEvent.
9205func (cppmse ChaosPartitionPrimaryMoveScheduledEvent) AsBasicClusterEvent() (BasicClusterEvent, bool) {
9206	return nil, false
9207}
9208
9209// AsContainerInstanceEvent is the BasicFabricEvent implementation for ChaosPartitionPrimaryMoveScheduledEvent.
9210func (cppmse ChaosPartitionPrimaryMoveScheduledEvent) AsContainerInstanceEvent() (*ContainerInstanceEvent, bool) {
9211	return nil, false
9212}
9213
9214// AsNodeEvent is the BasicFabricEvent implementation for ChaosPartitionPrimaryMoveScheduledEvent.
9215func (cppmse ChaosPartitionPrimaryMoveScheduledEvent) AsNodeEvent() (*NodeEvent, bool) {
9216	return nil, false
9217}
9218
9219// AsBasicNodeEvent is the BasicFabricEvent implementation for ChaosPartitionPrimaryMoveScheduledEvent.
9220func (cppmse ChaosPartitionPrimaryMoveScheduledEvent) AsBasicNodeEvent() (BasicNodeEvent, bool) {
9221	return nil, false
9222}
9223
9224// AsPartitionAnalysisEvent is the BasicFabricEvent implementation for ChaosPartitionPrimaryMoveScheduledEvent.
9225func (cppmse ChaosPartitionPrimaryMoveScheduledEvent) AsPartitionAnalysisEvent() (*PartitionAnalysisEvent, bool) {
9226	return nil, false
9227}
9228
9229// AsBasicPartitionAnalysisEvent is the BasicFabricEvent implementation for ChaosPartitionPrimaryMoveScheduledEvent.
9230func (cppmse ChaosPartitionPrimaryMoveScheduledEvent) AsBasicPartitionAnalysisEvent() (BasicPartitionAnalysisEvent, bool) {
9231	return nil, false
9232}
9233
9234// AsPartitionEvent is the BasicFabricEvent implementation for ChaosPartitionPrimaryMoveScheduledEvent.
9235func (cppmse ChaosPartitionPrimaryMoveScheduledEvent) AsPartitionEvent() (*PartitionEvent, bool) {
9236	return nil, false
9237}
9238
9239// AsBasicPartitionEvent is the BasicFabricEvent implementation for ChaosPartitionPrimaryMoveScheduledEvent.
9240func (cppmse ChaosPartitionPrimaryMoveScheduledEvent) AsBasicPartitionEvent() (BasicPartitionEvent, bool) {
9241	return &cppmse, true
9242}
9243
9244// AsReplicaEvent is the BasicFabricEvent implementation for ChaosPartitionPrimaryMoveScheduledEvent.
9245func (cppmse ChaosPartitionPrimaryMoveScheduledEvent) AsReplicaEvent() (*ReplicaEvent, bool) {
9246	return nil, false
9247}
9248
9249// AsBasicReplicaEvent is the BasicFabricEvent implementation for ChaosPartitionPrimaryMoveScheduledEvent.
9250func (cppmse ChaosPartitionPrimaryMoveScheduledEvent) AsBasicReplicaEvent() (BasicReplicaEvent, bool) {
9251	return nil, false
9252}
9253
9254// AsServiceEvent is the BasicFabricEvent implementation for ChaosPartitionPrimaryMoveScheduledEvent.
9255func (cppmse ChaosPartitionPrimaryMoveScheduledEvent) AsServiceEvent() (*ServiceEvent, bool) {
9256	return nil, false
9257}
9258
9259// AsBasicServiceEvent is the BasicFabricEvent implementation for ChaosPartitionPrimaryMoveScheduledEvent.
9260func (cppmse ChaosPartitionPrimaryMoveScheduledEvent) AsBasicServiceEvent() (BasicServiceEvent, bool) {
9261	return nil, false
9262}
9263
9264// AsApplicationCreatedEvent is the BasicFabricEvent implementation for ChaosPartitionPrimaryMoveScheduledEvent.
9265func (cppmse ChaosPartitionPrimaryMoveScheduledEvent) AsApplicationCreatedEvent() (*ApplicationCreatedEvent, bool) {
9266	return nil, false
9267}
9268
9269// AsApplicationDeletedEvent is the BasicFabricEvent implementation for ChaosPartitionPrimaryMoveScheduledEvent.
9270func (cppmse ChaosPartitionPrimaryMoveScheduledEvent) AsApplicationDeletedEvent() (*ApplicationDeletedEvent, bool) {
9271	return nil, false
9272}
9273
9274// AsApplicationNewHealthReportEvent is the BasicFabricEvent implementation for ChaosPartitionPrimaryMoveScheduledEvent.
9275func (cppmse ChaosPartitionPrimaryMoveScheduledEvent) AsApplicationNewHealthReportEvent() (*ApplicationNewHealthReportEvent, bool) {
9276	return nil, false
9277}
9278
9279// AsApplicationHealthReportExpiredEvent is the BasicFabricEvent implementation for ChaosPartitionPrimaryMoveScheduledEvent.
9280func (cppmse ChaosPartitionPrimaryMoveScheduledEvent) AsApplicationHealthReportExpiredEvent() (*ApplicationHealthReportExpiredEvent, bool) {
9281	return nil, false
9282}
9283
9284// AsApplicationUpgradeCompletedEvent is the BasicFabricEvent implementation for ChaosPartitionPrimaryMoveScheduledEvent.
9285func (cppmse ChaosPartitionPrimaryMoveScheduledEvent) AsApplicationUpgradeCompletedEvent() (*ApplicationUpgradeCompletedEvent, bool) {
9286	return nil, false
9287}
9288
9289// AsApplicationUpgradeDomainCompletedEvent is the BasicFabricEvent implementation for ChaosPartitionPrimaryMoveScheduledEvent.
9290func (cppmse ChaosPartitionPrimaryMoveScheduledEvent) AsApplicationUpgradeDomainCompletedEvent() (*ApplicationUpgradeDomainCompletedEvent, bool) {
9291	return nil, false
9292}
9293
9294// AsApplicationUpgradeRollbackCompletedEvent is the BasicFabricEvent implementation for ChaosPartitionPrimaryMoveScheduledEvent.
9295func (cppmse ChaosPartitionPrimaryMoveScheduledEvent) AsApplicationUpgradeRollbackCompletedEvent() (*ApplicationUpgradeRollbackCompletedEvent, bool) {
9296	return nil, false
9297}
9298
9299// AsApplicationUpgradeRollbackStartedEvent is the BasicFabricEvent implementation for ChaosPartitionPrimaryMoveScheduledEvent.
9300func (cppmse ChaosPartitionPrimaryMoveScheduledEvent) AsApplicationUpgradeRollbackStartedEvent() (*ApplicationUpgradeRollbackStartedEvent, bool) {
9301	return nil, false
9302}
9303
9304// AsApplicationUpgradeStartedEvent is the BasicFabricEvent implementation for ChaosPartitionPrimaryMoveScheduledEvent.
9305func (cppmse ChaosPartitionPrimaryMoveScheduledEvent) AsApplicationUpgradeStartedEvent() (*ApplicationUpgradeStartedEvent, bool) {
9306	return nil, false
9307}
9308
9309// AsDeployedApplicationNewHealthReportEvent is the BasicFabricEvent implementation for ChaosPartitionPrimaryMoveScheduledEvent.
9310func (cppmse ChaosPartitionPrimaryMoveScheduledEvent) AsDeployedApplicationNewHealthReportEvent() (*DeployedApplicationNewHealthReportEvent, bool) {
9311	return nil, false
9312}
9313
9314// AsDeployedApplicationHealthReportExpiredEvent is the BasicFabricEvent implementation for ChaosPartitionPrimaryMoveScheduledEvent.
9315func (cppmse ChaosPartitionPrimaryMoveScheduledEvent) AsDeployedApplicationHealthReportExpiredEvent() (*DeployedApplicationHealthReportExpiredEvent, bool) {
9316	return nil, false
9317}
9318
9319// AsApplicationProcessExitedEvent is the BasicFabricEvent implementation for ChaosPartitionPrimaryMoveScheduledEvent.
9320func (cppmse ChaosPartitionPrimaryMoveScheduledEvent) AsApplicationProcessExitedEvent() (*ApplicationProcessExitedEvent, bool) {
9321	return nil, false
9322}
9323
9324// AsApplicationContainerInstanceExitedEvent is the BasicFabricEvent implementation for ChaosPartitionPrimaryMoveScheduledEvent.
9325func (cppmse ChaosPartitionPrimaryMoveScheduledEvent) AsApplicationContainerInstanceExitedEvent() (*ApplicationContainerInstanceExitedEvent, bool) {
9326	return nil, false
9327}
9328
9329// AsNodeAbortedEvent is the BasicFabricEvent implementation for ChaosPartitionPrimaryMoveScheduledEvent.
9330func (cppmse ChaosPartitionPrimaryMoveScheduledEvent) AsNodeAbortedEvent() (*NodeAbortedEvent, bool) {
9331	return nil, false
9332}
9333
9334// AsNodeAddedToClusterEvent is the BasicFabricEvent implementation for ChaosPartitionPrimaryMoveScheduledEvent.
9335func (cppmse ChaosPartitionPrimaryMoveScheduledEvent) AsNodeAddedToClusterEvent() (*NodeAddedToClusterEvent, bool) {
9336	return nil, false
9337}
9338
9339// AsNodeClosedEvent is the BasicFabricEvent implementation for ChaosPartitionPrimaryMoveScheduledEvent.
9340func (cppmse ChaosPartitionPrimaryMoveScheduledEvent) AsNodeClosedEvent() (*NodeClosedEvent, bool) {
9341	return nil, false
9342}
9343
9344// AsNodeDeactivateCompletedEvent is the BasicFabricEvent implementation for ChaosPartitionPrimaryMoveScheduledEvent.
9345func (cppmse ChaosPartitionPrimaryMoveScheduledEvent) AsNodeDeactivateCompletedEvent() (*NodeDeactivateCompletedEvent, bool) {
9346	return nil, false
9347}
9348
9349// AsNodeDeactivateStartedEvent is the BasicFabricEvent implementation for ChaosPartitionPrimaryMoveScheduledEvent.
9350func (cppmse ChaosPartitionPrimaryMoveScheduledEvent) AsNodeDeactivateStartedEvent() (*NodeDeactivateStartedEvent, bool) {
9351	return nil, false
9352}
9353
9354// AsNodeDownEvent is the BasicFabricEvent implementation for ChaosPartitionPrimaryMoveScheduledEvent.
9355func (cppmse ChaosPartitionPrimaryMoveScheduledEvent) AsNodeDownEvent() (*NodeDownEvent, bool) {
9356	return nil, false
9357}
9358
9359// AsNodeNewHealthReportEvent is the BasicFabricEvent implementation for ChaosPartitionPrimaryMoveScheduledEvent.
9360func (cppmse ChaosPartitionPrimaryMoveScheduledEvent) AsNodeNewHealthReportEvent() (*NodeNewHealthReportEvent, bool) {
9361	return nil, false
9362}
9363
9364// AsNodeHealthReportExpiredEvent is the BasicFabricEvent implementation for ChaosPartitionPrimaryMoveScheduledEvent.
9365func (cppmse ChaosPartitionPrimaryMoveScheduledEvent) AsNodeHealthReportExpiredEvent() (*NodeHealthReportExpiredEvent, bool) {
9366	return nil, false
9367}
9368
9369// AsNodeOpenSucceededEvent is the BasicFabricEvent implementation for ChaosPartitionPrimaryMoveScheduledEvent.
9370func (cppmse ChaosPartitionPrimaryMoveScheduledEvent) AsNodeOpenSucceededEvent() (*NodeOpenSucceededEvent, bool) {
9371	return nil, false
9372}
9373
9374// AsNodeOpenFailedEvent is the BasicFabricEvent implementation for ChaosPartitionPrimaryMoveScheduledEvent.
9375func (cppmse ChaosPartitionPrimaryMoveScheduledEvent) AsNodeOpenFailedEvent() (*NodeOpenFailedEvent, bool) {
9376	return nil, false
9377}
9378
9379// AsNodeRemovedFromClusterEvent is the BasicFabricEvent implementation for ChaosPartitionPrimaryMoveScheduledEvent.
9380func (cppmse ChaosPartitionPrimaryMoveScheduledEvent) AsNodeRemovedFromClusterEvent() (*NodeRemovedFromClusterEvent, bool) {
9381	return nil, false
9382}
9383
9384// AsNodeUpEvent is the BasicFabricEvent implementation for ChaosPartitionPrimaryMoveScheduledEvent.
9385func (cppmse ChaosPartitionPrimaryMoveScheduledEvent) AsNodeUpEvent() (*NodeUpEvent, bool) {
9386	return nil, false
9387}
9388
9389// AsPartitionNewHealthReportEvent is the BasicFabricEvent implementation for ChaosPartitionPrimaryMoveScheduledEvent.
9390func (cppmse ChaosPartitionPrimaryMoveScheduledEvent) AsPartitionNewHealthReportEvent() (*PartitionNewHealthReportEvent, bool) {
9391	return nil, false
9392}
9393
9394// AsPartitionHealthReportExpiredEvent is the BasicFabricEvent implementation for ChaosPartitionPrimaryMoveScheduledEvent.
9395func (cppmse ChaosPartitionPrimaryMoveScheduledEvent) AsPartitionHealthReportExpiredEvent() (*PartitionHealthReportExpiredEvent, bool) {
9396	return nil, false
9397}
9398
9399// AsPartitionReconfiguredEvent is the BasicFabricEvent implementation for ChaosPartitionPrimaryMoveScheduledEvent.
9400func (cppmse ChaosPartitionPrimaryMoveScheduledEvent) AsPartitionReconfiguredEvent() (*PartitionReconfiguredEvent, bool) {
9401	return nil, false
9402}
9403
9404// AsPartitionPrimaryMoveAnalysisEvent is the BasicFabricEvent implementation for ChaosPartitionPrimaryMoveScheduledEvent.
9405func (cppmse ChaosPartitionPrimaryMoveScheduledEvent) AsPartitionPrimaryMoveAnalysisEvent() (*PartitionPrimaryMoveAnalysisEvent, bool) {
9406	return nil, false
9407}
9408
9409// AsServiceCreatedEvent is the BasicFabricEvent implementation for ChaosPartitionPrimaryMoveScheduledEvent.
9410func (cppmse ChaosPartitionPrimaryMoveScheduledEvent) AsServiceCreatedEvent() (*ServiceCreatedEvent, bool) {
9411	return nil, false
9412}
9413
9414// AsServiceDeletedEvent is the BasicFabricEvent implementation for ChaosPartitionPrimaryMoveScheduledEvent.
9415func (cppmse ChaosPartitionPrimaryMoveScheduledEvent) AsServiceDeletedEvent() (*ServiceDeletedEvent, bool) {
9416	return nil, false
9417}
9418
9419// AsServiceNewHealthReportEvent is the BasicFabricEvent implementation for ChaosPartitionPrimaryMoveScheduledEvent.
9420func (cppmse ChaosPartitionPrimaryMoveScheduledEvent) AsServiceNewHealthReportEvent() (*ServiceNewHealthReportEvent, bool) {
9421	return nil, false
9422}
9423
9424// AsServiceHealthReportExpiredEvent is the BasicFabricEvent implementation for ChaosPartitionPrimaryMoveScheduledEvent.
9425func (cppmse ChaosPartitionPrimaryMoveScheduledEvent) AsServiceHealthReportExpiredEvent() (*ServiceHealthReportExpiredEvent, bool) {
9426	return nil, false
9427}
9428
9429// AsDeployedServicePackageNewHealthReportEvent is the BasicFabricEvent implementation for ChaosPartitionPrimaryMoveScheduledEvent.
9430func (cppmse ChaosPartitionPrimaryMoveScheduledEvent) AsDeployedServicePackageNewHealthReportEvent() (*DeployedServicePackageNewHealthReportEvent, bool) {
9431	return nil, false
9432}
9433
9434// AsDeployedServicePackageHealthReportExpiredEvent is the BasicFabricEvent implementation for ChaosPartitionPrimaryMoveScheduledEvent.
9435func (cppmse ChaosPartitionPrimaryMoveScheduledEvent) AsDeployedServicePackageHealthReportExpiredEvent() (*DeployedServicePackageHealthReportExpiredEvent, bool) {
9436	return nil, false
9437}
9438
9439// AsStatefulReplicaNewHealthReportEvent is the BasicFabricEvent implementation for ChaosPartitionPrimaryMoveScheduledEvent.
9440func (cppmse ChaosPartitionPrimaryMoveScheduledEvent) AsStatefulReplicaNewHealthReportEvent() (*StatefulReplicaNewHealthReportEvent, bool) {
9441	return nil, false
9442}
9443
9444// AsStatefulReplicaHealthReportExpiredEvent is the BasicFabricEvent implementation for ChaosPartitionPrimaryMoveScheduledEvent.
9445func (cppmse ChaosPartitionPrimaryMoveScheduledEvent) AsStatefulReplicaHealthReportExpiredEvent() (*StatefulReplicaHealthReportExpiredEvent, bool) {
9446	return nil, false
9447}
9448
9449// AsStatelessReplicaNewHealthReportEvent is the BasicFabricEvent implementation for ChaosPartitionPrimaryMoveScheduledEvent.
9450func (cppmse ChaosPartitionPrimaryMoveScheduledEvent) AsStatelessReplicaNewHealthReportEvent() (*StatelessReplicaNewHealthReportEvent, bool) {
9451	return nil, false
9452}
9453
9454// AsStatelessReplicaHealthReportExpiredEvent is the BasicFabricEvent implementation for ChaosPartitionPrimaryMoveScheduledEvent.
9455func (cppmse ChaosPartitionPrimaryMoveScheduledEvent) AsStatelessReplicaHealthReportExpiredEvent() (*StatelessReplicaHealthReportExpiredEvent, bool) {
9456	return nil, false
9457}
9458
9459// AsClusterNewHealthReportEvent is the BasicFabricEvent implementation for ChaosPartitionPrimaryMoveScheduledEvent.
9460func (cppmse ChaosPartitionPrimaryMoveScheduledEvent) AsClusterNewHealthReportEvent() (*ClusterNewHealthReportEvent, bool) {
9461	return nil, false
9462}
9463
9464// AsClusterHealthReportExpiredEvent is the BasicFabricEvent implementation for ChaosPartitionPrimaryMoveScheduledEvent.
9465func (cppmse ChaosPartitionPrimaryMoveScheduledEvent) AsClusterHealthReportExpiredEvent() (*ClusterHealthReportExpiredEvent, bool) {
9466	return nil, false
9467}
9468
9469// AsClusterUpgradeCompletedEvent is the BasicFabricEvent implementation for ChaosPartitionPrimaryMoveScheduledEvent.
9470func (cppmse ChaosPartitionPrimaryMoveScheduledEvent) AsClusterUpgradeCompletedEvent() (*ClusterUpgradeCompletedEvent, bool) {
9471	return nil, false
9472}
9473
9474// AsClusterUpgradeDomainCompletedEvent is the BasicFabricEvent implementation for ChaosPartitionPrimaryMoveScheduledEvent.
9475func (cppmse ChaosPartitionPrimaryMoveScheduledEvent) AsClusterUpgradeDomainCompletedEvent() (*ClusterUpgradeDomainCompletedEvent, bool) {
9476	return nil, false
9477}
9478
9479// AsClusterUpgradeRollbackCompletedEvent is the BasicFabricEvent implementation for ChaosPartitionPrimaryMoveScheduledEvent.
9480func (cppmse ChaosPartitionPrimaryMoveScheduledEvent) AsClusterUpgradeRollbackCompletedEvent() (*ClusterUpgradeRollbackCompletedEvent, bool) {
9481	return nil, false
9482}
9483
9484// AsClusterUpgradeRollbackStartedEvent is the BasicFabricEvent implementation for ChaosPartitionPrimaryMoveScheduledEvent.
9485func (cppmse ChaosPartitionPrimaryMoveScheduledEvent) AsClusterUpgradeRollbackStartedEvent() (*ClusterUpgradeRollbackStartedEvent, bool) {
9486	return nil, false
9487}
9488
9489// AsClusterUpgradeStartedEvent is the BasicFabricEvent implementation for ChaosPartitionPrimaryMoveScheduledEvent.
9490func (cppmse ChaosPartitionPrimaryMoveScheduledEvent) AsClusterUpgradeStartedEvent() (*ClusterUpgradeStartedEvent, bool) {
9491	return nil, false
9492}
9493
9494// AsChaosStoppedEvent is the BasicFabricEvent implementation for ChaosPartitionPrimaryMoveScheduledEvent.
9495func (cppmse ChaosPartitionPrimaryMoveScheduledEvent) AsChaosStoppedEvent() (*ChaosStoppedEvent, bool) {
9496	return nil, false
9497}
9498
9499// AsChaosStartedEvent is the BasicFabricEvent implementation for ChaosPartitionPrimaryMoveScheduledEvent.
9500func (cppmse ChaosPartitionPrimaryMoveScheduledEvent) AsChaosStartedEvent() (*ChaosStartedEvent, bool) {
9501	return nil, false
9502}
9503
9504// AsChaosCodePackageRestartScheduledEvent is the BasicFabricEvent implementation for ChaosPartitionPrimaryMoveScheduledEvent.
9505func (cppmse ChaosPartitionPrimaryMoveScheduledEvent) AsChaosCodePackageRestartScheduledEvent() (*ChaosCodePackageRestartScheduledEvent, bool) {
9506	return nil, false
9507}
9508
9509// AsChaosReplicaRemovalScheduledEvent is the BasicFabricEvent implementation for ChaosPartitionPrimaryMoveScheduledEvent.
9510func (cppmse ChaosPartitionPrimaryMoveScheduledEvent) AsChaosReplicaRemovalScheduledEvent() (*ChaosReplicaRemovalScheduledEvent, bool) {
9511	return nil, false
9512}
9513
9514// AsChaosPartitionSecondaryMoveScheduledEvent is the BasicFabricEvent implementation for ChaosPartitionPrimaryMoveScheduledEvent.
9515func (cppmse ChaosPartitionPrimaryMoveScheduledEvent) AsChaosPartitionSecondaryMoveScheduledEvent() (*ChaosPartitionSecondaryMoveScheduledEvent, bool) {
9516	return nil, false
9517}
9518
9519// AsChaosPartitionPrimaryMoveScheduledEvent is the BasicFabricEvent implementation for ChaosPartitionPrimaryMoveScheduledEvent.
9520func (cppmse ChaosPartitionPrimaryMoveScheduledEvent) AsChaosPartitionPrimaryMoveScheduledEvent() (*ChaosPartitionPrimaryMoveScheduledEvent, bool) {
9521	return &cppmse, true
9522}
9523
9524// AsChaosReplicaRestartScheduledEvent is the BasicFabricEvent implementation for ChaosPartitionPrimaryMoveScheduledEvent.
9525func (cppmse ChaosPartitionPrimaryMoveScheduledEvent) AsChaosReplicaRestartScheduledEvent() (*ChaosReplicaRestartScheduledEvent, bool) {
9526	return nil, false
9527}
9528
9529// AsChaosNodeRestartScheduledEvent is the BasicFabricEvent implementation for ChaosPartitionPrimaryMoveScheduledEvent.
9530func (cppmse ChaosPartitionPrimaryMoveScheduledEvent) AsChaosNodeRestartScheduledEvent() (*ChaosNodeRestartScheduledEvent, bool) {
9531	return nil, false
9532}
9533
9534// AsFabricEvent is the BasicFabricEvent implementation for ChaosPartitionPrimaryMoveScheduledEvent.
9535func (cppmse ChaosPartitionPrimaryMoveScheduledEvent) AsFabricEvent() (*FabricEvent, bool) {
9536	return nil, false
9537}
9538
9539// AsBasicFabricEvent is the BasicFabricEvent implementation for ChaosPartitionPrimaryMoveScheduledEvent.
9540func (cppmse ChaosPartitionPrimaryMoveScheduledEvent) AsBasicFabricEvent() (BasicFabricEvent, bool) {
9541	return &cppmse, true
9542}
9543
9544// ChaosPartitionSecondaryMoveScheduledEvent chaos Move Secondary Fault Scheduled event.
9545type ChaosPartitionSecondaryMoveScheduledEvent struct {
9546	// FaultGroupID - Id of fault group.
9547	FaultGroupID *uuid.UUID `json:"FaultGroupId,omitempty"`
9548	// FaultID - Id of fault.
9549	FaultID *uuid.UUID `json:"FaultId,omitempty"`
9550	// ServiceName - Service name.
9551	ServiceName *string `json:"ServiceName,omitempty"`
9552	// SourceNode - The name of a Service Fabric node.
9553	SourceNode *string `json:"SourceNode,omitempty"`
9554	// DestinationNode - The name of a Service Fabric node.
9555	DestinationNode *string `json:"DestinationNode,omitempty"`
9556	// ForcedMove - Indicates a forced move.
9557	ForcedMove *bool `json:"ForcedMove,omitempty"`
9558	// 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.
9559	PartitionID *uuid.UUID `json:"PartitionId,omitempty"`
9560	// EventInstanceID - The identifier for the FabricEvent instance.
9561	EventInstanceID *uuid.UUID `json:"EventInstanceId,omitempty"`
9562	// Category - The category of event.
9563	Category *string `json:"Category,omitempty"`
9564	// TimeStamp - The time event was logged.
9565	TimeStamp *date.Time `json:"TimeStamp,omitempty"`
9566	// HasCorrelatedEvents - Shows there is existing related events available.
9567	HasCorrelatedEvents *bool `json:"HasCorrelatedEvents,omitempty"`
9568	// 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'
9569	Kind KindBasicFabricEvent `json:"Kind,omitempty"`
9570}
9571
9572// MarshalJSON is the custom marshaler for ChaosPartitionSecondaryMoveScheduledEvent.
9573func (cpsmse ChaosPartitionSecondaryMoveScheduledEvent) MarshalJSON() ([]byte, error) {
9574	cpsmse.Kind = KindChaosPartitionSecondaryMoveScheduled
9575	objectMap := make(map[string]interface{})
9576	if cpsmse.FaultGroupID != nil {
9577		objectMap["FaultGroupId"] = cpsmse.FaultGroupID
9578	}
9579	if cpsmse.FaultID != nil {
9580		objectMap["FaultId"] = cpsmse.FaultID
9581	}
9582	if cpsmse.ServiceName != nil {
9583		objectMap["ServiceName"] = cpsmse.ServiceName
9584	}
9585	if cpsmse.SourceNode != nil {
9586		objectMap["SourceNode"] = cpsmse.SourceNode
9587	}
9588	if cpsmse.DestinationNode != nil {
9589		objectMap["DestinationNode"] = cpsmse.DestinationNode
9590	}
9591	if cpsmse.ForcedMove != nil {
9592		objectMap["ForcedMove"] = cpsmse.ForcedMove
9593	}
9594	if cpsmse.PartitionID != nil {
9595		objectMap["PartitionId"] = cpsmse.PartitionID
9596	}
9597	if cpsmse.EventInstanceID != nil {
9598		objectMap["EventInstanceId"] = cpsmse.EventInstanceID
9599	}
9600	if cpsmse.Category != nil {
9601		objectMap["Category"] = cpsmse.Category
9602	}
9603	if cpsmse.TimeStamp != nil {
9604		objectMap["TimeStamp"] = cpsmse.TimeStamp
9605	}
9606	if cpsmse.HasCorrelatedEvents != nil {
9607		objectMap["HasCorrelatedEvents"] = cpsmse.HasCorrelatedEvents
9608	}
9609	if cpsmse.Kind != "" {
9610		objectMap["Kind"] = cpsmse.Kind
9611	}
9612	return json.Marshal(objectMap)
9613}
9614
9615// AsApplicationEvent is the BasicFabricEvent implementation for ChaosPartitionSecondaryMoveScheduledEvent.
9616func (cpsmse ChaosPartitionSecondaryMoveScheduledEvent) AsApplicationEvent() (*ApplicationEvent, bool) {
9617	return nil, false
9618}
9619
9620// AsBasicApplicationEvent is the BasicFabricEvent implementation for ChaosPartitionSecondaryMoveScheduledEvent.
9621func (cpsmse ChaosPartitionSecondaryMoveScheduledEvent) AsBasicApplicationEvent() (BasicApplicationEvent, bool) {
9622	return nil, false
9623}
9624
9625// AsClusterEvent is the BasicFabricEvent implementation for ChaosPartitionSecondaryMoveScheduledEvent.
9626func (cpsmse ChaosPartitionSecondaryMoveScheduledEvent) AsClusterEvent() (*ClusterEvent, bool) {
9627	return nil, false
9628}
9629
9630// AsBasicClusterEvent is the BasicFabricEvent implementation for ChaosPartitionSecondaryMoveScheduledEvent.
9631func (cpsmse ChaosPartitionSecondaryMoveScheduledEvent) AsBasicClusterEvent() (BasicClusterEvent, bool) {
9632	return nil, false
9633}
9634
9635// AsContainerInstanceEvent is the BasicFabricEvent implementation for ChaosPartitionSecondaryMoveScheduledEvent.
9636func (cpsmse ChaosPartitionSecondaryMoveScheduledEvent) AsContainerInstanceEvent() (*ContainerInstanceEvent, bool) {
9637	return nil, false
9638}
9639
9640// AsNodeEvent is the BasicFabricEvent implementation for ChaosPartitionSecondaryMoveScheduledEvent.
9641func (cpsmse ChaosPartitionSecondaryMoveScheduledEvent) AsNodeEvent() (*NodeEvent, bool) {
9642	return nil, false
9643}
9644
9645// AsBasicNodeEvent is the BasicFabricEvent implementation for ChaosPartitionSecondaryMoveScheduledEvent.
9646func (cpsmse ChaosPartitionSecondaryMoveScheduledEvent) AsBasicNodeEvent() (BasicNodeEvent, bool) {
9647	return nil, false
9648}
9649
9650// AsPartitionAnalysisEvent is the BasicFabricEvent implementation for ChaosPartitionSecondaryMoveScheduledEvent.
9651func (cpsmse ChaosPartitionSecondaryMoveScheduledEvent) AsPartitionAnalysisEvent() (*PartitionAnalysisEvent, bool) {
9652	return nil, false
9653}
9654
9655// AsBasicPartitionAnalysisEvent is the BasicFabricEvent implementation for ChaosPartitionSecondaryMoveScheduledEvent.
9656func (cpsmse ChaosPartitionSecondaryMoveScheduledEvent) AsBasicPartitionAnalysisEvent() (BasicPartitionAnalysisEvent, bool) {
9657	return nil, false
9658}
9659
9660// AsPartitionEvent is the BasicFabricEvent implementation for ChaosPartitionSecondaryMoveScheduledEvent.
9661func (cpsmse ChaosPartitionSecondaryMoveScheduledEvent) AsPartitionEvent() (*PartitionEvent, bool) {
9662	return nil, false
9663}
9664
9665// AsBasicPartitionEvent is the BasicFabricEvent implementation for ChaosPartitionSecondaryMoveScheduledEvent.
9666func (cpsmse ChaosPartitionSecondaryMoveScheduledEvent) AsBasicPartitionEvent() (BasicPartitionEvent, bool) {
9667	return &cpsmse, true
9668}
9669
9670// AsReplicaEvent is the BasicFabricEvent implementation for ChaosPartitionSecondaryMoveScheduledEvent.
9671func (cpsmse ChaosPartitionSecondaryMoveScheduledEvent) AsReplicaEvent() (*ReplicaEvent, bool) {
9672	return nil, false
9673}
9674
9675// AsBasicReplicaEvent is the BasicFabricEvent implementation for ChaosPartitionSecondaryMoveScheduledEvent.
9676func (cpsmse ChaosPartitionSecondaryMoveScheduledEvent) AsBasicReplicaEvent() (BasicReplicaEvent, bool) {
9677	return nil, false
9678}
9679
9680// AsServiceEvent is the BasicFabricEvent implementation for ChaosPartitionSecondaryMoveScheduledEvent.
9681func (cpsmse ChaosPartitionSecondaryMoveScheduledEvent) AsServiceEvent() (*ServiceEvent, bool) {
9682	return nil, false
9683}
9684
9685// AsBasicServiceEvent is the BasicFabricEvent implementation for ChaosPartitionSecondaryMoveScheduledEvent.
9686func (cpsmse ChaosPartitionSecondaryMoveScheduledEvent) AsBasicServiceEvent() (BasicServiceEvent, bool) {
9687	return nil, false
9688}
9689
9690// AsApplicationCreatedEvent is the BasicFabricEvent implementation for ChaosPartitionSecondaryMoveScheduledEvent.
9691func (cpsmse ChaosPartitionSecondaryMoveScheduledEvent) AsApplicationCreatedEvent() (*ApplicationCreatedEvent, bool) {
9692	return nil, false
9693}
9694
9695// AsApplicationDeletedEvent is the BasicFabricEvent implementation for ChaosPartitionSecondaryMoveScheduledEvent.
9696func (cpsmse ChaosPartitionSecondaryMoveScheduledEvent) AsApplicationDeletedEvent() (*ApplicationDeletedEvent, bool) {
9697	return nil, false
9698}
9699
9700// AsApplicationNewHealthReportEvent is the BasicFabricEvent implementation for ChaosPartitionSecondaryMoveScheduledEvent.
9701func (cpsmse ChaosPartitionSecondaryMoveScheduledEvent) AsApplicationNewHealthReportEvent() (*ApplicationNewHealthReportEvent, bool) {
9702	return nil, false
9703}
9704
9705// AsApplicationHealthReportExpiredEvent is the BasicFabricEvent implementation for ChaosPartitionSecondaryMoveScheduledEvent.
9706func (cpsmse ChaosPartitionSecondaryMoveScheduledEvent) AsApplicationHealthReportExpiredEvent() (*ApplicationHealthReportExpiredEvent, bool) {
9707	return nil, false
9708}
9709
9710// AsApplicationUpgradeCompletedEvent is the BasicFabricEvent implementation for ChaosPartitionSecondaryMoveScheduledEvent.
9711func (cpsmse ChaosPartitionSecondaryMoveScheduledEvent) AsApplicationUpgradeCompletedEvent() (*ApplicationUpgradeCompletedEvent, bool) {
9712	return nil, false
9713}
9714
9715// AsApplicationUpgradeDomainCompletedEvent is the BasicFabricEvent implementation for ChaosPartitionSecondaryMoveScheduledEvent.
9716func (cpsmse ChaosPartitionSecondaryMoveScheduledEvent) AsApplicationUpgradeDomainCompletedEvent() (*ApplicationUpgradeDomainCompletedEvent, bool) {
9717	return nil, false
9718}
9719
9720// AsApplicationUpgradeRollbackCompletedEvent is the BasicFabricEvent implementation for ChaosPartitionSecondaryMoveScheduledEvent.
9721func (cpsmse ChaosPartitionSecondaryMoveScheduledEvent) AsApplicationUpgradeRollbackCompletedEvent() (*ApplicationUpgradeRollbackCompletedEvent, bool) {
9722	return nil, false
9723}
9724
9725// AsApplicationUpgradeRollbackStartedEvent is the BasicFabricEvent implementation for ChaosPartitionSecondaryMoveScheduledEvent.
9726func (cpsmse ChaosPartitionSecondaryMoveScheduledEvent) AsApplicationUpgradeRollbackStartedEvent() (*ApplicationUpgradeRollbackStartedEvent, bool) {
9727	return nil, false
9728}
9729
9730// AsApplicationUpgradeStartedEvent is the BasicFabricEvent implementation for ChaosPartitionSecondaryMoveScheduledEvent.
9731func (cpsmse ChaosPartitionSecondaryMoveScheduledEvent) AsApplicationUpgradeStartedEvent() (*ApplicationUpgradeStartedEvent, bool) {
9732	return nil, false
9733}
9734
9735// AsDeployedApplicationNewHealthReportEvent is the BasicFabricEvent implementation for ChaosPartitionSecondaryMoveScheduledEvent.
9736func (cpsmse ChaosPartitionSecondaryMoveScheduledEvent) AsDeployedApplicationNewHealthReportEvent() (*DeployedApplicationNewHealthReportEvent, bool) {
9737	return nil, false
9738}
9739
9740// AsDeployedApplicationHealthReportExpiredEvent is the BasicFabricEvent implementation for ChaosPartitionSecondaryMoveScheduledEvent.
9741func (cpsmse ChaosPartitionSecondaryMoveScheduledEvent) AsDeployedApplicationHealthReportExpiredEvent() (*DeployedApplicationHealthReportExpiredEvent, bool) {
9742	return nil, false
9743}
9744
9745// AsApplicationProcessExitedEvent is the BasicFabricEvent implementation for ChaosPartitionSecondaryMoveScheduledEvent.
9746func (cpsmse ChaosPartitionSecondaryMoveScheduledEvent) AsApplicationProcessExitedEvent() (*ApplicationProcessExitedEvent, bool) {
9747	return nil, false
9748}
9749
9750// AsApplicationContainerInstanceExitedEvent is the BasicFabricEvent implementation for ChaosPartitionSecondaryMoveScheduledEvent.
9751func (cpsmse ChaosPartitionSecondaryMoveScheduledEvent) AsApplicationContainerInstanceExitedEvent() (*ApplicationContainerInstanceExitedEvent, bool) {
9752	return nil, false
9753}
9754
9755// AsNodeAbortedEvent is the BasicFabricEvent implementation for ChaosPartitionSecondaryMoveScheduledEvent.
9756func (cpsmse ChaosPartitionSecondaryMoveScheduledEvent) AsNodeAbortedEvent() (*NodeAbortedEvent, bool) {
9757	return nil, false
9758}
9759
9760// AsNodeAddedToClusterEvent is the BasicFabricEvent implementation for ChaosPartitionSecondaryMoveScheduledEvent.
9761func (cpsmse ChaosPartitionSecondaryMoveScheduledEvent) AsNodeAddedToClusterEvent() (*NodeAddedToClusterEvent, bool) {
9762	return nil, false
9763}
9764
9765// AsNodeClosedEvent is the BasicFabricEvent implementation for ChaosPartitionSecondaryMoveScheduledEvent.
9766func (cpsmse ChaosPartitionSecondaryMoveScheduledEvent) AsNodeClosedEvent() (*NodeClosedEvent, bool) {
9767	return nil, false
9768}
9769
9770// AsNodeDeactivateCompletedEvent is the BasicFabricEvent implementation for ChaosPartitionSecondaryMoveScheduledEvent.
9771func (cpsmse ChaosPartitionSecondaryMoveScheduledEvent) AsNodeDeactivateCompletedEvent() (*NodeDeactivateCompletedEvent, bool) {
9772	return nil, false
9773}
9774
9775// AsNodeDeactivateStartedEvent is the BasicFabricEvent implementation for ChaosPartitionSecondaryMoveScheduledEvent.
9776func (cpsmse ChaosPartitionSecondaryMoveScheduledEvent) AsNodeDeactivateStartedEvent() (*NodeDeactivateStartedEvent, bool) {
9777	return nil, false
9778}
9779
9780// AsNodeDownEvent is the BasicFabricEvent implementation for ChaosPartitionSecondaryMoveScheduledEvent.
9781func (cpsmse ChaosPartitionSecondaryMoveScheduledEvent) AsNodeDownEvent() (*NodeDownEvent, bool) {
9782	return nil, false
9783}
9784
9785// AsNodeNewHealthReportEvent is the BasicFabricEvent implementation for ChaosPartitionSecondaryMoveScheduledEvent.
9786func (cpsmse ChaosPartitionSecondaryMoveScheduledEvent) AsNodeNewHealthReportEvent() (*NodeNewHealthReportEvent, bool) {
9787	return nil, false
9788}
9789
9790// AsNodeHealthReportExpiredEvent is the BasicFabricEvent implementation for ChaosPartitionSecondaryMoveScheduledEvent.
9791func (cpsmse ChaosPartitionSecondaryMoveScheduledEvent) AsNodeHealthReportExpiredEvent() (*NodeHealthReportExpiredEvent, bool) {
9792	return nil, false
9793}
9794
9795// AsNodeOpenSucceededEvent is the BasicFabricEvent implementation for ChaosPartitionSecondaryMoveScheduledEvent.
9796func (cpsmse ChaosPartitionSecondaryMoveScheduledEvent) AsNodeOpenSucceededEvent() (*NodeOpenSucceededEvent, bool) {
9797	return nil, false
9798}
9799
9800// AsNodeOpenFailedEvent is the BasicFabricEvent implementation for ChaosPartitionSecondaryMoveScheduledEvent.
9801func (cpsmse ChaosPartitionSecondaryMoveScheduledEvent) AsNodeOpenFailedEvent() (*NodeOpenFailedEvent, bool) {
9802	return nil, false
9803}
9804
9805// AsNodeRemovedFromClusterEvent is the BasicFabricEvent implementation for ChaosPartitionSecondaryMoveScheduledEvent.
9806func (cpsmse ChaosPartitionSecondaryMoveScheduledEvent) AsNodeRemovedFromClusterEvent() (*NodeRemovedFromClusterEvent, bool) {
9807	return nil, false
9808}
9809
9810// AsNodeUpEvent is the BasicFabricEvent implementation for ChaosPartitionSecondaryMoveScheduledEvent.
9811func (cpsmse ChaosPartitionSecondaryMoveScheduledEvent) AsNodeUpEvent() (*NodeUpEvent, bool) {
9812	return nil, false
9813}
9814
9815// AsPartitionNewHealthReportEvent is the BasicFabricEvent implementation for ChaosPartitionSecondaryMoveScheduledEvent.
9816func (cpsmse ChaosPartitionSecondaryMoveScheduledEvent) AsPartitionNewHealthReportEvent() (*PartitionNewHealthReportEvent, bool) {
9817	return nil, false
9818}
9819
9820// AsPartitionHealthReportExpiredEvent is the BasicFabricEvent implementation for ChaosPartitionSecondaryMoveScheduledEvent.
9821func (cpsmse ChaosPartitionSecondaryMoveScheduledEvent) AsPartitionHealthReportExpiredEvent() (*PartitionHealthReportExpiredEvent, bool) {
9822	return nil, false
9823}
9824
9825// AsPartitionReconfiguredEvent is the BasicFabricEvent implementation for ChaosPartitionSecondaryMoveScheduledEvent.
9826func (cpsmse ChaosPartitionSecondaryMoveScheduledEvent) AsPartitionReconfiguredEvent() (*PartitionReconfiguredEvent, bool) {
9827	return nil, false
9828}
9829
9830// AsPartitionPrimaryMoveAnalysisEvent is the BasicFabricEvent implementation for ChaosPartitionSecondaryMoveScheduledEvent.
9831func (cpsmse ChaosPartitionSecondaryMoveScheduledEvent) AsPartitionPrimaryMoveAnalysisEvent() (*PartitionPrimaryMoveAnalysisEvent, bool) {
9832	return nil, false
9833}
9834
9835// AsServiceCreatedEvent is the BasicFabricEvent implementation for ChaosPartitionSecondaryMoveScheduledEvent.
9836func (cpsmse ChaosPartitionSecondaryMoveScheduledEvent) AsServiceCreatedEvent() (*ServiceCreatedEvent, bool) {
9837	return nil, false
9838}
9839
9840// AsServiceDeletedEvent is the BasicFabricEvent implementation for ChaosPartitionSecondaryMoveScheduledEvent.
9841func (cpsmse ChaosPartitionSecondaryMoveScheduledEvent) AsServiceDeletedEvent() (*ServiceDeletedEvent, bool) {
9842	return nil, false
9843}
9844
9845// AsServiceNewHealthReportEvent is the BasicFabricEvent implementation for ChaosPartitionSecondaryMoveScheduledEvent.
9846func (cpsmse ChaosPartitionSecondaryMoveScheduledEvent) AsServiceNewHealthReportEvent() (*ServiceNewHealthReportEvent, bool) {
9847	return nil, false
9848}
9849
9850// AsServiceHealthReportExpiredEvent is the BasicFabricEvent implementation for ChaosPartitionSecondaryMoveScheduledEvent.
9851func (cpsmse ChaosPartitionSecondaryMoveScheduledEvent) AsServiceHealthReportExpiredEvent() (*ServiceHealthReportExpiredEvent, bool) {
9852	return nil, false
9853}
9854
9855// AsDeployedServicePackageNewHealthReportEvent is the BasicFabricEvent implementation for ChaosPartitionSecondaryMoveScheduledEvent.
9856func (cpsmse ChaosPartitionSecondaryMoveScheduledEvent) AsDeployedServicePackageNewHealthReportEvent() (*DeployedServicePackageNewHealthReportEvent, bool) {
9857	return nil, false
9858}
9859
9860// AsDeployedServicePackageHealthReportExpiredEvent is the BasicFabricEvent implementation for ChaosPartitionSecondaryMoveScheduledEvent.
9861func (cpsmse ChaosPartitionSecondaryMoveScheduledEvent) AsDeployedServicePackageHealthReportExpiredEvent() (*DeployedServicePackageHealthReportExpiredEvent, bool) {
9862	return nil, false
9863}
9864
9865// AsStatefulReplicaNewHealthReportEvent is the BasicFabricEvent implementation for ChaosPartitionSecondaryMoveScheduledEvent.
9866func (cpsmse ChaosPartitionSecondaryMoveScheduledEvent) AsStatefulReplicaNewHealthReportEvent() (*StatefulReplicaNewHealthReportEvent, bool) {
9867	return nil, false
9868}
9869
9870// AsStatefulReplicaHealthReportExpiredEvent is the BasicFabricEvent implementation for ChaosPartitionSecondaryMoveScheduledEvent.
9871func (cpsmse ChaosPartitionSecondaryMoveScheduledEvent) AsStatefulReplicaHealthReportExpiredEvent() (*StatefulReplicaHealthReportExpiredEvent, bool) {
9872	return nil, false
9873}
9874
9875// AsStatelessReplicaNewHealthReportEvent is the BasicFabricEvent implementation for ChaosPartitionSecondaryMoveScheduledEvent.
9876func (cpsmse ChaosPartitionSecondaryMoveScheduledEvent) AsStatelessReplicaNewHealthReportEvent() (*StatelessReplicaNewHealthReportEvent, bool) {
9877	return nil, false
9878}
9879
9880// AsStatelessReplicaHealthReportExpiredEvent is the BasicFabricEvent implementation for ChaosPartitionSecondaryMoveScheduledEvent.
9881func (cpsmse ChaosPartitionSecondaryMoveScheduledEvent) AsStatelessReplicaHealthReportExpiredEvent() (*StatelessReplicaHealthReportExpiredEvent, bool) {
9882	return nil, false
9883}
9884
9885// AsClusterNewHealthReportEvent is the BasicFabricEvent implementation for ChaosPartitionSecondaryMoveScheduledEvent.
9886func (cpsmse ChaosPartitionSecondaryMoveScheduledEvent) AsClusterNewHealthReportEvent() (*ClusterNewHealthReportEvent, bool) {
9887	return nil, false
9888}
9889
9890// AsClusterHealthReportExpiredEvent is the BasicFabricEvent implementation for ChaosPartitionSecondaryMoveScheduledEvent.
9891func (cpsmse ChaosPartitionSecondaryMoveScheduledEvent) AsClusterHealthReportExpiredEvent() (*ClusterHealthReportExpiredEvent, bool) {
9892	return nil, false
9893}
9894
9895// AsClusterUpgradeCompletedEvent is the BasicFabricEvent implementation for ChaosPartitionSecondaryMoveScheduledEvent.
9896func (cpsmse ChaosPartitionSecondaryMoveScheduledEvent) AsClusterUpgradeCompletedEvent() (*ClusterUpgradeCompletedEvent, bool) {
9897	return nil, false
9898}
9899
9900// AsClusterUpgradeDomainCompletedEvent is the BasicFabricEvent implementation for ChaosPartitionSecondaryMoveScheduledEvent.
9901func (cpsmse ChaosPartitionSecondaryMoveScheduledEvent) AsClusterUpgradeDomainCompletedEvent() (*ClusterUpgradeDomainCompletedEvent, bool) {
9902	return nil, false
9903}
9904
9905// AsClusterUpgradeRollbackCompletedEvent is the BasicFabricEvent implementation for ChaosPartitionSecondaryMoveScheduledEvent.
9906func (cpsmse ChaosPartitionSecondaryMoveScheduledEvent) AsClusterUpgradeRollbackCompletedEvent() (*ClusterUpgradeRollbackCompletedEvent, bool) {
9907	return nil, false
9908}
9909
9910// AsClusterUpgradeRollbackStartedEvent is the BasicFabricEvent implementation for ChaosPartitionSecondaryMoveScheduledEvent.
9911func (cpsmse ChaosPartitionSecondaryMoveScheduledEvent) AsClusterUpgradeRollbackStartedEvent() (*ClusterUpgradeRollbackStartedEvent, bool) {
9912	return nil, false
9913}
9914
9915// AsClusterUpgradeStartedEvent is the BasicFabricEvent implementation for ChaosPartitionSecondaryMoveScheduledEvent.
9916func (cpsmse ChaosPartitionSecondaryMoveScheduledEvent) AsClusterUpgradeStartedEvent() (*ClusterUpgradeStartedEvent, bool) {
9917	return nil, false
9918}
9919
9920// AsChaosStoppedEvent is the BasicFabricEvent implementation for ChaosPartitionSecondaryMoveScheduledEvent.
9921func (cpsmse ChaosPartitionSecondaryMoveScheduledEvent) AsChaosStoppedEvent() (*ChaosStoppedEvent, bool) {
9922	return nil, false
9923}
9924
9925// AsChaosStartedEvent is the BasicFabricEvent implementation for ChaosPartitionSecondaryMoveScheduledEvent.
9926func (cpsmse ChaosPartitionSecondaryMoveScheduledEvent) AsChaosStartedEvent() (*ChaosStartedEvent, bool) {
9927	return nil, false
9928}
9929
9930// AsChaosCodePackageRestartScheduledEvent is the BasicFabricEvent implementation for ChaosPartitionSecondaryMoveScheduledEvent.
9931func (cpsmse ChaosPartitionSecondaryMoveScheduledEvent) AsChaosCodePackageRestartScheduledEvent() (*ChaosCodePackageRestartScheduledEvent, bool) {
9932	return nil, false
9933}
9934
9935// AsChaosReplicaRemovalScheduledEvent is the BasicFabricEvent implementation for ChaosPartitionSecondaryMoveScheduledEvent.
9936func (cpsmse ChaosPartitionSecondaryMoveScheduledEvent) AsChaosReplicaRemovalScheduledEvent() (*ChaosReplicaRemovalScheduledEvent, bool) {
9937	return nil, false
9938}
9939
9940// AsChaosPartitionSecondaryMoveScheduledEvent is the BasicFabricEvent implementation for ChaosPartitionSecondaryMoveScheduledEvent.
9941func (cpsmse ChaosPartitionSecondaryMoveScheduledEvent) AsChaosPartitionSecondaryMoveScheduledEvent() (*ChaosPartitionSecondaryMoveScheduledEvent, bool) {
9942	return &cpsmse, true
9943}
9944
9945// AsChaosPartitionPrimaryMoveScheduledEvent is the BasicFabricEvent implementation for ChaosPartitionSecondaryMoveScheduledEvent.
9946func (cpsmse ChaosPartitionSecondaryMoveScheduledEvent) AsChaosPartitionPrimaryMoveScheduledEvent() (*ChaosPartitionPrimaryMoveScheduledEvent, bool) {
9947	return nil, false
9948}
9949
9950// AsChaosReplicaRestartScheduledEvent is the BasicFabricEvent implementation for ChaosPartitionSecondaryMoveScheduledEvent.
9951func (cpsmse ChaosPartitionSecondaryMoveScheduledEvent) AsChaosReplicaRestartScheduledEvent() (*ChaosReplicaRestartScheduledEvent, bool) {
9952	return nil, false
9953}
9954
9955// AsChaosNodeRestartScheduledEvent is the BasicFabricEvent implementation for ChaosPartitionSecondaryMoveScheduledEvent.
9956func (cpsmse ChaosPartitionSecondaryMoveScheduledEvent) AsChaosNodeRestartScheduledEvent() (*ChaosNodeRestartScheduledEvent, bool) {
9957	return nil, false
9958}
9959
9960// AsFabricEvent is the BasicFabricEvent implementation for ChaosPartitionSecondaryMoveScheduledEvent.
9961func (cpsmse ChaosPartitionSecondaryMoveScheduledEvent) AsFabricEvent() (*FabricEvent, bool) {
9962	return nil, false
9963}
9964
9965// AsBasicFabricEvent is the BasicFabricEvent implementation for ChaosPartitionSecondaryMoveScheduledEvent.
9966func (cpsmse ChaosPartitionSecondaryMoveScheduledEvent) AsBasicFabricEvent() (BasicFabricEvent, bool) {
9967	return &cpsmse, true
9968}
9969
9970// ChaosReplicaRemovalScheduledEvent chaos Remove Replica Fault Scheduled event.
9971type ChaosReplicaRemovalScheduledEvent struct {
9972	// FaultGroupID - Id of fault group.
9973	FaultGroupID *uuid.UUID `json:"FaultGroupId,omitempty"`
9974	// FaultID - Id of fault.
9975	FaultID *uuid.UUID `json:"FaultId,omitempty"`
9976	// ServiceURI - Service name.
9977	ServiceURI *string `json:"ServiceUri,omitempty"`
9978	// 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.
9979	PartitionID *uuid.UUID `json:"PartitionId,omitempty"`
9980	// 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.
9981	ReplicaID *int64 `json:"ReplicaId,omitempty"`
9982	// EventInstanceID - The identifier for the FabricEvent instance.
9983	EventInstanceID *uuid.UUID `json:"EventInstanceId,omitempty"`
9984	// Category - The category of event.
9985	Category *string `json:"Category,omitempty"`
9986	// TimeStamp - The time event was logged.
9987	TimeStamp *date.Time `json:"TimeStamp,omitempty"`
9988	// HasCorrelatedEvents - Shows there is existing related events available.
9989	HasCorrelatedEvents *bool `json:"HasCorrelatedEvents,omitempty"`
9990	// 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'
9991	Kind KindBasicFabricEvent `json:"Kind,omitempty"`
9992}
9993
9994// MarshalJSON is the custom marshaler for ChaosReplicaRemovalScheduledEvent.
9995func (crrse ChaosReplicaRemovalScheduledEvent) MarshalJSON() ([]byte, error) {
9996	crrse.Kind = KindChaosReplicaRemovalScheduled
9997	objectMap := make(map[string]interface{})
9998	if crrse.FaultGroupID != nil {
9999		objectMap["FaultGroupId"] = crrse.FaultGroupID
10000	}
10001	if crrse.FaultID != nil {
10002		objectMap["FaultId"] = crrse.FaultID
10003	}
10004	if crrse.ServiceURI != nil {
10005		objectMap["ServiceUri"] = crrse.ServiceURI
10006	}
10007	if crrse.PartitionID != nil {
10008		objectMap["PartitionId"] = crrse.PartitionID
10009	}
10010	if crrse.ReplicaID != nil {
10011		objectMap["ReplicaId"] = crrse.ReplicaID
10012	}
10013	if crrse.EventInstanceID != nil {
10014		objectMap["EventInstanceId"] = crrse.EventInstanceID
10015	}
10016	if crrse.Category != nil {
10017		objectMap["Category"] = crrse.Category
10018	}
10019	if crrse.TimeStamp != nil {
10020		objectMap["TimeStamp"] = crrse.TimeStamp
10021	}
10022	if crrse.HasCorrelatedEvents != nil {
10023		objectMap["HasCorrelatedEvents"] = crrse.HasCorrelatedEvents
10024	}
10025	if crrse.Kind != "" {
10026		objectMap["Kind"] = crrse.Kind
10027	}
10028	return json.Marshal(objectMap)
10029}
10030
10031// AsApplicationEvent is the BasicFabricEvent implementation for ChaosReplicaRemovalScheduledEvent.
10032func (crrse ChaosReplicaRemovalScheduledEvent) AsApplicationEvent() (*ApplicationEvent, bool) {
10033	return nil, false
10034}
10035
10036// AsBasicApplicationEvent is the BasicFabricEvent implementation for ChaosReplicaRemovalScheduledEvent.
10037func (crrse ChaosReplicaRemovalScheduledEvent) AsBasicApplicationEvent() (BasicApplicationEvent, bool) {
10038	return nil, false
10039}
10040
10041// AsClusterEvent is the BasicFabricEvent implementation for ChaosReplicaRemovalScheduledEvent.
10042func (crrse ChaosReplicaRemovalScheduledEvent) AsClusterEvent() (*ClusterEvent, bool) {
10043	return nil, false
10044}
10045
10046// AsBasicClusterEvent is the BasicFabricEvent implementation for ChaosReplicaRemovalScheduledEvent.
10047func (crrse ChaosReplicaRemovalScheduledEvent) AsBasicClusterEvent() (BasicClusterEvent, bool) {
10048	return nil, false
10049}
10050
10051// AsContainerInstanceEvent is the BasicFabricEvent implementation for ChaosReplicaRemovalScheduledEvent.
10052func (crrse ChaosReplicaRemovalScheduledEvent) AsContainerInstanceEvent() (*ContainerInstanceEvent, bool) {
10053	return nil, false
10054}
10055
10056// AsNodeEvent is the BasicFabricEvent implementation for ChaosReplicaRemovalScheduledEvent.
10057func (crrse ChaosReplicaRemovalScheduledEvent) AsNodeEvent() (*NodeEvent, bool) {
10058	return nil, false
10059}
10060
10061// AsBasicNodeEvent is the BasicFabricEvent implementation for ChaosReplicaRemovalScheduledEvent.
10062func (crrse ChaosReplicaRemovalScheduledEvent) AsBasicNodeEvent() (BasicNodeEvent, bool) {
10063	return nil, false
10064}
10065
10066// AsPartitionAnalysisEvent is the BasicFabricEvent implementation for ChaosReplicaRemovalScheduledEvent.
10067func (crrse ChaosReplicaRemovalScheduledEvent) AsPartitionAnalysisEvent() (*PartitionAnalysisEvent, bool) {
10068	return nil, false
10069}
10070
10071// AsBasicPartitionAnalysisEvent is the BasicFabricEvent implementation for ChaosReplicaRemovalScheduledEvent.
10072func (crrse ChaosReplicaRemovalScheduledEvent) AsBasicPartitionAnalysisEvent() (BasicPartitionAnalysisEvent, bool) {
10073	return nil, false
10074}
10075
10076// AsPartitionEvent is the BasicFabricEvent implementation for ChaosReplicaRemovalScheduledEvent.
10077func (crrse ChaosReplicaRemovalScheduledEvent) AsPartitionEvent() (*PartitionEvent, bool) {
10078	return nil, false
10079}
10080
10081// AsBasicPartitionEvent is the BasicFabricEvent implementation for ChaosReplicaRemovalScheduledEvent.
10082func (crrse ChaosReplicaRemovalScheduledEvent) AsBasicPartitionEvent() (BasicPartitionEvent, bool) {
10083	return nil, false
10084}
10085
10086// AsReplicaEvent is the BasicFabricEvent implementation for ChaosReplicaRemovalScheduledEvent.
10087func (crrse ChaosReplicaRemovalScheduledEvent) AsReplicaEvent() (*ReplicaEvent, bool) {
10088	return nil, false
10089}
10090
10091// AsBasicReplicaEvent is the BasicFabricEvent implementation for ChaosReplicaRemovalScheduledEvent.
10092func (crrse ChaosReplicaRemovalScheduledEvent) AsBasicReplicaEvent() (BasicReplicaEvent, bool) {
10093	return &crrse, true
10094}
10095
10096// AsServiceEvent is the BasicFabricEvent implementation for ChaosReplicaRemovalScheduledEvent.
10097func (crrse ChaosReplicaRemovalScheduledEvent) AsServiceEvent() (*ServiceEvent, bool) {
10098	return nil, false
10099}
10100
10101// AsBasicServiceEvent is the BasicFabricEvent implementation for ChaosReplicaRemovalScheduledEvent.
10102func (crrse ChaosReplicaRemovalScheduledEvent) AsBasicServiceEvent() (BasicServiceEvent, bool) {
10103	return nil, false
10104}
10105
10106// AsApplicationCreatedEvent is the BasicFabricEvent implementation for ChaosReplicaRemovalScheduledEvent.
10107func (crrse ChaosReplicaRemovalScheduledEvent) AsApplicationCreatedEvent() (*ApplicationCreatedEvent, bool) {
10108	return nil, false
10109}
10110
10111// AsApplicationDeletedEvent is the BasicFabricEvent implementation for ChaosReplicaRemovalScheduledEvent.
10112func (crrse ChaosReplicaRemovalScheduledEvent) AsApplicationDeletedEvent() (*ApplicationDeletedEvent, bool) {
10113	return nil, false
10114}
10115
10116// AsApplicationNewHealthReportEvent is the BasicFabricEvent implementation for ChaosReplicaRemovalScheduledEvent.
10117func (crrse ChaosReplicaRemovalScheduledEvent) AsApplicationNewHealthReportEvent() (*ApplicationNewHealthReportEvent, bool) {
10118	return nil, false
10119}
10120
10121// AsApplicationHealthReportExpiredEvent is the BasicFabricEvent implementation for ChaosReplicaRemovalScheduledEvent.
10122func (crrse ChaosReplicaRemovalScheduledEvent) AsApplicationHealthReportExpiredEvent() (*ApplicationHealthReportExpiredEvent, bool) {
10123	return nil, false
10124}
10125
10126// AsApplicationUpgradeCompletedEvent is the BasicFabricEvent implementation for ChaosReplicaRemovalScheduledEvent.
10127func (crrse ChaosReplicaRemovalScheduledEvent) AsApplicationUpgradeCompletedEvent() (*ApplicationUpgradeCompletedEvent, bool) {
10128	return nil, false
10129}
10130
10131// AsApplicationUpgradeDomainCompletedEvent is the BasicFabricEvent implementation for ChaosReplicaRemovalScheduledEvent.
10132func (crrse ChaosReplicaRemovalScheduledEvent) AsApplicationUpgradeDomainCompletedEvent() (*ApplicationUpgradeDomainCompletedEvent, bool) {
10133	return nil, false
10134}
10135
10136// AsApplicationUpgradeRollbackCompletedEvent is the BasicFabricEvent implementation for ChaosReplicaRemovalScheduledEvent.
10137func (crrse ChaosReplicaRemovalScheduledEvent) AsApplicationUpgradeRollbackCompletedEvent() (*ApplicationUpgradeRollbackCompletedEvent, bool) {
10138	return nil, false
10139}
10140
10141// AsApplicationUpgradeRollbackStartedEvent is the BasicFabricEvent implementation for ChaosReplicaRemovalScheduledEvent.
10142func (crrse ChaosReplicaRemovalScheduledEvent) AsApplicationUpgradeRollbackStartedEvent() (*ApplicationUpgradeRollbackStartedEvent, bool) {
10143	return nil, false
10144}
10145
10146// AsApplicationUpgradeStartedEvent is the BasicFabricEvent implementation for ChaosReplicaRemovalScheduledEvent.
10147func (crrse ChaosReplicaRemovalScheduledEvent) AsApplicationUpgradeStartedEvent() (*ApplicationUpgradeStartedEvent, bool) {
10148	return nil, false
10149}
10150
10151// AsDeployedApplicationNewHealthReportEvent is the BasicFabricEvent implementation for ChaosReplicaRemovalScheduledEvent.
10152func (crrse ChaosReplicaRemovalScheduledEvent) AsDeployedApplicationNewHealthReportEvent() (*DeployedApplicationNewHealthReportEvent, bool) {
10153	return nil, false
10154}
10155
10156// AsDeployedApplicationHealthReportExpiredEvent is the BasicFabricEvent implementation for ChaosReplicaRemovalScheduledEvent.
10157func (crrse ChaosReplicaRemovalScheduledEvent) AsDeployedApplicationHealthReportExpiredEvent() (*DeployedApplicationHealthReportExpiredEvent, bool) {
10158	return nil, false
10159}
10160
10161// AsApplicationProcessExitedEvent is the BasicFabricEvent implementation for ChaosReplicaRemovalScheduledEvent.
10162func (crrse ChaosReplicaRemovalScheduledEvent) AsApplicationProcessExitedEvent() (*ApplicationProcessExitedEvent, bool) {
10163	return nil, false
10164}
10165
10166// AsApplicationContainerInstanceExitedEvent is the BasicFabricEvent implementation for ChaosReplicaRemovalScheduledEvent.
10167func (crrse ChaosReplicaRemovalScheduledEvent) AsApplicationContainerInstanceExitedEvent() (*ApplicationContainerInstanceExitedEvent, bool) {
10168	return nil, false
10169}
10170
10171// AsNodeAbortedEvent is the BasicFabricEvent implementation for ChaosReplicaRemovalScheduledEvent.
10172func (crrse ChaosReplicaRemovalScheduledEvent) AsNodeAbortedEvent() (*NodeAbortedEvent, bool) {
10173	return nil, false
10174}
10175
10176// AsNodeAddedToClusterEvent is the BasicFabricEvent implementation for ChaosReplicaRemovalScheduledEvent.
10177func (crrse ChaosReplicaRemovalScheduledEvent) AsNodeAddedToClusterEvent() (*NodeAddedToClusterEvent, bool) {
10178	return nil, false
10179}
10180
10181// AsNodeClosedEvent is the BasicFabricEvent implementation for ChaosReplicaRemovalScheduledEvent.
10182func (crrse ChaosReplicaRemovalScheduledEvent) AsNodeClosedEvent() (*NodeClosedEvent, bool) {
10183	return nil, false
10184}
10185
10186// AsNodeDeactivateCompletedEvent is the BasicFabricEvent implementation for ChaosReplicaRemovalScheduledEvent.
10187func (crrse ChaosReplicaRemovalScheduledEvent) AsNodeDeactivateCompletedEvent() (*NodeDeactivateCompletedEvent, bool) {
10188	return nil, false
10189}
10190
10191// AsNodeDeactivateStartedEvent is the BasicFabricEvent implementation for ChaosReplicaRemovalScheduledEvent.
10192func (crrse ChaosReplicaRemovalScheduledEvent) AsNodeDeactivateStartedEvent() (*NodeDeactivateStartedEvent, bool) {
10193	return nil, false
10194}
10195
10196// AsNodeDownEvent is the BasicFabricEvent implementation for ChaosReplicaRemovalScheduledEvent.
10197func (crrse ChaosReplicaRemovalScheduledEvent) AsNodeDownEvent() (*NodeDownEvent, bool) {
10198	return nil, false
10199}
10200
10201// AsNodeNewHealthReportEvent is the BasicFabricEvent implementation for ChaosReplicaRemovalScheduledEvent.
10202func (crrse ChaosReplicaRemovalScheduledEvent) AsNodeNewHealthReportEvent() (*NodeNewHealthReportEvent, bool) {
10203	return nil, false
10204}
10205
10206// AsNodeHealthReportExpiredEvent is the BasicFabricEvent implementation for ChaosReplicaRemovalScheduledEvent.
10207func (crrse ChaosReplicaRemovalScheduledEvent) AsNodeHealthReportExpiredEvent() (*NodeHealthReportExpiredEvent, bool) {
10208	return nil, false
10209}
10210
10211// AsNodeOpenSucceededEvent is the BasicFabricEvent implementation for ChaosReplicaRemovalScheduledEvent.
10212func (crrse ChaosReplicaRemovalScheduledEvent) AsNodeOpenSucceededEvent() (*NodeOpenSucceededEvent, bool) {
10213	return nil, false
10214}
10215
10216// AsNodeOpenFailedEvent is the BasicFabricEvent implementation for ChaosReplicaRemovalScheduledEvent.
10217func (crrse ChaosReplicaRemovalScheduledEvent) AsNodeOpenFailedEvent() (*NodeOpenFailedEvent, bool) {
10218	return nil, false
10219}
10220
10221// AsNodeRemovedFromClusterEvent is the BasicFabricEvent implementation for ChaosReplicaRemovalScheduledEvent.
10222func (crrse ChaosReplicaRemovalScheduledEvent) AsNodeRemovedFromClusterEvent() (*NodeRemovedFromClusterEvent, bool) {
10223	return nil, false
10224}
10225
10226// AsNodeUpEvent is the BasicFabricEvent implementation for ChaosReplicaRemovalScheduledEvent.
10227func (crrse ChaosReplicaRemovalScheduledEvent) AsNodeUpEvent() (*NodeUpEvent, bool) {
10228	return nil, false
10229}
10230
10231// AsPartitionNewHealthReportEvent is the BasicFabricEvent implementation for ChaosReplicaRemovalScheduledEvent.
10232func (crrse ChaosReplicaRemovalScheduledEvent) AsPartitionNewHealthReportEvent() (*PartitionNewHealthReportEvent, bool) {
10233	return nil, false
10234}
10235
10236// AsPartitionHealthReportExpiredEvent is the BasicFabricEvent implementation for ChaosReplicaRemovalScheduledEvent.
10237func (crrse ChaosReplicaRemovalScheduledEvent) AsPartitionHealthReportExpiredEvent() (*PartitionHealthReportExpiredEvent, bool) {
10238	return nil, false
10239}
10240
10241// AsPartitionReconfiguredEvent is the BasicFabricEvent implementation for ChaosReplicaRemovalScheduledEvent.
10242func (crrse ChaosReplicaRemovalScheduledEvent) AsPartitionReconfiguredEvent() (*PartitionReconfiguredEvent, bool) {
10243	return nil, false
10244}
10245
10246// AsPartitionPrimaryMoveAnalysisEvent is the BasicFabricEvent implementation for ChaosReplicaRemovalScheduledEvent.
10247func (crrse ChaosReplicaRemovalScheduledEvent) AsPartitionPrimaryMoveAnalysisEvent() (*PartitionPrimaryMoveAnalysisEvent, bool) {
10248	return nil, false
10249}
10250
10251// AsServiceCreatedEvent is the BasicFabricEvent implementation for ChaosReplicaRemovalScheduledEvent.
10252func (crrse ChaosReplicaRemovalScheduledEvent) AsServiceCreatedEvent() (*ServiceCreatedEvent, bool) {
10253	return nil, false
10254}
10255
10256// AsServiceDeletedEvent is the BasicFabricEvent implementation for ChaosReplicaRemovalScheduledEvent.
10257func (crrse ChaosReplicaRemovalScheduledEvent) AsServiceDeletedEvent() (*ServiceDeletedEvent, bool) {
10258	return nil, false
10259}
10260
10261// AsServiceNewHealthReportEvent is the BasicFabricEvent implementation for ChaosReplicaRemovalScheduledEvent.
10262func (crrse ChaosReplicaRemovalScheduledEvent) AsServiceNewHealthReportEvent() (*ServiceNewHealthReportEvent, bool) {
10263	return nil, false
10264}
10265
10266// AsServiceHealthReportExpiredEvent is the BasicFabricEvent implementation for ChaosReplicaRemovalScheduledEvent.
10267func (crrse ChaosReplicaRemovalScheduledEvent) AsServiceHealthReportExpiredEvent() (*ServiceHealthReportExpiredEvent, bool) {
10268	return nil, false
10269}
10270
10271// AsDeployedServicePackageNewHealthReportEvent is the BasicFabricEvent implementation for ChaosReplicaRemovalScheduledEvent.
10272func (crrse ChaosReplicaRemovalScheduledEvent) AsDeployedServicePackageNewHealthReportEvent() (*DeployedServicePackageNewHealthReportEvent, bool) {
10273	return nil, false
10274}
10275
10276// AsDeployedServicePackageHealthReportExpiredEvent is the BasicFabricEvent implementation for ChaosReplicaRemovalScheduledEvent.
10277func (crrse ChaosReplicaRemovalScheduledEvent) AsDeployedServicePackageHealthReportExpiredEvent() (*DeployedServicePackageHealthReportExpiredEvent, bool) {
10278	return nil, false
10279}
10280
10281// AsStatefulReplicaNewHealthReportEvent is the BasicFabricEvent implementation for ChaosReplicaRemovalScheduledEvent.
10282func (crrse ChaosReplicaRemovalScheduledEvent) AsStatefulReplicaNewHealthReportEvent() (*StatefulReplicaNewHealthReportEvent, bool) {
10283	return nil, false
10284}
10285
10286// AsStatefulReplicaHealthReportExpiredEvent is the BasicFabricEvent implementation for ChaosReplicaRemovalScheduledEvent.
10287func (crrse ChaosReplicaRemovalScheduledEvent) AsStatefulReplicaHealthReportExpiredEvent() (*StatefulReplicaHealthReportExpiredEvent, bool) {
10288	return nil, false
10289}
10290
10291// AsStatelessReplicaNewHealthReportEvent is the BasicFabricEvent implementation for ChaosReplicaRemovalScheduledEvent.
10292func (crrse ChaosReplicaRemovalScheduledEvent) AsStatelessReplicaNewHealthReportEvent() (*StatelessReplicaNewHealthReportEvent, bool) {
10293	return nil, false
10294}
10295
10296// AsStatelessReplicaHealthReportExpiredEvent is the BasicFabricEvent implementation for ChaosReplicaRemovalScheduledEvent.
10297func (crrse ChaosReplicaRemovalScheduledEvent) AsStatelessReplicaHealthReportExpiredEvent() (*StatelessReplicaHealthReportExpiredEvent, bool) {
10298	return nil, false
10299}
10300
10301// AsClusterNewHealthReportEvent is the BasicFabricEvent implementation for ChaosReplicaRemovalScheduledEvent.
10302func (crrse ChaosReplicaRemovalScheduledEvent) AsClusterNewHealthReportEvent() (*ClusterNewHealthReportEvent, bool) {
10303	return nil, false
10304}
10305
10306// AsClusterHealthReportExpiredEvent is the BasicFabricEvent implementation for ChaosReplicaRemovalScheduledEvent.
10307func (crrse ChaosReplicaRemovalScheduledEvent) AsClusterHealthReportExpiredEvent() (*ClusterHealthReportExpiredEvent, bool) {
10308	return nil, false
10309}
10310
10311// AsClusterUpgradeCompletedEvent is the BasicFabricEvent implementation for ChaosReplicaRemovalScheduledEvent.
10312func (crrse ChaosReplicaRemovalScheduledEvent) AsClusterUpgradeCompletedEvent() (*ClusterUpgradeCompletedEvent, bool) {
10313	return nil, false
10314}
10315
10316// AsClusterUpgradeDomainCompletedEvent is the BasicFabricEvent implementation for ChaosReplicaRemovalScheduledEvent.
10317func (crrse ChaosReplicaRemovalScheduledEvent) AsClusterUpgradeDomainCompletedEvent() (*ClusterUpgradeDomainCompletedEvent, bool) {
10318	return nil, false
10319}
10320
10321// AsClusterUpgradeRollbackCompletedEvent is the BasicFabricEvent implementation for ChaosReplicaRemovalScheduledEvent.
10322func (crrse ChaosReplicaRemovalScheduledEvent) AsClusterUpgradeRollbackCompletedEvent() (*ClusterUpgradeRollbackCompletedEvent, bool) {
10323	return nil, false
10324}
10325
10326// AsClusterUpgradeRollbackStartedEvent is the BasicFabricEvent implementation for ChaosReplicaRemovalScheduledEvent.
10327func (crrse ChaosReplicaRemovalScheduledEvent) AsClusterUpgradeRollbackStartedEvent() (*ClusterUpgradeRollbackStartedEvent, bool) {
10328	return nil, false
10329}
10330
10331// AsClusterUpgradeStartedEvent is the BasicFabricEvent implementation for ChaosReplicaRemovalScheduledEvent.
10332func (crrse ChaosReplicaRemovalScheduledEvent) AsClusterUpgradeStartedEvent() (*ClusterUpgradeStartedEvent, bool) {
10333	return nil, false
10334}
10335
10336// AsChaosStoppedEvent is the BasicFabricEvent implementation for ChaosReplicaRemovalScheduledEvent.
10337func (crrse ChaosReplicaRemovalScheduledEvent) AsChaosStoppedEvent() (*ChaosStoppedEvent, bool) {
10338	return nil, false
10339}
10340
10341// AsChaosStartedEvent is the BasicFabricEvent implementation for ChaosReplicaRemovalScheduledEvent.
10342func (crrse ChaosReplicaRemovalScheduledEvent) AsChaosStartedEvent() (*ChaosStartedEvent, bool) {
10343	return nil, false
10344}
10345
10346// AsChaosCodePackageRestartScheduledEvent is the BasicFabricEvent implementation for ChaosReplicaRemovalScheduledEvent.
10347func (crrse ChaosReplicaRemovalScheduledEvent) AsChaosCodePackageRestartScheduledEvent() (*ChaosCodePackageRestartScheduledEvent, bool) {
10348	return nil, false
10349}
10350
10351// AsChaosReplicaRemovalScheduledEvent is the BasicFabricEvent implementation for ChaosReplicaRemovalScheduledEvent.
10352func (crrse ChaosReplicaRemovalScheduledEvent) AsChaosReplicaRemovalScheduledEvent() (*ChaosReplicaRemovalScheduledEvent, bool) {
10353	return &crrse, true
10354}
10355
10356// AsChaosPartitionSecondaryMoveScheduledEvent is the BasicFabricEvent implementation for ChaosReplicaRemovalScheduledEvent.
10357func (crrse ChaosReplicaRemovalScheduledEvent) AsChaosPartitionSecondaryMoveScheduledEvent() (*ChaosPartitionSecondaryMoveScheduledEvent, bool) {
10358	return nil, false
10359}
10360
10361// AsChaosPartitionPrimaryMoveScheduledEvent is the BasicFabricEvent implementation for ChaosReplicaRemovalScheduledEvent.
10362func (crrse ChaosReplicaRemovalScheduledEvent) AsChaosPartitionPrimaryMoveScheduledEvent() (*ChaosPartitionPrimaryMoveScheduledEvent, bool) {
10363	return nil, false
10364}
10365
10366// AsChaosReplicaRestartScheduledEvent is the BasicFabricEvent implementation for ChaosReplicaRemovalScheduledEvent.
10367func (crrse ChaosReplicaRemovalScheduledEvent) AsChaosReplicaRestartScheduledEvent() (*ChaosReplicaRestartScheduledEvent, bool) {
10368	return nil, false
10369}
10370
10371// AsChaosNodeRestartScheduledEvent is the BasicFabricEvent implementation for ChaosReplicaRemovalScheduledEvent.
10372func (crrse ChaosReplicaRemovalScheduledEvent) AsChaosNodeRestartScheduledEvent() (*ChaosNodeRestartScheduledEvent, bool) {
10373	return nil, false
10374}
10375
10376// AsFabricEvent is the BasicFabricEvent implementation for ChaosReplicaRemovalScheduledEvent.
10377func (crrse ChaosReplicaRemovalScheduledEvent) AsFabricEvent() (*FabricEvent, bool) {
10378	return nil, false
10379}
10380
10381// AsBasicFabricEvent is the BasicFabricEvent implementation for ChaosReplicaRemovalScheduledEvent.
10382func (crrse ChaosReplicaRemovalScheduledEvent) AsBasicFabricEvent() (BasicFabricEvent, bool) {
10383	return &crrse, true
10384}
10385
10386// ChaosReplicaRestartScheduledEvent chaos Restart Replica Fault Scheduled event.
10387type ChaosReplicaRestartScheduledEvent struct {
10388	// FaultGroupID - Id of fault group.
10389	FaultGroupID *uuid.UUID `json:"FaultGroupId,omitempty"`
10390	// FaultID - Id of fault.
10391	FaultID *uuid.UUID `json:"FaultId,omitempty"`
10392	// ServiceURI - Service name.
10393	ServiceURI *string `json:"ServiceUri,omitempty"`
10394	// 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.
10395	PartitionID *uuid.UUID `json:"PartitionId,omitempty"`
10396	// 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.
10397	ReplicaID *int64 `json:"ReplicaId,omitempty"`
10398	// EventInstanceID - The identifier for the FabricEvent instance.
10399	EventInstanceID *uuid.UUID `json:"EventInstanceId,omitempty"`
10400	// Category - The category of event.
10401	Category *string `json:"Category,omitempty"`
10402	// TimeStamp - The time event was logged.
10403	TimeStamp *date.Time `json:"TimeStamp,omitempty"`
10404	// HasCorrelatedEvents - Shows there is existing related events available.
10405	HasCorrelatedEvents *bool `json:"HasCorrelatedEvents,omitempty"`
10406	// 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'
10407	Kind KindBasicFabricEvent `json:"Kind,omitempty"`
10408}
10409
10410// MarshalJSON is the custom marshaler for ChaosReplicaRestartScheduledEvent.
10411func (crrse ChaosReplicaRestartScheduledEvent) MarshalJSON() ([]byte, error) {
10412	crrse.Kind = KindChaosReplicaRestartScheduled
10413	objectMap := make(map[string]interface{})
10414	if crrse.FaultGroupID != nil {
10415		objectMap["FaultGroupId"] = crrse.FaultGroupID
10416	}
10417	if crrse.FaultID != nil {
10418		objectMap["FaultId"] = crrse.FaultID
10419	}
10420	if crrse.ServiceURI != nil {
10421		objectMap["ServiceUri"] = crrse.ServiceURI
10422	}
10423	if crrse.PartitionID != nil {
10424		objectMap["PartitionId"] = crrse.PartitionID
10425	}
10426	if crrse.ReplicaID != nil {
10427		objectMap["ReplicaId"] = crrse.ReplicaID
10428	}
10429	if crrse.EventInstanceID != nil {
10430		objectMap["EventInstanceId"] = crrse.EventInstanceID
10431	}
10432	if crrse.Category != nil {
10433		objectMap["Category"] = crrse.Category
10434	}
10435	if crrse.TimeStamp != nil {
10436		objectMap["TimeStamp"] = crrse.TimeStamp
10437	}
10438	if crrse.HasCorrelatedEvents != nil {
10439		objectMap["HasCorrelatedEvents"] = crrse.HasCorrelatedEvents
10440	}
10441	if crrse.Kind != "" {
10442		objectMap["Kind"] = crrse.Kind
10443	}
10444	return json.Marshal(objectMap)
10445}
10446
10447// AsApplicationEvent is the BasicFabricEvent implementation for ChaosReplicaRestartScheduledEvent.
10448func (crrse ChaosReplicaRestartScheduledEvent) AsApplicationEvent() (*ApplicationEvent, bool) {
10449	return nil, false
10450}
10451
10452// AsBasicApplicationEvent is the BasicFabricEvent implementation for ChaosReplicaRestartScheduledEvent.
10453func (crrse ChaosReplicaRestartScheduledEvent) AsBasicApplicationEvent() (BasicApplicationEvent, bool) {
10454	return nil, false
10455}
10456
10457// AsClusterEvent is the BasicFabricEvent implementation for ChaosReplicaRestartScheduledEvent.
10458func (crrse ChaosReplicaRestartScheduledEvent) AsClusterEvent() (*ClusterEvent, bool) {
10459	return nil, false
10460}
10461
10462// AsBasicClusterEvent is the BasicFabricEvent implementation for ChaosReplicaRestartScheduledEvent.
10463func (crrse ChaosReplicaRestartScheduledEvent) AsBasicClusterEvent() (BasicClusterEvent, bool) {
10464	return nil, false
10465}
10466
10467// AsContainerInstanceEvent is the BasicFabricEvent implementation for ChaosReplicaRestartScheduledEvent.
10468func (crrse ChaosReplicaRestartScheduledEvent) AsContainerInstanceEvent() (*ContainerInstanceEvent, bool) {
10469	return nil, false
10470}
10471
10472// AsNodeEvent is the BasicFabricEvent implementation for ChaosReplicaRestartScheduledEvent.
10473func (crrse ChaosReplicaRestartScheduledEvent) AsNodeEvent() (*NodeEvent, bool) {
10474	return nil, false
10475}
10476
10477// AsBasicNodeEvent is the BasicFabricEvent implementation for ChaosReplicaRestartScheduledEvent.
10478func (crrse ChaosReplicaRestartScheduledEvent) AsBasicNodeEvent() (BasicNodeEvent, bool) {
10479	return nil, false
10480}
10481
10482// AsPartitionAnalysisEvent is the BasicFabricEvent implementation for ChaosReplicaRestartScheduledEvent.
10483func (crrse ChaosReplicaRestartScheduledEvent) AsPartitionAnalysisEvent() (*PartitionAnalysisEvent, bool) {
10484	return nil, false
10485}
10486
10487// AsBasicPartitionAnalysisEvent is the BasicFabricEvent implementation for ChaosReplicaRestartScheduledEvent.
10488func (crrse ChaosReplicaRestartScheduledEvent) AsBasicPartitionAnalysisEvent() (BasicPartitionAnalysisEvent, bool) {
10489	return nil, false
10490}
10491
10492// AsPartitionEvent is the BasicFabricEvent implementation for ChaosReplicaRestartScheduledEvent.
10493func (crrse ChaosReplicaRestartScheduledEvent) AsPartitionEvent() (*PartitionEvent, bool) {
10494	return nil, false
10495}
10496
10497// AsBasicPartitionEvent is the BasicFabricEvent implementation for ChaosReplicaRestartScheduledEvent.
10498func (crrse ChaosReplicaRestartScheduledEvent) AsBasicPartitionEvent() (BasicPartitionEvent, bool) {
10499	return nil, false
10500}
10501
10502// AsReplicaEvent is the BasicFabricEvent implementation for ChaosReplicaRestartScheduledEvent.
10503func (crrse ChaosReplicaRestartScheduledEvent) AsReplicaEvent() (*ReplicaEvent, bool) {
10504	return nil, false
10505}
10506
10507// AsBasicReplicaEvent is the BasicFabricEvent implementation for ChaosReplicaRestartScheduledEvent.
10508func (crrse ChaosReplicaRestartScheduledEvent) AsBasicReplicaEvent() (BasicReplicaEvent, bool) {
10509	return &crrse, true
10510}
10511
10512// AsServiceEvent is the BasicFabricEvent implementation for ChaosReplicaRestartScheduledEvent.
10513func (crrse ChaosReplicaRestartScheduledEvent) AsServiceEvent() (*ServiceEvent, bool) {
10514	return nil, false
10515}
10516
10517// AsBasicServiceEvent is the BasicFabricEvent implementation for ChaosReplicaRestartScheduledEvent.
10518func (crrse ChaosReplicaRestartScheduledEvent) AsBasicServiceEvent() (BasicServiceEvent, bool) {
10519	return nil, false
10520}
10521
10522// AsApplicationCreatedEvent is the BasicFabricEvent implementation for ChaosReplicaRestartScheduledEvent.
10523func (crrse ChaosReplicaRestartScheduledEvent) AsApplicationCreatedEvent() (*ApplicationCreatedEvent, bool) {
10524	return nil, false
10525}
10526
10527// AsApplicationDeletedEvent is the BasicFabricEvent implementation for ChaosReplicaRestartScheduledEvent.
10528func (crrse ChaosReplicaRestartScheduledEvent) AsApplicationDeletedEvent() (*ApplicationDeletedEvent, bool) {
10529	return nil, false
10530}
10531
10532// AsApplicationNewHealthReportEvent is the BasicFabricEvent implementation for ChaosReplicaRestartScheduledEvent.
10533func (crrse ChaosReplicaRestartScheduledEvent) AsApplicationNewHealthReportEvent() (*ApplicationNewHealthReportEvent, bool) {
10534	return nil, false
10535}
10536
10537// AsApplicationHealthReportExpiredEvent is the BasicFabricEvent implementation for ChaosReplicaRestartScheduledEvent.
10538func (crrse ChaosReplicaRestartScheduledEvent) AsApplicationHealthReportExpiredEvent() (*ApplicationHealthReportExpiredEvent, bool) {
10539	return nil, false
10540}
10541
10542// AsApplicationUpgradeCompletedEvent is the BasicFabricEvent implementation for ChaosReplicaRestartScheduledEvent.
10543func (crrse ChaosReplicaRestartScheduledEvent) AsApplicationUpgradeCompletedEvent() (*ApplicationUpgradeCompletedEvent, bool) {
10544	return nil, false
10545}
10546
10547// AsApplicationUpgradeDomainCompletedEvent is the BasicFabricEvent implementation for ChaosReplicaRestartScheduledEvent.
10548func (crrse ChaosReplicaRestartScheduledEvent) AsApplicationUpgradeDomainCompletedEvent() (*ApplicationUpgradeDomainCompletedEvent, bool) {
10549	return nil, false
10550}
10551
10552// AsApplicationUpgradeRollbackCompletedEvent is the BasicFabricEvent implementation for ChaosReplicaRestartScheduledEvent.
10553func (crrse ChaosReplicaRestartScheduledEvent) AsApplicationUpgradeRollbackCompletedEvent() (*ApplicationUpgradeRollbackCompletedEvent, bool) {
10554	return nil, false
10555}
10556
10557// AsApplicationUpgradeRollbackStartedEvent is the BasicFabricEvent implementation for ChaosReplicaRestartScheduledEvent.
10558func (crrse ChaosReplicaRestartScheduledEvent) AsApplicationUpgradeRollbackStartedEvent() (*ApplicationUpgradeRollbackStartedEvent, bool) {
10559	return nil, false
10560}
10561
10562// AsApplicationUpgradeStartedEvent is the BasicFabricEvent implementation for ChaosReplicaRestartScheduledEvent.
10563func (crrse ChaosReplicaRestartScheduledEvent) AsApplicationUpgradeStartedEvent() (*ApplicationUpgradeStartedEvent, bool) {
10564	return nil, false
10565}
10566
10567// AsDeployedApplicationNewHealthReportEvent is the BasicFabricEvent implementation for ChaosReplicaRestartScheduledEvent.
10568func (crrse ChaosReplicaRestartScheduledEvent) AsDeployedApplicationNewHealthReportEvent() (*DeployedApplicationNewHealthReportEvent, bool) {
10569	return nil, false
10570}
10571
10572// AsDeployedApplicationHealthReportExpiredEvent is the BasicFabricEvent implementation for ChaosReplicaRestartScheduledEvent.
10573func (crrse ChaosReplicaRestartScheduledEvent) AsDeployedApplicationHealthReportExpiredEvent() (*DeployedApplicationHealthReportExpiredEvent, bool) {
10574	return nil, false
10575}
10576
10577// AsApplicationProcessExitedEvent is the BasicFabricEvent implementation for ChaosReplicaRestartScheduledEvent.
10578func (crrse ChaosReplicaRestartScheduledEvent) AsApplicationProcessExitedEvent() (*ApplicationProcessExitedEvent, bool) {
10579	return nil, false
10580}
10581
10582// AsApplicationContainerInstanceExitedEvent is the BasicFabricEvent implementation for ChaosReplicaRestartScheduledEvent.
10583func (crrse ChaosReplicaRestartScheduledEvent) AsApplicationContainerInstanceExitedEvent() (*ApplicationContainerInstanceExitedEvent, bool) {
10584	return nil, false
10585}
10586
10587// AsNodeAbortedEvent is the BasicFabricEvent implementation for ChaosReplicaRestartScheduledEvent.
10588func (crrse ChaosReplicaRestartScheduledEvent) AsNodeAbortedEvent() (*NodeAbortedEvent, bool) {
10589	return nil, false
10590}
10591
10592// AsNodeAddedToClusterEvent is the BasicFabricEvent implementation for ChaosReplicaRestartScheduledEvent.
10593func (crrse ChaosReplicaRestartScheduledEvent) AsNodeAddedToClusterEvent() (*NodeAddedToClusterEvent, bool) {
10594	return nil, false
10595}
10596
10597// AsNodeClosedEvent is the BasicFabricEvent implementation for ChaosReplicaRestartScheduledEvent.
10598func (crrse ChaosReplicaRestartScheduledEvent) AsNodeClosedEvent() (*NodeClosedEvent, bool) {
10599	return nil, false
10600}
10601
10602// AsNodeDeactivateCompletedEvent is the BasicFabricEvent implementation for ChaosReplicaRestartScheduledEvent.
10603func (crrse ChaosReplicaRestartScheduledEvent) AsNodeDeactivateCompletedEvent() (*NodeDeactivateCompletedEvent, bool) {
10604	return nil, false
10605}
10606
10607// AsNodeDeactivateStartedEvent is the BasicFabricEvent implementation for ChaosReplicaRestartScheduledEvent.
10608func (crrse ChaosReplicaRestartScheduledEvent) AsNodeDeactivateStartedEvent() (*NodeDeactivateStartedEvent, bool) {
10609	return nil, false
10610}
10611
10612// AsNodeDownEvent is the BasicFabricEvent implementation for ChaosReplicaRestartScheduledEvent.
10613func (crrse ChaosReplicaRestartScheduledEvent) AsNodeDownEvent() (*NodeDownEvent, bool) {
10614	return nil, false
10615}
10616
10617// AsNodeNewHealthReportEvent is the BasicFabricEvent implementation for ChaosReplicaRestartScheduledEvent.
10618func (crrse ChaosReplicaRestartScheduledEvent) AsNodeNewHealthReportEvent() (*NodeNewHealthReportEvent, bool) {
10619	return nil, false
10620}
10621
10622// AsNodeHealthReportExpiredEvent is the BasicFabricEvent implementation for ChaosReplicaRestartScheduledEvent.
10623func (crrse ChaosReplicaRestartScheduledEvent) AsNodeHealthReportExpiredEvent() (*NodeHealthReportExpiredEvent, bool) {
10624	return nil, false
10625}
10626
10627// AsNodeOpenSucceededEvent is the BasicFabricEvent implementation for ChaosReplicaRestartScheduledEvent.
10628func (crrse ChaosReplicaRestartScheduledEvent) AsNodeOpenSucceededEvent() (*NodeOpenSucceededEvent, bool) {
10629	return nil, false
10630}
10631
10632// AsNodeOpenFailedEvent is the BasicFabricEvent implementation for ChaosReplicaRestartScheduledEvent.
10633func (crrse ChaosReplicaRestartScheduledEvent) AsNodeOpenFailedEvent() (*NodeOpenFailedEvent, bool) {
10634	return nil, false
10635}
10636
10637// AsNodeRemovedFromClusterEvent is the BasicFabricEvent implementation for ChaosReplicaRestartScheduledEvent.
10638func (crrse ChaosReplicaRestartScheduledEvent) AsNodeRemovedFromClusterEvent() (*NodeRemovedFromClusterEvent, bool) {
10639	return nil, false
10640}
10641
10642// AsNodeUpEvent is the BasicFabricEvent implementation for ChaosReplicaRestartScheduledEvent.
10643func (crrse ChaosReplicaRestartScheduledEvent) AsNodeUpEvent() (*NodeUpEvent, bool) {
10644	return nil, false
10645}
10646
10647// AsPartitionNewHealthReportEvent is the BasicFabricEvent implementation for ChaosReplicaRestartScheduledEvent.
10648func (crrse ChaosReplicaRestartScheduledEvent) AsPartitionNewHealthReportEvent() (*PartitionNewHealthReportEvent, bool) {
10649	return nil, false
10650}
10651
10652// AsPartitionHealthReportExpiredEvent is the BasicFabricEvent implementation for ChaosReplicaRestartScheduledEvent.
10653func (crrse ChaosReplicaRestartScheduledEvent) AsPartitionHealthReportExpiredEvent() (*PartitionHealthReportExpiredEvent, bool) {
10654	return nil, false
10655}
10656
10657// AsPartitionReconfiguredEvent is the BasicFabricEvent implementation for ChaosReplicaRestartScheduledEvent.
10658func (crrse ChaosReplicaRestartScheduledEvent) AsPartitionReconfiguredEvent() (*PartitionReconfiguredEvent, bool) {
10659	return nil, false
10660}
10661
10662// AsPartitionPrimaryMoveAnalysisEvent is the BasicFabricEvent implementation for ChaosReplicaRestartScheduledEvent.
10663func (crrse ChaosReplicaRestartScheduledEvent) AsPartitionPrimaryMoveAnalysisEvent() (*PartitionPrimaryMoveAnalysisEvent, bool) {
10664	return nil, false
10665}
10666
10667// AsServiceCreatedEvent is the BasicFabricEvent implementation for ChaosReplicaRestartScheduledEvent.
10668func (crrse ChaosReplicaRestartScheduledEvent) AsServiceCreatedEvent() (*ServiceCreatedEvent, bool) {
10669	return nil, false
10670}
10671
10672// AsServiceDeletedEvent is the BasicFabricEvent implementation for ChaosReplicaRestartScheduledEvent.
10673func (crrse ChaosReplicaRestartScheduledEvent) AsServiceDeletedEvent() (*ServiceDeletedEvent, bool) {
10674	return nil, false
10675}
10676
10677// AsServiceNewHealthReportEvent is the BasicFabricEvent implementation for ChaosReplicaRestartScheduledEvent.
10678func (crrse ChaosReplicaRestartScheduledEvent) AsServiceNewHealthReportEvent() (*ServiceNewHealthReportEvent, bool) {
10679	return nil, false
10680}
10681
10682// AsServiceHealthReportExpiredEvent is the BasicFabricEvent implementation for ChaosReplicaRestartScheduledEvent.
10683func (crrse ChaosReplicaRestartScheduledEvent) AsServiceHealthReportExpiredEvent() (*ServiceHealthReportExpiredEvent, bool) {
10684	return nil, false
10685}
10686
10687// AsDeployedServicePackageNewHealthReportEvent is the BasicFabricEvent implementation for ChaosReplicaRestartScheduledEvent.
10688func (crrse ChaosReplicaRestartScheduledEvent) AsDeployedServicePackageNewHealthReportEvent() (*DeployedServicePackageNewHealthReportEvent, bool) {
10689	return nil, false
10690}
10691
10692// AsDeployedServicePackageHealthReportExpiredEvent is the BasicFabricEvent implementation for ChaosReplicaRestartScheduledEvent.
10693func (crrse ChaosReplicaRestartScheduledEvent) AsDeployedServicePackageHealthReportExpiredEvent() (*DeployedServicePackageHealthReportExpiredEvent, bool) {
10694	return nil, false
10695}
10696
10697// AsStatefulReplicaNewHealthReportEvent is the BasicFabricEvent implementation for ChaosReplicaRestartScheduledEvent.
10698func (crrse ChaosReplicaRestartScheduledEvent) AsStatefulReplicaNewHealthReportEvent() (*StatefulReplicaNewHealthReportEvent, bool) {
10699	return nil, false
10700}
10701
10702// AsStatefulReplicaHealthReportExpiredEvent is the BasicFabricEvent implementation for ChaosReplicaRestartScheduledEvent.
10703func (crrse ChaosReplicaRestartScheduledEvent) AsStatefulReplicaHealthReportExpiredEvent() (*StatefulReplicaHealthReportExpiredEvent, bool) {
10704	return nil, false
10705}
10706
10707// AsStatelessReplicaNewHealthReportEvent is the BasicFabricEvent implementation for ChaosReplicaRestartScheduledEvent.
10708func (crrse ChaosReplicaRestartScheduledEvent) AsStatelessReplicaNewHealthReportEvent() (*StatelessReplicaNewHealthReportEvent, bool) {
10709	return nil, false
10710}
10711
10712// AsStatelessReplicaHealthReportExpiredEvent is the BasicFabricEvent implementation for ChaosReplicaRestartScheduledEvent.
10713func (crrse ChaosReplicaRestartScheduledEvent) AsStatelessReplicaHealthReportExpiredEvent() (*StatelessReplicaHealthReportExpiredEvent, bool) {
10714	return nil, false
10715}
10716
10717// AsClusterNewHealthReportEvent is the BasicFabricEvent implementation for ChaosReplicaRestartScheduledEvent.
10718func (crrse ChaosReplicaRestartScheduledEvent) AsClusterNewHealthReportEvent() (*ClusterNewHealthReportEvent, bool) {
10719	return nil, false
10720}
10721
10722// AsClusterHealthReportExpiredEvent is the BasicFabricEvent implementation for ChaosReplicaRestartScheduledEvent.
10723func (crrse ChaosReplicaRestartScheduledEvent) AsClusterHealthReportExpiredEvent() (*ClusterHealthReportExpiredEvent, bool) {
10724	return nil, false
10725}
10726
10727// AsClusterUpgradeCompletedEvent is the BasicFabricEvent implementation for ChaosReplicaRestartScheduledEvent.
10728func (crrse ChaosReplicaRestartScheduledEvent) AsClusterUpgradeCompletedEvent() (*ClusterUpgradeCompletedEvent, bool) {
10729	return nil, false
10730}
10731
10732// AsClusterUpgradeDomainCompletedEvent is the BasicFabricEvent implementation for ChaosReplicaRestartScheduledEvent.
10733func (crrse ChaosReplicaRestartScheduledEvent) AsClusterUpgradeDomainCompletedEvent() (*ClusterUpgradeDomainCompletedEvent, bool) {
10734	return nil, false
10735}
10736
10737// AsClusterUpgradeRollbackCompletedEvent is the BasicFabricEvent implementation for ChaosReplicaRestartScheduledEvent.
10738func (crrse ChaosReplicaRestartScheduledEvent) AsClusterUpgradeRollbackCompletedEvent() (*ClusterUpgradeRollbackCompletedEvent, bool) {
10739	return nil, false
10740}
10741
10742// AsClusterUpgradeRollbackStartedEvent is the BasicFabricEvent implementation for ChaosReplicaRestartScheduledEvent.
10743func (crrse ChaosReplicaRestartScheduledEvent) AsClusterUpgradeRollbackStartedEvent() (*ClusterUpgradeRollbackStartedEvent, bool) {
10744	return nil, false
10745}
10746
10747// AsClusterUpgradeStartedEvent is the BasicFabricEvent implementation for ChaosReplicaRestartScheduledEvent.
10748func (crrse ChaosReplicaRestartScheduledEvent) AsClusterUpgradeStartedEvent() (*ClusterUpgradeStartedEvent, bool) {
10749	return nil, false
10750}
10751
10752// AsChaosStoppedEvent is the BasicFabricEvent implementation for ChaosReplicaRestartScheduledEvent.
10753func (crrse ChaosReplicaRestartScheduledEvent) AsChaosStoppedEvent() (*ChaosStoppedEvent, bool) {
10754	return nil, false
10755}
10756
10757// AsChaosStartedEvent is the BasicFabricEvent implementation for ChaosReplicaRestartScheduledEvent.
10758func (crrse ChaosReplicaRestartScheduledEvent) AsChaosStartedEvent() (*ChaosStartedEvent, bool) {
10759	return nil, false
10760}
10761
10762// AsChaosCodePackageRestartScheduledEvent is the BasicFabricEvent implementation for ChaosReplicaRestartScheduledEvent.
10763func (crrse ChaosReplicaRestartScheduledEvent) AsChaosCodePackageRestartScheduledEvent() (*ChaosCodePackageRestartScheduledEvent, bool) {
10764	return nil, false
10765}
10766
10767// AsChaosReplicaRemovalScheduledEvent is the BasicFabricEvent implementation for ChaosReplicaRestartScheduledEvent.
10768func (crrse ChaosReplicaRestartScheduledEvent) AsChaosReplicaRemovalScheduledEvent() (*ChaosReplicaRemovalScheduledEvent, bool) {
10769	return nil, false
10770}
10771
10772// AsChaosPartitionSecondaryMoveScheduledEvent is the BasicFabricEvent implementation for ChaosReplicaRestartScheduledEvent.
10773func (crrse ChaosReplicaRestartScheduledEvent) AsChaosPartitionSecondaryMoveScheduledEvent() (*ChaosPartitionSecondaryMoveScheduledEvent, bool) {
10774	return nil, false
10775}
10776
10777// AsChaosPartitionPrimaryMoveScheduledEvent is the BasicFabricEvent implementation for ChaosReplicaRestartScheduledEvent.
10778func (crrse ChaosReplicaRestartScheduledEvent) AsChaosPartitionPrimaryMoveScheduledEvent() (*ChaosPartitionPrimaryMoveScheduledEvent, bool) {
10779	return nil, false
10780}
10781
10782// AsChaosReplicaRestartScheduledEvent is the BasicFabricEvent implementation for ChaosReplicaRestartScheduledEvent.
10783func (crrse ChaosReplicaRestartScheduledEvent) AsChaosReplicaRestartScheduledEvent() (*ChaosReplicaRestartScheduledEvent, bool) {
10784	return &crrse, true
10785}
10786
10787// AsChaosNodeRestartScheduledEvent is the BasicFabricEvent implementation for ChaosReplicaRestartScheduledEvent.
10788func (crrse ChaosReplicaRestartScheduledEvent) AsChaosNodeRestartScheduledEvent() (*ChaosNodeRestartScheduledEvent, bool) {
10789	return nil, false
10790}
10791
10792// AsFabricEvent is the BasicFabricEvent implementation for ChaosReplicaRestartScheduledEvent.
10793func (crrse ChaosReplicaRestartScheduledEvent) AsFabricEvent() (*FabricEvent, bool) {
10794	return nil, false
10795}
10796
10797// AsBasicFabricEvent is the BasicFabricEvent implementation for ChaosReplicaRestartScheduledEvent.
10798func (crrse ChaosReplicaRestartScheduledEvent) AsBasicFabricEvent() (BasicFabricEvent, bool) {
10799	return &crrse, true
10800}
10801
10802// ChaosSchedule defines the schedule used by Chaos.
10803type ChaosSchedule struct {
10804	// StartDate - The date and time Chaos will start using this schedule.
10805	StartDate *date.Time `json:"StartDate,omitempty"`
10806	// ExpiryDate - The date and time Chaos will continue to use this schedule until.
10807	ExpiryDate *date.Time `json:"ExpiryDate,omitempty"`
10808	// ChaosParametersDictionary - A mapping of string names to Chaos Parameters to be referenced by Chaos Schedule Jobs.
10809	ChaosParametersDictionary *[]ChaosParametersDictionaryItem `json:"ChaosParametersDictionary,omitempty"`
10810	// Jobs - A list of all Chaos Schedule Jobs that will be automated by the schedule.
10811	Jobs *[]ChaosScheduleJob `json:"Jobs,omitempty"`
10812}
10813
10814// ChaosScheduleDescription defines the Chaos Schedule used by Chaos and the version of the Chaos Schedule.
10815// The version value wraps back to 0 after surpassing 2,147,483,647.
10816type ChaosScheduleDescription struct {
10817	autorest.Response `json:"-"`
10818	// Version - The version number of the Schedule.
10819	Version *int32 `json:"Version,omitempty"`
10820	// Schedule - Defines the schedule used by Chaos.
10821	Schedule *ChaosSchedule `json:"Schedule,omitempty"`
10822}
10823
10824// ChaosScheduleJob defines a repetition rule and parameters of Chaos to be used with the Chaos Schedule.
10825type ChaosScheduleJob struct {
10826	// ChaosParameters - A reference to which Chaos Parameters of the Chaos Schedule to use.
10827	ChaosParameters *string `json:"ChaosParameters,omitempty"`
10828	// Days - Defines the days of the week that a Chaos Schedule Job will run for.
10829	Days *ChaosScheduleJobActiveDaysOfWeek `json:"Days,omitempty"`
10830	// Times - A list of Time Ranges that specify when during active days that this job will run. The times are interpreted as UTC.
10831	Times *[]TimeRange `json:"Times,omitempty"`
10832}
10833
10834// ChaosScheduleJobActiveDaysOfWeek defines the days of the week that a Chaos Schedule Job will run for.
10835type ChaosScheduleJobActiveDaysOfWeek struct {
10836	// Sunday - Indicates if the Chaos Schedule Job will run on Sunday
10837	Sunday *bool `json:"Sunday,omitempty"`
10838	// Monday - Indicates if the Chaos Schedule Job will run on Monday
10839	Monday *bool `json:"Monday,omitempty"`
10840	// Tuesday - Indicates if the Chaos Schedule Job will run on Tuesday
10841	Tuesday *bool `json:"Tuesday,omitempty"`
10842	// Wednesday - Indicates if the Chaos Schedule Job will run on Wednesday
10843	Wednesday *bool `json:"Wednesday,omitempty"`
10844	// Thursday - Indicates if the Chaos Schedule Job will run on Thursday
10845	Thursday *bool `json:"Thursday,omitempty"`
10846	// Friday - Indicates if the Chaos Schedule Job will run on Friday
10847	Friday *bool `json:"Friday,omitempty"`
10848	// Saturday - Indicates if the Chaos Schedule Job will run on Saturday
10849	Saturday *bool `json:"Saturday,omitempty"`
10850}
10851
10852// ChaosStartedEvent chaos Started event.
10853type ChaosStartedEvent struct {
10854	// MaxConcurrentFaults - Maximum number of concurrent faults.
10855	MaxConcurrentFaults *int64 `json:"MaxConcurrentFaults,omitempty"`
10856	// TimeToRunInSeconds - Time to run in seconds.
10857	TimeToRunInSeconds *float64 `json:"TimeToRunInSeconds,omitempty"`
10858	// MaxClusterStabilizationTimeoutInSeconds - Maximum timeout for cluster stabilization in seconds.
10859	MaxClusterStabilizationTimeoutInSeconds *float64 `json:"MaxClusterStabilizationTimeoutInSeconds,omitempty"`
10860	// WaitTimeBetweenIterationsInSeconds - Wait time between iterations in seconds.
10861	WaitTimeBetweenIterationsInSeconds *float64 `json:"WaitTimeBetweenIterationsInSeconds,omitempty"`
10862	// WaitTimeBetweenFaultsInSeconds - Wait time between faults in seconds.
10863	WaitTimeBetweenFaultsInSeconds *float64 `json:"WaitTimeBetweenFaultsInSeconds,omitempty"`
10864	// MoveReplicaFaultEnabled - Indicates MoveReplica fault is enabled.
10865	MoveReplicaFaultEnabled *bool `json:"MoveReplicaFaultEnabled,omitempty"`
10866	// IncludedNodeTypeList - List of included Node types.
10867	IncludedNodeTypeList *string `json:"IncludedNodeTypeList,omitempty"`
10868	// IncludedApplicationList - List of included Applications.
10869	IncludedApplicationList *string `json:"IncludedApplicationList,omitempty"`
10870	// ClusterHealthPolicy - Health policy.
10871	ClusterHealthPolicy *string `json:"ClusterHealthPolicy,omitempty"`
10872	// ChaosContext - Chaos Context.
10873	ChaosContext *string `json:"ChaosContext,omitempty"`
10874	// EventInstanceID - The identifier for the FabricEvent instance.
10875	EventInstanceID *uuid.UUID `json:"EventInstanceId,omitempty"`
10876	// Category - The category of event.
10877	Category *string `json:"Category,omitempty"`
10878	// TimeStamp - The time event was logged.
10879	TimeStamp *date.Time `json:"TimeStamp,omitempty"`
10880	// HasCorrelatedEvents - Shows there is existing related events available.
10881	HasCorrelatedEvents *bool `json:"HasCorrelatedEvents,omitempty"`
10882	// 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'
10883	Kind KindBasicFabricEvent `json:"Kind,omitempty"`
10884}
10885
10886// MarshalJSON is the custom marshaler for ChaosStartedEvent.
10887func (cse ChaosStartedEvent) MarshalJSON() ([]byte, error) {
10888	cse.Kind = KindChaosStarted
10889	objectMap := make(map[string]interface{})
10890	if cse.MaxConcurrentFaults != nil {
10891		objectMap["MaxConcurrentFaults"] = cse.MaxConcurrentFaults
10892	}
10893	if cse.TimeToRunInSeconds != nil {
10894		objectMap["TimeToRunInSeconds"] = cse.TimeToRunInSeconds
10895	}
10896	if cse.MaxClusterStabilizationTimeoutInSeconds != nil {
10897		objectMap["MaxClusterStabilizationTimeoutInSeconds"] = cse.MaxClusterStabilizationTimeoutInSeconds
10898	}
10899	if cse.WaitTimeBetweenIterationsInSeconds != nil {
10900		objectMap["WaitTimeBetweenIterationsInSeconds"] = cse.WaitTimeBetweenIterationsInSeconds
10901	}
10902	if cse.WaitTimeBetweenFaultsInSeconds != nil {
10903		objectMap["WaitTimeBetweenFaultsInSeconds"] = cse.WaitTimeBetweenFaultsInSeconds
10904	}
10905	if cse.MoveReplicaFaultEnabled != nil {
10906		objectMap["MoveReplicaFaultEnabled"] = cse.MoveReplicaFaultEnabled
10907	}
10908	if cse.IncludedNodeTypeList != nil {
10909		objectMap["IncludedNodeTypeList"] = cse.IncludedNodeTypeList
10910	}
10911	if cse.IncludedApplicationList != nil {
10912		objectMap["IncludedApplicationList"] = cse.IncludedApplicationList
10913	}
10914	if cse.ClusterHealthPolicy != nil {
10915		objectMap["ClusterHealthPolicy"] = cse.ClusterHealthPolicy
10916	}
10917	if cse.ChaosContext != nil {
10918		objectMap["ChaosContext"] = cse.ChaosContext
10919	}
10920	if cse.EventInstanceID != nil {
10921		objectMap["EventInstanceId"] = cse.EventInstanceID
10922	}
10923	if cse.Category != nil {
10924		objectMap["Category"] = cse.Category
10925	}
10926	if cse.TimeStamp != nil {
10927		objectMap["TimeStamp"] = cse.TimeStamp
10928	}
10929	if cse.HasCorrelatedEvents != nil {
10930		objectMap["HasCorrelatedEvents"] = cse.HasCorrelatedEvents
10931	}
10932	if cse.Kind != "" {
10933		objectMap["Kind"] = cse.Kind
10934	}
10935	return json.Marshal(objectMap)
10936}
10937
10938// AsApplicationEvent is the BasicFabricEvent implementation for ChaosStartedEvent.
10939func (cse ChaosStartedEvent) AsApplicationEvent() (*ApplicationEvent, bool) {
10940	return nil, false
10941}
10942
10943// AsBasicApplicationEvent is the BasicFabricEvent implementation for ChaosStartedEvent.
10944func (cse ChaosStartedEvent) AsBasicApplicationEvent() (BasicApplicationEvent, bool) {
10945	return nil, false
10946}
10947
10948// AsClusterEvent is the BasicFabricEvent implementation for ChaosStartedEvent.
10949func (cse ChaosStartedEvent) AsClusterEvent() (*ClusterEvent, bool) {
10950	return nil, false
10951}
10952
10953// AsBasicClusterEvent is the BasicFabricEvent implementation for ChaosStartedEvent.
10954func (cse ChaosStartedEvent) AsBasicClusterEvent() (BasicClusterEvent, bool) {
10955	return &cse, true
10956}
10957
10958// AsContainerInstanceEvent is the BasicFabricEvent implementation for ChaosStartedEvent.
10959func (cse ChaosStartedEvent) AsContainerInstanceEvent() (*ContainerInstanceEvent, bool) {
10960	return nil, false
10961}
10962
10963// AsNodeEvent is the BasicFabricEvent implementation for ChaosStartedEvent.
10964func (cse ChaosStartedEvent) AsNodeEvent() (*NodeEvent, bool) {
10965	return nil, false
10966}
10967
10968// AsBasicNodeEvent is the BasicFabricEvent implementation for ChaosStartedEvent.
10969func (cse ChaosStartedEvent) AsBasicNodeEvent() (BasicNodeEvent, bool) {
10970	return nil, false
10971}
10972
10973// AsPartitionAnalysisEvent is the BasicFabricEvent implementation for ChaosStartedEvent.
10974func (cse ChaosStartedEvent) AsPartitionAnalysisEvent() (*PartitionAnalysisEvent, bool) {
10975	return nil, false
10976}
10977
10978// AsBasicPartitionAnalysisEvent is the BasicFabricEvent implementation for ChaosStartedEvent.
10979func (cse ChaosStartedEvent) AsBasicPartitionAnalysisEvent() (BasicPartitionAnalysisEvent, bool) {
10980	return nil, false
10981}
10982
10983// AsPartitionEvent is the BasicFabricEvent implementation for ChaosStartedEvent.
10984func (cse ChaosStartedEvent) AsPartitionEvent() (*PartitionEvent, bool) {
10985	return nil, false
10986}
10987
10988// AsBasicPartitionEvent is the BasicFabricEvent implementation for ChaosStartedEvent.
10989func (cse ChaosStartedEvent) AsBasicPartitionEvent() (BasicPartitionEvent, bool) {
10990	return nil, false
10991}
10992
10993// AsReplicaEvent is the BasicFabricEvent implementation for ChaosStartedEvent.
10994func (cse ChaosStartedEvent) AsReplicaEvent() (*ReplicaEvent, bool) {
10995	return nil, false
10996}
10997
10998// AsBasicReplicaEvent is the BasicFabricEvent implementation for ChaosStartedEvent.
10999func (cse ChaosStartedEvent) AsBasicReplicaEvent() (BasicReplicaEvent, bool) {
11000	return nil, false
11001}
11002
11003// AsServiceEvent is the BasicFabricEvent implementation for ChaosStartedEvent.
11004func (cse ChaosStartedEvent) AsServiceEvent() (*ServiceEvent, bool) {
11005	return nil, false
11006}
11007
11008// AsBasicServiceEvent is the BasicFabricEvent implementation for ChaosStartedEvent.
11009func (cse ChaosStartedEvent) AsBasicServiceEvent() (BasicServiceEvent, bool) {
11010	return nil, false
11011}
11012
11013// AsApplicationCreatedEvent is the BasicFabricEvent implementation for ChaosStartedEvent.
11014func (cse ChaosStartedEvent) AsApplicationCreatedEvent() (*ApplicationCreatedEvent, bool) {
11015	return nil, false
11016}
11017
11018// AsApplicationDeletedEvent is the BasicFabricEvent implementation for ChaosStartedEvent.
11019func (cse ChaosStartedEvent) AsApplicationDeletedEvent() (*ApplicationDeletedEvent, bool) {
11020	return nil, false
11021}
11022
11023// AsApplicationNewHealthReportEvent is the BasicFabricEvent implementation for ChaosStartedEvent.
11024func (cse ChaosStartedEvent) AsApplicationNewHealthReportEvent() (*ApplicationNewHealthReportEvent, bool) {
11025	return nil, false
11026}
11027
11028// AsApplicationHealthReportExpiredEvent is the BasicFabricEvent implementation for ChaosStartedEvent.
11029func (cse ChaosStartedEvent) AsApplicationHealthReportExpiredEvent() (*ApplicationHealthReportExpiredEvent, bool) {
11030	return nil, false
11031}
11032
11033// AsApplicationUpgradeCompletedEvent is the BasicFabricEvent implementation for ChaosStartedEvent.
11034func (cse ChaosStartedEvent) AsApplicationUpgradeCompletedEvent() (*ApplicationUpgradeCompletedEvent, bool) {
11035	return nil, false
11036}
11037
11038// AsApplicationUpgradeDomainCompletedEvent is the BasicFabricEvent implementation for ChaosStartedEvent.
11039func (cse ChaosStartedEvent) AsApplicationUpgradeDomainCompletedEvent() (*ApplicationUpgradeDomainCompletedEvent, bool) {
11040	return nil, false
11041}
11042
11043// AsApplicationUpgradeRollbackCompletedEvent is the BasicFabricEvent implementation for ChaosStartedEvent.
11044func (cse ChaosStartedEvent) AsApplicationUpgradeRollbackCompletedEvent() (*ApplicationUpgradeRollbackCompletedEvent, bool) {
11045	return nil, false
11046}
11047
11048// AsApplicationUpgradeRollbackStartedEvent is the BasicFabricEvent implementation for ChaosStartedEvent.
11049func (cse ChaosStartedEvent) AsApplicationUpgradeRollbackStartedEvent() (*ApplicationUpgradeRollbackStartedEvent, bool) {
11050	return nil, false
11051}
11052
11053// AsApplicationUpgradeStartedEvent is the BasicFabricEvent implementation for ChaosStartedEvent.
11054func (cse ChaosStartedEvent) AsApplicationUpgradeStartedEvent() (*ApplicationUpgradeStartedEvent, bool) {
11055	return nil, false
11056}
11057
11058// AsDeployedApplicationNewHealthReportEvent is the BasicFabricEvent implementation for ChaosStartedEvent.
11059func (cse ChaosStartedEvent) AsDeployedApplicationNewHealthReportEvent() (*DeployedApplicationNewHealthReportEvent, bool) {
11060	return nil, false
11061}
11062
11063// AsDeployedApplicationHealthReportExpiredEvent is the BasicFabricEvent implementation for ChaosStartedEvent.
11064func (cse ChaosStartedEvent) AsDeployedApplicationHealthReportExpiredEvent() (*DeployedApplicationHealthReportExpiredEvent, bool) {
11065	return nil, false
11066}
11067
11068// AsApplicationProcessExitedEvent is the BasicFabricEvent implementation for ChaosStartedEvent.
11069func (cse ChaosStartedEvent) AsApplicationProcessExitedEvent() (*ApplicationProcessExitedEvent, bool) {
11070	return nil, false
11071}
11072
11073// AsApplicationContainerInstanceExitedEvent is the BasicFabricEvent implementation for ChaosStartedEvent.
11074func (cse ChaosStartedEvent) AsApplicationContainerInstanceExitedEvent() (*ApplicationContainerInstanceExitedEvent, bool) {
11075	return nil, false
11076}
11077
11078// AsNodeAbortedEvent is the BasicFabricEvent implementation for ChaosStartedEvent.
11079func (cse ChaosStartedEvent) AsNodeAbortedEvent() (*NodeAbortedEvent, bool) {
11080	return nil, false
11081}
11082
11083// AsNodeAddedToClusterEvent is the BasicFabricEvent implementation for ChaosStartedEvent.
11084func (cse ChaosStartedEvent) AsNodeAddedToClusterEvent() (*NodeAddedToClusterEvent, bool) {
11085	return nil, false
11086}
11087
11088// AsNodeClosedEvent is the BasicFabricEvent implementation for ChaosStartedEvent.
11089func (cse ChaosStartedEvent) AsNodeClosedEvent() (*NodeClosedEvent, bool) {
11090	return nil, false
11091}
11092
11093// AsNodeDeactivateCompletedEvent is the BasicFabricEvent implementation for ChaosStartedEvent.
11094func (cse ChaosStartedEvent) AsNodeDeactivateCompletedEvent() (*NodeDeactivateCompletedEvent, bool) {
11095	return nil, false
11096}
11097
11098// AsNodeDeactivateStartedEvent is the BasicFabricEvent implementation for ChaosStartedEvent.
11099func (cse ChaosStartedEvent) AsNodeDeactivateStartedEvent() (*NodeDeactivateStartedEvent, bool) {
11100	return nil, false
11101}
11102
11103// AsNodeDownEvent is the BasicFabricEvent implementation for ChaosStartedEvent.
11104func (cse ChaosStartedEvent) AsNodeDownEvent() (*NodeDownEvent, bool) {
11105	return nil, false
11106}
11107
11108// AsNodeNewHealthReportEvent is the BasicFabricEvent implementation for ChaosStartedEvent.
11109func (cse ChaosStartedEvent) AsNodeNewHealthReportEvent() (*NodeNewHealthReportEvent, bool) {
11110	return nil, false
11111}
11112
11113// AsNodeHealthReportExpiredEvent is the BasicFabricEvent implementation for ChaosStartedEvent.
11114func (cse ChaosStartedEvent) AsNodeHealthReportExpiredEvent() (*NodeHealthReportExpiredEvent, bool) {
11115	return nil, false
11116}
11117
11118// AsNodeOpenSucceededEvent is the BasicFabricEvent implementation for ChaosStartedEvent.
11119func (cse ChaosStartedEvent) AsNodeOpenSucceededEvent() (*NodeOpenSucceededEvent, bool) {
11120	return nil, false
11121}
11122
11123// AsNodeOpenFailedEvent is the BasicFabricEvent implementation for ChaosStartedEvent.
11124func (cse ChaosStartedEvent) AsNodeOpenFailedEvent() (*NodeOpenFailedEvent, bool) {
11125	return nil, false
11126}
11127
11128// AsNodeRemovedFromClusterEvent is the BasicFabricEvent implementation for ChaosStartedEvent.
11129func (cse ChaosStartedEvent) AsNodeRemovedFromClusterEvent() (*NodeRemovedFromClusterEvent, bool) {
11130	return nil, false
11131}
11132
11133// AsNodeUpEvent is the BasicFabricEvent implementation for ChaosStartedEvent.
11134func (cse ChaosStartedEvent) AsNodeUpEvent() (*NodeUpEvent, bool) {
11135	return nil, false
11136}
11137
11138// AsPartitionNewHealthReportEvent is the BasicFabricEvent implementation for ChaosStartedEvent.
11139func (cse ChaosStartedEvent) AsPartitionNewHealthReportEvent() (*PartitionNewHealthReportEvent, bool) {
11140	return nil, false
11141}
11142
11143// AsPartitionHealthReportExpiredEvent is the BasicFabricEvent implementation for ChaosStartedEvent.
11144func (cse ChaosStartedEvent) AsPartitionHealthReportExpiredEvent() (*PartitionHealthReportExpiredEvent, bool) {
11145	return nil, false
11146}
11147
11148// AsPartitionReconfiguredEvent is the BasicFabricEvent implementation for ChaosStartedEvent.
11149func (cse ChaosStartedEvent) AsPartitionReconfiguredEvent() (*PartitionReconfiguredEvent, bool) {
11150	return nil, false
11151}
11152
11153// AsPartitionPrimaryMoveAnalysisEvent is the BasicFabricEvent implementation for ChaosStartedEvent.
11154func (cse ChaosStartedEvent) AsPartitionPrimaryMoveAnalysisEvent() (*PartitionPrimaryMoveAnalysisEvent, bool) {
11155	return nil, false
11156}
11157
11158// AsServiceCreatedEvent is the BasicFabricEvent implementation for ChaosStartedEvent.
11159func (cse ChaosStartedEvent) AsServiceCreatedEvent() (*ServiceCreatedEvent, bool) {
11160	return nil, false
11161}
11162
11163// AsServiceDeletedEvent is the BasicFabricEvent implementation for ChaosStartedEvent.
11164func (cse ChaosStartedEvent) AsServiceDeletedEvent() (*ServiceDeletedEvent, bool) {
11165	return nil, false
11166}
11167
11168// AsServiceNewHealthReportEvent is the BasicFabricEvent implementation for ChaosStartedEvent.
11169func (cse ChaosStartedEvent) AsServiceNewHealthReportEvent() (*ServiceNewHealthReportEvent, bool) {
11170	return nil, false
11171}
11172
11173// AsServiceHealthReportExpiredEvent is the BasicFabricEvent implementation for ChaosStartedEvent.
11174func (cse ChaosStartedEvent) AsServiceHealthReportExpiredEvent() (*ServiceHealthReportExpiredEvent, bool) {
11175	return nil, false
11176}
11177
11178// AsDeployedServicePackageNewHealthReportEvent is the BasicFabricEvent implementation for ChaosStartedEvent.
11179func (cse ChaosStartedEvent) AsDeployedServicePackageNewHealthReportEvent() (*DeployedServicePackageNewHealthReportEvent, bool) {
11180	return nil, false
11181}
11182
11183// AsDeployedServicePackageHealthReportExpiredEvent is the BasicFabricEvent implementation for ChaosStartedEvent.
11184func (cse ChaosStartedEvent) AsDeployedServicePackageHealthReportExpiredEvent() (*DeployedServicePackageHealthReportExpiredEvent, bool) {
11185	return nil, false
11186}
11187
11188// AsStatefulReplicaNewHealthReportEvent is the BasicFabricEvent implementation for ChaosStartedEvent.
11189func (cse ChaosStartedEvent) AsStatefulReplicaNewHealthReportEvent() (*StatefulReplicaNewHealthReportEvent, bool) {
11190	return nil, false
11191}
11192
11193// AsStatefulReplicaHealthReportExpiredEvent is the BasicFabricEvent implementation for ChaosStartedEvent.
11194func (cse ChaosStartedEvent) AsStatefulReplicaHealthReportExpiredEvent() (*StatefulReplicaHealthReportExpiredEvent, bool) {
11195	return nil, false
11196}
11197
11198// AsStatelessReplicaNewHealthReportEvent is the BasicFabricEvent implementation for ChaosStartedEvent.
11199func (cse ChaosStartedEvent) AsStatelessReplicaNewHealthReportEvent() (*StatelessReplicaNewHealthReportEvent, bool) {
11200	return nil, false
11201}
11202
11203// AsStatelessReplicaHealthReportExpiredEvent is the BasicFabricEvent implementation for ChaosStartedEvent.
11204func (cse ChaosStartedEvent) AsStatelessReplicaHealthReportExpiredEvent() (*StatelessReplicaHealthReportExpiredEvent, bool) {
11205	return nil, false
11206}
11207
11208// AsClusterNewHealthReportEvent is the BasicFabricEvent implementation for ChaosStartedEvent.
11209func (cse ChaosStartedEvent) AsClusterNewHealthReportEvent() (*ClusterNewHealthReportEvent, bool) {
11210	return nil, false
11211}
11212
11213// AsClusterHealthReportExpiredEvent is the BasicFabricEvent implementation for ChaosStartedEvent.
11214func (cse ChaosStartedEvent) AsClusterHealthReportExpiredEvent() (*ClusterHealthReportExpiredEvent, bool) {
11215	return nil, false
11216}
11217
11218// AsClusterUpgradeCompletedEvent is the BasicFabricEvent implementation for ChaosStartedEvent.
11219func (cse ChaosStartedEvent) AsClusterUpgradeCompletedEvent() (*ClusterUpgradeCompletedEvent, bool) {
11220	return nil, false
11221}
11222
11223// AsClusterUpgradeDomainCompletedEvent is the BasicFabricEvent implementation for ChaosStartedEvent.
11224func (cse ChaosStartedEvent) AsClusterUpgradeDomainCompletedEvent() (*ClusterUpgradeDomainCompletedEvent, bool) {
11225	return nil, false
11226}
11227
11228// AsClusterUpgradeRollbackCompletedEvent is the BasicFabricEvent implementation for ChaosStartedEvent.
11229func (cse ChaosStartedEvent) AsClusterUpgradeRollbackCompletedEvent() (*ClusterUpgradeRollbackCompletedEvent, bool) {
11230	return nil, false
11231}
11232
11233// AsClusterUpgradeRollbackStartedEvent is the BasicFabricEvent implementation for ChaosStartedEvent.
11234func (cse ChaosStartedEvent) AsClusterUpgradeRollbackStartedEvent() (*ClusterUpgradeRollbackStartedEvent, bool) {
11235	return nil, false
11236}
11237
11238// AsClusterUpgradeStartedEvent is the BasicFabricEvent implementation for ChaosStartedEvent.
11239func (cse ChaosStartedEvent) AsClusterUpgradeStartedEvent() (*ClusterUpgradeStartedEvent, bool) {
11240	return nil, false
11241}
11242
11243// AsChaosStoppedEvent is the BasicFabricEvent implementation for ChaosStartedEvent.
11244func (cse ChaosStartedEvent) AsChaosStoppedEvent() (*ChaosStoppedEvent, bool) {
11245	return nil, false
11246}
11247
11248// AsChaosStartedEvent is the BasicFabricEvent implementation for ChaosStartedEvent.
11249func (cse ChaosStartedEvent) AsChaosStartedEvent() (*ChaosStartedEvent, bool) {
11250	return &cse, true
11251}
11252
11253// AsChaosCodePackageRestartScheduledEvent is the BasicFabricEvent implementation for ChaosStartedEvent.
11254func (cse ChaosStartedEvent) AsChaosCodePackageRestartScheduledEvent() (*ChaosCodePackageRestartScheduledEvent, bool) {
11255	return nil, false
11256}
11257
11258// AsChaosReplicaRemovalScheduledEvent is the BasicFabricEvent implementation for ChaosStartedEvent.
11259func (cse ChaosStartedEvent) AsChaosReplicaRemovalScheduledEvent() (*ChaosReplicaRemovalScheduledEvent, bool) {
11260	return nil, false
11261}
11262
11263// AsChaosPartitionSecondaryMoveScheduledEvent is the BasicFabricEvent implementation for ChaosStartedEvent.
11264func (cse ChaosStartedEvent) AsChaosPartitionSecondaryMoveScheduledEvent() (*ChaosPartitionSecondaryMoveScheduledEvent, bool) {
11265	return nil, false
11266}
11267
11268// AsChaosPartitionPrimaryMoveScheduledEvent is the BasicFabricEvent implementation for ChaosStartedEvent.
11269func (cse ChaosStartedEvent) AsChaosPartitionPrimaryMoveScheduledEvent() (*ChaosPartitionPrimaryMoveScheduledEvent, bool) {
11270	return nil, false
11271}
11272
11273// AsChaosReplicaRestartScheduledEvent is the BasicFabricEvent implementation for ChaosStartedEvent.
11274func (cse ChaosStartedEvent) AsChaosReplicaRestartScheduledEvent() (*ChaosReplicaRestartScheduledEvent, bool) {
11275	return nil, false
11276}
11277
11278// AsChaosNodeRestartScheduledEvent is the BasicFabricEvent implementation for ChaosStartedEvent.
11279func (cse ChaosStartedEvent) AsChaosNodeRestartScheduledEvent() (*ChaosNodeRestartScheduledEvent, bool) {
11280	return nil, false
11281}
11282
11283// AsFabricEvent is the BasicFabricEvent implementation for ChaosStartedEvent.
11284func (cse ChaosStartedEvent) AsFabricEvent() (*FabricEvent, bool) {
11285	return nil, false
11286}
11287
11288// AsBasicFabricEvent is the BasicFabricEvent implementation for ChaosStartedEvent.
11289func (cse ChaosStartedEvent) AsBasicFabricEvent() (BasicFabricEvent, bool) {
11290	return &cse, true
11291}
11292
11293// ChaosStoppedEvent chaos Stopped event.
11294type ChaosStoppedEvent struct {
11295	// Reason - Describes reason.
11296	Reason *string `json:"Reason,omitempty"`
11297	// EventInstanceID - The identifier for the FabricEvent instance.
11298	EventInstanceID *uuid.UUID `json:"EventInstanceId,omitempty"`
11299	// Category - The category of event.
11300	Category *string `json:"Category,omitempty"`
11301	// TimeStamp - The time event was logged.
11302	TimeStamp *date.Time `json:"TimeStamp,omitempty"`
11303	// HasCorrelatedEvents - Shows there is existing related events available.
11304	HasCorrelatedEvents *bool `json:"HasCorrelatedEvents,omitempty"`
11305	// 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'
11306	Kind KindBasicFabricEvent `json:"Kind,omitempty"`
11307}
11308
11309// MarshalJSON is the custom marshaler for ChaosStoppedEvent.
11310func (cse ChaosStoppedEvent) MarshalJSON() ([]byte, error) {
11311	cse.Kind = KindChaosStopped
11312	objectMap := make(map[string]interface{})
11313	if cse.Reason != nil {
11314		objectMap["Reason"] = cse.Reason
11315	}
11316	if cse.EventInstanceID != nil {
11317		objectMap["EventInstanceId"] = cse.EventInstanceID
11318	}
11319	if cse.Category != nil {
11320		objectMap["Category"] = cse.Category
11321	}
11322	if cse.TimeStamp != nil {
11323		objectMap["TimeStamp"] = cse.TimeStamp
11324	}
11325	if cse.HasCorrelatedEvents != nil {
11326		objectMap["HasCorrelatedEvents"] = cse.HasCorrelatedEvents
11327	}
11328	if cse.Kind != "" {
11329		objectMap["Kind"] = cse.Kind
11330	}
11331	return json.Marshal(objectMap)
11332}
11333
11334// AsApplicationEvent is the BasicFabricEvent implementation for ChaosStoppedEvent.
11335func (cse ChaosStoppedEvent) AsApplicationEvent() (*ApplicationEvent, bool) {
11336	return nil, false
11337}
11338
11339// AsBasicApplicationEvent is the BasicFabricEvent implementation for ChaosStoppedEvent.
11340func (cse ChaosStoppedEvent) AsBasicApplicationEvent() (BasicApplicationEvent, bool) {
11341	return nil, false
11342}
11343
11344// AsClusterEvent is the BasicFabricEvent implementation for ChaosStoppedEvent.
11345func (cse ChaosStoppedEvent) AsClusterEvent() (*ClusterEvent, bool) {
11346	return nil, false
11347}
11348
11349// AsBasicClusterEvent is the BasicFabricEvent implementation for ChaosStoppedEvent.
11350func (cse ChaosStoppedEvent) AsBasicClusterEvent() (BasicClusterEvent, bool) {
11351	return &cse, true
11352}
11353
11354// AsContainerInstanceEvent is the BasicFabricEvent implementation for ChaosStoppedEvent.
11355func (cse ChaosStoppedEvent) AsContainerInstanceEvent() (*ContainerInstanceEvent, bool) {
11356	return nil, false
11357}
11358
11359// AsNodeEvent is the BasicFabricEvent implementation for ChaosStoppedEvent.
11360func (cse ChaosStoppedEvent) AsNodeEvent() (*NodeEvent, bool) {
11361	return nil, false
11362}
11363
11364// AsBasicNodeEvent is the BasicFabricEvent implementation for ChaosStoppedEvent.
11365func (cse ChaosStoppedEvent) AsBasicNodeEvent() (BasicNodeEvent, bool) {
11366	return nil, false
11367}
11368
11369// AsPartitionAnalysisEvent is the BasicFabricEvent implementation for ChaosStoppedEvent.
11370func (cse ChaosStoppedEvent) AsPartitionAnalysisEvent() (*PartitionAnalysisEvent, bool) {
11371	return nil, false
11372}
11373
11374// AsBasicPartitionAnalysisEvent is the BasicFabricEvent implementation for ChaosStoppedEvent.
11375func (cse ChaosStoppedEvent) AsBasicPartitionAnalysisEvent() (BasicPartitionAnalysisEvent, bool) {
11376	return nil, false
11377}
11378
11379// AsPartitionEvent is the BasicFabricEvent implementation for ChaosStoppedEvent.
11380func (cse ChaosStoppedEvent) AsPartitionEvent() (*PartitionEvent, bool) {
11381	return nil, false
11382}
11383
11384// AsBasicPartitionEvent is the BasicFabricEvent implementation for ChaosStoppedEvent.
11385func (cse ChaosStoppedEvent) AsBasicPartitionEvent() (BasicPartitionEvent, bool) {
11386	return nil, false
11387}
11388
11389// AsReplicaEvent is the BasicFabricEvent implementation for ChaosStoppedEvent.
11390func (cse ChaosStoppedEvent) AsReplicaEvent() (*ReplicaEvent, bool) {
11391	return nil, false
11392}
11393
11394// AsBasicReplicaEvent is the BasicFabricEvent implementation for ChaosStoppedEvent.
11395func (cse ChaosStoppedEvent) AsBasicReplicaEvent() (BasicReplicaEvent, bool) {
11396	return nil, false
11397}
11398
11399// AsServiceEvent is the BasicFabricEvent implementation for ChaosStoppedEvent.
11400func (cse ChaosStoppedEvent) AsServiceEvent() (*ServiceEvent, bool) {
11401	return nil, false
11402}
11403
11404// AsBasicServiceEvent is the BasicFabricEvent implementation for ChaosStoppedEvent.
11405func (cse ChaosStoppedEvent) AsBasicServiceEvent() (BasicServiceEvent, bool) {
11406	return nil, false
11407}
11408
11409// AsApplicationCreatedEvent is the BasicFabricEvent implementation for ChaosStoppedEvent.
11410func (cse ChaosStoppedEvent) AsApplicationCreatedEvent() (*ApplicationCreatedEvent, bool) {
11411	return nil, false
11412}
11413
11414// AsApplicationDeletedEvent is the BasicFabricEvent implementation for ChaosStoppedEvent.
11415func (cse ChaosStoppedEvent) AsApplicationDeletedEvent() (*ApplicationDeletedEvent, bool) {
11416	return nil, false
11417}
11418
11419// AsApplicationNewHealthReportEvent is the BasicFabricEvent implementation for ChaosStoppedEvent.
11420func (cse ChaosStoppedEvent) AsApplicationNewHealthReportEvent() (*ApplicationNewHealthReportEvent, bool) {
11421	return nil, false
11422}
11423
11424// AsApplicationHealthReportExpiredEvent is the BasicFabricEvent implementation for ChaosStoppedEvent.
11425func (cse ChaosStoppedEvent) AsApplicationHealthReportExpiredEvent() (*ApplicationHealthReportExpiredEvent, bool) {
11426	return nil, false
11427}
11428
11429// AsApplicationUpgradeCompletedEvent is the BasicFabricEvent implementation for ChaosStoppedEvent.
11430func (cse ChaosStoppedEvent) AsApplicationUpgradeCompletedEvent() (*ApplicationUpgradeCompletedEvent, bool) {
11431	return nil, false
11432}
11433
11434// AsApplicationUpgradeDomainCompletedEvent is the BasicFabricEvent implementation for ChaosStoppedEvent.
11435func (cse ChaosStoppedEvent) AsApplicationUpgradeDomainCompletedEvent() (*ApplicationUpgradeDomainCompletedEvent, bool) {
11436	return nil, false
11437}
11438
11439// AsApplicationUpgradeRollbackCompletedEvent is the BasicFabricEvent implementation for ChaosStoppedEvent.
11440func (cse ChaosStoppedEvent) AsApplicationUpgradeRollbackCompletedEvent() (*ApplicationUpgradeRollbackCompletedEvent, bool) {
11441	return nil, false
11442}
11443
11444// AsApplicationUpgradeRollbackStartedEvent is the BasicFabricEvent implementation for ChaosStoppedEvent.
11445func (cse ChaosStoppedEvent) AsApplicationUpgradeRollbackStartedEvent() (*ApplicationUpgradeRollbackStartedEvent, bool) {
11446	return nil, false
11447}
11448
11449// AsApplicationUpgradeStartedEvent is the BasicFabricEvent implementation for ChaosStoppedEvent.
11450func (cse ChaosStoppedEvent) AsApplicationUpgradeStartedEvent() (*ApplicationUpgradeStartedEvent, bool) {
11451	return nil, false
11452}
11453
11454// AsDeployedApplicationNewHealthReportEvent is the BasicFabricEvent implementation for ChaosStoppedEvent.
11455func (cse ChaosStoppedEvent) AsDeployedApplicationNewHealthReportEvent() (*DeployedApplicationNewHealthReportEvent, bool) {
11456	return nil, false
11457}
11458
11459// AsDeployedApplicationHealthReportExpiredEvent is the BasicFabricEvent implementation for ChaosStoppedEvent.
11460func (cse ChaosStoppedEvent) AsDeployedApplicationHealthReportExpiredEvent() (*DeployedApplicationHealthReportExpiredEvent, bool) {
11461	return nil, false
11462}
11463
11464// AsApplicationProcessExitedEvent is the BasicFabricEvent implementation for ChaosStoppedEvent.
11465func (cse ChaosStoppedEvent) AsApplicationProcessExitedEvent() (*ApplicationProcessExitedEvent, bool) {
11466	return nil, false
11467}
11468
11469// AsApplicationContainerInstanceExitedEvent is the BasicFabricEvent implementation for ChaosStoppedEvent.
11470func (cse ChaosStoppedEvent) AsApplicationContainerInstanceExitedEvent() (*ApplicationContainerInstanceExitedEvent, bool) {
11471	return nil, false
11472}
11473
11474// AsNodeAbortedEvent is the BasicFabricEvent implementation for ChaosStoppedEvent.
11475func (cse ChaosStoppedEvent) AsNodeAbortedEvent() (*NodeAbortedEvent, bool) {
11476	return nil, false
11477}
11478
11479// AsNodeAddedToClusterEvent is the BasicFabricEvent implementation for ChaosStoppedEvent.
11480func (cse ChaosStoppedEvent) AsNodeAddedToClusterEvent() (*NodeAddedToClusterEvent, bool) {
11481	return nil, false
11482}
11483
11484// AsNodeClosedEvent is the BasicFabricEvent implementation for ChaosStoppedEvent.
11485func (cse ChaosStoppedEvent) AsNodeClosedEvent() (*NodeClosedEvent, bool) {
11486	return nil, false
11487}
11488
11489// AsNodeDeactivateCompletedEvent is the BasicFabricEvent implementation for ChaosStoppedEvent.
11490func (cse ChaosStoppedEvent) AsNodeDeactivateCompletedEvent() (*NodeDeactivateCompletedEvent, bool) {
11491	return nil, false
11492}
11493
11494// AsNodeDeactivateStartedEvent is the BasicFabricEvent implementation for ChaosStoppedEvent.
11495func (cse ChaosStoppedEvent) AsNodeDeactivateStartedEvent() (*NodeDeactivateStartedEvent, bool) {
11496	return nil, false
11497}
11498
11499// AsNodeDownEvent is the BasicFabricEvent implementation for ChaosStoppedEvent.
11500func (cse ChaosStoppedEvent) AsNodeDownEvent() (*NodeDownEvent, bool) {
11501	return nil, false
11502}
11503
11504// AsNodeNewHealthReportEvent is the BasicFabricEvent implementation for ChaosStoppedEvent.
11505func (cse ChaosStoppedEvent) AsNodeNewHealthReportEvent() (*NodeNewHealthReportEvent, bool) {
11506	return nil, false
11507}
11508
11509// AsNodeHealthReportExpiredEvent is the BasicFabricEvent implementation for ChaosStoppedEvent.
11510func (cse ChaosStoppedEvent) AsNodeHealthReportExpiredEvent() (*NodeHealthReportExpiredEvent, bool) {
11511	return nil, false
11512}
11513
11514// AsNodeOpenSucceededEvent is the BasicFabricEvent implementation for ChaosStoppedEvent.
11515func (cse ChaosStoppedEvent) AsNodeOpenSucceededEvent() (*NodeOpenSucceededEvent, bool) {
11516	return nil, false
11517}
11518
11519// AsNodeOpenFailedEvent is the BasicFabricEvent implementation for ChaosStoppedEvent.
11520func (cse ChaosStoppedEvent) AsNodeOpenFailedEvent() (*NodeOpenFailedEvent, bool) {
11521	return nil, false
11522}
11523
11524// AsNodeRemovedFromClusterEvent is the BasicFabricEvent implementation for ChaosStoppedEvent.
11525func (cse ChaosStoppedEvent) AsNodeRemovedFromClusterEvent() (*NodeRemovedFromClusterEvent, bool) {
11526	return nil, false
11527}
11528
11529// AsNodeUpEvent is the BasicFabricEvent implementation for ChaosStoppedEvent.
11530func (cse ChaosStoppedEvent) AsNodeUpEvent() (*NodeUpEvent, bool) {
11531	return nil, false
11532}
11533
11534// AsPartitionNewHealthReportEvent is the BasicFabricEvent implementation for ChaosStoppedEvent.
11535func (cse ChaosStoppedEvent) AsPartitionNewHealthReportEvent() (*PartitionNewHealthReportEvent, bool) {
11536	return nil, false
11537}
11538
11539// AsPartitionHealthReportExpiredEvent is the BasicFabricEvent implementation for ChaosStoppedEvent.
11540func (cse ChaosStoppedEvent) AsPartitionHealthReportExpiredEvent() (*PartitionHealthReportExpiredEvent, bool) {
11541	return nil, false
11542}
11543
11544// AsPartitionReconfiguredEvent is the BasicFabricEvent implementation for ChaosStoppedEvent.
11545func (cse ChaosStoppedEvent) AsPartitionReconfiguredEvent() (*PartitionReconfiguredEvent, bool) {
11546	return nil, false
11547}
11548
11549// AsPartitionPrimaryMoveAnalysisEvent is the BasicFabricEvent implementation for ChaosStoppedEvent.
11550func (cse ChaosStoppedEvent) AsPartitionPrimaryMoveAnalysisEvent() (*PartitionPrimaryMoveAnalysisEvent, bool) {
11551	return nil, false
11552}
11553
11554// AsServiceCreatedEvent is the BasicFabricEvent implementation for ChaosStoppedEvent.
11555func (cse ChaosStoppedEvent) AsServiceCreatedEvent() (*ServiceCreatedEvent, bool) {
11556	return nil, false
11557}
11558
11559// AsServiceDeletedEvent is the BasicFabricEvent implementation for ChaosStoppedEvent.
11560func (cse ChaosStoppedEvent) AsServiceDeletedEvent() (*ServiceDeletedEvent, bool) {
11561	return nil, false
11562}
11563
11564// AsServiceNewHealthReportEvent is the BasicFabricEvent implementation for ChaosStoppedEvent.
11565func (cse ChaosStoppedEvent) AsServiceNewHealthReportEvent() (*ServiceNewHealthReportEvent, bool) {
11566	return nil, false
11567}
11568
11569// AsServiceHealthReportExpiredEvent is the BasicFabricEvent implementation for ChaosStoppedEvent.
11570func (cse ChaosStoppedEvent) AsServiceHealthReportExpiredEvent() (*ServiceHealthReportExpiredEvent, bool) {
11571	return nil, false
11572}
11573
11574// AsDeployedServicePackageNewHealthReportEvent is the BasicFabricEvent implementation for ChaosStoppedEvent.
11575func (cse ChaosStoppedEvent) AsDeployedServicePackageNewHealthReportEvent() (*DeployedServicePackageNewHealthReportEvent, bool) {
11576	return nil, false
11577}
11578
11579// AsDeployedServicePackageHealthReportExpiredEvent is the BasicFabricEvent implementation for ChaosStoppedEvent.
11580func (cse ChaosStoppedEvent) AsDeployedServicePackageHealthReportExpiredEvent() (*DeployedServicePackageHealthReportExpiredEvent, bool) {
11581	return nil, false
11582}
11583
11584// AsStatefulReplicaNewHealthReportEvent is the BasicFabricEvent implementation for ChaosStoppedEvent.
11585func (cse ChaosStoppedEvent) AsStatefulReplicaNewHealthReportEvent() (*StatefulReplicaNewHealthReportEvent, bool) {
11586	return nil, false
11587}
11588
11589// AsStatefulReplicaHealthReportExpiredEvent is the BasicFabricEvent implementation for ChaosStoppedEvent.
11590func (cse ChaosStoppedEvent) AsStatefulReplicaHealthReportExpiredEvent() (*StatefulReplicaHealthReportExpiredEvent, bool) {
11591	return nil, false
11592}
11593
11594// AsStatelessReplicaNewHealthReportEvent is the BasicFabricEvent implementation for ChaosStoppedEvent.
11595func (cse ChaosStoppedEvent) AsStatelessReplicaNewHealthReportEvent() (*StatelessReplicaNewHealthReportEvent, bool) {
11596	return nil, false
11597}
11598
11599// AsStatelessReplicaHealthReportExpiredEvent is the BasicFabricEvent implementation for ChaosStoppedEvent.
11600func (cse ChaosStoppedEvent) AsStatelessReplicaHealthReportExpiredEvent() (*StatelessReplicaHealthReportExpiredEvent, bool) {
11601	return nil, false
11602}
11603
11604// AsClusterNewHealthReportEvent is the BasicFabricEvent implementation for ChaosStoppedEvent.
11605func (cse ChaosStoppedEvent) AsClusterNewHealthReportEvent() (*ClusterNewHealthReportEvent, bool) {
11606	return nil, false
11607}
11608
11609// AsClusterHealthReportExpiredEvent is the BasicFabricEvent implementation for ChaosStoppedEvent.
11610func (cse ChaosStoppedEvent) AsClusterHealthReportExpiredEvent() (*ClusterHealthReportExpiredEvent, bool) {
11611	return nil, false
11612}
11613
11614// AsClusterUpgradeCompletedEvent is the BasicFabricEvent implementation for ChaosStoppedEvent.
11615func (cse ChaosStoppedEvent) AsClusterUpgradeCompletedEvent() (*ClusterUpgradeCompletedEvent, bool) {
11616	return nil, false
11617}
11618
11619// AsClusterUpgradeDomainCompletedEvent is the BasicFabricEvent implementation for ChaosStoppedEvent.
11620func (cse ChaosStoppedEvent) AsClusterUpgradeDomainCompletedEvent() (*ClusterUpgradeDomainCompletedEvent, bool) {
11621	return nil, false
11622}
11623
11624// AsClusterUpgradeRollbackCompletedEvent is the BasicFabricEvent implementation for ChaosStoppedEvent.
11625func (cse ChaosStoppedEvent) AsClusterUpgradeRollbackCompletedEvent() (*ClusterUpgradeRollbackCompletedEvent, bool) {
11626	return nil, false
11627}
11628
11629// AsClusterUpgradeRollbackStartedEvent is the BasicFabricEvent implementation for ChaosStoppedEvent.
11630func (cse ChaosStoppedEvent) AsClusterUpgradeRollbackStartedEvent() (*ClusterUpgradeRollbackStartedEvent, bool) {
11631	return nil, false
11632}
11633
11634// AsClusterUpgradeStartedEvent is the BasicFabricEvent implementation for ChaosStoppedEvent.
11635func (cse ChaosStoppedEvent) AsClusterUpgradeStartedEvent() (*ClusterUpgradeStartedEvent, bool) {
11636	return nil, false
11637}
11638
11639// AsChaosStoppedEvent is the BasicFabricEvent implementation for ChaosStoppedEvent.
11640func (cse ChaosStoppedEvent) AsChaosStoppedEvent() (*ChaosStoppedEvent, bool) {
11641	return &cse, true
11642}
11643
11644// AsChaosStartedEvent is the BasicFabricEvent implementation for ChaosStoppedEvent.
11645func (cse ChaosStoppedEvent) AsChaosStartedEvent() (*ChaosStartedEvent, bool) {
11646	return nil, false
11647}
11648
11649// AsChaosCodePackageRestartScheduledEvent is the BasicFabricEvent implementation for ChaosStoppedEvent.
11650func (cse ChaosStoppedEvent) AsChaosCodePackageRestartScheduledEvent() (*ChaosCodePackageRestartScheduledEvent, bool) {
11651	return nil, false
11652}
11653
11654// AsChaosReplicaRemovalScheduledEvent is the BasicFabricEvent implementation for ChaosStoppedEvent.
11655func (cse ChaosStoppedEvent) AsChaosReplicaRemovalScheduledEvent() (*ChaosReplicaRemovalScheduledEvent, bool) {
11656	return nil, false
11657}
11658
11659// AsChaosPartitionSecondaryMoveScheduledEvent is the BasicFabricEvent implementation for ChaosStoppedEvent.
11660func (cse ChaosStoppedEvent) AsChaosPartitionSecondaryMoveScheduledEvent() (*ChaosPartitionSecondaryMoveScheduledEvent, bool) {
11661	return nil, false
11662}
11663
11664// AsChaosPartitionPrimaryMoveScheduledEvent is the BasicFabricEvent implementation for ChaosStoppedEvent.
11665func (cse ChaosStoppedEvent) AsChaosPartitionPrimaryMoveScheduledEvent() (*ChaosPartitionPrimaryMoveScheduledEvent, bool) {
11666	return nil, false
11667}
11668
11669// AsChaosReplicaRestartScheduledEvent is the BasicFabricEvent implementation for ChaosStoppedEvent.
11670func (cse ChaosStoppedEvent) AsChaosReplicaRestartScheduledEvent() (*ChaosReplicaRestartScheduledEvent, bool) {
11671	return nil, false
11672}
11673
11674// AsChaosNodeRestartScheduledEvent is the BasicFabricEvent implementation for ChaosStoppedEvent.
11675func (cse ChaosStoppedEvent) AsChaosNodeRestartScheduledEvent() (*ChaosNodeRestartScheduledEvent, bool) {
11676	return nil, false
11677}
11678
11679// AsFabricEvent is the BasicFabricEvent implementation for ChaosStoppedEvent.
11680func (cse ChaosStoppedEvent) AsFabricEvent() (*FabricEvent, bool) {
11681	return nil, false
11682}
11683
11684// AsBasicFabricEvent is the BasicFabricEvent implementation for ChaosStoppedEvent.
11685func (cse ChaosStoppedEvent) AsBasicFabricEvent() (BasicFabricEvent, bool) {
11686	return &cse, true
11687}
11688
11689// ChaosTargetFilter defines all filters for targeted Chaos faults, for example, faulting only certain node
11690// types or faulting only certain applications.
11691// If ChaosTargetFilter is not used, Chaos faults all cluster entities. If ChaosTargetFilter is used, Chaos
11692// faults only the entities that meet the ChaosTargetFilter
11693// specification. NodeTypeInclusionList and ApplicationInclusionList allow a union semantics only. It is
11694// not possible to specify an intersection
11695// of NodeTypeInclusionList and ApplicationInclusionList. For example, it is not possible to specify "fault
11696// this application only when it is on that node type."
11697// Once an entity is included in either NodeTypeInclusionList or ApplicationInclusionList, that entity
11698// cannot be excluded using ChaosTargetFilter. Even if
11699// applicationX does not appear in ApplicationInclusionList, in some Chaos iteration applicationX can be
11700// faulted because it happens to be on a node of nodeTypeY that is included
11701// in NodeTypeInclusionList. If both NodeTypeInclusionList and ApplicationInclusionList are null or empty,
11702// an ArgumentException is thrown.
11703type ChaosTargetFilter struct {
11704	// NodeTypeInclusionList - A list of node types to include in Chaos faults.
11705	// 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.
11706	// 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
11707	// NodeTypeX, but code package and replica faults can still be enabled for NodeTypeX if an application in the ApplicationInclusionList.
11708	// happens to reside on a node of NodeTypeX.
11709	// At most 100 node type names can be included in this list, to increase this number, a config upgrade is required for MaxNumberOfNodeTypesInChaosEntityFilter configuration.
11710	NodeTypeInclusionList *[]string `json:"NodeTypeInclusionList,omitempty"`
11711	// ApplicationInclusionList - A list of application URIs to include in Chaos faults.
11712	// All replicas belonging to services of these applications are amenable to replica faults (restart replica, remove replica, move primary, and move secondary) by Chaos.
11713	// Chaos may restart a code package only if the code package hosts replicas of these applications only.
11714	// 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.
11715	// 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.
11716	// At most 1000 application names can be included in this list, to increase this number, a config upgrade is required for MaxNumberOfApplicationsInChaosEntityFilter configuration.
11717	ApplicationInclusionList *[]string `json:"ApplicationInclusionList,omitempty"`
11718}
11719
11720// CheckExistsPropertyBatchOperation represents a PropertyBatchOperation that compares the Boolean
11721// existence of a property with the Exists argument.
11722// The PropertyBatchOperation operation fails if the property's existence is not equal to the Exists
11723// argument.
11724// The CheckExistsPropertyBatchOperation is generally used as a precondition for the write operations in
11725// the batch.
11726// Note that if one PropertyBatchOperation in a PropertyBatch fails,
11727// the entire batch fails and cannot be committed in a transactional manner.
11728type CheckExistsPropertyBatchOperation struct {
11729	// Exists - Whether or not the property should exist for the operation to pass.
11730	Exists *bool `json:"Exists,omitempty"`
11731	// PropertyName - The name of the Service Fabric property.
11732	PropertyName *string `json:"PropertyName,omitempty"`
11733	// Kind - Possible values include: 'KindPropertyBatchOperation', 'KindCheckExists', 'KindCheckSequence', 'KindCheckValue', 'KindDelete', 'KindGet', 'KindPut'
11734	Kind KindBasicPropertyBatchOperation `json:"Kind,omitempty"`
11735}
11736
11737// MarshalJSON is the custom marshaler for CheckExistsPropertyBatchOperation.
11738func (cepbo CheckExistsPropertyBatchOperation) MarshalJSON() ([]byte, error) {
11739	cepbo.Kind = KindCheckExists
11740	objectMap := make(map[string]interface{})
11741	if cepbo.Exists != nil {
11742		objectMap["Exists"] = cepbo.Exists
11743	}
11744	if cepbo.PropertyName != nil {
11745		objectMap["PropertyName"] = cepbo.PropertyName
11746	}
11747	if cepbo.Kind != "" {
11748		objectMap["Kind"] = cepbo.Kind
11749	}
11750	return json.Marshal(objectMap)
11751}
11752
11753// AsCheckExistsPropertyBatchOperation is the BasicPropertyBatchOperation implementation for CheckExistsPropertyBatchOperation.
11754func (cepbo CheckExistsPropertyBatchOperation) AsCheckExistsPropertyBatchOperation() (*CheckExistsPropertyBatchOperation, bool) {
11755	return &cepbo, true
11756}
11757
11758// AsCheckSequencePropertyBatchOperation is the BasicPropertyBatchOperation implementation for CheckExistsPropertyBatchOperation.
11759func (cepbo CheckExistsPropertyBatchOperation) AsCheckSequencePropertyBatchOperation() (*CheckSequencePropertyBatchOperation, bool) {
11760	return nil, false
11761}
11762
11763// AsCheckValuePropertyBatchOperation is the BasicPropertyBatchOperation implementation for CheckExistsPropertyBatchOperation.
11764func (cepbo CheckExistsPropertyBatchOperation) AsCheckValuePropertyBatchOperation() (*CheckValuePropertyBatchOperation, bool) {
11765	return nil, false
11766}
11767
11768// AsDeletePropertyBatchOperation is the BasicPropertyBatchOperation implementation for CheckExistsPropertyBatchOperation.
11769func (cepbo CheckExistsPropertyBatchOperation) AsDeletePropertyBatchOperation() (*DeletePropertyBatchOperation, bool) {
11770	return nil, false
11771}
11772
11773// AsGetPropertyBatchOperation is the BasicPropertyBatchOperation implementation for CheckExistsPropertyBatchOperation.
11774func (cepbo CheckExistsPropertyBatchOperation) AsGetPropertyBatchOperation() (*GetPropertyBatchOperation, bool) {
11775	return nil, false
11776}
11777
11778// AsPutPropertyBatchOperation is the BasicPropertyBatchOperation implementation for CheckExistsPropertyBatchOperation.
11779func (cepbo CheckExistsPropertyBatchOperation) AsPutPropertyBatchOperation() (*PutPropertyBatchOperation, bool) {
11780	return nil, false
11781}
11782
11783// AsPropertyBatchOperation is the BasicPropertyBatchOperation implementation for CheckExistsPropertyBatchOperation.
11784func (cepbo CheckExistsPropertyBatchOperation) AsPropertyBatchOperation() (*PropertyBatchOperation, bool) {
11785	return nil, false
11786}
11787
11788// AsBasicPropertyBatchOperation is the BasicPropertyBatchOperation implementation for CheckExistsPropertyBatchOperation.
11789func (cepbo CheckExistsPropertyBatchOperation) AsBasicPropertyBatchOperation() (BasicPropertyBatchOperation, bool) {
11790	return &cepbo, true
11791}
11792
11793// CheckSequencePropertyBatchOperation compares the Sequence Number of a property with the SequenceNumber
11794// argument.
11795// A property's sequence number can be thought of as that property's version.
11796// Every time the property is modified, its sequence number is increased.
11797// The sequence number can be found in a property's metadata.
11798// The comparison fails if the sequence numbers are not equal.
11799// CheckSequencePropertyBatchOperation is generally used as a precondition for the write operations in the
11800// batch.
11801// Note that if one PropertyBatchOperation in a PropertyBatch fails,
11802// the entire batch fails and cannot be committed in a transactional manner.
11803type CheckSequencePropertyBatchOperation struct {
11804	// SequenceNumber - The expected sequence number.
11805	SequenceNumber *string `json:"SequenceNumber,omitempty"`
11806	// PropertyName - The name of the Service Fabric property.
11807	PropertyName *string `json:"PropertyName,omitempty"`
11808	// Kind - Possible values include: 'KindPropertyBatchOperation', 'KindCheckExists', 'KindCheckSequence', 'KindCheckValue', 'KindDelete', 'KindGet', 'KindPut'
11809	Kind KindBasicPropertyBatchOperation `json:"Kind,omitempty"`
11810}
11811
11812// MarshalJSON is the custom marshaler for CheckSequencePropertyBatchOperation.
11813func (cspbo CheckSequencePropertyBatchOperation) MarshalJSON() ([]byte, error) {
11814	cspbo.Kind = KindCheckSequence
11815	objectMap := make(map[string]interface{})
11816	if cspbo.SequenceNumber != nil {
11817		objectMap["SequenceNumber"] = cspbo.SequenceNumber
11818	}
11819	if cspbo.PropertyName != nil {
11820		objectMap["PropertyName"] = cspbo.PropertyName
11821	}
11822	if cspbo.Kind != "" {
11823		objectMap["Kind"] = cspbo.Kind
11824	}
11825	return json.Marshal(objectMap)
11826}
11827
11828// AsCheckExistsPropertyBatchOperation is the BasicPropertyBatchOperation implementation for CheckSequencePropertyBatchOperation.
11829func (cspbo CheckSequencePropertyBatchOperation) AsCheckExistsPropertyBatchOperation() (*CheckExistsPropertyBatchOperation, bool) {
11830	return nil, false
11831}
11832
11833// AsCheckSequencePropertyBatchOperation is the BasicPropertyBatchOperation implementation for CheckSequencePropertyBatchOperation.
11834func (cspbo CheckSequencePropertyBatchOperation) AsCheckSequencePropertyBatchOperation() (*CheckSequencePropertyBatchOperation, bool) {
11835	return &cspbo, true
11836}
11837
11838// AsCheckValuePropertyBatchOperation is the BasicPropertyBatchOperation implementation for CheckSequencePropertyBatchOperation.
11839func (cspbo CheckSequencePropertyBatchOperation) AsCheckValuePropertyBatchOperation() (*CheckValuePropertyBatchOperation, bool) {
11840	return nil, false
11841}
11842
11843// AsDeletePropertyBatchOperation is the BasicPropertyBatchOperation implementation for CheckSequencePropertyBatchOperation.
11844func (cspbo CheckSequencePropertyBatchOperation) AsDeletePropertyBatchOperation() (*DeletePropertyBatchOperation, bool) {
11845	return nil, false
11846}
11847
11848// AsGetPropertyBatchOperation is the BasicPropertyBatchOperation implementation for CheckSequencePropertyBatchOperation.
11849func (cspbo CheckSequencePropertyBatchOperation) AsGetPropertyBatchOperation() (*GetPropertyBatchOperation, bool) {
11850	return nil, false
11851}
11852
11853// AsPutPropertyBatchOperation is the BasicPropertyBatchOperation implementation for CheckSequencePropertyBatchOperation.
11854func (cspbo CheckSequencePropertyBatchOperation) AsPutPropertyBatchOperation() (*PutPropertyBatchOperation, bool) {
11855	return nil, false
11856}
11857
11858// AsPropertyBatchOperation is the BasicPropertyBatchOperation implementation for CheckSequencePropertyBatchOperation.
11859func (cspbo CheckSequencePropertyBatchOperation) AsPropertyBatchOperation() (*PropertyBatchOperation, bool) {
11860	return nil, false
11861}
11862
11863// AsBasicPropertyBatchOperation is the BasicPropertyBatchOperation implementation for CheckSequencePropertyBatchOperation.
11864func (cspbo CheckSequencePropertyBatchOperation) AsBasicPropertyBatchOperation() (BasicPropertyBatchOperation, bool) {
11865	return &cspbo, true
11866}
11867
11868// CheckValuePropertyBatchOperation represents a PropertyBatchOperation that compares the value of the
11869// property with the expected value.
11870// The CheckValuePropertyBatchOperation is generally used as a precondition for the write operations in the
11871// batch.
11872// Note that if one PropertyBatchOperation in a PropertyBatch fails,
11873// the entire batch fails and cannot be committed in a transactional manner.
11874type CheckValuePropertyBatchOperation struct {
11875	// Value - The expected property value.
11876	Value BasicPropertyValue `json:"Value,omitempty"`
11877	// PropertyName - The name of the Service Fabric property.
11878	PropertyName *string `json:"PropertyName,omitempty"`
11879	// Kind - Possible values include: 'KindPropertyBatchOperation', 'KindCheckExists', 'KindCheckSequence', 'KindCheckValue', 'KindDelete', 'KindGet', 'KindPut'
11880	Kind KindBasicPropertyBatchOperation `json:"Kind,omitempty"`
11881}
11882
11883// MarshalJSON is the custom marshaler for CheckValuePropertyBatchOperation.
11884func (cvpbo CheckValuePropertyBatchOperation) MarshalJSON() ([]byte, error) {
11885	cvpbo.Kind = KindCheckValue
11886	objectMap := make(map[string]interface{})
11887	objectMap["Value"] = cvpbo.Value
11888	if cvpbo.PropertyName != nil {
11889		objectMap["PropertyName"] = cvpbo.PropertyName
11890	}
11891	if cvpbo.Kind != "" {
11892		objectMap["Kind"] = cvpbo.Kind
11893	}
11894	return json.Marshal(objectMap)
11895}
11896
11897// AsCheckExistsPropertyBatchOperation is the BasicPropertyBatchOperation implementation for CheckValuePropertyBatchOperation.
11898func (cvpbo CheckValuePropertyBatchOperation) AsCheckExistsPropertyBatchOperation() (*CheckExistsPropertyBatchOperation, bool) {
11899	return nil, false
11900}
11901
11902// AsCheckSequencePropertyBatchOperation is the BasicPropertyBatchOperation implementation for CheckValuePropertyBatchOperation.
11903func (cvpbo CheckValuePropertyBatchOperation) AsCheckSequencePropertyBatchOperation() (*CheckSequencePropertyBatchOperation, bool) {
11904	return nil, false
11905}
11906
11907// AsCheckValuePropertyBatchOperation is the BasicPropertyBatchOperation implementation for CheckValuePropertyBatchOperation.
11908func (cvpbo CheckValuePropertyBatchOperation) AsCheckValuePropertyBatchOperation() (*CheckValuePropertyBatchOperation, bool) {
11909	return &cvpbo, true
11910}
11911
11912// AsDeletePropertyBatchOperation is the BasicPropertyBatchOperation implementation for CheckValuePropertyBatchOperation.
11913func (cvpbo CheckValuePropertyBatchOperation) AsDeletePropertyBatchOperation() (*DeletePropertyBatchOperation, bool) {
11914	return nil, false
11915}
11916
11917// AsGetPropertyBatchOperation is the BasicPropertyBatchOperation implementation for CheckValuePropertyBatchOperation.
11918func (cvpbo CheckValuePropertyBatchOperation) AsGetPropertyBatchOperation() (*GetPropertyBatchOperation, bool) {
11919	return nil, false
11920}
11921
11922// AsPutPropertyBatchOperation is the BasicPropertyBatchOperation implementation for CheckValuePropertyBatchOperation.
11923func (cvpbo CheckValuePropertyBatchOperation) AsPutPropertyBatchOperation() (*PutPropertyBatchOperation, bool) {
11924	return nil, false
11925}
11926
11927// AsPropertyBatchOperation is the BasicPropertyBatchOperation implementation for CheckValuePropertyBatchOperation.
11928func (cvpbo CheckValuePropertyBatchOperation) AsPropertyBatchOperation() (*PropertyBatchOperation, bool) {
11929	return nil, false
11930}
11931
11932// AsBasicPropertyBatchOperation is the BasicPropertyBatchOperation implementation for CheckValuePropertyBatchOperation.
11933func (cvpbo CheckValuePropertyBatchOperation) AsBasicPropertyBatchOperation() (BasicPropertyBatchOperation, bool) {
11934	return &cvpbo, true
11935}
11936
11937// UnmarshalJSON is the custom unmarshaler for CheckValuePropertyBatchOperation struct.
11938func (cvpbo *CheckValuePropertyBatchOperation) UnmarshalJSON(body []byte) error {
11939	var m map[string]*json.RawMessage
11940	err := json.Unmarshal(body, &m)
11941	if err != nil {
11942		return err
11943	}
11944	for k, v := range m {
11945		switch k {
11946		case "Value":
11947			if v != nil {
11948				value, err := unmarshalBasicPropertyValue(*v)
11949				if err != nil {
11950					return err
11951				}
11952				cvpbo.Value = value
11953			}
11954		case "PropertyName":
11955			if v != nil {
11956				var propertyName string
11957				err = json.Unmarshal(*v, &propertyName)
11958				if err != nil {
11959					return err
11960				}
11961				cvpbo.PropertyName = &propertyName
11962			}
11963		case "Kind":
11964			if v != nil {
11965				var kind KindBasicPropertyBatchOperation
11966				err = json.Unmarshal(*v, &kind)
11967				if err != nil {
11968					return err
11969				}
11970				cvpbo.Kind = kind
11971			}
11972		}
11973	}
11974
11975	return nil
11976}
11977
11978// ClusterConfiguration information about the standalone cluster configuration.
11979type ClusterConfiguration struct {
11980	autorest.Response `json:"-"`
11981	// ClusterConfiguration - The contents of the cluster configuration file.
11982	ClusterConfiguration *string `json:"ClusterConfiguration,omitempty"`
11983}
11984
11985// ClusterConfigurationUpgradeDescription describes the parameters for a standalone cluster configuration
11986// upgrade.
11987type ClusterConfigurationUpgradeDescription struct {
11988	// 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).
11989	ClusterConfig *string `json:"ClusterConfig,omitempty"`
11990	// HealthCheckRetryTimeout - The length of time between attempts to perform health checks if the application or cluster is not healthy.
11991	HealthCheckRetryTimeout *string `json:"HealthCheckRetryTimeout,omitempty"`
11992	// HealthCheckWaitDurationInSeconds - The length of time to wait after completing an upgrade domain before starting the health checks process.
11993	HealthCheckWaitDurationInSeconds *string `json:"HealthCheckWaitDurationInSeconds,omitempty"`
11994	// HealthCheckStableDurationInSeconds - The length of time that the application or cluster must remain healthy before the upgrade proceeds to the next upgrade domain.
11995	HealthCheckStableDurationInSeconds *string `json:"HealthCheckStableDurationInSeconds,omitempty"`
11996	// UpgradeDomainTimeoutInSeconds - The timeout for the upgrade domain.
11997	UpgradeDomainTimeoutInSeconds *string `json:"UpgradeDomainTimeoutInSeconds,omitempty"`
11998	// UpgradeTimeoutInSeconds - The upgrade timeout.
11999	UpgradeTimeoutInSeconds *string `json:"UpgradeTimeoutInSeconds,omitempty"`
12000	// MaxPercentUnhealthyApplications - The maximum allowed percentage of unhealthy applications during the upgrade. Allowed values are integer values from zero to 100.
12001	MaxPercentUnhealthyApplications *int32 `json:"MaxPercentUnhealthyApplications,omitempty"`
12002	// MaxPercentUnhealthyNodes - The maximum allowed percentage of unhealthy nodes during the upgrade. Allowed values are integer values from zero to 100.
12003	MaxPercentUnhealthyNodes *int32 `json:"MaxPercentUnhealthyNodes,omitempty"`
12004	// MaxPercentDeltaUnhealthyNodes - The maximum allowed percentage of delta health degradation during the upgrade. Allowed values are integer values from zero to 100.
12005	MaxPercentDeltaUnhealthyNodes *int32 `json:"MaxPercentDeltaUnhealthyNodes,omitempty"`
12006	// MaxPercentUpgradeDomainDeltaUnhealthyNodes - The maximum allowed percentage of upgrade domain delta health degradation during the upgrade. Allowed values are integer values from zero to 100.
12007	MaxPercentUpgradeDomainDeltaUnhealthyNodes *int32 `json:"MaxPercentUpgradeDomainDeltaUnhealthyNodes,omitempty"`
12008	// ApplicationHealthPolicies - Defines the application health policy map used to evaluate the health of an application or one of its children entities.
12009	ApplicationHealthPolicies *ApplicationHealthPolicies `json:"ApplicationHealthPolicies,omitempty"`
12010}
12011
12012// ClusterConfigurationUpgradeStatusInfo information about a standalone cluster configuration upgrade
12013// status.
12014type ClusterConfigurationUpgradeStatusInfo struct {
12015	autorest.Response `json:"-"`
12016	// UpgradeState - The state of the upgrade domain. Possible values include: 'UpgradeStateInvalid', 'UpgradeStateRollingBackInProgress', 'UpgradeStateRollingBackCompleted', 'UpgradeStateRollingForwardPending', 'UpgradeStateRollingForwardInProgress', 'UpgradeStateRollingForwardCompleted', 'UpgradeStateFailed'
12017	UpgradeState UpgradeState `json:"UpgradeState,omitempty"`
12018	// ProgressStatus - The cluster manifest version.
12019	ProgressStatus *int32 `json:"ProgressStatus,omitempty"`
12020	// ConfigVersion - The cluster configuration version.
12021	ConfigVersion *string `json:"ConfigVersion,omitempty"`
12022	// Details - The cluster upgrade status details.
12023	Details *string `json:"Details,omitempty"`
12024}
12025
12026// BasicClusterEvent represents the base for all Cluster Events.
12027type BasicClusterEvent interface {
12028	AsClusterNewHealthReportEvent() (*ClusterNewHealthReportEvent, bool)
12029	AsClusterHealthReportExpiredEvent() (*ClusterHealthReportExpiredEvent, bool)
12030	AsClusterUpgradeCompletedEvent() (*ClusterUpgradeCompletedEvent, bool)
12031	AsClusterUpgradeDomainCompletedEvent() (*ClusterUpgradeDomainCompletedEvent, bool)
12032	AsClusterUpgradeRollbackCompletedEvent() (*ClusterUpgradeRollbackCompletedEvent, bool)
12033	AsClusterUpgradeRollbackStartedEvent() (*ClusterUpgradeRollbackStartedEvent, bool)
12034	AsClusterUpgradeStartedEvent() (*ClusterUpgradeStartedEvent, bool)
12035	AsChaosStoppedEvent() (*ChaosStoppedEvent, bool)
12036	AsChaosStartedEvent() (*ChaosStartedEvent, bool)
12037	AsClusterEvent() (*ClusterEvent, bool)
12038}
12039
12040// ClusterEvent represents the base for all Cluster Events.
12041type ClusterEvent struct {
12042	// EventInstanceID - The identifier for the FabricEvent instance.
12043	EventInstanceID *uuid.UUID `json:"EventInstanceId,omitempty"`
12044	// Category - The category of event.
12045	Category *string `json:"Category,omitempty"`
12046	// TimeStamp - The time event was logged.
12047	TimeStamp *date.Time `json:"TimeStamp,omitempty"`
12048	// HasCorrelatedEvents - Shows there is existing related events available.
12049	HasCorrelatedEvents *bool `json:"HasCorrelatedEvents,omitempty"`
12050	// 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'
12051	Kind KindBasicFabricEvent `json:"Kind,omitempty"`
12052}
12053
12054func unmarshalBasicClusterEvent(body []byte) (BasicClusterEvent, error) {
12055	var m map[string]interface{}
12056	err := json.Unmarshal(body, &m)
12057	if err != nil {
12058		return nil, err
12059	}
12060
12061	switch m["Kind"] {
12062	case string(KindClusterNewHealthReport):
12063		var cnhre ClusterNewHealthReportEvent
12064		err := json.Unmarshal(body, &cnhre)
12065		return cnhre, err
12066	case string(KindClusterHealthReportExpired):
12067		var chree ClusterHealthReportExpiredEvent
12068		err := json.Unmarshal(body, &chree)
12069		return chree, err
12070	case string(KindClusterUpgradeCompleted):
12071		var cuce ClusterUpgradeCompletedEvent
12072		err := json.Unmarshal(body, &cuce)
12073		return cuce, err
12074	case string(KindClusterUpgradeDomainCompleted):
12075		var cudce ClusterUpgradeDomainCompletedEvent
12076		err := json.Unmarshal(body, &cudce)
12077		return cudce, err
12078	case string(KindClusterUpgradeRollbackCompleted):
12079		var curce ClusterUpgradeRollbackCompletedEvent
12080		err := json.Unmarshal(body, &curce)
12081		return curce, err
12082	case string(KindClusterUpgradeRollbackStarted):
12083		var curse ClusterUpgradeRollbackStartedEvent
12084		err := json.Unmarshal(body, &curse)
12085		return curse, err
12086	case string(KindClusterUpgradeStarted):
12087		var cuse ClusterUpgradeStartedEvent
12088		err := json.Unmarshal(body, &cuse)
12089		return cuse, err
12090	case string(KindChaosStopped):
12091		var cse ChaosStoppedEvent
12092		err := json.Unmarshal(body, &cse)
12093		return cse, err
12094	case string(KindChaosStarted):
12095		var cse ChaosStartedEvent
12096		err := json.Unmarshal(body, &cse)
12097		return cse, err
12098	default:
12099		var ce ClusterEvent
12100		err := json.Unmarshal(body, &ce)
12101		return ce, err
12102	}
12103}
12104func unmarshalBasicClusterEventArray(body []byte) ([]BasicClusterEvent, error) {
12105	var rawMessages []*json.RawMessage
12106	err := json.Unmarshal(body, &rawMessages)
12107	if err != nil {
12108		return nil, err
12109	}
12110
12111	ceArray := make([]BasicClusterEvent, len(rawMessages))
12112
12113	for index, rawMessage := range rawMessages {
12114		ce, err := unmarshalBasicClusterEvent(*rawMessage)
12115		if err != nil {
12116			return nil, err
12117		}
12118		ceArray[index] = ce
12119	}
12120	return ceArray, nil
12121}
12122
12123// MarshalJSON is the custom marshaler for ClusterEvent.
12124func (ce ClusterEvent) MarshalJSON() ([]byte, error) {
12125	ce.Kind = KindClusterEvent
12126	objectMap := make(map[string]interface{})
12127	if ce.EventInstanceID != nil {
12128		objectMap["EventInstanceId"] = ce.EventInstanceID
12129	}
12130	if ce.Category != nil {
12131		objectMap["Category"] = ce.Category
12132	}
12133	if ce.TimeStamp != nil {
12134		objectMap["TimeStamp"] = ce.TimeStamp
12135	}
12136	if ce.HasCorrelatedEvents != nil {
12137		objectMap["HasCorrelatedEvents"] = ce.HasCorrelatedEvents
12138	}
12139	if ce.Kind != "" {
12140		objectMap["Kind"] = ce.Kind
12141	}
12142	return json.Marshal(objectMap)
12143}
12144
12145// AsApplicationEvent is the BasicFabricEvent implementation for ClusterEvent.
12146func (ce ClusterEvent) AsApplicationEvent() (*ApplicationEvent, bool) {
12147	return nil, false
12148}
12149
12150// AsBasicApplicationEvent is the BasicFabricEvent implementation for ClusterEvent.
12151func (ce ClusterEvent) AsBasicApplicationEvent() (BasicApplicationEvent, bool) {
12152	return nil, false
12153}
12154
12155// AsClusterEvent is the BasicFabricEvent implementation for ClusterEvent.
12156func (ce ClusterEvent) AsClusterEvent() (*ClusterEvent, bool) {
12157	return &ce, true
12158}
12159
12160// AsBasicClusterEvent is the BasicFabricEvent implementation for ClusterEvent.
12161func (ce ClusterEvent) AsBasicClusterEvent() (BasicClusterEvent, bool) {
12162	return &ce, true
12163}
12164
12165// AsContainerInstanceEvent is the BasicFabricEvent implementation for ClusterEvent.
12166func (ce ClusterEvent) AsContainerInstanceEvent() (*ContainerInstanceEvent, bool) {
12167	return nil, false
12168}
12169
12170// AsNodeEvent is the BasicFabricEvent implementation for ClusterEvent.
12171func (ce ClusterEvent) AsNodeEvent() (*NodeEvent, bool) {
12172	return nil, false
12173}
12174
12175// AsBasicNodeEvent is the BasicFabricEvent implementation for ClusterEvent.
12176func (ce ClusterEvent) AsBasicNodeEvent() (BasicNodeEvent, bool) {
12177	return nil, false
12178}
12179
12180// AsPartitionAnalysisEvent is the BasicFabricEvent implementation for ClusterEvent.
12181func (ce ClusterEvent) AsPartitionAnalysisEvent() (*PartitionAnalysisEvent, bool) {
12182	return nil, false
12183}
12184
12185// AsBasicPartitionAnalysisEvent is the BasicFabricEvent implementation for ClusterEvent.
12186func (ce ClusterEvent) AsBasicPartitionAnalysisEvent() (BasicPartitionAnalysisEvent, bool) {
12187	return nil, false
12188}
12189
12190// AsPartitionEvent is the BasicFabricEvent implementation for ClusterEvent.
12191func (ce ClusterEvent) AsPartitionEvent() (*PartitionEvent, bool) {
12192	return nil, false
12193}
12194
12195// AsBasicPartitionEvent is the BasicFabricEvent implementation for ClusterEvent.
12196func (ce ClusterEvent) AsBasicPartitionEvent() (BasicPartitionEvent, bool) {
12197	return nil, false
12198}
12199
12200// AsReplicaEvent is the BasicFabricEvent implementation for ClusterEvent.
12201func (ce ClusterEvent) AsReplicaEvent() (*ReplicaEvent, bool) {
12202	return nil, false
12203}
12204
12205// AsBasicReplicaEvent is the BasicFabricEvent implementation for ClusterEvent.
12206func (ce ClusterEvent) AsBasicReplicaEvent() (BasicReplicaEvent, bool) {
12207	return nil, false
12208}
12209
12210// AsServiceEvent is the BasicFabricEvent implementation for ClusterEvent.
12211func (ce ClusterEvent) AsServiceEvent() (*ServiceEvent, bool) {
12212	return nil, false
12213}
12214
12215// AsBasicServiceEvent is the BasicFabricEvent implementation for ClusterEvent.
12216func (ce ClusterEvent) AsBasicServiceEvent() (BasicServiceEvent, bool) {
12217	return nil, false
12218}
12219
12220// AsApplicationCreatedEvent is the BasicFabricEvent implementation for ClusterEvent.
12221func (ce ClusterEvent) AsApplicationCreatedEvent() (*ApplicationCreatedEvent, bool) {
12222	return nil, false
12223}
12224
12225// AsApplicationDeletedEvent is the BasicFabricEvent implementation for ClusterEvent.
12226func (ce ClusterEvent) AsApplicationDeletedEvent() (*ApplicationDeletedEvent, bool) {
12227	return nil, false
12228}
12229
12230// AsApplicationNewHealthReportEvent is the BasicFabricEvent implementation for ClusterEvent.
12231func (ce ClusterEvent) AsApplicationNewHealthReportEvent() (*ApplicationNewHealthReportEvent, bool) {
12232	return nil, false
12233}
12234
12235// AsApplicationHealthReportExpiredEvent is the BasicFabricEvent implementation for ClusterEvent.
12236func (ce ClusterEvent) AsApplicationHealthReportExpiredEvent() (*ApplicationHealthReportExpiredEvent, bool) {
12237	return nil, false
12238}
12239
12240// AsApplicationUpgradeCompletedEvent is the BasicFabricEvent implementation for ClusterEvent.
12241func (ce ClusterEvent) AsApplicationUpgradeCompletedEvent() (*ApplicationUpgradeCompletedEvent, bool) {
12242	return nil, false
12243}
12244
12245// AsApplicationUpgradeDomainCompletedEvent is the BasicFabricEvent implementation for ClusterEvent.
12246func (ce ClusterEvent) AsApplicationUpgradeDomainCompletedEvent() (*ApplicationUpgradeDomainCompletedEvent, bool) {
12247	return nil, false
12248}
12249
12250// AsApplicationUpgradeRollbackCompletedEvent is the BasicFabricEvent implementation for ClusterEvent.
12251func (ce ClusterEvent) AsApplicationUpgradeRollbackCompletedEvent() (*ApplicationUpgradeRollbackCompletedEvent, bool) {
12252	return nil, false
12253}
12254
12255// AsApplicationUpgradeRollbackStartedEvent is the BasicFabricEvent implementation for ClusterEvent.
12256func (ce ClusterEvent) AsApplicationUpgradeRollbackStartedEvent() (*ApplicationUpgradeRollbackStartedEvent, bool) {
12257	return nil, false
12258}
12259
12260// AsApplicationUpgradeStartedEvent is the BasicFabricEvent implementation for ClusterEvent.
12261func (ce ClusterEvent) AsApplicationUpgradeStartedEvent() (*ApplicationUpgradeStartedEvent, bool) {
12262	return nil, false
12263}
12264
12265// AsDeployedApplicationNewHealthReportEvent is the BasicFabricEvent implementation for ClusterEvent.
12266func (ce ClusterEvent) AsDeployedApplicationNewHealthReportEvent() (*DeployedApplicationNewHealthReportEvent, bool) {
12267	return nil, false
12268}
12269
12270// AsDeployedApplicationHealthReportExpiredEvent is the BasicFabricEvent implementation for ClusterEvent.
12271func (ce ClusterEvent) AsDeployedApplicationHealthReportExpiredEvent() (*DeployedApplicationHealthReportExpiredEvent, bool) {
12272	return nil, false
12273}
12274
12275// AsApplicationProcessExitedEvent is the BasicFabricEvent implementation for ClusterEvent.
12276func (ce ClusterEvent) AsApplicationProcessExitedEvent() (*ApplicationProcessExitedEvent, bool) {
12277	return nil, false
12278}
12279
12280// AsApplicationContainerInstanceExitedEvent is the BasicFabricEvent implementation for ClusterEvent.
12281func (ce ClusterEvent) AsApplicationContainerInstanceExitedEvent() (*ApplicationContainerInstanceExitedEvent, bool) {
12282	return nil, false
12283}
12284
12285// AsNodeAbortedEvent is the BasicFabricEvent implementation for ClusterEvent.
12286func (ce ClusterEvent) AsNodeAbortedEvent() (*NodeAbortedEvent, bool) {
12287	return nil, false
12288}
12289
12290// AsNodeAddedToClusterEvent is the BasicFabricEvent implementation for ClusterEvent.
12291func (ce ClusterEvent) AsNodeAddedToClusterEvent() (*NodeAddedToClusterEvent, bool) {
12292	return nil, false
12293}
12294
12295// AsNodeClosedEvent is the BasicFabricEvent implementation for ClusterEvent.
12296func (ce ClusterEvent) AsNodeClosedEvent() (*NodeClosedEvent, bool) {
12297	return nil, false
12298}
12299
12300// AsNodeDeactivateCompletedEvent is the BasicFabricEvent implementation for ClusterEvent.
12301func (ce ClusterEvent) AsNodeDeactivateCompletedEvent() (*NodeDeactivateCompletedEvent, bool) {
12302	return nil, false
12303}
12304
12305// AsNodeDeactivateStartedEvent is the BasicFabricEvent implementation for ClusterEvent.
12306func (ce ClusterEvent) AsNodeDeactivateStartedEvent() (*NodeDeactivateStartedEvent, bool) {
12307	return nil, false
12308}
12309
12310// AsNodeDownEvent is the BasicFabricEvent implementation for ClusterEvent.
12311func (ce ClusterEvent) AsNodeDownEvent() (*NodeDownEvent, bool) {
12312	return nil, false
12313}
12314
12315// AsNodeNewHealthReportEvent is the BasicFabricEvent implementation for ClusterEvent.
12316func (ce ClusterEvent) AsNodeNewHealthReportEvent() (*NodeNewHealthReportEvent, bool) {
12317	return nil, false
12318}
12319
12320// AsNodeHealthReportExpiredEvent is the BasicFabricEvent implementation for ClusterEvent.
12321func (ce ClusterEvent) AsNodeHealthReportExpiredEvent() (*NodeHealthReportExpiredEvent, bool) {
12322	return nil, false
12323}
12324
12325// AsNodeOpenSucceededEvent is the BasicFabricEvent implementation for ClusterEvent.
12326func (ce ClusterEvent) AsNodeOpenSucceededEvent() (*NodeOpenSucceededEvent, bool) {
12327	return nil, false
12328}
12329
12330// AsNodeOpenFailedEvent is the BasicFabricEvent implementation for ClusterEvent.
12331func (ce ClusterEvent) AsNodeOpenFailedEvent() (*NodeOpenFailedEvent, bool) {
12332	return nil, false
12333}
12334
12335// AsNodeRemovedFromClusterEvent is the BasicFabricEvent implementation for ClusterEvent.
12336func (ce ClusterEvent) AsNodeRemovedFromClusterEvent() (*NodeRemovedFromClusterEvent, bool) {
12337	return nil, false
12338}
12339
12340// AsNodeUpEvent is the BasicFabricEvent implementation for ClusterEvent.
12341func (ce ClusterEvent) AsNodeUpEvent() (*NodeUpEvent, bool) {
12342	return nil, false
12343}
12344
12345// AsPartitionNewHealthReportEvent is the BasicFabricEvent implementation for ClusterEvent.
12346func (ce ClusterEvent) AsPartitionNewHealthReportEvent() (*PartitionNewHealthReportEvent, bool) {
12347	return nil, false
12348}
12349
12350// AsPartitionHealthReportExpiredEvent is the BasicFabricEvent implementation for ClusterEvent.
12351func (ce ClusterEvent) AsPartitionHealthReportExpiredEvent() (*PartitionHealthReportExpiredEvent, bool) {
12352	return nil, false
12353}
12354
12355// AsPartitionReconfiguredEvent is the BasicFabricEvent implementation for ClusterEvent.
12356func (ce ClusterEvent) AsPartitionReconfiguredEvent() (*PartitionReconfiguredEvent, bool) {
12357	return nil, false
12358}
12359
12360// AsPartitionPrimaryMoveAnalysisEvent is the BasicFabricEvent implementation for ClusterEvent.
12361func (ce ClusterEvent) AsPartitionPrimaryMoveAnalysisEvent() (*PartitionPrimaryMoveAnalysisEvent, bool) {
12362	return nil, false
12363}
12364
12365// AsServiceCreatedEvent is the BasicFabricEvent implementation for ClusterEvent.
12366func (ce ClusterEvent) AsServiceCreatedEvent() (*ServiceCreatedEvent, bool) {
12367	return nil, false
12368}
12369
12370// AsServiceDeletedEvent is the BasicFabricEvent implementation for ClusterEvent.
12371func (ce ClusterEvent) AsServiceDeletedEvent() (*ServiceDeletedEvent, bool) {
12372	return nil, false
12373}
12374
12375// AsServiceNewHealthReportEvent is the BasicFabricEvent implementation for ClusterEvent.
12376func (ce ClusterEvent) AsServiceNewHealthReportEvent() (*ServiceNewHealthReportEvent, bool) {
12377	return nil, false
12378}
12379
12380// AsServiceHealthReportExpiredEvent is the BasicFabricEvent implementation for ClusterEvent.
12381func (ce ClusterEvent) AsServiceHealthReportExpiredEvent() (*ServiceHealthReportExpiredEvent, bool) {
12382	return nil, false
12383}
12384
12385// AsDeployedServicePackageNewHealthReportEvent is the BasicFabricEvent implementation for ClusterEvent.
12386func (ce ClusterEvent) AsDeployedServicePackageNewHealthReportEvent() (*DeployedServicePackageNewHealthReportEvent, bool) {
12387	return nil, false
12388}
12389
12390// AsDeployedServicePackageHealthReportExpiredEvent is the BasicFabricEvent implementation for ClusterEvent.
12391func (ce ClusterEvent) AsDeployedServicePackageHealthReportExpiredEvent() (*DeployedServicePackageHealthReportExpiredEvent, bool) {
12392	return nil, false
12393}
12394
12395// AsStatefulReplicaNewHealthReportEvent is the BasicFabricEvent implementation for ClusterEvent.
12396func (ce ClusterEvent) AsStatefulReplicaNewHealthReportEvent() (*StatefulReplicaNewHealthReportEvent, bool) {
12397	return nil, false
12398}
12399
12400// AsStatefulReplicaHealthReportExpiredEvent is the BasicFabricEvent implementation for ClusterEvent.
12401func (ce ClusterEvent) AsStatefulReplicaHealthReportExpiredEvent() (*StatefulReplicaHealthReportExpiredEvent, bool) {
12402	return nil, false
12403}
12404
12405// AsStatelessReplicaNewHealthReportEvent is the BasicFabricEvent implementation for ClusterEvent.
12406func (ce ClusterEvent) AsStatelessReplicaNewHealthReportEvent() (*StatelessReplicaNewHealthReportEvent, bool) {
12407	return nil, false
12408}
12409
12410// AsStatelessReplicaHealthReportExpiredEvent is the BasicFabricEvent implementation for ClusterEvent.
12411func (ce ClusterEvent) AsStatelessReplicaHealthReportExpiredEvent() (*StatelessReplicaHealthReportExpiredEvent, bool) {
12412	return nil, false
12413}
12414
12415// AsClusterNewHealthReportEvent is the BasicFabricEvent implementation for ClusterEvent.
12416func (ce ClusterEvent) AsClusterNewHealthReportEvent() (*ClusterNewHealthReportEvent, bool) {
12417	return nil, false
12418}
12419
12420// AsClusterHealthReportExpiredEvent is the BasicFabricEvent implementation for ClusterEvent.
12421func (ce ClusterEvent) AsClusterHealthReportExpiredEvent() (*ClusterHealthReportExpiredEvent, bool) {
12422	return nil, false
12423}
12424
12425// AsClusterUpgradeCompletedEvent is the BasicFabricEvent implementation for ClusterEvent.
12426func (ce ClusterEvent) AsClusterUpgradeCompletedEvent() (*ClusterUpgradeCompletedEvent, bool) {
12427	return nil, false
12428}
12429
12430// AsClusterUpgradeDomainCompletedEvent is the BasicFabricEvent implementation for ClusterEvent.
12431func (ce ClusterEvent) AsClusterUpgradeDomainCompletedEvent() (*ClusterUpgradeDomainCompletedEvent, bool) {
12432	return nil, false
12433}
12434
12435// AsClusterUpgradeRollbackCompletedEvent is the BasicFabricEvent implementation for ClusterEvent.
12436func (ce ClusterEvent) AsClusterUpgradeRollbackCompletedEvent() (*ClusterUpgradeRollbackCompletedEvent, bool) {
12437	return nil, false
12438}
12439
12440// AsClusterUpgradeRollbackStartedEvent is the BasicFabricEvent implementation for ClusterEvent.
12441func (ce ClusterEvent) AsClusterUpgradeRollbackStartedEvent() (*ClusterUpgradeRollbackStartedEvent, bool) {
12442	return nil, false
12443}
12444
12445// AsClusterUpgradeStartedEvent is the BasicFabricEvent implementation for ClusterEvent.
12446func (ce ClusterEvent) AsClusterUpgradeStartedEvent() (*ClusterUpgradeStartedEvent, bool) {
12447	return nil, false
12448}
12449
12450// AsChaosStoppedEvent is the BasicFabricEvent implementation for ClusterEvent.
12451func (ce ClusterEvent) AsChaosStoppedEvent() (*ChaosStoppedEvent, bool) {
12452	return nil, false
12453}
12454
12455// AsChaosStartedEvent is the BasicFabricEvent implementation for ClusterEvent.
12456func (ce ClusterEvent) AsChaosStartedEvent() (*ChaosStartedEvent, bool) {
12457	return nil, false
12458}
12459
12460// AsChaosCodePackageRestartScheduledEvent is the BasicFabricEvent implementation for ClusterEvent.
12461func (ce ClusterEvent) AsChaosCodePackageRestartScheduledEvent() (*ChaosCodePackageRestartScheduledEvent, bool) {
12462	return nil, false
12463}
12464
12465// AsChaosReplicaRemovalScheduledEvent is the BasicFabricEvent implementation for ClusterEvent.
12466func (ce ClusterEvent) AsChaosReplicaRemovalScheduledEvent() (*ChaosReplicaRemovalScheduledEvent, bool) {
12467	return nil, false
12468}
12469
12470// AsChaosPartitionSecondaryMoveScheduledEvent is the BasicFabricEvent implementation for ClusterEvent.
12471func (ce ClusterEvent) AsChaosPartitionSecondaryMoveScheduledEvent() (*ChaosPartitionSecondaryMoveScheduledEvent, bool) {
12472	return nil, false
12473}
12474
12475// AsChaosPartitionPrimaryMoveScheduledEvent is the BasicFabricEvent implementation for ClusterEvent.
12476func (ce ClusterEvent) AsChaosPartitionPrimaryMoveScheduledEvent() (*ChaosPartitionPrimaryMoveScheduledEvent, bool) {
12477	return nil, false
12478}
12479
12480// AsChaosReplicaRestartScheduledEvent is the BasicFabricEvent implementation for ClusterEvent.
12481func (ce ClusterEvent) AsChaosReplicaRestartScheduledEvent() (*ChaosReplicaRestartScheduledEvent, bool) {
12482	return nil, false
12483}
12484
12485// AsChaosNodeRestartScheduledEvent is the BasicFabricEvent implementation for ClusterEvent.
12486func (ce ClusterEvent) AsChaosNodeRestartScheduledEvent() (*ChaosNodeRestartScheduledEvent, bool) {
12487	return nil, false
12488}
12489
12490// AsFabricEvent is the BasicFabricEvent implementation for ClusterEvent.
12491func (ce ClusterEvent) AsFabricEvent() (*FabricEvent, bool) {
12492	return nil, false
12493}
12494
12495// AsBasicFabricEvent is the BasicFabricEvent implementation for ClusterEvent.
12496func (ce ClusterEvent) AsBasicFabricEvent() (BasicFabricEvent, bool) {
12497	return &ce, true
12498}
12499
12500// ClusterHealth represents the health of the cluster.
12501// Contains the cluster aggregated health state, the cluster application and node health states as well as
12502// the health events and the unhealthy evaluations.
12503type ClusterHealth struct {
12504	autorest.Response `json:"-"`
12505	// NodeHealthStates - Cluster node health states as found in the health store.
12506	NodeHealthStates *[]NodeHealthState `json:"NodeHealthStates,omitempty"`
12507	// ApplicationHealthStates - Cluster application health states as found in the health store.
12508	ApplicationHealthStates *[]ApplicationHealthState `json:"ApplicationHealthStates,omitempty"`
12509	// AggregatedHealthState - The HealthState representing the aggregated health state of the entity computed by Health Manager.
12510	// The health evaluation of the entity reflects all events reported on the entity and its children (if any).
12511	// The aggregation is done by applying the desired health policy. Possible values include: 'HealthStateInvalid', 'HealthStateOk', 'HealthStateWarning', 'HealthStateError', 'HealthStateUnknown'
12512	AggregatedHealthState HealthState `json:"AggregatedHealthState,omitempty"`
12513	// HealthEvents - The list of health events reported on the entity.
12514	HealthEvents *[]HealthEvent `json:"HealthEvents,omitempty"`
12515	// UnhealthyEvaluations - The unhealthy evaluations that show why the current aggregated health state was returned by Health Manager.
12516	UnhealthyEvaluations *[]HealthEvaluationWrapper `json:"UnhealthyEvaluations,omitempty"`
12517	// HealthStatistics - Shows the health statistics for all children types of the queried entity.
12518	HealthStatistics *HealthStatistics `json:"HealthStatistics,omitempty"`
12519}
12520
12521// ClusterHealthChunk represents the health chunk of the cluster.
12522// Contains the cluster aggregated health state, and the cluster entities that respect the input filter.
12523type ClusterHealthChunk struct {
12524	autorest.Response `json:"-"`
12525	// HealthState - The HealthState representing the aggregated health state of the cluster computed by Health Manager.
12526	// The health evaluation of the entity reflects all events reported on the entity and its children (if any).
12527	// The aggregation is done by applying the desired cluster health policy and the application health policies. Possible values include: 'HealthStateInvalid', 'HealthStateOk', 'HealthStateWarning', 'HealthStateError', 'HealthStateUnknown'
12528	HealthState HealthState `json:"HealthState,omitempty"`
12529	// NodeHealthStateChunks - The list of node health state chunks in the cluster that respect the filters in the cluster health chunk query description.
12530	NodeHealthStateChunks *NodeHealthStateChunkList `json:"NodeHealthStateChunks,omitempty"`
12531	// ApplicationHealthStateChunks - The list of application health state chunks in the cluster that respect the filters in the cluster health chunk query description.
12532	ApplicationHealthStateChunks *ApplicationHealthStateChunkList `json:"ApplicationHealthStateChunks,omitempty"`
12533}
12534
12535// ClusterHealthChunkQueryDescription the cluster health chunk query description, which can specify the
12536// health policies to evaluate cluster health and very expressive filters to select which cluster entities
12537// to include in response.
12538type ClusterHealthChunkQueryDescription struct {
12539	// NodeFilters - Defines a list of filters that specify which nodes to be included in the returned cluster health chunk.
12540	// 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.
12541	// The cluster health chunk query may specify multiple node filters.
12542	// 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.
12543	NodeFilters *[]NodeHealthStateFilter `json:"NodeFilters,omitempty"`
12544	// ApplicationFilters - Defines a list of filters that specify which applications to be included in the returned cluster health chunk.
12545	// 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.
12546	// The cluster health chunk query may specify multiple application filters.
12547	// 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.
12548	ApplicationFilters *[]ApplicationHealthStateFilter `json:"ApplicationFilters,omitempty"`
12549	// ClusterHealthPolicy - Defines a health policy used to evaluate the health of the cluster or of a cluster node.
12550	ClusterHealthPolicy *ClusterHealthPolicy `json:"ClusterHealthPolicy,omitempty"`
12551	// ApplicationHealthPolicies - Defines the application health policy map used to evaluate the health of an application or one of its children entities.
12552	ApplicationHealthPolicies *ApplicationHealthPolicies `json:"ApplicationHealthPolicies,omitempty"`
12553}
12554
12555// ClusterHealthPolicies health policies to evaluate cluster health.
12556type ClusterHealthPolicies struct {
12557	// ApplicationHealthPolicyMap - Defines a map that contains specific application health policies for different applications.
12558	// Each entry specifies as key the application name and as value an ApplicationHealthPolicy used to evaluate the application health.
12559	// 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).
12560	// The map is empty by default.
12561	ApplicationHealthPolicyMap *[]ApplicationHealthPolicyMapItem `json:"ApplicationHealthPolicyMap,omitempty"`
12562	// ClusterHealthPolicy - Defines a health policy used to evaluate the health of the cluster or of a cluster node.
12563	ClusterHealthPolicy *ClusterHealthPolicy `json:"ClusterHealthPolicy,omitempty"`
12564}
12565
12566// ClusterHealthPolicy defines a health policy used to evaluate the health of the cluster or of a cluster
12567// node.
12568type ClusterHealthPolicy struct {
12569	// ConsiderWarningAsError - Indicates whether warnings are treated with the same severity as errors.
12570	ConsiderWarningAsError *bool `json:"ConsiderWarningAsError,omitempty"`
12571	// 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.
12572	// The percentage represents the maximum tolerated percentage of nodes that can be unhealthy before the cluster is considered in error.
12573	// If the percentage is respected but there is at least one unhealthy node, the health is evaluated as Warning.
12574	// The percentage is calculated by dividing the number of unhealthy nodes over the total number of nodes in the cluster.
12575	// The computation rounds up to tolerate one failure on small numbers of nodes. Default percentage is zero.
12576	// In large clusters, some nodes will always be down or out for repairs, so this percentage should be configured to tolerate that.
12577	MaxPercentUnhealthyNodes *int32 `json:"MaxPercentUnhealthyNodes,omitempty"`
12578	// 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.
12579	// The percentage represents the maximum tolerated percentage of applications that can be unhealthy before the cluster is considered in error.
12580	// If the percentage is respected but there is at least one unhealthy application, the health is evaluated as Warning.
12581	// 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.
12582	// The computation rounds up to tolerate one failure on small numbers of applications. Default percentage is zero.
12583	MaxPercentUnhealthyApplications *int32 `json:"MaxPercentUnhealthyApplications,omitempty"`
12584	// ApplicationTypeHealthPolicyMap - Defines a map with max percentage unhealthy applications for specific application types.
12585	// 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.
12586	// The application type health policy map can be used during cluster health evaluation to describe special application types.
12587	// 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.
12588	// The applications of application types specified in the map are not counted against the global pool of applications.
12589	// For example, if some applications of a type are critical, the cluster administrator can add an entry to the map for that application type
12590	// and assign it a value of 0% (that is, do not tolerate any failures).
12591	// All other applications can be evaluated with MaxPercentUnhealthyApplications set to 20% to tolerate some failures out of the thousands of application instances.
12592	// 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.
12593	ApplicationTypeHealthPolicyMap *[]ApplicationTypeHealthPolicyMapItem `json:"ApplicationTypeHealthPolicyMap,omitempty"`
12594}
12595
12596// ClusterHealthReportExpiredEvent cluster Health Report Expired event.
12597type ClusterHealthReportExpiredEvent struct {
12598	// SourceID - Id of report source.
12599	SourceID *string `json:"SourceId,omitempty"`
12600	// Property - Describes the property.
12601	Property *string `json:"Property,omitempty"`
12602	// HealthState - Describes the property health state.
12603	HealthState *string `json:"HealthState,omitempty"`
12604	// TimeToLiveMs - Time to live in milli-seconds.
12605	TimeToLiveMs *int64 `json:"TimeToLiveMs,omitempty"`
12606	// SequenceNumber - Sequence number of report.
12607	SequenceNumber *int64 `json:"SequenceNumber,omitempty"`
12608	// Description - Description of report.
12609	Description *string `json:"Description,omitempty"`
12610	// RemoveWhenExpired - Indicates the removal when it expires.
12611	RemoveWhenExpired *bool `json:"RemoveWhenExpired,omitempty"`
12612	// SourceUtcTimestamp - Source time.
12613	SourceUtcTimestamp *date.Time `json:"SourceUtcTimestamp,omitempty"`
12614	// EventInstanceID - The identifier for the FabricEvent instance.
12615	EventInstanceID *uuid.UUID `json:"EventInstanceId,omitempty"`
12616	// Category - The category of event.
12617	Category *string `json:"Category,omitempty"`
12618	// TimeStamp - The time event was logged.
12619	TimeStamp *date.Time `json:"TimeStamp,omitempty"`
12620	// HasCorrelatedEvents - Shows there is existing related events available.
12621	HasCorrelatedEvents *bool `json:"HasCorrelatedEvents,omitempty"`
12622	// 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'
12623	Kind KindBasicFabricEvent `json:"Kind,omitempty"`
12624}
12625
12626// MarshalJSON is the custom marshaler for ClusterHealthReportExpiredEvent.
12627func (chree ClusterHealthReportExpiredEvent) MarshalJSON() ([]byte, error) {
12628	chree.Kind = KindClusterHealthReportExpired
12629	objectMap := make(map[string]interface{})
12630	if chree.SourceID != nil {
12631		objectMap["SourceId"] = chree.SourceID
12632	}
12633	if chree.Property != nil {
12634		objectMap["Property"] = chree.Property
12635	}
12636	if chree.HealthState != nil {
12637		objectMap["HealthState"] = chree.HealthState
12638	}
12639	if chree.TimeToLiveMs != nil {
12640		objectMap["TimeToLiveMs"] = chree.TimeToLiveMs
12641	}
12642	if chree.SequenceNumber != nil {
12643		objectMap["SequenceNumber"] = chree.SequenceNumber
12644	}
12645	if chree.Description != nil {
12646		objectMap["Description"] = chree.Description
12647	}
12648	if chree.RemoveWhenExpired != nil {
12649		objectMap["RemoveWhenExpired"] = chree.RemoveWhenExpired
12650	}
12651	if chree.SourceUtcTimestamp != nil {
12652		objectMap["SourceUtcTimestamp"] = chree.SourceUtcTimestamp
12653	}
12654	if chree.EventInstanceID != nil {
12655		objectMap["EventInstanceId"] = chree.EventInstanceID
12656	}
12657	if chree.Category != nil {
12658		objectMap["Category"] = chree.Category
12659	}
12660	if chree.TimeStamp != nil {
12661		objectMap["TimeStamp"] = chree.TimeStamp
12662	}
12663	if chree.HasCorrelatedEvents != nil {
12664		objectMap["HasCorrelatedEvents"] = chree.HasCorrelatedEvents
12665	}
12666	if chree.Kind != "" {
12667		objectMap["Kind"] = chree.Kind
12668	}
12669	return json.Marshal(objectMap)
12670}
12671
12672// AsApplicationEvent is the BasicFabricEvent implementation for ClusterHealthReportExpiredEvent.
12673func (chree ClusterHealthReportExpiredEvent) AsApplicationEvent() (*ApplicationEvent, bool) {
12674	return nil, false
12675}
12676
12677// AsBasicApplicationEvent is the BasicFabricEvent implementation for ClusterHealthReportExpiredEvent.
12678func (chree ClusterHealthReportExpiredEvent) AsBasicApplicationEvent() (BasicApplicationEvent, bool) {
12679	return nil, false
12680}
12681
12682// AsClusterEvent is the BasicFabricEvent implementation for ClusterHealthReportExpiredEvent.
12683func (chree ClusterHealthReportExpiredEvent) AsClusterEvent() (*ClusterEvent, bool) {
12684	return nil, false
12685}
12686
12687// AsBasicClusterEvent is the BasicFabricEvent implementation for ClusterHealthReportExpiredEvent.
12688func (chree ClusterHealthReportExpiredEvent) AsBasicClusterEvent() (BasicClusterEvent, bool) {
12689	return &chree, true
12690}
12691
12692// AsContainerInstanceEvent is the BasicFabricEvent implementation for ClusterHealthReportExpiredEvent.
12693func (chree ClusterHealthReportExpiredEvent) AsContainerInstanceEvent() (*ContainerInstanceEvent, bool) {
12694	return nil, false
12695}
12696
12697// AsNodeEvent is the BasicFabricEvent implementation for ClusterHealthReportExpiredEvent.
12698func (chree ClusterHealthReportExpiredEvent) AsNodeEvent() (*NodeEvent, bool) {
12699	return nil, false
12700}
12701
12702// AsBasicNodeEvent is the BasicFabricEvent implementation for ClusterHealthReportExpiredEvent.
12703func (chree ClusterHealthReportExpiredEvent) AsBasicNodeEvent() (BasicNodeEvent, bool) {
12704	return nil, false
12705}
12706
12707// AsPartitionAnalysisEvent is the BasicFabricEvent implementation for ClusterHealthReportExpiredEvent.
12708func (chree ClusterHealthReportExpiredEvent) AsPartitionAnalysisEvent() (*PartitionAnalysisEvent, bool) {
12709	return nil, false
12710}
12711
12712// AsBasicPartitionAnalysisEvent is the BasicFabricEvent implementation for ClusterHealthReportExpiredEvent.
12713func (chree ClusterHealthReportExpiredEvent) AsBasicPartitionAnalysisEvent() (BasicPartitionAnalysisEvent, bool) {
12714	return nil, false
12715}
12716
12717// AsPartitionEvent is the BasicFabricEvent implementation for ClusterHealthReportExpiredEvent.
12718func (chree ClusterHealthReportExpiredEvent) AsPartitionEvent() (*PartitionEvent, bool) {
12719	return nil, false
12720}
12721
12722// AsBasicPartitionEvent is the BasicFabricEvent implementation for ClusterHealthReportExpiredEvent.
12723func (chree ClusterHealthReportExpiredEvent) AsBasicPartitionEvent() (BasicPartitionEvent, bool) {
12724	return nil, false
12725}
12726
12727// AsReplicaEvent is the BasicFabricEvent implementation for ClusterHealthReportExpiredEvent.
12728func (chree ClusterHealthReportExpiredEvent) AsReplicaEvent() (*ReplicaEvent, bool) {
12729	return nil, false
12730}
12731
12732// AsBasicReplicaEvent is the BasicFabricEvent implementation for ClusterHealthReportExpiredEvent.
12733func (chree ClusterHealthReportExpiredEvent) AsBasicReplicaEvent() (BasicReplicaEvent, bool) {
12734	return nil, false
12735}
12736
12737// AsServiceEvent is the BasicFabricEvent implementation for ClusterHealthReportExpiredEvent.
12738func (chree ClusterHealthReportExpiredEvent) AsServiceEvent() (*ServiceEvent, bool) {
12739	return nil, false
12740}
12741
12742// AsBasicServiceEvent is the BasicFabricEvent implementation for ClusterHealthReportExpiredEvent.
12743func (chree ClusterHealthReportExpiredEvent) AsBasicServiceEvent() (BasicServiceEvent, bool) {
12744	return nil, false
12745}
12746
12747// AsApplicationCreatedEvent is the BasicFabricEvent implementation for ClusterHealthReportExpiredEvent.
12748func (chree ClusterHealthReportExpiredEvent) AsApplicationCreatedEvent() (*ApplicationCreatedEvent, bool) {
12749	return nil, false
12750}
12751
12752// AsApplicationDeletedEvent is the BasicFabricEvent implementation for ClusterHealthReportExpiredEvent.
12753func (chree ClusterHealthReportExpiredEvent) AsApplicationDeletedEvent() (*ApplicationDeletedEvent, bool) {
12754	return nil, false
12755}
12756
12757// AsApplicationNewHealthReportEvent is the BasicFabricEvent implementation for ClusterHealthReportExpiredEvent.
12758func (chree ClusterHealthReportExpiredEvent) AsApplicationNewHealthReportEvent() (*ApplicationNewHealthReportEvent, bool) {
12759	return nil, false
12760}
12761
12762// AsApplicationHealthReportExpiredEvent is the BasicFabricEvent implementation for ClusterHealthReportExpiredEvent.
12763func (chree ClusterHealthReportExpiredEvent) AsApplicationHealthReportExpiredEvent() (*ApplicationHealthReportExpiredEvent, bool) {
12764	return nil, false
12765}
12766
12767// AsApplicationUpgradeCompletedEvent is the BasicFabricEvent implementation for ClusterHealthReportExpiredEvent.
12768func (chree ClusterHealthReportExpiredEvent) AsApplicationUpgradeCompletedEvent() (*ApplicationUpgradeCompletedEvent, bool) {
12769	return nil, false
12770}
12771
12772// AsApplicationUpgradeDomainCompletedEvent is the BasicFabricEvent implementation for ClusterHealthReportExpiredEvent.
12773func (chree ClusterHealthReportExpiredEvent) AsApplicationUpgradeDomainCompletedEvent() (*ApplicationUpgradeDomainCompletedEvent, bool) {
12774	return nil, false
12775}
12776
12777// AsApplicationUpgradeRollbackCompletedEvent is the BasicFabricEvent implementation for ClusterHealthReportExpiredEvent.
12778func (chree ClusterHealthReportExpiredEvent) AsApplicationUpgradeRollbackCompletedEvent() (*ApplicationUpgradeRollbackCompletedEvent, bool) {
12779	return nil, false
12780}
12781
12782// AsApplicationUpgradeRollbackStartedEvent is the BasicFabricEvent implementation for ClusterHealthReportExpiredEvent.
12783func (chree ClusterHealthReportExpiredEvent) AsApplicationUpgradeRollbackStartedEvent() (*ApplicationUpgradeRollbackStartedEvent, bool) {
12784	return nil, false
12785}
12786
12787// AsApplicationUpgradeStartedEvent is the BasicFabricEvent implementation for ClusterHealthReportExpiredEvent.
12788func (chree ClusterHealthReportExpiredEvent) AsApplicationUpgradeStartedEvent() (*ApplicationUpgradeStartedEvent, bool) {
12789	return nil, false
12790}
12791
12792// AsDeployedApplicationNewHealthReportEvent is the BasicFabricEvent implementation for ClusterHealthReportExpiredEvent.
12793func (chree ClusterHealthReportExpiredEvent) AsDeployedApplicationNewHealthReportEvent() (*DeployedApplicationNewHealthReportEvent, bool) {
12794	return nil, false
12795}
12796
12797// AsDeployedApplicationHealthReportExpiredEvent is the BasicFabricEvent implementation for ClusterHealthReportExpiredEvent.
12798func (chree ClusterHealthReportExpiredEvent) AsDeployedApplicationHealthReportExpiredEvent() (*DeployedApplicationHealthReportExpiredEvent, bool) {
12799	return nil, false
12800}
12801
12802// AsApplicationProcessExitedEvent is the BasicFabricEvent implementation for ClusterHealthReportExpiredEvent.
12803func (chree ClusterHealthReportExpiredEvent) AsApplicationProcessExitedEvent() (*ApplicationProcessExitedEvent, bool) {
12804	return nil, false
12805}
12806
12807// AsApplicationContainerInstanceExitedEvent is the BasicFabricEvent implementation for ClusterHealthReportExpiredEvent.
12808func (chree ClusterHealthReportExpiredEvent) AsApplicationContainerInstanceExitedEvent() (*ApplicationContainerInstanceExitedEvent, bool) {
12809	return nil, false
12810}
12811
12812// AsNodeAbortedEvent is the BasicFabricEvent implementation for ClusterHealthReportExpiredEvent.
12813func (chree ClusterHealthReportExpiredEvent) AsNodeAbortedEvent() (*NodeAbortedEvent, bool) {
12814	return nil, false
12815}
12816
12817// AsNodeAddedToClusterEvent is the BasicFabricEvent implementation for ClusterHealthReportExpiredEvent.
12818func (chree ClusterHealthReportExpiredEvent) AsNodeAddedToClusterEvent() (*NodeAddedToClusterEvent, bool) {
12819	return nil, false
12820}
12821
12822// AsNodeClosedEvent is the BasicFabricEvent implementation for ClusterHealthReportExpiredEvent.
12823func (chree ClusterHealthReportExpiredEvent) AsNodeClosedEvent() (*NodeClosedEvent, bool) {
12824	return nil, false
12825}
12826
12827// AsNodeDeactivateCompletedEvent is the BasicFabricEvent implementation for ClusterHealthReportExpiredEvent.
12828func (chree ClusterHealthReportExpiredEvent) AsNodeDeactivateCompletedEvent() (*NodeDeactivateCompletedEvent, bool) {
12829	return nil, false
12830}
12831
12832// AsNodeDeactivateStartedEvent is the BasicFabricEvent implementation for ClusterHealthReportExpiredEvent.
12833func (chree ClusterHealthReportExpiredEvent) AsNodeDeactivateStartedEvent() (*NodeDeactivateStartedEvent, bool) {
12834	return nil, false
12835}
12836
12837// AsNodeDownEvent is the BasicFabricEvent implementation for ClusterHealthReportExpiredEvent.
12838func (chree ClusterHealthReportExpiredEvent) AsNodeDownEvent() (*NodeDownEvent, bool) {
12839	return nil, false
12840}
12841
12842// AsNodeNewHealthReportEvent is the BasicFabricEvent implementation for ClusterHealthReportExpiredEvent.
12843func (chree ClusterHealthReportExpiredEvent) AsNodeNewHealthReportEvent() (*NodeNewHealthReportEvent, bool) {
12844	return nil, false
12845}
12846
12847// AsNodeHealthReportExpiredEvent is the BasicFabricEvent implementation for ClusterHealthReportExpiredEvent.
12848func (chree ClusterHealthReportExpiredEvent) AsNodeHealthReportExpiredEvent() (*NodeHealthReportExpiredEvent, bool) {
12849	return nil, false
12850}
12851
12852// AsNodeOpenSucceededEvent is the BasicFabricEvent implementation for ClusterHealthReportExpiredEvent.
12853func (chree ClusterHealthReportExpiredEvent) AsNodeOpenSucceededEvent() (*NodeOpenSucceededEvent, bool) {
12854	return nil, false
12855}
12856
12857// AsNodeOpenFailedEvent is the BasicFabricEvent implementation for ClusterHealthReportExpiredEvent.
12858func (chree ClusterHealthReportExpiredEvent) AsNodeOpenFailedEvent() (*NodeOpenFailedEvent, bool) {
12859	return nil, false
12860}
12861
12862// AsNodeRemovedFromClusterEvent is the BasicFabricEvent implementation for ClusterHealthReportExpiredEvent.
12863func (chree ClusterHealthReportExpiredEvent) AsNodeRemovedFromClusterEvent() (*NodeRemovedFromClusterEvent, bool) {
12864	return nil, false
12865}
12866
12867// AsNodeUpEvent is the BasicFabricEvent implementation for ClusterHealthReportExpiredEvent.
12868func (chree ClusterHealthReportExpiredEvent) AsNodeUpEvent() (*NodeUpEvent, bool) {
12869	return nil, false
12870}
12871
12872// AsPartitionNewHealthReportEvent is the BasicFabricEvent implementation for ClusterHealthReportExpiredEvent.
12873func (chree ClusterHealthReportExpiredEvent) AsPartitionNewHealthReportEvent() (*PartitionNewHealthReportEvent, bool) {
12874	return nil, false
12875}
12876
12877// AsPartitionHealthReportExpiredEvent is the BasicFabricEvent implementation for ClusterHealthReportExpiredEvent.
12878func (chree ClusterHealthReportExpiredEvent) AsPartitionHealthReportExpiredEvent() (*PartitionHealthReportExpiredEvent, bool) {
12879	return nil, false
12880}
12881
12882// AsPartitionReconfiguredEvent is the BasicFabricEvent implementation for ClusterHealthReportExpiredEvent.
12883func (chree ClusterHealthReportExpiredEvent) AsPartitionReconfiguredEvent() (*PartitionReconfiguredEvent, bool) {
12884	return nil, false
12885}
12886
12887// AsPartitionPrimaryMoveAnalysisEvent is the BasicFabricEvent implementation for ClusterHealthReportExpiredEvent.
12888func (chree ClusterHealthReportExpiredEvent) AsPartitionPrimaryMoveAnalysisEvent() (*PartitionPrimaryMoveAnalysisEvent, bool) {
12889	return nil, false
12890}
12891
12892// AsServiceCreatedEvent is the BasicFabricEvent implementation for ClusterHealthReportExpiredEvent.
12893func (chree ClusterHealthReportExpiredEvent) AsServiceCreatedEvent() (*ServiceCreatedEvent, bool) {
12894	return nil, false
12895}
12896
12897// AsServiceDeletedEvent is the BasicFabricEvent implementation for ClusterHealthReportExpiredEvent.
12898func (chree ClusterHealthReportExpiredEvent) AsServiceDeletedEvent() (*ServiceDeletedEvent, bool) {
12899	return nil, false
12900}
12901
12902// AsServiceNewHealthReportEvent is the BasicFabricEvent implementation for ClusterHealthReportExpiredEvent.
12903func (chree ClusterHealthReportExpiredEvent) AsServiceNewHealthReportEvent() (*ServiceNewHealthReportEvent, bool) {
12904	return nil, false
12905}
12906
12907// AsServiceHealthReportExpiredEvent is the BasicFabricEvent implementation for ClusterHealthReportExpiredEvent.
12908func (chree ClusterHealthReportExpiredEvent) AsServiceHealthReportExpiredEvent() (*ServiceHealthReportExpiredEvent, bool) {
12909	return nil, false
12910}
12911
12912// AsDeployedServicePackageNewHealthReportEvent is the BasicFabricEvent implementation for ClusterHealthReportExpiredEvent.
12913func (chree ClusterHealthReportExpiredEvent) AsDeployedServicePackageNewHealthReportEvent() (*DeployedServicePackageNewHealthReportEvent, bool) {
12914	return nil, false
12915}
12916
12917// AsDeployedServicePackageHealthReportExpiredEvent is the BasicFabricEvent implementation for ClusterHealthReportExpiredEvent.
12918func (chree ClusterHealthReportExpiredEvent) AsDeployedServicePackageHealthReportExpiredEvent() (*DeployedServicePackageHealthReportExpiredEvent, bool) {
12919	return nil, false
12920}
12921
12922// AsStatefulReplicaNewHealthReportEvent is the BasicFabricEvent implementation for ClusterHealthReportExpiredEvent.
12923func (chree ClusterHealthReportExpiredEvent) AsStatefulReplicaNewHealthReportEvent() (*StatefulReplicaNewHealthReportEvent, bool) {
12924	return nil, false
12925}
12926
12927// AsStatefulReplicaHealthReportExpiredEvent is the BasicFabricEvent implementation for ClusterHealthReportExpiredEvent.
12928func (chree ClusterHealthReportExpiredEvent) AsStatefulReplicaHealthReportExpiredEvent() (*StatefulReplicaHealthReportExpiredEvent, bool) {
12929	return nil, false
12930}
12931
12932// AsStatelessReplicaNewHealthReportEvent is the BasicFabricEvent implementation for ClusterHealthReportExpiredEvent.
12933func (chree ClusterHealthReportExpiredEvent) AsStatelessReplicaNewHealthReportEvent() (*StatelessReplicaNewHealthReportEvent, bool) {
12934	return nil, false
12935}
12936
12937// AsStatelessReplicaHealthReportExpiredEvent is the BasicFabricEvent implementation for ClusterHealthReportExpiredEvent.
12938func (chree ClusterHealthReportExpiredEvent) AsStatelessReplicaHealthReportExpiredEvent() (*StatelessReplicaHealthReportExpiredEvent, bool) {
12939	return nil, false
12940}
12941
12942// AsClusterNewHealthReportEvent is the BasicFabricEvent implementation for ClusterHealthReportExpiredEvent.
12943func (chree ClusterHealthReportExpiredEvent) AsClusterNewHealthReportEvent() (*ClusterNewHealthReportEvent, bool) {
12944	return nil, false
12945}
12946
12947// AsClusterHealthReportExpiredEvent is the BasicFabricEvent implementation for ClusterHealthReportExpiredEvent.
12948func (chree ClusterHealthReportExpiredEvent) AsClusterHealthReportExpiredEvent() (*ClusterHealthReportExpiredEvent, bool) {
12949	return &chree, true
12950}
12951
12952// AsClusterUpgradeCompletedEvent is the BasicFabricEvent implementation for ClusterHealthReportExpiredEvent.
12953func (chree ClusterHealthReportExpiredEvent) AsClusterUpgradeCompletedEvent() (*ClusterUpgradeCompletedEvent, bool) {
12954	return nil, false
12955}
12956
12957// AsClusterUpgradeDomainCompletedEvent is the BasicFabricEvent implementation for ClusterHealthReportExpiredEvent.
12958func (chree ClusterHealthReportExpiredEvent) AsClusterUpgradeDomainCompletedEvent() (*ClusterUpgradeDomainCompletedEvent, bool) {
12959	return nil, false
12960}
12961
12962// AsClusterUpgradeRollbackCompletedEvent is the BasicFabricEvent implementation for ClusterHealthReportExpiredEvent.
12963func (chree ClusterHealthReportExpiredEvent) AsClusterUpgradeRollbackCompletedEvent() (*ClusterUpgradeRollbackCompletedEvent, bool) {
12964	return nil, false
12965}
12966
12967// AsClusterUpgradeRollbackStartedEvent is the BasicFabricEvent implementation for ClusterHealthReportExpiredEvent.
12968func (chree ClusterHealthReportExpiredEvent) AsClusterUpgradeRollbackStartedEvent() (*ClusterUpgradeRollbackStartedEvent, bool) {
12969	return nil, false
12970}
12971
12972// AsClusterUpgradeStartedEvent is the BasicFabricEvent implementation for ClusterHealthReportExpiredEvent.
12973func (chree ClusterHealthReportExpiredEvent) AsClusterUpgradeStartedEvent() (*ClusterUpgradeStartedEvent, bool) {
12974	return nil, false
12975}
12976
12977// AsChaosStoppedEvent is the BasicFabricEvent implementation for ClusterHealthReportExpiredEvent.
12978func (chree ClusterHealthReportExpiredEvent) AsChaosStoppedEvent() (*ChaosStoppedEvent, bool) {
12979	return nil, false
12980}
12981
12982// AsChaosStartedEvent is the BasicFabricEvent implementation for ClusterHealthReportExpiredEvent.
12983func (chree ClusterHealthReportExpiredEvent) AsChaosStartedEvent() (*ChaosStartedEvent, bool) {
12984	return nil, false
12985}
12986
12987// AsChaosCodePackageRestartScheduledEvent is the BasicFabricEvent implementation for ClusterHealthReportExpiredEvent.
12988func (chree ClusterHealthReportExpiredEvent) AsChaosCodePackageRestartScheduledEvent() (*ChaosCodePackageRestartScheduledEvent, bool) {
12989	return nil, false
12990}
12991
12992// AsChaosReplicaRemovalScheduledEvent is the BasicFabricEvent implementation for ClusterHealthReportExpiredEvent.
12993func (chree ClusterHealthReportExpiredEvent) AsChaosReplicaRemovalScheduledEvent() (*ChaosReplicaRemovalScheduledEvent, bool) {
12994	return nil, false
12995}
12996
12997// AsChaosPartitionSecondaryMoveScheduledEvent is the BasicFabricEvent implementation for ClusterHealthReportExpiredEvent.
12998func (chree ClusterHealthReportExpiredEvent) AsChaosPartitionSecondaryMoveScheduledEvent() (*ChaosPartitionSecondaryMoveScheduledEvent, bool) {
12999	return nil, false
13000}
13001
13002// AsChaosPartitionPrimaryMoveScheduledEvent is the BasicFabricEvent implementation for ClusterHealthReportExpiredEvent.
13003func (chree ClusterHealthReportExpiredEvent) AsChaosPartitionPrimaryMoveScheduledEvent() (*ChaosPartitionPrimaryMoveScheduledEvent, bool) {
13004	return nil, false
13005}
13006
13007// AsChaosReplicaRestartScheduledEvent is the BasicFabricEvent implementation for ClusterHealthReportExpiredEvent.
13008func (chree ClusterHealthReportExpiredEvent) AsChaosReplicaRestartScheduledEvent() (*ChaosReplicaRestartScheduledEvent, bool) {
13009	return nil, false
13010}
13011
13012// AsChaosNodeRestartScheduledEvent is the BasicFabricEvent implementation for ClusterHealthReportExpiredEvent.
13013func (chree ClusterHealthReportExpiredEvent) AsChaosNodeRestartScheduledEvent() (*ChaosNodeRestartScheduledEvent, bool) {
13014	return nil, false
13015}
13016
13017// AsFabricEvent is the BasicFabricEvent implementation for ClusterHealthReportExpiredEvent.
13018func (chree ClusterHealthReportExpiredEvent) AsFabricEvent() (*FabricEvent, bool) {
13019	return nil, false
13020}
13021
13022// AsBasicFabricEvent is the BasicFabricEvent implementation for ClusterHealthReportExpiredEvent.
13023func (chree ClusterHealthReportExpiredEvent) AsBasicFabricEvent() (BasicFabricEvent, bool) {
13024	return &chree, true
13025}
13026
13027// ClusterLoadInfo information about load in a Service Fabric cluster. It holds a summary of all metrics
13028// and their load in a cluster.
13029type ClusterLoadInfo struct {
13030	autorest.Response `json:"-"`
13031	// LastBalancingStartTimeUtc - The starting time of last resource balancing run.
13032	LastBalancingStartTimeUtc *date.Time `json:"LastBalancingStartTimeUtc,omitempty"`
13033	// LastBalancingEndTimeUtc - The end time of last resource balancing run.
13034	LastBalancingEndTimeUtc *date.Time `json:"LastBalancingEndTimeUtc,omitempty"`
13035	// LoadMetricInformation - List that contains metrics and their load information in this cluster.
13036	LoadMetricInformation *[]LoadMetricInformation `json:"LoadMetricInformation,omitempty"`
13037}
13038
13039// ClusterManifest information about the cluster manifest.
13040type ClusterManifest struct {
13041	autorest.Response `json:"-"`
13042	// Manifest - The contents of the cluster manifest file.
13043	Manifest *string `json:"Manifest,omitempty"`
13044}
13045
13046// ClusterNewHealthReportEvent cluster Health Report Created event.
13047type ClusterNewHealthReportEvent struct {
13048	// SourceID - Id of report source.
13049	SourceID *string `json:"SourceId,omitempty"`
13050	// Property - Describes the property.
13051	Property *string `json:"Property,omitempty"`
13052	// HealthState - Describes the property health state.
13053	HealthState *string `json:"HealthState,omitempty"`
13054	// TimeToLiveMs - Time to live in milli-seconds.
13055	TimeToLiveMs *int64 `json:"TimeToLiveMs,omitempty"`
13056	// SequenceNumber - Sequence number of report.
13057	SequenceNumber *int64 `json:"SequenceNumber,omitempty"`
13058	// Description - Description of report.
13059	Description *string `json:"Description,omitempty"`
13060	// RemoveWhenExpired - Indicates the removal when it expires.
13061	RemoveWhenExpired *bool `json:"RemoveWhenExpired,omitempty"`
13062	// SourceUtcTimestamp - Source time.
13063	SourceUtcTimestamp *date.Time `json:"SourceUtcTimestamp,omitempty"`
13064	// EventInstanceID - The identifier for the FabricEvent instance.
13065	EventInstanceID *uuid.UUID `json:"EventInstanceId,omitempty"`
13066	// Category - The category of event.
13067	Category *string `json:"Category,omitempty"`
13068	// TimeStamp - The time event was logged.
13069	TimeStamp *date.Time `json:"TimeStamp,omitempty"`
13070	// HasCorrelatedEvents - Shows there is existing related events available.
13071	HasCorrelatedEvents *bool `json:"HasCorrelatedEvents,omitempty"`
13072	// 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'
13073	Kind KindBasicFabricEvent `json:"Kind,omitempty"`
13074}
13075
13076// MarshalJSON is the custom marshaler for ClusterNewHealthReportEvent.
13077func (cnhre ClusterNewHealthReportEvent) MarshalJSON() ([]byte, error) {
13078	cnhre.Kind = KindClusterNewHealthReport
13079	objectMap := make(map[string]interface{})
13080	if cnhre.SourceID != nil {
13081		objectMap["SourceId"] = cnhre.SourceID
13082	}
13083	if cnhre.Property != nil {
13084		objectMap["Property"] = cnhre.Property
13085	}
13086	if cnhre.HealthState != nil {
13087		objectMap["HealthState"] = cnhre.HealthState
13088	}
13089	if cnhre.TimeToLiveMs != nil {
13090		objectMap["TimeToLiveMs"] = cnhre.TimeToLiveMs
13091	}
13092	if cnhre.SequenceNumber != nil {
13093		objectMap["SequenceNumber"] = cnhre.SequenceNumber
13094	}
13095	if cnhre.Description != nil {
13096		objectMap["Description"] = cnhre.Description
13097	}
13098	if cnhre.RemoveWhenExpired != nil {
13099		objectMap["RemoveWhenExpired"] = cnhre.RemoveWhenExpired
13100	}
13101	if cnhre.SourceUtcTimestamp != nil {
13102		objectMap["SourceUtcTimestamp"] = cnhre.SourceUtcTimestamp
13103	}
13104	if cnhre.EventInstanceID != nil {
13105		objectMap["EventInstanceId"] = cnhre.EventInstanceID
13106	}
13107	if cnhre.Category != nil {
13108		objectMap["Category"] = cnhre.Category
13109	}
13110	if cnhre.TimeStamp != nil {
13111		objectMap["TimeStamp"] = cnhre.TimeStamp
13112	}
13113	if cnhre.HasCorrelatedEvents != nil {
13114		objectMap["HasCorrelatedEvents"] = cnhre.HasCorrelatedEvents
13115	}
13116	if cnhre.Kind != "" {
13117		objectMap["Kind"] = cnhre.Kind
13118	}
13119	return json.Marshal(objectMap)
13120}
13121
13122// AsApplicationEvent is the BasicFabricEvent implementation for ClusterNewHealthReportEvent.
13123func (cnhre ClusterNewHealthReportEvent) AsApplicationEvent() (*ApplicationEvent, bool) {
13124	return nil, false
13125}
13126
13127// AsBasicApplicationEvent is the BasicFabricEvent implementation for ClusterNewHealthReportEvent.
13128func (cnhre ClusterNewHealthReportEvent) AsBasicApplicationEvent() (BasicApplicationEvent, bool) {
13129	return nil, false
13130}
13131
13132// AsClusterEvent is the BasicFabricEvent implementation for ClusterNewHealthReportEvent.
13133func (cnhre ClusterNewHealthReportEvent) AsClusterEvent() (*ClusterEvent, bool) {
13134	return nil, false
13135}
13136
13137// AsBasicClusterEvent is the BasicFabricEvent implementation for ClusterNewHealthReportEvent.
13138func (cnhre ClusterNewHealthReportEvent) AsBasicClusterEvent() (BasicClusterEvent, bool) {
13139	return &cnhre, true
13140}
13141
13142// AsContainerInstanceEvent is the BasicFabricEvent implementation for ClusterNewHealthReportEvent.
13143func (cnhre ClusterNewHealthReportEvent) AsContainerInstanceEvent() (*ContainerInstanceEvent, bool) {
13144	return nil, false
13145}
13146
13147// AsNodeEvent is the BasicFabricEvent implementation for ClusterNewHealthReportEvent.
13148func (cnhre ClusterNewHealthReportEvent) AsNodeEvent() (*NodeEvent, bool) {
13149	return nil, false
13150}
13151
13152// AsBasicNodeEvent is the BasicFabricEvent implementation for ClusterNewHealthReportEvent.
13153func (cnhre ClusterNewHealthReportEvent) AsBasicNodeEvent() (BasicNodeEvent, bool) {
13154	return nil, false
13155}
13156
13157// AsPartitionAnalysisEvent is the BasicFabricEvent implementation for ClusterNewHealthReportEvent.
13158func (cnhre ClusterNewHealthReportEvent) AsPartitionAnalysisEvent() (*PartitionAnalysisEvent, bool) {
13159	return nil, false
13160}
13161
13162// AsBasicPartitionAnalysisEvent is the BasicFabricEvent implementation for ClusterNewHealthReportEvent.
13163func (cnhre ClusterNewHealthReportEvent) AsBasicPartitionAnalysisEvent() (BasicPartitionAnalysisEvent, bool) {
13164	return nil, false
13165}
13166
13167// AsPartitionEvent is the BasicFabricEvent implementation for ClusterNewHealthReportEvent.
13168func (cnhre ClusterNewHealthReportEvent) AsPartitionEvent() (*PartitionEvent, bool) {
13169	return nil, false
13170}
13171
13172// AsBasicPartitionEvent is the BasicFabricEvent implementation for ClusterNewHealthReportEvent.
13173func (cnhre ClusterNewHealthReportEvent) AsBasicPartitionEvent() (BasicPartitionEvent, bool) {
13174	return nil, false
13175}
13176
13177// AsReplicaEvent is the BasicFabricEvent implementation for ClusterNewHealthReportEvent.
13178func (cnhre ClusterNewHealthReportEvent) AsReplicaEvent() (*ReplicaEvent, bool) {
13179	return nil, false
13180}
13181
13182// AsBasicReplicaEvent is the BasicFabricEvent implementation for ClusterNewHealthReportEvent.
13183func (cnhre ClusterNewHealthReportEvent) AsBasicReplicaEvent() (BasicReplicaEvent, bool) {
13184	return nil, false
13185}
13186
13187// AsServiceEvent is the BasicFabricEvent implementation for ClusterNewHealthReportEvent.
13188func (cnhre ClusterNewHealthReportEvent) AsServiceEvent() (*ServiceEvent, bool) {
13189	return nil, false
13190}
13191
13192// AsBasicServiceEvent is the BasicFabricEvent implementation for ClusterNewHealthReportEvent.
13193func (cnhre ClusterNewHealthReportEvent) AsBasicServiceEvent() (BasicServiceEvent, bool) {
13194	return nil, false
13195}
13196
13197// AsApplicationCreatedEvent is the BasicFabricEvent implementation for ClusterNewHealthReportEvent.
13198func (cnhre ClusterNewHealthReportEvent) AsApplicationCreatedEvent() (*ApplicationCreatedEvent, bool) {
13199	return nil, false
13200}
13201
13202// AsApplicationDeletedEvent is the BasicFabricEvent implementation for ClusterNewHealthReportEvent.
13203func (cnhre ClusterNewHealthReportEvent) AsApplicationDeletedEvent() (*ApplicationDeletedEvent, bool) {
13204	return nil, false
13205}
13206
13207// AsApplicationNewHealthReportEvent is the BasicFabricEvent implementation for ClusterNewHealthReportEvent.
13208func (cnhre ClusterNewHealthReportEvent) AsApplicationNewHealthReportEvent() (*ApplicationNewHealthReportEvent, bool) {
13209	return nil, false
13210}
13211
13212// AsApplicationHealthReportExpiredEvent is the BasicFabricEvent implementation for ClusterNewHealthReportEvent.
13213func (cnhre ClusterNewHealthReportEvent) AsApplicationHealthReportExpiredEvent() (*ApplicationHealthReportExpiredEvent, bool) {
13214	return nil, false
13215}
13216
13217// AsApplicationUpgradeCompletedEvent is the BasicFabricEvent implementation for ClusterNewHealthReportEvent.
13218func (cnhre ClusterNewHealthReportEvent) AsApplicationUpgradeCompletedEvent() (*ApplicationUpgradeCompletedEvent, bool) {
13219	return nil, false
13220}
13221
13222// AsApplicationUpgradeDomainCompletedEvent is the BasicFabricEvent implementation for ClusterNewHealthReportEvent.
13223func (cnhre ClusterNewHealthReportEvent) AsApplicationUpgradeDomainCompletedEvent() (*ApplicationUpgradeDomainCompletedEvent, bool) {
13224	return nil, false
13225}
13226
13227// AsApplicationUpgradeRollbackCompletedEvent is the BasicFabricEvent implementation for ClusterNewHealthReportEvent.
13228func (cnhre ClusterNewHealthReportEvent) AsApplicationUpgradeRollbackCompletedEvent() (*ApplicationUpgradeRollbackCompletedEvent, bool) {
13229	return nil, false
13230}
13231
13232// AsApplicationUpgradeRollbackStartedEvent is the BasicFabricEvent implementation for ClusterNewHealthReportEvent.
13233func (cnhre ClusterNewHealthReportEvent) AsApplicationUpgradeRollbackStartedEvent() (*ApplicationUpgradeRollbackStartedEvent, bool) {
13234	return nil, false
13235}
13236
13237// AsApplicationUpgradeStartedEvent is the BasicFabricEvent implementation for ClusterNewHealthReportEvent.
13238func (cnhre ClusterNewHealthReportEvent) AsApplicationUpgradeStartedEvent() (*ApplicationUpgradeStartedEvent, bool) {
13239	return nil, false
13240}
13241
13242// AsDeployedApplicationNewHealthReportEvent is the BasicFabricEvent implementation for ClusterNewHealthReportEvent.
13243func (cnhre ClusterNewHealthReportEvent) AsDeployedApplicationNewHealthReportEvent() (*DeployedApplicationNewHealthReportEvent, bool) {
13244	return nil, false
13245}
13246
13247// AsDeployedApplicationHealthReportExpiredEvent is the BasicFabricEvent implementation for ClusterNewHealthReportEvent.
13248func (cnhre ClusterNewHealthReportEvent) AsDeployedApplicationHealthReportExpiredEvent() (*DeployedApplicationHealthReportExpiredEvent, bool) {
13249	return nil, false
13250}
13251
13252// AsApplicationProcessExitedEvent is the BasicFabricEvent implementation for ClusterNewHealthReportEvent.
13253func (cnhre ClusterNewHealthReportEvent) AsApplicationProcessExitedEvent() (*ApplicationProcessExitedEvent, bool) {
13254	return nil, false
13255}
13256
13257// AsApplicationContainerInstanceExitedEvent is the BasicFabricEvent implementation for ClusterNewHealthReportEvent.
13258func (cnhre ClusterNewHealthReportEvent) AsApplicationContainerInstanceExitedEvent() (*ApplicationContainerInstanceExitedEvent, bool) {
13259	return nil, false
13260}
13261
13262// AsNodeAbortedEvent is the BasicFabricEvent implementation for ClusterNewHealthReportEvent.
13263func (cnhre ClusterNewHealthReportEvent) AsNodeAbortedEvent() (*NodeAbortedEvent, bool) {
13264	return nil, false
13265}
13266
13267// AsNodeAddedToClusterEvent is the BasicFabricEvent implementation for ClusterNewHealthReportEvent.
13268func (cnhre ClusterNewHealthReportEvent) AsNodeAddedToClusterEvent() (*NodeAddedToClusterEvent, bool) {
13269	return nil, false
13270}
13271
13272// AsNodeClosedEvent is the BasicFabricEvent implementation for ClusterNewHealthReportEvent.
13273func (cnhre ClusterNewHealthReportEvent) AsNodeClosedEvent() (*NodeClosedEvent, bool) {
13274	return nil, false
13275}
13276
13277// AsNodeDeactivateCompletedEvent is the BasicFabricEvent implementation for ClusterNewHealthReportEvent.
13278func (cnhre ClusterNewHealthReportEvent) AsNodeDeactivateCompletedEvent() (*NodeDeactivateCompletedEvent, bool) {
13279	return nil, false
13280}
13281
13282// AsNodeDeactivateStartedEvent is the BasicFabricEvent implementation for ClusterNewHealthReportEvent.
13283func (cnhre ClusterNewHealthReportEvent) AsNodeDeactivateStartedEvent() (*NodeDeactivateStartedEvent, bool) {
13284	return nil, false
13285}
13286
13287// AsNodeDownEvent is the BasicFabricEvent implementation for ClusterNewHealthReportEvent.
13288func (cnhre ClusterNewHealthReportEvent) AsNodeDownEvent() (*NodeDownEvent, bool) {
13289	return nil, false
13290}
13291
13292// AsNodeNewHealthReportEvent is the BasicFabricEvent implementation for ClusterNewHealthReportEvent.
13293func (cnhre ClusterNewHealthReportEvent) AsNodeNewHealthReportEvent() (*NodeNewHealthReportEvent, bool) {
13294	return nil, false
13295}
13296
13297// AsNodeHealthReportExpiredEvent is the BasicFabricEvent implementation for ClusterNewHealthReportEvent.
13298func (cnhre ClusterNewHealthReportEvent) AsNodeHealthReportExpiredEvent() (*NodeHealthReportExpiredEvent, bool) {
13299	return nil, false
13300}
13301
13302// AsNodeOpenSucceededEvent is the BasicFabricEvent implementation for ClusterNewHealthReportEvent.
13303func (cnhre ClusterNewHealthReportEvent) AsNodeOpenSucceededEvent() (*NodeOpenSucceededEvent, bool) {
13304	return nil, false
13305}
13306
13307// AsNodeOpenFailedEvent is the BasicFabricEvent implementation for ClusterNewHealthReportEvent.
13308func (cnhre ClusterNewHealthReportEvent) AsNodeOpenFailedEvent() (*NodeOpenFailedEvent, bool) {
13309	return nil, false
13310}
13311
13312// AsNodeRemovedFromClusterEvent is the BasicFabricEvent implementation for ClusterNewHealthReportEvent.
13313func (cnhre ClusterNewHealthReportEvent) AsNodeRemovedFromClusterEvent() (*NodeRemovedFromClusterEvent, bool) {
13314	return nil, false
13315}
13316
13317// AsNodeUpEvent is the BasicFabricEvent implementation for ClusterNewHealthReportEvent.
13318func (cnhre ClusterNewHealthReportEvent) AsNodeUpEvent() (*NodeUpEvent, bool) {
13319	return nil, false
13320}
13321
13322// AsPartitionNewHealthReportEvent is the BasicFabricEvent implementation for ClusterNewHealthReportEvent.
13323func (cnhre ClusterNewHealthReportEvent) AsPartitionNewHealthReportEvent() (*PartitionNewHealthReportEvent, bool) {
13324	return nil, false
13325}
13326
13327// AsPartitionHealthReportExpiredEvent is the BasicFabricEvent implementation for ClusterNewHealthReportEvent.
13328func (cnhre ClusterNewHealthReportEvent) AsPartitionHealthReportExpiredEvent() (*PartitionHealthReportExpiredEvent, bool) {
13329	return nil, false
13330}
13331
13332// AsPartitionReconfiguredEvent is the BasicFabricEvent implementation for ClusterNewHealthReportEvent.
13333func (cnhre ClusterNewHealthReportEvent) AsPartitionReconfiguredEvent() (*PartitionReconfiguredEvent, bool) {
13334	return nil, false
13335}
13336
13337// AsPartitionPrimaryMoveAnalysisEvent is the BasicFabricEvent implementation for ClusterNewHealthReportEvent.
13338func (cnhre ClusterNewHealthReportEvent) AsPartitionPrimaryMoveAnalysisEvent() (*PartitionPrimaryMoveAnalysisEvent, bool) {
13339	return nil, false
13340}
13341
13342// AsServiceCreatedEvent is the BasicFabricEvent implementation for ClusterNewHealthReportEvent.
13343func (cnhre ClusterNewHealthReportEvent) AsServiceCreatedEvent() (*ServiceCreatedEvent, bool) {
13344	return nil, false
13345}
13346
13347// AsServiceDeletedEvent is the BasicFabricEvent implementation for ClusterNewHealthReportEvent.
13348func (cnhre ClusterNewHealthReportEvent) AsServiceDeletedEvent() (*ServiceDeletedEvent, bool) {
13349	return nil, false
13350}
13351
13352// AsServiceNewHealthReportEvent is the BasicFabricEvent implementation for ClusterNewHealthReportEvent.
13353func (cnhre ClusterNewHealthReportEvent) AsServiceNewHealthReportEvent() (*ServiceNewHealthReportEvent, bool) {
13354	return nil, false
13355}
13356
13357// AsServiceHealthReportExpiredEvent is the BasicFabricEvent implementation for ClusterNewHealthReportEvent.
13358func (cnhre ClusterNewHealthReportEvent) AsServiceHealthReportExpiredEvent() (*ServiceHealthReportExpiredEvent, bool) {
13359	return nil, false
13360}
13361
13362// AsDeployedServicePackageNewHealthReportEvent is the BasicFabricEvent implementation for ClusterNewHealthReportEvent.
13363func (cnhre ClusterNewHealthReportEvent) AsDeployedServicePackageNewHealthReportEvent() (*DeployedServicePackageNewHealthReportEvent, bool) {
13364	return nil, false
13365}
13366
13367// AsDeployedServicePackageHealthReportExpiredEvent is the BasicFabricEvent implementation for ClusterNewHealthReportEvent.
13368func (cnhre ClusterNewHealthReportEvent) AsDeployedServicePackageHealthReportExpiredEvent() (*DeployedServicePackageHealthReportExpiredEvent, bool) {
13369	return nil, false
13370}
13371
13372// AsStatefulReplicaNewHealthReportEvent is the BasicFabricEvent implementation for ClusterNewHealthReportEvent.
13373func (cnhre ClusterNewHealthReportEvent) AsStatefulReplicaNewHealthReportEvent() (*StatefulReplicaNewHealthReportEvent, bool) {
13374	return nil, false
13375}
13376
13377// AsStatefulReplicaHealthReportExpiredEvent is the BasicFabricEvent implementation for ClusterNewHealthReportEvent.
13378func (cnhre ClusterNewHealthReportEvent) AsStatefulReplicaHealthReportExpiredEvent() (*StatefulReplicaHealthReportExpiredEvent, bool) {
13379	return nil, false
13380}
13381
13382// AsStatelessReplicaNewHealthReportEvent is the BasicFabricEvent implementation for ClusterNewHealthReportEvent.
13383func (cnhre ClusterNewHealthReportEvent) AsStatelessReplicaNewHealthReportEvent() (*StatelessReplicaNewHealthReportEvent, bool) {
13384	return nil, false
13385}
13386
13387// AsStatelessReplicaHealthReportExpiredEvent is the BasicFabricEvent implementation for ClusterNewHealthReportEvent.
13388func (cnhre ClusterNewHealthReportEvent) AsStatelessReplicaHealthReportExpiredEvent() (*StatelessReplicaHealthReportExpiredEvent, bool) {
13389	return nil, false
13390}
13391
13392// AsClusterNewHealthReportEvent is the BasicFabricEvent implementation for ClusterNewHealthReportEvent.
13393func (cnhre ClusterNewHealthReportEvent) AsClusterNewHealthReportEvent() (*ClusterNewHealthReportEvent, bool) {
13394	return &cnhre, true
13395}
13396
13397// AsClusterHealthReportExpiredEvent is the BasicFabricEvent implementation for ClusterNewHealthReportEvent.
13398func (cnhre ClusterNewHealthReportEvent) AsClusterHealthReportExpiredEvent() (*ClusterHealthReportExpiredEvent, bool) {
13399	return nil, false
13400}
13401
13402// AsClusterUpgradeCompletedEvent is the BasicFabricEvent implementation for ClusterNewHealthReportEvent.
13403func (cnhre ClusterNewHealthReportEvent) AsClusterUpgradeCompletedEvent() (*ClusterUpgradeCompletedEvent, bool) {
13404	return nil, false
13405}
13406
13407// AsClusterUpgradeDomainCompletedEvent is the BasicFabricEvent implementation for ClusterNewHealthReportEvent.
13408func (cnhre ClusterNewHealthReportEvent) AsClusterUpgradeDomainCompletedEvent() (*ClusterUpgradeDomainCompletedEvent, bool) {
13409	return nil, false
13410}
13411
13412// AsClusterUpgradeRollbackCompletedEvent is the BasicFabricEvent implementation for ClusterNewHealthReportEvent.
13413func (cnhre ClusterNewHealthReportEvent) AsClusterUpgradeRollbackCompletedEvent() (*ClusterUpgradeRollbackCompletedEvent, bool) {
13414	return nil, false
13415}
13416
13417// AsClusterUpgradeRollbackStartedEvent is the BasicFabricEvent implementation for ClusterNewHealthReportEvent.
13418func (cnhre ClusterNewHealthReportEvent) AsClusterUpgradeRollbackStartedEvent() (*ClusterUpgradeRollbackStartedEvent, bool) {
13419	return nil, false
13420}
13421
13422// AsClusterUpgradeStartedEvent is the BasicFabricEvent implementation for ClusterNewHealthReportEvent.
13423func (cnhre ClusterNewHealthReportEvent) AsClusterUpgradeStartedEvent() (*ClusterUpgradeStartedEvent, bool) {
13424	return nil, false
13425}
13426
13427// AsChaosStoppedEvent is the BasicFabricEvent implementation for ClusterNewHealthReportEvent.
13428func (cnhre ClusterNewHealthReportEvent) AsChaosStoppedEvent() (*ChaosStoppedEvent, bool) {
13429	return nil, false
13430}
13431
13432// AsChaosStartedEvent is the BasicFabricEvent implementation for ClusterNewHealthReportEvent.
13433func (cnhre ClusterNewHealthReportEvent) AsChaosStartedEvent() (*ChaosStartedEvent, bool) {
13434	return nil, false
13435}
13436
13437// AsChaosCodePackageRestartScheduledEvent is the BasicFabricEvent implementation for ClusterNewHealthReportEvent.
13438func (cnhre ClusterNewHealthReportEvent) AsChaosCodePackageRestartScheduledEvent() (*ChaosCodePackageRestartScheduledEvent, bool) {
13439	return nil, false
13440}
13441
13442// AsChaosReplicaRemovalScheduledEvent is the BasicFabricEvent implementation for ClusterNewHealthReportEvent.
13443func (cnhre ClusterNewHealthReportEvent) AsChaosReplicaRemovalScheduledEvent() (*ChaosReplicaRemovalScheduledEvent, bool) {
13444	return nil, false
13445}
13446
13447// AsChaosPartitionSecondaryMoveScheduledEvent is the BasicFabricEvent implementation for ClusterNewHealthReportEvent.
13448func (cnhre ClusterNewHealthReportEvent) AsChaosPartitionSecondaryMoveScheduledEvent() (*ChaosPartitionSecondaryMoveScheduledEvent, bool) {
13449	return nil, false
13450}
13451
13452// AsChaosPartitionPrimaryMoveScheduledEvent is the BasicFabricEvent implementation for ClusterNewHealthReportEvent.
13453func (cnhre ClusterNewHealthReportEvent) AsChaosPartitionPrimaryMoveScheduledEvent() (*ChaosPartitionPrimaryMoveScheduledEvent, bool) {
13454	return nil, false
13455}
13456
13457// AsChaosReplicaRestartScheduledEvent is the BasicFabricEvent implementation for ClusterNewHealthReportEvent.
13458func (cnhre ClusterNewHealthReportEvent) AsChaosReplicaRestartScheduledEvent() (*ChaosReplicaRestartScheduledEvent, bool) {
13459	return nil, false
13460}
13461
13462// AsChaosNodeRestartScheduledEvent is the BasicFabricEvent implementation for ClusterNewHealthReportEvent.
13463func (cnhre ClusterNewHealthReportEvent) AsChaosNodeRestartScheduledEvent() (*ChaosNodeRestartScheduledEvent, bool) {
13464	return nil, false
13465}
13466
13467// AsFabricEvent is the BasicFabricEvent implementation for ClusterNewHealthReportEvent.
13468func (cnhre ClusterNewHealthReportEvent) AsFabricEvent() (*FabricEvent, bool) {
13469	return nil, false
13470}
13471
13472// AsBasicFabricEvent is the BasicFabricEvent implementation for ClusterNewHealthReportEvent.
13473func (cnhre ClusterNewHealthReportEvent) AsBasicFabricEvent() (BasicFabricEvent, bool) {
13474	return &cnhre, true
13475}
13476
13477// ClusterUpgradeCompletedEvent cluster Upgrade Completed event.
13478type ClusterUpgradeCompletedEvent struct {
13479	// TargetClusterVersion - Target Cluster version.
13480	TargetClusterVersion *string `json:"TargetClusterVersion,omitempty"`
13481	// OverallUpgradeElapsedTimeInMs - Overall duration of upgrade in milli-seconds.
13482	OverallUpgradeElapsedTimeInMs *float64 `json:"OverallUpgradeElapsedTimeInMs,omitempty"`
13483	// EventInstanceID - The identifier for the FabricEvent instance.
13484	EventInstanceID *uuid.UUID `json:"EventInstanceId,omitempty"`
13485	// Category - The category of event.
13486	Category *string `json:"Category,omitempty"`
13487	// TimeStamp - The time event was logged.
13488	TimeStamp *date.Time `json:"TimeStamp,omitempty"`
13489	// HasCorrelatedEvents - Shows there is existing related events available.
13490	HasCorrelatedEvents *bool `json:"HasCorrelatedEvents,omitempty"`
13491	// 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'
13492	Kind KindBasicFabricEvent `json:"Kind,omitempty"`
13493}
13494
13495// MarshalJSON is the custom marshaler for ClusterUpgradeCompletedEvent.
13496func (cuce ClusterUpgradeCompletedEvent) MarshalJSON() ([]byte, error) {
13497	cuce.Kind = KindClusterUpgradeCompleted
13498	objectMap := make(map[string]interface{})
13499	if cuce.TargetClusterVersion != nil {
13500		objectMap["TargetClusterVersion"] = cuce.TargetClusterVersion
13501	}
13502	if cuce.OverallUpgradeElapsedTimeInMs != nil {
13503		objectMap["OverallUpgradeElapsedTimeInMs"] = cuce.OverallUpgradeElapsedTimeInMs
13504	}
13505	if cuce.EventInstanceID != nil {
13506		objectMap["EventInstanceId"] = cuce.EventInstanceID
13507	}
13508	if cuce.Category != nil {
13509		objectMap["Category"] = cuce.Category
13510	}
13511	if cuce.TimeStamp != nil {
13512		objectMap["TimeStamp"] = cuce.TimeStamp
13513	}
13514	if cuce.HasCorrelatedEvents != nil {
13515		objectMap["HasCorrelatedEvents"] = cuce.HasCorrelatedEvents
13516	}
13517	if cuce.Kind != "" {
13518		objectMap["Kind"] = cuce.Kind
13519	}
13520	return json.Marshal(objectMap)
13521}
13522
13523// AsApplicationEvent is the BasicFabricEvent implementation for ClusterUpgradeCompletedEvent.
13524func (cuce ClusterUpgradeCompletedEvent) AsApplicationEvent() (*ApplicationEvent, bool) {
13525	return nil, false
13526}
13527
13528// AsBasicApplicationEvent is the BasicFabricEvent implementation for ClusterUpgradeCompletedEvent.
13529func (cuce ClusterUpgradeCompletedEvent) AsBasicApplicationEvent() (BasicApplicationEvent, bool) {
13530	return nil, false
13531}
13532
13533// AsClusterEvent is the BasicFabricEvent implementation for ClusterUpgradeCompletedEvent.
13534func (cuce ClusterUpgradeCompletedEvent) AsClusterEvent() (*ClusterEvent, bool) {
13535	return nil, false
13536}
13537
13538// AsBasicClusterEvent is the BasicFabricEvent implementation for ClusterUpgradeCompletedEvent.
13539func (cuce ClusterUpgradeCompletedEvent) AsBasicClusterEvent() (BasicClusterEvent, bool) {
13540	return &cuce, true
13541}
13542
13543// AsContainerInstanceEvent is the BasicFabricEvent implementation for ClusterUpgradeCompletedEvent.
13544func (cuce ClusterUpgradeCompletedEvent) AsContainerInstanceEvent() (*ContainerInstanceEvent, bool) {
13545	return nil, false
13546}
13547
13548// AsNodeEvent is the BasicFabricEvent implementation for ClusterUpgradeCompletedEvent.
13549func (cuce ClusterUpgradeCompletedEvent) AsNodeEvent() (*NodeEvent, bool) {
13550	return nil, false
13551}
13552
13553// AsBasicNodeEvent is the BasicFabricEvent implementation for ClusterUpgradeCompletedEvent.
13554func (cuce ClusterUpgradeCompletedEvent) AsBasicNodeEvent() (BasicNodeEvent, bool) {
13555	return nil, false
13556}
13557
13558// AsPartitionAnalysisEvent is the BasicFabricEvent implementation for ClusterUpgradeCompletedEvent.
13559func (cuce ClusterUpgradeCompletedEvent) AsPartitionAnalysisEvent() (*PartitionAnalysisEvent, bool) {
13560	return nil, false
13561}
13562
13563// AsBasicPartitionAnalysisEvent is the BasicFabricEvent implementation for ClusterUpgradeCompletedEvent.
13564func (cuce ClusterUpgradeCompletedEvent) AsBasicPartitionAnalysisEvent() (BasicPartitionAnalysisEvent, bool) {
13565	return nil, false
13566}
13567
13568// AsPartitionEvent is the BasicFabricEvent implementation for ClusterUpgradeCompletedEvent.
13569func (cuce ClusterUpgradeCompletedEvent) AsPartitionEvent() (*PartitionEvent, bool) {
13570	return nil, false
13571}
13572
13573// AsBasicPartitionEvent is the BasicFabricEvent implementation for ClusterUpgradeCompletedEvent.
13574func (cuce ClusterUpgradeCompletedEvent) AsBasicPartitionEvent() (BasicPartitionEvent, bool) {
13575	return nil, false
13576}
13577
13578// AsReplicaEvent is the BasicFabricEvent implementation for ClusterUpgradeCompletedEvent.
13579func (cuce ClusterUpgradeCompletedEvent) AsReplicaEvent() (*ReplicaEvent, bool) {
13580	return nil, false
13581}
13582
13583// AsBasicReplicaEvent is the BasicFabricEvent implementation for ClusterUpgradeCompletedEvent.
13584func (cuce ClusterUpgradeCompletedEvent) AsBasicReplicaEvent() (BasicReplicaEvent, bool) {
13585	return nil, false
13586}
13587
13588// AsServiceEvent is the BasicFabricEvent implementation for ClusterUpgradeCompletedEvent.
13589func (cuce ClusterUpgradeCompletedEvent) AsServiceEvent() (*ServiceEvent, bool) {
13590	return nil, false
13591}
13592
13593// AsBasicServiceEvent is the BasicFabricEvent implementation for ClusterUpgradeCompletedEvent.
13594func (cuce ClusterUpgradeCompletedEvent) AsBasicServiceEvent() (BasicServiceEvent, bool) {
13595	return nil, false
13596}
13597
13598// AsApplicationCreatedEvent is the BasicFabricEvent implementation for ClusterUpgradeCompletedEvent.
13599func (cuce ClusterUpgradeCompletedEvent) AsApplicationCreatedEvent() (*ApplicationCreatedEvent, bool) {
13600	return nil, false
13601}
13602
13603// AsApplicationDeletedEvent is the BasicFabricEvent implementation for ClusterUpgradeCompletedEvent.
13604func (cuce ClusterUpgradeCompletedEvent) AsApplicationDeletedEvent() (*ApplicationDeletedEvent, bool) {
13605	return nil, false
13606}
13607
13608// AsApplicationNewHealthReportEvent is the BasicFabricEvent implementation for ClusterUpgradeCompletedEvent.
13609func (cuce ClusterUpgradeCompletedEvent) AsApplicationNewHealthReportEvent() (*ApplicationNewHealthReportEvent, bool) {
13610	return nil, false
13611}
13612
13613// AsApplicationHealthReportExpiredEvent is the BasicFabricEvent implementation for ClusterUpgradeCompletedEvent.
13614func (cuce ClusterUpgradeCompletedEvent) AsApplicationHealthReportExpiredEvent() (*ApplicationHealthReportExpiredEvent, bool) {
13615	return nil, false
13616}
13617
13618// AsApplicationUpgradeCompletedEvent is the BasicFabricEvent implementation for ClusterUpgradeCompletedEvent.
13619func (cuce ClusterUpgradeCompletedEvent) AsApplicationUpgradeCompletedEvent() (*ApplicationUpgradeCompletedEvent, bool) {
13620	return nil, false
13621}
13622
13623// AsApplicationUpgradeDomainCompletedEvent is the BasicFabricEvent implementation for ClusterUpgradeCompletedEvent.
13624func (cuce ClusterUpgradeCompletedEvent) AsApplicationUpgradeDomainCompletedEvent() (*ApplicationUpgradeDomainCompletedEvent, bool) {
13625	return nil, false
13626}
13627
13628// AsApplicationUpgradeRollbackCompletedEvent is the BasicFabricEvent implementation for ClusterUpgradeCompletedEvent.
13629func (cuce ClusterUpgradeCompletedEvent) AsApplicationUpgradeRollbackCompletedEvent() (*ApplicationUpgradeRollbackCompletedEvent, bool) {
13630	return nil, false
13631}
13632
13633// AsApplicationUpgradeRollbackStartedEvent is the BasicFabricEvent implementation for ClusterUpgradeCompletedEvent.
13634func (cuce ClusterUpgradeCompletedEvent) AsApplicationUpgradeRollbackStartedEvent() (*ApplicationUpgradeRollbackStartedEvent, bool) {
13635	return nil, false
13636}
13637
13638// AsApplicationUpgradeStartedEvent is the BasicFabricEvent implementation for ClusterUpgradeCompletedEvent.
13639func (cuce ClusterUpgradeCompletedEvent) AsApplicationUpgradeStartedEvent() (*ApplicationUpgradeStartedEvent, bool) {
13640	return nil, false
13641}
13642
13643// AsDeployedApplicationNewHealthReportEvent is the BasicFabricEvent implementation for ClusterUpgradeCompletedEvent.
13644func (cuce ClusterUpgradeCompletedEvent) AsDeployedApplicationNewHealthReportEvent() (*DeployedApplicationNewHealthReportEvent, bool) {
13645	return nil, false
13646}
13647
13648// AsDeployedApplicationHealthReportExpiredEvent is the BasicFabricEvent implementation for ClusterUpgradeCompletedEvent.
13649func (cuce ClusterUpgradeCompletedEvent) AsDeployedApplicationHealthReportExpiredEvent() (*DeployedApplicationHealthReportExpiredEvent, bool) {
13650	return nil, false
13651}
13652
13653// AsApplicationProcessExitedEvent is the BasicFabricEvent implementation for ClusterUpgradeCompletedEvent.
13654func (cuce ClusterUpgradeCompletedEvent) AsApplicationProcessExitedEvent() (*ApplicationProcessExitedEvent, bool) {
13655	return nil, false
13656}
13657
13658// AsApplicationContainerInstanceExitedEvent is the BasicFabricEvent implementation for ClusterUpgradeCompletedEvent.
13659func (cuce ClusterUpgradeCompletedEvent) AsApplicationContainerInstanceExitedEvent() (*ApplicationContainerInstanceExitedEvent, bool) {
13660	return nil, false
13661}
13662
13663// AsNodeAbortedEvent is the BasicFabricEvent implementation for ClusterUpgradeCompletedEvent.
13664func (cuce ClusterUpgradeCompletedEvent) AsNodeAbortedEvent() (*NodeAbortedEvent, bool) {
13665	return nil, false
13666}
13667
13668// AsNodeAddedToClusterEvent is the BasicFabricEvent implementation for ClusterUpgradeCompletedEvent.
13669func (cuce ClusterUpgradeCompletedEvent) AsNodeAddedToClusterEvent() (*NodeAddedToClusterEvent, bool) {
13670	return nil, false
13671}
13672
13673// AsNodeClosedEvent is the BasicFabricEvent implementation for ClusterUpgradeCompletedEvent.
13674func (cuce ClusterUpgradeCompletedEvent) AsNodeClosedEvent() (*NodeClosedEvent, bool) {
13675	return nil, false
13676}
13677
13678// AsNodeDeactivateCompletedEvent is the BasicFabricEvent implementation for ClusterUpgradeCompletedEvent.
13679func (cuce ClusterUpgradeCompletedEvent) AsNodeDeactivateCompletedEvent() (*NodeDeactivateCompletedEvent, bool) {
13680	return nil, false
13681}
13682
13683// AsNodeDeactivateStartedEvent is the BasicFabricEvent implementation for ClusterUpgradeCompletedEvent.
13684func (cuce ClusterUpgradeCompletedEvent) AsNodeDeactivateStartedEvent() (*NodeDeactivateStartedEvent, bool) {
13685	return nil, false
13686}
13687
13688// AsNodeDownEvent is the BasicFabricEvent implementation for ClusterUpgradeCompletedEvent.
13689func (cuce ClusterUpgradeCompletedEvent) AsNodeDownEvent() (*NodeDownEvent, bool) {
13690	return nil, false
13691}
13692
13693// AsNodeNewHealthReportEvent is the BasicFabricEvent implementation for ClusterUpgradeCompletedEvent.
13694func (cuce ClusterUpgradeCompletedEvent) AsNodeNewHealthReportEvent() (*NodeNewHealthReportEvent, bool) {
13695	return nil, false
13696}
13697
13698// AsNodeHealthReportExpiredEvent is the BasicFabricEvent implementation for ClusterUpgradeCompletedEvent.
13699func (cuce ClusterUpgradeCompletedEvent) AsNodeHealthReportExpiredEvent() (*NodeHealthReportExpiredEvent, bool) {
13700	return nil, false
13701}
13702
13703// AsNodeOpenSucceededEvent is the BasicFabricEvent implementation for ClusterUpgradeCompletedEvent.
13704func (cuce ClusterUpgradeCompletedEvent) AsNodeOpenSucceededEvent() (*NodeOpenSucceededEvent, bool) {
13705	return nil, false
13706}
13707
13708// AsNodeOpenFailedEvent is the BasicFabricEvent implementation for ClusterUpgradeCompletedEvent.
13709func (cuce ClusterUpgradeCompletedEvent) AsNodeOpenFailedEvent() (*NodeOpenFailedEvent, bool) {
13710	return nil, false
13711}
13712
13713// AsNodeRemovedFromClusterEvent is the BasicFabricEvent implementation for ClusterUpgradeCompletedEvent.
13714func (cuce ClusterUpgradeCompletedEvent) AsNodeRemovedFromClusterEvent() (*NodeRemovedFromClusterEvent, bool) {
13715	return nil, false
13716}
13717
13718// AsNodeUpEvent is the BasicFabricEvent implementation for ClusterUpgradeCompletedEvent.
13719func (cuce ClusterUpgradeCompletedEvent) AsNodeUpEvent() (*NodeUpEvent, bool) {
13720	return nil, false
13721}
13722
13723// AsPartitionNewHealthReportEvent is the BasicFabricEvent implementation for ClusterUpgradeCompletedEvent.
13724func (cuce ClusterUpgradeCompletedEvent) AsPartitionNewHealthReportEvent() (*PartitionNewHealthReportEvent, bool) {
13725	return nil, false
13726}
13727
13728// AsPartitionHealthReportExpiredEvent is the BasicFabricEvent implementation for ClusterUpgradeCompletedEvent.
13729func (cuce ClusterUpgradeCompletedEvent) AsPartitionHealthReportExpiredEvent() (*PartitionHealthReportExpiredEvent, bool) {
13730	return nil, false
13731}
13732
13733// AsPartitionReconfiguredEvent is the BasicFabricEvent implementation for ClusterUpgradeCompletedEvent.
13734func (cuce ClusterUpgradeCompletedEvent) AsPartitionReconfiguredEvent() (*PartitionReconfiguredEvent, bool) {
13735	return nil, false
13736}
13737
13738// AsPartitionPrimaryMoveAnalysisEvent is the BasicFabricEvent implementation for ClusterUpgradeCompletedEvent.
13739func (cuce ClusterUpgradeCompletedEvent) AsPartitionPrimaryMoveAnalysisEvent() (*PartitionPrimaryMoveAnalysisEvent, bool) {
13740	return nil, false
13741}
13742
13743// AsServiceCreatedEvent is the BasicFabricEvent implementation for ClusterUpgradeCompletedEvent.
13744func (cuce ClusterUpgradeCompletedEvent) AsServiceCreatedEvent() (*ServiceCreatedEvent, bool) {
13745	return nil, false
13746}
13747
13748// AsServiceDeletedEvent is the BasicFabricEvent implementation for ClusterUpgradeCompletedEvent.
13749func (cuce ClusterUpgradeCompletedEvent) AsServiceDeletedEvent() (*ServiceDeletedEvent, bool) {
13750	return nil, false
13751}
13752
13753// AsServiceNewHealthReportEvent is the BasicFabricEvent implementation for ClusterUpgradeCompletedEvent.
13754func (cuce ClusterUpgradeCompletedEvent) AsServiceNewHealthReportEvent() (*ServiceNewHealthReportEvent, bool) {
13755	return nil, false
13756}
13757
13758// AsServiceHealthReportExpiredEvent is the BasicFabricEvent implementation for ClusterUpgradeCompletedEvent.
13759func (cuce ClusterUpgradeCompletedEvent) AsServiceHealthReportExpiredEvent() (*ServiceHealthReportExpiredEvent, bool) {
13760	return nil, false
13761}
13762
13763// AsDeployedServicePackageNewHealthReportEvent is the BasicFabricEvent implementation for ClusterUpgradeCompletedEvent.
13764func (cuce ClusterUpgradeCompletedEvent) AsDeployedServicePackageNewHealthReportEvent() (*DeployedServicePackageNewHealthReportEvent, bool) {
13765	return nil, false
13766}
13767
13768// AsDeployedServicePackageHealthReportExpiredEvent is the BasicFabricEvent implementation for ClusterUpgradeCompletedEvent.
13769func (cuce ClusterUpgradeCompletedEvent) AsDeployedServicePackageHealthReportExpiredEvent() (*DeployedServicePackageHealthReportExpiredEvent, bool) {
13770	return nil, false
13771}
13772
13773// AsStatefulReplicaNewHealthReportEvent is the BasicFabricEvent implementation for ClusterUpgradeCompletedEvent.
13774func (cuce ClusterUpgradeCompletedEvent) AsStatefulReplicaNewHealthReportEvent() (*StatefulReplicaNewHealthReportEvent, bool) {
13775	return nil, false
13776}
13777
13778// AsStatefulReplicaHealthReportExpiredEvent is the BasicFabricEvent implementation for ClusterUpgradeCompletedEvent.
13779func (cuce ClusterUpgradeCompletedEvent) AsStatefulReplicaHealthReportExpiredEvent() (*StatefulReplicaHealthReportExpiredEvent, bool) {
13780	return nil, false
13781}
13782
13783// AsStatelessReplicaNewHealthReportEvent is the BasicFabricEvent implementation for ClusterUpgradeCompletedEvent.
13784func (cuce ClusterUpgradeCompletedEvent) AsStatelessReplicaNewHealthReportEvent() (*StatelessReplicaNewHealthReportEvent, bool) {
13785	return nil, false
13786}
13787
13788// AsStatelessReplicaHealthReportExpiredEvent is the BasicFabricEvent implementation for ClusterUpgradeCompletedEvent.
13789func (cuce ClusterUpgradeCompletedEvent) AsStatelessReplicaHealthReportExpiredEvent() (*StatelessReplicaHealthReportExpiredEvent, bool) {
13790	return nil, false
13791}
13792
13793// AsClusterNewHealthReportEvent is the BasicFabricEvent implementation for ClusterUpgradeCompletedEvent.
13794func (cuce ClusterUpgradeCompletedEvent) AsClusterNewHealthReportEvent() (*ClusterNewHealthReportEvent, bool) {
13795	return nil, false
13796}
13797
13798// AsClusterHealthReportExpiredEvent is the BasicFabricEvent implementation for ClusterUpgradeCompletedEvent.
13799func (cuce ClusterUpgradeCompletedEvent) AsClusterHealthReportExpiredEvent() (*ClusterHealthReportExpiredEvent, bool) {
13800	return nil, false
13801}
13802
13803// AsClusterUpgradeCompletedEvent is the BasicFabricEvent implementation for ClusterUpgradeCompletedEvent.
13804func (cuce ClusterUpgradeCompletedEvent) AsClusterUpgradeCompletedEvent() (*ClusterUpgradeCompletedEvent, bool) {
13805	return &cuce, true
13806}
13807
13808// AsClusterUpgradeDomainCompletedEvent is the BasicFabricEvent implementation for ClusterUpgradeCompletedEvent.
13809func (cuce ClusterUpgradeCompletedEvent) AsClusterUpgradeDomainCompletedEvent() (*ClusterUpgradeDomainCompletedEvent, bool) {
13810	return nil, false
13811}
13812
13813// AsClusterUpgradeRollbackCompletedEvent is the BasicFabricEvent implementation for ClusterUpgradeCompletedEvent.
13814func (cuce ClusterUpgradeCompletedEvent) AsClusterUpgradeRollbackCompletedEvent() (*ClusterUpgradeRollbackCompletedEvent, bool) {
13815	return nil, false
13816}
13817
13818// AsClusterUpgradeRollbackStartedEvent is the BasicFabricEvent implementation for ClusterUpgradeCompletedEvent.
13819func (cuce ClusterUpgradeCompletedEvent) AsClusterUpgradeRollbackStartedEvent() (*ClusterUpgradeRollbackStartedEvent, bool) {
13820	return nil, false
13821}
13822
13823// AsClusterUpgradeStartedEvent is the BasicFabricEvent implementation for ClusterUpgradeCompletedEvent.
13824func (cuce ClusterUpgradeCompletedEvent) AsClusterUpgradeStartedEvent() (*ClusterUpgradeStartedEvent, bool) {
13825	return nil, false
13826}
13827
13828// AsChaosStoppedEvent is the BasicFabricEvent implementation for ClusterUpgradeCompletedEvent.
13829func (cuce ClusterUpgradeCompletedEvent) AsChaosStoppedEvent() (*ChaosStoppedEvent, bool) {
13830	return nil, false
13831}
13832
13833// AsChaosStartedEvent is the BasicFabricEvent implementation for ClusterUpgradeCompletedEvent.
13834func (cuce ClusterUpgradeCompletedEvent) AsChaosStartedEvent() (*ChaosStartedEvent, bool) {
13835	return nil, false
13836}
13837
13838// AsChaosCodePackageRestartScheduledEvent is the BasicFabricEvent implementation for ClusterUpgradeCompletedEvent.
13839func (cuce ClusterUpgradeCompletedEvent) AsChaosCodePackageRestartScheduledEvent() (*ChaosCodePackageRestartScheduledEvent, bool) {
13840	return nil, false
13841}
13842
13843// AsChaosReplicaRemovalScheduledEvent is the BasicFabricEvent implementation for ClusterUpgradeCompletedEvent.
13844func (cuce ClusterUpgradeCompletedEvent) AsChaosReplicaRemovalScheduledEvent() (*ChaosReplicaRemovalScheduledEvent, bool) {
13845	return nil, false
13846}
13847
13848// AsChaosPartitionSecondaryMoveScheduledEvent is the BasicFabricEvent implementation for ClusterUpgradeCompletedEvent.
13849func (cuce ClusterUpgradeCompletedEvent) AsChaosPartitionSecondaryMoveScheduledEvent() (*ChaosPartitionSecondaryMoveScheduledEvent, bool) {
13850	return nil, false
13851}
13852
13853// AsChaosPartitionPrimaryMoveScheduledEvent is the BasicFabricEvent implementation for ClusterUpgradeCompletedEvent.
13854func (cuce ClusterUpgradeCompletedEvent) AsChaosPartitionPrimaryMoveScheduledEvent() (*ChaosPartitionPrimaryMoveScheduledEvent, bool) {
13855	return nil, false
13856}
13857
13858// AsChaosReplicaRestartScheduledEvent is the BasicFabricEvent implementation for ClusterUpgradeCompletedEvent.
13859func (cuce ClusterUpgradeCompletedEvent) AsChaosReplicaRestartScheduledEvent() (*ChaosReplicaRestartScheduledEvent, bool) {
13860	return nil, false
13861}
13862
13863// AsChaosNodeRestartScheduledEvent is the BasicFabricEvent implementation for ClusterUpgradeCompletedEvent.
13864func (cuce ClusterUpgradeCompletedEvent) AsChaosNodeRestartScheduledEvent() (*ChaosNodeRestartScheduledEvent, bool) {
13865	return nil, false
13866}
13867
13868// AsFabricEvent is the BasicFabricEvent implementation for ClusterUpgradeCompletedEvent.
13869func (cuce ClusterUpgradeCompletedEvent) AsFabricEvent() (*FabricEvent, bool) {
13870	return nil, false
13871}
13872
13873// AsBasicFabricEvent is the BasicFabricEvent implementation for ClusterUpgradeCompletedEvent.
13874func (cuce ClusterUpgradeCompletedEvent) AsBasicFabricEvent() (BasicFabricEvent, bool) {
13875	return &cuce, true
13876}
13877
13878// ClusterUpgradeDescriptionObject represents a ServiceFabric cluster upgrade
13879type ClusterUpgradeDescriptionObject struct {
13880	// ConfigVersion - The cluster configuration version (specified in the cluster manifest).
13881	ConfigVersion *string `json:"ConfigVersion,omitempty"`
13882	// CodeVersion - The ServiceFabric code version of the cluster.
13883	CodeVersion *string `json:"CodeVersion,omitempty"`
13884	// UpgradeKind - The kind of upgrade out of the following possible values. Possible values include: 'UpgradeKindInvalid', 'UpgradeKindRolling'
13885	UpgradeKind UpgradeKind `json:"UpgradeKind,omitempty"`
13886	// 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'
13887	RollingUpgradeMode UpgradeMode `json:"RollingUpgradeMode,omitempty"`
13888	// 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).
13889	UpgradeReplicaSetCheckTimeoutInSeconds *int64 `json:"UpgradeReplicaSetCheckTimeoutInSeconds,omitempty"`
13890	// 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).
13891	ForceRestart *bool `json:"ForceRestart,omitempty"`
13892	// SortOrder - Defines the order in which an upgrade proceeds through the cluster. Possible values include: 'UpgradeSortOrderInvalid', 'UpgradeSortOrderDefault', 'UpgradeSortOrderNumeric', 'UpgradeSortOrderLexicographical', 'UpgradeSortOrderReverseNumeric', 'UpgradeSortOrderReverseLexicographical'
13893	SortOrder UpgradeSortOrder `json:"SortOrder,omitempty"`
13894	// EnableDeltaHealthEvaluation - When true, enables delta health evaluation rather than absolute health evaluation after completion of each upgrade domain.
13895	EnableDeltaHealthEvaluation *bool `json:"EnableDeltaHealthEvaluation,omitempty"`
13896	// MonitoringPolicy - Describes the parameters for monitoring an upgrade in Monitored mode.
13897	MonitoringPolicy *MonitoringPolicyDescription `json:"MonitoringPolicy,omitempty"`
13898	// ClusterHealthPolicy - Defines a health policy used to evaluate the health of the cluster or of a cluster node.
13899	ClusterHealthPolicy *ClusterHealthPolicy `json:"ClusterHealthPolicy,omitempty"`
13900	// ClusterUpgradeHealthPolicy - Defines a health policy used to evaluate the health of the cluster during a cluster upgrade.
13901	ClusterUpgradeHealthPolicy *ClusterUpgradeHealthPolicyObject `json:"ClusterUpgradeHealthPolicy,omitempty"`
13902	// ApplicationHealthPolicyMap - Defines a map that contains specific application health policies for different applications.
13903	// Each entry specifies as key the application name and as value an ApplicationHealthPolicy used to evaluate the application health.
13904	// 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).
13905	// The map is empty by default.
13906	ApplicationHealthPolicyMap *[]ApplicationHealthPolicyMapItem `json:"ApplicationHealthPolicyMap,omitempty"`
13907}
13908
13909// ClusterUpgradeDomainCompletedEvent cluster Upgrade Domain Completed event.
13910type ClusterUpgradeDomainCompletedEvent struct {
13911	// TargetClusterVersion - Target Cluster version.
13912	TargetClusterVersion *string `json:"TargetClusterVersion,omitempty"`
13913	// UpgradeState - State of upgrade.
13914	UpgradeState *string `json:"UpgradeState,omitempty"`
13915	// UpgradeDomains - Upgrade domains.
13916	UpgradeDomains *string `json:"UpgradeDomains,omitempty"`
13917	// UpgradeDomainElapsedTimeInMs - Duration of domain upgrade in milli-seconds.
13918	UpgradeDomainElapsedTimeInMs *float64 `json:"UpgradeDomainElapsedTimeInMs,omitempty"`
13919	// EventInstanceID - The identifier for the FabricEvent instance.
13920	EventInstanceID *uuid.UUID `json:"EventInstanceId,omitempty"`
13921	// Category - The category of event.
13922	Category *string `json:"Category,omitempty"`
13923	// TimeStamp - The time event was logged.
13924	TimeStamp *date.Time `json:"TimeStamp,omitempty"`
13925	// HasCorrelatedEvents - Shows there is existing related events available.
13926	HasCorrelatedEvents *bool `json:"HasCorrelatedEvents,omitempty"`
13927	// 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'
13928	Kind KindBasicFabricEvent `json:"Kind,omitempty"`
13929}
13930
13931// MarshalJSON is the custom marshaler for ClusterUpgradeDomainCompletedEvent.
13932func (cudce ClusterUpgradeDomainCompletedEvent) MarshalJSON() ([]byte, error) {
13933	cudce.Kind = KindClusterUpgradeDomainCompleted
13934	objectMap := make(map[string]interface{})
13935	if cudce.TargetClusterVersion != nil {
13936		objectMap["TargetClusterVersion"] = cudce.TargetClusterVersion
13937	}
13938	if cudce.UpgradeState != nil {
13939		objectMap["UpgradeState"] = cudce.UpgradeState
13940	}
13941	if cudce.UpgradeDomains != nil {
13942		objectMap["UpgradeDomains"] = cudce.UpgradeDomains
13943	}
13944	if cudce.UpgradeDomainElapsedTimeInMs != nil {
13945		objectMap["UpgradeDomainElapsedTimeInMs"] = cudce.UpgradeDomainElapsedTimeInMs
13946	}
13947	if cudce.EventInstanceID != nil {
13948		objectMap["EventInstanceId"] = cudce.EventInstanceID
13949	}
13950	if cudce.Category != nil {
13951		objectMap["Category"] = cudce.Category
13952	}
13953	if cudce.TimeStamp != nil {
13954		objectMap["TimeStamp"] = cudce.TimeStamp
13955	}
13956	if cudce.HasCorrelatedEvents != nil {
13957		objectMap["HasCorrelatedEvents"] = cudce.HasCorrelatedEvents
13958	}
13959	if cudce.Kind != "" {
13960		objectMap["Kind"] = cudce.Kind
13961	}
13962	return json.Marshal(objectMap)
13963}
13964
13965// AsApplicationEvent is the BasicFabricEvent implementation for ClusterUpgradeDomainCompletedEvent.
13966func (cudce ClusterUpgradeDomainCompletedEvent) AsApplicationEvent() (*ApplicationEvent, bool) {
13967	return nil, false
13968}
13969
13970// AsBasicApplicationEvent is the BasicFabricEvent implementation for ClusterUpgradeDomainCompletedEvent.
13971func (cudce ClusterUpgradeDomainCompletedEvent) AsBasicApplicationEvent() (BasicApplicationEvent, bool) {
13972	return nil, false
13973}
13974
13975// AsClusterEvent is the BasicFabricEvent implementation for ClusterUpgradeDomainCompletedEvent.
13976func (cudce ClusterUpgradeDomainCompletedEvent) AsClusterEvent() (*ClusterEvent, bool) {
13977	return nil, false
13978}
13979
13980// AsBasicClusterEvent is the BasicFabricEvent implementation for ClusterUpgradeDomainCompletedEvent.
13981func (cudce ClusterUpgradeDomainCompletedEvent) AsBasicClusterEvent() (BasicClusterEvent, bool) {
13982	return &cudce, true
13983}
13984
13985// AsContainerInstanceEvent is the BasicFabricEvent implementation for ClusterUpgradeDomainCompletedEvent.
13986func (cudce ClusterUpgradeDomainCompletedEvent) AsContainerInstanceEvent() (*ContainerInstanceEvent, bool) {
13987	return nil, false
13988}
13989
13990// AsNodeEvent is the BasicFabricEvent implementation for ClusterUpgradeDomainCompletedEvent.
13991func (cudce ClusterUpgradeDomainCompletedEvent) AsNodeEvent() (*NodeEvent, bool) {
13992	return nil, false
13993}
13994
13995// AsBasicNodeEvent is the BasicFabricEvent implementation for ClusterUpgradeDomainCompletedEvent.
13996func (cudce ClusterUpgradeDomainCompletedEvent) AsBasicNodeEvent() (BasicNodeEvent, bool) {
13997	return nil, false
13998}
13999
14000// AsPartitionAnalysisEvent is the BasicFabricEvent implementation for ClusterUpgradeDomainCompletedEvent.
14001func (cudce ClusterUpgradeDomainCompletedEvent) AsPartitionAnalysisEvent() (*PartitionAnalysisEvent, bool) {
14002	return nil, false
14003}
14004
14005// AsBasicPartitionAnalysisEvent is the BasicFabricEvent implementation for ClusterUpgradeDomainCompletedEvent.
14006func (cudce ClusterUpgradeDomainCompletedEvent) AsBasicPartitionAnalysisEvent() (BasicPartitionAnalysisEvent, bool) {
14007	return nil, false
14008}
14009
14010// AsPartitionEvent is the BasicFabricEvent implementation for ClusterUpgradeDomainCompletedEvent.
14011func (cudce ClusterUpgradeDomainCompletedEvent) AsPartitionEvent() (*PartitionEvent, bool) {
14012	return nil, false
14013}
14014
14015// AsBasicPartitionEvent is the BasicFabricEvent implementation for ClusterUpgradeDomainCompletedEvent.
14016func (cudce ClusterUpgradeDomainCompletedEvent) AsBasicPartitionEvent() (BasicPartitionEvent, bool) {
14017	return nil, false
14018}
14019
14020// AsReplicaEvent is the BasicFabricEvent implementation for ClusterUpgradeDomainCompletedEvent.
14021func (cudce ClusterUpgradeDomainCompletedEvent) AsReplicaEvent() (*ReplicaEvent, bool) {
14022	return nil, false
14023}
14024
14025// AsBasicReplicaEvent is the BasicFabricEvent implementation for ClusterUpgradeDomainCompletedEvent.
14026func (cudce ClusterUpgradeDomainCompletedEvent) AsBasicReplicaEvent() (BasicReplicaEvent, bool) {
14027	return nil, false
14028}
14029
14030// AsServiceEvent is the BasicFabricEvent implementation for ClusterUpgradeDomainCompletedEvent.
14031func (cudce ClusterUpgradeDomainCompletedEvent) AsServiceEvent() (*ServiceEvent, bool) {
14032	return nil, false
14033}
14034
14035// AsBasicServiceEvent is the BasicFabricEvent implementation for ClusterUpgradeDomainCompletedEvent.
14036func (cudce ClusterUpgradeDomainCompletedEvent) AsBasicServiceEvent() (BasicServiceEvent, bool) {
14037	return nil, false
14038}
14039
14040// AsApplicationCreatedEvent is the BasicFabricEvent implementation for ClusterUpgradeDomainCompletedEvent.
14041func (cudce ClusterUpgradeDomainCompletedEvent) AsApplicationCreatedEvent() (*ApplicationCreatedEvent, bool) {
14042	return nil, false
14043}
14044
14045// AsApplicationDeletedEvent is the BasicFabricEvent implementation for ClusterUpgradeDomainCompletedEvent.
14046func (cudce ClusterUpgradeDomainCompletedEvent) AsApplicationDeletedEvent() (*ApplicationDeletedEvent, bool) {
14047	return nil, false
14048}
14049
14050// AsApplicationNewHealthReportEvent is the BasicFabricEvent implementation for ClusterUpgradeDomainCompletedEvent.
14051func (cudce ClusterUpgradeDomainCompletedEvent) AsApplicationNewHealthReportEvent() (*ApplicationNewHealthReportEvent, bool) {
14052	return nil, false
14053}
14054
14055// AsApplicationHealthReportExpiredEvent is the BasicFabricEvent implementation for ClusterUpgradeDomainCompletedEvent.
14056func (cudce ClusterUpgradeDomainCompletedEvent) AsApplicationHealthReportExpiredEvent() (*ApplicationHealthReportExpiredEvent, bool) {
14057	return nil, false
14058}
14059
14060// AsApplicationUpgradeCompletedEvent is the BasicFabricEvent implementation for ClusterUpgradeDomainCompletedEvent.
14061func (cudce ClusterUpgradeDomainCompletedEvent) AsApplicationUpgradeCompletedEvent() (*ApplicationUpgradeCompletedEvent, bool) {
14062	return nil, false
14063}
14064
14065// AsApplicationUpgradeDomainCompletedEvent is the BasicFabricEvent implementation for ClusterUpgradeDomainCompletedEvent.
14066func (cudce ClusterUpgradeDomainCompletedEvent) AsApplicationUpgradeDomainCompletedEvent() (*ApplicationUpgradeDomainCompletedEvent, bool) {
14067	return nil, false
14068}
14069
14070// AsApplicationUpgradeRollbackCompletedEvent is the BasicFabricEvent implementation for ClusterUpgradeDomainCompletedEvent.
14071func (cudce ClusterUpgradeDomainCompletedEvent) AsApplicationUpgradeRollbackCompletedEvent() (*ApplicationUpgradeRollbackCompletedEvent, bool) {
14072	return nil, false
14073}
14074
14075// AsApplicationUpgradeRollbackStartedEvent is the BasicFabricEvent implementation for ClusterUpgradeDomainCompletedEvent.
14076func (cudce ClusterUpgradeDomainCompletedEvent) AsApplicationUpgradeRollbackStartedEvent() (*ApplicationUpgradeRollbackStartedEvent, bool) {
14077	return nil, false
14078}
14079
14080// AsApplicationUpgradeStartedEvent is the BasicFabricEvent implementation for ClusterUpgradeDomainCompletedEvent.
14081func (cudce ClusterUpgradeDomainCompletedEvent) AsApplicationUpgradeStartedEvent() (*ApplicationUpgradeStartedEvent, bool) {
14082	return nil, false
14083}
14084
14085// AsDeployedApplicationNewHealthReportEvent is the BasicFabricEvent implementation for ClusterUpgradeDomainCompletedEvent.
14086func (cudce ClusterUpgradeDomainCompletedEvent) AsDeployedApplicationNewHealthReportEvent() (*DeployedApplicationNewHealthReportEvent, bool) {
14087	return nil, false
14088}
14089
14090// AsDeployedApplicationHealthReportExpiredEvent is the BasicFabricEvent implementation for ClusterUpgradeDomainCompletedEvent.
14091func (cudce ClusterUpgradeDomainCompletedEvent) AsDeployedApplicationHealthReportExpiredEvent() (*DeployedApplicationHealthReportExpiredEvent, bool) {
14092	return nil, false
14093}
14094
14095// AsApplicationProcessExitedEvent is the BasicFabricEvent implementation for ClusterUpgradeDomainCompletedEvent.
14096func (cudce ClusterUpgradeDomainCompletedEvent) AsApplicationProcessExitedEvent() (*ApplicationProcessExitedEvent, bool) {
14097	return nil, false
14098}
14099
14100// AsApplicationContainerInstanceExitedEvent is the BasicFabricEvent implementation for ClusterUpgradeDomainCompletedEvent.
14101func (cudce ClusterUpgradeDomainCompletedEvent) AsApplicationContainerInstanceExitedEvent() (*ApplicationContainerInstanceExitedEvent, bool) {
14102	return nil, false
14103}
14104
14105// AsNodeAbortedEvent is the BasicFabricEvent implementation for ClusterUpgradeDomainCompletedEvent.
14106func (cudce ClusterUpgradeDomainCompletedEvent) AsNodeAbortedEvent() (*NodeAbortedEvent, bool) {
14107	return nil, false
14108}
14109
14110// AsNodeAddedToClusterEvent is the BasicFabricEvent implementation for ClusterUpgradeDomainCompletedEvent.
14111func (cudce ClusterUpgradeDomainCompletedEvent) AsNodeAddedToClusterEvent() (*NodeAddedToClusterEvent, bool) {
14112	return nil, false
14113}
14114
14115// AsNodeClosedEvent is the BasicFabricEvent implementation for ClusterUpgradeDomainCompletedEvent.
14116func (cudce ClusterUpgradeDomainCompletedEvent) AsNodeClosedEvent() (*NodeClosedEvent, bool) {
14117	return nil, false
14118}
14119
14120// AsNodeDeactivateCompletedEvent is the BasicFabricEvent implementation for ClusterUpgradeDomainCompletedEvent.
14121func (cudce ClusterUpgradeDomainCompletedEvent) AsNodeDeactivateCompletedEvent() (*NodeDeactivateCompletedEvent, bool) {
14122	return nil, false
14123}
14124
14125// AsNodeDeactivateStartedEvent is the BasicFabricEvent implementation for ClusterUpgradeDomainCompletedEvent.
14126func (cudce ClusterUpgradeDomainCompletedEvent) AsNodeDeactivateStartedEvent() (*NodeDeactivateStartedEvent, bool) {
14127	return nil, false
14128}
14129
14130// AsNodeDownEvent is the BasicFabricEvent implementation for ClusterUpgradeDomainCompletedEvent.
14131func (cudce ClusterUpgradeDomainCompletedEvent) AsNodeDownEvent() (*NodeDownEvent, bool) {
14132	return nil, false
14133}
14134
14135// AsNodeNewHealthReportEvent is the BasicFabricEvent implementation for ClusterUpgradeDomainCompletedEvent.
14136func (cudce ClusterUpgradeDomainCompletedEvent) AsNodeNewHealthReportEvent() (*NodeNewHealthReportEvent, bool) {
14137	return nil, false
14138}
14139
14140// AsNodeHealthReportExpiredEvent is the BasicFabricEvent implementation for ClusterUpgradeDomainCompletedEvent.
14141func (cudce ClusterUpgradeDomainCompletedEvent) AsNodeHealthReportExpiredEvent() (*NodeHealthReportExpiredEvent, bool) {
14142	return nil, false
14143}
14144
14145// AsNodeOpenSucceededEvent is the BasicFabricEvent implementation for ClusterUpgradeDomainCompletedEvent.
14146func (cudce ClusterUpgradeDomainCompletedEvent) AsNodeOpenSucceededEvent() (*NodeOpenSucceededEvent, bool) {
14147	return nil, false
14148}
14149
14150// AsNodeOpenFailedEvent is the BasicFabricEvent implementation for ClusterUpgradeDomainCompletedEvent.
14151func (cudce ClusterUpgradeDomainCompletedEvent) AsNodeOpenFailedEvent() (*NodeOpenFailedEvent, bool) {
14152	return nil, false
14153}
14154
14155// AsNodeRemovedFromClusterEvent is the BasicFabricEvent implementation for ClusterUpgradeDomainCompletedEvent.
14156func (cudce ClusterUpgradeDomainCompletedEvent) AsNodeRemovedFromClusterEvent() (*NodeRemovedFromClusterEvent, bool) {
14157	return nil, false
14158}
14159
14160// AsNodeUpEvent is the BasicFabricEvent implementation for ClusterUpgradeDomainCompletedEvent.
14161func (cudce ClusterUpgradeDomainCompletedEvent) AsNodeUpEvent() (*NodeUpEvent, bool) {
14162	return nil, false
14163}
14164
14165// AsPartitionNewHealthReportEvent is the BasicFabricEvent implementation for ClusterUpgradeDomainCompletedEvent.
14166func (cudce ClusterUpgradeDomainCompletedEvent) AsPartitionNewHealthReportEvent() (*PartitionNewHealthReportEvent, bool) {
14167	return nil, false
14168}
14169
14170// AsPartitionHealthReportExpiredEvent is the BasicFabricEvent implementation for ClusterUpgradeDomainCompletedEvent.
14171func (cudce ClusterUpgradeDomainCompletedEvent) AsPartitionHealthReportExpiredEvent() (*PartitionHealthReportExpiredEvent, bool) {
14172	return nil, false
14173}
14174
14175// AsPartitionReconfiguredEvent is the BasicFabricEvent implementation for ClusterUpgradeDomainCompletedEvent.
14176func (cudce ClusterUpgradeDomainCompletedEvent) AsPartitionReconfiguredEvent() (*PartitionReconfiguredEvent, bool) {
14177	return nil, false
14178}
14179
14180// AsPartitionPrimaryMoveAnalysisEvent is the BasicFabricEvent implementation for ClusterUpgradeDomainCompletedEvent.
14181func (cudce ClusterUpgradeDomainCompletedEvent) AsPartitionPrimaryMoveAnalysisEvent() (*PartitionPrimaryMoveAnalysisEvent, bool) {
14182	return nil, false
14183}
14184
14185// AsServiceCreatedEvent is the BasicFabricEvent implementation for ClusterUpgradeDomainCompletedEvent.
14186func (cudce ClusterUpgradeDomainCompletedEvent) AsServiceCreatedEvent() (*ServiceCreatedEvent, bool) {
14187	return nil, false
14188}
14189
14190// AsServiceDeletedEvent is the BasicFabricEvent implementation for ClusterUpgradeDomainCompletedEvent.
14191func (cudce ClusterUpgradeDomainCompletedEvent) AsServiceDeletedEvent() (*ServiceDeletedEvent, bool) {
14192	return nil, false
14193}
14194
14195// AsServiceNewHealthReportEvent is the BasicFabricEvent implementation for ClusterUpgradeDomainCompletedEvent.
14196func (cudce ClusterUpgradeDomainCompletedEvent) AsServiceNewHealthReportEvent() (*ServiceNewHealthReportEvent, bool) {
14197	return nil, false
14198}
14199
14200// AsServiceHealthReportExpiredEvent is the BasicFabricEvent implementation for ClusterUpgradeDomainCompletedEvent.
14201func (cudce ClusterUpgradeDomainCompletedEvent) AsServiceHealthReportExpiredEvent() (*ServiceHealthReportExpiredEvent, bool) {
14202	return nil, false
14203}
14204
14205// AsDeployedServicePackageNewHealthReportEvent is the BasicFabricEvent implementation for ClusterUpgradeDomainCompletedEvent.
14206func (cudce ClusterUpgradeDomainCompletedEvent) AsDeployedServicePackageNewHealthReportEvent() (*DeployedServicePackageNewHealthReportEvent, bool) {
14207	return nil, false
14208}
14209
14210// AsDeployedServicePackageHealthReportExpiredEvent is the BasicFabricEvent implementation for ClusterUpgradeDomainCompletedEvent.
14211func (cudce ClusterUpgradeDomainCompletedEvent) AsDeployedServicePackageHealthReportExpiredEvent() (*DeployedServicePackageHealthReportExpiredEvent, bool) {
14212	return nil, false
14213}
14214
14215// AsStatefulReplicaNewHealthReportEvent is the BasicFabricEvent implementation for ClusterUpgradeDomainCompletedEvent.
14216func (cudce ClusterUpgradeDomainCompletedEvent) AsStatefulReplicaNewHealthReportEvent() (*StatefulReplicaNewHealthReportEvent, bool) {
14217	return nil, false
14218}
14219
14220// AsStatefulReplicaHealthReportExpiredEvent is the BasicFabricEvent implementation for ClusterUpgradeDomainCompletedEvent.
14221func (cudce ClusterUpgradeDomainCompletedEvent) AsStatefulReplicaHealthReportExpiredEvent() (*StatefulReplicaHealthReportExpiredEvent, bool) {
14222	return nil, false
14223}
14224
14225// AsStatelessReplicaNewHealthReportEvent is the BasicFabricEvent implementation for ClusterUpgradeDomainCompletedEvent.
14226func (cudce ClusterUpgradeDomainCompletedEvent) AsStatelessReplicaNewHealthReportEvent() (*StatelessReplicaNewHealthReportEvent, bool) {
14227	return nil, false
14228}
14229
14230// AsStatelessReplicaHealthReportExpiredEvent is the BasicFabricEvent implementation for ClusterUpgradeDomainCompletedEvent.
14231func (cudce ClusterUpgradeDomainCompletedEvent) AsStatelessReplicaHealthReportExpiredEvent() (*StatelessReplicaHealthReportExpiredEvent, bool) {
14232	return nil, false
14233}
14234
14235// AsClusterNewHealthReportEvent is the BasicFabricEvent implementation for ClusterUpgradeDomainCompletedEvent.
14236func (cudce ClusterUpgradeDomainCompletedEvent) AsClusterNewHealthReportEvent() (*ClusterNewHealthReportEvent, bool) {
14237	return nil, false
14238}
14239
14240// AsClusterHealthReportExpiredEvent is the BasicFabricEvent implementation for ClusterUpgradeDomainCompletedEvent.
14241func (cudce ClusterUpgradeDomainCompletedEvent) AsClusterHealthReportExpiredEvent() (*ClusterHealthReportExpiredEvent, bool) {
14242	return nil, false
14243}
14244
14245// AsClusterUpgradeCompletedEvent is the BasicFabricEvent implementation for ClusterUpgradeDomainCompletedEvent.
14246func (cudce ClusterUpgradeDomainCompletedEvent) AsClusterUpgradeCompletedEvent() (*ClusterUpgradeCompletedEvent, bool) {
14247	return nil, false
14248}
14249
14250// AsClusterUpgradeDomainCompletedEvent is the BasicFabricEvent implementation for ClusterUpgradeDomainCompletedEvent.
14251func (cudce ClusterUpgradeDomainCompletedEvent) AsClusterUpgradeDomainCompletedEvent() (*ClusterUpgradeDomainCompletedEvent, bool) {
14252	return &cudce, true
14253}
14254
14255// AsClusterUpgradeRollbackCompletedEvent is the BasicFabricEvent implementation for ClusterUpgradeDomainCompletedEvent.
14256func (cudce ClusterUpgradeDomainCompletedEvent) AsClusterUpgradeRollbackCompletedEvent() (*ClusterUpgradeRollbackCompletedEvent, bool) {
14257	return nil, false
14258}
14259
14260// AsClusterUpgradeRollbackStartedEvent is the BasicFabricEvent implementation for ClusterUpgradeDomainCompletedEvent.
14261func (cudce ClusterUpgradeDomainCompletedEvent) AsClusterUpgradeRollbackStartedEvent() (*ClusterUpgradeRollbackStartedEvent, bool) {
14262	return nil, false
14263}
14264
14265// AsClusterUpgradeStartedEvent is the BasicFabricEvent implementation for ClusterUpgradeDomainCompletedEvent.
14266func (cudce ClusterUpgradeDomainCompletedEvent) AsClusterUpgradeStartedEvent() (*ClusterUpgradeStartedEvent, bool) {
14267	return nil, false
14268}
14269
14270// AsChaosStoppedEvent is the BasicFabricEvent implementation for ClusterUpgradeDomainCompletedEvent.
14271func (cudce ClusterUpgradeDomainCompletedEvent) AsChaosStoppedEvent() (*ChaosStoppedEvent, bool) {
14272	return nil, false
14273}
14274
14275// AsChaosStartedEvent is the BasicFabricEvent implementation for ClusterUpgradeDomainCompletedEvent.
14276func (cudce ClusterUpgradeDomainCompletedEvent) AsChaosStartedEvent() (*ChaosStartedEvent, bool) {
14277	return nil, false
14278}
14279
14280// AsChaosCodePackageRestartScheduledEvent is the BasicFabricEvent implementation for ClusterUpgradeDomainCompletedEvent.
14281func (cudce ClusterUpgradeDomainCompletedEvent) AsChaosCodePackageRestartScheduledEvent() (*ChaosCodePackageRestartScheduledEvent, bool) {
14282	return nil, false
14283}
14284
14285// AsChaosReplicaRemovalScheduledEvent is the BasicFabricEvent implementation for ClusterUpgradeDomainCompletedEvent.
14286func (cudce ClusterUpgradeDomainCompletedEvent) AsChaosReplicaRemovalScheduledEvent() (*ChaosReplicaRemovalScheduledEvent, bool) {
14287	return nil, false
14288}
14289
14290// AsChaosPartitionSecondaryMoveScheduledEvent is the BasicFabricEvent implementation for ClusterUpgradeDomainCompletedEvent.
14291func (cudce ClusterUpgradeDomainCompletedEvent) AsChaosPartitionSecondaryMoveScheduledEvent() (*ChaosPartitionSecondaryMoveScheduledEvent, bool) {
14292	return nil, false
14293}
14294
14295// AsChaosPartitionPrimaryMoveScheduledEvent is the BasicFabricEvent implementation for ClusterUpgradeDomainCompletedEvent.
14296func (cudce ClusterUpgradeDomainCompletedEvent) AsChaosPartitionPrimaryMoveScheduledEvent() (*ChaosPartitionPrimaryMoveScheduledEvent, bool) {
14297	return nil, false
14298}
14299
14300// AsChaosReplicaRestartScheduledEvent is the BasicFabricEvent implementation for ClusterUpgradeDomainCompletedEvent.
14301func (cudce ClusterUpgradeDomainCompletedEvent) AsChaosReplicaRestartScheduledEvent() (*ChaosReplicaRestartScheduledEvent, bool) {
14302	return nil, false
14303}
14304
14305// AsChaosNodeRestartScheduledEvent is the BasicFabricEvent implementation for ClusterUpgradeDomainCompletedEvent.
14306func (cudce ClusterUpgradeDomainCompletedEvent) AsChaosNodeRestartScheduledEvent() (*ChaosNodeRestartScheduledEvent, bool) {
14307	return nil, false
14308}
14309
14310// AsFabricEvent is the BasicFabricEvent implementation for ClusterUpgradeDomainCompletedEvent.
14311func (cudce ClusterUpgradeDomainCompletedEvent) AsFabricEvent() (*FabricEvent, bool) {
14312	return nil, false
14313}
14314
14315// AsBasicFabricEvent is the BasicFabricEvent implementation for ClusterUpgradeDomainCompletedEvent.
14316func (cudce ClusterUpgradeDomainCompletedEvent) AsBasicFabricEvent() (BasicFabricEvent, bool) {
14317	return &cudce, true
14318}
14319
14320// ClusterUpgradeHealthPolicyObject defines a health policy used to evaluate the health of the cluster
14321// during a cluster upgrade.
14322type ClusterUpgradeHealthPolicyObject struct {
14323	// 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%.
14324	MaxPercentDeltaUnhealthyNodes *int32 `json:"MaxPercentDeltaUnhealthyNodes,omitempty"`
14325	// 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%.
14326	MaxPercentUpgradeDomainDeltaUnhealthyNodes *int32 `json:"MaxPercentUpgradeDomainDeltaUnhealthyNodes,omitempty"`
14327}
14328
14329// ClusterUpgradeProgressObject information about a cluster upgrade.
14330type ClusterUpgradeProgressObject struct {
14331	autorest.Response `json:"-"`
14332	// CodeVersion - The ServiceFabric code version of the cluster.
14333	CodeVersion *string `json:"CodeVersion,omitempty"`
14334	// ConfigVersion - The cluster configuration version (specified in the cluster manifest).
14335	ConfigVersion *string `json:"ConfigVersion,omitempty"`
14336	// UpgradeDomains - List of upgrade domains and their statuses.
14337	UpgradeDomains *[]UpgradeDomainInfo `json:"UpgradeDomains,omitempty"`
14338	// UpgradeState - The state of the upgrade domain. Possible values include: 'UpgradeStateInvalid', 'UpgradeStateRollingBackInProgress', 'UpgradeStateRollingBackCompleted', 'UpgradeStateRollingForwardPending', 'UpgradeStateRollingForwardInProgress', 'UpgradeStateRollingForwardCompleted', 'UpgradeStateFailed'
14339	UpgradeState UpgradeState `json:"UpgradeState,omitempty"`
14340	// NextUpgradeDomain - The name of the next upgrade domain to be processed.
14341	NextUpgradeDomain *string `json:"NextUpgradeDomain,omitempty"`
14342	// 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'
14343	RollingUpgradeMode UpgradeMode `json:"RollingUpgradeMode,omitempty"`
14344	// UpgradeDescription - Represents a ServiceFabric cluster upgrade
14345	UpgradeDescription *ClusterUpgradeDescriptionObject `json:"UpgradeDescription,omitempty"`
14346	// UpgradeDurationInMilliseconds - The estimated elapsed time spent processing the current overall upgrade.
14347	UpgradeDurationInMilliseconds *string `json:"UpgradeDurationInMilliseconds,omitempty"`
14348	// UpgradeDomainDurationInMilliseconds - The estimated elapsed time spent processing the current upgrade domain.
14349	UpgradeDomainDurationInMilliseconds *string `json:"UpgradeDomainDurationInMilliseconds,omitempty"`
14350	// UnhealthyEvaluations - List of health evaluations that resulted in the current aggregated health state.
14351	UnhealthyEvaluations *[]HealthEvaluationWrapper `json:"UnhealthyEvaluations,omitempty"`
14352	// CurrentUpgradeDomainProgress - Information about the current in-progress upgrade domain.
14353	CurrentUpgradeDomainProgress *CurrentUpgradeDomainProgressInfo `json:"CurrentUpgradeDomainProgress,omitempty"`
14354	// StartTimestampUtc - The start time of the upgrade in UTC.
14355	StartTimestampUtc *string `json:"StartTimestampUtc,omitempty"`
14356	// FailureTimestampUtc - The failure time of the upgrade in UTC.
14357	FailureTimestampUtc *string `json:"FailureTimestampUtc,omitempty"`
14358	// FailureReason - The cause of an upgrade failure that resulted in FailureAction being executed. Possible values include: 'None', 'Interrupted', 'HealthCheck', 'UpgradeDomainTimeout', 'OverallUpgradeTimeout'
14359	FailureReason FailureReason `json:"FailureReason,omitempty"`
14360	// UpgradeDomainProgressAtFailure - The detailed upgrade progress for nodes in the current upgrade domain at the point of failure.
14361	UpgradeDomainProgressAtFailure *FailedUpgradeDomainProgressObject `json:"UpgradeDomainProgressAtFailure,omitempty"`
14362}
14363
14364// ClusterUpgradeRollbackCompletedEvent cluster Upgrade Rollback Completed event.
14365type ClusterUpgradeRollbackCompletedEvent struct {
14366	// TargetClusterVersion - Target Cluster version.
14367	TargetClusterVersion *string `json:"TargetClusterVersion,omitempty"`
14368	// FailureReason - Describes failure.
14369	FailureReason *string `json:"FailureReason,omitempty"`
14370	// OverallUpgradeElapsedTimeInMs - Overall duration of upgrade in milli-seconds.
14371	OverallUpgradeElapsedTimeInMs *float64 `json:"OverallUpgradeElapsedTimeInMs,omitempty"`
14372	// EventInstanceID - The identifier for the FabricEvent instance.
14373	EventInstanceID *uuid.UUID `json:"EventInstanceId,omitempty"`
14374	// Category - The category of event.
14375	Category *string `json:"Category,omitempty"`
14376	// TimeStamp - The time event was logged.
14377	TimeStamp *date.Time `json:"TimeStamp,omitempty"`
14378	// HasCorrelatedEvents - Shows there is existing related events available.
14379	HasCorrelatedEvents *bool `json:"HasCorrelatedEvents,omitempty"`
14380	// 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'
14381	Kind KindBasicFabricEvent `json:"Kind,omitempty"`
14382}
14383
14384// MarshalJSON is the custom marshaler for ClusterUpgradeRollbackCompletedEvent.
14385func (curce ClusterUpgradeRollbackCompletedEvent) MarshalJSON() ([]byte, error) {
14386	curce.Kind = KindClusterUpgradeRollbackCompleted
14387	objectMap := make(map[string]interface{})
14388	if curce.TargetClusterVersion != nil {
14389		objectMap["TargetClusterVersion"] = curce.TargetClusterVersion
14390	}
14391	if curce.FailureReason != nil {
14392		objectMap["FailureReason"] = curce.FailureReason
14393	}
14394	if curce.OverallUpgradeElapsedTimeInMs != nil {
14395		objectMap["OverallUpgradeElapsedTimeInMs"] = curce.OverallUpgradeElapsedTimeInMs
14396	}
14397	if curce.EventInstanceID != nil {
14398		objectMap["EventInstanceId"] = curce.EventInstanceID
14399	}
14400	if curce.Category != nil {
14401		objectMap["Category"] = curce.Category
14402	}
14403	if curce.TimeStamp != nil {
14404		objectMap["TimeStamp"] = curce.TimeStamp
14405	}
14406	if curce.HasCorrelatedEvents != nil {
14407		objectMap["HasCorrelatedEvents"] = curce.HasCorrelatedEvents
14408	}
14409	if curce.Kind != "" {
14410		objectMap["Kind"] = curce.Kind
14411	}
14412	return json.Marshal(objectMap)
14413}
14414
14415// AsApplicationEvent is the BasicFabricEvent implementation for ClusterUpgradeRollbackCompletedEvent.
14416func (curce ClusterUpgradeRollbackCompletedEvent) AsApplicationEvent() (*ApplicationEvent, bool) {
14417	return nil, false
14418}
14419
14420// AsBasicApplicationEvent is the BasicFabricEvent implementation for ClusterUpgradeRollbackCompletedEvent.
14421func (curce ClusterUpgradeRollbackCompletedEvent) AsBasicApplicationEvent() (BasicApplicationEvent, bool) {
14422	return nil, false
14423}
14424
14425// AsClusterEvent is the BasicFabricEvent implementation for ClusterUpgradeRollbackCompletedEvent.
14426func (curce ClusterUpgradeRollbackCompletedEvent) AsClusterEvent() (*ClusterEvent, bool) {
14427	return nil, false
14428}
14429
14430// AsBasicClusterEvent is the BasicFabricEvent implementation for ClusterUpgradeRollbackCompletedEvent.
14431func (curce ClusterUpgradeRollbackCompletedEvent) AsBasicClusterEvent() (BasicClusterEvent, bool) {
14432	return &curce, true
14433}
14434
14435// AsContainerInstanceEvent is the BasicFabricEvent implementation for ClusterUpgradeRollbackCompletedEvent.
14436func (curce ClusterUpgradeRollbackCompletedEvent) AsContainerInstanceEvent() (*ContainerInstanceEvent, bool) {
14437	return nil, false
14438}
14439
14440// AsNodeEvent is the BasicFabricEvent implementation for ClusterUpgradeRollbackCompletedEvent.
14441func (curce ClusterUpgradeRollbackCompletedEvent) AsNodeEvent() (*NodeEvent, bool) {
14442	return nil, false
14443}
14444
14445// AsBasicNodeEvent is the BasicFabricEvent implementation for ClusterUpgradeRollbackCompletedEvent.
14446func (curce ClusterUpgradeRollbackCompletedEvent) AsBasicNodeEvent() (BasicNodeEvent, bool) {
14447	return nil, false
14448}
14449
14450// AsPartitionAnalysisEvent is the BasicFabricEvent implementation for ClusterUpgradeRollbackCompletedEvent.
14451func (curce ClusterUpgradeRollbackCompletedEvent) AsPartitionAnalysisEvent() (*PartitionAnalysisEvent, bool) {
14452	return nil, false
14453}
14454
14455// AsBasicPartitionAnalysisEvent is the BasicFabricEvent implementation for ClusterUpgradeRollbackCompletedEvent.
14456func (curce ClusterUpgradeRollbackCompletedEvent) AsBasicPartitionAnalysisEvent() (BasicPartitionAnalysisEvent, bool) {
14457	return nil, false
14458}
14459
14460// AsPartitionEvent is the BasicFabricEvent implementation for ClusterUpgradeRollbackCompletedEvent.
14461func (curce ClusterUpgradeRollbackCompletedEvent) AsPartitionEvent() (*PartitionEvent, bool) {
14462	return nil, false
14463}
14464
14465// AsBasicPartitionEvent is the BasicFabricEvent implementation for ClusterUpgradeRollbackCompletedEvent.
14466func (curce ClusterUpgradeRollbackCompletedEvent) AsBasicPartitionEvent() (BasicPartitionEvent, bool) {
14467	return nil, false
14468}
14469
14470// AsReplicaEvent is the BasicFabricEvent implementation for ClusterUpgradeRollbackCompletedEvent.
14471func (curce ClusterUpgradeRollbackCompletedEvent) AsReplicaEvent() (*ReplicaEvent, bool) {
14472	return nil, false
14473}
14474
14475// AsBasicReplicaEvent is the BasicFabricEvent implementation for ClusterUpgradeRollbackCompletedEvent.
14476func (curce ClusterUpgradeRollbackCompletedEvent) AsBasicReplicaEvent() (BasicReplicaEvent, bool) {
14477	return nil, false
14478}
14479
14480// AsServiceEvent is the BasicFabricEvent implementation for ClusterUpgradeRollbackCompletedEvent.
14481func (curce ClusterUpgradeRollbackCompletedEvent) AsServiceEvent() (*ServiceEvent, bool) {
14482	return nil, false
14483}
14484
14485// AsBasicServiceEvent is the BasicFabricEvent implementation for ClusterUpgradeRollbackCompletedEvent.
14486func (curce ClusterUpgradeRollbackCompletedEvent) AsBasicServiceEvent() (BasicServiceEvent, bool) {
14487	return nil, false
14488}
14489
14490// AsApplicationCreatedEvent is the BasicFabricEvent implementation for ClusterUpgradeRollbackCompletedEvent.
14491func (curce ClusterUpgradeRollbackCompletedEvent) AsApplicationCreatedEvent() (*ApplicationCreatedEvent, bool) {
14492	return nil, false
14493}
14494
14495// AsApplicationDeletedEvent is the BasicFabricEvent implementation for ClusterUpgradeRollbackCompletedEvent.
14496func (curce ClusterUpgradeRollbackCompletedEvent) AsApplicationDeletedEvent() (*ApplicationDeletedEvent, bool) {
14497	return nil, false
14498}
14499
14500// AsApplicationNewHealthReportEvent is the BasicFabricEvent implementation for ClusterUpgradeRollbackCompletedEvent.
14501func (curce ClusterUpgradeRollbackCompletedEvent) AsApplicationNewHealthReportEvent() (*ApplicationNewHealthReportEvent, bool) {
14502	return nil, false
14503}
14504
14505// AsApplicationHealthReportExpiredEvent is the BasicFabricEvent implementation for ClusterUpgradeRollbackCompletedEvent.
14506func (curce ClusterUpgradeRollbackCompletedEvent) AsApplicationHealthReportExpiredEvent() (*ApplicationHealthReportExpiredEvent, bool) {
14507	return nil, false
14508}
14509
14510// AsApplicationUpgradeCompletedEvent is the BasicFabricEvent implementation for ClusterUpgradeRollbackCompletedEvent.
14511func (curce ClusterUpgradeRollbackCompletedEvent) AsApplicationUpgradeCompletedEvent() (*ApplicationUpgradeCompletedEvent, bool) {
14512	return nil, false
14513}
14514
14515// AsApplicationUpgradeDomainCompletedEvent is the BasicFabricEvent implementation for ClusterUpgradeRollbackCompletedEvent.
14516func (curce ClusterUpgradeRollbackCompletedEvent) AsApplicationUpgradeDomainCompletedEvent() (*ApplicationUpgradeDomainCompletedEvent, bool) {
14517	return nil, false
14518}
14519
14520// AsApplicationUpgradeRollbackCompletedEvent is the BasicFabricEvent implementation for ClusterUpgradeRollbackCompletedEvent.
14521func (curce ClusterUpgradeRollbackCompletedEvent) AsApplicationUpgradeRollbackCompletedEvent() (*ApplicationUpgradeRollbackCompletedEvent, bool) {
14522	return nil, false
14523}
14524
14525// AsApplicationUpgradeRollbackStartedEvent is the BasicFabricEvent implementation for ClusterUpgradeRollbackCompletedEvent.
14526func (curce ClusterUpgradeRollbackCompletedEvent) AsApplicationUpgradeRollbackStartedEvent() (*ApplicationUpgradeRollbackStartedEvent, bool) {
14527	return nil, false
14528}
14529
14530// AsApplicationUpgradeStartedEvent is the BasicFabricEvent implementation for ClusterUpgradeRollbackCompletedEvent.
14531func (curce ClusterUpgradeRollbackCompletedEvent) AsApplicationUpgradeStartedEvent() (*ApplicationUpgradeStartedEvent, bool) {
14532	return nil, false
14533}
14534
14535// AsDeployedApplicationNewHealthReportEvent is the BasicFabricEvent implementation for ClusterUpgradeRollbackCompletedEvent.
14536func (curce ClusterUpgradeRollbackCompletedEvent) AsDeployedApplicationNewHealthReportEvent() (*DeployedApplicationNewHealthReportEvent, bool) {
14537	return nil, false
14538}
14539
14540// AsDeployedApplicationHealthReportExpiredEvent is the BasicFabricEvent implementation for ClusterUpgradeRollbackCompletedEvent.
14541func (curce ClusterUpgradeRollbackCompletedEvent) AsDeployedApplicationHealthReportExpiredEvent() (*DeployedApplicationHealthReportExpiredEvent, bool) {
14542	return nil, false
14543}
14544
14545// AsApplicationProcessExitedEvent is the BasicFabricEvent implementation for ClusterUpgradeRollbackCompletedEvent.
14546func (curce ClusterUpgradeRollbackCompletedEvent) AsApplicationProcessExitedEvent() (*ApplicationProcessExitedEvent, bool) {
14547	return nil, false
14548}
14549
14550// AsApplicationContainerInstanceExitedEvent is the BasicFabricEvent implementation for ClusterUpgradeRollbackCompletedEvent.
14551func (curce ClusterUpgradeRollbackCompletedEvent) AsApplicationContainerInstanceExitedEvent() (*ApplicationContainerInstanceExitedEvent, bool) {
14552	return nil, false
14553}
14554
14555// AsNodeAbortedEvent is the BasicFabricEvent implementation for ClusterUpgradeRollbackCompletedEvent.
14556func (curce ClusterUpgradeRollbackCompletedEvent) AsNodeAbortedEvent() (*NodeAbortedEvent, bool) {
14557	return nil, false
14558}
14559
14560// AsNodeAddedToClusterEvent is the BasicFabricEvent implementation for ClusterUpgradeRollbackCompletedEvent.
14561func (curce ClusterUpgradeRollbackCompletedEvent) AsNodeAddedToClusterEvent() (*NodeAddedToClusterEvent, bool) {
14562	return nil, false
14563}
14564
14565// AsNodeClosedEvent is the BasicFabricEvent implementation for ClusterUpgradeRollbackCompletedEvent.
14566func (curce ClusterUpgradeRollbackCompletedEvent) AsNodeClosedEvent() (*NodeClosedEvent, bool) {
14567	return nil, false
14568}
14569
14570// AsNodeDeactivateCompletedEvent is the BasicFabricEvent implementation for ClusterUpgradeRollbackCompletedEvent.
14571func (curce ClusterUpgradeRollbackCompletedEvent) AsNodeDeactivateCompletedEvent() (*NodeDeactivateCompletedEvent, bool) {
14572	return nil, false
14573}
14574
14575// AsNodeDeactivateStartedEvent is the BasicFabricEvent implementation for ClusterUpgradeRollbackCompletedEvent.
14576func (curce ClusterUpgradeRollbackCompletedEvent) AsNodeDeactivateStartedEvent() (*NodeDeactivateStartedEvent, bool) {
14577	return nil, false
14578}
14579
14580// AsNodeDownEvent is the BasicFabricEvent implementation for ClusterUpgradeRollbackCompletedEvent.
14581func (curce ClusterUpgradeRollbackCompletedEvent) AsNodeDownEvent() (*NodeDownEvent, bool) {
14582	return nil, false
14583}
14584
14585// AsNodeNewHealthReportEvent is the BasicFabricEvent implementation for ClusterUpgradeRollbackCompletedEvent.
14586func (curce ClusterUpgradeRollbackCompletedEvent) AsNodeNewHealthReportEvent() (*NodeNewHealthReportEvent, bool) {
14587	return nil, false
14588}
14589
14590// AsNodeHealthReportExpiredEvent is the BasicFabricEvent implementation for ClusterUpgradeRollbackCompletedEvent.
14591func (curce ClusterUpgradeRollbackCompletedEvent) AsNodeHealthReportExpiredEvent() (*NodeHealthReportExpiredEvent, bool) {
14592	return nil, false
14593}
14594
14595// AsNodeOpenSucceededEvent is the BasicFabricEvent implementation for ClusterUpgradeRollbackCompletedEvent.
14596func (curce ClusterUpgradeRollbackCompletedEvent) AsNodeOpenSucceededEvent() (*NodeOpenSucceededEvent, bool) {
14597	return nil, false
14598}
14599
14600// AsNodeOpenFailedEvent is the BasicFabricEvent implementation for ClusterUpgradeRollbackCompletedEvent.
14601func (curce ClusterUpgradeRollbackCompletedEvent) AsNodeOpenFailedEvent() (*NodeOpenFailedEvent, bool) {
14602	return nil, false
14603}
14604
14605// AsNodeRemovedFromClusterEvent is the BasicFabricEvent implementation for ClusterUpgradeRollbackCompletedEvent.
14606func (curce ClusterUpgradeRollbackCompletedEvent) AsNodeRemovedFromClusterEvent() (*NodeRemovedFromClusterEvent, bool) {
14607	return nil, false
14608}
14609
14610// AsNodeUpEvent is the BasicFabricEvent implementation for ClusterUpgradeRollbackCompletedEvent.
14611func (curce ClusterUpgradeRollbackCompletedEvent) AsNodeUpEvent() (*NodeUpEvent, bool) {
14612	return nil, false
14613}
14614
14615// AsPartitionNewHealthReportEvent is the BasicFabricEvent implementation for ClusterUpgradeRollbackCompletedEvent.
14616func (curce ClusterUpgradeRollbackCompletedEvent) AsPartitionNewHealthReportEvent() (*PartitionNewHealthReportEvent, bool) {
14617	return nil, false
14618}
14619
14620// AsPartitionHealthReportExpiredEvent is the BasicFabricEvent implementation for ClusterUpgradeRollbackCompletedEvent.
14621func (curce ClusterUpgradeRollbackCompletedEvent) AsPartitionHealthReportExpiredEvent() (*PartitionHealthReportExpiredEvent, bool) {
14622	return nil, false
14623}
14624
14625// AsPartitionReconfiguredEvent is the BasicFabricEvent implementation for ClusterUpgradeRollbackCompletedEvent.
14626func (curce ClusterUpgradeRollbackCompletedEvent) AsPartitionReconfiguredEvent() (*PartitionReconfiguredEvent, bool) {
14627	return nil, false
14628}
14629
14630// AsPartitionPrimaryMoveAnalysisEvent is the BasicFabricEvent implementation for ClusterUpgradeRollbackCompletedEvent.
14631func (curce ClusterUpgradeRollbackCompletedEvent) AsPartitionPrimaryMoveAnalysisEvent() (*PartitionPrimaryMoveAnalysisEvent, bool) {
14632	return nil, false
14633}
14634
14635// AsServiceCreatedEvent is the BasicFabricEvent implementation for ClusterUpgradeRollbackCompletedEvent.
14636func (curce ClusterUpgradeRollbackCompletedEvent) AsServiceCreatedEvent() (*ServiceCreatedEvent, bool) {
14637	return nil, false
14638}
14639
14640// AsServiceDeletedEvent is the BasicFabricEvent implementation for ClusterUpgradeRollbackCompletedEvent.
14641func (curce ClusterUpgradeRollbackCompletedEvent) AsServiceDeletedEvent() (*ServiceDeletedEvent, bool) {
14642	return nil, false
14643}
14644
14645// AsServiceNewHealthReportEvent is the BasicFabricEvent implementation for ClusterUpgradeRollbackCompletedEvent.
14646func (curce ClusterUpgradeRollbackCompletedEvent) AsServiceNewHealthReportEvent() (*ServiceNewHealthReportEvent, bool) {
14647	return nil, false
14648}
14649
14650// AsServiceHealthReportExpiredEvent is the BasicFabricEvent implementation for ClusterUpgradeRollbackCompletedEvent.
14651func (curce ClusterUpgradeRollbackCompletedEvent) AsServiceHealthReportExpiredEvent() (*ServiceHealthReportExpiredEvent, bool) {
14652	return nil, false
14653}
14654
14655// AsDeployedServicePackageNewHealthReportEvent is the BasicFabricEvent implementation for ClusterUpgradeRollbackCompletedEvent.
14656func (curce ClusterUpgradeRollbackCompletedEvent) AsDeployedServicePackageNewHealthReportEvent() (*DeployedServicePackageNewHealthReportEvent, bool) {
14657	return nil, false
14658}
14659
14660// AsDeployedServicePackageHealthReportExpiredEvent is the BasicFabricEvent implementation for ClusterUpgradeRollbackCompletedEvent.
14661func (curce ClusterUpgradeRollbackCompletedEvent) AsDeployedServicePackageHealthReportExpiredEvent() (*DeployedServicePackageHealthReportExpiredEvent, bool) {
14662	return nil, false
14663}
14664
14665// AsStatefulReplicaNewHealthReportEvent is the BasicFabricEvent implementation for ClusterUpgradeRollbackCompletedEvent.
14666func (curce ClusterUpgradeRollbackCompletedEvent) AsStatefulReplicaNewHealthReportEvent() (*StatefulReplicaNewHealthReportEvent, bool) {
14667	return nil, false
14668}
14669
14670// AsStatefulReplicaHealthReportExpiredEvent is the BasicFabricEvent implementation for ClusterUpgradeRollbackCompletedEvent.
14671func (curce ClusterUpgradeRollbackCompletedEvent) AsStatefulReplicaHealthReportExpiredEvent() (*StatefulReplicaHealthReportExpiredEvent, bool) {
14672	return nil, false
14673}
14674
14675// AsStatelessReplicaNewHealthReportEvent is the BasicFabricEvent implementation for ClusterUpgradeRollbackCompletedEvent.
14676func (curce ClusterUpgradeRollbackCompletedEvent) AsStatelessReplicaNewHealthReportEvent() (*StatelessReplicaNewHealthReportEvent, bool) {
14677	return nil, false
14678}
14679
14680// AsStatelessReplicaHealthReportExpiredEvent is the BasicFabricEvent implementation for ClusterUpgradeRollbackCompletedEvent.
14681func (curce ClusterUpgradeRollbackCompletedEvent) AsStatelessReplicaHealthReportExpiredEvent() (*StatelessReplicaHealthReportExpiredEvent, bool) {
14682	return nil, false
14683}
14684
14685// AsClusterNewHealthReportEvent is the BasicFabricEvent implementation for ClusterUpgradeRollbackCompletedEvent.
14686func (curce ClusterUpgradeRollbackCompletedEvent) AsClusterNewHealthReportEvent() (*ClusterNewHealthReportEvent, bool) {
14687	return nil, false
14688}
14689
14690// AsClusterHealthReportExpiredEvent is the BasicFabricEvent implementation for ClusterUpgradeRollbackCompletedEvent.
14691func (curce ClusterUpgradeRollbackCompletedEvent) AsClusterHealthReportExpiredEvent() (*ClusterHealthReportExpiredEvent, bool) {
14692	return nil, false
14693}
14694
14695// AsClusterUpgradeCompletedEvent is the BasicFabricEvent implementation for ClusterUpgradeRollbackCompletedEvent.
14696func (curce ClusterUpgradeRollbackCompletedEvent) AsClusterUpgradeCompletedEvent() (*ClusterUpgradeCompletedEvent, bool) {
14697	return nil, false
14698}
14699
14700// AsClusterUpgradeDomainCompletedEvent is the BasicFabricEvent implementation for ClusterUpgradeRollbackCompletedEvent.
14701func (curce ClusterUpgradeRollbackCompletedEvent) AsClusterUpgradeDomainCompletedEvent() (*ClusterUpgradeDomainCompletedEvent, bool) {
14702	return nil, false
14703}
14704
14705// AsClusterUpgradeRollbackCompletedEvent is the BasicFabricEvent implementation for ClusterUpgradeRollbackCompletedEvent.
14706func (curce ClusterUpgradeRollbackCompletedEvent) AsClusterUpgradeRollbackCompletedEvent() (*ClusterUpgradeRollbackCompletedEvent, bool) {
14707	return &curce, true
14708}
14709
14710// AsClusterUpgradeRollbackStartedEvent is the BasicFabricEvent implementation for ClusterUpgradeRollbackCompletedEvent.
14711func (curce ClusterUpgradeRollbackCompletedEvent) AsClusterUpgradeRollbackStartedEvent() (*ClusterUpgradeRollbackStartedEvent, bool) {
14712	return nil, false
14713}
14714
14715// AsClusterUpgradeStartedEvent is the BasicFabricEvent implementation for ClusterUpgradeRollbackCompletedEvent.
14716func (curce ClusterUpgradeRollbackCompletedEvent) AsClusterUpgradeStartedEvent() (*ClusterUpgradeStartedEvent, bool) {
14717	return nil, false
14718}
14719
14720// AsChaosStoppedEvent is the BasicFabricEvent implementation for ClusterUpgradeRollbackCompletedEvent.
14721func (curce ClusterUpgradeRollbackCompletedEvent) AsChaosStoppedEvent() (*ChaosStoppedEvent, bool) {
14722	return nil, false
14723}
14724
14725// AsChaosStartedEvent is the BasicFabricEvent implementation for ClusterUpgradeRollbackCompletedEvent.
14726func (curce ClusterUpgradeRollbackCompletedEvent) AsChaosStartedEvent() (*ChaosStartedEvent, bool) {
14727	return nil, false
14728}
14729
14730// AsChaosCodePackageRestartScheduledEvent is the BasicFabricEvent implementation for ClusterUpgradeRollbackCompletedEvent.
14731func (curce ClusterUpgradeRollbackCompletedEvent) AsChaosCodePackageRestartScheduledEvent() (*ChaosCodePackageRestartScheduledEvent, bool) {
14732	return nil, false
14733}
14734
14735// AsChaosReplicaRemovalScheduledEvent is the BasicFabricEvent implementation for ClusterUpgradeRollbackCompletedEvent.
14736func (curce ClusterUpgradeRollbackCompletedEvent) AsChaosReplicaRemovalScheduledEvent() (*ChaosReplicaRemovalScheduledEvent, bool) {
14737	return nil, false
14738}
14739
14740// AsChaosPartitionSecondaryMoveScheduledEvent is the BasicFabricEvent implementation for ClusterUpgradeRollbackCompletedEvent.
14741func (curce ClusterUpgradeRollbackCompletedEvent) AsChaosPartitionSecondaryMoveScheduledEvent() (*ChaosPartitionSecondaryMoveScheduledEvent, bool) {
14742	return nil, false
14743}
14744
14745// AsChaosPartitionPrimaryMoveScheduledEvent is the BasicFabricEvent implementation for ClusterUpgradeRollbackCompletedEvent.
14746func (curce ClusterUpgradeRollbackCompletedEvent) AsChaosPartitionPrimaryMoveScheduledEvent() (*ChaosPartitionPrimaryMoveScheduledEvent, bool) {
14747	return nil, false
14748}
14749
14750// AsChaosReplicaRestartScheduledEvent is the BasicFabricEvent implementation for ClusterUpgradeRollbackCompletedEvent.
14751func (curce ClusterUpgradeRollbackCompletedEvent) AsChaosReplicaRestartScheduledEvent() (*ChaosReplicaRestartScheduledEvent, bool) {
14752	return nil, false
14753}
14754
14755// AsChaosNodeRestartScheduledEvent is the BasicFabricEvent implementation for ClusterUpgradeRollbackCompletedEvent.
14756func (curce ClusterUpgradeRollbackCompletedEvent) AsChaosNodeRestartScheduledEvent() (*ChaosNodeRestartScheduledEvent, bool) {
14757	return nil, false
14758}
14759
14760// AsFabricEvent is the BasicFabricEvent implementation for ClusterUpgradeRollbackCompletedEvent.
14761func (curce ClusterUpgradeRollbackCompletedEvent) AsFabricEvent() (*FabricEvent, bool) {
14762	return nil, false
14763}
14764
14765// AsBasicFabricEvent is the BasicFabricEvent implementation for ClusterUpgradeRollbackCompletedEvent.
14766func (curce ClusterUpgradeRollbackCompletedEvent) AsBasicFabricEvent() (BasicFabricEvent, bool) {
14767	return &curce, true
14768}
14769
14770// ClusterUpgradeRollbackStartedEvent cluster Upgrade Rollback Started event.
14771type ClusterUpgradeRollbackStartedEvent struct {
14772	// TargetClusterVersion - Target Cluster version.
14773	TargetClusterVersion *string `json:"TargetClusterVersion,omitempty"`
14774	// FailureReason - Describes failure.
14775	FailureReason *string `json:"FailureReason,omitempty"`
14776	// OverallUpgradeElapsedTimeInMs - Overall duration of upgrade in milli-seconds.
14777	OverallUpgradeElapsedTimeInMs *float64 `json:"OverallUpgradeElapsedTimeInMs,omitempty"`
14778	// EventInstanceID - The identifier for the FabricEvent instance.
14779	EventInstanceID *uuid.UUID `json:"EventInstanceId,omitempty"`
14780	// Category - The category of event.
14781	Category *string `json:"Category,omitempty"`
14782	// TimeStamp - The time event was logged.
14783	TimeStamp *date.Time `json:"TimeStamp,omitempty"`
14784	// HasCorrelatedEvents - Shows there is existing related events available.
14785	HasCorrelatedEvents *bool `json:"HasCorrelatedEvents,omitempty"`
14786	// 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'
14787	Kind KindBasicFabricEvent `json:"Kind,omitempty"`
14788}
14789
14790// MarshalJSON is the custom marshaler for ClusterUpgradeRollbackStartedEvent.
14791func (curse ClusterUpgradeRollbackStartedEvent) MarshalJSON() ([]byte, error) {
14792	curse.Kind = KindClusterUpgradeRollbackStarted
14793	objectMap := make(map[string]interface{})
14794	if curse.TargetClusterVersion != nil {
14795		objectMap["TargetClusterVersion"] = curse.TargetClusterVersion
14796	}
14797	if curse.FailureReason != nil {
14798		objectMap["FailureReason"] = curse.FailureReason
14799	}
14800	if curse.OverallUpgradeElapsedTimeInMs != nil {
14801		objectMap["OverallUpgradeElapsedTimeInMs"] = curse.OverallUpgradeElapsedTimeInMs
14802	}
14803	if curse.EventInstanceID != nil {
14804		objectMap["EventInstanceId"] = curse.EventInstanceID
14805	}
14806	if curse.Category != nil {
14807		objectMap["Category"] = curse.Category
14808	}
14809	if curse.TimeStamp != nil {
14810		objectMap["TimeStamp"] = curse.TimeStamp
14811	}
14812	if curse.HasCorrelatedEvents != nil {
14813		objectMap["HasCorrelatedEvents"] = curse.HasCorrelatedEvents
14814	}
14815	if curse.Kind != "" {
14816		objectMap["Kind"] = curse.Kind
14817	}
14818	return json.Marshal(objectMap)
14819}
14820
14821// AsApplicationEvent is the BasicFabricEvent implementation for ClusterUpgradeRollbackStartedEvent.
14822func (curse ClusterUpgradeRollbackStartedEvent) AsApplicationEvent() (*ApplicationEvent, bool) {
14823	return nil, false
14824}
14825
14826// AsBasicApplicationEvent is the BasicFabricEvent implementation for ClusterUpgradeRollbackStartedEvent.
14827func (curse ClusterUpgradeRollbackStartedEvent) AsBasicApplicationEvent() (BasicApplicationEvent, bool) {
14828	return nil, false
14829}
14830
14831// AsClusterEvent is the BasicFabricEvent implementation for ClusterUpgradeRollbackStartedEvent.
14832func (curse ClusterUpgradeRollbackStartedEvent) AsClusterEvent() (*ClusterEvent, bool) {
14833	return nil, false
14834}
14835
14836// AsBasicClusterEvent is the BasicFabricEvent implementation for ClusterUpgradeRollbackStartedEvent.
14837func (curse ClusterUpgradeRollbackStartedEvent) AsBasicClusterEvent() (BasicClusterEvent, bool) {
14838	return &curse, true
14839}
14840
14841// AsContainerInstanceEvent is the BasicFabricEvent implementation for ClusterUpgradeRollbackStartedEvent.
14842func (curse ClusterUpgradeRollbackStartedEvent) AsContainerInstanceEvent() (*ContainerInstanceEvent, bool) {
14843	return nil, false
14844}
14845
14846// AsNodeEvent is the BasicFabricEvent implementation for ClusterUpgradeRollbackStartedEvent.
14847func (curse ClusterUpgradeRollbackStartedEvent) AsNodeEvent() (*NodeEvent, bool) {
14848	return nil, false
14849}
14850
14851// AsBasicNodeEvent is the BasicFabricEvent implementation for ClusterUpgradeRollbackStartedEvent.
14852func (curse ClusterUpgradeRollbackStartedEvent) AsBasicNodeEvent() (BasicNodeEvent, bool) {
14853	return nil, false
14854}
14855
14856// AsPartitionAnalysisEvent is the BasicFabricEvent implementation for ClusterUpgradeRollbackStartedEvent.
14857func (curse ClusterUpgradeRollbackStartedEvent) AsPartitionAnalysisEvent() (*PartitionAnalysisEvent, bool) {
14858	return nil, false
14859}
14860
14861// AsBasicPartitionAnalysisEvent is the BasicFabricEvent implementation for ClusterUpgradeRollbackStartedEvent.
14862func (curse ClusterUpgradeRollbackStartedEvent) AsBasicPartitionAnalysisEvent() (BasicPartitionAnalysisEvent, bool) {
14863	return nil, false
14864}
14865
14866// AsPartitionEvent is the BasicFabricEvent implementation for ClusterUpgradeRollbackStartedEvent.
14867func (curse ClusterUpgradeRollbackStartedEvent) AsPartitionEvent() (*PartitionEvent, bool) {
14868	return nil, false
14869}
14870
14871// AsBasicPartitionEvent is the BasicFabricEvent implementation for ClusterUpgradeRollbackStartedEvent.
14872func (curse ClusterUpgradeRollbackStartedEvent) AsBasicPartitionEvent() (BasicPartitionEvent, bool) {
14873	return nil, false
14874}
14875
14876// AsReplicaEvent is the BasicFabricEvent implementation for ClusterUpgradeRollbackStartedEvent.
14877func (curse ClusterUpgradeRollbackStartedEvent) AsReplicaEvent() (*ReplicaEvent, bool) {
14878	return nil, false
14879}
14880
14881// AsBasicReplicaEvent is the BasicFabricEvent implementation for ClusterUpgradeRollbackStartedEvent.
14882func (curse ClusterUpgradeRollbackStartedEvent) AsBasicReplicaEvent() (BasicReplicaEvent, bool) {
14883	return nil, false
14884}
14885
14886// AsServiceEvent is the BasicFabricEvent implementation for ClusterUpgradeRollbackStartedEvent.
14887func (curse ClusterUpgradeRollbackStartedEvent) AsServiceEvent() (*ServiceEvent, bool) {
14888	return nil, false
14889}
14890
14891// AsBasicServiceEvent is the BasicFabricEvent implementation for ClusterUpgradeRollbackStartedEvent.
14892func (curse ClusterUpgradeRollbackStartedEvent) AsBasicServiceEvent() (BasicServiceEvent, bool) {
14893	return nil, false
14894}
14895
14896// AsApplicationCreatedEvent is the BasicFabricEvent implementation for ClusterUpgradeRollbackStartedEvent.
14897func (curse ClusterUpgradeRollbackStartedEvent) AsApplicationCreatedEvent() (*ApplicationCreatedEvent, bool) {
14898	return nil, false
14899}
14900
14901// AsApplicationDeletedEvent is the BasicFabricEvent implementation for ClusterUpgradeRollbackStartedEvent.
14902func (curse ClusterUpgradeRollbackStartedEvent) AsApplicationDeletedEvent() (*ApplicationDeletedEvent, bool) {
14903	return nil, false
14904}
14905
14906// AsApplicationNewHealthReportEvent is the BasicFabricEvent implementation for ClusterUpgradeRollbackStartedEvent.
14907func (curse ClusterUpgradeRollbackStartedEvent) AsApplicationNewHealthReportEvent() (*ApplicationNewHealthReportEvent, bool) {
14908	return nil, false
14909}
14910
14911// AsApplicationHealthReportExpiredEvent is the BasicFabricEvent implementation for ClusterUpgradeRollbackStartedEvent.
14912func (curse ClusterUpgradeRollbackStartedEvent) AsApplicationHealthReportExpiredEvent() (*ApplicationHealthReportExpiredEvent, bool) {
14913	return nil, false
14914}
14915
14916// AsApplicationUpgradeCompletedEvent is the BasicFabricEvent implementation for ClusterUpgradeRollbackStartedEvent.
14917func (curse ClusterUpgradeRollbackStartedEvent) AsApplicationUpgradeCompletedEvent() (*ApplicationUpgradeCompletedEvent, bool) {
14918	return nil, false
14919}
14920
14921// AsApplicationUpgradeDomainCompletedEvent is the BasicFabricEvent implementation for ClusterUpgradeRollbackStartedEvent.
14922func (curse ClusterUpgradeRollbackStartedEvent) AsApplicationUpgradeDomainCompletedEvent() (*ApplicationUpgradeDomainCompletedEvent, bool) {
14923	return nil, false
14924}
14925
14926// AsApplicationUpgradeRollbackCompletedEvent is the BasicFabricEvent implementation for ClusterUpgradeRollbackStartedEvent.
14927func (curse ClusterUpgradeRollbackStartedEvent) AsApplicationUpgradeRollbackCompletedEvent() (*ApplicationUpgradeRollbackCompletedEvent, bool) {
14928	return nil, false
14929}
14930
14931// AsApplicationUpgradeRollbackStartedEvent is the BasicFabricEvent implementation for ClusterUpgradeRollbackStartedEvent.
14932func (curse ClusterUpgradeRollbackStartedEvent) AsApplicationUpgradeRollbackStartedEvent() (*ApplicationUpgradeRollbackStartedEvent, bool) {
14933	return nil, false
14934}
14935
14936// AsApplicationUpgradeStartedEvent is the BasicFabricEvent implementation for ClusterUpgradeRollbackStartedEvent.
14937func (curse ClusterUpgradeRollbackStartedEvent) AsApplicationUpgradeStartedEvent() (*ApplicationUpgradeStartedEvent, bool) {
14938	return nil, false
14939}
14940
14941// AsDeployedApplicationNewHealthReportEvent is the BasicFabricEvent implementation for ClusterUpgradeRollbackStartedEvent.
14942func (curse ClusterUpgradeRollbackStartedEvent) AsDeployedApplicationNewHealthReportEvent() (*DeployedApplicationNewHealthReportEvent, bool) {
14943	return nil, false
14944}
14945
14946// AsDeployedApplicationHealthReportExpiredEvent is the BasicFabricEvent implementation for ClusterUpgradeRollbackStartedEvent.
14947func (curse ClusterUpgradeRollbackStartedEvent) AsDeployedApplicationHealthReportExpiredEvent() (*DeployedApplicationHealthReportExpiredEvent, bool) {
14948	return nil, false
14949}
14950
14951// AsApplicationProcessExitedEvent is the BasicFabricEvent implementation for ClusterUpgradeRollbackStartedEvent.
14952func (curse ClusterUpgradeRollbackStartedEvent) AsApplicationProcessExitedEvent() (*ApplicationProcessExitedEvent, bool) {
14953	return nil, false
14954}
14955
14956// AsApplicationContainerInstanceExitedEvent is the BasicFabricEvent implementation for ClusterUpgradeRollbackStartedEvent.
14957func (curse ClusterUpgradeRollbackStartedEvent) AsApplicationContainerInstanceExitedEvent() (*ApplicationContainerInstanceExitedEvent, bool) {
14958	return nil, false
14959}
14960
14961// AsNodeAbortedEvent is the BasicFabricEvent implementation for ClusterUpgradeRollbackStartedEvent.
14962func (curse ClusterUpgradeRollbackStartedEvent) AsNodeAbortedEvent() (*NodeAbortedEvent, bool) {
14963	return nil, false
14964}
14965
14966// AsNodeAddedToClusterEvent is the BasicFabricEvent implementation for ClusterUpgradeRollbackStartedEvent.
14967func (curse ClusterUpgradeRollbackStartedEvent) AsNodeAddedToClusterEvent() (*NodeAddedToClusterEvent, bool) {
14968	return nil, false
14969}
14970
14971// AsNodeClosedEvent is the BasicFabricEvent implementation for ClusterUpgradeRollbackStartedEvent.
14972func (curse ClusterUpgradeRollbackStartedEvent) AsNodeClosedEvent() (*NodeClosedEvent, bool) {
14973	return nil, false
14974}
14975
14976// AsNodeDeactivateCompletedEvent is the BasicFabricEvent implementation for ClusterUpgradeRollbackStartedEvent.
14977func (curse ClusterUpgradeRollbackStartedEvent) AsNodeDeactivateCompletedEvent() (*NodeDeactivateCompletedEvent, bool) {
14978	return nil, false
14979}
14980
14981// AsNodeDeactivateStartedEvent is the BasicFabricEvent implementation for ClusterUpgradeRollbackStartedEvent.
14982func (curse ClusterUpgradeRollbackStartedEvent) AsNodeDeactivateStartedEvent() (*NodeDeactivateStartedEvent, bool) {
14983	return nil, false
14984}
14985
14986// AsNodeDownEvent is the BasicFabricEvent implementation for ClusterUpgradeRollbackStartedEvent.
14987func (curse ClusterUpgradeRollbackStartedEvent) AsNodeDownEvent() (*NodeDownEvent, bool) {
14988	return nil, false
14989}
14990
14991// AsNodeNewHealthReportEvent is the BasicFabricEvent implementation for ClusterUpgradeRollbackStartedEvent.
14992func (curse ClusterUpgradeRollbackStartedEvent) AsNodeNewHealthReportEvent() (*NodeNewHealthReportEvent, bool) {
14993	return nil, false
14994}
14995
14996// AsNodeHealthReportExpiredEvent is the BasicFabricEvent implementation for ClusterUpgradeRollbackStartedEvent.
14997func (curse ClusterUpgradeRollbackStartedEvent) AsNodeHealthReportExpiredEvent() (*NodeHealthReportExpiredEvent, bool) {
14998	return nil, false
14999}
15000
15001// AsNodeOpenSucceededEvent is the BasicFabricEvent implementation for ClusterUpgradeRollbackStartedEvent.
15002func (curse ClusterUpgradeRollbackStartedEvent) AsNodeOpenSucceededEvent() (*NodeOpenSucceededEvent, bool) {
15003	return nil, false
15004}
15005
15006// AsNodeOpenFailedEvent is the BasicFabricEvent implementation for ClusterUpgradeRollbackStartedEvent.
15007func (curse ClusterUpgradeRollbackStartedEvent) AsNodeOpenFailedEvent() (*NodeOpenFailedEvent, bool) {
15008	return nil, false
15009}
15010
15011// AsNodeRemovedFromClusterEvent is the BasicFabricEvent implementation for ClusterUpgradeRollbackStartedEvent.
15012func (curse ClusterUpgradeRollbackStartedEvent) AsNodeRemovedFromClusterEvent() (*NodeRemovedFromClusterEvent, bool) {
15013	return nil, false
15014}
15015
15016// AsNodeUpEvent is the BasicFabricEvent implementation for ClusterUpgradeRollbackStartedEvent.
15017func (curse ClusterUpgradeRollbackStartedEvent) AsNodeUpEvent() (*NodeUpEvent, bool) {
15018	return nil, false
15019}
15020
15021// AsPartitionNewHealthReportEvent is the BasicFabricEvent implementation for ClusterUpgradeRollbackStartedEvent.
15022func (curse ClusterUpgradeRollbackStartedEvent) AsPartitionNewHealthReportEvent() (*PartitionNewHealthReportEvent, bool) {
15023	return nil, false
15024}
15025
15026// AsPartitionHealthReportExpiredEvent is the BasicFabricEvent implementation for ClusterUpgradeRollbackStartedEvent.
15027func (curse ClusterUpgradeRollbackStartedEvent) AsPartitionHealthReportExpiredEvent() (*PartitionHealthReportExpiredEvent, bool) {
15028	return nil, false
15029}
15030
15031// AsPartitionReconfiguredEvent is the BasicFabricEvent implementation for ClusterUpgradeRollbackStartedEvent.
15032func (curse ClusterUpgradeRollbackStartedEvent) AsPartitionReconfiguredEvent() (*PartitionReconfiguredEvent, bool) {
15033	return nil, false
15034}
15035
15036// AsPartitionPrimaryMoveAnalysisEvent is the BasicFabricEvent implementation for ClusterUpgradeRollbackStartedEvent.
15037func (curse ClusterUpgradeRollbackStartedEvent) AsPartitionPrimaryMoveAnalysisEvent() (*PartitionPrimaryMoveAnalysisEvent, bool) {
15038	return nil, false
15039}
15040
15041// AsServiceCreatedEvent is the BasicFabricEvent implementation for ClusterUpgradeRollbackStartedEvent.
15042func (curse ClusterUpgradeRollbackStartedEvent) AsServiceCreatedEvent() (*ServiceCreatedEvent, bool) {
15043	return nil, false
15044}
15045
15046// AsServiceDeletedEvent is the BasicFabricEvent implementation for ClusterUpgradeRollbackStartedEvent.
15047func (curse ClusterUpgradeRollbackStartedEvent) AsServiceDeletedEvent() (*ServiceDeletedEvent, bool) {
15048	return nil, false
15049}
15050
15051// AsServiceNewHealthReportEvent is the BasicFabricEvent implementation for ClusterUpgradeRollbackStartedEvent.
15052func (curse ClusterUpgradeRollbackStartedEvent) AsServiceNewHealthReportEvent() (*ServiceNewHealthReportEvent, bool) {
15053	return nil, false
15054}
15055
15056// AsServiceHealthReportExpiredEvent is the BasicFabricEvent implementation for ClusterUpgradeRollbackStartedEvent.
15057func (curse ClusterUpgradeRollbackStartedEvent) AsServiceHealthReportExpiredEvent() (*ServiceHealthReportExpiredEvent, bool) {
15058	return nil, false
15059}
15060
15061// AsDeployedServicePackageNewHealthReportEvent is the BasicFabricEvent implementation for ClusterUpgradeRollbackStartedEvent.
15062func (curse ClusterUpgradeRollbackStartedEvent) AsDeployedServicePackageNewHealthReportEvent() (*DeployedServicePackageNewHealthReportEvent, bool) {
15063	return nil, false
15064}
15065
15066// AsDeployedServicePackageHealthReportExpiredEvent is the BasicFabricEvent implementation for ClusterUpgradeRollbackStartedEvent.
15067func (curse ClusterUpgradeRollbackStartedEvent) AsDeployedServicePackageHealthReportExpiredEvent() (*DeployedServicePackageHealthReportExpiredEvent, bool) {
15068	return nil, false
15069}
15070
15071// AsStatefulReplicaNewHealthReportEvent is the BasicFabricEvent implementation for ClusterUpgradeRollbackStartedEvent.
15072func (curse ClusterUpgradeRollbackStartedEvent) AsStatefulReplicaNewHealthReportEvent() (*StatefulReplicaNewHealthReportEvent, bool) {
15073	return nil, false
15074}
15075
15076// AsStatefulReplicaHealthReportExpiredEvent is the BasicFabricEvent implementation for ClusterUpgradeRollbackStartedEvent.
15077func (curse ClusterUpgradeRollbackStartedEvent) AsStatefulReplicaHealthReportExpiredEvent() (*StatefulReplicaHealthReportExpiredEvent, bool) {
15078	return nil, false
15079}
15080
15081// AsStatelessReplicaNewHealthReportEvent is the BasicFabricEvent implementation for ClusterUpgradeRollbackStartedEvent.
15082func (curse ClusterUpgradeRollbackStartedEvent) AsStatelessReplicaNewHealthReportEvent() (*StatelessReplicaNewHealthReportEvent, bool) {
15083	return nil, false
15084}
15085
15086// AsStatelessReplicaHealthReportExpiredEvent is the BasicFabricEvent implementation for ClusterUpgradeRollbackStartedEvent.
15087func (curse ClusterUpgradeRollbackStartedEvent) AsStatelessReplicaHealthReportExpiredEvent() (*StatelessReplicaHealthReportExpiredEvent, bool) {
15088	return nil, false
15089}
15090
15091// AsClusterNewHealthReportEvent is the BasicFabricEvent implementation for ClusterUpgradeRollbackStartedEvent.
15092func (curse ClusterUpgradeRollbackStartedEvent) AsClusterNewHealthReportEvent() (*ClusterNewHealthReportEvent, bool) {
15093	return nil, false
15094}
15095
15096// AsClusterHealthReportExpiredEvent is the BasicFabricEvent implementation for ClusterUpgradeRollbackStartedEvent.
15097func (curse ClusterUpgradeRollbackStartedEvent) AsClusterHealthReportExpiredEvent() (*ClusterHealthReportExpiredEvent, bool) {
15098	return nil, false
15099}
15100
15101// AsClusterUpgradeCompletedEvent is the BasicFabricEvent implementation for ClusterUpgradeRollbackStartedEvent.
15102func (curse ClusterUpgradeRollbackStartedEvent) AsClusterUpgradeCompletedEvent() (*ClusterUpgradeCompletedEvent, bool) {
15103	return nil, false
15104}
15105
15106// AsClusterUpgradeDomainCompletedEvent is the BasicFabricEvent implementation for ClusterUpgradeRollbackStartedEvent.
15107func (curse ClusterUpgradeRollbackStartedEvent) AsClusterUpgradeDomainCompletedEvent() (*ClusterUpgradeDomainCompletedEvent, bool) {
15108	return nil, false
15109}
15110
15111// AsClusterUpgradeRollbackCompletedEvent is the BasicFabricEvent implementation for ClusterUpgradeRollbackStartedEvent.
15112func (curse ClusterUpgradeRollbackStartedEvent) AsClusterUpgradeRollbackCompletedEvent() (*ClusterUpgradeRollbackCompletedEvent, bool) {
15113	return nil, false
15114}
15115
15116// AsClusterUpgradeRollbackStartedEvent is the BasicFabricEvent implementation for ClusterUpgradeRollbackStartedEvent.
15117func (curse ClusterUpgradeRollbackStartedEvent) AsClusterUpgradeRollbackStartedEvent() (*ClusterUpgradeRollbackStartedEvent, bool) {
15118	return &curse, true
15119}
15120
15121// AsClusterUpgradeStartedEvent is the BasicFabricEvent implementation for ClusterUpgradeRollbackStartedEvent.
15122func (curse ClusterUpgradeRollbackStartedEvent) AsClusterUpgradeStartedEvent() (*ClusterUpgradeStartedEvent, bool) {
15123	return nil, false
15124}
15125
15126// AsChaosStoppedEvent is the BasicFabricEvent implementation for ClusterUpgradeRollbackStartedEvent.
15127func (curse ClusterUpgradeRollbackStartedEvent) AsChaosStoppedEvent() (*ChaosStoppedEvent, bool) {
15128	return nil, false
15129}
15130
15131// AsChaosStartedEvent is the BasicFabricEvent implementation for ClusterUpgradeRollbackStartedEvent.
15132func (curse ClusterUpgradeRollbackStartedEvent) AsChaosStartedEvent() (*ChaosStartedEvent, bool) {
15133	return nil, false
15134}
15135
15136// AsChaosCodePackageRestartScheduledEvent is the BasicFabricEvent implementation for ClusterUpgradeRollbackStartedEvent.
15137func (curse ClusterUpgradeRollbackStartedEvent) AsChaosCodePackageRestartScheduledEvent() (*ChaosCodePackageRestartScheduledEvent, bool) {
15138	return nil, false
15139}
15140
15141// AsChaosReplicaRemovalScheduledEvent is the BasicFabricEvent implementation for ClusterUpgradeRollbackStartedEvent.
15142func (curse ClusterUpgradeRollbackStartedEvent) AsChaosReplicaRemovalScheduledEvent() (*ChaosReplicaRemovalScheduledEvent, bool) {
15143	return nil, false
15144}
15145
15146// AsChaosPartitionSecondaryMoveScheduledEvent is the BasicFabricEvent implementation for ClusterUpgradeRollbackStartedEvent.
15147func (curse ClusterUpgradeRollbackStartedEvent) AsChaosPartitionSecondaryMoveScheduledEvent() (*ChaosPartitionSecondaryMoveScheduledEvent, bool) {
15148	return nil, false
15149}
15150
15151// AsChaosPartitionPrimaryMoveScheduledEvent is the BasicFabricEvent implementation for ClusterUpgradeRollbackStartedEvent.
15152func (curse ClusterUpgradeRollbackStartedEvent) AsChaosPartitionPrimaryMoveScheduledEvent() (*ChaosPartitionPrimaryMoveScheduledEvent, bool) {
15153	return nil, false
15154}
15155
15156// AsChaosReplicaRestartScheduledEvent is the BasicFabricEvent implementation for ClusterUpgradeRollbackStartedEvent.
15157func (curse ClusterUpgradeRollbackStartedEvent) AsChaosReplicaRestartScheduledEvent() (*ChaosReplicaRestartScheduledEvent, bool) {
15158	return nil, false
15159}
15160
15161// AsChaosNodeRestartScheduledEvent is the BasicFabricEvent implementation for ClusterUpgradeRollbackStartedEvent.
15162func (curse ClusterUpgradeRollbackStartedEvent) AsChaosNodeRestartScheduledEvent() (*ChaosNodeRestartScheduledEvent, bool) {
15163	return nil, false
15164}
15165
15166// AsFabricEvent is the BasicFabricEvent implementation for ClusterUpgradeRollbackStartedEvent.
15167func (curse ClusterUpgradeRollbackStartedEvent) AsFabricEvent() (*FabricEvent, bool) {
15168	return nil, false
15169}
15170
15171// AsBasicFabricEvent is the BasicFabricEvent implementation for ClusterUpgradeRollbackStartedEvent.
15172func (curse ClusterUpgradeRollbackStartedEvent) AsBasicFabricEvent() (BasicFabricEvent, bool) {
15173	return &curse, true
15174}
15175
15176// ClusterUpgradeStartedEvent cluster Upgrade Started event.
15177type ClusterUpgradeStartedEvent struct {
15178	// CurrentClusterVersion - Current Cluster version.
15179	CurrentClusterVersion *string `json:"CurrentClusterVersion,omitempty"`
15180	// TargetClusterVersion - Target Cluster version.
15181	TargetClusterVersion *string `json:"TargetClusterVersion,omitempty"`
15182	// UpgradeType - Type of upgrade.
15183	UpgradeType *string `json:"UpgradeType,omitempty"`
15184	// RollingUpgradeMode - Mode of upgrade.
15185	RollingUpgradeMode *string `json:"RollingUpgradeMode,omitempty"`
15186	// FailureAction - Action if failed.
15187	FailureAction *string `json:"FailureAction,omitempty"`
15188	// EventInstanceID - The identifier for the FabricEvent instance.
15189	EventInstanceID *uuid.UUID `json:"EventInstanceId,omitempty"`
15190	// Category - The category of event.
15191	Category *string `json:"Category,omitempty"`
15192	// TimeStamp - The time event was logged.
15193	TimeStamp *date.Time `json:"TimeStamp,omitempty"`
15194	// HasCorrelatedEvents - Shows there is existing related events available.
15195	HasCorrelatedEvents *bool `json:"HasCorrelatedEvents,omitempty"`
15196	// 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'
15197	Kind KindBasicFabricEvent `json:"Kind,omitempty"`
15198}
15199
15200// MarshalJSON is the custom marshaler for ClusterUpgradeStartedEvent.
15201func (cuse ClusterUpgradeStartedEvent) MarshalJSON() ([]byte, error) {
15202	cuse.Kind = KindClusterUpgradeStarted
15203	objectMap := make(map[string]interface{})
15204	if cuse.CurrentClusterVersion != nil {
15205		objectMap["CurrentClusterVersion"] = cuse.CurrentClusterVersion
15206	}
15207	if cuse.TargetClusterVersion != nil {
15208		objectMap["TargetClusterVersion"] = cuse.TargetClusterVersion
15209	}
15210	if cuse.UpgradeType != nil {
15211		objectMap["UpgradeType"] = cuse.UpgradeType
15212	}
15213	if cuse.RollingUpgradeMode != nil {
15214		objectMap["RollingUpgradeMode"] = cuse.RollingUpgradeMode
15215	}
15216	if cuse.FailureAction != nil {
15217		objectMap["FailureAction"] = cuse.FailureAction
15218	}
15219	if cuse.EventInstanceID != nil {
15220		objectMap["EventInstanceId"] = cuse.EventInstanceID
15221	}
15222	if cuse.Category != nil {
15223		objectMap["Category"] = cuse.Category
15224	}
15225	if cuse.TimeStamp != nil {
15226		objectMap["TimeStamp"] = cuse.TimeStamp
15227	}
15228	if cuse.HasCorrelatedEvents != nil {
15229		objectMap["HasCorrelatedEvents"] = cuse.HasCorrelatedEvents
15230	}
15231	if cuse.Kind != "" {
15232		objectMap["Kind"] = cuse.Kind
15233	}
15234	return json.Marshal(objectMap)
15235}
15236
15237// AsApplicationEvent is the BasicFabricEvent implementation for ClusterUpgradeStartedEvent.
15238func (cuse ClusterUpgradeStartedEvent) AsApplicationEvent() (*ApplicationEvent, bool) {
15239	return nil, false
15240}
15241
15242// AsBasicApplicationEvent is the BasicFabricEvent implementation for ClusterUpgradeStartedEvent.
15243func (cuse ClusterUpgradeStartedEvent) AsBasicApplicationEvent() (BasicApplicationEvent, bool) {
15244	return nil, false
15245}
15246
15247// AsClusterEvent is the BasicFabricEvent implementation for ClusterUpgradeStartedEvent.
15248func (cuse ClusterUpgradeStartedEvent) AsClusterEvent() (*ClusterEvent, bool) {
15249	return nil, false
15250}
15251
15252// AsBasicClusterEvent is the BasicFabricEvent implementation for ClusterUpgradeStartedEvent.
15253func (cuse ClusterUpgradeStartedEvent) AsBasicClusterEvent() (BasicClusterEvent, bool) {
15254	return &cuse, true
15255}
15256
15257// AsContainerInstanceEvent is the BasicFabricEvent implementation for ClusterUpgradeStartedEvent.
15258func (cuse ClusterUpgradeStartedEvent) AsContainerInstanceEvent() (*ContainerInstanceEvent, bool) {
15259	return nil, false
15260}
15261
15262// AsNodeEvent is the BasicFabricEvent implementation for ClusterUpgradeStartedEvent.
15263func (cuse ClusterUpgradeStartedEvent) AsNodeEvent() (*NodeEvent, bool) {
15264	return nil, false
15265}
15266
15267// AsBasicNodeEvent is the BasicFabricEvent implementation for ClusterUpgradeStartedEvent.
15268func (cuse ClusterUpgradeStartedEvent) AsBasicNodeEvent() (BasicNodeEvent, bool) {
15269	return nil, false
15270}
15271
15272// AsPartitionAnalysisEvent is the BasicFabricEvent implementation for ClusterUpgradeStartedEvent.
15273func (cuse ClusterUpgradeStartedEvent) AsPartitionAnalysisEvent() (*PartitionAnalysisEvent, bool) {
15274	return nil, false
15275}
15276
15277// AsBasicPartitionAnalysisEvent is the BasicFabricEvent implementation for ClusterUpgradeStartedEvent.
15278func (cuse ClusterUpgradeStartedEvent) AsBasicPartitionAnalysisEvent() (BasicPartitionAnalysisEvent, bool) {
15279	return nil, false
15280}
15281
15282// AsPartitionEvent is the BasicFabricEvent implementation for ClusterUpgradeStartedEvent.
15283func (cuse ClusterUpgradeStartedEvent) AsPartitionEvent() (*PartitionEvent, bool) {
15284	return nil, false
15285}
15286
15287// AsBasicPartitionEvent is the BasicFabricEvent implementation for ClusterUpgradeStartedEvent.
15288func (cuse ClusterUpgradeStartedEvent) AsBasicPartitionEvent() (BasicPartitionEvent, bool) {
15289	return nil, false
15290}
15291
15292// AsReplicaEvent is the BasicFabricEvent implementation for ClusterUpgradeStartedEvent.
15293func (cuse ClusterUpgradeStartedEvent) AsReplicaEvent() (*ReplicaEvent, bool) {
15294	return nil, false
15295}
15296
15297// AsBasicReplicaEvent is the BasicFabricEvent implementation for ClusterUpgradeStartedEvent.
15298func (cuse ClusterUpgradeStartedEvent) AsBasicReplicaEvent() (BasicReplicaEvent, bool) {
15299	return nil, false
15300}
15301
15302// AsServiceEvent is the BasicFabricEvent implementation for ClusterUpgradeStartedEvent.
15303func (cuse ClusterUpgradeStartedEvent) AsServiceEvent() (*ServiceEvent, bool) {
15304	return nil, false
15305}
15306
15307// AsBasicServiceEvent is the BasicFabricEvent implementation for ClusterUpgradeStartedEvent.
15308func (cuse ClusterUpgradeStartedEvent) AsBasicServiceEvent() (BasicServiceEvent, bool) {
15309	return nil, false
15310}
15311
15312// AsApplicationCreatedEvent is the BasicFabricEvent implementation for ClusterUpgradeStartedEvent.
15313func (cuse ClusterUpgradeStartedEvent) AsApplicationCreatedEvent() (*ApplicationCreatedEvent, bool) {
15314	return nil, false
15315}
15316
15317// AsApplicationDeletedEvent is the BasicFabricEvent implementation for ClusterUpgradeStartedEvent.
15318func (cuse ClusterUpgradeStartedEvent) AsApplicationDeletedEvent() (*ApplicationDeletedEvent, bool) {
15319	return nil, false
15320}
15321
15322// AsApplicationNewHealthReportEvent is the BasicFabricEvent implementation for ClusterUpgradeStartedEvent.
15323func (cuse ClusterUpgradeStartedEvent) AsApplicationNewHealthReportEvent() (*ApplicationNewHealthReportEvent, bool) {
15324	return nil, false
15325}
15326
15327// AsApplicationHealthReportExpiredEvent is the BasicFabricEvent implementation for ClusterUpgradeStartedEvent.
15328func (cuse ClusterUpgradeStartedEvent) AsApplicationHealthReportExpiredEvent() (*ApplicationHealthReportExpiredEvent, bool) {
15329	return nil, false
15330}
15331
15332// AsApplicationUpgradeCompletedEvent is the BasicFabricEvent implementation for ClusterUpgradeStartedEvent.
15333func (cuse ClusterUpgradeStartedEvent) AsApplicationUpgradeCompletedEvent() (*ApplicationUpgradeCompletedEvent, bool) {
15334	return nil, false
15335}
15336
15337// AsApplicationUpgradeDomainCompletedEvent is the BasicFabricEvent implementation for ClusterUpgradeStartedEvent.
15338func (cuse ClusterUpgradeStartedEvent) AsApplicationUpgradeDomainCompletedEvent() (*ApplicationUpgradeDomainCompletedEvent, bool) {
15339	return nil, false
15340}
15341
15342// AsApplicationUpgradeRollbackCompletedEvent is the BasicFabricEvent implementation for ClusterUpgradeStartedEvent.
15343func (cuse ClusterUpgradeStartedEvent) AsApplicationUpgradeRollbackCompletedEvent() (*ApplicationUpgradeRollbackCompletedEvent, bool) {
15344	return nil, false
15345}
15346
15347// AsApplicationUpgradeRollbackStartedEvent is the BasicFabricEvent implementation for ClusterUpgradeStartedEvent.
15348func (cuse ClusterUpgradeStartedEvent) AsApplicationUpgradeRollbackStartedEvent() (*ApplicationUpgradeRollbackStartedEvent, bool) {
15349	return nil, false
15350}
15351
15352// AsApplicationUpgradeStartedEvent is the BasicFabricEvent implementation for ClusterUpgradeStartedEvent.
15353func (cuse ClusterUpgradeStartedEvent) AsApplicationUpgradeStartedEvent() (*ApplicationUpgradeStartedEvent, bool) {
15354	return nil, false
15355}
15356
15357// AsDeployedApplicationNewHealthReportEvent is the BasicFabricEvent implementation for ClusterUpgradeStartedEvent.
15358func (cuse ClusterUpgradeStartedEvent) AsDeployedApplicationNewHealthReportEvent() (*DeployedApplicationNewHealthReportEvent, bool) {
15359	return nil, false
15360}
15361
15362// AsDeployedApplicationHealthReportExpiredEvent is the BasicFabricEvent implementation for ClusterUpgradeStartedEvent.
15363func (cuse ClusterUpgradeStartedEvent) AsDeployedApplicationHealthReportExpiredEvent() (*DeployedApplicationHealthReportExpiredEvent, bool) {
15364	return nil, false
15365}
15366
15367// AsApplicationProcessExitedEvent is the BasicFabricEvent implementation for ClusterUpgradeStartedEvent.
15368func (cuse ClusterUpgradeStartedEvent) AsApplicationProcessExitedEvent() (*ApplicationProcessExitedEvent, bool) {
15369	return nil, false
15370}
15371
15372// AsApplicationContainerInstanceExitedEvent is the BasicFabricEvent implementation for ClusterUpgradeStartedEvent.
15373func (cuse ClusterUpgradeStartedEvent) AsApplicationContainerInstanceExitedEvent() (*ApplicationContainerInstanceExitedEvent, bool) {
15374	return nil, false
15375}
15376
15377// AsNodeAbortedEvent is the BasicFabricEvent implementation for ClusterUpgradeStartedEvent.
15378func (cuse ClusterUpgradeStartedEvent) AsNodeAbortedEvent() (*NodeAbortedEvent, bool) {
15379	return nil, false
15380}
15381
15382// AsNodeAddedToClusterEvent is the BasicFabricEvent implementation for ClusterUpgradeStartedEvent.
15383func (cuse ClusterUpgradeStartedEvent) AsNodeAddedToClusterEvent() (*NodeAddedToClusterEvent, bool) {
15384	return nil, false
15385}
15386
15387// AsNodeClosedEvent is the BasicFabricEvent implementation for ClusterUpgradeStartedEvent.
15388func (cuse ClusterUpgradeStartedEvent) AsNodeClosedEvent() (*NodeClosedEvent, bool) {
15389	return nil, false
15390}
15391
15392// AsNodeDeactivateCompletedEvent is the BasicFabricEvent implementation for ClusterUpgradeStartedEvent.
15393func (cuse ClusterUpgradeStartedEvent) AsNodeDeactivateCompletedEvent() (*NodeDeactivateCompletedEvent, bool) {
15394	return nil, false
15395}
15396
15397// AsNodeDeactivateStartedEvent is the BasicFabricEvent implementation for ClusterUpgradeStartedEvent.
15398func (cuse ClusterUpgradeStartedEvent) AsNodeDeactivateStartedEvent() (*NodeDeactivateStartedEvent, bool) {
15399	return nil, false
15400}
15401
15402// AsNodeDownEvent is the BasicFabricEvent implementation for ClusterUpgradeStartedEvent.
15403func (cuse ClusterUpgradeStartedEvent) AsNodeDownEvent() (*NodeDownEvent, bool) {
15404	return nil, false
15405}
15406
15407// AsNodeNewHealthReportEvent is the BasicFabricEvent implementation for ClusterUpgradeStartedEvent.
15408func (cuse ClusterUpgradeStartedEvent) AsNodeNewHealthReportEvent() (*NodeNewHealthReportEvent, bool) {
15409	return nil, false
15410}
15411
15412// AsNodeHealthReportExpiredEvent is the BasicFabricEvent implementation for ClusterUpgradeStartedEvent.
15413func (cuse ClusterUpgradeStartedEvent) AsNodeHealthReportExpiredEvent() (*NodeHealthReportExpiredEvent, bool) {
15414	return nil, false
15415}
15416
15417// AsNodeOpenSucceededEvent is the BasicFabricEvent implementation for ClusterUpgradeStartedEvent.
15418func (cuse ClusterUpgradeStartedEvent) AsNodeOpenSucceededEvent() (*NodeOpenSucceededEvent, bool) {
15419	return nil, false
15420}
15421
15422// AsNodeOpenFailedEvent is the BasicFabricEvent implementation for ClusterUpgradeStartedEvent.
15423func (cuse ClusterUpgradeStartedEvent) AsNodeOpenFailedEvent() (*NodeOpenFailedEvent, bool) {
15424	return nil, false
15425}
15426
15427// AsNodeRemovedFromClusterEvent is the BasicFabricEvent implementation for ClusterUpgradeStartedEvent.
15428func (cuse ClusterUpgradeStartedEvent) AsNodeRemovedFromClusterEvent() (*NodeRemovedFromClusterEvent, bool) {
15429	return nil, false
15430}
15431
15432// AsNodeUpEvent is the BasicFabricEvent implementation for ClusterUpgradeStartedEvent.
15433func (cuse ClusterUpgradeStartedEvent) AsNodeUpEvent() (*NodeUpEvent, bool) {
15434	return nil, false
15435}
15436
15437// AsPartitionNewHealthReportEvent is the BasicFabricEvent implementation for ClusterUpgradeStartedEvent.
15438func (cuse ClusterUpgradeStartedEvent) AsPartitionNewHealthReportEvent() (*PartitionNewHealthReportEvent, bool) {
15439	return nil, false
15440}
15441
15442// AsPartitionHealthReportExpiredEvent is the BasicFabricEvent implementation for ClusterUpgradeStartedEvent.
15443func (cuse ClusterUpgradeStartedEvent) AsPartitionHealthReportExpiredEvent() (*PartitionHealthReportExpiredEvent, bool) {
15444	return nil, false
15445}
15446
15447// AsPartitionReconfiguredEvent is the BasicFabricEvent implementation for ClusterUpgradeStartedEvent.
15448func (cuse ClusterUpgradeStartedEvent) AsPartitionReconfiguredEvent() (*PartitionReconfiguredEvent, bool) {
15449	return nil, false
15450}
15451
15452// AsPartitionPrimaryMoveAnalysisEvent is the BasicFabricEvent implementation for ClusterUpgradeStartedEvent.
15453func (cuse ClusterUpgradeStartedEvent) AsPartitionPrimaryMoveAnalysisEvent() (*PartitionPrimaryMoveAnalysisEvent, bool) {
15454	return nil, false
15455}
15456
15457// AsServiceCreatedEvent is the BasicFabricEvent implementation for ClusterUpgradeStartedEvent.
15458func (cuse ClusterUpgradeStartedEvent) AsServiceCreatedEvent() (*ServiceCreatedEvent, bool) {
15459	return nil, false
15460}
15461
15462// AsServiceDeletedEvent is the BasicFabricEvent implementation for ClusterUpgradeStartedEvent.
15463func (cuse ClusterUpgradeStartedEvent) AsServiceDeletedEvent() (*ServiceDeletedEvent, bool) {
15464	return nil, false
15465}
15466
15467// AsServiceNewHealthReportEvent is the BasicFabricEvent implementation for ClusterUpgradeStartedEvent.
15468func (cuse ClusterUpgradeStartedEvent) AsServiceNewHealthReportEvent() (*ServiceNewHealthReportEvent, bool) {
15469	return nil, false
15470}
15471
15472// AsServiceHealthReportExpiredEvent is the BasicFabricEvent implementation for ClusterUpgradeStartedEvent.
15473func (cuse ClusterUpgradeStartedEvent) AsServiceHealthReportExpiredEvent() (*ServiceHealthReportExpiredEvent, bool) {
15474	return nil, false
15475}
15476
15477// AsDeployedServicePackageNewHealthReportEvent is the BasicFabricEvent implementation for ClusterUpgradeStartedEvent.
15478func (cuse ClusterUpgradeStartedEvent) AsDeployedServicePackageNewHealthReportEvent() (*DeployedServicePackageNewHealthReportEvent, bool) {
15479	return nil, false
15480}
15481
15482// AsDeployedServicePackageHealthReportExpiredEvent is the BasicFabricEvent implementation for ClusterUpgradeStartedEvent.
15483func (cuse ClusterUpgradeStartedEvent) AsDeployedServicePackageHealthReportExpiredEvent() (*DeployedServicePackageHealthReportExpiredEvent, bool) {
15484	return nil, false
15485}
15486
15487// AsStatefulReplicaNewHealthReportEvent is the BasicFabricEvent implementation for ClusterUpgradeStartedEvent.
15488func (cuse ClusterUpgradeStartedEvent) AsStatefulReplicaNewHealthReportEvent() (*StatefulReplicaNewHealthReportEvent, bool) {
15489	return nil, false
15490}
15491
15492// AsStatefulReplicaHealthReportExpiredEvent is the BasicFabricEvent implementation for ClusterUpgradeStartedEvent.
15493func (cuse ClusterUpgradeStartedEvent) AsStatefulReplicaHealthReportExpiredEvent() (*StatefulReplicaHealthReportExpiredEvent, bool) {
15494	return nil, false
15495}
15496
15497// AsStatelessReplicaNewHealthReportEvent is the BasicFabricEvent implementation for ClusterUpgradeStartedEvent.
15498func (cuse ClusterUpgradeStartedEvent) AsStatelessReplicaNewHealthReportEvent() (*StatelessReplicaNewHealthReportEvent, bool) {
15499	return nil, false
15500}
15501
15502// AsStatelessReplicaHealthReportExpiredEvent is the BasicFabricEvent implementation for ClusterUpgradeStartedEvent.
15503func (cuse ClusterUpgradeStartedEvent) AsStatelessReplicaHealthReportExpiredEvent() (*StatelessReplicaHealthReportExpiredEvent, bool) {
15504	return nil, false
15505}
15506
15507// AsClusterNewHealthReportEvent is the BasicFabricEvent implementation for ClusterUpgradeStartedEvent.
15508func (cuse ClusterUpgradeStartedEvent) AsClusterNewHealthReportEvent() (*ClusterNewHealthReportEvent, bool) {
15509	return nil, false
15510}
15511
15512// AsClusterHealthReportExpiredEvent is the BasicFabricEvent implementation for ClusterUpgradeStartedEvent.
15513func (cuse ClusterUpgradeStartedEvent) AsClusterHealthReportExpiredEvent() (*ClusterHealthReportExpiredEvent, bool) {
15514	return nil, false
15515}
15516
15517// AsClusterUpgradeCompletedEvent is the BasicFabricEvent implementation for ClusterUpgradeStartedEvent.
15518func (cuse ClusterUpgradeStartedEvent) AsClusterUpgradeCompletedEvent() (*ClusterUpgradeCompletedEvent, bool) {
15519	return nil, false
15520}
15521
15522// AsClusterUpgradeDomainCompletedEvent is the BasicFabricEvent implementation for ClusterUpgradeStartedEvent.
15523func (cuse ClusterUpgradeStartedEvent) AsClusterUpgradeDomainCompletedEvent() (*ClusterUpgradeDomainCompletedEvent, bool) {
15524	return nil, false
15525}
15526
15527// AsClusterUpgradeRollbackCompletedEvent is the BasicFabricEvent implementation for ClusterUpgradeStartedEvent.
15528func (cuse ClusterUpgradeStartedEvent) AsClusterUpgradeRollbackCompletedEvent() (*ClusterUpgradeRollbackCompletedEvent, bool) {
15529	return nil, false
15530}
15531
15532// AsClusterUpgradeRollbackStartedEvent is the BasicFabricEvent implementation for ClusterUpgradeStartedEvent.
15533func (cuse ClusterUpgradeStartedEvent) AsClusterUpgradeRollbackStartedEvent() (*ClusterUpgradeRollbackStartedEvent, bool) {
15534	return nil, false
15535}
15536
15537// AsClusterUpgradeStartedEvent is the BasicFabricEvent implementation for ClusterUpgradeStartedEvent.
15538func (cuse ClusterUpgradeStartedEvent) AsClusterUpgradeStartedEvent() (*ClusterUpgradeStartedEvent, bool) {
15539	return &cuse, true
15540}
15541
15542// AsChaosStoppedEvent is the BasicFabricEvent implementation for ClusterUpgradeStartedEvent.
15543func (cuse ClusterUpgradeStartedEvent) AsChaosStoppedEvent() (*ChaosStoppedEvent, bool) {
15544	return nil, false
15545}
15546
15547// AsChaosStartedEvent is the BasicFabricEvent implementation for ClusterUpgradeStartedEvent.
15548func (cuse ClusterUpgradeStartedEvent) AsChaosStartedEvent() (*ChaosStartedEvent, bool) {
15549	return nil, false
15550}
15551
15552// AsChaosCodePackageRestartScheduledEvent is the BasicFabricEvent implementation for ClusterUpgradeStartedEvent.
15553func (cuse ClusterUpgradeStartedEvent) AsChaosCodePackageRestartScheduledEvent() (*ChaosCodePackageRestartScheduledEvent, bool) {
15554	return nil, false
15555}
15556
15557// AsChaosReplicaRemovalScheduledEvent is the BasicFabricEvent implementation for ClusterUpgradeStartedEvent.
15558func (cuse ClusterUpgradeStartedEvent) AsChaosReplicaRemovalScheduledEvent() (*ChaosReplicaRemovalScheduledEvent, bool) {
15559	return nil, false
15560}
15561
15562// AsChaosPartitionSecondaryMoveScheduledEvent is the BasicFabricEvent implementation for ClusterUpgradeStartedEvent.
15563func (cuse ClusterUpgradeStartedEvent) AsChaosPartitionSecondaryMoveScheduledEvent() (*ChaosPartitionSecondaryMoveScheduledEvent, bool) {
15564	return nil, false
15565}
15566
15567// AsChaosPartitionPrimaryMoveScheduledEvent is the BasicFabricEvent implementation for ClusterUpgradeStartedEvent.
15568func (cuse ClusterUpgradeStartedEvent) AsChaosPartitionPrimaryMoveScheduledEvent() (*ChaosPartitionPrimaryMoveScheduledEvent, bool) {
15569	return nil, false
15570}
15571
15572// AsChaosReplicaRestartScheduledEvent is the BasicFabricEvent implementation for ClusterUpgradeStartedEvent.
15573func (cuse ClusterUpgradeStartedEvent) AsChaosReplicaRestartScheduledEvent() (*ChaosReplicaRestartScheduledEvent, bool) {
15574	return nil, false
15575}
15576
15577// AsChaosNodeRestartScheduledEvent is the BasicFabricEvent implementation for ClusterUpgradeStartedEvent.
15578func (cuse ClusterUpgradeStartedEvent) AsChaosNodeRestartScheduledEvent() (*ChaosNodeRestartScheduledEvent, bool) {
15579	return nil, false
15580}
15581
15582// AsFabricEvent is the BasicFabricEvent implementation for ClusterUpgradeStartedEvent.
15583func (cuse ClusterUpgradeStartedEvent) AsFabricEvent() (*FabricEvent, bool) {
15584	return nil, false
15585}
15586
15587// AsBasicFabricEvent is the BasicFabricEvent implementation for ClusterUpgradeStartedEvent.
15588func (cuse ClusterUpgradeStartedEvent) AsBasicFabricEvent() (BasicFabricEvent, bool) {
15589	return &cuse, true
15590}
15591
15592// ClusterVersion the cluster version.
15593type ClusterVersion struct {
15594	autorest.Response `json:"-"`
15595	// Version - The Service Fabric cluster runtime version.
15596	Version *string `json:"Version,omitempty"`
15597}
15598
15599// CodePackageEntryPoint information about setup or main entry point of a code package deployed on a
15600// Service Fabric node.
15601type CodePackageEntryPoint struct {
15602	// EntryPointLocation - The location of entry point executable on the node.
15603	EntryPointLocation *string `json:"EntryPointLocation,omitempty"`
15604	// ProcessID - The process ID of the entry point.
15605	ProcessID *string `json:"ProcessId,omitempty"`
15606	// RunAsUserName - The user name under which entry point executable is run on the node.
15607	RunAsUserName *string `json:"RunAsUserName,omitempty"`
15608	// CodePackageEntryPointStatistics - Statistics about setup or main entry point  of a code package deployed on a Service Fabric node.
15609	CodePackageEntryPointStatistics *CodePackageEntryPointStatistics `json:"CodePackageEntryPointStatistics,omitempty"`
15610	// 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'
15611	Status EntryPointStatus `json:"Status,omitempty"`
15612	// NextActivationTime - The time (in UTC) when the entry point executable will be run next.
15613	NextActivationTime *date.Time `json:"NextActivationTime,omitempty"`
15614	// 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.
15615	InstanceID *string `json:"InstanceId,omitempty"`
15616}
15617
15618// CodePackageEntryPointStatistics statistics about setup or main entry point  of a code package deployed
15619// on a Service Fabric node.
15620type CodePackageEntryPointStatistics struct {
15621	// LastExitCode - The last exit code of the entry point.
15622	LastExitCode *string `json:"LastExitCode,omitempty"`
15623	// LastActivationTime - The last time (in UTC) when Service Fabric attempted to run the entry point.
15624	LastActivationTime *date.Time `json:"LastActivationTime,omitempty"`
15625	// LastExitTime - The last time (in UTC) when the entry point finished running.
15626	LastExitTime *date.Time `json:"LastExitTime,omitempty"`
15627	// LastSuccessfulActivationTime - The last time (in UTC) when the entry point ran successfully.
15628	LastSuccessfulActivationTime *date.Time `json:"LastSuccessfulActivationTime,omitempty"`
15629	// LastSuccessfulExitTime - The last time (in UTC) when the entry point finished running gracefully.
15630	LastSuccessfulExitTime *date.Time `json:"LastSuccessfulExitTime,omitempty"`
15631	// ActivationCount - Number of times the entry point has run.
15632	ActivationCount *string `json:"ActivationCount,omitempty"`
15633	// ActivationFailureCount - Number of times the entry point failed to run.
15634	ActivationFailureCount *string `json:"ActivationFailureCount,omitempty"`
15635	// ContinuousActivationFailureCount - Number of times the entry point continuously failed to run.
15636	ContinuousActivationFailureCount *string `json:"ContinuousActivationFailureCount,omitempty"`
15637	// ExitCount - Number of times the entry point finished running.
15638	ExitCount *string `json:"ExitCount,omitempty"`
15639	// ExitFailureCount - Number of times the entry point failed to exit gracefully.
15640	ExitFailureCount *string `json:"ExitFailureCount,omitempty"`
15641	// ContinuousExitFailureCount - Number of times the entry point continuously failed to exit gracefully.
15642	ContinuousExitFailureCount *string `json:"ContinuousExitFailureCount,omitempty"`
15643}
15644
15645// ComposeDeploymentStatusInfo information about a Service Fabric compose deployment.
15646type ComposeDeploymentStatusInfo struct {
15647	autorest.Response `json:"-"`
15648	// Name - The name of the deployment.
15649	Name *string `json:"Name,omitempty"`
15650	// ApplicationName - The name of the application, including the 'fabric:' URI scheme.
15651	ApplicationName *string `json:"ApplicationName,omitempty"`
15652	// Status - The status of the compose deployment. Possible values include: 'ComposeDeploymentStatusInvalid', 'ComposeDeploymentStatusProvisioning', 'ComposeDeploymentStatusCreating', 'ComposeDeploymentStatusReady', 'ComposeDeploymentStatusUnprovisioning', 'ComposeDeploymentStatusDeleting', 'ComposeDeploymentStatusFailed', 'ComposeDeploymentStatusUpgrading'
15653	Status ComposeDeploymentStatus `json:"Status,omitempty"`
15654	// StatusDetails - The status details of compose deployment including failure message.
15655	StatusDetails *string `json:"StatusDetails,omitempty"`
15656}
15657
15658// ComposeDeploymentUpgradeDescription describes the parameters for a compose deployment upgrade.
15659type ComposeDeploymentUpgradeDescription struct {
15660	// DeploymentName - The name of the deployment.
15661	DeploymentName *string `json:"DeploymentName,omitempty"`
15662	// ComposeFileContent - The content of the compose file that describes the deployment to create.
15663	ComposeFileContent *string `json:"ComposeFileContent,omitempty"`
15664	// RegistryCredential - Credential information to connect to container registry.
15665	RegistryCredential *RegistryCredential `json:"RegistryCredential,omitempty"`
15666	// UpgradeKind - The kind of upgrade out of the following possible values. Possible values include: 'UpgradeKindInvalid', 'UpgradeKindRolling'
15667	UpgradeKind UpgradeKind `json:"UpgradeKind,omitempty"`
15668	// 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'
15669	RollingUpgradeMode UpgradeMode `json:"RollingUpgradeMode,omitempty"`
15670	// 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).
15671	UpgradeReplicaSetCheckTimeoutInSeconds *int64 `json:"UpgradeReplicaSetCheckTimeoutInSeconds,omitempty"`
15672	// 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).
15673	ForceRestart *bool `json:"ForceRestart,omitempty"`
15674	// MonitoringPolicy - Describes the parameters for monitoring an upgrade in Monitored mode.
15675	MonitoringPolicy *MonitoringPolicyDescription `json:"MonitoringPolicy,omitempty"`
15676	// ApplicationHealthPolicy - Defines a health policy used to evaluate the health of an application or one of its children entities.
15677	ApplicationHealthPolicy *ApplicationHealthPolicy `json:"ApplicationHealthPolicy,omitempty"`
15678}
15679
15680// ComposeDeploymentUpgradeProgressInfo describes the parameters for a compose deployment upgrade.
15681type ComposeDeploymentUpgradeProgressInfo struct {
15682	autorest.Response `json:"-"`
15683	// DeploymentName - The name of the target deployment.
15684	DeploymentName *string `json:"DeploymentName,omitempty"`
15685	// ApplicationName - The name of the target application, including the 'fabric:' URI scheme.
15686	ApplicationName *string `json:"ApplicationName,omitempty"`
15687	// UpgradeState - The state of the compose deployment upgrade. Possible values include: 'ComposeDeploymentUpgradeStateInvalid', 'ComposeDeploymentUpgradeStateProvisioningTarget', 'ComposeDeploymentUpgradeStateRollingForwardInProgress', 'ComposeDeploymentUpgradeStateRollingForwardPending', 'ComposeDeploymentUpgradeStateUnprovisioningCurrent', 'ComposeDeploymentUpgradeStateRollingForwardCompleted', 'ComposeDeploymentUpgradeStateRollingBackInProgress', 'ComposeDeploymentUpgradeStateUnprovisioningTarget', 'ComposeDeploymentUpgradeStateRollingBackCompleted', 'ComposeDeploymentUpgradeStateFailed'
15688	UpgradeState ComposeDeploymentUpgradeState `json:"UpgradeState,omitempty"`
15689	// UpgradeStatusDetails - Additional detailed information about the status of the pending upgrade.
15690	UpgradeStatusDetails *string `json:"UpgradeStatusDetails,omitempty"`
15691	// UpgradeKind - The kind of upgrade out of the following possible values. Possible values include: 'UpgradeKindInvalid', 'UpgradeKindRolling'
15692	UpgradeKind UpgradeKind `json:"UpgradeKind,omitempty"`
15693	// 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'
15694	RollingUpgradeMode UpgradeMode `json:"RollingUpgradeMode,omitempty"`
15695	// 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).
15696	ForceRestart *bool `json:"ForceRestart,omitempty"`
15697	// 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).
15698	UpgradeReplicaSetCheckTimeoutInSeconds *int64 `json:"UpgradeReplicaSetCheckTimeoutInSeconds,omitempty"`
15699	// MonitoringPolicy - Describes the parameters for monitoring an upgrade in Monitored mode.
15700	MonitoringPolicy *MonitoringPolicyDescription `json:"MonitoringPolicy,omitempty"`
15701	// ApplicationHealthPolicy - Defines a health policy used to evaluate the health of an application or one of its children entities.
15702	ApplicationHealthPolicy *ApplicationHealthPolicy `json:"ApplicationHealthPolicy,omitempty"`
15703	// TargetApplicationTypeVersion - The target application type version (found in the application manifest) for the application upgrade.
15704	TargetApplicationTypeVersion *string `json:"TargetApplicationTypeVersion,omitempty"`
15705	// 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.
15706	UpgradeDuration *string `json:"UpgradeDuration,omitempty"`
15707	// 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.
15708	CurrentUpgradeDomainDuration *string `json:"CurrentUpgradeDomainDuration,omitempty"`
15709	// ApplicationUnhealthyEvaluations - List of health evaluations that resulted in the current aggregated health state.
15710	ApplicationUnhealthyEvaluations *[]HealthEvaluationWrapper `json:"ApplicationUnhealthyEvaluations,omitempty"`
15711	// CurrentUpgradeDomainProgress - Information about the current in-progress upgrade domain.
15712	CurrentUpgradeDomainProgress *CurrentUpgradeDomainProgressInfo `json:"CurrentUpgradeDomainProgress,omitempty"`
15713	// StartTimestampUtc - The estimated UTC datetime when the upgrade started.
15714	StartTimestampUtc *string `json:"StartTimestampUtc,omitempty"`
15715	// FailureTimestampUtc - The estimated UTC datetime when the upgrade failed and FailureAction was executed.
15716	FailureTimestampUtc *string `json:"FailureTimestampUtc,omitempty"`
15717	// FailureReason - The cause of an upgrade failure that resulted in FailureAction being executed. Possible values include: 'None', 'Interrupted', 'HealthCheck', 'UpgradeDomainTimeout', 'OverallUpgradeTimeout'
15718	FailureReason FailureReason `json:"FailureReason,omitempty"`
15719	// UpgradeDomainProgressAtFailure - Information about the upgrade domain progress at the time of upgrade failure.
15720	UpgradeDomainProgressAtFailure *FailureUpgradeDomainProgressInfo `json:"UpgradeDomainProgressAtFailure,omitempty"`
15721	// ApplicationUpgradeStatusDetails - Additional details of application upgrade including failure message.
15722	ApplicationUpgradeStatusDetails *string `json:"ApplicationUpgradeStatusDetails,omitempty"`
15723}
15724
15725// ContainerAPIRequestBody parameters for making container API call.
15726type ContainerAPIRequestBody struct {
15727	// HTTPVerb - HTTP verb of container REST API, defaults to "GET"
15728	HTTPVerb *string `json:"HttpVerb,omitempty"`
15729	// URIPath - URI path of container REST API
15730	URIPath *string `json:"UriPath,omitempty"`
15731	// ContentType - Content type of container REST API request, defaults to "application/json"
15732	ContentType *string `json:"Content-Type,omitempty"`
15733	// Body - HTTP request body of container REST API
15734	Body *string `json:"Body,omitempty"`
15735}
15736
15737// ContainerAPIResponse response body that wraps container API result.
15738type ContainerAPIResponse struct {
15739	autorest.Response `json:"-"`
15740	// ContainerAPIResult - Container API result.
15741	ContainerAPIResult *ContainerAPIResult `json:"ContainerApiResult,omitempty"`
15742}
15743
15744// ContainerAPIResult container API result.
15745type ContainerAPIResult struct {
15746	// Status - HTTP status code returned by the target container API
15747	Status *int32 `json:"Status,omitempty"`
15748	// ContentType - HTTP content type
15749	ContentType *string `json:"Content-Type,omitempty"`
15750	// ContentEncoding - HTTP content encoding
15751	ContentEncoding *string `json:"Content-Encoding,omitempty"`
15752	// Body - container API result body
15753	Body *string `json:"Body,omitempty"`
15754}
15755
15756// ContainerCodePackageProperties describes a container and its runtime properties.
15757type ContainerCodePackageProperties struct {
15758	// Name - The name of the code package.
15759	Name *string `json:"name,omitempty"`
15760	// Image - The Container image to use.
15761	Image *string `json:"image,omitempty"`
15762	// ImageRegistryCredential - Image registry credential.
15763	ImageRegistryCredential *ImageRegistryCredential `json:"imageRegistryCredential,omitempty"`
15764	// Entrypoint - Override for the default entry point in the container.
15765	Entrypoint *string `json:"entrypoint,omitempty"`
15766	// Commands - Command array to execute within the container in exec form.
15767	Commands *[]string `json:"commands,omitempty"`
15768	// EnvironmentVariables - The environment variables to set in this container
15769	EnvironmentVariables *[]EnvironmentVariable `json:"environmentVariables,omitempty"`
15770	// 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".
15771	Settings *[]Setting `json:"settings,omitempty"`
15772	// Labels - The labels to set in this container.
15773	Labels *[]ContainerLabel `json:"labels,omitempty"`
15774	// Endpoints - The endpoints exposed by this container.
15775	Endpoints *[]EndpointProperties `json:"endpoints,omitempty"`
15776	// Resources - The resources required by this container.
15777	Resources *ResourceRequirements `json:"resources,omitempty"`
15778	// VolumeRefs - Volumes to be attached to the container. The lifetime of these volumes is independent of the application's lifetime.
15779	VolumeRefs *[]VolumeReference `json:"volumeRefs,omitempty"`
15780	// Volumes - Volumes to be attached to the container. The lifetime of these volumes is scoped to the application's lifetime.
15781	Volumes *[]ApplicationScopedVolume `json:"volumes,omitempty"`
15782	// Diagnostics - Reference to sinks in DiagnosticsDescription.
15783	Diagnostics *DiagnosticsRef `json:"diagnostics,omitempty"`
15784	// ReliableCollectionsRefs - A list of ReliableCollection resources used by this particular code package. Please refer to ReliableCollectionsRef for more details.
15785	ReliableCollectionsRefs *[]ReliableCollectionsRef `json:"reliableCollectionsRefs,omitempty"`
15786	// InstanceView - READ-ONLY; Runtime information of a container instance.
15787	InstanceView *ContainerInstanceView `json:"instanceView,omitempty"`
15788}
15789
15790// MarshalJSON is the custom marshaler for ContainerCodePackageProperties.
15791func (ccpp ContainerCodePackageProperties) MarshalJSON() ([]byte, error) {
15792	objectMap := make(map[string]interface{})
15793	if ccpp.Name != nil {
15794		objectMap["name"] = ccpp.Name
15795	}
15796	if ccpp.Image != nil {
15797		objectMap["image"] = ccpp.Image
15798	}
15799	if ccpp.ImageRegistryCredential != nil {
15800		objectMap["imageRegistryCredential"] = ccpp.ImageRegistryCredential
15801	}
15802	if ccpp.Entrypoint != nil {
15803		objectMap["entrypoint"] = ccpp.Entrypoint
15804	}
15805	if ccpp.Commands != nil {
15806		objectMap["commands"] = ccpp.Commands
15807	}
15808	if ccpp.EnvironmentVariables != nil {
15809		objectMap["environmentVariables"] = ccpp.EnvironmentVariables
15810	}
15811	if ccpp.Settings != nil {
15812		objectMap["settings"] = ccpp.Settings
15813	}
15814	if ccpp.Labels != nil {
15815		objectMap["labels"] = ccpp.Labels
15816	}
15817	if ccpp.Endpoints != nil {
15818		objectMap["endpoints"] = ccpp.Endpoints
15819	}
15820	if ccpp.Resources != nil {
15821		objectMap["resources"] = ccpp.Resources
15822	}
15823	if ccpp.VolumeRefs != nil {
15824		objectMap["volumeRefs"] = ccpp.VolumeRefs
15825	}
15826	if ccpp.Volumes != nil {
15827		objectMap["volumes"] = ccpp.Volumes
15828	}
15829	if ccpp.Diagnostics != nil {
15830		objectMap["diagnostics"] = ccpp.Diagnostics
15831	}
15832	if ccpp.ReliableCollectionsRefs != nil {
15833		objectMap["reliableCollectionsRefs"] = ccpp.ReliableCollectionsRefs
15834	}
15835	return json.Marshal(objectMap)
15836}
15837
15838// ContainerEvent a container event.
15839type ContainerEvent struct {
15840	// Name - The name of the container event.
15841	Name *string `json:"name,omitempty"`
15842	// Count - The count of the event.
15843	Count *int32 `json:"count,omitempty"`
15844	// FirstTimestamp - Date/time of the first event.
15845	FirstTimestamp *string `json:"firstTimestamp,omitempty"`
15846	// LastTimestamp - Date/time of the last event.
15847	LastTimestamp *string `json:"lastTimestamp,omitempty"`
15848	// Message - The event message
15849	Message *string `json:"message,omitempty"`
15850	// Type - The event type.
15851	Type *string `json:"type,omitempty"`
15852}
15853
15854// ContainerInstanceEvent represents the base for all Container Events.
15855type ContainerInstanceEvent struct {
15856	// EventInstanceID - The identifier for the FabricEvent instance.
15857	EventInstanceID *uuid.UUID `json:"EventInstanceId,omitempty"`
15858	// Category - The category of event.
15859	Category *string `json:"Category,omitempty"`
15860	// TimeStamp - The time event was logged.
15861	TimeStamp *date.Time `json:"TimeStamp,omitempty"`
15862	// HasCorrelatedEvents - Shows there is existing related events available.
15863	HasCorrelatedEvents *bool `json:"HasCorrelatedEvents,omitempty"`
15864	// 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'
15865	Kind KindBasicFabricEvent `json:"Kind,omitempty"`
15866}
15867
15868// MarshalJSON is the custom marshaler for ContainerInstanceEvent.
15869func (cie ContainerInstanceEvent) MarshalJSON() ([]byte, error) {
15870	cie.Kind = KindContainerInstanceEvent
15871	objectMap := make(map[string]interface{})
15872	if cie.EventInstanceID != nil {
15873		objectMap["EventInstanceId"] = cie.EventInstanceID
15874	}
15875	if cie.Category != nil {
15876		objectMap["Category"] = cie.Category
15877	}
15878	if cie.TimeStamp != nil {
15879		objectMap["TimeStamp"] = cie.TimeStamp
15880	}
15881	if cie.HasCorrelatedEvents != nil {
15882		objectMap["HasCorrelatedEvents"] = cie.HasCorrelatedEvents
15883	}
15884	if cie.Kind != "" {
15885		objectMap["Kind"] = cie.Kind
15886	}
15887	return json.Marshal(objectMap)
15888}
15889
15890// AsApplicationEvent is the BasicFabricEvent implementation for ContainerInstanceEvent.
15891func (cie ContainerInstanceEvent) AsApplicationEvent() (*ApplicationEvent, bool) {
15892	return nil, false
15893}
15894
15895// AsBasicApplicationEvent is the BasicFabricEvent implementation for ContainerInstanceEvent.
15896func (cie ContainerInstanceEvent) AsBasicApplicationEvent() (BasicApplicationEvent, bool) {
15897	return nil, false
15898}
15899
15900// AsClusterEvent is the BasicFabricEvent implementation for ContainerInstanceEvent.
15901func (cie ContainerInstanceEvent) AsClusterEvent() (*ClusterEvent, bool) {
15902	return nil, false
15903}
15904
15905// AsBasicClusterEvent is the BasicFabricEvent implementation for ContainerInstanceEvent.
15906func (cie ContainerInstanceEvent) AsBasicClusterEvent() (BasicClusterEvent, bool) {
15907	return nil, false
15908}
15909
15910// AsContainerInstanceEvent is the BasicFabricEvent implementation for ContainerInstanceEvent.
15911func (cie ContainerInstanceEvent) AsContainerInstanceEvent() (*ContainerInstanceEvent, bool) {
15912	return &cie, true
15913}
15914
15915// AsNodeEvent is the BasicFabricEvent implementation for ContainerInstanceEvent.
15916func (cie ContainerInstanceEvent) AsNodeEvent() (*NodeEvent, bool) {
15917	return nil, false
15918}
15919
15920// AsBasicNodeEvent is the BasicFabricEvent implementation for ContainerInstanceEvent.
15921func (cie ContainerInstanceEvent) AsBasicNodeEvent() (BasicNodeEvent, bool) {
15922	return nil, false
15923}
15924
15925// AsPartitionAnalysisEvent is the BasicFabricEvent implementation for ContainerInstanceEvent.
15926func (cie ContainerInstanceEvent) AsPartitionAnalysisEvent() (*PartitionAnalysisEvent, bool) {
15927	return nil, false
15928}
15929
15930// AsBasicPartitionAnalysisEvent is the BasicFabricEvent implementation for ContainerInstanceEvent.
15931func (cie ContainerInstanceEvent) AsBasicPartitionAnalysisEvent() (BasicPartitionAnalysisEvent, bool) {
15932	return nil, false
15933}
15934
15935// AsPartitionEvent is the BasicFabricEvent implementation for ContainerInstanceEvent.
15936func (cie ContainerInstanceEvent) AsPartitionEvent() (*PartitionEvent, bool) {
15937	return nil, false
15938}
15939
15940// AsBasicPartitionEvent is the BasicFabricEvent implementation for ContainerInstanceEvent.
15941func (cie ContainerInstanceEvent) AsBasicPartitionEvent() (BasicPartitionEvent, bool) {
15942	return nil, false
15943}
15944
15945// AsReplicaEvent is the BasicFabricEvent implementation for ContainerInstanceEvent.
15946func (cie ContainerInstanceEvent) AsReplicaEvent() (*ReplicaEvent, bool) {
15947	return nil, false
15948}
15949
15950// AsBasicReplicaEvent is the BasicFabricEvent implementation for ContainerInstanceEvent.
15951func (cie ContainerInstanceEvent) AsBasicReplicaEvent() (BasicReplicaEvent, bool) {
15952	return nil, false
15953}
15954
15955// AsServiceEvent is the BasicFabricEvent implementation for ContainerInstanceEvent.
15956func (cie ContainerInstanceEvent) AsServiceEvent() (*ServiceEvent, bool) {
15957	return nil, false
15958}
15959
15960// AsBasicServiceEvent is the BasicFabricEvent implementation for ContainerInstanceEvent.
15961func (cie ContainerInstanceEvent) AsBasicServiceEvent() (BasicServiceEvent, bool) {
15962	return nil, false
15963}
15964
15965// AsApplicationCreatedEvent is the BasicFabricEvent implementation for ContainerInstanceEvent.
15966func (cie ContainerInstanceEvent) AsApplicationCreatedEvent() (*ApplicationCreatedEvent, bool) {
15967	return nil, false
15968}
15969
15970// AsApplicationDeletedEvent is the BasicFabricEvent implementation for ContainerInstanceEvent.
15971func (cie ContainerInstanceEvent) AsApplicationDeletedEvent() (*ApplicationDeletedEvent, bool) {
15972	return nil, false
15973}
15974
15975// AsApplicationNewHealthReportEvent is the BasicFabricEvent implementation for ContainerInstanceEvent.
15976func (cie ContainerInstanceEvent) AsApplicationNewHealthReportEvent() (*ApplicationNewHealthReportEvent, bool) {
15977	return nil, false
15978}
15979
15980// AsApplicationHealthReportExpiredEvent is the BasicFabricEvent implementation for ContainerInstanceEvent.
15981func (cie ContainerInstanceEvent) AsApplicationHealthReportExpiredEvent() (*ApplicationHealthReportExpiredEvent, bool) {
15982	return nil, false
15983}
15984
15985// AsApplicationUpgradeCompletedEvent is the BasicFabricEvent implementation for ContainerInstanceEvent.
15986func (cie ContainerInstanceEvent) AsApplicationUpgradeCompletedEvent() (*ApplicationUpgradeCompletedEvent, bool) {
15987	return nil, false
15988}
15989
15990// AsApplicationUpgradeDomainCompletedEvent is the BasicFabricEvent implementation for ContainerInstanceEvent.
15991func (cie ContainerInstanceEvent) AsApplicationUpgradeDomainCompletedEvent() (*ApplicationUpgradeDomainCompletedEvent, bool) {
15992	return nil, false
15993}
15994
15995// AsApplicationUpgradeRollbackCompletedEvent is the BasicFabricEvent implementation for ContainerInstanceEvent.
15996func (cie ContainerInstanceEvent) AsApplicationUpgradeRollbackCompletedEvent() (*ApplicationUpgradeRollbackCompletedEvent, bool) {
15997	return nil, false
15998}
15999
16000// AsApplicationUpgradeRollbackStartedEvent is the BasicFabricEvent implementation for ContainerInstanceEvent.
16001func (cie ContainerInstanceEvent) AsApplicationUpgradeRollbackStartedEvent() (*ApplicationUpgradeRollbackStartedEvent, bool) {
16002	return nil, false
16003}
16004
16005// AsApplicationUpgradeStartedEvent is the BasicFabricEvent implementation for ContainerInstanceEvent.
16006func (cie ContainerInstanceEvent) AsApplicationUpgradeStartedEvent() (*ApplicationUpgradeStartedEvent, bool) {
16007	return nil, false
16008}
16009
16010// AsDeployedApplicationNewHealthReportEvent is the BasicFabricEvent implementation for ContainerInstanceEvent.
16011func (cie ContainerInstanceEvent) AsDeployedApplicationNewHealthReportEvent() (*DeployedApplicationNewHealthReportEvent, bool) {
16012	return nil, false
16013}
16014
16015// AsDeployedApplicationHealthReportExpiredEvent is the BasicFabricEvent implementation for ContainerInstanceEvent.
16016func (cie ContainerInstanceEvent) AsDeployedApplicationHealthReportExpiredEvent() (*DeployedApplicationHealthReportExpiredEvent, bool) {
16017	return nil, false
16018}
16019
16020// AsApplicationProcessExitedEvent is the BasicFabricEvent implementation for ContainerInstanceEvent.
16021func (cie ContainerInstanceEvent) AsApplicationProcessExitedEvent() (*ApplicationProcessExitedEvent, bool) {
16022	return nil, false
16023}
16024
16025// AsApplicationContainerInstanceExitedEvent is the BasicFabricEvent implementation for ContainerInstanceEvent.
16026func (cie ContainerInstanceEvent) AsApplicationContainerInstanceExitedEvent() (*ApplicationContainerInstanceExitedEvent, bool) {
16027	return nil, false
16028}
16029
16030// AsNodeAbortedEvent is the BasicFabricEvent implementation for ContainerInstanceEvent.
16031func (cie ContainerInstanceEvent) AsNodeAbortedEvent() (*NodeAbortedEvent, bool) {
16032	return nil, false
16033}
16034
16035// AsNodeAddedToClusterEvent is the BasicFabricEvent implementation for ContainerInstanceEvent.
16036func (cie ContainerInstanceEvent) AsNodeAddedToClusterEvent() (*NodeAddedToClusterEvent, bool) {
16037	return nil, false
16038}
16039
16040// AsNodeClosedEvent is the BasicFabricEvent implementation for ContainerInstanceEvent.
16041func (cie ContainerInstanceEvent) AsNodeClosedEvent() (*NodeClosedEvent, bool) {
16042	return nil, false
16043}
16044
16045// AsNodeDeactivateCompletedEvent is the BasicFabricEvent implementation for ContainerInstanceEvent.
16046func (cie ContainerInstanceEvent) AsNodeDeactivateCompletedEvent() (*NodeDeactivateCompletedEvent, bool) {
16047	return nil, false
16048}
16049
16050// AsNodeDeactivateStartedEvent is the BasicFabricEvent implementation for ContainerInstanceEvent.
16051func (cie ContainerInstanceEvent) AsNodeDeactivateStartedEvent() (*NodeDeactivateStartedEvent, bool) {
16052	return nil, false
16053}
16054
16055// AsNodeDownEvent is the BasicFabricEvent implementation for ContainerInstanceEvent.
16056func (cie ContainerInstanceEvent) AsNodeDownEvent() (*NodeDownEvent, bool) {
16057	return nil, false
16058}
16059
16060// AsNodeNewHealthReportEvent is the BasicFabricEvent implementation for ContainerInstanceEvent.
16061func (cie ContainerInstanceEvent) AsNodeNewHealthReportEvent() (*NodeNewHealthReportEvent, bool) {
16062	return nil, false
16063}
16064
16065// AsNodeHealthReportExpiredEvent is the BasicFabricEvent implementation for ContainerInstanceEvent.
16066func (cie ContainerInstanceEvent) AsNodeHealthReportExpiredEvent() (*NodeHealthReportExpiredEvent, bool) {
16067	return nil, false
16068}
16069
16070// AsNodeOpenSucceededEvent is the BasicFabricEvent implementation for ContainerInstanceEvent.
16071func (cie ContainerInstanceEvent) AsNodeOpenSucceededEvent() (*NodeOpenSucceededEvent, bool) {
16072	return nil, false
16073}
16074
16075// AsNodeOpenFailedEvent is the BasicFabricEvent implementation for ContainerInstanceEvent.
16076func (cie ContainerInstanceEvent) AsNodeOpenFailedEvent() (*NodeOpenFailedEvent, bool) {
16077	return nil, false
16078}
16079
16080// AsNodeRemovedFromClusterEvent is the BasicFabricEvent implementation for ContainerInstanceEvent.
16081func (cie ContainerInstanceEvent) AsNodeRemovedFromClusterEvent() (*NodeRemovedFromClusterEvent, bool) {
16082	return nil, false
16083}
16084
16085// AsNodeUpEvent is the BasicFabricEvent implementation for ContainerInstanceEvent.
16086func (cie ContainerInstanceEvent) AsNodeUpEvent() (*NodeUpEvent, bool) {
16087	return nil, false
16088}
16089
16090// AsPartitionNewHealthReportEvent is the BasicFabricEvent implementation for ContainerInstanceEvent.
16091func (cie ContainerInstanceEvent) AsPartitionNewHealthReportEvent() (*PartitionNewHealthReportEvent, bool) {
16092	return nil, false
16093}
16094
16095// AsPartitionHealthReportExpiredEvent is the BasicFabricEvent implementation for ContainerInstanceEvent.
16096func (cie ContainerInstanceEvent) AsPartitionHealthReportExpiredEvent() (*PartitionHealthReportExpiredEvent, bool) {
16097	return nil, false
16098}
16099
16100// AsPartitionReconfiguredEvent is the BasicFabricEvent implementation for ContainerInstanceEvent.
16101func (cie ContainerInstanceEvent) AsPartitionReconfiguredEvent() (*PartitionReconfiguredEvent, bool) {
16102	return nil, false
16103}
16104
16105// AsPartitionPrimaryMoveAnalysisEvent is the BasicFabricEvent implementation for ContainerInstanceEvent.
16106func (cie ContainerInstanceEvent) AsPartitionPrimaryMoveAnalysisEvent() (*PartitionPrimaryMoveAnalysisEvent, bool) {
16107	return nil, false
16108}
16109
16110// AsServiceCreatedEvent is the BasicFabricEvent implementation for ContainerInstanceEvent.
16111func (cie ContainerInstanceEvent) AsServiceCreatedEvent() (*ServiceCreatedEvent, bool) {
16112	return nil, false
16113}
16114
16115// AsServiceDeletedEvent is the BasicFabricEvent implementation for ContainerInstanceEvent.
16116func (cie ContainerInstanceEvent) AsServiceDeletedEvent() (*ServiceDeletedEvent, bool) {
16117	return nil, false
16118}
16119
16120// AsServiceNewHealthReportEvent is the BasicFabricEvent implementation for ContainerInstanceEvent.
16121func (cie ContainerInstanceEvent) AsServiceNewHealthReportEvent() (*ServiceNewHealthReportEvent, bool) {
16122	return nil, false
16123}
16124
16125// AsServiceHealthReportExpiredEvent is the BasicFabricEvent implementation for ContainerInstanceEvent.
16126func (cie ContainerInstanceEvent) AsServiceHealthReportExpiredEvent() (*ServiceHealthReportExpiredEvent, bool) {
16127	return nil, false
16128}
16129
16130// AsDeployedServicePackageNewHealthReportEvent is the BasicFabricEvent implementation for ContainerInstanceEvent.
16131func (cie ContainerInstanceEvent) AsDeployedServicePackageNewHealthReportEvent() (*DeployedServicePackageNewHealthReportEvent, bool) {
16132	return nil, false
16133}
16134
16135// AsDeployedServicePackageHealthReportExpiredEvent is the BasicFabricEvent implementation for ContainerInstanceEvent.
16136func (cie ContainerInstanceEvent) AsDeployedServicePackageHealthReportExpiredEvent() (*DeployedServicePackageHealthReportExpiredEvent, bool) {
16137	return nil, false
16138}
16139
16140// AsStatefulReplicaNewHealthReportEvent is the BasicFabricEvent implementation for ContainerInstanceEvent.
16141func (cie ContainerInstanceEvent) AsStatefulReplicaNewHealthReportEvent() (*StatefulReplicaNewHealthReportEvent, bool) {
16142	return nil, false
16143}
16144
16145// AsStatefulReplicaHealthReportExpiredEvent is the BasicFabricEvent implementation for ContainerInstanceEvent.
16146func (cie ContainerInstanceEvent) AsStatefulReplicaHealthReportExpiredEvent() (*StatefulReplicaHealthReportExpiredEvent, bool) {
16147	return nil, false
16148}
16149
16150// AsStatelessReplicaNewHealthReportEvent is the BasicFabricEvent implementation for ContainerInstanceEvent.
16151func (cie ContainerInstanceEvent) AsStatelessReplicaNewHealthReportEvent() (*StatelessReplicaNewHealthReportEvent, bool) {
16152	return nil, false
16153}
16154
16155// AsStatelessReplicaHealthReportExpiredEvent is the BasicFabricEvent implementation for ContainerInstanceEvent.
16156func (cie ContainerInstanceEvent) AsStatelessReplicaHealthReportExpiredEvent() (*StatelessReplicaHealthReportExpiredEvent, bool) {
16157	return nil, false
16158}
16159
16160// AsClusterNewHealthReportEvent is the BasicFabricEvent implementation for ContainerInstanceEvent.
16161func (cie ContainerInstanceEvent) AsClusterNewHealthReportEvent() (*ClusterNewHealthReportEvent, bool) {
16162	return nil, false
16163}
16164
16165// AsClusterHealthReportExpiredEvent is the BasicFabricEvent implementation for ContainerInstanceEvent.
16166func (cie ContainerInstanceEvent) AsClusterHealthReportExpiredEvent() (*ClusterHealthReportExpiredEvent, bool) {
16167	return nil, false
16168}
16169
16170// AsClusterUpgradeCompletedEvent is the BasicFabricEvent implementation for ContainerInstanceEvent.
16171func (cie ContainerInstanceEvent) AsClusterUpgradeCompletedEvent() (*ClusterUpgradeCompletedEvent, bool) {
16172	return nil, false
16173}
16174
16175// AsClusterUpgradeDomainCompletedEvent is the BasicFabricEvent implementation for ContainerInstanceEvent.
16176func (cie ContainerInstanceEvent) AsClusterUpgradeDomainCompletedEvent() (*ClusterUpgradeDomainCompletedEvent, bool) {
16177	return nil, false
16178}
16179
16180// AsClusterUpgradeRollbackCompletedEvent is the BasicFabricEvent implementation for ContainerInstanceEvent.
16181func (cie ContainerInstanceEvent) AsClusterUpgradeRollbackCompletedEvent() (*ClusterUpgradeRollbackCompletedEvent, bool) {
16182	return nil, false
16183}
16184
16185// AsClusterUpgradeRollbackStartedEvent is the BasicFabricEvent implementation for ContainerInstanceEvent.
16186func (cie ContainerInstanceEvent) AsClusterUpgradeRollbackStartedEvent() (*ClusterUpgradeRollbackStartedEvent, bool) {
16187	return nil, false
16188}
16189
16190// AsClusterUpgradeStartedEvent is the BasicFabricEvent implementation for ContainerInstanceEvent.
16191func (cie ContainerInstanceEvent) AsClusterUpgradeStartedEvent() (*ClusterUpgradeStartedEvent, bool) {
16192	return nil, false
16193}
16194
16195// AsChaosStoppedEvent is the BasicFabricEvent implementation for ContainerInstanceEvent.
16196func (cie ContainerInstanceEvent) AsChaosStoppedEvent() (*ChaosStoppedEvent, bool) {
16197	return nil, false
16198}
16199
16200// AsChaosStartedEvent is the BasicFabricEvent implementation for ContainerInstanceEvent.
16201func (cie ContainerInstanceEvent) AsChaosStartedEvent() (*ChaosStartedEvent, bool) {
16202	return nil, false
16203}
16204
16205// AsChaosCodePackageRestartScheduledEvent is the BasicFabricEvent implementation for ContainerInstanceEvent.
16206func (cie ContainerInstanceEvent) AsChaosCodePackageRestartScheduledEvent() (*ChaosCodePackageRestartScheduledEvent, bool) {
16207	return nil, false
16208}
16209
16210// AsChaosReplicaRemovalScheduledEvent is the BasicFabricEvent implementation for ContainerInstanceEvent.
16211func (cie ContainerInstanceEvent) AsChaosReplicaRemovalScheduledEvent() (*ChaosReplicaRemovalScheduledEvent, bool) {
16212	return nil, false
16213}
16214
16215// AsChaosPartitionSecondaryMoveScheduledEvent is the BasicFabricEvent implementation for ContainerInstanceEvent.
16216func (cie ContainerInstanceEvent) AsChaosPartitionSecondaryMoveScheduledEvent() (*ChaosPartitionSecondaryMoveScheduledEvent, bool) {
16217	return nil, false
16218}
16219
16220// AsChaosPartitionPrimaryMoveScheduledEvent is the BasicFabricEvent implementation for ContainerInstanceEvent.
16221func (cie ContainerInstanceEvent) AsChaosPartitionPrimaryMoveScheduledEvent() (*ChaosPartitionPrimaryMoveScheduledEvent, bool) {
16222	return nil, false
16223}
16224
16225// AsChaosReplicaRestartScheduledEvent is the BasicFabricEvent implementation for ContainerInstanceEvent.
16226func (cie ContainerInstanceEvent) AsChaosReplicaRestartScheduledEvent() (*ChaosReplicaRestartScheduledEvent, bool) {
16227	return nil, false
16228}
16229
16230// AsChaosNodeRestartScheduledEvent is the BasicFabricEvent implementation for ContainerInstanceEvent.
16231func (cie ContainerInstanceEvent) AsChaosNodeRestartScheduledEvent() (*ChaosNodeRestartScheduledEvent, bool) {
16232	return nil, false
16233}
16234
16235// AsFabricEvent is the BasicFabricEvent implementation for ContainerInstanceEvent.
16236func (cie ContainerInstanceEvent) AsFabricEvent() (*FabricEvent, bool) {
16237	return nil, false
16238}
16239
16240// AsBasicFabricEvent is the BasicFabricEvent implementation for ContainerInstanceEvent.
16241func (cie ContainerInstanceEvent) AsBasicFabricEvent() (BasicFabricEvent, bool) {
16242	return &cie, true
16243}
16244
16245// ContainerInstanceView runtime information of a container instance.
16246type ContainerInstanceView struct {
16247	// RestartCount - The number of times the container has been restarted.
16248	RestartCount *int32 `json:"restartCount,omitempty"`
16249	// CurrentState - Current container instance state.
16250	CurrentState *ContainerState `json:"currentState,omitempty"`
16251	// PreviousState - Previous container instance state.
16252	PreviousState *ContainerState `json:"previousState,omitempty"`
16253	// Events - The events of this container instance.
16254	Events *[]ContainerEvent `json:"events,omitempty"`
16255}
16256
16257// ContainerLabel describes a container label.
16258type ContainerLabel struct {
16259	// Name - The name of the container label.
16260	Name *string `json:"name,omitempty"`
16261	// Value - The value of the container label.
16262	Value *string `json:"value,omitempty"`
16263}
16264
16265// ContainerLogs container logs.
16266type ContainerLogs struct {
16267	autorest.Response `json:"-"`
16268	// Content - Container logs.
16269	Content *string `json:"Content,omitempty"`
16270}
16271
16272// ContainerState the container state.
16273type ContainerState struct {
16274	// State - The state of this container
16275	State *string `json:"state,omitempty"`
16276	// StartTime - Date/time when the container state started.
16277	StartTime *date.Time `json:"startTime,omitempty"`
16278	// ExitCode - The container exit code.
16279	ExitCode *string `json:"exitCode,omitempty"`
16280	// FinishTime - Date/time when the container state finished.
16281	FinishTime *date.Time `json:"finishTime,omitempty"`
16282	// DetailStatus - Human-readable status of this state.
16283	DetailStatus *string `json:"detailStatus,omitempty"`
16284}
16285
16286// CreateComposeDeploymentDescription defines description for creating a Service Fabric compose deployment.
16287type CreateComposeDeploymentDescription struct {
16288	// DeploymentName - The name of the deployment.
16289	DeploymentName *string `json:"DeploymentName,omitempty"`
16290	// ComposeFileContent - The content of the compose file that describes the deployment to create.
16291	ComposeFileContent *string `json:"ComposeFileContent,omitempty"`
16292	// RegistryCredential - Credential information to connect to container registry.
16293	RegistryCredential *RegistryCredential `json:"RegistryCredential,omitempty"`
16294}
16295
16296// CurrentUpgradeDomainProgressInfo information about the current in-progress upgrade domain.
16297type CurrentUpgradeDomainProgressInfo struct {
16298	// DomainName - The name of the upgrade domain
16299	DomainName *string `json:"DomainName,omitempty"`
16300	// NodeUpgradeProgressList - List of upgrading nodes and their statuses
16301	NodeUpgradeProgressList *[]NodeUpgradeProgressInfo `json:"NodeUpgradeProgressList,omitempty"`
16302}
16303
16304// DeactivationIntentDescription describes the intent or reason for deactivating the node.
16305type DeactivationIntentDescription struct {
16306	// DeactivationIntent - Describes the intent or reason for deactivating the node. The possible values are following. Possible values include: 'Pause', 'Restart', 'RemoveData'
16307	DeactivationIntent DeactivationIntent `json:"DeactivationIntent,omitempty"`
16308}
16309
16310// DeletePropertyBatchOperation represents a PropertyBatchOperation that deletes a specified property if it
16311// exists.
16312// Note that if one PropertyBatchOperation in a PropertyBatch fails,
16313// the entire batch fails and cannot be committed in a transactional manner.
16314type DeletePropertyBatchOperation struct {
16315	// PropertyName - The name of the Service Fabric property.
16316	PropertyName *string `json:"PropertyName,omitempty"`
16317	// Kind - Possible values include: 'KindPropertyBatchOperation', 'KindCheckExists', 'KindCheckSequence', 'KindCheckValue', 'KindDelete', 'KindGet', 'KindPut'
16318	Kind KindBasicPropertyBatchOperation `json:"Kind,omitempty"`
16319}
16320
16321// MarshalJSON is the custom marshaler for DeletePropertyBatchOperation.
16322func (dpbo DeletePropertyBatchOperation) MarshalJSON() ([]byte, error) {
16323	dpbo.Kind = KindDelete
16324	objectMap := make(map[string]interface{})
16325	if dpbo.PropertyName != nil {
16326		objectMap["PropertyName"] = dpbo.PropertyName
16327	}
16328	if dpbo.Kind != "" {
16329		objectMap["Kind"] = dpbo.Kind
16330	}
16331	return json.Marshal(objectMap)
16332}
16333
16334// AsCheckExistsPropertyBatchOperation is the BasicPropertyBatchOperation implementation for DeletePropertyBatchOperation.
16335func (dpbo DeletePropertyBatchOperation) AsCheckExistsPropertyBatchOperation() (*CheckExistsPropertyBatchOperation, bool) {
16336	return nil, false
16337}
16338
16339// AsCheckSequencePropertyBatchOperation is the BasicPropertyBatchOperation implementation for DeletePropertyBatchOperation.
16340func (dpbo DeletePropertyBatchOperation) AsCheckSequencePropertyBatchOperation() (*CheckSequencePropertyBatchOperation, bool) {
16341	return nil, false
16342}
16343
16344// AsCheckValuePropertyBatchOperation is the BasicPropertyBatchOperation implementation for DeletePropertyBatchOperation.
16345func (dpbo DeletePropertyBatchOperation) AsCheckValuePropertyBatchOperation() (*CheckValuePropertyBatchOperation, bool) {
16346	return nil, false
16347}
16348
16349// AsDeletePropertyBatchOperation is the BasicPropertyBatchOperation implementation for DeletePropertyBatchOperation.
16350func (dpbo DeletePropertyBatchOperation) AsDeletePropertyBatchOperation() (*DeletePropertyBatchOperation, bool) {
16351	return &dpbo, true
16352}
16353
16354// AsGetPropertyBatchOperation is the BasicPropertyBatchOperation implementation for DeletePropertyBatchOperation.
16355func (dpbo DeletePropertyBatchOperation) AsGetPropertyBatchOperation() (*GetPropertyBatchOperation, bool) {
16356	return nil, false
16357}
16358
16359// AsPutPropertyBatchOperation is the BasicPropertyBatchOperation implementation for DeletePropertyBatchOperation.
16360func (dpbo DeletePropertyBatchOperation) AsPutPropertyBatchOperation() (*PutPropertyBatchOperation, bool) {
16361	return nil, false
16362}
16363
16364// AsPropertyBatchOperation is the BasicPropertyBatchOperation implementation for DeletePropertyBatchOperation.
16365func (dpbo DeletePropertyBatchOperation) AsPropertyBatchOperation() (*PropertyBatchOperation, bool) {
16366	return nil, false
16367}
16368
16369// AsBasicPropertyBatchOperation is the BasicPropertyBatchOperation implementation for DeletePropertyBatchOperation.
16370func (dpbo DeletePropertyBatchOperation) AsBasicPropertyBatchOperation() (BasicPropertyBatchOperation, bool) {
16371	return &dpbo, true
16372}
16373
16374// DeltaNodesCheckHealthEvaluation represents health evaluation for delta nodes, containing health
16375// evaluations for each unhealthy node that impacted current aggregated health state.
16376// Can be returned during cluster upgrade when the aggregated health state of the cluster is Warning or
16377// Error.
16378type DeltaNodesCheckHealthEvaluation struct {
16379	// BaselineErrorCount - Number of nodes with aggregated heath state Error in the health store at the beginning of the cluster upgrade.
16380	BaselineErrorCount *int64 `json:"BaselineErrorCount,omitempty"`
16381	// BaselineTotalCount - Total number of nodes in the health store at the beginning of the cluster upgrade.
16382	BaselineTotalCount *int64 `json:"BaselineTotalCount,omitempty"`
16383	// MaxPercentDeltaUnhealthyNodes - Maximum allowed percentage of delta unhealthy nodes from the ClusterUpgradeHealthPolicy.
16384	MaxPercentDeltaUnhealthyNodes *int32 `json:"MaxPercentDeltaUnhealthyNodes,omitempty"`
16385	// TotalCount - Total number of nodes in the health store.
16386	TotalCount *int64 `json:"TotalCount,omitempty"`
16387	// UnhealthyEvaluations - List of unhealthy evaluations that led to the aggregated health state.
16388	// Includes all the unhealthy NodeHealthEvaluation that impacted the aggregated health.
16389	UnhealthyEvaluations *[]HealthEvaluationWrapper `json:"UnhealthyEvaluations,omitempty"`
16390	// 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'
16391	AggregatedHealthState HealthState `json:"AggregatedHealthState,omitempty"`
16392	// Description - Description of the health evaluation, which represents a summary of the evaluation process.
16393	Description *string `json:"Description,omitempty"`
16394	// 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'
16395	Kind Kind `json:"Kind,omitempty"`
16396}
16397
16398// MarshalJSON is the custom marshaler for DeltaNodesCheckHealthEvaluation.
16399func (dnche DeltaNodesCheckHealthEvaluation) MarshalJSON() ([]byte, error) {
16400	dnche.Kind = KindDeltaNodesCheck
16401	objectMap := make(map[string]interface{})
16402	if dnche.BaselineErrorCount != nil {
16403		objectMap["BaselineErrorCount"] = dnche.BaselineErrorCount
16404	}
16405	if dnche.BaselineTotalCount != nil {
16406		objectMap["BaselineTotalCount"] = dnche.BaselineTotalCount
16407	}
16408	if dnche.MaxPercentDeltaUnhealthyNodes != nil {
16409		objectMap["MaxPercentDeltaUnhealthyNodes"] = dnche.MaxPercentDeltaUnhealthyNodes
16410	}
16411	if dnche.TotalCount != nil {
16412		objectMap["TotalCount"] = dnche.TotalCount
16413	}
16414	if dnche.UnhealthyEvaluations != nil {
16415		objectMap["UnhealthyEvaluations"] = dnche.UnhealthyEvaluations
16416	}
16417	if dnche.AggregatedHealthState != "" {
16418		objectMap["AggregatedHealthState"] = dnche.AggregatedHealthState
16419	}
16420	if dnche.Description != nil {
16421		objectMap["Description"] = dnche.Description
16422	}
16423	if dnche.Kind != "" {
16424		objectMap["Kind"] = dnche.Kind
16425	}
16426	return json.Marshal(objectMap)
16427}
16428
16429// AsApplicationHealthEvaluation is the BasicHealthEvaluation implementation for DeltaNodesCheckHealthEvaluation.
16430func (dnche DeltaNodesCheckHealthEvaluation) AsApplicationHealthEvaluation() (*ApplicationHealthEvaluation, bool) {
16431	return nil, false
16432}
16433
16434// AsApplicationsHealthEvaluation is the BasicHealthEvaluation implementation for DeltaNodesCheckHealthEvaluation.
16435func (dnche DeltaNodesCheckHealthEvaluation) AsApplicationsHealthEvaluation() (*ApplicationsHealthEvaluation, bool) {
16436	return nil, false
16437}
16438
16439// AsApplicationTypeApplicationsHealthEvaluation is the BasicHealthEvaluation implementation for DeltaNodesCheckHealthEvaluation.
16440func (dnche DeltaNodesCheckHealthEvaluation) AsApplicationTypeApplicationsHealthEvaluation() (*ApplicationTypeApplicationsHealthEvaluation, bool) {
16441	return nil, false
16442}
16443
16444// AsDeltaNodesCheckHealthEvaluation is the BasicHealthEvaluation implementation for DeltaNodesCheckHealthEvaluation.
16445func (dnche DeltaNodesCheckHealthEvaluation) AsDeltaNodesCheckHealthEvaluation() (*DeltaNodesCheckHealthEvaluation, bool) {
16446	return &dnche, true
16447}
16448
16449// AsDeployedApplicationHealthEvaluation is the BasicHealthEvaluation implementation for DeltaNodesCheckHealthEvaluation.
16450func (dnche DeltaNodesCheckHealthEvaluation) AsDeployedApplicationHealthEvaluation() (*DeployedApplicationHealthEvaluation, bool) {
16451	return nil, false
16452}
16453
16454// AsDeployedApplicationsHealthEvaluation is the BasicHealthEvaluation implementation for DeltaNodesCheckHealthEvaluation.
16455func (dnche DeltaNodesCheckHealthEvaluation) AsDeployedApplicationsHealthEvaluation() (*DeployedApplicationsHealthEvaluation, bool) {
16456	return nil, false
16457}
16458
16459// AsDeployedServicePackageHealthEvaluation is the BasicHealthEvaluation implementation for DeltaNodesCheckHealthEvaluation.
16460func (dnche DeltaNodesCheckHealthEvaluation) AsDeployedServicePackageHealthEvaluation() (*DeployedServicePackageHealthEvaluation, bool) {
16461	return nil, false
16462}
16463
16464// AsDeployedServicePackagesHealthEvaluation is the BasicHealthEvaluation implementation for DeltaNodesCheckHealthEvaluation.
16465func (dnche DeltaNodesCheckHealthEvaluation) AsDeployedServicePackagesHealthEvaluation() (*DeployedServicePackagesHealthEvaluation, bool) {
16466	return nil, false
16467}
16468
16469// AsEventHealthEvaluation is the BasicHealthEvaluation implementation for DeltaNodesCheckHealthEvaluation.
16470func (dnche DeltaNodesCheckHealthEvaluation) AsEventHealthEvaluation() (*EventHealthEvaluation, bool) {
16471	return nil, false
16472}
16473
16474// AsNodeHealthEvaluation is the BasicHealthEvaluation implementation for DeltaNodesCheckHealthEvaluation.
16475func (dnche DeltaNodesCheckHealthEvaluation) AsNodeHealthEvaluation() (*NodeHealthEvaluation, bool) {
16476	return nil, false
16477}
16478
16479// AsNodesHealthEvaluation is the BasicHealthEvaluation implementation for DeltaNodesCheckHealthEvaluation.
16480func (dnche DeltaNodesCheckHealthEvaluation) AsNodesHealthEvaluation() (*NodesHealthEvaluation, bool) {
16481	return nil, false
16482}
16483
16484// AsPartitionHealthEvaluation is the BasicHealthEvaluation implementation for DeltaNodesCheckHealthEvaluation.
16485func (dnche DeltaNodesCheckHealthEvaluation) AsPartitionHealthEvaluation() (*PartitionHealthEvaluation, bool) {
16486	return nil, false
16487}
16488
16489// AsPartitionsHealthEvaluation is the BasicHealthEvaluation implementation for DeltaNodesCheckHealthEvaluation.
16490func (dnche DeltaNodesCheckHealthEvaluation) AsPartitionsHealthEvaluation() (*PartitionsHealthEvaluation, bool) {
16491	return nil, false
16492}
16493
16494// AsReplicaHealthEvaluation is the BasicHealthEvaluation implementation for DeltaNodesCheckHealthEvaluation.
16495func (dnche DeltaNodesCheckHealthEvaluation) AsReplicaHealthEvaluation() (*ReplicaHealthEvaluation, bool) {
16496	return nil, false
16497}
16498
16499// AsReplicasHealthEvaluation is the BasicHealthEvaluation implementation for DeltaNodesCheckHealthEvaluation.
16500func (dnche DeltaNodesCheckHealthEvaluation) AsReplicasHealthEvaluation() (*ReplicasHealthEvaluation, bool) {
16501	return nil, false
16502}
16503
16504// AsServiceHealthEvaluation is the BasicHealthEvaluation implementation for DeltaNodesCheckHealthEvaluation.
16505func (dnche DeltaNodesCheckHealthEvaluation) AsServiceHealthEvaluation() (*ServiceHealthEvaluation, bool) {
16506	return nil, false
16507}
16508
16509// AsServicesHealthEvaluation is the BasicHealthEvaluation implementation for DeltaNodesCheckHealthEvaluation.
16510func (dnche DeltaNodesCheckHealthEvaluation) AsServicesHealthEvaluation() (*ServicesHealthEvaluation, bool) {
16511	return nil, false
16512}
16513
16514// AsSystemApplicationHealthEvaluation is the BasicHealthEvaluation implementation for DeltaNodesCheckHealthEvaluation.
16515func (dnche DeltaNodesCheckHealthEvaluation) AsSystemApplicationHealthEvaluation() (*SystemApplicationHealthEvaluation, bool) {
16516	return nil, false
16517}
16518
16519// AsUpgradeDomainDeltaNodesCheckHealthEvaluation is the BasicHealthEvaluation implementation for DeltaNodesCheckHealthEvaluation.
16520func (dnche DeltaNodesCheckHealthEvaluation) AsUpgradeDomainDeltaNodesCheckHealthEvaluation() (*UpgradeDomainDeltaNodesCheckHealthEvaluation, bool) {
16521	return nil, false
16522}
16523
16524// AsUpgradeDomainNodesHealthEvaluation is the BasicHealthEvaluation implementation for DeltaNodesCheckHealthEvaluation.
16525func (dnche DeltaNodesCheckHealthEvaluation) AsUpgradeDomainNodesHealthEvaluation() (*UpgradeDomainNodesHealthEvaluation, bool) {
16526	return nil, false
16527}
16528
16529// AsHealthEvaluation is the BasicHealthEvaluation implementation for DeltaNodesCheckHealthEvaluation.
16530func (dnche DeltaNodesCheckHealthEvaluation) AsHealthEvaluation() (*HealthEvaluation, bool) {
16531	return nil, false
16532}
16533
16534// AsBasicHealthEvaluation is the BasicHealthEvaluation implementation for DeltaNodesCheckHealthEvaluation.
16535func (dnche DeltaNodesCheckHealthEvaluation) AsBasicHealthEvaluation() (BasicHealthEvaluation, bool) {
16536	return &dnche, true
16537}
16538
16539// DeployedApplicationHealth information about the health of an application deployed on a Service Fabric
16540// node.
16541type DeployedApplicationHealth struct {
16542	autorest.Response `json:"-"`
16543	// Name - Name of the application deployed on the node whose health information is described by this object.
16544	Name *string `json:"Name,omitempty"`
16545	// NodeName - Name of the node where this application is deployed.
16546	NodeName *string `json:"NodeName,omitempty"`
16547	// DeployedServicePackageHealthStates - Deployed service package health states for the current deployed application as found in the health store.
16548	DeployedServicePackageHealthStates *[]DeployedServicePackageHealthState `json:"DeployedServicePackageHealthStates,omitempty"`
16549	// AggregatedHealthState - The HealthState representing the aggregated health state of the entity computed by Health Manager.
16550	// The health evaluation of the entity reflects all events reported on the entity and its children (if any).
16551	// The aggregation is done by applying the desired health policy. Possible values include: 'HealthStateInvalid', 'HealthStateOk', 'HealthStateWarning', 'HealthStateError', 'HealthStateUnknown'
16552	AggregatedHealthState HealthState `json:"AggregatedHealthState,omitempty"`
16553	// HealthEvents - The list of health events reported on the entity.
16554	HealthEvents *[]HealthEvent `json:"HealthEvents,omitempty"`
16555	// UnhealthyEvaluations - The unhealthy evaluations that show why the current aggregated health state was returned by Health Manager.
16556	UnhealthyEvaluations *[]HealthEvaluationWrapper `json:"UnhealthyEvaluations,omitempty"`
16557	// HealthStatistics - Shows the health statistics for all children types of the queried entity.
16558	HealthStatistics *HealthStatistics `json:"HealthStatistics,omitempty"`
16559}
16560
16561// DeployedApplicationHealthEvaluation represents health evaluation for a deployed application, containing
16562// information about the data and the algorithm used by the health store to evaluate health.
16563type DeployedApplicationHealthEvaluation struct {
16564	// NodeName - Name of the node where the application is deployed to.
16565	NodeName *string `json:"NodeName,omitempty"`
16566	// ApplicationName - The name of the application, including the 'fabric:' URI scheme.
16567	ApplicationName *string `json:"ApplicationName,omitempty"`
16568	// UnhealthyEvaluations - List of  unhealthy evaluations that led to the current aggregated health state of the deployed application.
16569	// The types of the unhealthy evaluations can be DeployedServicePackagesHealthEvaluation or EventHealthEvaluation.
16570	UnhealthyEvaluations *[]HealthEvaluationWrapper `json:"UnhealthyEvaluations,omitempty"`
16571	// 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'
16572	AggregatedHealthState HealthState `json:"AggregatedHealthState,omitempty"`
16573	// Description - Description of the health evaluation, which represents a summary of the evaluation process.
16574	Description *string `json:"Description,omitempty"`
16575	// 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'
16576	Kind Kind `json:"Kind,omitempty"`
16577}
16578
16579// MarshalJSON is the custom marshaler for DeployedApplicationHealthEvaluation.
16580func (dahe DeployedApplicationHealthEvaluation) MarshalJSON() ([]byte, error) {
16581	dahe.Kind = KindDeployedApplication
16582	objectMap := make(map[string]interface{})
16583	if dahe.NodeName != nil {
16584		objectMap["NodeName"] = dahe.NodeName
16585	}
16586	if dahe.ApplicationName != nil {
16587		objectMap["ApplicationName"] = dahe.ApplicationName
16588	}
16589	if dahe.UnhealthyEvaluations != nil {
16590		objectMap["UnhealthyEvaluations"] = dahe.UnhealthyEvaluations
16591	}
16592	if dahe.AggregatedHealthState != "" {
16593		objectMap["AggregatedHealthState"] = dahe.AggregatedHealthState
16594	}
16595	if dahe.Description != nil {
16596		objectMap["Description"] = dahe.Description
16597	}
16598	if dahe.Kind != "" {
16599		objectMap["Kind"] = dahe.Kind
16600	}
16601	return json.Marshal(objectMap)
16602}
16603
16604// AsApplicationHealthEvaluation is the BasicHealthEvaluation implementation for DeployedApplicationHealthEvaluation.
16605func (dahe DeployedApplicationHealthEvaluation) AsApplicationHealthEvaluation() (*ApplicationHealthEvaluation, bool) {
16606	return nil, false
16607}
16608
16609// AsApplicationsHealthEvaluation is the BasicHealthEvaluation implementation for DeployedApplicationHealthEvaluation.
16610func (dahe DeployedApplicationHealthEvaluation) AsApplicationsHealthEvaluation() (*ApplicationsHealthEvaluation, bool) {
16611	return nil, false
16612}
16613
16614// AsApplicationTypeApplicationsHealthEvaluation is the BasicHealthEvaluation implementation for DeployedApplicationHealthEvaluation.
16615func (dahe DeployedApplicationHealthEvaluation) AsApplicationTypeApplicationsHealthEvaluation() (*ApplicationTypeApplicationsHealthEvaluation, bool) {
16616	return nil, false
16617}
16618
16619// AsDeltaNodesCheckHealthEvaluation is the BasicHealthEvaluation implementation for DeployedApplicationHealthEvaluation.
16620func (dahe DeployedApplicationHealthEvaluation) AsDeltaNodesCheckHealthEvaluation() (*DeltaNodesCheckHealthEvaluation, bool) {
16621	return nil, false
16622}
16623
16624// AsDeployedApplicationHealthEvaluation is the BasicHealthEvaluation implementation for DeployedApplicationHealthEvaluation.
16625func (dahe DeployedApplicationHealthEvaluation) AsDeployedApplicationHealthEvaluation() (*DeployedApplicationHealthEvaluation, bool) {
16626	return &dahe, true
16627}
16628
16629// AsDeployedApplicationsHealthEvaluation is the BasicHealthEvaluation implementation for DeployedApplicationHealthEvaluation.
16630func (dahe DeployedApplicationHealthEvaluation) AsDeployedApplicationsHealthEvaluation() (*DeployedApplicationsHealthEvaluation, bool) {
16631	return nil, false
16632}
16633
16634// AsDeployedServicePackageHealthEvaluation is the BasicHealthEvaluation implementation for DeployedApplicationHealthEvaluation.
16635func (dahe DeployedApplicationHealthEvaluation) AsDeployedServicePackageHealthEvaluation() (*DeployedServicePackageHealthEvaluation, bool) {
16636	return nil, false
16637}
16638
16639// AsDeployedServicePackagesHealthEvaluation is the BasicHealthEvaluation implementation for DeployedApplicationHealthEvaluation.
16640func (dahe DeployedApplicationHealthEvaluation) AsDeployedServicePackagesHealthEvaluation() (*DeployedServicePackagesHealthEvaluation, bool) {
16641	return nil, false
16642}
16643
16644// AsEventHealthEvaluation is the BasicHealthEvaluation implementation for DeployedApplicationHealthEvaluation.
16645func (dahe DeployedApplicationHealthEvaluation) AsEventHealthEvaluation() (*EventHealthEvaluation, bool) {
16646	return nil, false
16647}
16648
16649// AsNodeHealthEvaluation is the BasicHealthEvaluation implementation for DeployedApplicationHealthEvaluation.
16650func (dahe DeployedApplicationHealthEvaluation) AsNodeHealthEvaluation() (*NodeHealthEvaluation, bool) {
16651	return nil, false
16652}
16653
16654// AsNodesHealthEvaluation is the BasicHealthEvaluation implementation for DeployedApplicationHealthEvaluation.
16655func (dahe DeployedApplicationHealthEvaluation) AsNodesHealthEvaluation() (*NodesHealthEvaluation, bool) {
16656	return nil, false
16657}
16658
16659// AsPartitionHealthEvaluation is the BasicHealthEvaluation implementation for DeployedApplicationHealthEvaluation.
16660func (dahe DeployedApplicationHealthEvaluation) AsPartitionHealthEvaluation() (*PartitionHealthEvaluation, bool) {
16661	return nil, false
16662}
16663
16664// AsPartitionsHealthEvaluation is the BasicHealthEvaluation implementation for DeployedApplicationHealthEvaluation.
16665func (dahe DeployedApplicationHealthEvaluation) AsPartitionsHealthEvaluation() (*PartitionsHealthEvaluation, bool) {
16666	return nil, false
16667}
16668
16669// AsReplicaHealthEvaluation is the BasicHealthEvaluation implementation for DeployedApplicationHealthEvaluation.
16670func (dahe DeployedApplicationHealthEvaluation) AsReplicaHealthEvaluation() (*ReplicaHealthEvaluation, bool) {
16671	return nil, false
16672}
16673
16674// AsReplicasHealthEvaluation is the BasicHealthEvaluation implementation for DeployedApplicationHealthEvaluation.
16675func (dahe DeployedApplicationHealthEvaluation) AsReplicasHealthEvaluation() (*ReplicasHealthEvaluation, bool) {
16676	return nil, false
16677}
16678
16679// AsServiceHealthEvaluation is the BasicHealthEvaluation implementation for DeployedApplicationHealthEvaluation.
16680func (dahe DeployedApplicationHealthEvaluation) AsServiceHealthEvaluation() (*ServiceHealthEvaluation, bool) {
16681	return nil, false
16682}
16683
16684// AsServicesHealthEvaluation is the BasicHealthEvaluation implementation for DeployedApplicationHealthEvaluation.
16685func (dahe DeployedApplicationHealthEvaluation) AsServicesHealthEvaluation() (*ServicesHealthEvaluation, bool) {
16686	return nil, false
16687}
16688
16689// AsSystemApplicationHealthEvaluation is the BasicHealthEvaluation implementation for DeployedApplicationHealthEvaluation.
16690func (dahe DeployedApplicationHealthEvaluation) AsSystemApplicationHealthEvaluation() (*SystemApplicationHealthEvaluation, bool) {
16691	return nil, false
16692}
16693
16694// AsUpgradeDomainDeltaNodesCheckHealthEvaluation is the BasicHealthEvaluation implementation for DeployedApplicationHealthEvaluation.
16695func (dahe DeployedApplicationHealthEvaluation) AsUpgradeDomainDeltaNodesCheckHealthEvaluation() (*UpgradeDomainDeltaNodesCheckHealthEvaluation, bool) {
16696	return nil, false
16697}
16698
16699// AsUpgradeDomainNodesHealthEvaluation is the BasicHealthEvaluation implementation for DeployedApplicationHealthEvaluation.
16700func (dahe DeployedApplicationHealthEvaluation) AsUpgradeDomainNodesHealthEvaluation() (*UpgradeDomainNodesHealthEvaluation, bool) {
16701	return nil, false
16702}
16703
16704// AsHealthEvaluation is the BasicHealthEvaluation implementation for DeployedApplicationHealthEvaluation.
16705func (dahe DeployedApplicationHealthEvaluation) AsHealthEvaluation() (*HealthEvaluation, bool) {
16706	return nil, false
16707}
16708
16709// AsBasicHealthEvaluation is the BasicHealthEvaluation implementation for DeployedApplicationHealthEvaluation.
16710func (dahe DeployedApplicationHealthEvaluation) AsBasicHealthEvaluation() (BasicHealthEvaluation, bool) {
16711	return &dahe, true
16712}
16713
16714// DeployedApplicationHealthReportExpiredEvent deployed Application Health Report Expired event.
16715type DeployedApplicationHealthReportExpiredEvent struct {
16716	// ApplicationInstanceID - Id of Application instance.
16717	ApplicationInstanceID *int64 `json:"ApplicationInstanceId,omitempty"`
16718	// NodeName - The name of a Service Fabric node.
16719	NodeName *string `json:"NodeName,omitempty"`
16720	// SourceID - Id of report source.
16721	SourceID *string `json:"SourceId,omitempty"`
16722	// Property - Describes the property.
16723	Property *string `json:"Property,omitempty"`
16724	// HealthState - Describes the property health state.
16725	HealthState *string `json:"HealthState,omitempty"`
16726	// TimeToLiveMs - Time to live in milli-seconds.
16727	TimeToLiveMs *int64 `json:"TimeToLiveMs,omitempty"`
16728	// SequenceNumber - Sequence number of report.
16729	SequenceNumber *int64 `json:"SequenceNumber,omitempty"`
16730	// Description - Description of report.
16731	Description *string `json:"Description,omitempty"`
16732	// RemoveWhenExpired - Indicates the removal when it expires.
16733	RemoveWhenExpired *bool `json:"RemoveWhenExpired,omitempty"`
16734	// SourceUtcTimestamp - Source time.
16735	SourceUtcTimestamp *date.Time `json:"SourceUtcTimestamp,omitempty"`
16736	// 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.
16737	// Starting in version 6.0, hierarchical names are delimited with the "\~" character. For example, if the application name is "fabric:/myapp/app1",
16738	// the application identity would be "myapp\~app1" in 6.0+ and "myapp/app1" in previous versions.
16739	ApplicationID *string `json:"ApplicationId,omitempty"`
16740	// EventInstanceID - The identifier for the FabricEvent instance.
16741	EventInstanceID *uuid.UUID `json:"EventInstanceId,omitempty"`
16742	// Category - The category of event.
16743	Category *string `json:"Category,omitempty"`
16744	// TimeStamp - The time event was logged.
16745	TimeStamp *date.Time `json:"TimeStamp,omitempty"`
16746	// HasCorrelatedEvents - Shows there is existing related events available.
16747	HasCorrelatedEvents *bool `json:"HasCorrelatedEvents,omitempty"`
16748	// 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'
16749	Kind KindBasicFabricEvent `json:"Kind,omitempty"`
16750}
16751
16752// MarshalJSON is the custom marshaler for DeployedApplicationHealthReportExpiredEvent.
16753func (dahree DeployedApplicationHealthReportExpiredEvent) MarshalJSON() ([]byte, error) {
16754	dahree.Kind = KindDeployedApplicationHealthReportExpired
16755	objectMap := make(map[string]interface{})
16756	if dahree.ApplicationInstanceID != nil {
16757		objectMap["ApplicationInstanceId"] = dahree.ApplicationInstanceID
16758	}
16759	if dahree.NodeName != nil {
16760		objectMap["NodeName"] = dahree.NodeName
16761	}
16762	if dahree.SourceID != nil {
16763		objectMap["SourceId"] = dahree.SourceID
16764	}
16765	if dahree.Property != nil {
16766		objectMap["Property"] = dahree.Property
16767	}
16768	if dahree.HealthState != nil {
16769		objectMap["HealthState"] = dahree.HealthState
16770	}
16771	if dahree.TimeToLiveMs != nil {
16772		objectMap["TimeToLiveMs"] = dahree.TimeToLiveMs
16773	}
16774	if dahree.SequenceNumber != nil {
16775		objectMap["SequenceNumber"] = dahree.SequenceNumber
16776	}
16777	if dahree.Description != nil {
16778		objectMap["Description"] = dahree.Description
16779	}
16780	if dahree.RemoveWhenExpired != nil {
16781		objectMap["RemoveWhenExpired"] = dahree.RemoveWhenExpired
16782	}
16783	if dahree.SourceUtcTimestamp != nil {
16784		objectMap["SourceUtcTimestamp"] = dahree.SourceUtcTimestamp
16785	}
16786	if dahree.ApplicationID != nil {
16787		objectMap["ApplicationId"] = dahree.ApplicationID
16788	}
16789	if dahree.EventInstanceID != nil {
16790		objectMap["EventInstanceId"] = dahree.EventInstanceID
16791	}
16792	if dahree.Category != nil {
16793		objectMap["Category"] = dahree.Category
16794	}
16795	if dahree.TimeStamp != nil {
16796		objectMap["TimeStamp"] = dahree.TimeStamp
16797	}
16798	if dahree.HasCorrelatedEvents != nil {
16799		objectMap["HasCorrelatedEvents"] = dahree.HasCorrelatedEvents
16800	}
16801	if dahree.Kind != "" {
16802		objectMap["Kind"] = dahree.Kind
16803	}
16804	return json.Marshal(objectMap)
16805}
16806
16807// AsApplicationEvent is the BasicFabricEvent implementation for DeployedApplicationHealthReportExpiredEvent.
16808func (dahree DeployedApplicationHealthReportExpiredEvent) AsApplicationEvent() (*ApplicationEvent, bool) {
16809	return nil, false
16810}
16811
16812// AsBasicApplicationEvent is the BasicFabricEvent implementation for DeployedApplicationHealthReportExpiredEvent.
16813func (dahree DeployedApplicationHealthReportExpiredEvent) AsBasicApplicationEvent() (BasicApplicationEvent, bool) {
16814	return &dahree, true
16815}
16816
16817// AsClusterEvent is the BasicFabricEvent implementation for DeployedApplicationHealthReportExpiredEvent.
16818func (dahree DeployedApplicationHealthReportExpiredEvent) AsClusterEvent() (*ClusterEvent, bool) {
16819	return nil, false
16820}
16821
16822// AsBasicClusterEvent is the BasicFabricEvent implementation for DeployedApplicationHealthReportExpiredEvent.
16823func (dahree DeployedApplicationHealthReportExpiredEvent) AsBasicClusterEvent() (BasicClusterEvent, bool) {
16824	return nil, false
16825}
16826
16827// AsContainerInstanceEvent is the BasicFabricEvent implementation for DeployedApplicationHealthReportExpiredEvent.
16828func (dahree DeployedApplicationHealthReportExpiredEvent) AsContainerInstanceEvent() (*ContainerInstanceEvent, bool) {
16829	return nil, false
16830}
16831
16832// AsNodeEvent is the BasicFabricEvent implementation for DeployedApplicationHealthReportExpiredEvent.
16833func (dahree DeployedApplicationHealthReportExpiredEvent) AsNodeEvent() (*NodeEvent, bool) {
16834	return nil, false
16835}
16836
16837// AsBasicNodeEvent is the BasicFabricEvent implementation for DeployedApplicationHealthReportExpiredEvent.
16838func (dahree DeployedApplicationHealthReportExpiredEvent) AsBasicNodeEvent() (BasicNodeEvent, bool) {
16839	return nil, false
16840}
16841
16842// AsPartitionAnalysisEvent is the BasicFabricEvent implementation for DeployedApplicationHealthReportExpiredEvent.
16843func (dahree DeployedApplicationHealthReportExpiredEvent) AsPartitionAnalysisEvent() (*PartitionAnalysisEvent, bool) {
16844	return nil, false
16845}
16846
16847// AsBasicPartitionAnalysisEvent is the BasicFabricEvent implementation for DeployedApplicationHealthReportExpiredEvent.
16848func (dahree DeployedApplicationHealthReportExpiredEvent) AsBasicPartitionAnalysisEvent() (BasicPartitionAnalysisEvent, bool) {
16849	return nil, false
16850}
16851
16852// AsPartitionEvent is the BasicFabricEvent implementation for DeployedApplicationHealthReportExpiredEvent.
16853func (dahree DeployedApplicationHealthReportExpiredEvent) AsPartitionEvent() (*PartitionEvent, bool) {
16854	return nil, false
16855}
16856
16857// AsBasicPartitionEvent is the BasicFabricEvent implementation for DeployedApplicationHealthReportExpiredEvent.
16858func (dahree DeployedApplicationHealthReportExpiredEvent) AsBasicPartitionEvent() (BasicPartitionEvent, bool) {
16859	return nil, false
16860}
16861
16862// AsReplicaEvent is the BasicFabricEvent implementation for DeployedApplicationHealthReportExpiredEvent.
16863func (dahree DeployedApplicationHealthReportExpiredEvent) AsReplicaEvent() (*ReplicaEvent, bool) {
16864	return nil, false
16865}
16866
16867// AsBasicReplicaEvent is the BasicFabricEvent implementation for DeployedApplicationHealthReportExpiredEvent.
16868func (dahree DeployedApplicationHealthReportExpiredEvent) AsBasicReplicaEvent() (BasicReplicaEvent, bool) {
16869	return nil, false
16870}
16871
16872// AsServiceEvent is the BasicFabricEvent implementation for DeployedApplicationHealthReportExpiredEvent.
16873func (dahree DeployedApplicationHealthReportExpiredEvent) AsServiceEvent() (*ServiceEvent, bool) {
16874	return nil, false
16875}
16876
16877// AsBasicServiceEvent is the BasicFabricEvent implementation for DeployedApplicationHealthReportExpiredEvent.
16878func (dahree DeployedApplicationHealthReportExpiredEvent) AsBasicServiceEvent() (BasicServiceEvent, bool) {
16879	return nil, false
16880}
16881
16882// AsApplicationCreatedEvent is the BasicFabricEvent implementation for DeployedApplicationHealthReportExpiredEvent.
16883func (dahree DeployedApplicationHealthReportExpiredEvent) AsApplicationCreatedEvent() (*ApplicationCreatedEvent, bool) {
16884	return nil, false
16885}
16886
16887// AsApplicationDeletedEvent is the BasicFabricEvent implementation for DeployedApplicationHealthReportExpiredEvent.
16888func (dahree DeployedApplicationHealthReportExpiredEvent) AsApplicationDeletedEvent() (*ApplicationDeletedEvent, bool) {
16889	return nil, false
16890}
16891
16892// AsApplicationNewHealthReportEvent is the BasicFabricEvent implementation for DeployedApplicationHealthReportExpiredEvent.
16893func (dahree DeployedApplicationHealthReportExpiredEvent) AsApplicationNewHealthReportEvent() (*ApplicationNewHealthReportEvent, bool) {
16894	return nil, false
16895}
16896
16897// AsApplicationHealthReportExpiredEvent is the BasicFabricEvent implementation for DeployedApplicationHealthReportExpiredEvent.
16898func (dahree DeployedApplicationHealthReportExpiredEvent) AsApplicationHealthReportExpiredEvent() (*ApplicationHealthReportExpiredEvent, bool) {
16899	return nil, false
16900}
16901
16902// AsApplicationUpgradeCompletedEvent is the BasicFabricEvent implementation for DeployedApplicationHealthReportExpiredEvent.
16903func (dahree DeployedApplicationHealthReportExpiredEvent) AsApplicationUpgradeCompletedEvent() (*ApplicationUpgradeCompletedEvent, bool) {
16904	return nil, false
16905}
16906
16907// AsApplicationUpgradeDomainCompletedEvent is the BasicFabricEvent implementation for DeployedApplicationHealthReportExpiredEvent.
16908func (dahree DeployedApplicationHealthReportExpiredEvent) AsApplicationUpgradeDomainCompletedEvent() (*ApplicationUpgradeDomainCompletedEvent, bool) {
16909	return nil, false
16910}
16911
16912// AsApplicationUpgradeRollbackCompletedEvent is the BasicFabricEvent implementation for DeployedApplicationHealthReportExpiredEvent.
16913func (dahree DeployedApplicationHealthReportExpiredEvent) AsApplicationUpgradeRollbackCompletedEvent() (*ApplicationUpgradeRollbackCompletedEvent, bool) {
16914	return nil, false
16915}
16916
16917// AsApplicationUpgradeRollbackStartedEvent is the BasicFabricEvent implementation for DeployedApplicationHealthReportExpiredEvent.
16918func (dahree DeployedApplicationHealthReportExpiredEvent) AsApplicationUpgradeRollbackStartedEvent() (*ApplicationUpgradeRollbackStartedEvent, bool) {
16919	return nil, false
16920}
16921
16922// AsApplicationUpgradeStartedEvent is the BasicFabricEvent implementation for DeployedApplicationHealthReportExpiredEvent.
16923func (dahree DeployedApplicationHealthReportExpiredEvent) AsApplicationUpgradeStartedEvent() (*ApplicationUpgradeStartedEvent, bool) {
16924	return nil, false
16925}
16926
16927// AsDeployedApplicationNewHealthReportEvent is the BasicFabricEvent implementation for DeployedApplicationHealthReportExpiredEvent.
16928func (dahree DeployedApplicationHealthReportExpiredEvent) AsDeployedApplicationNewHealthReportEvent() (*DeployedApplicationNewHealthReportEvent, bool) {
16929	return nil, false
16930}
16931
16932// AsDeployedApplicationHealthReportExpiredEvent is the BasicFabricEvent implementation for DeployedApplicationHealthReportExpiredEvent.
16933func (dahree DeployedApplicationHealthReportExpiredEvent) AsDeployedApplicationHealthReportExpiredEvent() (*DeployedApplicationHealthReportExpiredEvent, bool) {
16934	return &dahree, true
16935}
16936
16937// AsApplicationProcessExitedEvent is the BasicFabricEvent implementation for DeployedApplicationHealthReportExpiredEvent.
16938func (dahree DeployedApplicationHealthReportExpiredEvent) AsApplicationProcessExitedEvent() (*ApplicationProcessExitedEvent, bool) {
16939	return nil, false
16940}
16941
16942// AsApplicationContainerInstanceExitedEvent is the BasicFabricEvent implementation for DeployedApplicationHealthReportExpiredEvent.
16943func (dahree DeployedApplicationHealthReportExpiredEvent) AsApplicationContainerInstanceExitedEvent() (*ApplicationContainerInstanceExitedEvent, bool) {
16944	return nil, false
16945}
16946
16947// AsNodeAbortedEvent is the BasicFabricEvent implementation for DeployedApplicationHealthReportExpiredEvent.
16948func (dahree DeployedApplicationHealthReportExpiredEvent) AsNodeAbortedEvent() (*NodeAbortedEvent, bool) {
16949	return nil, false
16950}
16951
16952// AsNodeAddedToClusterEvent is the BasicFabricEvent implementation for DeployedApplicationHealthReportExpiredEvent.
16953func (dahree DeployedApplicationHealthReportExpiredEvent) AsNodeAddedToClusterEvent() (*NodeAddedToClusterEvent, bool) {
16954	return nil, false
16955}
16956
16957// AsNodeClosedEvent is the BasicFabricEvent implementation for DeployedApplicationHealthReportExpiredEvent.
16958func (dahree DeployedApplicationHealthReportExpiredEvent) AsNodeClosedEvent() (*NodeClosedEvent, bool) {
16959	return nil, false
16960}
16961
16962// AsNodeDeactivateCompletedEvent is the BasicFabricEvent implementation for DeployedApplicationHealthReportExpiredEvent.
16963func (dahree DeployedApplicationHealthReportExpiredEvent) AsNodeDeactivateCompletedEvent() (*NodeDeactivateCompletedEvent, bool) {
16964	return nil, false
16965}
16966
16967// AsNodeDeactivateStartedEvent is the BasicFabricEvent implementation for DeployedApplicationHealthReportExpiredEvent.
16968func (dahree DeployedApplicationHealthReportExpiredEvent) AsNodeDeactivateStartedEvent() (*NodeDeactivateStartedEvent, bool) {
16969	return nil, false
16970}
16971
16972// AsNodeDownEvent is the BasicFabricEvent implementation for DeployedApplicationHealthReportExpiredEvent.
16973func (dahree DeployedApplicationHealthReportExpiredEvent) AsNodeDownEvent() (*NodeDownEvent, bool) {
16974	return nil, false
16975}
16976
16977// AsNodeNewHealthReportEvent is the BasicFabricEvent implementation for DeployedApplicationHealthReportExpiredEvent.
16978func (dahree DeployedApplicationHealthReportExpiredEvent) AsNodeNewHealthReportEvent() (*NodeNewHealthReportEvent, bool) {
16979	return nil, false
16980}
16981
16982// AsNodeHealthReportExpiredEvent is the BasicFabricEvent implementation for DeployedApplicationHealthReportExpiredEvent.
16983func (dahree DeployedApplicationHealthReportExpiredEvent) AsNodeHealthReportExpiredEvent() (*NodeHealthReportExpiredEvent, bool) {
16984	return nil, false
16985}
16986
16987// AsNodeOpenSucceededEvent is the BasicFabricEvent implementation for DeployedApplicationHealthReportExpiredEvent.
16988func (dahree DeployedApplicationHealthReportExpiredEvent) AsNodeOpenSucceededEvent() (*NodeOpenSucceededEvent, bool) {
16989	return nil, false
16990}
16991
16992// AsNodeOpenFailedEvent is the BasicFabricEvent implementation for DeployedApplicationHealthReportExpiredEvent.
16993func (dahree DeployedApplicationHealthReportExpiredEvent) AsNodeOpenFailedEvent() (*NodeOpenFailedEvent, bool) {
16994	return nil, false
16995}
16996
16997// AsNodeRemovedFromClusterEvent is the BasicFabricEvent implementation for DeployedApplicationHealthReportExpiredEvent.
16998func (dahree DeployedApplicationHealthReportExpiredEvent) AsNodeRemovedFromClusterEvent() (*NodeRemovedFromClusterEvent, bool) {
16999	return nil, false
17000}
17001
17002// AsNodeUpEvent is the BasicFabricEvent implementation for DeployedApplicationHealthReportExpiredEvent.
17003func (dahree DeployedApplicationHealthReportExpiredEvent) AsNodeUpEvent() (*NodeUpEvent, bool) {
17004	return nil, false
17005}
17006
17007// AsPartitionNewHealthReportEvent is the BasicFabricEvent implementation for DeployedApplicationHealthReportExpiredEvent.
17008func (dahree DeployedApplicationHealthReportExpiredEvent) AsPartitionNewHealthReportEvent() (*PartitionNewHealthReportEvent, bool) {
17009	return nil, false
17010}
17011
17012// AsPartitionHealthReportExpiredEvent is the BasicFabricEvent implementation for DeployedApplicationHealthReportExpiredEvent.
17013func (dahree DeployedApplicationHealthReportExpiredEvent) AsPartitionHealthReportExpiredEvent() (*PartitionHealthReportExpiredEvent, bool) {
17014	return nil, false
17015}
17016
17017// AsPartitionReconfiguredEvent is the BasicFabricEvent implementation for DeployedApplicationHealthReportExpiredEvent.
17018func (dahree DeployedApplicationHealthReportExpiredEvent) AsPartitionReconfiguredEvent() (*PartitionReconfiguredEvent, bool) {
17019	return nil, false
17020}
17021
17022// AsPartitionPrimaryMoveAnalysisEvent is the BasicFabricEvent implementation for DeployedApplicationHealthReportExpiredEvent.
17023func (dahree DeployedApplicationHealthReportExpiredEvent) AsPartitionPrimaryMoveAnalysisEvent() (*PartitionPrimaryMoveAnalysisEvent, bool) {
17024	return nil, false
17025}
17026
17027// AsServiceCreatedEvent is the BasicFabricEvent implementation for DeployedApplicationHealthReportExpiredEvent.
17028func (dahree DeployedApplicationHealthReportExpiredEvent) AsServiceCreatedEvent() (*ServiceCreatedEvent, bool) {
17029	return nil, false
17030}
17031
17032// AsServiceDeletedEvent is the BasicFabricEvent implementation for DeployedApplicationHealthReportExpiredEvent.
17033func (dahree DeployedApplicationHealthReportExpiredEvent) AsServiceDeletedEvent() (*ServiceDeletedEvent, bool) {
17034	return nil, false
17035}
17036
17037// AsServiceNewHealthReportEvent is the BasicFabricEvent implementation for DeployedApplicationHealthReportExpiredEvent.
17038func (dahree DeployedApplicationHealthReportExpiredEvent) AsServiceNewHealthReportEvent() (*ServiceNewHealthReportEvent, bool) {
17039	return nil, false
17040}
17041
17042// AsServiceHealthReportExpiredEvent is the BasicFabricEvent implementation for DeployedApplicationHealthReportExpiredEvent.
17043func (dahree DeployedApplicationHealthReportExpiredEvent) AsServiceHealthReportExpiredEvent() (*ServiceHealthReportExpiredEvent, bool) {
17044	return nil, false
17045}
17046
17047// AsDeployedServicePackageNewHealthReportEvent is the BasicFabricEvent implementation for DeployedApplicationHealthReportExpiredEvent.
17048func (dahree DeployedApplicationHealthReportExpiredEvent) AsDeployedServicePackageNewHealthReportEvent() (*DeployedServicePackageNewHealthReportEvent, bool) {
17049	return nil, false
17050}
17051
17052// AsDeployedServicePackageHealthReportExpiredEvent is the BasicFabricEvent implementation for DeployedApplicationHealthReportExpiredEvent.
17053func (dahree DeployedApplicationHealthReportExpiredEvent) AsDeployedServicePackageHealthReportExpiredEvent() (*DeployedServicePackageHealthReportExpiredEvent, bool) {
17054	return nil, false
17055}
17056
17057// AsStatefulReplicaNewHealthReportEvent is the BasicFabricEvent implementation for DeployedApplicationHealthReportExpiredEvent.
17058func (dahree DeployedApplicationHealthReportExpiredEvent) AsStatefulReplicaNewHealthReportEvent() (*StatefulReplicaNewHealthReportEvent, bool) {
17059	return nil, false
17060}
17061
17062// AsStatefulReplicaHealthReportExpiredEvent is the BasicFabricEvent implementation for DeployedApplicationHealthReportExpiredEvent.
17063func (dahree DeployedApplicationHealthReportExpiredEvent) AsStatefulReplicaHealthReportExpiredEvent() (*StatefulReplicaHealthReportExpiredEvent, bool) {
17064	return nil, false
17065}
17066
17067// AsStatelessReplicaNewHealthReportEvent is the BasicFabricEvent implementation for DeployedApplicationHealthReportExpiredEvent.
17068func (dahree DeployedApplicationHealthReportExpiredEvent) AsStatelessReplicaNewHealthReportEvent() (*StatelessReplicaNewHealthReportEvent, bool) {
17069	return nil, false
17070}
17071
17072// AsStatelessReplicaHealthReportExpiredEvent is the BasicFabricEvent implementation for DeployedApplicationHealthReportExpiredEvent.
17073func (dahree DeployedApplicationHealthReportExpiredEvent) AsStatelessReplicaHealthReportExpiredEvent() (*StatelessReplicaHealthReportExpiredEvent, bool) {
17074	return nil, false
17075}
17076
17077// AsClusterNewHealthReportEvent is the BasicFabricEvent implementation for DeployedApplicationHealthReportExpiredEvent.
17078func (dahree DeployedApplicationHealthReportExpiredEvent) AsClusterNewHealthReportEvent() (*ClusterNewHealthReportEvent, bool) {
17079	return nil, false
17080}
17081
17082// AsClusterHealthReportExpiredEvent is the BasicFabricEvent implementation for DeployedApplicationHealthReportExpiredEvent.
17083func (dahree DeployedApplicationHealthReportExpiredEvent) AsClusterHealthReportExpiredEvent() (*ClusterHealthReportExpiredEvent, bool) {
17084	return nil, false
17085}
17086
17087// AsClusterUpgradeCompletedEvent is the BasicFabricEvent implementation for DeployedApplicationHealthReportExpiredEvent.
17088func (dahree DeployedApplicationHealthReportExpiredEvent) AsClusterUpgradeCompletedEvent() (*ClusterUpgradeCompletedEvent, bool) {
17089	return nil, false
17090}
17091
17092// AsClusterUpgradeDomainCompletedEvent is the BasicFabricEvent implementation for DeployedApplicationHealthReportExpiredEvent.
17093func (dahree DeployedApplicationHealthReportExpiredEvent) AsClusterUpgradeDomainCompletedEvent() (*ClusterUpgradeDomainCompletedEvent, bool) {
17094	return nil, false
17095}
17096
17097// AsClusterUpgradeRollbackCompletedEvent is the BasicFabricEvent implementation for DeployedApplicationHealthReportExpiredEvent.
17098func (dahree DeployedApplicationHealthReportExpiredEvent) AsClusterUpgradeRollbackCompletedEvent() (*ClusterUpgradeRollbackCompletedEvent, bool) {
17099	return nil, false
17100}
17101
17102// AsClusterUpgradeRollbackStartedEvent is the BasicFabricEvent implementation for DeployedApplicationHealthReportExpiredEvent.
17103func (dahree DeployedApplicationHealthReportExpiredEvent) AsClusterUpgradeRollbackStartedEvent() (*ClusterUpgradeRollbackStartedEvent, bool) {
17104	return nil, false
17105}
17106
17107// AsClusterUpgradeStartedEvent is the BasicFabricEvent implementation for DeployedApplicationHealthReportExpiredEvent.
17108func (dahree DeployedApplicationHealthReportExpiredEvent) AsClusterUpgradeStartedEvent() (*ClusterUpgradeStartedEvent, bool) {
17109	return nil, false
17110}
17111
17112// AsChaosStoppedEvent is the BasicFabricEvent implementation for DeployedApplicationHealthReportExpiredEvent.
17113func (dahree DeployedApplicationHealthReportExpiredEvent) AsChaosStoppedEvent() (*ChaosStoppedEvent, bool) {
17114	return nil, false
17115}
17116
17117// AsChaosStartedEvent is the BasicFabricEvent implementation for DeployedApplicationHealthReportExpiredEvent.
17118func (dahree DeployedApplicationHealthReportExpiredEvent) AsChaosStartedEvent() (*ChaosStartedEvent, bool) {
17119	return nil, false
17120}
17121
17122// AsChaosCodePackageRestartScheduledEvent is the BasicFabricEvent implementation for DeployedApplicationHealthReportExpiredEvent.
17123func (dahree DeployedApplicationHealthReportExpiredEvent) AsChaosCodePackageRestartScheduledEvent() (*ChaosCodePackageRestartScheduledEvent, bool) {
17124	return nil, false
17125}
17126
17127// AsChaosReplicaRemovalScheduledEvent is the BasicFabricEvent implementation for DeployedApplicationHealthReportExpiredEvent.
17128func (dahree DeployedApplicationHealthReportExpiredEvent) AsChaosReplicaRemovalScheduledEvent() (*ChaosReplicaRemovalScheduledEvent, bool) {
17129	return nil, false
17130}
17131
17132// AsChaosPartitionSecondaryMoveScheduledEvent is the BasicFabricEvent implementation for DeployedApplicationHealthReportExpiredEvent.
17133func (dahree DeployedApplicationHealthReportExpiredEvent) AsChaosPartitionSecondaryMoveScheduledEvent() (*ChaosPartitionSecondaryMoveScheduledEvent, bool) {
17134	return nil, false
17135}
17136
17137// AsChaosPartitionPrimaryMoveScheduledEvent is the BasicFabricEvent implementation for DeployedApplicationHealthReportExpiredEvent.
17138func (dahree DeployedApplicationHealthReportExpiredEvent) AsChaosPartitionPrimaryMoveScheduledEvent() (*ChaosPartitionPrimaryMoveScheduledEvent, bool) {
17139	return nil, false
17140}
17141
17142// AsChaosReplicaRestartScheduledEvent is the BasicFabricEvent implementation for DeployedApplicationHealthReportExpiredEvent.
17143func (dahree DeployedApplicationHealthReportExpiredEvent) AsChaosReplicaRestartScheduledEvent() (*ChaosReplicaRestartScheduledEvent, bool) {
17144	return nil, false
17145}
17146
17147// AsChaosNodeRestartScheduledEvent is the BasicFabricEvent implementation for DeployedApplicationHealthReportExpiredEvent.
17148func (dahree DeployedApplicationHealthReportExpiredEvent) AsChaosNodeRestartScheduledEvent() (*ChaosNodeRestartScheduledEvent, bool) {
17149	return nil, false
17150}
17151
17152// AsFabricEvent is the BasicFabricEvent implementation for DeployedApplicationHealthReportExpiredEvent.
17153func (dahree DeployedApplicationHealthReportExpiredEvent) AsFabricEvent() (*FabricEvent, bool) {
17154	return nil, false
17155}
17156
17157// AsBasicFabricEvent is the BasicFabricEvent implementation for DeployedApplicationHealthReportExpiredEvent.
17158func (dahree DeployedApplicationHealthReportExpiredEvent) AsBasicFabricEvent() (BasicFabricEvent, bool) {
17159	return &dahree, true
17160}
17161
17162// DeployedApplicationHealthState represents the health state of a deployed application, which contains the
17163// entity identifier and the aggregated health state.
17164type DeployedApplicationHealthState struct {
17165	// NodeName - Name of the node on which the service package is deployed.
17166	NodeName *string `json:"NodeName,omitempty"`
17167	// ApplicationName - The name of the application, including the 'fabric:' URI scheme.
17168	ApplicationName *string `json:"ApplicationName,omitempty"`
17169	// 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'
17170	AggregatedHealthState HealthState `json:"AggregatedHealthState,omitempty"`
17171}
17172
17173// DeployedApplicationHealthStateChunk represents the health state chunk of a deployed application, which
17174// contains the node where the application is deployed, the aggregated health state and any deployed
17175// service packages that respect the chunk query description filters.
17176type DeployedApplicationHealthStateChunk struct {
17177	// NodeName - The name of node where the application is deployed.
17178	NodeName *string `json:"NodeName,omitempty"`
17179	// 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.
17180	DeployedServicePackageHealthStateChunks *DeployedServicePackageHealthStateChunkList `json:"DeployedServicePackageHealthStateChunks,omitempty"`
17181	// 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'
17182	HealthState HealthState `json:"HealthState,omitempty"`
17183}
17184
17185// DeployedApplicationHealthStateChunkList the list of deployed application health state chunks that
17186// respect the input filters in the chunk query. Returned by get cluster health state chunks query.
17187type DeployedApplicationHealthStateChunkList struct {
17188	// Items - The list of deployed application health state chunks that respect the input filters in the chunk query.
17189	Items *[]DeployedApplicationHealthStateChunk `json:"Items,omitempty"`
17190}
17191
17192// DeployedApplicationHealthStateFilter defines matching criteria to determine whether a deployed
17193// application should be included as a child of an application in the cluster health chunk.
17194// The deployed applications are only returned if the parent application matches a filter specified in the
17195// cluster health chunk query description.
17196// One filter can match zero, one or multiple deployed applications, depending on its properties.
17197type DeployedApplicationHealthStateFilter struct {
17198	// NodeNameFilter - The name of the node where the application is deployed in order to match the filter.
17199	// If specified, the filter is applied only to the application deployed on the specified node.
17200	// 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.
17201	// Otherwise, the deployed application is included in the cluster health chunk if it respects the other filter properties.
17202	// 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.
17203	NodeNameFilter *string `json:"NodeNameFilter,omitempty"`
17204	// HealthStateFilter - The filter for the health state of the deployed applications. It allows selecting deployed applications if they match the desired health states.
17205	// 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.
17206	// 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.
17207	// The state values are flag-based enumeration, so the value could be a combination of these values obtained using bitwise 'OR' operator.
17208	// For example, if the provided value is 6, it matches deployed applications with HealthState value of OK (2) and Warning (4).
17209	// - Default - Default value. Matches any HealthState. The value is zero.
17210	// - 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.
17211	// - Ok - Filter that matches input with HealthState value Ok. The value is 2.
17212	// - Warning - Filter that matches input with HealthState value Warning. The value is 4.
17213	// - Error - Filter that matches input with HealthState value Error. The value is 8.
17214	// - All - Filter that matches input with any HealthState value. The value is 65535.
17215	HealthStateFilter *int32 `json:"HealthStateFilter,omitempty"`
17216	// 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.
17217	// 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.
17218	// The deployed application filter may specify multiple deployed service package filters.
17219	// 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.
17220	DeployedServicePackageFilters *[]DeployedServicePackageHealthStateFilter `json:"DeployedServicePackageFilters,omitempty"`
17221}
17222
17223// DeployedApplicationInfo information about application deployed on the node.
17224type DeployedApplicationInfo struct {
17225	autorest.Response `json:"-"`
17226	// 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.
17227	// Starting in version 6.0, hierarchical names are delimited with the "\~" character. For example, if the application name is "fabric:/myapp/app1",
17228	// the application identity would be "myapp\~app1" in 6.0+ and "myapp/app1" in previous versions.
17229	ID *string `json:"Id,omitempty"`
17230	// Name - The name of the application, including the 'fabric:' URI scheme.
17231	Name *string `json:"Name,omitempty"`
17232	// TypeName - The application type name as defined in the application manifest.
17233	TypeName *string `json:"TypeName,omitempty"`
17234	// Status - The status of the application deployed on the node. Following are the possible values. Possible values include: 'DeployedApplicationStatusInvalid', 'DeployedApplicationStatusDownloading', 'DeployedApplicationStatusActivating', 'DeployedApplicationStatusActive', 'DeployedApplicationStatusUpgrading', 'DeployedApplicationStatusDeactivating'
17235	Status DeployedApplicationStatus `json:"Status,omitempty"`
17236	// WorkDirectory - The work directory of the application on the node. The work directory can be used to store application data.
17237	WorkDirectory *string `json:"WorkDirectory,omitempty"`
17238	// LogDirectory - The log directory of the application on the node. The log directory can be used to store application logs.
17239	LogDirectory *string `json:"LogDirectory,omitempty"`
17240	// 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.
17241	TempDirectory *string `json:"TempDirectory,omitempty"`
17242	// 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'
17243	HealthState HealthState `json:"HealthState,omitempty"`
17244}
17245
17246// DeployedApplicationNewHealthReportEvent deployed Application Health Report Created event.
17247type DeployedApplicationNewHealthReportEvent struct {
17248	// ApplicationInstanceID - Id of Application instance.
17249	ApplicationInstanceID *int64 `json:"ApplicationInstanceId,omitempty"`
17250	// NodeName - The name of a Service Fabric node.
17251	NodeName *string `json:"NodeName,omitempty"`
17252	// SourceID - Id of report source.
17253	SourceID *string `json:"SourceId,omitempty"`
17254	// Property - Describes the property.
17255	Property *string `json:"Property,omitempty"`
17256	// HealthState - Describes the property health state.
17257	HealthState *string `json:"HealthState,omitempty"`
17258	// TimeToLiveMs - Time to live in milli-seconds.
17259	TimeToLiveMs *int64 `json:"TimeToLiveMs,omitempty"`
17260	// SequenceNumber - Sequence number of report.
17261	SequenceNumber *int64 `json:"SequenceNumber,omitempty"`
17262	// Description - Description of report.
17263	Description *string `json:"Description,omitempty"`
17264	// RemoveWhenExpired - Indicates the removal when it expires.
17265	RemoveWhenExpired *bool `json:"RemoveWhenExpired,omitempty"`
17266	// SourceUtcTimestamp - Source time.
17267	SourceUtcTimestamp *date.Time `json:"SourceUtcTimestamp,omitempty"`
17268	// 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.
17269	// Starting in version 6.0, hierarchical names are delimited with the "\~" character. For example, if the application name is "fabric:/myapp/app1",
17270	// the application identity would be "myapp\~app1" in 6.0+ and "myapp/app1" in previous versions.
17271	ApplicationID *string `json:"ApplicationId,omitempty"`
17272	// EventInstanceID - The identifier for the FabricEvent instance.
17273	EventInstanceID *uuid.UUID `json:"EventInstanceId,omitempty"`
17274	// Category - The category of event.
17275	Category *string `json:"Category,omitempty"`
17276	// TimeStamp - The time event was logged.
17277	TimeStamp *date.Time `json:"TimeStamp,omitempty"`
17278	// HasCorrelatedEvents - Shows there is existing related events available.
17279	HasCorrelatedEvents *bool `json:"HasCorrelatedEvents,omitempty"`
17280	// 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'
17281	Kind KindBasicFabricEvent `json:"Kind,omitempty"`
17282}
17283
17284// MarshalJSON is the custom marshaler for DeployedApplicationNewHealthReportEvent.
17285func (danhre DeployedApplicationNewHealthReportEvent) MarshalJSON() ([]byte, error) {
17286	danhre.Kind = KindDeployedApplicationNewHealthReport
17287	objectMap := make(map[string]interface{})
17288	if danhre.ApplicationInstanceID != nil {
17289		objectMap["ApplicationInstanceId"] = danhre.ApplicationInstanceID
17290	}
17291	if danhre.NodeName != nil {
17292		objectMap["NodeName"] = danhre.NodeName
17293	}
17294	if danhre.SourceID != nil {
17295		objectMap["SourceId"] = danhre.SourceID
17296	}
17297	if danhre.Property != nil {
17298		objectMap["Property"] = danhre.Property
17299	}
17300	if danhre.HealthState != nil {
17301		objectMap["HealthState"] = danhre.HealthState
17302	}
17303	if danhre.TimeToLiveMs != nil {
17304		objectMap["TimeToLiveMs"] = danhre.TimeToLiveMs
17305	}
17306	if danhre.SequenceNumber != nil {
17307		objectMap["SequenceNumber"] = danhre.SequenceNumber
17308	}
17309	if danhre.Description != nil {
17310		objectMap["Description"] = danhre.Description
17311	}
17312	if danhre.RemoveWhenExpired != nil {
17313		objectMap["RemoveWhenExpired"] = danhre.RemoveWhenExpired
17314	}
17315	if danhre.SourceUtcTimestamp != nil {
17316		objectMap["SourceUtcTimestamp"] = danhre.SourceUtcTimestamp
17317	}
17318	if danhre.ApplicationID != nil {
17319		objectMap["ApplicationId"] = danhre.ApplicationID
17320	}
17321	if danhre.EventInstanceID != nil {
17322		objectMap["EventInstanceId"] = danhre.EventInstanceID
17323	}
17324	if danhre.Category != nil {
17325		objectMap["Category"] = danhre.Category
17326	}
17327	if danhre.TimeStamp != nil {
17328		objectMap["TimeStamp"] = danhre.TimeStamp
17329	}
17330	if danhre.HasCorrelatedEvents != nil {
17331		objectMap["HasCorrelatedEvents"] = danhre.HasCorrelatedEvents
17332	}
17333	if danhre.Kind != "" {
17334		objectMap["Kind"] = danhre.Kind
17335	}
17336	return json.Marshal(objectMap)
17337}
17338
17339// AsApplicationEvent is the BasicFabricEvent implementation for DeployedApplicationNewHealthReportEvent.
17340func (danhre DeployedApplicationNewHealthReportEvent) AsApplicationEvent() (*ApplicationEvent, bool) {
17341	return nil, false
17342}
17343
17344// AsBasicApplicationEvent is the BasicFabricEvent implementation for DeployedApplicationNewHealthReportEvent.
17345func (danhre DeployedApplicationNewHealthReportEvent) AsBasicApplicationEvent() (BasicApplicationEvent, bool) {
17346	return &danhre, true
17347}
17348
17349// AsClusterEvent is the BasicFabricEvent implementation for DeployedApplicationNewHealthReportEvent.
17350func (danhre DeployedApplicationNewHealthReportEvent) AsClusterEvent() (*ClusterEvent, bool) {
17351	return nil, false
17352}
17353
17354// AsBasicClusterEvent is the BasicFabricEvent implementation for DeployedApplicationNewHealthReportEvent.
17355func (danhre DeployedApplicationNewHealthReportEvent) AsBasicClusterEvent() (BasicClusterEvent, bool) {
17356	return nil, false
17357}
17358
17359// AsContainerInstanceEvent is the BasicFabricEvent implementation for DeployedApplicationNewHealthReportEvent.
17360func (danhre DeployedApplicationNewHealthReportEvent) AsContainerInstanceEvent() (*ContainerInstanceEvent, bool) {
17361	return nil, false
17362}
17363
17364// AsNodeEvent is the BasicFabricEvent implementation for DeployedApplicationNewHealthReportEvent.
17365func (danhre DeployedApplicationNewHealthReportEvent) AsNodeEvent() (*NodeEvent, bool) {
17366	return nil, false
17367}
17368
17369// AsBasicNodeEvent is the BasicFabricEvent implementation for DeployedApplicationNewHealthReportEvent.
17370func (danhre DeployedApplicationNewHealthReportEvent) AsBasicNodeEvent() (BasicNodeEvent, bool) {
17371	return nil, false
17372}
17373
17374// AsPartitionAnalysisEvent is the BasicFabricEvent implementation for DeployedApplicationNewHealthReportEvent.
17375func (danhre DeployedApplicationNewHealthReportEvent) AsPartitionAnalysisEvent() (*PartitionAnalysisEvent, bool) {
17376	return nil, false
17377}
17378
17379// AsBasicPartitionAnalysisEvent is the BasicFabricEvent implementation for DeployedApplicationNewHealthReportEvent.
17380func (danhre DeployedApplicationNewHealthReportEvent) AsBasicPartitionAnalysisEvent() (BasicPartitionAnalysisEvent, bool) {
17381	return nil, false
17382}
17383
17384// AsPartitionEvent is the BasicFabricEvent implementation for DeployedApplicationNewHealthReportEvent.
17385func (danhre DeployedApplicationNewHealthReportEvent) AsPartitionEvent() (*PartitionEvent, bool) {
17386	return nil, false
17387}
17388
17389// AsBasicPartitionEvent is the BasicFabricEvent implementation for DeployedApplicationNewHealthReportEvent.
17390func (danhre DeployedApplicationNewHealthReportEvent) AsBasicPartitionEvent() (BasicPartitionEvent, bool) {
17391	return nil, false
17392}
17393
17394// AsReplicaEvent is the BasicFabricEvent implementation for DeployedApplicationNewHealthReportEvent.
17395func (danhre DeployedApplicationNewHealthReportEvent) AsReplicaEvent() (*ReplicaEvent, bool) {
17396	return nil, false
17397}
17398
17399// AsBasicReplicaEvent is the BasicFabricEvent implementation for DeployedApplicationNewHealthReportEvent.
17400func (danhre DeployedApplicationNewHealthReportEvent) AsBasicReplicaEvent() (BasicReplicaEvent, bool) {
17401	return nil, false
17402}
17403
17404// AsServiceEvent is the BasicFabricEvent implementation for DeployedApplicationNewHealthReportEvent.
17405func (danhre DeployedApplicationNewHealthReportEvent) AsServiceEvent() (*ServiceEvent, bool) {
17406	return nil, false
17407}
17408
17409// AsBasicServiceEvent is the BasicFabricEvent implementation for DeployedApplicationNewHealthReportEvent.
17410func (danhre DeployedApplicationNewHealthReportEvent) AsBasicServiceEvent() (BasicServiceEvent, bool) {
17411	return nil, false
17412}
17413
17414// AsApplicationCreatedEvent is the BasicFabricEvent implementation for DeployedApplicationNewHealthReportEvent.
17415func (danhre DeployedApplicationNewHealthReportEvent) AsApplicationCreatedEvent() (*ApplicationCreatedEvent, bool) {
17416	return nil, false
17417}
17418
17419// AsApplicationDeletedEvent is the BasicFabricEvent implementation for DeployedApplicationNewHealthReportEvent.
17420func (danhre DeployedApplicationNewHealthReportEvent) AsApplicationDeletedEvent() (*ApplicationDeletedEvent, bool) {
17421	return nil, false
17422}
17423
17424// AsApplicationNewHealthReportEvent is the BasicFabricEvent implementation for DeployedApplicationNewHealthReportEvent.
17425func (danhre DeployedApplicationNewHealthReportEvent) AsApplicationNewHealthReportEvent() (*ApplicationNewHealthReportEvent, bool) {
17426	return nil, false
17427}
17428
17429// AsApplicationHealthReportExpiredEvent is the BasicFabricEvent implementation for DeployedApplicationNewHealthReportEvent.
17430func (danhre DeployedApplicationNewHealthReportEvent) AsApplicationHealthReportExpiredEvent() (*ApplicationHealthReportExpiredEvent, bool) {
17431	return nil, false
17432}
17433
17434// AsApplicationUpgradeCompletedEvent is the BasicFabricEvent implementation for DeployedApplicationNewHealthReportEvent.
17435func (danhre DeployedApplicationNewHealthReportEvent) AsApplicationUpgradeCompletedEvent() (*ApplicationUpgradeCompletedEvent, bool) {
17436	return nil, false
17437}
17438
17439// AsApplicationUpgradeDomainCompletedEvent is the BasicFabricEvent implementation for DeployedApplicationNewHealthReportEvent.
17440func (danhre DeployedApplicationNewHealthReportEvent) AsApplicationUpgradeDomainCompletedEvent() (*ApplicationUpgradeDomainCompletedEvent, bool) {
17441	return nil, false
17442}
17443
17444// AsApplicationUpgradeRollbackCompletedEvent is the BasicFabricEvent implementation for DeployedApplicationNewHealthReportEvent.
17445func (danhre DeployedApplicationNewHealthReportEvent) AsApplicationUpgradeRollbackCompletedEvent() (*ApplicationUpgradeRollbackCompletedEvent, bool) {
17446	return nil, false
17447}
17448
17449// AsApplicationUpgradeRollbackStartedEvent is the BasicFabricEvent implementation for DeployedApplicationNewHealthReportEvent.
17450func (danhre DeployedApplicationNewHealthReportEvent) AsApplicationUpgradeRollbackStartedEvent() (*ApplicationUpgradeRollbackStartedEvent, bool) {
17451	return nil, false
17452}
17453
17454// AsApplicationUpgradeStartedEvent is the BasicFabricEvent implementation for DeployedApplicationNewHealthReportEvent.
17455func (danhre DeployedApplicationNewHealthReportEvent) AsApplicationUpgradeStartedEvent() (*ApplicationUpgradeStartedEvent, bool) {
17456	return nil, false
17457}
17458
17459// AsDeployedApplicationNewHealthReportEvent is the BasicFabricEvent implementation for DeployedApplicationNewHealthReportEvent.
17460func (danhre DeployedApplicationNewHealthReportEvent) AsDeployedApplicationNewHealthReportEvent() (*DeployedApplicationNewHealthReportEvent, bool) {
17461	return &danhre, true
17462}
17463
17464// AsDeployedApplicationHealthReportExpiredEvent is the BasicFabricEvent implementation for DeployedApplicationNewHealthReportEvent.
17465func (danhre DeployedApplicationNewHealthReportEvent) AsDeployedApplicationHealthReportExpiredEvent() (*DeployedApplicationHealthReportExpiredEvent, bool) {
17466	return nil, false
17467}
17468
17469// AsApplicationProcessExitedEvent is the BasicFabricEvent implementation for DeployedApplicationNewHealthReportEvent.
17470func (danhre DeployedApplicationNewHealthReportEvent) AsApplicationProcessExitedEvent() (*ApplicationProcessExitedEvent, bool) {
17471	return nil, false
17472}
17473
17474// AsApplicationContainerInstanceExitedEvent is the BasicFabricEvent implementation for DeployedApplicationNewHealthReportEvent.
17475func (danhre DeployedApplicationNewHealthReportEvent) AsApplicationContainerInstanceExitedEvent() (*ApplicationContainerInstanceExitedEvent, bool) {
17476	return nil, false
17477}
17478
17479// AsNodeAbortedEvent is the BasicFabricEvent implementation for DeployedApplicationNewHealthReportEvent.
17480func (danhre DeployedApplicationNewHealthReportEvent) AsNodeAbortedEvent() (*NodeAbortedEvent, bool) {
17481	return nil, false
17482}
17483
17484// AsNodeAddedToClusterEvent is the BasicFabricEvent implementation for DeployedApplicationNewHealthReportEvent.
17485func (danhre DeployedApplicationNewHealthReportEvent) AsNodeAddedToClusterEvent() (*NodeAddedToClusterEvent, bool) {
17486	return nil, false
17487}
17488
17489// AsNodeClosedEvent is the BasicFabricEvent implementation for DeployedApplicationNewHealthReportEvent.
17490func (danhre DeployedApplicationNewHealthReportEvent) AsNodeClosedEvent() (*NodeClosedEvent, bool) {
17491	return nil, false
17492}
17493
17494// AsNodeDeactivateCompletedEvent is the BasicFabricEvent implementation for DeployedApplicationNewHealthReportEvent.
17495func (danhre DeployedApplicationNewHealthReportEvent) AsNodeDeactivateCompletedEvent() (*NodeDeactivateCompletedEvent, bool) {
17496	return nil, false
17497}
17498
17499// AsNodeDeactivateStartedEvent is the BasicFabricEvent implementation for DeployedApplicationNewHealthReportEvent.
17500func (danhre DeployedApplicationNewHealthReportEvent) AsNodeDeactivateStartedEvent() (*NodeDeactivateStartedEvent, bool) {
17501	return nil, false
17502}
17503
17504// AsNodeDownEvent is the BasicFabricEvent implementation for DeployedApplicationNewHealthReportEvent.
17505func (danhre DeployedApplicationNewHealthReportEvent) AsNodeDownEvent() (*NodeDownEvent, bool) {
17506	return nil, false
17507}
17508
17509// AsNodeNewHealthReportEvent is the BasicFabricEvent implementation for DeployedApplicationNewHealthReportEvent.
17510func (danhre DeployedApplicationNewHealthReportEvent) AsNodeNewHealthReportEvent() (*NodeNewHealthReportEvent, bool) {
17511	return nil, false
17512}
17513
17514// AsNodeHealthReportExpiredEvent is the BasicFabricEvent implementation for DeployedApplicationNewHealthReportEvent.
17515func (danhre DeployedApplicationNewHealthReportEvent) AsNodeHealthReportExpiredEvent() (*NodeHealthReportExpiredEvent, bool) {
17516	return nil, false
17517}
17518
17519// AsNodeOpenSucceededEvent is the BasicFabricEvent implementation for DeployedApplicationNewHealthReportEvent.
17520func (danhre DeployedApplicationNewHealthReportEvent) AsNodeOpenSucceededEvent() (*NodeOpenSucceededEvent, bool) {
17521	return nil, false
17522}
17523
17524// AsNodeOpenFailedEvent is the BasicFabricEvent implementation for DeployedApplicationNewHealthReportEvent.
17525func (danhre DeployedApplicationNewHealthReportEvent) AsNodeOpenFailedEvent() (*NodeOpenFailedEvent, bool) {
17526	return nil, false
17527}
17528
17529// AsNodeRemovedFromClusterEvent is the BasicFabricEvent implementation for DeployedApplicationNewHealthReportEvent.
17530func (danhre DeployedApplicationNewHealthReportEvent) AsNodeRemovedFromClusterEvent() (*NodeRemovedFromClusterEvent, bool) {
17531	return nil, false
17532}
17533
17534// AsNodeUpEvent is the BasicFabricEvent implementation for DeployedApplicationNewHealthReportEvent.
17535func (danhre DeployedApplicationNewHealthReportEvent) AsNodeUpEvent() (*NodeUpEvent, bool) {
17536	return nil, false
17537}
17538
17539// AsPartitionNewHealthReportEvent is the BasicFabricEvent implementation for DeployedApplicationNewHealthReportEvent.
17540func (danhre DeployedApplicationNewHealthReportEvent) AsPartitionNewHealthReportEvent() (*PartitionNewHealthReportEvent, bool) {
17541	return nil, false
17542}
17543
17544// AsPartitionHealthReportExpiredEvent is the BasicFabricEvent implementation for DeployedApplicationNewHealthReportEvent.
17545func (danhre DeployedApplicationNewHealthReportEvent) AsPartitionHealthReportExpiredEvent() (*PartitionHealthReportExpiredEvent, bool) {
17546	return nil, false
17547}
17548
17549// AsPartitionReconfiguredEvent is the BasicFabricEvent implementation for DeployedApplicationNewHealthReportEvent.
17550func (danhre DeployedApplicationNewHealthReportEvent) AsPartitionReconfiguredEvent() (*PartitionReconfiguredEvent, bool) {
17551	return nil, false
17552}
17553
17554// AsPartitionPrimaryMoveAnalysisEvent is the BasicFabricEvent implementation for DeployedApplicationNewHealthReportEvent.
17555func (danhre DeployedApplicationNewHealthReportEvent) AsPartitionPrimaryMoveAnalysisEvent() (*PartitionPrimaryMoveAnalysisEvent, bool) {
17556	return nil, false
17557}
17558
17559// AsServiceCreatedEvent is the BasicFabricEvent implementation for DeployedApplicationNewHealthReportEvent.
17560func (danhre DeployedApplicationNewHealthReportEvent) AsServiceCreatedEvent() (*ServiceCreatedEvent, bool) {
17561	return nil, false
17562}
17563
17564// AsServiceDeletedEvent is the BasicFabricEvent implementation for DeployedApplicationNewHealthReportEvent.
17565func (danhre DeployedApplicationNewHealthReportEvent) AsServiceDeletedEvent() (*ServiceDeletedEvent, bool) {
17566	return nil, false
17567}
17568
17569// AsServiceNewHealthReportEvent is the BasicFabricEvent implementation for DeployedApplicationNewHealthReportEvent.
17570func (danhre DeployedApplicationNewHealthReportEvent) AsServiceNewHealthReportEvent() (*ServiceNewHealthReportEvent, bool) {
17571	return nil, false
17572}
17573
17574// AsServiceHealthReportExpiredEvent is the BasicFabricEvent implementation for DeployedApplicationNewHealthReportEvent.
17575func (danhre DeployedApplicationNewHealthReportEvent) AsServiceHealthReportExpiredEvent() (*ServiceHealthReportExpiredEvent, bool) {
17576	return nil, false
17577}
17578
17579// AsDeployedServicePackageNewHealthReportEvent is the BasicFabricEvent implementation for DeployedApplicationNewHealthReportEvent.
17580func (danhre DeployedApplicationNewHealthReportEvent) AsDeployedServicePackageNewHealthReportEvent() (*DeployedServicePackageNewHealthReportEvent, bool) {
17581	return nil, false
17582}
17583
17584// AsDeployedServicePackageHealthReportExpiredEvent is the BasicFabricEvent implementation for DeployedApplicationNewHealthReportEvent.
17585func (danhre DeployedApplicationNewHealthReportEvent) AsDeployedServicePackageHealthReportExpiredEvent() (*DeployedServicePackageHealthReportExpiredEvent, bool) {
17586	return nil, false
17587}
17588
17589// AsStatefulReplicaNewHealthReportEvent is the BasicFabricEvent implementation for DeployedApplicationNewHealthReportEvent.
17590func (danhre DeployedApplicationNewHealthReportEvent) AsStatefulReplicaNewHealthReportEvent() (*StatefulReplicaNewHealthReportEvent, bool) {
17591	return nil, false
17592}
17593
17594// AsStatefulReplicaHealthReportExpiredEvent is the BasicFabricEvent implementation for DeployedApplicationNewHealthReportEvent.
17595func (danhre DeployedApplicationNewHealthReportEvent) AsStatefulReplicaHealthReportExpiredEvent() (*StatefulReplicaHealthReportExpiredEvent, bool) {
17596	return nil, false
17597}
17598
17599// AsStatelessReplicaNewHealthReportEvent is the BasicFabricEvent implementation for DeployedApplicationNewHealthReportEvent.
17600func (danhre DeployedApplicationNewHealthReportEvent) AsStatelessReplicaNewHealthReportEvent() (*StatelessReplicaNewHealthReportEvent, bool) {
17601	return nil, false
17602}
17603
17604// AsStatelessReplicaHealthReportExpiredEvent is the BasicFabricEvent implementation for DeployedApplicationNewHealthReportEvent.
17605func (danhre DeployedApplicationNewHealthReportEvent) AsStatelessReplicaHealthReportExpiredEvent() (*StatelessReplicaHealthReportExpiredEvent, bool) {
17606	return nil, false
17607}
17608
17609// AsClusterNewHealthReportEvent is the BasicFabricEvent implementation for DeployedApplicationNewHealthReportEvent.
17610func (danhre DeployedApplicationNewHealthReportEvent) AsClusterNewHealthReportEvent() (*ClusterNewHealthReportEvent, bool) {
17611	return nil, false
17612}
17613
17614// AsClusterHealthReportExpiredEvent is the BasicFabricEvent implementation for DeployedApplicationNewHealthReportEvent.
17615func (danhre DeployedApplicationNewHealthReportEvent) AsClusterHealthReportExpiredEvent() (*ClusterHealthReportExpiredEvent, bool) {
17616	return nil, false
17617}
17618
17619// AsClusterUpgradeCompletedEvent is the BasicFabricEvent implementation for DeployedApplicationNewHealthReportEvent.
17620func (danhre DeployedApplicationNewHealthReportEvent) AsClusterUpgradeCompletedEvent() (*ClusterUpgradeCompletedEvent, bool) {
17621	return nil, false
17622}
17623
17624// AsClusterUpgradeDomainCompletedEvent is the BasicFabricEvent implementation for DeployedApplicationNewHealthReportEvent.
17625func (danhre DeployedApplicationNewHealthReportEvent) AsClusterUpgradeDomainCompletedEvent() (*ClusterUpgradeDomainCompletedEvent, bool) {
17626	return nil, false
17627}
17628
17629// AsClusterUpgradeRollbackCompletedEvent is the BasicFabricEvent implementation for DeployedApplicationNewHealthReportEvent.
17630func (danhre DeployedApplicationNewHealthReportEvent) AsClusterUpgradeRollbackCompletedEvent() (*ClusterUpgradeRollbackCompletedEvent, bool) {
17631	return nil, false
17632}
17633
17634// AsClusterUpgradeRollbackStartedEvent is the BasicFabricEvent implementation for DeployedApplicationNewHealthReportEvent.
17635func (danhre DeployedApplicationNewHealthReportEvent) AsClusterUpgradeRollbackStartedEvent() (*ClusterUpgradeRollbackStartedEvent, bool) {
17636	return nil, false
17637}
17638
17639// AsClusterUpgradeStartedEvent is the BasicFabricEvent implementation for DeployedApplicationNewHealthReportEvent.
17640func (danhre DeployedApplicationNewHealthReportEvent) AsClusterUpgradeStartedEvent() (*ClusterUpgradeStartedEvent, bool) {
17641	return nil, false
17642}
17643
17644// AsChaosStoppedEvent is the BasicFabricEvent implementation for DeployedApplicationNewHealthReportEvent.
17645func (danhre DeployedApplicationNewHealthReportEvent) AsChaosStoppedEvent() (*ChaosStoppedEvent, bool) {
17646	return nil, false
17647}
17648
17649// AsChaosStartedEvent is the BasicFabricEvent implementation for DeployedApplicationNewHealthReportEvent.
17650func (danhre DeployedApplicationNewHealthReportEvent) AsChaosStartedEvent() (*ChaosStartedEvent, bool) {
17651	return nil, false
17652}
17653
17654// AsChaosCodePackageRestartScheduledEvent is the BasicFabricEvent implementation for DeployedApplicationNewHealthReportEvent.
17655func (danhre DeployedApplicationNewHealthReportEvent) AsChaosCodePackageRestartScheduledEvent() (*ChaosCodePackageRestartScheduledEvent, bool) {
17656	return nil, false
17657}
17658
17659// AsChaosReplicaRemovalScheduledEvent is the BasicFabricEvent implementation for DeployedApplicationNewHealthReportEvent.
17660func (danhre DeployedApplicationNewHealthReportEvent) AsChaosReplicaRemovalScheduledEvent() (*ChaosReplicaRemovalScheduledEvent, bool) {
17661	return nil, false
17662}
17663
17664// AsChaosPartitionSecondaryMoveScheduledEvent is the BasicFabricEvent implementation for DeployedApplicationNewHealthReportEvent.
17665func (danhre DeployedApplicationNewHealthReportEvent) AsChaosPartitionSecondaryMoveScheduledEvent() (*ChaosPartitionSecondaryMoveScheduledEvent, bool) {
17666	return nil, false
17667}
17668
17669// AsChaosPartitionPrimaryMoveScheduledEvent is the BasicFabricEvent implementation for DeployedApplicationNewHealthReportEvent.
17670func (danhre DeployedApplicationNewHealthReportEvent) AsChaosPartitionPrimaryMoveScheduledEvent() (*ChaosPartitionPrimaryMoveScheduledEvent, bool) {
17671	return nil, false
17672}
17673
17674// AsChaosReplicaRestartScheduledEvent is the BasicFabricEvent implementation for DeployedApplicationNewHealthReportEvent.
17675func (danhre DeployedApplicationNewHealthReportEvent) AsChaosReplicaRestartScheduledEvent() (*ChaosReplicaRestartScheduledEvent, bool) {
17676	return nil, false
17677}
17678
17679// AsChaosNodeRestartScheduledEvent is the BasicFabricEvent implementation for DeployedApplicationNewHealthReportEvent.
17680func (danhre DeployedApplicationNewHealthReportEvent) AsChaosNodeRestartScheduledEvent() (*ChaosNodeRestartScheduledEvent, bool) {
17681	return nil, false
17682}
17683
17684// AsFabricEvent is the BasicFabricEvent implementation for DeployedApplicationNewHealthReportEvent.
17685func (danhre DeployedApplicationNewHealthReportEvent) AsFabricEvent() (*FabricEvent, bool) {
17686	return nil, false
17687}
17688
17689// AsBasicFabricEvent is the BasicFabricEvent implementation for DeployedApplicationNewHealthReportEvent.
17690func (danhre DeployedApplicationNewHealthReportEvent) AsBasicFabricEvent() (BasicFabricEvent, bool) {
17691	return &danhre, true
17692}
17693
17694// DeployedApplicationsHealthEvaluation represents health evaluation for deployed applications, containing
17695// health evaluations for each unhealthy deployed application that impacted current aggregated health
17696// state.
17697// Can be returned when evaluating application health and the aggregated health state is either Error or
17698// Warning.
17699type DeployedApplicationsHealthEvaluation struct {
17700	// MaxPercentUnhealthyDeployedApplications - Maximum allowed percentage of unhealthy deployed applications from the ApplicationHealthPolicy.
17701	MaxPercentUnhealthyDeployedApplications *int32 `json:"MaxPercentUnhealthyDeployedApplications,omitempty"`
17702	// TotalCount - Total number of deployed applications of the application in the health store.
17703	TotalCount *int64 `json:"TotalCount,omitempty"`
17704	// UnhealthyEvaluations - List of unhealthy evaluations that led to the aggregated health state. Includes all the unhealthy DeployedApplicationHealthEvaluation that impacted the aggregated health.
17705	UnhealthyEvaluations *[]HealthEvaluationWrapper `json:"UnhealthyEvaluations,omitempty"`
17706	// 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'
17707	AggregatedHealthState HealthState `json:"AggregatedHealthState,omitempty"`
17708	// Description - Description of the health evaluation, which represents a summary of the evaluation process.
17709	Description *string `json:"Description,omitempty"`
17710	// 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'
17711	Kind Kind `json:"Kind,omitempty"`
17712}
17713
17714// MarshalJSON is the custom marshaler for DeployedApplicationsHealthEvaluation.
17715func (dahe DeployedApplicationsHealthEvaluation) MarshalJSON() ([]byte, error) {
17716	dahe.Kind = KindDeployedApplications
17717	objectMap := make(map[string]interface{})
17718	if dahe.MaxPercentUnhealthyDeployedApplications != nil {
17719		objectMap["MaxPercentUnhealthyDeployedApplications"] = dahe.MaxPercentUnhealthyDeployedApplications
17720	}
17721	if dahe.TotalCount != nil {
17722		objectMap["TotalCount"] = dahe.TotalCount
17723	}
17724	if dahe.UnhealthyEvaluations != nil {
17725		objectMap["UnhealthyEvaluations"] = dahe.UnhealthyEvaluations
17726	}
17727	if dahe.AggregatedHealthState != "" {
17728		objectMap["AggregatedHealthState"] = dahe.AggregatedHealthState
17729	}
17730	if dahe.Description != nil {
17731		objectMap["Description"] = dahe.Description
17732	}
17733	if dahe.Kind != "" {
17734		objectMap["Kind"] = dahe.Kind
17735	}
17736	return json.Marshal(objectMap)
17737}
17738
17739// AsApplicationHealthEvaluation is the BasicHealthEvaluation implementation for DeployedApplicationsHealthEvaluation.
17740func (dahe DeployedApplicationsHealthEvaluation) AsApplicationHealthEvaluation() (*ApplicationHealthEvaluation, bool) {
17741	return nil, false
17742}
17743
17744// AsApplicationsHealthEvaluation is the BasicHealthEvaluation implementation for DeployedApplicationsHealthEvaluation.
17745func (dahe DeployedApplicationsHealthEvaluation) AsApplicationsHealthEvaluation() (*ApplicationsHealthEvaluation, bool) {
17746	return nil, false
17747}
17748
17749// AsApplicationTypeApplicationsHealthEvaluation is the BasicHealthEvaluation implementation for DeployedApplicationsHealthEvaluation.
17750func (dahe DeployedApplicationsHealthEvaluation) AsApplicationTypeApplicationsHealthEvaluation() (*ApplicationTypeApplicationsHealthEvaluation, bool) {
17751	return nil, false
17752}
17753
17754// AsDeltaNodesCheckHealthEvaluation is the BasicHealthEvaluation implementation for DeployedApplicationsHealthEvaluation.
17755func (dahe DeployedApplicationsHealthEvaluation) AsDeltaNodesCheckHealthEvaluation() (*DeltaNodesCheckHealthEvaluation, bool) {
17756	return nil, false
17757}
17758
17759// AsDeployedApplicationHealthEvaluation is the BasicHealthEvaluation implementation for DeployedApplicationsHealthEvaluation.
17760func (dahe DeployedApplicationsHealthEvaluation) AsDeployedApplicationHealthEvaluation() (*DeployedApplicationHealthEvaluation, bool) {
17761	return nil, false
17762}
17763
17764// AsDeployedApplicationsHealthEvaluation is the BasicHealthEvaluation implementation for DeployedApplicationsHealthEvaluation.
17765func (dahe DeployedApplicationsHealthEvaluation) AsDeployedApplicationsHealthEvaluation() (*DeployedApplicationsHealthEvaluation, bool) {
17766	return &dahe, true
17767}
17768
17769// AsDeployedServicePackageHealthEvaluation is the BasicHealthEvaluation implementation for DeployedApplicationsHealthEvaluation.
17770func (dahe DeployedApplicationsHealthEvaluation) AsDeployedServicePackageHealthEvaluation() (*DeployedServicePackageHealthEvaluation, bool) {
17771	return nil, false
17772}
17773
17774// AsDeployedServicePackagesHealthEvaluation is the BasicHealthEvaluation implementation for DeployedApplicationsHealthEvaluation.
17775func (dahe DeployedApplicationsHealthEvaluation) AsDeployedServicePackagesHealthEvaluation() (*DeployedServicePackagesHealthEvaluation, bool) {
17776	return nil, false
17777}
17778
17779// AsEventHealthEvaluation is the BasicHealthEvaluation implementation for DeployedApplicationsHealthEvaluation.
17780func (dahe DeployedApplicationsHealthEvaluation) AsEventHealthEvaluation() (*EventHealthEvaluation, bool) {
17781	return nil, false
17782}
17783
17784// AsNodeHealthEvaluation is the BasicHealthEvaluation implementation for DeployedApplicationsHealthEvaluation.
17785func (dahe DeployedApplicationsHealthEvaluation) AsNodeHealthEvaluation() (*NodeHealthEvaluation, bool) {
17786	return nil, false
17787}
17788
17789// AsNodesHealthEvaluation is the BasicHealthEvaluation implementation for DeployedApplicationsHealthEvaluation.
17790func (dahe DeployedApplicationsHealthEvaluation) AsNodesHealthEvaluation() (*NodesHealthEvaluation, bool) {
17791	return nil, false
17792}
17793
17794// AsPartitionHealthEvaluation is the BasicHealthEvaluation implementation for DeployedApplicationsHealthEvaluation.
17795func (dahe DeployedApplicationsHealthEvaluation) AsPartitionHealthEvaluation() (*PartitionHealthEvaluation, bool) {
17796	return nil, false
17797}
17798
17799// AsPartitionsHealthEvaluation is the BasicHealthEvaluation implementation for DeployedApplicationsHealthEvaluation.
17800func (dahe DeployedApplicationsHealthEvaluation) AsPartitionsHealthEvaluation() (*PartitionsHealthEvaluation, bool) {
17801	return nil, false
17802}
17803
17804// AsReplicaHealthEvaluation is the BasicHealthEvaluation implementation for DeployedApplicationsHealthEvaluation.
17805func (dahe DeployedApplicationsHealthEvaluation) AsReplicaHealthEvaluation() (*ReplicaHealthEvaluation, bool) {
17806	return nil, false
17807}
17808
17809// AsReplicasHealthEvaluation is the BasicHealthEvaluation implementation for DeployedApplicationsHealthEvaluation.
17810func (dahe DeployedApplicationsHealthEvaluation) AsReplicasHealthEvaluation() (*ReplicasHealthEvaluation, bool) {
17811	return nil, false
17812}
17813
17814// AsServiceHealthEvaluation is the BasicHealthEvaluation implementation for DeployedApplicationsHealthEvaluation.
17815func (dahe DeployedApplicationsHealthEvaluation) AsServiceHealthEvaluation() (*ServiceHealthEvaluation, bool) {
17816	return nil, false
17817}
17818
17819// AsServicesHealthEvaluation is the BasicHealthEvaluation implementation for DeployedApplicationsHealthEvaluation.
17820func (dahe DeployedApplicationsHealthEvaluation) AsServicesHealthEvaluation() (*ServicesHealthEvaluation, bool) {
17821	return nil, false
17822}
17823
17824// AsSystemApplicationHealthEvaluation is the BasicHealthEvaluation implementation for DeployedApplicationsHealthEvaluation.
17825func (dahe DeployedApplicationsHealthEvaluation) AsSystemApplicationHealthEvaluation() (*SystemApplicationHealthEvaluation, bool) {
17826	return nil, false
17827}
17828
17829// AsUpgradeDomainDeltaNodesCheckHealthEvaluation is the BasicHealthEvaluation implementation for DeployedApplicationsHealthEvaluation.
17830func (dahe DeployedApplicationsHealthEvaluation) AsUpgradeDomainDeltaNodesCheckHealthEvaluation() (*UpgradeDomainDeltaNodesCheckHealthEvaluation, bool) {
17831	return nil, false
17832}
17833
17834// AsUpgradeDomainNodesHealthEvaluation is the BasicHealthEvaluation implementation for DeployedApplicationsHealthEvaluation.
17835func (dahe DeployedApplicationsHealthEvaluation) AsUpgradeDomainNodesHealthEvaluation() (*UpgradeDomainNodesHealthEvaluation, bool) {
17836	return nil, false
17837}
17838
17839// AsHealthEvaluation is the BasicHealthEvaluation implementation for DeployedApplicationsHealthEvaluation.
17840func (dahe DeployedApplicationsHealthEvaluation) AsHealthEvaluation() (*HealthEvaluation, bool) {
17841	return nil, false
17842}
17843
17844// AsBasicHealthEvaluation is the BasicHealthEvaluation implementation for DeployedApplicationsHealthEvaluation.
17845func (dahe DeployedApplicationsHealthEvaluation) AsBasicHealthEvaluation() (BasicHealthEvaluation, bool) {
17846	return &dahe, true
17847}
17848
17849// DeployedCodePackageInfo information about code package deployed on a Service Fabric node.
17850type DeployedCodePackageInfo struct {
17851	// Name - The name of the code package.
17852	Name *string `json:"Name,omitempty"`
17853	// Version - The version of the code package specified in service manifest.
17854	Version *string `json:"Version,omitempty"`
17855	// ServiceManifestName - The name of service manifest that specified this code package.
17856	ServiceManifestName *string `json:"ServiceManifestName,omitempty"`
17857	// ServicePackageActivationID - The ActivationId of a deployed service package. If ServicePackageActivationMode specified at the time of creating the service
17858	// is 'SharedProcess' (or if it is not specified, in which case it defaults to 'SharedProcess'), then value of ServicePackageActivationId
17859	// is always an empty string.
17860	ServicePackageActivationID *string `json:"ServicePackageActivationId,omitempty"`
17861	// 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'
17862	HostType HostType `json:"HostType,omitempty"`
17863	// 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'
17864	HostIsolationMode HostIsolationMode `json:"HostIsolationMode,omitempty"`
17865	// 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'
17866	Status DeploymentStatus `json:"Status,omitempty"`
17867	// RunFrequencyInterval - The interval at which code package is run. This is used for periodic code package.
17868	RunFrequencyInterval *string `json:"RunFrequencyInterval,omitempty"`
17869	// SetupEntryPoint - Information about setup or main entry point of a code package deployed on a Service Fabric node.
17870	SetupEntryPoint *CodePackageEntryPoint `json:"SetupEntryPoint,omitempty"`
17871	// MainEntryPoint - Information about setup or main entry point of a code package deployed on a Service Fabric node.
17872	MainEntryPoint *CodePackageEntryPoint `json:"MainEntryPoint,omitempty"`
17873}
17874
17875// DeployedServicePackageHealth information about the health of a service package for a specific
17876// application deployed on a Service Fabric node.
17877type DeployedServicePackageHealth struct {
17878	autorest.Response `json:"-"`
17879	// ApplicationName - The name of the application, including the 'fabric:' URI scheme.
17880	ApplicationName *string `json:"ApplicationName,omitempty"`
17881	// ServiceManifestName - Name of the service manifest.
17882	ServiceManifestName *string `json:"ServiceManifestName,omitempty"`
17883	// NodeName - Name of the node where this service package is deployed.
17884	NodeName *string `json:"NodeName,omitempty"`
17885	// AggregatedHealthState - The HealthState representing the aggregated health state of the entity computed by Health Manager.
17886	// The health evaluation of the entity reflects all events reported on the entity and its children (if any).
17887	// The aggregation is done by applying the desired health policy. Possible values include: 'HealthStateInvalid', 'HealthStateOk', 'HealthStateWarning', 'HealthStateError', 'HealthStateUnknown'
17888	AggregatedHealthState HealthState `json:"AggregatedHealthState,omitempty"`
17889	// HealthEvents - The list of health events reported on the entity.
17890	HealthEvents *[]HealthEvent `json:"HealthEvents,omitempty"`
17891	// UnhealthyEvaluations - The unhealthy evaluations that show why the current aggregated health state was returned by Health Manager.
17892	UnhealthyEvaluations *[]HealthEvaluationWrapper `json:"UnhealthyEvaluations,omitempty"`
17893	// HealthStatistics - Shows the health statistics for all children types of the queried entity.
17894	HealthStatistics *HealthStatistics `json:"HealthStatistics,omitempty"`
17895}
17896
17897// DeployedServicePackageHealthEvaluation represents health evaluation for a deployed service package,
17898// containing information about the data and the algorithm used by health store to evaluate health. The
17899// evaluation is returned only when the aggregated health state is either Error or Warning.
17900type DeployedServicePackageHealthEvaluation struct {
17901	// NodeName - The name of a Service Fabric node.
17902	NodeName *string `json:"NodeName,omitempty"`
17903	// ApplicationName - The name of the application, including the 'fabric:' URI scheme.
17904	ApplicationName *string `json:"ApplicationName,omitempty"`
17905	// ServiceManifestName - The name of the service manifest.
17906	ServiceManifestName *string `json:"ServiceManifestName,omitempty"`
17907	// UnhealthyEvaluations - List of unhealthy evaluations that led to the current aggregated health state. The type of the unhealthy evaluations can be EventHealthEvaluation.
17908	UnhealthyEvaluations *[]HealthEvaluationWrapper `json:"UnhealthyEvaluations,omitempty"`
17909	// 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'
17910	AggregatedHealthState HealthState `json:"AggregatedHealthState,omitempty"`
17911	// Description - Description of the health evaluation, which represents a summary of the evaluation process.
17912	Description *string `json:"Description,omitempty"`
17913	// 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'
17914	Kind Kind `json:"Kind,omitempty"`
17915}
17916
17917// MarshalJSON is the custom marshaler for DeployedServicePackageHealthEvaluation.
17918func (dsphe DeployedServicePackageHealthEvaluation) MarshalJSON() ([]byte, error) {
17919	dsphe.Kind = KindDeployedServicePackage
17920	objectMap := make(map[string]interface{})
17921	if dsphe.NodeName != nil {
17922		objectMap["NodeName"] = dsphe.NodeName
17923	}
17924	if dsphe.ApplicationName != nil {
17925		objectMap["ApplicationName"] = dsphe.ApplicationName
17926	}
17927	if dsphe.ServiceManifestName != nil {
17928		objectMap["ServiceManifestName"] = dsphe.ServiceManifestName
17929	}
17930	if dsphe.UnhealthyEvaluations != nil {
17931		objectMap["UnhealthyEvaluations"] = dsphe.UnhealthyEvaluations
17932	}
17933	if dsphe.AggregatedHealthState != "" {
17934		objectMap["AggregatedHealthState"] = dsphe.AggregatedHealthState
17935	}
17936	if dsphe.Description != nil {
17937		objectMap["Description"] = dsphe.Description
17938	}
17939	if dsphe.Kind != "" {
17940		objectMap["Kind"] = dsphe.Kind
17941	}
17942	return json.Marshal(objectMap)
17943}
17944
17945// AsApplicationHealthEvaluation is the BasicHealthEvaluation implementation for DeployedServicePackageHealthEvaluation.
17946func (dsphe DeployedServicePackageHealthEvaluation) AsApplicationHealthEvaluation() (*ApplicationHealthEvaluation, bool) {
17947	return nil, false
17948}
17949
17950// AsApplicationsHealthEvaluation is the BasicHealthEvaluation implementation for DeployedServicePackageHealthEvaluation.
17951func (dsphe DeployedServicePackageHealthEvaluation) AsApplicationsHealthEvaluation() (*ApplicationsHealthEvaluation, bool) {
17952	return nil, false
17953}
17954
17955// AsApplicationTypeApplicationsHealthEvaluation is the BasicHealthEvaluation implementation for DeployedServicePackageHealthEvaluation.
17956func (dsphe DeployedServicePackageHealthEvaluation) AsApplicationTypeApplicationsHealthEvaluation() (*ApplicationTypeApplicationsHealthEvaluation, bool) {
17957	return nil, false
17958}
17959
17960// AsDeltaNodesCheckHealthEvaluation is the BasicHealthEvaluation implementation for DeployedServicePackageHealthEvaluation.
17961func (dsphe DeployedServicePackageHealthEvaluation) AsDeltaNodesCheckHealthEvaluation() (*DeltaNodesCheckHealthEvaluation, bool) {
17962	return nil, false
17963}
17964
17965// AsDeployedApplicationHealthEvaluation is the BasicHealthEvaluation implementation for DeployedServicePackageHealthEvaluation.
17966func (dsphe DeployedServicePackageHealthEvaluation) AsDeployedApplicationHealthEvaluation() (*DeployedApplicationHealthEvaluation, bool) {
17967	return nil, false
17968}
17969
17970// AsDeployedApplicationsHealthEvaluation is the BasicHealthEvaluation implementation for DeployedServicePackageHealthEvaluation.
17971func (dsphe DeployedServicePackageHealthEvaluation) AsDeployedApplicationsHealthEvaluation() (*DeployedApplicationsHealthEvaluation, bool) {
17972	return nil, false
17973}
17974
17975// AsDeployedServicePackageHealthEvaluation is the BasicHealthEvaluation implementation for DeployedServicePackageHealthEvaluation.
17976func (dsphe DeployedServicePackageHealthEvaluation) AsDeployedServicePackageHealthEvaluation() (*DeployedServicePackageHealthEvaluation, bool) {
17977	return &dsphe, true
17978}
17979
17980// AsDeployedServicePackagesHealthEvaluation is the BasicHealthEvaluation implementation for DeployedServicePackageHealthEvaluation.
17981func (dsphe DeployedServicePackageHealthEvaluation) AsDeployedServicePackagesHealthEvaluation() (*DeployedServicePackagesHealthEvaluation, bool) {
17982	return nil, false
17983}
17984
17985// AsEventHealthEvaluation is the BasicHealthEvaluation implementation for DeployedServicePackageHealthEvaluation.
17986func (dsphe DeployedServicePackageHealthEvaluation) AsEventHealthEvaluation() (*EventHealthEvaluation, bool) {
17987	return nil, false
17988}
17989
17990// AsNodeHealthEvaluation is the BasicHealthEvaluation implementation for DeployedServicePackageHealthEvaluation.
17991func (dsphe DeployedServicePackageHealthEvaluation) AsNodeHealthEvaluation() (*NodeHealthEvaluation, bool) {
17992	return nil, false
17993}
17994
17995// AsNodesHealthEvaluation is the BasicHealthEvaluation implementation for DeployedServicePackageHealthEvaluation.
17996func (dsphe DeployedServicePackageHealthEvaluation) AsNodesHealthEvaluation() (*NodesHealthEvaluation, bool) {
17997	return nil, false
17998}
17999
18000// AsPartitionHealthEvaluation is the BasicHealthEvaluation implementation for DeployedServicePackageHealthEvaluation.
18001func (dsphe DeployedServicePackageHealthEvaluation) AsPartitionHealthEvaluation() (*PartitionHealthEvaluation, bool) {
18002	return nil, false
18003}
18004
18005// AsPartitionsHealthEvaluation is the BasicHealthEvaluation implementation for DeployedServicePackageHealthEvaluation.
18006func (dsphe DeployedServicePackageHealthEvaluation) AsPartitionsHealthEvaluation() (*PartitionsHealthEvaluation, bool) {
18007	return nil, false
18008}
18009
18010// AsReplicaHealthEvaluation is the BasicHealthEvaluation implementation for DeployedServicePackageHealthEvaluation.
18011func (dsphe DeployedServicePackageHealthEvaluation) AsReplicaHealthEvaluation() (*ReplicaHealthEvaluation, bool) {
18012	return nil, false
18013}
18014
18015// AsReplicasHealthEvaluation is the BasicHealthEvaluation implementation for DeployedServicePackageHealthEvaluation.
18016func (dsphe DeployedServicePackageHealthEvaluation) AsReplicasHealthEvaluation() (*ReplicasHealthEvaluation, bool) {
18017	return nil, false
18018}
18019
18020// AsServiceHealthEvaluation is the BasicHealthEvaluation implementation for DeployedServicePackageHealthEvaluation.
18021func (dsphe DeployedServicePackageHealthEvaluation) AsServiceHealthEvaluation() (*ServiceHealthEvaluation, bool) {
18022	return nil, false
18023}
18024
18025// AsServicesHealthEvaluation is the BasicHealthEvaluation implementation for DeployedServicePackageHealthEvaluation.
18026func (dsphe DeployedServicePackageHealthEvaluation) AsServicesHealthEvaluation() (*ServicesHealthEvaluation, bool) {
18027	return nil, false
18028}
18029
18030// AsSystemApplicationHealthEvaluation is the BasicHealthEvaluation implementation for DeployedServicePackageHealthEvaluation.
18031func (dsphe DeployedServicePackageHealthEvaluation) AsSystemApplicationHealthEvaluation() (*SystemApplicationHealthEvaluation, bool) {
18032	return nil, false
18033}
18034
18035// AsUpgradeDomainDeltaNodesCheckHealthEvaluation is the BasicHealthEvaluation implementation for DeployedServicePackageHealthEvaluation.
18036func (dsphe DeployedServicePackageHealthEvaluation) AsUpgradeDomainDeltaNodesCheckHealthEvaluation() (*UpgradeDomainDeltaNodesCheckHealthEvaluation, bool) {
18037	return nil, false
18038}
18039
18040// AsUpgradeDomainNodesHealthEvaluation is the BasicHealthEvaluation implementation for DeployedServicePackageHealthEvaluation.
18041func (dsphe DeployedServicePackageHealthEvaluation) AsUpgradeDomainNodesHealthEvaluation() (*UpgradeDomainNodesHealthEvaluation, bool) {
18042	return nil, false
18043}
18044
18045// AsHealthEvaluation is the BasicHealthEvaluation implementation for DeployedServicePackageHealthEvaluation.
18046func (dsphe DeployedServicePackageHealthEvaluation) AsHealthEvaluation() (*HealthEvaluation, bool) {
18047	return nil, false
18048}
18049
18050// AsBasicHealthEvaluation is the BasicHealthEvaluation implementation for DeployedServicePackageHealthEvaluation.
18051func (dsphe DeployedServicePackageHealthEvaluation) AsBasicHealthEvaluation() (BasicHealthEvaluation, bool) {
18052	return &dsphe, true
18053}
18054
18055// DeployedServicePackageHealthReportExpiredEvent deployed Service Health Report Expired event.
18056type DeployedServicePackageHealthReportExpiredEvent struct {
18057	// ServiceManifest - Service manifest name.
18058	ServiceManifest *string `json:"ServiceManifest,omitempty"`
18059	// ServicePackageInstanceID - Id of Service package instance.
18060	ServicePackageInstanceID *int64 `json:"ServicePackageInstanceId,omitempty"`
18061	// ServicePackageActivationID - Id of Service package activation.
18062	ServicePackageActivationID *string `json:"ServicePackageActivationId,omitempty"`
18063	// NodeName - The name of a Service Fabric node.
18064	NodeName *string `json:"NodeName,omitempty"`
18065	// SourceID - Id of report source.
18066	SourceID *string `json:"SourceId,omitempty"`
18067	// Property - Describes the property.
18068	Property *string `json:"Property,omitempty"`
18069	// HealthState - Describes the property health state.
18070	HealthState *string `json:"HealthState,omitempty"`
18071	// TimeToLiveMs - Time to live in milli-seconds.
18072	TimeToLiveMs *int64 `json:"TimeToLiveMs,omitempty"`
18073	// SequenceNumber - Sequence number of report.
18074	SequenceNumber *int64 `json:"SequenceNumber,omitempty"`
18075	// Description - Description of report.
18076	Description *string `json:"Description,omitempty"`
18077	// RemoveWhenExpired - Indicates the removal when it expires.
18078	RemoveWhenExpired *bool `json:"RemoveWhenExpired,omitempty"`
18079	// SourceUtcTimestamp - Source time.
18080	SourceUtcTimestamp *date.Time `json:"SourceUtcTimestamp,omitempty"`
18081	// 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.
18082	// Starting in version 6.0, hierarchical names are delimited with the "\~" character. For example, if the application name is "fabric:/myapp/app1",
18083	// the application identity would be "myapp\~app1" in 6.0+ and "myapp/app1" in previous versions.
18084	ApplicationID *string `json:"ApplicationId,omitempty"`
18085	// EventInstanceID - The identifier for the FabricEvent instance.
18086	EventInstanceID *uuid.UUID `json:"EventInstanceId,omitempty"`
18087	// Category - The category of event.
18088	Category *string `json:"Category,omitempty"`
18089	// TimeStamp - The time event was logged.
18090	TimeStamp *date.Time `json:"TimeStamp,omitempty"`
18091	// HasCorrelatedEvents - Shows there is existing related events available.
18092	HasCorrelatedEvents *bool `json:"HasCorrelatedEvents,omitempty"`
18093	// 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'
18094	Kind KindBasicFabricEvent `json:"Kind,omitempty"`
18095}
18096
18097// MarshalJSON is the custom marshaler for DeployedServicePackageHealthReportExpiredEvent.
18098func (dsphree DeployedServicePackageHealthReportExpiredEvent) MarshalJSON() ([]byte, error) {
18099	dsphree.Kind = KindDeployedServicePackageHealthReportExpired
18100	objectMap := make(map[string]interface{})
18101	if dsphree.ServiceManifest != nil {
18102		objectMap["ServiceManifest"] = dsphree.ServiceManifest
18103	}
18104	if dsphree.ServicePackageInstanceID != nil {
18105		objectMap["ServicePackageInstanceId"] = dsphree.ServicePackageInstanceID
18106	}
18107	if dsphree.ServicePackageActivationID != nil {
18108		objectMap["ServicePackageActivationId"] = dsphree.ServicePackageActivationID
18109	}
18110	if dsphree.NodeName != nil {
18111		objectMap["NodeName"] = dsphree.NodeName
18112	}
18113	if dsphree.SourceID != nil {
18114		objectMap["SourceId"] = dsphree.SourceID
18115	}
18116	if dsphree.Property != nil {
18117		objectMap["Property"] = dsphree.Property
18118	}
18119	if dsphree.HealthState != nil {
18120		objectMap["HealthState"] = dsphree.HealthState
18121	}
18122	if dsphree.TimeToLiveMs != nil {
18123		objectMap["TimeToLiveMs"] = dsphree.TimeToLiveMs
18124	}
18125	if dsphree.SequenceNumber != nil {
18126		objectMap["SequenceNumber"] = dsphree.SequenceNumber
18127	}
18128	if dsphree.Description != nil {
18129		objectMap["Description"] = dsphree.Description
18130	}
18131	if dsphree.RemoveWhenExpired != nil {
18132		objectMap["RemoveWhenExpired"] = dsphree.RemoveWhenExpired
18133	}
18134	if dsphree.SourceUtcTimestamp != nil {
18135		objectMap["SourceUtcTimestamp"] = dsphree.SourceUtcTimestamp
18136	}
18137	if dsphree.ApplicationID != nil {
18138		objectMap["ApplicationId"] = dsphree.ApplicationID
18139	}
18140	if dsphree.EventInstanceID != nil {
18141		objectMap["EventInstanceId"] = dsphree.EventInstanceID
18142	}
18143	if dsphree.Category != nil {
18144		objectMap["Category"] = dsphree.Category
18145	}
18146	if dsphree.TimeStamp != nil {
18147		objectMap["TimeStamp"] = dsphree.TimeStamp
18148	}
18149	if dsphree.HasCorrelatedEvents != nil {
18150		objectMap["HasCorrelatedEvents"] = dsphree.HasCorrelatedEvents
18151	}
18152	if dsphree.Kind != "" {
18153		objectMap["Kind"] = dsphree.Kind
18154	}
18155	return json.Marshal(objectMap)
18156}
18157
18158// AsApplicationEvent is the BasicFabricEvent implementation for DeployedServicePackageHealthReportExpiredEvent.
18159func (dsphree DeployedServicePackageHealthReportExpiredEvent) AsApplicationEvent() (*ApplicationEvent, bool) {
18160	return nil, false
18161}
18162
18163// AsBasicApplicationEvent is the BasicFabricEvent implementation for DeployedServicePackageHealthReportExpiredEvent.
18164func (dsphree DeployedServicePackageHealthReportExpiredEvent) AsBasicApplicationEvent() (BasicApplicationEvent, bool) {
18165	return &dsphree, true
18166}
18167
18168// AsClusterEvent is the BasicFabricEvent implementation for DeployedServicePackageHealthReportExpiredEvent.
18169func (dsphree DeployedServicePackageHealthReportExpiredEvent) AsClusterEvent() (*ClusterEvent, bool) {
18170	return nil, false
18171}
18172
18173// AsBasicClusterEvent is the BasicFabricEvent implementation for DeployedServicePackageHealthReportExpiredEvent.
18174func (dsphree DeployedServicePackageHealthReportExpiredEvent) AsBasicClusterEvent() (BasicClusterEvent, bool) {
18175	return nil, false
18176}
18177
18178// AsContainerInstanceEvent is the BasicFabricEvent implementation for DeployedServicePackageHealthReportExpiredEvent.
18179func (dsphree DeployedServicePackageHealthReportExpiredEvent) AsContainerInstanceEvent() (*ContainerInstanceEvent, bool) {
18180	return nil, false
18181}
18182
18183// AsNodeEvent is the BasicFabricEvent implementation for DeployedServicePackageHealthReportExpiredEvent.
18184func (dsphree DeployedServicePackageHealthReportExpiredEvent) AsNodeEvent() (*NodeEvent, bool) {
18185	return nil, false
18186}
18187
18188// AsBasicNodeEvent is the BasicFabricEvent implementation for DeployedServicePackageHealthReportExpiredEvent.
18189func (dsphree DeployedServicePackageHealthReportExpiredEvent) AsBasicNodeEvent() (BasicNodeEvent, bool) {
18190	return nil, false
18191}
18192
18193// AsPartitionAnalysisEvent is the BasicFabricEvent implementation for DeployedServicePackageHealthReportExpiredEvent.
18194func (dsphree DeployedServicePackageHealthReportExpiredEvent) AsPartitionAnalysisEvent() (*PartitionAnalysisEvent, bool) {
18195	return nil, false
18196}
18197
18198// AsBasicPartitionAnalysisEvent is the BasicFabricEvent implementation for DeployedServicePackageHealthReportExpiredEvent.
18199func (dsphree DeployedServicePackageHealthReportExpiredEvent) AsBasicPartitionAnalysisEvent() (BasicPartitionAnalysisEvent, bool) {
18200	return nil, false
18201}
18202
18203// AsPartitionEvent is the BasicFabricEvent implementation for DeployedServicePackageHealthReportExpiredEvent.
18204func (dsphree DeployedServicePackageHealthReportExpiredEvent) AsPartitionEvent() (*PartitionEvent, bool) {
18205	return nil, false
18206}
18207
18208// AsBasicPartitionEvent is the BasicFabricEvent implementation for DeployedServicePackageHealthReportExpiredEvent.
18209func (dsphree DeployedServicePackageHealthReportExpiredEvent) AsBasicPartitionEvent() (BasicPartitionEvent, bool) {
18210	return nil, false
18211}
18212
18213// AsReplicaEvent is the BasicFabricEvent implementation for DeployedServicePackageHealthReportExpiredEvent.
18214func (dsphree DeployedServicePackageHealthReportExpiredEvent) AsReplicaEvent() (*ReplicaEvent, bool) {
18215	return nil, false
18216}
18217
18218// AsBasicReplicaEvent is the BasicFabricEvent implementation for DeployedServicePackageHealthReportExpiredEvent.
18219func (dsphree DeployedServicePackageHealthReportExpiredEvent) AsBasicReplicaEvent() (BasicReplicaEvent, bool) {
18220	return nil, false
18221}
18222
18223// AsServiceEvent is the BasicFabricEvent implementation for DeployedServicePackageHealthReportExpiredEvent.
18224func (dsphree DeployedServicePackageHealthReportExpiredEvent) AsServiceEvent() (*ServiceEvent, bool) {
18225	return nil, false
18226}
18227
18228// AsBasicServiceEvent is the BasicFabricEvent implementation for DeployedServicePackageHealthReportExpiredEvent.
18229func (dsphree DeployedServicePackageHealthReportExpiredEvent) AsBasicServiceEvent() (BasicServiceEvent, bool) {
18230	return nil, false
18231}
18232
18233// AsApplicationCreatedEvent is the BasicFabricEvent implementation for DeployedServicePackageHealthReportExpiredEvent.
18234func (dsphree DeployedServicePackageHealthReportExpiredEvent) AsApplicationCreatedEvent() (*ApplicationCreatedEvent, bool) {
18235	return nil, false
18236}
18237
18238// AsApplicationDeletedEvent is the BasicFabricEvent implementation for DeployedServicePackageHealthReportExpiredEvent.
18239func (dsphree DeployedServicePackageHealthReportExpiredEvent) AsApplicationDeletedEvent() (*ApplicationDeletedEvent, bool) {
18240	return nil, false
18241}
18242
18243// AsApplicationNewHealthReportEvent is the BasicFabricEvent implementation for DeployedServicePackageHealthReportExpiredEvent.
18244func (dsphree DeployedServicePackageHealthReportExpiredEvent) AsApplicationNewHealthReportEvent() (*ApplicationNewHealthReportEvent, bool) {
18245	return nil, false
18246}
18247
18248// AsApplicationHealthReportExpiredEvent is the BasicFabricEvent implementation for DeployedServicePackageHealthReportExpiredEvent.
18249func (dsphree DeployedServicePackageHealthReportExpiredEvent) AsApplicationHealthReportExpiredEvent() (*ApplicationHealthReportExpiredEvent, bool) {
18250	return nil, false
18251}
18252
18253// AsApplicationUpgradeCompletedEvent is the BasicFabricEvent implementation for DeployedServicePackageHealthReportExpiredEvent.
18254func (dsphree DeployedServicePackageHealthReportExpiredEvent) AsApplicationUpgradeCompletedEvent() (*ApplicationUpgradeCompletedEvent, bool) {
18255	return nil, false
18256}
18257
18258// AsApplicationUpgradeDomainCompletedEvent is the BasicFabricEvent implementation for DeployedServicePackageHealthReportExpiredEvent.
18259func (dsphree DeployedServicePackageHealthReportExpiredEvent) AsApplicationUpgradeDomainCompletedEvent() (*ApplicationUpgradeDomainCompletedEvent, bool) {
18260	return nil, false
18261}
18262
18263// AsApplicationUpgradeRollbackCompletedEvent is the BasicFabricEvent implementation for DeployedServicePackageHealthReportExpiredEvent.
18264func (dsphree DeployedServicePackageHealthReportExpiredEvent) AsApplicationUpgradeRollbackCompletedEvent() (*ApplicationUpgradeRollbackCompletedEvent, bool) {
18265	return nil, false
18266}
18267
18268// AsApplicationUpgradeRollbackStartedEvent is the BasicFabricEvent implementation for DeployedServicePackageHealthReportExpiredEvent.
18269func (dsphree DeployedServicePackageHealthReportExpiredEvent) AsApplicationUpgradeRollbackStartedEvent() (*ApplicationUpgradeRollbackStartedEvent, bool) {
18270	return nil, false
18271}
18272
18273// AsApplicationUpgradeStartedEvent is the BasicFabricEvent implementation for DeployedServicePackageHealthReportExpiredEvent.
18274func (dsphree DeployedServicePackageHealthReportExpiredEvent) AsApplicationUpgradeStartedEvent() (*ApplicationUpgradeStartedEvent, bool) {
18275	return nil, false
18276}
18277
18278// AsDeployedApplicationNewHealthReportEvent is the BasicFabricEvent implementation for DeployedServicePackageHealthReportExpiredEvent.
18279func (dsphree DeployedServicePackageHealthReportExpiredEvent) AsDeployedApplicationNewHealthReportEvent() (*DeployedApplicationNewHealthReportEvent, bool) {
18280	return nil, false
18281}
18282
18283// AsDeployedApplicationHealthReportExpiredEvent is the BasicFabricEvent implementation for DeployedServicePackageHealthReportExpiredEvent.
18284func (dsphree DeployedServicePackageHealthReportExpiredEvent) AsDeployedApplicationHealthReportExpiredEvent() (*DeployedApplicationHealthReportExpiredEvent, bool) {
18285	return nil, false
18286}
18287
18288// AsApplicationProcessExitedEvent is the BasicFabricEvent implementation for DeployedServicePackageHealthReportExpiredEvent.
18289func (dsphree DeployedServicePackageHealthReportExpiredEvent) AsApplicationProcessExitedEvent() (*ApplicationProcessExitedEvent, bool) {
18290	return nil, false
18291}
18292
18293// AsApplicationContainerInstanceExitedEvent is the BasicFabricEvent implementation for DeployedServicePackageHealthReportExpiredEvent.
18294func (dsphree DeployedServicePackageHealthReportExpiredEvent) AsApplicationContainerInstanceExitedEvent() (*ApplicationContainerInstanceExitedEvent, bool) {
18295	return nil, false
18296}
18297
18298// AsNodeAbortedEvent is the BasicFabricEvent implementation for DeployedServicePackageHealthReportExpiredEvent.
18299func (dsphree DeployedServicePackageHealthReportExpiredEvent) AsNodeAbortedEvent() (*NodeAbortedEvent, bool) {
18300	return nil, false
18301}
18302
18303// AsNodeAddedToClusterEvent is the BasicFabricEvent implementation for DeployedServicePackageHealthReportExpiredEvent.
18304func (dsphree DeployedServicePackageHealthReportExpiredEvent) AsNodeAddedToClusterEvent() (*NodeAddedToClusterEvent, bool) {
18305	return nil, false
18306}
18307
18308// AsNodeClosedEvent is the BasicFabricEvent implementation for DeployedServicePackageHealthReportExpiredEvent.
18309func (dsphree DeployedServicePackageHealthReportExpiredEvent) AsNodeClosedEvent() (*NodeClosedEvent, bool) {
18310	return nil, false
18311}
18312
18313// AsNodeDeactivateCompletedEvent is the BasicFabricEvent implementation for DeployedServicePackageHealthReportExpiredEvent.
18314func (dsphree DeployedServicePackageHealthReportExpiredEvent) AsNodeDeactivateCompletedEvent() (*NodeDeactivateCompletedEvent, bool) {
18315	return nil, false
18316}
18317
18318// AsNodeDeactivateStartedEvent is the BasicFabricEvent implementation for DeployedServicePackageHealthReportExpiredEvent.
18319func (dsphree DeployedServicePackageHealthReportExpiredEvent) AsNodeDeactivateStartedEvent() (*NodeDeactivateStartedEvent, bool) {
18320	return nil, false
18321}
18322
18323// AsNodeDownEvent is the BasicFabricEvent implementation for DeployedServicePackageHealthReportExpiredEvent.
18324func (dsphree DeployedServicePackageHealthReportExpiredEvent) AsNodeDownEvent() (*NodeDownEvent, bool) {
18325	return nil, false
18326}
18327
18328// AsNodeNewHealthReportEvent is the BasicFabricEvent implementation for DeployedServicePackageHealthReportExpiredEvent.
18329func (dsphree DeployedServicePackageHealthReportExpiredEvent) AsNodeNewHealthReportEvent() (*NodeNewHealthReportEvent, bool) {
18330	return nil, false
18331}
18332
18333// AsNodeHealthReportExpiredEvent is the BasicFabricEvent implementation for DeployedServicePackageHealthReportExpiredEvent.
18334func (dsphree DeployedServicePackageHealthReportExpiredEvent) AsNodeHealthReportExpiredEvent() (*NodeHealthReportExpiredEvent, bool) {
18335	return nil, false
18336}
18337
18338// AsNodeOpenSucceededEvent is the BasicFabricEvent implementation for DeployedServicePackageHealthReportExpiredEvent.
18339func (dsphree DeployedServicePackageHealthReportExpiredEvent) AsNodeOpenSucceededEvent() (*NodeOpenSucceededEvent, bool) {
18340	return nil, false
18341}
18342
18343// AsNodeOpenFailedEvent is the BasicFabricEvent implementation for DeployedServicePackageHealthReportExpiredEvent.
18344func (dsphree DeployedServicePackageHealthReportExpiredEvent) AsNodeOpenFailedEvent() (*NodeOpenFailedEvent, bool) {
18345	return nil, false
18346}
18347
18348// AsNodeRemovedFromClusterEvent is the BasicFabricEvent implementation for DeployedServicePackageHealthReportExpiredEvent.
18349func (dsphree DeployedServicePackageHealthReportExpiredEvent) AsNodeRemovedFromClusterEvent() (*NodeRemovedFromClusterEvent, bool) {
18350	return nil, false
18351}
18352
18353// AsNodeUpEvent is the BasicFabricEvent implementation for DeployedServicePackageHealthReportExpiredEvent.
18354func (dsphree DeployedServicePackageHealthReportExpiredEvent) AsNodeUpEvent() (*NodeUpEvent, bool) {
18355	return nil, false
18356}
18357
18358// AsPartitionNewHealthReportEvent is the BasicFabricEvent implementation for DeployedServicePackageHealthReportExpiredEvent.
18359func (dsphree DeployedServicePackageHealthReportExpiredEvent) AsPartitionNewHealthReportEvent() (*PartitionNewHealthReportEvent, bool) {
18360	return nil, false
18361}
18362
18363// AsPartitionHealthReportExpiredEvent is the BasicFabricEvent implementation for DeployedServicePackageHealthReportExpiredEvent.
18364func (dsphree DeployedServicePackageHealthReportExpiredEvent) AsPartitionHealthReportExpiredEvent() (*PartitionHealthReportExpiredEvent, bool) {
18365	return nil, false
18366}
18367
18368// AsPartitionReconfiguredEvent is the BasicFabricEvent implementation for DeployedServicePackageHealthReportExpiredEvent.
18369func (dsphree DeployedServicePackageHealthReportExpiredEvent) AsPartitionReconfiguredEvent() (*PartitionReconfiguredEvent, bool) {
18370	return nil, false
18371}
18372
18373// AsPartitionPrimaryMoveAnalysisEvent is the BasicFabricEvent implementation for DeployedServicePackageHealthReportExpiredEvent.
18374func (dsphree DeployedServicePackageHealthReportExpiredEvent) AsPartitionPrimaryMoveAnalysisEvent() (*PartitionPrimaryMoveAnalysisEvent, bool) {
18375	return nil, false
18376}
18377
18378// AsServiceCreatedEvent is the BasicFabricEvent implementation for DeployedServicePackageHealthReportExpiredEvent.
18379func (dsphree DeployedServicePackageHealthReportExpiredEvent) AsServiceCreatedEvent() (*ServiceCreatedEvent, bool) {
18380	return nil, false
18381}
18382
18383// AsServiceDeletedEvent is the BasicFabricEvent implementation for DeployedServicePackageHealthReportExpiredEvent.
18384func (dsphree DeployedServicePackageHealthReportExpiredEvent) AsServiceDeletedEvent() (*ServiceDeletedEvent, bool) {
18385	return nil, false
18386}
18387
18388// AsServiceNewHealthReportEvent is the BasicFabricEvent implementation for DeployedServicePackageHealthReportExpiredEvent.
18389func (dsphree DeployedServicePackageHealthReportExpiredEvent) AsServiceNewHealthReportEvent() (*ServiceNewHealthReportEvent, bool) {
18390	return nil, false
18391}
18392
18393// AsServiceHealthReportExpiredEvent is the BasicFabricEvent implementation for DeployedServicePackageHealthReportExpiredEvent.
18394func (dsphree DeployedServicePackageHealthReportExpiredEvent) AsServiceHealthReportExpiredEvent() (*ServiceHealthReportExpiredEvent, bool) {
18395	return nil, false
18396}
18397
18398// AsDeployedServicePackageNewHealthReportEvent is the BasicFabricEvent implementation for DeployedServicePackageHealthReportExpiredEvent.
18399func (dsphree DeployedServicePackageHealthReportExpiredEvent) AsDeployedServicePackageNewHealthReportEvent() (*DeployedServicePackageNewHealthReportEvent, bool) {
18400	return nil, false
18401}
18402
18403// AsDeployedServicePackageHealthReportExpiredEvent is the BasicFabricEvent implementation for DeployedServicePackageHealthReportExpiredEvent.
18404func (dsphree DeployedServicePackageHealthReportExpiredEvent) AsDeployedServicePackageHealthReportExpiredEvent() (*DeployedServicePackageHealthReportExpiredEvent, bool) {
18405	return &dsphree, true
18406}
18407
18408// AsStatefulReplicaNewHealthReportEvent is the BasicFabricEvent implementation for DeployedServicePackageHealthReportExpiredEvent.
18409func (dsphree DeployedServicePackageHealthReportExpiredEvent) AsStatefulReplicaNewHealthReportEvent() (*StatefulReplicaNewHealthReportEvent, bool) {
18410	return nil, false
18411}
18412
18413// AsStatefulReplicaHealthReportExpiredEvent is the BasicFabricEvent implementation for DeployedServicePackageHealthReportExpiredEvent.
18414func (dsphree DeployedServicePackageHealthReportExpiredEvent) AsStatefulReplicaHealthReportExpiredEvent() (*StatefulReplicaHealthReportExpiredEvent, bool) {
18415	return nil, false
18416}
18417
18418// AsStatelessReplicaNewHealthReportEvent is the BasicFabricEvent implementation for DeployedServicePackageHealthReportExpiredEvent.
18419func (dsphree DeployedServicePackageHealthReportExpiredEvent) AsStatelessReplicaNewHealthReportEvent() (*StatelessReplicaNewHealthReportEvent, bool) {
18420	return nil, false
18421}
18422
18423// AsStatelessReplicaHealthReportExpiredEvent is the BasicFabricEvent implementation for DeployedServicePackageHealthReportExpiredEvent.
18424func (dsphree DeployedServicePackageHealthReportExpiredEvent) AsStatelessReplicaHealthReportExpiredEvent() (*StatelessReplicaHealthReportExpiredEvent, bool) {
18425	return nil, false
18426}
18427
18428// AsClusterNewHealthReportEvent is the BasicFabricEvent implementation for DeployedServicePackageHealthReportExpiredEvent.
18429func (dsphree DeployedServicePackageHealthReportExpiredEvent) AsClusterNewHealthReportEvent() (*ClusterNewHealthReportEvent, bool) {
18430	return nil, false
18431}
18432
18433// AsClusterHealthReportExpiredEvent is the BasicFabricEvent implementation for DeployedServicePackageHealthReportExpiredEvent.
18434func (dsphree DeployedServicePackageHealthReportExpiredEvent) AsClusterHealthReportExpiredEvent() (*ClusterHealthReportExpiredEvent, bool) {
18435	return nil, false
18436}
18437
18438// AsClusterUpgradeCompletedEvent is the BasicFabricEvent implementation for DeployedServicePackageHealthReportExpiredEvent.
18439func (dsphree DeployedServicePackageHealthReportExpiredEvent) AsClusterUpgradeCompletedEvent() (*ClusterUpgradeCompletedEvent, bool) {
18440	return nil, false
18441}
18442
18443// AsClusterUpgradeDomainCompletedEvent is the BasicFabricEvent implementation for DeployedServicePackageHealthReportExpiredEvent.
18444func (dsphree DeployedServicePackageHealthReportExpiredEvent) AsClusterUpgradeDomainCompletedEvent() (*ClusterUpgradeDomainCompletedEvent, bool) {
18445	return nil, false
18446}
18447
18448// AsClusterUpgradeRollbackCompletedEvent is the BasicFabricEvent implementation for DeployedServicePackageHealthReportExpiredEvent.
18449func (dsphree DeployedServicePackageHealthReportExpiredEvent) AsClusterUpgradeRollbackCompletedEvent() (*ClusterUpgradeRollbackCompletedEvent, bool) {
18450	return nil, false
18451}
18452
18453// AsClusterUpgradeRollbackStartedEvent is the BasicFabricEvent implementation for DeployedServicePackageHealthReportExpiredEvent.
18454func (dsphree DeployedServicePackageHealthReportExpiredEvent) AsClusterUpgradeRollbackStartedEvent() (*ClusterUpgradeRollbackStartedEvent, bool) {
18455	return nil, false
18456}
18457
18458// AsClusterUpgradeStartedEvent is the BasicFabricEvent implementation for DeployedServicePackageHealthReportExpiredEvent.
18459func (dsphree DeployedServicePackageHealthReportExpiredEvent) AsClusterUpgradeStartedEvent() (*ClusterUpgradeStartedEvent, bool) {
18460	return nil, false
18461}
18462
18463// AsChaosStoppedEvent is the BasicFabricEvent implementation for DeployedServicePackageHealthReportExpiredEvent.
18464func (dsphree DeployedServicePackageHealthReportExpiredEvent) AsChaosStoppedEvent() (*ChaosStoppedEvent, bool) {
18465	return nil, false
18466}
18467
18468// AsChaosStartedEvent is the BasicFabricEvent implementation for DeployedServicePackageHealthReportExpiredEvent.
18469func (dsphree DeployedServicePackageHealthReportExpiredEvent) AsChaosStartedEvent() (*ChaosStartedEvent, bool) {
18470	return nil, false
18471}
18472
18473// AsChaosCodePackageRestartScheduledEvent is the BasicFabricEvent implementation for DeployedServicePackageHealthReportExpiredEvent.
18474func (dsphree DeployedServicePackageHealthReportExpiredEvent) AsChaosCodePackageRestartScheduledEvent() (*ChaosCodePackageRestartScheduledEvent, bool) {
18475	return nil, false
18476}
18477
18478// AsChaosReplicaRemovalScheduledEvent is the BasicFabricEvent implementation for DeployedServicePackageHealthReportExpiredEvent.
18479func (dsphree DeployedServicePackageHealthReportExpiredEvent) AsChaosReplicaRemovalScheduledEvent() (*ChaosReplicaRemovalScheduledEvent, bool) {
18480	return nil, false
18481}
18482
18483// AsChaosPartitionSecondaryMoveScheduledEvent is the BasicFabricEvent implementation for DeployedServicePackageHealthReportExpiredEvent.
18484func (dsphree DeployedServicePackageHealthReportExpiredEvent) AsChaosPartitionSecondaryMoveScheduledEvent() (*ChaosPartitionSecondaryMoveScheduledEvent, bool) {
18485	return nil, false
18486}
18487
18488// AsChaosPartitionPrimaryMoveScheduledEvent is the BasicFabricEvent implementation for DeployedServicePackageHealthReportExpiredEvent.
18489func (dsphree DeployedServicePackageHealthReportExpiredEvent) AsChaosPartitionPrimaryMoveScheduledEvent() (*ChaosPartitionPrimaryMoveScheduledEvent, bool) {
18490	return nil, false
18491}
18492
18493// AsChaosReplicaRestartScheduledEvent is the BasicFabricEvent implementation for DeployedServicePackageHealthReportExpiredEvent.
18494func (dsphree DeployedServicePackageHealthReportExpiredEvent) AsChaosReplicaRestartScheduledEvent() (*ChaosReplicaRestartScheduledEvent, bool) {
18495	return nil, false
18496}
18497
18498// AsChaosNodeRestartScheduledEvent is the BasicFabricEvent implementation for DeployedServicePackageHealthReportExpiredEvent.
18499func (dsphree DeployedServicePackageHealthReportExpiredEvent) AsChaosNodeRestartScheduledEvent() (*ChaosNodeRestartScheduledEvent, bool) {
18500	return nil, false
18501}
18502
18503// AsFabricEvent is the BasicFabricEvent implementation for DeployedServicePackageHealthReportExpiredEvent.
18504func (dsphree DeployedServicePackageHealthReportExpiredEvent) AsFabricEvent() (*FabricEvent, bool) {
18505	return nil, false
18506}
18507
18508// AsBasicFabricEvent is the BasicFabricEvent implementation for DeployedServicePackageHealthReportExpiredEvent.
18509func (dsphree DeployedServicePackageHealthReportExpiredEvent) AsBasicFabricEvent() (BasicFabricEvent, bool) {
18510	return &dsphree, true
18511}
18512
18513// DeployedServicePackageHealthState represents the health state of a deployed service package, containing
18514// the entity identifier and the aggregated health state.
18515type DeployedServicePackageHealthState struct {
18516	// NodeName - Name of the node on which the service package is deployed.
18517	NodeName *string `json:"NodeName,omitempty"`
18518	// ApplicationName - The name of the application, including the 'fabric:' URI scheme.
18519	ApplicationName *string `json:"ApplicationName,omitempty"`
18520	// ServiceManifestName - Name of the manifest describing the service package.
18521	ServiceManifestName *string `json:"ServiceManifestName,omitempty"`
18522	// ServicePackageActivationID - The ActivationId of a deployed service package. If ServicePackageActivationMode specified at the time of creating the service
18523	// is 'SharedProcess' (or if it is not specified, in which case it defaults to 'SharedProcess'), then value of ServicePackageActivationId
18524	// is always an empty string.
18525	ServicePackageActivationID *string `json:"ServicePackageActivationId,omitempty"`
18526	// 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'
18527	AggregatedHealthState HealthState `json:"AggregatedHealthState,omitempty"`
18528}
18529
18530// DeployedServicePackageHealthStateChunk represents the health state chunk of a deployed service package,
18531// which contains the service manifest name and the service package aggregated health state.
18532type DeployedServicePackageHealthStateChunk struct {
18533	// ServiceManifestName - The name of the service manifest.
18534	ServiceManifestName *string `json:"ServiceManifestName,omitempty"`
18535	// ServicePackageActivationID - The ActivationId of a deployed service package. If ServicePackageActivationMode specified at the time of creating the service
18536	// is 'SharedProcess' (or if it is not specified, in which case it defaults to 'SharedProcess'), then value of ServicePackageActivationId
18537	// is always an empty string.
18538	ServicePackageActivationID *string `json:"ServicePackageActivationId,omitempty"`
18539	// 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'
18540	HealthState HealthState `json:"HealthState,omitempty"`
18541}
18542
18543// DeployedServicePackageHealthStateChunkList the list of deployed service package health state chunks that
18544// respect the input filters in the chunk query. Returned by get cluster health state chunks query.
18545type DeployedServicePackageHealthStateChunkList struct {
18546	// Items - The list of deployed service package health state chunks that respect the input filters in the chunk query.
18547	Items *[]DeployedServicePackageHealthStateChunk `json:"Items,omitempty"`
18548}
18549
18550// DeployedServicePackageHealthStateFilter defines matching criteria to determine whether a deployed
18551// service package should be included as a child of a deployed application in the cluster health chunk.
18552// The deployed service packages are only returned if the parent entities match a filter specified in the
18553// cluster health chunk query description. The parent deployed application and its parent application must
18554// be included in the cluster health chunk.
18555// One filter can match zero, one or multiple deployed service packages, depending on its properties.
18556type DeployedServicePackageHealthStateFilter struct {
18557	// ServiceManifestNameFilter - The name of the service manifest which identifies the deployed service packages that matches the filter.
18558	// If specified, the filter is applied only to the specified deployed service packages, if any.
18559	// If no deployed service packages with specified manifest name exist, nothing is returned in the cluster health chunk based on this filter.
18560	// If any deployed service package exists, they are included in the cluster health chunk if it respects the other filter properties.
18561	// 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.
18562	ServiceManifestNameFilter *string `json:"ServiceManifestNameFilter,omitempty"`
18563	// ServicePackageActivationIDFilter - The activation ID of a deployed service package that matches the filter.
18564	// If not specified, the filter applies to all deployed service packages that match the other parameters.
18565	// If specified, the filter matches only the deployed service package with the specified activation ID.
18566	ServicePackageActivationIDFilter *string `json:"ServicePackageActivationIdFilter,omitempty"`
18567	// 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.
18568	// 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.
18569	// 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.
18570	// The state values are flag-based enumeration, so the value could be a combination of these values obtained using bitwise 'OR' operator.
18571	// For example, if the provided value is 6, it matches deployed service packages with HealthState value of OK (2) and Warning (4).
18572	// - Default - Default value. Matches any HealthState. The value is zero.
18573	// - 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.
18574	// - Ok - Filter that matches input with HealthState value Ok. The value is 2.
18575	// - Warning - Filter that matches input with HealthState value Warning. The value is 4.
18576	// - Error - Filter that matches input with HealthState value Error. The value is 8.
18577	// - All - Filter that matches input with any HealthState value. The value is 65535.
18578	HealthStateFilter *int32 `json:"HealthStateFilter,omitempty"`
18579}
18580
18581// DeployedServicePackageInfo information about service package deployed on a Service Fabric node.
18582type DeployedServicePackageInfo struct {
18583	// Name - The name of the service package as specified in the service manifest.
18584	Name *string `json:"Name,omitempty"`
18585	// Version - The version of the service package specified in service manifest.
18586	Version *string `json:"Version,omitempty"`
18587	// 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'
18588	Status DeploymentStatus `json:"Status,omitempty"`
18589	// ServicePackageActivationID - The ActivationId of a deployed service package. If ServicePackageActivationMode specified at the time of creating the service
18590	// is 'SharedProcess' (or if it is not specified, in which case it defaults to 'SharedProcess'), then value of ServicePackageActivationId
18591	// is always an empty string.
18592	ServicePackageActivationID *string `json:"ServicePackageActivationId,omitempty"`
18593}
18594
18595// DeployedServicePackageNewHealthReportEvent deployed Service Health Report Created event.
18596type DeployedServicePackageNewHealthReportEvent struct {
18597	// ServiceManifestName - Service manifest name.
18598	ServiceManifestName *string `json:"ServiceManifestName,omitempty"`
18599	// ServicePackageInstanceID - Id of Service package instance.
18600	ServicePackageInstanceID *int64 `json:"ServicePackageInstanceId,omitempty"`
18601	// ServicePackageActivationID - Id of Service package activation.
18602	ServicePackageActivationID *string `json:"ServicePackageActivationId,omitempty"`
18603	// NodeName - The name of a Service Fabric node.
18604	NodeName *string `json:"NodeName,omitempty"`
18605	// SourceID - Id of report source.
18606	SourceID *string `json:"SourceId,omitempty"`
18607	// Property - Describes the property.
18608	Property *string `json:"Property,omitempty"`
18609	// HealthState - Describes the property health state.
18610	HealthState *string `json:"HealthState,omitempty"`
18611	// TimeToLiveMs - Time to live in milli-seconds.
18612	TimeToLiveMs *int64 `json:"TimeToLiveMs,omitempty"`
18613	// SequenceNumber - Sequence number of report.
18614	SequenceNumber *int64 `json:"SequenceNumber,omitempty"`
18615	// Description - Description of report.
18616	Description *string `json:"Description,omitempty"`
18617	// RemoveWhenExpired - Indicates the removal when it expires.
18618	RemoveWhenExpired *bool `json:"RemoveWhenExpired,omitempty"`
18619	// SourceUtcTimestamp - Source time.
18620	SourceUtcTimestamp *date.Time `json:"SourceUtcTimestamp,omitempty"`
18621	// 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.
18622	// Starting in version 6.0, hierarchical names are delimited with the "\~" character. For example, if the application name is "fabric:/myapp/app1",
18623	// the application identity would be "myapp\~app1" in 6.0+ and "myapp/app1" in previous versions.
18624	ApplicationID *string `json:"ApplicationId,omitempty"`
18625	// EventInstanceID - The identifier for the FabricEvent instance.
18626	EventInstanceID *uuid.UUID `json:"EventInstanceId,omitempty"`
18627	// Category - The category of event.
18628	Category *string `json:"Category,omitempty"`
18629	// TimeStamp - The time event was logged.
18630	TimeStamp *date.Time `json:"TimeStamp,omitempty"`
18631	// HasCorrelatedEvents - Shows there is existing related events available.
18632	HasCorrelatedEvents *bool `json:"HasCorrelatedEvents,omitempty"`
18633	// 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'
18634	Kind KindBasicFabricEvent `json:"Kind,omitempty"`
18635}
18636
18637// MarshalJSON is the custom marshaler for DeployedServicePackageNewHealthReportEvent.
18638func (dspnhre DeployedServicePackageNewHealthReportEvent) MarshalJSON() ([]byte, error) {
18639	dspnhre.Kind = KindDeployedServicePackageNewHealthReport
18640	objectMap := make(map[string]interface{})
18641	if dspnhre.ServiceManifestName != nil {
18642		objectMap["ServiceManifestName"] = dspnhre.ServiceManifestName
18643	}
18644	if dspnhre.ServicePackageInstanceID != nil {
18645		objectMap["ServicePackageInstanceId"] = dspnhre.ServicePackageInstanceID
18646	}
18647	if dspnhre.ServicePackageActivationID != nil {
18648		objectMap["ServicePackageActivationId"] = dspnhre.ServicePackageActivationID
18649	}
18650	if dspnhre.NodeName != nil {
18651		objectMap["NodeName"] = dspnhre.NodeName
18652	}
18653	if dspnhre.SourceID != nil {
18654		objectMap["SourceId"] = dspnhre.SourceID
18655	}
18656	if dspnhre.Property != nil {
18657		objectMap["Property"] = dspnhre.Property
18658	}
18659	if dspnhre.HealthState != nil {
18660		objectMap["HealthState"] = dspnhre.HealthState
18661	}
18662	if dspnhre.TimeToLiveMs != nil {
18663		objectMap["TimeToLiveMs"] = dspnhre.TimeToLiveMs
18664	}
18665	if dspnhre.SequenceNumber != nil {
18666		objectMap["SequenceNumber"] = dspnhre.SequenceNumber
18667	}
18668	if dspnhre.Description != nil {
18669		objectMap["Description"] = dspnhre.Description
18670	}
18671	if dspnhre.RemoveWhenExpired != nil {
18672		objectMap["RemoveWhenExpired"] = dspnhre.RemoveWhenExpired
18673	}
18674	if dspnhre.SourceUtcTimestamp != nil {
18675		objectMap["SourceUtcTimestamp"] = dspnhre.SourceUtcTimestamp
18676	}
18677	if dspnhre.ApplicationID != nil {
18678		objectMap["ApplicationId"] = dspnhre.ApplicationID
18679	}
18680	if dspnhre.EventInstanceID != nil {
18681		objectMap["EventInstanceId"] = dspnhre.EventInstanceID
18682	}
18683	if dspnhre.Category != nil {
18684		objectMap["Category"] = dspnhre.Category
18685	}
18686	if dspnhre.TimeStamp != nil {
18687		objectMap["TimeStamp"] = dspnhre.TimeStamp
18688	}
18689	if dspnhre.HasCorrelatedEvents != nil {
18690		objectMap["HasCorrelatedEvents"] = dspnhre.HasCorrelatedEvents
18691	}
18692	if dspnhre.Kind != "" {
18693		objectMap["Kind"] = dspnhre.Kind
18694	}
18695	return json.Marshal(objectMap)
18696}
18697
18698// AsApplicationEvent is the BasicFabricEvent implementation for DeployedServicePackageNewHealthReportEvent.
18699func (dspnhre DeployedServicePackageNewHealthReportEvent) AsApplicationEvent() (*ApplicationEvent, bool) {
18700	return nil, false
18701}
18702
18703// AsBasicApplicationEvent is the BasicFabricEvent implementation for DeployedServicePackageNewHealthReportEvent.
18704func (dspnhre DeployedServicePackageNewHealthReportEvent) AsBasicApplicationEvent() (BasicApplicationEvent, bool) {
18705	return &dspnhre, true
18706}
18707
18708// AsClusterEvent is the BasicFabricEvent implementation for DeployedServicePackageNewHealthReportEvent.
18709func (dspnhre DeployedServicePackageNewHealthReportEvent) AsClusterEvent() (*ClusterEvent, bool) {
18710	return nil, false
18711}
18712
18713// AsBasicClusterEvent is the BasicFabricEvent implementation for DeployedServicePackageNewHealthReportEvent.
18714func (dspnhre DeployedServicePackageNewHealthReportEvent) AsBasicClusterEvent() (BasicClusterEvent, bool) {
18715	return nil, false
18716}
18717
18718// AsContainerInstanceEvent is the BasicFabricEvent implementation for DeployedServicePackageNewHealthReportEvent.
18719func (dspnhre DeployedServicePackageNewHealthReportEvent) AsContainerInstanceEvent() (*ContainerInstanceEvent, bool) {
18720	return nil, false
18721}
18722
18723// AsNodeEvent is the BasicFabricEvent implementation for DeployedServicePackageNewHealthReportEvent.
18724func (dspnhre DeployedServicePackageNewHealthReportEvent) AsNodeEvent() (*NodeEvent, bool) {
18725	return nil, false
18726}
18727
18728// AsBasicNodeEvent is the BasicFabricEvent implementation for DeployedServicePackageNewHealthReportEvent.
18729func (dspnhre DeployedServicePackageNewHealthReportEvent) AsBasicNodeEvent() (BasicNodeEvent, bool) {
18730	return nil, false
18731}
18732
18733// AsPartitionAnalysisEvent is the BasicFabricEvent implementation for DeployedServicePackageNewHealthReportEvent.
18734func (dspnhre DeployedServicePackageNewHealthReportEvent) AsPartitionAnalysisEvent() (*PartitionAnalysisEvent, bool) {
18735	return nil, false
18736}
18737
18738// AsBasicPartitionAnalysisEvent is the BasicFabricEvent implementation for DeployedServicePackageNewHealthReportEvent.
18739func (dspnhre DeployedServicePackageNewHealthReportEvent) AsBasicPartitionAnalysisEvent() (BasicPartitionAnalysisEvent, bool) {
18740	return nil, false
18741}
18742
18743// AsPartitionEvent is the BasicFabricEvent implementation for DeployedServicePackageNewHealthReportEvent.
18744func (dspnhre DeployedServicePackageNewHealthReportEvent) AsPartitionEvent() (*PartitionEvent, bool) {
18745	return nil, false
18746}
18747
18748// AsBasicPartitionEvent is the BasicFabricEvent implementation for DeployedServicePackageNewHealthReportEvent.
18749func (dspnhre DeployedServicePackageNewHealthReportEvent) AsBasicPartitionEvent() (BasicPartitionEvent, bool) {
18750	return nil, false
18751}
18752
18753// AsReplicaEvent is the BasicFabricEvent implementation for DeployedServicePackageNewHealthReportEvent.
18754func (dspnhre DeployedServicePackageNewHealthReportEvent) AsReplicaEvent() (*ReplicaEvent, bool) {
18755	return nil, false
18756}
18757
18758// AsBasicReplicaEvent is the BasicFabricEvent implementation for DeployedServicePackageNewHealthReportEvent.
18759func (dspnhre DeployedServicePackageNewHealthReportEvent) AsBasicReplicaEvent() (BasicReplicaEvent, bool) {
18760	return nil, false
18761}
18762
18763// AsServiceEvent is the BasicFabricEvent implementation for DeployedServicePackageNewHealthReportEvent.
18764func (dspnhre DeployedServicePackageNewHealthReportEvent) AsServiceEvent() (*ServiceEvent, bool) {
18765	return nil, false
18766}
18767
18768// AsBasicServiceEvent is the BasicFabricEvent implementation for DeployedServicePackageNewHealthReportEvent.
18769func (dspnhre DeployedServicePackageNewHealthReportEvent) AsBasicServiceEvent() (BasicServiceEvent, bool) {
18770	return nil, false
18771}
18772
18773// AsApplicationCreatedEvent is the BasicFabricEvent implementation for DeployedServicePackageNewHealthReportEvent.
18774func (dspnhre DeployedServicePackageNewHealthReportEvent) AsApplicationCreatedEvent() (*ApplicationCreatedEvent, bool) {
18775	return nil, false
18776}
18777
18778// AsApplicationDeletedEvent is the BasicFabricEvent implementation for DeployedServicePackageNewHealthReportEvent.
18779func (dspnhre DeployedServicePackageNewHealthReportEvent) AsApplicationDeletedEvent() (*ApplicationDeletedEvent, bool) {
18780	return nil, false
18781}
18782
18783// AsApplicationNewHealthReportEvent is the BasicFabricEvent implementation for DeployedServicePackageNewHealthReportEvent.
18784func (dspnhre DeployedServicePackageNewHealthReportEvent) AsApplicationNewHealthReportEvent() (*ApplicationNewHealthReportEvent, bool) {
18785	return nil, false
18786}
18787
18788// AsApplicationHealthReportExpiredEvent is the BasicFabricEvent implementation for DeployedServicePackageNewHealthReportEvent.
18789func (dspnhre DeployedServicePackageNewHealthReportEvent) AsApplicationHealthReportExpiredEvent() (*ApplicationHealthReportExpiredEvent, bool) {
18790	return nil, false
18791}
18792
18793// AsApplicationUpgradeCompletedEvent is the BasicFabricEvent implementation for DeployedServicePackageNewHealthReportEvent.
18794func (dspnhre DeployedServicePackageNewHealthReportEvent) AsApplicationUpgradeCompletedEvent() (*ApplicationUpgradeCompletedEvent, bool) {
18795	return nil, false
18796}
18797
18798// AsApplicationUpgradeDomainCompletedEvent is the BasicFabricEvent implementation for DeployedServicePackageNewHealthReportEvent.
18799func (dspnhre DeployedServicePackageNewHealthReportEvent) AsApplicationUpgradeDomainCompletedEvent() (*ApplicationUpgradeDomainCompletedEvent, bool) {
18800	return nil, false
18801}
18802
18803// AsApplicationUpgradeRollbackCompletedEvent is the BasicFabricEvent implementation for DeployedServicePackageNewHealthReportEvent.
18804func (dspnhre DeployedServicePackageNewHealthReportEvent) AsApplicationUpgradeRollbackCompletedEvent() (*ApplicationUpgradeRollbackCompletedEvent, bool) {
18805	return nil, false
18806}
18807
18808// AsApplicationUpgradeRollbackStartedEvent is the BasicFabricEvent implementation for DeployedServicePackageNewHealthReportEvent.
18809func (dspnhre DeployedServicePackageNewHealthReportEvent) AsApplicationUpgradeRollbackStartedEvent() (*ApplicationUpgradeRollbackStartedEvent, bool) {
18810	return nil, false
18811}
18812
18813// AsApplicationUpgradeStartedEvent is the BasicFabricEvent implementation for DeployedServicePackageNewHealthReportEvent.
18814func (dspnhre DeployedServicePackageNewHealthReportEvent) AsApplicationUpgradeStartedEvent() (*ApplicationUpgradeStartedEvent, bool) {
18815	return nil, false
18816}
18817
18818// AsDeployedApplicationNewHealthReportEvent is the BasicFabricEvent implementation for DeployedServicePackageNewHealthReportEvent.
18819func (dspnhre DeployedServicePackageNewHealthReportEvent) AsDeployedApplicationNewHealthReportEvent() (*DeployedApplicationNewHealthReportEvent, bool) {
18820	return nil, false
18821}
18822
18823// AsDeployedApplicationHealthReportExpiredEvent is the BasicFabricEvent implementation for DeployedServicePackageNewHealthReportEvent.
18824func (dspnhre DeployedServicePackageNewHealthReportEvent) AsDeployedApplicationHealthReportExpiredEvent() (*DeployedApplicationHealthReportExpiredEvent, bool) {
18825	return nil, false
18826}
18827
18828// AsApplicationProcessExitedEvent is the BasicFabricEvent implementation for DeployedServicePackageNewHealthReportEvent.
18829func (dspnhre DeployedServicePackageNewHealthReportEvent) AsApplicationProcessExitedEvent() (*ApplicationProcessExitedEvent, bool) {
18830	return nil, false
18831}
18832
18833// AsApplicationContainerInstanceExitedEvent is the BasicFabricEvent implementation for DeployedServicePackageNewHealthReportEvent.
18834func (dspnhre DeployedServicePackageNewHealthReportEvent) AsApplicationContainerInstanceExitedEvent() (*ApplicationContainerInstanceExitedEvent, bool) {
18835	return nil, false
18836}
18837
18838// AsNodeAbortedEvent is the BasicFabricEvent implementation for DeployedServicePackageNewHealthReportEvent.
18839func (dspnhre DeployedServicePackageNewHealthReportEvent) AsNodeAbortedEvent() (*NodeAbortedEvent, bool) {
18840	return nil, false
18841}
18842
18843// AsNodeAddedToClusterEvent is the BasicFabricEvent implementation for DeployedServicePackageNewHealthReportEvent.
18844func (dspnhre DeployedServicePackageNewHealthReportEvent) AsNodeAddedToClusterEvent() (*NodeAddedToClusterEvent, bool) {
18845	return nil, false
18846}
18847
18848// AsNodeClosedEvent is the BasicFabricEvent implementation for DeployedServicePackageNewHealthReportEvent.
18849func (dspnhre DeployedServicePackageNewHealthReportEvent) AsNodeClosedEvent() (*NodeClosedEvent, bool) {
18850	return nil, false
18851}
18852
18853// AsNodeDeactivateCompletedEvent is the BasicFabricEvent implementation for DeployedServicePackageNewHealthReportEvent.
18854func (dspnhre DeployedServicePackageNewHealthReportEvent) AsNodeDeactivateCompletedEvent() (*NodeDeactivateCompletedEvent, bool) {
18855	return nil, false
18856}
18857
18858// AsNodeDeactivateStartedEvent is the BasicFabricEvent implementation for DeployedServicePackageNewHealthReportEvent.
18859func (dspnhre DeployedServicePackageNewHealthReportEvent) AsNodeDeactivateStartedEvent() (*NodeDeactivateStartedEvent, bool) {
18860	return nil, false
18861}
18862
18863// AsNodeDownEvent is the BasicFabricEvent implementation for DeployedServicePackageNewHealthReportEvent.
18864func (dspnhre DeployedServicePackageNewHealthReportEvent) AsNodeDownEvent() (*NodeDownEvent, bool) {
18865	return nil, false
18866}
18867
18868// AsNodeNewHealthReportEvent is the BasicFabricEvent implementation for DeployedServicePackageNewHealthReportEvent.
18869func (dspnhre DeployedServicePackageNewHealthReportEvent) AsNodeNewHealthReportEvent() (*NodeNewHealthReportEvent, bool) {
18870	return nil, false
18871}
18872
18873// AsNodeHealthReportExpiredEvent is the BasicFabricEvent implementation for DeployedServicePackageNewHealthReportEvent.
18874func (dspnhre DeployedServicePackageNewHealthReportEvent) AsNodeHealthReportExpiredEvent() (*NodeHealthReportExpiredEvent, bool) {
18875	return nil, false
18876}
18877
18878// AsNodeOpenSucceededEvent is the BasicFabricEvent implementation for DeployedServicePackageNewHealthReportEvent.
18879func (dspnhre DeployedServicePackageNewHealthReportEvent) AsNodeOpenSucceededEvent() (*NodeOpenSucceededEvent, bool) {
18880	return nil, false
18881}
18882
18883// AsNodeOpenFailedEvent is the BasicFabricEvent implementation for DeployedServicePackageNewHealthReportEvent.
18884func (dspnhre DeployedServicePackageNewHealthReportEvent) AsNodeOpenFailedEvent() (*NodeOpenFailedEvent, bool) {
18885	return nil, false
18886}
18887
18888// AsNodeRemovedFromClusterEvent is the BasicFabricEvent implementation for DeployedServicePackageNewHealthReportEvent.
18889func (dspnhre DeployedServicePackageNewHealthReportEvent) AsNodeRemovedFromClusterEvent() (*NodeRemovedFromClusterEvent, bool) {
18890	return nil, false
18891}
18892
18893// AsNodeUpEvent is the BasicFabricEvent implementation for DeployedServicePackageNewHealthReportEvent.
18894func (dspnhre DeployedServicePackageNewHealthReportEvent) AsNodeUpEvent() (*NodeUpEvent, bool) {
18895	return nil, false
18896}
18897
18898// AsPartitionNewHealthReportEvent is the BasicFabricEvent implementation for DeployedServicePackageNewHealthReportEvent.
18899func (dspnhre DeployedServicePackageNewHealthReportEvent) AsPartitionNewHealthReportEvent() (*PartitionNewHealthReportEvent, bool) {
18900	return nil, false
18901}
18902
18903// AsPartitionHealthReportExpiredEvent is the BasicFabricEvent implementation for DeployedServicePackageNewHealthReportEvent.
18904func (dspnhre DeployedServicePackageNewHealthReportEvent) AsPartitionHealthReportExpiredEvent() (*PartitionHealthReportExpiredEvent, bool) {
18905	return nil, false
18906}
18907
18908// AsPartitionReconfiguredEvent is the BasicFabricEvent implementation for DeployedServicePackageNewHealthReportEvent.
18909func (dspnhre DeployedServicePackageNewHealthReportEvent) AsPartitionReconfiguredEvent() (*PartitionReconfiguredEvent, bool) {
18910	return nil, false
18911}
18912
18913// AsPartitionPrimaryMoveAnalysisEvent is the BasicFabricEvent implementation for DeployedServicePackageNewHealthReportEvent.
18914func (dspnhre DeployedServicePackageNewHealthReportEvent) AsPartitionPrimaryMoveAnalysisEvent() (*PartitionPrimaryMoveAnalysisEvent, bool) {
18915	return nil, false
18916}
18917
18918// AsServiceCreatedEvent is the BasicFabricEvent implementation for DeployedServicePackageNewHealthReportEvent.
18919func (dspnhre DeployedServicePackageNewHealthReportEvent) AsServiceCreatedEvent() (*ServiceCreatedEvent, bool) {
18920	return nil, false
18921}
18922
18923// AsServiceDeletedEvent is the BasicFabricEvent implementation for DeployedServicePackageNewHealthReportEvent.
18924func (dspnhre DeployedServicePackageNewHealthReportEvent) AsServiceDeletedEvent() (*ServiceDeletedEvent, bool) {
18925	return nil, false
18926}
18927
18928// AsServiceNewHealthReportEvent is the BasicFabricEvent implementation for DeployedServicePackageNewHealthReportEvent.
18929func (dspnhre DeployedServicePackageNewHealthReportEvent) AsServiceNewHealthReportEvent() (*ServiceNewHealthReportEvent, bool) {
18930	return nil, false
18931}
18932
18933// AsServiceHealthReportExpiredEvent is the BasicFabricEvent implementation for DeployedServicePackageNewHealthReportEvent.
18934func (dspnhre DeployedServicePackageNewHealthReportEvent) AsServiceHealthReportExpiredEvent() (*ServiceHealthReportExpiredEvent, bool) {
18935	return nil, false
18936}
18937
18938// AsDeployedServicePackageNewHealthReportEvent is the BasicFabricEvent implementation for DeployedServicePackageNewHealthReportEvent.
18939func (dspnhre DeployedServicePackageNewHealthReportEvent) AsDeployedServicePackageNewHealthReportEvent() (*DeployedServicePackageNewHealthReportEvent, bool) {
18940	return &dspnhre, true
18941}
18942
18943// AsDeployedServicePackageHealthReportExpiredEvent is the BasicFabricEvent implementation for DeployedServicePackageNewHealthReportEvent.
18944func (dspnhre DeployedServicePackageNewHealthReportEvent) AsDeployedServicePackageHealthReportExpiredEvent() (*DeployedServicePackageHealthReportExpiredEvent, bool) {
18945	return nil, false
18946}
18947
18948// AsStatefulReplicaNewHealthReportEvent is the BasicFabricEvent implementation for DeployedServicePackageNewHealthReportEvent.
18949func (dspnhre DeployedServicePackageNewHealthReportEvent) AsStatefulReplicaNewHealthReportEvent() (*StatefulReplicaNewHealthReportEvent, bool) {
18950	return nil, false
18951}
18952
18953// AsStatefulReplicaHealthReportExpiredEvent is the BasicFabricEvent implementation for DeployedServicePackageNewHealthReportEvent.
18954func (dspnhre DeployedServicePackageNewHealthReportEvent) AsStatefulReplicaHealthReportExpiredEvent() (*StatefulReplicaHealthReportExpiredEvent, bool) {
18955	return nil, false
18956}
18957
18958// AsStatelessReplicaNewHealthReportEvent is the BasicFabricEvent implementation for DeployedServicePackageNewHealthReportEvent.
18959func (dspnhre DeployedServicePackageNewHealthReportEvent) AsStatelessReplicaNewHealthReportEvent() (*StatelessReplicaNewHealthReportEvent, bool) {
18960	return nil, false
18961}
18962
18963// AsStatelessReplicaHealthReportExpiredEvent is the BasicFabricEvent implementation for DeployedServicePackageNewHealthReportEvent.
18964func (dspnhre DeployedServicePackageNewHealthReportEvent) AsStatelessReplicaHealthReportExpiredEvent() (*StatelessReplicaHealthReportExpiredEvent, bool) {
18965	return nil, false
18966}
18967
18968// AsClusterNewHealthReportEvent is the BasicFabricEvent implementation for DeployedServicePackageNewHealthReportEvent.
18969func (dspnhre DeployedServicePackageNewHealthReportEvent) AsClusterNewHealthReportEvent() (*ClusterNewHealthReportEvent, bool) {
18970	return nil, false
18971}
18972
18973// AsClusterHealthReportExpiredEvent is the BasicFabricEvent implementation for DeployedServicePackageNewHealthReportEvent.
18974func (dspnhre DeployedServicePackageNewHealthReportEvent) AsClusterHealthReportExpiredEvent() (*ClusterHealthReportExpiredEvent, bool) {
18975	return nil, false
18976}
18977
18978// AsClusterUpgradeCompletedEvent is the BasicFabricEvent implementation for DeployedServicePackageNewHealthReportEvent.
18979func (dspnhre DeployedServicePackageNewHealthReportEvent) AsClusterUpgradeCompletedEvent() (*ClusterUpgradeCompletedEvent, bool) {
18980	return nil, false
18981}
18982
18983// AsClusterUpgradeDomainCompletedEvent is the BasicFabricEvent implementation for DeployedServicePackageNewHealthReportEvent.
18984func (dspnhre DeployedServicePackageNewHealthReportEvent) AsClusterUpgradeDomainCompletedEvent() (*ClusterUpgradeDomainCompletedEvent, bool) {
18985	return nil, false
18986}
18987
18988// AsClusterUpgradeRollbackCompletedEvent is the BasicFabricEvent implementation for DeployedServicePackageNewHealthReportEvent.
18989func (dspnhre DeployedServicePackageNewHealthReportEvent) AsClusterUpgradeRollbackCompletedEvent() (*ClusterUpgradeRollbackCompletedEvent, bool) {
18990	return nil, false
18991}
18992
18993// AsClusterUpgradeRollbackStartedEvent is the BasicFabricEvent implementation for DeployedServicePackageNewHealthReportEvent.
18994func (dspnhre DeployedServicePackageNewHealthReportEvent) AsClusterUpgradeRollbackStartedEvent() (*ClusterUpgradeRollbackStartedEvent, bool) {
18995	return nil, false
18996}
18997
18998// AsClusterUpgradeStartedEvent is the BasicFabricEvent implementation for DeployedServicePackageNewHealthReportEvent.
18999func (dspnhre DeployedServicePackageNewHealthReportEvent) AsClusterUpgradeStartedEvent() (*ClusterUpgradeStartedEvent, bool) {
19000	return nil, false
19001}
19002
19003// AsChaosStoppedEvent is the BasicFabricEvent implementation for DeployedServicePackageNewHealthReportEvent.
19004func (dspnhre DeployedServicePackageNewHealthReportEvent) AsChaosStoppedEvent() (*ChaosStoppedEvent, bool) {
19005	return nil, false
19006}
19007
19008// AsChaosStartedEvent is the BasicFabricEvent implementation for DeployedServicePackageNewHealthReportEvent.
19009func (dspnhre DeployedServicePackageNewHealthReportEvent) AsChaosStartedEvent() (*ChaosStartedEvent, bool) {
19010	return nil, false
19011}
19012
19013// AsChaosCodePackageRestartScheduledEvent is the BasicFabricEvent implementation for DeployedServicePackageNewHealthReportEvent.
19014func (dspnhre DeployedServicePackageNewHealthReportEvent) AsChaosCodePackageRestartScheduledEvent() (*ChaosCodePackageRestartScheduledEvent, bool) {
19015	return nil, false
19016}
19017
19018// AsChaosReplicaRemovalScheduledEvent is the BasicFabricEvent implementation for DeployedServicePackageNewHealthReportEvent.
19019func (dspnhre DeployedServicePackageNewHealthReportEvent) AsChaosReplicaRemovalScheduledEvent() (*ChaosReplicaRemovalScheduledEvent, bool) {
19020	return nil, false
19021}
19022
19023// AsChaosPartitionSecondaryMoveScheduledEvent is the BasicFabricEvent implementation for DeployedServicePackageNewHealthReportEvent.
19024func (dspnhre DeployedServicePackageNewHealthReportEvent) AsChaosPartitionSecondaryMoveScheduledEvent() (*ChaosPartitionSecondaryMoveScheduledEvent, bool) {
19025	return nil, false
19026}
19027
19028// AsChaosPartitionPrimaryMoveScheduledEvent is the BasicFabricEvent implementation for DeployedServicePackageNewHealthReportEvent.
19029func (dspnhre DeployedServicePackageNewHealthReportEvent) AsChaosPartitionPrimaryMoveScheduledEvent() (*ChaosPartitionPrimaryMoveScheduledEvent, bool) {
19030	return nil, false
19031}
19032
19033// AsChaosReplicaRestartScheduledEvent is the BasicFabricEvent implementation for DeployedServicePackageNewHealthReportEvent.
19034func (dspnhre DeployedServicePackageNewHealthReportEvent) AsChaosReplicaRestartScheduledEvent() (*ChaosReplicaRestartScheduledEvent, bool) {
19035	return nil, false
19036}
19037
19038// AsChaosNodeRestartScheduledEvent is the BasicFabricEvent implementation for DeployedServicePackageNewHealthReportEvent.
19039func (dspnhre DeployedServicePackageNewHealthReportEvent) AsChaosNodeRestartScheduledEvent() (*ChaosNodeRestartScheduledEvent, bool) {
19040	return nil, false
19041}
19042
19043// AsFabricEvent is the BasicFabricEvent implementation for DeployedServicePackageNewHealthReportEvent.
19044func (dspnhre DeployedServicePackageNewHealthReportEvent) AsFabricEvent() (*FabricEvent, bool) {
19045	return nil, false
19046}
19047
19048// AsBasicFabricEvent is the BasicFabricEvent implementation for DeployedServicePackageNewHealthReportEvent.
19049func (dspnhre DeployedServicePackageNewHealthReportEvent) AsBasicFabricEvent() (BasicFabricEvent, bool) {
19050	return &dspnhre, true
19051}
19052
19053// DeployedServicePackagesHealthEvaluation represents health evaluation for deployed service packages,
19054// containing health evaluations for each unhealthy deployed service package that impacted current
19055// aggregated health state. Can be returned when evaluating deployed application health and the aggregated
19056// health state is either Error or Warning.
19057type DeployedServicePackagesHealthEvaluation struct {
19058	// TotalCount - Total number of deployed service packages of the deployed application in the health store.
19059	TotalCount *int64 `json:"TotalCount,omitempty"`
19060	// UnhealthyEvaluations - List of unhealthy evaluations that led to the aggregated health state. Includes all the unhealthy DeployedServicePackageHealthEvaluation that impacted the aggregated health.
19061	UnhealthyEvaluations *[]HealthEvaluationWrapper `json:"UnhealthyEvaluations,omitempty"`
19062	// 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'
19063	AggregatedHealthState HealthState `json:"AggregatedHealthState,omitempty"`
19064	// Description - Description of the health evaluation, which represents a summary of the evaluation process.
19065	Description *string `json:"Description,omitempty"`
19066	// 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'
19067	Kind Kind `json:"Kind,omitempty"`
19068}
19069
19070// MarshalJSON is the custom marshaler for DeployedServicePackagesHealthEvaluation.
19071func (dsphe DeployedServicePackagesHealthEvaluation) MarshalJSON() ([]byte, error) {
19072	dsphe.Kind = KindDeployedServicePackages
19073	objectMap := make(map[string]interface{})
19074	if dsphe.TotalCount != nil {
19075		objectMap["TotalCount"] = dsphe.TotalCount
19076	}
19077	if dsphe.UnhealthyEvaluations != nil {
19078		objectMap["UnhealthyEvaluations"] = dsphe.UnhealthyEvaluations
19079	}
19080	if dsphe.AggregatedHealthState != "" {
19081		objectMap["AggregatedHealthState"] = dsphe.AggregatedHealthState
19082	}
19083	if dsphe.Description != nil {
19084		objectMap["Description"] = dsphe.Description
19085	}
19086	if dsphe.Kind != "" {
19087		objectMap["Kind"] = dsphe.Kind
19088	}
19089	return json.Marshal(objectMap)
19090}
19091
19092// AsApplicationHealthEvaluation is the BasicHealthEvaluation implementation for DeployedServicePackagesHealthEvaluation.
19093func (dsphe DeployedServicePackagesHealthEvaluation) AsApplicationHealthEvaluation() (*ApplicationHealthEvaluation, bool) {
19094	return nil, false
19095}
19096
19097// AsApplicationsHealthEvaluation is the BasicHealthEvaluation implementation for DeployedServicePackagesHealthEvaluation.
19098func (dsphe DeployedServicePackagesHealthEvaluation) AsApplicationsHealthEvaluation() (*ApplicationsHealthEvaluation, bool) {
19099	return nil, false
19100}
19101
19102// AsApplicationTypeApplicationsHealthEvaluation is the BasicHealthEvaluation implementation for DeployedServicePackagesHealthEvaluation.
19103func (dsphe DeployedServicePackagesHealthEvaluation) AsApplicationTypeApplicationsHealthEvaluation() (*ApplicationTypeApplicationsHealthEvaluation, bool) {
19104	return nil, false
19105}
19106
19107// AsDeltaNodesCheckHealthEvaluation is the BasicHealthEvaluation implementation for DeployedServicePackagesHealthEvaluation.
19108func (dsphe DeployedServicePackagesHealthEvaluation) AsDeltaNodesCheckHealthEvaluation() (*DeltaNodesCheckHealthEvaluation, bool) {
19109	return nil, false
19110}
19111
19112// AsDeployedApplicationHealthEvaluation is the BasicHealthEvaluation implementation for DeployedServicePackagesHealthEvaluation.
19113func (dsphe DeployedServicePackagesHealthEvaluation) AsDeployedApplicationHealthEvaluation() (*DeployedApplicationHealthEvaluation, bool) {
19114	return nil, false
19115}
19116
19117// AsDeployedApplicationsHealthEvaluation is the BasicHealthEvaluation implementation for DeployedServicePackagesHealthEvaluation.
19118func (dsphe DeployedServicePackagesHealthEvaluation) AsDeployedApplicationsHealthEvaluation() (*DeployedApplicationsHealthEvaluation, bool) {
19119	return nil, false
19120}
19121
19122// AsDeployedServicePackageHealthEvaluation is the BasicHealthEvaluation implementation for DeployedServicePackagesHealthEvaluation.
19123func (dsphe DeployedServicePackagesHealthEvaluation) AsDeployedServicePackageHealthEvaluation() (*DeployedServicePackageHealthEvaluation, bool) {
19124	return nil, false
19125}
19126
19127// AsDeployedServicePackagesHealthEvaluation is the BasicHealthEvaluation implementation for DeployedServicePackagesHealthEvaluation.
19128func (dsphe DeployedServicePackagesHealthEvaluation) AsDeployedServicePackagesHealthEvaluation() (*DeployedServicePackagesHealthEvaluation, bool) {
19129	return &dsphe, true
19130}
19131
19132// AsEventHealthEvaluation is the BasicHealthEvaluation implementation for DeployedServicePackagesHealthEvaluation.
19133func (dsphe DeployedServicePackagesHealthEvaluation) AsEventHealthEvaluation() (*EventHealthEvaluation, bool) {
19134	return nil, false
19135}
19136
19137// AsNodeHealthEvaluation is the BasicHealthEvaluation implementation for DeployedServicePackagesHealthEvaluation.
19138func (dsphe DeployedServicePackagesHealthEvaluation) AsNodeHealthEvaluation() (*NodeHealthEvaluation, bool) {
19139	return nil, false
19140}
19141
19142// AsNodesHealthEvaluation is the BasicHealthEvaluation implementation for DeployedServicePackagesHealthEvaluation.
19143func (dsphe DeployedServicePackagesHealthEvaluation) AsNodesHealthEvaluation() (*NodesHealthEvaluation, bool) {
19144	return nil, false
19145}
19146
19147// AsPartitionHealthEvaluation is the BasicHealthEvaluation implementation for DeployedServicePackagesHealthEvaluation.
19148func (dsphe DeployedServicePackagesHealthEvaluation) AsPartitionHealthEvaluation() (*PartitionHealthEvaluation, bool) {
19149	return nil, false
19150}
19151
19152// AsPartitionsHealthEvaluation is the BasicHealthEvaluation implementation for DeployedServicePackagesHealthEvaluation.
19153func (dsphe DeployedServicePackagesHealthEvaluation) AsPartitionsHealthEvaluation() (*PartitionsHealthEvaluation, bool) {
19154	return nil, false
19155}
19156
19157// AsReplicaHealthEvaluation is the BasicHealthEvaluation implementation for DeployedServicePackagesHealthEvaluation.
19158func (dsphe DeployedServicePackagesHealthEvaluation) AsReplicaHealthEvaluation() (*ReplicaHealthEvaluation, bool) {
19159	return nil, false
19160}
19161
19162// AsReplicasHealthEvaluation is the BasicHealthEvaluation implementation for DeployedServicePackagesHealthEvaluation.
19163func (dsphe DeployedServicePackagesHealthEvaluation) AsReplicasHealthEvaluation() (*ReplicasHealthEvaluation, bool) {
19164	return nil, false
19165}
19166
19167// AsServiceHealthEvaluation is the BasicHealthEvaluation implementation for DeployedServicePackagesHealthEvaluation.
19168func (dsphe DeployedServicePackagesHealthEvaluation) AsServiceHealthEvaluation() (*ServiceHealthEvaluation, bool) {
19169	return nil, false
19170}
19171
19172// AsServicesHealthEvaluation is the BasicHealthEvaluation implementation for DeployedServicePackagesHealthEvaluation.
19173func (dsphe DeployedServicePackagesHealthEvaluation) AsServicesHealthEvaluation() (*ServicesHealthEvaluation, bool) {
19174	return nil, false
19175}
19176
19177// AsSystemApplicationHealthEvaluation is the BasicHealthEvaluation implementation for DeployedServicePackagesHealthEvaluation.
19178func (dsphe DeployedServicePackagesHealthEvaluation) AsSystemApplicationHealthEvaluation() (*SystemApplicationHealthEvaluation, bool) {
19179	return nil, false
19180}
19181
19182// AsUpgradeDomainDeltaNodesCheckHealthEvaluation is the BasicHealthEvaluation implementation for DeployedServicePackagesHealthEvaluation.
19183func (dsphe DeployedServicePackagesHealthEvaluation) AsUpgradeDomainDeltaNodesCheckHealthEvaluation() (*UpgradeDomainDeltaNodesCheckHealthEvaluation, bool) {
19184	return nil, false
19185}
19186
19187// AsUpgradeDomainNodesHealthEvaluation is the BasicHealthEvaluation implementation for DeployedServicePackagesHealthEvaluation.
19188func (dsphe DeployedServicePackagesHealthEvaluation) AsUpgradeDomainNodesHealthEvaluation() (*UpgradeDomainNodesHealthEvaluation, bool) {
19189	return nil, false
19190}
19191
19192// AsHealthEvaluation is the BasicHealthEvaluation implementation for DeployedServicePackagesHealthEvaluation.
19193func (dsphe DeployedServicePackagesHealthEvaluation) AsHealthEvaluation() (*HealthEvaluation, bool) {
19194	return nil, false
19195}
19196
19197// AsBasicHealthEvaluation is the BasicHealthEvaluation implementation for DeployedServicePackagesHealthEvaluation.
19198func (dsphe DeployedServicePackagesHealthEvaluation) AsBasicHealthEvaluation() (BasicHealthEvaluation, bool) {
19199	return &dsphe, true
19200}
19201
19202// BasicDeployedServiceReplicaDetailInfo information about a Service Fabric service replica deployed on a node.
19203type BasicDeployedServiceReplicaDetailInfo interface {
19204	AsDeployedStatefulServiceReplicaDetailInfo() (*DeployedStatefulServiceReplicaDetailInfo, bool)
19205	AsDeployedStatelessServiceInstanceDetailInfo() (*DeployedStatelessServiceInstanceDetailInfo, bool)
19206	AsDeployedServiceReplicaDetailInfo() (*DeployedServiceReplicaDetailInfo, bool)
19207}
19208
19209// DeployedServiceReplicaDetailInfo information about a Service Fabric service replica deployed on a node.
19210type DeployedServiceReplicaDetailInfo struct {
19211	autorest.Response `json:"-"`
19212	// ServiceName - Full hierarchical name of the service in URI format starting with `fabric:`.
19213	ServiceName *string `json:"ServiceName,omitempty"`
19214	// 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.
19215	PartitionID *uuid.UUID `json:"PartitionId,omitempty"`
19216	// 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'
19217	CurrentServiceOperation ServiceOperationName `json:"CurrentServiceOperation,omitempty"`
19218	// CurrentServiceOperationStartTimeUtc - The start time of the current service operation in UTC format.
19219	CurrentServiceOperationStartTimeUtc *date.Time `json:"CurrentServiceOperationStartTimeUtc,omitempty"`
19220	// ReportedLoad - List of load reported by replica.
19221	ReportedLoad *[]LoadMetricReportInfo `json:"ReportedLoad,omitempty"`
19222	// ServiceKind - Possible values include: 'ServiceKindDeployedServiceReplicaDetailInfo', 'ServiceKindStateful1', 'ServiceKindStateless1'
19223	ServiceKind ServiceKindBasicDeployedServiceReplicaDetailInfo `json:"ServiceKind,omitempty"`
19224}
19225
19226func unmarshalBasicDeployedServiceReplicaDetailInfo(body []byte) (BasicDeployedServiceReplicaDetailInfo, error) {
19227	var m map[string]interface{}
19228	err := json.Unmarshal(body, &m)
19229	if err != nil {
19230		return nil, err
19231	}
19232
19233	switch m["ServiceKind"] {
19234	case string(ServiceKindStateful1):
19235		var dssrdi DeployedStatefulServiceReplicaDetailInfo
19236		err := json.Unmarshal(body, &dssrdi)
19237		return dssrdi, err
19238	case string(ServiceKindStateless1):
19239		var dssidi DeployedStatelessServiceInstanceDetailInfo
19240		err := json.Unmarshal(body, &dssidi)
19241		return dssidi, err
19242	default:
19243		var dsrdi DeployedServiceReplicaDetailInfo
19244		err := json.Unmarshal(body, &dsrdi)
19245		return dsrdi, err
19246	}
19247}
19248func unmarshalBasicDeployedServiceReplicaDetailInfoArray(body []byte) ([]BasicDeployedServiceReplicaDetailInfo, error) {
19249	var rawMessages []*json.RawMessage
19250	err := json.Unmarshal(body, &rawMessages)
19251	if err != nil {
19252		return nil, err
19253	}
19254
19255	dsrdiArray := make([]BasicDeployedServiceReplicaDetailInfo, len(rawMessages))
19256
19257	for index, rawMessage := range rawMessages {
19258		dsrdi, err := unmarshalBasicDeployedServiceReplicaDetailInfo(*rawMessage)
19259		if err != nil {
19260			return nil, err
19261		}
19262		dsrdiArray[index] = dsrdi
19263	}
19264	return dsrdiArray, nil
19265}
19266
19267// MarshalJSON is the custom marshaler for DeployedServiceReplicaDetailInfo.
19268func (dsrdi DeployedServiceReplicaDetailInfo) MarshalJSON() ([]byte, error) {
19269	dsrdi.ServiceKind = ServiceKindDeployedServiceReplicaDetailInfo
19270	objectMap := make(map[string]interface{})
19271	if dsrdi.ServiceName != nil {
19272		objectMap["ServiceName"] = dsrdi.ServiceName
19273	}
19274	if dsrdi.PartitionID != nil {
19275		objectMap["PartitionId"] = dsrdi.PartitionID
19276	}
19277	if dsrdi.CurrentServiceOperation != "" {
19278		objectMap["CurrentServiceOperation"] = dsrdi.CurrentServiceOperation
19279	}
19280	if dsrdi.CurrentServiceOperationStartTimeUtc != nil {
19281		objectMap["CurrentServiceOperationStartTimeUtc"] = dsrdi.CurrentServiceOperationStartTimeUtc
19282	}
19283	if dsrdi.ReportedLoad != nil {
19284		objectMap["ReportedLoad"] = dsrdi.ReportedLoad
19285	}
19286	if dsrdi.ServiceKind != "" {
19287		objectMap["ServiceKind"] = dsrdi.ServiceKind
19288	}
19289	return json.Marshal(objectMap)
19290}
19291
19292// AsDeployedStatefulServiceReplicaDetailInfo is the BasicDeployedServiceReplicaDetailInfo implementation for DeployedServiceReplicaDetailInfo.
19293func (dsrdi DeployedServiceReplicaDetailInfo) AsDeployedStatefulServiceReplicaDetailInfo() (*DeployedStatefulServiceReplicaDetailInfo, bool) {
19294	return nil, false
19295}
19296
19297// AsDeployedStatelessServiceInstanceDetailInfo is the BasicDeployedServiceReplicaDetailInfo implementation for DeployedServiceReplicaDetailInfo.
19298func (dsrdi DeployedServiceReplicaDetailInfo) AsDeployedStatelessServiceInstanceDetailInfo() (*DeployedStatelessServiceInstanceDetailInfo, bool) {
19299	return nil, false
19300}
19301
19302// AsDeployedServiceReplicaDetailInfo is the BasicDeployedServiceReplicaDetailInfo implementation for DeployedServiceReplicaDetailInfo.
19303func (dsrdi DeployedServiceReplicaDetailInfo) AsDeployedServiceReplicaDetailInfo() (*DeployedServiceReplicaDetailInfo, bool) {
19304	return &dsrdi, true
19305}
19306
19307// AsBasicDeployedServiceReplicaDetailInfo is the BasicDeployedServiceReplicaDetailInfo implementation for DeployedServiceReplicaDetailInfo.
19308func (dsrdi DeployedServiceReplicaDetailInfo) AsBasicDeployedServiceReplicaDetailInfo() (BasicDeployedServiceReplicaDetailInfo, bool) {
19309	return &dsrdi, true
19310}
19311
19312// DeployedServiceReplicaDetailInfoModel ...
19313type DeployedServiceReplicaDetailInfoModel struct {
19314	autorest.Response `json:"-"`
19315	Value             BasicDeployedServiceReplicaDetailInfo `json:"value,omitempty"`
19316}
19317
19318// UnmarshalJSON is the custom unmarshaler for DeployedServiceReplicaDetailInfoModel struct.
19319func (dsrdim *DeployedServiceReplicaDetailInfoModel) UnmarshalJSON(body []byte) error {
19320	dsrdi, err := unmarshalBasicDeployedServiceReplicaDetailInfo(body)
19321	if err != nil {
19322		return err
19323	}
19324	dsrdim.Value = dsrdi
19325
19326	return nil
19327}
19328
19329// BasicDeployedServiceReplicaInfo information about a Service Fabric service replica deployed on a node.
19330type BasicDeployedServiceReplicaInfo interface {
19331	AsDeployedStatefulServiceReplicaInfo() (*DeployedStatefulServiceReplicaInfo, bool)
19332	AsDeployedStatelessServiceInstanceInfo() (*DeployedStatelessServiceInstanceInfo, bool)
19333	AsDeployedServiceReplicaInfo() (*DeployedServiceReplicaInfo, bool)
19334}
19335
19336// DeployedServiceReplicaInfo information about a Service Fabric service replica deployed on a node.
19337type DeployedServiceReplicaInfo struct {
19338	// ServiceName - The full name of the service with 'fabric:' URI scheme.
19339	ServiceName *string `json:"ServiceName,omitempty"`
19340	// ServiceTypeName - Name of the service type as specified in the service manifest.
19341	ServiceTypeName *string `json:"ServiceTypeName,omitempty"`
19342	// ServiceManifestName - The name of the service manifest in which this service type is defined.
19343	ServiceManifestName *string `json:"ServiceManifestName,omitempty"`
19344	// CodePackageName - The name of the code package that hosts this replica.
19345	CodePackageName *string `json:"CodePackageName,omitempty"`
19346	// 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.
19347	PartitionID *uuid.UUID `json:"PartitionId,omitempty"`
19348	// ReplicaStatus - The status of a replica of a service. Possible values include: 'ReplicaStatusInvalid', 'ReplicaStatusInBuild', 'ReplicaStatusStandby', 'ReplicaStatusReady', 'ReplicaStatusDown', 'ReplicaStatusDropped'
19349	ReplicaStatus ReplicaStatus `json:"ReplicaStatus,omitempty"`
19350	// Address - The last address returned by the replica in Open or ChangeRole.
19351	Address *string `json:"Address,omitempty"`
19352	// ServicePackageActivationID - The ActivationId of a deployed service package. If ServicePackageActivationMode specified at the time of creating the service
19353	// is 'SharedProcess' (or if it is not specified, in which case it defaults to 'SharedProcess'), then value of ServicePackageActivationId
19354	// is always an empty string.
19355	ServicePackageActivationID *string `json:"ServicePackageActivationId,omitempty"`
19356	// 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.
19357	HostProcessID *string `json:"HostProcessId,omitempty"`
19358	// ServiceKind - Possible values include: 'ServiceKindBasicDeployedServiceReplicaInfoServiceKindDeployedServiceReplicaInfo', 'ServiceKindBasicDeployedServiceReplicaInfoServiceKindStateful', 'ServiceKindBasicDeployedServiceReplicaInfoServiceKindStateless'
19359	ServiceKind ServiceKindBasicDeployedServiceReplicaInfo `json:"ServiceKind,omitempty"`
19360}
19361
19362func unmarshalBasicDeployedServiceReplicaInfo(body []byte) (BasicDeployedServiceReplicaInfo, error) {
19363	var m map[string]interface{}
19364	err := json.Unmarshal(body, &m)
19365	if err != nil {
19366		return nil, err
19367	}
19368
19369	switch m["ServiceKind"] {
19370	case string(ServiceKindBasicDeployedServiceReplicaInfoServiceKindStateful):
19371		var dssri DeployedStatefulServiceReplicaInfo
19372		err := json.Unmarshal(body, &dssri)
19373		return dssri, err
19374	case string(ServiceKindBasicDeployedServiceReplicaInfoServiceKindStateless):
19375		var dssii DeployedStatelessServiceInstanceInfo
19376		err := json.Unmarshal(body, &dssii)
19377		return dssii, err
19378	default:
19379		var dsri DeployedServiceReplicaInfo
19380		err := json.Unmarshal(body, &dsri)
19381		return dsri, err
19382	}
19383}
19384func unmarshalBasicDeployedServiceReplicaInfoArray(body []byte) ([]BasicDeployedServiceReplicaInfo, error) {
19385	var rawMessages []*json.RawMessage
19386	err := json.Unmarshal(body, &rawMessages)
19387	if err != nil {
19388		return nil, err
19389	}
19390
19391	dsriArray := make([]BasicDeployedServiceReplicaInfo, len(rawMessages))
19392
19393	for index, rawMessage := range rawMessages {
19394		dsri, err := unmarshalBasicDeployedServiceReplicaInfo(*rawMessage)
19395		if err != nil {
19396			return nil, err
19397		}
19398		dsriArray[index] = dsri
19399	}
19400	return dsriArray, nil
19401}
19402
19403// MarshalJSON is the custom marshaler for DeployedServiceReplicaInfo.
19404func (dsri DeployedServiceReplicaInfo) MarshalJSON() ([]byte, error) {
19405	dsri.ServiceKind = ServiceKindBasicDeployedServiceReplicaInfoServiceKindDeployedServiceReplicaInfo
19406	objectMap := make(map[string]interface{})
19407	if dsri.ServiceName != nil {
19408		objectMap["ServiceName"] = dsri.ServiceName
19409	}
19410	if dsri.ServiceTypeName != nil {
19411		objectMap["ServiceTypeName"] = dsri.ServiceTypeName
19412	}
19413	if dsri.ServiceManifestName != nil {
19414		objectMap["ServiceManifestName"] = dsri.ServiceManifestName
19415	}
19416	if dsri.CodePackageName != nil {
19417		objectMap["CodePackageName"] = dsri.CodePackageName
19418	}
19419	if dsri.PartitionID != nil {
19420		objectMap["PartitionId"] = dsri.PartitionID
19421	}
19422	if dsri.ReplicaStatus != "" {
19423		objectMap["ReplicaStatus"] = dsri.ReplicaStatus
19424	}
19425	if dsri.Address != nil {
19426		objectMap["Address"] = dsri.Address
19427	}
19428	if dsri.ServicePackageActivationID != nil {
19429		objectMap["ServicePackageActivationId"] = dsri.ServicePackageActivationID
19430	}
19431	if dsri.HostProcessID != nil {
19432		objectMap["HostProcessId"] = dsri.HostProcessID
19433	}
19434	if dsri.ServiceKind != "" {
19435		objectMap["ServiceKind"] = dsri.ServiceKind
19436	}
19437	return json.Marshal(objectMap)
19438}
19439
19440// AsDeployedStatefulServiceReplicaInfo is the BasicDeployedServiceReplicaInfo implementation for DeployedServiceReplicaInfo.
19441func (dsri DeployedServiceReplicaInfo) AsDeployedStatefulServiceReplicaInfo() (*DeployedStatefulServiceReplicaInfo, bool) {
19442	return nil, false
19443}
19444
19445// AsDeployedStatelessServiceInstanceInfo is the BasicDeployedServiceReplicaInfo implementation for DeployedServiceReplicaInfo.
19446func (dsri DeployedServiceReplicaInfo) AsDeployedStatelessServiceInstanceInfo() (*DeployedStatelessServiceInstanceInfo, bool) {
19447	return nil, false
19448}
19449
19450// AsDeployedServiceReplicaInfo is the BasicDeployedServiceReplicaInfo implementation for DeployedServiceReplicaInfo.
19451func (dsri DeployedServiceReplicaInfo) AsDeployedServiceReplicaInfo() (*DeployedServiceReplicaInfo, bool) {
19452	return &dsri, true
19453}
19454
19455// AsBasicDeployedServiceReplicaInfo is the BasicDeployedServiceReplicaInfo implementation for DeployedServiceReplicaInfo.
19456func (dsri DeployedServiceReplicaInfo) AsBasicDeployedServiceReplicaInfo() (BasicDeployedServiceReplicaInfo, bool) {
19457	return &dsri, true
19458}
19459
19460// DeployedServiceTypeInfo information about service type deployed on a node, information such as the
19461// status of the service type registration on a node.
19462type DeployedServiceTypeInfo struct {
19463	// ServiceTypeName - Name of the service type as specified in the service manifest.
19464	ServiceTypeName *string `json:"ServiceTypeName,omitempty"`
19465	// ServiceManifestName - The name of the service manifest in which this service type is defined.
19466	ServiceManifestName *string `json:"ServiceManifestName,omitempty"`
19467	// CodePackageName - The name of the code package that registered the service type.
19468	CodePackageName *string `json:"CodePackageName,omitempty"`
19469	// Status - The status of the service type registration on the node. Possible values include: 'ServiceTypeRegistrationStatusInvalid', 'ServiceTypeRegistrationStatusDisabled', 'ServiceTypeRegistrationStatusEnabled', 'ServiceTypeRegistrationStatusRegistered'
19470	Status ServiceTypeRegistrationStatus `json:"Status,omitempty"`
19471	// ServicePackageActivationID - The ActivationId of a deployed service package. If ServicePackageActivationMode specified at the time of creating the service
19472	// is 'SharedProcess' (or if it is not specified, in which case it defaults to 'SharedProcess'), then value of ServicePackageActivationId
19473	// is always an empty string.
19474	ServicePackageActivationID *string `json:"ServicePackageActivationId,omitempty"`
19475}
19476
19477// DeployedStatefulServiceReplicaDetailInfo information about a stateful replica running in a code package.
19478// Note DeployedServiceReplicaQueryResult will contain duplicate data like ServiceKind, ServiceName,
19479// PartitionId and replicaId.
19480type DeployedStatefulServiceReplicaDetailInfo struct {
19481	// 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.
19482	ReplicaID *string `json:"ReplicaId,omitempty"`
19483	// CurrentReplicatorOperation - Specifies the operation currently being executed by the Replicator. Possible values include: 'ReplicatorOperationNameInvalid', 'ReplicatorOperationNameNone', 'ReplicatorOperationNameOpen', 'ReplicatorOperationNameChangeRole', 'ReplicatorOperationNameUpdateEpoch', 'ReplicatorOperationNameClose', 'ReplicatorOperationNameAbort', 'ReplicatorOperationNameOnDataLoss', 'ReplicatorOperationNameWaitForCatchup', 'ReplicatorOperationNameBuild'
19484	CurrentReplicatorOperation ReplicatorOperationName `json:"CurrentReplicatorOperation,omitempty"`
19485	// ReadStatus - Specifies the access status of the partition. Possible values include: 'PartitionAccessStatusInvalid', 'PartitionAccessStatusGranted', 'PartitionAccessStatusReconfigurationPending', 'PartitionAccessStatusNotPrimary', 'PartitionAccessStatusNoWriteQuorum'
19486	ReadStatus PartitionAccessStatus `json:"ReadStatus,omitempty"`
19487	// WriteStatus - Specifies the access status of the partition. Possible values include: 'PartitionAccessStatusInvalid', 'PartitionAccessStatusGranted', 'PartitionAccessStatusReconfigurationPending', 'PartitionAccessStatusNotPrimary', 'PartitionAccessStatusNoWriteQuorum'
19488	WriteStatus PartitionAccessStatus `json:"WriteStatus,omitempty"`
19489	// ReplicatorStatus - Represents a base class for primary or secondary replicator status.
19490	// Contains information about the service fabric replicator like the replication/copy queue utilization, last acknowledgement received timestamp, etc.
19491	ReplicatorStatus BasicReplicatorStatus `json:"ReplicatorStatus,omitempty"`
19492	// ReplicaStatus - Key value store related information for the replica.
19493	ReplicaStatus *KeyValueStoreReplicaStatus `json:"ReplicaStatus,omitempty"`
19494	// DeployedServiceReplicaQueryResult - Information about a stateful service replica deployed on a node.
19495	DeployedServiceReplicaQueryResult *DeployedStatefulServiceReplicaInfo `json:"DeployedServiceReplicaQueryResult,omitempty"`
19496	// ServiceName - Full hierarchical name of the service in URI format starting with `fabric:`.
19497	ServiceName *string `json:"ServiceName,omitempty"`
19498	// 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.
19499	PartitionID *uuid.UUID `json:"PartitionId,omitempty"`
19500	// 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'
19501	CurrentServiceOperation ServiceOperationName `json:"CurrentServiceOperation,omitempty"`
19502	// CurrentServiceOperationStartTimeUtc - The start time of the current service operation in UTC format.
19503	CurrentServiceOperationStartTimeUtc *date.Time `json:"CurrentServiceOperationStartTimeUtc,omitempty"`
19504	// ReportedLoad - List of load reported by replica.
19505	ReportedLoad *[]LoadMetricReportInfo `json:"ReportedLoad,omitempty"`
19506	// ServiceKind - Possible values include: 'ServiceKindDeployedServiceReplicaDetailInfo', 'ServiceKindStateful1', 'ServiceKindStateless1'
19507	ServiceKind ServiceKindBasicDeployedServiceReplicaDetailInfo `json:"ServiceKind,omitempty"`
19508}
19509
19510// MarshalJSON is the custom marshaler for DeployedStatefulServiceReplicaDetailInfo.
19511func (dssrdi DeployedStatefulServiceReplicaDetailInfo) MarshalJSON() ([]byte, error) {
19512	dssrdi.ServiceKind = ServiceKindStateful1
19513	objectMap := make(map[string]interface{})
19514	if dssrdi.ReplicaID != nil {
19515		objectMap["ReplicaId"] = dssrdi.ReplicaID
19516	}
19517	if dssrdi.CurrentReplicatorOperation != "" {
19518		objectMap["CurrentReplicatorOperation"] = dssrdi.CurrentReplicatorOperation
19519	}
19520	if dssrdi.ReadStatus != "" {
19521		objectMap["ReadStatus"] = dssrdi.ReadStatus
19522	}
19523	if dssrdi.WriteStatus != "" {
19524		objectMap["WriteStatus"] = dssrdi.WriteStatus
19525	}
19526	objectMap["ReplicatorStatus"] = dssrdi.ReplicatorStatus
19527	if dssrdi.ReplicaStatus != nil {
19528		objectMap["ReplicaStatus"] = dssrdi.ReplicaStatus
19529	}
19530	if dssrdi.DeployedServiceReplicaQueryResult != nil {
19531		objectMap["DeployedServiceReplicaQueryResult"] = dssrdi.DeployedServiceReplicaQueryResult
19532	}
19533	if dssrdi.ServiceName != nil {
19534		objectMap["ServiceName"] = dssrdi.ServiceName
19535	}
19536	if dssrdi.PartitionID != nil {
19537		objectMap["PartitionId"] = dssrdi.PartitionID
19538	}
19539	if dssrdi.CurrentServiceOperation != "" {
19540		objectMap["CurrentServiceOperation"] = dssrdi.CurrentServiceOperation
19541	}
19542	if dssrdi.CurrentServiceOperationStartTimeUtc != nil {
19543		objectMap["CurrentServiceOperationStartTimeUtc"] = dssrdi.CurrentServiceOperationStartTimeUtc
19544	}
19545	if dssrdi.ReportedLoad != nil {
19546		objectMap["ReportedLoad"] = dssrdi.ReportedLoad
19547	}
19548	if dssrdi.ServiceKind != "" {
19549		objectMap["ServiceKind"] = dssrdi.ServiceKind
19550	}
19551	return json.Marshal(objectMap)
19552}
19553
19554// AsDeployedStatefulServiceReplicaDetailInfo is the BasicDeployedServiceReplicaDetailInfo implementation for DeployedStatefulServiceReplicaDetailInfo.
19555func (dssrdi DeployedStatefulServiceReplicaDetailInfo) AsDeployedStatefulServiceReplicaDetailInfo() (*DeployedStatefulServiceReplicaDetailInfo, bool) {
19556	return &dssrdi, true
19557}
19558
19559// AsDeployedStatelessServiceInstanceDetailInfo is the BasicDeployedServiceReplicaDetailInfo implementation for DeployedStatefulServiceReplicaDetailInfo.
19560func (dssrdi DeployedStatefulServiceReplicaDetailInfo) AsDeployedStatelessServiceInstanceDetailInfo() (*DeployedStatelessServiceInstanceDetailInfo, bool) {
19561	return nil, false
19562}
19563
19564// AsDeployedServiceReplicaDetailInfo is the BasicDeployedServiceReplicaDetailInfo implementation for DeployedStatefulServiceReplicaDetailInfo.
19565func (dssrdi DeployedStatefulServiceReplicaDetailInfo) AsDeployedServiceReplicaDetailInfo() (*DeployedServiceReplicaDetailInfo, bool) {
19566	return nil, false
19567}
19568
19569// AsBasicDeployedServiceReplicaDetailInfo is the BasicDeployedServiceReplicaDetailInfo implementation for DeployedStatefulServiceReplicaDetailInfo.
19570func (dssrdi DeployedStatefulServiceReplicaDetailInfo) AsBasicDeployedServiceReplicaDetailInfo() (BasicDeployedServiceReplicaDetailInfo, bool) {
19571	return &dssrdi, true
19572}
19573
19574// UnmarshalJSON is the custom unmarshaler for DeployedStatefulServiceReplicaDetailInfo struct.
19575func (dssrdi *DeployedStatefulServiceReplicaDetailInfo) UnmarshalJSON(body []byte) error {
19576	var m map[string]*json.RawMessage
19577	err := json.Unmarshal(body, &m)
19578	if err != nil {
19579		return err
19580	}
19581	for k, v := range m {
19582		switch k {
19583		case "ReplicaId":
19584			if v != nil {
19585				var replicaID string
19586				err = json.Unmarshal(*v, &replicaID)
19587				if err != nil {
19588					return err
19589				}
19590				dssrdi.ReplicaID = &replicaID
19591			}
19592		case "CurrentReplicatorOperation":
19593			if v != nil {
19594				var currentReplicatorOperation ReplicatorOperationName
19595				err = json.Unmarshal(*v, &currentReplicatorOperation)
19596				if err != nil {
19597					return err
19598				}
19599				dssrdi.CurrentReplicatorOperation = currentReplicatorOperation
19600			}
19601		case "ReadStatus":
19602			if v != nil {
19603				var readStatus PartitionAccessStatus
19604				err = json.Unmarshal(*v, &readStatus)
19605				if err != nil {
19606					return err
19607				}
19608				dssrdi.ReadStatus = readStatus
19609			}
19610		case "WriteStatus":
19611			if v != nil {
19612				var writeStatus PartitionAccessStatus
19613				err = json.Unmarshal(*v, &writeStatus)
19614				if err != nil {
19615					return err
19616				}
19617				dssrdi.WriteStatus = writeStatus
19618			}
19619		case "ReplicatorStatus":
19620			if v != nil {
19621				replicatorStatus, err := unmarshalBasicReplicatorStatus(*v)
19622				if err != nil {
19623					return err
19624				}
19625				dssrdi.ReplicatorStatus = replicatorStatus
19626			}
19627		case "ReplicaStatus":
19628			if v != nil {
19629				var replicaStatus KeyValueStoreReplicaStatus
19630				err = json.Unmarshal(*v, &replicaStatus)
19631				if err != nil {
19632					return err
19633				}
19634				dssrdi.ReplicaStatus = &replicaStatus
19635			}
19636		case "DeployedServiceReplicaQueryResult":
19637			if v != nil {
19638				var deployedServiceReplicaQueryResult DeployedStatefulServiceReplicaInfo
19639				err = json.Unmarshal(*v, &deployedServiceReplicaQueryResult)
19640				if err != nil {
19641					return err
19642				}
19643				dssrdi.DeployedServiceReplicaQueryResult = &deployedServiceReplicaQueryResult
19644			}
19645		case "ServiceName":
19646			if v != nil {
19647				var serviceName string
19648				err = json.Unmarshal(*v, &serviceName)
19649				if err != nil {
19650					return err
19651				}
19652				dssrdi.ServiceName = &serviceName
19653			}
19654		case "PartitionId":
19655			if v != nil {
19656				var partitionID uuid.UUID
19657				err = json.Unmarshal(*v, &partitionID)
19658				if err != nil {
19659					return err
19660				}
19661				dssrdi.PartitionID = &partitionID
19662			}
19663		case "CurrentServiceOperation":
19664			if v != nil {
19665				var currentServiceOperation ServiceOperationName
19666				err = json.Unmarshal(*v, &currentServiceOperation)
19667				if err != nil {
19668					return err
19669				}
19670				dssrdi.CurrentServiceOperation = currentServiceOperation
19671			}
19672		case "CurrentServiceOperationStartTimeUtc":
19673			if v != nil {
19674				var currentServiceOperationStartTimeUtc date.Time
19675				err = json.Unmarshal(*v, &currentServiceOperationStartTimeUtc)
19676				if err != nil {
19677					return err
19678				}
19679				dssrdi.CurrentServiceOperationStartTimeUtc = &currentServiceOperationStartTimeUtc
19680			}
19681		case "ReportedLoad":
19682			if v != nil {
19683				var reportedLoad []LoadMetricReportInfo
19684				err = json.Unmarshal(*v, &reportedLoad)
19685				if err != nil {
19686					return err
19687				}
19688				dssrdi.ReportedLoad = &reportedLoad
19689			}
19690		case "ServiceKind":
19691			if v != nil {
19692				var serviceKind ServiceKindBasicDeployedServiceReplicaDetailInfo
19693				err = json.Unmarshal(*v, &serviceKind)
19694				if err != nil {
19695					return err
19696				}
19697				dssrdi.ServiceKind = serviceKind
19698			}
19699		}
19700	}
19701
19702	return nil
19703}
19704
19705// DeployedStatefulServiceReplicaInfo information about a stateful service replica deployed on a node.
19706type DeployedStatefulServiceReplicaInfo struct {
19707	// 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.
19708	ReplicaID *string `json:"ReplicaId,omitempty"`
19709	// ReplicaRole - The role of a replica of a stateful service. Possible values include: 'ReplicaRoleUnknown', 'ReplicaRoleNone', 'ReplicaRolePrimary', 'ReplicaRoleIdleSecondary', 'ReplicaRoleActiveSecondary'
19710	ReplicaRole ReplicaRole `json:"ReplicaRole,omitempty"`
19711	// ReconfigurationInformation - Information about current reconfiguration like phase, type, previous configuration role of replica and reconfiguration start date time.
19712	ReconfigurationInformation *ReconfigurationInformation `json:"ReconfigurationInformation,omitempty"`
19713	// ServiceName - The full name of the service with 'fabric:' URI scheme.
19714	ServiceName *string `json:"ServiceName,omitempty"`
19715	// ServiceTypeName - Name of the service type as specified in the service manifest.
19716	ServiceTypeName *string `json:"ServiceTypeName,omitempty"`
19717	// ServiceManifestName - The name of the service manifest in which this service type is defined.
19718	ServiceManifestName *string `json:"ServiceManifestName,omitempty"`
19719	// CodePackageName - The name of the code package that hosts this replica.
19720	CodePackageName *string `json:"CodePackageName,omitempty"`
19721	// 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.
19722	PartitionID *uuid.UUID `json:"PartitionId,omitempty"`
19723	// ReplicaStatus - The status of a replica of a service. Possible values include: 'ReplicaStatusInvalid', 'ReplicaStatusInBuild', 'ReplicaStatusStandby', 'ReplicaStatusReady', 'ReplicaStatusDown', 'ReplicaStatusDropped'
19724	ReplicaStatus ReplicaStatus `json:"ReplicaStatus,omitempty"`
19725	// Address - The last address returned by the replica in Open or ChangeRole.
19726	Address *string `json:"Address,omitempty"`
19727	// ServicePackageActivationID - The ActivationId of a deployed service package. If ServicePackageActivationMode specified at the time of creating the service
19728	// is 'SharedProcess' (or if it is not specified, in which case it defaults to 'SharedProcess'), then value of ServicePackageActivationId
19729	// is always an empty string.
19730	ServicePackageActivationID *string `json:"ServicePackageActivationId,omitempty"`
19731	// 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.
19732	HostProcessID *string `json:"HostProcessId,omitempty"`
19733	// ServiceKind - Possible values include: 'ServiceKindBasicDeployedServiceReplicaInfoServiceKindDeployedServiceReplicaInfo', 'ServiceKindBasicDeployedServiceReplicaInfoServiceKindStateful', 'ServiceKindBasicDeployedServiceReplicaInfoServiceKindStateless'
19734	ServiceKind ServiceKindBasicDeployedServiceReplicaInfo `json:"ServiceKind,omitempty"`
19735}
19736
19737// MarshalJSON is the custom marshaler for DeployedStatefulServiceReplicaInfo.
19738func (dssri DeployedStatefulServiceReplicaInfo) MarshalJSON() ([]byte, error) {
19739	dssri.ServiceKind = ServiceKindBasicDeployedServiceReplicaInfoServiceKindStateful
19740	objectMap := make(map[string]interface{})
19741	if dssri.ReplicaID != nil {
19742		objectMap["ReplicaId"] = dssri.ReplicaID
19743	}
19744	if dssri.ReplicaRole != "" {
19745		objectMap["ReplicaRole"] = dssri.ReplicaRole
19746	}
19747	if dssri.ReconfigurationInformation != nil {
19748		objectMap["ReconfigurationInformation"] = dssri.ReconfigurationInformation
19749	}
19750	if dssri.ServiceName != nil {
19751		objectMap["ServiceName"] = dssri.ServiceName
19752	}
19753	if dssri.ServiceTypeName != nil {
19754		objectMap["ServiceTypeName"] = dssri.ServiceTypeName
19755	}
19756	if dssri.ServiceManifestName != nil {
19757		objectMap["ServiceManifestName"] = dssri.ServiceManifestName
19758	}
19759	if dssri.CodePackageName != nil {
19760		objectMap["CodePackageName"] = dssri.CodePackageName
19761	}
19762	if dssri.PartitionID != nil {
19763		objectMap["PartitionId"] = dssri.PartitionID
19764	}
19765	if dssri.ReplicaStatus != "" {
19766		objectMap["ReplicaStatus"] = dssri.ReplicaStatus
19767	}
19768	if dssri.Address != nil {
19769		objectMap["Address"] = dssri.Address
19770	}
19771	if dssri.ServicePackageActivationID != nil {
19772		objectMap["ServicePackageActivationId"] = dssri.ServicePackageActivationID
19773	}
19774	if dssri.HostProcessID != nil {
19775		objectMap["HostProcessId"] = dssri.HostProcessID
19776	}
19777	if dssri.ServiceKind != "" {
19778		objectMap["ServiceKind"] = dssri.ServiceKind
19779	}
19780	return json.Marshal(objectMap)
19781}
19782
19783// AsDeployedStatefulServiceReplicaInfo is the BasicDeployedServiceReplicaInfo implementation for DeployedStatefulServiceReplicaInfo.
19784func (dssri DeployedStatefulServiceReplicaInfo) AsDeployedStatefulServiceReplicaInfo() (*DeployedStatefulServiceReplicaInfo, bool) {
19785	return &dssri, true
19786}
19787
19788// AsDeployedStatelessServiceInstanceInfo is the BasicDeployedServiceReplicaInfo implementation for DeployedStatefulServiceReplicaInfo.
19789func (dssri DeployedStatefulServiceReplicaInfo) AsDeployedStatelessServiceInstanceInfo() (*DeployedStatelessServiceInstanceInfo, bool) {
19790	return nil, false
19791}
19792
19793// AsDeployedServiceReplicaInfo is the BasicDeployedServiceReplicaInfo implementation for DeployedStatefulServiceReplicaInfo.
19794func (dssri DeployedStatefulServiceReplicaInfo) AsDeployedServiceReplicaInfo() (*DeployedServiceReplicaInfo, bool) {
19795	return nil, false
19796}
19797
19798// AsBasicDeployedServiceReplicaInfo is the BasicDeployedServiceReplicaInfo implementation for DeployedStatefulServiceReplicaInfo.
19799func (dssri DeployedStatefulServiceReplicaInfo) AsBasicDeployedServiceReplicaInfo() (BasicDeployedServiceReplicaInfo, bool) {
19800	return &dssri, true
19801}
19802
19803// DeployedStatelessServiceInstanceDetailInfo information about a stateless instance running in a code
19804// package. Note that DeployedServiceReplicaQueryResult will contain duplicate data like ServiceKind,
19805// ServiceName, PartitionId and InstanceId.
19806type DeployedStatelessServiceInstanceDetailInfo struct {
19807	// 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.
19808	InstanceID *string `json:"InstanceId,omitempty"`
19809	// DeployedServiceReplicaQueryResult - Information about a stateless service instance deployed on a node.
19810	DeployedServiceReplicaQueryResult *DeployedStatelessServiceInstanceInfo `json:"DeployedServiceReplicaQueryResult,omitempty"`
19811	// ServiceName - Full hierarchical name of the service in URI format starting with `fabric:`.
19812	ServiceName *string `json:"ServiceName,omitempty"`
19813	// 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.
19814	PartitionID *uuid.UUID `json:"PartitionId,omitempty"`
19815	// 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'
19816	CurrentServiceOperation ServiceOperationName `json:"CurrentServiceOperation,omitempty"`
19817	// CurrentServiceOperationStartTimeUtc - The start time of the current service operation in UTC format.
19818	CurrentServiceOperationStartTimeUtc *date.Time `json:"CurrentServiceOperationStartTimeUtc,omitempty"`
19819	// ReportedLoad - List of load reported by replica.
19820	ReportedLoad *[]LoadMetricReportInfo `json:"ReportedLoad,omitempty"`
19821	// ServiceKind - Possible values include: 'ServiceKindDeployedServiceReplicaDetailInfo', 'ServiceKindStateful1', 'ServiceKindStateless1'
19822	ServiceKind ServiceKindBasicDeployedServiceReplicaDetailInfo `json:"ServiceKind,omitempty"`
19823}
19824
19825// MarshalJSON is the custom marshaler for DeployedStatelessServiceInstanceDetailInfo.
19826func (dssidi DeployedStatelessServiceInstanceDetailInfo) MarshalJSON() ([]byte, error) {
19827	dssidi.ServiceKind = ServiceKindStateless1
19828	objectMap := make(map[string]interface{})
19829	if dssidi.InstanceID != nil {
19830		objectMap["InstanceId"] = dssidi.InstanceID
19831	}
19832	if dssidi.DeployedServiceReplicaQueryResult != nil {
19833		objectMap["DeployedServiceReplicaQueryResult"] = dssidi.DeployedServiceReplicaQueryResult
19834	}
19835	if dssidi.ServiceName != nil {
19836		objectMap["ServiceName"] = dssidi.ServiceName
19837	}
19838	if dssidi.PartitionID != nil {
19839		objectMap["PartitionId"] = dssidi.PartitionID
19840	}
19841	if dssidi.CurrentServiceOperation != "" {
19842		objectMap["CurrentServiceOperation"] = dssidi.CurrentServiceOperation
19843	}
19844	if dssidi.CurrentServiceOperationStartTimeUtc != nil {
19845		objectMap["CurrentServiceOperationStartTimeUtc"] = dssidi.CurrentServiceOperationStartTimeUtc
19846	}
19847	if dssidi.ReportedLoad != nil {
19848		objectMap["ReportedLoad"] = dssidi.ReportedLoad
19849	}
19850	if dssidi.ServiceKind != "" {
19851		objectMap["ServiceKind"] = dssidi.ServiceKind
19852	}
19853	return json.Marshal(objectMap)
19854}
19855
19856// AsDeployedStatefulServiceReplicaDetailInfo is the BasicDeployedServiceReplicaDetailInfo implementation for DeployedStatelessServiceInstanceDetailInfo.
19857func (dssidi DeployedStatelessServiceInstanceDetailInfo) AsDeployedStatefulServiceReplicaDetailInfo() (*DeployedStatefulServiceReplicaDetailInfo, bool) {
19858	return nil, false
19859}
19860
19861// AsDeployedStatelessServiceInstanceDetailInfo is the BasicDeployedServiceReplicaDetailInfo implementation for DeployedStatelessServiceInstanceDetailInfo.
19862func (dssidi DeployedStatelessServiceInstanceDetailInfo) AsDeployedStatelessServiceInstanceDetailInfo() (*DeployedStatelessServiceInstanceDetailInfo, bool) {
19863	return &dssidi, true
19864}
19865
19866// AsDeployedServiceReplicaDetailInfo is the BasicDeployedServiceReplicaDetailInfo implementation for DeployedStatelessServiceInstanceDetailInfo.
19867func (dssidi DeployedStatelessServiceInstanceDetailInfo) AsDeployedServiceReplicaDetailInfo() (*DeployedServiceReplicaDetailInfo, bool) {
19868	return nil, false
19869}
19870
19871// AsBasicDeployedServiceReplicaDetailInfo is the BasicDeployedServiceReplicaDetailInfo implementation for DeployedStatelessServiceInstanceDetailInfo.
19872func (dssidi DeployedStatelessServiceInstanceDetailInfo) AsBasicDeployedServiceReplicaDetailInfo() (BasicDeployedServiceReplicaDetailInfo, bool) {
19873	return &dssidi, true
19874}
19875
19876// DeployedStatelessServiceInstanceInfo information about a stateless service instance deployed on a node.
19877type DeployedStatelessServiceInstanceInfo struct {
19878	// 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.
19879	InstanceID *string `json:"InstanceId,omitempty"`
19880	// ServiceName - The full name of the service with 'fabric:' URI scheme.
19881	ServiceName *string `json:"ServiceName,omitempty"`
19882	// ServiceTypeName - Name of the service type as specified in the service manifest.
19883	ServiceTypeName *string `json:"ServiceTypeName,omitempty"`
19884	// ServiceManifestName - The name of the service manifest in which this service type is defined.
19885	ServiceManifestName *string `json:"ServiceManifestName,omitempty"`
19886	// CodePackageName - The name of the code package that hosts this replica.
19887	CodePackageName *string `json:"CodePackageName,omitempty"`
19888	// 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.
19889	PartitionID *uuid.UUID `json:"PartitionId,omitempty"`
19890	// ReplicaStatus - The status of a replica of a service. Possible values include: 'ReplicaStatusInvalid', 'ReplicaStatusInBuild', 'ReplicaStatusStandby', 'ReplicaStatusReady', 'ReplicaStatusDown', 'ReplicaStatusDropped'
19891	ReplicaStatus ReplicaStatus `json:"ReplicaStatus,omitempty"`
19892	// Address - The last address returned by the replica in Open or ChangeRole.
19893	Address *string `json:"Address,omitempty"`
19894	// ServicePackageActivationID - The ActivationId of a deployed service package. If ServicePackageActivationMode specified at the time of creating the service
19895	// is 'SharedProcess' (or if it is not specified, in which case it defaults to 'SharedProcess'), then value of ServicePackageActivationId
19896	// is always an empty string.
19897	ServicePackageActivationID *string `json:"ServicePackageActivationId,omitempty"`
19898	// 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.
19899	HostProcessID *string `json:"HostProcessId,omitempty"`
19900	// ServiceKind - Possible values include: 'ServiceKindBasicDeployedServiceReplicaInfoServiceKindDeployedServiceReplicaInfo', 'ServiceKindBasicDeployedServiceReplicaInfoServiceKindStateful', 'ServiceKindBasicDeployedServiceReplicaInfoServiceKindStateless'
19901	ServiceKind ServiceKindBasicDeployedServiceReplicaInfo `json:"ServiceKind,omitempty"`
19902}
19903
19904// MarshalJSON is the custom marshaler for DeployedStatelessServiceInstanceInfo.
19905func (dssii DeployedStatelessServiceInstanceInfo) MarshalJSON() ([]byte, error) {
19906	dssii.ServiceKind = ServiceKindBasicDeployedServiceReplicaInfoServiceKindStateless
19907	objectMap := make(map[string]interface{})
19908	if dssii.InstanceID != nil {
19909		objectMap["InstanceId"] = dssii.InstanceID
19910	}
19911	if dssii.ServiceName != nil {
19912		objectMap["ServiceName"] = dssii.ServiceName
19913	}
19914	if dssii.ServiceTypeName != nil {
19915		objectMap["ServiceTypeName"] = dssii.ServiceTypeName
19916	}
19917	if dssii.ServiceManifestName != nil {
19918		objectMap["ServiceManifestName"] = dssii.ServiceManifestName
19919	}
19920	if dssii.CodePackageName != nil {
19921		objectMap["CodePackageName"] = dssii.CodePackageName
19922	}
19923	if dssii.PartitionID != nil {
19924		objectMap["PartitionId"] = dssii.PartitionID
19925	}
19926	if dssii.ReplicaStatus != "" {
19927		objectMap["ReplicaStatus"] = dssii.ReplicaStatus
19928	}
19929	if dssii.Address != nil {
19930		objectMap["Address"] = dssii.Address
19931	}
19932	if dssii.ServicePackageActivationID != nil {
19933		objectMap["ServicePackageActivationId"] = dssii.ServicePackageActivationID
19934	}
19935	if dssii.HostProcessID != nil {
19936		objectMap["HostProcessId"] = dssii.HostProcessID
19937	}
19938	if dssii.ServiceKind != "" {
19939		objectMap["ServiceKind"] = dssii.ServiceKind
19940	}
19941	return json.Marshal(objectMap)
19942}
19943
19944// AsDeployedStatefulServiceReplicaInfo is the BasicDeployedServiceReplicaInfo implementation for DeployedStatelessServiceInstanceInfo.
19945func (dssii DeployedStatelessServiceInstanceInfo) AsDeployedStatefulServiceReplicaInfo() (*DeployedStatefulServiceReplicaInfo, bool) {
19946	return nil, false
19947}
19948
19949// AsDeployedStatelessServiceInstanceInfo is the BasicDeployedServiceReplicaInfo implementation for DeployedStatelessServiceInstanceInfo.
19950func (dssii DeployedStatelessServiceInstanceInfo) AsDeployedStatelessServiceInstanceInfo() (*DeployedStatelessServiceInstanceInfo, bool) {
19951	return &dssii, true
19952}
19953
19954// AsDeployedServiceReplicaInfo is the BasicDeployedServiceReplicaInfo implementation for DeployedStatelessServiceInstanceInfo.
19955func (dssii DeployedStatelessServiceInstanceInfo) AsDeployedServiceReplicaInfo() (*DeployedServiceReplicaInfo, bool) {
19956	return nil, false
19957}
19958
19959// AsBasicDeployedServiceReplicaInfo is the BasicDeployedServiceReplicaInfo implementation for DeployedStatelessServiceInstanceInfo.
19960func (dssii DeployedStatelessServiceInstanceInfo) AsBasicDeployedServiceReplicaInfo() (BasicDeployedServiceReplicaInfo, bool) {
19961	return &dssii, true
19962}
19963
19964// DeployServicePackageToNodeDescription defines description for downloading packages associated with a
19965// service manifest to image cache on a Service Fabric node.
19966type DeployServicePackageToNodeDescription struct {
19967	// ServiceManifestName - The name of service manifest whose packages need to be downloaded.
19968	ServiceManifestName *string `json:"ServiceManifestName,omitempty"`
19969	// ApplicationTypeName - The application type name as defined in the application manifest.
19970	ApplicationTypeName *string `json:"ApplicationTypeName,omitempty"`
19971	// ApplicationTypeVersion - The version of the application type as defined in the application manifest.
19972	ApplicationTypeVersion *string `json:"ApplicationTypeVersion,omitempty"`
19973	// NodeName - The name of a Service Fabric node.
19974	NodeName *string `json:"NodeName,omitempty"`
19975	// PackageSharingPolicy - List of package sharing policy information.
19976	PackageSharingPolicy *[]PackageSharingPolicyInfo `json:"PackageSharingPolicy,omitempty"`
19977}
19978
19979// DiagnosticsDescription describes the diagnostics options available
19980type DiagnosticsDescription struct {
19981	// Sinks - List of supported sinks that can be referenced.
19982	Sinks *[]BasicDiagnosticsSinkProperties `json:"sinks,omitempty"`
19983	// Enabled - Status of whether or not sinks are enabled.
19984	Enabled *bool `json:"enabled,omitempty"`
19985	// DefaultSinkRefs - The sinks to be used if diagnostics is enabled. Sink choices can be overridden at the service and code package level.
19986	DefaultSinkRefs *[]string `json:"defaultSinkRefs,omitempty"`
19987}
19988
19989// UnmarshalJSON is the custom unmarshaler for DiagnosticsDescription struct.
19990func (dd *DiagnosticsDescription) UnmarshalJSON(body []byte) error {
19991	var m map[string]*json.RawMessage
19992	err := json.Unmarshal(body, &m)
19993	if err != nil {
19994		return err
19995	}
19996	for k, v := range m {
19997		switch k {
19998		case "sinks":
19999			if v != nil {
20000				sinks, err := unmarshalBasicDiagnosticsSinkPropertiesArray(*v)
20001				if err != nil {
20002					return err
20003				}
20004				dd.Sinks = &sinks
20005			}
20006		case "enabled":
20007			if v != nil {
20008				var enabled bool
20009				err = json.Unmarshal(*v, &enabled)
20010				if err != nil {
20011					return err
20012				}
20013				dd.Enabled = &enabled
20014			}
20015		case "defaultSinkRefs":
20016			if v != nil {
20017				var defaultSinkRefs []string
20018				err = json.Unmarshal(*v, &defaultSinkRefs)
20019				if err != nil {
20020					return err
20021				}
20022				dd.DefaultSinkRefs = &defaultSinkRefs
20023			}
20024		}
20025	}
20026
20027	return nil
20028}
20029
20030// DiagnosticsRef reference to sinks in DiagnosticsDescription.
20031type DiagnosticsRef struct {
20032	// Enabled - Status of whether or not sinks are enabled.
20033	Enabled *bool `json:"enabled,omitempty"`
20034	// SinkRefs - List of sinks to be used if enabled. References the list of sinks in DiagnosticsDescription.
20035	SinkRefs *[]string `json:"sinkRefs,omitempty"`
20036}
20037
20038// BasicDiagnosticsSinkProperties properties of a DiagnosticsSink.
20039type BasicDiagnosticsSinkProperties interface {
20040	AsAzureInternalMonitoringPipelineSinkDescription() (*AzureInternalMonitoringPipelineSinkDescription, bool)
20041	AsDiagnosticsSinkProperties() (*DiagnosticsSinkProperties, bool)
20042}
20043
20044// DiagnosticsSinkProperties properties of a DiagnosticsSink.
20045type DiagnosticsSinkProperties struct {
20046	// Name - Name of the sink. This value is referenced by DiagnosticsReferenceDescription
20047	Name *string `json:"name,omitempty"`
20048	// Description - A description of the sink.
20049	Description *string `json:"description,omitempty"`
20050	// Kind - Possible values include: 'KindDiagnosticsSinkProperties', 'KindAzureInternalMonitoringPipeline'
20051	Kind KindBasicDiagnosticsSinkProperties `json:"kind,omitempty"`
20052}
20053
20054func unmarshalBasicDiagnosticsSinkProperties(body []byte) (BasicDiagnosticsSinkProperties, error) {
20055	var m map[string]interface{}
20056	err := json.Unmarshal(body, &m)
20057	if err != nil {
20058		return nil, err
20059	}
20060
20061	switch m["kind"] {
20062	case string(KindAzureInternalMonitoringPipeline):
20063		var aimpsd AzureInternalMonitoringPipelineSinkDescription
20064		err := json.Unmarshal(body, &aimpsd)
20065		return aimpsd, err
20066	default:
20067		var dsp DiagnosticsSinkProperties
20068		err := json.Unmarshal(body, &dsp)
20069		return dsp, err
20070	}
20071}
20072func unmarshalBasicDiagnosticsSinkPropertiesArray(body []byte) ([]BasicDiagnosticsSinkProperties, error) {
20073	var rawMessages []*json.RawMessage
20074	err := json.Unmarshal(body, &rawMessages)
20075	if err != nil {
20076		return nil, err
20077	}
20078
20079	dspArray := make([]BasicDiagnosticsSinkProperties, len(rawMessages))
20080
20081	for index, rawMessage := range rawMessages {
20082		dsp, err := unmarshalBasicDiagnosticsSinkProperties(*rawMessage)
20083		if err != nil {
20084			return nil, err
20085		}
20086		dspArray[index] = dsp
20087	}
20088	return dspArray, nil
20089}
20090
20091// MarshalJSON is the custom marshaler for DiagnosticsSinkProperties.
20092func (dsp DiagnosticsSinkProperties) MarshalJSON() ([]byte, error) {
20093	dsp.Kind = KindDiagnosticsSinkProperties
20094	objectMap := make(map[string]interface{})
20095	if dsp.Name != nil {
20096		objectMap["name"] = dsp.Name
20097	}
20098	if dsp.Description != nil {
20099		objectMap["description"] = dsp.Description
20100	}
20101	if dsp.Kind != "" {
20102		objectMap["kind"] = dsp.Kind
20103	}
20104	return json.Marshal(objectMap)
20105}
20106
20107// AsAzureInternalMonitoringPipelineSinkDescription is the BasicDiagnosticsSinkProperties implementation for DiagnosticsSinkProperties.
20108func (dsp DiagnosticsSinkProperties) AsAzureInternalMonitoringPipelineSinkDescription() (*AzureInternalMonitoringPipelineSinkDescription, bool) {
20109	return nil, false
20110}
20111
20112// AsDiagnosticsSinkProperties is the BasicDiagnosticsSinkProperties implementation for DiagnosticsSinkProperties.
20113func (dsp DiagnosticsSinkProperties) AsDiagnosticsSinkProperties() (*DiagnosticsSinkProperties, bool) {
20114	return &dsp, true
20115}
20116
20117// AsBasicDiagnosticsSinkProperties is the BasicDiagnosticsSinkProperties implementation for DiagnosticsSinkProperties.
20118func (dsp DiagnosticsSinkProperties) AsBasicDiagnosticsSinkProperties() (BasicDiagnosticsSinkProperties, bool) {
20119	return &dsp, true
20120}
20121
20122// DisableBackupDescription it describes the body parameters while disabling backup of a backup
20123// entity(Application/Service/Partition).
20124type DisableBackupDescription struct {
20125	// 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.
20126	CleanBackup *bool `json:"CleanBackup,omitempty"`
20127}
20128
20129// DoublePropertyValue describes a Service Fabric property value of type Double.
20130type DoublePropertyValue struct {
20131	// Data - The data of the property value.
20132	Data *float64 `json:"Data,omitempty"`
20133	// Kind - Possible values include: 'KindPropertyValue', 'KindBinary', 'KindInt64', 'KindDouble', 'KindString', 'KindGUID'
20134	Kind KindBasicPropertyValue `json:"Kind,omitempty"`
20135}
20136
20137// MarshalJSON is the custom marshaler for DoublePropertyValue.
20138func (dpv DoublePropertyValue) MarshalJSON() ([]byte, error) {
20139	dpv.Kind = KindDouble
20140	objectMap := make(map[string]interface{})
20141	if dpv.Data != nil {
20142		objectMap["Data"] = dpv.Data
20143	}
20144	if dpv.Kind != "" {
20145		objectMap["Kind"] = dpv.Kind
20146	}
20147	return json.Marshal(objectMap)
20148}
20149
20150// AsBinaryPropertyValue is the BasicPropertyValue implementation for DoublePropertyValue.
20151func (dpv DoublePropertyValue) AsBinaryPropertyValue() (*BinaryPropertyValue, bool) {
20152	return nil, false
20153}
20154
20155// AsInt64PropertyValue is the BasicPropertyValue implementation for DoublePropertyValue.
20156func (dpv DoublePropertyValue) AsInt64PropertyValue() (*Int64PropertyValue, bool) {
20157	return nil, false
20158}
20159
20160// AsDoublePropertyValue is the BasicPropertyValue implementation for DoublePropertyValue.
20161func (dpv DoublePropertyValue) AsDoublePropertyValue() (*DoublePropertyValue, bool) {
20162	return &dpv, true
20163}
20164
20165// AsStringPropertyValue is the BasicPropertyValue implementation for DoublePropertyValue.
20166func (dpv DoublePropertyValue) AsStringPropertyValue() (*StringPropertyValue, bool) {
20167	return nil, false
20168}
20169
20170// AsGUIDPropertyValue is the BasicPropertyValue implementation for DoublePropertyValue.
20171func (dpv DoublePropertyValue) AsGUIDPropertyValue() (*GUIDPropertyValue, bool) {
20172	return nil, false
20173}
20174
20175// AsPropertyValue is the BasicPropertyValue implementation for DoublePropertyValue.
20176func (dpv DoublePropertyValue) AsPropertyValue() (*PropertyValue, bool) {
20177	return nil, false
20178}
20179
20180// AsBasicPropertyValue is the BasicPropertyValue implementation for DoublePropertyValue.
20181func (dpv DoublePropertyValue) AsBasicPropertyValue() (BasicPropertyValue, bool) {
20182	return &dpv, true
20183}
20184
20185// EnableBackupDescription specifies the parameters needed to enable periodic backup.
20186type EnableBackupDescription struct {
20187	// BackupPolicyName - Name of the backup policy to be used for enabling periodic backups.
20188	BackupPolicyName *string `json:"BackupPolicyName,omitempty"`
20189}
20190
20191// EndpointProperties describes a container endpoint.
20192type EndpointProperties struct {
20193	// Name - The name of the endpoint.
20194	Name *string `json:"name,omitempty"`
20195	// Port - Port used by the container.
20196	Port *int32 `json:"port,omitempty"`
20197}
20198
20199// EndpointRef describes a reference to a service endpoint.
20200type EndpointRef struct {
20201	// Name - Name of the endpoint.
20202	Name *string `json:"name,omitempty"`
20203}
20204
20205// EnsureAvailabilitySafetyCheck safety check that waits to ensure the availability of the partition. It
20206// waits until there are replicas available such that bringing down this replica will not cause
20207// availability loss for the partition.
20208type EnsureAvailabilitySafetyCheck struct {
20209	// PartitionID - Id of the partition which is undergoing the safety check.
20210	PartitionID *uuid.UUID `json:"PartitionId,omitempty"`
20211	// Kind - Possible values include: 'KindSafetyCheck', 'KindPartitionSafetyCheck', 'KindEnsureAvailability', 'KindEnsurePartitionQuorum', 'KindEnsureSeedNodeQuorum', 'KindWaitForInbuildReplica', 'KindWaitForPrimaryPlacement', 'KindWaitForPrimarySwap', 'KindWaitForReconfiguration'
20212	Kind KindBasicSafetyCheck `json:"Kind,omitempty"`
20213}
20214
20215// MarshalJSON is the custom marshaler for EnsureAvailabilitySafetyCheck.
20216func (easc EnsureAvailabilitySafetyCheck) MarshalJSON() ([]byte, error) {
20217	easc.Kind = KindEnsureAvailability
20218	objectMap := make(map[string]interface{})
20219	if easc.PartitionID != nil {
20220		objectMap["PartitionId"] = easc.PartitionID
20221	}
20222	if easc.Kind != "" {
20223		objectMap["Kind"] = easc.Kind
20224	}
20225	return json.Marshal(objectMap)
20226}
20227
20228// AsPartitionSafetyCheck is the BasicSafetyCheck implementation for EnsureAvailabilitySafetyCheck.
20229func (easc EnsureAvailabilitySafetyCheck) AsPartitionSafetyCheck() (*PartitionSafetyCheck, bool) {
20230	return nil, false
20231}
20232
20233// AsBasicPartitionSafetyCheck is the BasicSafetyCheck implementation for EnsureAvailabilitySafetyCheck.
20234func (easc EnsureAvailabilitySafetyCheck) AsBasicPartitionSafetyCheck() (BasicPartitionSafetyCheck, bool) {
20235	return &easc, true
20236}
20237
20238// AsEnsureAvailabilitySafetyCheck is the BasicSafetyCheck implementation for EnsureAvailabilitySafetyCheck.
20239func (easc EnsureAvailabilitySafetyCheck) AsEnsureAvailabilitySafetyCheck() (*EnsureAvailabilitySafetyCheck, bool) {
20240	return &easc, true
20241}
20242
20243// AsEnsurePartitionQuorumSafetyCheck is the BasicSafetyCheck implementation for EnsureAvailabilitySafetyCheck.
20244func (easc EnsureAvailabilitySafetyCheck) AsEnsurePartitionQuorumSafetyCheck() (*EnsurePartitionQuorumSafetyCheck, bool) {
20245	return nil, false
20246}
20247
20248// AsSeedNodeSafetyCheck is the BasicSafetyCheck implementation for EnsureAvailabilitySafetyCheck.
20249func (easc EnsureAvailabilitySafetyCheck) AsSeedNodeSafetyCheck() (*SeedNodeSafetyCheck, bool) {
20250	return nil, false
20251}
20252
20253// AsWaitForInbuildReplicaSafetyCheck is the BasicSafetyCheck implementation for EnsureAvailabilitySafetyCheck.
20254func (easc EnsureAvailabilitySafetyCheck) AsWaitForInbuildReplicaSafetyCheck() (*WaitForInbuildReplicaSafetyCheck, bool) {
20255	return nil, false
20256}
20257
20258// AsWaitForPrimaryPlacementSafetyCheck is the BasicSafetyCheck implementation for EnsureAvailabilitySafetyCheck.
20259func (easc EnsureAvailabilitySafetyCheck) AsWaitForPrimaryPlacementSafetyCheck() (*WaitForPrimaryPlacementSafetyCheck, bool) {
20260	return nil, false
20261}
20262
20263// AsWaitForPrimarySwapSafetyCheck is the BasicSafetyCheck implementation for EnsureAvailabilitySafetyCheck.
20264func (easc EnsureAvailabilitySafetyCheck) AsWaitForPrimarySwapSafetyCheck() (*WaitForPrimarySwapSafetyCheck, bool) {
20265	return nil, false
20266}
20267
20268// AsWaitForReconfigurationSafetyCheck is the BasicSafetyCheck implementation for EnsureAvailabilitySafetyCheck.
20269func (easc EnsureAvailabilitySafetyCheck) AsWaitForReconfigurationSafetyCheck() (*WaitForReconfigurationSafetyCheck, bool) {
20270	return nil, false
20271}
20272
20273// AsSafetyCheck is the BasicSafetyCheck implementation for EnsureAvailabilitySafetyCheck.
20274func (easc EnsureAvailabilitySafetyCheck) AsSafetyCheck() (*SafetyCheck, bool) {
20275	return nil, false
20276}
20277
20278// AsBasicSafetyCheck is the BasicSafetyCheck implementation for EnsureAvailabilitySafetyCheck.
20279func (easc EnsureAvailabilitySafetyCheck) AsBasicSafetyCheck() (BasicSafetyCheck, bool) {
20280	return &easc, true
20281}
20282
20283// EnsurePartitionQuorumSafetyCheck safety check that ensures that a quorum of replicas are not lost for a
20284// partition.
20285type EnsurePartitionQuorumSafetyCheck struct {
20286	// PartitionID - Id of the partition which is undergoing the safety check.
20287	PartitionID *uuid.UUID `json:"PartitionId,omitempty"`
20288	// Kind - Possible values include: 'KindSafetyCheck', 'KindPartitionSafetyCheck', 'KindEnsureAvailability', 'KindEnsurePartitionQuorum', 'KindEnsureSeedNodeQuorum', 'KindWaitForInbuildReplica', 'KindWaitForPrimaryPlacement', 'KindWaitForPrimarySwap', 'KindWaitForReconfiguration'
20289	Kind KindBasicSafetyCheck `json:"Kind,omitempty"`
20290}
20291
20292// MarshalJSON is the custom marshaler for EnsurePartitionQuorumSafetyCheck.
20293func (epqsc EnsurePartitionQuorumSafetyCheck) MarshalJSON() ([]byte, error) {
20294	epqsc.Kind = KindEnsurePartitionQuorum
20295	objectMap := make(map[string]interface{})
20296	if epqsc.PartitionID != nil {
20297		objectMap["PartitionId"] = epqsc.PartitionID
20298	}
20299	if epqsc.Kind != "" {
20300		objectMap["Kind"] = epqsc.Kind
20301	}
20302	return json.Marshal(objectMap)
20303}
20304
20305// AsPartitionSafetyCheck is the BasicSafetyCheck implementation for EnsurePartitionQuorumSafetyCheck.
20306func (epqsc EnsurePartitionQuorumSafetyCheck) AsPartitionSafetyCheck() (*PartitionSafetyCheck, bool) {
20307	return nil, false
20308}
20309
20310// AsBasicPartitionSafetyCheck is the BasicSafetyCheck implementation for EnsurePartitionQuorumSafetyCheck.
20311func (epqsc EnsurePartitionQuorumSafetyCheck) AsBasicPartitionSafetyCheck() (BasicPartitionSafetyCheck, bool) {
20312	return &epqsc, true
20313}
20314
20315// AsEnsureAvailabilitySafetyCheck is the BasicSafetyCheck implementation for EnsurePartitionQuorumSafetyCheck.
20316func (epqsc EnsurePartitionQuorumSafetyCheck) AsEnsureAvailabilitySafetyCheck() (*EnsureAvailabilitySafetyCheck, bool) {
20317	return nil, false
20318}
20319
20320// AsEnsurePartitionQuorumSafetyCheck is the BasicSafetyCheck implementation for EnsurePartitionQuorumSafetyCheck.
20321func (epqsc EnsurePartitionQuorumSafetyCheck) AsEnsurePartitionQuorumSafetyCheck() (*EnsurePartitionQuorumSafetyCheck, bool) {
20322	return &epqsc, true
20323}
20324
20325// AsSeedNodeSafetyCheck is the BasicSafetyCheck implementation for EnsurePartitionQuorumSafetyCheck.
20326func (epqsc EnsurePartitionQuorumSafetyCheck) AsSeedNodeSafetyCheck() (*SeedNodeSafetyCheck, bool) {
20327	return nil, false
20328}
20329
20330// AsWaitForInbuildReplicaSafetyCheck is the BasicSafetyCheck implementation for EnsurePartitionQuorumSafetyCheck.
20331func (epqsc EnsurePartitionQuorumSafetyCheck) AsWaitForInbuildReplicaSafetyCheck() (*WaitForInbuildReplicaSafetyCheck, bool) {
20332	return nil, false
20333}
20334
20335// AsWaitForPrimaryPlacementSafetyCheck is the BasicSafetyCheck implementation for EnsurePartitionQuorumSafetyCheck.
20336func (epqsc EnsurePartitionQuorumSafetyCheck) AsWaitForPrimaryPlacementSafetyCheck() (*WaitForPrimaryPlacementSafetyCheck, bool) {
20337	return nil, false
20338}
20339
20340// AsWaitForPrimarySwapSafetyCheck is the BasicSafetyCheck implementation for EnsurePartitionQuorumSafetyCheck.
20341func (epqsc EnsurePartitionQuorumSafetyCheck) AsWaitForPrimarySwapSafetyCheck() (*WaitForPrimarySwapSafetyCheck, bool) {
20342	return nil, false
20343}
20344
20345// AsWaitForReconfigurationSafetyCheck is the BasicSafetyCheck implementation for EnsurePartitionQuorumSafetyCheck.
20346func (epqsc EnsurePartitionQuorumSafetyCheck) AsWaitForReconfigurationSafetyCheck() (*WaitForReconfigurationSafetyCheck, bool) {
20347	return nil, false
20348}
20349
20350// AsSafetyCheck is the BasicSafetyCheck implementation for EnsurePartitionQuorumSafetyCheck.
20351func (epqsc EnsurePartitionQuorumSafetyCheck) AsSafetyCheck() (*SafetyCheck, bool) {
20352	return nil, false
20353}
20354
20355// AsBasicSafetyCheck is the BasicSafetyCheck implementation for EnsurePartitionQuorumSafetyCheck.
20356func (epqsc EnsurePartitionQuorumSafetyCheck) AsBasicSafetyCheck() (BasicSafetyCheck, bool) {
20357	return &epqsc, true
20358}
20359
20360// EntityHealth health information common to all entities in the cluster. It contains the aggregated health
20361// state, health events and unhealthy evaluation.
20362type EntityHealth struct {
20363	// AggregatedHealthState - The HealthState representing the aggregated health state of the entity computed by Health Manager.
20364	// The health evaluation of the entity reflects all events reported on the entity and its children (if any).
20365	// The aggregation is done by applying the desired health policy. Possible values include: 'HealthStateInvalid', 'HealthStateOk', 'HealthStateWarning', 'HealthStateError', 'HealthStateUnknown'
20366	AggregatedHealthState HealthState `json:"AggregatedHealthState,omitempty"`
20367	// HealthEvents - The list of health events reported on the entity.
20368	HealthEvents *[]HealthEvent `json:"HealthEvents,omitempty"`
20369	// UnhealthyEvaluations - The unhealthy evaluations that show why the current aggregated health state was returned by Health Manager.
20370	UnhealthyEvaluations *[]HealthEvaluationWrapper `json:"UnhealthyEvaluations,omitempty"`
20371	// HealthStatistics - Shows the health statistics for all children types of the queried entity.
20372	HealthStatistics *HealthStatistics `json:"HealthStatistics,omitempty"`
20373}
20374
20375// EntityHealthState a base type for the health state of various entities in the cluster. It contains the
20376// aggregated health state.
20377type EntityHealthState struct {
20378	// 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'
20379	AggregatedHealthState HealthState `json:"AggregatedHealthState,omitempty"`
20380}
20381
20382// EntityHealthStateChunk a base type for the health state chunk of various entities in the cluster. It
20383// contains the aggregated health state.
20384type EntityHealthStateChunk struct {
20385	// 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'
20386	HealthState HealthState `json:"HealthState,omitempty"`
20387}
20388
20389// EntityHealthStateChunkList a base type for the list of health state chunks found in the cluster. It
20390// contains the total number of health states that match the input filters.
20391type EntityHealthStateChunkList struct {
20392	// TotalCount - Total number of entity health state objects that match the specified filters from the cluster health chunk query description.
20393	TotalCount *int64 `json:"TotalCount,omitempty"`
20394}
20395
20396// EntityKindHealthStateCount represents health state count for entities of the specified entity kind.
20397type EntityKindHealthStateCount struct {
20398	// EntityKind - The entity kind for which health states are evaluated. Possible values include: 'EntityKindInvalid', 'EntityKindNode', 'EntityKindPartition', 'EntityKindService', 'EntityKindApplication', 'EntityKindReplica', 'EntityKindDeployedApplication', 'EntityKindDeployedServicePackage', 'EntityKindCluster'
20399	EntityKind EntityKind `json:"EntityKind,omitempty"`
20400	// HealthStateCount - The health state count for the entities of the specified kind.
20401	HealthStateCount *HealthStateCount `json:"HealthStateCount,omitempty"`
20402}
20403
20404// EnvironmentVariable describes an environment variable for the container.
20405type EnvironmentVariable struct {
20406	// Name - The name of the environment variable.
20407	Name *string `json:"name,omitempty"`
20408	// Value - The value of the environment variable.
20409	Value *string `json:"value,omitempty"`
20410}
20411
20412// Epoch an Epoch is a configuration number for the partition as a whole. When the configuration of the
20413// replica set changes, for example when the Primary replica changes, the operations that are replicated
20414// from the new Primary replica are said to be a new Epoch from the ones which were sent by the old Primary
20415// replica.
20416type Epoch struct {
20417	// 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.
20418	ConfigurationVersion *string `json:"ConfigurationVersion,omitempty"`
20419	// 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.
20420	DataLossVersion *string `json:"DataLossVersion,omitempty"`
20421}
20422
20423// EventHealthEvaluation represents health evaluation of a HealthEvent that was reported on the entity.
20424// The health evaluation is returned when evaluating health of an entity results in Error or Warning.
20425type EventHealthEvaluation struct {
20426	// 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.
20427	ConsiderWarningAsError *bool `json:"ConsiderWarningAsError,omitempty"`
20428	// UnhealthyEvent - Represents health information reported on a health entity, such as cluster, application or node, with additional metadata added by the Health Manager.
20429	UnhealthyEvent *HealthEvent `json:"UnhealthyEvent,omitempty"`
20430	// 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'
20431	AggregatedHealthState HealthState `json:"AggregatedHealthState,omitempty"`
20432	// Description - Description of the health evaluation, which represents a summary of the evaluation process.
20433	Description *string `json:"Description,omitempty"`
20434	// 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'
20435	Kind Kind `json:"Kind,omitempty"`
20436}
20437
20438// MarshalJSON is the custom marshaler for EventHealthEvaluation.
20439func (ehe EventHealthEvaluation) MarshalJSON() ([]byte, error) {
20440	ehe.Kind = KindEvent
20441	objectMap := make(map[string]interface{})
20442	if ehe.ConsiderWarningAsError != nil {
20443		objectMap["ConsiderWarningAsError"] = ehe.ConsiderWarningAsError
20444	}
20445	if ehe.UnhealthyEvent != nil {
20446		objectMap["UnhealthyEvent"] = ehe.UnhealthyEvent
20447	}
20448	if ehe.AggregatedHealthState != "" {
20449		objectMap["AggregatedHealthState"] = ehe.AggregatedHealthState
20450	}
20451	if ehe.Description != nil {
20452		objectMap["Description"] = ehe.Description
20453	}
20454	if ehe.Kind != "" {
20455		objectMap["Kind"] = ehe.Kind
20456	}
20457	return json.Marshal(objectMap)
20458}
20459
20460// AsApplicationHealthEvaluation is the BasicHealthEvaluation implementation for EventHealthEvaluation.
20461func (ehe EventHealthEvaluation) AsApplicationHealthEvaluation() (*ApplicationHealthEvaluation, bool) {
20462	return nil, false
20463}
20464
20465// AsApplicationsHealthEvaluation is the BasicHealthEvaluation implementation for EventHealthEvaluation.
20466func (ehe EventHealthEvaluation) AsApplicationsHealthEvaluation() (*ApplicationsHealthEvaluation, bool) {
20467	return nil, false
20468}
20469
20470// AsApplicationTypeApplicationsHealthEvaluation is the BasicHealthEvaluation implementation for EventHealthEvaluation.
20471func (ehe EventHealthEvaluation) AsApplicationTypeApplicationsHealthEvaluation() (*ApplicationTypeApplicationsHealthEvaluation, bool) {
20472	return nil, false
20473}
20474
20475// AsDeltaNodesCheckHealthEvaluation is the BasicHealthEvaluation implementation for EventHealthEvaluation.
20476func (ehe EventHealthEvaluation) AsDeltaNodesCheckHealthEvaluation() (*DeltaNodesCheckHealthEvaluation, bool) {
20477	return nil, false
20478}
20479
20480// AsDeployedApplicationHealthEvaluation is the BasicHealthEvaluation implementation for EventHealthEvaluation.
20481func (ehe EventHealthEvaluation) AsDeployedApplicationHealthEvaluation() (*DeployedApplicationHealthEvaluation, bool) {
20482	return nil, false
20483}
20484
20485// AsDeployedApplicationsHealthEvaluation is the BasicHealthEvaluation implementation for EventHealthEvaluation.
20486func (ehe EventHealthEvaluation) AsDeployedApplicationsHealthEvaluation() (*DeployedApplicationsHealthEvaluation, bool) {
20487	return nil, false
20488}
20489
20490// AsDeployedServicePackageHealthEvaluation is the BasicHealthEvaluation implementation for EventHealthEvaluation.
20491func (ehe EventHealthEvaluation) AsDeployedServicePackageHealthEvaluation() (*DeployedServicePackageHealthEvaluation, bool) {
20492	return nil, false
20493}
20494
20495// AsDeployedServicePackagesHealthEvaluation is the BasicHealthEvaluation implementation for EventHealthEvaluation.
20496func (ehe EventHealthEvaluation) AsDeployedServicePackagesHealthEvaluation() (*DeployedServicePackagesHealthEvaluation, bool) {
20497	return nil, false
20498}
20499
20500// AsEventHealthEvaluation is the BasicHealthEvaluation implementation for EventHealthEvaluation.
20501func (ehe EventHealthEvaluation) AsEventHealthEvaluation() (*EventHealthEvaluation, bool) {
20502	return &ehe, true
20503}
20504
20505// AsNodeHealthEvaluation is the BasicHealthEvaluation implementation for EventHealthEvaluation.
20506func (ehe EventHealthEvaluation) AsNodeHealthEvaluation() (*NodeHealthEvaluation, bool) {
20507	return nil, false
20508}
20509
20510// AsNodesHealthEvaluation is the BasicHealthEvaluation implementation for EventHealthEvaluation.
20511func (ehe EventHealthEvaluation) AsNodesHealthEvaluation() (*NodesHealthEvaluation, bool) {
20512	return nil, false
20513}
20514
20515// AsPartitionHealthEvaluation is the BasicHealthEvaluation implementation for EventHealthEvaluation.
20516func (ehe EventHealthEvaluation) AsPartitionHealthEvaluation() (*PartitionHealthEvaluation, bool) {
20517	return nil, false
20518}
20519
20520// AsPartitionsHealthEvaluation is the BasicHealthEvaluation implementation for EventHealthEvaluation.
20521func (ehe EventHealthEvaluation) AsPartitionsHealthEvaluation() (*PartitionsHealthEvaluation, bool) {
20522	return nil, false
20523}
20524
20525// AsReplicaHealthEvaluation is the BasicHealthEvaluation implementation for EventHealthEvaluation.
20526func (ehe EventHealthEvaluation) AsReplicaHealthEvaluation() (*ReplicaHealthEvaluation, bool) {
20527	return nil, false
20528}
20529
20530// AsReplicasHealthEvaluation is the BasicHealthEvaluation implementation for EventHealthEvaluation.
20531func (ehe EventHealthEvaluation) AsReplicasHealthEvaluation() (*ReplicasHealthEvaluation, bool) {
20532	return nil, false
20533}
20534
20535// AsServiceHealthEvaluation is the BasicHealthEvaluation implementation for EventHealthEvaluation.
20536func (ehe EventHealthEvaluation) AsServiceHealthEvaluation() (*ServiceHealthEvaluation, bool) {
20537	return nil, false
20538}
20539
20540// AsServicesHealthEvaluation is the BasicHealthEvaluation implementation for EventHealthEvaluation.
20541func (ehe EventHealthEvaluation) AsServicesHealthEvaluation() (*ServicesHealthEvaluation, bool) {
20542	return nil, false
20543}
20544
20545// AsSystemApplicationHealthEvaluation is the BasicHealthEvaluation implementation for EventHealthEvaluation.
20546func (ehe EventHealthEvaluation) AsSystemApplicationHealthEvaluation() (*SystemApplicationHealthEvaluation, bool) {
20547	return nil, false
20548}
20549
20550// AsUpgradeDomainDeltaNodesCheckHealthEvaluation is the BasicHealthEvaluation implementation for EventHealthEvaluation.
20551func (ehe EventHealthEvaluation) AsUpgradeDomainDeltaNodesCheckHealthEvaluation() (*UpgradeDomainDeltaNodesCheckHealthEvaluation, bool) {
20552	return nil, false
20553}
20554
20555// AsUpgradeDomainNodesHealthEvaluation is the BasicHealthEvaluation implementation for EventHealthEvaluation.
20556func (ehe EventHealthEvaluation) AsUpgradeDomainNodesHealthEvaluation() (*UpgradeDomainNodesHealthEvaluation, bool) {
20557	return nil, false
20558}
20559
20560// AsHealthEvaluation is the BasicHealthEvaluation implementation for EventHealthEvaluation.
20561func (ehe EventHealthEvaluation) AsHealthEvaluation() (*HealthEvaluation, bool) {
20562	return nil, false
20563}
20564
20565// AsBasicHealthEvaluation is the BasicHealthEvaluation implementation for EventHealthEvaluation.
20566func (ehe EventHealthEvaluation) AsBasicHealthEvaluation() (BasicHealthEvaluation, bool) {
20567	return &ehe, true
20568}
20569
20570// ExecutingFaultsChaosEvent describes a Chaos event that gets generated when Chaos has decided on the
20571// faults for an iteration. This Chaos event contains the details of the faults as a list of strings.
20572type ExecutingFaultsChaosEvent struct {
20573	// Faults - List of string description of the faults that Chaos decided to execute in an iteration.
20574	Faults *[]string `json:"Faults,omitempty"`
20575	// TimeStampUtc - The UTC timestamp when this Chaos event was generated.
20576	TimeStampUtc *date.Time `json:"TimeStampUtc,omitempty"`
20577	// Kind - Possible values include: 'KindChaosEvent', 'KindExecutingFaults', 'KindStarted', 'KindStopped', 'KindTestError', 'KindValidationFailed', 'KindWaiting'
20578	Kind KindBasicChaosEvent `json:"Kind,omitempty"`
20579}
20580
20581// MarshalJSON is the custom marshaler for ExecutingFaultsChaosEvent.
20582func (efce ExecutingFaultsChaosEvent) MarshalJSON() ([]byte, error) {
20583	efce.Kind = KindExecutingFaults
20584	objectMap := make(map[string]interface{})
20585	if efce.Faults != nil {
20586		objectMap["Faults"] = efce.Faults
20587	}
20588	if efce.TimeStampUtc != nil {
20589		objectMap["TimeStampUtc"] = efce.TimeStampUtc
20590	}
20591	if efce.Kind != "" {
20592		objectMap["Kind"] = efce.Kind
20593	}
20594	return json.Marshal(objectMap)
20595}
20596
20597// AsExecutingFaultsChaosEvent is the BasicChaosEvent implementation for ExecutingFaultsChaosEvent.
20598func (efce ExecutingFaultsChaosEvent) AsExecutingFaultsChaosEvent() (*ExecutingFaultsChaosEvent, bool) {
20599	return &efce, true
20600}
20601
20602// AsStartedChaosEvent is the BasicChaosEvent implementation for ExecutingFaultsChaosEvent.
20603func (efce ExecutingFaultsChaosEvent) AsStartedChaosEvent() (*StartedChaosEvent, bool) {
20604	return nil, false
20605}
20606
20607// AsStoppedChaosEvent is the BasicChaosEvent implementation for ExecutingFaultsChaosEvent.
20608func (efce ExecutingFaultsChaosEvent) AsStoppedChaosEvent() (*StoppedChaosEvent, bool) {
20609	return nil, false
20610}
20611
20612// AsTestErrorChaosEvent is the BasicChaosEvent implementation for ExecutingFaultsChaosEvent.
20613func (efce ExecutingFaultsChaosEvent) AsTestErrorChaosEvent() (*TestErrorChaosEvent, bool) {
20614	return nil, false
20615}
20616
20617// AsValidationFailedChaosEvent is the BasicChaosEvent implementation for ExecutingFaultsChaosEvent.
20618func (efce ExecutingFaultsChaosEvent) AsValidationFailedChaosEvent() (*ValidationFailedChaosEvent, bool) {
20619	return nil, false
20620}
20621
20622// AsWaitingChaosEvent is the BasicChaosEvent implementation for ExecutingFaultsChaosEvent.
20623func (efce ExecutingFaultsChaosEvent) AsWaitingChaosEvent() (*WaitingChaosEvent, bool) {
20624	return nil, false
20625}
20626
20627// AsChaosEvent is the BasicChaosEvent implementation for ExecutingFaultsChaosEvent.
20628func (efce ExecutingFaultsChaosEvent) AsChaosEvent() (*ChaosEvent, bool) {
20629	return nil, false
20630}
20631
20632// AsBasicChaosEvent is the BasicChaosEvent implementation for ExecutingFaultsChaosEvent.
20633func (efce ExecutingFaultsChaosEvent) AsBasicChaosEvent() (BasicChaosEvent, bool) {
20634	return &efce, true
20635}
20636
20637// ExternalStoreProvisionApplicationTypeDescription describes the operation to register or provision an
20638// application type using an application package from an external store instead of a package uploaded to
20639// the Service Fabric image store.
20640type ExternalStoreProvisionApplicationTypeDescription struct {
20641	// 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.
20642	ApplicationPackageDownloadURI *string `json:"ApplicationPackageDownloadUri,omitempty"`
20643	// ApplicationTypeName - The application type name represents the name of the application type found in the application manifest.
20644	ApplicationTypeName *string `json:"ApplicationTypeName,omitempty"`
20645	// ApplicationTypeVersion - The application type version represents the version of the application type found in the application manifest.
20646	ApplicationTypeVersion *string `json:"ApplicationTypeVersion,omitempty"`
20647	// 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.
20648	Async *bool `json:"Async,omitempty"`
20649	// Kind - Possible values include: 'KindProvisionApplicationTypeDescriptionBase', 'KindImageStorePath', 'KindExternalStore'
20650	Kind KindBasicProvisionApplicationTypeDescriptionBase `json:"Kind,omitempty"`
20651}
20652
20653// MarshalJSON is the custom marshaler for ExternalStoreProvisionApplicationTypeDescription.
20654func (espatd ExternalStoreProvisionApplicationTypeDescription) MarshalJSON() ([]byte, error) {
20655	espatd.Kind = KindExternalStore
20656	objectMap := make(map[string]interface{})
20657	if espatd.ApplicationPackageDownloadURI != nil {
20658		objectMap["ApplicationPackageDownloadUri"] = espatd.ApplicationPackageDownloadURI
20659	}
20660	if espatd.ApplicationTypeName != nil {
20661		objectMap["ApplicationTypeName"] = espatd.ApplicationTypeName
20662	}
20663	if espatd.ApplicationTypeVersion != nil {
20664		objectMap["ApplicationTypeVersion"] = espatd.ApplicationTypeVersion
20665	}
20666	if espatd.Async != nil {
20667		objectMap["Async"] = espatd.Async
20668	}
20669	if espatd.Kind != "" {
20670		objectMap["Kind"] = espatd.Kind
20671	}
20672	return json.Marshal(objectMap)
20673}
20674
20675// AsProvisionApplicationTypeDescription is the BasicProvisionApplicationTypeDescriptionBase implementation for ExternalStoreProvisionApplicationTypeDescription.
20676func (espatd ExternalStoreProvisionApplicationTypeDescription) AsProvisionApplicationTypeDescription() (*ProvisionApplicationTypeDescription, bool) {
20677	return nil, false
20678}
20679
20680// AsExternalStoreProvisionApplicationTypeDescription is the BasicProvisionApplicationTypeDescriptionBase implementation for ExternalStoreProvisionApplicationTypeDescription.
20681func (espatd ExternalStoreProvisionApplicationTypeDescription) AsExternalStoreProvisionApplicationTypeDescription() (*ExternalStoreProvisionApplicationTypeDescription, bool) {
20682	return &espatd, true
20683}
20684
20685// AsProvisionApplicationTypeDescriptionBase is the BasicProvisionApplicationTypeDescriptionBase implementation for ExternalStoreProvisionApplicationTypeDescription.
20686func (espatd ExternalStoreProvisionApplicationTypeDescription) AsProvisionApplicationTypeDescriptionBase() (*ProvisionApplicationTypeDescriptionBase, bool) {
20687	return nil, false
20688}
20689
20690// AsBasicProvisionApplicationTypeDescriptionBase is the BasicProvisionApplicationTypeDescriptionBase implementation for ExternalStoreProvisionApplicationTypeDescription.
20691func (espatd ExternalStoreProvisionApplicationTypeDescription) AsBasicProvisionApplicationTypeDescriptionBase() (BasicProvisionApplicationTypeDescriptionBase, bool) {
20692	return &espatd, true
20693}
20694
20695// FabricCodeVersionInfo information about a Service Fabric code version.
20696type FabricCodeVersionInfo struct {
20697	// CodeVersion - The product version of Service Fabric.
20698	CodeVersion *string `json:"CodeVersion,omitempty"`
20699}
20700
20701// FabricConfigVersionInfo information about a Service Fabric config version.
20702type FabricConfigVersionInfo struct {
20703	// ConfigVersion - The config version of Service Fabric.
20704	ConfigVersion *string `json:"ConfigVersion,omitempty"`
20705}
20706
20707// FabricError the REST API operations for Service Fabric return standard HTTP status codes. This type
20708// defines the additional information returned from the Service Fabric API operations that are not
20709// successful.
20710type FabricError struct {
20711	// Error - Error object containing error code and error message.
20712	Error *FabricErrorError `json:"Error,omitempty"`
20713}
20714
20715// FabricErrorError error object containing error code and error message.
20716type FabricErrorError struct {
20717	// 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.
20718	//   - Possible values of the error code for HTTP status code 400 (Bad Request)
20719	//     - "FABRIC_E_INVALID_PARTITION_KEY"
20720	//     - "FABRIC_E_IMAGEBUILDER_VALIDATION_ERROR"
20721	//     - "FABRIC_E_INVALID_ADDRESS"
20722	//     - "FABRIC_E_APPLICATION_NOT_UPGRADING"
20723	//     - "FABRIC_E_APPLICATION_UPGRADE_VALIDATION_ERROR"
20724	//     - "FABRIC_E_FABRIC_NOT_UPGRADING"
20725	//     - "FABRIC_E_FABRIC_UPGRADE_VALIDATION_ERROR"
20726	//     - "FABRIC_E_INVALID_CONFIGURATION"
20727	//     - "FABRIC_E_INVALID_NAME_URI"
20728	//     - "FABRIC_E_PATH_TOO_LONG"
20729	//     - "FABRIC_E_KEY_TOO_LARGE"
20730	//     - "FABRIC_E_SERVICE_AFFINITY_CHAIN_NOT_SUPPORTED"
20731	//     - "FABRIC_E_INVALID_ATOMIC_GROUP"
20732	//     - "FABRIC_E_VALUE_EMPTY"
20733	//     - "FABRIC_E_BACKUP_IS_ENABLED"
20734	//     - "FABRIC_E_RESTORE_SOURCE_TARGET_PARTITION_MISMATCH"
20735	//     - "FABRIC_E_INVALID_FOR_STATELESS_SERVICES"
20736	//     - "FABRIC_E_INVALID_SERVICE_SCALING_POLICY"
20737	//     - "E_INVALIDARG"
20738	//   - Possible values of the error code for HTTP status code 404 (Not Found)
20739	//     - "FABRIC_E_NODE_NOT_FOUND"
20740	//     - "FABRIC_E_APPLICATION_TYPE_NOT_FOUND"
20741	//     - "FABRIC_E_APPLICATION_NOT_FOUND"
20742	//     - "FABRIC_E_SERVICE_TYPE_NOT_FOUND"
20743	//     - "FABRIC_E_SERVICE_DOES_NOT_EXIST"
20744	//     - "FABRIC_E_SERVICE_TYPE_TEMPLATE_NOT_FOUND"
20745	//     - "FABRIC_E_CONFIGURATION_SECTION_NOT_FOUND"
20746	//     - "FABRIC_E_PARTITION_NOT_FOUND"
20747	//     - "FABRIC_E_REPLICA_DOES_NOT_EXIST"
20748	//     - "FABRIC_E_SERVICE_GROUP_DOES_NOT_EXIST"
20749	//     - "FABRIC_E_CONFIGURATION_PARAMETER_NOT_FOUND"
20750	//     - "FABRIC_E_DIRECTORY_NOT_FOUND"
20751	//     - "FABRIC_E_FABRIC_VERSION_NOT_FOUND"
20752	//     - "FABRIC_E_FILE_NOT_FOUND"
20753	//     - "FABRIC_E_NAME_DOES_NOT_EXIST"
20754	//     - "FABRIC_E_PROPERTY_DOES_NOT_EXIST"
20755	//     - "FABRIC_E_ENUMERATION_COMPLETED"
20756	//     - "FABRIC_E_SERVICE_MANIFEST_NOT_FOUND"
20757	//     - "FABRIC_E_KEY_NOT_FOUND"
20758	//     - "FABRIC_E_HEALTH_ENTITY_NOT_FOUND"
20759	//     - "FABRIC_E_BACKUP_NOT_ENABLED"
20760	//     - "FABRIC_E_BACKUP_POLICY_NOT_EXISTING"
20761	//     - "FABRIC_E_FAULT_ANALYSIS_SERVICE_NOT_EXISTING"
20762	//     - "FABRIC_E_IMAGEBUILDER_RESERVED_DIRECTORY_ERROR"
20763	//   - Possible values of the error code for HTTP status code 409 (Conflict)
20764	//     - "FABRIC_E_APPLICATION_TYPE_ALREADY_EXISTS"
20765	//     - "FABRIC_E_APPLICATION_ALREADY_EXISTS"
20766	//     - "FABRIC_E_APPLICATION_ALREADY_IN_TARGET_VERSION"
20767	//     - "FABRIC_E_APPLICATION_TYPE_PROVISION_IN_PROGRESS"
20768	//     - "FABRIC_E_APPLICATION_UPGRADE_IN_PROGRESS"
20769	//     - "FABRIC_E_SERVICE_ALREADY_EXISTS"
20770	//     - "FABRIC_E_SERVICE_GROUP_ALREADY_EXISTS"
20771	//     - "FABRIC_E_APPLICATION_TYPE_IN_USE"
20772	//     - "FABRIC_E_FABRIC_ALREADY_IN_TARGET_VERSION"
20773	//     - "FABRIC_E_FABRIC_VERSION_ALREADY_EXISTS"
20774	//     - "FABRIC_E_FABRIC_VERSION_IN_USE"
20775	//     - "FABRIC_E_FABRIC_UPGRADE_IN_PROGRESS"
20776	//     - "FABRIC_E_NAME_ALREADY_EXISTS"
20777	//     - "FABRIC_E_NAME_NOT_EMPTY"
20778	//     - "FABRIC_E_PROPERTY_CHECK_FAILED"
20779	//     - "FABRIC_E_SERVICE_METADATA_MISMATCH"
20780	//     - "FABRIC_E_SERVICE_TYPE_MISMATCH"
20781	//     - "FABRIC_E_HEALTH_STALE_REPORT"
20782	//     - "FABRIC_E_SEQUENCE_NUMBER_CHECK_FAILED"
20783	//     - "FABRIC_E_NODE_HAS_NOT_STOPPED_YET"
20784	//     - "FABRIC_E_INSTANCE_ID_MISMATCH"
20785	//     - "FABRIC_E_BACKUP_IN_PROGRESS"
20786	//     - "FABRIC_E_RESTORE_IN_PROGRESS"
20787	//     - "FABRIC_E_BACKUP_POLICY_ALREADY_EXISTING"
20788	//   - Possible values of the error code for HTTP status code 413 (Request Entity Too Large)
20789	//     - "FABRIC_E_VALUE_TOO_LARGE"
20790	//   - Possible values of the error code for HTTP status code 500 (Internal Server Error)
20791	//     - "FABRIC_E_NODE_IS_UP"
20792	//     - "E_FAIL"
20793	//     - "FABRIC_E_SINGLE_INSTANCE_APPLICATION_ALREADY_EXISTS"
20794	//     - "FABRIC_E_SINGLE_INSTANCE_APPLICATION_NOT_FOUND"
20795	//     - "FABRIC_E_VOLUME_ALREADY_EXISTS"
20796	//     - "FABRIC_E_VOLUME_NOT_FOUND"
20797	//     - "SerializationError"
20798	//   - Possible values of the error code for HTTP status code 503 (Service Unavailable)
20799	//     - "FABRIC_E_NO_WRITE_QUORUM"
20800	//     - "FABRIC_E_NOT_PRIMARY"
20801	//     - "FABRIC_E_NOT_READY"
20802	//     - "FABRIC_E_RECONFIGURATION_PENDING"
20803	//     - "FABRIC_E_SERVICE_OFFLINE"
20804	//     - "E_ABORT"
20805	//     - "FABRIC_E_VALUE_TOO_LARGE"
20806	//   - Possible values of the error code for HTTP status code 504 (Gateway Timeout)
20807	//     - "FABRIC_E_COMMUNICATION_ERROR"
20808	//     - "FABRIC_E_OPERATION_NOT_COMPLETE"
20809	//     - "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'
20810	Code FabricErrorCodes `json:"Code,omitempty"`
20811	// Message - Error message.
20812	Message *string `json:"Message,omitempty"`
20813}
20814
20815// BasicFabricEvent represents the base for all Fabric Events.
20816type BasicFabricEvent interface {
20817	AsApplicationEvent() (*ApplicationEvent, bool)
20818	AsBasicApplicationEvent() (BasicApplicationEvent, bool)
20819	AsClusterEvent() (*ClusterEvent, bool)
20820	AsBasicClusterEvent() (BasicClusterEvent, bool)
20821	AsContainerInstanceEvent() (*ContainerInstanceEvent, bool)
20822	AsNodeEvent() (*NodeEvent, bool)
20823	AsBasicNodeEvent() (BasicNodeEvent, bool)
20824	AsPartitionAnalysisEvent() (*PartitionAnalysisEvent, bool)
20825	AsBasicPartitionAnalysisEvent() (BasicPartitionAnalysisEvent, bool)
20826	AsPartitionEvent() (*PartitionEvent, bool)
20827	AsBasicPartitionEvent() (BasicPartitionEvent, bool)
20828	AsReplicaEvent() (*ReplicaEvent, bool)
20829	AsBasicReplicaEvent() (BasicReplicaEvent, bool)
20830	AsServiceEvent() (*ServiceEvent, bool)
20831	AsBasicServiceEvent() (BasicServiceEvent, bool)
20832	AsApplicationCreatedEvent() (*ApplicationCreatedEvent, bool)
20833	AsApplicationDeletedEvent() (*ApplicationDeletedEvent, bool)
20834	AsApplicationNewHealthReportEvent() (*ApplicationNewHealthReportEvent, bool)
20835	AsApplicationHealthReportExpiredEvent() (*ApplicationHealthReportExpiredEvent, bool)
20836	AsApplicationUpgradeCompletedEvent() (*ApplicationUpgradeCompletedEvent, bool)
20837	AsApplicationUpgradeDomainCompletedEvent() (*ApplicationUpgradeDomainCompletedEvent, bool)
20838	AsApplicationUpgradeRollbackCompletedEvent() (*ApplicationUpgradeRollbackCompletedEvent, bool)
20839	AsApplicationUpgradeRollbackStartedEvent() (*ApplicationUpgradeRollbackStartedEvent, bool)
20840	AsApplicationUpgradeStartedEvent() (*ApplicationUpgradeStartedEvent, bool)
20841	AsDeployedApplicationNewHealthReportEvent() (*DeployedApplicationNewHealthReportEvent, bool)
20842	AsDeployedApplicationHealthReportExpiredEvent() (*DeployedApplicationHealthReportExpiredEvent, bool)
20843	AsApplicationProcessExitedEvent() (*ApplicationProcessExitedEvent, bool)
20844	AsApplicationContainerInstanceExitedEvent() (*ApplicationContainerInstanceExitedEvent, bool)
20845	AsNodeAbortedEvent() (*NodeAbortedEvent, bool)
20846	AsNodeAddedToClusterEvent() (*NodeAddedToClusterEvent, bool)
20847	AsNodeClosedEvent() (*NodeClosedEvent, bool)
20848	AsNodeDeactivateCompletedEvent() (*NodeDeactivateCompletedEvent, bool)
20849	AsNodeDeactivateStartedEvent() (*NodeDeactivateStartedEvent, bool)
20850	AsNodeDownEvent() (*NodeDownEvent, bool)
20851	AsNodeNewHealthReportEvent() (*NodeNewHealthReportEvent, bool)
20852	AsNodeHealthReportExpiredEvent() (*NodeHealthReportExpiredEvent, bool)
20853	AsNodeOpenSucceededEvent() (*NodeOpenSucceededEvent, bool)
20854	AsNodeOpenFailedEvent() (*NodeOpenFailedEvent, bool)
20855	AsNodeRemovedFromClusterEvent() (*NodeRemovedFromClusterEvent, bool)
20856	AsNodeUpEvent() (*NodeUpEvent, bool)
20857	AsPartitionNewHealthReportEvent() (*PartitionNewHealthReportEvent, bool)
20858	AsPartitionHealthReportExpiredEvent() (*PartitionHealthReportExpiredEvent, bool)
20859	AsPartitionReconfiguredEvent() (*PartitionReconfiguredEvent, bool)
20860	AsPartitionPrimaryMoveAnalysisEvent() (*PartitionPrimaryMoveAnalysisEvent, bool)
20861	AsServiceCreatedEvent() (*ServiceCreatedEvent, bool)
20862	AsServiceDeletedEvent() (*ServiceDeletedEvent, bool)
20863	AsServiceNewHealthReportEvent() (*ServiceNewHealthReportEvent, bool)
20864	AsServiceHealthReportExpiredEvent() (*ServiceHealthReportExpiredEvent, bool)
20865	AsDeployedServicePackageNewHealthReportEvent() (*DeployedServicePackageNewHealthReportEvent, bool)
20866	AsDeployedServicePackageHealthReportExpiredEvent() (*DeployedServicePackageHealthReportExpiredEvent, bool)
20867	AsStatefulReplicaNewHealthReportEvent() (*StatefulReplicaNewHealthReportEvent, bool)
20868	AsStatefulReplicaHealthReportExpiredEvent() (*StatefulReplicaHealthReportExpiredEvent, bool)
20869	AsStatelessReplicaNewHealthReportEvent() (*StatelessReplicaNewHealthReportEvent, bool)
20870	AsStatelessReplicaHealthReportExpiredEvent() (*StatelessReplicaHealthReportExpiredEvent, bool)
20871	AsClusterNewHealthReportEvent() (*ClusterNewHealthReportEvent, bool)
20872	AsClusterHealthReportExpiredEvent() (*ClusterHealthReportExpiredEvent, bool)
20873	AsClusterUpgradeCompletedEvent() (*ClusterUpgradeCompletedEvent, bool)
20874	AsClusterUpgradeDomainCompletedEvent() (*ClusterUpgradeDomainCompletedEvent, bool)
20875	AsClusterUpgradeRollbackCompletedEvent() (*ClusterUpgradeRollbackCompletedEvent, bool)
20876	AsClusterUpgradeRollbackStartedEvent() (*ClusterUpgradeRollbackStartedEvent, bool)
20877	AsClusterUpgradeStartedEvent() (*ClusterUpgradeStartedEvent, bool)
20878	AsChaosStoppedEvent() (*ChaosStoppedEvent, bool)
20879	AsChaosStartedEvent() (*ChaosStartedEvent, bool)
20880	AsChaosCodePackageRestartScheduledEvent() (*ChaosCodePackageRestartScheduledEvent, bool)
20881	AsChaosReplicaRemovalScheduledEvent() (*ChaosReplicaRemovalScheduledEvent, bool)
20882	AsChaosPartitionSecondaryMoveScheduledEvent() (*ChaosPartitionSecondaryMoveScheduledEvent, bool)
20883	AsChaosPartitionPrimaryMoveScheduledEvent() (*ChaosPartitionPrimaryMoveScheduledEvent, bool)
20884	AsChaosReplicaRestartScheduledEvent() (*ChaosReplicaRestartScheduledEvent, bool)
20885	AsChaosNodeRestartScheduledEvent() (*ChaosNodeRestartScheduledEvent, bool)
20886	AsFabricEvent() (*FabricEvent, bool)
20887}
20888
20889// FabricEvent represents the base for all Fabric Events.
20890type FabricEvent struct {
20891	// EventInstanceID - The identifier for the FabricEvent instance.
20892	EventInstanceID *uuid.UUID `json:"EventInstanceId,omitempty"`
20893	// Category - The category of event.
20894	Category *string `json:"Category,omitempty"`
20895	// TimeStamp - The time event was logged.
20896	TimeStamp *date.Time `json:"TimeStamp,omitempty"`
20897	// HasCorrelatedEvents - Shows there is existing related events available.
20898	HasCorrelatedEvents *bool `json:"HasCorrelatedEvents,omitempty"`
20899	// 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'
20900	Kind KindBasicFabricEvent `json:"Kind,omitempty"`
20901}
20902
20903func unmarshalBasicFabricEvent(body []byte) (BasicFabricEvent, error) {
20904	var m map[string]interface{}
20905	err := json.Unmarshal(body, &m)
20906	if err != nil {
20907		return nil, err
20908	}
20909
20910	switch m["Kind"] {
20911	case string(KindApplicationEvent):
20912		var ae ApplicationEvent
20913		err := json.Unmarshal(body, &ae)
20914		return ae, err
20915	case string(KindClusterEvent):
20916		var ce ClusterEvent
20917		err := json.Unmarshal(body, &ce)
20918		return ce, err
20919	case string(KindContainerInstanceEvent):
20920		var cie ContainerInstanceEvent
20921		err := json.Unmarshal(body, &cie)
20922		return cie, err
20923	case string(KindNodeEvent):
20924		var ne NodeEvent
20925		err := json.Unmarshal(body, &ne)
20926		return ne, err
20927	case string(KindPartitionAnalysisEvent):
20928		var pae PartitionAnalysisEvent
20929		err := json.Unmarshal(body, &pae)
20930		return pae, err
20931	case string(KindPartitionEvent):
20932		var peVar PartitionEvent
20933		err := json.Unmarshal(body, &peVar)
20934		return peVar, err
20935	case string(KindReplicaEvent):
20936		var re ReplicaEvent
20937		err := json.Unmarshal(body, &re)
20938		return re, err
20939	case string(KindServiceEvent):
20940		var se ServiceEvent
20941		err := json.Unmarshal(body, &se)
20942		return se, err
20943	case string(KindApplicationCreated):
20944		var ace ApplicationCreatedEvent
20945		err := json.Unmarshal(body, &ace)
20946		return ace, err
20947	case string(KindApplicationDeleted):
20948		var ade ApplicationDeletedEvent
20949		err := json.Unmarshal(body, &ade)
20950		return ade, err
20951	case string(KindApplicationNewHealthReport):
20952		var anhre ApplicationNewHealthReportEvent
20953		err := json.Unmarshal(body, &anhre)
20954		return anhre, err
20955	case string(KindApplicationHealthReportExpired):
20956		var ahree ApplicationHealthReportExpiredEvent
20957		err := json.Unmarshal(body, &ahree)
20958		return ahree, err
20959	case string(KindApplicationUpgradeCompleted):
20960		var auce ApplicationUpgradeCompletedEvent
20961		err := json.Unmarshal(body, &auce)
20962		return auce, err
20963	case string(KindApplicationUpgradeDomainCompleted):
20964		var audce ApplicationUpgradeDomainCompletedEvent
20965		err := json.Unmarshal(body, &audce)
20966		return audce, err
20967	case string(KindApplicationUpgradeRollbackCompleted):
20968		var aurce ApplicationUpgradeRollbackCompletedEvent
20969		err := json.Unmarshal(body, &aurce)
20970		return aurce, err
20971	case string(KindApplicationUpgradeRollbackStarted):
20972		var aurse ApplicationUpgradeRollbackStartedEvent
20973		err := json.Unmarshal(body, &aurse)
20974		return aurse, err
20975	case string(KindApplicationUpgradeStarted):
20976		var ause ApplicationUpgradeStartedEvent
20977		err := json.Unmarshal(body, &ause)
20978		return ause, err
20979	case string(KindDeployedApplicationNewHealthReport):
20980		var danhre DeployedApplicationNewHealthReportEvent
20981		err := json.Unmarshal(body, &danhre)
20982		return danhre, err
20983	case string(KindDeployedApplicationHealthReportExpired):
20984		var dahree DeployedApplicationHealthReportExpiredEvent
20985		err := json.Unmarshal(body, &dahree)
20986		return dahree, err
20987	case string(KindApplicationProcessExited):
20988		var apee ApplicationProcessExitedEvent
20989		err := json.Unmarshal(body, &apee)
20990		return apee, err
20991	case string(KindApplicationContainerInstanceExited):
20992		var aciee ApplicationContainerInstanceExitedEvent
20993		err := json.Unmarshal(body, &aciee)
20994		return aciee, err
20995	case string(KindNodeAborted):
20996		var nae NodeAbortedEvent
20997		err := json.Unmarshal(body, &nae)
20998		return nae, err
20999	case string(KindNodeAddedToCluster):
21000		var natce NodeAddedToClusterEvent
21001		err := json.Unmarshal(body, &natce)
21002		return natce, err
21003	case string(KindNodeClosed):
21004		var nce NodeClosedEvent
21005		err := json.Unmarshal(body, &nce)
21006		return nce, err
21007	case string(KindNodeDeactivateCompleted):
21008		var ndce NodeDeactivateCompletedEvent
21009		err := json.Unmarshal(body, &ndce)
21010		return ndce, err
21011	case string(KindNodeDeactivateStarted):
21012		var ndse NodeDeactivateStartedEvent
21013		err := json.Unmarshal(body, &ndse)
21014		return ndse, err
21015	case string(KindNodeDown):
21016		var nde NodeDownEvent
21017		err := json.Unmarshal(body, &nde)
21018		return nde, err
21019	case string(KindNodeNewHealthReport):
21020		var nnhre NodeNewHealthReportEvent
21021		err := json.Unmarshal(body, &nnhre)
21022		return nnhre, err
21023	case string(KindNodeHealthReportExpired):
21024		var nhree NodeHealthReportExpiredEvent
21025		err := json.Unmarshal(body, &nhree)
21026		return nhree, err
21027	case string(KindNodeOpenSucceeded):
21028		var nose NodeOpenSucceededEvent
21029		err := json.Unmarshal(body, &nose)
21030		return nose, err
21031	case string(KindNodeOpenFailed):
21032		var nofe NodeOpenFailedEvent
21033		err := json.Unmarshal(body, &nofe)
21034		return nofe, err
21035	case string(KindNodeRemovedFromCluster):
21036		var nrfce NodeRemovedFromClusterEvent
21037		err := json.Unmarshal(body, &nrfce)
21038		return nrfce, err
21039	case string(KindNodeUp):
21040		var nue NodeUpEvent
21041		err := json.Unmarshal(body, &nue)
21042		return nue, err
21043	case string(KindPartitionNewHealthReport):
21044		var pnhre PartitionNewHealthReportEvent
21045		err := json.Unmarshal(body, &pnhre)
21046		return pnhre, err
21047	case string(KindPartitionHealthReportExpired):
21048		var phree PartitionHealthReportExpiredEvent
21049		err := json.Unmarshal(body, &phree)
21050		return phree, err
21051	case string(KindPartitionReconfigured):
21052		var pre PartitionReconfiguredEvent
21053		err := json.Unmarshal(body, &pre)
21054		return pre, err
21055	case string(KindPartitionPrimaryMoveAnalysis):
21056		var ppmae PartitionPrimaryMoveAnalysisEvent
21057		err := json.Unmarshal(body, &ppmae)
21058		return ppmae, err
21059	case string(KindServiceCreated):
21060		var sce ServiceCreatedEvent
21061		err := json.Unmarshal(body, &sce)
21062		return sce, err
21063	case string(KindServiceDeleted):
21064		var sde ServiceDeletedEvent
21065		err := json.Unmarshal(body, &sde)
21066		return sde, err
21067	case string(KindServiceNewHealthReport):
21068		var snhre ServiceNewHealthReportEvent
21069		err := json.Unmarshal(body, &snhre)
21070		return snhre, err
21071	case string(KindServiceHealthReportExpired):
21072		var shree ServiceHealthReportExpiredEvent
21073		err := json.Unmarshal(body, &shree)
21074		return shree, err
21075	case string(KindDeployedServicePackageNewHealthReport):
21076		var dspnhre DeployedServicePackageNewHealthReportEvent
21077		err := json.Unmarshal(body, &dspnhre)
21078		return dspnhre, err
21079	case string(KindDeployedServicePackageHealthReportExpired):
21080		var dsphree DeployedServicePackageHealthReportExpiredEvent
21081		err := json.Unmarshal(body, &dsphree)
21082		return dsphree, err
21083	case string(KindStatefulReplicaNewHealthReport):
21084		var srnhre StatefulReplicaNewHealthReportEvent
21085		err := json.Unmarshal(body, &srnhre)
21086		return srnhre, err
21087	case string(KindStatefulReplicaHealthReportExpired):
21088		var srhree StatefulReplicaHealthReportExpiredEvent
21089		err := json.Unmarshal(body, &srhree)
21090		return srhree, err
21091	case string(KindStatelessReplicaNewHealthReport):
21092		var srnhre StatelessReplicaNewHealthReportEvent
21093		err := json.Unmarshal(body, &srnhre)
21094		return srnhre, err
21095	case string(KindStatelessReplicaHealthReportExpired):
21096		var srhree StatelessReplicaHealthReportExpiredEvent
21097		err := json.Unmarshal(body, &srhree)
21098		return srhree, err
21099	case string(KindClusterNewHealthReport):
21100		var cnhre ClusterNewHealthReportEvent
21101		err := json.Unmarshal(body, &cnhre)
21102		return cnhre, err
21103	case string(KindClusterHealthReportExpired):
21104		var chree ClusterHealthReportExpiredEvent
21105		err := json.Unmarshal(body, &chree)
21106		return chree, err
21107	case string(KindClusterUpgradeCompleted):
21108		var cuce ClusterUpgradeCompletedEvent
21109		err := json.Unmarshal(body, &cuce)
21110		return cuce, err
21111	case string(KindClusterUpgradeDomainCompleted):
21112		var cudce ClusterUpgradeDomainCompletedEvent
21113		err := json.Unmarshal(body, &cudce)
21114		return cudce, err
21115	case string(KindClusterUpgradeRollbackCompleted):
21116		var curce ClusterUpgradeRollbackCompletedEvent
21117		err := json.Unmarshal(body, &curce)
21118		return curce, err
21119	case string(KindClusterUpgradeRollbackStarted):
21120		var curse ClusterUpgradeRollbackStartedEvent
21121		err := json.Unmarshal(body, &curse)
21122		return curse, err
21123	case string(KindClusterUpgradeStarted):
21124		var cuse ClusterUpgradeStartedEvent
21125		err := json.Unmarshal(body, &cuse)
21126		return cuse, err
21127	case string(KindChaosStopped):
21128		var cse ChaosStoppedEvent
21129		err := json.Unmarshal(body, &cse)
21130		return cse, err
21131	case string(KindChaosStarted):
21132		var cse ChaosStartedEvent
21133		err := json.Unmarshal(body, &cse)
21134		return cse, err
21135	case string(KindChaosCodePackageRestartScheduled):
21136		var ccprse ChaosCodePackageRestartScheduledEvent
21137		err := json.Unmarshal(body, &ccprse)
21138		return ccprse, err
21139	case string(KindChaosReplicaRemovalScheduled):
21140		var crrse ChaosReplicaRemovalScheduledEvent
21141		err := json.Unmarshal(body, &crrse)
21142		return crrse, err
21143	case string(KindChaosPartitionSecondaryMoveScheduled):
21144		var cpsmse ChaosPartitionSecondaryMoveScheduledEvent
21145		err := json.Unmarshal(body, &cpsmse)
21146		return cpsmse, err
21147	case string(KindChaosPartitionPrimaryMoveScheduled):
21148		var cppmse ChaosPartitionPrimaryMoveScheduledEvent
21149		err := json.Unmarshal(body, &cppmse)
21150		return cppmse, err
21151	case string(KindChaosReplicaRestartScheduled):
21152		var crrse ChaosReplicaRestartScheduledEvent
21153		err := json.Unmarshal(body, &crrse)
21154		return crrse, err
21155	case string(KindChaosNodeRestartScheduled):
21156		var cnrse ChaosNodeRestartScheduledEvent
21157		err := json.Unmarshal(body, &cnrse)
21158		return cnrse, err
21159	default:
21160		var fe FabricEvent
21161		err := json.Unmarshal(body, &fe)
21162		return fe, err
21163	}
21164}
21165func unmarshalBasicFabricEventArray(body []byte) ([]BasicFabricEvent, error) {
21166	var rawMessages []*json.RawMessage
21167	err := json.Unmarshal(body, &rawMessages)
21168	if err != nil {
21169		return nil, err
21170	}
21171
21172	feArray := make([]BasicFabricEvent, len(rawMessages))
21173
21174	for index, rawMessage := range rawMessages {
21175		fe, err := unmarshalBasicFabricEvent(*rawMessage)
21176		if err != nil {
21177			return nil, err
21178		}
21179		feArray[index] = fe
21180	}
21181	return feArray, nil
21182}
21183
21184// MarshalJSON is the custom marshaler for FabricEvent.
21185func (fe FabricEvent) MarshalJSON() ([]byte, error) {
21186	fe.Kind = KindFabricEvent
21187	objectMap := make(map[string]interface{})
21188	if fe.EventInstanceID != nil {
21189		objectMap["EventInstanceId"] = fe.EventInstanceID
21190	}
21191	if fe.Category != nil {
21192		objectMap["Category"] = fe.Category
21193	}
21194	if fe.TimeStamp != nil {
21195		objectMap["TimeStamp"] = fe.TimeStamp
21196	}
21197	if fe.HasCorrelatedEvents != nil {
21198		objectMap["HasCorrelatedEvents"] = fe.HasCorrelatedEvents
21199	}
21200	if fe.Kind != "" {
21201		objectMap["Kind"] = fe.Kind
21202	}
21203	return json.Marshal(objectMap)
21204}
21205
21206// AsApplicationEvent is the BasicFabricEvent implementation for FabricEvent.
21207func (fe FabricEvent) AsApplicationEvent() (*ApplicationEvent, bool) {
21208	return nil, false
21209}
21210
21211// AsBasicApplicationEvent is the BasicFabricEvent implementation for FabricEvent.
21212func (fe FabricEvent) AsBasicApplicationEvent() (BasicApplicationEvent, bool) {
21213	return nil, false
21214}
21215
21216// AsClusterEvent is the BasicFabricEvent implementation for FabricEvent.
21217func (fe FabricEvent) AsClusterEvent() (*ClusterEvent, bool) {
21218	return nil, false
21219}
21220
21221// AsBasicClusterEvent is the BasicFabricEvent implementation for FabricEvent.
21222func (fe FabricEvent) AsBasicClusterEvent() (BasicClusterEvent, bool) {
21223	return nil, false
21224}
21225
21226// AsContainerInstanceEvent is the BasicFabricEvent implementation for FabricEvent.
21227func (fe FabricEvent) AsContainerInstanceEvent() (*ContainerInstanceEvent, bool) {
21228	return nil, false
21229}
21230
21231// AsNodeEvent is the BasicFabricEvent implementation for FabricEvent.
21232func (fe FabricEvent) AsNodeEvent() (*NodeEvent, bool) {
21233	return nil, false
21234}
21235
21236// AsBasicNodeEvent is the BasicFabricEvent implementation for FabricEvent.
21237func (fe FabricEvent) AsBasicNodeEvent() (BasicNodeEvent, bool) {
21238	return nil, false
21239}
21240
21241// AsPartitionAnalysisEvent is the BasicFabricEvent implementation for FabricEvent.
21242func (fe FabricEvent) AsPartitionAnalysisEvent() (*PartitionAnalysisEvent, bool) {
21243	return nil, false
21244}
21245
21246// AsBasicPartitionAnalysisEvent is the BasicFabricEvent implementation for FabricEvent.
21247func (fe FabricEvent) AsBasicPartitionAnalysisEvent() (BasicPartitionAnalysisEvent, bool) {
21248	return nil, false
21249}
21250
21251// AsPartitionEvent is the BasicFabricEvent implementation for FabricEvent.
21252func (fe FabricEvent) AsPartitionEvent() (*PartitionEvent, bool) {
21253	return nil, false
21254}
21255
21256// AsBasicPartitionEvent is the BasicFabricEvent implementation for FabricEvent.
21257func (fe FabricEvent) AsBasicPartitionEvent() (BasicPartitionEvent, bool) {
21258	return nil, false
21259}
21260
21261// AsReplicaEvent is the BasicFabricEvent implementation for FabricEvent.
21262func (fe FabricEvent) AsReplicaEvent() (*ReplicaEvent, bool) {
21263	return nil, false
21264}
21265
21266// AsBasicReplicaEvent is the BasicFabricEvent implementation for FabricEvent.
21267func (fe FabricEvent) AsBasicReplicaEvent() (BasicReplicaEvent, bool) {
21268	return nil, false
21269}
21270
21271// AsServiceEvent is the BasicFabricEvent implementation for FabricEvent.
21272func (fe FabricEvent) AsServiceEvent() (*ServiceEvent, bool) {
21273	return nil, false
21274}
21275
21276// AsBasicServiceEvent is the BasicFabricEvent implementation for FabricEvent.
21277func (fe FabricEvent) AsBasicServiceEvent() (BasicServiceEvent, bool) {
21278	return nil, false
21279}
21280
21281// AsApplicationCreatedEvent is the BasicFabricEvent implementation for FabricEvent.
21282func (fe FabricEvent) AsApplicationCreatedEvent() (*ApplicationCreatedEvent, bool) {
21283	return nil, false
21284}
21285
21286// AsApplicationDeletedEvent is the BasicFabricEvent implementation for FabricEvent.
21287func (fe FabricEvent) AsApplicationDeletedEvent() (*ApplicationDeletedEvent, bool) {
21288	return nil, false
21289}
21290
21291// AsApplicationNewHealthReportEvent is the BasicFabricEvent implementation for FabricEvent.
21292func (fe FabricEvent) AsApplicationNewHealthReportEvent() (*ApplicationNewHealthReportEvent, bool) {
21293	return nil, false
21294}
21295
21296// AsApplicationHealthReportExpiredEvent is the BasicFabricEvent implementation for FabricEvent.
21297func (fe FabricEvent) AsApplicationHealthReportExpiredEvent() (*ApplicationHealthReportExpiredEvent, bool) {
21298	return nil, false
21299}
21300
21301// AsApplicationUpgradeCompletedEvent is the BasicFabricEvent implementation for FabricEvent.
21302func (fe FabricEvent) AsApplicationUpgradeCompletedEvent() (*ApplicationUpgradeCompletedEvent, bool) {
21303	return nil, false
21304}
21305
21306// AsApplicationUpgradeDomainCompletedEvent is the BasicFabricEvent implementation for FabricEvent.
21307func (fe FabricEvent) AsApplicationUpgradeDomainCompletedEvent() (*ApplicationUpgradeDomainCompletedEvent, bool) {
21308	return nil, false
21309}
21310
21311// AsApplicationUpgradeRollbackCompletedEvent is the BasicFabricEvent implementation for FabricEvent.
21312func (fe FabricEvent) AsApplicationUpgradeRollbackCompletedEvent() (*ApplicationUpgradeRollbackCompletedEvent, bool) {
21313	return nil, false
21314}
21315
21316// AsApplicationUpgradeRollbackStartedEvent is the BasicFabricEvent implementation for FabricEvent.
21317func (fe FabricEvent) AsApplicationUpgradeRollbackStartedEvent() (*ApplicationUpgradeRollbackStartedEvent, bool) {
21318	return nil, false
21319}
21320
21321// AsApplicationUpgradeStartedEvent is the BasicFabricEvent implementation for FabricEvent.
21322func (fe FabricEvent) AsApplicationUpgradeStartedEvent() (*ApplicationUpgradeStartedEvent, bool) {
21323	return nil, false
21324}
21325
21326// AsDeployedApplicationNewHealthReportEvent is the BasicFabricEvent implementation for FabricEvent.
21327func (fe FabricEvent) AsDeployedApplicationNewHealthReportEvent() (*DeployedApplicationNewHealthReportEvent, bool) {
21328	return nil, false
21329}
21330
21331// AsDeployedApplicationHealthReportExpiredEvent is the BasicFabricEvent implementation for FabricEvent.
21332func (fe FabricEvent) AsDeployedApplicationHealthReportExpiredEvent() (*DeployedApplicationHealthReportExpiredEvent, bool) {
21333	return nil, false
21334}
21335
21336// AsApplicationProcessExitedEvent is the BasicFabricEvent implementation for FabricEvent.
21337func (fe FabricEvent) AsApplicationProcessExitedEvent() (*ApplicationProcessExitedEvent, bool) {
21338	return nil, false
21339}
21340
21341// AsApplicationContainerInstanceExitedEvent is the BasicFabricEvent implementation for FabricEvent.
21342func (fe FabricEvent) AsApplicationContainerInstanceExitedEvent() (*ApplicationContainerInstanceExitedEvent, bool) {
21343	return nil, false
21344}
21345
21346// AsNodeAbortedEvent is the BasicFabricEvent implementation for FabricEvent.
21347func (fe FabricEvent) AsNodeAbortedEvent() (*NodeAbortedEvent, bool) {
21348	return nil, false
21349}
21350
21351// AsNodeAddedToClusterEvent is the BasicFabricEvent implementation for FabricEvent.
21352func (fe FabricEvent) AsNodeAddedToClusterEvent() (*NodeAddedToClusterEvent, bool) {
21353	return nil, false
21354}
21355
21356// AsNodeClosedEvent is the BasicFabricEvent implementation for FabricEvent.
21357func (fe FabricEvent) AsNodeClosedEvent() (*NodeClosedEvent, bool) {
21358	return nil, false
21359}
21360
21361// AsNodeDeactivateCompletedEvent is the BasicFabricEvent implementation for FabricEvent.
21362func (fe FabricEvent) AsNodeDeactivateCompletedEvent() (*NodeDeactivateCompletedEvent, bool) {
21363	return nil, false
21364}
21365
21366// AsNodeDeactivateStartedEvent is the BasicFabricEvent implementation for FabricEvent.
21367func (fe FabricEvent) AsNodeDeactivateStartedEvent() (*NodeDeactivateStartedEvent, bool) {
21368	return nil, false
21369}
21370
21371// AsNodeDownEvent is the BasicFabricEvent implementation for FabricEvent.
21372func (fe FabricEvent) AsNodeDownEvent() (*NodeDownEvent, bool) {
21373	return nil, false
21374}
21375
21376// AsNodeNewHealthReportEvent is the BasicFabricEvent implementation for FabricEvent.
21377func (fe FabricEvent) AsNodeNewHealthReportEvent() (*NodeNewHealthReportEvent, bool) {
21378	return nil, false
21379}
21380
21381// AsNodeHealthReportExpiredEvent is the BasicFabricEvent implementation for FabricEvent.
21382func (fe FabricEvent) AsNodeHealthReportExpiredEvent() (*NodeHealthReportExpiredEvent, bool) {
21383	return nil, false
21384}
21385
21386// AsNodeOpenSucceededEvent is the BasicFabricEvent implementation for FabricEvent.
21387func (fe FabricEvent) AsNodeOpenSucceededEvent() (*NodeOpenSucceededEvent, bool) {
21388	return nil, false
21389}
21390
21391// AsNodeOpenFailedEvent is the BasicFabricEvent implementation for FabricEvent.
21392func (fe FabricEvent) AsNodeOpenFailedEvent() (*NodeOpenFailedEvent, bool) {
21393	return nil, false
21394}
21395
21396// AsNodeRemovedFromClusterEvent is the BasicFabricEvent implementation for FabricEvent.
21397func (fe FabricEvent) AsNodeRemovedFromClusterEvent() (*NodeRemovedFromClusterEvent, bool) {
21398	return nil, false
21399}
21400
21401// AsNodeUpEvent is the BasicFabricEvent implementation for FabricEvent.
21402func (fe FabricEvent) AsNodeUpEvent() (*NodeUpEvent, bool) {
21403	return nil, false
21404}
21405
21406// AsPartitionNewHealthReportEvent is the BasicFabricEvent implementation for FabricEvent.
21407func (fe FabricEvent) AsPartitionNewHealthReportEvent() (*PartitionNewHealthReportEvent, bool) {
21408	return nil, false
21409}
21410
21411// AsPartitionHealthReportExpiredEvent is the BasicFabricEvent implementation for FabricEvent.
21412func (fe FabricEvent) AsPartitionHealthReportExpiredEvent() (*PartitionHealthReportExpiredEvent, bool) {
21413	return nil, false
21414}
21415
21416// AsPartitionReconfiguredEvent is the BasicFabricEvent implementation for FabricEvent.
21417func (fe FabricEvent) AsPartitionReconfiguredEvent() (*PartitionReconfiguredEvent, bool) {
21418	return nil, false
21419}
21420
21421// AsPartitionPrimaryMoveAnalysisEvent is the BasicFabricEvent implementation for FabricEvent.
21422func (fe FabricEvent) AsPartitionPrimaryMoveAnalysisEvent() (*PartitionPrimaryMoveAnalysisEvent, bool) {
21423	return nil, false
21424}
21425
21426// AsServiceCreatedEvent is the BasicFabricEvent implementation for FabricEvent.
21427func (fe FabricEvent) AsServiceCreatedEvent() (*ServiceCreatedEvent, bool) {
21428	return nil, false
21429}
21430
21431// AsServiceDeletedEvent is the BasicFabricEvent implementation for FabricEvent.
21432func (fe FabricEvent) AsServiceDeletedEvent() (*ServiceDeletedEvent, bool) {
21433	return nil, false
21434}
21435
21436// AsServiceNewHealthReportEvent is the BasicFabricEvent implementation for FabricEvent.
21437func (fe FabricEvent) AsServiceNewHealthReportEvent() (*ServiceNewHealthReportEvent, bool) {
21438	return nil, false
21439}
21440
21441// AsServiceHealthReportExpiredEvent is the BasicFabricEvent implementation for FabricEvent.
21442func (fe FabricEvent) AsServiceHealthReportExpiredEvent() (*ServiceHealthReportExpiredEvent, bool) {
21443	return nil, false
21444}
21445
21446// AsDeployedServicePackageNewHealthReportEvent is the BasicFabricEvent implementation for FabricEvent.
21447func (fe FabricEvent) AsDeployedServicePackageNewHealthReportEvent() (*DeployedServicePackageNewHealthReportEvent, bool) {
21448	return nil, false
21449}
21450
21451// AsDeployedServicePackageHealthReportExpiredEvent is the BasicFabricEvent implementation for FabricEvent.
21452func (fe FabricEvent) AsDeployedServicePackageHealthReportExpiredEvent() (*DeployedServicePackageHealthReportExpiredEvent, bool) {
21453	return nil, false
21454}
21455
21456// AsStatefulReplicaNewHealthReportEvent is the BasicFabricEvent implementation for FabricEvent.
21457func (fe FabricEvent) AsStatefulReplicaNewHealthReportEvent() (*StatefulReplicaNewHealthReportEvent, bool) {
21458	return nil, false
21459}
21460
21461// AsStatefulReplicaHealthReportExpiredEvent is the BasicFabricEvent implementation for FabricEvent.
21462func (fe FabricEvent) AsStatefulReplicaHealthReportExpiredEvent() (*StatefulReplicaHealthReportExpiredEvent, bool) {
21463	return nil, false
21464}
21465
21466// AsStatelessReplicaNewHealthReportEvent is the BasicFabricEvent implementation for FabricEvent.
21467func (fe FabricEvent) AsStatelessReplicaNewHealthReportEvent() (*StatelessReplicaNewHealthReportEvent, bool) {
21468	return nil, false
21469}
21470
21471// AsStatelessReplicaHealthReportExpiredEvent is the BasicFabricEvent implementation for FabricEvent.
21472func (fe FabricEvent) AsStatelessReplicaHealthReportExpiredEvent() (*StatelessReplicaHealthReportExpiredEvent, bool) {
21473	return nil, false
21474}
21475
21476// AsClusterNewHealthReportEvent is the BasicFabricEvent implementation for FabricEvent.
21477func (fe FabricEvent) AsClusterNewHealthReportEvent() (*ClusterNewHealthReportEvent, bool) {
21478	return nil, false
21479}
21480
21481// AsClusterHealthReportExpiredEvent is the BasicFabricEvent implementation for FabricEvent.
21482func (fe FabricEvent) AsClusterHealthReportExpiredEvent() (*ClusterHealthReportExpiredEvent, bool) {
21483	return nil, false
21484}
21485
21486// AsClusterUpgradeCompletedEvent is the BasicFabricEvent implementation for FabricEvent.
21487func (fe FabricEvent) AsClusterUpgradeCompletedEvent() (*ClusterUpgradeCompletedEvent, bool) {
21488	return nil, false
21489}
21490
21491// AsClusterUpgradeDomainCompletedEvent is the BasicFabricEvent implementation for FabricEvent.
21492func (fe FabricEvent) AsClusterUpgradeDomainCompletedEvent() (*ClusterUpgradeDomainCompletedEvent, bool) {
21493	return nil, false
21494}
21495
21496// AsClusterUpgradeRollbackCompletedEvent is the BasicFabricEvent implementation for FabricEvent.
21497func (fe FabricEvent) AsClusterUpgradeRollbackCompletedEvent() (*ClusterUpgradeRollbackCompletedEvent, bool) {
21498	return nil, false
21499}
21500
21501// AsClusterUpgradeRollbackStartedEvent is the BasicFabricEvent implementation for FabricEvent.
21502func (fe FabricEvent) AsClusterUpgradeRollbackStartedEvent() (*ClusterUpgradeRollbackStartedEvent, bool) {
21503	return nil, false
21504}
21505
21506// AsClusterUpgradeStartedEvent is the BasicFabricEvent implementation for FabricEvent.
21507func (fe FabricEvent) AsClusterUpgradeStartedEvent() (*ClusterUpgradeStartedEvent, bool) {
21508	return nil, false
21509}
21510
21511// AsChaosStoppedEvent is the BasicFabricEvent implementation for FabricEvent.
21512func (fe FabricEvent) AsChaosStoppedEvent() (*ChaosStoppedEvent, bool) {
21513	return nil, false
21514}
21515
21516// AsChaosStartedEvent is the BasicFabricEvent implementation for FabricEvent.
21517func (fe FabricEvent) AsChaosStartedEvent() (*ChaosStartedEvent, bool) {
21518	return nil, false
21519}
21520
21521// AsChaosCodePackageRestartScheduledEvent is the BasicFabricEvent implementation for FabricEvent.
21522func (fe FabricEvent) AsChaosCodePackageRestartScheduledEvent() (*ChaosCodePackageRestartScheduledEvent, bool) {
21523	return nil, false
21524}
21525
21526// AsChaosReplicaRemovalScheduledEvent is the BasicFabricEvent implementation for FabricEvent.
21527func (fe FabricEvent) AsChaosReplicaRemovalScheduledEvent() (*ChaosReplicaRemovalScheduledEvent, bool) {
21528	return nil, false
21529}
21530
21531// AsChaosPartitionSecondaryMoveScheduledEvent is the BasicFabricEvent implementation for FabricEvent.
21532func (fe FabricEvent) AsChaosPartitionSecondaryMoveScheduledEvent() (*ChaosPartitionSecondaryMoveScheduledEvent, bool) {
21533	return nil, false
21534}
21535
21536// AsChaosPartitionPrimaryMoveScheduledEvent is the BasicFabricEvent implementation for FabricEvent.
21537func (fe FabricEvent) AsChaosPartitionPrimaryMoveScheduledEvent() (*ChaosPartitionPrimaryMoveScheduledEvent, bool) {
21538	return nil, false
21539}
21540
21541// AsChaosReplicaRestartScheduledEvent is the BasicFabricEvent implementation for FabricEvent.
21542func (fe FabricEvent) AsChaosReplicaRestartScheduledEvent() (*ChaosReplicaRestartScheduledEvent, bool) {
21543	return nil, false
21544}
21545
21546// AsChaosNodeRestartScheduledEvent is the BasicFabricEvent implementation for FabricEvent.
21547func (fe FabricEvent) AsChaosNodeRestartScheduledEvent() (*ChaosNodeRestartScheduledEvent, bool) {
21548	return nil, false
21549}
21550
21551// AsFabricEvent is the BasicFabricEvent implementation for FabricEvent.
21552func (fe FabricEvent) AsFabricEvent() (*FabricEvent, bool) {
21553	return &fe, true
21554}
21555
21556// AsBasicFabricEvent is the BasicFabricEvent implementation for FabricEvent.
21557func (fe FabricEvent) AsBasicFabricEvent() (BasicFabricEvent, bool) {
21558	return &fe, true
21559}
21560
21561// FailedPropertyBatchInfo derived from PropertyBatchInfo. Represents the property batch failing. Contains
21562// information about the specific batch failure.
21563type FailedPropertyBatchInfo struct {
21564	// ErrorMessage - The error message of the failed operation. Describes the exception thrown due to the first unsuccessful operation in the property batch.
21565	ErrorMessage *string `json:"ErrorMessage,omitempty"`
21566	// OperationIndex - The index of the unsuccessful operation in the property batch.
21567	OperationIndex *int32 `json:"OperationIndex,omitempty"`
21568	// Kind - Possible values include: 'KindPropertyBatchInfo', 'KindSuccessful', 'KindFailed'
21569	Kind KindBasicPropertyBatchInfo `json:"Kind,omitempty"`
21570}
21571
21572// MarshalJSON is the custom marshaler for FailedPropertyBatchInfo.
21573func (fpbi FailedPropertyBatchInfo) MarshalJSON() ([]byte, error) {
21574	fpbi.Kind = KindFailed
21575	objectMap := make(map[string]interface{})
21576	if fpbi.ErrorMessage != nil {
21577		objectMap["ErrorMessage"] = fpbi.ErrorMessage
21578	}
21579	if fpbi.OperationIndex != nil {
21580		objectMap["OperationIndex"] = fpbi.OperationIndex
21581	}
21582	if fpbi.Kind != "" {
21583		objectMap["Kind"] = fpbi.Kind
21584	}
21585	return json.Marshal(objectMap)
21586}
21587
21588// AsSuccessfulPropertyBatchInfo is the BasicPropertyBatchInfo implementation for FailedPropertyBatchInfo.
21589func (fpbi FailedPropertyBatchInfo) AsSuccessfulPropertyBatchInfo() (*SuccessfulPropertyBatchInfo, bool) {
21590	return nil, false
21591}
21592
21593// AsFailedPropertyBatchInfo is the BasicPropertyBatchInfo implementation for FailedPropertyBatchInfo.
21594func (fpbi FailedPropertyBatchInfo) AsFailedPropertyBatchInfo() (*FailedPropertyBatchInfo, bool) {
21595	return &fpbi, true
21596}
21597
21598// AsPropertyBatchInfo is the BasicPropertyBatchInfo implementation for FailedPropertyBatchInfo.
21599func (fpbi FailedPropertyBatchInfo) AsPropertyBatchInfo() (*PropertyBatchInfo, bool) {
21600	return nil, false
21601}
21602
21603// AsBasicPropertyBatchInfo is the BasicPropertyBatchInfo implementation for FailedPropertyBatchInfo.
21604func (fpbi FailedPropertyBatchInfo) AsBasicPropertyBatchInfo() (BasicPropertyBatchInfo, bool) {
21605	return &fpbi, true
21606}
21607
21608// FailedUpgradeDomainProgressObject the detailed upgrade progress for nodes in the current upgrade domain
21609// at the point of failure.
21610type FailedUpgradeDomainProgressObject struct {
21611	// DomainName - The name of the upgrade domain
21612	DomainName *string `json:"DomainName,omitempty"`
21613	// NodeUpgradeProgressList - List of upgrading nodes and their statuses
21614	NodeUpgradeProgressList *[]NodeUpgradeProgressInfo `json:"NodeUpgradeProgressList,omitempty"`
21615}
21616
21617// FailureUpgradeDomainProgressInfo information about the upgrade domain progress at the time of upgrade
21618// failure.
21619type FailureUpgradeDomainProgressInfo struct {
21620	// DomainName - The name of the upgrade domain
21621	DomainName *string `json:"DomainName,omitempty"`
21622	// NodeUpgradeProgressList - List of upgrading nodes and their statuses
21623	NodeUpgradeProgressList *[]NodeUpgradeProgressInfo `json:"NodeUpgradeProgressList,omitempty"`
21624}
21625
21626// FileInfo information about a image store file.
21627type FileInfo struct {
21628	// FileSize - The size of file in bytes.
21629	FileSize *string `json:"FileSize,omitempty"`
21630	// FileVersion - Information about the version of image store file.
21631	FileVersion *FileVersion `json:"FileVersion,omitempty"`
21632	// ModifiedDate - The date and time when the image store file was last modified.
21633	ModifiedDate *date.Time `json:"ModifiedDate,omitempty"`
21634	// StoreRelativePath - The file path relative to the image store root path.
21635	StoreRelativePath *string `json:"StoreRelativePath,omitempty"`
21636}
21637
21638// FileShareBackupStorageDescription describes the parameters for file share storage used for storing or
21639// enumerating backups.
21640type FileShareBackupStorageDescription struct {
21641	// Path - UNC path of the file share where to store or enumerate backups from.
21642	Path *string `json:"Path,omitempty"`
21643	// PrimaryUserName - Primary user name to access the file share.
21644	PrimaryUserName *string `json:"PrimaryUserName,omitempty"`
21645	// PrimaryPassword - Primary password to access the share location.
21646	PrimaryPassword *string `json:"PrimaryPassword,omitempty"`
21647	// SecondaryUserName - Secondary user name to access the file share.
21648	SecondaryUserName *string `json:"SecondaryUserName,omitempty"`
21649	// SecondaryPassword - Secondary password to access the share location
21650	SecondaryPassword *string `json:"SecondaryPassword,omitempty"`
21651	// FriendlyName - Friendly name for this backup storage.
21652	FriendlyName *string `json:"FriendlyName,omitempty"`
21653	// StorageKind - Possible values include: 'StorageKindBackupStorageDescription', 'StorageKindAzureBlobStore', 'StorageKindFileShare'
21654	StorageKind StorageKind `json:"StorageKind,omitempty"`
21655}
21656
21657// MarshalJSON is the custom marshaler for FileShareBackupStorageDescription.
21658func (fsbsd FileShareBackupStorageDescription) MarshalJSON() ([]byte, error) {
21659	fsbsd.StorageKind = StorageKindFileShare
21660	objectMap := make(map[string]interface{})
21661	if fsbsd.Path != nil {
21662		objectMap["Path"] = fsbsd.Path
21663	}
21664	if fsbsd.PrimaryUserName != nil {
21665		objectMap["PrimaryUserName"] = fsbsd.PrimaryUserName
21666	}
21667	if fsbsd.PrimaryPassword != nil {
21668		objectMap["PrimaryPassword"] = fsbsd.PrimaryPassword
21669	}
21670	if fsbsd.SecondaryUserName != nil {
21671		objectMap["SecondaryUserName"] = fsbsd.SecondaryUserName
21672	}
21673	if fsbsd.SecondaryPassword != nil {
21674		objectMap["SecondaryPassword"] = fsbsd.SecondaryPassword
21675	}
21676	if fsbsd.FriendlyName != nil {
21677		objectMap["FriendlyName"] = fsbsd.FriendlyName
21678	}
21679	if fsbsd.StorageKind != "" {
21680		objectMap["StorageKind"] = fsbsd.StorageKind
21681	}
21682	return json.Marshal(objectMap)
21683}
21684
21685// AsAzureBlobBackupStorageDescription is the BasicBackupStorageDescription implementation for FileShareBackupStorageDescription.
21686func (fsbsd FileShareBackupStorageDescription) AsAzureBlobBackupStorageDescription() (*AzureBlobBackupStorageDescription, bool) {
21687	return nil, false
21688}
21689
21690// AsFileShareBackupStorageDescription is the BasicBackupStorageDescription implementation for FileShareBackupStorageDescription.
21691func (fsbsd FileShareBackupStorageDescription) AsFileShareBackupStorageDescription() (*FileShareBackupStorageDescription, bool) {
21692	return &fsbsd, true
21693}
21694
21695// AsBackupStorageDescription is the BasicBackupStorageDescription implementation for FileShareBackupStorageDescription.
21696func (fsbsd FileShareBackupStorageDescription) AsBackupStorageDescription() (*BackupStorageDescription, bool) {
21697	return nil, false
21698}
21699
21700// AsBasicBackupStorageDescription is the BasicBackupStorageDescription implementation for FileShareBackupStorageDescription.
21701func (fsbsd FileShareBackupStorageDescription) AsBasicBackupStorageDescription() (BasicBackupStorageDescription, bool) {
21702	return &fsbsd, true
21703}
21704
21705// FileVersion information about the version of image store file.
21706type FileVersion struct {
21707	// VersionNumber - The current image store version number for the file is used in image store for checking whether it need to be updated.
21708	VersionNumber *string `json:"VersionNumber,omitempty"`
21709	// EpochDataLossNumber - The epoch data loss number of image store replica when this file entry was updated or created.
21710	EpochDataLossNumber *string `json:"EpochDataLossNumber,omitempty"`
21711	// EpochConfigurationNumber - The epoch configuration version number of the image store replica when this file entry was created or updated.
21712	EpochConfigurationNumber *string `json:"EpochConfigurationNumber,omitempty"`
21713}
21714
21715// FolderInfo information about a image store folder. It includes how many files this folder contains and
21716// its image store relative path.
21717type FolderInfo struct {
21718	// StoreRelativePath - The remote location within image store. This path is relative to the image store root.
21719	StoreRelativePath *string `json:"StoreRelativePath,omitempty"`
21720	// FileCount - The number of files from within the image store folder.
21721	FileCount *string `json:"FileCount,omitempty"`
21722}
21723
21724// FolderSizeInfo information of a image store folder size
21725type FolderSizeInfo struct {
21726	autorest.Response `json:"-"`
21727	// StoreRelativePath - The remote location within image store. This path is relative to the image store root.
21728	StoreRelativePath *string `json:"StoreRelativePath,omitempty"`
21729	// FolderSize - The size of folder in bytes.
21730	FolderSize *string `json:"FolderSize,omitempty"`
21731}
21732
21733// FrequencyBasedBackupScheduleDescription describes the frequency based backup schedule.
21734type FrequencyBasedBackupScheduleDescription struct {
21735	// 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.
21736	Interval *string `json:"Interval,omitempty"`
21737	// ScheduleKind - Possible values include: 'ScheduleKindBackupScheduleDescription', 'ScheduleKindFrequencyBased', 'ScheduleKindTimeBased'
21738	ScheduleKind ScheduleKind `json:"ScheduleKind,omitempty"`
21739}
21740
21741// MarshalJSON is the custom marshaler for FrequencyBasedBackupScheduleDescription.
21742func (fbbsd FrequencyBasedBackupScheduleDescription) MarshalJSON() ([]byte, error) {
21743	fbbsd.ScheduleKind = ScheduleKindFrequencyBased
21744	objectMap := make(map[string]interface{})
21745	if fbbsd.Interval != nil {
21746		objectMap["Interval"] = fbbsd.Interval
21747	}
21748	if fbbsd.ScheduleKind != "" {
21749		objectMap["ScheduleKind"] = fbbsd.ScheduleKind
21750	}
21751	return json.Marshal(objectMap)
21752}
21753
21754// AsFrequencyBasedBackupScheduleDescription is the BasicBackupScheduleDescription implementation for FrequencyBasedBackupScheduleDescription.
21755func (fbbsd FrequencyBasedBackupScheduleDescription) AsFrequencyBasedBackupScheduleDescription() (*FrequencyBasedBackupScheduleDescription, bool) {
21756	return &fbbsd, true
21757}
21758
21759// AsTimeBasedBackupScheduleDescription is the BasicBackupScheduleDescription implementation for FrequencyBasedBackupScheduleDescription.
21760func (fbbsd FrequencyBasedBackupScheduleDescription) AsTimeBasedBackupScheduleDescription() (*TimeBasedBackupScheduleDescription, bool) {
21761	return nil, false
21762}
21763
21764// AsBackupScheduleDescription is the BasicBackupScheduleDescription implementation for FrequencyBasedBackupScheduleDescription.
21765func (fbbsd FrequencyBasedBackupScheduleDescription) AsBackupScheduleDescription() (*BackupScheduleDescription, bool) {
21766	return nil, false
21767}
21768
21769// AsBasicBackupScheduleDescription is the BasicBackupScheduleDescription implementation for FrequencyBasedBackupScheduleDescription.
21770func (fbbsd FrequencyBasedBackupScheduleDescription) AsBasicBackupScheduleDescription() (BasicBackupScheduleDescription, bool) {
21771	return &fbbsd, true
21772}
21773
21774// GatewayDestination describes destination endpoint for routing traffic.
21775type GatewayDestination struct {
21776	// ApplicationName - Name of the service fabric Mesh application.
21777	ApplicationName *string `json:"applicationName,omitempty"`
21778	// ServiceName - service that contains the endpoint.
21779	ServiceName *string `json:"serviceName,omitempty"`
21780	// EndpointName - name of the endpoint in the service.
21781	EndpointName *string `json:"endpointName,omitempty"`
21782}
21783
21784// GatewayProperties describes properties of a gateway resource.
21785type GatewayProperties struct {
21786	// Description - User readable description of the gateway.
21787	Description *string `json:"description,omitempty"`
21788	// SourceNetwork - Network the gateway should listen on for requests.
21789	SourceNetwork *NetworkRef `json:"sourceNetwork,omitempty"`
21790	// DestinationNetwork - Network that the Application is using.
21791	DestinationNetwork *NetworkRef `json:"destinationNetwork,omitempty"`
21792	// TCP - Configuration for tcp connectivity for this gateway.
21793	TCP *[]TCPConfig `json:"tcp,omitempty"`
21794	// HTTP - Configuration for http connectivity for this gateway.
21795	HTTP *[]HTTPConfig `json:"http,omitempty"`
21796	// Status - READ-ONLY; Status of the resource. Possible values include: 'ResourceStatusUnknown', 'ResourceStatusReady', 'ResourceStatusUpgrading', 'ResourceStatusCreating', 'ResourceStatusDeleting', 'ResourceStatusFailed'
21797	Status ResourceStatus `json:"status,omitempty"`
21798	// StatusDetails - READ-ONLY; Gives additional information about the current status of the gateway.
21799	StatusDetails *string `json:"statusDetails,omitempty"`
21800	// IPAddress - READ-ONLY; IP address of the gateway. This is populated in the response and is ignored for incoming requests.
21801	IPAddress *string `json:"ipAddress,omitempty"`
21802}
21803
21804// MarshalJSON is the custom marshaler for GatewayProperties.
21805func (gp GatewayProperties) MarshalJSON() ([]byte, error) {
21806	objectMap := make(map[string]interface{})
21807	if gp.Description != nil {
21808		objectMap["description"] = gp.Description
21809	}
21810	if gp.SourceNetwork != nil {
21811		objectMap["sourceNetwork"] = gp.SourceNetwork
21812	}
21813	if gp.DestinationNetwork != nil {
21814		objectMap["destinationNetwork"] = gp.DestinationNetwork
21815	}
21816	if gp.TCP != nil {
21817		objectMap["tcp"] = gp.TCP
21818	}
21819	if gp.HTTP != nil {
21820		objectMap["http"] = gp.HTTP
21821	}
21822	return json.Marshal(objectMap)
21823}
21824
21825// GatewayResourceDescription this type describes a gateway resource.
21826type GatewayResourceDescription struct {
21827	autorest.Response `json:"-"`
21828	// Name - Name of the Gateway resource.
21829	Name *string `json:"name,omitempty"`
21830	// GatewayProperties - Describes properties of a gateway resource.
21831	*GatewayProperties `json:"properties,omitempty"`
21832}
21833
21834// MarshalJSON is the custom marshaler for GatewayResourceDescription.
21835func (grd GatewayResourceDescription) MarshalJSON() ([]byte, error) {
21836	objectMap := make(map[string]interface{})
21837	if grd.Name != nil {
21838		objectMap["name"] = grd.Name
21839	}
21840	if grd.GatewayProperties != nil {
21841		objectMap["properties"] = grd.GatewayProperties
21842	}
21843	return json.Marshal(objectMap)
21844}
21845
21846// UnmarshalJSON is the custom unmarshaler for GatewayResourceDescription struct.
21847func (grd *GatewayResourceDescription) UnmarshalJSON(body []byte) error {
21848	var m map[string]*json.RawMessage
21849	err := json.Unmarshal(body, &m)
21850	if err != nil {
21851		return err
21852	}
21853	for k, v := range m {
21854		switch k {
21855		case "name":
21856			if v != nil {
21857				var name string
21858				err = json.Unmarshal(*v, &name)
21859				if err != nil {
21860					return err
21861				}
21862				grd.Name = &name
21863			}
21864		case "properties":
21865			if v != nil {
21866				var gatewayProperties GatewayProperties
21867				err = json.Unmarshal(*v, &gatewayProperties)
21868				if err != nil {
21869					return err
21870				}
21871				grd.GatewayProperties = &gatewayProperties
21872			}
21873		}
21874	}
21875
21876	return nil
21877}
21878
21879// GetBackupByStorageQueryDescription describes additional filters to be applied, while listing backups,
21880// and backup storage details from where to fetch the backups.
21881type GetBackupByStorageQueryDescription struct {
21882	// StartDateTimeFilter - Specifies the start date time in ISO8601 from which to enumerate backups. If not specified, backups are enumerated from the beginning.
21883	StartDateTimeFilter *date.Time `json:"StartDateTimeFilter,omitempty"`
21884	// EndDateTimeFilter - Specifies the end date time in ISO8601 till which to enumerate backups. If not specified, backups are enumerated till the end.
21885	EndDateTimeFilter *date.Time `json:"EndDateTimeFilter,omitempty"`
21886	// Latest - If specified as true, gets the most recent backup (within the specified time range) for every partition under the specified backup entity.
21887	Latest *bool `json:"Latest,omitempty"`
21888	// 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.
21889	Storage BasicBackupStorageDescription `json:"Storage,omitempty"`
21890	// BackupEntity - Indicates the entity for which to enumerate backups.
21891	BackupEntity BasicBackupEntity `json:"BackupEntity,omitempty"`
21892}
21893
21894// UnmarshalJSON is the custom unmarshaler for GetBackupByStorageQueryDescription struct.
21895func (gbbsqd *GetBackupByStorageQueryDescription) UnmarshalJSON(body []byte) error {
21896	var m map[string]*json.RawMessage
21897	err := json.Unmarshal(body, &m)
21898	if err != nil {
21899		return err
21900	}
21901	for k, v := range m {
21902		switch k {
21903		case "StartDateTimeFilter":
21904			if v != nil {
21905				var startDateTimeFilter date.Time
21906				err = json.Unmarshal(*v, &startDateTimeFilter)
21907				if err != nil {
21908					return err
21909				}
21910				gbbsqd.StartDateTimeFilter = &startDateTimeFilter
21911			}
21912		case "EndDateTimeFilter":
21913			if v != nil {
21914				var endDateTimeFilter date.Time
21915				err = json.Unmarshal(*v, &endDateTimeFilter)
21916				if err != nil {
21917					return err
21918				}
21919				gbbsqd.EndDateTimeFilter = &endDateTimeFilter
21920			}
21921		case "Latest":
21922			if v != nil {
21923				var latest bool
21924				err = json.Unmarshal(*v, &latest)
21925				if err != nil {
21926					return err
21927				}
21928				gbbsqd.Latest = &latest
21929			}
21930		case "Storage":
21931			if v != nil {
21932				storage, err := unmarshalBasicBackupStorageDescription(*v)
21933				if err != nil {
21934					return err
21935				}
21936				gbbsqd.Storage = storage
21937			}
21938		case "BackupEntity":
21939			if v != nil {
21940				backupEntity, err := unmarshalBasicBackupEntity(*v)
21941				if err != nil {
21942					return err
21943				}
21944				gbbsqd.BackupEntity = backupEntity
21945			}
21946		}
21947	}
21948
21949	return nil
21950}
21951
21952// GetPropertyBatchOperation represents a PropertyBatchOperation that gets the specified property if it
21953// exists.
21954// Note that if one PropertyBatchOperation in a PropertyBatch fails,
21955// the entire batch fails and cannot be committed in a transactional manner.
21956type GetPropertyBatchOperation struct {
21957	// IncludeValue - Whether or not to return the property value with the metadata.
21958	// True if values should be returned with the metadata; False to return only property metadata.
21959	IncludeValue *bool `json:"IncludeValue,omitempty"`
21960	// PropertyName - The name of the Service Fabric property.
21961	PropertyName *string `json:"PropertyName,omitempty"`
21962	// Kind - Possible values include: 'KindPropertyBatchOperation', 'KindCheckExists', 'KindCheckSequence', 'KindCheckValue', 'KindDelete', 'KindGet', 'KindPut'
21963	Kind KindBasicPropertyBatchOperation `json:"Kind,omitempty"`
21964}
21965
21966// MarshalJSON is the custom marshaler for GetPropertyBatchOperation.
21967func (gpbo GetPropertyBatchOperation) MarshalJSON() ([]byte, error) {
21968	gpbo.Kind = KindGet
21969	objectMap := make(map[string]interface{})
21970	if gpbo.IncludeValue != nil {
21971		objectMap["IncludeValue"] = gpbo.IncludeValue
21972	}
21973	if gpbo.PropertyName != nil {
21974		objectMap["PropertyName"] = gpbo.PropertyName
21975	}
21976	if gpbo.Kind != "" {
21977		objectMap["Kind"] = gpbo.Kind
21978	}
21979	return json.Marshal(objectMap)
21980}
21981
21982// AsCheckExistsPropertyBatchOperation is the BasicPropertyBatchOperation implementation for GetPropertyBatchOperation.
21983func (gpbo GetPropertyBatchOperation) AsCheckExistsPropertyBatchOperation() (*CheckExistsPropertyBatchOperation, bool) {
21984	return nil, false
21985}
21986
21987// AsCheckSequencePropertyBatchOperation is the BasicPropertyBatchOperation implementation for GetPropertyBatchOperation.
21988func (gpbo GetPropertyBatchOperation) AsCheckSequencePropertyBatchOperation() (*CheckSequencePropertyBatchOperation, bool) {
21989	return nil, false
21990}
21991
21992// AsCheckValuePropertyBatchOperation is the BasicPropertyBatchOperation implementation for GetPropertyBatchOperation.
21993func (gpbo GetPropertyBatchOperation) AsCheckValuePropertyBatchOperation() (*CheckValuePropertyBatchOperation, bool) {
21994	return nil, false
21995}
21996
21997// AsDeletePropertyBatchOperation is the BasicPropertyBatchOperation implementation for GetPropertyBatchOperation.
21998func (gpbo GetPropertyBatchOperation) AsDeletePropertyBatchOperation() (*DeletePropertyBatchOperation, bool) {
21999	return nil, false
22000}
22001
22002// AsGetPropertyBatchOperation is the BasicPropertyBatchOperation implementation for GetPropertyBatchOperation.
22003func (gpbo GetPropertyBatchOperation) AsGetPropertyBatchOperation() (*GetPropertyBatchOperation, bool) {
22004	return &gpbo, true
22005}
22006
22007// AsPutPropertyBatchOperation is the BasicPropertyBatchOperation implementation for GetPropertyBatchOperation.
22008func (gpbo GetPropertyBatchOperation) AsPutPropertyBatchOperation() (*PutPropertyBatchOperation, bool) {
22009	return nil, false
22010}
22011
22012// AsPropertyBatchOperation is the BasicPropertyBatchOperation implementation for GetPropertyBatchOperation.
22013func (gpbo GetPropertyBatchOperation) AsPropertyBatchOperation() (*PropertyBatchOperation, bool) {
22014	return nil, false
22015}
22016
22017// AsBasicPropertyBatchOperation is the BasicPropertyBatchOperation implementation for GetPropertyBatchOperation.
22018func (gpbo GetPropertyBatchOperation) AsBasicPropertyBatchOperation() (BasicPropertyBatchOperation, bool) {
22019	return &gpbo, true
22020}
22021
22022// GUIDPropertyValue describes a Service Fabric property value of type Guid.
22023type GUIDPropertyValue struct {
22024	// Data - The data of the property value.
22025	Data *uuid.UUID `json:"Data,omitempty"`
22026	// Kind - Possible values include: 'KindPropertyValue', 'KindBinary', 'KindInt64', 'KindDouble', 'KindString', 'KindGUID'
22027	Kind KindBasicPropertyValue `json:"Kind,omitempty"`
22028}
22029
22030// MarshalJSON is the custom marshaler for GUIDPropertyValue.
22031func (gpv GUIDPropertyValue) MarshalJSON() ([]byte, error) {
22032	gpv.Kind = KindGUID
22033	objectMap := make(map[string]interface{})
22034	if gpv.Data != nil {
22035		objectMap["Data"] = gpv.Data
22036	}
22037	if gpv.Kind != "" {
22038		objectMap["Kind"] = gpv.Kind
22039	}
22040	return json.Marshal(objectMap)
22041}
22042
22043// AsBinaryPropertyValue is the BasicPropertyValue implementation for GUIDPropertyValue.
22044func (gpv GUIDPropertyValue) AsBinaryPropertyValue() (*BinaryPropertyValue, bool) {
22045	return nil, false
22046}
22047
22048// AsInt64PropertyValue is the BasicPropertyValue implementation for GUIDPropertyValue.
22049func (gpv GUIDPropertyValue) AsInt64PropertyValue() (*Int64PropertyValue, bool) {
22050	return nil, false
22051}
22052
22053// AsDoublePropertyValue is the BasicPropertyValue implementation for GUIDPropertyValue.
22054func (gpv GUIDPropertyValue) AsDoublePropertyValue() (*DoublePropertyValue, bool) {
22055	return nil, false
22056}
22057
22058// AsStringPropertyValue is the BasicPropertyValue implementation for GUIDPropertyValue.
22059func (gpv GUIDPropertyValue) AsStringPropertyValue() (*StringPropertyValue, bool) {
22060	return nil, false
22061}
22062
22063// AsGUIDPropertyValue is the BasicPropertyValue implementation for GUIDPropertyValue.
22064func (gpv GUIDPropertyValue) AsGUIDPropertyValue() (*GUIDPropertyValue, bool) {
22065	return &gpv, true
22066}
22067
22068// AsPropertyValue is the BasicPropertyValue implementation for GUIDPropertyValue.
22069func (gpv GUIDPropertyValue) AsPropertyValue() (*PropertyValue, bool) {
22070	return nil, false
22071}
22072
22073// AsBasicPropertyValue is the BasicPropertyValue implementation for GUIDPropertyValue.
22074func (gpv GUIDPropertyValue) AsBasicPropertyValue() (BasicPropertyValue, bool) {
22075	return &gpv, true
22076}
22077
22078// BasicHealthEvaluation represents a health evaluation which describes the data and the algorithm used by health
22079// manager to evaluate the health of an entity.
22080type BasicHealthEvaluation interface {
22081	AsApplicationHealthEvaluation() (*ApplicationHealthEvaluation, bool)
22082	AsApplicationsHealthEvaluation() (*ApplicationsHealthEvaluation, bool)
22083	AsApplicationTypeApplicationsHealthEvaluation() (*ApplicationTypeApplicationsHealthEvaluation, bool)
22084	AsDeltaNodesCheckHealthEvaluation() (*DeltaNodesCheckHealthEvaluation, bool)
22085	AsDeployedApplicationHealthEvaluation() (*DeployedApplicationHealthEvaluation, bool)
22086	AsDeployedApplicationsHealthEvaluation() (*DeployedApplicationsHealthEvaluation, bool)
22087	AsDeployedServicePackageHealthEvaluation() (*DeployedServicePackageHealthEvaluation, bool)
22088	AsDeployedServicePackagesHealthEvaluation() (*DeployedServicePackagesHealthEvaluation, bool)
22089	AsEventHealthEvaluation() (*EventHealthEvaluation, bool)
22090	AsNodeHealthEvaluation() (*NodeHealthEvaluation, bool)
22091	AsNodesHealthEvaluation() (*NodesHealthEvaluation, bool)
22092	AsPartitionHealthEvaluation() (*PartitionHealthEvaluation, bool)
22093	AsPartitionsHealthEvaluation() (*PartitionsHealthEvaluation, bool)
22094	AsReplicaHealthEvaluation() (*ReplicaHealthEvaluation, bool)
22095	AsReplicasHealthEvaluation() (*ReplicasHealthEvaluation, bool)
22096	AsServiceHealthEvaluation() (*ServiceHealthEvaluation, bool)
22097	AsServicesHealthEvaluation() (*ServicesHealthEvaluation, bool)
22098	AsSystemApplicationHealthEvaluation() (*SystemApplicationHealthEvaluation, bool)
22099	AsUpgradeDomainDeltaNodesCheckHealthEvaluation() (*UpgradeDomainDeltaNodesCheckHealthEvaluation, bool)
22100	AsUpgradeDomainNodesHealthEvaluation() (*UpgradeDomainNodesHealthEvaluation, bool)
22101	AsHealthEvaluation() (*HealthEvaluation, bool)
22102}
22103
22104// HealthEvaluation represents a health evaluation which describes the data and the algorithm used by health
22105// manager to evaluate the health of an entity.
22106type HealthEvaluation struct {
22107	// 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'
22108	AggregatedHealthState HealthState `json:"AggregatedHealthState,omitempty"`
22109	// Description - Description of the health evaluation, which represents a summary of the evaluation process.
22110	Description *string `json:"Description,omitempty"`
22111	// 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'
22112	Kind Kind `json:"Kind,omitempty"`
22113}
22114
22115func unmarshalBasicHealthEvaluation(body []byte) (BasicHealthEvaluation, error) {
22116	var m map[string]interface{}
22117	err := json.Unmarshal(body, &m)
22118	if err != nil {
22119		return nil, err
22120	}
22121
22122	switch m["Kind"] {
22123	case string(KindApplication):
22124		var ahe ApplicationHealthEvaluation
22125		err := json.Unmarshal(body, &ahe)
22126		return ahe, err
22127	case string(KindApplications):
22128		var ahe ApplicationsHealthEvaluation
22129		err := json.Unmarshal(body, &ahe)
22130		return ahe, err
22131	case string(KindApplicationTypeApplications):
22132		var atahe ApplicationTypeApplicationsHealthEvaluation
22133		err := json.Unmarshal(body, &atahe)
22134		return atahe, err
22135	case string(KindDeltaNodesCheck):
22136		var dnche DeltaNodesCheckHealthEvaluation
22137		err := json.Unmarshal(body, &dnche)
22138		return dnche, err
22139	case string(KindDeployedApplication):
22140		var dahe DeployedApplicationHealthEvaluation
22141		err := json.Unmarshal(body, &dahe)
22142		return dahe, err
22143	case string(KindDeployedApplications):
22144		var dahe DeployedApplicationsHealthEvaluation
22145		err := json.Unmarshal(body, &dahe)
22146		return dahe, err
22147	case string(KindDeployedServicePackage):
22148		var dsphe DeployedServicePackageHealthEvaluation
22149		err := json.Unmarshal(body, &dsphe)
22150		return dsphe, err
22151	case string(KindDeployedServicePackages):
22152		var dsphe DeployedServicePackagesHealthEvaluation
22153		err := json.Unmarshal(body, &dsphe)
22154		return dsphe, err
22155	case string(KindEvent):
22156		var ehe EventHealthEvaluation
22157		err := json.Unmarshal(body, &ehe)
22158		return ehe, err
22159	case string(KindNode):
22160		var nhe NodeHealthEvaluation
22161		err := json.Unmarshal(body, &nhe)
22162		return nhe, err
22163	case string(KindNodes):
22164		var nhe NodesHealthEvaluation
22165		err := json.Unmarshal(body, &nhe)
22166		return nhe, err
22167	case string(KindPartition):
22168		var phe PartitionHealthEvaluation
22169		err := json.Unmarshal(body, &phe)
22170		return phe, err
22171	case string(KindPartitions):
22172		var phe PartitionsHealthEvaluation
22173		err := json.Unmarshal(body, &phe)
22174		return phe, err
22175	case string(KindReplica):
22176		var rhe ReplicaHealthEvaluation
22177		err := json.Unmarshal(body, &rhe)
22178		return rhe, err
22179	case string(KindReplicas):
22180		var rhe ReplicasHealthEvaluation
22181		err := json.Unmarshal(body, &rhe)
22182		return rhe, err
22183	case string(KindService):
22184		var she ServiceHealthEvaluation
22185		err := json.Unmarshal(body, &she)
22186		return she, err
22187	case string(KindServices):
22188		var she ServicesHealthEvaluation
22189		err := json.Unmarshal(body, &she)
22190		return she, err
22191	case string(KindSystemApplication):
22192		var sahe SystemApplicationHealthEvaluation
22193		err := json.Unmarshal(body, &sahe)
22194		return sahe, err
22195	case string(KindUpgradeDomainDeltaNodesCheck):
22196		var uddnche UpgradeDomainDeltaNodesCheckHealthEvaluation
22197		err := json.Unmarshal(body, &uddnche)
22198		return uddnche, err
22199	case string(KindUpgradeDomainNodes):
22200		var udnhe UpgradeDomainNodesHealthEvaluation
22201		err := json.Unmarshal(body, &udnhe)
22202		return udnhe, err
22203	default:
22204		var he HealthEvaluation
22205		err := json.Unmarshal(body, &he)
22206		return he, err
22207	}
22208}
22209func unmarshalBasicHealthEvaluationArray(body []byte) ([]BasicHealthEvaluation, error) {
22210	var rawMessages []*json.RawMessage
22211	err := json.Unmarshal(body, &rawMessages)
22212	if err != nil {
22213		return nil, err
22214	}
22215
22216	heArray := make([]BasicHealthEvaluation, len(rawMessages))
22217
22218	for index, rawMessage := range rawMessages {
22219		he, err := unmarshalBasicHealthEvaluation(*rawMessage)
22220		if err != nil {
22221			return nil, err
22222		}
22223		heArray[index] = he
22224	}
22225	return heArray, nil
22226}
22227
22228// MarshalJSON is the custom marshaler for HealthEvaluation.
22229func (he HealthEvaluation) MarshalJSON() ([]byte, error) {
22230	he.Kind = KindHealthEvaluation
22231	objectMap := make(map[string]interface{})
22232	if he.AggregatedHealthState != "" {
22233		objectMap["AggregatedHealthState"] = he.AggregatedHealthState
22234	}
22235	if he.Description != nil {
22236		objectMap["Description"] = he.Description
22237	}
22238	if he.Kind != "" {
22239		objectMap["Kind"] = he.Kind
22240	}
22241	return json.Marshal(objectMap)
22242}
22243
22244// AsApplicationHealthEvaluation is the BasicHealthEvaluation implementation for HealthEvaluation.
22245func (he HealthEvaluation) AsApplicationHealthEvaluation() (*ApplicationHealthEvaluation, bool) {
22246	return nil, false
22247}
22248
22249// AsApplicationsHealthEvaluation is the BasicHealthEvaluation implementation for HealthEvaluation.
22250func (he HealthEvaluation) AsApplicationsHealthEvaluation() (*ApplicationsHealthEvaluation, bool) {
22251	return nil, false
22252}
22253
22254// AsApplicationTypeApplicationsHealthEvaluation is the BasicHealthEvaluation implementation for HealthEvaluation.
22255func (he HealthEvaluation) AsApplicationTypeApplicationsHealthEvaluation() (*ApplicationTypeApplicationsHealthEvaluation, bool) {
22256	return nil, false
22257}
22258
22259// AsDeltaNodesCheckHealthEvaluation is the BasicHealthEvaluation implementation for HealthEvaluation.
22260func (he HealthEvaluation) AsDeltaNodesCheckHealthEvaluation() (*DeltaNodesCheckHealthEvaluation, bool) {
22261	return nil, false
22262}
22263
22264// AsDeployedApplicationHealthEvaluation is the BasicHealthEvaluation implementation for HealthEvaluation.
22265func (he HealthEvaluation) AsDeployedApplicationHealthEvaluation() (*DeployedApplicationHealthEvaluation, bool) {
22266	return nil, false
22267}
22268
22269// AsDeployedApplicationsHealthEvaluation is the BasicHealthEvaluation implementation for HealthEvaluation.
22270func (he HealthEvaluation) AsDeployedApplicationsHealthEvaluation() (*DeployedApplicationsHealthEvaluation, bool) {
22271	return nil, false
22272}
22273
22274// AsDeployedServicePackageHealthEvaluation is the BasicHealthEvaluation implementation for HealthEvaluation.
22275func (he HealthEvaluation) AsDeployedServicePackageHealthEvaluation() (*DeployedServicePackageHealthEvaluation, bool) {
22276	return nil, false
22277}
22278
22279// AsDeployedServicePackagesHealthEvaluation is the BasicHealthEvaluation implementation for HealthEvaluation.
22280func (he HealthEvaluation) AsDeployedServicePackagesHealthEvaluation() (*DeployedServicePackagesHealthEvaluation, bool) {
22281	return nil, false
22282}
22283
22284// AsEventHealthEvaluation is the BasicHealthEvaluation implementation for HealthEvaluation.
22285func (he HealthEvaluation) AsEventHealthEvaluation() (*EventHealthEvaluation, bool) {
22286	return nil, false
22287}
22288
22289// AsNodeHealthEvaluation is the BasicHealthEvaluation implementation for HealthEvaluation.
22290func (he HealthEvaluation) AsNodeHealthEvaluation() (*NodeHealthEvaluation, bool) {
22291	return nil, false
22292}
22293
22294// AsNodesHealthEvaluation is the BasicHealthEvaluation implementation for HealthEvaluation.
22295func (he HealthEvaluation) AsNodesHealthEvaluation() (*NodesHealthEvaluation, bool) {
22296	return nil, false
22297}
22298
22299// AsPartitionHealthEvaluation is the BasicHealthEvaluation implementation for HealthEvaluation.
22300func (he HealthEvaluation) AsPartitionHealthEvaluation() (*PartitionHealthEvaluation, bool) {
22301	return nil, false
22302}
22303
22304// AsPartitionsHealthEvaluation is the BasicHealthEvaluation implementation for HealthEvaluation.
22305func (he HealthEvaluation) AsPartitionsHealthEvaluation() (*PartitionsHealthEvaluation, bool) {
22306	return nil, false
22307}
22308
22309// AsReplicaHealthEvaluation is the BasicHealthEvaluation implementation for HealthEvaluation.
22310func (he HealthEvaluation) AsReplicaHealthEvaluation() (*ReplicaHealthEvaluation, bool) {
22311	return nil, false
22312}
22313
22314// AsReplicasHealthEvaluation is the BasicHealthEvaluation implementation for HealthEvaluation.
22315func (he HealthEvaluation) AsReplicasHealthEvaluation() (*ReplicasHealthEvaluation, bool) {
22316	return nil, false
22317}
22318
22319// AsServiceHealthEvaluation is the BasicHealthEvaluation implementation for HealthEvaluation.
22320func (he HealthEvaluation) AsServiceHealthEvaluation() (*ServiceHealthEvaluation, bool) {
22321	return nil, false
22322}
22323
22324// AsServicesHealthEvaluation is the BasicHealthEvaluation implementation for HealthEvaluation.
22325func (he HealthEvaluation) AsServicesHealthEvaluation() (*ServicesHealthEvaluation, bool) {
22326	return nil, false
22327}
22328
22329// AsSystemApplicationHealthEvaluation is the BasicHealthEvaluation implementation for HealthEvaluation.
22330func (he HealthEvaluation) AsSystemApplicationHealthEvaluation() (*SystemApplicationHealthEvaluation, bool) {
22331	return nil, false
22332}
22333
22334// AsUpgradeDomainDeltaNodesCheckHealthEvaluation is the BasicHealthEvaluation implementation for HealthEvaluation.
22335func (he HealthEvaluation) AsUpgradeDomainDeltaNodesCheckHealthEvaluation() (*UpgradeDomainDeltaNodesCheckHealthEvaluation, bool) {
22336	return nil, false
22337}
22338
22339// AsUpgradeDomainNodesHealthEvaluation is the BasicHealthEvaluation implementation for HealthEvaluation.
22340func (he HealthEvaluation) AsUpgradeDomainNodesHealthEvaluation() (*UpgradeDomainNodesHealthEvaluation, bool) {
22341	return nil, false
22342}
22343
22344// AsHealthEvaluation is the BasicHealthEvaluation implementation for HealthEvaluation.
22345func (he HealthEvaluation) AsHealthEvaluation() (*HealthEvaluation, bool) {
22346	return &he, true
22347}
22348
22349// AsBasicHealthEvaluation is the BasicHealthEvaluation implementation for HealthEvaluation.
22350func (he HealthEvaluation) AsBasicHealthEvaluation() (BasicHealthEvaluation, bool) {
22351	return &he, true
22352}
22353
22354// HealthEvaluationWrapper wrapper object for health evaluation.
22355type HealthEvaluationWrapper struct {
22356	// HealthEvaluation - Represents a health evaluation which describes the data and the algorithm used by health manager to evaluate the health of an entity.
22357	HealthEvaluation BasicHealthEvaluation `json:"HealthEvaluation,omitempty"`
22358}
22359
22360// UnmarshalJSON is the custom unmarshaler for HealthEvaluationWrapper struct.
22361func (hew *HealthEvaluationWrapper) UnmarshalJSON(body []byte) error {
22362	var m map[string]*json.RawMessage
22363	err := json.Unmarshal(body, &m)
22364	if err != nil {
22365		return err
22366	}
22367	for k, v := range m {
22368		switch k {
22369		case "HealthEvaluation":
22370			if v != nil {
22371				healthEvaluation, err := unmarshalBasicHealthEvaluation(*v)
22372				if err != nil {
22373					return err
22374				}
22375				hew.HealthEvaluation = healthEvaluation
22376			}
22377		}
22378	}
22379
22380	return nil
22381}
22382
22383// HealthEvent represents health information reported on a health entity, such as cluster, application or
22384// node, with additional metadata added by the Health Manager.
22385type HealthEvent struct {
22386	// IsExpired - Returns true if the health event is expired, otherwise false.
22387	IsExpired *bool `json:"IsExpired,omitempty"`
22388	// SourceUtcTimestamp - The date and time when the health report was sent by the source.
22389	SourceUtcTimestamp *date.Time `json:"SourceUtcTimestamp,omitempty"`
22390	// LastModifiedUtcTimestamp - The date and time when the health report was last modified by the health store.
22391	LastModifiedUtcTimestamp *date.Time `json:"LastModifiedUtcTimestamp,omitempty"`
22392	// LastOkTransitionAt - If the current health state is 'Ok', this property returns the time at which the health report was first reported with 'Ok'.
22393	// For periodic reporting, many reports with the same state may have been generated.
22394	// This property returns the date and time when the first 'Ok' health report was received.
22395	// 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.
22396	// If the health state was never 'Ok', the value will be zero date-time.
22397	LastOkTransitionAt *date.Time `json:"LastOkTransitionAt,omitempty"`
22398	// 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.
22399	// 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.
22400	// If the health state was never 'Warning', the value will be zero date-time.
22401	LastWarningTransitionAt *date.Time `json:"LastWarningTransitionAt,omitempty"`
22402	// 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.
22403	// 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.
22404	// If the health state was never 'Error', the value will be zero date-time.
22405	LastErrorTransitionAt *date.Time `json:"LastErrorTransitionAt,omitempty"`
22406	// SourceID - The source name that identifies the client/watchdog/system component that generated the health information.
22407	SourceID *string `json:"SourceId,omitempty"`
22408	// Property - The property of the health information. An entity can have health reports for different properties.
22409	// The property is a string and not a fixed enumeration to allow the reporter flexibility to categorize the state condition that triggers the report.
22410	// For example, a reporter with SourceId "LocalWatchdog" can monitor the state of the available disk on a node,
22411	// so it can report "AvailableDisk" property on that node.
22412	// The same reporter can monitor the node connectivity, so it can report a property "Connectivity" on the same node.
22413	// In the health store, these reports are treated as separate health events for the specified node.
22414	// Together with the SourceId, the property uniquely identifies the health information.
22415	Property *string `json:"Property,omitempty"`
22416	// 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'
22417	HealthState HealthState `json:"HealthState,omitempty"`
22418	// TimeToLiveInMilliSeconds - The duration for which this health report is valid. This field uses ISO8601 format for specifying the duration.
22419	// When clients report periodically, they should send reports with higher frequency than time to live.
22420	// If clients report on transition, they can set the time to live to infinite.
22421	// When time to live expires, the health event that contains the health information
22422	// is either removed from health store, if RemoveWhenExpired is true, or evaluated at error, if RemoveWhenExpired false.
22423	// If not specified, time to live defaults to infinite value.
22424	TimeToLiveInMilliSeconds *string `json:"TimeToLiveInMilliSeconds,omitempty"`
22425	// Description - The description of the health information. It represents free text used to add human readable information about the report.
22426	// The maximum string length for the description is 4096 characters.
22427	// If the provided string is longer, it will be automatically truncated.
22428	// When truncated, the last characters of the description contain a marker "[Truncated]", and total string size is 4096 characters.
22429	// The presence of the marker indicates to users that truncation occurred.
22430	// Note that when truncated, the description has less than 4096 characters from the original string.
22431	Description *string `json:"Description,omitempty"`
22432	// SequenceNumber - The sequence number for this health report as a numeric string.
22433	// The report sequence number is used by the health store to detect stale reports.
22434	// If not specified, a sequence number is auto-generated by the health client when a report is added.
22435	SequenceNumber *string `json:"SequenceNumber,omitempty"`
22436	// RemoveWhenExpired - Value that indicates whether the report is removed from health store when it expires.
22437	// If set to true, the report is removed from the health store after it expires.
22438	// If set to false, the report is treated as an error when expired. The value of this property is false by default.
22439	// When clients report periodically, they should set RemoveWhenExpired false (default).
22440	// 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.
22441	// This flags the entity as being in Error health state.
22442	RemoveWhenExpired *bool `json:"RemoveWhenExpired,omitempty"`
22443}
22444
22445// HealthInformation represents common health report information. It is included in all health reports sent
22446// to health store and in all health events returned by health queries.
22447type HealthInformation struct {
22448	// SourceID - The source name that identifies the client/watchdog/system component that generated the health information.
22449	SourceID *string `json:"SourceId,omitempty"`
22450	// Property - The property of the health information. An entity can have health reports for different properties.
22451	// The property is a string and not a fixed enumeration to allow the reporter flexibility to categorize the state condition that triggers the report.
22452	// For example, a reporter with SourceId "LocalWatchdog" can monitor the state of the available disk on a node,
22453	// so it can report "AvailableDisk" property on that node.
22454	// The same reporter can monitor the node connectivity, so it can report a property "Connectivity" on the same node.
22455	// In the health store, these reports are treated as separate health events for the specified node.
22456	// Together with the SourceId, the property uniquely identifies the health information.
22457	Property *string `json:"Property,omitempty"`
22458	// 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'
22459	HealthState HealthState `json:"HealthState,omitempty"`
22460	// TimeToLiveInMilliSeconds - The duration for which this health report is valid. This field uses ISO8601 format for specifying the duration.
22461	// When clients report periodically, they should send reports with higher frequency than time to live.
22462	// If clients report on transition, they can set the time to live to infinite.
22463	// When time to live expires, the health event that contains the health information
22464	// is either removed from health store, if RemoveWhenExpired is true, or evaluated at error, if RemoveWhenExpired false.
22465	// If not specified, time to live defaults to infinite value.
22466	TimeToLiveInMilliSeconds *string `json:"TimeToLiveInMilliSeconds,omitempty"`
22467	// Description - The description of the health information. It represents free text used to add human readable information about the report.
22468	// The maximum string length for the description is 4096 characters.
22469	// If the provided string is longer, it will be automatically truncated.
22470	// When truncated, the last characters of the description contain a marker "[Truncated]", and total string size is 4096 characters.
22471	// The presence of the marker indicates to users that truncation occurred.
22472	// Note that when truncated, the description has less than 4096 characters from the original string.
22473	Description *string `json:"Description,omitempty"`
22474	// SequenceNumber - The sequence number for this health report as a numeric string.
22475	// The report sequence number is used by the health store to detect stale reports.
22476	// If not specified, a sequence number is auto-generated by the health client when a report is added.
22477	SequenceNumber *string `json:"SequenceNumber,omitempty"`
22478	// RemoveWhenExpired - Value that indicates whether the report is removed from health store when it expires.
22479	// If set to true, the report is removed from the health store after it expires.
22480	// If set to false, the report is treated as an error when expired. The value of this property is false by default.
22481	// When clients report periodically, they should set RemoveWhenExpired false (default).
22482	// 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.
22483	// This flags the entity as being in Error health state.
22484	RemoveWhenExpired *bool `json:"RemoveWhenExpired,omitempty"`
22485}
22486
22487// HealthStateCount represents information about how many health entities are in Ok, Warning and Error
22488// health state.
22489type HealthStateCount struct {
22490	// OkCount - The number of health entities with aggregated health state Ok.
22491	OkCount *int64 `json:"OkCount,omitempty"`
22492	// WarningCount - The number of health entities with aggregated health state Warning.
22493	WarningCount *int64 `json:"WarningCount,omitempty"`
22494	// ErrorCount - The number of health entities with aggregated health state Error.
22495	ErrorCount *int64 `json:"ErrorCount,omitempty"`
22496}
22497
22498// HealthStatistics the health statistics of an entity, returned as part of the health query result when
22499// the query description is configured to include statistics.
22500// The statistics include health state counts for all children types of the current entity.
22501// For example, for cluster, the health statistics include health state counts for nodes, applications,
22502// services, partitions, replicas, deployed applications and deployed service packages.
22503// For partition, the health statistics include health counts for replicas.
22504type HealthStatistics struct {
22505	// 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.
22506	HealthStateCountList *[]EntityKindHealthStateCount `json:"HealthStateCountList,omitempty"`
22507}
22508
22509// HTTPConfig describes the http configuration for external connectivity for this network.
22510type HTTPConfig struct {
22511	// Name - http gateway config name.
22512	Name *string `json:"name,omitempty"`
22513	// Port - Specifies the port at which the service endpoint below needs to be exposed.
22514	Port *int32 `json:"port,omitempty"`
22515	// Hosts - description for routing.
22516	Hosts *[]HTTPHostConfig `json:"hosts,omitempty"`
22517}
22518
22519// HTTPHostConfig describes the hostname properties for http routing.
22520type HTTPHostConfig struct {
22521	// Name - http hostname config name.
22522	Name *string `json:"name,omitempty"`
22523	// 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.
22524	Routes *[]HTTPRouteConfig `json:"routes,omitempty"`
22525}
22526
22527// HTTPRouteConfig describes the hostname properties for http routing.
22528type HTTPRouteConfig struct {
22529	// Name - http route name.
22530	Name *string `json:"name,omitempty"`
22531	// Match - Describes a rule for http route matching.
22532	Match *HTTPRouteMatchRule `json:"match,omitempty"`
22533	// Destination - Describes destination endpoint for routing traffic.
22534	Destination *GatewayDestination `json:"destination,omitempty"`
22535}
22536
22537// HTTPRouteMatchHeader describes header information for http route matching.
22538type HTTPRouteMatchHeader struct {
22539	// Name - Name of header to match in request.
22540	Name *string `json:"name,omitempty"`
22541	// Value - Value of header to match in request.
22542	Value *string `json:"value,omitempty"`
22543	// Type - how to match header value. Possible values include: 'Exact'
22544	Type HeaderMatchType `json:"type,omitempty"`
22545}
22546
22547// HTTPRouteMatchPath path to match for routing.
22548type HTTPRouteMatchPath struct {
22549	// Value - Uri path to match for request.
22550	Value *string `json:"value,omitempty"`
22551	// Rewrite - replacement string for matched part of the Uri.
22552	Rewrite *string `json:"rewrite,omitempty"`
22553	// Type - how to match value in the Uri
22554	Type *string `json:"type,omitempty"`
22555}
22556
22557// HTTPRouteMatchRule describes a rule for http route matching.
22558type HTTPRouteMatchRule struct {
22559	// Path - Path to match for routing.
22560	Path *HTTPRouteMatchPath `json:"path,omitempty"`
22561	// Headers - headers and their values to match in request.
22562	Headers *[]HTTPRouteMatchHeader `json:"headers,omitempty"`
22563}
22564
22565// IdentityDescription information describing the identities associated with this application.
22566type IdentityDescription struct {
22567	// TokenServiceEndpoint - the endpoint for the token service managing this identity
22568	TokenServiceEndpoint *string `json:"tokenServiceEndpoint,omitempty"`
22569	// Type - the types of identities associated with this resource; currently restricted to 'SystemAssigned and UserAssigned'
22570	Type *string `json:"type,omitempty"`
22571	// TenantID - the identifier of the tenant containing the application's identity.
22572	TenantID *string `json:"tenantId,omitempty"`
22573	// PrincipalID - the object identifier of the Service Principal of the identity associated with this resource.
22574	PrincipalID *string `json:"principalId,omitempty"`
22575	// UserAssignedIdentities - represents user assigned identities map.
22576	UserAssignedIdentities map[string]*IdentityItemDescription `json:"userAssignedIdentities"`
22577}
22578
22579// MarshalJSON is the custom marshaler for IdentityDescription.
22580func (ID IdentityDescription) MarshalJSON() ([]byte, error) {
22581	objectMap := make(map[string]interface{})
22582	if ID.TokenServiceEndpoint != nil {
22583		objectMap["tokenServiceEndpoint"] = ID.TokenServiceEndpoint
22584	}
22585	if ID.Type != nil {
22586		objectMap["type"] = ID.Type
22587	}
22588	if ID.TenantID != nil {
22589		objectMap["tenantId"] = ID.TenantID
22590	}
22591	if ID.PrincipalID != nil {
22592		objectMap["principalId"] = ID.PrincipalID
22593	}
22594	if ID.UserAssignedIdentities != nil {
22595		objectMap["userAssignedIdentities"] = ID.UserAssignedIdentities
22596	}
22597	return json.Marshal(objectMap)
22598}
22599
22600// IdentityItemDescription describes a single user-assigned identity associated with the application.
22601type IdentityItemDescription struct {
22602	// PrincipalID - the object identifier of the Service Principal which this identity represents.
22603	PrincipalID *string `json:"principalId,omitempty"`
22604	// ClientID - the client identifier of the Service Principal which this identity represents.
22605	ClientID *string `json:"clientId,omitempty"`
22606}
22607
22608// ImageRegistryCredential image registry credential.
22609type ImageRegistryCredential struct {
22610	// Server - Docker image registry server, without protocol such as `http` and `https`.
22611	Server *string `json:"server,omitempty"`
22612	// Username - The username for the private registry.
22613	Username *string `json:"username,omitempty"`
22614	// 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.
22615	Password *string `json:"password,omitempty"`
22616}
22617
22618// ImageStoreContent information about the image store content.
22619type ImageStoreContent struct {
22620	autorest.Response `json:"-"`
22621	// StoreFiles - The list of image store file info objects represents files found under the given image store relative path.
22622	StoreFiles *[]FileInfo `json:"StoreFiles,omitempty"`
22623	// StoreFolders - The list of image store folder info objects represents subfolders found under the given image store relative path.
22624	StoreFolders *[]FolderInfo `json:"StoreFolders,omitempty"`
22625}
22626
22627// ImageStoreCopyDescription information about how to copy image store content from one image store
22628// relative path to another image store relative path.
22629type ImageStoreCopyDescription struct {
22630	// RemoteSource - The relative path of source image store content to be copied from.
22631	RemoteSource *string `json:"RemoteSource,omitempty"`
22632	// RemoteDestination - The relative path of destination image store content to be copied to.
22633	RemoteDestination *string `json:"RemoteDestination,omitempty"`
22634	// SkipFiles - The list of the file names to be skipped for copying.
22635	SkipFiles *[]string `json:"SkipFiles,omitempty"`
22636	// 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.
22637	CheckMarkFile *bool `json:"CheckMarkFile,omitempty"`
22638}
22639
22640// InlinedValueSecretResourceProperties describes the properties of a secret resource whose value is
22641// provided explicitly as plaintext. The secret resource may have multiple values, each being uniquely
22642// versioned. The secret value of each version is stored encrypted, and delivered as plaintext into the
22643// context of applications referencing it.
22644type InlinedValueSecretResourceProperties struct {
22645	// Description - User readable description of the secret.
22646	Description *string `json:"description,omitempty"`
22647	// Status - READ-ONLY; Status of the resource. Possible values include: 'ResourceStatusUnknown', 'ResourceStatusReady', 'ResourceStatusUpgrading', 'ResourceStatusCreating', 'ResourceStatusDeleting', 'ResourceStatusFailed'
22648	Status ResourceStatus `json:"status,omitempty"`
22649	// StatusDetails - READ-ONLY; Gives additional information about the current status of the secret.
22650	StatusDetails *string `json:"statusDetails,omitempty"`
22651	// 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.
22652	ContentType *string `json:"contentType,omitempty"`
22653	// Kind - Possible values include: 'KindSecretResourcePropertiesBase', 'KindSecretResourceProperties', 'KindInlinedValue'
22654	Kind KindBasicSecretResourcePropertiesBase `json:"kind,omitempty"`
22655}
22656
22657// MarshalJSON is the custom marshaler for InlinedValueSecretResourceProperties.
22658func (ivsrp InlinedValueSecretResourceProperties) MarshalJSON() ([]byte, error) {
22659	ivsrp.Kind = KindInlinedValue
22660	objectMap := make(map[string]interface{})
22661	if ivsrp.Description != nil {
22662		objectMap["description"] = ivsrp.Description
22663	}
22664	if ivsrp.ContentType != nil {
22665		objectMap["contentType"] = ivsrp.ContentType
22666	}
22667	if ivsrp.Kind != "" {
22668		objectMap["kind"] = ivsrp.Kind
22669	}
22670	return json.Marshal(objectMap)
22671}
22672
22673// AsSecretResourceProperties is the BasicSecretResourcePropertiesBase implementation for InlinedValueSecretResourceProperties.
22674func (ivsrp InlinedValueSecretResourceProperties) AsSecretResourceProperties() (*SecretResourceProperties, bool) {
22675	return nil, false
22676}
22677
22678// AsBasicSecretResourceProperties is the BasicSecretResourcePropertiesBase implementation for InlinedValueSecretResourceProperties.
22679func (ivsrp InlinedValueSecretResourceProperties) AsBasicSecretResourceProperties() (BasicSecretResourceProperties, bool) {
22680	return &ivsrp, true
22681}
22682
22683// AsInlinedValueSecretResourceProperties is the BasicSecretResourcePropertiesBase implementation for InlinedValueSecretResourceProperties.
22684func (ivsrp InlinedValueSecretResourceProperties) AsInlinedValueSecretResourceProperties() (*InlinedValueSecretResourceProperties, bool) {
22685	return &ivsrp, true
22686}
22687
22688// AsSecretResourcePropertiesBase is the BasicSecretResourcePropertiesBase implementation for InlinedValueSecretResourceProperties.
22689func (ivsrp InlinedValueSecretResourceProperties) AsSecretResourcePropertiesBase() (*SecretResourcePropertiesBase, bool) {
22690	return nil, false
22691}
22692
22693// AsBasicSecretResourcePropertiesBase is the BasicSecretResourcePropertiesBase implementation for InlinedValueSecretResourceProperties.
22694func (ivsrp InlinedValueSecretResourceProperties) AsBasicSecretResourcePropertiesBase() (BasicSecretResourcePropertiesBase, bool) {
22695	return &ivsrp, true
22696}
22697
22698// Int64PropertyValue describes a Service Fabric property value of type Int64.
22699type Int64PropertyValue struct {
22700	// Data - The data of the property value.
22701	Data *string `json:"Data,omitempty"`
22702	// Kind - Possible values include: 'KindPropertyValue', 'KindBinary', 'KindInt64', 'KindDouble', 'KindString', 'KindGUID'
22703	Kind KindBasicPropertyValue `json:"Kind,omitempty"`
22704}
22705
22706// MarshalJSON is the custom marshaler for Int64PropertyValue.
22707func (i6pv Int64PropertyValue) MarshalJSON() ([]byte, error) {
22708	i6pv.Kind = KindInt64
22709	objectMap := make(map[string]interface{})
22710	if i6pv.Data != nil {
22711		objectMap["Data"] = i6pv.Data
22712	}
22713	if i6pv.Kind != "" {
22714		objectMap["Kind"] = i6pv.Kind
22715	}
22716	return json.Marshal(objectMap)
22717}
22718
22719// AsBinaryPropertyValue is the BasicPropertyValue implementation for Int64PropertyValue.
22720func (i6pv Int64PropertyValue) AsBinaryPropertyValue() (*BinaryPropertyValue, bool) {
22721	return nil, false
22722}
22723
22724// AsInt64PropertyValue is the BasicPropertyValue implementation for Int64PropertyValue.
22725func (i6pv Int64PropertyValue) AsInt64PropertyValue() (*Int64PropertyValue, bool) {
22726	return &i6pv, true
22727}
22728
22729// AsDoublePropertyValue is the BasicPropertyValue implementation for Int64PropertyValue.
22730func (i6pv Int64PropertyValue) AsDoublePropertyValue() (*DoublePropertyValue, bool) {
22731	return nil, false
22732}
22733
22734// AsStringPropertyValue is the BasicPropertyValue implementation for Int64PropertyValue.
22735func (i6pv Int64PropertyValue) AsStringPropertyValue() (*StringPropertyValue, bool) {
22736	return nil, false
22737}
22738
22739// AsGUIDPropertyValue is the BasicPropertyValue implementation for Int64PropertyValue.
22740func (i6pv Int64PropertyValue) AsGUIDPropertyValue() (*GUIDPropertyValue, bool) {
22741	return nil, false
22742}
22743
22744// AsPropertyValue is the BasicPropertyValue implementation for Int64PropertyValue.
22745func (i6pv Int64PropertyValue) AsPropertyValue() (*PropertyValue, bool) {
22746	return nil, false
22747}
22748
22749// AsBasicPropertyValue is the BasicPropertyValue implementation for Int64PropertyValue.
22750func (i6pv Int64PropertyValue) AsBasicPropertyValue() (BasicPropertyValue, bool) {
22751	return &i6pv, true
22752}
22753
22754// Int64RangePartitionInformation describes the partition information for the integer range that is based
22755// on partition schemes.
22756type Int64RangePartitionInformation struct {
22757	// LowKey - Specifies the minimum key value handled by this partition.
22758	LowKey *string `json:"LowKey,omitempty"`
22759	// HighKey - Specifies the maximum key value handled by this partition.
22760	HighKey *string `json:"HighKey,omitempty"`
22761	// 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.
22762	ID *uuid.UUID `json:"Id,omitempty"`
22763	// ServicePartitionKind - Possible values include: 'ServicePartitionKindPartitionInformation', 'ServicePartitionKindInt64Range1', 'ServicePartitionKindNamed1', 'ServicePartitionKindSingleton1'
22764	ServicePartitionKind ServicePartitionKindBasicPartitionInformation `json:"ServicePartitionKind,omitempty"`
22765}
22766
22767// MarshalJSON is the custom marshaler for Int64RangePartitionInformation.
22768func (i6rpi Int64RangePartitionInformation) MarshalJSON() ([]byte, error) {
22769	i6rpi.ServicePartitionKind = ServicePartitionKindInt64Range1
22770	objectMap := make(map[string]interface{})
22771	if i6rpi.LowKey != nil {
22772		objectMap["LowKey"] = i6rpi.LowKey
22773	}
22774	if i6rpi.HighKey != nil {
22775		objectMap["HighKey"] = i6rpi.HighKey
22776	}
22777	if i6rpi.ID != nil {
22778		objectMap["Id"] = i6rpi.ID
22779	}
22780	if i6rpi.ServicePartitionKind != "" {
22781		objectMap["ServicePartitionKind"] = i6rpi.ServicePartitionKind
22782	}
22783	return json.Marshal(objectMap)
22784}
22785
22786// AsInt64RangePartitionInformation is the BasicPartitionInformation implementation for Int64RangePartitionInformation.
22787func (i6rpi Int64RangePartitionInformation) AsInt64RangePartitionInformation() (*Int64RangePartitionInformation, bool) {
22788	return &i6rpi, true
22789}
22790
22791// AsNamedPartitionInformation is the BasicPartitionInformation implementation for Int64RangePartitionInformation.
22792func (i6rpi Int64RangePartitionInformation) AsNamedPartitionInformation() (*NamedPartitionInformation, bool) {
22793	return nil, false
22794}
22795
22796// AsSingletonPartitionInformation is the BasicPartitionInformation implementation for Int64RangePartitionInformation.
22797func (i6rpi Int64RangePartitionInformation) AsSingletonPartitionInformation() (*SingletonPartitionInformation, bool) {
22798	return nil, false
22799}
22800
22801// AsPartitionInformation is the BasicPartitionInformation implementation for Int64RangePartitionInformation.
22802func (i6rpi Int64RangePartitionInformation) AsPartitionInformation() (*PartitionInformation, bool) {
22803	return nil, false
22804}
22805
22806// AsBasicPartitionInformation is the BasicPartitionInformation implementation for Int64RangePartitionInformation.
22807func (i6rpi Int64RangePartitionInformation) AsBasicPartitionInformation() (BasicPartitionInformation, bool) {
22808	return &i6rpi, true
22809}
22810
22811// InvokeDataLossResult represents information about an operation in a terminal state (Completed or
22812// Faulted).
22813type InvokeDataLossResult struct {
22814	// ErrorCode - If OperationState is Completed, this is 0.  If OperationState is Faulted, this is an error code indicating the reason.
22815	ErrorCode *int32 `json:"ErrorCode,omitempty"`
22816	// SelectedPartition - This class returns information about the partition that the user-induced operation acted upon.
22817	SelectedPartition *SelectedPartition `json:"SelectedPartition,omitempty"`
22818}
22819
22820// InvokeQuorumLossResult represents information about an operation in a terminal state (Completed or
22821// Faulted).
22822type InvokeQuorumLossResult struct {
22823	// ErrorCode - If OperationState is Completed, this is 0.  If OperationState is Faulted, this is an error code indicating the reason.
22824	ErrorCode *int32 `json:"ErrorCode,omitempty"`
22825	// SelectedPartition - This class returns information about the partition that the user-induced operation acted upon.
22826	SelectedPartition *SelectedPartition `json:"SelectedPartition,omitempty"`
22827}
22828
22829// KeyValueStoreReplicaStatus key value store related information for the replica.
22830type KeyValueStoreReplicaStatus struct {
22831	// DatabaseRowCountEstimate - Value indicating the estimated number of rows in the underlying database.
22832	DatabaseRowCountEstimate *string `json:"DatabaseRowCountEstimate,omitempty"`
22833	// DatabaseLogicalSizeEstimate - Value indicating the estimated size of the underlying database.
22834	DatabaseLogicalSizeEstimate *string `json:"DatabaseLogicalSizeEstimate,omitempty"`
22835	// CopyNotificationCurrentKeyFilter - Value indicating the latest key-prefix filter applied to enumeration during the callback. Null if there is no pending callback.
22836	CopyNotificationCurrentKeyFilter *string `json:"CopyNotificationCurrentKeyFilter,omitempty"`
22837	// CopyNotificationCurrentProgress - Value indicating the latest number of keys enumerated during the callback. 0 if there is no pending callback.
22838	CopyNotificationCurrentProgress *string `json:"CopyNotificationCurrentProgress,omitempty"`
22839	// StatusDetails - Value indicating the current status details of the replica.
22840	StatusDetails *string `json:"StatusDetails,omitempty"`
22841	// Kind - Possible values include: 'KindReplicaStatusBase', 'KindKeyValueStore'
22842	Kind KindBasicReplicaStatusBase `json:"Kind,omitempty"`
22843}
22844
22845// MarshalJSON is the custom marshaler for KeyValueStoreReplicaStatus.
22846func (kvsrs KeyValueStoreReplicaStatus) MarshalJSON() ([]byte, error) {
22847	kvsrs.Kind = KindKeyValueStore
22848	objectMap := make(map[string]interface{})
22849	if kvsrs.DatabaseRowCountEstimate != nil {
22850		objectMap["DatabaseRowCountEstimate"] = kvsrs.DatabaseRowCountEstimate
22851	}
22852	if kvsrs.DatabaseLogicalSizeEstimate != nil {
22853		objectMap["DatabaseLogicalSizeEstimate"] = kvsrs.DatabaseLogicalSizeEstimate
22854	}
22855	if kvsrs.CopyNotificationCurrentKeyFilter != nil {
22856		objectMap["CopyNotificationCurrentKeyFilter"] = kvsrs.CopyNotificationCurrentKeyFilter
22857	}
22858	if kvsrs.CopyNotificationCurrentProgress != nil {
22859		objectMap["CopyNotificationCurrentProgress"] = kvsrs.CopyNotificationCurrentProgress
22860	}
22861	if kvsrs.StatusDetails != nil {
22862		objectMap["StatusDetails"] = kvsrs.StatusDetails
22863	}
22864	if kvsrs.Kind != "" {
22865		objectMap["Kind"] = kvsrs.Kind
22866	}
22867	return json.Marshal(objectMap)
22868}
22869
22870// AsKeyValueStoreReplicaStatus is the BasicReplicaStatusBase implementation for KeyValueStoreReplicaStatus.
22871func (kvsrs KeyValueStoreReplicaStatus) AsKeyValueStoreReplicaStatus() (*KeyValueStoreReplicaStatus, bool) {
22872	return &kvsrs, true
22873}
22874
22875// AsReplicaStatusBase is the BasicReplicaStatusBase implementation for KeyValueStoreReplicaStatus.
22876func (kvsrs KeyValueStoreReplicaStatus) AsReplicaStatusBase() (*ReplicaStatusBase, bool) {
22877	return nil, false
22878}
22879
22880// AsBasicReplicaStatusBase is the BasicReplicaStatusBase implementation for KeyValueStoreReplicaStatus.
22881func (kvsrs KeyValueStoreReplicaStatus) AsBasicReplicaStatusBase() (BasicReplicaStatusBase, bool) {
22882	return &kvsrs, true
22883}
22884
22885// ListApplicationEvent ...
22886type ListApplicationEvent struct {
22887	autorest.Response `json:"-"`
22888	Value             *[]BasicApplicationEvent `json:"value,omitempty"`
22889}
22890
22891// UnmarshalJSON is the custom unmarshaler for ListApplicationEvent struct.
22892func (lae *ListApplicationEvent) UnmarshalJSON(body []byte) error {
22893	ae, err := unmarshalBasicApplicationEventArray(body)
22894	if err != nil {
22895		return err
22896	}
22897	lae.Value = &ae
22898
22899	return nil
22900}
22901
22902// ListClusterEvent ...
22903type ListClusterEvent struct {
22904	autorest.Response `json:"-"`
22905	Value             *[]BasicClusterEvent `json:"value,omitempty"`
22906}
22907
22908// UnmarshalJSON is the custom unmarshaler for ListClusterEvent struct.
22909func (lce *ListClusterEvent) UnmarshalJSON(body []byte) error {
22910	ce, err := unmarshalBasicClusterEventArray(body)
22911	if err != nil {
22912		return err
22913	}
22914	lce.Value = &ce
22915
22916	return nil
22917}
22918
22919// ListContainerInstanceEvent ...
22920type ListContainerInstanceEvent struct {
22921	autorest.Response `json:"-"`
22922	Value             *[]ContainerInstanceEvent `json:"value,omitempty"`
22923}
22924
22925// ListDeployedCodePackageInfo ...
22926type ListDeployedCodePackageInfo struct {
22927	autorest.Response `json:"-"`
22928	Value             *[]DeployedCodePackageInfo `json:"value,omitempty"`
22929}
22930
22931// ListDeployedServicePackageInfo ...
22932type ListDeployedServicePackageInfo struct {
22933	autorest.Response `json:"-"`
22934	Value             *[]DeployedServicePackageInfo `json:"value,omitempty"`
22935}
22936
22937// ListDeployedServiceReplicaInfo ...
22938type ListDeployedServiceReplicaInfo struct {
22939	autorest.Response `json:"-"`
22940	Value             *[]BasicDeployedServiceReplicaInfo `json:"value,omitempty"`
22941}
22942
22943// UnmarshalJSON is the custom unmarshaler for ListDeployedServiceReplicaInfo struct.
22944func (ldsri *ListDeployedServiceReplicaInfo) UnmarshalJSON(body []byte) error {
22945	dsri, err := unmarshalBasicDeployedServiceReplicaInfoArray(body)
22946	if err != nil {
22947		return err
22948	}
22949	ldsri.Value = &dsri
22950
22951	return nil
22952}
22953
22954// ListDeployedServiceTypeInfo ...
22955type ListDeployedServiceTypeInfo struct {
22956	autorest.Response `json:"-"`
22957	Value             *[]DeployedServiceTypeInfo `json:"value,omitempty"`
22958}
22959
22960// ListFabricCodeVersionInfo ...
22961type ListFabricCodeVersionInfo struct {
22962	autorest.Response `json:"-"`
22963	Value             *[]FabricCodeVersionInfo `json:"value,omitempty"`
22964}
22965
22966// ListFabricConfigVersionInfo ...
22967type ListFabricConfigVersionInfo struct {
22968	autorest.Response `json:"-"`
22969	Value             *[]FabricConfigVersionInfo `json:"value,omitempty"`
22970}
22971
22972// ListFabricEvent ...
22973type ListFabricEvent struct {
22974	autorest.Response `json:"-"`
22975	Value             *[]BasicFabricEvent `json:"value,omitempty"`
22976}
22977
22978// UnmarshalJSON is the custom unmarshaler for ListFabricEvent struct.
22979func (lfe *ListFabricEvent) UnmarshalJSON(body []byte) error {
22980	fe, err := unmarshalBasicFabricEventArray(body)
22981	if err != nil {
22982		return err
22983	}
22984	lfe.Value = &fe
22985
22986	return nil
22987}
22988
22989// ListNodeEvent ...
22990type ListNodeEvent struct {
22991	autorest.Response `json:"-"`
22992	Value             *[]BasicNodeEvent `json:"value,omitempty"`
22993}
22994
22995// UnmarshalJSON is the custom unmarshaler for ListNodeEvent struct.
22996func (lne *ListNodeEvent) UnmarshalJSON(body []byte) error {
22997	ne, err := unmarshalBasicNodeEventArray(body)
22998	if err != nil {
22999		return err
23000	}
23001	lne.Value = &ne
23002
23003	return nil
23004}
23005
23006// ListOperationStatus ...
23007type ListOperationStatus struct {
23008	autorest.Response `json:"-"`
23009	Value             *[]OperationStatus `json:"value,omitempty"`
23010}
23011
23012// ListPartitionEvent ...
23013type ListPartitionEvent struct {
23014	autorest.Response `json:"-"`
23015	Value             *[]BasicPartitionEvent `json:"value,omitempty"`
23016}
23017
23018// UnmarshalJSON is the custom unmarshaler for ListPartitionEvent struct.
23019func (lpe *ListPartitionEvent) UnmarshalJSON(body []byte) error {
23020	peVar, err := unmarshalBasicPartitionEventArray(body)
23021	if err != nil {
23022		return err
23023	}
23024	lpe.Value = &peVar
23025
23026	return nil
23027}
23028
23029// ListRepairTask ...
23030type ListRepairTask struct {
23031	autorest.Response `json:"-"`
23032	Value             *[]RepairTask `json:"value,omitempty"`
23033}
23034
23035// ListReplicaEvent ...
23036type ListReplicaEvent struct {
23037	autorest.Response `json:"-"`
23038	Value             *[]BasicReplicaEvent `json:"value,omitempty"`
23039}
23040
23041// UnmarshalJSON is the custom unmarshaler for ListReplicaEvent struct.
23042func (lre *ListReplicaEvent) UnmarshalJSON(body []byte) error {
23043	re, err := unmarshalBasicReplicaEventArray(body)
23044	if err != nil {
23045		return err
23046	}
23047	lre.Value = &re
23048
23049	return nil
23050}
23051
23052// ListServiceEvent ...
23053type ListServiceEvent struct {
23054	autorest.Response `json:"-"`
23055	Value             *[]BasicServiceEvent `json:"value,omitempty"`
23056}
23057
23058// UnmarshalJSON is the custom unmarshaler for ListServiceEvent struct.
23059func (lse *ListServiceEvent) UnmarshalJSON(body []byte) error {
23060	se, err := unmarshalBasicServiceEventArray(body)
23061	if err != nil {
23062		return err
23063	}
23064	lse.Value = &se
23065
23066	return nil
23067}
23068
23069// ListServiceTypeInfo ...
23070type ListServiceTypeInfo struct {
23071	autorest.Response `json:"-"`
23072	Value             *[]ServiceTypeInfo `json:"value,omitempty"`
23073}
23074
23075// LoadMetricInformation represents data structure that contains load information for a certain metric in a
23076// cluster.
23077type LoadMetricInformation struct {
23078	// Name - Name of the metric for which this load information is provided.
23079	Name *string `json:"Name,omitempty"`
23080	// IsBalancedBefore - Value that indicates whether the metrics is balanced or not before resource balancer run
23081	IsBalancedBefore *bool `json:"IsBalancedBefore,omitempty"`
23082	// IsBalancedAfter - Value that indicates whether the metrics is balanced or not after resource balancer run.
23083	IsBalancedAfter *bool `json:"IsBalancedAfter,omitempty"`
23084	// DeviationBefore - The standard average deviation of the metrics before resource balancer run.
23085	DeviationBefore *string `json:"DeviationBefore,omitempty"`
23086	// DeviationAfter - The standard average deviation of the metrics after resource balancer run.
23087	DeviationAfter *string `json:"DeviationAfter,omitempty"`
23088	// BalancingThreshold - The balancing threshold for a certain metric.
23089	BalancingThreshold *string `json:"BalancingThreshold,omitempty"`
23090	// Action - The current action being taken with regard to this metric
23091	Action *string `json:"Action,omitempty"`
23092	// ActivityThreshold - The Activity Threshold specified for this metric in the system Cluster Manifest.
23093	ActivityThreshold *string `json:"ActivityThreshold,omitempty"`
23094	// ClusterCapacity - The total cluster capacity for a given metric
23095	ClusterCapacity *string `json:"ClusterCapacity,omitempty"`
23096	// ClusterLoad - The total cluster load. In future releases of Service Fabric this parameter will be deprecated in favor of CurrentClusterLoad.
23097	ClusterLoad *string `json:"ClusterLoad,omitempty"`
23098	// CurrentClusterLoad - The total cluster load.
23099	CurrentClusterLoad *string `json:"CurrentClusterLoad,omitempty"`
23100	// 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.
23101	ClusterRemainingCapacity *string `json:"ClusterRemainingCapacity,omitempty"`
23102	// ClusterCapacityRemaining - The remaining capacity for the metric in the cluster.
23103	ClusterCapacityRemaining *string `json:"ClusterCapacityRemaining,omitempty"`
23104	// IsClusterCapacityViolation - Indicates that the metric is currently over capacity in the cluster.
23105	IsClusterCapacityViolation *bool `json:"IsClusterCapacityViolation,omitempty"`
23106	// NodeBufferPercentage - The reserved percentage of total node capacity for this metric.
23107	NodeBufferPercentage *string `json:"NodeBufferPercentage,omitempty"`
23108	// 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.
23109	ClusterBufferedCapacity *string `json:"ClusterBufferedCapacity,omitempty"`
23110	// BufferedClusterCapacityRemaining - Remaining capacity in the cluster excluding the reserved space.
23111	BufferedClusterCapacityRemaining *string `json:"BufferedClusterCapacityRemaining,omitempty"`
23112	// ClusterRemainingBufferedCapacity - The remaining percentage of cluster total capacity for this metric.
23113	ClusterRemainingBufferedCapacity *string `json:"ClusterRemainingBufferedCapacity,omitempty"`
23114	// 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.
23115	MinNodeLoadValue *string `json:"MinNodeLoadValue,omitempty"`
23116	// MinimumNodeLoad - The minimum load on any node for this metric.
23117	MinimumNodeLoad *string `json:"MinimumNodeLoad,omitempty"`
23118	// MinNodeLoadNodeID - The node id of the node with the minimum load for this metric.
23119	MinNodeLoadNodeID *NodeID `json:"MinNodeLoadNodeId,omitempty"`
23120	// 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.
23121	MaxNodeLoadValue *string `json:"MaxNodeLoadValue,omitempty"`
23122	// MaximumNodeLoad - The maximum load on any node for this metric.
23123	MaximumNodeLoad *string `json:"MaximumNodeLoad,omitempty"`
23124	// MaxNodeLoadNodeID - The node id of the node with the maximum load for this metric.
23125	MaxNodeLoadNodeID *NodeID `json:"MaxNodeLoadNodeId,omitempty"`
23126	// PlannedLoadRemoval - This value represents the load of the replicas that are planned to be removed in the future within the cluster.
23127	// 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.
23128	PlannedLoadRemoval *string `json:"PlannedLoadRemoval,omitempty"`
23129}
23130
23131// LoadMetricReport represents the load metric report which contains the time metric was reported, its name
23132// and value.
23133type LoadMetricReport struct {
23134	// LastReportedUtc - Gets the UTC time when the load was reported.
23135	LastReportedUtc *date.Time `json:"LastReportedUtc,omitempty"`
23136	// Name - The name of the load metric.
23137	Name *string `json:"Name,omitempty"`
23138	// Value - The value of the load metric. In future releases of Service Fabric this parameter will be deprecated in favor of CurrentValue.
23139	Value *string `json:"Value,omitempty"`
23140	// CurrentValue - The value of the load metric.
23141	CurrentValue *string `json:"CurrentValue,omitempty"`
23142}
23143
23144// LoadMetricReportInfo information about load reported by replica.
23145type LoadMetricReportInfo struct {
23146	// Name - The name of the metric.
23147	Name *string `json:"Name,omitempty"`
23148	// Value - The value of the load for the metric. In future releases of Service Fabric this parameter will be deprecated in favor of CurrentValue.
23149	Value *int32 `json:"Value,omitempty"`
23150	// CurrentValue - The double value of the load for the metric.
23151	CurrentValue *string `json:"CurrentValue,omitempty"`
23152	// LastReportedUtc - The UTC time when the load is reported.
23153	LastReportedUtc *date.Time `json:"LastReportedUtc,omitempty"`
23154}
23155
23156// LocalNetworkResourceProperties information about a Service Fabric container network local to a single
23157// Service Fabric cluster.
23158type LocalNetworkResourceProperties struct {
23159	// NetworkAddressPrefix - Address space for the local container network.
23160	NetworkAddressPrefix *string `json:"networkAddressPrefix,omitempty"`
23161	// Description - User readable description of the network.
23162	Description *string `json:"description,omitempty"`
23163	// Status - READ-ONLY; Status of the network. Possible values include: 'ResourceStatusUnknown', 'ResourceStatusReady', 'ResourceStatusUpgrading', 'ResourceStatusCreating', 'ResourceStatusDeleting', 'ResourceStatusFailed'
23164	Status ResourceStatus `json:"status,omitempty"`
23165	// StatusDetails - READ-ONLY; Gives additional information about the current status of the network.
23166	StatusDetails *string `json:"statusDetails,omitempty"`
23167	// Kind - Possible values include: 'KindNetworkResourcePropertiesBase', 'KindNetworkResourceProperties', 'KindLocal'
23168	Kind KindBasicNetworkResourcePropertiesBase `json:"kind,omitempty"`
23169}
23170
23171// MarshalJSON is the custom marshaler for LocalNetworkResourceProperties.
23172func (lnrp LocalNetworkResourceProperties) MarshalJSON() ([]byte, error) {
23173	lnrp.Kind = KindLocal
23174	objectMap := make(map[string]interface{})
23175	if lnrp.NetworkAddressPrefix != nil {
23176		objectMap["networkAddressPrefix"] = lnrp.NetworkAddressPrefix
23177	}
23178	if lnrp.Description != nil {
23179		objectMap["description"] = lnrp.Description
23180	}
23181	if lnrp.Kind != "" {
23182		objectMap["kind"] = lnrp.Kind
23183	}
23184	return json.Marshal(objectMap)
23185}
23186
23187// AsNetworkResourceProperties is the BasicNetworkResourcePropertiesBase implementation for LocalNetworkResourceProperties.
23188func (lnrp LocalNetworkResourceProperties) AsNetworkResourceProperties() (*NetworkResourceProperties, bool) {
23189	return nil, false
23190}
23191
23192// AsBasicNetworkResourceProperties is the BasicNetworkResourcePropertiesBase implementation for LocalNetworkResourceProperties.
23193func (lnrp LocalNetworkResourceProperties) AsBasicNetworkResourceProperties() (BasicNetworkResourceProperties, bool) {
23194	return &lnrp, true
23195}
23196
23197// AsLocalNetworkResourceProperties is the BasicNetworkResourcePropertiesBase implementation for LocalNetworkResourceProperties.
23198func (lnrp LocalNetworkResourceProperties) AsLocalNetworkResourceProperties() (*LocalNetworkResourceProperties, bool) {
23199	return &lnrp, true
23200}
23201
23202// AsNetworkResourcePropertiesBase is the BasicNetworkResourcePropertiesBase implementation for LocalNetworkResourceProperties.
23203func (lnrp LocalNetworkResourceProperties) AsNetworkResourcePropertiesBase() (*NetworkResourcePropertiesBase, bool) {
23204	return nil, false
23205}
23206
23207// AsBasicNetworkResourcePropertiesBase is the BasicNetworkResourcePropertiesBase implementation for LocalNetworkResourceProperties.
23208func (lnrp LocalNetworkResourceProperties) AsBasicNetworkResourcePropertiesBase() (BasicNetworkResourcePropertiesBase, bool) {
23209	return &lnrp, true
23210}
23211
23212// ManagedApplicationIdentity describes a managed application identity.
23213type ManagedApplicationIdentity struct {
23214	// Name - The name of the identity.
23215	Name *string `json:"Name,omitempty"`
23216	// PrincipalID - The identity's PrincipalId.
23217	PrincipalID *string `json:"PrincipalId,omitempty"`
23218}
23219
23220// ManagedApplicationIdentityDescription managed application identity description.
23221type ManagedApplicationIdentityDescription struct {
23222	// TokenServiceEndpoint - Token service endpoint.
23223	TokenServiceEndpoint *string `json:"TokenServiceEndpoint,omitempty"`
23224	// ManagedIdentities - A list of managed application identity objects.
23225	ManagedIdentities *[]ManagedApplicationIdentity `json:"ManagedIdentities,omitempty"`
23226}
23227
23228// MonitoringPolicyDescription describes the parameters for monitoring an upgrade in Monitored mode.
23229type MonitoringPolicyDescription struct {
23230	// FailureAction - The compensating action to perform when a Monitored upgrade encounters monitoring policy or health policy violations.
23231	// Invalid indicates the failure action is invalid. Rollback specifies that the upgrade will start rolling back automatically.
23232	// Manual indicates that the upgrade will switch to UnmonitoredManual upgrade mode. Possible values include: 'FailureActionInvalid', 'FailureActionRollback', 'FailureActionManual'
23233	FailureAction FailureAction `json:"FailureAction,omitempty"`
23234	// 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.
23235	HealthCheckWaitDurationInMilliseconds *string `json:"HealthCheckWaitDurationInMilliseconds,omitempty"`
23236	// 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.
23237	HealthCheckStableDurationInMilliseconds *string `json:"HealthCheckStableDurationInMilliseconds,omitempty"`
23238	// 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.
23239	HealthCheckRetryTimeoutInMilliseconds *string `json:"HealthCheckRetryTimeoutInMilliseconds,omitempty"`
23240	// 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.
23241	UpgradeTimeoutInMilliseconds *string `json:"UpgradeTimeoutInMilliseconds,omitempty"`
23242	// 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.
23243	UpgradeDomainTimeoutInMilliseconds *string `json:"UpgradeDomainTimeoutInMilliseconds,omitempty"`
23244}
23245
23246// NameDescription describes a Service Fabric name.
23247type NameDescription struct {
23248	// Name - The Service Fabric name, including the 'fabric:' URI scheme.
23249	Name *string `json:"Name,omitempty"`
23250}
23251
23252// NamedPartitionInformation describes the partition information for the name as a string that is based on
23253// partition schemes.
23254type NamedPartitionInformation struct {
23255	// Name - Name of the partition.
23256	Name *string `json:"Name,omitempty"`
23257	// 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.
23258	ID *uuid.UUID `json:"Id,omitempty"`
23259	// ServicePartitionKind - Possible values include: 'ServicePartitionKindPartitionInformation', 'ServicePartitionKindInt64Range1', 'ServicePartitionKindNamed1', 'ServicePartitionKindSingleton1'
23260	ServicePartitionKind ServicePartitionKindBasicPartitionInformation `json:"ServicePartitionKind,omitempty"`
23261}
23262
23263// MarshalJSON is the custom marshaler for NamedPartitionInformation.
23264func (npi NamedPartitionInformation) MarshalJSON() ([]byte, error) {
23265	npi.ServicePartitionKind = ServicePartitionKindNamed1
23266	objectMap := make(map[string]interface{})
23267	if npi.Name != nil {
23268		objectMap["Name"] = npi.Name
23269	}
23270	if npi.ID != nil {
23271		objectMap["Id"] = npi.ID
23272	}
23273	if npi.ServicePartitionKind != "" {
23274		objectMap["ServicePartitionKind"] = npi.ServicePartitionKind
23275	}
23276	return json.Marshal(objectMap)
23277}
23278
23279// AsInt64RangePartitionInformation is the BasicPartitionInformation implementation for NamedPartitionInformation.
23280func (npi NamedPartitionInformation) AsInt64RangePartitionInformation() (*Int64RangePartitionInformation, bool) {
23281	return nil, false
23282}
23283
23284// AsNamedPartitionInformation is the BasicPartitionInformation implementation for NamedPartitionInformation.
23285func (npi NamedPartitionInformation) AsNamedPartitionInformation() (*NamedPartitionInformation, bool) {
23286	return &npi, true
23287}
23288
23289// AsSingletonPartitionInformation is the BasicPartitionInformation implementation for NamedPartitionInformation.
23290func (npi NamedPartitionInformation) AsSingletonPartitionInformation() (*SingletonPartitionInformation, bool) {
23291	return nil, false
23292}
23293
23294// AsPartitionInformation is the BasicPartitionInformation implementation for NamedPartitionInformation.
23295func (npi NamedPartitionInformation) AsPartitionInformation() (*PartitionInformation, bool) {
23296	return nil, false
23297}
23298
23299// AsBasicPartitionInformation is the BasicPartitionInformation implementation for NamedPartitionInformation.
23300func (npi NamedPartitionInformation) AsBasicPartitionInformation() (BasicPartitionInformation, bool) {
23301	return &npi, true
23302}
23303
23304// NamedPartitionSchemeDescription describes the named partition scheme of the service.
23305type NamedPartitionSchemeDescription struct {
23306	// Count - The number of partitions.
23307	Count *int32 `json:"Count,omitempty"`
23308	// Names - Array of size specified by the ‘Count’ parameter, for the names of the partitions.
23309	Names *[]string `json:"Names,omitempty"`
23310	// PartitionScheme - Possible values include: 'PartitionSchemePartitionSchemeDescription', 'PartitionSchemeNamed1', 'PartitionSchemeSingleton1', 'PartitionSchemeUniformInt64Range1'
23311	PartitionScheme PartitionSchemeBasicPartitionSchemeDescription `json:"PartitionScheme,omitempty"`
23312}
23313
23314// MarshalJSON is the custom marshaler for NamedPartitionSchemeDescription.
23315func (npsd NamedPartitionSchemeDescription) MarshalJSON() ([]byte, error) {
23316	npsd.PartitionScheme = PartitionSchemeNamed1
23317	objectMap := make(map[string]interface{})
23318	if npsd.Count != nil {
23319		objectMap["Count"] = npsd.Count
23320	}
23321	if npsd.Names != nil {
23322		objectMap["Names"] = npsd.Names
23323	}
23324	if npsd.PartitionScheme != "" {
23325		objectMap["PartitionScheme"] = npsd.PartitionScheme
23326	}
23327	return json.Marshal(objectMap)
23328}
23329
23330// AsNamedPartitionSchemeDescription is the BasicPartitionSchemeDescription implementation for NamedPartitionSchemeDescription.
23331func (npsd NamedPartitionSchemeDescription) AsNamedPartitionSchemeDescription() (*NamedPartitionSchemeDescription, bool) {
23332	return &npsd, true
23333}
23334
23335// AsSingletonPartitionSchemeDescription is the BasicPartitionSchemeDescription implementation for NamedPartitionSchemeDescription.
23336func (npsd NamedPartitionSchemeDescription) AsSingletonPartitionSchemeDescription() (*SingletonPartitionSchemeDescription, bool) {
23337	return nil, false
23338}
23339
23340// AsUniformInt64RangePartitionSchemeDescription is the BasicPartitionSchemeDescription implementation for NamedPartitionSchemeDescription.
23341func (npsd NamedPartitionSchemeDescription) AsUniformInt64RangePartitionSchemeDescription() (*UniformInt64RangePartitionSchemeDescription, bool) {
23342	return nil, false
23343}
23344
23345// AsPartitionSchemeDescription is the BasicPartitionSchemeDescription implementation for NamedPartitionSchemeDescription.
23346func (npsd NamedPartitionSchemeDescription) AsPartitionSchemeDescription() (*PartitionSchemeDescription, bool) {
23347	return nil, false
23348}
23349
23350// AsBasicPartitionSchemeDescription is the BasicPartitionSchemeDescription implementation for NamedPartitionSchemeDescription.
23351func (npsd NamedPartitionSchemeDescription) AsBasicPartitionSchemeDescription() (BasicPartitionSchemeDescription, bool) {
23352	return &npsd, true
23353}
23354
23355// NetworkRef describes a network reference in a service.
23356type NetworkRef struct {
23357	// Name - Name of the network
23358	Name *string `json:"name,omitempty"`
23359	// EndpointRefs - A list of endpoints that are exposed on this network.
23360	EndpointRefs *[]EndpointRef `json:"endpointRefs,omitempty"`
23361}
23362
23363// NetworkResourceDescription this type describes a network resource.
23364type NetworkResourceDescription struct {
23365	autorest.Response `json:"-"`
23366	// Name - Name of the Network resource.
23367	Name *string `json:"name,omitempty"`
23368	// Properties - Describes properties of a network resource.
23369	Properties BasicNetworkResourceProperties `json:"properties,omitempty"`
23370}
23371
23372// UnmarshalJSON is the custom unmarshaler for NetworkResourceDescription struct.
23373func (nrd *NetworkResourceDescription) UnmarshalJSON(body []byte) error {
23374	var m map[string]*json.RawMessage
23375	err := json.Unmarshal(body, &m)
23376	if err != nil {
23377		return err
23378	}
23379	for k, v := range m {
23380		switch k {
23381		case "name":
23382			if v != nil {
23383				var name string
23384				err = json.Unmarshal(*v, &name)
23385				if err != nil {
23386					return err
23387				}
23388				nrd.Name = &name
23389			}
23390		case "properties":
23391			if v != nil {
23392				properties, err := unmarshalBasicNetworkResourceProperties(*v)
23393				if err != nil {
23394					return err
23395				}
23396				nrd.Properties = properties
23397			}
23398		}
23399	}
23400
23401	return nil
23402}
23403
23404// BasicNetworkResourceProperties describes properties of a network resource.
23405type BasicNetworkResourceProperties interface {
23406	AsLocalNetworkResourceProperties() (*LocalNetworkResourceProperties, bool)
23407	AsNetworkResourceProperties() (*NetworkResourceProperties, bool)
23408}
23409
23410// NetworkResourceProperties describes properties of a network resource.
23411type NetworkResourceProperties struct {
23412	// Description - User readable description of the network.
23413	Description *string `json:"description,omitempty"`
23414	// Status - READ-ONLY; Status of the network. Possible values include: 'ResourceStatusUnknown', 'ResourceStatusReady', 'ResourceStatusUpgrading', 'ResourceStatusCreating', 'ResourceStatusDeleting', 'ResourceStatusFailed'
23415	Status ResourceStatus `json:"status,omitempty"`
23416	// StatusDetails - READ-ONLY; Gives additional information about the current status of the network.
23417	StatusDetails *string `json:"statusDetails,omitempty"`
23418	// Kind - Possible values include: 'KindNetworkResourcePropertiesBase', 'KindNetworkResourceProperties', 'KindLocal'
23419	Kind KindBasicNetworkResourcePropertiesBase `json:"kind,omitempty"`
23420}
23421
23422func unmarshalBasicNetworkResourceProperties(body []byte) (BasicNetworkResourceProperties, error) {
23423	var m map[string]interface{}
23424	err := json.Unmarshal(body, &m)
23425	if err != nil {
23426		return nil, err
23427	}
23428
23429	switch m["kind"] {
23430	case string(KindLocal):
23431		var lnrp LocalNetworkResourceProperties
23432		err := json.Unmarshal(body, &lnrp)
23433		return lnrp, err
23434	default:
23435		var nrp NetworkResourceProperties
23436		err := json.Unmarshal(body, &nrp)
23437		return nrp, err
23438	}
23439}
23440func unmarshalBasicNetworkResourcePropertiesArray(body []byte) ([]BasicNetworkResourceProperties, error) {
23441	var rawMessages []*json.RawMessage
23442	err := json.Unmarshal(body, &rawMessages)
23443	if err != nil {
23444		return nil, err
23445	}
23446
23447	nrpArray := make([]BasicNetworkResourceProperties, len(rawMessages))
23448
23449	for index, rawMessage := range rawMessages {
23450		nrp, err := unmarshalBasicNetworkResourceProperties(*rawMessage)
23451		if err != nil {
23452			return nil, err
23453		}
23454		nrpArray[index] = nrp
23455	}
23456	return nrpArray, nil
23457}
23458
23459// MarshalJSON is the custom marshaler for NetworkResourceProperties.
23460func (nrp NetworkResourceProperties) MarshalJSON() ([]byte, error) {
23461	nrp.Kind = KindNetworkResourceProperties
23462	objectMap := make(map[string]interface{})
23463	if nrp.Description != nil {
23464		objectMap["description"] = nrp.Description
23465	}
23466	if nrp.Kind != "" {
23467		objectMap["kind"] = nrp.Kind
23468	}
23469	return json.Marshal(objectMap)
23470}
23471
23472// AsNetworkResourceProperties is the BasicNetworkResourcePropertiesBase implementation for NetworkResourceProperties.
23473func (nrp NetworkResourceProperties) AsNetworkResourceProperties() (*NetworkResourceProperties, bool) {
23474	return &nrp, true
23475}
23476
23477// AsBasicNetworkResourceProperties is the BasicNetworkResourcePropertiesBase implementation for NetworkResourceProperties.
23478func (nrp NetworkResourceProperties) AsBasicNetworkResourceProperties() (BasicNetworkResourceProperties, bool) {
23479	return &nrp, true
23480}
23481
23482// AsLocalNetworkResourceProperties is the BasicNetworkResourcePropertiesBase implementation for NetworkResourceProperties.
23483func (nrp NetworkResourceProperties) AsLocalNetworkResourceProperties() (*LocalNetworkResourceProperties, bool) {
23484	return nil, false
23485}
23486
23487// AsNetworkResourcePropertiesBase is the BasicNetworkResourcePropertiesBase implementation for NetworkResourceProperties.
23488func (nrp NetworkResourceProperties) AsNetworkResourcePropertiesBase() (*NetworkResourcePropertiesBase, bool) {
23489	return nil, false
23490}
23491
23492// AsBasicNetworkResourcePropertiesBase is the BasicNetworkResourcePropertiesBase implementation for NetworkResourceProperties.
23493func (nrp NetworkResourceProperties) AsBasicNetworkResourcePropertiesBase() (BasicNetworkResourcePropertiesBase, bool) {
23494	return &nrp, true
23495}
23496
23497// BasicNetworkResourcePropertiesBase this type describes the properties of a network resource, including its kind.
23498type BasicNetworkResourcePropertiesBase interface {
23499	AsNetworkResourceProperties() (*NetworkResourceProperties, bool)
23500	AsBasicNetworkResourceProperties() (BasicNetworkResourceProperties, bool)
23501	AsLocalNetworkResourceProperties() (*LocalNetworkResourceProperties, bool)
23502	AsNetworkResourcePropertiesBase() (*NetworkResourcePropertiesBase, bool)
23503}
23504
23505// NetworkResourcePropertiesBase this type describes the properties of a network resource, including its kind.
23506type NetworkResourcePropertiesBase struct {
23507	// Kind - Possible values include: 'KindNetworkResourcePropertiesBase', 'KindNetworkResourceProperties', 'KindLocal'
23508	Kind KindBasicNetworkResourcePropertiesBase `json:"kind,omitempty"`
23509}
23510
23511func unmarshalBasicNetworkResourcePropertiesBase(body []byte) (BasicNetworkResourcePropertiesBase, error) {
23512	var m map[string]interface{}
23513	err := json.Unmarshal(body, &m)
23514	if err != nil {
23515		return nil, err
23516	}
23517
23518	switch m["kind"] {
23519	case string(KindNetworkResourceProperties):
23520		var nrp NetworkResourceProperties
23521		err := json.Unmarshal(body, &nrp)
23522		return nrp, err
23523	case string(KindLocal):
23524		var lnrp LocalNetworkResourceProperties
23525		err := json.Unmarshal(body, &lnrp)
23526		return lnrp, err
23527	default:
23528		var nrpb NetworkResourcePropertiesBase
23529		err := json.Unmarshal(body, &nrpb)
23530		return nrpb, err
23531	}
23532}
23533func unmarshalBasicNetworkResourcePropertiesBaseArray(body []byte) ([]BasicNetworkResourcePropertiesBase, error) {
23534	var rawMessages []*json.RawMessage
23535	err := json.Unmarshal(body, &rawMessages)
23536	if err != nil {
23537		return nil, err
23538	}
23539
23540	nrpbArray := make([]BasicNetworkResourcePropertiesBase, len(rawMessages))
23541
23542	for index, rawMessage := range rawMessages {
23543		nrpb, err := unmarshalBasicNetworkResourcePropertiesBase(*rawMessage)
23544		if err != nil {
23545			return nil, err
23546		}
23547		nrpbArray[index] = nrpb
23548	}
23549	return nrpbArray, nil
23550}
23551
23552// MarshalJSON is the custom marshaler for NetworkResourcePropertiesBase.
23553func (nrpb NetworkResourcePropertiesBase) MarshalJSON() ([]byte, error) {
23554	nrpb.Kind = KindNetworkResourcePropertiesBase
23555	objectMap := make(map[string]interface{})
23556	if nrpb.Kind != "" {
23557		objectMap["kind"] = nrpb.Kind
23558	}
23559	return json.Marshal(objectMap)
23560}
23561
23562// AsNetworkResourceProperties is the BasicNetworkResourcePropertiesBase implementation for NetworkResourcePropertiesBase.
23563func (nrpb NetworkResourcePropertiesBase) AsNetworkResourceProperties() (*NetworkResourceProperties, bool) {
23564	return nil, false
23565}
23566
23567// AsBasicNetworkResourceProperties is the BasicNetworkResourcePropertiesBase implementation for NetworkResourcePropertiesBase.
23568func (nrpb NetworkResourcePropertiesBase) AsBasicNetworkResourceProperties() (BasicNetworkResourceProperties, bool) {
23569	return nil, false
23570}
23571
23572// AsLocalNetworkResourceProperties is the BasicNetworkResourcePropertiesBase implementation for NetworkResourcePropertiesBase.
23573func (nrpb NetworkResourcePropertiesBase) AsLocalNetworkResourceProperties() (*LocalNetworkResourceProperties, bool) {
23574	return nil, false
23575}
23576
23577// AsNetworkResourcePropertiesBase is the BasicNetworkResourcePropertiesBase implementation for NetworkResourcePropertiesBase.
23578func (nrpb NetworkResourcePropertiesBase) AsNetworkResourcePropertiesBase() (*NetworkResourcePropertiesBase, bool) {
23579	return &nrpb, true
23580}
23581
23582// AsBasicNetworkResourcePropertiesBase is the BasicNetworkResourcePropertiesBase implementation for NetworkResourcePropertiesBase.
23583func (nrpb NetworkResourcePropertiesBase) AsBasicNetworkResourcePropertiesBase() (BasicNetworkResourcePropertiesBase, bool) {
23584	return &nrpb, true
23585}
23586
23587// NodeAbortedEvent node Aborted event.
23588type NodeAbortedEvent struct {
23589	// NodeInstance - Id of Node instance.
23590	NodeInstance *int64 `json:"NodeInstance,omitempty"`
23591	// NodeID - Id of Node.
23592	NodeID *string `json:"NodeId,omitempty"`
23593	// UpgradeDomain - Upgrade domain of Node.
23594	UpgradeDomain *string `json:"UpgradeDomain,omitempty"`
23595	// FaultDomain - Fault domain of Node.
23596	FaultDomain *string `json:"FaultDomain,omitempty"`
23597	// IPAddressOrFQDN - IP address or FQDN.
23598	IPAddressOrFQDN *string `json:"IpAddressOrFQDN,omitempty"`
23599	// Hostname - Name of Host.
23600	Hostname *string `json:"Hostname,omitempty"`
23601	// IsSeedNode - Indicates if it is seed node.
23602	IsSeedNode *bool `json:"IsSeedNode,omitempty"`
23603	// NodeVersion - Version of Node.
23604	NodeVersion *string `json:"NodeVersion,omitempty"`
23605	// NodeName - The name of a Service Fabric node.
23606	NodeName *string `json:"NodeName,omitempty"`
23607	// EventInstanceID - The identifier for the FabricEvent instance.
23608	EventInstanceID *uuid.UUID `json:"EventInstanceId,omitempty"`
23609	// Category - The category of event.
23610	Category *string `json:"Category,omitempty"`
23611	// TimeStamp - The time event was logged.
23612	TimeStamp *date.Time `json:"TimeStamp,omitempty"`
23613	// HasCorrelatedEvents - Shows there is existing related events available.
23614	HasCorrelatedEvents *bool `json:"HasCorrelatedEvents,omitempty"`
23615	// 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'
23616	Kind KindBasicFabricEvent `json:"Kind,omitempty"`
23617}
23618
23619// MarshalJSON is the custom marshaler for NodeAbortedEvent.
23620func (nae NodeAbortedEvent) MarshalJSON() ([]byte, error) {
23621	nae.Kind = KindNodeAborted
23622	objectMap := make(map[string]interface{})
23623	if nae.NodeInstance != nil {
23624		objectMap["NodeInstance"] = nae.NodeInstance
23625	}
23626	if nae.NodeID != nil {
23627		objectMap["NodeId"] = nae.NodeID
23628	}
23629	if nae.UpgradeDomain != nil {
23630		objectMap["UpgradeDomain"] = nae.UpgradeDomain
23631	}
23632	if nae.FaultDomain != nil {
23633		objectMap["FaultDomain"] = nae.FaultDomain
23634	}
23635	if nae.IPAddressOrFQDN != nil {
23636		objectMap["IpAddressOrFQDN"] = nae.IPAddressOrFQDN
23637	}
23638	if nae.Hostname != nil {
23639		objectMap["Hostname"] = nae.Hostname
23640	}
23641	if nae.IsSeedNode != nil {
23642		objectMap["IsSeedNode"] = nae.IsSeedNode
23643	}
23644	if nae.NodeVersion != nil {
23645		objectMap["NodeVersion"] = nae.NodeVersion
23646	}
23647	if nae.NodeName != nil {
23648		objectMap["NodeName"] = nae.NodeName
23649	}
23650	if nae.EventInstanceID != nil {
23651		objectMap["EventInstanceId"] = nae.EventInstanceID
23652	}
23653	if nae.Category != nil {
23654		objectMap["Category"] = nae.Category
23655	}
23656	if nae.TimeStamp != nil {
23657		objectMap["TimeStamp"] = nae.TimeStamp
23658	}
23659	if nae.HasCorrelatedEvents != nil {
23660		objectMap["HasCorrelatedEvents"] = nae.HasCorrelatedEvents
23661	}
23662	if nae.Kind != "" {
23663		objectMap["Kind"] = nae.Kind
23664	}
23665	return json.Marshal(objectMap)
23666}
23667
23668// AsApplicationEvent is the BasicFabricEvent implementation for NodeAbortedEvent.
23669func (nae NodeAbortedEvent) AsApplicationEvent() (*ApplicationEvent, bool) {
23670	return nil, false
23671}
23672
23673// AsBasicApplicationEvent is the BasicFabricEvent implementation for NodeAbortedEvent.
23674func (nae NodeAbortedEvent) AsBasicApplicationEvent() (BasicApplicationEvent, bool) {
23675	return nil, false
23676}
23677
23678// AsClusterEvent is the BasicFabricEvent implementation for NodeAbortedEvent.
23679func (nae NodeAbortedEvent) AsClusterEvent() (*ClusterEvent, bool) {
23680	return nil, false
23681}
23682
23683// AsBasicClusterEvent is the BasicFabricEvent implementation for NodeAbortedEvent.
23684func (nae NodeAbortedEvent) AsBasicClusterEvent() (BasicClusterEvent, bool) {
23685	return nil, false
23686}
23687
23688// AsContainerInstanceEvent is the BasicFabricEvent implementation for NodeAbortedEvent.
23689func (nae NodeAbortedEvent) AsContainerInstanceEvent() (*ContainerInstanceEvent, bool) {
23690	return nil, false
23691}
23692
23693// AsNodeEvent is the BasicFabricEvent implementation for NodeAbortedEvent.
23694func (nae NodeAbortedEvent) AsNodeEvent() (*NodeEvent, bool) {
23695	return nil, false
23696}
23697
23698// AsBasicNodeEvent is the BasicFabricEvent implementation for NodeAbortedEvent.
23699func (nae NodeAbortedEvent) AsBasicNodeEvent() (BasicNodeEvent, bool) {
23700	return &nae, true
23701}
23702
23703// AsPartitionAnalysisEvent is the BasicFabricEvent implementation for NodeAbortedEvent.
23704func (nae NodeAbortedEvent) AsPartitionAnalysisEvent() (*PartitionAnalysisEvent, bool) {
23705	return nil, false
23706}
23707
23708// AsBasicPartitionAnalysisEvent is the BasicFabricEvent implementation for NodeAbortedEvent.
23709func (nae NodeAbortedEvent) AsBasicPartitionAnalysisEvent() (BasicPartitionAnalysisEvent, bool) {
23710	return nil, false
23711}
23712
23713// AsPartitionEvent is the BasicFabricEvent implementation for NodeAbortedEvent.
23714func (nae NodeAbortedEvent) AsPartitionEvent() (*PartitionEvent, bool) {
23715	return nil, false
23716}
23717
23718// AsBasicPartitionEvent is the BasicFabricEvent implementation for NodeAbortedEvent.
23719func (nae NodeAbortedEvent) AsBasicPartitionEvent() (BasicPartitionEvent, bool) {
23720	return nil, false
23721}
23722
23723// AsReplicaEvent is the BasicFabricEvent implementation for NodeAbortedEvent.
23724func (nae NodeAbortedEvent) AsReplicaEvent() (*ReplicaEvent, bool) {
23725	return nil, false
23726}
23727
23728// AsBasicReplicaEvent is the BasicFabricEvent implementation for NodeAbortedEvent.
23729func (nae NodeAbortedEvent) AsBasicReplicaEvent() (BasicReplicaEvent, bool) {
23730	return nil, false
23731}
23732
23733// AsServiceEvent is the BasicFabricEvent implementation for NodeAbortedEvent.
23734func (nae NodeAbortedEvent) AsServiceEvent() (*ServiceEvent, bool) {
23735	return nil, false
23736}
23737
23738// AsBasicServiceEvent is the BasicFabricEvent implementation for NodeAbortedEvent.
23739func (nae NodeAbortedEvent) AsBasicServiceEvent() (BasicServiceEvent, bool) {
23740	return nil, false
23741}
23742
23743// AsApplicationCreatedEvent is the BasicFabricEvent implementation for NodeAbortedEvent.
23744func (nae NodeAbortedEvent) AsApplicationCreatedEvent() (*ApplicationCreatedEvent, bool) {
23745	return nil, false
23746}
23747
23748// AsApplicationDeletedEvent is the BasicFabricEvent implementation for NodeAbortedEvent.
23749func (nae NodeAbortedEvent) AsApplicationDeletedEvent() (*ApplicationDeletedEvent, bool) {
23750	return nil, false
23751}
23752
23753// AsApplicationNewHealthReportEvent is the BasicFabricEvent implementation for NodeAbortedEvent.
23754func (nae NodeAbortedEvent) AsApplicationNewHealthReportEvent() (*ApplicationNewHealthReportEvent, bool) {
23755	return nil, false
23756}
23757
23758// AsApplicationHealthReportExpiredEvent is the BasicFabricEvent implementation for NodeAbortedEvent.
23759func (nae NodeAbortedEvent) AsApplicationHealthReportExpiredEvent() (*ApplicationHealthReportExpiredEvent, bool) {
23760	return nil, false
23761}
23762
23763// AsApplicationUpgradeCompletedEvent is the BasicFabricEvent implementation for NodeAbortedEvent.
23764func (nae NodeAbortedEvent) AsApplicationUpgradeCompletedEvent() (*ApplicationUpgradeCompletedEvent, bool) {
23765	return nil, false
23766}
23767
23768// AsApplicationUpgradeDomainCompletedEvent is the BasicFabricEvent implementation for NodeAbortedEvent.
23769func (nae NodeAbortedEvent) AsApplicationUpgradeDomainCompletedEvent() (*ApplicationUpgradeDomainCompletedEvent, bool) {
23770	return nil, false
23771}
23772
23773// AsApplicationUpgradeRollbackCompletedEvent is the BasicFabricEvent implementation for NodeAbortedEvent.
23774func (nae NodeAbortedEvent) AsApplicationUpgradeRollbackCompletedEvent() (*ApplicationUpgradeRollbackCompletedEvent, bool) {
23775	return nil, false
23776}
23777
23778// AsApplicationUpgradeRollbackStartedEvent is the BasicFabricEvent implementation for NodeAbortedEvent.
23779func (nae NodeAbortedEvent) AsApplicationUpgradeRollbackStartedEvent() (*ApplicationUpgradeRollbackStartedEvent, bool) {
23780	return nil, false
23781}
23782
23783// AsApplicationUpgradeStartedEvent is the BasicFabricEvent implementation for NodeAbortedEvent.
23784func (nae NodeAbortedEvent) AsApplicationUpgradeStartedEvent() (*ApplicationUpgradeStartedEvent, bool) {
23785	return nil, false
23786}
23787
23788// AsDeployedApplicationNewHealthReportEvent is the BasicFabricEvent implementation for NodeAbortedEvent.
23789func (nae NodeAbortedEvent) AsDeployedApplicationNewHealthReportEvent() (*DeployedApplicationNewHealthReportEvent, bool) {
23790	return nil, false
23791}
23792
23793// AsDeployedApplicationHealthReportExpiredEvent is the BasicFabricEvent implementation for NodeAbortedEvent.
23794func (nae NodeAbortedEvent) AsDeployedApplicationHealthReportExpiredEvent() (*DeployedApplicationHealthReportExpiredEvent, bool) {
23795	return nil, false
23796}
23797
23798// AsApplicationProcessExitedEvent is the BasicFabricEvent implementation for NodeAbortedEvent.
23799func (nae NodeAbortedEvent) AsApplicationProcessExitedEvent() (*ApplicationProcessExitedEvent, bool) {
23800	return nil, false
23801}
23802
23803// AsApplicationContainerInstanceExitedEvent is the BasicFabricEvent implementation for NodeAbortedEvent.
23804func (nae NodeAbortedEvent) AsApplicationContainerInstanceExitedEvent() (*ApplicationContainerInstanceExitedEvent, bool) {
23805	return nil, false
23806}
23807
23808// AsNodeAbortedEvent is the BasicFabricEvent implementation for NodeAbortedEvent.
23809func (nae NodeAbortedEvent) AsNodeAbortedEvent() (*NodeAbortedEvent, bool) {
23810	return &nae, true
23811}
23812
23813// AsNodeAddedToClusterEvent is the BasicFabricEvent implementation for NodeAbortedEvent.
23814func (nae NodeAbortedEvent) AsNodeAddedToClusterEvent() (*NodeAddedToClusterEvent, bool) {
23815	return nil, false
23816}
23817
23818// AsNodeClosedEvent is the BasicFabricEvent implementation for NodeAbortedEvent.
23819func (nae NodeAbortedEvent) AsNodeClosedEvent() (*NodeClosedEvent, bool) {
23820	return nil, false
23821}
23822
23823// AsNodeDeactivateCompletedEvent is the BasicFabricEvent implementation for NodeAbortedEvent.
23824func (nae NodeAbortedEvent) AsNodeDeactivateCompletedEvent() (*NodeDeactivateCompletedEvent, bool) {
23825	return nil, false
23826}
23827
23828// AsNodeDeactivateStartedEvent is the BasicFabricEvent implementation for NodeAbortedEvent.
23829func (nae NodeAbortedEvent) AsNodeDeactivateStartedEvent() (*NodeDeactivateStartedEvent, bool) {
23830	return nil, false
23831}
23832
23833// AsNodeDownEvent is the BasicFabricEvent implementation for NodeAbortedEvent.
23834func (nae NodeAbortedEvent) AsNodeDownEvent() (*NodeDownEvent, bool) {
23835	return nil, false
23836}
23837
23838// AsNodeNewHealthReportEvent is the BasicFabricEvent implementation for NodeAbortedEvent.
23839func (nae NodeAbortedEvent) AsNodeNewHealthReportEvent() (*NodeNewHealthReportEvent, bool) {
23840	return nil, false
23841}
23842
23843// AsNodeHealthReportExpiredEvent is the BasicFabricEvent implementation for NodeAbortedEvent.
23844func (nae NodeAbortedEvent) AsNodeHealthReportExpiredEvent() (*NodeHealthReportExpiredEvent, bool) {
23845	return nil, false
23846}
23847
23848// AsNodeOpenSucceededEvent is the BasicFabricEvent implementation for NodeAbortedEvent.
23849func (nae NodeAbortedEvent) AsNodeOpenSucceededEvent() (*NodeOpenSucceededEvent, bool) {
23850	return nil, false
23851}
23852
23853// AsNodeOpenFailedEvent is the BasicFabricEvent implementation for NodeAbortedEvent.
23854func (nae NodeAbortedEvent) AsNodeOpenFailedEvent() (*NodeOpenFailedEvent, bool) {
23855	return nil, false
23856}
23857
23858// AsNodeRemovedFromClusterEvent is the BasicFabricEvent implementation for NodeAbortedEvent.
23859func (nae NodeAbortedEvent) AsNodeRemovedFromClusterEvent() (*NodeRemovedFromClusterEvent, bool) {
23860	return nil, false
23861}
23862
23863// AsNodeUpEvent is the BasicFabricEvent implementation for NodeAbortedEvent.
23864func (nae NodeAbortedEvent) AsNodeUpEvent() (*NodeUpEvent, bool) {
23865	return nil, false
23866}
23867
23868// AsPartitionNewHealthReportEvent is the BasicFabricEvent implementation for NodeAbortedEvent.
23869func (nae NodeAbortedEvent) AsPartitionNewHealthReportEvent() (*PartitionNewHealthReportEvent, bool) {
23870	return nil, false
23871}
23872
23873// AsPartitionHealthReportExpiredEvent is the BasicFabricEvent implementation for NodeAbortedEvent.
23874func (nae NodeAbortedEvent) AsPartitionHealthReportExpiredEvent() (*PartitionHealthReportExpiredEvent, bool) {
23875	return nil, false
23876}
23877
23878// AsPartitionReconfiguredEvent is the BasicFabricEvent implementation for NodeAbortedEvent.
23879func (nae NodeAbortedEvent) AsPartitionReconfiguredEvent() (*PartitionReconfiguredEvent, bool) {
23880	return nil, false
23881}
23882
23883// AsPartitionPrimaryMoveAnalysisEvent is the BasicFabricEvent implementation for NodeAbortedEvent.
23884func (nae NodeAbortedEvent) AsPartitionPrimaryMoveAnalysisEvent() (*PartitionPrimaryMoveAnalysisEvent, bool) {
23885	return nil, false
23886}
23887
23888// AsServiceCreatedEvent is the BasicFabricEvent implementation for NodeAbortedEvent.
23889func (nae NodeAbortedEvent) AsServiceCreatedEvent() (*ServiceCreatedEvent, bool) {
23890	return nil, false
23891}
23892
23893// AsServiceDeletedEvent is the BasicFabricEvent implementation for NodeAbortedEvent.
23894func (nae NodeAbortedEvent) AsServiceDeletedEvent() (*ServiceDeletedEvent, bool) {
23895	return nil, false
23896}
23897
23898// AsServiceNewHealthReportEvent is the BasicFabricEvent implementation for NodeAbortedEvent.
23899func (nae NodeAbortedEvent) AsServiceNewHealthReportEvent() (*ServiceNewHealthReportEvent, bool) {
23900	return nil, false
23901}
23902
23903// AsServiceHealthReportExpiredEvent is the BasicFabricEvent implementation for NodeAbortedEvent.
23904func (nae NodeAbortedEvent) AsServiceHealthReportExpiredEvent() (*ServiceHealthReportExpiredEvent, bool) {
23905	return nil, false
23906}
23907
23908// AsDeployedServicePackageNewHealthReportEvent is the BasicFabricEvent implementation for NodeAbortedEvent.
23909func (nae NodeAbortedEvent) AsDeployedServicePackageNewHealthReportEvent() (*DeployedServicePackageNewHealthReportEvent, bool) {
23910	return nil, false
23911}
23912
23913// AsDeployedServicePackageHealthReportExpiredEvent is the BasicFabricEvent implementation for NodeAbortedEvent.
23914func (nae NodeAbortedEvent) AsDeployedServicePackageHealthReportExpiredEvent() (*DeployedServicePackageHealthReportExpiredEvent, bool) {
23915	return nil, false
23916}
23917
23918// AsStatefulReplicaNewHealthReportEvent is the BasicFabricEvent implementation for NodeAbortedEvent.
23919func (nae NodeAbortedEvent) AsStatefulReplicaNewHealthReportEvent() (*StatefulReplicaNewHealthReportEvent, bool) {
23920	return nil, false
23921}
23922
23923// AsStatefulReplicaHealthReportExpiredEvent is the BasicFabricEvent implementation for NodeAbortedEvent.
23924func (nae NodeAbortedEvent) AsStatefulReplicaHealthReportExpiredEvent() (*StatefulReplicaHealthReportExpiredEvent, bool) {
23925	return nil, false
23926}
23927
23928// AsStatelessReplicaNewHealthReportEvent is the BasicFabricEvent implementation for NodeAbortedEvent.
23929func (nae NodeAbortedEvent) AsStatelessReplicaNewHealthReportEvent() (*StatelessReplicaNewHealthReportEvent, bool) {
23930	return nil, false
23931}
23932
23933// AsStatelessReplicaHealthReportExpiredEvent is the BasicFabricEvent implementation for NodeAbortedEvent.
23934func (nae NodeAbortedEvent) AsStatelessReplicaHealthReportExpiredEvent() (*StatelessReplicaHealthReportExpiredEvent, bool) {
23935	return nil, false
23936}
23937
23938// AsClusterNewHealthReportEvent is the BasicFabricEvent implementation for NodeAbortedEvent.
23939func (nae NodeAbortedEvent) AsClusterNewHealthReportEvent() (*ClusterNewHealthReportEvent, bool) {
23940	return nil, false
23941}
23942
23943// AsClusterHealthReportExpiredEvent is the BasicFabricEvent implementation for NodeAbortedEvent.
23944func (nae NodeAbortedEvent) AsClusterHealthReportExpiredEvent() (*ClusterHealthReportExpiredEvent, bool) {
23945	return nil, false
23946}
23947
23948// AsClusterUpgradeCompletedEvent is the BasicFabricEvent implementation for NodeAbortedEvent.
23949func (nae NodeAbortedEvent) AsClusterUpgradeCompletedEvent() (*ClusterUpgradeCompletedEvent, bool) {
23950	return nil, false
23951}
23952
23953// AsClusterUpgradeDomainCompletedEvent is the BasicFabricEvent implementation for NodeAbortedEvent.
23954func (nae NodeAbortedEvent) AsClusterUpgradeDomainCompletedEvent() (*ClusterUpgradeDomainCompletedEvent, bool) {
23955	return nil, false
23956}
23957
23958// AsClusterUpgradeRollbackCompletedEvent is the BasicFabricEvent implementation for NodeAbortedEvent.
23959func (nae NodeAbortedEvent) AsClusterUpgradeRollbackCompletedEvent() (*ClusterUpgradeRollbackCompletedEvent, bool) {
23960	return nil, false
23961}
23962
23963// AsClusterUpgradeRollbackStartedEvent is the BasicFabricEvent implementation for NodeAbortedEvent.
23964func (nae NodeAbortedEvent) AsClusterUpgradeRollbackStartedEvent() (*ClusterUpgradeRollbackStartedEvent, bool) {
23965	return nil, false
23966}
23967
23968// AsClusterUpgradeStartedEvent is the BasicFabricEvent implementation for NodeAbortedEvent.
23969func (nae NodeAbortedEvent) AsClusterUpgradeStartedEvent() (*ClusterUpgradeStartedEvent, bool) {
23970	return nil, false
23971}
23972
23973// AsChaosStoppedEvent is the BasicFabricEvent implementation for NodeAbortedEvent.
23974func (nae NodeAbortedEvent) AsChaosStoppedEvent() (*ChaosStoppedEvent, bool) {
23975	return nil, false
23976}
23977
23978// AsChaosStartedEvent is the BasicFabricEvent implementation for NodeAbortedEvent.
23979func (nae NodeAbortedEvent) AsChaosStartedEvent() (*ChaosStartedEvent, bool) {
23980	return nil, false
23981}
23982
23983// AsChaosCodePackageRestartScheduledEvent is the BasicFabricEvent implementation for NodeAbortedEvent.
23984func (nae NodeAbortedEvent) AsChaosCodePackageRestartScheduledEvent() (*ChaosCodePackageRestartScheduledEvent, bool) {
23985	return nil, false
23986}
23987
23988// AsChaosReplicaRemovalScheduledEvent is the BasicFabricEvent implementation for NodeAbortedEvent.
23989func (nae NodeAbortedEvent) AsChaosReplicaRemovalScheduledEvent() (*ChaosReplicaRemovalScheduledEvent, bool) {
23990	return nil, false
23991}
23992
23993// AsChaosPartitionSecondaryMoveScheduledEvent is the BasicFabricEvent implementation for NodeAbortedEvent.
23994func (nae NodeAbortedEvent) AsChaosPartitionSecondaryMoveScheduledEvent() (*ChaosPartitionSecondaryMoveScheduledEvent, bool) {
23995	return nil, false
23996}
23997
23998// AsChaosPartitionPrimaryMoveScheduledEvent is the BasicFabricEvent implementation for NodeAbortedEvent.
23999func (nae NodeAbortedEvent) AsChaosPartitionPrimaryMoveScheduledEvent() (*ChaosPartitionPrimaryMoveScheduledEvent, bool) {
24000	return nil, false
24001}
24002
24003// AsChaosReplicaRestartScheduledEvent is the BasicFabricEvent implementation for NodeAbortedEvent.
24004func (nae NodeAbortedEvent) AsChaosReplicaRestartScheduledEvent() (*ChaosReplicaRestartScheduledEvent, bool) {
24005	return nil, false
24006}
24007
24008// AsChaosNodeRestartScheduledEvent is the BasicFabricEvent implementation for NodeAbortedEvent.
24009func (nae NodeAbortedEvent) AsChaosNodeRestartScheduledEvent() (*ChaosNodeRestartScheduledEvent, bool) {
24010	return nil, false
24011}
24012
24013// AsFabricEvent is the BasicFabricEvent implementation for NodeAbortedEvent.
24014func (nae NodeAbortedEvent) AsFabricEvent() (*FabricEvent, bool) {
24015	return nil, false
24016}
24017
24018// AsBasicFabricEvent is the BasicFabricEvent implementation for NodeAbortedEvent.
24019func (nae NodeAbortedEvent) AsBasicFabricEvent() (BasicFabricEvent, bool) {
24020	return &nae, true
24021}
24022
24023// NodeAddedToClusterEvent node Added event.
24024type NodeAddedToClusterEvent struct {
24025	// NodeID - Id of Node.
24026	NodeID *string `json:"NodeId,omitempty"`
24027	// NodeInstance - Id of Node instance.
24028	NodeInstance *int64 `json:"NodeInstance,omitempty"`
24029	// NodeType - Type of Node.
24030	NodeType *string `json:"NodeType,omitempty"`
24031	// FabricVersion - Fabric version.
24032	FabricVersion *string `json:"FabricVersion,omitempty"`
24033	// IPAddressOrFQDN - IP address or FQDN.
24034	IPAddressOrFQDN *string `json:"IpAddressOrFQDN,omitempty"`
24035	// NodeCapacities - Capacities.
24036	NodeCapacities *string `json:"NodeCapacities,omitempty"`
24037	// NodeName - The name of a Service Fabric node.
24038	NodeName *string `json:"NodeName,omitempty"`
24039	// EventInstanceID - The identifier for the FabricEvent instance.
24040	EventInstanceID *uuid.UUID `json:"EventInstanceId,omitempty"`
24041	// Category - The category of event.
24042	Category *string `json:"Category,omitempty"`
24043	// TimeStamp - The time event was logged.
24044	TimeStamp *date.Time `json:"TimeStamp,omitempty"`
24045	// HasCorrelatedEvents - Shows there is existing related events available.
24046	HasCorrelatedEvents *bool `json:"HasCorrelatedEvents,omitempty"`
24047	// 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'
24048	Kind KindBasicFabricEvent `json:"Kind,omitempty"`
24049}
24050
24051// MarshalJSON is the custom marshaler for NodeAddedToClusterEvent.
24052func (natce NodeAddedToClusterEvent) MarshalJSON() ([]byte, error) {
24053	natce.Kind = KindNodeAddedToCluster
24054	objectMap := make(map[string]interface{})
24055	if natce.NodeID != nil {
24056		objectMap["NodeId"] = natce.NodeID
24057	}
24058	if natce.NodeInstance != nil {
24059		objectMap["NodeInstance"] = natce.NodeInstance
24060	}
24061	if natce.NodeType != nil {
24062		objectMap["NodeType"] = natce.NodeType
24063	}
24064	if natce.FabricVersion != nil {
24065		objectMap["FabricVersion"] = natce.FabricVersion
24066	}
24067	if natce.IPAddressOrFQDN != nil {
24068		objectMap["IpAddressOrFQDN"] = natce.IPAddressOrFQDN
24069	}
24070	if natce.NodeCapacities != nil {
24071		objectMap["NodeCapacities"] = natce.NodeCapacities
24072	}
24073	if natce.NodeName != nil {
24074		objectMap["NodeName"] = natce.NodeName
24075	}
24076	if natce.EventInstanceID != nil {
24077		objectMap["EventInstanceId"] = natce.EventInstanceID
24078	}
24079	if natce.Category != nil {
24080		objectMap["Category"] = natce.Category
24081	}
24082	if natce.TimeStamp != nil {
24083		objectMap["TimeStamp"] = natce.TimeStamp
24084	}
24085	if natce.HasCorrelatedEvents != nil {
24086		objectMap["HasCorrelatedEvents"] = natce.HasCorrelatedEvents
24087	}
24088	if natce.Kind != "" {
24089		objectMap["Kind"] = natce.Kind
24090	}
24091	return json.Marshal(objectMap)
24092}
24093
24094// AsApplicationEvent is the BasicFabricEvent implementation for NodeAddedToClusterEvent.
24095func (natce NodeAddedToClusterEvent) AsApplicationEvent() (*ApplicationEvent, bool) {
24096	return nil, false
24097}
24098
24099// AsBasicApplicationEvent is the BasicFabricEvent implementation for NodeAddedToClusterEvent.
24100func (natce NodeAddedToClusterEvent) AsBasicApplicationEvent() (BasicApplicationEvent, bool) {
24101	return nil, false
24102}
24103
24104// AsClusterEvent is the BasicFabricEvent implementation for NodeAddedToClusterEvent.
24105func (natce NodeAddedToClusterEvent) AsClusterEvent() (*ClusterEvent, bool) {
24106	return nil, false
24107}
24108
24109// AsBasicClusterEvent is the BasicFabricEvent implementation for NodeAddedToClusterEvent.
24110func (natce NodeAddedToClusterEvent) AsBasicClusterEvent() (BasicClusterEvent, bool) {
24111	return nil, false
24112}
24113
24114// AsContainerInstanceEvent is the BasicFabricEvent implementation for NodeAddedToClusterEvent.
24115func (natce NodeAddedToClusterEvent) AsContainerInstanceEvent() (*ContainerInstanceEvent, bool) {
24116	return nil, false
24117}
24118
24119// AsNodeEvent is the BasicFabricEvent implementation for NodeAddedToClusterEvent.
24120func (natce NodeAddedToClusterEvent) AsNodeEvent() (*NodeEvent, bool) {
24121	return nil, false
24122}
24123
24124// AsBasicNodeEvent is the BasicFabricEvent implementation for NodeAddedToClusterEvent.
24125func (natce NodeAddedToClusterEvent) AsBasicNodeEvent() (BasicNodeEvent, bool) {
24126	return &natce, true
24127}
24128
24129// AsPartitionAnalysisEvent is the BasicFabricEvent implementation for NodeAddedToClusterEvent.
24130func (natce NodeAddedToClusterEvent) AsPartitionAnalysisEvent() (*PartitionAnalysisEvent, bool) {
24131	return nil, false
24132}
24133
24134// AsBasicPartitionAnalysisEvent is the BasicFabricEvent implementation for NodeAddedToClusterEvent.
24135func (natce NodeAddedToClusterEvent) AsBasicPartitionAnalysisEvent() (BasicPartitionAnalysisEvent, bool) {
24136	return nil, false
24137}
24138
24139// AsPartitionEvent is the BasicFabricEvent implementation for NodeAddedToClusterEvent.
24140func (natce NodeAddedToClusterEvent) AsPartitionEvent() (*PartitionEvent, bool) {
24141	return nil, false
24142}
24143
24144// AsBasicPartitionEvent is the BasicFabricEvent implementation for NodeAddedToClusterEvent.
24145func (natce NodeAddedToClusterEvent) AsBasicPartitionEvent() (BasicPartitionEvent, bool) {
24146	return nil, false
24147}
24148
24149// AsReplicaEvent is the BasicFabricEvent implementation for NodeAddedToClusterEvent.
24150func (natce NodeAddedToClusterEvent) AsReplicaEvent() (*ReplicaEvent, bool) {
24151	return nil, false
24152}
24153
24154// AsBasicReplicaEvent is the BasicFabricEvent implementation for NodeAddedToClusterEvent.
24155func (natce NodeAddedToClusterEvent) AsBasicReplicaEvent() (BasicReplicaEvent, bool) {
24156	return nil, false
24157}
24158
24159// AsServiceEvent is the BasicFabricEvent implementation for NodeAddedToClusterEvent.
24160func (natce NodeAddedToClusterEvent) AsServiceEvent() (*ServiceEvent, bool) {
24161	return nil, false
24162}
24163
24164// AsBasicServiceEvent is the BasicFabricEvent implementation for NodeAddedToClusterEvent.
24165func (natce NodeAddedToClusterEvent) AsBasicServiceEvent() (BasicServiceEvent, bool) {
24166	return nil, false
24167}
24168
24169// AsApplicationCreatedEvent is the BasicFabricEvent implementation for NodeAddedToClusterEvent.
24170func (natce NodeAddedToClusterEvent) AsApplicationCreatedEvent() (*ApplicationCreatedEvent, bool) {
24171	return nil, false
24172}
24173
24174// AsApplicationDeletedEvent is the BasicFabricEvent implementation for NodeAddedToClusterEvent.
24175func (natce NodeAddedToClusterEvent) AsApplicationDeletedEvent() (*ApplicationDeletedEvent, bool) {
24176	return nil, false
24177}
24178
24179// AsApplicationNewHealthReportEvent is the BasicFabricEvent implementation for NodeAddedToClusterEvent.
24180func (natce NodeAddedToClusterEvent) AsApplicationNewHealthReportEvent() (*ApplicationNewHealthReportEvent, bool) {
24181	return nil, false
24182}
24183
24184// AsApplicationHealthReportExpiredEvent is the BasicFabricEvent implementation for NodeAddedToClusterEvent.
24185func (natce NodeAddedToClusterEvent) AsApplicationHealthReportExpiredEvent() (*ApplicationHealthReportExpiredEvent, bool) {
24186	return nil, false
24187}
24188
24189// AsApplicationUpgradeCompletedEvent is the BasicFabricEvent implementation for NodeAddedToClusterEvent.
24190func (natce NodeAddedToClusterEvent) AsApplicationUpgradeCompletedEvent() (*ApplicationUpgradeCompletedEvent, bool) {
24191	return nil, false
24192}
24193
24194// AsApplicationUpgradeDomainCompletedEvent is the BasicFabricEvent implementation for NodeAddedToClusterEvent.
24195func (natce NodeAddedToClusterEvent) AsApplicationUpgradeDomainCompletedEvent() (*ApplicationUpgradeDomainCompletedEvent, bool) {
24196	return nil, false
24197}
24198
24199// AsApplicationUpgradeRollbackCompletedEvent is the BasicFabricEvent implementation for NodeAddedToClusterEvent.
24200func (natce NodeAddedToClusterEvent) AsApplicationUpgradeRollbackCompletedEvent() (*ApplicationUpgradeRollbackCompletedEvent, bool) {
24201	return nil, false
24202}
24203
24204// AsApplicationUpgradeRollbackStartedEvent is the BasicFabricEvent implementation for NodeAddedToClusterEvent.
24205func (natce NodeAddedToClusterEvent) AsApplicationUpgradeRollbackStartedEvent() (*ApplicationUpgradeRollbackStartedEvent, bool) {
24206	return nil, false
24207}
24208
24209// AsApplicationUpgradeStartedEvent is the BasicFabricEvent implementation for NodeAddedToClusterEvent.
24210func (natce NodeAddedToClusterEvent) AsApplicationUpgradeStartedEvent() (*ApplicationUpgradeStartedEvent, bool) {
24211	return nil, false
24212}
24213
24214// AsDeployedApplicationNewHealthReportEvent is the BasicFabricEvent implementation for NodeAddedToClusterEvent.
24215func (natce NodeAddedToClusterEvent) AsDeployedApplicationNewHealthReportEvent() (*DeployedApplicationNewHealthReportEvent, bool) {
24216	return nil, false
24217}
24218
24219// AsDeployedApplicationHealthReportExpiredEvent is the BasicFabricEvent implementation for NodeAddedToClusterEvent.
24220func (natce NodeAddedToClusterEvent) AsDeployedApplicationHealthReportExpiredEvent() (*DeployedApplicationHealthReportExpiredEvent, bool) {
24221	return nil, false
24222}
24223
24224// AsApplicationProcessExitedEvent is the BasicFabricEvent implementation for NodeAddedToClusterEvent.
24225func (natce NodeAddedToClusterEvent) AsApplicationProcessExitedEvent() (*ApplicationProcessExitedEvent, bool) {
24226	return nil, false
24227}
24228
24229// AsApplicationContainerInstanceExitedEvent is the BasicFabricEvent implementation for NodeAddedToClusterEvent.
24230func (natce NodeAddedToClusterEvent) AsApplicationContainerInstanceExitedEvent() (*ApplicationContainerInstanceExitedEvent, bool) {
24231	return nil, false
24232}
24233
24234// AsNodeAbortedEvent is the BasicFabricEvent implementation for NodeAddedToClusterEvent.
24235func (natce NodeAddedToClusterEvent) AsNodeAbortedEvent() (*NodeAbortedEvent, bool) {
24236	return nil, false
24237}
24238
24239// AsNodeAddedToClusterEvent is the BasicFabricEvent implementation for NodeAddedToClusterEvent.
24240func (natce NodeAddedToClusterEvent) AsNodeAddedToClusterEvent() (*NodeAddedToClusterEvent, bool) {
24241	return &natce, true
24242}
24243
24244// AsNodeClosedEvent is the BasicFabricEvent implementation for NodeAddedToClusterEvent.
24245func (natce NodeAddedToClusterEvent) AsNodeClosedEvent() (*NodeClosedEvent, bool) {
24246	return nil, false
24247}
24248
24249// AsNodeDeactivateCompletedEvent is the BasicFabricEvent implementation for NodeAddedToClusterEvent.
24250func (natce NodeAddedToClusterEvent) AsNodeDeactivateCompletedEvent() (*NodeDeactivateCompletedEvent, bool) {
24251	return nil, false
24252}
24253
24254// AsNodeDeactivateStartedEvent is the BasicFabricEvent implementation for NodeAddedToClusterEvent.
24255func (natce NodeAddedToClusterEvent) AsNodeDeactivateStartedEvent() (*NodeDeactivateStartedEvent, bool) {
24256	return nil, false
24257}
24258
24259// AsNodeDownEvent is the BasicFabricEvent implementation for NodeAddedToClusterEvent.
24260func (natce NodeAddedToClusterEvent) AsNodeDownEvent() (*NodeDownEvent, bool) {
24261	return nil, false
24262}
24263
24264// AsNodeNewHealthReportEvent is the BasicFabricEvent implementation for NodeAddedToClusterEvent.
24265func (natce NodeAddedToClusterEvent) AsNodeNewHealthReportEvent() (*NodeNewHealthReportEvent, bool) {
24266	return nil, false
24267}
24268
24269// AsNodeHealthReportExpiredEvent is the BasicFabricEvent implementation for NodeAddedToClusterEvent.
24270func (natce NodeAddedToClusterEvent) AsNodeHealthReportExpiredEvent() (*NodeHealthReportExpiredEvent, bool) {
24271	return nil, false
24272}
24273
24274// AsNodeOpenSucceededEvent is the BasicFabricEvent implementation for NodeAddedToClusterEvent.
24275func (natce NodeAddedToClusterEvent) AsNodeOpenSucceededEvent() (*NodeOpenSucceededEvent, bool) {
24276	return nil, false
24277}
24278
24279// AsNodeOpenFailedEvent is the BasicFabricEvent implementation for NodeAddedToClusterEvent.
24280func (natce NodeAddedToClusterEvent) AsNodeOpenFailedEvent() (*NodeOpenFailedEvent, bool) {
24281	return nil, false
24282}
24283
24284// AsNodeRemovedFromClusterEvent is the BasicFabricEvent implementation for NodeAddedToClusterEvent.
24285func (natce NodeAddedToClusterEvent) AsNodeRemovedFromClusterEvent() (*NodeRemovedFromClusterEvent, bool) {
24286	return nil, false
24287}
24288
24289// AsNodeUpEvent is the BasicFabricEvent implementation for NodeAddedToClusterEvent.
24290func (natce NodeAddedToClusterEvent) AsNodeUpEvent() (*NodeUpEvent, bool) {
24291	return nil, false
24292}
24293
24294// AsPartitionNewHealthReportEvent is the BasicFabricEvent implementation for NodeAddedToClusterEvent.
24295func (natce NodeAddedToClusterEvent) AsPartitionNewHealthReportEvent() (*PartitionNewHealthReportEvent, bool) {
24296	return nil, false
24297}
24298
24299// AsPartitionHealthReportExpiredEvent is the BasicFabricEvent implementation for NodeAddedToClusterEvent.
24300func (natce NodeAddedToClusterEvent) AsPartitionHealthReportExpiredEvent() (*PartitionHealthReportExpiredEvent, bool) {
24301	return nil, false
24302}
24303
24304// AsPartitionReconfiguredEvent is the BasicFabricEvent implementation for NodeAddedToClusterEvent.
24305func (natce NodeAddedToClusterEvent) AsPartitionReconfiguredEvent() (*PartitionReconfiguredEvent, bool) {
24306	return nil, false
24307}
24308
24309// AsPartitionPrimaryMoveAnalysisEvent is the BasicFabricEvent implementation for NodeAddedToClusterEvent.
24310func (natce NodeAddedToClusterEvent) AsPartitionPrimaryMoveAnalysisEvent() (*PartitionPrimaryMoveAnalysisEvent, bool) {
24311	return nil, false
24312}
24313
24314// AsServiceCreatedEvent is the BasicFabricEvent implementation for NodeAddedToClusterEvent.
24315func (natce NodeAddedToClusterEvent) AsServiceCreatedEvent() (*ServiceCreatedEvent, bool) {
24316	return nil, false
24317}
24318
24319// AsServiceDeletedEvent is the BasicFabricEvent implementation for NodeAddedToClusterEvent.
24320func (natce NodeAddedToClusterEvent) AsServiceDeletedEvent() (*ServiceDeletedEvent, bool) {
24321	return nil, false
24322}
24323
24324// AsServiceNewHealthReportEvent is the BasicFabricEvent implementation for NodeAddedToClusterEvent.
24325func (natce NodeAddedToClusterEvent) AsServiceNewHealthReportEvent() (*ServiceNewHealthReportEvent, bool) {
24326	return nil, false
24327}
24328
24329// AsServiceHealthReportExpiredEvent is the BasicFabricEvent implementation for NodeAddedToClusterEvent.
24330func (natce NodeAddedToClusterEvent) AsServiceHealthReportExpiredEvent() (*ServiceHealthReportExpiredEvent, bool) {
24331	return nil, false
24332}
24333
24334// AsDeployedServicePackageNewHealthReportEvent is the BasicFabricEvent implementation for NodeAddedToClusterEvent.
24335func (natce NodeAddedToClusterEvent) AsDeployedServicePackageNewHealthReportEvent() (*DeployedServicePackageNewHealthReportEvent, bool) {
24336	return nil, false
24337}
24338
24339// AsDeployedServicePackageHealthReportExpiredEvent is the BasicFabricEvent implementation for NodeAddedToClusterEvent.
24340func (natce NodeAddedToClusterEvent) AsDeployedServicePackageHealthReportExpiredEvent() (*DeployedServicePackageHealthReportExpiredEvent, bool) {
24341	return nil, false
24342}
24343
24344// AsStatefulReplicaNewHealthReportEvent is the BasicFabricEvent implementation for NodeAddedToClusterEvent.
24345func (natce NodeAddedToClusterEvent) AsStatefulReplicaNewHealthReportEvent() (*StatefulReplicaNewHealthReportEvent, bool) {
24346	return nil, false
24347}
24348
24349// AsStatefulReplicaHealthReportExpiredEvent is the BasicFabricEvent implementation for NodeAddedToClusterEvent.
24350func (natce NodeAddedToClusterEvent) AsStatefulReplicaHealthReportExpiredEvent() (*StatefulReplicaHealthReportExpiredEvent, bool) {
24351	return nil, false
24352}
24353
24354// AsStatelessReplicaNewHealthReportEvent is the BasicFabricEvent implementation for NodeAddedToClusterEvent.
24355func (natce NodeAddedToClusterEvent) AsStatelessReplicaNewHealthReportEvent() (*StatelessReplicaNewHealthReportEvent, bool) {
24356	return nil, false
24357}
24358
24359// AsStatelessReplicaHealthReportExpiredEvent is the BasicFabricEvent implementation for NodeAddedToClusterEvent.
24360func (natce NodeAddedToClusterEvent) AsStatelessReplicaHealthReportExpiredEvent() (*StatelessReplicaHealthReportExpiredEvent, bool) {
24361	return nil, false
24362}
24363
24364// AsClusterNewHealthReportEvent is the BasicFabricEvent implementation for NodeAddedToClusterEvent.
24365func (natce NodeAddedToClusterEvent) AsClusterNewHealthReportEvent() (*ClusterNewHealthReportEvent, bool) {
24366	return nil, false
24367}
24368
24369// AsClusterHealthReportExpiredEvent is the BasicFabricEvent implementation for NodeAddedToClusterEvent.
24370func (natce NodeAddedToClusterEvent) AsClusterHealthReportExpiredEvent() (*ClusterHealthReportExpiredEvent, bool) {
24371	return nil, false
24372}
24373
24374// AsClusterUpgradeCompletedEvent is the BasicFabricEvent implementation for NodeAddedToClusterEvent.
24375func (natce NodeAddedToClusterEvent) AsClusterUpgradeCompletedEvent() (*ClusterUpgradeCompletedEvent, bool) {
24376	return nil, false
24377}
24378
24379// AsClusterUpgradeDomainCompletedEvent is the BasicFabricEvent implementation for NodeAddedToClusterEvent.
24380func (natce NodeAddedToClusterEvent) AsClusterUpgradeDomainCompletedEvent() (*ClusterUpgradeDomainCompletedEvent, bool) {
24381	return nil, false
24382}
24383
24384// AsClusterUpgradeRollbackCompletedEvent is the BasicFabricEvent implementation for NodeAddedToClusterEvent.
24385func (natce NodeAddedToClusterEvent) AsClusterUpgradeRollbackCompletedEvent() (*ClusterUpgradeRollbackCompletedEvent, bool) {
24386	return nil, false
24387}
24388
24389// AsClusterUpgradeRollbackStartedEvent is the BasicFabricEvent implementation for NodeAddedToClusterEvent.
24390func (natce NodeAddedToClusterEvent) AsClusterUpgradeRollbackStartedEvent() (*ClusterUpgradeRollbackStartedEvent, bool) {
24391	return nil, false
24392}
24393
24394// AsClusterUpgradeStartedEvent is the BasicFabricEvent implementation for NodeAddedToClusterEvent.
24395func (natce NodeAddedToClusterEvent) AsClusterUpgradeStartedEvent() (*ClusterUpgradeStartedEvent, bool) {
24396	return nil, false
24397}
24398
24399// AsChaosStoppedEvent is the BasicFabricEvent implementation for NodeAddedToClusterEvent.
24400func (natce NodeAddedToClusterEvent) AsChaosStoppedEvent() (*ChaosStoppedEvent, bool) {
24401	return nil, false
24402}
24403
24404// AsChaosStartedEvent is the BasicFabricEvent implementation for NodeAddedToClusterEvent.
24405func (natce NodeAddedToClusterEvent) AsChaosStartedEvent() (*ChaosStartedEvent, bool) {
24406	return nil, false
24407}
24408
24409// AsChaosCodePackageRestartScheduledEvent is the BasicFabricEvent implementation for NodeAddedToClusterEvent.
24410func (natce NodeAddedToClusterEvent) AsChaosCodePackageRestartScheduledEvent() (*ChaosCodePackageRestartScheduledEvent, bool) {
24411	return nil, false
24412}
24413
24414// AsChaosReplicaRemovalScheduledEvent is the BasicFabricEvent implementation for NodeAddedToClusterEvent.
24415func (natce NodeAddedToClusterEvent) AsChaosReplicaRemovalScheduledEvent() (*ChaosReplicaRemovalScheduledEvent, bool) {
24416	return nil, false
24417}
24418
24419// AsChaosPartitionSecondaryMoveScheduledEvent is the BasicFabricEvent implementation for NodeAddedToClusterEvent.
24420func (natce NodeAddedToClusterEvent) AsChaosPartitionSecondaryMoveScheduledEvent() (*ChaosPartitionSecondaryMoveScheduledEvent, bool) {
24421	return nil, false
24422}
24423
24424// AsChaosPartitionPrimaryMoveScheduledEvent is the BasicFabricEvent implementation for NodeAddedToClusterEvent.
24425func (natce NodeAddedToClusterEvent) AsChaosPartitionPrimaryMoveScheduledEvent() (*ChaosPartitionPrimaryMoveScheduledEvent, bool) {
24426	return nil, false
24427}
24428
24429// AsChaosReplicaRestartScheduledEvent is the BasicFabricEvent implementation for NodeAddedToClusterEvent.
24430func (natce NodeAddedToClusterEvent) AsChaosReplicaRestartScheduledEvent() (*ChaosReplicaRestartScheduledEvent, bool) {
24431	return nil, false
24432}
24433
24434// AsChaosNodeRestartScheduledEvent is the BasicFabricEvent implementation for NodeAddedToClusterEvent.
24435func (natce NodeAddedToClusterEvent) AsChaosNodeRestartScheduledEvent() (*ChaosNodeRestartScheduledEvent, bool) {
24436	return nil, false
24437}
24438
24439// AsFabricEvent is the BasicFabricEvent implementation for NodeAddedToClusterEvent.
24440func (natce NodeAddedToClusterEvent) AsFabricEvent() (*FabricEvent, bool) {
24441	return nil, false
24442}
24443
24444// AsBasicFabricEvent is the BasicFabricEvent implementation for NodeAddedToClusterEvent.
24445func (natce NodeAddedToClusterEvent) AsBasicFabricEvent() (BasicFabricEvent, bool) {
24446	return &natce, true
24447}
24448
24449// NodeClosedEvent node Closed event.
24450type NodeClosedEvent struct {
24451	// NodeID - Id of Node.
24452	NodeID *string `json:"NodeId,omitempty"`
24453	// NodeInstance - Id of Node instance.
24454	NodeInstance *int64 `json:"NodeInstance,omitempty"`
24455	// Error - Describes error.
24456	Error *string `json:"Error,omitempty"`
24457	// NodeName - The name of a Service Fabric node.
24458	NodeName *string `json:"NodeName,omitempty"`
24459	// EventInstanceID - The identifier for the FabricEvent instance.
24460	EventInstanceID *uuid.UUID `json:"EventInstanceId,omitempty"`
24461	// Category - The category of event.
24462	Category *string `json:"Category,omitempty"`
24463	// TimeStamp - The time event was logged.
24464	TimeStamp *date.Time `json:"TimeStamp,omitempty"`
24465	// HasCorrelatedEvents - Shows there is existing related events available.
24466	HasCorrelatedEvents *bool `json:"HasCorrelatedEvents,omitempty"`
24467	// 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'
24468	Kind KindBasicFabricEvent `json:"Kind,omitempty"`
24469}
24470
24471// MarshalJSON is the custom marshaler for NodeClosedEvent.
24472func (nce NodeClosedEvent) MarshalJSON() ([]byte, error) {
24473	nce.Kind = KindNodeClosed
24474	objectMap := make(map[string]interface{})
24475	if nce.NodeID != nil {
24476		objectMap["NodeId"] = nce.NodeID
24477	}
24478	if nce.NodeInstance != nil {
24479		objectMap["NodeInstance"] = nce.NodeInstance
24480	}
24481	if nce.Error != nil {
24482		objectMap["Error"] = nce.Error
24483	}
24484	if nce.NodeName != nil {
24485		objectMap["NodeName"] = nce.NodeName
24486	}
24487	if nce.EventInstanceID != nil {
24488		objectMap["EventInstanceId"] = nce.EventInstanceID
24489	}
24490	if nce.Category != nil {
24491		objectMap["Category"] = nce.Category
24492	}
24493	if nce.TimeStamp != nil {
24494		objectMap["TimeStamp"] = nce.TimeStamp
24495	}
24496	if nce.HasCorrelatedEvents != nil {
24497		objectMap["HasCorrelatedEvents"] = nce.HasCorrelatedEvents
24498	}
24499	if nce.Kind != "" {
24500		objectMap["Kind"] = nce.Kind
24501	}
24502	return json.Marshal(objectMap)
24503}
24504
24505// AsApplicationEvent is the BasicFabricEvent implementation for NodeClosedEvent.
24506func (nce NodeClosedEvent) AsApplicationEvent() (*ApplicationEvent, bool) {
24507	return nil, false
24508}
24509
24510// AsBasicApplicationEvent is the BasicFabricEvent implementation for NodeClosedEvent.
24511func (nce NodeClosedEvent) AsBasicApplicationEvent() (BasicApplicationEvent, bool) {
24512	return nil, false
24513}
24514
24515// AsClusterEvent is the BasicFabricEvent implementation for NodeClosedEvent.
24516func (nce NodeClosedEvent) AsClusterEvent() (*ClusterEvent, bool) {
24517	return nil, false
24518}
24519
24520// AsBasicClusterEvent is the BasicFabricEvent implementation for NodeClosedEvent.
24521func (nce NodeClosedEvent) AsBasicClusterEvent() (BasicClusterEvent, bool) {
24522	return nil, false
24523}
24524
24525// AsContainerInstanceEvent is the BasicFabricEvent implementation for NodeClosedEvent.
24526func (nce NodeClosedEvent) AsContainerInstanceEvent() (*ContainerInstanceEvent, bool) {
24527	return nil, false
24528}
24529
24530// AsNodeEvent is the BasicFabricEvent implementation for NodeClosedEvent.
24531func (nce NodeClosedEvent) AsNodeEvent() (*NodeEvent, bool) {
24532	return nil, false
24533}
24534
24535// AsBasicNodeEvent is the BasicFabricEvent implementation for NodeClosedEvent.
24536func (nce NodeClosedEvent) AsBasicNodeEvent() (BasicNodeEvent, bool) {
24537	return &nce, true
24538}
24539
24540// AsPartitionAnalysisEvent is the BasicFabricEvent implementation for NodeClosedEvent.
24541func (nce NodeClosedEvent) AsPartitionAnalysisEvent() (*PartitionAnalysisEvent, bool) {
24542	return nil, false
24543}
24544
24545// AsBasicPartitionAnalysisEvent is the BasicFabricEvent implementation for NodeClosedEvent.
24546func (nce NodeClosedEvent) AsBasicPartitionAnalysisEvent() (BasicPartitionAnalysisEvent, bool) {
24547	return nil, false
24548}
24549
24550// AsPartitionEvent is the BasicFabricEvent implementation for NodeClosedEvent.
24551func (nce NodeClosedEvent) AsPartitionEvent() (*PartitionEvent, bool) {
24552	return nil, false
24553}
24554
24555// AsBasicPartitionEvent is the BasicFabricEvent implementation for NodeClosedEvent.
24556func (nce NodeClosedEvent) AsBasicPartitionEvent() (BasicPartitionEvent, bool) {
24557	return nil, false
24558}
24559
24560// AsReplicaEvent is the BasicFabricEvent implementation for NodeClosedEvent.
24561func (nce NodeClosedEvent) AsReplicaEvent() (*ReplicaEvent, bool) {
24562	return nil, false
24563}
24564
24565// AsBasicReplicaEvent is the BasicFabricEvent implementation for NodeClosedEvent.
24566func (nce NodeClosedEvent) AsBasicReplicaEvent() (BasicReplicaEvent, bool) {
24567	return nil, false
24568}
24569
24570// AsServiceEvent is the BasicFabricEvent implementation for NodeClosedEvent.
24571func (nce NodeClosedEvent) AsServiceEvent() (*ServiceEvent, bool) {
24572	return nil, false
24573}
24574
24575// AsBasicServiceEvent is the BasicFabricEvent implementation for NodeClosedEvent.
24576func (nce NodeClosedEvent) AsBasicServiceEvent() (BasicServiceEvent, bool) {
24577	return nil, false
24578}
24579
24580// AsApplicationCreatedEvent is the BasicFabricEvent implementation for NodeClosedEvent.
24581func (nce NodeClosedEvent) AsApplicationCreatedEvent() (*ApplicationCreatedEvent, bool) {
24582	return nil, false
24583}
24584
24585// AsApplicationDeletedEvent is the BasicFabricEvent implementation for NodeClosedEvent.
24586func (nce NodeClosedEvent) AsApplicationDeletedEvent() (*ApplicationDeletedEvent, bool) {
24587	return nil, false
24588}
24589
24590// AsApplicationNewHealthReportEvent is the BasicFabricEvent implementation for NodeClosedEvent.
24591func (nce NodeClosedEvent) AsApplicationNewHealthReportEvent() (*ApplicationNewHealthReportEvent, bool) {
24592	return nil, false
24593}
24594
24595// AsApplicationHealthReportExpiredEvent is the BasicFabricEvent implementation for NodeClosedEvent.
24596func (nce NodeClosedEvent) AsApplicationHealthReportExpiredEvent() (*ApplicationHealthReportExpiredEvent, bool) {
24597	return nil, false
24598}
24599
24600// AsApplicationUpgradeCompletedEvent is the BasicFabricEvent implementation for NodeClosedEvent.
24601func (nce NodeClosedEvent) AsApplicationUpgradeCompletedEvent() (*ApplicationUpgradeCompletedEvent, bool) {
24602	return nil, false
24603}
24604
24605// AsApplicationUpgradeDomainCompletedEvent is the BasicFabricEvent implementation for NodeClosedEvent.
24606func (nce NodeClosedEvent) AsApplicationUpgradeDomainCompletedEvent() (*ApplicationUpgradeDomainCompletedEvent, bool) {
24607	return nil, false
24608}
24609
24610// AsApplicationUpgradeRollbackCompletedEvent is the BasicFabricEvent implementation for NodeClosedEvent.
24611func (nce NodeClosedEvent) AsApplicationUpgradeRollbackCompletedEvent() (*ApplicationUpgradeRollbackCompletedEvent, bool) {
24612	return nil, false
24613}
24614
24615// AsApplicationUpgradeRollbackStartedEvent is the BasicFabricEvent implementation for NodeClosedEvent.
24616func (nce NodeClosedEvent) AsApplicationUpgradeRollbackStartedEvent() (*ApplicationUpgradeRollbackStartedEvent, bool) {
24617	return nil, false
24618}
24619
24620// AsApplicationUpgradeStartedEvent is the BasicFabricEvent implementation for NodeClosedEvent.
24621func (nce NodeClosedEvent) AsApplicationUpgradeStartedEvent() (*ApplicationUpgradeStartedEvent, bool) {
24622	return nil, false
24623}
24624
24625// AsDeployedApplicationNewHealthReportEvent is the BasicFabricEvent implementation for NodeClosedEvent.
24626func (nce NodeClosedEvent) AsDeployedApplicationNewHealthReportEvent() (*DeployedApplicationNewHealthReportEvent, bool) {
24627	return nil, false
24628}
24629
24630// AsDeployedApplicationHealthReportExpiredEvent is the BasicFabricEvent implementation for NodeClosedEvent.
24631func (nce NodeClosedEvent) AsDeployedApplicationHealthReportExpiredEvent() (*DeployedApplicationHealthReportExpiredEvent, bool) {
24632	return nil, false
24633}
24634
24635// AsApplicationProcessExitedEvent is the BasicFabricEvent implementation for NodeClosedEvent.
24636func (nce NodeClosedEvent) AsApplicationProcessExitedEvent() (*ApplicationProcessExitedEvent, bool) {
24637	return nil, false
24638}
24639
24640// AsApplicationContainerInstanceExitedEvent is the BasicFabricEvent implementation for NodeClosedEvent.
24641func (nce NodeClosedEvent) AsApplicationContainerInstanceExitedEvent() (*ApplicationContainerInstanceExitedEvent, bool) {
24642	return nil, false
24643}
24644
24645// AsNodeAbortedEvent is the BasicFabricEvent implementation for NodeClosedEvent.
24646func (nce NodeClosedEvent) AsNodeAbortedEvent() (*NodeAbortedEvent, bool) {
24647	return nil, false
24648}
24649
24650// AsNodeAddedToClusterEvent is the BasicFabricEvent implementation for NodeClosedEvent.
24651func (nce NodeClosedEvent) AsNodeAddedToClusterEvent() (*NodeAddedToClusterEvent, bool) {
24652	return nil, false
24653}
24654
24655// AsNodeClosedEvent is the BasicFabricEvent implementation for NodeClosedEvent.
24656func (nce NodeClosedEvent) AsNodeClosedEvent() (*NodeClosedEvent, bool) {
24657	return &nce, true
24658}
24659
24660// AsNodeDeactivateCompletedEvent is the BasicFabricEvent implementation for NodeClosedEvent.
24661func (nce NodeClosedEvent) AsNodeDeactivateCompletedEvent() (*NodeDeactivateCompletedEvent, bool) {
24662	return nil, false
24663}
24664
24665// AsNodeDeactivateStartedEvent is the BasicFabricEvent implementation for NodeClosedEvent.
24666func (nce NodeClosedEvent) AsNodeDeactivateStartedEvent() (*NodeDeactivateStartedEvent, bool) {
24667	return nil, false
24668}
24669
24670// AsNodeDownEvent is the BasicFabricEvent implementation for NodeClosedEvent.
24671func (nce NodeClosedEvent) AsNodeDownEvent() (*NodeDownEvent, bool) {
24672	return nil, false
24673}
24674
24675// AsNodeNewHealthReportEvent is the BasicFabricEvent implementation for NodeClosedEvent.
24676func (nce NodeClosedEvent) AsNodeNewHealthReportEvent() (*NodeNewHealthReportEvent, bool) {
24677	return nil, false
24678}
24679
24680// AsNodeHealthReportExpiredEvent is the BasicFabricEvent implementation for NodeClosedEvent.
24681func (nce NodeClosedEvent) AsNodeHealthReportExpiredEvent() (*NodeHealthReportExpiredEvent, bool) {
24682	return nil, false
24683}
24684
24685// AsNodeOpenSucceededEvent is the BasicFabricEvent implementation for NodeClosedEvent.
24686func (nce NodeClosedEvent) AsNodeOpenSucceededEvent() (*NodeOpenSucceededEvent, bool) {
24687	return nil, false
24688}
24689
24690// AsNodeOpenFailedEvent is the BasicFabricEvent implementation for NodeClosedEvent.
24691func (nce NodeClosedEvent) AsNodeOpenFailedEvent() (*NodeOpenFailedEvent, bool) {
24692	return nil, false
24693}
24694
24695// AsNodeRemovedFromClusterEvent is the BasicFabricEvent implementation for NodeClosedEvent.
24696func (nce NodeClosedEvent) AsNodeRemovedFromClusterEvent() (*NodeRemovedFromClusterEvent, bool) {
24697	return nil, false
24698}
24699
24700// AsNodeUpEvent is the BasicFabricEvent implementation for NodeClosedEvent.
24701func (nce NodeClosedEvent) AsNodeUpEvent() (*NodeUpEvent, bool) {
24702	return nil, false
24703}
24704
24705// AsPartitionNewHealthReportEvent is the BasicFabricEvent implementation for NodeClosedEvent.
24706func (nce NodeClosedEvent) AsPartitionNewHealthReportEvent() (*PartitionNewHealthReportEvent, bool) {
24707	return nil, false
24708}
24709
24710// AsPartitionHealthReportExpiredEvent is the BasicFabricEvent implementation for NodeClosedEvent.
24711func (nce NodeClosedEvent) AsPartitionHealthReportExpiredEvent() (*PartitionHealthReportExpiredEvent, bool) {
24712	return nil, false
24713}
24714
24715// AsPartitionReconfiguredEvent is the BasicFabricEvent implementation for NodeClosedEvent.
24716func (nce NodeClosedEvent) AsPartitionReconfiguredEvent() (*PartitionReconfiguredEvent, bool) {
24717	return nil, false
24718}
24719
24720// AsPartitionPrimaryMoveAnalysisEvent is the BasicFabricEvent implementation for NodeClosedEvent.
24721func (nce NodeClosedEvent) AsPartitionPrimaryMoveAnalysisEvent() (*PartitionPrimaryMoveAnalysisEvent, bool) {
24722	return nil, false
24723}
24724
24725// AsServiceCreatedEvent is the BasicFabricEvent implementation for NodeClosedEvent.
24726func (nce NodeClosedEvent) AsServiceCreatedEvent() (*ServiceCreatedEvent, bool) {
24727	return nil, false
24728}
24729
24730// AsServiceDeletedEvent is the BasicFabricEvent implementation for NodeClosedEvent.
24731func (nce NodeClosedEvent) AsServiceDeletedEvent() (*ServiceDeletedEvent, bool) {
24732	return nil, false
24733}
24734
24735// AsServiceNewHealthReportEvent is the BasicFabricEvent implementation for NodeClosedEvent.
24736func (nce NodeClosedEvent) AsServiceNewHealthReportEvent() (*ServiceNewHealthReportEvent, bool) {
24737	return nil, false
24738}
24739
24740// AsServiceHealthReportExpiredEvent is the BasicFabricEvent implementation for NodeClosedEvent.
24741func (nce NodeClosedEvent) AsServiceHealthReportExpiredEvent() (*ServiceHealthReportExpiredEvent, bool) {
24742	return nil, false
24743}
24744
24745// AsDeployedServicePackageNewHealthReportEvent is the BasicFabricEvent implementation for NodeClosedEvent.
24746func (nce NodeClosedEvent) AsDeployedServicePackageNewHealthReportEvent() (*DeployedServicePackageNewHealthReportEvent, bool) {
24747	return nil, false
24748}
24749
24750// AsDeployedServicePackageHealthReportExpiredEvent is the BasicFabricEvent implementation for NodeClosedEvent.
24751func (nce NodeClosedEvent) AsDeployedServicePackageHealthReportExpiredEvent() (*DeployedServicePackageHealthReportExpiredEvent, bool) {
24752	return nil, false
24753}
24754
24755// AsStatefulReplicaNewHealthReportEvent is the BasicFabricEvent implementation for NodeClosedEvent.
24756func (nce NodeClosedEvent) AsStatefulReplicaNewHealthReportEvent() (*StatefulReplicaNewHealthReportEvent, bool) {
24757	return nil, false
24758}
24759
24760// AsStatefulReplicaHealthReportExpiredEvent is the BasicFabricEvent implementation for NodeClosedEvent.
24761func (nce NodeClosedEvent) AsStatefulReplicaHealthReportExpiredEvent() (*StatefulReplicaHealthReportExpiredEvent, bool) {
24762	return nil, false
24763}
24764
24765// AsStatelessReplicaNewHealthReportEvent is the BasicFabricEvent implementation for NodeClosedEvent.
24766func (nce NodeClosedEvent) AsStatelessReplicaNewHealthReportEvent() (*StatelessReplicaNewHealthReportEvent, bool) {
24767	return nil, false
24768}
24769
24770// AsStatelessReplicaHealthReportExpiredEvent is the BasicFabricEvent implementation for NodeClosedEvent.
24771func (nce NodeClosedEvent) AsStatelessReplicaHealthReportExpiredEvent() (*StatelessReplicaHealthReportExpiredEvent, bool) {
24772	return nil, false
24773}
24774
24775// AsClusterNewHealthReportEvent is the BasicFabricEvent implementation for NodeClosedEvent.
24776func (nce NodeClosedEvent) AsClusterNewHealthReportEvent() (*ClusterNewHealthReportEvent, bool) {
24777	return nil, false
24778}
24779
24780// AsClusterHealthReportExpiredEvent is the BasicFabricEvent implementation for NodeClosedEvent.
24781func (nce NodeClosedEvent) AsClusterHealthReportExpiredEvent() (*ClusterHealthReportExpiredEvent, bool) {
24782	return nil, false
24783}
24784
24785// AsClusterUpgradeCompletedEvent is the BasicFabricEvent implementation for NodeClosedEvent.
24786func (nce NodeClosedEvent) AsClusterUpgradeCompletedEvent() (*ClusterUpgradeCompletedEvent, bool) {
24787	return nil, false
24788}
24789
24790// AsClusterUpgradeDomainCompletedEvent is the BasicFabricEvent implementation for NodeClosedEvent.
24791func (nce NodeClosedEvent) AsClusterUpgradeDomainCompletedEvent() (*ClusterUpgradeDomainCompletedEvent, bool) {
24792	return nil, false
24793}
24794
24795// AsClusterUpgradeRollbackCompletedEvent is the BasicFabricEvent implementation for NodeClosedEvent.
24796func (nce NodeClosedEvent) AsClusterUpgradeRollbackCompletedEvent() (*ClusterUpgradeRollbackCompletedEvent, bool) {
24797	return nil, false
24798}
24799
24800// AsClusterUpgradeRollbackStartedEvent is the BasicFabricEvent implementation for NodeClosedEvent.
24801func (nce NodeClosedEvent) AsClusterUpgradeRollbackStartedEvent() (*ClusterUpgradeRollbackStartedEvent, bool) {
24802	return nil, false
24803}
24804
24805// AsClusterUpgradeStartedEvent is the BasicFabricEvent implementation for NodeClosedEvent.
24806func (nce NodeClosedEvent) AsClusterUpgradeStartedEvent() (*ClusterUpgradeStartedEvent, bool) {
24807	return nil, false
24808}
24809
24810// AsChaosStoppedEvent is the BasicFabricEvent implementation for NodeClosedEvent.
24811func (nce NodeClosedEvent) AsChaosStoppedEvent() (*ChaosStoppedEvent, bool) {
24812	return nil, false
24813}
24814
24815// AsChaosStartedEvent is the BasicFabricEvent implementation for NodeClosedEvent.
24816func (nce NodeClosedEvent) AsChaosStartedEvent() (*ChaosStartedEvent, bool) {
24817	return nil, false
24818}
24819
24820// AsChaosCodePackageRestartScheduledEvent is the BasicFabricEvent implementation for NodeClosedEvent.
24821func (nce NodeClosedEvent) AsChaosCodePackageRestartScheduledEvent() (*ChaosCodePackageRestartScheduledEvent, bool) {
24822	return nil, false
24823}
24824
24825// AsChaosReplicaRemovalScheduledEvent is the BasicFabricEvent implementation for NodeClosedEvent.
24826func (nce NodeClosedEvent) AsChaosReplicaRemovalScheduledEvent() (*ChaosReplicaRemovalScheduledEvent, bool) {
24827	return nil, false
24828}
24829
24830// AsChaosPartitionSecondaryMoveScheduledEvent is the BasicFabricEvent implementation for NodeClosedEvent.
24831func (nce NodeClosedEvent) AsChaosPartitionSecondaryMoveScheduledEvent() (*ChaosPartitionSecondaryMoveScheduledEvent, bool) {
24832	return nil, false
24833}
24834
24835// AsChaosPartitionPrimaryMoveScheduledEvent is the BasicFabricEvent implementation for NodeClosedEvent.
24836func (nce NodeClosedEvent) AsChaosPartitionPrimaryMoveScheduledEvent() (*ChaosPartitionPrimaryMoveScheduledEvent, bool) {
24837	return nil, false
24838}
24839
24840// AsChaosReplicaRestartScheduledEvent is the BasicFabricEvent implementation for NodeClosedEvent.
24841func (nce NodeClosedEvent) AsChaosReplicaRestartScheduledEvent() (*ChaosReplicaRestartScheduledEvent, bool) {
24842	return nil, false
24843}
24844
24845// AsChaosNodeRestartScheduledEvent is the BasicFabricEvent implementation for NodeClosedEvent.
24846func (nce NodeClosedEvent) AsChaosNodeRestartScheduledEvent() (*ChaosNodeRestartScheduledEvent, bool) {
24847	return nil, false
24848}
24849
24850// AsFabricEvent is the BasicFabricEvent implementation for NodeClosedEvent.
24851func (nce NodeClosedEvent) AsFabricEvent() (*FabricEvent, bool) {
24852	return nil, false
24853}
24854
24855// AsBasicFabricEvent is the BasicFabricEvent implementation for NodeClosedEvent.
24856func (nce NodeClosedEvent) AsBasicFabricEvent() (BasicFabricEvent, bool) {
24857	return &nce, true
24858}
24859
24860// NodeDeactivateCompletedEvent node Deactivate Completed event.
24861type NodeDeactivateCompletedEvent struct {
24862	// NodeInstance - Id of Node instance.
24863	NodeInstance *int64 `json:"NodeInstance,omitempty"`
24864	// EffectiveDeactivateIntent - Describes deactivate intent.
24865	EffectiveDeactivateIntent *string `json:"EffectiveDeactivateIntent,omitempty"`
24866	// BatchIdsWithDeactivateIntent - Batch Ids.
24867	BatchIdsWithDeactivateIntent *string `json:"BatchIdsWithDeactivateIntent,omitempty"`
24868	// StartTime - Start time.
24869	StartTime *date.Time `json:"StartTime,omitempty"`
24870	// NodeName - The name of a Service Fabric node.
24871	NodeName *string `json:"NodeName,omitempty"`
24872	// EventInstanceID - The identifier for the FabricEvent instance.
24873	EventInstanceID *uuid.UUID `json:"EventInstanceId,omitempty"`
24874	// Category - The category of event.
24875	Category *string `json:"Category,omitempty"`
24876	// TimeStamp - The time event was logged.
24877	TimeStamp *date.Time `json:"TimeStamp,omitempty"`
24878	// HasCorrelatedEvents - Shows there is existing related events available.
24879	HasCorrelatedEvents *bool `json:"HasCorrelatedEvents,omitempty"`
24880	// 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'
24881	Kind KindBasicFabricEvent `json:"Kind,omitempty"`
24882}
24883
24884// MarshalJSON is the custom marshaler for NodeDeactivateCompletedEvent.
24885func (ndce NodeDeactivateCompletedEvent) MarshalJSON() ([]byte, error) {
24886	ndce.Kind = KindNodeDeactivateCompleted
24887	objectMap := make(map[string]interface{})
24888	if ndce.NodeInstance != nil {
24889		objectMap["NodeInstance"] = ndce.NodeInstance
24890	}
24891	if ndce.EffectiveDeactivateIntent != nil {
24892		objectMap["EffectiveDeactivateIntent"] = ndce.EffectiveDeactivateIntent
24893	}
24894	if ndce.BatchIdsWithDeactivateIntent != nil {
24895		objectMap["BatchIdsWithDeactivateIntent"] = ndce.BatchIdsWithDeactivateIntent
24896	}
24897	if ndce.StartTime != nil {
24898		objectMap["StartTime"] = ndce.StartTime
24899	}
24900	if ndce.NodeName != nil {
24901		objectMap["NodeName"] = ndce.NodeName
24902	}
24903	if ndce.EventInstanceID != nil {
24904		objectMap["EventInstanceId"] = ndce.EventInstanceID
24905	}
24906	if ndce.Category != nil {
24907		objectMap["Category"] = ndce.Category
24908	}
24909	if ndce.TimeStamp != nil {
24910		objectMap["TimeStamp"] = ndce.TimeStamp
24911	}
24912	if ndce.HasCorrelatedEvents != nil {
24913		objectMap["HasCorrelatedEvents"] = ndce.HasCorrelatedEvents
24914	}
24915	if ndce.Kind != "" {
24916		objectMap["Kind"] = ndce.Kind
24917	}
24918	return json.Marshal(objectMap)
24919}
24920
24921// AsApplicationEvent is the BasicFabricEvent implementation for NodeDeactivateCompletedEvent.
24922func (ndce NodeDeactivateCompletedEvent) AsApplicationEvent() (*ApplicationEvent, bool) {
24923	return nil, false
24924}
24925
24926// AsBasicApplicationEvent is the BasicFabricEvent implementation for NodeDeactivateCompletedEvent.
24927func (ndce NodeDeactivateCompletedEvent) AsBasicApplicationEvent() (BasicApplicationEvent, bool) {
24928	return nil, false
24929}
24930
24931// AsClusterEvent is the BasicFabricEvent implementation for NodeDeactivateCompletedEvent.
24932func (ndce NodeDeactivateCompletedEvent) AsClusterEvent() (*ClusterEvent, bool) {
24933	return nil, false
24934}
24935
24936// AsBasicClusterEvent is the BasicFabricEvent implementation for NodeDeactivateCompletedEvent.
24937func (ndce NodeDeactivateCompletedEvent) AsBasicClusterEvent() (BasicClusterEvent, bool) {
24938	return nil, false
24939}
24940
24941// AsContainerInstanceEvent is the BasicFabricEvent implementation for NodeDeactivateCompletedEvent.
24942func (ndce NodeDeactivateCompletedEvent) AsContainerInstanceEvent() (*ContainerInstanceEvent, bool) {
24943	return nil, false
24944}
24945
24946// AsNodeEvent is the BasicFabricEvent implementation for NodeDeactivateCompletedEvent.
24947func (ndce NodeDeactivateCompletedEvent) AsNodeEvent() (*NodeEvent, bool) {
24948	return nil, false
24949}
24950
24951// AsBasicNodeEvent is the BasicFabricEvent implementation for NodeDeactivateCompletedEvent.
24952func (ndce NodeDeactivateCompletedEvent) AsBasicNodeEvent() (BasicNodeEvent, bool) {
24953	return &ndce, true
24954}
24955
24956// AsPartitionAnalysisEvent is the BasicFabricEvent implementation for NodeDeactivateCompletedEvent.
24957func (ndce NodeDeactivateCompletedEvent) AsPartitionAnalysisEvent() (*PartitionAnalysisEvent, bool) {
24958	return nil, false
24959}
24960
24961// AsBasicPartitionAnalysisEvent is the BasicFabricEvent implementation for NodeDeactivateCompletedEvent.
24962func (ndce NodeDeactivateCompletedEvent) AsBasicPartitionAnalysisEvent() (BasicPartitionAnalysisEvent, bool) {
24963	return nil, false
24964}
24965
24966// AsPartitionEvent is the BasicFabricEvent implementation for NodeDeactivateCompletedEvent.
24967func (ndce NodeDeactivateCompletedEvent) AsPartitionEvent() (*PartitionEvent, bool) {
24968	return nil, false
24969}
24970
24971// AsBasicPartitionEvent is the BasicFabricEvent implementation for NodeDeactivateCompletedEvent.
24972func (ndce NodeDeactivateCompletedEvent) AsBasicPartitionEvent() (BasicPartitionEvent, bool) {
24973	return nil, false
24974}
24975
24976// AsReplicaEvent is the BasicFabricEvent implementation for NodeDeactivateCompletedEvent.
24977func (ndce NodeDeactivateCompletedEvent) AsReplicaEvent() (*ReplicaEvent, bool) {
24978	return nil, false
24979}
24980
24981// AsBasicReplicaEvent is the BasicFabricEvent implementation for NodeDeactivateCompletedEvent.
24982func (ndce NodeDeactivateCompletedEvent) AsBasicReplicaEvent() (BasicReplicaEvent, bool) {
24983	return nil, false
24984}
24985
24986// AsServiceEvent is the BasicFabricEvent implementation for NodeDeactivateCompletedEvent.
24987func (ndce NodeDeactivateCompletedEvent) AsServiceEvent() (*ServiceEvent, bool) {
24988	return nil, false
24989}
24990
24991// AsBasicServiceEvent is the BasicFabricEvent implementation for NodeDeactivateCompletedEvent.
24992func (ndce NodeDeactivateCompletedEvent) AsBasicServiceEvent() (BasicServiceEvent, bool) {
24993	return nil, false
24994}
24995
24996// AsApplicationCreatedEvent is the BasicFabricEvent implementation for NodeDeactivateCompletedEvent.
24997func (ndce NodeDeactivateCompletedEvent) AsApplicationCreatedEvent() (*ApplicationCreatedEvent, bool) {
24998	return nil, false
24999}
25000
25001// AsApplicationDeletedEvent is the BasicFabricEvent implementation for NodeDeactivateCompletedEvent.
25002func (ndce NodeDeactivateCompletedEvent) AsApplicationDeletedEvent() (*ApplicationDeletedEvent, bool) {
25003	return nil, false
25004}
25005
25006// AsApplicationNewHealthReportEvent is the BasicFabricEvent implementation for NodeDeactivateCompletedEvent.
25007func (ndce NodeDeactivateCompletedEvent) AsApplicationNewHealthReportEvent() (*ApplicationNewHealthReportEvent, bool) {
25008	return nil, false
25009}
25010
25011// AsApplicationHealthReportExpiredEvent is the BasicFabricEvent implementation for NodeDeactivateCompletedEvent.
25012func (ndce NodeDeactivateCompletedEvent) AsApplicationHealthReportExpiredEvent() (*ApplicationHealthReportExpiredEvent, bool) {
25013	return nil, false
25014}
25015
25016// AsApplicationUpgradeCompletedEvent is the BasicFabricEvent implementation for NodeDeactivateCompletedEvent.
25017func (ndce NodeDeactivateCompletedEvent) AsApplicationUpgradeCompletedEvent() (*ApplicationUpgradeCompletedEvent, bool) {
25018	return nil, false
25019}
25020
25021// AsApplicationUpgradeDomainCompletedEvent is the BasicFabricEvent implementation for NodeDeactivateCompletedEvent.
25022func (ndce NodeDeactivateCompletedEvent) AsApplicationUpgradeDomainCompletedEvent() (*ApplicationUpgradeDomainCompletedEvent, bool) {
25023	return nil, false
25024}
25025
25026// AsApplicationUpgradeRollbackCompletedEvent is the BasicFabricEvent implementation for NodeDeactivateCompletedEvent.
25027func (ndce NodeDeactivateCompletedEvent) AsApplicationUpgradeRollbackCompletedEvent() (*ApplicationUpgradeRollbackCompletedEvent, bool) {
25028	return nil, false
25029}
25030
25031// AsApplicationUpgradeRollbackStartedEvent is the BasicFabricEvent implementation for NodeDeactivateCompletedEvent.
25032func (ndce NodeDeactivateCompletedEvent) AsApplicationUpgradeRollbackStartedEvent() (*ApplicationUpgradeRollbackStartedEvent, bool) {
25033	return nil, false
25034}
25035
25036// AsApplicationUpgradeStartedEvent is the BasicFabricEvent implementation for NodeDeactivateCompletedEvent.
25037func (ndce NodeDeactivateCompletedEvent) AsApplicationUpgradeStartedEvent() (*ApplicationUpgradeStartedEvent, bool) {
25038	return nil, false
25039}
25040
25041// AsDeployedApplicationNewHealthReportEvent is the BasicFabricEvent implementation for NodeDeactivateCompletedEvent.
25042func (ndce NodeDeactivateCompletedEvent) AsDeployedApplicationNewHealthReportEvent() (*DeployedApplicationNewHealthReportEvent, bool) {
25043	return nil, false
25044}
25045
25046// AsDeployedApplicationHealthReportExpiredEvent is the BasicFabricEvent implementation for NodeDeactivateCompletedEvent.
25047func (ndce NodeDeactivateCompletedEvent) AsDeployedApplicationHealthReportExpiredEvent() (*DeployedApplicationHealthReportExpiredEvent, bool) {
25048	return nil, false
25049}
25050
25051// AsApplicationProcessExitedEvent is the BasicFabricEvent implementation for NodeDeactivateCompletedEvent.
25052func (ndce NodeDeactivateCompletedEvent) AsApplicationProcessExitedEvent() (*ApplicationProcessExitedEvent, bool) {
25053	return nil, false
25054}
25055
25056// AsApplicationContainerInstanceExitedEvent is the BasicFabricEvent implementation for NodeDeactivateCompletedEvent.
25057func (ndce NodeDeactivateCompletedEvent) AsApplicationContainerInstanceExitedEvent() (*ApplicationContainerInstanceExitedEvent, bool) {
25058	return nil, false
25059}
25060
25061// AsNodeAbortedEvent is the BasicFabricEvent implementation for NodeDeactivateCompletedEvent.
25062func (ndce NodeDeactivateCompletedEvent) AsNodeAbortedEvent() (*NodeAbortedEvent, bool) {
25063	return nil, false
25064}
25065
25066// AsNodeAddedToClusterEvent is the BasicFabricEvent implementation for NodeDeactivateCompletedEvent.
25067func (ndce NodeDeactivateCompletedEvent) AsNodeAddedToClusterEvent() (*NodeAddedToClusterEvent, bool) {
25068	return nil, false
25069}
25070
25071// AsNodeClosedEvent is the BasicFabricEvent implementation for NodeDeactivateCompletedEvent.
25072func (ndce NodeDeactivateCompletedEvent) AsNodeClosedEvent() (*NodeClosedEvent, bool) {
25073	return nil, false
25074}
25075
25076// AsNodeDeactivateCompletedEvent is the BasicFabricEvent implementation for NodeDeactivateCompletedEvent.
25077func (ndce NodeDeactivateCompletedEvent) AsNodeDeactivateCompletedEvent() (*NodeDeactivateCompletedEvent, bool) {
25078	return &ndce, true
25079}
25080
25081// AsNodeDeactivateStartedEvent is the BasicFabricEvent implementation for NodeDeactivateCompletedEvent.
25082func (ndce NodeDeactivateCompletedEvent) AsNodeDeactivateStartedEvent() (*NodeDeactivateStartedEvent, bool) {
25083	return nil, false
25084}
25085
25086// AsNodeDownEvent is the BasicFabricEvent implementation for NodeDeactivateCompletedEvent.
25087func (ndce NodeDeactivateCompletedEvent) AsNodeDownEvent() (*NodeDownEvent, bool) {
25088	return nil, false
25089}
25090
25091// AsNodeNewHealthReportEvent is the BasicFabricEvent implementation for NodeDeactivateCompletedEvent.
25092func (ndce NodeDeactivateCompletedEvent) AsNodeNewHealthReportEvent() (*NodeNewHealthReportEvent, bool) {
25093	return nil, false
25094}
25095
25096// AsNodeHealthReportExpiredEvent is the BasicFabricEvent implementation for NodeDeactivateCompletedEvent.
25097func (ndce NodeDeactivateCompletedEvent) AsNodeHealthReportExpiredEvent() (*NodeHealthReportExpiredEvent, bool) {
25098	return nil, false
25099}
25100
25101// AsNodeOpenSucceededEvent is the BasicFabricEvent implementation for NodeDeactivateCompletedEvent.
25102func (ndce NodeDeactivateCompletedEvent) AsNodeOpenSucceededEvent() (*NodeOpenSucceededEvent, bool) {
25103	return nil, false
25104}
25105
25106// AsNodeOpenFailedEvent is the BasicFabricEvent implementation for NodeDeactivateCompletedEvent.
25107func (ndce NodeDeactivateCompletedEvent) AsNodeOpenFailedEvent() (*NodeOpenFailedEvent, bool) {
25108	return nil, false
25109}
25110
25111// AsNodeRemovedFromClusterEvent is the BasicFabricEvent implementation for NodeDeactivateCompletedEvent.
25112func (ndce NodeDeactivateCompletedEvent) AsNodeRemovedFromClusterEvent() (*NodeRemovedFromClusterEvent, bool) {
25113	return nil, false
25114}
25115
25116// AsNodeUpEvent is the BasicFabricEvent implementation for NodeDeactivateCompletedEvent.
25117func (ndce NodeDeactivateCompletedEvent) AsNodeUpEvent() (*NodeUpEvent, bool) {
25118	return nil, false
25119}
25120
25121// AsPartitionNewHealthReportEvent is the BasicFabricEvent implementation for NodeDeactivateCompletedEvent.
25122func (ndce NodeDeactivateCompletedEvent) AsPartitionNewHealthReportEvent() (*PartitionNewHealthReportEvent, bool) {
25123	return nil, false
25124}
25125
25126// AsPartitionHealthReportExpiredEvent is the BasicFabricEvent implementation for NodeDeactivateCompletedEvent.
25127func (ndce NodeDeactivateCompletedEvent) AsPartitionHealthReportExpiredEvent() (*PartitionHealthReportExpiredEvent, bool) {
25128	return nil, false
25129}
25130
25131// AsPartitionReconfiguredEvent is the BasicFabricEvent implementation for NodeDeactivateCompletedEvent.
25132func (ndce NodeDeactivateCompletedEvent) AsPartitionReconfiguredEvent() (*PartitionReconfiguredEvent, bool) {
25133	return nil, false
25134}
25135
25136// AsPartitionPrimaryMoveAnalysisEvent is the BasicFabricEvent implementation for NodeDeactivateCompletedEvent.
25137func (ndce NodeDeactivateCompletedEvent) AsPartitionPrimaryMoveAnalysisEvent() (*PartitionPrimaryMoveAnalysisEvent, bool) {
25138	return nil, false
25139}
25140
25141// AsServiceCreatedEvent is the BasicFabricEvent implementation for NodeDeactivateCompletedEvent.
25142func (ndce NodeDeactivateCompletedEvent) AsServiceCreatedEvent() (*ServiceCreatedEvent, bool) {
25143	return nil, false
25144}
25145
25146// AsServiceDeletedEvent is the BasicFabricEvent implementation for NodeDeactivateCompletedEvent.
25147func (ndce NodeDeactivateCompletedEvent) AsServiceDeletedEvent() (*ServiceDeletedEvent, bool) {
25148	return nil, false
25149}
25150
25151// AsServiceNewHealthReportEvent is the BasicFabricEvent implementation for NodeDeactivateCompletedEvent.
25152func (ndce NodeDeactivateCompletedEvent) AsServiceNewHealthReportEvent() (*ServiceNewHealthReportEvent, bool) {
25153	return nil, false
25154}
25155
25156// AsServiceHealthReportExpiredEvent is the BasicFabricEvent implementation for NodeDeactivateCompletedEvent.
25157func (ndce NodeDeactivateCompletedEvent) AsServiceHealthReportExpiredEvent() (*ServiceHealthReportExpiredEvent, bool) {
25158	return nil, false
25159}
25160
25161// AsDeployedServicePackageNewHealthReportEvent is the BasicFabricEvent implementation for NodeDeactivateCompletedEvent.
25162func (ndce NodeDeactivateCompletedEvent) AsDeployedServicePackageNewHealthReportEvent() (*DeployedServicePackageNewHealthReportEvent, bool) {
25163	return nil, false
25164}
25165
25166// AsDeployedServicePackageHealthReportExpiredEvent is the BasicFabricEvent implementation for NodeDeactivateCompletedEvent.
25167func (ndce NodeDeactivateCompletedEvent) AsDeployedServicePackageHealthReportExpiredEvent() (*DeployedServicePackageHealthReportExpiredEvent, bool) {
25168	return nil, false
25169}
25170
25171// AsStatefulReplicaNewHealthReportEvent is the BasicFabricEvent implementation for NodeDeactivateCompletedEvent.
25172func (ndce NodeDeactivateCompletedEvent) AsStatefulReplicaNewHealthReportEvent() (*StatefulReplicaNewHealthReportEvent, bool) {
25173	return nil, false
25174}
25175
25176// AsStatefulReplicaHealthReportExpiredEvent is the BasicFabricEvent implementation for NodeDeactivateCompletedEvent.
25177func (ndce NodeDeactivateCompletedEvent) AsStatefulReplicaHealthReportExpiredEvent() (*StatefulReplicaHealthReportExpiredEvent, bool) {
25178	return nil, false
25179}
25180
25181// AsStatelessReplicaNewHealthReportEvent is the BasicFabricEvent implementation for NodeDeactivateCompletedEvent.
25182func (ndce NodeDeactivateCompletedEvent) AsStatelessReplicaNewHealthReportEvent() (*StatelessReplicaNewHealthReportEvent, bool) {
25183	return nil, false
25184}
25185
25186// AsStatelessReplicaHealthReportExpiredEvent is the BasicFabricEvent implementation for NodeDeactivateCompletedEvent.
25187func (ndce NodeDeactivateCompletedEvent) AsStatelessReplicaHealthReportExpiredEvent() (*StatelessReplicaHealthReportExpiredEvent, bool) {
25188	return nil, false
25189}
25190
25191// AsClusterNewHealthReportEvent is the BasicFabricEvent implementation for NodeDeactivateCompletedEvent.
25192func (ndce NodeDeactivateCompletedEvent) AsClusterNewHealthReportEvent() (*ClusterNewHealthReportEvent, bool) {
25193	return nil, false
25194}
25195
25196// AsClusterHealthReportExpiredEvent is the BasicFabricEvent implementation for NodeDeactivateCompletedEvent.
25197func (ndce NodeDeactivateCompletedEvent) AsClusterHealthReportExpiredEvent() (*ClusterHealthReportExpiredEvent, bool) {
25198	return nil, false
25199}
25200
25201// AsClusterUpgradeCompletedEvent is the BasicFabricEvent implementation for NodeDeactivateCompletedEvent.
25202func (ndce NodeDeactivateCompletedEvent) AsClusterUpgradeCompletedEvent() (*ClusterUpgradeCompletedEvent, bool) {
25203	return nil, false
25204}
25205
25206// AsClusterUpgradeDomainCompletedEvent is the BasicFabricEvent implementation for NodeDeactivateCompletedEvent.
25207func (ndce NodeDeactivateCompletedEvent) AsClusterUpgradeDomainCompletedEvent() (*ClusterUpgradeDomainCompletedEvent, bool) {
25208	return nil, false
25209}
25210
25211// AsClusterUpgradeRollbackCompletedEvent is the BasicFabricEvent implementation for NodeDeactivateCompletedEvent.
25212func (ndce NodeDeactivateCompletedEvent) AsClusterUpgradeRollbackCompletedEvent() (*ClusterUpgradeRollbackCompletedEvent, bool) {
25213	return nil, false
25214}
25215
25216// AsClusterUpgradeRollbackStartedEvent is the BasicFabricEvent implementation for NodeDeactivateCompletedEvent.
25217func (ndce NodeDeactivateCompletedEvent) AsClusterUpgradeRollbackStartedEvent() (*ClusterUpgradeRollbackStartedEvent, bool) {
25218	return nil, false
25219}
25220
25221// AsClusterUpgradeStartedEvent is the BasicFabricEvent implementation for NodeDeactivateCompletedEvent.
25222func (ndce NodeDeactivateCompletedEvent) AsClusterUpgradeStartedEvent() (*ClusterUpgradeStartedEvent, bool) {
25223	return nil, false
25224}
25225
25226// AsChaosStoppedEvent is the BasicFabricEvent implementation for NodeDeactivateCompletedEvent.
25227func (ndce NodeDeactivateCompletedEvent) AsChaosStoppedEvent() (*ChaosStoppedEvent, bool) {
25228	return nil, false
25229}
25230
25231// AsChaosStartedEvent is the BasicFabricEvent implementation for NodeDeactivateCompletedEvent.
25232func (ndce NodeDeactivateCompletedEvent) AsChaosStartedEvent() (*ChaosStartedEvent, bool) {
25233	return nil, false
25234}
25235
25236// AsChaosCodePackageRestartScheduledEvent is the BasicFabricEvent implementation for NodeDeactivateCompletedEvent.
25237func (ndce NodeDeactivateCompletedEvent) AsChaosCodePackageRestartScheduledEvent() (*ChaosCodePackageRestartScheduledEvent, bool) {
25238	return nil, false
25239}
25240
25241// AsChaosReplicaRemovalScheduledEvent is the BasicFabricEvent implementation for NodeDeactivateCompletedEvent.
25242func (ndce NodeDeactivateCompletedEvent) AsChaosReplicaRemovalScheduledEvent() (*ChaosReplicaRemovalScheduledEvent, bool) {
25243	return nil, false
25244}
25245
25246// AsChaosPartitionSecondaryMoveScheduledEvent is the BasicFabricEvent implementation for NodeDeactivateCompletedEvent.
25247func (ndce NodeDeactivateCompletedEvent) AsChaosPartitionSecondaryMoveScheduledEvent() (*ChaosPartitionSecondaryMoveScheduledEvent, bool) {
25248	return nil, false
25249}
25250
25251// AsChaosPartitionPrimaryMoveScheduledEvent is the BasicFabricEvent implementation for NodeDeactivateCompletedEvent.
25252func (ndce NodeDeactivateCompletedEvent) AsChaosPartitionPrimaryMoveScheduledEvent() (*ChaosPartitionPrimaryMoveScheduledEvent, bool) {
25253	return nil, false
25254}
25255
25256// AsChaosReplicaRestartScheduledEvent is the BasicFabricEvent implementation for NodeDeactivateCompletedEvent.
25257func (ndce NodeDeactivateCompletedEvent) AsChaosReplicaRestartScheduledEvent() (*ChaosReplicaRestartScheduledEvent, bool) {
25258	return nil, false
25259}
25260
25261// AsChaosNodeRestartScheduledEvent is the BasicFabricEvent implementation for NodeDeactivateCompletedEvent.
25262func (ndce NodeDeactivateCompletedEvent) AsChaosNodeRestartScheduledEvent() (*ChaosNodeRestartScheduledEvent, bool) {
25263	return nil, false
25264}
25265
25266// AsFabricEvent is the BasicFabricEvent implementation for NodeDeactivateCompletedEvent.
25267func (ndce NodeDeactivateCompletedEvent) AsFabricEvent() (*FabricEvent, bool) {
25268	return nil, false
25269}
25270
25271// AsBasicFabricEvent is the BasicFabricEvent implementation for NodeDeactivateCompletedEvent.
25272func (ndce NodeDeactivateCompletedEvent) AsBasicFabricEvent() (BasicFabricEvent, bool) {
25273	return &ndce, true
25274}
25275
25276// NodeDeactivateStartedEvent node Deactivate Started event.
25277type NodeDeactivateStartedEvent struct {
25278	// NodeInstance - Id of Node instance.
25279	NodeInstance *int64 `json:"NodeInstance,omitempty"`
25280	// BatchID - Batch Id.
25281	BatchID *string `json:"BatchId,omitempty"`
25282	// DeactivateIntent - Describes deactivate intent.
25283	DeactivateIntent *string `json:"DeactivateIntent,omitempty"`
25284	// NodeName - The name of a Service Fabric node.
25285	NodeName *string `json:"NodeName,omitempty"`
25286	// EventInstanceID - The identifier for the FabricEvent instance.
25287	EventInstanceID *uuid.UUID `json:"EventInstanceId,omitempty"`
25288	// Category - The category of event.
25289	Category *string `json:"Category,omitempty"`
25290	// TimeStamp - The time event was logged.
25291	TimeStamp *date.Time `json:"TimeStamp,omitempty"`
25292	// HasCorrelatedEvents - Shows there is existing related events available.
25293	HasCorrelatedEvents *bool `json:"HasCorrelatedEvents,omitempty"`
25294	// 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'
25295	Kind KindBasicFabricEvent `json:"Kind,omitempty"`
25296}
25297
25298// MarshalJSON is the custom marshaler for NodeDeactivateStartedEvent.
25299func (ndse NodeDeactivateStartedEvent) MarshalJSON() ([]byte, error) {
25300	ndse.Kind = KindNodeDeactivateStarted
25301	objectMap := make(map[string]interface{})
25302	if ndse.NodeInstance != nil {
25303		objectMap["NodeInstance"] = ndse.NodeInstance
25304	}
25305	if ndse.BatchID != nil {
25306		objectMap["BatchId"] = ndse.BatchID
25307	}
25308	if ndse.DeactivateIntent != nil {
25309		objectMap["DeactivateIntent"] = ndse.DeactivateIntent
25310	}
25311	if ndse.NodeName != nil {
25312		objectMap["NodeName"] = ndse.NodeName
25313	}
25314	if ndse.EventInstanceID != nil {
25315		objectMap["EventInstanceId"] = ndse.EventInstanceID
25316	}
25317	if ndse.Category != nil {
25318		objectMap["Category"] = ndse.Category
25319	}
25320	if ndse.TimeStamp != nil {
25321		objectMap["TimeStamp"] = ndse.TimeStamp
25322	}
25323	if ndse.HasCorrelatedEvents != nil {
25324		objectMap["HasCorrelatedEvents"] = ndse.HasCorrelatedEvents
25325	}
25326	if ndse.Kind != "" {
25327		objectMap["Kind"] = ndse.Kind
25328	}
25329	return json.Marshal(objectMap)
25330}
25331
25332// AsApplicationEvent is the BasicFabricEvent implementation for NodeDeactivateStartedEvent.
25333func (ndse NodeDeactivateStartedEvent) AsApplicationEvent() (*ApplicationEvent, bool) {
25334	return nil, false
25335}
25336
25337// AsBasicApplicationEvent is the BasicFabricEvent implementation for NodeDeactivateStartedEvent.
25338func (ndse NodeDeactivateStartedEvent) AsBasicApplicationEvent() (BasicApplicationEvent, bool) {
25339	return nil, false
25340}
25341
25342// AsClusterEvent is the BasicFabricEvent implementation for NodeDeactivateStartedEvent.
25343func (ndse NodeDeactivateStartedEvent) AsClusterEvent() (*ClusterEvent, bool) {
25344	return nil, false
25345}
25346
25347// AsBasicClusterEvent is the BasicFabricEvent implementation for NodeDeactivateStartedEvent.
25348func (ndse NodeDeactivateStartedEvent) AsBasicClusterEvent() (BasicClusterEvent, bool) {
25349	return nil, false
25350}
25351
25352// AsContainerInstanceEvent is the BasicFabricEvent implementation for NodeDeactivateStartedEvent.
25353func (ndse NodeDeactivateStartedEvent) AsContainerInstanceEvent() (*ContainerInstanceEvent, bool) {
25354	return nil, false
25355}
25356
25357// AsNodeEvent is the BasicFabricEvent implementation for NodeDeactivateStartedEvent.
25358func (ndse NodeDeactivateStartedEvent) AsNodeEvent() (*NodeEvent, bool) {
25359	return nil, false
25360}
25361
25362// AsBasicNodeEvent is the BasicFabricEvent implementation for NodeDeactivateStartedEvent.
25363func (ndse NodeDeactivateStartedEvent) AsBasicNodeEvent() (BasicNodeEvent, bool) {
25364	return &ndse, true
25365}
25366
25367// AsPartitionAnalysisEvent is the BasicFabricEvent implementation for NodeDeactivateStartedEvent.
25368func (ndse NodeDeactivateStartedEvent) AsPartitionAnalysisEvent() (*PartitionAnalysisEvent, bool) {
25369	return nil, false
25370}
25371
25372// AsBasicPartitionAnalysisEvent is the BasicFabricEvent implementation for NodeDeactivateStartedEvent.
25373func (ndse NodeDeactivateStartedEvent) AsBasicPartitionAnalysisEvent() (BasicPartitionAnalysisEvent, bool) {
25374	return nil, false
25375}
25376
25377// AsPartitionEvent is the BasicFabricEvent implementation for NodeDeactivateStartedEvent.
25378func (ndse NodeDeactivateStartedEvent) AsPartitionEvent() (*PartitionEvent, bool) {
25379	return nil, false
25380}
25381
25382// AsBasicPartitionEvent is the BasicFabricEvent implementation for NodeDeactivateStartedEvent.
25383func (ndse NodeDeactivateStartedEvent) AsBasicPartitionEvent() (BasicPartitionEvent, bool) {
25384	return nil, false
25385}
25386
25387// AsReplicaEvent is the BasicFabricEvent implementation for NodeDeactivateStartedEvent.
25388func (ndse NodeDeactivateStartedEvent) AsReplicaEvent() (*ReplicaEvent, bool) {
25389	return nil, false
25390}
25391
25392// AsBasicReplicaEvent is the BasicFabricEvent implementation for NodeDeactivateStartedEvent.
25393func (ndse NodeDeactivateStartedEvent) AsBasicReplicaEvent() (BasicReplicaEvent, bool) {
25394	return nil, false
25395}
25396
25397// AsServiceEvent is the BasicFabricEvent implementation for NodeDeactivateStartedEvent.
25398func (ndse NodeDeactivateStartedEvent) AsServiceEvent() (*ServiceEvent, bool) {
25399	return nil, false
25400}
25401
25402// AsBasicServiceEvent is the BasicFabricEvent implementation for NodeDeactivateStartedEvent.
25403func (ndse NodeDeactivateStartedEvent) AsBasicServiceEvent() (BasicServiceEvent, bool) {
25404	return nil, false
25405}
25406
25407// AsApplicationCreatedEvent is the BasicFabricEvent implementation for NodeDeactivateStartedEvent.
25408func (ndse NodeDeactivateStartedEvent) AsApplicationCreatedEvent() (*ApplicationCreatedEvent, bool) {
25409	return nil, false
25410}
25411
25412// AsApplicationDeletedEvent is the BasicFabricEvent implementation for NodeDeactivateStartedEvent.
25413func (ndse NodeDeactivateStartedEvent) AsApplicationDeletedEvent() (*ApplicationDeletedEvent, bool) {
25414	return nil, false
25415}
25416
25417// AsApplicationNewHealthReportEvent is the BasicFabricEvent implementation for NodeDeactivateStartedEvent.
25418func (ndse NodeDeactivateStartedEvent) AsApplicationNewHealthReportEvent() (*ApplicationNewHealthReportEvent, bool) {
25419	return nil, false
25420}
25421
25422// AsApplicationHealthReportExpiredEvent is the BasicFabricEvent implementation for NodeDeactivateStartedEvent.
25423func (ndse NodeDeactivateStartedEvent) AsApplicationHealthReportExpiredEvent() (*ApplicationHealthReportExpiredEvent, bool) {
25424	return nil, false
25425}
25426
25427// AsApplicationUpgradeCompletedEvent is the BasicFabricEvent implementation for NodeDeactivateStartedEvent.
25428func (ndse NodeDeactivateStartedEvent) AsApplicationUpgradeCompletedEvent() (*ApplicationUpgradeCompletedEvent, bool) {
25429	return nil, false
25430}
25431
25432// AsApplicationUpgradeDomainCompletedEvent is the BasicFabricEvent implementation for NodeDeactivateStartedEvent.
25433func (ndse NodeDeactivateStartedEvent) AsApplicationUpgradeDomainCompletedEvent() (*ApplicationUpgradeDomainCompletedEvent, bool) {
25434	return nil, false
25435}
25436
25437// AsApplicationUpgradeRollbackCompletedEvent is the BasicFabricEvent implementation for NodeDeactivateStartedEvent.
25438func (ndse NodeDeactivateStartedEvent) AsApplicationUpgradeRollbackCompletedEvent() (*ApplicationUpgradeRollbackCompletedEvent, bool) {
25439	return nil, false
25440}
25441
25442// AsApplicationUpgradeRollbackStartedEvent is the BasicFabricEvent implementation for NodeDeactivateStartedEvent.
25443func (ndse NodeDeactivateStartedEvent) AsApplicationUpgradeRollbackStartedEvent() (*ApplicationUpgradeRollbackStartedEvent, bool) {
25444	return nil, false
25445}
25446
25447// AsApplicationUpgradeStartedEvent is the BasicFabricEvent implementation for NodeDeactivateStartedEvent.
25448func (ndse NodeDeactivateStartedEvent) AsApplicationUpgradeStartedEvent() (*ApplicationUpgradeStartedEvent, bool) {
25449	return nil, false
25450}
25451
25452// AsDeployedApplicationNewHealthReportEvent is the BasicFabricEvent implementation for NodeDeactivateStartedEvent.
25453func (ndse NodeDeactivateStartedEvent) AsDeployedApplicationNewHealthReportEvent() (*DeployedApplicationNewHealthReportEvent, bool) {
25454	return nil, false
25455}
25456
25457// AsDeployedApplicationHealthReportExpiredEvent is the BasicFabricEvent implementation for NodeDeactivateStartedEvent.
25458func (ndse NodeDeactivateStartedEvent) AsDeployedApplicationHealthReportExpiredEvent() (*DeployedApplicationHealthReportExpiredEvent, bool) {
25459	return nil, false
25460}
25461
25462// AsApplicationProcessExitedEvent is the BasicFabricEvent implementation for NodeDeactivateStartedEvent.
25463func (ndse NodeDeactivateStartedEvent) AsApplicationProcessExitedEvent() (*ApplicationProcessExitedEvent, bool) {
25464	return nil, false
25465}
25466
25467// AsApplicationContainerInstanceExitedEvent is the BasicFabricEvent implementation for NodeDeactivateStartedEvent.
25468func (ndse NodeDeactivateStartedEvent) AsApplicationContainerInstanceExitedEvent() (*ApplicationContainerInstanceExitedEvent, bool) {
25469	return nil, false
25470}
25471
25472// AsNodeAbortedEvent is the BasicFabricEvent implementation for NodeDeactivateStartedEvent.
25473func (ndse NodeDeactivateStartedEvent) AsNodeAbortedEvent() (*NodeAbortedEvent, bool) {
25474	return nil, false
25475}
25476
25477// AsNodeAddedToClusterEvent is the BasicFabricEvent implementation for NodeDeactivateStartedEvent.
25478func (ndse NodeDeactivateStartedEvent) AsNodeAddedToClusterEvent() (*NodeAddedToClusterEvent, bool) {
25479	return nil, false
25480}
25481
25482// AsNodeClosedEvent is the BasicFabricEvent implementation for NodeDeactivateStartedEvent.
25483func (ndse NodeDeactivateStartedEvent) AsNodeClosedEvent() (*NodeClosedEvent, bool) {
25484	return nil, false
25485}
25486
25487// AsNodeDeactivateCompletedEvent is the BasicFabricEvent implementation for NodeDeactivateStartedEvent.
25488func (ndse NodeDeactivateStartedEvent) AsNodeDeactivateCompletedEvent() (*NodeDeactivateCompletedEvent, bool) {
25489	return nil, false
25490}
25491
25492// AsNodeDeactivateStartedEvent is the BasicFabricEvent implementation for NodeDeactivateStartedEvent.
25493func (ndse NodeDeactivateStartedEvent) AsNodeDeactivateStartedEvent() (*NodeDeactivateStartedEvent, bool) {
25494	return &ndse, true
25495}
25496
25497// AsNodeDownEvent is the BasicFabricEvent implementation for NodeDeactivateStartedEvent.
25498func (ndse NodeDeactivateStartedEvent) AsNodeDownEvent() (*NodeDownEvent, bool) {
25499	return nil, false
25500}
25501
25502// AsNodeNewHealthReportEvent is the BasicFabricEvent implementation for NodeDeactivateStartedEvent.
25503func (ndse NodeDeactivateStartedEvent) AsNodeNewHealthReportEvent() (*NodeNewHealthReportEvent, bool) {
25504	return nil, false
25505}
25506
25507// AsNodeHealthReportExpiredEvent is the BasicFabricEvent implementation for NodeDeactivateStartedEvent.
25508func (ndse NodeDeactivateStartedEvent) AsNodeHealthReportExpiredEvent() (*NodeHealthReportExpiredEvent, bool) {
25509	return nil, false
25510}
25511
25512// AsNodeOpenSucceededEvent is the BasicFabricEvent implementation for NodeDeactivateStartedEvent.
25513func (ndse NodeDeactivateStartedEvent) AsNodeOpenSucceededEvent() (*NodeOpenSucceededEvent, bool) {
25514	return nil, false
25515}
25516
25517// AsNodeOpenFailedEvent is the BasicFabricEvent implementation for NodeDeactivateStartedEvent.
25518func (ndse NodeDeactivateStartedEvent) AsNodeOpenFailedEvent() (*NodeOpenFailedEvent, bool) {
25519	return nil, false
25520}
25521
25522// AsNodeRemovedFromClusterEvent is the BasicFabricEvent implementation for NodeDeactivateStartedEvent.
25523func (ndse NodeDeactivateStartedEvent) AsNodeRemovedFromClusterEvent() (*NodeRemovedFromClusterEvent, bool) {
25524	return nil, false
25525}
25526
25527// AsNodeUpEvent is the BasicFabricEvent implementation for NodeDeactivateStartedEvent.
25528func (ndse NodeDeactivateStartedEvent) AsNodeUpEvent() (*NodeUpEvent, bool) {
25529	return nil, false
25530}
25531
25532// AsPartitionNewHealthReportEvent is the BasicFabricEvent implementation for NodeDeactivateStartedEvent.
25533func (ndse NodeDeactivateStartedEvent) AsPartitionNewHealthReportEvent() (*PartitionNewHealthReportEvent, bool) {
25534	return nil, false
25535}
25536
25537// AsPartitionHealthReportExpiredEvent is the BasicFabricEvent implementation for NodeDeactivateStartedEvent.
25538func (ndse NodeDeactivateStartedEvent) AsPartitionHealthReportExpiredEvent() (*PartitionHealthReportExpiredEvent, bool) {
25539	return nil, false
25540}
25541
25542// AsPartitionReconfiguredEvent is the BasicFabricEvent implementation for NodeDeactivateStartedEvent.
25543func (ndse NodeDeactivateStartedEvent) AsPartitionReconfiguredEvent() (*PartitionReconfiguredEvent, bool) {
25544	return nil, false
25545}
25546
25547// AsPartitionPrimaryMoveAnalysisEvent is the BasicFabricEvent implementation for NodeDeactivateStartedEvent.
25548func (ndse NodeDeactivateStartedEvent) AsPartitionPrimaryMoveAnalysisEvent() (*PartitionPrimaryMoveAnalysisEvent, bool) {
25549	return nil, false
25550}
25551
25552// AsServiceCreatedEvent is the BasicFabricEvent implementation for NodeDeactivateStartedEvent.
25553func (ndse NodeDeactivateStartedEvent) AsServiceCreatedEvent() (*ServiceCreatedEvent, bool) {
25554	return nil, false
25555}
25556
25557// AsServiceDeletedEvent is the BasicFabricEvent implementation for NodeDeactivateStartedEvent.
25558func (ndse NodeDeactivateStartedEvent) AsServiceDeletedEvent() (*ServiceDeletedEvent, bool) {
25559	return nil, false
25560}
25561
25562// AsServiceNewHealthReportEvent is the BasicFabricEvent implementation for NodeDeactivateStartedEvent.
25563func (ndse NodeDeactivateStartedEvent) AsServiceNewHealthReportEvent() (*ServiceNewHealthReportEvent, bool) {
25564	return nil, false
25565}
25566
25567// AsServiceHealthReportExpiredEvent is the BasicFabricEvent implementation for NodeDeactivateStartedEvent.
25568func (ndse NodeDeactivateStartedEvent) AsServiceHealthReportExpiredEvent() (*ServiceHealthReportExpiredEvent, bool) {
25569	return nil, false
25570}
25571
25572// AsDeployedServicePackageNewHealthReportEvent is the BasicFabricEvent implementation for NodeDeactivateStartedEvent.
25573func (ndse NodeDeactivateStartedEvent) AsDeployedServicePackageNewHealthReportEvent() (*DeployedServicePackageNewHealthReportEvent, bool) {
25574	return nil, false
25575}
25576
25577// AsDeployedServicePackageHealthReportExpiredEvent is the BasicFabricEvent implementation for NodeDeactivateStartedEvent.
25578func (ndse NodeDeactivateStartedEvent) AsDeployedServicePackageHealthReportExpiredEvent() (*DeployedServicePackageHealthReportExpiredEvent, bool) {
25579	return nil, false
25580}
25581
25582// AsStatefulReplicaNewHealthReportEvent is the BasicFabricEvent implementation for NodeDeactivateStartedEvent.
25583func (ndse NodeDeactivateStartedEvent) AsStatefulReplicaNewHealthReportEvent() (*StatefulReplicaNewHealthReportEvent, bool) {
25584	return nil, false
25585}
25586
25587// AsStatefulReplicaHealthReportExpiredEvent is the BasicFabricEvent implementation for NodeDeactivateStartedEvent.
25588func (ndse NodeDeactivateStartedEvent) AsStatefulReplicaHealthReportExpiredEvent() (*StatefulReplicaHealthReportExpiredEvent, bool) {
25589	return nil, false
25590}
25591
25592// AsStatelessReplicaNewHealthReportEvent is the BasicFabricEvent implementation for NodeDeactivateStartedEvent.
25593func (ndse NodeDeactivateStartedEvent) AsStatelessReplicaNewHealthReportEvent() (*StatelessReplicaNewHealthReportEvent, bool) {
25594	return nil, false
25595}
25596
25597// AsStatelessReplicaHealthReportExpiredEvent is the BasicFabricEvent implementation for NodeDeactivateStartedEvent.
25598func (ndse NodeDeactivateStartedEvent) AsStatelessReplicaHealthReportExpiredEvent() (*StatelessReplicaHealthReportExpiredEvent, bool) {
25599	return nil, false
25600}
25601
25602// AsClusterNewHealthReportEvent is the BasicFabricEvent implementation for NodeDeactivateStartedEvent.
25603func (ndse NodeDeactivateStartedEvent) AsClusterNewHealthReportEvent() (*ClusterNewHealthReportEvent, bool) {
25604	return nil, false
25605}
25606
25607// AsClusterHealthReportExpiredEvent is the BasicFabricEvent implementation for NodeDeactivateStartedEvent.
25608func (ndse NodeDeactivateStartedEvent) AsClusterHealthReportExpiredEvent() (*ClusterHealthReportExpiredEvent, bool) {
25609	return nil, false
25610}
25611
25612// AsClusterUpgradeCompletedEvent is the BasicFabricEvent implementation for NodeDeactivateStartedEvent.
25613func (ndse NodeDeactivateStartedEvent) AsClusterUpgradeCompletedEvent() (*ClusterUpgradeCompletedEvent, bool) {
25614	return nil, false
25615}
25616
25617// AsClusterUpgradeDomainCompletedEvent is the BasicFabricEvent implementation for NodeDeactivateStartedEvent.
25618func (ndse NodeDeactivateStartedEvent) AsClusterUpgradeDomainCompletedEvent() (*ClusterUpgradeDomainCompletedEvent, bool) {
25619	return nil, false
25620}
25621
25622// AsClusterUpgradeRollbackCompletedEvent is the BasicFabricEvent implementation for NodeDeactivateStartedEvent.
25623func (ndse NodeDeactivateStartedEvent) AsClusterUpgradeRollbackCompletedEvent() (*ClusterUpgradeRollbackCompletedEvent, bool) {
25624	return nil, false
25625}
25626
25627// AsClusterUpgradeRollbackStartedEvent is the BasicFabricEvent implementation for NodeDeactivateStartedEvent.
25628func (ndse NodeDeactivateStartedEvent) AsClusterUpgradeRollbackStartedEvent() (*ClusterUpgradeRollbackStartedEvent, bool) {
25629	return nil, false
25630}
25631
25632// AsClusterUpgradeStartedEvent is the BasicFabricEvent implementation for NodeDeactivateStartedEvent.
25633func (ndse NodeDeactivateStartedEvent) AsClusterUpgradeStartedEvent() (*ClusterUpgradeStartedEvent, bool) {
25634	return nil, false
25635}
25636
25637// AsChaosStoppedEvent is the BasicFabricEvent implementation for NodeDeactivateStartedEvent.
25638func (ndse NodeDeactivateStartedEvent) AsChaosStoppedEvent() (*ChaosStoppedEvent, bool) {
25639	return nil, false
25640}
25641
25642// AsChaosStartedEvent is the BasicFabricEvent implementation for NodeDeactivateStartedEvent.
25643func (ndse NodeDeactivateStartedEvent) AsChaosStartedEvent() (*ChaosStartedEvent, bool) {
25644	return nil, false
25645}
25646
25647// AsChaosCodePackageRestartScheduledEvent is the BasicFabricEvent implementation for NodeDeactivateStartedEvent.
25648func (ndse NodeDeactivateStartedEvent) AsChaosCodePackageRestartScheduledEvent() (*ChaosCodePackageRestartScheduledEvent, bool) {
25649	return nil, false
25650}
25651
25652// AsChaosReplicaRemovalScheduledEvent is the BasicFabricEvent implementation for NodeDeactivateStartedEvent.
25653func (ndse NodeDeactivateStartedEvent) AsChaosReplicaRemovalScheduledEvent() (*ChaosReplicaRemovalScheduledEvent, bool) {
25654	return nil, false
25655}
25656
25657// AsChaosPartitionSecondaryMoveScheduledEvent is the BasicFabricEvent implementation for NodeDeactivateStartedEvent.
25658func (ndse NodeDeactivateStartedEvent) AsChaosPartitionSecondaryMoveScheduledEvent() (*ChaosPartitionSecondaryMoveScheduledEvent, bool) {
25659	return nil, false
25660}
25661
25662// AsChaosPartitionPrimaryMoveScheduledEvent is the BasicFabricEvent implementation for NodeDeactivateStartedEvent.
25663func (ndse NodeDeactivateStartedEvent) AsChaosPartitionPrimaryMoveScheduledEvent() (*ChaosPartitionPrimaryMoveScheduledEvent, bool) {
25664	return nil, false
25665}
25666
25667// AsChaosReplicaRestartScheduledEvent is the BasicFabricEvent implementation for NodeDeactivateStartedEvent.
25668func (ndse NodeDeactivateStartedEvent) AsChaosReplicaRestartScheduledEvent() (*ChaosReplicaRestartScheduledEvent, bool) {
25669	return nil, false
25670}
25671
25672// AsChaosNodeRestartScheduledEvent is the BasicFabricEvent implementation for NodeDeactivateStartedEvent.
25673func (ndse NodeDeactivateStartedEvent) AsChaosNodeRestartScheduledEvent() (*ChaosNodeRestartScheduledEvent, bool) {
25674	return nil, false
25675}
25676
25677// AsFabricEvent is the BasicFabricEvent implementation for NodeDeactivateStartedEvent.
25678func (ndse NodeDeactivateStartedEvent) AsFabricEvent() (*FabricEvent, bool) {
25679	return nil, false
25680}
25681
25682// AsBasicFabricEvent is the BasicFabricEvent implementation for NodeDeactivateStartedEvent.
25683func (ndse NodeDeactivateStartedEvent) AsBasicFabricEvent() (BasicFabricEvent, bool) {
25684	return &ndse, true
25685}
25686
25687// NodeDeactivationInfo information about the node deactivation. This information is valid for a node that
25688// is undergoing deactivation or has already been deactivated.
25689type NodeDeactivationInfo struct {
25690	// 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'
25691	NodeDeactivationIntent NodeDeactivationIntent `json:"NodeDeactivationIntent,omitempty"`
25692	// NodeDeactivationStatus - The status of node deactivation operation. Following are the possible values. Possible values include: 'NodeDeactivationStatusNone', 'NodeDeactivationStatusSafetyCheckInProgress', 'NodeDeactivationStatusSafetyCheckComplete', 'NodeDeactivationStatusCompleted'
25693	NodeDeactivationStatus NodeDeactivationStatus `json:"NodeDeactivationStatus,omitempty"`
25694	// NodeDeactivationTask - List of tasks representing the deactivation operation on the node.
25695	NodeDeactivationTask *[]NodeDeactivationTask `json:"NodeDeactivationTask,omitempty"`
25696	// PendingSafetyChecks - List of pending safety checks
25697	PendingSafetyChecks *[]SafetyCheckWrapper `json:"PendingSafetyChecks,omitempty"`
25698}
25699
25700// NodeDeactivationTask the task representing the deactivation operation on the node.
25701type NodeDeactivationTask struct {
25702	// NodeDeactivationTaskID - Identity of the task related to deactivation operation on the node.
25703	NodeDeactivationTaskID *NodeDeactivationTaskID `json:"NodeDeactivationTaskId,omitempty"`
25704	// 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'
25705	NodeDeactivationIntent NodeDeactivationIntent `json:"NodeDeactivationIntent,omitempty"`
25706}
25707
25708// NodeDeactivationTaskID identity of the task related to deactivation operation on the node.
25709type NodeDeactivationTaskID struct {
25710	// ID - Value of the task id.
25711	ID *string `json:"Id,omitempty"`
25712	// NodeDeactivationTaskType - The type of the task that performed the node deactivation. Following are the possible values. Possible values include: 'NodeDeactivationTaskTypeInvalid', 'NodeDeactivationTaskTypeInfrastructure', 'NodeDeactivationTaskTypeRepair', 'NodeDeactivationTaskTypeClient'
25713	NodeDeactivationTaskType NodeDeactivationTaskType `json:"NodeDeactivationTaskType,omitempty"`
25714}
25715
25716// NodeDownEvent node Down event.
25717type NodeDownEvent struct {
25718	// NodeInstance - Id of Node instance.
25719	NodeInstance *int64 `json:"NodeInstance,omitempty"`
25720	// LastNodeUpAt - Time when Node was last up.
25721	LastNodeUpAt *date.Time `json:"LastNodeUpAt,omitempty"`
25722	// NodeName - The name of a Service Fabric node.
25723	NodeName *string `json:"NodeName,omitempty"`
25724	// EventInstanceID - The identifier for the FabricEvent instance.
25725	EventInstanceID *uuid.UUID `json:"EventInstanceId,omitempty"`
25726	// Category - The category of event.
25727	Category *string `json:"Category,omitempty"`
25728	// TimeStamp - The time event was logged.
25729	TimeStamp *date.Time `json:"TimeStamp,omitempty"`
25730	// HasCorrelatedEvents - Shows there is existing related events available.
25731	HasCorrelatedEvents *bool `json:"HasCorrelatedEvents,omitempty"`
25732	// 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'
25733	Kind KindBasicFabricEvent `json:"Kind,omitempty"`
25734}
25735
25736// MarshalJSON is the custom marshaler for NodeDownEvent.
25737func (nde NodeDownEvent) MarshalJSON() ([]byte, error) {
25738	nde.Kind = KindNodeDown
25739	objectMap := make(map[string]interface{})
25740	if nde.NodeInstance != nil {
25741		objectMap["NodeInstance"] = nde.NodeInstance
25742	}
25743	if nde.LastNodeUpAt != nil {
25744		objectMap["LastNodeUpAt"] = nde.LastNodeUpAt
25745	}
25746	if nde.NodeName != nil {
25747		objectMap["NodeName"] = nde.NodeName
25748	}
25749	if nde.EventInstanceID != nil {
25750		objectMap["EventInstanceId"] = nde.EventInstanceID
25751	}
25752	if nde.Category != nil {
25753		objectMap["Category"] = nde.Category
25754	}
25755	if nde.TimeStamp != nil {
25756		objectMap["TimeStamp"] = nde.TimeStamp
25757	}
25758	if nde.HasCorrelatedEvents != nil {
25759		objectMap["HasCorrelatedEvents"] = nde.HasCorrelatedEvents
25760	}
25761	if nde.Kind != "" {
25762		objectMap["Kind"] = nde.Kind
25763	}
25764	return json.Marshal(objectMap)
25765}
25766
25767// AsApplicationEvent is the BasicFabricEvent implementation for NodeDownEvent.
25768func (nde NodeDownEvent) AsApplicationEvent() (*ApplicationEvent, bool) {
25769	return nil, false
25770}
25771
25772// AsBasicApplicationEvent is the BasicFabricEvent implementation for NodeDownEvent.
25773func (nde NodeDownEvent) AsBasicApplicationEvent() (BasicApplicationEvent, bool) {
25774	return nil, false
25775}
25776
25777// AsClusterEvent is the BasicFabricEvent implementation for NodeDownEvent.
25778func (nde NodeDownEvent) AsClusterEvent() (*ClusterEvent, bool) {
25779	return nil, false
25780}
25781
25782// AsBasicClusterEvent is the BasicFabricEvent implementation for NodeDownEvent.
25783func (nde NodeDownEvent) AsBasicClusterEvent() (BasicClusterEvent, bool) {
25784	return nil, false
25785}
25786
25787// AsContainerInstanceEvent is the BasicFabricEvent implementation for NodeDownEvent.
25788func (nde NodeDownEvent) AsContainerInstanceEvent() (*ContainerInstanceEvent, bool) {
25789	return nil, false
25790}
25791
25792// AsNodeEvent is the BasicFabricEvent implementation for NodeDownEvent.
25793func (nde NodeDownEvent) AsNodeEvent() (*NodeEvent, bool) {
25794	return nil, false
25795}
25796
25797// AsBasicNodeEvent is the BasicFabricEvent implementation for NodeDownEvent.
25798func (nde NodeDownEvent) AsBasicNodeEvent() (BasicNodeEvent, bool) {
25799	return &nde, true
25800}
25801
25802// AsPartitionAnalysisEvent is the BasicFabricEvent implementation for NodeDownEvent.
25803func (nde NodeDownEvent) AsPartitionAnalysisEvent() (*PartitionAnalysisEvent, bool) {
25804	return nil, false
25805}
25806
25807// AsBasicPartitionAnalysisEvent is the BasicFabricEvent implementation for NodeDownEvent.
25808func (nde NodeDownEvent) AsBasicPartitionAnalysisEvent() (BasicPartitionAnalysisEvent, bool) {
25809	return nil, false
25810}
25811
25812// AsPartitionEvent is the BasicFabricEvent implementation for NodeDownEvent.
25813func (nde NodeDownEvent) AsPartitionEvent() (*PartitionEvent, bool) {
25814	return nil, false
25815}
25816
25817// AsBasicPartitionEvent is the BasicFabricEvent implementation for NodeDownEvent.
25818func (nde NodeDownEvent) AsBasicPartitionEvent() (BasicPartitionEvent, bool) {
25819	return nil, false
25820}
25821
25822// AsReplicaEvent is the BasicFabricEvent implementation for NodeDownEvent.
25823func (nde NodeDownEvent) AsReplicaEvent() (*ReplicaEvent, bool) {
25824	return nil, false
25825}
25826
25827// AsBasicReplicaEvent is the BasicFabricEvent implementation for NodeDownEvent.
25828func (nde NodeDownEvent) AsBasicReplicaEvent() (BasicReplicaEvent, bool) {
25829	return nil, false
25830}
25831
25832// AsServiceEvent is the BasicFabricEvent implementation for NodeDownEvent.
25833func (nde NodeDownEvent) AsServiceEvent() (*ServiceEvent, bool) {
25834	return nil, false
25835}
25836
25837// AsBasicServiceEvent is the BasicFabricEvent implementation for NodeDownEvent.
25838func (nde NodeDownEvent) AsBasicServiceEvent() (BasicServiceEvent, bool) {
25839	return nil, false
25840}
25841
25842// AsApplicationCreatedEvent is the BasicFabricEvent implementation for NodeDownEvent.
25843func (nde NodeDownEvent) AsApplicationCreatedEvent() (*ApplicationCreatedEvent, bool) {
25844	return nil, false
25845}
25846
25847// AsApplicationDeletedEvent is the BasicFabricEvent implementation for NodeDownEvent.
25848func (nde NodeDownEvent) AsApplicationDeletedEvent() (*ApplicationDeletedEvent, bool) {
25849	return nil, false
25850}
25851
25852// AsApplicationNewHealthReportEvent is the BasicFabricEvent implementation for NodeDownEvent.
25853func (nde NodeDownEvent) AsApplicationNewHealthReportEvent() (*ApplicationNewHealthReportEvent, bool) {
25854	return nil, false
25855}
25856
25857// AsApplicationHealthReportExpiredEvent is the BasicFabricEvent implementation for NodeDownEvent.
25858func (nde NodeDownEvent) AsApplicationHealthReportExpiredEvent() (*ApplicationHealthReportExpiredEvent, bool) {
25859	return nil, false
25860}
25861
25862// AsApplicationUpgradeCompletedEvent is the BasicFabricEvent implementation for NodeDownEvent.
25863func (nde NodeDownEvent) AsApplicationUpgradeCompletedEvent() (*ApplicationUpgradeCompletedEvent, bool) {
25864	return nil, false
25865}
25866
25867// AsApplicationUpgradeDomainCompletedEvent is the BasicFabricEvent implementation for NodeDownEvent.
25868func (nde NodeDownEvent) AsApplicationUpgradeDomainCompletedEvent() (*ApplicationUpgradeDomainCompletedEvent, bool) {
25869	return nil, false
25870}
25871
25872// AsApplicationUpgradeRollbackCompletedEvent is the BasicFabricEvent implementation for NodeDownEvent.
25873func (nde NodeDownEvent) AsApplicationUpgradeRollbackCompletedEvent() (*ApplicationUpgradeRollbackCompletedEvent, bool) {
25874	return nil, false
25875}
25876
25877// AsApplicationUpgradeRollbackStartedEvent is the BasicFabricEvent implementation for NodeDownEvent.
25878func (nde NodeDownEvent) AsApplicationUpgradeRollbackStartedEvent() (*ApplicationUpgradeRollbackStartedEvent, bool) {
25879	return nil, false
25880}
25881
25882// AsApplicationUpgradeStartedEvent is the BasicFabricEvent implementation for NodeDownEvent.
25883func (nde NodeDownEvent) AsApplicationUpgradeStartedEvent() (*ApplicationUpgradeStartedEvent, bool) {
25884	return nil, false
25885}
25886
25887// AsDeployedApplicationNewHealthReportEvent is the BasicFabricEvent implementation for NodeDownEvent.
25888func (nde NodeDownEvent) AsDeployedApplicationNewHealthReportEvent() (*DeployedApplicationNewHealthReportEvent, bool) {
25889	return nil, false
25890}
25891
25892// AsDeployedApplicationHealthReportExpiredEvent is the BasicFabricEvent implementation for NodeDownEvent.
25893func (nde NodeDownEvent) AsDeployedApplicationHealthReportExpiredEvent() (*DeployedApplicationHealthReportExpiredEvent, bool) {
25894	return nil, false
25895}
25896
25897// AsApplicationProcessExitedEvent is the BasicFabricEvent implementation for NodeDownEvent.
25898func (nde NodeDownEvent) AsApplicationProcessExitedEvent() (*ApplicationProcessExitedEvent, bool) {
25899	return nil, false
25900}
25901
25902// AsApplicationContainerInstanceExitedEvent is the BasicFabricEvent implementation for NodeDownEvent.
25903func (nde NodeDownEvent) AsApplicationContainerInstanceExitedEvent() (*ApplicationContainerInstanceExitedEvent, bool) {
25904	return nil, false
25905}
25906
25907// AsNodeAbortedEvent is the BasicFabricEvent implementation for NodeDownEvent.
25908func (nde NodeDownEvent) AsNodeAbortedEvent() (*NodeAbortedEvent, bool) {
25909	return nil, false
25910}
25911
25912// AsNodeAddedToClusterEvent is the BasicFabricEvent implementation for NodeDownEvent.
25913func (nde NodeDownEvent) AsNodeAddedToClusterEvent() (*NodeAddedToClusterEvent, bool) {
25914	return nil, false
25915}
25916
25917// AsNodeClosedEvent is the BasicFabricEvent implementation for NodeDownEvent.
25918func (nde NodeDownEvent) AsNodeClosedEvent() (*NodeClosedEvent, bool) {
25919	return nil, false
25920}
25921
25922// AsNodeDeactivateCompletedEvent is the BasicFabricEvent implementation for NodeDownEvent.
25923func (nde NodeDownEvent) AsNodeDeactivateCompletedEvent() (*NodeDeactivateCompletedEvent, bool) {
25924	return nil, false
25925}
25926
25927// AsNodeDeactivateStartedEvent is the BasicFabricEvent implementation for NodeDownEvent.
25928func (nde NodeDownEvent) AsNodeDeactivateStartedEvent() (*NodeDeactivateStartedEvent, bool) {
25929	return nil, false
25930}
25931
25932// AsNodeDownEvent is the BasicFabricEvent implementation for NodeDownEvent.
25933func (nde NodeDownEvent) AsNodeDownEvent() (*NodeDownEvent, bool) {
25934	return &nde, true
25935}
25936
25937// AsNodeNewHealthReportEvent is the BasicFabricEvent implementation for NodeDownEvent.
25938func (nde NodeDownEvent) AsNodeNewHealthReportEvent() (*NodeNewHealthReportEvent, bool) {
25939	return nil, false
25940}
25941
25942// AsNodeHealthReportExpiredEvent is the BasicFabricEvent implementation for NodeDownEvent.
25943func (nde NodeDownEvent) AsNodeHealthReportExpiredEvent() (*NodeHealthReportExpiredEvent, bool) {
25944	return nil, false
25945}
25946
25947// AsNodeOpenSucceededEvent is the BasicFabricEvent implementation for NodeDownEvent.
25948func (nde NodeDownEvent) AsNodeOpenSucceededEvent() (*NodeOpenSucceededEvent, bool) {
25949	return nil, false
25950}
25951
25952// AsNodeOpenFailedEvent is the BasicFabricEvent implementation for NodeDownEvent.
25953func (nde NodeDownEvent) AsNodeOpenFailedEvent() (*NodeOpenFailedEvent, bool) {
25954	return nil, false
25955}
25956
25957// AsNodeRemovedFromClusterEvent is the BasicFabricEvent implementation for NodeDownEvent.
25958func (nde NodeDownEvent) AsNodeRemovedFromClusterEvent() (*NodeRemovedFromClusterEvent, bool) {
25959	return nil, false
25960}
25961
25962// AsNodeUpEvent is the BasicFabricEvent implementation for NodeDownEvent.
25963func (nde NodeDownEvent) AsNodeUpEvent() (*NodeUpEvent, bool) {
25964	return nil, false
25965}
25966
25967// AsPartitionNewHealthReportEvent is the BasicFabricEvent implementation for NodeDownEvent.
25968func (nde NodeDownEvent) AsPartitionNewHealthReportEvent() (*PartitionNewHealthReportEvent, bool) {
25969	return nil, false
25970}
25971
25972// AsPartitionHealthReportExpiredEvent is the BasicFabricEvent implementation for NodeDownEvent.
25973func (nde NodeDownEvent) AsPartitionHealthReportExpiredEvent() (*PartitionHealthReportExpiredEvent, bool) {
25974	return nil, false
25975}
25976
25977// AsPartitionReconfiguredEvent is the BasicFabricEvent implementation for NodeDownEvent.
25978func (nde NodeDownEvent) AsPartitionReconfiguredEvent() (*PartitionReconfiguredEvent, bool) {
25979	return nil, false
25980}
25981
25982// AsPartitionPrimaryMoveAnalysisEvent is the BasicFabricEvent implementation for NodeDownEvent.
25983func (nde NodeDownEvent) AsPartitionPrimaryMoveAnalysisEvent() (*PartitionPrimaryMoveAnalysisEvent, bool) {
25984	return nil, false
25985}
25986
25987// AsServiceCreatedEvent is the BasicFabricEvent implementation for NodeDownEvent.
25988func (nde NodeDownEvent) AsServiceCreatedEvent() (*ServiceCreatedEvent, bool) {
25989	return nil, false
25990}
25991
25992// AsServiceDeletedEvent is the BasicFabricEvent implementation for NodeDownEvent.
25993func (nde NodeDownEvent) AsServiceDeletedEvent() (*ServiceDeletedEvent, bool) {
25994	return nil, false
25995}
25996
25997// AsServiceNewHealthReportEvent is the BasicFabricEvent implementation for NodeDownEvent.
25998func (nde NodeDownEvent) AsServiceNewHealthReportEvent() (*ServiceNewHealthReportEvent, bool) {
25999	return nil, false
26000}
26001
26002// AsServiceHealthReportExpiredEvent is the BasicFabricEvent implementation for NodeDownEvent.
26003func (nde NodeDownEvent) AsServiceHealthReportExpiredEvent() (*ServiceHealthReportExpiredEvent, bool) {
26004	return nil, false
26005}
26006
26007// AsDeployedServicePackageNewHealthReportEvent is the BasicFabricEvent implementation for NodeDownEvent.
26008func (nde NodeDownEvent) AsDeployedServicePackageNewHealthReportEvent() (*DeployedServicePackageNewHealthReportEvent, bool) {
26009	return nil, false
26010}
26011
26012// AsDeployedServicePackageHealthReportExpiredEvent is the BasicFabricEvent implementation for NodeDownEvent.
26013func (nde NodeDownEvent) AsDeployedServicePackageHealthReportExpiredEvent() (*DeployedServicePackageHealthReportExpiredEvent, bool) {
26014	return nil, false
26015}
26016
26017// AsStatefulReplicaNewHealthReportEvent is the BasicFabricEvent implementation for NodeDownEvent.
26018func (nde NodeDownEvent) AsStatefulReplicaNewHealthReportEvent() (*StatefulReplicaNewHealthReportEvent, bool) {
26019	return nil, false
26020}
26021
26022// AsStatefulReplicaHealthReportExpiredEvent is the BasicFabricEvent implementation for NodeDownEvent.
26023func (nde NodeDownEvent) AsStatefulReplicaHealthReportExpiredEvent() (*StatefulReplicaHealthReportExpiredEvent, bool) {
26024	return nil, false
26025}
26026
26027// AsStatelessReplicaNewHealthReportEvent is the BasicFabricEvent implementation for NodeDownEvent.
26028func (nde NodeDownEvent) AsStatelessReplicaNewHealthReportEvent() (*StatelessReplicaNewHealthReportEvent, bool) {
26029	return nil, false
26030}
26031
26032// AsStatelessReplicaHealthReportExpiredEvent is the BasicFabricEvent implementation for NodeDownEvent.
26033func (nde NodeDownEvent) AsStatelessReplicaHealthReportExpiredEvent() (*StatelessReplicaHealthReportExpiredEvent, bool) {
26034	return nil, false
26035}
26036
26037// AsClusterNewHealthReportEvent is the BasicFabricEvent implementation for NodeDownEvent.
26038func (nde NodeDownEvent) AsClusterNewHealthReportEvent() (*ClusterNewHealthReportEvent, bool) {
26039	return nil, false
26040}
26041
26042// AsClusterHealthReportExpiredEvent is the BasicFabricEvent implementation for NodeDownEvent.
26043func (nde NodeDownEvent) AsClusterHealthReportExpiredEvent() (*ClusterHealthReportExpiredEvent, bool) {
26044	return nil, false
26045}
26046
26047// AsClusterUpgradeCompletedEvent is the BasicFabricEvent implementation for NodeDownEvent.
26048func (nde NodeDownEvent) AsClusterUpgradeCompletedEvent() (*ClusterUpgradeCompletedEvent, bool) {
26049	return nil, false
26050}
26051
26052// AsClusterUpgradeDomainCompletedEvent is the BasicFabricEvent implementation for NodeDownEvent.
26053func (nde NodeDownEvent) AsClusterUpgradeDomainCompletedEvent() (*ClusterUpgradeDomainCompletedEvent, bool) {
26054	return nil, false
26055}
26056
26057// AsClusterUpgradeRollbackCompletedEvent is the BasicFabricEvent implementation for NodeDownEvent.
26058func (nde NodeDownEvent) AsClusterUpgradeRollbackCompletedEvent() (*ClusterUpgradeRollbackCompletedEvent, bool) {
26059	return nil, false
26060}
26061
26062// AsClusterUpgradeRollbackStartedEvent is the BasicFabricEvent implementation for NodeDownEvent.
26063func (nde NodeDownEvent) AsClusterUpgradeRollbackStartedEvent() (*ClusterUpgradeRollbackStartedEvent, bool) {
26064	return nil, false
26065}
26066
26067// AsClusterUpgradeStartedEvent is the BasicFabricEvent implementation for NodeDownEvent.
26068func (nde NodeDownEvent) AsClusterUpgradeStartedEvent() (*ClusterUpgradeStartedEvent, bool) {
26069	return nil, false
26070}
26071
26072// AsChaosStoppedEvent is the BasicFabricEvent implementation for NodeDownEvent.
26073func (nde NodeDownEvent) AsChaosStoppedEvent() (*ChaosStoppedEvent, bool) {
26074	return nil, false
26075}
26076
26077// AsChaosStartedEvent is the BasicFabricEvent implementation for NodeDownEvent.
26078func (nde NodeDownEvent) AsChaosStartedEvent() (*ChaosStartedEvent, bool) {
26079	return nil, false
26080}
26081
26082// AsChaosCodePackageRestartScheduledEvent is the BasicFabricEvent implementation for NodeDownEvent.
26083func (nde NodeDownEvent) AsChaosCodePackageRestartScheduledEvent() (*ChaosCodePackageRestartScheduledEvent, bool) {
26084	return nil, false
26085}
26086
26087// AsChaosReplicaRemovalScheduledEvent is the BasicFabricEvent implementation for NodeDownEvent.
26088func (nde NodeDownEvent) AsChaosReplicaRemovalScheduledEvent() (*ChaosReplicaRemovalScheduledEvent, bool) {
26089	return nil, false
26090}
26091
26092// AsChaosPartitionSecondaryMoveScheduledEvent is the BasicFabricEvent implementation for NodeDownEvent.
26093func (nde NodeDownEvent) AsChaosPartitionSecondaryMoveScheduledEvent() (*ChaosPartitionSecondaryMoveScheduledEvent, bool) {
26094	return nil, false
26095}
26096
26097// AsChaosPartitionPrimaryMoveScheduledEvent is the BasicFabricEvent implementation for NodeDownEvent.
26098func (nde NodeDownEvent) AsChaosPartitionPrimaryMoveScheduledEvent() (*ChaosPartitionPrimaryMoveScheduledEvent, bool) {
26099	return nil, false
26100}
26101
26102// AsChaosReplicaRestartScheduledEvent is the BasicFabricEvent implementation for NodeDownEvent.
26103func (nde NodeDownEvent) AsChaosReplicaRestartScheduledEvent() (*ChaosReplicaRestartScheduledEvent, bool) {
26104	return nil, false
26105}
26106
26107// AsChaosNodeRestartScheduledEvent is the BasicFabricEvent implementation for NodeDownEvent.
26108func (nde NodeDownEvent) AsChaosNodeRestartScheduledEvent() (*ChaosNodeRestartScheduledEvent, bool) {
26109	return nil, false
26110}
26111
26112// AsFabricEvent is the BasicFabricEvent implementation for NodeDownEvent.
26113func (nde NodeDownEvent) AsFabricEvent() (*FabricEvent, bool) {
26114	return nil, false
26115}
26116
26117// AsBasicFabricEvent is the BasicFabricEvent implementation for NodeDownEvent.
26118func (nde NodeDownEvent) AsBasicFabricEvent() (BasicFabricEvent, bool) {
26119	return &nde, true
26120}
26121
26122// BasicNodeEvent represents the base for all Node Events.
26123type BasicNodeEvent interface {
26124	AsNodeAbortedEvent() (*NodeAbortedEvent, bool)
26125	AsNodeAddedToClusterEvent() (*NodeAddedToClusterEvent, bool)
26126	AsNodeClosedEvent() (*NodeClosedEvent, bool)
26127	AsNodeDeactivateCompletedEvent() (*NodeDeactivateCompletedEvent, bool)
26128	AsNodeDeactivateStartedEvent() (*NodeDeactivateStartedEvent, bool)
26129	AsNodeDownEvent() (*NodeDownEvent, bool)
26130	AsNodeNewHealthReportEvent() (*NodeNewHealthReportEvent, bool)
26131	AsNodeHealthReportExpiredEvent() (*NodeHealthReportExpiredEvent, bool)
26132	AsNodeOpenSucceededEvent() (*NodeOpenSucceededEvent, bool)
26133	AsNodeOpenFailedEvent() (*NodeOpenFailedEvent, bool)
26134	AsNodeRemovedFromClusterEvent() (*NodeRemovedFromClusterEvent, bool)
26135	AsNodeUpEvent() (*NodeUpEvent, bool)
26136	AsChaosNodeRestartScheduledEvent() (*ChaosNodeRestartScheduledEvent, bool)
26137	AsNodeEvent() (*NodeEvent, bool)
26138}
26139
26140// NodeEvent represents the base for all Node Events.
26141type NodeEvent struct {
26142	// NodeName - The name of a Service Fabric node.
26143	NodeName *string `json:"NodeName,omitempty"`
26144	// EventInstanceID - The identifier for the FabricEvent instance.
26145	EventInstanceID *uuid.UUID `json:"EventInstanceId,omitempty"`
26146	// Category - The category of event.
26147	Category *string `json:"Category,omitempty"`
26148	// TimeStamp - The time event was logged.
26149	TimeStamp *date.Time `json:"TimeStamp,omitempty"`
26150	// HasCorrelatedEvents - Shows there is existing related events available.
26151	HasCorrelatedEvents *bool `json:"HasCorrelatedEvents,omitempty"`
26152	// 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'
26153	Kind KindBasicFabricEvent `json:"Kind,omitempty"`
26154}
26155
26156func unmarshalBasicNodeEvent(body []byte) (BasicNodeEvent, error) {
26157	var m map[string]interface{}
26158	err := json.Unmarshal(body, &m)
26159	if err != nil {
26160		return nil, err
26161	}
26162
26163	switch m["Kind"] {
26164	case string(KindNodeAborted):
26165		var nae NodeAbortedEvent
26166		err := json.Unmarshal(body, &nae)
26167		return nae, err
26168	case string(KindNodeAddedToCluster):
26169		var natce NodeAddedToClusterEvent
26170		err := json.Unmarshal(body, &natce)
26171		return natce, err
26172	case string(KindNodeClosed):
26173		var nce NodeClosedEvent
26174		err := json.Unmarshal(body, &nce)
26175		return nce, err
26176	case string(KindNodeDeactivateCompleted):
26177		var ndce NodeDeactivateCompletedEvent
26178		err := json.Unmarshal(body, &ndce)
26179		return ndce, err
26180	case string(KindNodeDeactivateStarted):
26181		var ndse NodeDeactivateStartedEvent
26182		err := json.Unmarshal(body, &ndse)
26183		return ndse, err
26184	case string(KindNodeDown):
26185		var nde NodeDownEvent
26186		err := json.Unmarshal(body, &nde)
26187		return nde, err
26188	case string(KindNodeNewHealthReport):
26189		var nnhre NodeNewHealthReportEvent
26190		err := json.Unmarshal(body, &nnhre)
26191		return nnhre, err
26192	case string(KindNodeHealthReportExpired):
26193		var nhree NodeHealthReportExpiredEvent
26194		err := json.Unmarshal(body, &nhree)
26195		return nhree, err
26196	case string(KindNodeOpenSucceeded):
26197		var nose NodeOpenSucceededEvent
26198		err := json.Unmarshal(body, &nose)
26199		return nose, err
26200	case string(KindNodeOpenFailed):
26201		var nofe NodeOpenFailedEvent
26202		err := json.Unmarshal(body, &nofe)
26203		return nofe, err
26204	case string(KindNodeRemovedFromCluster):
26205		var nrfce NodeRemovedFromClusterEvent
26206		err := json.Unmarshal(body, &nrfce)
26207		return nrfce, err
26208	case string(KindNodeUp):
26209		var nue NodeUpEvent
26210		err := json.Unmarshal(body, &nue)
26211		return nue, err
26212	case string(KindChaosNodeRestartScheduled):
26213		var cnrse ChaosNodeRestartScheduledEvent
26214		err := json.Unmarshal(body, &cnrse)
26215		return cnrse, err
26216	default:
26217		var ne NodeEvent
26218		err := json.Unmarshal(body, &ne)
26219		return ne, err
26220	}
26221}
26222func unmarshalBasicNodeEventArray(body []byte) ([]BasicNodeEvent, error) {
26223	var rawMessages []*json.RawMessage
26224	err := json.Unmarshal(body, &rawMessages)
26225	if err != nil {
26226		return nil, err
26227	}
26228
26229	neArray := make([]BasicNodeEvent, len(rawMessages))
26230
26231	for index, rawMessage := range rawMessages {
26232		ne, err := unmarshalBasicNodeEvent(*rawMessage)
26233		if err != nil {
26234			return nil, err
26235		}
26236		neArray[index] = ne
26237	}
26238	return neArray, nil
26239}
26240
26241// MarshalJSON is the custom marshaler for NodeEvent.
26242func (ne NodeEvent) MarshalJSON() ([]byte, error) {
26243	ne.Kind = KindNodeEvent
26244	objectMap := make(map[string]interface{})
26245	if ne.NodeName != nil {
26246		objectMap["NodeName"] = ne.NodeName
26247	}
26248	if ne.EventInstanceID != nil {
26249		objectMap["EventInstanceId"] = ne.EventInstanceID
26250	}
26251	if ne.Category != nil {
26252		objectMap["Category"] = ne.Category
26253	}
26254	if ne.TimeStamp != nil {
26255		objectMap["TimeStamp"] = ne.TimeStamp
26256	}
26257	if ne.HasCorrelatedEvents != nil {
26258		objectMap["HasCorrelatedEvents"] = ne.HasCorrelatedEvents
26259	}
26260	if ne.Kind != "" {
26261		objectMap["Kind"] = ne.Kind
26262	}
26263	return json.Marshal(objectMap)
26264}
26265
26266// AsApplicationEvent is the BasicFabricEvent implementation for NodeEvent.
26267func (ne NodeEvent) AsApplicationEvent() (*ApplicationEvent, bool) {
26268	return nil, false
26269}
26270
26271// AsBasicApplicationEvent is the BasicFabricEvent implementation for NodeEvent.
26272func (ne NodeEvent) AsBasicApplicationEvent() (BasicApplicationEvent, bool) {
26273	return nil, false
26274}
26275
26276// AsClusterEvent is the BasicFabricEvent implementation for NodeEvent.
26277func (ne NodeEvent) AsClusterEvent() (*ClusterEvent, bool) {
26278	return nil, false
26279}
26280
26281// AsBasicClusterEvent is the BasicFabricEvent implementation for NodeEvent.
26282func (ne NodeEvent) AsBasicClusterEvent() (BasicClusterEvent, bool) {
26283	return nil, false
26284}
26285
26286// AsContainerInstanceEvent is the BasicFabricEvent implementation for NodeEvent.
26287func (ne NodeEvent) AsContainerInstanceEvent() (*ContainerInstanceEvent, bool) {
26288	return nil, false
26289}
26290
26291// AsNodeEvent is the BasicFabricEvent implementation for NodeEvent.
26292func (ne NodeEvent) AsNodeEvent() (*NodeEvent, bool) {
26293	return &ne, true
26294}
26295
26296// AsBasicNodeEvent is the BasicFabricEvent implementation for NodeEvent.
26297func (ne NodeEvent) AsBasicNodeEvent() (BasicNodeEvent, bool) {
26298	return &ne, true
26299}
26300
26301// AsPartitionAnalysisEvent is the BasicFabricEvent implementation for NodeEvent.
26302func (ne NodeEvent) AsPartitionAnalysisEvent() (*PartitionAnalysisEvent, bool) {
26303	return nil, false
26304}
26305
26306// AsBasicPartitionAnalysisEvent is the BasicFabricEvent implementation for NodeEvent.
26307func (ne NodeEvent) AsBasicPartitionAnalysisEvent() (BasicPartitionAnalysisEvent, bool) {
26308	return nil, false
26309}
26310
26311// AsPartitionEvent is the BasicFabricEvent implementation for NodeEvent.
26312func (ne NodeEvent) AsPartitionEvent() (*PartitionEvent, bool) {
26313	return nil, false
26314}
26315
26316// AsBasicPartitionEvent is the BasicFabricEvent implementation for NodeEvent.
26317func (ne NodeEvent) AsBasicPartitionEvent() (BasicPartitionEvent, bool) {
26318	return nil, false
26319}
26320
26321// AsReplicaEvent is the BasicFabricEvent implementation for NodeEvent.
26322func (ne NodeEvent) AsReplicaEvent() (*ReplicaEvent, bool) {
26323	return nil, false
26324}
26325
26326// AsBasicReplicaEvent is the BasicFabricEvent implementation for NodeEvent.
26327func (ne NodeEvent) AsBasicReplicaEvent() (BasicReplicaEvent, bool) {
26328	return nil, false
26329}
26330
26331// AsServiceEvent is the BasicFabricEvent implementation for NodeEvent.
26332func (ne NodeEvent) AsServiceEvent() (*ServiceEvent, bool) {
26333	return nil, false
26334}
26335
26336// AsBasicServiceEvent is the BasicFabricEvent implementation for NodeEvent.
26337func (ne NodeEvent) AsBasicServiceEvent() (BasicServiceEvent, bool) {
26338	return nil, false
26339}
26340
26341// AsApplicationCreatedEvent is the BasicFabricEvent implementation for NodeEvent.
26342func (ne NodeEvent) AsApplicationCreatedEvent() (*ApplicationCreatedEvent, bool) {
26343	return nil, false
26344}
26345
26346// AsApplicationDeletedEvent is the BasicFabricEvent implementation for NodeEvent.
26347func (ne NodeEvent) AsApplicationDeletedEvent() (*ApplicationDeletedEvent, bool) {
26348	return nil, false
26349}
26350
26351// AsApplicationNewHealthReportEvent is the BasicFabricEvent implementation for NodeEvent.
26352func (ne NodeEvent) AsApplicationNewHealthReportEvent() (*ApplicationNewHealthReportEvent, bool) {
26353	return nil, false
26354}
26355
26356// AsApplicationHealthReportExpiredEvent is the BasicFabricEvent implementation for NodeEvent.
26357func (ne NodeEvent) AsApplicationHealthReportExpiredEvent() (*ApplicationHealthReportExpiredEvent, bool) {
26358	return nil, false
26359}
26360
26361// AsApplicationUpgradeCompletedEvent is the BasicFabricEvent implementation for NodeEvent.
26362func (ne NodeEvent) AsApplicationUpgradeCompletedEvent() (*ApplicationUpgradeCompletedEvent, bool) {
26363	return nil, false
26364}
26365
26366// AsApplicationUpgradeDomainCompletedEvent is the BasicFabricEvent implementation for NodeEvent.
26367func (ne NodeEvent) AsApplicationUpgradeDomainCompletedEvent() (*ApplicationUpgradeDomainCompletedEvent, bool) {
26368	return nil, false
26369}
26370
26371// AsApplicationUpgradeRollbackCompletedEvent is the BasicFabricEvent implementation for NodeEvent.
26372func (ne NodeEvent) AsApplicationUpgradeRollbackCompletedEvent() (*ApplicationUpgradeRollbackCompletedEvent, bool) {
26373	return nil, false
26374}
26375
26376// AsApplicationUpgradeRollbackStartedEvent is the BasicFabricEvent implementation for NodeEvent.
26377func (ne NodeEvent) AsApplicationUpgradeRollbackStartedEvent() (*ApplicationUpgradeRollbackStartedEvent, bool) {
26378	return nil, false
26379}
26380
26381// AsApplicationUpgradeStartedEvent is the BasicFabricEvent implementation for NodeEvent.
26382func (ne NodeEvent) AsApplicationUpgradeStartedEvent() (*ApplicationUpgradeStartedEvent, bool) {
26383	return nil, false
26384}
26385
26386// AsDeployedApplicationNewHealthReportEvent is the BasicFabricEvent implementation for NodeEvent.
26387func (ne NodeEvent) AsDeployedApplicationNewHealthReportEvent() (*DeployedApplicationNewHealthReportEvent, bool) {
26388	return nil, false
26389}
26390
26391// AsDeployedApplicationHealthReportExpiredEvent is the BasicFabricEvent implementation for NodeEvent.
26392func (ne NodeEvent) AsDeployedApplicationHealthReportExpiredEvent() (*DeployedApplicationHealthReportExpiredEvent, bool) {
26393	return nil, false
26394}
26395
26396// AsApplicationProcessExitedEvent is the BasicFabricEvent implementation for NodeEvent.
26397func (ne NodeEvent) AsApplicationProcessExitedEvent() (*ApplicationProcessExitedEvent, bool) {
26398	return nil, false
26399}
26400
26401// AsApplicationContainerInstanceExitedEvent is the BasicFabricEvent implementation for NodeEvent.
26402func (ne NodeEvent) AsApplicationContainerInstanceExitedEvent() (*ApplicationContainerInstanceExitedEvent, bool) {
26403	return nil, false
26404}
26405
26406// AsNodeAbortedEvent is the BasicFabricEvent implementation for NodeEvent.
26407func (ne NodeEvent) AsNodeAbortedEvent() (*NodeAbortedEvent, bool) {
26408	return nil, false
26409}
26410
26411// AsNodeAddedToClusterEvent is the BasicFabricEvent implementation for NodeEvent.
26412func (ne NodeEvent) AsNodeAddedToClusterEvent() (*NodeAddedToClusterEvent, bool) {
26413	return nil, false
26414}
26415
26416// AsNodeClosedEvent is the BasicFabricEvent implementation for NodeEvent.
26417func (ne NodeEvent) AsNodeClosedEvent() (*NodeClosedEvent, bool) {
26418	return nil, false
26419}
26420
26421// AsNodeDeactivateCompletedEvent is the BasicFabricEvent implementation for NodeEvent.
26422func (ne NodeEvent) AsNodeDeactivateCompletedEvent() (*NodeDeactivateCompletedEvent, bool) {
26423	return nil, false
26424}
26425
26426// AsNodeDeactivateStartedEvent is the BasicFabricEvent implementation for NodeEvent.
26427func (ne NodeEvent) AsNodeDeactivateStartedEvent() (*NodeDeactivateStartedEvent, bool) {
26428	return nil, false
26429}
26430
26431// AsNodeDownEvent is the BasicFabricEvent implementation for NodeEvent.
26432func (ne NodeEvent) AsNodeDownEvent() (*NodeDownEvent, bool) {
26433	return nil, false
26434}
26435
26436// AsNodeNewHealthReportEvent is the BasicFabricEvent implementation for NodeEvent.
26437func (ne NodeEvent) AsNodeNewHealthReportEvent() (*NodeNewHealthReportEvent, bool) {
26438	return nil, false
26439}
26440
26441// AsNodeHealthReportExpiredEvent is the BasicFabricEvent implementation for NodeEvent.
26442func (ne NodeEvent) AsNodeHealthReportExpiredEvent() (*NodeHealthReportExpiredEvent, bool) {
26443	return nil, false
26444}
26445
26446// AsNodeOpenSucceededEvent is the BasicFabricEvent implementation for NodeEvent.
26447func (ne NodeEvent) AsNodeOpenSucceededEvent() (*NodeOpenSucceededEvent, bool) {
26448	return nil, false
26449}
26450
26451// AsNodeOpenFailedEvent is the BasicFabricEvent implementation for NodeEvent.
26452func (ne NodeEvent) AsNodeOpenFailedEvent() (*NodeOpenFailedEvent, bool) {
26453	return nil, false
26454}
26455
26456// AsNodeRemovedFromClusterEvent is the BasicFabricEvent implementation for NodeEvent.
26457func (ne NodeEvent) AsNodeRemovedFromClusterEvent() (*NodeRemovedFromClusterEvent, bool) {
26458	return nil, false
26459}
26460
26461// AsNodeUpEvent is the BasicFabricEvent implementation for NodeEvent.
26462func (ne NodeEvent) AsNodeUpEvent() (*NodeUpEvent, bool) {
26463	return nil, false
26464}
26465
26466// AsPartitionNewHealthReportEvent is the BasicFabricEvent implementation for NodeEvent.
26467func (ne NodeEvent) AsPartitionNewHealthReportEvent() (*PartitionNewHealthReportEvent, bool) {
26468	return nil, false
26469}
26470
26471// AsPartitionHealthReportExpiredEvent is the BasicFabricEvent implementation for NodeEvent.
26472func (ne NodeEvent) AsPartitionHealthReportExpiredEvent() (*PartitionHealthReportExpiredEvent, bool) {
26473	return nil, false
26474}
26475
26476// AsPartitionReconfiguredEvent is the BasicFabricEvent implementation for NodeEvent.
26477func (ne NodeEvent) AsPartitionReconfiguredEvent() (*PartitionReconfiguredEvent, bool) {
26478	return nil, false
26479}
26480
26481// AsPartitionPrimaryMoveAnalysisEvent is the BasicFabricEvent implementation for NodeEvent.
26482func (ne NodeEvent) AsPartitionPrimaryMoveAnalysisEvent() (*PartitionPrimaryMoveAnalysisEvent, bool) {
26483	return nil, false
26484}
26485
26486// AsServiceCreatedEvent is the BasicFabricEvent implementation for NodeEvent.
26487func (ne NodeEvent) AsServiceCreatedEvent() (*ServiceCreatedEvent, bool) {
26488	return nil, false
26489}
26490
26491// AsServiceDeletedEvent is the BasicFabricEvent implementation for NodeEvent.
26492func (ne NodeEvent) AsServiceDeletedEvent() (*ServiceDeletedEvent, bool) {
26493	return nil, false
26494}
26495
26496// AsServiceNewHealthReportEvent is the BasicFabricEvent implementation for NodeEvent.
26497func (ne NodeEvent) AsServiceNewHealthReportEvent() (*ServiceNewHealthReportEvent, bool) {
26498	return nil, false
26499}
26500
26501// AsServiceHealthReportExpiredEvent is the BasicFabricEvent implementation for NodeEvent.
26502func (ne NodeEvent) AsServiceHealthReportExpiredEvent() (*ServiceHealthReportExpiredEvent, bool) {
26503	return nil, false
26504}
26505
26506// AsDeployedServicePackageNewHealthReportEvent is the BasicFabricEvent implementation for NodeEvent.
26507func (ne NodeEvent) AsDeployedServicePackageNewHealthReportEvent() (*DeployedServicePackageNewHealthReportEvent, bool) {
26508	return nil, false
26509}
26510
26511// AsDeployedServicePackageHealthReportExpiredEvent is the BasicFabricEvent implementation for NodeEvent.
26512func (ne NodeEvent) AsDeployedServicePackageHealthReportExpiredEvent() (*DeployedServicePackageHealthReportExpiredEvent, bool) {
26513	return nil, false
26514}
26515
26516// AsStatefulReplicaNewHealthReportEvent is the BasicFabricEvent implementation for NodeEvent.
26517func (ne NodeEvent) AsStatefulReplicaNewHealthReportEvent() (*StatefulReplicaNewHealthReportEvent, bool) {
26518	return nil, false
26519}
26520
26521// AsStatefulReplicaHealthReportExpiredEvent is the BasicFabricEvent implementation for NodeEvent.
26522func (ne NodeEvent) AsStatefulReplicaHealthReportExpiredEvent() (*StatefulReplicaHealthReportExpiredEvent, bool) {
26523	return nil, false
26524}
26525
26526// AsStatelessReplicaNewHealthReportEvent is the BasicFabricEvent implementation for NodeEvent.
26527func (ne NodeEvent) AsStatelessReplicaNewHealthReportEvent() (*StatelessReplicaNewHealthReportEvent, bool) {
26528	return nil, false
26529}
26530
26531// AsStatelessReplicaHealthReportExpiredEvent is the BasicFabricEvent implementation for NodeEvent.
26532func (ne NodeEvent) AsStatelessReplicaHealthReportExpiredEvent() (*StatelessReplicaHealthReportExpiredEvent, bool) {
26533	return nil, false
26534}
26535
26536// AsClusterNewHealthReportEvent is the BasicFabricEvent implementation for NodeEvent.
26537func (ne NodeEvent) AsClusterNewHealthReportEvent() (*ClusterNewHealthReportEvent, bool) {
26538	return nil, false
26539}
26540
26541// AsClusterHealthReportExpiredEvent is the BasicFabricEvent implementation for NodeEvent.
26542func (ne NodeEvent) AsClusterHealthReportExpiredEvent() (*ClusterHealthReportExpiredEvent, bool) {
26543	return nil, false
26544}
26545
26546// AsClusterUpgradeCompletedEvent is the BasicFabricEvent implementation for NodeEvent.
26547func (ne NodeEvent) AsClusterUpgradeCompletedEvent() (*ClusterUpgradeCompletedEvent, bool) {
26548	return nil, false
26549}
26550
26551// AsClusterUpgradeDomainCompletedEvent is the BasicFabricEvent implementation for NodeEvent.
26552func (ne NodeEvent) AsClusterUpgradeDomainCompletedEvent() (*ClusterUpgradeDomainCompletedEvent, bool) {
26553	return nil, false
26554}
26555
26556// AsClusterUpgradeRollbackCompletedEvent is the BasicFabricEvent implementation for NodeEvent.
26557func (ne NodeEvent) AsClusterUpgradeRollbackCompletedEvent() (*ClusterUpgradeRollbackCompletedEvent, bool) {
26558	return nil, false
26559}
26560
26561// AsClusterUpgradeRollbackStartedEvent is the BasicFabricEvent implementation for NodeEvent.
26562func (ne NodeEvent) AsClusterUpgradeRollbackStartedEvent() (*ClusterUpgradeRollbackStartedEvent, bool) {
26563	return nil, false
26564}
26565
26566// AsClusterUpgradeStartedEvent is the BasicFabricEvent implementation for NodeEvent.
26567func (ne NodeEvent) AsClusterUpgradeStartedEvent() (*ClusterUpgradeStartedEvent, bool) {
26568	return nil, false
26569}
26570
26571// AsChaosStoppedEvent is the BasicFabricEvent implementation for NodeEvent.
26572func (ne NodeEvent) AsChaosStoppedEvent() (*ChaosStoppedEvent, bool) {
26573	return nil, false
26574}
26575
26576// AsChaosStartedEvent is the BasicFabricEvent implementation for NodeEvent.
26577func (ne NodeEvent) AsChaosStartedEvent() (*ChaosStartedEvent, bool) {
26578	return nil, false
26579}
26580
26581// AsChaosCodePackageRestartScheduledEvent is the BasicFabricEvent implementation for NodeEvent.
26582func (ne NodeEvent) AsChaosCodePackageRestartScheduledEvent() (*ChaosCodePackageRestartScheduledEvent, bool) {
26583	return nil, false
26584}
26585
26586// AsChaosReplicaRemovalScheduledEvent is the BasicFabricEvent implementation for NodeEvent.
26587func (ne NodeEvent) AsChaosReplicaRemovalScheduledEvent() (*ChaosReplicaRemovalScheduledEvent, bool) {
26588	return nil, false
26589}
26590
26591// AsChaosPartitionSecondaryMoveScheduledEvent is the BasicFabricEvent implementation for NodeEvent.
26592func (ne NodeEvent) AsChaosPartitionSecondaryMoveScheduledEvent() (*ChaosPartitionSecondaryMoveScheduledEvent, bool) {
26593	return nil, false
26594}
26595
26596// AsChaosPartitionPrimaryMoveScheduledEvent is the BasicFabricEvent implementation for NodeEvent.
26597func (ne NodeEvent) AsChaosPartitionPrimaryMoveScheduledEvent() (*ChaosPartitionPrimaryMoveScheduledEvent, bool) {
26598	return nil, false
26599}
26600
26601// AsChaosReplicaRestartScheduledEvent is the BasicFabricEvent implementation for NodeEvent.
26602func (ne NodeEvent) AsChaosReplicaRestartScheduledEvent() (*ChaosReplicaRestartScheduledEvent, bool) {
26603	return nil, false
26604}
26605
26606// AsChaosNodeRestartScheduledEvent is the BasicFabricEvent implementation for NodeEvent.
26607func (ne NodeEvent) AsChaosNodeRestartScheduledEvent() (*ChaosNodeRestartScheduledEvent, bool) {
26608	return nil, false
26609}
26610
26611// AsFabricEvent is the BasicFabricEvent implementation for NodeEvent.
26612func (ne NodeEvent) AsFabricEvent() (*FabricEvent, bool) {
26613	return nil, false
26614}
26615
26616// AsBasicFabricEvent is the BasicFabricEvent implementation for NodeEvent.
26617func (ne NodeEvent) AsBasicFabricEvent() (BasicFabricEvent, bool) {
26618	return &ne, true
26619}
26620
26621// NodeHealth information about the health of a Service Fabric node.
26622type NodeHealth struct {
26623	autorest.Response `json:"-"`
26624	// Name - Name of the node whose health information is described by this object.
26625	Name *string `json:"Name,omitempty"`
26626	// AggregatedHealthState - The HealthState representing the aggregated health state of the entity computed by Health Manager.
26627	// The health evaluation of the entity reflects all events reported on the entity and its children (if any).
26628	// The aggregation is done by applying the desired health policy. Possible values include: 'HealthStateInvalid', 'HealthStateOk', 'HealthStateWarning', 'HealthStateError', 'HealthStateUnknown'
26629	AggregatedHealthState HealthState `json:"AggregatedHealthState,omitempty"`
26630	// HealthEvents - The list of health events reported on the entity.
26631	HealthEvents *[]HealthEvent `json:"HealthEvents,omitempty"`
26632	// UnhealthyEvaluations - The unhealthy evaluations that show why the current aggregated health state was returned by Health Manager.
26633	UnhealthyEvaluations *[]HealthEvaluationWrapper `json:"UnhealthyEvaluations,omitempty"`
26634	// HealthStatistics - Shows the health statistics for all children types of the queried entity.
26635	HealthStatistics *HealthStatistics `json:"HealthStatistics,omitempty"`
26636}
26637
26638// NodeHealthEvaluation represents health evaluation for a node, containing information about the data and
26639// the algorithm used by health store to evaluate health. The evaluation is returned only when the
26640// aggregated health state is either Error or Warning.
26641type NodeHealthEvaluation struct {
26642	// NodeName - The name of a Service Fabric node.
26643	NodeName *string `json:"NodeName,omitempty"`
26644	// 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.
26645	UnhealthyEvaluations *[]HealthEvaluationWrapper `json:"UnhealthyEvaluations,omitempty"`
26646	// 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'
26647	AggregatedHealthState HealthState `json:"AggregatedHealthState,omitempty"`
26648	// Description - Description of the health evaluation, which represents a summary of the evaluation process.
26649	Description *string `json:"Description,omitempty"`
26650	// 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'
26651	Kind Kind `json:"Kind,omitempty"`
26652}
26653
26654// MarshalJSON is the custom marshaler for NodeHealthEvaluation.
26655func (nhe NodeHealthEvaluation) MarshalJSON() ([]byte, error) {
26656	nhe.Kind = KindNode
26657	objectMap := make(map[string]interface{})
26658	if nhe.NodeName != nil {
26659		objectMap["NodeName"] = nhe.NodeName
26660	}
26661	if nhe.UnhealthyEvaluations != nil {
26662		objectMap["UnhealthyEvaluations"] = nhe.UnhealthyEvaluations
26663	}
26664	if nhe.AggregatedHealthState != "" {
26665		objectMap["AggregatedHealthState"] = nhe.AggregatedHealthState
26666	}
26667	if nhe.Description != nil {
26668		objectMap["Description"] = nhe.Description
26669	}
26670	if nhe.Kind != "" {
26671		objectMap["Kind"] = nhe.Kind
26672	}
26673	return json.Marshal(objectMap)
26674}
26675
26676// AsApplicationHealthEvaluation is the BasicHealthEvaluation implementation for NodeHealthEvaluation.
26677func (nhe NodeHealthEvaluation) AsApplicationHealthEvaluation() (*ApplicationHealthEvaluation, bool) {
26678	return nil, false
26679}
26680
26681// AsApplicationsHealthEvaluation is the BasicHealthEvaluation implementation for NodeHealthEvaluation.
26682func (nhe NodeHealthEvaluation) AsApplicationsHealthEvaluation() (*ApplicationsHealthEvaluation, bool) {
26683	return nil, false
26684}
26685
26686// AsApplicationTypeApplicationsHealthEvaluation is the BasicHealthEvaluation implementation for NodeHealthEvaluation.
26687func (nhe NodeHealthEvaluation) AsApplicationTypeApplicationsHealthEvaluation() (*ApplicationTypeApplicationsHealthEvaluation, bool) {
26688	return nil, false
26689}
26690
26691// AsDeltaNodesCheckHealthEvaluation is the BasicHealthEvaluation implementation for NodeHealthEvaluation.
26692func (nhe NodeHealthEvaluation) AsDeltaNodesCheckHealthEvaluation() (*DeltaNodesCheckHealthEvaluation, bool) {
26693	return nil, false
26694}
26695
26696// AsDeployedApplicationHealthEvaluation is the BasicHealthEvaluation implementation for NodeHealthEvaluation.
26697func (nhe NodeHealthEvaluation) AsDeployedApplicationHealthEvaluation() (*DeployedApplicationHealthEvaluation, bool) {
26698	return nil, false
26699}
26700
26701// AsDeployedApplicationsHealthEvaluation is the BasicHealthEvaluation implementation for NodeHealthEvaluation.
26702func (nhe NodeHealthEvaluation) AsDeployedApplicationsHealthEvaluation() (*DeployedApplicationsHealthEvaluation, bool) {
26703	return nil, false
26704}
26705
26706// AsDeployedServicePackageHealthEvaluation is the BasicHealthEvaluation implementation for NodeHealthEvaluation.
26707func (nhe NodeHealthEvaluation) AsDeployedServicePackageHealthEvaluation() (*DeployedServicePackageHealthEvaluation, bool) {
26708	return nil, false
26709}
26710
26711// AsDeployedServicePackagesHealthEvaluation is the BasicHealthEvaluation implementation for NodeHealthEvaluation.
26712func (nhe NodeHealthEvaluation) AsDeployedServicePackagesHealthEvaluation() (*DeployedServicePackagesHealthEvaluation, bool) {
26713	return nil, false
26714}
26715
26716// AsEventHealthEvaluation is the BasicHealthEvaluation implementation for NodeHealthEvaluation.
26717func (nhe NodeHealthEvaluation) AsEventHealthEvaluation() (*EventHealthEvaluation, bool) {
26718	return nil, false
26719}
26720
26721// AsNodeHealthEvaluation is the BasicHealthEvaluation implementation for NodeHealthEvaluation.
26722func (nhe NodeHealthEvaluation) AsNodeHealthEvaluation() (*NodeHealthEvaluation, bool) {
26723	return &nhe, true
26724}
26725
26726// AsNodesHealthEvaluation is the BasicHealthEvaluation implementation for NodeHealthEvaluation.
26727func (nhe NodeHealthEvaluation) AsNodesHealthEvaluation() (*NodesHealthEvaluation, bool) {
26728	return nil, false
26729}
26730
26731// AsPartitionHealthEvaluation is the BasicHealthEvaluation implementation for NodeHealthEvaluation.
26732func (nhe NodeHealthEvaluation) AsPartitionHealthEvaluation() (*PartitionHealthEvaluation, bool) {
26733	return nil, false
26734}
26735
26736// AsPartitionsHealthEvaluation is the BasicHealthEvaluation implementation for NodeHealthEvaluation.
26737func (nhe NodeHealthEvaluation) AsPartitionsHealthEvaluation() (*PartitionsHealthEvaluation, bool) {
26738	return nil, false
26739}
26740
26741// AsReplicaHealthEvaluation is the BasicHealthEvaluation implementation for NodeHealthEvaluation.
26742func (nhe NodeHealthEvaluation) AsReplicaHealthEvaluation() (*ReplicaHealthEvaluation, bool) {
26743	return nil, false
26744}
26745
26746// AsReplicasHealthEvaluation is the BasicHealthEvaluation implementation for NodeHealthEvaluation.
26747func (nhe NodeHealthEvaluation) AsReplicasHealthEvaluation() (*ReplicasHealthEvaluation, bool) {
26748	return nil, false
26749}
26750
26751// AsServiceHealthEvaluation is the BasicHealthEvaluation implementation for NodeHealthEvaluation.
26752func (nhe NodeHealthEvaluation) AsServiceHealthEvaluation() (*ServiceHealthEvaluation, bool) {
26753	return nil, false
26754}
26755
26756// AsServicesHealthEvaluation is the BasicHealthEvaluation implementation for NodeHealthEvaluation.
26757func (nhe NodeHealthEvaluation) AsServicesHealthEvaluation() (*ServicesHealthEvaluation, bool) {
26758	return nil, false
26759}
26760
26761// AsSystemApplicationHealthEvaluation is the BasicHealthEvaluation implementation for NodeHealthEvaluation.
26762func (nhe NodeHealthEvaluation) AsSystemApplicationHealthEvaluation() (*SystemApplicationHealthEvaluation, bool) {
26763	return nil, false
26764}
26765
26766// AsUpgradeDomainDeltaNodesCheckHealthEvaluation is the BasicHealthEvaluation implementation for NodeHealthEvaluation.
26767func (nhe NodeHealthEvaluation) AsUpgradeDomainDeltaNodesCheckHealthEvaluation() (*UpgradeDomainDeltaNodesCheckHealthEvaluation, bool) {
26768	return nil, false
26769}
26770
26771// AsUpgradeDomainNodesHealthEvaluation is the BasicHealthEvaluation implementation for NodeHealthEvaluation.
26772func (nhe NodeHealthEvaluation) AsUpgradeDomainNodesHealthEvaluation() (*UpgradeDomainNodesHealthEvaluation, bool) {
26773	return nil, false
26774}
26775
26776// AsHealthEvaluation is the BasicHealthEvaluation implementation for NodeHealthEvaluation.
26777func (nhe NodeHealthEvaluation) AsHealthEvaluation() (*HealthEvaluation, bool) {
26778	return nil, false
26779}
26780
26781// AsBasicHealthEvaluation is the BasicHealthEvaluation implementation for NodeHealthEvaluation.
26782func (nhe NodeHealthEvaluation) AsBasicHealthEvaluation() (BasicHealthEvaluation, bool) {
26783	return &nhe, true
26784}
26785
26786// NodeHealthReportExpiredEvent node Health Report Expired event.
26787type NodeHealthReportExpiredEvent struct {
26788	// NodeInstanceID - Id of Node instance.
26789	NodeInstanceID *int64 `json:"NodeInstanceId,omitempty"`
26790	// SourceID - Id of report source.
26791	SourceID *string `json:"SourceId,omitempty"`
26792	// Property - Describes the property.
26793	Property *string `json:"Property,omitempty"`
26794	// HealthState - Describes the property health state.
26795	HealthState *string `json:"HealthState,omitempty"`
26796	// TimeToLiveMs - Time to live in milli-seconds.
26797	TimeToLiveMs *int64 `json:"TimeToLiveMs,omitempty"`
26798	// SequenceNumber - Sequence number of report.
26799	SequenceNumber *int64 `json:"SequenceNumber,omitempty"`
26800	// Description - Description of report.
26801	Description *string `json:"Description,omitempty"`
26802	// RemoveWhenExpired - Indicates the removal when it expires.
26803	RemoveWhenExpired *bool `json:"RemoveWhenExpired,omitempty"`
26804	// SourceUtcTimestamp - Source time.
26805	SourceUtcTimestamp *date.Time `json:"SourceUtcTimestamp,omitempty"`
26806	// NodeName - The name of a Service Fabric node.
26807	NodeName *string `json:"NodeName,omitempty"`
26808	// EventInstanceID - The identifier for the FabricEvent instance.
26809	EventInstanceID *uuid.UUID `json:"EventInstanceId,omitempty"`
26810	// Category - The category of event.
26811	Category *string `json:"Category,omitempty"`
26812	// TimeStamp - The time event was logged.
26813	TimeStamp *date.Time `json:"TimeStamp,omitempty"`
26814	// HasCorrelatedEvents - Shows there is existing related events available.
26815	HasCorrelatedEvents *bool `json:"HasCorrelatedEvents,omitempty"`
26816	// 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'
26817	Kind KindBasicFabricEvent `json:"Kind,omitempty"`
26818}
26819
26820// MarshalJSON is the custom marshaler for NodeHealthReportExpiredEvent.
26821func (nhree NodeHealthReportExpiredEvent) MarshalJSON() ([]byte, error) {
26822	nhree.Kind = KindNodeHealthReportExpired
26823	objectMap := make(map[string]interface{})
26824	if nhree.NodeInstanceID != nil {
26825		objectMap["NodeInstanceId"] = nhree.NodeInstanceID
26826	}
26827	if nhree.SourceID != nil {
26828		objectMap["SourceId"] = nhree.SourceID
26829	}
26830	if nhree.Property != nil {
26831		objectMap["Property"] = nhree.Property
26832	}
26833	if nhree.HealthState != nil {
26834		objectMap["HealthState"] = nhree.HealthState
26835	}
26836	if nhree.TimeToLiveMs != nil {
26837		objectMap["TimeToLiveMs"] = nhree.TimeToLiveMs
26838	}
26839	if nhree.SequenceNumber != nil {
26840		objectMap["SequenceNumber"] = nhree.SequenceNumber
26841	}
26842	if nhree.Description != nil {
26843		objectMap["Description"] = nhree.Description
26844	}
26845	if nhree.RemoveWhenExpired != nil {
26846		objectMap["RemoveWhenExpired"] = nhree.RemoveWhenExpired
26847	}
26848	if nhree.SourceUtcTimestamp != nil {
26849		objectMap["SourceUtcTimestamp"] = nhree.SourceUtcTimestamp
26850	}
26851	if nhree.NodeName != nil {
26852		objectMap["NodeName"] = nhree.NodeName
26853	}
26854	if nhree.EventInstanceID != nil {
26855		objectMap["EventInstanceId"] = nhree.EventInstanceID
26856	}
26857	if nhree.Category != nil {
26858		objectMap["Category"] = nhree.Category
26859	}
26860	if nhree.TimeStamp != nil {
26861		objectMap["TimeStamp"] = nhree.TimeStamp
26862	}
26863	if nhree.HasCorrelatedEvents != nil {
26864		objectMap["HasCorrelatedEvents"] = nhree.HasCorrelatedEvents
26865	}
26866	if nhree.Kind != "" {
26867		objectMap["Kind"] = nhree.Kind
26868	}
26869	return json.Marshal(objectMap)
26870}
26871
26872// AsApplicationEvent is the BasicFabricEvent implementation for NodeHealthReportExpiredEvent.
26873func (nhree NodeHealthReportExpiredEvent) AsApplicationEvent() (*ApplicationEvent, bool) {
26874	return nil, false
26875}
26876
26877// AsBasicApplicationEvent is the BasicFabricEvent implementation for NodeHealthReportExpiredEvent.
26878func (nhree NodeHealthReportExpiredEvent) AsBasicApplicationEvent() (BasicApplicationEvent, bool) {
26879	return nil, false
26880}
26881
26882// AsClusterEvent is the BasicFabricEvent implementation for NodeHealthReportExpiredEvent.
26883func (nhree NodeHealthReportExpiredEvent) AsClusterEvent() (*ClusterEvent, bool) {
26884	return nil, false
26885}
26886
26887// AsBasicClusterEvent is the BasicFabricEvent implementation for NodeHealthReportExpiredEvent.
26888func (nhree NodeHealthReportExpiredEvent) AsBasicClusterEvent() (BasicClusterEvent, bool) {
26889	return nil, false
26890}
26891
26892// AsContainerInstanceEvent is the BasicFabricEvent implementation for NodeHealthReportExpiredEvent.
26893func (nhree NodeHealthReportExpiredEvent) AsContainerInstanceEvent() (*ContainerInstanceEvent, bool) {
26894	return nil, false
26895}
26896
26897// AsNodeEvent is the BasicFabricEvent implementation for NodeHealthReportExpiredEvent.
26898func (nhree NodeHealthReportExpiredEvent) AsNodeEvent() (*NodeEvent, bool) {
26899	return nil, false
26900}
26901
26902// AsBasicNodeEvent is the BasicFabricEvent implementation for NodeHealthReportExpiredEvent.
26903func (nhree NodeHealthReportExpiredEvent) AsBasicNodeEvent() (BasicNodeEvent, bool) {
26904	return &nhree, true
26905}
26906
26907// AsPartitionAnalysisEvent is the BasicFabricEvent implementation for NodeHealthReportExpiredEvent.
26908func (nhree NodeHealthReportExpiredEvent) AsPartitionAnalysisEvent() (*PartitionAnalysisEvent, bool) {
26909	return nil, false
26910}
26911
26912// AsBasicPartitionAnalysisEvent is the BasicFabricEvent implementation for NodeHealthReportExpiredEvent.
26913func (nhree NodeHealthReportExpiredEvent) AsBasicPartitionAnalysisEvent() (BasicPartitionAnalysisEvent, bool) {
26914	return nil, false
26915}
26916
26917// AsPartitionEvent is the BasicFabricEvent implementation for NodeHealthReportExpiredEvent.
26918func (nhree NodeHealthReportExpiredEvent) AsPartitionEvent() (*PartitionEvent, bool) {
26919	return nil, false
26920}
26921
26922// AsBasicPartitionEvent is the BasicFabricEvent implementation for NodeHealthReportExpiredEvent.
26923func (nhree NodeHealthReportExpiredEvent) AsBasicPartitionEvent() (BasicPartitionEvent, bool) {
26924	return nil, false
26925}
26926
26927// AsReplicaEvent is the BasicFabricEvent implementation for NodeHealthReportExpiredEvent.
26928func (nhree NodeHealthReportExpiredEvent) AsReplicaEvent() (*ReplicaEvent, bool) {
26929	return nil, false
26930}
26931
26932// AsBasicReplicaEvent is the BasicFabricEvent implementation for NodeHealthReportExpiredEvent.
26933func (nhree NodeHealthReportExpiredEvent) AsBasicReplicaEvent() (BasicReplicaEvent, bool) {
26934	return nil, false
26935}
26936
26937// AsServiceEvent is the BasicFabricEvent implementation for NodeHealthReportExpiredEvent.
26938func (nhree NodeHealthReportExpiredEvent) AsServiceEvent() (*ServiceEvent, bool) {
26939	return nil, false
26940}
26941
26942// AsBasicServiceEvent is the BasicFabricEvent implementation for NodeHealthReportExpiredEvent.
26943func (nhree NodeHealthReportExpiredEvent) AsBasicServiceEvent() (BasicServiceEvent, bool) {
26944	return nil, false
26945}
26946
26947// AsApplicationCreatedEvent is the BasicFabricEvent implementation for NodeHealthReportExpiredEvent.
26948func (nhree NodeHealthReportExpiredEvent) AsApplicationCreatedEvent() (*ApplicationCreatedEvent, bool) {
26949	return nil, false
26950}
26951
26952// AsApplicationDeletedEvent is the BasicFabricEvent implementation for NodeHealthReportExpiredEvent.
26953func (nhree NodeHealthReportExpiredEvent) AsApplicationDeletedEvent() (*ApplicationDeletedEvent, bool) {
26954	return nil, false
26955}
26956
26957// AsApplicationNewHealthReportEvent is the BasicFabricEvent implementation for NodeHealthReportExpiredEvent.
26958func (nhree NodeHealthReportExpiredEvent) AsApplicationNewHealthReportEvent() (*ApplicationNewHealthReportEvent, bool) {
26959	return nil, false
26960}
26961
26962// AsApplicationHealthReportExpiredEvent is the BasicFabricEvent implementation for NodeHealthReportExpiredEvent.
26963func (nhree NodeHealthReportExpiredEvent) AsApplicationHealthReportExpiredEvent() (*ApplicationHealthReportExpiredEvent, bool) {
26964	return nil, false
26965}
26966
26967// AsApplicationUpgradeCompletedEvent is the BasicFabricEvent implementation for NodeHealthReportExpiredEvent.
26968func (nhree NodeHealthReportExpiredEvent) AsApplicationUpgradeCompletedEvent() (*ApplicationUpgradeCompletedEvent, bool) {
26969	return nil, false
26970}
26971
26972// AsApplicationUpgradeDomainCompletedEvent is the BasicFabricEvent implementation for NodeHealthReportExpiredEvent.
26973func (nhree NodeHealthReportExpiredEvent) AsApplicationUpgradeDomainCompletedEvent() (*ApplicationUpgradeDomainCompletedEvent, bool) {
26974	return nil, false
26975}
26976
26977// AsApplicationUpgradeRollbackCompletedEvent is the BasicFabricEvent implementation for NodeHealthReportExpiredEvent.
26978func (nhree NodeHealthReportExpiredEvent) AsApplicationUpgradeRollbackCompletedEvent() (*ApplicationUpgradeRollbackCompletedEvent, bool) {
26979	return nil, false
26980}
26981
26982// AsApplicationUpgradeRollbackStartedEvent is the BasicFabricEvent implementation for NodeHealthReportExpiredEvent.
26983func (nhree NodeHealthReportExpiredEvent) AsApplicationUpgradeRollbackStartedEvent() (*ApplicationUpgradeRollbackStartedEvent, bool) {
26984	return nil, false
26985}
26986
26987// AsApplicationUpgradeStartedEvent is the BasicFabricEvent implementation for NodeHealthReportExpiredEvent.
26988func (nhree NodeHealthReportExpiredEvent) AsApplicationUpgradeStartedEvent() (*ApplicationUpgradeStartedEvent, bool) {
26989	return nil, false
26990}
26991
26992// AsDeployedApplicationNewHealthReportEvent is the BasicFabricEvent implementation for NodeHealthReportExpiredEvent.
26993func (nhree NodeHealthReportExpiredEvent) AsDeployedApplicationNewHealthReportEvent() (*DeployedApplicationNewHealthReportEvent, bool) {
26994	return nil, false
26995}
26996
26997// AsDeployedApplicationHealthReportExpiredEvent is the BasicFabricEvent implementation for NodeHealthReportExpiredEvent.
26998func (nhree NodeHealthReportExpiredEvent) AsDeployedApplicationHealthReportExpiredEvent() (*DeployedApplicationHealthReportExpiredEvent, bool) {
26999	return nil, false
27000}
27001
27002// AsApplicationProcessExitedEvent is the BasicFabricEvent implementation for NodeHealthReportExpiredEvent.
27003func (nhree NodeHealthReportExpiredEvent) AsApplicationProcessExitedEvent() (*ApplicationProcessExitedEvent, bool) {
27004	return nil, false
27005}
27006
27007// AsApplicationContainerInstanceExitedEvent is the BasicFabricEvent implementation for NodeHealthReportExpiredEvent.
27008func (nhree NodeHealthReportExpiredEvent) AsApplicationContainerInstanceExitedEvent() (*ApplicationContainerInstanceExitedEvent, bool) {
27009	return nil, false
27010}
27011
27012// AsNodeAbortedEvent is the BasicFabricEvent implementation for NodeHealthReportExpiredEvent.
27013func (nhree NodeHealthReportExpiredEvent) AsNodeAbortedEvent() (*NodeAbortedEvent, bool) {
27014	return nil, false
27015}
27016
27017// AsNodeAddedToClusterEvent is the BasicFabricEvent implementation for NodeHealthReportExpiredEvent.
27018func (nhree NodeHealthReportExpiredEvent) AsNodeAddedToClusterEvent() (*NodeAddedToClusterEvent, bool) {
27019	return nil, false
27020}
27021
27022// AsNodeClosedEvent is the BasicFabricEvent implementation for NodeHealthReportExpiredEvent.
27023func (nhree NodeHealthReportExpiredEvent) AsNodeClosedEvent() (*NodeClosedEvent, bool) {
27024	return nil, false
27025}
27026
27027// AsNodeDeactivateCompletedEvent is the BasicFabricEvent implementation for NodeHealthReportExpiredEvent.
27028func (nhree NodeHealthReportExpiredEvent) AsNodeDeactivateCompletedEvent() (*NodeDeactivateCompletedEvent, bool) {
27029	return nil, false
27030}
27031
27032// AsNodeDeactivateStartedEvent is the BasicFabricEvent implementation for NodeHealthReportExpiredEvent.
27033func (nhree NodeHealthReportExpiredEvent) AsNodeDeactivateStartedEvent() (*NodeDeactivateStartedEvent, bool) {
27034	return nil, false
27035}
27036
27037// AsNodeDownEvent is the BasicFabricEvent implementation for NodeHealthReportExpiredEvent.
27038func (nhree NodeHealthReportExpiredEvent) AsNodeDownEvent() (*NodeDownEvent, bool) {
27039	return nil, false
27040}
27041
27042// AsNodeNewHealthReportEvent is the BasicFabricEvent implementation for NodeHealthReportExpiredEvent.
27043func (nhree NodeHealthReportExpiredEvent) AsNodeNewHealthReportEvent() (*NodeNewHealthReportEvent, bool) {
27044	return nil, false
27045}
27046
27047// AsNodeHealthReportExpiredEvent is the BasicFabricEvent implementation for NodeHealthReportExpiredEvent.
27048func (nhree NodeHealthReportExpiredEvent) AsNodeHealthReportExpiredEvent() (*NodeHealthReportExpiredEvent, bool) {
27049	return &nhree, true
27050}
27051
27052// AsNodeOpenSucceededEvent is the BasicFabricEvent implementation for NodeHealthReportExpiredEvent.
27053func (nhree NodeHealthReportExpiredEvent) AsNodeOpenSucceededEvent() (*NodeOpenSucceededEvent, bool) {
27054	return nil, false
27055}
27056
27057// AsNodeOpenFailedEvent is the BasicFabricEvent implementation for NodeHealthReportExpiredEvent.
27058func (nhree NodeHealthReportExpiredEvent) AsNodeOpenFailedEvent() (*NodeOpenFailedEvent, bool) {
27059	return nil, false
27060}
27061
27062// AsNodeRemovedFromClusterEvent is the BasicFabricEvent implementation for NodeHealthReportExpiredEvent.
27063func (nhree NodeHealthReportExpiredEvent) AsNodeRemovedFromClusterEvent() (*NodeRemovedFromClusterEvent, bool) {
27064	return nil, false
27065}
27066
27067// AsNodeUpEvent is the BasicFabricEvent implementation for NodeHealthReportExpiredEvent.
27068func (nhree NodeHealthReportExpiredEvent) AsNodeUpEvent() (*NodeUpEvent, bool) {
27069	return nil, false
27070}
27071
27072// AsPartitionNewHealthReportEvent is the BasicFabricEvent implementation for NodeHealthReportExpiredEvent.
27073func (nhree NodeHealthReportExpiredEvent) AsPartitionNewHealthReportEvent() (*PartitionNewHealthReportEvent, bool) {
27074	return nil, false
27075}
27076
27077// AsPartitionHealthReportExpiredEvent is the BasicFabricEvent implementation for NodeHealthReportExpiredEvent.
27078func (nhree NodeHealthReportExpiredEvent) AsPartitionHealthReportExpiredEvent() (*PartitionHealthReportExpiredEvent, bool) {
27079	return nil, false
27080}
27081
27082// AsPartitionReconfiguredEvent is the BasicFabricEvent implementation for NodeHealthReportExpiredEvent.
27083func (nhree NodeHealthReportExpiredEvent) AsPartitionReconfiguredEvent() (*PartitionReconfiguredEvent, bool) {
27084	return nil, false
27085}
27086
27087// AsPartitionPrimaryMoveAnalysisEvent is the BasicFabricEvent implementation for NodeHealthReportExpiredEvent.
27088func (nhree NodeHealthReportExpiredEvent) AsPartitionPrimaryMoveAnalysisEvent() (*PartitionPrimaryMoveAnalysisEvent, bool) {
27089	return nil, false
27090}
27091
27092// AsServiceCreatedEvent is the BasicFabricEvent implementation for NodeHealthReportExpiredEvent.
27093func (nhree NodeHealthReportExpiredEvent) AsServiceCreatedEvent() (*ServiceCreatedEvent, bool) {
27094	return nil, false
27095}
27096
27097// AsServiceDeletedEvent is the BasicFabricEvent implementation for NodeHealthReportExpiredEvent.
27098func (nhree NodeHealthReportExpiredEvent) AsServiceDeletedEvent() (*ServiceDeletedEvent, bool) {
27099	return nil, false
27100}
27101
27102// AsServiceNewHealthReportEvent is the BasicFabricEvent implementation for NodeHealthReportExpiredEvent.
27103func (nhree NodeHealthReportExpiredEvent) AsServiceNewHealthReportEvent() (*ServiceNewHealthReportEvent, bool) {
27104	return nil, false
27105}
27106
27107// AsServiceHealthReportExpiredEvent is the BasicFabricEvent implementation for NodeHealthReportExpiredEvent.
27108func (nhree NodeHealthReportExpiredEvent) AsServiceHealthReportExpiredEvent() (*ServiceHealthReportExpiredEvent, bool) {
27109	return nil, false
27110}
27111
27112// AsDeployedServicePackageNewHealthReportEvent is the BasicFabricEvent implementation for NodeHealthReportExpiredEvent.
27113func (nhree NodeHealthReportExpiredEvent) AsDeployedServicePackageNewHealthReportEvent() (*DeployedServicePackageNewHealthReportEvent, bool) {
27114	return nil, false
27115}
27116
27117// AsDeployedServicePackageHealthReportExpiredEvent is the BasicFabricEvent implementation for NodeHealthReportExpiredEvent.
27118func (nhree NodeHealthReportExpiredEvent) AsDeployedServicePackageHealthReportExpiredEvent() (*DeployedServicePackageHealthReportExpiredEvent, bool) {
27119	return nil, false
27120}
27121
27122// AsStatefulReplicaNewHealthReportEvent is the BasicFabricEvent implementation for NodeHealthReportExpiredEvent.
27123func (nhree NodeHealthReportExpiredEvent) AsStatefulReplicaNewHealthReportEvent() (*StatefulReplicaNewHealthReportEvent, bool) {
27124	return nil, false
27125}
27126
27127// AsStatefulReplicaHealthReportExpiredEvent is the BasicFabricEvent implementation for NodeHealthReportExpiredEvent.
27128func (nhree NodeHealthReportExpiredEvent) AsStatefulReplicaHealthReportExpiredEvent() (*StatefulReplicaHealthReportExpiredEvent, bool) {
27129	return nil, false
27130}
27131
27132// AsStatelessReplicaNewHealthReportEvent is the BasicFabricEvent implementation for NodeHealthReportExpiredEvent.
27133func (nhree NodeHealthReportExpiredEvent) AsStatelessReplicaNewHealthReportEvent() (*StatelessReplicaNewHealthReportEvent, bool) {
27134	return nil, false
27135}
27136
27137// AsStatelessReplicaHealthReportExpiredEvent is the BasicFabricEvent implementation for NodeHealthReportExpiredEvent.
27138func (nhree NodeHealthReportExpiredEvent) AsStatelessReplicaHealthReportExpiredEvent() (*StatelessReplicaHealthReportExpiredEvent, bool) {
27139	return nil, false
27140}
27141
27142// AsClusterNewHealthReportEvent is the BasicFabricEvent implementation for NodeHealthReportExpiredEvent.
27143func (nhree NodeHealthReportExpiredEvent) AsClusterNewHealthReportEvent() (*ClusterNewHealthReportEvent, bool) {
27144	return nil, false
27145}
27146
27147// AsClusterHealthReportExpiredEvent is the BasicFabricEvent implementation for NodeHealthReportExpiredEvent.
27148func (nhree NodeHealthReportExpiredEvent) AsClusterHealthReportExpiredEvent() (*ClusterHealthReportExpiredEvent, bool) {
27149	return nil, false
27150}
27151
27152// AsClusterUpgradeCompletedEvent is the BasicFabricEvent implementation for NodeHealthReportExpiredEvent.
27153func (nhree NodeHealthReportExpiredEvent) AsClusterUpgradeCompletedEvent() (*ClusterUpgradeCompletedEvent, bool) {
27154	return nil, false
27155}
27156
27157// AsClusterUpgradeDomainCompletedEvent is the BasicFabricEvent implementation for NodeHealthReportExpiredEvent.
27158func (nhree NodeHealthReportExpiredEvent) AsClusterUpgradeDomainCompletedEvent() (*ClusterUpgradeDomainCompletedEvent, bool) {
27159	return nil, false
27160}
27161
27162// AsClusterUpgradeRollbackCompletedEvent is the BasicFabricEvent implementation for NodeHealthReportExpiredEvent.
27163func (nhree NodeHealthReportExpiredEvent) AsClusterUpgradeRollbackCompletedEvent() (*ClusterUpgradeRollbackCompletedEvent, bool) {
27164	return nil, false
27165}
27166
27167// AsClusterUpgradeRollbackStartedEvent is the BasicFabricEvent implementation for NodeHealthReportExpiredEvent.
27168func (nhree NodeHealthReportExpiredEvent) AsClusterUpgradeRollbackStartedEvent() (*ClusterUpgradeRollbackStartedEvent, bool) {
27169	return nil, false
27170}
27171
27172// AsClusterUpgradeStartedEvent is the BasicFabricEvent implementation for NodeHealthReportExpiredEvent.
27173func (nhree NodeHealthReportExpiredEvent) AsClusterUpgradeStartedEvent() (*ClusterUpgradeStartedEvent, bool) {
27174	return nil, false
27175}
27176
27177// AsChaosStoppedEvent is the BasicFabricEvent implementation for NodeHealthReportExpiredEvent.
27178func (nhree NodeHealthReportExpiredEvent) AsChaosStoppedEvent() (*ChaosStoppedEvent, bool) {
27179	return nil, false
27180}
27181
27182// AsChaosStartedEvent is the BasicFabricEvent implementation for NodeHealthReportExpiredEvent.
27183func (nhree NodeHealthReportExpiredEvent) AsChaosStartedEvent() (*ChaosStartedEvent, bool) {
27184	return nil, false
27185}
27186
27187// AsChaosCodePackageRestartScheduledEvent is the BasicFabricEvent implementation for NodeHealthReportExpiredEvent.
27188func (nhree NodeHealthReportExpiredEvent) AsChaosCodePackageRestartScheduledEvent() (*ChaosCodePackageRestartScheduledEvent, bool) {
27189	return nil, false
27190}
27191
27192// AsChaosReplicaRemovalScheduledEvent is the BasicFabricEvent implementation for NodeHealthReportExpiredEvent.
27193func (nhree NodeHealthReportExpiredEvent) AsChaosReplicaRemovalScheduledEvent() (*ChaosReplicaRemovalScheduledEvent, bool) {
27194	return nil, false
27195}
27196
27197// AsChaosPartitionSecondaryMoveScheduledEvent is the BasicFabricEvent implementation for NodeHealthReportExpiredEvent.
27198func (nhree NodeHealthReportExpiredEvent) AsChaosPartitionSecondaryMoveScheduledEvent() (*ChaosPartitionSecondaryMoveScheduledEvent, bool) {
27199	return nil, false
27200}
27201
27202// AsChaosPartitionPrimaryMoveScheduledEvent is the BasicFabricEvent implementation for NodeHealthReportExpiredEvent.
27203func (nhree NodeHealthReportExpiredEvent) AsChaosPartitionPrimaryMoveScheduledEvent() (*ChaosPartitionPrimaryMoveScheduledEvent, bool) {
27204	return nil, false
27205}
27206
27207// AsChaosReplicaRestartScheduledEvent is the BasicFabricEvent implementation for NodeHealthReportExpiredEvent.
27208func (nhree NodeHealthReportExpiredEvent) AsChaosReplicaRestartScheduledEvent() (*ChaosReplicaRestartScheduledEvent, bool) {
27209	return nil, false
27210}
27211
27212// AsChaosNodeRestartScheduledEvent is the BasicFabricEvent implementation for NodeHealthReportExpiredEvent.
27213func (nhree NodeHealthReportExpiredEvent) AsChaosNodeRestartScheduledEvent() (*ChaosNodeRestartScheduledEvent, bool) {
27214	return nil, false
27215}
27216
27217// AsFabricEvent is the BasicFabricEvent implementation for NodeHealthReportExpiredEvent.
27218func (nhree NodeHealthReportExpiredEvent) AsFabricEvent() (*FabricEvent, bool) {
27219	return nil, false
27220}
27221
27222// AsBasicFabricEvent is the BasicFabricEvent implementation for NodeHealthReportExpiredEvent.
27223func (nhree NodeHealthReportExpiredEvent) AsBasicFabricEvent() (BasicFabricEvent, bool) {
27224	return &nhree, true
27225}
27226
27227// NodeHealthState represents the health state of a node, which contains the node identifier and its
27228// aggregated health state.
27229type NodeHealthState struct {
27230	// Name - The name of a Service Fabric node.
27231	Name *string `json:"Name,omitempty"`
27232	// ID - An internal ID used by Service Fabric to uniquely identify a node. Node Id is deterministically generated from node name.
27233	ID *NodeID `json:"Id,omitempty"`
27234	// 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'
27235	AggregatedHealthState HealthState `json:"AggregatedHealthState,omitempty"`
27236}
27237
27238// NodeHealthStateChunk represents the health state chunk of a node, which contains the node name and its
27239// aggregated health state.
27240type NodeHealthStateChunk struct {
27241	// NodeName - The name of a Service Fabric node.
27242	NodeName *string `json:"NodeName,omitempty"`
27243	// 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'
27244	HealthState HealthState `json:"HealthState,omitempty"`
27245}
27246
27247// NodeHealthStateChunkList the list of node health state chunks in the cluster that respect the input
27248// filters in the chunk query. Returned by get cluster health state chunks query.
27249type NodeHealthStateChunkList struct {
27250	// Items - The list of node health state chunks that respect the input filters in the chunk query.
27251	Items *[]NodeHealthStateChunk `json:"Items,omitempty"`
27252	// TotalCount - Total number of entity health state objects that match the specified filters from the cluster health chunk query description.
27253	TotalCount *int64 `json:"TotalCount,omitempty"`
27254}
27255
27256// NodeHealthStateFilter defines matching criteria to determine whether a node should be included in the
27257// returned cluster health chunk.
27258// One filter can match zero, one or multiple nodes, depending on its properties.
27259// Can be specified in the cluster health chunk query description.
27260type NodeHealthStateFilter struct {
27261	// NodeNameFilter - Name of the node that matches the filter. The filter is applied only to the specified node, if it exists.
27262	// If the node doesn't exist, no node is returned in the cluster health chunk based on this filter.
27263	// If the node exists, it is included in the cluster health chunk if the health state matches the other filter properties.
27264	// 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.
27265	NodeNameFilter *string `json:"NodeNameFilter,omitempty"`
27266	// HealthStateFilter - The filter for the health state of the nodes. It allows selecting nodes if they match the desired health states.
27267	// 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.
27268	// 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.
27269	// The state values are flag-based enumeration, so the value could be a combination of these values obtained using bitwise 'OR' operator.
27270	// For example, if the provided value is 6, it matches nodes with HealthState value of OK (2) and Warning (4).
27271	// - Default - Default value. Matches any HealthState. The value is zero.
27272	// - 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.
27273	// - Ok - Filter that matches input with HealthState value Ok. The value is 2.
27274	// - Warning - Filter that matches input with HealthState value Warning. The value is 4.
27275	// - Error - Filter that matches input with HealthState value Error. The value is 8.
27276	// - All - Filter that matches input with any HealthState value. The value is 65535.
27277	HealthStateFilter *int32 `json:"HealthStateFilter,omitempty"`
27278}
27279
27280// NodeID an internal ID used by Service Fabric to uniquely identify a node. Node Id is deterministically
27281// generated from node name.
27282type NodeID struct {
27283	// ID - Value of the node Id. This is a 128 bit integer.
27284	ID *string `json:"Id,omitempty"`
27285}
27286
27287// NodeImpact describes the expected impact of a repair to a particular node.
27288//
27289// This type supports the Service Fabric platform; it is not meant to be used directly from your code.
27290type NodeImpact struct {
27291	// NodeName - The name of the impacted node.
27292	NodeName *string `json:"NodeName,omitempty"`
27293	// ImpactLevel - The level of impact expected. Possible values include: 'ImpactLevelInvalid', 'ImpactLevelNone', 'ImpactLevelRestart', 'ImpactLevelRemoveData', 'ImpactLevelRemoveNode'
27294	ImpactLevel ImpactLevel `json:"ImpactLevel,omitempty"`
27295}
27296
27297// NodeInfo information about a node in Service Fabric cluster.
27298type NodeInfo struct {
27299	autorest.Response `json:"-"`
27300	// Name - The name of a Service Fabric node.
27301	Name *string `json:"Name,omitempty"`
27302	// IPAddressOrFQDN - The IP address or fully qualified domain name of the node.
27303	IPAddressOrFQDN *string `json:"IpAddressOrFQDN,omitempty"`
27304	// Type - The type of the node.
27305	Type *string `json:"Type,omitempty"`
27306	// CodeVersion - The version of Service Fabric binaries that the node is running.
27307	CodeVersion *string `json:"CodeVersion,omitempty"`
27308	// ConfigVersion - The version of Service Fabric cluster manifest that the node is using.
27309	ConfigVersion *string `json:"ConfigVersion,omitempty"`
27310	// NodeStatus - The status of the node. Possible values include: 'NodeStatusInvalid', 'NodeStatusUp', 'NodeStatusDown', 'NodeStatusEnabling', 'NodeStatusDisabling', 'NodeStatusDisabled', 'NodeStatusUnknown', 'NodeStatusRemoved'
27311	NodeStatus NodeStatus `json:"NodeStatus,omitempty"`
27312	// NodeUpTimeInSeconds - Time in seconds since the node has been in NodeStatus Up. Value zero indicates that the node is not Up.
27313	NodeUpTimeInSeconds *string `json:"NodeUpTimeInSeconds,omitempty"`
27314	// 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'
27315	HealthState HealthState `json:"HealthState,omitempty"`
27316	// 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.
27317	IsSeedNode *bool `json:"IsSeedNode,omitempty"`
27318	// UpgradeDomain - The upgrade domain of the node.
27319	UpgradeDomain *string `json:"UpgradeDomain,omitempty"`
27320	// FaultDomain - The fault domain of the node.
27321	FaultDomain *string `json:"FaultDomain,omitempty"`
27322	// ID - An internal ID used by Service Fabric to uniquely identify a node. Node Id is deterministically generated from node name.
27323	ID *NodeID `json:"Id,omitempty"`
27324	// 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.
27325	InstanceID *string `json:"InstanceId,omitempty"`
27326	// NodeDeactivationInfo - Information about the node deactivation. This information is valid for a node that is undergoing deactivation or has already been deactivated.
27327	NodeDeactivationInfo *NodeDeactivationInfo `json:"NodeDeactivationInfo,omitempty"`
27328	// IsStopped - Indicates if the node is stopped by calling stop node API or not. Returns true if the node is stopped, otherwise false.
27329	IsStopped *bool `json:"IsStopped,omitempty"`
27330	// NodeDownTimeInSeconds - Time in seconds since the node has been in NodeStatus Down. Value zero indicates node is not NodeStatus Down.
27331	NodeDownTimeInSeconds *string `json:"NodeDownTimeInSeconds,omitempty"`
27332	// 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.
27333	NodeUpAt *date.Time `json:"NodeUpAt,omitempty"`
27334	// NodeDownAt - Date time in UTC when the node went down. If node has never been down then this value will be zero date time.
27335	NodeDownAt *date.Time `json:"NodeDownAt,omitempty"`
27336}
27337
27338// NodeLoadInfo information about load on a Service Fabric node. It holds a summary of all metrics and
27339// their load on a node.
27340type NodeLoadInfo struct {
27341	autorest.Response `json:"-"`
27342	// NodeName - Name of the node for which the load information is provided by this object.
27343	NodeName *string `json:"NodeName,omitempty"`
27344	// NodeLoadMetricInformation - List that contains metrics and their load information on this node.
27345	NodeLoadMetricInformation *[]NodeLoadMetricInformation `json:"NodeLoadMetricInformation,omitempty"`
27346}
27347
27348// NodeLoadMetricInformation represents data structure that contains load information for a certain metric
27349// on a node.
27350type NodeLoadMetricInformation struct {
27351	// Name - Name of the metric for which this load information is provided.
27352	Name *string `json:"Name,omitempty"`
27353	// NodeCapacity - Total capacity on the node for this metric.
27354	NodeCapacity *string `json:"NodeCapacity,omitempty"`
27355	// NodeLoad - Current load on the node for this metric. In future releases of Service Fabric this parameter will be deprecated in favor of CurrentNodeLoad.
27356	NodeLoad *string `json:"NodeLoad,omitempty"`
27357	// 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.
27358	NodeRemainingCapacity *string `json:"NodeRemainingCapacity,omitempty"`
27359	// IsCapacityViolation - Indicates if there is a capacity violation for this metric on the node.
27360	IsCapacityViolation *bool `json:"IsCapacityViolation,omitempty"`
27361	// NodeBufferedCapacity - The value that indicates the reserved capacity for this metric on the node.
27362	NodeBufferedCapacity *string `json:"NodeBufferedCapacity,omitempty"`
27363	// 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.
27364	NodeRemainingBufferedCapacity *string `json:"NodeRemainingBufferedCapacity,omitempty"`
27365	// CurrentNodeLoad - Current load on the node for this metric.
27366	CurrentNodeLoad *string `json:"CurrentNodeLoad,omitempty"`
27367	// NodeCapacityRemaining - The remaining capacity on the node for the metric.
27368	NodeCapacityRemaining *string `json:"NodeCapacityRemaining,omitempty"`
27369	// BufferedNodeCapacityRemaining - The remaining capacity which is not reserved by NodeBufferPercentage for this metric on the node.
27370	BufferedNodeCapacityRemaining *string `json:"BufferedNodeCapacityRemaining,omitempty"`
27371	// PlannedNodeLoadRemoval - This value represents the load of the replicas that are planned to be removed in the future.
27372	// 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.
27373	PlannedNodeLoadRemoval *string `json:"PlannedNodeLoadRemoval,omitempty"`
27374}
27375
27376// NodeNewHealthReportEvent node Health Report Created event.
27377type NodeNewHealthReportEvent struct {
27378	// NodeInstanceID - Id of Node instance.
27379	NodeInstanceID *int64 `json:"NodeInstanceId,omitempty"`
27380	// SourceID - Id of report source.
27381	SourceID *string `json:"SourceId,omitempty"`
27382	// Property - Describes the property.
27383	Property *string `json:"Property,omitempty"`
27384	// HealthState - Describes the property health state.
27385	HealthState *string `json:"HealthState,omitempty"`
27386	// TimeToLiveMs - Time to live in milli-seconds.
27387	TimeToLiveMs *int64 `json:"TimeToLiveMs,omitempty"`
27388	// SequenceNumber - Sequence number of report.
27389	SequenceNumber *int64 `json:"SequenceNumber,omitempty"`
27390	// Description - Description of report.
27391	Description *string `json:"Description,omitempty"`
27392	// RemoveWhenExpired - Indicates the removal when it expires.
27393	RemoveWhenExpired *bool `json:"RemoveWhenExpired,omitempty"`
27394	// SourceUtcTimestamp - Source time.
27395	SourceUtcTimestamp *date.Time `json:"SourceUtcTimestamp,omitempty"`
27396	// NodeName - The name of a Service Fabric node.
27397	NodeName *string `json:"NodeName,omitempty"`
27398	// EventInstanceID - The identifier for the FabricEvent instance.
27399	EventInstanceID *uuid.UUID `json:"EventInstanceId,omitempty"`
27400	// Category - The category of event.
27401	Category *string `json:"Category,omitempty"`
27402	// TimeStamp - The time event was logged.
27403	TimeStamp *date.Time `json:"TimeStamp,omitempty"`
27404	// HasCorrelatedEvents - Shows there is existing related events available.
27405	HasCorrelatedEvents *bool `json:"HasCorrelatedEvents,omitempty"`
27406	// 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'
27407	Kind KindBasicFabricEvent `json:"Kind,omitempty"`
27408}
27409
27410// MarshalJSON is the custom marshaler for NodeNewHealthReportEvent.
27411func (nnhre NodeNewHealthReportEvent) MarshalJSON() ([]byte, error) {
27412	nnhre.Kind = KindNodeNewHealthReport
27413	objectMap := make(map[string]interface{})
27414	if nnhre.NodeInstanceID != nil {
27415		objectMap["NodeInstanceId"] = nnhre.NodeInstanceID
27416	}
27417	if nnhre.SourceID != nil {
27418		objectMap["SourceId"] = nnhre.SourceID
27419	}
27420	if nnhre.Property != nil {
27421		objectMap["Property"] = nnhre.Property
27422	}
27423	if nnhre.HealthState != nil {
27424		objectMap["HealthState"] = nnhre.HealthState
27425	}
27426	if nnhre.TimeToLiveMs != nil {
27427		objectMap["TimeToLiveMs"] = nnhre.TimeToLiveMs
27428	}
27429	if nnhre.SequenceNumber != nil {
27430		objectMap["SequenceNumber"] = nnhre.SequenceNumber
27431	}
27432	if nnhre.Description != nil {
27433		objectMap["Description"] = nnhre.Description
27434	}
27435	if nnhre.RemoveWhenExpired != nil {
27436		objectMap["RemoveWhenExpired"] = nnhre.RemoveWhenExpired
27437	}
27438	if nnhre.SourceUtcTimestamp != nil {
27439		objectMap["SourceUtcTimestamp"] = nnhre.SourceUtcTimestamp
27440	}
27441	if nnhre.NodeName != nil {
27442		objectMap["NodeName"] = nnhre.NodeName
27443	}
27444	if nnhre.EventInstanceID != nil {
27445		objectMap["EventInstanceId"] = nnhre.EventInstanceID
27446	}
27447	if nnhre.Category != nil {
27448		objectMap["Category"] = nnhre.Category
27449	}
27450	if nnhre.TimeStamp != nil {
27451		objectMap["TimeStamp"] = nnhre.TimeStamp
27452	}
27453	if nnhre.HasCorrelatedEvents != nil {
27454		objectMap["HasCorrelatedEvents"] = nnhre.HasCorrelatedEvents
27455	}
27456	if nnhre.Kind != "" {
27457		objectMap["Kind"] = nnhre.Kind
27458	}
27459	return json.Marshal(objectMap)
27460}
27461
27462// AsApplicationEvent is the BasicFabricEvent implementation for NodeNewHealthReportEvent.
27463func (nnhre NodeNewHealthReportEvent) AsApplicationEvent() (*ApplicationEvent, bool) {
27464	return nil, false
27465}
27466
27467// AsBasicApplicationEvent is the BasicFabricEvent implementation for NodeNewHealthReportEvent.
27468func (nnhre NodeNewHealthReportEvent) AsBasicApplicationEvent() (BasicApplicationEvent, bool) {
27469	return nil, false
27470}
27471
27472// AsClusterEvent is the BasicFabricEvent implementation for NodeNewHealthReportEvent.
27473func (nnhre NodeNewHealthReportEvent) AsClusterEvent() (*ClusterEvent, bool) {
27474	return nil, false
27475}
27476
27477// AsBasicClusterEvent is the BasicFabricEvent implementation for NodeNewHealthReportEvent.
27478func (nnhre NodeNewHealthReportEvent) AsBasicClusterEvent() (BasicClusterEvent, bool) {
27479	return nil, false
27480}
27481
27482// AsContainerInstanceEvent is the BasicFabricEvent implementation for NodeNewHealthReportEvent.
27483func (nnhre NodeNewHealthReportEvent) AsContainerInstanceEvent() (*ContainerInstanceEvent, bool) {
27484	return nil, false
27485}
27486
27487// AsNodeEvent is the BasicFabricEvent implementation for NodeNewHealthReportEvent.
27488func (nnhre NodeNewHealthReportEvent) AsNodeEvent() (*NodeEvent, bool) {
27489	return nil, false
27490}
27491
27492// AsBasicNodeEvent is the BasicFabricEvent implementation for NodeNewHealthReportEvent.
27493func (nnhre NodeNewHealthReportEvent) AsBasicNodeEvent() (BasicNodeEvent, bool) {
27494	return &nnhre, true
27495}
27496
27497// AsPartitionAnalysisEvent is the BasicFabricEvent implementation for NodeNewHealthReportEvent.
27498func (nnhre NodeNewHealthReportEvent) AsPartitionAnalysisEvent() (*PartitionAnalysisEvent, bool) {
27499	return nil, false
27500}
27501
27502// AsBasicPartitionAnalysisEvent is the BasicFabricEvent implementation for NodeNewHealthReportEvent.
27503func (nnhre NodeNewHealthReportEvent) AsBasicPartitionAnalysisEvent() (BasicPartitionAnalysisEvent, bool) {
27504	return nil, false
27505}
27506
27507// AsPartitionEvent is the BasicFabricEvent implementation for NodeNewHealthReportEvent.
27508func (nnhre NodeNewHealthReportEvent) AsPartitionEvent() (*PartitionEvent, bool) {
27509	return nil, false
27510}
27511
27512// AsBasicPartitionEvent is the BasicFabricEvent implementation for NodeNewHealthReportEvent.
27513func (nnhre NodeNewHealthReportEvent) AsBasicPartitionEvent() (BasicPartitionEvent, bool) {
27514	return nil, false
27515}
27516
27517// AsReplicaEvent is the BasicFabricEvent implementation for NodeNewHealthReportEvent.
27518func (nnhre NodeNewHealthReportEvent) AsReplicaEvent() (*ReplicaEvent, bool) {
27519	return nil, false
27520}
27521
27522// AsBasicReplicaEvent is the BasicFabricEvent implementation for NodeNewHealthReportEvent.
27523func (nnhre NodeNewHealthReportEvent) AsBasicReplicaEvent() (BasicReplicaEvent, bool) {
27524	return nil, false
27525}
27526
27527// AsServiceEvent is the BasicFabricEvent implementation for NodeNewHealthReportEvent.
27528func (nnhre NodeNewHealthReportEvent) AsServiceEvent() (*ServiceEvent, bool) {
27529	return nil, false
27530}
27531
27532// AsBasicServiceEvent is the BasicFabricEvent implementation for NodeNewHealthReportEvent.
27533func (nnhre NodeNewHealthReportEvent) AsBasicServiceEvent() (BasicServiceEvent, bool) {
27534	return nil, false
27535}
27536
27537// AsApplicationCreatedEvent is the BasicFabricEvent implementation for NodeNewHealthReportEvent.
27538func (nnhre NodeNewHealthReportEvent) AsApplicationCreatedEvent() (*ApplicationCreatedEvent, bool) {
27539	return nil, false
27540}
27541
27542// AsApplicationDeletedEvent is the BasicFabricEvent implementation for NodeNewHealthReportEvent.
27543func (nnhre NodeNewHealthReportEvent) AsApplicationDeletedEvent() (*ApplicationDeletedEvent, bool) {
27544	return nil, false
27545}
27546
27547// AsApplicationNewHealthReportEvent is the BasicFabricEvent implementation for NodeNewHealthReportEvent.
27548func (nnhre NodeNewHealthReportEvent) AsApplicationNewHealthReportEvent() (*ApplicationNewHealthReportEvent, bool) {
27549	return nil, false
27550}
27551
27552// AsApplicationHealthReportExpiredEvent is the BasicFabricEvent implementation for NodeNewHealthReportEvent.
27553func (nnhre NodeNewHealthReportEvent) AsApplicationHealthReportExpiredEvent() (*ApplicationHealthReportExpiredEvent, bool) {
27554	return nil, false
27555}
27556
27557// AsApplicationUpgradeCompletedEvent is the BasicFabricEvent implementation for NodeNewHealthReportEvent.
27558func (nnhre NodeNewHealthReportEvent) AsApplicationUpgradeCompletedEvent() (*ApplicationUpgradeCompletedEvent, bool) {
27559	return nil, false
27560}
27561
27562// AsApplicationUpgradeDomainCompletedEvent is the BasicFabricEvent implementation for NodeNewHealthReportEvent.
27563func (nnhre NodeNewHealthReportEvent) AsApplicationUpgradeDomainCompletedEvent() (*ApplicationUpgradeDomainCompletedEvent, bool) {
27564	return nil, false
27565}
27566
27567// AsApplicationUpgradeRollbackCompletedEvent is the BasicFabricEvent implementation for NodeNewHealthReportEvent.
27568func (nnhre NodeNewHealthReportEvent) AsApplicationUpgradeRollbackCompletedEvent() (*ApplicationUpgradeRollbackCompletedEvent, bool) {
27569	return nil, false
27570}
27571
27572// AsApplicationUpgradeRollbackStartedEvent is the BasicFabricEvent implementation for NodeNewHealthReportEvent.
27573func (nnhre NodeNewHealthReportEvent) AsApplicationUpgradeRollbackStartedEvent() (*ApplicationUpgradeRollbackStartedEvent, bool) {
27574	return nil, false
27575}
27576
27577// AsApplicationUpgradeStartedEvent is the BasicFabricEvent implementation for NodeNewHealthReportEvent.
27578func (nnhre NodeNewHealthReportEvent) AsApplicationUpgradeStartedEvent() (*ApplicationUpgradeStartedEvent, bool) {
27579	return nil, false
27580}
27581
27582// AsDeployedApplicationNewHealthReportEvent is the BasicFabricEvent implementation for NodeNewHealthReportEvent.
27583func (nnhre NodeNewHealthReportEvent) AsDeployedApplicationNewHealthReportEvent() (*DeployedApplicationNewHealthReportEvent, bool) {
27584	return nil, false
27585}
27586
27587// AsDeployedApplicationHealthReportExpiredEvent is the BasicFabricEvent implementation for NodeNewHealthReportEvent.
27588func (nnhre NodeNewHealthReportEvent) AsDeployedApplicationHealthReportExpiredEvent() (*DeployedApplicationHealthReportExpiredEvent, bool) {
27589	return nil, false
27590}
27591
27592// AsApplicationProcessExitedEvent is the BasicFabricEvent implementation for NodeNewHealthReportEvent.
27593func (nnhre NodeNewHealthReportEvent) AsApplicationProcessExitedEvent() (*ApplicationProcessExitedEvent, bool) {
27594	return nil, false
27595}
27596
27597// AsApplicationContainerInstanceExitedEvent is the BasicFabricEvent implementation for NodeNewHealthReportEvent.
27598func (nnhre NodeNewHealthReportEvent) AsApplicationContainerInstanceExitedEvent() (*ApplicationContainerInstanceExitedEvent, bool) {
27599	return nil, false
27600}
27601
27602// AsNodeAbortedEvent is the BasicFabricEvent implementation for NodeNewHealthReportEvent.
27603func (nnhre NodeNewHealthReportEvent) AsNodeAbortedEvent() (*NodeAbortedEvent, bool) {
27604	return nil, false
27605}
27606
27607// AsNodeAddedToClusterEvent is the BasicFabricEvent implementation for NodeNewHealthReportEvent.
27608func (nnhre NodeNewHealthReportEvent) AsNodeAddedToClusterEvent() (*NodeAddedToClusterEvent, bool) {
27609	return nil, false
27610}
27611
27612// AsNodeClosedEvent is the BasicFabricEvent implementation for NodeNewHealthReportEvent.
27613func (nnhre NodeNewHealthReportEvent) AsNodeClosedEvent() (*NodeClosedEvent, bool) {
27614	return nil, false
27615}
27616
27617// AsNodeDeactivateCompletedEvent is the BasicFabricEvent implementation for NodeNewHealthReportEvent.
27618func (nnhre NodeNewHealthReportEvent) AsNodeDeactivateCompletedEvent() (*NodeDeactivateCompletedEvent, bool) {
27619	return nil, false
27620}
27621
27622// AsNodeDeactivateStartedEvent is the BasicFabricEvent implementation for NodeNewHealthReportEvent.
27623func (nnhre NodeNewHealthReportEvent) AsNodeDeactivateStartedEvent() (*NodeDeactivateStartedEvent, bool) {
27624	return nil, false
27625}
27626
27627// AsNodeDownEvent is the BasicFabricEvent implementation for NodeNewHealthReportEvent.
27628func (nnhre NodeNewHealthReportEvent) AsNodeDownEvent() (*NodeDownEvent, bool) {
27629	return nil, false
27630}
27631
27632// AsNodeNewHealthReportEvent is the BasicFabricEvent implementation for NodeNewHealthReportEvent.
27633func (nnhre NodeNewHealthReportEvent) AsNodeNewHealthReportEvent() (*NodeNewHealthReportEvent, bool) {
27634	return &nnhre, true
27635}
27636
27637// AsNodeHealthReportExpiredEvent is the BasicFabricEvent implementation for NodeNewHealthReportEvent.
27638func (nnhre NodeNewHealthReportEvent) AsNodeHealthReportExpiredEvent() (*NodeHealthReportExpiredEvent, bool) {
27639	return nil, false
27640}
27641
27642// AsNodeOpenSucceededEvent is the BasicFabricEvent implementation for NodeNewHealthReportEvent.
27643func (nnhre NodeNewHealthReportEvent) AsNodeOpenSucceededEvent() (*NodeOpenSucceededEvent, bool) {
27644	return nil, false
27645}
27646
27647// AsNodeOpenFailedEvent is the BasicFabricEvent implementation for NodeNewHealthReportEvent.
27648func (nnhre NodeNewHealthReportEvent) AsNodeOpenFailedEvent() (*NodeOpenFailedEvent, bool) {
27649	return nil, false
27650}
27651
27652// AsNodeRemovedFromClusterEvent is the BasicFabricEvent implementation for NodeNewHealthReportEvent.
27653func (nnhre NodeNewHealthReportEvent) AsNodeRemovedFromClusterEvent() (*NodeRemovedFromClusterEvent, bool) {
27654	return nil, false
27655}
27656
27657// AsNodeUpEvent is the BasicFabricEvent implementation for NodeNewHealthReportEvent.
27658func (nnhre NodeNewHealthReportEvent) AsNodeUpEvent() (*NodeUpEvent, bool) {
27659	return nil, false
27660}
27661
27662// AsPartitionNewHealthReportEvent is the BasicFabricEvent implementation for NodeNewHealthReportEvent.
27663func (nnhre NodeNewHealthReportEvent) AsPartitionNewHealthReportEvent() (*PartitionNewHealthReportEvent, bool) {
27664	return nil, false
27665}
27666
27667// AsPartitionHealthReportExpiredEvent is the BasicFabricEvent implementation for NodeNewHealthReportEvent.
27668func (nnhre NodeNewHealthReportEvent) AsPartitionHealthReportExpiredEvent() (*PartitionHealthReportExpiredEvent, bool) {
27669	return nil, false
27670}
27671
27672// AsPartitionReconfiguredEvent is the BasicFabricEvent implementation for NodeNewHealthReportEvent.
27673func (nnhre NodeNewHealthReportEvent) AsPartitionReconfiguredEvent() (*PartitionReconfiguredEvent, bool) {
27674	return nil, false
27675}
27676
27677// AsPartitionPrimaryMoveAnalysisEvent is the BasicFabricEvent implementation for NodeNewHealthReportEvent.
27678func (nnhre NodeNewHealthReportEvent) AsPartitionPrimaryMoveAnalysisEvent() (*PartitionPrimaryMoveAnalysisEvent, bool) {
27679	return nil, false
27680}
27681
27682// AsServiceCreatedEvent is the BasicFabricEvent implementation for NodeNewHealthReportEvent.
27683func (nnhre NodeNewHealthReportEvent) AsServiceCreatedEvent() (*ServiceCreatedEvent, bool) {
27684	return nil, false
27685}
27686
27687// AsServiceDeletedEvent is the BasicFabricEvent implementation for NodeNewHealthReportEvent.
27688func (nnhre NodeNewHealthReportEvent) AsServiceDeletedEvent() (*ServiceDeletedEvent, bool) {
27689	return nil, false
27690}
27691
27692// AsServiceNewHealthReportEvent is the BasicFabricEvent implementation for NodeNewHealthReportEvent.
27693func (nnhre NodeNewHealthReportEvent) AsServiceNewHealthReportEvent() (*ServiceNewHealthReportEvent, bool) {
27694	return nil, false
27695}
27696
27697// AsServiceHealthReportExpiredEvent is the BasicFabricEvent implementation for NodeNewHealthReportEvent.
27698func (nnhre NodeNewHealthReportEvent) AsServiceHealthReportExpiredEvent() (*ServiceHealthReportExpiredEvent, bool) {
27699	return nil, false
27700}
27701
27702// AsDeployedServicePackageNewHealthReportEvent is the BasicFabricEvent implementation for NodeNewHealthReportEvent.
27703func (nnhre NodeNewHealthReportEvent) AsDeployedServicePackageNewHealthReportEvent() (*DeployedServicePackageNewHealthReportEvent, bool) {
27704	return nil, false
27705}
27706
27707// AsDeployedServicePackageHealthReportExpiredEvent is the BasicFabricEvent implementation for NodeNewHealthReportEvent.
27708func (nnhre NodeNewHealthReportEvent) AsDeployedServicePackageHealthReportExpiredEvent() (*DeployedServicePackageHealthReportExpiredEvent, bool) {
27709	return nil, false
27710}
27711
27712// AsStatefulReplicaNewHealthReportEvent is the BasicFabricEvent implementation for NodeNewHealthReportEvent.
27713func (nnhre NodeNewHealthReportEvent) AsStatefulReplicaNewHealthReportEvent() (*StatefulReplicaNewHealthReportEvent, bool) {
27714	return nil, false
27715}
27716
27717// AsStatefulReplicaHealthReportExpiredEvent is the BasicFabricEvent implementation for NodeNewHealthReportEvent.
27718func (nnhre NodeNewHealthReportEvent) AsStatefulReplicaHealthReportExpiredEvent() (*StatefulReplicaHealthReportExpiredEvent, bool) {
27719	return nil, false
27720}
27721
27722// AsStatelessReplicaNewHealthReportEvent is the BasicFabricEvent implementation for NodeNewHealthReportEvent.
27723func (nnhre NodeNewHealthReportEvent) AsStatelessReplicaNewHealthReportEvent() (*StatelessReplicaNewHealthReportEvent, bool) {
27724	return nil, false
27725}
27726
27727// AsStatelessReplicaHealthReportExpiredEvent is the BasicFabricEvent implementation for NodeNewHealthReportEvent.
27728func (nnhre NodeNewHealthReportEvent) AsStatelessReplicaHealthReportExpiredEvent() (*StatelessReplicaHealthReportExpiredEvent, bool) {
27729	return nil, false
27730}
27731
27732// AsClusterNewHealthReportEvent is the BasicFabricEvent implementation for NodeNewHealthReportEvent.
27733func (nnhre NodeNewHealthReportEvent) AsClusterNewHealthReportEvent() (*ClusterNewHealthReportEvent, bool) {
27734	return nil, false
27735}
27736
27737// AsClusterHealthReportExpiredEvent is the BasicFabricEvent implementation for NodeNewHealthReportEvent.
27738func (nnhre NodeNewHealthReportEvent) AsClusterHealthReportExpiredEvent() (*ClusterHealthReportExpiredEvent, bool) {
27739	return nil, false
27740}
27741
27742// AsClusterUpgradeCompletedEvent is the BasicFabricEvent implementation for NodeNewHealthReportEvent.
27743func (nnhre NodeNewHealthReportEvent) AsClusterUpgradeCompletedEvent() (*ClusterUpgradeCompletedEvent, bool) {
27744	return nil, false
27745}
27746
27747// AsClusterUpgradeDomainCompletedEvent is the BasicFabricEvent implementation for NodeNewHealthReportEvent.
27748func (nnhre NodeNewHealthReportEvent) AsClusterUpgradeDomainCompletedEvent() (*ClusterUpgradeDomainCompletedEvent, bool) {
27749	return nil, false
27750}
27751
27752// AsClusterUpgradeRollbackCompletedEvent is the BasicFabricEvent implementation for NodeNewHealthReportEvent.
27753func (nnhre NodeNewHealthReportEvent) AsClusterUpgradeRollbackCompletedEvent() (*ClusterUpgradeRollbackCompletedEvent, bool) {
27754	return nil, false
27755}
27756
27757// AsClusterUpgradeRollbackStartedEvent is the BasicFabricEvent implementation for NodeNewHealthReportEvent.
27758func (nnhre NodeNewHealthReportEvent) AsClusterUpgradeRollbackStartedEvent() (*ClusterUpgradeRollbackStartedEvent, bool) {
27759	return nil, false
27760}
27761
27762// AsClusterUpgradeStartedEvent is the BasicFabricEvent implementation for NodeNewHealthReportEvent.
27763func (nnhre NodeNewHealthReportEvent) AsClusterUpgradeStartedEvent() (*ClusterUpgradeStartedEvent, bool) {
27764	return nil, false
27765}
27766
27767// AsChaosStoppedEvent is the BasicFabricEvent implementation for NodeNewHealthReportEvent.
27768func (nnhre NodeNewHealthReportEvent) AsChaosStoppedEvent() (*ChaosStoppedEvent, bool) {
27769	return nil, false
27770}
27771
27772// AsChaosStartedEvent is the BasicFabricEvent implementation for NodeNewHealthReportEvent.
27773func (nnhre NodeNewHealthReportEvent) AsChaosStartedEvent() (*ChaosStartedEvent, bool) {
27774	return nil, false
27775}
27776
27777// AsChaosCodePackageRestartScheduledEvent is the BasicFabricEvent implementation for NodeNewHealthReportEvent.
27778func (nnhre NodeNewHealthReportEvent) AsChaosCodePackageRestartScheduledEvent() (*ChaosCodePackageRestartScheduledEvent, bool) {
27779	return nil, false
27780}
27781
27782// AsChaosReplicaRemovalScheduledEvent is the BasicFabricEvent implementation for NodeNewHealthReportEvent.
27783func (nnhre NodeNewHealthReportEvent) AsChaosReplicaRemovalScheduledEvent() (*ChaosReplicaRemovalScheduledEvent, bool) {
27784	return nil, false
27785}
27786
27787// AsChaosPartitionSecondaryMoveScheduledEvent is the BasicFabricEvent implementation for NodeNewHealthReportEvent.
27788func (nnhre NodeNewHealthReportEvent) AsChaosPartitionSecondaryMoveScheduledEvent() (*ChaosPartitionSecondaryMoveScheduledEvent, bool) {
27789	return nil, false
27790}
27791
27792// AsChaosPartitionPrimaryMoveScheduledEvent is the BasicFabricEvent implementation for NodeNewHealthReportEvent.
27793func (nnhre NodeNewHealthReportEvent) AsChaosPartitionPrimaryMoveScheduledEvent() (*ChaosPartitionPrimaryMoveScheduledEvent, bool) {
27794	return nil, false
27795}
27796
27797// AsChaosReplicaRestartScheduledEvent is the BasicFabricEvent implementation for NodeNewHealthReportEvent.
27798func (nnhre NodeNewHealthReportEvent) AsChaosReplicaRestartScheduledEvent() (*ChaosReplicaRestartScheduledEvent, bool) {
27799	return nil, false
27800}
27801
27802// AsChaosNodeRestartScheduledEvent is the BasicFabricEvent implementation for NodeNewHealthReportEvent.
27803func (nnhre NodeNewHealthReportEvent) AsChaosNodeRestartScheduledEvent() (*ChaosNodeRestartScheduledEvent, bool) {
27804	return nil, false
27805}
27806
27807// AsFabricEvent is the BasicFabricEvent implementation for NodeNewHealthReportEvent.
27808func (nnhre NodeNewHealthReportEvent) AsFabricEvent() (*FabricEvent, bool) {
27809	return nil, false
27810}
27811
27812// AsBasicFabricEvent is the BasicFabricEvent implementation for NodeNewHealthReportEvent.
27813func (nnhre NodeNewHealthReportEvent) AsBasicFabricEvent() (BasicFabricEvent, bool) {
27814	return &nnhre, true
27815}
27816
27817// NodeOpenFailedEvent node Open Failed event.
27818type NodeOpenFailedEvent struct {
27819	// NodeInstance - Id of Node instance.
27820	NodeInstance *int64 `json:"NodeInstance,omitempty"`
27821	// NodeID - Id of Node.
27822	NodeID *string `json:"NodeId,omitempty"`
27823	// UpgradeDomain - Upgrade domain of Node.
27824	UpgradeDomain *string `json:"UpgradeDomain,omitempty"`
27825	// FaultDomain - Fault domain of Node.
27826	FaultDomain *string `json:"FaultDomain,omitempty"`
27827	// IPAddressOrFQDN - IP address or FQDN.
27828	IPAddressOrFQDN *string `json:"IpAddressOrFQDN,omitempty"`
27829	// Hostname - Name of Host.
27830	Hostname *string `json:"Hostname,omitempty"`
27831	// IsSeedNode - Indicates if it is seed node.
27832	IsSeedNode *bool `json:"IsSeedNode,omitempty"`
27833	// NodeVersion - Version of Node.
27834	NodeVersion *string `json:"NodeVersion,omitempty"`
27835	// Error - Describes the error.
27836	Error *string `json:"Error,omitempty"`
27837	// NodeName - The name of a Service Fabric node.
27838	NodeName *string `json:"NodeName,omitempty"`
27839	// EventInstanceID - The identifier for the FabricEvent instance.
27840	EventInstanceID *uuid.UUID `json:"EventInstanceId,omitempty"`
27841	// Category - The category of event.
27842	Category *string `json:"Category,omitempty"`
27843	// TimeStamp - The time event was logged.
27844	TimeStamp *date.Time `json:"TimeStamp,omitempty"`
27845	// HasCorrelatedEvents - Shows there is existing related events available.
27846	HasCorrelatedEvents *bool `json:"HasCorrelatedEvents,omitempty"`
27847	// 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'
27848	Kind KindBasicFabricEvent `json:"Kind,omitempty"`
27849}
27850
27851// MarshalJSON is the custom marshaler for NodeOpenFailedEvent.
27852func (nofe NodeOpenFailedEvent) MarshalJSON() ([]byte, error) {
27853	nofe.Kind = KindNodeOpenFailed
27854	objectMap := make(map[string]interface{})
27855	if nofe.NodeInstance != nil {
27856		objectMap["NodeInstance"] = nofe.NodeInstance
27857	}
27858	if nofe.NodeID != nil {
27859		objectMap["NodeId"] = nofe.NodeID
27860	}
27861	if nofe.UpgradeDomain != nil {
27862		objectMap["UpgradeDomain"] = nofe.UpgradeDomain
27863	}
27864	if nofe.FaultDomain != nil {
27865		objectMap["FaultDomain"] = nofe.FaultDomain
27866	}
27867	if nofe.IPAddressOrFQDN != nil {
27868		objectMap["IpAddressOrFQDN"] = nofe.IPAddressOrFQDN
27869	}
27870	if nofe.Hostname != nil {
27871		objectMap["Hostname"] = nofe.Hostname
27872	}
27873	if nofe.IsSeedNode != nil {
27874		objectMap["IsSeedNode"] = nofe.IsSeedNode
27875	}
27876	if nofe.NodeVersion != nil {
27877		objectMap["NodeVersion"] = nofe.NodeVersion
27878	}
27879	if nofe.Error != nil {
27880		objectMap["Error"] = nofe.Error
27881	}
27882	if nofe.NodeName != nil {
27883		objectMap["NodeName"] = nofe.NodeName
27884	}
27885	if nofe.EventInstanceID != nil {
27886		objectMap["EventInstanceId"] = nofe.EventInstanceID
27887	}
27888	if nofe.Category != nil {
27889		objectMap["Category"] = nofe.Category
27890	}
27891	if nofe.TimeStamp != nil {
27892		objectMap["TimeStamp"] = nofe.TimeStamp
27893	}
27894	if nofe.HasCorrelatedEvents != nil {
27895		objectMap["HasCorrelatedEvents"] = nofe.HasCorrelatedEvents
27896	}
27897	if nofe.Kind != "" {
27898		objectMap["Kind"] = nofe.Kind
27899	}
27900	return json.Marshal(objectMap)
27901}
27902
27903// AsApplicationEvent is the BasicFabricEvent implementation for NodeOpenFailedEvent.
27904func (nofe NodeOpenFailedEvent) AsApplicationEvent() (*ApplicationEvent, bool) {
27905	return nil, false
27906}
27907
27908// AsBasicApplicationEvent is the BasicFabricEvent implementation for NodeOpenFailedEvent.
27909func (nofe NodeOpenFailedEvent) AsBasicApplicationEvent() (BasicApplicationEvent, bool) {
27910	return nil, false
27911}
27912
27913// AsClusterEvent is the BasicFabricEvent implementation for NodeOpenFailedEvent.
27914func (nofe NodeOpenFailedEvent) AsClusterEvent() (*ClusterEvent, bool) {
27915	return nil, false
27916}
27917
27918// AsBasicClusterEvent is the BasicFabricEvent implementation for NodeOpenFailedEvent.
27919func (nofe NodeOpenFailedEvent) AsBasicClusterEvent() (BasicClusterEvent, bool) {
27920	return nil, false
27921}
27922
27923// AsContainerInstanceEvent is the BasicFabricEvent implementation for NodeOpenFailedEvent.
27924func (nofe NodeOpenFailedEvent) AsContainerInstanceEvent() (*ContainerInstanceEvent, bool) {
27925	return nil, false
27926}
27927
27928// AsNodeEvent is the BasicFabricEvent implementation for NodeOpenFailedEvent.
27929func (nofe NodeOpenFailedEvent) AsNodeEvent() (*NodeEvent, bool) {
27930	return nil, false
27931}
27932
27933// AsBasicNodeEvent is the BasicFabricEvent implementation for NodeOpenFailedEvent.
27934func (nofe NodeOpenFailedEvent) AsBasicNodeEvent() (BasicNodeEvent, bool) {
27935	return &nofe, true
27936}
27937
27938// AsPartitionAnalysisEvent is the BasicFabricEvent implementation for NodeOpenFailedEvent.
27939func (nofe NodeOpenFailedEvent) AsPartitionAnalysisEvent() (*PartitionAnalysisEvent, bool) {
27940	return nil, false
27941}
27942
27943// AsBasicPartitionAnalysisEvent is the BasicFabricEvent implementation for NodeOpenFailedEvent.
27944func (nofe NodeOpenFailedEvent) AsBasicPartitionAnalysisEvent() (BasicPartitionAnalysisEvent, bool) {
27945	return nil, false
27946}
27947
27948// AsPartitionEvent is the BasicFabricEvent implementation for NodeOpenFailedEvent.
27949func (nofe NodeOpenFailedEvent) AsPartitionEvent() (*PartitionEvent, bool) {
27950	return nil, false
27951}
27952
27953// AsBasicPartitionEvent is the BasicFabricEvent implementation for NodeOpenFailedEvent.
27954func (nofe NodeOpenFailedEvent) AsBasicPartitionEvent() (BasicPartitionEvent, bool) {
27955	return nil, false
27956}
27957
27958// AsReplicaEvent is the BasicFabricEvent implementation for NodeOpenFailedEvent.
27959func (nofe NodeOpenFailedEvent) AsReplicaEvent() (*ReplicaEvent, bool) {
27960	return nil, false
27961}
27962
27963// AsBasicReplicaEvent is the BasicFabricEvent implementation for NodeOpenFailedEvent.
27964func (nofe NodeOpenFailedEvent) AsBasicReplicaEvent() (BasicReplicaEvent, bool) {
27965	return nil, false
27966}
27967
27968// AsServiceEvent is the BasicFabricEvent implementation for NodeOpenFailedEvent.
27969func (nofe NodeOpenFailedEvent) AsServiceEvent() (*ServiceEvent, bool) {
27970	return nil, false
27971}
27972
27973// AsBasicServiceEvent is the BasicFabricEvent implementation for NodeOpenFailedEvent.
27974func (nofe NodeOpenFailedEvent) AsBasicServiceEvent() (BasicServiceEvent, bool) {
27975	return nil, false
27976}
27977
27978// AsApplicationCreatedEvent is the BasicFabricEvent implementation for NodeOpenFailedEvent.
27979func (nofe NodeOpenFailedEvent) AsApplicationCreatedEvent() (*ApplicationCreatedEvent, bool) {
27980	return nil, false
27981}
27982
27983// AsApplicationDeletedEvent is the BasicFabricEvent implementation for NodeOpenFailedEvent.
27984func (nofe NodeOpenFailedEvent) AsApplicationDeletedEvent() (*ApplicationDeletedEvent, bool) {
27985	return nil, false
27986}
27987
27988// AsApplicationNewHealthReportEvent is the BasicFabricEvent implementation for NodeOpenFailedEvent.
27989func (nofe NodeOpenFailedEvent) AsApplicationNewHealthReportEvent() (*ApplicationNewHealthReportEvent, bool) {
27990	return nil, false
27991}
27992
27993// AsApplicationHealthReportExpiredEvent is the BasicFabricEvent implementation for NodeOpenFailedEvent.
27994func (nofe NodeOpenFailedEvent) AsApplicationHealthReportExpiredEvent() (*ApplicationHealthReportExpiredEvent, bool) {
27995	return nil, false
27996}
27997
27998// AsApplicationUpgradeCompletedEvent is the BasicFabricEvent implementation for NodeOpenFailedEvent.
27999func (nofe NodeOpenFailedEvent) AsApplicationUpgradeCompletedEvent() (*ApplicationUpgradeCompletedEvent, bool) {
28000	return nil, false
28001}
28002
28003// AsApplicationUpgradeDomainCompletedEvent is the BasicFabricEvent implementation for NodeOpenFailedEvent.
28004func (nofe NodeOpenFailedEvent) AsApplicationUpgradeDomainCompletedEvent() (*ApplicationUpgradeDomainCompletedEvent, bool) {
28005	return nil, false
28006}
28007
28008// AsApplicationUpgradeRollbackCompletedEvent is the BasicFabricEvent implementation for NodeOpenFailedEvent.
28009func (nofe NodeOpenFailedEvent) AsApplicationUpgradeRollbackCompletedEvent() (*ApplicationUpgradeRollbackCompletedEvent, bool) {
28010	return nil, false
28011}
28012
28013// AsApplicationUpgradeRollbackStartedEvent is the BasicFabricEvent implementation for NodeOpenFailedEvent.
28014func (nofe NodeOpenFailedEvent) AsApplicationUpgradeRollbackStartedEvent() (*ApplicationUpgradeRollbackStartedEvent, bool) {
28015	return nil, false
28016}
28017
28018// AsApplicationUpgradeStartedEvent is the BasicFabricEvent implementation for NodeOpenFailedEvent.
28019func (nofe NodeOpenFailedEvent) AsApplicationUpgradeStartedEvent() (*ApplicationUpgradeStartedEvent, bool) {
28020	return nil, false
28021}
28022
28023// AsDeployedApplicationNewHealthReportEvent is the BasicFabricEvent implementation for NodeOpenFailedEvent.
28024func (nofe NodeOpenFailedEvent) AsDeployedApplicationNewHealthReportEvent() (*DeployedApplicationNewHealthReportEvent, bool) {
28025	return nil, false
28026}
28027
28028// AsDeployedApplicationHealthReportExpiredEvent is the BasicFabricEvent implementation for NodeOpenFailedEvent.
28029func (nofe NodeOpenFailedEvent) AsDeployedApplicationHealthReportExpiredEvent() (*DeployedApplicationHealthReportExpiredEvent, bool) {
28030	return nil, false
28031}
28032
28033// AsApplicationProcessExitedEvent is the BasicFabricEvent implementation for NodeOpenFailedEvent.
28034func (nofe NodeOpenFailedEvent) AsApplicationProcessExitedEvent() (*ApplicationProcessExitedEvent, bool) {
28035	return nil, false
28036}
28037
28038// AsApplicationContainerInstanceExitedEvent is the BasicFabricEvent implementation for NodeOpenFailedEvent.
28039func (nofe NodeOpenFailedEvent) AsApplicationContainerInstanceExitedEvent() (*ApplicationContainerInstanceExitedEvent, bool) {
28040	return nil, false
28041}
28042
28043// AsNodeAbortedEvent is the BasicFabricEvent implementation for NodeOpenFailedEvent.
28044func (nofe NodeOpenFailedEvent) AsNodeAbortedEvent() (*NodeAbortedEvent, bool) {
28045	return nil, false
28046}
28047
28048// AsNodeAddedToClusterEvent is the BasicFabricEvent implementation for NodeOpenFailedEvent.
28049func (nofe NodeOpenFailedEvent) AsNodeAddedToClusterEvent() (*NodeAddedToClusterEvent, bool) {
28050	return nil, false
28051}
28052
28053// AsNodeClosedEvent is the BasicFabricEvent implementation for NodeOpenFailedEvent.
28054func (nofe NodeOpenFailedEvent) AsNodeClosedEvent() (*NodeClosedEvent, bool) {
28055	return nil, false
28056}
28057
28058// AsNodeDeactivateCompletedEvent is the BasicFabricEvent implementation for NodeOpenFailedEvent.
28059func (nofe NodeOpenFailedEvent) AsNodeDeactivateCompletedEvent() (*NodeDeactivateCompletedEvent, bool) {
28060	return nil, false
28061}
28062
28063// AsNodeDeactivateStartedEvent is the BasicFabricEvent implementation for NodeOpenFailedEvent.
28064func (nofe NodeOpenFailedEvent) AsNodeDeactivateStartedEvent() (*NodeDeactivateStartedEvent, bool) {
28065	return nil, false
28066}
28067
28068// AsNodeDownEvent is the BasicFabricEvent implementation for NodeOpenFailedEvent.
28069func (nofe NodeOpenFailedEvent) AsNodeDownEvent() (*NodeDownEvent, bool) {
28070	return nil, false
28071}
28072
28073// AsNodeNewHealthReportEvent is the BasicFabricEvent implementation for NodeOpenFailedEvent.
28074func (nofe NodeOpenFailedEvent) AsNodeNewHealthReportEvent() (*NodeNewHealthReportEvent, bool) {
28075	return nil, false
28076}
28077
28078// AsNodeHealthReportExpiredEvent is the BasicFabricEvent implementation for NodeOpenFailedEvent.
28079func (nofe NodeOpenFailedEvent) AsNodeHealthReportExpiredEvent() (*NodeHealthReportExpiredEvent, bool) {
28080	return nil, false
28081}
28082
28083// AsNodeOpenSucceededEvent is the BasicFabricEvent implementation for NodeOpenFailedEvent.
28084func (nofe NodeOpenFailedEvent) AsNodeOpenSucceededEvent() (*NodeOpenSucceededEvent, bool) {
28085	return nil, false
28086}
28087
28088// AsNodeOpenFailedEvent is the BasicFabricEvent implementation for NodeOpenFailedEvent.
28089func (nofe NodeOpenFailedEvent) AsNodeOpenFailedEvent() (*NodeOpenFailedEvent, bool) {
28090	return &nofe, true
28091}
28092
28093// AsNodeRemovedFromClusterEvent is the BasicFabricEvent implementation for NodeOpenFailedEvent.
28094func (nofe NodeOpenFailedEvent) AsNodeRemovedFromClusterEvent() (*NodeRemovedFromClusterEvent, bool) {
28095	return nil, false
28096}
28097
28098// AsNodeUpEvent is the BasicFabricEvent implementation for NodeOpenFailedEvent.
28099func (nofe NodeOpenFailedEvent) AsNodeUpEvent() (*NodeUpEvent, bool) {
28100	return nil, false
28101}
28102
28103// AsPartitionNewHealthReportEvent is the BasicFabricEvent implementation for NodeOpenFailedEvent.
28104func (nofe NodeOpenFailedEvent) AsPartitionNewHealthReportEvent() (*PartitionNewHealthReportEvent, bool) {
28105	return nil, false
28106}
28107
28108// AsPartitionHealthReportExpiredEvent is the BasicFabricEvent implementation for NodeOpenFailedEvent.
28109func (nofe NodeOpenFailedEvent) AsPartitionHealthReportExpiredEvent() (*PartitionHealthReportExpiredEvent, bool) {
28110	return nil, false
28111}
28112
28113// AsPartitionReconfiguredEvent is the BasicFabricEvent implementation for NodeOpenFailedEvent.
28114func (nofe NodeOpenFailedEvent) AsPartitionReconfiguredEvent() (*PartitionReconfiguredEvent, bool) {
28115	return nil, false
28116}
28117
28118// AsPartitionPrimaryMoveAnalysisEvent is the BasicFabricEvent implementation for NodeOpenFailedEvent.
28119func (nofe NodeOpenFailedEvent) AsPartitionPrimaryMoveAnalysisEvent() (*PartitionPrimaryMoveAnalysisEvent, bool) {
28120	return nil, false
28121}
28122
28123// AsServiceCreatedEvent is the BasicFabricEvent implementation for NodeOpenFailedEvent.
28124func (nofe NodeOpenFailedEvent) AsServiceCreatedEvent() (*ServiceCreatedEvent, bool) {
28125	return nil, false
28126}
28127
28128// AsServiceDeletedEvent is the BasicFabricEvent implementation for NodeOpenFailedEvent.
28129func (nofe NodeOpenFailedEvent) AsServiceDeletedEvent() (*ServiceDeletedEvent, bool) {
28130	return nil, false
28131}
28132
28133// AsServiceNewHealthReportEvent is the BasicFabricEvent implementation for NodeOpenFailedEvent.
28134func (nofe NodeOpenFailedEvent) AsServiceNewHealthReportEvent() (*ServiceNewHealthReportEvent, bool) {
28135	return nil, false
28136}
28137
28138// AsServiceHealthReportExpiredEvent is the BasicFabricEvent implementation for NodeOpenFailedEvent.
28139func (nofe NodeOpenFailedEvent) AsServiceHealthReportExpiredEvent() (*ServiceHealthReportExpiredEvent, bool) {
28140	return nil, false
28141}
28142
28143// AsDeployedServicePackageNewHealthReportEvent is the BasicFabricEvent implementation for NodeOpenFailedEvent.
28144func (nofe NodeOpenFailedEvent) AsDeployedServicePackageNewHealthReportEvent() (*DeployedServicePackageNewHealthReportEvent, bool) {
28145	return nil, false
28146}
28147
28148// AsDeployedServicePackageHealthReportExpiredEvent is the BasicFabricEvent implementation for NodeOpenFailedEvent.
28149func (nofe NodeOpenFailedEvent) AsDeployedServicePackageHealthReportExpiredEvent() (*DeployedServicePackageHealthReportExpiredEvent, bool) {
28150	return nil, false
28151}
28152
28153// AsStatefulReplicaNewHealthReportEvent is the BasicFabricEvent implementation for NodeOpenFailedEvent.
28154func (nofe NodeOpenFailedEvent) AsStatefulReplicaNewHealthReportEvent() (*StatefulReplicaNewHealthReportEvent, bool) {
28155	return nil, false
28156}
28157
28158// AsStatefulReplicaHealthReportExpiredEvent is the BasicFabricEvent implementation for NodeOpenFailedEvent.
28159func (nofe NodeOpenFailedEvent) AsStatefulReplicaHealthReportExpiredEvent() (*StatefulReplicaHealthReportExpiredEvent, bool) {
28160	return nil, false
28161}
28162
28163// AsStatelessReplicaNewHealthReportEvent is the BasicFabricEvent implementation for NodeOpenFailedEvent.
28164func (nofe NodeOpenFailedEvent) AsStatelessReplicaNewHealthReportEvent() (*StatelessReplicaNewHealthReportEvent, bool) {
28165	return nil, false
28166}
28167
28168// AsStatelessReplicaHealthReportExpiredEvent is the BasicFabricEvent implementation for NodeOpenFailedEvent.
28169func (nofe NodeOpenFailedEvent) AsStatelessReplicaHealthReportExpiredEvent() (*StatelessReplicaHealthReportExpiredEvent, bool) {
28170	return nil, false
28171}
28172
28173// AsClusterNewHealthReportEvent is the BasicFabricEvent implementation for NodeOpenFailedEvent.
28174func (nofe NodeOpenFailedEvent) AsClusterNewHealthReportEvent() (*ClusterNewHealthReportEvent, bool) {
28175	return nil, false
28176}
28177
28178// AsClusterHealthReportExpiredEvent is the BasicFabricEvent implementation for NodeOpenFailedEvent.
28179func (nofe NodeOpenFailedEvent) AsClusterHealthReportExpiredEvent() (*ClusterHealthReportExpiredEvent, bool) {
28180	return nil, false
28181}
28182
28183// AsClusterUpgradeCompletedEvent is the BasicFabricEvent implementation for NodeOpenFailedEvent.
28184func (nofe NodeOpenFailedEvent) AsClusterUpgradeCompletedEvent() (*ClusterUpgradeCompletedEvent, bool) {
28185	return nil, false
28186}
28187
28188// AsClusterUpgradeDomainCompletedEvent is the BasicFabricEvent implementation for NodeOpenFailedEvent.
28189func (nofe NodeOpenFailedEvent) AsClusterUpgradeDomainCompletedEvent() (*ClusterUpgradeDomainCompletedEvent, bool) {
28190	return nil, false
28191}
28192
28193// AsClusterUpgradeRollbackCompletedEvent is the BasicFabricEvent implementation for NodeOpenFailedEvent.
28194func (nofe NodeOpenFailedEvent) AsClusterUpgradeRollbackCompletedEvent() (*ClusterUpgradeRollbackCompletedEvent, bool) {
28195	return nil, false
28196}
28197
28198// AsClusterUpgradeRollbackStartedEvent is the BasicFabricEvent implementation for NodeOpenFailedEvent.
28199func (nofe NodeOpenFailedEvent) AsClusterUpgradeRollbackStartedEvent() (*ClusterUpgradeRollbackStartedEvent, bool) {
28200	return nil, false
28201}
28202
28203// AsClusterUpgradeStartedEvent is the BasicFabricEvent implementation for NodeOpenFailedEvent.
28204func (nofe NodeOpenFailedEvent) AsClusterUpgradeStartedEvent() (*ClusterUpgradeStartedEvent, bool) {
28205	return nil, false
28206}
28207
28208// AsChaosStoppedEvent is the BasicFabricEvent implementation for NodeOpenFailedEvent.
28209func (nofe NodeOpenFailedEvent) AsChaosStoppedEvent() (*ChaosStoppedEvent, bool) {
28210	return nil, false
28211}
28212
28213// AsChaosStartedEvent is the BasicFabricEvent implementation for NodeOpenFailedEvent.
28214func (nofe NodeOpenFailedEvent) AsChaosStartedEvent() (*ChaosStartedEvent, bool) {
28215	return nil, false
28216}
28217
28218// AsChaosCodePackageRestartScheduledEvent is the BasicFabricEvent implementation for NodeOpenFailedEvent.
28219func (nofe NodeOpenFailedEvent) AsChaosCodePackageRestartScheduledEvent() (*ChaosCodePackageRestartScheduledEvent, bool) {
28220	return nil, false
28221}
28222
28223// AsChaosReplicaRemovalScheduledEvent is the BasicFabricEvent implementation for NodeOpenFailedEvent.
28224func (nofe NodeOpenFailedEvent) AsChaosReplicaRemovalScheduledEvent() (*ChaosReplicaRemovalScheduledEvent, bool) {
28225	return nil, false
28226}
28227
28228// AsChaosPartitionSecondaryMoveScheduledEvent is the BasicFabricEvent implementation for NodeOpenFailedEvent.
28229func (nofe NodeOpenFailedEvent) AsChaosPartitionSecondaryMoveScheduledEvent() (*ChaosPartitionSecondaryMoveScheduledEvent, bool) {
28230	return nil, false
28231}
28232
28233// AsChaosPartitionPrimaryMoveScheduledEvent is the BasicFabricEvent implementation for NodeOpenFailedEvent.
28234func (nofe NodeOpenFailedEvent) AsChaosPartitionPrimaryMoveScheduledEvent() (*ChaosPartitionPrimaryMoveScheduledEvent, bool) {
28235	return nil, false
28236}
28237
28238// AsChaosReplicaRestartScheduledEvent is the BasicFabricEvent implementation for NodeOpenFailedEvent.
28239func (nofe NodeOpenFailedEvent) AsChaosReplicaRestartScheduledEvent() (*ChaosReplicaRestartScheduledEvent, bool) {
28240	return nil, false
28241}
28242
28243// AsChaosNodeRestartScheduledEvent is the BasicFabricEvent implementation for NodeOpenFailedEvent.
28244func (nofe NodeOpenFailedEvent) AsChaosNodeRestartScheduledEvent() (*ChaosNodeRestartScheduledEvent, bool) {
28245	return nil, false
28246}
28247
28248// AsFabricEvent is the BasicFabricEvent implementation for NodeOpenFailedEvent.
28249func (nofe NodeOpenFailedEvent) AsFabricEvent() (*FabricEvent, bool) {
28250	return nil, false
28251}
28252
28253// AsBasicFabricEvent is the BasicFabricEvent implementation for NodeOpenFailedEvent.
28254func (nofe NodeOpenFailedEvent) AsBasicFabricEvent() (BasicFabricEvent, bool) {
28255	return &nofe, true
28256}
28257
28258// NodeOpenSucceededEvent node Opened Succeeded event.
28259type NodeOpenSucceededEvent struct {
28260	// NodeInstance - Id of Node instance.
28261	NodeInstance *int64 `json:"NodeInstance,omitempty"`
28262	// NodeID - Id of Node.
28263	NodeID *string `json:"NodeId,omitempty"`
28264	// UpgradeDomain - Upgrade domain of Node.
28265	UpgradeDomain *string `json:"UpgradeDomain,omitempty"`
28266	// FaultDomain - Fault domain of Node.
28267	FaultDomain *string `json:"FaultDomain,omitempty"`
28268	// IPAddressOrFQDN - IP address or FQDN.
28269	IPAddressOrFQDN *string `json:"IpAddressOrFQDN,omitempty"`
28270	// Hostname - Name of Host.
28271	Hostname *string `json:"Hostname,omitempty"`
28272	// IsSeedNode - Indicates if it is seed node.
28273	IsSeedNode *bool `json:"IsSeedNode,omitempty"`
28274	// NodeVersion - Version of Node.
28275	NodeVersion *string `json:"NodeVersion,omitempty"`
28276	// NodeName - The name of a Service Fabric node.
28277	NodeName *string `json:"NodeName,omitempty"`
28278	// EventInstanceID - The identifier for the FabricEvent instance.
28279	EventInstanceID *uuid.UUID `json:"EventInstanceId,omitempty"`
28280	// Category - The category of event.
28281	Category *string `json:"Category,omitempty"`
28282	// TimeStamp - The time event was logged.
28283	TimeStamp *date.Time `json:"TimeStamp,omitempty"`
28284	// HasCorrelatedEvents - Shows there is existing related events available.
28285	HasCorrelatedEvents *bool `json:"HasCorrelatedEvents,omitempty"`
28286	// 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'
28287	Kind KindBasicFabricEvent `json:"Kind,omitempty"`
28288}
28289
28290// MarshalJSON is the custom marshaler for NodeOpenSucceededEvent.
28291func (nose NodeOpenSucceededEvent) MarshalJSON() ([]byte, error) {
28292	nose.Kind = KindNodeOpenSucceeded
28293	objectMap := make(map[string]interface{})
28294	if nose.NodeInstance != nil {
28295		objectMap["NodeInstance"] = nose.NodeInstance
28296	}
28297	if nose.NodeID != nil {
28298		objectMap["NodeId"] = nose.NodeID
28299	}
28300	if nose.UpgradeDomain != nil {
28301		objectMap["UpgradeDomain"] = nose.UpgradeDomain
28302	}
28303	if nose.FaultDomain != nil {
28304		objectMap["FaultDomain"] = nose.FaultDomain
28305	}
28306	if nose.IPAddressOrFQDN != nil {
28307		objectMap["IpAddressOrFQDN"] = nose.IPAddressOrFQDN
28308	}
28309	if nose.Hostname != nil {
28310		objectMap["Hostname"] = nose.Hostname
28311	}
28312	if nose.IsSeedNode != nil {
28313		objectMap["IsSeedNode"] = nose.IsSeedNode
28314	}
28315	if nose.NodeVersion != nil {
28316		objectMap["NodeVersion"] = nose.NodeVersion
28317	}
28318	if nose.NodeName != nil {
28319		objectMap["NodeName"] = nose.NodeName
28320	}
28321	if nose.EventInstanceID != nil {
28322		objectMap["EventInstanceId"] = nose.EventInstanceID
28323	}
28324	if nose.Category != nil {
28325		objectMap["Category"] = nose.Category
28326	}
28327	if nose.TimeStamp != nil {
28328		objectMap["TimeStamp"] = nose.TimeStamp
28329	}
28330	if nose.HasCorrelatedEvents != nil {
28331		objectMap["HasCorrelatedEvents"] = nose.HasCorrelatedEvents
28332	}
28333	if nose.Kind != "" {
28334		objectMap["Kind"] = nose.Kind
28335	}
28336	return json.Marshal(objectMap)
28337}
28338
28339// AsApplicationEvent is the BasicFabricEvent implementation for NodeOpenSucceededEvent.
28340func (nose NodeOpenSucceededEvent) AsApplicationEvent() (*ApplicationEvent, bool) {
28341	return nil, false
28342}
28343
28344// AsBasicApplicationEvent is the BasicFabricEvent implementation for NodeOpenSucceededEvent.
28345func (nose NodeOpenSucceededEvent) AsBasicApplicationEvent() (BasicApplicationEvent, bool) {
28346	return nil, false
28347}
28348
28349// AsClusterEvent is the BasicFabricEvent implementation for NodeOpenSucceededEvent.
28350func (nose NodeOpenSucceededEvent) AsClusterEvent() (*ClusterEvent, bool) {
28351	return nil, false
28352}
28353
28354// AsBasicClusterEvent is the BasicFabricEvent implementation for NodeOpenSucceededEvent.
28355func (nose NodeOpenSucceededEvent) AsBasicClusterEvent() (BasicClusterEvent, bool) {
28356	return nil, false
28357}
28358
28359// AsContainerInstanceEvent is the BasicFabricEvent implementation for NodeOpenSucceededEvent.
28360func (nose NodeOpenSucceededEvent) AsContainerInstanceEvent() (*ContainerInstanceEvent, bool) {
28361	return nil, false
28362}
28363
28364// AsNodeEvent is the BasicFabricEvent implementation for NodeOpenSucceededEvent.
28365func (nose NodeOpenSucceededEvent) AsNodeEvent() (*NodeEvent, bool) {
28366	return nil, false
28367}
28368
28369// AsBasicNodeEvent is the BasicFabricEvent implementation for NodeOpenSucceededEvent.
28370func (nose NodeOpenSucceededEvent) AsBasicNodeEvent() (BasicNodeEvent, bool) {
28371	return &nose, true
28372}
28373
28374// AsPartitionAnalysisEvent is the BasicFabricEvent implementation for NodeOpenSucceededEvent.
28375func (nose NodeOpenSucceededEvent) AsPartitionAnalysisEvent() (*PartitionAnalysisEvent, bool) {
28376	return nil, false
28377}
28378
28379// AsBasicPartitionAnalysisEvent is the BasicFabricEvent implementation for NodeOpenSucceededEvent.
28380func (nose NodeOpenSucceededEvent) AsBasicPartitionAnalysisEvent() (BasicPartitionAnalysisEvent, bool) {
28381	return nil, false
28382}
28383
28384// AsPartitionEvent is the BasicFabricEvent implementation for NodeOpenSucceededEvent.
28385func (nose NodeOpenSucceededEvent) AsPartitionEvent() (*PartitionEvent, bool) {
28386	return nil, false
28387}
28388
28389// AsBasicPartitionEvent is the BasicFabricEvent implementation for NodeOpenSucceededEvent.
28390func (nose NodeOpenSucceededEvent) AsBasicPartitionEvent() (BasicPartitionEvent, bool) {
28391	return nil, false
28392}
28393
28394// AsReplicaEvent is the BasicFabricEvent implementation for NodeOpenSucceededEvent.
28395func (nose NodeOpenSucceededEvent) AsReplicaEvent() (*ReplicaEvent, bool) {
28396	return nil, false
28397}
28398
28399// AsBasicReplicaEvent is the BasicFabricEvent implementation for NodeOpenSucceededEvent.
28400func (nose NodeOpenSucceededEvent) AsBasicReplicaEvent() (BasicReplicaEvent, bool) {
28401	return nil, false
28402}
28403
28404// AsServiceEvent is the BasicFabricEvent implementation for NodeOpenSucceededEvent.
28405func (nose NodeOpenSucceededEvent) AsServiceEvent() (*ServiceEvent, bool) {
28406	return nil, false
28407}
28408
28409// AsBasicServiceEvent is the BasicFabricEvent implementation for NodeOpenSucceededEvent.
28410func (nose NodeOpenSucceededEvent) AsBasicServiceEvent() (BasicServiceEvent, bool) {
28411	return nil, false
28412}
28413
28414// AsApplicationCreatedEvent is the BasicFabricEvent implementation for NodeOpenSucceededEvent.
28415func (nose NodeOpenSucceededEvent) AsApplicationCreatedEvent() (*ApplicationCreatedEvent, bool) {
28416	return nil, false
28417}
28418
28419// AsApplicationDeletedEvent is the BasicFabricEvent implementation for NodeOpenSucceededEvent.
28420func (nose NodeOpenSucceededEvent) AsApplicationDeletedEvent() (*ApplicationDeletedEvent, bool) {
28421	return nil, false
28422}
28423
28424// AsApplicationNewHealthReportEvent is the BasicFabricEvent implementation for NodeOpenSucceededEvent.
28425func (nose NodeOpenSucceededEvent) AsApplicationNewHealthReportEvent() (*ApplicationNewHealthReportEvent, bool) {
28426	return nil, false
28427}
28428
28429// AsApplicationHealthReportExpiredEvent is the BasicFabricEvent implementation for NodeOpenSucceededEvent.
28430func (nose NodeOpenSucceededEvent) AsApplicationHealthReportExpiredEvent() (*ApplicationHealthReportExpiredEvent, bool) {
28431	return nil, false
28432}
28433
28434// AsApplicationUpgradeCompletedEvent is the BasicFabricEvent implementation for NodeOpenSucceededEvent.
28435func (nose NodeOpenSucceededEvent) AsApplicationUpgradeCompletedEvent() (*ApplicationUpgradeCompletedEvent, bool) {
28436	return nil, false
28437}
28438
28439// AsApplicationUpgradeDomainCompletedEvent is the BasicFabricEvent implementation for NodeOpenSucceededEvent.
28440func (nose NodeOpenSucceededEvent) AsApplicationUpgradeDomainCompletedEvent() (*ApplicationUpgradeDomainCompletedEvent, bool) {
28441	return nil, false
28442}
28443
28444// AsApplicationUpgradeRollbackCompletedEvent is the BasicFabricEvent implementation for NodeOpenSucceededEvent.
28445func (nose NodeOpenSucceededEvent) AsApplicationUpgradeRollbackCompletedEvent() (*ApplicationUpgradeRollbackCompletedEvent, bool) {
28446	return nil, false
28447}
28448
28449// AsApplicationUpgradeRollbackStartedEvent is the BasicFabricEvent implementation for NodeOpenSucceededEvent.
28450func (nose NodeOpenSucceededEvent) AsApplicationUpgradeRollbackStartedEvent() (*ApplicationUpgradeRollbackStartedEvent, bool) {
28451	return nil, false
28452}
28453
28454// AsApplicationUpgradeStartedEvent is the BasicFabricEvent implementation for NodeOpenSucceededEvent.
28455func (nose NodeOpenSucceededEvent) AsApplicationUpgradeStartedEvent() (*ApplicationUpgradeStartedEvent, bool) {
28456	return nil, false
28457}
28458
28459// AsDeployedApplicationNewHealthReportEvent is the BasicFabricEvent implementation for NodeOpenSucceededEvent.
28460func (nose NodeOpenSucceededEvent) AsDeployedApplicationNewHealthReportEvent() (*DeployedApplicationNewHealthReportEvent, bool) {
28461	return nil, false
28462}
28463
28464// AsDeployedApplicationHealthReportExpiredEvent is the BasicFabricEvent implementation for NodeOpenSucceededEvent.
28465func (nose NodeOpenSucceededEvent) AsDeployedApplicationHealthReportExpiredEvent() (*DeployedApplicationHealthReportExpiredEvent, bool) {
28466	return nil, false
28467}
28468
28469// AsApplicationProcessExitedEvent is the BasicFabricEvent implementation for NodeOpenSucceededEvent.
28470func (nose NodeOpenSucceededEvent) AsApplicationProcessExitedEvent() (*ApplicationProcessExitedEvent, bool) {
28471	return nil, false
28472}
28473
28474// AsApplicationContainerInstanceExitedEvent is the BasicFabricEvent implementation for NodeOpenSucceededEvent.
28475func (nose NodeOpenSucceededEvent) AsApplicationContainerInstanceExitedEvent() (*ApplicationContainerInstanceExitedEvent, bool) {
28476	return nil, false
28477}
28478
28479// AsNodeAbortedEvent is the BasicFabricEvent implementation for NodeOpenSucceededEvent.
28480func (nose NodeOpenSucceededEvent) AsNodeAbortedEvent() (*NodeAbortedEvent, bool) {
28481	return nil, false
28482}
28483
28484// AsNodeAddedToClusterEvent is the BasicFabricEvent implementation for NodeOpenSucceededEvent.
28485func (nose NodeOpenSucceededEvent) AsNodeAddedToClusterEvent() (*NodeAddedToClusterEvent, bool) {
28486	return nil, false
28487}
28488
28489// AsNodeClosedEvent is the BasicFabricEvent implementation for NodeOpenSucceededEvent.
28490func (nose NodeOpenSucceededEvent) AsNodeClosedEvent() (*NodeClosedEvent, bool) {
28491	return nil, false
28492}
28493
28494// AsNodeDeactivateCompletedEvent is the BasicFabricEvent implementation for NodeOpenSucceededEvent.
28495func (nose NodeOpenSucceededEvent) AsNodeDeactivateCompletedEvent() (*NodeDeactivateCompletedEvent, bool) {
28496	return nil, false
28497}
28498
28499// AsNodeDeactivateStartedEvent is the BasicFabricEvent implementation for NodeOpenSucceededEvent.
28500func (nose NodeOpenSucceededEvent) AsNodeDeactivateStartedEvent() (*NodeDeactivateStartedEvent, bool) {
28501	return nil, false
28502}
28503
28504// AsNodeDownEvent is the BasicFabricEvent implementation for NodeOpenSucceededEvent.
28505func (nose NodeOpenSucceededEvent) AsNodeDownEvent() (*NodeDownEvent, bool) {
28506	return nil, false
28507}
28508
28509// AsNodeNewHealthReportEvent is the BasicFabricEvent implementation for NodeOpenSucceededEvent.
28510func (nose NodeOpenSucceededEvent) AsNodeNewHealthReportEvent() (*NodeNewHealthReportEvent, bool) {
28511	return nil, false
28512}
28513
28514// AsNodeHealthReportExpiredEvent is the BasicFabricEvent implementation for NodeOpenSucceededEvent.
28515func (nose NodeOpenSucceededEvent) AsNodeHealthReportExpiredEvent() (*NodeHealthReportExpiredEvent, bool) {
28516	return nil, false
28517}
28518
28519// AsNodeOpenSucceededEvent is the BasicFabricEvent implementation for NodeOpenSucceededEvent.
28520func (nose NodeOpenSucceededEvent) AsNodeOpenSucceededEvent() (*NodeOpenSucceededEvent, bool) {
28521	return &nose, true
28522}
28523
28524// AsNodeOpenFailedEvent is the BasicFabricEvent implementation for NodeOpenSucceededEvent.
28525func (nose NodeOpenSucceededEvent) AsNodeOpenFailedEvent() (*NodeOpenFailedEvent, bool) {
28526	return nil, false
28527}
28528
28529// AsNodeRemovedFromClusterEvent is the BasicFabricEvent implementation for NodeOpenSucceededEvent.
28530func (nose NodeOpenSucceededEvent) AsNodeRemovedFromClusterEvent() (*NodeRemovedFromClusterEvent, bool) {
28531	return nil, false
28532}
28533
28534// AsNodeUpEvent is the BasicFabricEvent implementation for NodeOpenSucceededEvent.
28535func (nose NodeOpenSucceededEvent) AsNodeUpEvent() (*NodeUpEvent, bool) {
28536	return nil, false
28537}
28538
28539// AsPartitionNewHealthReportEvent is the BasicFabricEvent implementation for NodeOpenSucceededEvent.
28540func (nose NodeOpenSucceededEvent) AsPartitionNewHealthReportEvent() (*PartitionNewHealthReportEvent, bool) {
28541	return nil, false
28542}
28543
28544// AsPartitionHealthReportExpiredEvent is the BasicFabricEvent implementation for NodeOpenSucceededEvent.
28545func (nose NodeOpenSucceededEvent) AsPartitionHealthReportExpiredEvent() (*PartitionHealthReportExpiredEvent, bool) {
28546	return nil, false
28547}
28548
28549// AsPartitionReconfiguredEvent is the BasicFabricEvent implementation for NodeOpenSucceededEvent.
28550func (nose NodeOpenSucceededEvent) AsPartitionReconfiguredEvent() (*PartitionReconfiguredEvent, bool) {
28551	return nil, false
28552}
28553
28554// AsPartitionPrimaryMoveAnalysisEvent is the BasicFabricEvent implementation for NodeOpenSucceededEvent.
28555func (nose NodeOpenSucceededEvent) AsPartitionPrimaryMoveAnalysisEvent() (*PartitionPrimaryMoveAnalysisEvent, bool) {
28556	return nil, false
28557}
28558
28559// AsServiceCreatedEvent is the BasicFabricEvent implementation for NodeOpenSucceededEvent.
28560func (nose NodeOpenSucceededEvent) AsServiceCreatedEvent() (*ServiceCreatedEvent, bool) {
28561	return nil, false
28562}
28563
28564// AsServiceDeletedEvent is the BasicFabricEvent implementation for NodeOpenSucceededEvent.
28565func (nose NodeOpenSucceededEvent) AsServiceDeletedEvent() (*ServiceDeletedEvent, bool) {
28566	return nil, false
28567}
28568
28569// AsServiceNewHealthReportEvent is the BasicFabricEvent implementation for NodeOpenSucceededEvent.
28570func (nose NodeOpenSucceededEvent) AsServiceNewHealthReportEvent() (*ServiceNewHealthReportEvent, bool) {
28571	return nil, false
28572}
28573
28574// AsServiceHealthReportExpiredEvent is the BasicFabricEvent implementation for NodeOpenSucceededEvent.
28575func (nose NodeOpenSucceededEvent) AsServiceHealthReportExpiredEvent() (*ServiceHealthReportExpiredEvent, bool) {
28576	return nil, false
28577}
28578
28579// AsDeployedServicePackageNewHealthReportEvent is the BasicFabricEvent implementation for NodeOpenSucceededEvent.
28580func (nose NodeOpenSucceededEvent) AsDeployedServicePackageNewHealthReportEvent() (*DeployedServicePackageNewHealthReportEvent, bool) {
28581	return nil, false
28582}
28583
28584// AsDeployedServicePackageHealthReportExpiredEvent is the BasicFabricEvent implementation for NodeOpenSucceededEvent.
28585func (nose NodeOpenSucceededEvent) AsDeployedServicePackageHealthReportExpiredEvent() (*DeployedServicePackageHealthReportExpiredEvent, bool) {
28586	return nil, false
28587}
28588
28589// AsStatefulReplicaNewHealthReportEvent is the BasicFabricEvent implementation for NodeOpenSucceededEvent.
28590func (nose NodeOpenSucceededEvent) AsStatefulReplicaNewHealthReportEvent() (*StatefulReplicaNewHealthReportEvent, bool) {
28591	return nil, false
28592}
28593
28594// AsStatefulReplicaHealthReportExpiredEvent is the BasicFabricEvent implementation for NodeOpenSucceededEvent.
28595func (nose NodeOpenSucceededEvent) AsStatefulReplicaHealthReportExpiredEvent() (*StatefulReplicaHealthReportExpiredEvent, bool) {
28596	return nil, false
28597}
28598
28599// AsStatelessReplicaNewHealthReportEvent is the BasicFabricEvent implementation for NodeOpenSucceededEvent.
28600func (nose NodeOpenSucceededEvent) AsStatelessReplicaNewHealthReportEvent() (*StatelessReplicaNewHealthReportEvent, bool) {
28601	return nil, false
28602}
28603
28604// AsStatelessReplicaHealthReportExpiredEvent is the BasicFabricEvent implementation for NodeOpenSucceededEvent.
28605func (nose NodeOpenSucceededEvent) AsStatelessReplicaHealthReportExpiredEvent() (*StatelessReplicaHealthReportExpiredEvent, bool) {
28606	return nil, false
28607}
28608
28609// AsClusterNewHealthReportEvent is the BasicFabricEvent implementation for NodeOpenSucceededEvent.
28610func (nose NodeOpenSucceededEvent) AsClusterNewHealthReportEvent() (*ClusterNewHealthReportEvent, bool) {
28611	return nil, false
28612}
28613
28614// AsClusterHealthReportExpiredEvent is the BasicFabricEvent implementation for NodeOpenSucceededEvent.
28615func (nose NodeOpenSucceededEvent) AsClusterHealthReportExpiredEvent() (*ClusterHealthReportExpiredEvent, bool) {
28616	return nil, false
28617}
28618
28619// AsClusterUpgradeCompletedEvent is the BasicFabricEvent implementation for NodeOpenSucceededEvent.
28620func (nose NodeOpenSucceededEvent) AsClusterUpgradeCompletedEvent() (*ClusterUpgradeCompletedEvent, bool) {
28621	return nil, false
28622}
28623
28624// AsClusterUpgradeDomainCompletedEvent is the BasicFabricEvent implementation for NodeOpenSucceededEvent.
28625func (nose NodeOpenSucceededEvent) AsClusterUpgradeDomainCompletedEvent() (*ClusterUpgradeDomainCompletedEvent, bool) {
28626	return nil, false
28627}
28628
28629// AsClusterUpgradeRollbackCompletedEvent is the BasicFabricEvent implementation for NodeOpenSucceededEvent.
28630func (nose NodeOpenSucceededEvent) AsClusterUpgradeRollbackCompletedEvent() (*ClusterUpgradeRollbackCompletedEvent, bool) {
28631	return nil, false
28632}
28633
28634// AsClusterUpgradeRollbackStartedEvent is the BasicFabricEvent implementation for NodeOpenSucceededEvent.
28635func (nose NodeOpenSucceededEvent) AsClusterUpgradeRollbackStartedEvent() (*ClusterUpgradeRollbackStartedEvent, bool) {
28636	return nil, false
28637}
28638
28639// AsClusterUpgradeStartedEvent is the BasicFabricEvent implementation for NodeOpenSucceededEvent.
28640func (nose NodeOpenSucceededEvent) AsClusterUpgradeStartedEvent() (*ClusterUpgradeStartedEvent, bool) {
28641	return nil, false
28642}
28643
28644// AsChaosStoppedEvent is the BasicFabricEvent implementation for NodeOpenSucceededEvent.
28645func (nose NodeOpenSucceededEvent) AsChaosStoppedEvent() (*ChaosStoppedEvent, bool) {
28646	return nil, false
28647}
28648
28649// AsChaosStartedEvent is the BasicFabricEvent implementation for NodeOpenSucceededEvent.
28650func (nose NodeOpenSucceededEvent) AsChaosStartedEvent() (*ChaosStartedEvent, bool) {
28651	return nil, false
28652}
28653
28654// AsChaosCodePackageRestartScheduledEvent is the BasicFabricEvent implementation for NodeOpenSucceededEvent.
28655func (nose NodeOpenSucceededEvent) AsChaosCodePackageRestartScheduledEvent() (*ChaosCodePackageRestartScheduledEvent, bool) {
28656	return nil, false
28657}
28658
28659// AsChaosReplicaRemovalScheduledEvent is the BasicFabricEvent implementation for NodeOpenSucceededEvent.
28660func (nose NodeOpenSucceededEvent) AsChaosReplicaRemovalScheduledEvent() (*ChaosReplicaRemovalScheduledEvent, bool) {
28661	return nil, false
28662}
28663
28664// AsChaosPartitionSecondaryMoveScheduledEvent is the BasicFabricEvent implementation for NodeOpenSucceededEvent.
28665func (nose NodeOpenSucceededEvent) AsChaosPartitionSecondaryMoveScheduledEvent() (*ChaosPartitionSecondaryMoveScheduledEvent, bool) {
28666	return nil, false
28667}
28668
28669// AsChaosPartitionPrimaryMoveScheduledEvent is the BasicFabricEvent implementation for NodeOpenSucceededEvent.
28670func (nose NodeOpenSucceededEvent) AsChaosPartitionPrimaryMoveScheduledEvent() (*ChaosPartitionPrimaryMoveScheduledEvent, bool) {
28671	return nil, false
28672}
28673
28674// AsChaosReplicaRestartScheduledEvent is the BasicFabricEvent implementation for NodeOpenSucceededEvent.
28675func (nose NodeOpenSucceededEvent) AsChaosReplicaRestartScheduledEvent() (*ChaosReplicaRestartScheduledEvent, bool) {
28676	return nil, false
28677}
28678
28679// AsChaosNodeRestartScheduledEvent is the BasicFabricEvent implementation for NodeOpenSucceededEvent.
28680func (nose NodeOpenSucceededEvent) AsChaosNodeRestartScheduledEvent() (*ChaosNodeRestartScheduledEvent, bool) {
28681	return nil, false
28682}
28683
28684// AsFabricEvent is the BasicFabricEvent implementation for NodeOpenSucceededEvent.
28685func (nose NodeOpenSucceededEvent) AsFabricEvent() (*FabricEvent, bool) {
28686	return nil, false
28687}
28688
28689// AsBasicFabricEvent is the BasicFabricEvent implementation for NodeOpenSucceededEvent.
28690func (nose NodeOpenSucceededEvent) AsBasicFabricEvent() (BasicFabricEvent, bool) {
28691	return &nose, true
28692}
28693
28694// NodeRemovedFromClusterEvent node Removed event.
28695type NodeRemovedFromClusterEvent struct {
28696	// NodeID - Id of Node.
28697	NodeID *string `json:"NodeId,omitempty"`
28698	// NodeInstance - Id of Node instance.
28699	NodeInstance *int64 `json:"NodeInstance,omitempty"`
28700	// NodeType - Type of Node.
28701	NodeType *string `json:"NodeType,omitempty"`
28702	// FabricVersion - Fabric version.
28703	FabricVersion *string `json:"FabricVersion,omitempty"`
28704	// IPAddressOrFQDN - IP address or FQDN.
28705	IPAddressOrFQDN *string `json:"IpAddressOrFQDN,omitempty"`
28706	// NodeCapacities - Capacities.
28707	NodeCapacities *string `json:"NodeCapacities,omitempty"`
28708	// NodeName - The name of a Service Fabric node.
28709	NodeName *string `json:"NodeName,omitempty"`
28710	// EventInstanceID - The identifier for the FabricEvent instance.
28711	EventInstanceID *uuid.UUID `json:"EventInstanceId,omitempty"`
28712	// Category - The category of event.
28713	Category *string `json:"Category,omitempty"`
28714	// TimeStamp - The time event was logged.
28715	TimeStamp *date.Time `json:"TimeStamp,omitempty"`
28716	// HasCorrelatedEvents - Shows there is existing related events available.
28717	HasCorrelatedEvents *bool `json:"HasCorrelatedEvents,omitempty"`
28718	// 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'
28719	Kind KindBasicFabricEvent `json:"Kind,omitempty"`
28720}
28721
28722// MarshalJSON is the custom marshaler for NodeRemovedFromClusterEvent.
28723func (nrfce NodeRemovedFromClusterEvent) MarshalJSON() ([]byte, error) {
28724	nrfce.Kind = KindNodeRemovedFromCluster
28725	objectMap := make(map[string]interface{})
28726	if nrfce.NodeID != nil {
28727		objectMap["NodeId"] = nrfce.NodeID
28728	}
28729	if nrfce.NodeInstance != nil {
28730		objectMap["NodeInstance"] = nrfce.NodeInstance
28731	}
28732	if nrfce.NodeType != nil {
28733		objectMap["NodeType"] = nrfce.NodeType
28734	}
28735	if nrfce.FabricVersion != nil {
28736		objectMap["FabricVersion"] = nrfce.FabricVersion
28737	}
28738	if nrfce.IPAddressOrFQDN != nil {
28739		objectMap["IpAddressOrFQDN"] = nrfce.IPAddressOrFQDN
28740	}
28741	if nrfce.NodeCapacities != nil {
28742		objectMap["NodeCapacities"] = nrfce.NodeCapacities
28743	}
28744	if nrfce.NodeName != nil {
28745		objectMap["NodeName"] = nrfce.NodeName
28746	}
28747	if nrfce.EventInstanceID != nil {
28748		objectMap["EventInstanceId"] = nrfce.EventInstanceID
28749	}
28750	if nrfce.Category != nil {
28751		objectMap["Category"] = nrfce.Category
28752	}
28753	if nrfce.TimeStamp != nil {
28754		objectMap["TimeStamp"] = nrfce.TimeStamp
28755	}
28756	if nrfce.HasCorrelatedEvents != nil {
28757		objectMap["HasCorrelatedEvents"] = nrfce.HasCorrelatedEvents
28758	}
28759	if nrfce.Kind != "" {
28760		objectMap["Kind"] = nrfce.Kind
28761	}
28762	return json.Marshal(objectMap)
28763}
28764
28765// AsApplicationEvent is the BasicFabricEvent implementation for NodeRemovedFromClusterEvent.
28766func (nrfce NodeRemovedFromClusterEvent) AsApplicationEvent() (*ApplicationEvent, bool) {
28767	return nil, false
28768}
28769
28770// AsBasicApplicationEvent is the BasicFabricEvent implementation for NodeRemovedFromClusterEvent.
28771func (nrfce NodeRemovedFromClusterEvent) AsBasicApplicationEvent() (BasicApplicationEvent, bool) {
28772	return nil, false
28773}
28774
28775// AsClusterEvent is the BasicFabricEvent implementation for NodeRemovedFromClusterEvent.
28776func (nrfce NodeRemovedFromClusterEvent) AsClusterEvent() (*ClusterEvent, bool) {
28777	return nil, false
28778}
28779
28780// AsBasicClusterEvent is the BasicFabricEvent implementation for NodeRemovedFromClusterEvent.
28781func (nrfce NodeRemovedFromClusterEvent) AsBasicClusterEvent() (BasicClusterEvent, bool) {
28782	return nil, false
28783}
28784
28785// AsContainerInstanceEvent is the BasicFabricEvent implementation for NodeRemovedFromClusterEvent.
28786func (nrfce NodeRemovedFromClusterEvent) AsContainerInstanceEvent() (*ContainerInstanceEvent, bool) {
28787	return nil, false
28788}
28789
28790// AsNodeEvent is the BasicFabricEvent implementation for NodeRemovedFromClusterEvent.
28791func (nrfce NodeRemovedFromClusterEvent) AsNodeEvent() (*NodeEvent, bool) {
28792	return nil, false
28793}
28794
28795// AsBasicNodeEvent is the BasicFabricEvent implementation for NodeRemovedFromClusterEvent.
28796func (nrfce NodeRemovedFromClusterEvent) AsBasicNodeEvent() (BasicNodeEvent, bool) {
28797	return &nrfce, true
28798}
28799
28800// AsPartitionAnalysisEvent is the BasicFabricEvent implementation for NodeRemovedFromClusterEvent.
28801func (nrfce NodeRemovedFromClusterEvent) AsPartitionAnalysisEvent() (*PartitionAnalysisEvent, bool) {
28802	return nil, false
28803}
28804
28805// AsBasicPartitionAnalysisEvent is the BasicFabricEvent implementation for NodeRemovedFromClusterEvent.
28806func (nrfce NodeRemovedFromClusterEvent) AsBasicPartitionAnalysisEvent() (BasicPartitionAnalysisEvent, bool) {
28807	return nil, false
28808}
28809
28810// AsPartitionEvent is the BasicFabricEvent implementation for NodeRemovedFromClusterEvent.
28811func (nrfce NodeRemovedFromClusterEvent) AsPartitionEvent() (*PartitionEvent, bool) {
28812	return nil, false
28813}
28814
28815// AsBasicPartitionEvent is the BasicFabricEvent implementation for NodeRemovedFromClusterEvent.
28816func (nrfce NodeRemovedFromClusterEvent) AsBasicPartitionEvent() (BasicPartitionEvent, bool) {
28817	return nil, false
28818}
28819
28820// AsReplicaEvent is the BasicFabricEvent implementation for NodeRemovedFromClusterEvent.
28821func (nrfce NodeRemovedFromClusterEvent) AsReplicaEvent() (*ReplicaEvent, bool) {
28822	return nil, false
28823}
28824
28825// AsBasicReplicaEvent is the BasicFabricEvent implementation for NodeRemovedFromClusterEvent.
28826func (nrfce NodeRemovedFromClusterEvent) AsBasicReplicaEvent() (BasicReplicaEvent, bool) {
28827	return nil, false
28828}
28829
28830// AsServiceEvent is the BasicFabricEvent implementation for NodeRemovedFromClusterEvent.
28831func (nrfce NodeRemovedFromClusterEvent) AsServiceEvent() (*ServiceEvent, bool) {
28832	return nil, false
28833}
28834
28835// AsBasicServiceEvent is the BasicFabricEvent implementation for NodeRemovedFromClusterEvent.
28836func (nrfce NodeRemovedFromClusterEvent) AsBasicServiceEvent() (BasicServiceEvent, bool) {
28837	return nil, false
28838}
28839
28840// AsApplicationCreatedEvent is the BasicFabricEvent implementation for NodeRemovedFromClusterEvent.
28841func (nrfce NodeRemovedFromClusterEvent) AsApplicationCreatedEvent() (*ApplicationCreatedEvent, bool) {
28842	return nil, false
28843}
28844
28845// AsApplicationDeletedEvent is the BasicFabricEvent implementation for NodeRemovedFromClusterEvent.
28846func (nrfce NodeRemovedFromClusterEvent) AsApplicationDeletedEvent() (*ApplicationDeletedEvent, bool) {
28847	return nil, false
28848}
28849
28850// AsApplicationNewHealthReportEvent is the BasicFabricEvent implementation for NodeRemovedFromClusterEvent.
28851func (nrfce NodeRemovedFromClusterEvent) AsApplicationNewHealthReportEvent() (*ApplicationNewHealthReportEvent, bool) {
28852	return nil, false
28853}
28854
28855// AsApplicationHealthReportExpiredEvent is the BasicFabricEvent implementation for NodeRemovedFromClusterEvent.
28856func (nrfce NodeRemovedFromClusterEvent) AsApplicationHealthReportExpiredEvent() (*ApplicationHealthReportExpiredEvent, bool) {
28857	return nil, false
28858}
28859
28860// AsApplicationUpgradeCompletedEvent is the BasicFabricEvent implementation for NodeRemovedFromClusterEvent.
28861func (nrfce NodeRemovedFromClusterEvent) AsApplicationUpgradeCompletedEvent() (*ApplicationUpgradeCompletedEvent, bool) {
28862	return nil, false
28863}
28864
28865// AsApplicationUpgradeDomainCompletedEvent is the BasicFabricEvent implementation for NodeRemovedFromClusterEvent.
28866func (nrfce NodeRemovedFromClusterEvent) AsApplicationUpgradeDomainCompletedEvent() (*ApplicationUpgradeDomainCompletedEvent, bool) {
28867	return nil, false
28868}
28869
28870// AsApplicationUpgradeRollbackCompletedEvent is the BasicFabricEvent implementation for NodeRemovedFromClusterEvent.
28871func (nrfce NodeRemovedFromClusterEvent) AsApplicationUpgradeRollbackCompletedEvent() (*ApplicationUpgradeRollbackCompletedEvent, bool) {
28872	return nil, false
28873}
28874
28875// AsApplicationUpgradeRollbackStartedEvent is the BasicFabricEvent implementation for NodeRemovedFromClusterEvent.
28876func (nrfce NodeRemovedFromClusterEvent) AsApplicationUpgradeRollbackStartedEvent() (*ApplicationUpgradeRollbackStartedEvent, bool) {
28877	return nil, false
28878}
28879
28880// AsApplicationUpgradeStartedEvent is the BasicFabricEvent implementation for NodeRemovedFromClusterEvent.
28881func (nrfce NodeRemovedFromClusterEvent) AsApplicationUpgradeStartedEvent() (*ApplicationUpgradeStartedEvent, bool) {
28882	return nil, false
28883}
28884
28885// AsDeployedApplicationNewHealthReportEvent is the BasicFabricEvent implementation for NodeRemovedFromClusterEvent.
28886func (nrfce NodeRemovedFromClusterEvent) AsDeployedApplicationNewHealthReportEvent() (*DeployedApplicationNewHealthReportEvent, bool) {
28887	return nil, false
28888}
28889
28890// AsDeployedApplicationHealthReportExpiredEvent is the BasicFabricEvent implementation for NodeRemovedFromClusterEvent.
28891func (nrfce NodeRemovedFromClusterEvent) AsDeployedApplicationHealthReportExpiredEvent() (*DeployedApplicationHealthReportExpiredEvent, bool) {
28892	return nil, false
28893}
28894
28895// AsApplicationProcessExitedEvent is the BasicFabricEvent implementation for NodeRemovedFromClusterEvent.
28896func (nrfce NodeRemovedFromClusterEvent) AsApplicationProcessExitedEvent() (*ApplicationProcessExitedEvent, bool) {
28897	return nil, false
28898}
28899
28900// AsApplicationContainerInstanceExitedEvent is the BasicFabricEvent implementation for NodeRemovedFromClusterEvent.
28901func (nrfce NodeRemovedFromClusterEvent) AsApplicationContainerInstanceExitedEvent() (*ApplicationContainerInstanceExitedEvent, bool) {
28902	return nil, false
28903}
28904
28905// AsNodeAbortedEvent is the BasicFabricEvent implementation for NodeRemovedFromClusterEvent.
28906func (nrfce NodeRemovedFromClusterEvent) AsNodeAbortedEvent() (*NodeAbortedEvent, bool) {
28907	return nil, false
28908}
28909
28910// AsNodeAddedToClusterEvent is the BasicFabricEvent implementation for NodeRemovedFromClusterEvent.
28911func (nrfce NodeRemovedFromClusterEvent) AsNodeAddedToClusterEvent() (*NodeAddedToClusterEvent, bool) {
28912	return nil, false
28913}
28914
28915// AsNodeClosedEvent is the BasicFabricEvent implementation for NodeRemovedFromClusterEvent.
28916func (nrfce NodeRemovedFromClusterEvent) AsNodeClosedEvent() (*NodeClosedEvent, bool) {
28917	return nil, false
28918}
28919
28920// AsNodeDeactivateCompletedEvent is the BasicFabricEvent implementation for NodeRemovedFromClusterEvent.
28921func (nrfce NodeRemovedFromClusterEvent) AsNodeDeactivateCompletedEvent() (*NodeDeactivateCompletedEvent, bool) {
28922	return nil, false
28923}
28924
28925// AsNodeDeactivateStartedEvent is the BasicFabricEvent implementation for NodeRemovedFromClusterEvent.
28926func (nrfce NodeRemovedFromClusterEvent) AsNodeDeactivateStartedEvent() (*NodeDeactivateStartedEvent, bool) {
28927	return nil, false
28928}
28929
28930// AsNodeDownEvent is the BasicFabricEvent implementation for NodeRemovedFromClusterEvent.
28931func (nrfce NodeRemovedFromClusterEvent) AsNodeDownEvent() (*NodeDownEvent, bool) {
28932	return nil, false
28933}
28934
28935// AsNodeNewHealthReportEvent is the BasicFabricEvent implementation for NodeRemovedFromClusterEvent.
28936func (nrfce NodeRemovedFromClusterEvent) AsNodeNewHealthReportEvent() (*NodeNewHealthReportEvent, bool) {
28937	return nil, false
28938}
28939
28940// AsNodeHealthReportExpiredEvent is the BasicFabricEvent implementation for NodeRemovedFromClusterEvent.
28941func (nrfce NodeRemovedFromClusterEvent) AsNodeHealthReportExpiredEvent() (*NodeHealthReportExpiredEvent, bool) {
28942	return nil, false
28943}
28944
28945// AsNodeOpenSucceededEvent is the BasicFabricEvent implementation for NodeRemovedFromClusterEvent.
28946func (nrfce NodeRemovedFromClusterEvent) AsNodeOpenSucceededEvent() (*NodeOpenSucceededEvent, bool) {
28947	return nil, false
28948}
28949
28950// AsNodeOpenFailedEvent is the BasicFabricEvent implementation for NodeRemovedFromClusterEvent.
28951func (nrfce NodeRemovedFromClusterEvent) AsNodeOpenFailedEvent() (*NodeOpenFailedEvent, bool) {
28952	return nil, false
28953}
28954
28955// AsNodeRemovedFromClusterEvent is the BasicFabricEvent implementation for NodeRemovedFromClusterEvent.
28956func (nrfce NodeRemovedFromClusterEvent) AsNodeRemovedFromClusterEvent() (*NodeRemovedFromClusterEvent, bool) {
28957	return &nrfce, true
28958}
28959
28960// AsNodeUpEvent is the BasicFabricEvent implementation for NodeRemovedFromClusterEvent.
28961func (nrfce NodeRemovedFromClusterEvent) AsNodeUpEvent() (*NodeUpEvent, bool) {
28962	return nil, false
28963}
28964
28965// AsPartitionNewHealthReportEvent is the BasicFabricEvent implementation for NodeRemovedFromClusterEvent.
28966func (nrfce NodeRemovedFromClusterEvent) AsPartitionNewHealthReportEvent() (*PartitionNewHealthReportEvent, bool) {
28967	return nil, false
28968}
28969
28970// AsPartitionHealthReportExpiredEvent is the BasicFabricEvent implementation for NodeRemovedFromClusterEvent.
28971func (nrfce NodeRemovedFromClusterEvent) AsPartitionHealthReportExpiredEvent() (*PartitionHealthReportExpiredEvent, bool) {
28972	return nil, false
28973}
28974
28975// AsPartitionReconfiguredEvent is the BasicFabricEvent implementation for NodeRemovedFromClusterEvent.
28976func (nrfce NodeRemovedFromClusterEvent) AsPartitionReconfiguredEvent() (*PartitionReconfiguredEvent, bool) {
28977	return nil, false
28978}
28979
28980// AsPartitionPrimaryMoveAnalysisEvent is the BasicFabricEvent implementation for NodeRemovedFromClusterEvent.
28981func (nrfce NodeRemovedFromClusterEvent) AsPartitionPrimaryMoveAnalysisEvent() (*PartitionPrimaryMoveAnalysisEvent, bool) {
28982	return nil, false
28983}
28984
28985// AsServiceCreatedEvent is the BasicFabricEvent implementation for NodeRemovedFromClusterEvent.
28986func (nrfce NodeRemovedFromClusterEvent) AsServiceCreatedEvent() (*ServiceCreatedEvent, bool) {
28987	return nil, false
28988}
28989
28990// AsServiceDeletedEvent is the BasicFabricEvent implementation for NodeRemovedFromClusterEvent.
28991func (nrfce NodeRemovedFromClusterEvent) AsServiceDeletedEvent() (*ServiceDeletedEvent, bool) {
28992	return nil, false
28993}
28994
28995// AsServiceNewHealthReportEvent is the BasicFabricEvent implementation for NodeRemovedFromClusterEvent.
28996func (nrfce NodeRemovedFromClusterEvent) AsServiceNewHealthReportEvent() (*ServiceNewHealthReportEvent, bool) {
28997	return nil, false
28998}
28999
29000// AsServiceHealthReportExpiredEvent is the BasicFabricEvent implementation for NodeRemovedFromClusterEvent.
29001func (nrfce NodeRemovedFromClusterEvent) AsServiceHealthReportExpiredEvent() (*ServiceHealthReportExpiredEvent, bool) {
29002	return nil, false
29003}
29004
29005// AsDeployedServicePackageNewHealthReportEvent is the BasicFabricEvent implementation for NodeRemovedFromClusterEvent.
29006func (nrfce NodeRemovedFromClusterEvent) AsDeployedServicePackageNewHealthReportEvent() (*DeployedServicePackageNewHealthReportEvent, bool) {
29007	return nil, false
29008}
29009
29010// AsDeployedServicePackageHealthReportExpiredEvent is the BasicFabricEvent implementation for NodeRemovedFromClusterEvent.
29011func (nrfce NodeRemovedFromClusterEvent) AsDeployedServicePackageHealthReportExpiredEvent() (*DeployedServicePackageHealthReportExpiredEvent, bool) {
29012	return nil, false
29013}
29014
29015// AsStatefulReplicaNewHealthReportEvent is the BasicFabricEvent implementation for NodeRemovedFromClusterEvent.
29016func (nrfce NodeRemovedFromClusterEvent) AsStatefulReplicaNewHealthReportEvent() (*StatefulReplicaNewHealthReportEvent, bool) {
29017	return nil, false
29018}
29019
29020// AsStatefulReplicaHealthReportExpiredEvent is the BasicFabricEvent implementation for NodeRemovedFromClusterEvent.
29021func (nrfce NodeRemovedFromClusterEvent) AsStatefulReplicaHealthReportExpiredEvent() (*StatefulReplicaHealthReportExpiredEvent, bool) {
29022	return nil, false
29023}
29024
29025// AsStatelessReplicaNewHealthReportEvent is the BasicFabricEvent implementation for NodeRemovedFromClusterEvent.
29026func (nrfce NodeRemovedFromClusterEvent) AsStatelessReplicaNewHealthReportEvent() (*StatelessReplicaNewHealthReportEvent, bool) {
29027	return nil, false
29028}
29029
29030// AsStatelessReplicaHealthReportExpiredEvent is the BasicFabricEvent implementation for NodeRemovedFromClusterEvent.
29031func (nrfce NodeRemovedFromClusterEvent) AsStatelessReplicaHealthReportExpiredEvent() (*StatelessReplicaHealthReportExpiredEvent, bool) {
29032	return nil, false
29033}
29034
29035// AsClusterNewHealthReportEvent is the BasicFabricEvent implementation for NodeRemovedFromClusterEvent.
29036func (nrfce NodeRemovedFromClusterEvent) AsClusterNewHealthReportEvent() (*ClusterNewHealthReportEvent, bool) {
29037	return nil, false
29038}
29039
29040// AsClusterHealthReportExpiredEvent is the BasicFabricEvent implementation for NodeRemovedFromClusterEvent.
29041func (nrfce NodeRemovedFromClusterEvent) AsClusterHealthReportExpiredEvent() (*ClusterHealthReportExpiredEvent, bool) {
29042	return nil, false
29043}
29044
29045// AsClusterUpgradeCompletedEvent is the BasicFabricEvent implementation for NodeRemovedFromClusterEvent.
29046func (nrfce NodeRemovedFromClusterEvent) AsClusterUpgradeCompletedEvent() (*ClusterUpgradeCompletedEvent, bool) {
29047	return nil, false
29048}
29049
29050// AsClusterUpgradeDomainCompletedEvent is the BasicFabricEvent implementation for NodeRemovedFromClusterEvent.
29051func (nrfce NodeRemovedFromClusterEvent) AsClusterUpgradeDomainCompletedEvent() (*ClusterUpgradeDomainCompletedEvent, bool) {
29052	return nil, false
29053}
29054
29055// AsClusterUpgradeRollbackCompletedEvent is the BasicFabricEvent implementation for NodeRemovedFromClusterEvent.
29056func (nrfce NodeRemovedFromClusterEvent) AsClusterUpgradeRollbackCompletedEvent() (*ClusterUpgradeRollbackCompletedEvent, bool) {
29057	return nil, false
29058}
29059
29060// AsClusterUpgradeRollbackStartedEvent is the BasicFabricEvent implementation for NodeRemovedFromClusterEvent.
29061func (nrfce NodeRemovedFromClusterEvent) AsClusterUpgradeRollbackStartedEvent() (*ClusterUpgradeRollbackStartedEvent, bool) {
29062	return nil, false
29063}
29064
29065// AsClusterUpgradeStartedEvent is the BasicFabricEvent implementation for NodeRemovedFromClusterEvent.
29066func (nrfce NodeRemovedFromClusterEvent) AsClusterUpgradeStartedEvent() (*ClusterUpgradeStartedEvent, bool) {
29067	return nil, false
29068}
29069
29070// AsChaosStoppedEvent is the BasicFabricEvent implementation for NodeRemovedFromClusterEvent.
29071func (nrfce NodeRemovedFromClusterEvent) AsChaosStoppedEvent() (*ChaosStoppedEvent, bool) {
29072	return nil, false
29073}
29074
29075// AsChaosStartedEvent is the BasicFabricEvent implementation for NodeRemovedFromClusterEvent.
29076func (nrfce NodeRemovedFromClusterEvent) AsChaosStartedEvent() (*ChaosStartedEvent, bool) {
29077	return nil, false
29078}
29079
29080// AsChaosCodePackageRestartScheduledEvent is the BasicFabricEvent implementation for NodeRemovedFromClusterEvent.
29081func (nrfce NodeRemovedFromClusterEvent) AsChaosCodePackageRestartScheduledEvent() (*ChaosCodePackageRestartScheduledEvent, bool) {
29082	return nil, false
29083}
29084
29085// AsChaosReplicaRemovalScheduledEvent is the BasicFabricEvent implementation for NodeRemovedFromClusterEvent.
29086func (nrfce NodeRemovedFromClusterEvent) AsChaosReplicaRemovalScheduledEvent() (*ChaosReplicaRemovalScheduledEvent, bool) {
29087	return nil, false
29088}
29089
29090// AsChaosPartitionSecondaryMoveScheduledEvent is the BasicFabricEvent implementation for NodeRemovedFromClusterEvent.
29091func (nrfce NodeRemovedFromClusterEvent) AsChaosPartitionSecondaryMoveScheduledEvent() (*ChaosPartitionSecondaryMoveScheduledEvent, bool) {
29092	return nil, false
29093}
29094
29095// AsChaosPartitionPrimaryMoveScheduledEvent is the BasicFabricEvent implementation for NodeRemovedFromClusterEvent.
29096func (nrfce NodeRemovedFromClusterEvent) AsChaosPartitionPrimaryMoveScheduledEvent() (*ChaosPartitionPrimaryMoveScheduledEvent, bool) {
29097	return nil, false
29098}
29099
29100// AsChaosReplicaRestartScheduledEvent is the BasicFabricEvent implementation for NodeRemovedFromClusterEvent.
29101func (nrfce NodeRemovedFromClusterEvent) AsChaosReplicaRestartScheduledEvent() (*ChaosReplicaRestartScheduledEvent, bool) {
29102	return nil, false
29103}
29104
29105// AsChaosNodeRestartScheduledEvent is the BasicFabricEvent implementation for NodeRemovedFromClusterEvent.
29106func (nrfce NodeRemovedFromClusterEvent) AsChaosNodeRestartScheduledEvent() (*ChaosNodeRestartScheduledEvent, bool) {
29107	return nil, false
29108}
29109
29110// AsFabricEvent is the BasicFabricEvent implementation for NodeRemovedFromClusterEvent.
29111func (nrfce NodeRemovedFromClusterEvent) AsFabricEvent() (*FabricEvent, bool) {
29112	return nil, false
29113}
29114
29115// AsBasicFabricEvent is the BasicFabricEvent implementation for NodeRemovedFromClusterEvent.
29116func (nrfce NodeRemovedFromClusterEvent) AsBasicFabricEvent() (BasicFabricEvent, bool) {
29117	return &nrfce, true
29118}
29119
29120// NodeRepairImpactDescription describes the expected impact of a repair on a set of nodes.
29121//
29122// This type supports the Service Fabric platform; it is not meant to be used directly from your code.
29123type NodeRepairImpactDescription struct {
29124	// NodeImpactList - The list of nodes impacted by a repair action and their respective expected impact.
29125	NodeImpactList *[]NodeImpact `json:"NodeImpactList,omitempty"`
29126	// Kind - Possible values include: 'KindBasicRepairImpactDescriptionBaseKindRepairImpactDescriptionBase', 'KindBasicRepairImpactDescriptionBaseKindNode'
29127	Kind KindBasicRepairImpactDescriptionBase `json:"Kind,omitempty"`
29128}
29129
29130// MarshalJSON is the custom marshaler for NodeRepairImpactDescription.
29131func (nrid NodeRepairImpactDescription) MarshalJSON() ([]byte, error) {
29132	nrid.Kind = KindBasicRepairImpactDescriptionBaseKindNode
29133	objectMap := make(map[string]interface{})
29134	if nrid.NodeImpactList != nil {
29135		objectMap["NodeImpactList"] = nrid.NodeImpactList
29136	}
29137	if nrid.Kind != "" {
29138		objectMap["Kind"] = nrid.Kind
29139	}
29140	return json.Marshal(objectMap)
29141}
29142
29143// AsNodeRepairImpactDescription is the BasicRepairImpactDescriptionBase implementation for NodeRepairImpactDescription.
29144func (nrid NodeRepairImpactDescription) AsNodeRepairImpactDescription() (*NodeRepairImpactDescription, bool) {
29145	return &nrid, true
29146}
29147
29148// AsRepairImpactDescriptionBase is the BasicRepairImpactDescriptionBase implementation for NodeRepairImpactDescription.
29149func (nrid NodeRepairImpactDescription) AsRepairImpactDescriptionBase() (*RepairImpactDescriptionBase, bool) {
29150	return nil, false
29151}
29152
29153// AsBasicRepairImpactDescriptionBase is the BasicRepairImpactDescriptionBase implementation for NodeRepairImpactDescription.
29154func (nrid NodeRepairImpactDescription) AsBasicRepairImpactDescriptionBase() (BasicRepairImpactDescriptionBase, bool) {
29155	return &nrid, true
29156}
29157
29158// NodeRepairTargetDescription describes the list of nodes targeted by a repair action.
29159//
29160// This type supports the Service Fabric platform; it is not meant to be used directly from your code.
29161type NodeRepairTargetDescription struct {
29162	// NodeNames - The list of nodes targeted by a repair action.
29163	NodeNames *[]string `json:"NodeNames,omitempty"`
29164	// Kind - Possible values include: 'KindBasicRepairTargetDescriptionBaseKindRepairTargetDescriptionBase', 'KindBasicRepairTargetDescriptionBaseKindNode'
29165	Kind KindBasicRepairTargetDescriptionBase `json:"Kind,omitempty"`
29166}
29167
29168// MarshalJSON is the custom marshaler for NodeRepairTargetDescription.
29169func (nrtd NodeRepairTargetDescription) MarshalJSON() ([]byte, error) {
29170	nrtd.Kind = KindBasicRepairTargetDescriptionBaseKindNode
29171	objectMap := make(map[string]interface{})
29172	if nrtd.NodeNames != nil {
29173		objectMap["NodeNames"] = nrtd.NodeNames
29174	}
29175	if nrtd.Kind != "" {
29176		objectMap["Kind"] = nrtd.Kind
29177	}
29178	return json.Marshal(objectMap)
29179}
29180
29181// AsNodeRepairTargetDescription is the BasicRepairTargetDescriptionBase implementation for NodeRepairTargetDescription.
29182func (nrtd NodeRepairTargetDescription) AsNodeRepairTargetDescription() (*NodeRepairTargetDescription, bool) {
29183	return &nrtd, true
29184}
29185
29186// AsRepairTargetDescriptionBase is the BasicRepairTargetDescriptionBase implementation for NodeRepairTargetDescription.
29187func (nrtd NodeRepairTargetDescription) AsRepairTargetDescriptionBase() (*RepairTargetDescriptionBase, bool) {
29188	return nil, false
29189}
29190
29191// AsBasicRepairTargetDescriptionBase is the BasicRepairTargetDescriptionBase implementation for NodeRepairTargetDescription.
29192func (nrtd NodeRepairTargetDescription) AsBasicRepairTargetDescriptionBase() (BasicRepairTargetDescriptionBase, bool) {
29193	return &nrtd, true
29194}
29195
29196// NodeResult contains information about a node that was targeted by a user-induced operation.
29197type NodeResult struct {
29198	// NodeName - The name of a Service Fabric node.
29199	NodeName *string `json:"NodeName,omitempty"`
29200	// NodeInstanceID - The node instance id.
29201	NodeInstanceID *string `json:"NodeInstanceId,omitempty"`
29202}
29203
29204// NodesHealthEvaluation represents health evaluation for nodes, containing health evaluations for each
29205// unhealthy node that impacted current aggregated health state. Can be returned when evaluating cluster
29206// health and the aggregated health state is either Error or Warning.
29207type NodesHealthEvaluation struct {
29208	// MaxPercentUnhealthyNodes - Maximum allowed percentage of unhealthy nodes from the ClusterHealthPolicy.
29209	MaxPercentUnhealthyNodes *int32 `json:"MaxPercentUnhealthyNodes,omitempty"`
29210	// TotalCount - Total number of nodes found in the health store.
29211	TotalCount *int64 `json:"TotalCount,omitempty"`
29212	// UnhealthyEvaluations - List of unhealthy evaluations that led to the aggregated health state. Includes all the unhealthy NodeHealthEvaluation that impacted the aggregated health.
29213	UnhealthyEvaluations *[]HealthEvaluationWrapper `json:"UnhealthyEvaluations,omitempty"`
29214	// 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'
29215	AggregatedHealthState HealthState `json:"AggregatedHealthState,omitempty"`
29216	// Description - Description of the health evaluation, which represents a summary of the evaluation process.
29217	Description *string `json:"Description,omitempty"`
29218	// 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'
29219	Kind Kind `json:"Kind,omitempty"`
29220}
29221
29222// MarshalJSON is the custom marshaler for NodesHealthEvaluation.
29223func (nhe NodesHealthEvaluation) MarshalJSON() ([]byte, error) {
29224	nhe.Kind = KindNodes
29225	objectMap := make(map[string]interface{})
29226	if nhe.MaxPercentUnhealthyNodes != nil {
29227		objectMap["MaxPercentUnhealthyNodes"] = nhe.MaxPercentUnhealthyNodes
29228	}
29229	if nhe.TotalCount != nil {
29230		objectMap["TotalCount"] = nhe.TotalCount
29231	}
29232	if nhe.UnhealthyEvaluations != nil {
29233		objectMap["UnhealthyEvaluations"] = nhe.UnhealthyEvaluations
29234	}
29235	if nhe.AggregatedHealthState != "" {
29236		objectMap["AggregatedHealthState"] = nhe.AggregatedHealthState
29237	}
29238	if nhe.Description != nil {
29239		objectMap["Description"] = nhe.Description
29240	}
29241	if nhe.Kind != "" {
29242		objectMap["Kind"] = nhe.Kind
29243	}
29244	return json.Marshal(objectMap)
29245}
29246
29247// AsApplicationHealthEvaluation is the BasicHealthEvaluation implementation for NodesHealthEvaluation.
29248func (nhe NodesHealthEvaluation) AsApplicationHealthEvaluation() (*ApplicationHealthEvaluation, bool) {
29249	return nil, false
29250}
29251
29252// AsApplicationsHealthEvaluation is the BasicHealthEvaluation implementation for NodesHealthEvaluation.
29253func (nhe NodesHealthEvaluation) AsApplicationsHealthEvaluation() (*ApplicationsHealthEvaluation, bool) {
29254	return nil, false
29255}
29256
29257// AsApplicationTypeApplicationsHealthEvaluation is the BasicHealthEvaluation implementation for NodesHealthEvaluation.
29258func (nhe NodesHealthEvaluation) AsApplicationTypeApplicationsHealthEvaluation() (*ApplicationTypeApplicationsHealthEvaluation, bool) {
29259	return nil, false
29260}
29261
29262// AsDeltaNodesCheckHealthEvaluation is the BasicHealthEvaluation implementation for NodesHealthEvaluation.
29263func (nhe NodesHealthEvaluation) AsDeltaNodesCheckHealthEvaluation() (*DeltaNodesCheckHealthEvaluation, bool) {
29264	return nil, false
29265}
29266
29267// AsDeployedApplicationHealthEvaluation is the BasicHealthEvaluation implementation for NodesHealthEvaluation.
29268func (nhe NodesHealthEvaluation) AsDeployedApplicationHealthEvaluation() (*DeployedApplicationHealthEvaluation, bool) {
29269	return nil, false
29270}
29271
29272// AsDeployedApplicationsHealthEvaluation is the BasicHealthEvaluation implementation for NodesHealthEvaluation.
29273func (nhe NodesHealthEvaluation) AsDeployedApplicationsHealthEvaluation() (*DeployedApplicationsHealthEvaluation, bool) {
29274	return nil, false
29275}
29276
29277// AsDeployedServicePackageHealthEvaluation is the BasicHealthEvaluation implementation for NodesHealthEvaluation.
29278func (nhe NodesHealthEvaluation) AsDeployedServicePackageHealthEvaluation() (*DeployedServicePackageHealthEvaluation, bool) {
29279	return nil, false
29280}
29281
29282// AsDeployedServicePackagesHealthEvaluation is the BasicHealthEvaluation implementation for NodesHealthEvaluation.
29283func (nhe NodesHealthEvaluation) AsDeployedServicePackagesHealthEvaluation() (*DeployedServicePackagesHealthEvaluation, bool) {
29284	return nil, false
29285}
29286
29287// AsEventHealthEvaluation is the BasicHealthEvaluation implementation for NodesHealthEvaluation.
29288func (nhe NodesHealthEvaluation) AsEventHealthEvaluation() (*EventHealthEvaluation, bool) {
29289	return nil, false
29290}
29291
29292// AsNodeHealthEvaluation is the BasicHealthEvaluation implementation for NodesHealthEvaluation.
29293func (nhe NodesHealthEvaluation) AsNodeHealthEvaluation() (*NodeHealthEvaluation, bool) {
29294	return nil, false
29295}
29296
29297// AsNodesHealthEvaluation is the BasicHealthEvaluation implementation for NodesHealthEvaluation.
29298func (nhe NodesHealthEvaluation) AsNodesHealthEvaluation() (*NodesHealthEvaluation, bool) {
29299	return &nhe, true
29300}
29301
29302// AsPartitionHealthEvaluation is the BasicHealthEvaluation implementation for NodesHealthEvaluation.
29303func (nhe NodesHealthEvaluation) AsPartitionHealthEvaluation() (*PartitionHealthEvaluation, bool) {
29304	return nil, false
29305}
29306
29307// AsPartitionsHealthEvaluation is the BasicHealthEvaluation implementation for NodesHealthEvaluation.
29308func (nhe NodesHealthEvaluation) AsPartitionsHealthEvaluation() (*PartitionsHealthEvaluation, bool) {
29309	return nil, false
29310}
29311
29312// AsReplicaHealthEvaluation is the BasicHealthEvaluation implementation for NodesHealthEvaluation.
29313func (nhe NodesHealthEvaluation) AsReplicaHealthEvaluation() (*ReplicaHealthEvaluation, bool) {
29314	return nil, false
29315}
29316
29317// AsReplicasHealthEvaluation is the BasicHealthEvaluation implementation for NodesHealthEvaluation.
29318func (nhe NodesHealthEvaluation) AsReplicasHealthEvaluation() (*ReplicasHealthEvaluation, bool) {
29319	return nil, false
29320}
29321
29322// AsServiceHealthEvaluation is the BasicHealthEvaluation implementation for NodesHealthEvaluation.
29323func (nhe NodesHealthEvaluation) AsServiceHealthEvaluation() (*ServiceHealthEvaluation, bool) {
29324	return nil, false
29325}
29326
29327// AsServicesHealthEvaluation is the BasicHealthEvaluation implementation for NodesHealthEvaluation.
29328func (nhe NodesHealthEvaluation) AsServicesHealthEvaluation() (*ServicesHealthEvaluation, bool) {
29329	return nil, false
29330}
29331
29332// AsSystemApplicationHealthEvaluation is the BasicHealthEvaluation implementation for NodesHealthEvaluation.
29333func (nhe NodesHealthEvaluation) AsSystemApplicationHealthEvaluation() (*SystemApplicationHealthEvaluation, bool) {
29334	return nil, false
29335}
29336
29337// AsUpgradeDomainDeltaNodesCheckHealthEvaluation is the BasicHealthEvaluation implementation for NodesHealthEvaluation.
29338func (nhe NodesHealthEvaluation) AsUpgradeDomainDeltaNodesCheckHealthEvaluation() (*UpgradeDomainDeltaNodesCheckHealthEvaluation, bool) {
29339	return nil, false
29340}
29341
29342// AsUpgradeDomainNodesHealthEvaluation is the BasicHealthEvaluation implementation for NodesHealthEvaluation.
29343func (nhe NodesHealthEvaluation) AsUpgradeDomainNodesHealthEvaluation() (*UpgradeDomainNodesHealthEvaluation, bool) {
29344	return nil, false
29345}
29346
29347// AsHealthEvaluation is the BasicHealthEvaluation implementation for NodesHealthEvaluation.
29348func (nhe NodesHealthEvaluation) AsHealthEvaluation() (*HealthEvaluation, bool) {
29349	return nil, false
29350}
29351
29352// AsBasicHealthEvaluation is the BasicHealthEvaluation implementation for NodesHealthEvaluation.
29353func (nhe NodesHealthEvaluation) AsBasicHealthEvaluation() (BasicHealthEvaluation, bool) {
29354	return &nhe, true
29355}
29356
29357// NodeTransitionProgress information about an NodeTransition operation.  This class contains an
29358// OperationState and a NodeTransitionResult.  The NodeTransitionResult is not valid until OperationState
29359// is Completed or Faulted.
29360type NodeTransitionProgress struct {
29361	autorest.Response `json:"-"`
29362	// State - The state of the operation. Possible values include: 'OperationStateInvalid', 'OperationStateRunning', 'OperationStateRollingBack', 'OperationStateCompleted', 'OperationStateFaulted', 'OperationStateCancelled', 'OperationStateForceCancelled'
29363	State OperationState `json:"State,omitempty"`
29364	// NodeTransitionResult - Represents information about an operation in a terminal state (Completed or Faulted).
29365	NodeTransitionResult *NodeTransitionResult `json:"NodeTransitionResult,omitempty"`
29366}
29367
29368// NodeTransitionResult represents information about an operation in a terminal state (Completed or
29369// Faulted).
29370type NodeTransitionResult struct {
29371	// ErrorCode - If OperationState is Completed, this is 0.  If OperationState is Faulted, this is an error code indicating the reason.
29372	ErrorCode *int32 `json:"ErrorCode,omitempty"`
29373	// NodeResult - Contains information about a node that was targeted by a user-induced operation.
29374	NodeResult *NodeResult `json:"NodeResult,omitempty"`
29375}
29376
29377// NodeUpEvent node Up event.
29378type NodeUpEvent struct {
29379	// NodeInstance - Id of Node instance.
29380	NodeInstance *int64 `json:"NodeInstance,omitempty"`
29381	// LastNodeDownAt - Time when Node was last down.
29382	LastNodeDownAt *date.Time `json:"LastNodeDownAt,omitempty"`
29383	// NodeName - The name of a Service Fabric node.
29384	NodeName *string `json:"NodeName,omitempty"`
29385	// EventInstanceID - The identifier for the FabricEvent instance.
29386	EventInstanceID *uuid.UUID `json:"EventInstanceId,omitempty"`
29387	// Category - The category of event.
29388	Category *string `json:"Category,omitempty"`
29389	// TimeStamp - The time event was logged.
29390	TimeStamp *date.Time `json:"TimeStamp,omitempty"`
29391	// HasCorrelatedEvents - Shows there is existing related events available.
29392	HasCorrelatedEvents *bool `json:"HasCorrelatedEvents,omitempty"`
29393	// 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'
29394	Kind KindBasicFabricEvent `json:"Kind,omitempty"`
29395}
29396
29397// MarshalJSON is the custom marshaler for NodeUpEvent.
29398func (nue NodeUpEvent) MarshalJSON() ([]byte, error) {
29399	nue.Kind = KindNodeUp
29400	objectMap := make(map[string]interface{})
29401	if nue.NodeInstance != nil {
29402		objectMap["NodeInstance"] = nue.NodeInstance
29403	}
29404	if nue.LastNodeDownAt != nil {
29405		objectMap["LastNodeDownAt"] = nue.LastNodeDownAt
29406	}
29407	if nue.NodeName != nil {
29408		objectMap["NodeName"] = nue.NodeName
29409	}
29410	if nue.EventInstanceID != nil {
29411		objectMap["EventInstanceId"] = nue.EventInstanceID
29412	}
29413	if nue.Category != nil {
29414		objectMap["Category"] = nue.Category
29415	}
29416	if nue.TimeStamp != nil {
29417		objectMap["TimeStamp"] = nue.TimeStamp
29418	}
29419	if nue.HasCorrelatedEvents != nil {
29420		objectMap["HasCorrelatedEvents"] = nue.HasCorrelatedEvents
29421	}
29422	if nue.Kind != "" {
29423		objectMap["Kind"] = nue.Kind
29424	}
29425	return json.Marshal(objectMap)
29426}
29427
29428// AsApplicationEvent is the BasicFabricEvent implementation for NodeUpEvent.
29429func (nue NodeUpEvent) AsApplicationEvent() (*ApplicationEvent, bool) {
29430	return nil, false
29431}
29432
29433// AsBasicApplicationEvent is the BasicFabricEvent implementation for NodeUpEvent.
29434func (nue NodeUpEvent) AsBasicApplicationEvent() (BasicApplicationEvent, bool) {
29435	return nil, false
29436}
29437
29438// AsClusterEvent is the BasicFabricEvent implementation for NodeUpEvent.
29439func (nue NodeUpEvent) AsClusterEvent() (*ClusterEvent, bool) {
29440	return nil, false
29441}
29442
29443// AsBasicClusterEvent is the BasicFabricEvent implementation for NodeUpEvent.
29444func (nue NodeUpEvent) AsBasicClusterEvent() (BasicClusterEvent, bool) {
29445	return nil, false
29446}
29447
29448// AsContainerInstanceEvent is the BasicFabricEvent implementation for NodeUpEvent.
29449func (nue NodeUpEvent) AsContainerInstanceEvent() (*ContainerInstanceEvent, bool) {
29450	return nil, false
29451}
29452
29453// AsNodeEvent is the BasicFabricEvent implementation for NodeUpEvent.
29454func (nue NodeUpEvent) AsNodeEvent() (*NodeEvent, bool) {
29455	return nil, false
29456}
29457
29458// AsBasicNodeEvent is the BasicFabricEvent implementation for NodeUpEvent.
29459func (nue NodeUpEvent) AsBasicNodeEvent() (BasicNodeEvent, bool) {
29460	return &nue, true
29461}
29462
29463// AsPartitionAnalysisEvent is the BasicFabricEvent implementation for NodeUpEvent.
29464func (nue NodeUpEvent) AsPartitionAnalysisEvent() (*PartitionAnalysisEvent, bool) {
29465	return nil, false
29466}
29467
29468// AsBasicPartitionAnalysisEvent is the BasicFabricEvent implementation for NodeUpEvent.
29469func (nue NodeUpEvent) AsBasicPartitionAnalysisEvent() (BasicPartitionAnalysisEvent, bool) {
29470	return nil, false
29471}
29472
29473// AsPartitionEvent is the BasicFabricEvent implementation for NodeUpEvent.
29474func (nue NodeUpEvent) AsPartitionEvent() (*PartitionEvent, bool) {
29475	return nil, false
29476}
29477
29478// AsBasicPartitionEvent is the BasicFabricEvent implementation for NodeUpEvent.
29479func (nue NodeUpEvent) AsBasicPartitionEvent() (BasicPartitionEvent, bool) {
29480	return nil, false
29481}
29482
29483// AsReplicaEvent is the BasicFabricEvent implementation for NodeUpEvent.
29484func (nue NodeUpEvent) AsReplicaEvent() (*ReplicaEvent, bool) {
29485	return nil, false
29486}
29487
29488// AsBasicReplicaEvent is the BasicFabricEvent implementation for NodeUpEvent.
29489func (nue NodeUpEvent) AsBasicReplicaEvent() (BasicReplicaEvent, bool) {
29490	return nil, false
29491}
29492
29493// AsServiceEvent is the BasicFabricEvent implementation for NodeUpEvent.
29494func (nue NodeUpEvent) AsServiceEvent() (*ServiceEvent, bool) {
29495	return nil, false
29496}
29497
29498// AsBasicServiceEvent is the BasicFabricEvent implementation for NodeUpEvent.
29499func (nue NodeUpEvent) AsBasicServiceEvent() (BasicServiceEvent, bool) {
29500	return nil, false
29501}
29502
29503// AsApplicationCreatedEvent is the BasicFabricEvent implementation for NodeUpEvent.
29504func (nue NodeUpEvent) AsApplicationCreatedEvent() (*ApplicationCreatedEvent, bool) {
29505	return nil, false
29506}
29507
29508// AsApplicationDeletedEvent is the BasicFabricEvent implementation for NodeUpEvent.
29509func (nue NodeUpEvent) AsApplicationDeletedEvent() (*ApplicationDeletedEvent, bool) {
29510	return nil, false
29511}
29512
29513// AsApplicationNewHealthReportEvent is the BasicFabricEvent implementation for NodeUpEvent.
29514func (nue NodeUpEvent) AsApplicationNewHealthReportEvent() (*ApplicationNewHealthReportEvent, bool) {
29515	return nil, false
29516}
29517
29518// AsApplicationHealthReportExpiredEvent is the BasicFabricEvent implementation for NodeUpEvent.
29519func (nue NodeUpEvent) AsApplicationHealthReportExpiredEvent() (*ApplicationHealthReportExpiredEvent, bool) {
29520	return nil, false
29521}
29522
29523// AsApplicationUpgradeCompletedEvent is the BasicFabricEvent implementation for NodeUpEvent.
29524func (nue NodeUpEvent) AsApplicationUpgradeCompletedEvent() (*ApplicationUpgradeCompletedEvent, bool) {
29525	return nil, false
29526}
29527
29528// AsApplicationUpgradeDomainCompletedEvent is the BasicFabricEvent implementation for NodeUpEvent.
29529func (nue NodeUpEvent) AsApplicationUpgradeDomainCompletedEvent() (*ApplicationUpgradeDomainCompletedEvent, bool) {
29530	return nil, false
29531}
29532
29533// AsApplicationUpgradeRollbackCompletedEvent is the BasicFabricEvent implementation for NodeUpEvent.
29534func (nue NodeUpEvent) AsApplicationUpgradeRollbackCompletedEvent() (*ApplicationUpgradeRollbackCompletedEvent, bool) {
29535	return nil, false
29536}
29537
29538// AsApplicationUpgradeRollbackStartedEvent is the BasicFabricEvent implementation for NodeUpEvent.
29539func (nue NodeUpEvent) AsApplicationUpgradeRollbackStartedEvent() (*ApplicationUpgradeRollbackStartedEvent, bool) {
29540	return nil, false
29541}
29542
29543// AsApplicationUpgradeStartedEvent is the BasicFabricEvent implementation for NodeUpEvent.
29544func (nue NodeUpEvent) AsApplicationUpgradeStartedEvent() (*ApplicationUpgradeStartedEvent, bool) {
29545	return nil, false
29546}
29547
29548// AsDeployedApplicationNewHealthReportEvent is the BasicFabricEvent implementation for NodeUpEvent.
29549func (nue NodeUpEvent) AsDeployedApplicationNewHealthReportEvent() (*DeployedApplicationNewHealthReportEvent, bool) {
29550	return nil, false
29551}
29552
29553// AsDeployedApplicationHealthReportExpiredEvent is the BasicFabricEvent implementation for NodeUpEvent.
29554func (nue NodeUpEvent) AsDeployedApplicationHealthReportExpiredEvent() (*DeployedApplicationHealthReportExpiredEvent, bool) {
29555	return nil, false
29556}
29557
29558// AsApplicationProcessExitedEvent is the BasicFabricEvent implementation for NodeUpEvent.
29559func (nue NodeUpEvent) AsApplicationProcessExitedEvent() (*ApplicationProcessExitedEvent, bool) {
29560	return nil, false
29561}
29562
29563// AsApplicationContainerInstanceExitedEvent is the BasicFabricEvent implementation for NodeUpEvent.
29564func (nue NodeUpEvent) AsApplicationContainerInstanceExitedEvent() (*ApplicationContainerInstanceExitedEvent, bool) {
29565	return nil, false
29566}
29567
29568// AsNodeAbortedEvent is the BasicFabricEvent implementation for NodeUpEvent.
29569func (nue NodeUpEvent) AsNodeAbortedEvent() (*NodeAbortedEvent, bool) {
29570	return nil, false
29571}
29572
29573// AsNodeAddedToClusterEvent is the BasicFabricEvent implementation for NodeUpEvent.
29574func (nue NodeUpEvent) AsNodeAddedToClusterEvent() (*NodeAddedToClusterEvent, bool) {
29575	return nil, false
29576}
29577
29578// AsNodeClosedEvent is the BasicFabricEvent implementation for NodeUpEvent.
29579func (nue NodeUpEvent) AsNodeClosedEvent() (*NodeClosedEvent, bool) {
29580	return nil, false
29581}
29582
29583// AsNodeDeactivateCompletedEvent is the BasicFabricEvent implementation for NodeUpEvent.
29584func (nue NodeUpEvent) AsNodeDeactivateCompletedEvent() (*NodeDeactivateCompletedEvent, bool) {
29585	return nil, false
29586}
29587
29588// AsNodeDeactivateStartedEvent is the BasicFabricEvent implementation for NodeUpEvent.
29589func (nue NodeUpEvent) AsNodeDeactivateStartedEvent() (*NodeDeactivateStartedEvent, bool) {
29590	return nil, false
29591}
29592
29593// AsNodeDownEvent is the BasicFabricEvent implementation for NodeUpEvent.
29594func (nue NodeUpEvent) AsNodeDownEvent() (*NodeDownEvent, bool) {
29595	return nil, false
29596}
29597
29598// AsNodeNewHealthReportEvent is the BasicFabricEvent implementation for NodeUpEvent.
29599func (nue NodeUpEvent) AsNodeNewHealthReportEvent() (*NodeNewHealthReportEvent, bool) {
29600	return nil, false
29601}
29602
29603// AsNodeHealthReportExpiredEvent is the BasicFabricEvent implementation for NodeUpEvent.
29604func (nue NodeUpEvent) AsNodeHealthReportExpiredEvent() (*NodeHealthReportExpiredEvent, bool) {
29605	return nil, false
29606}
29607
29608// AsNodeOpenSucceededEvent is the BasicFabricEvent implementation for NodeUpEvent.
29609func (nue NodeUpEvent) AsNodeOpenSucceededEvent() (*NodeOpenSucceededEvent, bool) {
29610	return nil, false
29611}
29612
29613// AsNodeOpenFailedEvent is the BasicFabricEvent implementation for NodeUpEvent.
29614func (nue NodeUpEvent) AsNodeOpenFailedEvent() (*NodeOpenFailedEvent, bool) {
29615	return nil, false
29616}
29617
29618// AsNodeRemovedFromClusterEvent is the BasicFabricEvent implementation for NodeUpEvent.
29619func (nue NodeUpEvent) AsNodeRemovedFromClusterEvent() (*NodeRemovedFromClusterEvent, bool) {
29620	return nil, false
29621}
29622
29623// AsNodeUpEvent is the BasicFabricEvent implementation for NodeUpEvent.
29624func (nue NodeUpEvent) AsNodeUpEvent() (*NodeUpEvent, bool) {
29625	return &nue, true
29626}
29627
29628// AsPartitionNewHealthReportEvent is the BasicFabricEvent implementation for NodeUpEvent.
29629func (nue NodeUpEvent) AsPartitionNewHealthReportEvent() (*PartitionNewHealthReportEvent, bool) {
29630	return nil, false
29631}
29632
29633// AsPartitionHealthReportExpiredEvent is the BasicFabricEvent implementation for NodeUpEvent.
29634func (nue NodeUpEvent) AsPartitionHealthReportExpiredEvent() (*PartitionHealthReportExpiredEvent, bool) {
29635	return nil, false
29636}
29637
29638// AsPartitionReconfiguredEvent is the BasicFabricEvent implementation for NodeUpEvent.
29639func (nue NodeUpEvent) AsPartitionReconfiguredEvent() (*PartitionReconfiguredEvent, bool) {
29640	return nil, false
29641}
29642
29643// AsPartitionPrimaryMoveAnalysisEvent is the BasicFabricEvent implementation for NodeUpEvent.
29644func (nue NodeUpEvent) AsPartitionPrimaryMoveAnalysisEvent() (*PartitionPrimaryMoveAnalysisEvent, bool) {
29645	return nil, false
29646}
29647
29648// AsServiceCreatedEvent is the BasicFabricEvent implementation for NodeUpEvent.
29649func (nue NodeUpEvent) AsServiceCreatedEvent() (*ServiceCreatedEvent, bool) {
29650	return nil, false
29651}
29652
29653// AsServiceDeletedEvent is the BasicFabricEvent implementation for NodeUpEvent.
29654func (nue NodeUpEvent) AsServiceDeletedEvent() (*ServiceDeletedEvent, bool) {
29655	return nil, false
29656}
29657
29658// AsServiceNewHealthReportEvent is the BasicFabricEvent implementation for NodeUpEvent.
29659func (nue NodeUpEvent) AsServiceNewHealthReportEvent() (*ServiceNewHealthReportEvent, bool) {
29660	return nil, false
29661}
29662
29663// AsServiceHealthReportExpiredEvent is the BasicFabricEvent implementation for NodeUpEvent.
29664func (nue NodeUpEvent) AsServiceHealthReportExpiredEvent() (*ServiceHealthReportExpiredEvent, bool) {
29665	return nil, false
29666}
29667
29668// AsDeployedServicePackageNewHealthReportEvent is the BasicFabricEvent implementation for NodeUpEvent.
29669func (nue NodeUpEvent) AsDeployedServicePackageNewHealthReportEvent() (*DeployedServicePackageNewHealthReportEvent, bool) {
29670	return nil, false
29671}
29672
29673// AsDeployedServicePackageHealthReportExpiredEvent is the BasicFabricEvent implementation for NodeUpEvent.
29674func (nue NodeUpEvent) AsDeployedServicePackageHealthReportExpiredEvent() (*DeployedServicePackageHealthReportExpiredEvent, bool) {
29675	return nil, false
29676}
29677
29678// AsStatefulReplicaNewHealthReportEvent is the BasicFabricEvent implementation for NodeUpEvent.
29679func (nue NodeUpEvent) AsStatefulReplicaNewHealthReportEvent() (*StatefulReplicaNewHealthReportEvent, bool) {
29680	return nil, false
29681}
29682
29683// AsStatefulReplicaHealthReportExpiredEvent is the BasicFabricEvent implementation for NodeUpEvent.
29684func (nue NodeUpEvent) AsStatefulReplicaHealthReportExpiredEvent() (*StatefulReplicaHealthReportExpiredEvent, bool) {
29685	return nil, false
29686}
29687
29688// AsStatelessReplicaNewHealthReportEvent is the BasicFabricEvent implementation for NodeUpEvent.
29689func (nue NodeUpEvent) AsStatelessReplicaNewHealthReportEvent() (*StatelessReplicaNewHealthReportEvent, bool) {
29690	return nil, false
29691}
29692
29693// AsStatelessReplicaHealthReportExpiredEvent is the BasicFabricEvent implementation for NodeUpEvent.
29694func (nue NodeUpEvent) AsStatelessReplicaHealthReportExpiredEvent() (*StatelessReplicaHealthReportExpiredEvent, bool) {
29695	return nil, false
29696}
29697
29698// AsClusterNewHealthReportEvent is the BasicFabricEvent implementation for NodeUpEvent.
29699func (nue NodeUpEvent) AsClusterNewHealthReportEvent() (*ClusterNewHealthReportEvent, bool) {
29700	return nil, false
29701}
29702
29703// AsClusterHealthReportExpiredEvent is the BasicFabricEvent implementation for NodeUpEvent.
29704func (nue NodeUpEvent) AsClusterHealthReportExpiredEvent() (*ClusterHealthReportExpiredEvent, bool) {
29705	return nil, false
29706}
29707
29708// AsClusterUpgradeCompletedEvent is the BasicFabricEvent implementation for NodeUpEvent.
29709func (nue NodeUpEvent) AsClusterUpgradeCompletedEvent() (*ClusterUpgradeCompletedEvent, bool) {
29710	return nil, false
29711}
29712
29713// AsClusterUpgradeDomainCompletedEvent is the BasicFabricEvent implementation for NodeUpEvent.
29714func (nue NodeUpEvent) AsClusterUpgradeDomainCompletedEvent() (*ClusterUpgradeDomainCompletedEvent, bool) {
29715	return nil, false
29716}
29717
29718// AsClusterUpgradeRollbackCompletedEvent is the BasicFabricEvent implementation for NodeUpEvent.
29719func (nue NodeUpEvent) AsClusterUpgradeRollbackCompletedEvent() (*ClusterUpgradeRollbackCompletedEvent, bool) {
29720	return nil, false
29721}
29722
29723// AsClusterUpgradeRollbackStartedEvent is the BasicFabricEvent implementation for NodeUpEvent.
29724func (nue NodeUpEvent) AsClusterUpgradeRollbackStartedEvent() (*ClusterUpgradeRollbackStartedEvent, bool) {
29725	return nil, false
29726}
29727
29728// AsClusterUpgradeStartedEvent is the BasicFabricEvent implementation for NodeUpEvent.
29729func (nue NodeUpEvent) AsClusterUpgradeStartedEvent() (*ClusterUpgradeStartedEvent, bool) {
29730	return nil, false
29731}
29732
29733// AsChaosStoppedEvent is the BasicFabricEvent implementation for NodeUpEvent.
29734func (nue NodeUpEvent) AsChaosStoppedEvent() (*ChaosStoppedEvent, bool) {
29735	return nil, false
29736}
29737
29738// AsChaosStartedEvent is the BasicFabricEvent implementation for NodeUpEvent.
29739func (nue NodeUpEvent) AsChaosStartedEvent() (*ChaosStartedEvent, bool) {
29740	return nil, false
29741}
29742
29743// AsChaosCodePackageRestartScheduledEvent is the BasicFabricEvent implementation for NodeUpEvent.
29744func (nue NodeUpEvent) AsChaosCodePackageRestartScheduledEvent() (*ChaosCodePackageRestartScheduledEvent, bool) {
29745	return nil, false
29746}
29747
29748// AsChaosReplicaRemovalScheduledEvent is the BasicFabricEvent implementation for NodeUpEvent.
29749func (nue NodeUpEvent) AsChaosReplicaRemovalScheduledEvent() (*ChaosReplicaRemovalScheduledEvent, bool) {
29750	return nil, false
29751}
29752
29753// AsChaosPartitionSecondaryMoveScheduledEvent is the BasicFabricEvent implementation for NodeUpEvent.
29754func (nue NodeUpEvent) AsChaosPartitionSecondaryMoveScheduledEvent() (*ChaosPartitionSecondaryMoveScheduledEvent, bool) {
29755	return nil, false
29756}
29757
29758// AsChaosPartitionPrimaryMoveScheduledEvent is the BasicFabricEvent implementation for NodeUpEvent.
29759func (nue NodeUpEvent) AsChaosPartitionPrimaryMoveScheduledEvent() (*ChaosPartitionPrimaryMoveScheduledEvent, bool) {
29760	return nil, false
29761}
29762
29763// AsChaosReplicaRestartScheduledEvent is the BasicFabricEvent implementation for NodeUpEvent.
29764func (nue NodeUpEvent) AsChaosReplicaRestartScheduledEvent() (*ChaosReplicaRestartScheduledEvent, bool) {
29765	return nil, false
29766}
29767
29768// AsChaosNodeRestartScheduledEvent is the BasicFabricEvent implementation for NodeUpEvent.
29769func (nue NodeUpEvent) AsChaosNodeRestartScheduledEvent() (*ChaosNodeRestartScheduledEvent, bool) {
29770	return nil, false
29771}
29772
29773// AsFabricEvent is the BasicFabricEvent implementation for NodeUpEvent.
29774func (nue NodeUpEvent) AsFabricEvent() (*FabricEvent, bool) {
29775	return nil, false
29776}
29777
29778// AsBasicFabricEvent is the BasicFabricEvent implementation for NodeUpEvent.
29779func (nue NodeUpEvent) AsBasicFabricEvent() (BasicFabricEvent, bool) {
29780	return &nue, true
29781}
29782
29783// NodeUpgradeProgressInfo information about the upgrading node and its status
29784type NodeUpgradeProgressInfo struct {
29785	// NodeName - The name of a Service Fabric node.
29786	NodeName *string `json:"NodeName,omitempty"`
29787	// UpgradePhase - The state of the upgrading node. Possible values include: 'NodeUpgradePhaseInvalid', 'NodeUpgradePhasePreUpgradeSafetyCheck', 'NodeUpgradePhaseUpgrading', 'NodeUpgradePhasePostUpgradeSafetyCheck'
29788	UpgradePhase NodeUpgradePhase `json:"UpgradePhase,omitempty"`
29789	// PendingSafetyChecks - List of pending safety checks
29790	PendingSafetyChecks *[]SafetyCheckWrapper `json:"PendingSafetyChecks,omitempty"`
29791}
29792
29793// OperationStatus contains the OperationId, OperationState, and OperationType for user-induced operations.
29794type OperationStatus struct {
29795	// OperationID - A GUID that identifies a call to this API.  This is also passed into the corresponding GetProgress API.
29796	OperationID *uuid.UUID `json:"OperationId,omitempty"`
29797	// State - The state of the operation. Possible values include: 'OperationStateInvalid', 'OperationStateRunning', 'OperationStateRollingBack', 'OperationStateCompleted', 'OperationStateFaulted', 'OperationStateCancelled', 'OperationStateForceCancelled'
29798	State OperationState `json:"State,omitempty"`
29799	// Type - The type of the operation. Possible values include: 'OperationTypeInvalid', 'OperationTypePartitionDataLoss', 'OperationTypePartitionQuorumLoss', 'OperationTypePartitionRestart', 'OperationTypeNodeTransition'
29800	Type OperationType `json:"Type,omitempty"`
29801}
29802
29803// PackageSharingPolicyInfo represents a policy for the package sharing.
29804type PackageSharingPolicyInfo struct {
29805	// SharedPackageName - The name of code, configuration or data package that should be shared.
29806	SharedPackageName *string `json:"SharedPackageName,omitempty"`
29807	// PackageSharingScope - Represents the scope for PackageSharingPolicy. This is specified during DeployServicePackageToNode operation. Possible values include: 'PackageSharingPolicyScopeNone', 'PackageSharingPolicyScopeAll', 'PackageSharingPolicyScopeCode', 'PackageSharingPolicyScopeConfig', 'PackageSharingPolicyScopeData'
29808	PackageSharingScope PackageSharingPolicyScope `json:"PackageSharingScope,omitempty"`
29809}
29810
29811// PagedApplicationInfoList the list of applications in the cluster. The list is paged when all of the
29812// results cannot fit in a single message. The next set of results can be obtained by executing the same
29813// query with the continuation token provided in this list.
29814type PagedApplicationInfoList struct {
29815	autorest.Response `json:"-"`
29816	// 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.
29817	ContinuationToken *string `json:"ContinuationToken,omitempty"`
29818	// Items - List of application information.
29819	Items *[]ApplicationInfo `json:"Items,omitempty"`
29820}
29821
29822// PagedApplicationResourceDescriptionList the list of application resources. The list is paged when all of
29823// the results cannot fit in a single message. The next set of results can be obtained by executing the
29824// same query with the continuation token provided in this list.
29825type PagedApplicationResourceDescriptionList struct {
29826	autorest.Response `json:"-"`
29827	// 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.
29828	ContinuationToken *string `json:"ContinuationToken,omitempty"`
29829	// Items - One page of the list.
29830	Items *[]ApplicationResourceDescription `json:"Items,omitempty"`
29831}
29832
29833// PagedApplicationTypeInfoList the list of application types that are provisioned or being provisioned in
29834// the cluster. The list is paged when all of the results cannot fit in a single message. The next set of
29835// results can be obtained by executing the same query with the continuation token provided in this list.
29836type PagedApplicationTypeInfoList struct {
29837	autorest.Response `json:"-"`
29838	// 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.
29839	ContinuationToken *string `json:"ContinuationToken,omitempty"`
29840	// Items - List of application type information.
29841	Items *[]ApplicationTypeInfo `json:"Items,omitempty"`
29842}
29843
29844// PagedBackupConfigurationInfoList the list of backup configuration information. The list is paged when
29845// all of the results cannot fit in a single message. The next set of results can be obtained by executing
29846// the same query with the continuation token provided in this list.
29847type PagedBackupConfigurationInfoList struct {
29848	autorest.Response `json:"-"`
29849	// 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.
29850	ContinuationToken *string `json:"ContinuationToken,omitempty"`
29851	// Items - List of backup configuration information.
29852	Items *[]BasicBackupConfigurationInfo `json:"Items,omitempty"`
29853}
29854
29855// UnmarshalJSON is the custom unmarshaler for PagedBackupConfigurationInfoList struct.
29856func (pbcil *PagedBackupConfigurationInfoList) UnmarshalJSON(body []byte) error {
29857	var m map[string]*json.RawMessage
29858	err := json.Unmarshal(body, &m)
29859	if err != nil {
29860		return err
29861	}
29862	for k, v := range m {
29863		switch k {
29864		case "ContinuationToken":
29865			if v != nil {
29866				var continuationToken string
29867				err = json.Unmarshal(*v, &continuationToken)
29868				if err != nil {
29869					return err
29870				}
29871				pbcil.ContinuationToken = &continuationToken
29872			}
29873		case "Items":
29874			if v != nil {
29875				items, err := unmarshalBasicBackupConfigurationInfoArray(*v)
29876				if err != nil {
29877					return err
29878				}
29879				pbcil.Items = &items
29880			}
29881		}
29882	}
29883
29884	return nil
29885}
29886
29887// PagedBackupEntityList the list of backup entities that are being periodically backed. The list is paged
29888// when all of the results cannot fit in a single message. The next set of results can be obtained by
29889// executing the same query with the continuation token provided in this list.
29890type PagedBackupEntityList struct {
29891	autorest.Response `json:"-"`
29892	// 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.
29893	ContinuationToken *string `json:"ContinuationToken,omitempty"`
29894	// Items - List of backup entity information.
29895	Items *[]BasicBackupEntity `json:"Items,omitempty"`
29896}
29897
29898// UnmarshalJSON is the custom unmarshaler for PagedBackupEntityList struct.
29899func (pbel *PagedBackupEntityList) UnmarshalJSON(body []byte) error {
29900	var m map[string]*json.RawMessage
29901	err := json.Unmarshal(body, &m)
29902	if err != nil {
29903		return err
29904	}
29905	for k, v := range m {
29906		switch k {
29907		case "ContinuationToken":
29908			if v != nil {
29909				var continuationToken string
29910				err = json.Unmarshal(*v, &continuationToken)
29911				if err != nil {
29912					return err
29913				}
29914				pbel.ContinuationToken = &continuationToken
29915			}
29916		case "Items":
29917			if v != nil {
29918				items, err := unmarshalBasicBackupEntityArray(*v)
29919				if err != nil {
29920					return err
29921				}
29922				pbel.Items = &items
29923			}
29924		}
29925	}
29926
29927	return nil
29928}
29929
29930// PagedBackupInfoList the list of backups. The list is paged when all of the results cannot fit in a
29931// single message. The next set of results can be obtained by executing the same query with the
29932// continuation token provided in this list.
29933type PagedBackupInfoList struct {
29934	autorest.Response `json:"-"`
29935	// 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.
29936	ContinuationToken *string `json:"ContinuationToken,omitempty"`
29937	// Items - List of backup information.
29938	Items *[]BackupInfo `json:"Items,omitempty"`
29939}
29940
29941// PagedBackupPolicyDescriptionList the list of backup policies configured in the cluster. The list is
29942// paged when all of the results cannot fit in a single message. The next set of results can be obtained by
29943// executing the same query with the continuation token provided in this list.
29944type PagedBackupPolicyDescriptionList struct {
29945	autorest.Response `json:"-"`
29946	// 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.
29947	ContinuationToken *string `json:"ContinuationToken,omitempty"`
29948	// Items - The list of backup policies information.
29949	Items *[]BackupPolicyDescription `json:"Items,omitempty"`
29950}
29951
29952// PagedComposeDeploymentStatusInfoList the list of compose deployments in the cluster. The list is paged
29953// when all of the results cannot fit in a single message. The next set of results can be obtained by
29954// executing the same query with the continuation token provided in this list.
29955type PagedComposeDeploymentStatusInfoList struct {
29956	autorest.Response `json:"-"`
29957	// 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.
29958	ContinuationToken *string `json:"ContinuationToken,omitempty"`
29959	// Items - List of compose deployment status information.
29960	Items *[]ComposeDeploymentStatusInfo `json:"Items,omitempty"`
29961}
29962
29963// PagedDeployedApplicationInfoList the list of deployed applications in activating, downloading, or active
29964// states on a node.
29965// The list is paged when all of the results cannot fit in a single message.
29966// The next set of results can be obtained by executing the same query with the continuation token provided
29967// in this list.
29968type PagedDeployedApplicationInfoList struct {
29969	autorest.Response `json:"-"`
29970	// 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.
29971	ContinuationToken *string `json:"ContinuationToken,omitempty"`
29972	// Items - List of deployed application information.
29973	Items *[]DeployedApplicationInfo `json:"Items,omitempty"`
29974}
29975
29976// PagedGatewayResourceDescriptionList the list of gateway resources. The list is paged when all of the
29977// results cannot fit in a single message. The next set of results can be obtained by executing the same
29978// query with the continuation token provided in this list.
29979type PagedGatewayResourceDescriptionList struct {
29980	autorest.Response `json:"-"`
29981	// 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.
29982	ContinuationToken *string `json:"ContinuationToken,omitempty"`
29983	// Items - One page of the list.
29984	Items *[]GatewayResourceDescription `json:"Items,omitempty"`
29985}
29986
29987// PagedNetworkResourceDescriptionList the list of network resources. The list is paged when all of the
29988// results cannot fit in a single message. The next set of results can be obtained by executing the same
29989// query with the continuation token provided in this list.
29990type PagedNetworkResourceDescriptionList struct {
29991	autorest.Response `json:"-"`
29992	// 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.
29993	ContinuationToken *string `json:"ContinuationToken,omitempty"`
29994	// Items - One page of the list.
29995	Items *[]NetworkResourceDescription `json:"Items,omitempty"`
29996}
29997
29998// PagedNodeInfoList the list of nodes in the cluster. The list is paged when all of the results cannot fit
29999// in a single message. The next set of results can be obtained by executing the same query with the
30000// continuation token provided in this list.
30001type PagedNodeInfoList struct {
30002	autorest.Response `json:"-"`
30003	// 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.
30004	ContinuationToken *string `json:"ContinuationToken,omitempty"`
30005	// Items - List of node information.
30006	Items *[]NodeInfo `json:"Items,omitempty"`
30007}
30008
30009// PagedPropertyInfoList the paged list of Service Fabric properties under a given name. The list is paged
30010// when all of the results cannot fit in a single message. The next set of results can be obtained by
30011// executing the same query with the continuation token provided in this list.
30012type PagedPropertyInfoList struct {
30013	autorest.Response `json:"-"`
30014	// 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.
30015	ContinuationToken *string `json:"ContinuationToken,omitempty"`
30016	// 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.
30017	IsConsistent *bool `json:"IsConsistent,omitempty"`
30018	// Properties - List of property information.
30019	Properties *[]PropertyInfo `json:"Properties,omitempty"`
30020}
30021
30022// PagedReplicaInfoList the list of replicas in the cluster for a given partition. The list is paged when
30023// all of the results cannot fit in a single message. The next set of results can be obtained by executing
30024// the same query with the continuation token provided in this list.
30025type PagedReplicaInfoList struct {
30026	autorest.Response `json:"-"`
30027	// 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.
30028	ContinuationToken *string `json:"ContinuationToken,omitempty"`
30029	// Items - List of replica information.
30030	Items *[]BasicReplicaInfo `json:"Items,omitempty"`
30031}
30032
30033// UnmarshalJSON is the custom unmarshaler for PagedReplicaInfoList struct.
30034func (pril *PagedReplicaInfoList) UnmarshalJSON(body []byte) error {
30035	var m map[string]*json.RawMessage
30036	err := json.Unmarshal(body, &m)
30037	if err != nil {
30038		return err
30039	}
30040	for k, v := range m {
30041		switch k {
30042		case "ContinuationToken":
30043			if v != nil {
30044				var continuationToken string
30045				err = json.Unmarshal(*v, &continuationToken)
30046				if err != nil {
30047					return err
30048				}
30049				pril.ContinuationToken = &continuationToken
30050			}
30051		case "Items":
30052			if v != nil {
30053				items, err := unmarshalBasicReplicaInfoArray(*v)
30054				if err != nil {
30055					return err
30056				}
30057				pril.Items = &items
30058			}
30059		}
30060	}
30061
30062	return nil
30063}
30064
30065// PagedSecretResourceDescriptionList the list of secret resources. The list is paged when all of the
30066// results cannot fit in a single message. The next set of results can be obtained by executing the same
30067// query with the continuation token provided in this list.
30068type PagedSecretResourceDescriptionList struct {
30069	autorest.Response `json:"-"`
30070	// 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.
30071	ContinuationToken *string `json:"ContinuationToken,omitempty"`
30072	// Items - One page of the list.
30073	Items *[]SecretResourceDescription `json:"Items,omitempty"`
30074}
30075
30076// PagedSecretValueResourceDescriptionList the list of values of a secret resource, paged if the number of
30077// results exceeds the limits of a single message. The next set of results can be obtained by executing the
30078// same query with the continuation token provided in the previous page.
30079type PagedSecretValueResourceDescriptionList struct {
30080	autorest.Response `json:"-"`
30081	// 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.
30082	ContinuationToken *string `json:"ContinuationToken,omitempty"`
30083	// Items - One page of the list.
30084	Items *[]SecretValueResourceDescription `json:"Items,omitempty"`
30085}
30086
30087// PagedServiceInfoList the list of services in the cluster for an application. The list is paged when all
30088// of the results cannot fit in a single message. The next set of results can be obtained by executing the
30089// same query with the continuation token provided in this list.
30090type PagedServiceInfoList struct {
30091	autorest.Response `json:"-"`
30092	// 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.
30093	ContinuationToken *string `json:"ContinuationToken,omitempty"`
30094	// Items - List of service information.
30095	Items *[]BasicServiceInfo `json:"Items,omitempty"`
30096}
30097
30098// UnmarshalJSON is the custom unmarshaler for PagedServiceInfoList struct.
30099func (psil *PagedServiceInfoList) UnmarshalJSON(body []byte) error {
30100	var m map[string]*json.RawMessage
30101	err := json.Unmarshal(body, &m)
30102	if err != nil {
30103		return err
30104	}
30105	for k, v := range m {
30106		switch k {
30107		case "ContinuationToken":
30108			if v != nil {
30109				var continuationToken string
30110				err = json.Unmarshal(*v, &continuationToken)
30111				if err != nil {
30112					return err
30113				}
30114				psil.ContinuationToken = &continuationToken
30115			}
30116		case "Items":
30117			if v != nil {
30118				items, err := unmarshalBasicServiceInfoArray(*v)
30119				if err != nil {
30120					return err
30121				}
30122				psil.Items = &items
30123			}
30124		}
30125	}
30126
30127	return nil
30128}
30129
30130// PagedServicePartitionInfoList the list of partition in the cluster for a service. The list is paged when
30131// all of the results cannot fit in a single message. The next set of results can be obtained by executing
30132// the same query with the continuation token provided in this list.
30133type PagedServicePartitionInfoList struct {
30134	autorest.Response `json:"-"`
30135	// 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.
30136	ContinuationToken *string `json:"ContinuationToken,omitempty"`
30137	// Items - List of service partition information.
30138	Items *[]BasicServicePartitionInfo `json:"Items,omitempty"`
30139}
30140
30141// UnmarshalJSON is the custom unmarshaler for PagedServicePartitionInfoList struct.
30142func (pspil *PagedServicePartitionInfoList) UnmarshalJSON(body []byte) error {
30143	var m map[string]*json.RawMessage
30144	err := json.Unmarshal(body, &m)
30145	if err != nil {
30146		return err
30147	}
30148	for k, v := range m {
30149		switch k {
30150		case "ContinuationToken":
30151			if v != nil {
30152				var continuationToken string
30153				err = json.Unmarshal(*v, &continuationToken)
30154				if err != nil {
30155					return err
30156				}
30157				pspil.ContinuationToken = &continuationToken
30158			}
30159		case "Items":
30160			if v != nil {
30161				items, err := unmarshalBasicServicePartitionInfoArray(*v)
30162				if err != nil {
30163					return err
30164				}
30165				pspil.Items = &items
30166			}
30167		}
30168	}
30169
30170	return nil
30171}
30172
30173// PagedServiceReplicaDescriptionList the list of service resource replicas in the cluster. The list is
30174// paged when all of the results cannot fit in a single message. The next set of results can be obtained by
30175// executing the same query with the continuation token provided in this list.
30176type PagedServiceReplicaDescriptionList struct {
30177	autorest.Response `json:"-"`
30178	// 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.
30179	ContinuationToken *string `json:"ContinuationToken,omitempty"`
30180	// Items - List of service resource replica description.
30181	Items *[]ServiceReplicaDescription `json:"Items,omitempty"`
30182}
30183
30184// PagedServiceResourceDescriptionList the list of service resources. The list is paged when all of the
30185// results cannot fit in a single message. The next set of results can be obtained by executing the same
30186// query with the continuation token provided in this list.
30187type PagedServiceResourceDescriptionList struct {
30188	autorest.Response `json:"-"`
30189	// 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.
30190	ContinuationToken *string `json:"ContinuationToken,omitempty"`
30191	// Items - One page of the list.
30192	Items *[]ServiceResourceDescription `json:"Items,omitempty"`
30193}
30194
30195// PagedSubNameInfoList a paged list of Service Fabric names. The list is paged when all of the results
30196// cannot fit in a single message. The next set of results can be obtained by executing the same query with
30197// the continuation token provided in this list.
30198type PagedSubNameInfoList struct {
30199	autorest.Response `json:"-"`
30200	// 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.
30201	ContinuationToken *string `json:"ContinuationToken,omitempty"`
30202	// 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.
30203	IsConsistent *bool `json:"IsConsistent,omitempty"`
30204	// SubNames - List of the child names.
30205	SubNames *[]string `json:"SubNames,omitempty"`
30206}
30207
30208// PagedVolumeResourceDescriptionList the list of volume resources. The list is paged when all of the
30209// results cannot fit in a single message. The next set of results can be obtained by executing the same
30210// query with the continuation token provided in this list.
30211type PagedVolumeResourceDescriptionList struct {
30212	autorest.Response `json:"-"`
30213	// 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.
30214	ContinuationToken *string `json:"ContinuationToken,omitempty"`
30215	// Items - One page of the list.
30216	Items *[]VolumeResourceDescription `json:"Items,omitempty"`
30217}
30218
30219// BasicPartitionAnalysisEvent represents the base for all Partition Analysis Events.
30220type BasicPartitionAnalysisEvent interface {
30221	AsPartitionPrimaryMoveAnalysisEvent() (*PartitionPrimaryMoveAnalysisEvent, bool)
30222	AsPartitionAnalysisEvent() (*PartitionAnalysisEvent, bool)
30223}
30224
30225// PartitionAnalysisEvent represents the base for all Partition Analysis Events.
30226type PartitionAnalysisEvent struct {
30227	// Metadata - Metadata about an Analysis Event.
30228	Metadata *AnalysisEventMetadata `json:"Metadata,omitempty"`
30229	// 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.
30230	PartitionID *uuid.UUID `json:"PartitionId,omitempty"`
30231	// EventInstanceID - The identifier for the FabricEvent instance.
30232	EventInstanceID *uuid.UUID `json:"EventInstanceId,omitempty"`
30233	// Category - The category of event.
30234	Category *string `json:"Category,omitempty"`
30235	// TimeStamp - The time event was logged.
30236	TimeStamp *date.Time `json:"TimeStamp,omitempty"`
30237	// HasCorrelatedEvents - Shows there is existing related events available.
30238	HasCorrelatedEvents *bool `json:"HasCorrelatedEvents,omitempty"`
30239	// 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'
30240	Kind KindBasicFabricEvent `json:"Kind,omitempty"`
30241}
30242
30243func unmarshalBasicPartitionAnalysisEvent(body []byte) (BasicPartitionAnalysisEvent, error) {
30244	var m map[string]interface{}
30245	err := json.Unmarshal(body, &m)
30246	if err != nil {
30247		return nil, err
30248	}
30249
30250	switch m["Kind"] {
30251	case string(KindPartitionPrimaryMoveAnalysis):
30252		var ppmae PartitionPrimaryMoveAnalysisEvent
30253		err := json.Unmarshal(body, &ppmae)
30254		return ppmae, err
30255	default:
30256		var pae PartitionAnalysisEvent
30257		err := json.Unmarshal(body, &pae)
30258		return pae, err
30259	}
30260}
30261func unmarshalBasicPartitionAnalysisEventArray(body []byte) ([]BasicPartitionAnalysisEvent, error) {
30262	var rawMessages []*json.RawMessage
30263	err := json.Unmarshal(body, &rawMessages)
30264	if err != nil {
30265		return nil, err
30266	}
30267
30268	paeArray := make([]BasicPartitionAnalysisEvent, len(rawMessages))
30269
30270	for index, rawMessage := range rawMessages {
30271		pae, err := unmarshalBasicPartitionAnalysisEvent(*rawMessage)
30272		if err != nil {
30273			return nil, err
30274		}
30275		paeArray[index] = pae
30276	}
30277	return paeArray, nil
30278}
30279
30280// MarshalJSON is the custom marshaler for PartitionAnalysisEvent.
30281func (pae PartitionAnalysisEvent) MarshalJSON() ([]byte, error) {
30282	pae.Kind = KindPartitionAnalysisEvent
30283	objectMap := make(map[string]interface{})
30284	if pae.Metadata != nil {
30285		objectMap["Metadata"] = pae.Metadata
30286	}
30287	if pae.PartitionID != nil {
30288		objectMap["PartitionId"] = pae.PartitionID
30289	}
30290	if pae.EventInstanceID != nil {
30291		objectMap["EventInstanceId"] = pae.EventInstanceID
30292	}
30293	if pae.Category != nil {
30294		objectMap["Category"] = pae.Category
30295	}
30296	if pae.TimeStamp != nil {
30297		objectMap["TimeStamp"] = pae.TimeStamp
30298	}
30299	if pae.HasCorrelatedEvents != nil {
30300		objectMap["HasCorrelatedEvents"] = pae.HasCorrelatedEvents
30301	}
30302	if pae.Kind != "" {
30303		objectMap["Kind"] = pae.Kind
30304	}
30305	return json.Marshal(objectMap)
30306}
30307
30308// AsApplicationEvent is the BasicFabricEvent implementation for PartitionAnalysisEvent.
30309func (pae PartitionAnalysisEvent) AsApplicationEvent() (*ApplicationEvent, bool) {
30310	return nil, false
30311}
30312
30313// AsBasicApplicationEvent is the BasicFabricEvent implementation for PartitionAnalysisEvent.
30314func (pae PartitionAnalysisEvent) AsBasicApplicationEvent() (BasicApplicationEvent, bool) {
30315	return nil, false
30316}
30317
30318// AsClusterEvent is the BasicFabricEvent implementation for PartitionAnalysisEvent.
30319func (pae PartitionAnalysisEvent) AsClusterEvent() (*ClusterEvent, bool) {
30320	return nil, false
30321}
30322
30323// AsBasicClusterEvent is the BasicFabricEvent implementation for PartitionAnalysisEvent.
30324func (pae PartitionAnalysisEvent) AsBasicClusterEvent() (BasicClusterEvent, bool) {
30325	return nil, false
30326}
30327
30328// AsContainerInstanceEvent is the BasicFabricEvent implementation for PartitionAnalysisEvent.
30329func (pae PartitionAnalysisEvent) AsContainerInstanceEvent() (*ContainerInstanceEvent, bool) {
30330	return nil, false
30331}
30332
30333// AsNodeEvent is the BasicFabricEvent implementation for PartitionAnalysisEvent.
30334func (pae PartitionAnalysisEvent) AsNodeEvent() (*NodeEvent, bool) {
30335	return nil, false
30336}
30337
30338// AsBasicNodeEvent is the BasicFabricEvent implementation for PartitionAnalysisEvent.
30339func (pae PartitionAnalysisEvent) AsBasicNodeEvent() (BasicNodeEvent, bool) {
30340	return nil, false
30341}
30342
30343// AsPartitionAnalysisEvent is the BasicFabricEvent implementation for PartitionAnalysisEvent.
30344func (pae PartitionAnalysisEvent) AsPartitionAnalysisEvent() (*PartitionAnalysisEvent, bool) {
30345	return &pae, true
30346}
30347
30348// AsBasicPartitionAnalysisEvent is the BasicFabricEvent implementation for PartitionAnalysisEvent.
30349func (pae PartitionAnalysisEvent) AsBasicPartitionAnalysisEvent() (BasicPartitionAnalysisEvent, bool) {
30350	return &pae, true
30351}
30352
30353// AsPartitionEvent is the BasicFabricEvent implementation for PartitionAnalysisEvent.
30354func (pae PartitionAnalysisEvent) AsPartitionEvent() (*PartitionEvent, bool) {
30355	return nil, false
30356}
30357
30358// AsBasicPartitionEvent is the BasicFabricEvent implementation for PartitionAnalysisEvent.
30359func (pae PartitionAnalysisEvent) AsBasicPartitionEvent() (BasicPartitionEvent, bool) {
30360	return &pae, true
30361}
30362
30363// AsReplicaEvent is the BasicFabricEvent implementation for PartitionAnalysisEvent.
30364func (pae PartitionAnalysisEvent) AsReplicaEvent() (*ReplicaEvent, bool) {
30365	return nil, false
30366}
30367
30368// AsBasicReplicaEvent is the BasicFabricEvent implementation for PartitionAnalysisEvent.
30369func (pae PartitionAnalysisEvent) AsBasicReplicaEvent() (BasicReplicaEvent, bool) {
30370	return nil, false
30371}
30372
30373// AsServiceEvent is the BasicFabricEvent implementation for PartitionAnalysisEvent.
30374func (pae PartitionAnalysisEvent) AsServiceEvent() (*ServiceEvent, bool) {
30375	return nil, false
30376}
30377
30378// AsBasicServiceEvent is the BasicFabricEvent implementation for PartitionAnalysisEvent.
30379func (pae PartitionAnalysisEvent) AsBasicServiceEvent() (BasicServiceEvent, bool) {
30380	return nil, false
30381}
30382
30383// AsApplicationCreatedEvent is the BasicFabricEvent implementation for PartitionAnalysisEvent.
30384func (pae PartitionAnalysisEvent) AsApplicationCreatedEvent() (*ApplicationCreatedEvent, bool) {
30385	return nil, false
30386}
30387
30388// AsApplicationDeletedEvent is the BasicFabricEvent implementation for PartitionAnalysisEvent.
30389func (pae PartitionAnalysisEvent) AsApplicationDeletedEvent() (*ApplicationDeletedEvent, bool) {
30390	return nil, false
30391}
30392
30393// AsApplicationNewHealthReportEvent is the BasicFabricEvent implementation for PartitionAnalysisEvent.
30394func (pae PartitionAnalysisEvent) AsApplicationNewHealthReportEvent() (*ApplicationNewHealthReportEvent, bool) {
30395	return nil, false
30396}
30397
30398// AsApplicationHealthReportExpiredEvent is the BasicFabricEvent implementation for PartitionAnalysisEvent.
30399func (pae PartitionAnalysisEvent) AsApplicationHealthReportExpiredEvent() (*ApplicationHealthReportExpiredEvent, bool) {
30400	return nil, false
30401}
30402
30403// AsApplicationUpgradeCompletedEvent is the BasicFabricEvent implementation for PartitionAnalysisEvent.
30404func (pae PartitionAnalysisEvent) AsApplicationUpgradeCompletedEvent() (*ApplicationUpgradeCompletedEvent, bool) {
30405	return nil, false
30406}
30407
30408// AsApplicationUpgradeDomainCompletedEvent is the BasicFabricEvent implementation for PartitionAnalysisEvent.
30409func (pae PartitionAnalysisEvent) AsApplicationUpgradeDomainCompletedEvent() (*ApplicationUpgradeDomainCompletedEvent, bool) {
30410	return nil, false
30411}
30412
30413// AsApplicationUpgradeRollbackCompletedEvent is the BasicFabricEvent implementation for PartitionAnalysisEvent.
30414func (pae PartitionAnalysisEvent) AsApplicationUpgradeRollbackCompletedEvent() (*ApplicationUpgradeRollbackCompletedEvent, bool) {
30415	return nil, false
30416}
30417
30418// AsApplicationUpgradeRollbackStartedEvent is the BasicFabricEvent implementation for PartitionAnalysisEvent.
30419func (pae PartitionAnalysisEvent) AsApplicationUpgradeRollbackStartedEvent() (*ApplicationUpgradeRollbackStartedEvent, bool) {
30420	return nil, false
30421}
30422
30423// AsApplicationUpgradeStartedEvent is the BasicFabricEvent implementation for PartitionAnalysisEvent.
30424func (pae PartitionAnalysisEvent) AsApplicationUpgradeStartedEvent() (*ApplicationUpgradeStartedEvent, bool) {
30425	return nil, false
30426}
30427
30428// AsDeployedApplicationNewHealthReportEvent is the BasicFabricEvent implementation for PartitionAnalysisEvent.
30429func (pae PartitionAnalysisEvent) AsDeployedApplicationNewHealthReportEvent() (*DeployedApplicationNewHealthReportEvent, bool) {
30430	return nil, false
30431}
30432
30433// AsDeployedApplicationHealthReportExpiredEvent is the BasicFabricEvent implementation for PartitionAnalysisEvent.
30434func (pae PartitionAnalysisEvent) AsDeployedApplicationHealthReportExpiredEvent() (*DeployedApplicationHealthReportExpiredEvent, bool) {
30435	return nil, false
30436}
30437
30438// AsApplicationProcessExitedEvent is the BasicFabricEvent implementation for PartitionAnalysisEvent.
30439func (pae PartitionAnalysisEvent) AsApplicationProcessExitedEvent() (*ApplicationProcessExitedEvent, bool) {
30440	return nil, false
30441}
30442
30443// AsApplicationContainerInstanceExitedEvent is the BasicFabricEvent implementation for PartitionAnalysisEvent.
30444func (pae PartitionAnalysisEvent) AsApplicationContainerInstanceExitedEvent() (*ApplicationContainerInstanceExitedEvent, bool) {
30445	return nil, false
30446}
30447
30448// AsNodeAbortedEvent is the BasicFabricEvent implementation for PartitionAnalysisEvent.
30449func (pae PartitionAnalysisEvent) AsNodeAbortedEvent() (*NodeAbortedEvent, bool) {
30450	return nil, false
30451}
30452
30453// AsNodeAddedToClusterEvent is the BasicFabricEvent implementation for PartitionAnalysisEvent.
30454func (pae PartitionAnalysisEvent) AsNodeAddedToClusterEvent() (*NodeAddedToClusterEvent, bool) {
30455	return nil, false
30456}
30457
30458// AsNodeClosedEvent is the BasicFabricEvent implementation for PartitionAnalysisEvent.
30459func (pae PartitionAnalysisEvent) AsNodeClosedEvent() (*NodeClosedEvent, bool) {
30460	return nil, false
30461}
30462
30463// AsNodeDeactivateCompletedEvent is the BasicFabricEvent implementation for PartitionAnalysisEvent.
30464func (pae PartitionAnalysisEvent) AsNodeDeactivateCompletedEvent() (*NodeDeactivateCompletedEvent, bool) {
30465	return nil, false
30466}
30467
30468// AsNodeDeactivateStartedEvent is the BasicFabricEvent implementation for PartitionAnalysisEvent.
30469func (pae PartitionAnalysisEvent) AsNodeDeactivateStartedEvent() (*NodeDeactivateStartedEvent, bool) {
30470	return nil, false
30471}
30472
30473// AsNodeDownEvent is the BasicFabricEvent implementation for PartitionAnalysisEvent.
30474func (pae PartitionAnalysisEvent) AsNodeDownEvent() (*NodeDownEvent, bool) {
30475	return nil, false
30476}
30477
30478// AsNodeNewHealthReportEvent is the BasicFabricEvent implementation for PartitionAnalysisEvent.
30479func (pae PartitionAnalysisEvent) AsNodeNewHealthReportEvent() (*NodeNewHealthReportEvent, bool) {
30480	return nil, false
30481}
30482
30483// AsNodeHealthReportExpiredEvent is the BasicFabricEvent implementation for PartitionAnalysisEvent.
30484func (pae PartitionAnalysisEvent) AsNodeHealthReportExpiredEvent() (*NodeHealthReportExpiredEvent, bool) {
30485	return nil, false
30486}
30487
30488// AsNodeOpenSucceededEvent is the BasicFabricEvent implementation for PartitionAnalysisEvent.
30489func (pae PartitionAnalysisEvent) AsNodeOpenSucceededEvent() (*NodeOpenSucceededEvent, bool) {
30490	return nil, false
30491}
30492
30493// AsNodeOpenFailedEvent is the BasicFabricEvent implementation for PartitionAnalysisEvent.
30494func (pae PartitionAnalysisEvent) AsNodeOpenFailedEvent() (*NodeOpenFailedEvent, bool) {
30495	return nil, false
30496}
30497
30498// AsNodeRemovedFromClusterEvent is the BasicFabricEvent implementation for PartitionAnalysisEvent.
30499func (pae PartitionAnalysisEvent) AsNodeRemovedFromClusterEvent() (*NodeRemovedFromClusterEvent, bool) {
30500	return nil, false
30501}
30502
30503// AsNodeUpEvent is the BasicFabricEvent implementation for PartitionAnalysisEvent.
30504func (pae PartitionAnalysisEvent) AsNodeUpEvent() (*NodeUpEvent, bool) {
30505	return nil, false
30506}
30507
30508// AsPartitionNewHealthReportEvent is the BasicFabricEvent implementation for PartitionAnalysisEvent.
30509func (pae PartitionAnalysisEvent) AsPartitionNewHealthReportEvent() (*PartitionNewHealthReportEvent, bool) {
30510	return nil, false
30511}
30512
30513// AsPartitionHealthReportExpiredEvent is the BasicFabricEvent implementation for PartitionAnalysisEvent.
30514func (pae PartitionAnalysisEvent) AsPartitionHealthReportExpiredEvent() (*PartitionHealthReportExpiredEvent, bool) {
30515	return nil, false
30516}
30517
30518// AsPartitionReconfiguredEvent is the BasicFabricEvent implementation for PartitionAnalysisEvent.
30519func (pae PartitionAnalysisEvent) AsPartitionReconfiguredEvent() (*PartitionReconfiguredEvent, bool) {
30520	return nil, false
30521}
30522
30523// AsPartitionPrimaryMoveAnalysisEvent is the BasicFabricEvent implementation for PartitionAnalysisEvent.
30524func (pae PartitionAnalysisEvent) AsPartitionPrimaryMoveAnalysisEvent() (*PartitionPrimaryMoveAnalysisEvent, bool) {
30525	return nil, false
30526}
30527
30528// AsServiceCreatedEvent is the BasicFabricEvent implementation for PartitionAnalysisEvent.
30529func (pae PartitionAnalysisEvent) AsServiceCreatedEvent() (*ServiceCreatedEvent, bool) {
30530	return nil, false
30531}
30532
30533// AsServiceDeletedEvent is the BasicFabricEvent implementation for PartitionAnalysisEvent.
30534func (pae PartitionAnalysisEvent) AsServiceDeletedEvent() (*ServiceDeletedEvent, bool) {
30535	return nil, false
30536}
30537
30538// AsServiceNewHealthReportEvent is the BasicFabricEvent implementation for PartitionAnalysisEvent.
30539func (pae PartitionAnalysisEvent) AsServiceNewHealthReportEvent() (*ServiceNewHealthReportEvent, bool) {
30540	return nil, false
30541}
30542
30543// AsServiceHealthReportExpiredEvent is the BasicFabricEvent implementation for PartitionAnalysisEvent.
30544func (pae PartitionAnalysisEvent) AsServiceHealthReportExpiredEvent() (*ServiceHealthReportExpiredEvent, bool) {
30545	return nil, false
30546}
30547
30548// AsDeployedServicePackageNewHealthReportEvent is the BasicFabricEvent implementation for PartitionAnalysisEvent.
30549func (pae PartitionAnalysisEvent) AsDeployedServicePackageNewHealthReportEvent() (*DeployedServicePackageNewHealthReportEvent, bool) {
30550	return nil, false
30551}
30552
30553// AsDeployedServicePackageHealthReportExpiredEvent is the BasicFabricEvent implementation for PartitionAnalysisEvent.
30554func (pae PartitionAnalysisEvent) AsDeployedServicePackageHealthReportExpiredEvent() (*DeployedServicePackageHealthReportExpiredEvent, bool) {
30555	return nil, false
30556}
30557
30558// AsStatefulReplicaNewHealthReportEvent is the BasicFabricEvent implementation for PartitionAnalysisEvent.
30559func (pae PartitionAnalysisEvent) AsStatefulReplicaNewHealthReportEvent() (*StatefulReplicaNewHealthReportEvent, bool) {
30560	return nil, false
30561}
30562
30563// AsStatefulReplicaHealthReportExpiredEvent is the BasicFabricEvent implementation for PartitionAnalysisEvent.
30564func (pae PartitionAnalysisEvent) AsStatefulReplicaHealthReportExpiredEvent() (*StatefulReplicaHealthReportExpiredEvent, bool) {
30565	return nil, false
30566}
30567
30568// AsStatelessReplicaNewHealthReportEvent is the BasicFabricEvent implementation for PartitionAnalysisEvent.
30569func (pae PartitionAnalysisEvent) AsStatelessReplicaNewHealthReportEvent() (*StatelessReplicaNewHealthReportEvent, bool) {
30570	return nil, false
30571}
30572
30573// AsStatelessReplicaHealthReportExpiredEvent is the BasicFabricEvent implementation for PartitionAnalysisEvent.
30574func (pae PartitionAnalysisEvent) AsStatelessReplicaHealthReportExpiredEvent() (*StatelessReplicaHealthReportExpiredEvent, bool) {
30575	return nil, false
30576}
30577
30578// AsClusterNewHealthReportEvent is the BasicFabricEvent implementation for PartitionAnalysisEvent.
30579func (pae PartitionAnalysisEvent) AsClusterNewHealthReportEvent() (*ClusterNewHealthReportEvent, bool) {
30580	return nil, false
30581}
30582
30583// AsClusterHealthReportExpiredEvent is the BasicFabricEvent implementation for PartitionAnalysisEvent.
30584func (pae PartitionAnalysisEvent) AsClusterHealthReportExpiredEvent() (*ClusterHealthReportExpiredEvent, bool) {
30585	return nil, false
30586}
30587
30588// AsClusterUpgradeCompletedEvent is the BasicFabricEvent implementation for PartitionAnalysisEvent.
30589func (pae PartitionAnalysisEvent) AsClusterUpgradeCompletedEvent() (*ClusterUpgradeCompletedEvent, bool) {
30590	return nil, false
30591}
30592
30593// AsClusterUpgradeDomainCompletedEvent is the BasicFabricEvent implementation for PartitionAnalysisEvent.
30594func (pae PartitionAnalysisEvent) AsClusterUpgradeDomainCompletedEvent() (*ClusterUpgradeDomainCompletedEvent, bool) {
30595	return nil, false
30596}
30597
30598// AsClusterUpgradeRollbackCompletedEvent is the BasicFabricEvent implementation for PartitionAnalysisEvent.
30599func (pae PartitionAnalysisEvent) AsClusterUpgradeRollbackCompletedEvent() (*ClusterUpgradeRollbackCompletedEvent, bool) {
30600	return nil, false
30601}
30602
30603// AsClusterUpgradeRollbackStartedEvent is the BasicFabricEvent implementation for PartitionAnalysisEvent.
30604func (pae PartitionAnalysisEvent) AsClusterUpgradeRollbackStartedEvent() (*ClusterUpgradeRollbackStartedEvent, bool) {
30605	return nil, false
30606}
30607
30608// AsClusterUpgradeStartedEvent is the BasicFabricEvent implementation for PartitionAnalysisEvent.
30609func (pae PartitionAnalysisEvent) AsClusterUpgradeStartedEvent() (*ClusterUpgradeStartedEvent, bool) {
30610	return nil, false
30611}
30612
30613// AsChaosStoppedEvent is the BasicFabricEvent implementation for PartitionAnalysisEvent.
30614func (pae PartitionAnalysisEvent) AsChaosStoppedEvent() (*ChaosStoppedEvent, bool) {
30615	return nil, false
30616}
30617
30618// AsChaosStartedEvent is the BasicFabricEvent implementation for PartitionAnalysisEvent.
30619func (pae PartitionAnalysisEvent) AsChaosStartedEvent() (*ChaosStartedEvent, bool) {
30620	return nil, false
30621}
30622
30623// AsChaosCodePackageRestartScheduledEvent is the BasicFabricEvent implementation for PartitionAnalysisEvent.
30624func (pae PartitionAnalysisEvent) AsChaosCodePackageRestartScheduledEvent() (*ChaosCodePackageRestartScheduledEvent, bool) {
30625	return nil, false
30626}
30627
30628// AsChaosReplicaRemovalScheduledEvent is the BasicFabricEvent implementation for PartitionAnalysisEvent.
30629func (pae PartitionAnalysisEvent) AsChaosReplicaRemovalScheduledEvent() (*ChaosReplicaRemovalScheduledEvent, bool) {
30630	return nil, false
30631}
30632
30633// AsChaosPartitionSecondaryMoveScheduledEvent is the BasicFabricEvent implementation for PartitionAnalysisEvent.
30634func (pae PartitionAnalysisEvent) AsChaosPartitionSecondaryMoveScheduledEvent() (*ChaosPartitionSecondaryMoveScheduledEvent, bool) {
30635	return nil, false
30636}
30637
30638// AsChaosPartitionPrimaryMoveScheduledEvent is the BasicFabricEvent implementation for PartitionAnalysisEvent.
30639func (pae PartitionAnalysisEvent) AsChaosPartitionPrimaryMoveScheduledEvent() (*ChaosPartitionPrimaryMoveScheduledEvent, bool) {
30640	return nil, false
30641}
30642
30643// AsChaosReplicaRestartScheduledEvent is the BasicFabricEvent implementation for PartitionAnalysisEvent.
30644func (pae PartitionAnalysisEvent) AsChaosReplicaRestartScheduledEvent() (*ChaosReplicaRestartScheduledEvent, bool) {
30645	return nil, false
30646}
30647
30648// AsChaosNodeRestartScheduledEvent is the BasicFabricEvent implementation for PartitionAnalysisEvent.
30649func (pae PartitionAnalysisEvent) AsChaosNodeRestartScheduledEvent() (*ChaosNodeRestartScheduledEvent, bool) {
30650	return nil, false
30651}
30652
30653// AsFabricEvent is the BasicFabricEvent implementation for PartitionAnalysisEvent.
30654func (pae PartitionAnalysisEvent) AsFabricEvent() (*FabricEvent, bool) {
30655	return nil, false
30656}
30657
30658// AsBasicFabricEvent is the BasicFabricEvent implementation for PartitionAnalysisEvent.
30659func (pae PartitionAnalysisEvent) AsBasicFabricEvent() (BasicFabricEvent, bool) {
30660	return &pae, true
30661}
30662
30663// PartitionBackupConfigurationInfo backup configuration information, for a specific partition, specifying
30664// what backup policy is being applied and suspend description, if any.
30665type PartitionBackupConfigurationInfo struct {
30666	autorest.Response `json:"-"`
30667	// ServiceName - The full name of the service with 'fabric:' URI scheme.
30668	ServiceName *string `json:"ServiceName,omitempty"`
30669	// PartitionID - The partition ID identifying the partition.
30670	PartitionID *uuid.UUID `json:"PartitionId,omitempty"`
30671	// PolicyName - The name of the backup policy which is applicable to this Service Fabric application or service or partition.
30672	PolicyName *string `json:"PolicyName,omitempty"`
30673	// PolicyInheritedFrom - Specifies the scope at which the backup policy is applied. Possible values include: 'BackupPolicyScopeInvalid', 'BackupPolicyScopePartition', 'BackupPolicyScopeService', 'BackupPolicyScopeApplication'
30674	PolicyInheritedFrom BackupPolicyScope `json:"PolicyInheritedFrom,omitempty"`
30675	// SuspensionInfo - Describes the backup suspension details.
30676	SuspensionInfo *BackupSuspensionInfo `json:"SuspensionInfo,omitempty"`
30677	// Kind - Possible values include: 'KindBasicBackupConfigurationInfoKindBackupConfigurationInfo', 'KindBasicBackupConfigurationInfoKindApplication', 'KindBasicBackupConfigurationInfoKindService', 'KindBasicBackupConfigurationInfoKindPartition'
30678	Kind KindBasicBackupConfigurationInfo `json:"Kind,omitempty"`
30679}
30680
30681// MarshalJSON is the custom marshaler for PartitionBackupConfigurationInfo.
30682func (pbci PartitionBackupConfigurationInfo) MarshalJSON() ([]byte, error) {
30683	pbci.Kind = KindBasicBackupConfigurationInfoKindPartition
30684	objectMap := make(map[string]interface{})
30685	if pbci.ServiceName != nil {
30686		objectMap["ServiceName"] = pbci.ServiceName
30687	}
30688	if pbci.PartitionID != nil {
30689		objectMap["PartitionId"] = pbci.PartitionID
30690	}
30691	if pbci.PolicyName != nil {
30692		objectMap["PolicyName"] = pbci.PolicyName
30693	}
30694	if pbci.PolicyInheritedFrom != "" {
30695		objectMap["PolicyInheritedFrom"] = pbci.PolicyInheritedFrom
30696	}
30697	if pbci.SuspensionInfo != nil {
30698		objectMap["SuspensionInfo"] = pbci.SuspensionInfo
30699	}
30700	if pbci.Kind != "" {
30701		objectMap["Kind"] = pbci.Kind
30702	}
30703	return json.Marshal(objectMap)
30704}
30705
30706// AsApplicationBackupConfigurationInfo is the BasicBackupConfigurationInfo implementation for PartitionBackupConfigurationInfo.
30707func (pbci PartitionBackupConfigurationInfo) AsApplicationBackupConfigurationInfo() (*ApplicationBackupConfigurationInfo, bool) {
30708	return nil, false
30709}
30710
30711// AsServiceBackupConfigurationInfo is the BasicBackupConfigurationInfo implementation for PartitionBackupConfigurationInfo.
30712func (pbci PartitionBackupConfigurationInfo) AsServiceBackupConfigurationInfo() (*ServiceBackupConfigurationInfo, bool) {
30713	return nil, false
30714}
30715
30716// AsPartitionBackupConfigurationInfo is the BasicBackupConfigurationInfo implementation for PartitionBackupConfigurationInfo.
30717func (pbci PartitionBackupConfigurationInfo) AsPartitionBackupConfigurationInfo() (*PartitionBackupConfigurationInfo, bool) {
30718	return &pbci, true
30719}
30720
30721// AsBackupConfigurationInfo is the BasicBackupConfigurationInfo implementation for PartitionBackupConfigurationInfo.
30722func (pbci PartitionBackupConfigurationInfo) AsBackupConfigurationInfo() (*BackupConfigurationInfo, bool) {
30723	return nil, false
30724}
30725
30726// AsBasicBackupConfigurationInfo is the BasicBackupConfigurationInfo implementation for PartitionBackupConfigurationInfo.
30727func (pbci PartitionBackupConfigurationInfo) AsBasicBackupConfigurationInfo() (BasicBackupConfigurationInfo, bool) {
30728	return &pbci, true
30729}
30730
30731// PartitionBackupEntity identifies the Service Fabric stateful partition which is being backed up.
30732type PartitionBackupEntity struct {
30733	// ServiceName - The full name of the service with 'fabric:' URI scheme.
30734	ServiceName *string `json:"ServiceName,omitempty"`
30735	// PartitionID - The partition ID identifying the partition.
30736	PartitionID *uuid.UUID `json:"PartitionId,omitempty"`
30737	// EntityKind - Possible values include: 'EntityKindBackupEntity', 'EntityKindApplication1', 'EntityKindService1', 'EntityKindPartition1'
30738	EntityKind EntityKindBasicBackupEntity `json:"EntityKind,omitempty"`
30739}
30740
30741// MarshalJSON is the custom marshaler for PartitionBackupEntity.
30742func (pbe PartitionBackupEntity) MarshalJSON() ([]byte, error) {
30743	pbe.EntityKind = EntityKindPartition1
30744	objectMap := make(map[string]interface{})
30745	if pbe.ServiceName != nil {
30746		objectMap["ServiceName"] = pbe.ServiceName
30747	}
30748	if pbe.PartitionID != nil {
30749		objectMap["PartitionId"] = pbe.PartitionID
30750	}
30751	if pbe.EntityKind != "" {
30752		objectMap["EntityKind"] = pbe.EntityKind
30753	}
30754	return json.Marshal(objectMap)
30755}
30756
30757// AsApplicationBackupEntity is the BasicBackupEntity implementation for PartitionBackupEntity.
30758func (pbe PartitionBackupEntity) AsApplicationBackupEntity() (*ApplicationBackupEntity, bool) {
30759	return nil, false
30760}
30761
30762// AsServiceBackupEntity is the BasicBackupEntity implementation for PartitionBackupEntity.
30763func (pbe PartitionBackupEntity) AsServiceBackupEntity() (*ServiceBackupEntity, bool) {
30764	return nil, false
30765}
30766
30767// AsPartitionBackupEntity is the BasicBackupEntity implementation for PartitionBackupEntity.
30768func (pbe PartitionBackupEntity) AsPartitionBackupEntity() (*PartitionBackupEntity, bool) {
30769	return &pbe, true
30770}
30771
30772// AsBackupEntity is the BasicBackupEntity implementation for PartitionBackupEntity.
30773func (pbe PartitionBackupEntity) AsBackupEntity() (*BackupEntity, bool) {
30774	return nil, false
30775}
30776
30777// AsBasicBackupEntity is the BasicBackupEntity implementation for PartitionBackupEntity.
30778func (pbe PartitionBackupEntity) AsBasicBackupEntity() (BasicBackupEntity, bool) {
30779	return &pbe, true
30780}
30781
30782// PartitionDataLossProgress information about a partition data loss user-induced operation.
30783type PartitionDataLossProgress struct {
30784	autorest.Response `json:"-"`
30785	// State - The state of the operation. Possible values include: 'OperationStateInvalid', 'OperationStateRunning', 'OperationStateRollingBack', 'OperationStateCompleted', 'OperationStateFaulted', 'OperationStateCancelled', 'OperationStateForceCancelled'
30786	State OperationState `json:"State,omitempty"`
30787	// InvokeDataLossResult - Represents information about an operation in a terminal state (Completed or Faulted).
30788	InvokeDataLossResult *InvokeDataLossResult `json:"InvokeDataLossResult,omitempty"`
30789}
30790
30791// BasicPartitionEvent represents the base for all Partition Events.
30792type BasicPartitionEvent interface {
30793	AsPartitionAnalysisEvent() (*PartitionAnalysisEvent, bool)
30794	AsBasicPartitionAnalysisEvent() (BasicPartitionAnalysisEvent, bool)
30795	AsPartitionNewHealthReportEvent() (*PartitionNewHealthReportEvent, bool)
30796	AsPartitionHealthReportExpiredEvent() (*PartitionHealthReportExpiredEvent, bool)
30797	AsPartitionReconfiguredEvent() (*PartitionReconfiguredEvent, bool)
30798	AsPartitionPrimaryMoveAnalysisEvent() (*PartitionPrimaryMoveAnalysisEvent, bool)
30799	AsChaosPartitionSecondaryMoveScheduledEvent() (*ChaosPartitionSecondaryMoveScheduledEvent, bool)
30800	AsChaosPartitionPrimaryMoveScheduledEvent() (*ChaosPartitionPrimaryMoveScheduledEvent, bool)
30801	AsPartitionEvent() (*PartitionEvent, bool)
30802}
30803
30804// PartitionEvent represents the base for all Partition Events.
30805type PartitionEvent struct {
30806	// 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.
30807	PartitionID *uuid.UUID `json:"PartitionId,omitempty"`
30808	// EventInstanceID - The identifier for the FabricEvent instance.
30809	EventInstanceID *uuid.UUID `json:"EventInstanceId,omitempty"`
30810	// Category - The category of event.
30811	Category *string `json:"Category,omitempty"`
30812	// TimeStamp - The time event was logged.
30813	TimeStamp *date.Time `json:"TimeStamp,omitempty"`
30814	// HasCorrelatedEvents - Shows there is existing related events available.
30815	HasCorrelatedEvents *bool `json:"HasCorrelatedEvents,omitempty"`
30816	// 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'
30817	Kind KindBasicFabricEvent `json:"Kind,omitempty"`
30818}
30819
30820func unmarshalBasicPartitionEvent(body []byte) (BasicPartitionEvent, error) {
30821	var m map[string]interface{}
30822	err := json.Unmarshal(body, &m)
30823	if err != nil {
30824		return nil, err
30825	}
30826
30827	switch m["Kind"] {
30828	case string(KindPartitionAnalysisEvent):
30829		var pae PartitionAnalysisEvent
30830		err := json.Unmarshal(body, &pae)
30831		return pae, err
30832	case string(KindPartitionNewHealthReport):
30833		var pnhre PartitionNewHealthReportEvent
30834		err := json.Unmarshal(body, &pnhre)
30835		return pnhre, err
30836	case string(KindPartitionHealthReportExpired):
30837		var phree PartitionHealthReportExpiredEvent
30838		err := json.Unmarshal(body, &phree)
30839		return phree, err
30840	case string(KindPartitionReconfigured):
30841		var pre PartitionReconfiguredEvent
30842		err := json.Unmarshal(body, &pre)
30843		return pre, err
30844	case string(KindPartitionPrimaryMoveAnalysis):
30845		var ppmae PartitionPrimaryMoveAnalysisEvent
30846		err := json.Unmarshal(body, &ppmae)
30847		return ppmae, err
30848	case string(KindChaosPartitionSecondaryMoveScheduled):
30849		var cpsmse ChaosPartitionSecondaryMoveScheduledEvent
30850		err := json.Unmarshal(body, &cpsmse)
30851		return cpsmse, err
30852	case string(KindChaosPartitionPrimaryMoveScheduled):
30853		var cppmse ChaosPartitionPrimaryMoveScheduledEvent
30854		err := json.Unmarshal(body, &cppmse)
30855		return cppmse, err
30856	default:
30857		var peVar PartitionEvent
30858		err := json.Unmarshal(body, &peVar)
30859		return peVar, err
30860	}
30861}
30862func unmarshalBasicPartitionEventArray(body []byte) ([]BasicPartitionEvent, error) {
30863	var rawMessages []*json.RawMessage
30864	err := json.Unmarshal(body, &rawMessages)
30865	if err != nil {
30866		return nil, err
30867	}
30868
30869	peVarArray := make([]BasicPartitionEvent, len(rawMessages))
30870
30871	for index, rawMessage := range rawMessages {
30872		peVar, err := unmarshalBasicPartitionEvent(*rawMessage)
30873		if err != nil {
30874			return nil, err
30875		}
30876		peVarArray[index] = peVar
30877	}
30878	return peVarArray, nil
30879}
30880
30881// MarshalJSON is the custom marshaler for PartitionEvent.
30882func (peVar PartitionEvent) MarshalJSON() ([]byte, error) {
30883	peVar.Kind = KindPartitionEvent
30884	objectMap := make(map[string]interface{})
30885	if peVar.PartitionID != nil {
30886		objectMap["PartitionId"] = peVar.PartitionID
30887	}
30888	if peVar.EventInstanceID != nil {
30889		objectMap["EventInstanceId"] = peVar.EventInstanceID
30890	}
30891	if peVar.Category != nil {
30892		objectMap["Category"] = peVar.Category
30893	}
30894	if peVar.TimeStamp != nil {
30895		objectMap["TimeStamp"] = peVar.TimeStamp
30896	}
30897	if peVar.HasCorrelatedEvents != nil {
30898		objectMap["HasCorrelatedEvents"] = peVar.HasCorrelatedEvents
30899	}
30900	if peVar.Kind != "" {
30901		objectMap["Kind"] = peVar.Kind
30902	}
30903	return json.Marshal(objectMap)
30904}
30905
30906// AsApplicationEvent is the BasicFabricEvent implementation for PartitionEvent.
30907func (peVar PartitionEvent) AsApplicationEvent() (*ApplicationEvent, bool) {
30908	return nil, false
30909}
30910
30911// AsBasicApplicationEvent is the BasicFabricEvent implementation for PartitionEvent.
30912func (peVar PartitionEvent) AsBasicApplicationEvent() (BasicApplicationEvent, bool) {
30913	return nil, false
30914}
30915
30916// AsClusterEvent is the BasicFabricEvent implementation for PartitionEvent.
30917func (peVar PartitionEvent) AsClusterEvent() (*ClusterEvent, bool) {
30918	return nil, false
30919}
30920
30921// AsBasicClusterEvent is the BasicFabricEvent implementation for PartitionEvent.
30922func (peVar PartitionEvent) AsBasicClusterEvent() (BasicClusterEvent, bool) {
30923	return nil, false
30924}
30925
30926// AsContainerInstanceEvent is the BasicFabricEvent implementation for PartitionEvent.
30927func (peVar PartitionEvent) AsContainerInstanceEvent() (*ContainerInstanceEvent, bool) {
30928	return nil, false
30929}
30930
30931// AsNodeEvent is the BasicFabricEvent implementation for PartitionEvent.
30932func (peVar PartitionEvent) AsNodeEvent() (*NodeEvent, bool) {
30933	return nil, false
30934}
30935
30936// AsBasicNodeEvent is the BasicFabricEvent implementation for PartitionEvent.
30937func (peVar PartitionEvent) AsBasicNodeEvent() (BasicNodeEvent, bool) {
30938	return nil, false
30939}
30940
30941// AsPartitionAnalysisEvent is the BasicFabricEvent implementation for PartitionEvent.
30942func (peVar PartitionEvent) AsPartitionAnalysisEvent() (*PartitionAnalysisEvent, bool) {
30943	return nil, false
30944}
30945
30946// AsBasicPartitionAnalysisEvent is the BasicFabricEvent implementation for PartitionEvent.
30947func (peVar PartitionEvent) AsBasicPartitionAnalysisEvent() (BasicPartitionAnalysisEvent, bool) {
30948	return nil, false
30949}
30950
30951// AsPartitionEvent is the BasicFabricEvent implementation for PartitionEvent.
30952func (peVar PartitionEvent) AsPartitionEvent() (*PartitionEvent, bool) {
30953	return &peVar, true
30954}
30955
30956// AsBasicPartitionEvent is the BasicFabricEvent implementation for PartitionEvent.
30957func (peVar PartitionEvent) AsBasicPartitionEvent() (BasicPartitionEvent, bool) {
30958	return &peVar, true
30959}
30960
30961// AsReplicaEvent is the BasicFabricEvent implementation for PartitionEvent.
30962func (peVar PartitionEvent) AsReplicaEvent() (*ReplicaEvent, bool) {
30963	return nil, false
30964}
30965
30966// AsBasicReplicaEvent is the BasicFabricEvent implementation for PartitionEvent.
30967func (peVar PartitionEvent) AsBasicReplicaEvent() (BasicReplicaEvent, bool) {
30968	return nil, false
30969}
30970
30971// AsServiceEvent is the BasicFabricEvent implementation for PartitionEvent.
30972func (peVar PartitionEvent) AsServiceEvent() (*ServiceEvent, bool) {
30973	return nil, false
30974}
30975
30976// AsBasicServiceEvent is the BasicFabricEvent implementation for PartitionEvent.
30977func (peVar PartitionEvent) AsBasicServiceEvent() (BasicServiceEvent, bool) {
30978	return nil, false
30979}
30980
30981// AsApplicationCreatedEvent is the BasicFabricEvent implementation for PartitionEvent.
30982func (peVar PartitionEvent) AsApplicationCreatedEvent() (*ApplicationCreatedEvent, bool) {
30983	return nil, false
30984}
30985
30986// AsApplicationDeletedEvent is the BasicFabricEvent implementation for PartitionEvent.
30987func (peVar PartitionEvent) AsApplicationDeletedEvent() (*ApplicationDeletedEvent, bool) {
30988	return nil, false
30989}
30990
30991// AsApplicationNewHealthReportEvent is the BasicFabricEvent implementation for PartitionEvent.
30992func (peVar PartitionEvent) AsApplicationNewHealthReportEvent() (*ApplicationNewHealthReportEvent, bool) {
30993	return nil, false
30994}
30995
30996// AsApplicationHealthReportExpiredEvent is the BasicFabricEvent implementation for PartitionEvent.
30997func (peVar PartitionEvent) AsApplicationHealthReportExpiredEvent() (*ApplicationHealthReportExpiredEvent, bool) {
30998	return nil, false
30999}
31000
31001// AsApplicationUpgradeCompletedEvent is the BasicFabricEvent implementation for PartitionEvent.
31002func (peVar PartitionEvent) AsApplicationUpgradeCompletedEvent() (*ApplicationUpgradeCompletedEvent, bool) {
31003	return nil, false
31004}
31005
31006// AsApplicationUpgradeDomainCompletedEvent is the BasicFabricEvent implementation for PartitionEvent.
31007func (peVar PartitionEvent) AsApplicationUpgradeDomainCompletedEvent() (*ApplicationUpgradeDomainCompletedEvent, bool) {
31008	return nil, false
31009}
31010
31011// AsApplicationUpgradeRollbackCompletedEvent is the BasicFabricEvent implementation for PartitionEvent.
31012func (peVar PartitionEvent) AsApplicationUpgradeRollbackCompletedEvent() (*ApplicationUpgradeRollbackCompletedEvent, bool) {
31013	return nil, false
31014}
31015
31016// AsApplicationUpgradeRollbackStartedEvent is the BasicFabricEvent implementation for PartitionEvent.
31017func (peVar PartitionEvent) AsApplicationUpgradeRollbackStartedEvent() (*ApplicationUpgradeRollbackStartedEvent, bool) {
31018	return nil, false
31019}
31020
31021// AsApplicationUpgradeStartedEvent is the BasicFabricEvent implementation for PartitionEvent.
31022func (peVar PartitionEvent) AsApplicationUpgradeStartedEvent() (*ApplicationUpgradeStartedEvent, bool) {
31023	return nil, false
31024}
31025
31026// AsDeployedApplicationNewHealthReportEvent is the BasicFabricEvent implementation for PartitionEvent.
31027func (peVar PartitionEvent) AsDeployedApplicationNewHealthReportEvent() (*DeployedApplicationNewHealthReportEvent, bool) {
31028	return nil, false
31029}
31030
31031// AsDeployedApplicationHealthReportExpiredEvent is the BasicFabricEvent implementation for PartitionEvent.
31032func (peVar PartitionEvent) AsDeployedApplicationHealthReportExpiredEvent() (*DeployedApplicationHealthReportExpiredEvent, bool) {
31033	return nil, false
31034}
31035
31036// AsApplicationProcessExitedEvent is the BasicFabricEvent implementation for PartitionEvent.
31037func (peVar PartitionEvent) AsApplicationProcessExitedEvent() (*ApplicationProcessExitedEvent, bool) {
31038	return nil, false
31039}
31040
31041// AsApplicationContainerInstanceExitedEvent is the BasicFabricEvent implementation for PartitionEvent.
31042func (peVar PartitionEvent) AsApplicationContainerInstanceExitedEvent() (*ApplicationContainerInstanceExitedEvent, bool) {
31043	return nil, false
31044}
31045
31046// AsNodeAbortedEvent is the BasicFabricEvent implementation for PartitionEvent.
31047func (peVar PartitionEvent) AsNodeAbortedEvent() (*NodeAbortedEvent, bool) {
31048	return nil, false
31049}
31050
31051// AsNodeAddedToClusterEvent is the BasicFabricEvent implementation for PartitionEvent.
31052func (peVar PartitionEvent) AsNodeAddedToClusterEvent() (*NodeAddedToClusterEvent, bool) {
31053	return nil, false
31054}
31055
31056// AsNodeClosedEvent is the BasicFabricEvent implementation for PartitionEvent.
31057func (peVar PartitionEvent) AsNodeClosedEvent() (*NodeClosedEvent, bool) {
31058	return nil, false
31059}
31060
31061// AsNodeDeactivateCompletedEvent is the BasicFabricEvent implementation for PartitionEvent.
31062func (peVar PartitionEvent) AsNodeDeactivateCompletedEvent() (*NodeDeactivateCompletedEvent, bool) {
31063	return nil, false
31064}
31065
31066// AsNodeDeactivateStartedEvent is the BasicFabricEvent implementation for PartitionEvent.
31067func (peVar PartitionEvent) AsNodeDeactivateStartedEvent() (*NodeDeactivateStartedEvent, bool) {
31068	return nil, false
31069}
31070
31071// AsNodeDownEvent is the BasicFabricEvent implementation for PartitionEvent.
31072func (peVar PartitionEvent) AsNodeDownEvent() (*NodeDownEvent, bool) {
31073	return nil, false
31074}
31075
31076// AsNodeNewHealthReportEvent is the BasicFabricEvent implementation for PartitionEvent.
31077func (peVar PartitionEvent) AsNodeNewHealthReportEvent() (*NodeNewHealthReportEvent, bool) {
31078	return nil, false
31079}
31080
31081// AsNodeHealthReportExpiredEvent is the BasicFabricEvent implementation for PartitionEvent.
31082func (peVar PartitionEvent) AsNodeHealthReportExpiredEvent() (*NodeHealthReportExpiredEvent, bool) {
31083	return nil, false
31084}
31085
31086// AsNodeOpenSucceededEvent is the BasicFabricEvent implementation for PartitionEvent.
31087func (peVar PartitionEvent) AsNodeOpenSucceededEvent() (*NodeOpenSucceededEvent, bool) {
31088	return nil, false
31089}
31090
31091// AsNodeOpenFailedEvent is the BasicFabricEvent implementation for PartitionEvent.
31092func (peVar PartitionEvent) AsNodeOpenFailedEvent() (*NodeOpenFailedEvent, bool) {
31093	return nil, false
31094}
31095
31096// AsNodeRemovedFromClusterEvent is the BasicFabricEvent implementation for PartitionEvent.
31097func (peVar PartitionEvent) AsNodeRemovedFromClusterEvent() (*NodeRemovedFromClusterEvent, bool) {
31098	return nil, false
31099}
31100
31101// AsNodeUpEvent is the BasicFabricEvent implementation for PartitionEvent.
31102func (peVar PartitionEvent) AsNodeUpEvent() (*NodeUpEvent, bool) {
31103	return nil, false
31104}
31105
31106// AsPartitionNewHealthReportEvent is the BasicFabricEvent implementation for PartitionEvent.
31107func (peVar PartitionEvent) AsPartitionNewHealthReportEvent() (*PartitionNewHealthReportEvent, bool) {
31108	return nil, false
31109}
31110
31111// AsPartitionHealthReportExpiredEvent is the BasicFabricEvent implementation for PartitionEvent.
31112func (peVar PartitionEvent) AsPartitionHealthReportExpiredEvent() (*PartitionHealthReportExpiredEvent, bool) {
31113	return nil, false
31114}
31115
31116// AsPartitionReconfiguredEvent is the BasicFabricEvent implementation for PartitionEvent.
31117func (peVar PartitionEvent) AsPartitionReconfiguredEvent() (*PartitionReconfiguredEvent, bool) {
31118	return nil, false
31119}
31120
31121// AsPartitionPrimaryMoveAnalysisEvent is the BasicFabricEvent implementation for PartitionEvent.
31122func (peVar PartitionEvent) AsPartitionPrimaryMoveAnalysisEvent() (*PartitionPrimaryMoveAnalysisEvent, bool) {
31123	return nil, false
31124}
31125
31126// AsServiceCreatedEvent is the BasicFabricEvent implementation for PartitionEvent.
31127func (peVar PartitionEvent) AsServiceCreatedEvent() (*ServiceCreatedEvent, bool) {
31128	return nil, false
31129}
31130
31131// AsServiceDeletedEvent is the BasicFabricEvent implementation for PartitionEvent.
31132func (peVar PartitionEvent) AsServiceDeletedEvent() (*ServiceDeletedEvent, bool) {
31133	return nil, false
31134}
31135
31136// AsServiceNewHealthReportEvent is the BasicFabricEvent implementation for PartitionEvent.
31137func (peVar PartitionEvent) AsServiceNewHealthReportEvent() (*ServiceNewHealthReportEvent, bool) {
31138	return nil, false
31139}
31140
31141// AsServiceHealthReportExpiredEvent is the BasicFabricEvent implementation for PartitionEvent.
31142func (peVar PartitionEvent) AsServiceHealthReportExpiredEvent() (*ServiceHealthReportExpiredEvent, bool) {
31143	return nil, false
31144}
31145
31146// AsDeployedServicePackageNewHealthReportEvent is the BasicFabricEvent implementation for PartitionEvent.
31147func (peVar PartitionEvent) AsDeployedServicePackageNewHealthReportEvent() (*DeployedServicePackageNewHealthReportEvent, bool) {
31148	return nil, false
31149}
31150
31151// AsDeployedServicePackageHealthReportExpiredEvent is the BasicFabricEvent implementation for PartitionEvent.
31152func (peVar PartitionEvent) AsDeployedServicePackageHealthReportExpiredEvent() (*DeployedServicePackageHealthReportExpiredEvent, bool) {
31153	return nil, false
31154}
31155
31156// AsStatefulReplicaNewHealthReportEvent is the BasicFabricEvent implementation for PartitionEvent.
31157func (peVar PartitionEvent) AsStatefulReplicaNewHealthReportEvent() (*StatefulReplicaNewHealthReportEvent, bool) {
31158	return nil, false
31159}
31160
31161// AsStatefulReplicaHealthReportExpiredEvent is the BasicFabricEvent implementation for PartitionEvent.
31162func (peVar PartitionEvent) AsStatefulReplicaHealthReportExpiredEvent() (*StatefulReplicaHealthReportExpiredEvent, bool) {
31163	return nil, false
31164}
31165
31166// AsStatelessReplicaNewHealthReportEvent is the BasicFabricEvent implementation for PartitionEvent.
31167func (peVar PartitionEvent) AsStatelessReplicaNewHealthReportEvent() (*StatelessReplicaNewHealthReportEvent, bool) {
31168	return nil, false
31169}
31170
31171// AsStatelessReplicaHealthReportExpiredEvent is the BasicFabricEvent implementation for PartitionEvent.
31172func (peVar PartitionEvent) AsStatelessReplicaHealthReportExpiredEvent() (*StatelessReplicaHealthReportExpiredEvent, bool) {
31173	return nil, false
31174}
31175
31176// AsClusterNewHealthReportEvent is the BasicFabricEvent implementation for PartitionEvent.
31177func (peVar PartitionEvent) AsClusterNewHealthReportEvent() (*ClusterNewHealthReportEvent, bool) {
31178	return nil, false
31179}
31180
31181// AsClusterHealthReportExpiredEvent is the BasicFabricEvent implementation for PartitionEvent.
31182func (peVar PartitionEvent) AsClusterHealthReportExpiredEvent() (*ClusterHealthReportExpiredEvent, bool) {
31183	return nil, false
31184}
31185
31186// AsClusterUpgradeCompletedEvent is the BasicFabricEvent implementation for PartitionEvent.
31187func (peVar PartitionEvent) AsClusterUpgradeCompletedEvent() (*ClusterUpgradeCompletedEvent, bool) {
31188	return nil, false
31189}
31190
31191// AsClusterUpgradeDomainCompletedEvent is the BasicFabricEvent implementation for PartitionEvent.
31192func (peVar PartitionEvent) AsClusterUpgradeDomainCompletedEvent() (*ClusterUpgradeDomainCompletedEvent, bool) {
31193	return nil, false
31194}
31195
31196// AsClusterUpgradeRollbackCompletedEvent is the BasicFabricEvent implementation for PartitionEvent.
31197func (peVar PartitionEvent) AsClusterUpgradeRollbackCompletedEvent() (*ClusterUpgradeRollbackCompletedEvent, bool) {
31198	return nil, false
31199}
31200
31201// AsClusterUpgradeRollbackStartedEvent is the BasicFabricEvent implementation for PartitionEvent.
31202func (peVar PartitionEvent) AsClusterUpgradeRollbackStartedEvent() (*ClusterUpgradeRollbackStartedEvent, bool) {
31203	return nil, false
31204}
31205
31206// AsClusterUpgradeStartedEvent is the BasicFabricEvent implementation for PartitionEvent.
31207func (peVar PartitionEvent) AsClusterUpgradeStartedEvent() (*ClusterUpgradeStartedEvent, bool) {
31208	return nil, false
31209}
31210
31211// AsChaosStoppedEvent is the BasicFabricEvent implementation for PartitionEvent.
31212func (peVar PartitionEvent) AsChaosStoppedEvent() (*ChaosStoppedEvent, bool) {
31213	return nil, false
31214}
31215
31216// AsChaosStartedEvent is the BasicFabricEvent implementation for PartitionEvent.
31217func (peVar PartitionEvent) AsChaosStartedEvent() (*ChaosStartedEvent, bool) {
31218	return nil, false
31219}
31220
31221// AsChaosCodePackageRestartScheduledEvent is the BasicFabricEvent implementation for PartitionEvent.
31222func (peVar PartitionEvent) AsChaosCodePackageRestartScheduledEvent() (*ChaosCodePackageRestartScheduledEvent, bool) {
31223	return nil, false
31224}
31225
31226// AsChaosReplicaRemovalScheduledEvent is the BasicFabricEvent implementation for PartitionEvent.
31227func (peVar PartitionEvent) AsChaosReplicaRemovalScheduledEvent() (*ChaosReplicaRemovalScheduledEvent, bool) {
31228	return nil, false
31229}
31230
31231// AsChaosPartitionSecondaryMoveScheduledEvent is the BasicFabricEvent implementation for PartitionEvent.
31232func (peVar PartitionEvent) AsChaosPartitionSecondaryMoveScheduledEvent() (*ChaosPartitionSecondaryMoveScheduledEvent, bool) {
31233	return nil, false
31234}
31235
31236// AsChaosPartitionPrimaryMoveScheduledEvent is the BasicFabricEvent implementation for PartitionEvent.
31237func (peVar PartitionEvent) AsChaosPartitionPrimaryMoveScheduledEvent() (*ChaosPartitionPrimaryMoveScheduledEvent, bool) {
31238	return nil, false
31239}
31240
31241// AsChaosReplicaRestartScheduledEvent is the BasicFabricEvent implementation for PartitionEvent.
31242func (peVar PartitionEvent) AsChaosReplicaRestartScheduledEvent() (*ChaosReplicaRestartScheduledEvent, bool) {
31243	return nil, false
31244}
31245
31246// AsChaosNodeRestartScheduledEvent is the BasicFabricEvent implementation for PartitionEvent.
31247func (peVar PartitionEvent) AsChaosNodeRestartScheduledEvent() (*ChaosNodeRestartScheduledEvent, bool) {
31248	return nil, false
31249}
31250
31251// AsFabricEvent is the BasicFabricEvent implementation for PartitionEvent.
31252func (peVar PartitionEvent) AsFabricEvent() (*FabricEvent, bool) {
31253	return nil, false
31254}
31255
31256// AsBasicFabricEvent is the BasicFabricEvent implementation for PartitionEvent.
31257func (peVar PartitionEvent) AsBasicFabricEvent() (BasicFabricEvent, bool) {
31258	return &peVar, true
31259}
31260
31261// PartitionHealth information about the health of a Service Fabric partition.
31262type PartitionHealth struct {
31263	autorest.Response `json:"-"`
31264	// PartitionID - ID of the partition whose health information is described by this object.
31265	PartitionID *uuid.UUID `json:"PartitionId,omitempty"`
31266	// ReplicaHealthStates - The list of replica health states associated with the partition.
31267	ReplicaHealthStates *[]BasicReplicaHealthState `json:"ReplicaHealthStates,omitempty"`
31268	// AggregatedHealthState - The HealthState representing the aggregated health state of the entity computed by Health Manager.
31269	// The health evaluation of the entity reflects all events reported on the entity and its children (if any).
31270	// The aggregation is done by applying the desired health policy. Possible values include: 'HealthStateInvalid', 'HealthStateOk', 'HealthStateWarning', 'HealthStateError', 'HealthStateUnknown'
31271	AggregatedHealthState HealthState `json:"AggregatedHealthState,omitempty"`
31272	// HealthEvents - The list of health events reported on the entity.
31273	HealthEvents *[]HealthEvent `json:"HealthEvents,omitempty"`
31274	// UnhealthyEvaluations - The unhealthy evaluations that show why the current aggregated health state was returned by Health Manager.
31275	UnhealthyEvaluations *[]HealthEvaluationWrapper `json:"UnhealthyEvaluations,omitempty"`
31276	// HealthStatistics - Shows the health statistics for all children types of the queried entity.
31277	HealthStatistics *HealthStatistics `json:"HealthStatistics,omitempty"`
31278}
31279
31280// UnmarshalJSON is the custom unmarshaler for PartitionHealth struct.
31281func (ph *PartitionHealth) UnmarshalJSON(body []byte) error {
31282	var m map[string]*json.RawMessage
31283	err := json.Unmarshal(body, &m)
31284	if err != nil {
31285		return err
31286	}
31287	for k, v := range m {
31288		switch k {
31289		case "PartitionId":
31290			if v != nil {
31291				var partitionID uuid.UUID
31292				err = json.Unmarshal(*v, &partitionID)
31293				if err != nil {
31294					return err
31295				}
31296				ph.PartitionID = &partitionID
31297			}
31298		case "ReplicaHealthStates":
31299			if v != nil {
31300				replicaHealthStates, err := unmarshalBasicReplicaHealthStateArray(*v)
31301				if err != nil {
31302					return err
31303				}
31304				ph.ReplicaHealthStates = &replicaHealthStates
31305			}
31306		case "AggregatedHealthState":
31307			if v != nil {
31308				var aggregatedHealthState HealthState
31309				err = json.Unmarshal(*v, &aggregatedHealthState)
31310				if err != nil {
31311					return err
31312				}
31313				ph.AggregatedHealthState = aggregatedHealthState
31314			}
31315		case "HealthEvents":
31316			if v != nil {
31317				var healthEvents []HealthEvent
31318				err = json.Unmarshal(*v, &healthEvents)
31319				if err != nil {
31320					return err
31321				}
31322				ph.HealthEvents = &healthEvents
31323			}
31324		case "UnhealthyEvaluations":
31325			if v != nil {
31326				var unhealthyEvaluations []HealthEvaluationWrapper
31327				err = json.Unmarshal(*v, &unhealthyEvaluations)
31328				if err != nil {
31329					return err
31330				}
31331				ph.UnhealthyEvaluations = &unhealthyEvaluations
31332			}
31333		case "HealthStatistics":
31334			if v != nil {
31335				var healthStatistics HealthStatistics
31336				err = json.Unmarshal(*v, &healthStatistics)
31337				if err != nil {
31338					return err
31339				}
31340				ph.HealthStatistics = &healthStatistics
31341			}
31342		}
31343	}
31344
31345	return nil
31346}
31347
31348// PartitionHealthEvaluation represents health evaluation for a partition, containing information about the
31349// data and the algorithm used by health store to evaluate health. The evaluation is returned only when the
31350// aggregated health state is either Error or Warning.
31351type PartitionHealthEvaluation struct {
31352	// PartitionID - Id of the partition whose health evaluation is described by this object.
31353	PartitionID *uuid.UUID `json:"PartitionId,omitempty"`
31354	// 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.
31355	UnhealthyEvaluations *[]HealthEvaluationWrapper `json:"UnhealthyEvaluations,omitempty"`
31356	// 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'
31357	AggregatedHealthState HealthState `json:"AggregatedHealthState,omitempty"`
31358	// Description - Description of the health evaluation, which represents a summary of the evaluation process.
31359	Description *string `json:"Description,omitempty"`
31360	// 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'
31361	Kind Kind `json:"Kind,omitempty"`
31362}
31363
31364// MarshalJSON is the custom marshaler for PartitionHealthEvaluation.
31365func (phe PartitionHealthEvaluation) MarshalJSON() ([]byte, error) {
31366	phe.Kind = KindPartition
31367	objectMap := make(map[string]interface{})
31368	if phe.PartitionID != nil {
31369		objectMap["PartitionId"] = phe.PartitionID
31370	}
31371	if phe.UnhealthyEvaluations != nil {
31372		objectMap["UnhealthyEvaluations"] = phe.UnhealthyEvaluations
31373	}
31374	if phe.AggregatedHealthState != "" {
31375		objectMap["AggregatedHealthState"] = phe.AggregatedHealthState
31376	}
31377	if phe.Description != nil {
31378		objectMap["Description"] = phe.Description
31379	}
31380	if phe.Kind != "" {
31381		objectMap["Kind"] = phe.Kind
31382	}
31383	return json.Marshal(objectMap)
31384}
31385
31386// AsApplicationHealthEvaluation is the BasicHealthEvaluation implementation for PartitionHealthEvaluation.
31387func (phe PartitionHealthEvaluation) AsApplicationHealthEvaluation() (*ApplicationHealthEvaluation, bool) {
31388	return nil, false
31389}
31390
31391// AsApplicationsHealthEvaluation is the BasicHealthEvaluation implementation for PartitionHealthEvaluation.
31392func (phe PartitionHealthEvaluation) AsApplicationsHealthEvaluation() (*ApplicationsHealthEvaluation, bool) {
31393	return nil, false
31394}
31395
31396// AsApplicationTypeApplicationsHealthEvaluation is the BasicHealthEvaluation implementation for PartitionHealthEvaluation.
31397func (phe PartitionHealthEvaluation) AsApplicationTypeApplicationsHealthEvaluation() (*ApplicationTypeApplicationsHealthEvaluation, bool) {
31398	return nil, false
31399}
31400
31401// AsDeltaNodesCheckHealthEvaluation is the BasicHealthEvaluation implementation for PartitionHealthEvaluation.
31402func (phe PartitionHealthEvaluation) AsDeltaNodesCheckHealthEvaluation() (*DeltaNodesCheckHealthEvaluation, bool) {
31403	return nil, false
31404}
31405
31406// AsDeployedApplicationHealthEvaluation is the BasicHealthEvaluation implementation for PartitionHealthEvaluation.
31407func (phe PartitionHealthEvaluation) AsDeployedApplicationHealthEvaluation() (*DeployedApplicationHealthEvaluation, bool) {
31408	return nil, false
31409}
31410
31411// AsDeployedApplicationsHealthEvaluation is the BasicHealthEvaluation implementation for PartitionHealthEvaluation.
31412func (phe PartitionHealthEvaluation) AsDeployedApplicationsHealthEvaluation() (*DeployedApplicationsHealthEvaluation, bool) {
31413	return nil, false
31414}
31415
31416// AsDeployedServicePackageHealthEvaluation is the BasicHealthEvaluation implementation for PartitionHealthEvaluation.
31417func (phe PartitionHealthEvaluation) AsDeployedServicePackageHealthEvaluation() (*DeployedServicePackageHealthEvaluation, bool) {
31418	return nil, false
31419}
31420
31421// AsDeployedServicePackagesHealthEvaluation is the BasicHealthEvaluation implementation for PartitionHealthEvaluation.
31422func (phe PartitionHealthEvaluation) AsDeployedServicePackagesHealthEvaluation() (*DeployedServicePackagesHealthEvaluation, bool) {
31423	return nil, false
31424}
31425
31426// AsEventHealthEvaluation is the BasicHealthEvaluation implementation for PartitionHealthEvaluation.
31427func (phe PartitionHealthEvaluation) AsEventHealthEvaluation() (*EventHealthEvaluation, bool) {
31428	return nil, false
31429}
31430
31431// AsNodeHealthEvaluation is the BasicHealthEvaluation implementation for PartitionHealthEvaluation.
31432func (phe PartitionHealthEvaluation) AsNodeHealthEvaluation() (*NodeHealthEvaluation, bool) {
31433	return nil, false
31434}
31435
31436// AsNodesHealthEvaluation is the BasicHealthEvaluation implementation for PartitionHealthEvaluation.
31437func (phe PartitionHealthEvaluation) AsNodesHealthEvaluation() (*NodesHealthEvaluation, bool) {
31438	return nil, false
31439}
31440
31441// AsPartitionHealthEvaluation is the BasicHealthEvaluation implementation for PartitionHealthEvaluation.
31442func (phe PartitionHealthEvaluation) AsPartitionHealthEvaluation() (*PartitionHealthEvaluation, bool) {
31443	return &phe, true
31444}
31445
31446// AsPartitionsHealthEvaluation is the BasicHealthEvaluation implementation for PartitionHealthEvaluation.
31447func (phe PartitionHealthEvaluation) AsPartitionsHealthEvaluation() (*PartitionsHealthEvaluation, bool) {
31448	return nil, false
31449}
31450
31451// AsReplicaHealthEvaluation is the BasicHealthEvaluation implementation for PartitionHealthEvaluation.
31452func (phe PartitionHealthEvaluation) AsReplicaHealthEvaluation() (*ReplicaHealthEvaluation, bool) {
31453	return nil, false
31454}
31455
31456// AsReplicasHealthEvaluation is the BasicHealthEvaluation implementation for PartitionHealthEvaluation.
31457func (phe PartitionHealthEvaluation) AsReplicasHealthEvaluation() (*ReplicasHealthEvaluation, bool) {
31458	return nil, false
31459}
31460
31461// AsServiceHealthEvaluation is the BasicHealthEvaluation implementation for PartitionHealthEvaluation.
31462func (phe PartitionHealthEvaluation) AsServiceHealthEvaluation() (*ServiceHealthEvaluation, bool) {
31463	return nil, false
31464}
31465
31466// AsServicesHealthEvaluation is the BasicHealthEvaluation implementation for PartitionHealthEvaluation.
31467func (phe PartitionHealthEvaluation) AsServicesHealthEvaluation() (*ServicesHealthEvaluation, bool) {
31468	return nil, false
31469}
31470
31471// AsSystemApplicationHealthEvaluation is the BasicHealthEvaluation implementation for PartitionHealthEvaluation.
31472func (phe PartitionHealthEvaluation) AsSystemApplicationHealthEvaluation() (*SystemApplicationHealthEvaluation, bool) {
31473	return nil, false
31474}
31475
31476// AsUpgradeDomainDeltaNodesCheckHealthEvaluation is the BasicHealthEvaluation implementation for PartitionHealthEvaluation.
31477func (phe PartitionHealthEvaluation) AsUpgradeDomainDeltaNodesCheckHealthEvaluation() (*UpgradeDomainDeltaNodesCheckHealthEvaluation, bool) {
31478	return nil, false
31479}
31480
31481// AsUpgradeDomainNodesHealthEvaluation is the BasicHealthEvaluation implementation for PartitionHealthEvaluation.
31482func (phe PartitionHealthEvaluation) AsUpgradeDomainNodesHealthEvaluation() (*UpgradeDomainNodesHealthEvaluation, bool) {
31483	return nil, false
31484}
31485
31486// AsHealthEvaluation is the BasicHealthEvaluation implementation for PartitionHealthEvaluation.
31487func (phe PartitionHealthEvaluation) AsHealthEvaluation() (*HealthEvaluation, bool) {
31488	return nil, false
31489}
31490
31491// AsBasicHealthEvaluation is the BasicHealthEvaluation implementation for PartitionHealthEvaluation.
31492func (phe PartitionHealthEvaluation) AsBasicHealthEvaluation() (BasicHealthEvaluation, bool) {
31493	return &phe, true
31494}
31495
31496// PartitionHealthReportExpiredEvent partition Health Report Expired event.
31497type PartitionHealthReportExpiredEvent struct {
31498	// SourceID - Id of report source.
31499	SourceID *string `json:"SourceId,omitempty"`
31500	// Property - Describes the property.
31501	Property *string `json:"Property,omitempty"`
31502	// HealthState - Describes the property health state.
31503	HealthState *string `json:"HealthState,omitempty"`
31504	// TimeToLiveMs - Time to live in milli-seconds.
31505	TimeToLiveMs *int64 `json:"TimeToLiveMs,omitempty"`
31506	// SequenceNumber - Sequence number of report.
31507	SequenceNumber *int64 `json:"SequenceNumber,omitempty"`
31508	// Description - Description of report.
31509	Description *string `json:"Description,omitempty"`
31510	// RemoveWhenExpired - Indicates the removal when it expires.
31511	RemoveWhenExpired *bool `json:"RemoveWhenExpired,omitempty"`
31512	// SourceUtcTimestamp - Source time.
31513	SourceUtcTimestamp *date.Time `json:"SourceUtcTimestamp,omitempty"`
31514	// 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.
31515	PartitionID *uuid.UUID `json:"PartitionId,omitempty"`
31516	// EventInstanceID - The identifier for the FabricEvent instance.
31517	EventInstanceID *uuid.UUID `json:"EventInstanceId,omitempty"`
31518	// Category - The category of event.
31519	Category *string `json:"Category,omitempty"`
31520	// TimeStamp - The time event was logged.
31521	TimeStamp *date.Time `json:"TimeStamp,omitempty"`
31522	// HasCorrelatedEvents - Shows there is existing related events available.
31523	HasCorrelatedEvents *bool `json:"HasCorrelatedEvents,omitempty"`
31524	// 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'
31525	Kind KindBasicFabricEvent `json:"Kind,omitempty"`
31526}
31527
31528// MarshalJSON is the custom marshaler for PartitionHealthReportExpiredEvent.
31529func (phree PartitionHealthReportExpiredEvent) MarshalJSON() ([]byte, error) {
31530	phree.Kind = KindPartitionHealthReportExpired
31531	objectMap := make(map[string]interface{})
31532	if phree.SourceID != nil {
31533		objectMap["SourceId"] = phree.SourceID
31534	}
31535	if phree.Property != nil {
31536		objectMap["Property"] = phree.Property
31537	}
31538	if phree.HealthState != nil {
31539		objectMap["HealthState"] = phree.HealthState
31540	}
31541	if phree.TimeToLiveMs != nil {
31542		objectMap["TimeToLiveMs"] = phree.TimeToLiveMs
31543	}
31544	if phree.SequenceNumber != nil {
31545		objectMap["SequenceNumber"] = phree.SequenceNumber
31546	}
31547	if phree.Description != nil {
31548		objectMap["Description"] = phree.Description
31549	}
31550	if phree.RemoveWhenExpired != nil {
31551		objectMap["RemoveWhenExpired"] = phree.RemoveWhenExpired
31552	}
31553	if phree.SourceUtcTimestamp != nil {
31554		objectMap["SourceUtcTimestamp"] = phree.SourceUtcTimestamp
31555	}
31556	if phree.PartitionID != nil {
31557		objectMap["PartitionId"] = phree.PartitionID
31558	}
31559	if phree.EventInstanceID != nil {
31560		objectMap["EventInstanceId"] = phree.EventInstanceID
31561	}
31562	if phree.Category != nil {
31563		objectMap["Category"] = phree.Category
31564	}
31565	if phree.TimeStamp != nil {
31566		objectMap["TimeStamp"] = phree.TimeStamp
31567	}
31568	if phree.HasCorrelatedEvents != nil {
31569		objectMap["HasCorrelatedEvents"] = phree.HasCorrelatedEvents
31570	}
31571	if phree.Kind != "" {
31572		objectMap["Kind"] = phree.Kind
31573	}
31574	return json.Marshal(objectMap)
31575}
31576
31577// AsApplicationEvent is the BasicFabricEvent implementation for PartitionHealthReportExpiredEvent.
31578func (phree PartitionHealthReportExpiredEvent) AsApplicationEvent() (*ApplicationEvent, bool) {
31579	return nil, false
31580}
31581
31582// AsBasicApplicationEvent is the BasicFabricEvent implementation for PartitionHealthReportExpiredEvent.
31583func (phree PartitionHealthReportExpiredEvent) AsBasicApplicationEvent() (BasicApplicationEvent, bool) {
31584	return nil, false
31585}
31586
31587// AsClusterEvent is the BasicFabricEvent implementation for PartitionHealthReportExpiredEvent.
31588func (phree PartitionHealthReportExpiredEvent) AsClusterEvent() (*ClusterEvent, bool) {
31589	return nil, false
31590}
31591
31592// AsBasicClusterEvent is the BasicFabricEvent implementation for PartitionHealthReportExpiredEvent.
31593func (phree PartitionHealthReportExpiredEvent) AsBasicClusterEvent() (BasicClusterEvent, bool) {
31594	return nil, false
31595}
31596
31597// AsContainerInstanceEvent is the BasicFabricEvent implementation for PartitionHealthReportExpiredEvent.
31598func (phree PartitionHealthReportExpiredEvent) AsContainerInstanceEvent() (*ContainerInstanceEvent, bool) {
31599	return nil, false
31600}
31601
31602// AsNodeEvent is the BasicFabricEvent implementation for PartitionHealthReportExpiredEvent.
31603func (phree PartitionHealthReportExpiredEvent) AsNodeEvent() (*NodeEvent, bool) {
31604	return nil, false
31605}
31606
31607// AsBasicNodeEvent is the BasicFabricEvent implementation for PartitionHealthReportExpiredEvent.
31608func (phree PartitionHealthReportExpiredEvent) AsBasicNodeEvent() (BasicNodeEvent, bool) {
31609	return nil, false
31610}
31611
31612// AsPartitionAnalysisEvent is the BasicFabricEvent implementation for PartitionHealthReportExpiredEvent.
31613func (phree PartitionHealthReportExpiredEvent) AsPartitionAnalysisEvent() (*PartitionAnalysisEvent, bool) {
31614	return nil, false
31615}
31616
31617// AsBasicPartitionAnalysisEvent is the BasicFabricEvent implementation for PartitionHealthReportExpiredEvent.
31618func (phree PartitionHealthReportExpiredEvent) AsBasicPartitionAnalysisEvent() (BasicPartitionAnalysisEvent, bool) {
31619	return nil, false
31620}
31621
31622// AsPartitionEvent is the BasicFabricEvent implementation for PartitionHealthReportExpiredEvent.
31623func (phree PartitionHealthReportExpiredEvent) AsPartitionEvent() (*PartitionEvent, bool) {
31624	return nil, false
31625}
31626
31627// AsBasicPartitionEvent is the BasicFabricEvent implementation for PartitionHealthReportExpiredEvent.
31628func (phree PartitionHealthReportExpiredEvent) AsBasicPartitionEvent() (BasicPartitionEvent, bool) {
31629	return &phree, true
31630}
31631
31632// AsReplicaEvent is the BasicFabricEvent implementation for PartitionHealthReportExpiredEvent.
31633func (phree PartitionHealthReportExpiredEvent) AsReplicaEvent() (*ReplicaEvent, bool) {
31634	return nil, false
31635}
31636
31637// AsBasicReplicaEvent is the BasicFabricEvent implementation for PartitionHealthReportExpiredEvent.
31638func (phree PartitionHealthReportExpiredEvent) AsBasicReplicaEvent() (BasicReplicaEvent, bool) {
31639	return nil, false
31640}
31641
31642// AsServiceEvent is the BasicFabricEvent implementation for PartitionHealthReportExpiredEvent.
31643func (phree PartitionHealthReportExpiredEvent) AsServiceEvent() (*ServiceEvent, bool) {
31644	return nil, false
31645}
31646
31647// AsBasicServiceEvent is the BasicFabricEvent implementation for PartitionHealthReportExpiredEvent.
31648func (phree PartitionHealthReportExpiredEvent) AsBasicServiceEvent() (BasicServiceEvent, bool) {
31649	return nil, false
31650}
31651
31652// AsApplicationCreatedEvent is the BasicFabricEvent implementation for PartitionHealthReportExpiredEvent.
31653func (phree PartitionHealthReportExpiredEvent) AsApplicationCreatedEvent() (*ApplicationCreatedEvent, bool) {
31654	return nil, false
31655}
31656
31657// AsApplicationDeletedEvent is the BasicFabricEvent implementation for PartitionHealthReportExpiredEvent.
31658func (phree PartitionHealthReportExpiredEvent) AsApplicationDeletedEvent() (*ApplicationDeletedEvent, bool) {
31659	return nil, false
31660}
31661
31662// AsApplicationNewHealthReportEvent is the BasicFabricEvent implementation for PartitionHealthReportExpiredEvent.
31663func (phree PartitionHealthReportExpiredEvent) AsApplicationNewHealthReportEvent() (*ApplicationNewHealthReportEvent, bool) {
31664	return nil, false
31665}
31666
31667// AsApplicationHealthReportExpiredEvent is the BasicFabricEvent implementation for PartitionHealthReportExpiredEvent.
31668func (phree PartitionHealthReportExpiredEvent) AsApplicationHealthReportExpiredEvent() (*ApplicationHealthReportExpiredEvent, bool) {
31669	return nil, false
31670}
31671
31672// AsApplicationUpgradeCompletedEvent is the BasicFabricEvent implementation for PartitionHealthReportExpiredEvent.
31673func (phree PartitionHealthReportExpiredEvent) AsApplicationUpgradeCompletedEvent() (*ApplicationUpgradeCompletedEvent, bool) {
31674	return nil, false
31675}
31676
31677// AsApplicationUpgradeDomainCompletedEvent is the BasicFabricEvent implementation for PartitionHealthReportExpiredEvent.
31678func (phree PartitionHealthReportExpiredEvent) AsApplicationUpgradeDomainCompletedEvent() (*ApplicationUpgradeDomainCompletedEvent, bool) {
31679	return nil, false
31680}
31681
31682// AsApplicationUpgradeRollbackCompletedEvent is the BasicFabricEvent implementation for PartitionHealthReportExpiredEvent.
31683func (phree PartitionHealthReportExpiredEvent) AsApplicationUpgradeRollbackCompletedEvent() (*ApplicationUpgradeRollbackCompletedEvent, bool) {
31684	return nil, false
31685}
31686
31687// AsApplicationUpgradeRollbackStartedEvent is the BasicFabricEvent implementation for PartitionHealthReportExpiredEvent.
31688func (phree PartitionHealthReportExpiredEvent) AsApplicationUpgradeRollbackStartedEvent() (*ApplicationUpgradeRollbackStartedEvent, bool) {
31689	return nil, false
31690}
31691
31692// AsApplicationUpgradeStartedEvent is the BasicFabricEvent implementation for PartitionHealthReportExpiredEvent.
31693func (phree PartitionHealthReportExpiredEvent) AsApplicationUpgradeStartedEvent() (*ApplicationUpgradeStartedEvent, bool) {
31694	return nil, false
31695}
31696
31697// AsDeployedApplicationNewHealthReportEvent is the BasicFabricEvent implementation for PartitionHealthReportExpiredEvent.
31698func (phree PartitionHealthReportExpiredEvent) AsDeployedApplicationNewHealthReportEvent() (*DeployedApplicationNewHealthReportEvent, bool) {
31699	return nil, false
31700}
31701
31702// AsDeployedApplicationHealthReportExpiredEvent is the BasicFabricEvent implementation for PartitionHealthReportExpiredEvent.
31703func (phree PartitionHealthReportExpiredEvent) AsDeployedApplicationHealthReportExpiredEvent() (*DeployedApplicationHealthReportExpiredEvent, bool) {
31704	return nil, false
31705}
31706
31707// AsApplicationProcessExitedEvent is the BasicFabricEvent implementation for PartitionHealthReportExpiredEvent.
31708func (phree PartitionHealthReportExpiredEvent) AsApplicationProcessExitedEvent() (*ApplicationProcessExitedEvent, bool) {
31709	return nil, false
31710}
31711
31712// AsApplicationContainerInstanceExitedEvent is the BasicFabricEvent implementation for PartitionHealthReportExpiredEvent.
31713func (phree PartitionHealthReportExpiredEvent) AsApplicationContainerInstanceExitedEvent() (*ApplicationContainerInstanceExitedEvent, bool) {
31714	return nil, false
31715}
31716
31717// AsNodeAbortedEvent is the BasicFabricEvent implementation for PartitionHealthReportExpiredEvent.
31718func (phree PartitionHealthReportExpiredEvent) AsNodeAbortedEvent() (*NodeAbortedEvent, bool) {
31719	return nil, false
31720}
31721
31722// AsNodeAddedToClusterEvent is the BasicFabricEvent implementation for PartitionHealthReportExpiredEvent.
31723func (phree PartitionHealthReportExpiredEvent) AsNodeAddedToClusterEvent() (*NodeAddedToClusterEvent, bool) {
31724	return nil, false
31725}
31726
31727// AsNodeClosedEvent is the BasicFabricEvent implementation for PartitionHealthReportExpiredEvent.
31728func (phree PartitionHealthReportExpiredEvent) AsNodeClosedEvent() (*NodeClosedEvent, bool) {
31729	return nil, false
31730}
31731
31732// AsNodeDeactivateCompletedEvent is the BasicFabricEvent implementation for PartitionHealthReportExpiredEvent.
31733func (phree PartitionHealthReportExpiredEvent) AsNodeDeactivateCompletedEvent() (*NodeDeactivateCompletedEvent, bool) {
31734	return nil, false
31735}
31736
31737// AsNodeDeactivateStartedEvent is the BasicFabricEvent implementation for PartitionHealthReportExpiredEvent.
31738func (phree PartitionHealthReportExpiredEvent) AsNodeDeactivateStartedEvent() (*NodeDeactivateStartedEvent, bool) {
31739	return nil, false
31740}
31741
31742// AsNodeDownEvent is the BasicFabricEvent implementation for PartitionHealthReportExpiredEvent.
31743func (phree PartitionHealthReportExpiredEvent) AsNodeDownEvent() (*NodeDownEvent, bool) {
31744	return nil, false
31745}
31746
31747// AsNodeNewHealthReportEvent is the BasicFabricEvent implementation for PartitionHealthReportExpiredEvent.
31748func (phree PartitionHealthReportExpiredEvent) AsNodeNewHealthReportEvent() (*NodeNewHealthReportEvent, bool) {
31749	return nil, false
31750}
31751
31752// AsNodeHealthReportExpiredEvent is the BasicFabricEvent implementation for PartitionHealthReportExpiredEvent.
31753func (phree PartitionHealthReportExpiredEvent) AsNodeHealthReportExpiredEvent() (*NodeHealthReportExpiredEvent, bool) {
31754	return nil, false
31755}
31756
31757// AsNodeOpenSucceededEvent is the BasicFabricEvent implementation for PartitionHealthReportExpiredEvent.
31758func (phree PartitionHealthReportExpiredEvent) AsNodeOpenSucceededEvent() (*NodeOpenSucceededEvent, bool) {
31759	return nil, false
31760}
31761
31762// AsNodeOpenFailedEvent is the BasicFabricEvent implementation for PartitionHealthReportExpiredEvent.
31763func (phree PartitionHealthReportExpiredEvent) AsNodeOpenFailedEvent() (*NodeOpenFailedEvent, bool) {
31764	return nil, false
31765}
31766
31767// AsNodeRemovedFromClusterEvent is the BasicFabricEvent implementation for PartitionHealthReportExpiredEvent.
31768func (phree PartitionHealthReportExpiredEvent) AsNodeRemovedFromClusterEvent() (*NodeRemovedFromClusterEvent, bool) {
31769	return nil, false
31770}
31771
31772// AsNodeUpEvent is the BasicFabricEvent implementation for PartitionHealthReportExpiredEvent.
31773func (phree PartitionHealthReportExpiredEvent) AsNodeUpEvent() (*NodeUpEvent, bool) {
31774	return nil, false
31775}
31776
31777// AsPartitionNewHealthReportEvent is the BasicFabricEvent implementation for PartitionHealthReportExpiredEvent.
31778func (phree PartitionHealthReportExpiredEvent) AsPartitionNewHealthReportEvent() (*PartitionNewHealthReportEvent, bool) {
31779	return nil, false
31780}
31781
31782// AsPartitionHealthReportExpiredEvent is the BasicFabricEvent implementation for PartitionHealthReportExpiredEvent.
31783func (phree PartitionHealthReportExpiredEvent) AsPartitionHealthReportExpiredEvent() (*PartitionHealthReportExpiredEvent, bool) {
31784	return &phree, true
31785}
31786
31787// AsPartitionReconfiguredEvent is the BasicFabricEvent implementation for PartitionHealthReportExpiredEvent.
31788func (phree PartitionHealthReportExpiredEvent) AsPartitionReconfiguredEvent() (*PartitionReconfiguredEvent, bool) {
31789	return nil, false
31790}
31791
31792// AsPartitionPrimaryMoveAnalysisEvent is the BasicFabricEvent implementation for PartitionHealthReportExpiredEvent.
31793func (phree PartitionHealthReportExpiredEvent) AsPartitionPrimaryMoveAnalysisEvent() (*PartitionPrimaryMoveAnalysisEvent, bool) {
31794	return nil, false
31795}
31796
31797// AsServiceCreatedEvent is the BasicFabricEvent implementation for PartitionHealthReportExpiredEvent.
31798func (phree PartitionHealthReportExpiredEvent) AsServiceCreatedEvent() (*ServiceCreatedEvent, bool) {
31799	return nil, false
31800}
31801
31802// AsServiceDeletedEvent is the BasicFabricEvent implementation for PartitionHealthReportExpiredEvent.
31803func (phree PartitionHealthReportExpiredEvent) AsServiceDeletedEvent() (*ServiceDeletedEvent, bool) {
31804	return nil, false
31805}
31806
31807// AsServiceNewHealthReportEvent is the BasicFabricEvent implementation for PartitionHealthReportExpiredEvent.
31808func (phree PartitionHealthReportExpiredEvent) AsServiceNewHealthReportEvent() (*ServiceNewHealthReportEvent, bool) {
31809	return nil, false
31810}
31811
31812// AsServiceHealthReportExpiredEvent is the BasicFabricEvent implementation for PartitionHealthReportExpiredEvent.
31813func (phree PartitionHealthReportExpiredEvent) AsServiceHealthReportExpiredEvent() (*ServiceHealthReportExpiredEvent, bool) {
31814	return nil, false
31815}
31816
31817// AsDeployedServicePackageNewHealthReportEvent is the BasicFabricEvent implementation for PartitionHealthReportExpiredEvent.
31818func (phree PartitionHealthReportExpiredEvent) AsDeployedServicePackageNewHealthReportEvent() (*DeployedServicePackageNewHealthReportEvent, bool) {
31819	return nil, false
31820}
31821
31822// AsDeployedServicePackageHealthReportExpiredEvent is the BasicFabricEvent implementation for PartitionHealthReportExpiredEvent.
31823func (phree PartitionHealthReportExpiredEvent) AsDeployedServicePackageHealthReportExpiredEvent() (*DeployedServicePackageHealthReportExpiredEvent, bool) {
31824	return nil, false
31825}
31826
31827// AsStatefulReplicaNewHealthReportEvent is the BasicFabricEvent implementation for PartitionHealthReportExpiredEvent.
31828func (phree PartitionHealthReportExpiredEvent) AsStatefulReplicaNewHealthReportEvent() (*StatefulReplicaNewHealthReportEvent, bool) {
31829	return nil, false
31830}
31831
31832// AsStatefulReplicaHealthReportExpiredEvent is the BasicFabricEvent implementation for PartitionHealthReportExpiredEvent.
31833func (phree PartitionHealthReportExpiredEvent) AsStatefulReplicaHealthReportExpiredEvent() (*StatefulReplicaHealthReportExpiredEvent, bool) {
31834	return nil, false
31835}
31836
31837// AsStatelessReplicaNewHealthReportEvent is the BasicFabricEvent implementation for PartitionHealthReportExpiredEvent.
31838func (phree PartitionHealthReportExpiredEvent) AsStatelessReplicaNewHealthReportEvent() (*StatelessReplicaNewHealthReportEvent, bool) {
31839	return nil, false
31840}
31841
31842// AsStatelessReplicaHealthReportExpiredEvent is the BasicFabricEvent implementation for PartitionHealthReportExpiredEvent.
31843func (phree PartitionHealthReportExpiredEvent) AsStatelessReplicaHealthReportExpiredEvent() (*StatelessReplicaHealthReportExpiredEvent, bool) {
31844	return nil, false
31845}
31846
31847// AsClusterNewHealthReportEvent is the BasicFabricEvent implementation for PartitionHealthReportExpiredEvent.
31848func (phree PartitionHealthReportExpiredEvent) AsClusterNewHealthReportEvent() (*ClusterNewHealthReportEvent, bool) {
31849	return nil, false
31850}
31851
31852// AsClusterHealthReportExpiredEvent is the BasicFabricEvent implementation for PartitionHealthReportExpiredEvent.
31853func (phree PartitionHealthReportExpiredEvent) AsClusterHealthReportExpiredEvent() (*ClusterHealthReportExpiredEvent, bool) {
31854	return nil, false
31855}
31856
31857// AsClusterUpgradeCompletedEvent is the BasicFabricEvent implementation for PartitionHealthReportExpiredEvent.
31858func (phree PartitionHealthReportExpiredEvent) AsClusterUpgradeCompletedEvent() (*ClusterUpgradeCompletedEvent, bool) {
31859	return nil, false
31860}
31861
31862// AsClusterUpgradeDomainCompletedEvent is the BasicFabricEvent implementation for PartitionHealthReportExpiredEvent.
31863func (phree PartitionHealthReportExpiredEvent) AsClusterUpgradeDomainCompletedEvent() (*ClusterUpgradeDomainCompletedEvent, bool) {
31864	return nil, false
31865}
31866
31867// AsClusterUpgradeRollbackCompletedEvent is the BasicFabricEvent implementation for PartitionHealthReportExpiredEvent.
31868func (phree PartitionHealthReportExpiredEvent) AsClusterUpgradeRollbackCompletedEvent() (*ClusterUpgradeRollbackCompletedEvent, bool) {
31869	return nil, false
31870}
31871
31872// AsClusterUpgradeRollbackStartedEvent is the BasicFabricEvent implementation for PartitionHealthReportExpiredEvent.
31873func (phree PartitionHealthReportExpiredEvent) AsClusterUpgradeRollbackStartedEvent() (*ClusterUpgradeRollbackStartedEvent, bool) {
31874	return nil, false
31875}
31876
31877// AsClusterUpgradeStartedEvent is the BasicFabricEvent implementation for PartitionHealthReportExpiredEvent.
31878func (phree PartitionHealthReportExpiredEvent) AsClusterUpgradeStartedEvent() (*ClusterUpgradeStartedEvent, bool) {
31879	return nil, false
31880}
31881
31882// AsChaosStoppedEvent is the BasicFabricEvent implementation for PartitionHealthReportExpiredEvent.
31883func (phree PartitionHealthReportExpiredEvent) AsChaosStoppedEvent() (*ChaosStoppedEvent, bool) {
31884	return nil, false
31885}
31886
31887// AsChaosStartedEvent is the BasicFabricEvent implementation for PartitionHealthReportExpiredEvent.
31888func (phree PartitionHealthReportExpiredEvent) AsChaosStartedEvent() (*ChaosStartedEvent, bool) {
31889	return nil, false
31890}
31891
31892// AsChaosCodePackageRestartScheduledEvent is the BasicFabricEvent implementation for PartitionHealthReportExpiredEvent.
31893func (phree PartitionHealthReportExpiredEvent) AsChaosCodePackageRestartScheduledEvent() (*ChaosCodePackageRestartScheduledEvent, bool) {
31894	return nil, false
31895}
31896
31897// AsChaosReplicaRemovalScheduledEvent is the BasicFabricEvent implementation for PartitionHealthReportExpiredEvent.
31898func (phree PartitionHealthReportExpiredEvent) AsChaosReplicaRemovalScheduledEvent() (*ChaosReplicaRemovalScheduledEvent, bool) {
31899	return nil, false
31900}
31901
31902// AsChaosPartitionSecondaryMoveScheduledEvent is the BasicFabricEvent implementation for PartitionHealthReportExpiredEvent.
31903func (phree PartitionHealthReportExpiredEvent) AsChaosPartitionSecondaryMoveScheduledEvent() (*ChaosPartitionSecondaryMoveScheduledEvent, bool) {
31904	return nil, false
31905}
31906
31907// AsChaosPartitionPrimaryMoveScheduledEvent is the BasicFabricEvent implementation for PartitionHealthReportExpiredEvent.
31908func (phree PartitionHealthReportExpiredEvent) AsChaosPartitionPrimaryMoveScheduledEvent() (*ChaosPartitionPrimaryMoveScheduledEvent, bool) {
31909	return nil, false
31910}
31911
31912// AsChaosReplicaRestartScheduledEvent is the BasicFabricEvent implementation for PartitionHealthReportExpiredEvent.
31913func (phree PartitionHealthReportExpiredEvent) AsChaosReplicaRestartScheduledEvent() (*ChaosReplicaRestartScheduledEvent, bool) {
31914	return nil, false
31915}
31916
31917// AsChaosNodeRestartScheduledEvent is the BasicFabricEvent implementation for PartitionHealthReportExpiredEvent.
31918func (phree PartitionHealthReportExpiredEvent) AsChaosNodeRestartScheduledEvent() (*ChaosNodeRestartScheduledEvent, bool) {
31919	return nil, false
31920}
31921
31922// AsFabricEvent is the BasicFabricEvent implementation for PartitionHealthReportExpiredEvent.
31923func (phree PartitionHealthReportExpiredEvent) AsFabricEvent() (*FabricEvent, bool) {
31924	return nil, false
31925}
31926
31927// AsBasicFabricEvent is the BasicFabricEvent implementation for PartitionHealthReportExpiredEvent.
31928func (phree PartitionHealthReportExpiredEvent) AsBasicFabricEvent() (BasicFabricEvent, bool) {
31929	return &phree, true
31930}
31931
31932// PartitionHealthState represents the health state of a partition, which contains the partition identifier
31933// and its aggregated health state.
31934type PartitionHealthState struct {
31935	// PartitionID - Id of the partition whose health state is described by this object.
31936	PartitionID *uuid.UUID `json:"PartitionId,omitempty"`
31937	// 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'
31938	AggregatedHealthState HealthState `json:"AggregatedHealthState,omitempty"`
31939}
31940
31941// PartitionHealthStateChunk represents the health state chunk of a partition, which contains the partition
31942// ID, its aggregated health state and any replicas that respect the filters in the cluster health chunk
31943// query description.
31944type PartitionHealthStateChunk struct {
31945	// PartitionID - The Id of the partition.
31946	PartitionID *uuid.UUID `json:"PartitionId,omitempty"`
31947	// ReplicaHealthStateChunks - The list of replica health state chunks belonging to the partition that respect the filters in the cluster health chunk query description.
31948	ReplicaHealthStateChunks *ReplicaHealthStateChunkList `json:"ReplicaHealthStateChunks,omitempty"`
31949	// 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'
31950	HealthState HealthState `json:"HealthState,omitempty"`
31951}
31952
31953// PartitionHealthStateChunkList the list of partition health state chunks that respect the input filters
31954// in the chunk query description.
31955// Returned by get cluster health state chunks query as part of the parent application hierarchy.
31956type PartitionHealthStateChunkList struct {
31957	// Items - The list of partition health state chunks that respect the input filters in the chunk query.
31958	Items *[]PartitionHealthStateChunk `json:"Items,omitempty"`
31959}
31960
31961// PartitionHealthStateFilter defines matching criteria to determine whether a partition should be included
31962// as a child of a service in the cluster health chunk.
31963// The partitions are only returned if the parent entities match a filter specified in the cluster health
31964// chunk query description. The parent service and application must be included in the cluster health
31965// chunk.
31966// One filter can match zero, one or multiple partitions, depending on its properties.
31967type PartitionHealthStateFilter struct {
31968	// PartitionIDFilter - ID of the partition that matches the filter. The filter is applied only to the specified partition, if it exists.
31969	// If the partition doesn't exist, no partition is returned in the cluster health chunk based on this filter.
31970	// If the partition exists, it is included in the cluster health chunk if it respects the other filter properties.
31971	// 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.
31972	PartitionIDFilter *uuid.UUID `json:"PartitionIdFilter,omitempty"`
31973	// HealthStateFilter - The filter for the health state of the partitions. It allows selecting partitions if they match the desired health states.
31974	// 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.
31975	// 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.
31976	// The state values are flag-based enumeration, so the value could be a combination of these values obtained using bitwise 'OR' operator.
31977	// For example, if the provided value is 6, it matches partitions with HealthState value of OK (2) and Warning (4).
31978	// - Default - Default value. Matches any HealthState. The value is zero.
31979	// - 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.
31980	// - Ok - Filter that matches input with HealthState value Ok. The value is 2.
31981	// - Warning - Filter that matches input with HealthState value Warning. The value is 4.
31982	// - Error - Filter that matches input with HealthState value Error. The value is 8.
31983	// - All - Filter that matches input with any HealthState value. The value is 65535.
31984	HealthStateFilter *int32 `json:"HealthStateFilter,omitempty"`
31985	// 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.
31986	// 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.
31987	// The partition filter may specify multiple replica filters.
31988	// 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.
31989	ReplicaFilters *[]ReplicaHealthStateFilter `json:"ReplicaFilters,omitempty"`
31990}
31991
31992// BasicPartitionInformation information about the partition identity, partitioning scheme and keys supported by it.
31993type BasicPartitionInformation interface {
31994	AsInt64RangePartitionInformation() (*Int64RangePartitionInformation, bool)
31995	AsNamedPartitionInformation() (*NamedPartitionInformation, bool)
31996	AsSingletonPartitionInformation() (*SingletonPartitionInformation, bool)
31997	AsPartitionInformation() (*PartitionInformation, bool)
31998}
31999
32000// PartitionInformation information about the partition identity, partitioning scheme and keys supported by it.
32001type PartitionInformation struct {
32002	// 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.
32003	ID *uuid.UUID `json:"Id,omitempty"`
32004	// ServicePartitionKind - Possible values include: 'ServicePartitionKindPartitionInformation', 'ServicePartitionKindInt64Range1', 'ServicePartitionKindNamed1', 'ServicePartitionKindSingleton1'
32005	ServicePartitionKind ServicePartitionKindBasicPartitionInformation `json:"ServicePartitionKind,omitempty"`
32006}
32007
32008func unmarshalBasicPartitionInformation(body []byte) (BasicPartitionInformation, error) {
32009	var m map[string]interface{}
32010	err := json.Unmarshal(body, &m)
32011	if err != nil {
32012		return nil, err
32013	}
32014
32015	switch m["ServicePartitionKind"] {
32016	case string(ServicePartitionKindInt64Range1):
32017		var i6rpi Int64RangePartitionInformation
32018		err := json.Unmarshal(body, &i6rpi)
32019		return i6rpi, err
32020	case string(ServicePartitionKindNamed1):
32021		var npi NamedPartitionInformation
32022		err := json.Unmarshal(body, &npi)
32023		return npi, err
32024	case string(ServicePartitionKindSingleton1):
32025		var spi SingletonPartitionInformation
32026		err := json.Unmarshal(body, &spi)
32027		return spi, err
32028	default:
32029		var pi PartitionInformation
32030		err := json.Unmarshal(body, &pi)
32031		return pi, err
32032	}
32033}
32034func unmarshalBasicPartitionInformationArray(body []byte) ([]BasicPartitionInformation, error) {
32035	var rawMessages []*json.RawMessage
32036	err := json.Unmarshal(body, &rawMessages)
32037	if err != nil {
32038		return nil, err
32039	}
32040
32041	piArray := make([]BasicPartitionInformation, len(rawMessages))
32042
32043	for index, rawMessage := range rawMessages {
32044		pi, err := unmarshalBasicPartitionInformation(*rawMessage)
32045		if err != nil {
32046			return nil, err
32047		}
32048		piArray[index] = pi
32049	}
32050	return piArray, nil
32051}
32052
32053// MarshalJSON is the custom marshaler for PartitionInformation.
32054func (pi PartitionInformation) MarshalJSON() ([]byte, error) {
32055	pi.ServicePartitionKind = ServicePartitionKindPartitionInformation
32056	objectMap := make(map[string]interface{})
32057	if pi.ID != nil {
32058		objectMap["Id"] = pi.ID
32059	}
32060	if pi.ServicePartitionKind != "" {
32061		objectMap["ServicePartitionKind"] = pi.ServicePartitionKind
32062	}
32063	return json.Marshal(objectMap)
32064}
32065
32066// AsInt64RangePartitionInformation is the BasicPartitionInformation implementation for PartitionInformation.
32067func (pi PartitionInformation) AsInt64RangePartitionInformation() (*Int64RangePartitionInformation, bool) {
32068	return nil, false
32069}
32070
32071// AsNamedPartitionInformation is the BasicPartitionInformation implementation for PartitionInformation.
32072func (pi PartitionInformation) AsNamedPartitionInformation() (*NamedPartitionInformation, bool) {
32073	return nil, false
32074}
32075
32076// AsSingletonPartitionInformation is the BasicPartitionInformation implementation for PartitionInformation.
32077func (pi PartitionInformation) AsSingletonPartitionInformation() (*SingletonPartitionInformation, bool) {
32078	return nil, false
32079}
32080
32081// AsPartitionInformation is the BasicPartitionInformation implementation for PartitionInformation.
32082func (pi PartitionInformation) AsPartitionInformation() (*PartitionInformation, bool) {
32083	return &pi, true
32084}
32085
32086// AsBasicPartitionInformation is the BasicPartitionInformation implementation for PartitionInformation.
32087func (pi PartitionInformation) AsBasicPartitionInformation() (BasicPartitionInformation, bool) {
32088	return &pi, true
32089}
32090
32091// PartitionInstanceCountScaleMechanism represents a scaling mechanism for adding or removing instances of
32092// stateless service partition.
32093type PartitionInstanceCountScaleMechanism struct {
32094	// MinInstanceCount - Minimum number of instances of the partition.
32095	MinInstanceCount *int32 `json:"MinInstanceCount,omitempty"`
32096	// MaxInstanceCount - Maximum number of instances of the partition.
32097	MaxInstanceCount *int32 `json:"MaxInstanceCount,omitempty"`
32098	// ScaleIncrement - The number of instances to add or remove during a scaling operation.
32099	ScaleIncrement *int32 `json:"ScaleIncrement,omitempty"`
32100	// Kind - Possible values include: 'KindScalingMechanismDescription', 'KindPartitionInstanceCount', 'KindAddRemoveIncrementalNamedPartition'
32101	Kind KindBasicScalingMechanismDescription `json:"Kind,omitempty"`
32102}
32103
32104// MarshalJSON is the custom marshaler for PartitionInstanceCountScaleMechanism.
32105func (picsm PartitionInstanceCountScaleMechanism) MarshalJSON() ([]byte, error) {
32106	picsm.Kind = KindPartitionInstanceCount
32107	objectMap := make(map[string]interface{})
32108	if picsm.MinInstanceCount != nil {
32109		objectMap["MinInstanceCount"] = picsm.MinInstanceCount
32110	}
32111	if picsm.MaxInstanceCount != nil {
32112		objectMap["MaxInstanceCount"] = picsm.MaxInstanceCount
32113	}
32114	if picsm.ScaleIncrement != nil {
32115		objectMap["ScaleIncrement"] = picsm.ScaleIncrement
32116	}
32117	if picsm.Kind != "" {
32118		objectMap["Kind"] = picsm.Kind
32119	}
32120	return json.Marshal(objectMap)
32121}
32122
32123// AsPartitionInstanceCountScaleMechanism is the BasicScalingMechanismDescription implementation for PartitionInstanceCountScaleMechanism.
32124func (picsm PartitionInstanceCountScaleMechanism) AsPartitionInstanceCountScaleMechanism() (*PartitionInstanceCountScaleMechanism, bool) {
32125	return &picsm, true
32126}
32127
32128// AsAddRemoveIncrementalNamedPartitionScalingMechanism is the BasicScalingMechanismDescription implementation for PartitionInstanceCountScaleMechanism.
32129func (picsm PartitionInstanceCountScaleMechanism) AsAddRemoveIncrementalNamedPartitionScalingMechanism() (*AddRemoveIncrementalNamedPartitionScalingMechanism, bool) {
32130	return nil, false
32131}
32132
32133// AsScalingMechanismDescription is the BasicScalingMechanismDescription implementation for PartitionInstanceCountScaleMechanism.
32134func (picsm PartitionInstanceCountScaleMechanism) AsScalingMechanismDescription() (*ScalingMechanismDescription, bool) {
32135	return nil, false
32136}
32137
32138// AsBasicScalingMechanismDescription is the BasicScalingMechanismDescription implementation for PartitionInstanceCountScaleMechanism.
32139func (picsm PartitionInstanceCountScaleMechanism) AsBasicScalingMechanismDescription() (BasicScalingMechanismDescription, bool) {
32140	return &picsm, true
32141}
32142
32143// PartitionLoadInformation represents load information for a partition, which contains the primary and
32144// secondary reported load metrics.
32145// In case there is no load reported, PartitionLoadInformation will contain the default load for the
32146// service of the partition.
32147// For default loads, LoadMetricReport's LastReportedUtc is set to 0.
32148type PartitionLoadInformation struct {
32149	autorest.Response `json:"-"`
32150	// PartitionID - Id of the partition.
32151	PartitionID *uuid.UUID `json:"PartitionId,omitempty"`
32152	// PrimaryLoadMetricReports - Array of load reports from the primary replica for this partition.
32153	PrimaryLoadMetricReports *[]LoadMetricReport `json:"PrimaryLoadMetricReports,omitempty"`
32154	// SecondaryLoadMetricReports - Array of aggregated load reports from all secondary replicas for this partition.
32155	// Array only contains the latest reported load for each metric.
32156	SecondaryLoadMetricReports *[]LoadMetricReport `json:"SecondaryLoadMetricReports,omitempty"`
32157}
32158
32159// PartitionNewHealthReportEvent partition Health Report Created event.
32160type PartitionNewHealthReportEvent struct {
32161	// SourceID - Id of report source.
32162	SourceID *string `json:"SourceId,omitempty"`
32163	// Property - Describes the property.
32164	Property *string `json:"Property,omitempty"`
32165	// HealthState - Describes the property health state.
32166	HealthState *string `json:"HealthState,omitempty"`
32167	// TimeToLiveMs - Time to live in milli-seconds.
32168	TimeToLiveMs *int64 `json:"TimeToLiveMs,omitempty"`
32169	// SequenceNumber - Sequence number of report.
32170	SequenceNumber *int64 `json:"SequenceNumber,omitempty"`
32171	// Description - Description of report.
32172	Description *string `json:"Description,omitempty"`
32173	// RemoveWhenExpired - Indicates the removal when it expires.
32174	RemoveWhenExpired *bool `json:"RemoveWhenExpired,omitempty"`
32175	// SourceUtcTimestamp - Source time.
32176	SourceUtcTimestamp *date.Time `json:"SourceUtcTimestamp,omitempty"`
32177	// 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.
32178	PartitionID *uuid.UUID `json:"PartitionId,omitempty"`
32179	// EventInstanceID - The identifier for the FabricEvent instance.
32180	EventInstanceID *uuid.UUID `json:"EventInstanceId,omitempty"`
32181	// Category - The category of event.
32182	Category *string `json:"Category,omitempty"`
32183	// TimeStamp - The time event was logged.
32184	TimeStamp *date.Time `json:"TimeStamp,omitempty"`
32185	// HasCorrelatedEvents - Shows there is existing related events available.
32186	HasCorrelatedEvents *bool `json:"HasCorrelatedEvents,omitempty"`
32187	// 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'
32188	Kind KindBasicFabricEvent `json:"Kind,omitempty"`
32189}
32190
32191// MarshalJSON is the custom marshaler for PartitionNewHealthReportEvent.
32192func (pnhre PartitionNewHealthReportEvent) MarshalJSON() ([]byte, error) {
32193	pnhre.Kind = KindPartitionNewHealthReport
32194	objectMap := make(map[string]interface{})
32195	if pnhre.SourceID != nil {
32196		objectMap["SourceId"] = pnhre.SourceID
32197	}
32198	if pnhre.Property != nil {
32199		objectMap["Property"] = pnhre.Property
32200	}
32201	if pnhre.HealthState != nil {
32202		objectMap["HealthState"] = pnhre.HealthState
32203	}
32204	if pnhre.TimeToLiveMs != nil {
32205		objectMap["TimeToLiveMs"] = pnhre.TimeToLiveMs
32206	}
32207	if pnhre.SequenceNumber != nil {
32208		objectMap["SequenceNumber"] = pnhre.SequenceNumber
32209	}
32210	if pnhre.Description != nil {
32211		objectMap["Description"] = pnhre.Description
32212	}
32213	if pnhre.RemoveWhenExpired != nil {
32214		objectMap["RemoveWhenExpired"] = pnhre.RemoveWhenExpired
32215	}
32216	if pnhre.SourceUtcTimestamp != nil {
32217		objectMap["SourceUtcTimestamp"] = pnhre.SourceUtcTimestamp
32218	}
32219	if pnhre.PartitionID != nil {
32220		objectMap["PartitionId"] = pnhre.PartitionID
32221	}
32222	if pnhre.EventInstanceID != nil {
32223		objectMap["EventInstanceId"] = pnhre.EventInstanceID
32224	}
32225	if pnhre.Category != nil {
32226		objectMap["Category"] = pnhre.Category
32227	}
32228	if pnhre.TimeStamp != nil {
32229		objectMap["TimeStamp"] = pnhre.TimeStamp
32230	}
32231	if pnhre.HasCorrelatedEvents != nil {
32232		objectMap["HasCorrelatedEvents"] = pnhre.HasCorrelatedEvents
32233	}
32234	if pnhre.Kind != "" {
32235		objectMap["Kind"] = pnhre.Kind
32236	}
32237	return json.Marshal(objectMap)
32238}
32239
32240// AsApplicationEvent is the BasicFabricEvent implementation for PartitionNewHealthReportEvent.
32241func (pnhre PartitionNewHealthReportEvent) AsApplicationEvent() (*ApplicationEvent, bool) {
32242	return nil, false
32243}
32244
32245// AsBasicApplicationEvent is the BasicFabricEvent implementation for PartitionNewHealthReportEvent.
32246func (pnhre PartitionNewHealthReportEvent) AsBasicApplicationEvent() (BasicApplicationEvent, bool) {
32247	return nil, false
32248}
32249
32250// AsClusterEvent is the BasicFabricEvent implementation for PartitionNewHealthReportEvent.
32251func (pnhre PartitionNewHealthReportEvent) AsClusterEvent() (*ClusterEvent, bool) {
32252	return nil, false
32253}
32254
32255// AsBasicClusterEvent is the BasicFabricEvent implementation for PartitionNewHealthReportEvent.
32256func (pnhre PartitionNewHealthReportEvent) AsBasicClusterEvent() (BasicClusterEvent, bool) {
32257	return nil, false
32258}
32259
32260// AsContainerInstanceEvent is the BasicFabricEvent implementation for PartitionNewHealthReportEvent.
32261func (pnhre PartitionNewHealthReportEvent) AsContainerInstanceEvent() (*ContainerInstanceEvent, bool) {
32262	return nil, false
32263}
32264
32265// AsNodeEvent is the BasicFabricEvent implementation for PartitionNewHealthReportEvent.
32266func (pnhre PartitionNewHealthReportEvent) AsNodeEvent() (*NodeEvent, bool) {
32267	return nil, false
32268}
32269
32270// AsBasicNodeEvent is the BasicFabricEvent implementation for PartitionNewHealthReportEvent.
32271func (pnhre PartitionNewHealthReportEvent) AsBasicNodeEvent() (BasicNodeEvent, bool) {
32272	return nil, false
32273}
32274
32275// AsPartitionAnalysisEvent is the BasicFabricEvent implementation for PartitionNewHealthReportEvent.
32276func (pnhre PartitionNewHealthReportEvent) AsPartitionAnalysisEvent() (*PartitionAnalysisEvent, bool) {
32277	return nil, false
32278}
32279
32280// AsBasicPartitionAnalysisEvent is the BasicFabricEvent implementation for PartitionNewHealthReportEvent.
32281func (pnhre PartitionNewHealthReportEvent) AsBasicPartitionAnalysisEvent() (BasicPartitionAnalysisEvent, bool) {
32282	return nil, false
32283}
32284
32285// AsPartitionEvent is the BasicFabricEvent implementation for PartitionNewHealthReportEvent.
32286func (pnhre PartitionNewHealthReportEvent) AsPartitionEvent() (*PartitionEvent, bool) {
32287	return nil, false
32288}
32289
32290// AsBasicPartitionEvent is the BasicFabricEvent implementation for PartitionNewHealthReportEvent.
32291func (pnhre PartitionNewHealthReportEvent) AsBasicPartitionEvent() (BasicPartitionEvent, bool) {
32292	return &pnhre, true
32293}
32294
32295// AsReplicaEvent is the BasicFabricEvent implementation for PartitionNewHealthReportEvent.
32296func (pnhre PartitionNewHealthReportEvent) AsReplicaEvent() (*ReplicaEvent, bool) {
32297	return nil, false
32298}
32299
32300// AsBasicReplicaEvent is the BasicFabricEvent implementation for PartitionNewHealthReportEvent.
32301func (pnhre PartitionNewHealthReportEvent) AsBasicReplicaEvent() (BasicReplicaEvent, bool) {
32302	return nil, false
32303}
32304
32305// AsServiceEvent is the BasicFabricEvent implementation for PartitionNewHealthReportEvent.
32306func (pnhre PartitionNewHealthReportEvent) AsServiceEvent() (*ServiceEvent, bool) {
32307	return nil, false
32308}
32309
32310// AsBasicServiceEvent is the BasicFabricEvent implementation for PartitionNewHealthReportEvent.
32311func (pnhre PartitionNewHealthReportEvent) AsBasicServiceEvent() (BasicServiceEvent, bool) {
32312	return nil, false
32313}
32314
32315// AsApplicationCreatedEvent is the BasicFabricEvent implementation for PartitionNewHealthReportEvent.
32316func (pnhre PartitionNewHealthReportEvent) AsApplicationCreatedEvent() (*ApplicationCreatedEvent, bool) {
32317	return nil, false
32318}
32319
32320// AsApplicationDeletedEvent is the BasicFabricEvent implementation for PartitionNewHealthReportEvent.
32321func (pnhre PartitionNewHealthReportEvent) AsApplicationDeletedEvent() (*ApplicationDeletedEvent, bool) {
32322	return nil, false
32323}
32324
32325// AsApplicationNewHealthReportEvent is the BasicFabricEvent implementation for PartitionNewHealthReportEvent.
32326func (pnhre PartitionNewHealthReportEvent) AsApplicationNewHealthReportEvent() (*ApplicationNewHealthReportEvent, bool) {
32327	return nil, false
32328}
32329
32330// AsApplicationHealthReportExpiredEvent is the BasicFabricEvent implementation for PartitionNewHealthReportEvent.
32331func (pnhre PartitionNewHealthReportEvent) AsApplicationHealthReportExpiredEvent() (*ApplicationHealthReportExpiredEvent, bool) {
32332	return nil, false
32333}
32334
32335// AsApplicationUpgradeCompletedEvent is the BasicFabricEvent implementation for PartitionNewHealthReportEvent.
32336func (pnhre PartitionNewHealthReportEvent) AsApplicationUpgradeCompletedEvent() (*ApplicationUpgradeCompletedEvent, bool) {
32337	return nil, false
32338}
32339
32340// AsApplicationUpgradeDomainCompletedEvent is the BasicFabricEvent implementation for PartitionNewHealthReportEvent.
32341func (pnhre PartitionNewHealthReportEvent) AsApplicationUpgradeDomainCompletedEvent() (*ApplicationUpgradeDomainCompletedEvent, bool) {
32342	return nil, false
32343}
32344
32345// AsApplicationUpgradeRollbackCompletedEvent is the BasicFabricEvent implementation for PartitionNewHealthReportEvent.
32346func (pnhre PartitionNewHealthReportEvent) AsApplicationUpgradeRollbackCompletedEvent() (*ApplicationUpgradeRollbackCompletedEvent, bool) {
32347	return nil, false
32348}
32349
32350// AsApplicationUpgradeRollbackStartedEvent is the BasicFabricEvent implementation for PartitionNewHealthReportEvent.
32351func (pnhre PartitionNewHealthReportEvent) AsApplicationUpgradeRollbackStartedEvent() (*ApplicationUpgradeRollbackStartedEvent, bool) {
32352	return nil, false
32353}
32354
32355// AsApplicationUpgradeStartedEvent is the BasicFabricEvent implementation for PartitionNewHealthReportEvent.
32356func (pnhre PartitionNewHealthReportEvent) AsApplicationUpgradeStartedEvent() (*ApplicationUpgradeStartedEvent, bool) {
32357	return nil, false
32358}
32359
32360// AsDeployedApplicationNewHealthReportEvent is the BasicFabricEvent implementation for PartitionNewHealthReportEvent.
32361func (pnhre PartitionNewHealthReportEvent) AsDeployedApplicationNewHealthReportEvent() (*DeployedApplicationNewHealthReportEvent, bool) {
32362	return nil, false
32363}
32364
32365// AsDeployedApplicationHealthReportExpiredEvent is the BasicFabricEvent implementation for PartitionNewHealthReportEvent.
32366func (pnhre PartitionNewHealthReportEvent) AsDeployedApplicationHealthReportExpiredEvent() (*DeployedApplicationHealthReportExpiredEvent, bool) {
32367	return nil, false
32368}
32369
32370// AsApplicationProcessExitedEvent is the BasicFabricEvent implementation for PartitionNewHealthReportEvent.
32371func (pnhre PartitionNewHealthReportEvent) AsApplicationProcessExitedEvent() (*ApplicationProcessExitedEvent, bool) {
32372	return nil, false
32373}
32374
32375// AsApplicationContainerInstanceExitedEvent is the BasicFabricEvent implementation for PartitionNewHealthReportEvent.
32376func (pnhre PartitionNewHealthReportEvent) AsApplicationContainerInstanceExitedEvent() (*ApplicationContainerInstanceExitedEvent, bool) {
32377	return nil, false
32378}
32379
32380// AsNodeAbortedEvent is the BasicFabricEvent implementation for PartitionNewHealthReportEvent.
32381func (pnhre PartitionNewHealthReportEvent) AsNodeAbortedEvent() (*NodeAbortedEvent, bool) {
32382	return nil, false
32383}
32384
32385// AsNodeAddedToClusterEvent is the BasicFabricEvent implementation for PartitionNewHealthReportEvent.
32386func (pnhre PartitionNewHealthReportEvent) AsNodeAddedToClusterEvent() (*NodeAddedToClusterEvent, bool) {
32387	return nil, false
32388}
32389
32390// AsNodeClosedEvent is the BasicFabricEvent implementation for PartitionNewHealthReportEvent.
32391func (pnhre PartitionNewHealthReportEvent) AsNodeClosedEvent() (*NodeClosedEvent, bool) {
32392	return nil, false
32393}
32394
32395// AsNodeDeactivateCompletedEvent is the BasicFabricEvent implementation for PartitionNewHealthReportEvent.
32396func (pnhre PartitionNewHealthReportEvent) AsNodeDeactivateCompletedEvent() (*NodeDeactivateCompletedEvent, bool) {
32397	return nil, false
32398}
32399
32400// AsNodeDeactivateStartedEvent is the BasicFabricEvent implementation for PartitionNewHealthReportEvent.
32401func (pnhre PartitionNewHealthReportEvent) AsNodeDeactivateStartedEvent() (*NodeDeactivateStartedEvent, bool) {
32402	return nil, false
32403}
32404
32405// AsNodeDownEvent is the BasicFabricEvent implementation for PartitionNewHealthReportEvent.
32406func (pnhre PartitionNewHealthReportEvent) AsNodeDownEvent() (*NodeDownEvent, bool) {
32407	return nil, false
32408}
32409
32410// AsNodeNewHealthReportEvent is the BasicFabricEvent implementation for PartitionNewHealthReportEvent.
32411func (pnhre PartitionNewHealthReportEvent) AsNodeNewHealthReportEvent() (*NodeNewHealthReportEvent, bool) {
32412	return nil, false
32413}
32414
32415// AsNodeHealthReportExpiredEvent is the BasicFabricEvent implementation for PartitionNewHealthReportEvent.
32416func (pnhre PartitionNewHealthReportEvent) AsNodeHealthReportExpiredEvent() (*NodeHealthReportExpiredEvent, bool) {
32417	return nil, false
32418}
32419
32420// AsNodeOpenSucceededEvent is the BasicFabricEvent implementation for PartitionNewHealthReportEvent.
32421func (pnhre PartitionNewHealthReportEvent) AsNodeOpenSucceededEvent() (*NodeOpenSucceededEvent, bool) {
32422	return nil, false
32423}
32424
32425// AsNodeOpenFailedEvent is the BasicFabricEvent implementation for PartitionNewHealthReportEvent.
32426func (pnhre PartitionNewHealthReportEvent) AsNodeOpenFailedEvent() (*NodeOpenFailedEvent, bool) {
32427	return nil, false
32428}
32429
32430// AsNodeRemovedFromClusterEvent is the BasicFabricEvent implementation for PartitionNewHealthReportEvent.
32431func (pnhre PartitionNewHealthReportEvent) AsNodeRemovedFromClusterEvent() (*NodeRemovedFromClusterEvent, bool) {
32432	return nil, false
32433}
32434
32435// AsNodeUpEvent is the BasicFabricEvent implementation for PartitionNewHealthReportEvent.
32436func (pnhre PartitionNewHealthReportEvent) AsNodeUpEvent() (*NodeUpEvent, bool) {
32437	return nil, false
32438}
32439
32440// AsPartitionNewHealthReportEvent is the BasicFabricEvent implementation for PartitionNewHealthReportEvent.
32441func (pnhre PartitionNewHealthReportEvent) AsPartitionNewHealthReportEvent() (*PartitionNewHealthReportEvent, bool) {
32442	return &pnhre, true
32443}
32444
32445// AsPartitionHealthReportExpiredEvent is the BasicFabricEvent implementation for PartitionNewHealthReportEvent.
32446func (pnhre PartitionNewHealthReportEvent) AsPartitionHealthReportExpiredEvent() (*PartitionHealthReportExpiredEvent, bool) {
32447	return nil, false
32448}
32449
32450// AsPartitionReconfiguredEvent is the BasicFabricEvent implementation for PartitionNewHealthReportEvent.
32451func (pnhre PartitionNewHealthReportEvent) AsPartitionReconfiguredEvent() (*PartitionReconfiguredEvent, bool) {
32452	return nil, false
32453}
32454
32455// AsPartitionPrimaryMoveAnalysisEvent is the BasicFabricEvent implementation for PartitionNewHealthReportEvent.
32456func (pnhre PartitionNewHealthReportEvent) AsPartitionPrimaryMoveAnalysisEvent() (*PartitionPrimaryMoveAnalysisEvent, bool) {
32457	return nil, false
32458}
32459
32460// AsServiceCreatedEvent is the BasicFabricEvent implementation for PartitionNewHealthReportEvent.
32461func (pnhre PartitionNewHealthReportEvent) AsServiceCreatedEvent() (*ServiceCreatedEvent, bool) {
32462	return nil, false
32463}
32464
32465// AsServiceDeletedEvent is the BasicFabricEvent implementation for PartitionNewHealthReportEvent.
32466func (pnhre PartitionNewHealthReportEvent) AsServiceDeletedEvent() (*ServiceDeletedEvent, bool) {
32467	return nil, false
32468}
32469
32470// AsServiceNewHealthReportEvent is the BasicFabricEvent implementation for PartitionNewHealthReportEvent.
32471func (pnhre PartitionNewHealthReportEvent) AsServiceNewHealthReportEvent() (*ServiceNewHealthReportEvent, bool) {
32472	return nil, false
32473}
32474
32475// AsServiceHealthReportExpiredEvent is the BasicFabricEvent implementation for PartitionNewHealthReportEvent.
32476func (pnhre PartitionNewHealthReportEvent) AsServiceHealthReportExpiredEvent() (*ServiceHealthReportExpiredEvent, bool) {
32477	return nil, false
32478}
32479
32480// AsDeployedServicePackageNewHealthReportEvent is the BasicFabricEvent implementation for PartitionNewHealthReportEvent.
32481func (pnhre PartitionNewHealthReportEvent) AsDeployedServicePackageNewHealthReportEvent() (*DeployedServicePackageNewHealthReportEvent, bool) {
32482	return nil, false
32483}
32484
32485// AsDeployedServicePackageHealthReportExpiredEvent is the BasicFabricEvent implementation for PartitionNewHealthReportEvent.
32486func (pnhre PartitionNewHealthReportEvent) AsDeployedServicePackageHealthReportExpiredEvent() (*DeployedServicePackageHealthReportExpiredEvent, bool) {
32487	return nil, false
32488}
32489
32490// AsStatefulReplicaNewHealthReportEvent is the BasicFabricEvent implementation for PartitionNewHealthReportEvent.
32491func (pnhre PartitionNewHealthReportEvent) AsStatefulReplicaNewHealthReportEvent() (*StatefulReplicaNewHealthReportEvent, bool) {
32492	return nil, false
32493}
32494
32495// AsStatefulReplicaHealthReportExpiredEvent is the BasicFabricEvent implementation for PartitionNewHealthReportEvent.
32496func (pnhre PartitionNewHealthReportEvent) AsStatefulReplicaHealthReportExpiredEvent() (*StatefulReplicaHealthReportExpiredEvent, bool) {
32497	return nil, false
32498}
32499
32500// AsStatelessReplicaNewHealthReportEvent is the BasicFabricEvent implementation for PartitionNewHealthReportEvent.
32501func (pnhre PartitionNewHealthReportEvent) AsStatelessReplicaNewHealthReportEvent() (*StatelessReplicaNewHealthReportEvent, bool) {
32502	return nil, false
32503}
32504
32505// AsStatelessReplicaHealthReportExpiredEvent is the BasicFabricEvent implementation for PartitionNewHealthReportEvent.
32506func (pnhre PartitionNewHealthReportEvent) AsStatelessReplicaHealthReportExpiredEvent() (*StatelessReplicaHealthReportExpiredEvent, bool) {
32507	return nil, false
32508}
32509
32510// AsClusterNewHealthReportEvent is the BasicFabricEvent implementation for PartitionNewHealthReportEvent.
32511func (pnhre PartitionNewHealthReportEvent) AsClusterNewHealthReportEvent() (*ClusterNewHealthReportEvent, bool) {
32512	return nil, false
32513}
32514
32515// AsClusterHealthReportExpiredEvent is the BasicFabricEvent implementation for PartitionNewHealthReportEvent.
32516func (pnhre PartitionNewHealthReportEvent) AsClusterHealthReportExpiredEvent() (*ClusterHealthReportExpiredEvent, bool) {
32517	return nil, false
32518}
32519
32520// AsClusterUpgradeCompletedEvent is the BasicFabricEvent implementation for PartitionNewHealthReportEvent.
32521func (pnhre PartitionNewHealthReportEvent) AsClusterUpgradeCompletedEvent() (*ClusterUpgradeCompletedEvent, bool) {
32522	return nil, false
32523}
32524
32525// AsClusterUpgradeDomainCompletedEvent is the BasicFabricEvent implementation for PartitionNewHealthReportEvent.
32526func (pnhre PartitionNewHealthReportEvent) AsClusterUpgradeDomainCompletedEvent() (*ClusterUpgradeDomainCompletedEvent, bool) {
32527	return nil, false
32528}
32529
32530// AsClusterUpgradeRollbackCompletedEvent is the BasicFabricEvent implementation for PartitionNewHealthReportEvent.
32531func (pnhre PartitionNewHealthReportEvent) AsClusterUpgradeRollbackCompletedEvent() (*ClusterUpgradeRollbackCompletedEvent, bool) {
32532	return nil, false
32533}
32534
32535// AsClusterUpgradeRollbackStartedEvent is the BasicFabricEvent implementation for PartitionNewHealthReportEvent.
32536func (pnhre PartitionNewHealthReportEvent) AsClusterUpgradeRollbackStartedEvent() (*ClusterUpgradeRollbackStartedEvent, bool) {
32537	return nil, false
32538}
32539
32540// AsClusterUpgradeStartedEvent is the BasicFabricEvent implementation for PartitionNewHealthReportEvent.
32541func (pnhre PartitionNewHealthReportEvent) AsClusterUpgradeStartedEvent() (*ClusterUpgradeStartedEvent, bool) {
32542	return nil, false
32543}
32544
32545// AsChaosStoppedEvent is the BasicFabricEvent implementation for PartitionNewHealthReportEvent.
32546func (pnhre PartitionNewHealthReportEvent) AsChaosStoppedEvent() (*ChaosStoppedEvent, bool) {
32547	return nil, false
32548}
32549
32550// AsChaosStartedEvent is the BasicFabricEvent implementation for PartitionNewHealthReportEvent.
32551func (pnhre PartitionNewHealthReportEvent) AsChaosStartedEvent() (*ChaosStartedEvent, bool) {
32552	return nil, false
32553}
32554
32555// AsChaosCodePackageRestartScheduledEvent is the BasicFabricEvent implementation for PartitionNewHealthReportEvent.
32556func (pnhre PartitionNewHealthReportEvent) AsChaosCodePackageRestartScheduledEvent() (*ChaosCodePackageRestartScheduledEvent, bool) {
32557	return nil, false
32558}
32559
32560// AsChaosReplicaRemovalScheduledEvent is the BasicFabricEvent implementation for PartitionNewHealthReportEvent.
32561func (pnhre PartitionNewHealthReportEvent) AsChaosReplicaRemovalScheduledEvent() (*ChaosReplicaRemovalScheduledEvent, bool) {
32562	return nil, false
32563}
32564
32565// AsChaosPartitionSecondaryMoveScheduledEvent is the BasicFabricEvent implementation for PartitionNewHealthReportEvent.
32566func (pnhre PartitionNewHealthReportEvent) AsChaosPartitionSecondaryMoveScheduledEvent() (*ChaosPartitionSecondaryMoveScheduledEvent, bool) {
32567	return nil, false
32568}
32569
32570// AsChaosPartitionPrimaryMoveScheduledEvent is the BasicFabricEvent implementation for PartitionNewHealthReportEvent.
32571func (pnhre PartitionNewHealthReportEvent) AsChaosPartitionPrimaryMoveScheduledEvent() (*ChaosPartitionPrimaryMoveScheduledEvent, bool) {
32572	return nil, false
32573}
32574
32575// AsChaosReplicaRestartScheduledEvent is the BasicFabricEvent implementation for PartitionNewHealthReportEvent.
32576func (pnhre PartitionNewHealthReportEvent) AsChaosReplicaRestartScheduledEvent() (*ChaosReplicaRestartScheduledEvent, bool) {
32577	return nil, false
32578}
32579
32580// AsChaosNodeRestartScheduledEvent is the BasicFabricEvent implementation for PartitionNewHealthReportEvent.
32581func (pnhre PartitionNewHealthReportEvent) AsChaosNodeRestartScheduledEvent() (*ChaosNodeRestartScheduledEvent, bool) {
32582	return nil, false
32583}
32584
32585// AsFabricEvent is the BasicFabricEvent implementation for PartitionNewHealthReportEvent.
32586func (pnhre PartitionNewHealthReportEvent) AsFabricEvent() (*FabricEvent, bool) {
32587	return nil, false
32588}
32589
32590// AsBasicFabricEvent is the BasicFabricEvent implementation for PartitionNewHealthReportEvent.
32591func (pnhre PartitionNewHealthReportEvent) AsBasicFabricEvent() (BasicFabricEvent, bool) {
32592	return &pnhre, true
32593}
32594
32595// PartitionPrimaryMoveAnalysisEvent partition Primary Move Analysis event.
32596type PartitionPrimaryMoveAnalysisEvent struct {
32597	// WhenMoveCompleted - Time when the move was completed.
32598	WhenMoveCompleted *date.Time `json:"WhenMoveCompleted,omitempty"`
32599	// PreviousNode - The name of a Service Fabric node.
32600	PreviousNode *string `json:"PreviousNode,omitempty"`
32601	// CurrentNode - The name of a Service Fabric node.
32602	CurrentNode *string `json:"CurrentNode,omitempty"`
32603	// MoveReason - Move reason.
32604	MoveReason *string `json:"MoveReason,omitempty"`
32605	// RelevantTraces - Relevant traces.
32606	RelevantTraces *string `json:"RelevantTraces,omitempty"`
32607	// Metadata - Metadata about an Analysis Event.
32608	Metadata *AnalysisEventMetadata `json:"Metadata,omitempty"`
32609	// 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.
32610	PartitionID *uuid.UUID `json:"PartitionId,omitempty"`
32611	// EventInstanceID - The identifier for the FabricEvent instance.
32612	EventInstanceID *uuid.UUID `json:"EventInstanceId,omitempty"`
32613	// Category - The category of event.
32614	Category *string `json:"Category,omitempty"`
32615	// TimeStamp - The time event was logged.
32616	TimeStamp *date.Time `json:"TimeStamp,omitempty"`
32617	// HasCorrelatedEvents - Shows there is existing related events available.
32618	HasCorrelatedEvents *bool `json:"HasCorrelatedEvents,omitempty"`
32619	// 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'
32620	Kind KindBasicFabricEvent `json:"Kind,omitempty"`
32621}
32622
32623// MarshalJSON is the custom marshaler for PartitionPrimaryMoveAnalysisEvent.
32624func (ppmae PartitionPrimaryMoveAnalysisEvent) MarshalJSON() ([]byte, error) {
32625	ppmae.Kind = KindPartitionPrimaryMoveAnalysis
32626	objectMap := make(map[string]interface{})
32627	if ppmae.WhenMoveCompleted != nil {
32628		objectMap["WhenMoveCompleted"] = ppmae.WhenMoveCompleted
32629	}
32630	if ppmae.PreviousNode != nil {
32631		objectMap["PreviousNode"] = ppmae.PreviousNode
32632	}
32633	if ppmae.CurrentNode != nil {
32634		objectMap["CurrentNode"] = ppmae.CurrentNode
32635	}
32636	if ppmae.MoveReason != nil {
32637		objectMap["MoveReason"] = ppmae.MoveReason
32638	}
32639	if ppmae.RelevantTraces != nil {
32640		objectMap["RelevantTraces"] = ppmae.RelevantTraces
32641	}
32642	if ppmae.Metadata != nil {
32643		objectMap["Metadata"] = ppmae.Metadata
32644	}
32645	if ppmae.PartitionID != nil {
32646		objectMap["PartitionId"] = ppmae.PartitionID
32647	}
32648	if ppmae.EventInstanceID != nil {
32649		objectMap["EventInstanceId"] = ppmae.EventInstanceID
32650	}
32651	if ppmae.Category != nil {
32652		objectMap["Category"] = ppmae.Category
32653	}
32654	if ppmae.TimeStamp != nil {
32655		objectMap["TimeStamp"] = ppmae.TimeStamp
32656	}
32657	if ppmae.HasCorrelatedEvents != nil {
32658		objectMap["HasCorrelatedEvents"] = ppmae.HasCorrelatedEvents
32659	}
32660	if ppmae.Kind != "" {
32661		objectMap["Kind"] = ppmae.Kind
32662	}
32663	return json.Marshal(objectMap)
32664}
32665
32666// AsApplicationEvent is the BasicFabricEvent implementation for PartitionPrimaryMoveAnalysisEvent.
32667func (ppmae PartitionPrimaryMoveAnalysisEvent) AsApplicationEvent() (*ApplicationEvent, bool) {
32668	return nil, false
32669}
32670
32671// AsBasicApplicationEvent is the BasicFabricEvent implementation for PartitionPrimaryMoveAnalysisEvent.
32672func (ppmae PartitionPrimaryMoveAnalysisEvent) AsBasicApplicationEvent() (BasicApplicationEvent, bool) {
32673	return nil, false
32674}
32675
32676// AsClusterEvent is the BasicFabricEvent implementation for PartitionPrimaryMoveAnalysisEvent.
32677func (ppmae PartitionPrimaryMoveAnalysisEvent) AsClusterEvent() (*ClusterEvent, bool) {
32678	return nil, false
32679}
32680
32681// AsBasicClusterEvent is the BasicFabricEvent implementation for PartitionPrimaryMoveAnalysisEvent.
32682func (ppmae PartitionPrimaryMoveAnalysisEvent) AsBasicClusterEvent() (BasicClusterEvent, bool) {
32683	return nil, false
32684}
32685
32686// AsContainerInstanceEvent is the BasicFabricEvent implementation for PartitionPrimaryMoveAnalysisEvent.
32687func (ppmae PartitionPrimaryMoveAnalysisEvent) AsContainerInstanceEvent() (*ContainerInstanceEvent, bool) {
32688	return nil, false
32689}
32690
32691// AsNodeEvent is the BasicFabricEvent implementation for PartitionPrimaryMoveAnalysisEvent.
32692func (ppmae PartitionPrimaryMoveAnalysisEvent) AsNodeEvent() (*NodeEvent, bool) {
32693	return nil, false
32694}
32695
32696// AsBasicNodeEvent is the BasicFabricEvent implementation for PartitionPrimaryMoveAnalysisEvent.
32697func (ppmae PartitionPrimaryMoveAnalysisEvent) AsBasicNodeEvent() (BasicNodeEvent, bool) {
32698	return nil, false
32699}
32700
32701// AsPartitionAnalysisEvent is the BasicFabricEvent implementation for PartitionPrimaryMoveAnalysisEvent.
32702func (ppmae PartitionPrimaryMoveAnalysisEvent) AsPartitionAnalysisEvent() (*PartitionAnalysisEvent, bool) {
32703	return nil, false
32704}
32705
32706// AsBasicPartitionAnalysisEvent is the BasicFabricEvent implementation for PartitionPrimaryMoveAnalysisEvent.
32707func (ppmae PartitionPrimaryMoveAnalysisEvent) AsBasicPartitionAnalysisEvent() (BasicPartitionAnalysisEvent, bool) {
32708	return &ppmae, true
32709}
32710
32711// AsPartitionEvent is the BasicFabricEvent implementation for PartitionPrimaryMoveAnalysisEvent.
32712func (ppmae PartitionPrimaryMoveAnalysisEvent) AsPartitionEvent() (*PartitionEvent, bool) {
32713	return nil, false
32714}
32715
32716// AsBasicPartitionEvent is the BasicFabricEvent implementation for PartitionPrimaryMoveAnalysisEvent.
32717func (ppmae PartitionPrimaryMoveAnalysisEvent) AsBasicPartitionEvent() (BasicPartitionEvent, bool) {
32718	return &ppmae, true
32719}
32720
32721// AsReplicaEvent is the BasicFabricEvent implementation for PartitionPrimaryMoveAnalysisEvent.
32722func (ppmae PartitionPrimaryMoveAnalysisEvent) AsReplicaEvent() (*ReplicaEvent, bool) {
32723	return nil, false
32724}
32725
32726// AsBasicReplicaEvent is the BasicFabricEvent implementation for PartitionPrimaryMoveAnalysisEvent.
32727func (ppmae PartitionPrimaryMoveAnalysisEvent) AsBasicReplicaEvent() (BasicReplicaEvent, bool) {
32728	return nil, false
32729}
32730
32731// AsServiceEvent is the BasicFabricEvent implementation for PartitionPrimaryMoveAnalysisEvent.
32732func (ppmae PartitionPrimaryMoveAnalysisEvent) AsServiceEvent() (*ServiceEvent, bool) {
32733	return nil, false
32734}
32735
32736// AsBasicServiceEvent is the BasicFabricEvent implementation for PartitionPrimaryMoveAnalysisEvent.
32737func (ppmae PartitionPrimaryMoveAnalysisEvent) AsBasicServiceEvent() (BasicServiceEvent, bool) {
32738	return nil, false
32739}
32740
32741// AsApplicationCreatedEvent is the BasicFabricEvent implementation for PartitionPrimaryMoveAnalysisEvent.
32742func (ppmae PartitionPrimaryMoveAnalysisEvent) AsApplicationCreatedEvent() (*ApplicationCreatedEvent, bool) {
32743	return nil, false
32744}
32745
32746// AsApplicationDeletedEvent is the BasicFabricEvent implementation for PartitionPrimaryMoveAnalysisEvent.
32747func (ppmae PartitionPrimaryMoveAnalysisEvent) AsApplicationDeletedEvent() (*ApplicationDeletedEvent, bool) {
32748	return nil, false
32749}
32750
32751// AsApplicationNewHealthReportEvent is the BasicFabricEvent implementation for PartitionPrimaryMoveAnalysisEvent.
32752func (ppmae PartitionPrimaryMoveAnalysisEvent) AsApplicationNewHealthReportEvent() (*ApplicationNewHealthReportEvent, bool) {
32753	return nil, false
32754}
32755
32756// AsApplicationHealthReportExpiredEvent is the BasicFabricEvent implementation for PartitionPrimaryMoveAnalysisEvent.
32757func (ppmae PartitionPrimaryMoveAnalysisEvent) AsApplicationHealthReportExpiredEvent() (*ApplicationHealthReportExpiredEvent, bool) {
32758	return nil, false
32759}
32760
32761// AsApplicationUpgradeCompletedEvent is the BasicFabricEvent implementation for PartitionPrimaryMoveAnalysisEvent.
32762func (ppmae PartitionPrimaryMoveAnalysisEvent) AsApplicationUpgradeCompletedEvent() (*ApplicationUpgradeCompletedEvent, bool) {
32763	return nil, false
32764}
32765
32766// AsApplicationUpgradeDomainCompletedEvent is the BasicFabricEvent implementation for PartitionPrimaryMoveAnalysisEvent.
32767func (ppmae PartitionPrimaryMoveAnalysisEvent) AsApplicationUpgradeDomainCompletedEvent() (*ApplicationUpgradeDomainCompletedEvent, bool) {
32768	return nil, false
32769}
32770
32771// AsApplicationUpgradeRollbackCompletedEvent is the BasicFabricEvent implementation for PartitionPrimaryMoveAnalysisEvent.
32772func (ppmae PartitionPrimaryMoveAnalysisEvent) AsApplicationUpgradeRollbackCompletedEvent() (*ApplicationUpgradeRollbackCompletedEvent, bool) {
32773	return nil, false
32774}
32775
32776// AsApplicationUpgradeRollbackStartedEvent is the BasicFabricEvent implementation for PartitionPrimaryMoveAnalysisEvent.
32777func (ppmae PartitionPrimaryMoveAnalysisEvent) AsApplicationUpgradeRollbackStartedEvent() (*ApplicationUpgradeRollbackStartedEvent, bool) {
32778	return nil, false
32779}
32780
32781// AsApplicationUpgradeStartedEvent is the BasicFabricEvent implementation for PartitionPrimaryMoveAnalysisEvent.
32782func (ppmae PartitionPrimaryMoveAnalysisEvent) AsApplicationUpgradeStartedEvent() (*ApplicationUpgradeStartedEvent, bool) {
32783	return nil, false
32784}
32785
32786// AsDeployedApplicationNewHealthReportEvent is the BasicFabricEvent implementation for PartitionPrimaryMoveAnalysisEvent.
32787func (ppmae PartitionPrimaryMoveAnalysisEvent) AsDeployedApplicationNewHealthReportEvent() (*DeployedApplicationNewHealthReportEvent, bool) {
32788	return nil, false
32789}
32790
32791// AsDeployedApplicationHealthReportExpiredEvent is the BasicFabricEvent implementation for PartitionPrimaryMoveAnalysisEvent.
32792func (ppmae PartitionPrimaryMoveAnalysisEvent) AsDeployedApplicationHealthReportExpiredEvent() (*DeployedApplicationHealthReportExpiredEvent, bool) {
32793	return nil, false
32794}
32795
32796// AsApplicationProcessExitedEvent is the BasicFabricEvent implementation for PartitionPrimaryMoveAnalysisEvent.
32797func (ppmae PartitionPrimaryMoveAnalysisEvent) AsApplicationProcessExitedEvent() (*ApplicationProcessExitedEvent, bool) {
32798	return nil, false
32799}
32800
32801// AsApplicationContainerInstanceExitedEvent is the BasicFabricEvent implementation for PartitionPrimaryMoveAnalysisEvent.
32802func (ppmae PartitionPrimaryMoveAnalysisEvent) AsApplicationContainerInstanceExitedEvent() (*ApplicationContainerInstanceExitedEvent, bool) {
32803	return nil, false
32804}
32805
32806// AsNodeAbortedEvent is the BasicFabricEvent implementation for PartitionPrimaryMoveAnalysisEvent.
32807func (ppmae PartitionPrimaryMoveAnalysisEvent) AsNodeAbortedEvent() (*NodeAbortedEvent, bool) {
32808	return nil, false
32809}
32810
32811// AsNodeAddedToClusterEvent is the BasicFabricEvent implementation for PartitionPrimaryMoveAnalysisEvent.
32812func (ppmae PartitionPrimaryMoveAnalysisEvent) AsNodeAddedToClusterEvent() (*NodeAddedToClusterEvent, bool) {
32813	return nil, false
32814}
32815
32816// AsNodeClosedEvent is the BasicFabricEvent implementation for PartitionPrimaryMoveAnalysisEvent.
32817func (ppmae PartitionPrimaryMoveAnalysisEvent) AsNodeClosedEvent() (*NodeClosedEvent, bool) {
32818	return nil, false
32819}
32820
32821// AsNodeDeactivateCompletedEvent is the BasicFabricEvent implementation for PartitionPrimaryMoveAnalysisEvent.
32822func (ppmae PartitionPrimaryMoveAnalysisEvent) AsNodeDeactivateCompletedEvent() (*NodeDeactivateCompletedEvent, bool) {
32823	return nil, false
32824}
32825
32826// AsNodeDeactivateStartedEvent is the BasicFabricEvent implementation for PartitionPrimaryMoveAnalysisEvent.
32827func (ppmae PartitionPrimaryMoveAnalysisEvent) AsNodeDeactivateStartedEvent() (*NodeDeactivateStartedEvent, bool) {
32828	return nil, false
32829}
32830
32831// AsNodeDownEvent is the BasicFabricEvent implementation for PartitionPrimaryMoveAnalysisEvent.
32832func (ppmae PartitionPrimaryMoveAnalysisEvent) AsNodeDownEvent() (*NodeDownEvent, bool) {
32833	return nil, false
32834}
32835
32836// AsNodeNewHealthReportEvent is the BasicFabricEvent implementation for PartitionPrimaryMoveAnalysisEvent.
32837func (ppmae PartitionPrimaryMoveAnalysisEvent) AsNodeNewHealthReportEvent() (*NodeNewHealthReportEvent, bool) {
32838	return nil, false
32839}
32840
32841// AsNodeHealthReportExpiredEvent is the BasicFabricEvent implementation for PartitionPrimaryMoveAnalysisEvent.
32842func (ppmae PartitionPrimaryMoveAnalysisEvent) AsNodeHealthReportExpiredEvent() (*NodeHealthReportExpiredEvent, bool) {
32843	return nil, false
32844}
32845
32846// AsNodeOpenSucceededEvent is the BasicFabricEvent implementation for PartitionPrimaryMoveAnalysisEvent.
32847func (ppmae PartitionPrimaryMoveAnalysisEvent) AsNodeOpenSucceededEvent() (*NodeOpenSucceededEvent, bool) {
32848	return nil, false
32849}
32850
32851// AsNodeOpenFailedEvent is the BasicFabricEvent implementation for PartitionPrimaryMoveAnalysisEvent.
32852func (ppmae PartitionPrimaryMoveAnalysisEvent) AsNodeOpenFailedEvent() (*NodeOpenFailedEvent, bool) {
32853	return nil, false
32854}
32855
32856// AsNodeRemovedFromClusterEvent is the BasicFabricEvent implementation for PartitionPrimaryMoveAnalysisEvent.
32857func (ppmae PartitionPrimaryMoveAnalysisEvent) AsNodeRemovedFromClusterEvent() (*NodeRemovedFromClusterEvent, bool) {
32858	return nil, false
32859}
32860
32861// AsNodeUpEvent is the BasicFabricEvent implementation for PartitionPrimaryMoveAnalysisEvent.
32862func (ppmae PartitionPrimaryMoveAnalysisEvent) AsNodeUpEvent() (*NodeUpEvent, bool) {
32863	return nil, false
32864}
32865
32866// AsPartitionNewHealthReportEvent is the BasicFabricEvent implementation for PartitionPrimaryMoveAnalysisEvent.
32867func (ppmae PartitionPrimaryMoveAnalysisEvent) AsPartitionNewHealthReportEvent() (*PartitionNewHealthReportEvent, bool) {
32868	return nil, false
32869}
32870
32871// AsPartitionHealthReportExpiredEvent is the BasicFabricEvent implementation for PartitionPrimaryMoveAnalysisEvent.
32872func (ppmae PartitionPrimaryMoveAnalysisEvent) AsPartitionHealthReportExpiredEvent() (*PartitionHealthReportExpiredEvent, bool) {
32873	return nil, false
32874}
32875
32876// AsPartitionReconfiguredEvent is the BasicFabricEvent implementation for PartitionPrimaryMoveAnalysisEvent.
32877func (ppmae PartitionPrimaryMoveAnalysisEvent) AsPartitionReconfiguredEvent() (*PartitionReconfiguredEvent, bool) {
32878	return nil, false
32879}
32880
32881// AsPartitionPrimaryMoveAnalysisEvent is the BasicFabricEvent implementation for PartitionPrimaryMoveAnalysisEvent.
32882func (ppmae PartitionPrimaryMoveAnalysisEvent) AsPartitionPrimaryMoveAnalysisEvent() (*PartitionPrimaryMoveAnalysisEvent, bool) {
32883	return &ppmae, true
32884}
32885
32886// AsServiceCreatedEvent is the BasicFabricEvent implementation for PartitionPrimaryMoveAnalysisEvent.
32887func (ppmae PartitionPrimaryMoveAnalysisEvent) AsServiceCreatedEvent() (*ServiceCreatedEvent, bool) {
32888	return nil, false
32889}
32890
32891// AsServiceDeletedEvent is the BasicFabricEvent implementation for PartitionPrimaryMoveAnalysisEvent.
32892func (ppmae PartitionPrimaryMoveAnalysisEvent) AsServiceDeletedEvent() (*ServiceDeletedEvent, bool) {
32893	return nil, false
32894}
32895
32896// AsServiceNewHealthReportEvent is the BasicFabricEvent implementation for PartitionPrimaryMoveAnalysisEvent.
32897func (ppmae PartitionPrimaryMoveAnalysisEvent) AsServiceNewHealthReportEvent() (*ServiceNewHealthReportEvent, bool) {
32898	return nil, false
32899}
32900
32901// AsServiceHealthReportExpiredEvent is the BasicFabricEvent implementation for PartitionPrimaryMoveAnalysisEvent.
32902func (ppmae PartitionPrimaryMoveAnalysisEvent) AsServiceHealthReportExpiredEvent() (*ServiceHealthReportExpiredEvent, bool) {
32903	return nil, false
32904}
32905
32906// AsDeployedServicePackageNewHealthReportEvent is the BasicFabricEvent implementation for PartitionPrimaryMoveAnalysisEvent.
32907func (ppmae PartitionPrimaryMoveAnalysisEvent) AsDeployedServicePackageNewHealthReportEvent() (*DeployedServicePackageNewHealthReportEvent, bool) {
32908	return nil, false
32909}
32910
32911// AsDeployedServicePackageHealthReportExpiredEvent is the BasicFabricEvent implementation for PartitionPrimaryMoveAnalysisEvent.
32912func (ppmae PartitionPrimaryMoveAnalysisEvent) AsDeployedServicePackageHealthReportExpiredEvent() (*DeployedServicePackageHealthReportExpiredEvent, bool) {
32913	return nil, false
32914}
32915
32916// AsStatefulReplicaNewHealthReportEvent is the BasicFabricEvent implementation for PartitionPrimaryMoveAnalysisEvent.
32917func (ppmae PartitionPrimaryMoveAnalysisEvent) AsStatefulReplicaNewHealthReportEvent() (*StatefulReplicaNewHealthReportEvent, bool) {
32918	return nil, false
32919}
32920
32921// AsStatefulReplicaHealthReportExpiredEvent is the BasicFabricEvent implementation for PartitionPrimaryMoveAnalysisEvent.
32922func (ppmae PartitionPrimaryMoveAnalysisEvent) AsStatefulReplicaHealthReportExpiredEvent() (*StatefulReplicaHealthReportExpiredEvent, bool) {
32923	return nil, false
32924}
32925
32926// AsStatelessReplicaNewHealthReportEvent is the BasicFabricEvent implementation for PartitionPrimaryMoveAnalysisEvent.
32927func (ppmae PartitionPrimaryMoveAnalysisEvent) AsStatelessReplicaNewHealthReportEvent() (*StatelessReplicaNewHealthReportEvent, bool) {
32928	return nil, false
32929}
32930
32931// AsStatelessReplicaHealthReportExpiredEvent is the BasicFabricEvent implementation for PartitionPrimaryMoveAnalysisEvent.
32932func (ppmae PartitionPrimaryMoveAnalysisEvent) AsStatelessReplicaHealthReportExpiredEvent() (*StatelessReplicaHealthReportExpiredEvent, bool) {
32933	return nil, false
32934}
32935
32936// AsClusterNewHealthReportEvent is the BasicFabricEvent implementation for PartitionPrimaryMoveAnalysisEvent.
32937func (ppmae PartitionPrimaryMoveAnalysisEvent) AsClusterNewHealthReportEvent() (*ClusterNewHealthReportEvent, bool) {
32938	return nil, false
32939}
32940
32941// AsClusterHealthReportExpiredEvent is the BasicFabricEvent implementation for PartitionPrimaryMoveAnalysisEvent.
32942func (ppmae PartitionPrimaryMoveAnalysisEvent) AsClusterHealthReportExpiredEvent() (*ClusterHealthReportExpiredEvent, bool) {
32943	return nil, false
32944}
32945
32946// AsClusterUpgradeCompletedEvent is the BasicFabricEvent implementation for PartitionPrimaryMoveAnalysisEvent.
32947func (ppmae PartitionPrimaryMoveAnalysisEvent) AsClusterUpgradeCompletedEvent() (*ClusterUpgradeCompletedEvent, bool) {
32948	return nil, false
32949}
32950
32951// AsClusterUpgradeDomainCompletedEvent is the BasicFabricEvent implementation for PartitionPrimaryMoveAnalysisEvent.
32952func (ppmae PartitionPrimaryMoveAnalysisEvent) AsClusterUpgradeDomainCompletedEvent() (*ClusterUpgradeDomainCompletedEvent, bool) {
32953	return nil, false
32954}
32955
32956// AsClusterUpgradeRollbackCompletedEvent is the BasicFabricEvent implementation for PartitionPrimaryMoveAnalysisEvent.
32957func (ppmae PartitionPrimaryMoveAnalysisEvent) AsClusterUpgradeRollbackCompletedEvent() (*ClusterUpgradeRollbackCompletedEvent, bool) {
32958	return nil, false
32959}
32960
32961// AsClusterUpgradeRollbackStartedEvent is the BasicFabricEvent implementation for PartitionPrimaryMoveAnalysisEvent.
32962func (ppmae PartitionPrimaryMoveAnalysisEvent) AsClusterUpgradeRollbackStartedEvent() (*ClusterUpgradeRollbackStartedEvent, bool) {
32963	return nil, false
32964}
32965
32966// AsClusterUpgradeStartedEvent is the BasicFabricEvent implementation for PartitionPrimaryMoveAnalysisEvent.
32967func (ppmae PartitionPrimaryMoveAnalysisEvent) AsClusterUpgradeStartedEvent() (*ClusterUpgradeStartedEvent, bool) {
32968	return nil, false
32969}
32970
32971// AsChaosStoppedEvent is the BasicFabricEvent implementation for PartitionPrimaryMoveAnalysisEvent.
32972func (ppmae PartitionPrimaryMoveAnalysisEvent) AsChaosStoppedEvent() (*ChaosStoppedEvent, bool) {
32973	return nil, false
32974}
32975
32976// AsChaosStartedEvent is the BasicFabricEvent implementation for PartitionPrimaryMoveAnalysisEvent.
32977func (ppmae PartitionPrimaryMoveAnalysisEvent) AsChaosStartedEvent() (*ChaosStartedEvent, bool) {
32978	return nil, false
32979}
32980
32981// AsChaosCodePackageRestartScheduledEvent is the BasicFabricEvent implementation for PartitionPrimaryMoveAnalysisEvent.
32982func (ppmae PartitionPrimaryMoveAnalysisEvent) AsChaosCodePackageRestartScheduledEvent() (*ChaosCodePackageRestartScheduledEvent, bool) {
32983	return nil, false
32984}
32985
32986// AsChaosReplicaRemovalScheduledEvent is the BasicFabricEvent implementation for PartitionPrimaryMoveAnalysisEvent.
32987func (ppmae PartitionPrimaryMoveAnalysisEvent) AsChaosReplicaRemovalScheduledEvent() (*ChaosReplicaRemovalScheduledEvent, bool) {
32988	return nil, false
32989}
32990
32991// AsChaosPartitionSecondaryMoveScheduledEvent is the BasicFabricEvent implementation for PartitionPrimaryMoveAnalysisEvent.
32992func (ppmae PartitionPrimaryMoveAnalysisEvent) AsChaosPartitionSecondaryMoveScheduledEvent() (*ChaosPartitionSecondaryMoveScheduledEvent, bool) {
32993	return nil, false
32994}
32995
32996// AsChaosPartitionPrimaryMoveScheduledEvent is the BasicFabricEvent implementation for PartitionPrimaryMoveAnalysisEvent.
32997func (ppmae PartitionPrimaryMoveAnalysisEvent) AsChaosPartitionPrimaryMoveScheduledEvent() (*ChaosPartitionPrimaryMoveScheduledEvent, bool) {
32998	return nil, false
32999}
33000
33001// AsChaosReplicaRestartScheduledEvent is the BasicFabricEvent implementation for PartitionPrimaryMoveAnalysisEvent.
33002func (ppmae PartitionPrimaryMoveAnalysisEvent) AsChaosReplicaRestartScheduledEvent() (*ChaosReplicaRestartScheduledEvent, bool) {
33003	return nil, false
33004}
33005
33006// AsChaosNodeRestartScheduledEvent is the BasicFabricEvent implementation for PartitionPrimaryMoveAnalysisEvent.
33007func (ppmae PartitionPrimaryMoveAnalysisEvent) AsChaosNodeRestartScheduledEvent() (*ChaosNodeRestartScheduledEvent, bool) {
33008	return nil, false
33009}
33010
33011// AsFabricEvent is the BasicFabricEvent implementation for PartitionPrimaryMoveAnalysisEvent.
33012func (ppmae PartitionPrimaryMoveAnalysisEvent) AsFabricEvent() (*FabricEvent, bool) {
33013	return nil, false
33014}
33015
33016// AsBasicFabricEvent is the BasicFabricEvent implementation for PartitionPrimaryMoveAnalysisEvent.
33017func (ppmae PartitionPrimaryMoveAnalysisEvent) AsBasicFabricEvent() (BasicFabricEvent, bool) {
33018	return &ppmae, true
33019}
33020
33021// PartitionQuorumLossProgress information about a partition quorum loss user-induced operation.
33022type PartitionQuorumLossProgress struct {
33023	autorest.Response `json:"-"`
33024	// State - The state of the operation. Possible values include: 'OperationStateInvalid', 'OperationStateRunning', 'OperationStateRollingBack', 'OperationStateCompleted', 'OperationStateFaulted', 'OperationStateCancelled', 'OperationStateForceCancelled'
33025	State OperationState `json:"State,omitempty"`
33026	// InvokeQuorumLossResult - Represents information about an operation in a terminal state (Completed or Faulted).
33027	InvokeQuorumLossResult *InvokeQuorumLossResult `json:"InvokeQuorumLossResult,omitempty"`
33028}
33029
33030// PartitionReconfiguredEvent partition Reconfiguration event.
33031type PartitionReconfiguredEvent struct {
33032	// NodeName - The name of a Service Fabric node.
33033	NodeName *string `json:"NodeName,omitempty"`
33034	// NodeInstanceID - Id of Node instance.
33035	NodeInstanceID *string `json:"NodeInstanceId,omitempty"`
33036	// ServiceType - Type of Service.
33037	ServiceType *string `json:"ServiceType,omitempty"`
33038	// CcEpochDataLossVersion - CcEpochDataLoss version.
33039	CcEpochDataLossVersion *int64 `json:"CcEpochDataLossVersion,omitempty"`
33040	// CcEpochConfigVersion - CcEpochConfig version.
33041	CcEpochConfigVersion *int64 `json:"CcEpochConfigVersion,omitempty"`
33042	// ReconfigType - Type of reconfiguration.
33043	ReconfigType *string `json:"ReconfigType,omitempty"`
33044	// Result - Describes reconfiguration result.
33045	Result *string `json:"Result,omitempty"`
33046	// Phase0DurationMs - Duration of Phase0 in milli-seconds.
33047	Phase0DurationMs *float64 `json:"Phase0DurationMs,omitempty"`
33048	// Phase1DurationMs - Duration of Phase1 in milli-seconds.
33049	Phase1DurationMs *float64 `json:"Phase1DurationMs,omitempty"`
33050	// Phase2DurationMs - Duration of Phase2 in milli-seconds.
33051	Phase2DurationMs *float64 `json:"Phase2DurationMs,omitempty"`
33052	// Phase3DurationMs - Duration of Phase3 in milli-seconds.
33053	Phase3DurationMs *float64 `json:"Phase3DurationMs,omitempty"`
33054	// Phase4DurationMs - Duration of Phase4 in milli-seconds.
33055	Phase4DurationMs *float64 `json:"Phase4DurationMs,omitempty"`
33056	// TotalDurationMs - Total duration in milli-seconds.
33057	TotalDurationMs *float64 `json:"TotalDurationMs,omitempty"`
33058	// 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.
33059	PartitionID *uuid.UUID `json:"PartitionId,omitempty"`
33060	// EventInstanceID - The identifier for the FabricEvent instance.
33061	EventInstanceID *uuid.UUID `json:"EventInstanceId,omitempty"`
33062	// Category - The category of event.
33063	Category *string `json:"Category,omitempty"`
33064	// TimeStamp - The time event was logged.
33065	TimeStamp *date.Time `json:"TimeStamp,omitempty"`
33066	// HasCorrelatedEvents - Shows there is existing related events available.
33067	HasCorrelatedEvents *bool `json:"HasCorrelatedEvents,omitempty"`
33068	// 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'
33069	Kind KindBasicFabricEvent `json:"Kind,omitempty"`
33070}
33071
33072// MarshalJSON is the custom marshaler for PartitionReconfiguredEvent.
33073func (pre PartitionReconfiguredEvent) MarshalJSON() ([]byte, error) {
33074	pre.Kind = KindPartitionReconfigured
33075	objectMap := make(map[string]interface{})
33076	if pre.NodeName != nil {
33077		objectMap["NodeName"] = pre.NodeName
33078	}
33079	if pre.NodeInstanceID != nil {
33080		objectMap["NodeInstanceId"] = pre.NodeInstanceID
33081	}
33082	if pre.ServiceType != nil {
33083		objectMap["ServiceType"] = pre.ServiceType
33084	}
33085	if pre.CcEpochDataLossVersion != nil {
33086		objectMap["CcEpochDataLossVersion"] = pre.CcEpochDataLossVersion
33087	}
33088	if pre.CcEpochConfigVersion != nil {
33089		objectMap["CcEpochConfigVersion"] = pre.CcEpochConfigVersion
33090	}
33091	if pre.ReconfigType != nil {
33092		objectMap["ReconfigType"] = pre.ReconfigType
33093	}
33094	if pre.Result != nil {
33095		objectMap["Result"] = pre.Result
33096	}
33097	if pre.Phase0DurationMs != nil {
33098		objectMap["Phase0DurationMs"] = pre.Phase0DurationMs
33099	}
33100	if pre.Phase1DurationMs != nil {
33101		objectMap["Phase1DurationMs"] = pre.Phase1DurationMs
33102	}
33103	if pre.Phase2DurationMs != nil {
33104		objectMap["Phase2DurationMs"] = pre.Phase2DurationMs
33105	}
33106	if pre.Phase3DurationMs != nil {
33107		objectMap["Phase3DurationMs"] = pre.Phase3DurationMs
33108	}
33109	if pre.Phase4DurationMs != nil {
33110		objectMap["Phase4DurationMs"] = pre.Phase4DurationMs
33111	}
33112	if pre.TotalDurationMs != nil {
33113		objectMap["TotalDurationMs"] = pre.TotalDurationMs
33114	}
33115	if pre.PartitionID != nil {
33116		objectMap["PartitionId"] = pre.PartitionID
33117	}
33118	if pre.EventInstanceID != nil {
33119		objectMap["EventInstanceId"] = pre.EventInstanceID
33120	}
33121	if pre.Category != nil {
33122		objectMap["Category"] = pre.Category
33123	}
33124	if pre.TimeStamp != nil {
33125		objectMap["TimeStamp"] = pre.TimeStamp
33126	}
33127	if pre.HasCorrelatedEvents != nil {
33128		objectMap["HasCorrelatedEvents"] = pre.HasCorrelatedEvents
33129	}
33130	if pre.Kind != "" {
33131		objectMap["Kind"] = pre.Kind
33132	}
33133	return json.Marshal(objectMap)
33134}
33135
33136// AsApplicationEvent is the BasicFabricEvent implementation for PartitionReconfiguredEvent.
33137func (pre PartitionReconfiguredEvent) AsApplicationEvent() (*ApplicationEvent, bool) {
33138	return nil, false
33139}
33140
33141// AsBasicApplicationEvent is the BasicFabricEvent implementation for PartitionReconfiguredEvent.
33142func (pre PartitionReconfiguredEvent) AsBasicApplicationEvent() (BasicApplicationEvent, bool) {
33143	return nil, false
33144}
33145
33146// AsClusterEvent is the BasicFabricEvent implementation for PartitionReconfiguredEvent.
33147func (pre PartitionReconfiguredEvent) AsClusterEvent() (*ClusterEvent, bool) {
33148	return nil, false
33149}
33150
33151// AsBasicClusterEvent is the BasicFabricEvent implementation for PartitionReconfiguredEvent.
33152func (pre PartitionReconfiguredEvent) AsBasicClusterEvent() (BasicClusterEvent, bool) {
33153	return nil, false
33154}
33155
33156// AsContainerInstanceEvent is the BasicFabricEvent implementation for PartitionReconfiguredEvent.
33157func (pre PartitionReconfiguredEvent) AsContainerInstanceEvent() (*ContainerInstanceEvent, bool) {
33158	return nil, false
33159}
33160
33161// AsNodeEvent is the BasicFabricEvent implementation for PartitionReconfiguredEvent.
33162func (pre PartitionReconfiguredEvent) AsNodeEvent() (*NodeEvent, bool) {
33163	return nil, false
33164}
33165
33166// AsBasicNodeEvent is the BasicFabricEvent implementation for PartitionReconfiguredEvent.
33167func (pre PartitionReconfiguredEvent) AsBasicNodeEvent() (BasicNodeEvent, bool) {
33168	return nil, false
33169}
33170
33171// AsPartitionAnalysisEvent is the BasicFabricEvent implementation for PartitionReconfiguredEvent.
33172func (pre PartitionReconfiguredEvent) AsPartitionAnalysisEvent() (*PartitionAnalysisEvent, bool) {
33173	return nil, false
33174}
33175
33176// AsBasicPartitionAnalysisEvent is the BasicFabricEvent implementation for PartitionReconfiguredEvent.
33177func (pre PartitionReconfiguredEvent) AsBasicPartitionAnalysisEvent() (BasicPartitionAnalysisEvent, bool) {
33178	return nil, false
33179}
33180
33181// AsPartitionEvent is the BasicFabricEvent implementation for PartitionReconfiguredEvent.
33182func (pre PartitionReconfiguredEvent) AsPartitionEvent() (*PartitionEvent, bool) {
33183	return nil, false
33184}
33185
33186// AsBasicPartitionEvent is the BasicFabricEvent implementation for PartitionReconfiguredEvent.
33187func (pre PartitionReconfiguredEvent) AsBasicPartitionEvent() (BasicPartitionEvent, bool) {
33188	return &pre, true
33189}
33190
33191// AsReplicaEvent is the BasicFabricEvent implementation for PartitionReconfiguredEvent.
33192func (pre PartitionReconfiguredEvent) AsReplicaEvent() (*ReplicaEvent, bool) {
33193	return nil, false
33194}
33195
33196// AsBasicReplicaEvent is the BasicFabricEvent implementation for PartitionReconfiguredEvent.
33197func (pre PartitionReconfiguredEvent) AsBasicReplicaEvent() (BasicReplicaEvent, bool) {
33198	return nil, false
33199}
33200
33201// AsServiceEvent is the BasicFabricEvent implementation for PartitionReconfiguredEvent.
33202func (pre PartitionReconfiguredEvent) AsServiceEvent() (*ServiceEvent, bool) {
33203	return nil, false
33204}
33205
33206// AsBasicServiceEvent is the BasicFabricEvent implementation for PartitionReconfiguredEvent.
33207func (pre PartitionReconfiguredEvent) AsBasicServiceEvent() (BasicServiceEvent, bool) {
33208	return nil, false
33209}
33210
33211// AsApplicationCreatedEvent is the BasicFabricEvent implementation for PartitionReconfiguredEvent.
33212func (pre PartitionReconfiguredEvent) AsApplicationCreatedEvent() (*ApplicationCreatedEvent, bool) {
33213	return nil, false
33214}
33215
33216// AsApplicationDeletedEvent is the BasicFabricEvent implementation for PartitionReconfiguredEvent.
33217func (pre PartitionReconfiguredEvent) AsApplicationDeletedEvent() (*ApplicationDeletedEvent, bool) {
33218	return nil, false
33219}
33220
33221// AsApplicationNewHealthReportEvent is the BasicFabricEvent implementation for PartitionReconfiguredEvent.
33222func (pre PartitionReconfiguredEvent) AsApplicationNewHealthReportEvent() (*ApplicationNewHealthReportEvent, bool) {
33223	return nil, false
33224}
33225
33226// AsApplicationHealthReportExpiredEvent is the BasicFabricEvent implementation for PartitionReconfiguredEvent.
33227func (pre PartitionReconfiguredEvent) AsApplicationHealthReportExpiredEvent() (*ApplicationHealthReportExpiredEvent, bool) {
33228	return nil, false
33229}
33230
33231// AsApplicationUpgradeCompletedEvent is the BasicFabricEvent implementation for PartitionReconfiguredEvent.
33232func (pre PartitionReconfiguredEvent) AsApplicationUpgradeCompletedEvent() (*ApplicationUpgradeCompletedEvent, bool) {
33233	return nil, false
33234}
33235
33236// AsApplicationUpgradeDomainCompletedEvent is the BasicFabricEvent implementation for PartitionReconfiguredEvent.
33237func (pre PartitionReconfiguredEvent) AsApplicationUpgradeDomainCompletedEvent() (*ApplicationUpgradeDomainCompletedEvent, bool) {
33238	return nil, false
33239}
33240
33241// AsApplicationUpgradeRollbackCompletedEvent is the BasicFabricEvent implementation for PartitionReconfiguredEvent.
33242func (pre PartitionReconfiguredEvent) AsApplicationUpgradeRollbackCompletedEvent() (*ApplicationUpgradeRollbackCompletedEvent, bool) {
33243	return nil, false
33244}
33245
33246// AsApplicationUpgradeRollbackStartedEvent is the BasicFabricEvent implementation for PartitionReconfiguredEvent.
33247func (pre PartitionReconfiguredEvent) AsApplicationUpgradeRollbackStartedEvent() (*ApplicationUpgradeRollbackStartedEvent, bool) {
33248	return nil, false
33249}
33250
33251// AsApplicationUpgradeStartedEvent is the BasicFabricEvent implementation for PartitionReconfiguredEvent.
33252func (pre PartitionReconfiguredEvent) AsApplicationUpgradeStartedEvent() (*ApplicationUpgradeStartedEvent, bool) {
33253	return nil, false
33254}
33255
33256// AsDeployedApplicationNewHealthReportEvent is the BasicFabricEvent implementation for PartitionReconfiguredEvent.
33257func (pre PartitionReconfiguredEvent) AsDeployedApplicationNewHealthReportEvent() (*DeployedApplicationNewHealthReportEvent, bool) {
33258	return nil, false
33259}
33260
33261// AsDeployedApplicationHealthReportExpiredEvent is the BasicFabricEvent implementation for PartitionReconfiguredEvent.
33262func (pre PartitionReconfiguredEvent) AsDeployedApplicationHealthReportExpiredEvent() (*DeployedApplicationHealthReportExpiredEvent, bool) {
33263	return nil, false
33264}
33265
33266// AsApplicationProcessExitedEvent is the BasicFabricEvent implementation for PartitionReconfiguredEvent.
33267func (pre PartitionReconfiguredEvent) AsApplicationProcessExitedEvent() (*ApplicationProcessExitedEvent, bool) {
33268	return nil, false
33269}
33270
33271// AsApplicationContainerInstanceExitedEvent is the BasicFabricEvent implementation for PartitionReconfiguredEvent.
33272func (pre PartitionReconfiguredEvent) AsApplicationContainerInstanceExitedEvent() (*ApplicationContainerInstanceExitedEvent, bool) {
33273	return nil, false
33274}
33275
33276// AsNodeAbortedEvent is the BasicFabricEvent implementation for PartitionReconfiguredEvent.
33277func (pre PartitionReconfiguredEvent) AsNodeAbortedEvent() (*NodeAbortedEvent, bool) {
33278	return nil, false
33279}
33280
33281// AsNodeAddedToClusterEvent is the BasicFabricEvent implementation for PartitionReconfiguredEvent.
33282func (pre PartitionReconfiguredEvent) AsNodeAddedToClusterEvent() (*NodeAddedToClusterEvent, bool) {
33283	return nil, false
33284}
33285
33286// AsNodeClosedEvent is the BasicFabricEvent implementation for PartitionReconfiguredEvent.
33287func (pre PartitionReconfiguredEvent) AsNodeClosedEvent() (*NodeClosedEvent, bool) {
33288	return nil, false
33289}
33290
33291// AsNodeDeactivateCompletedEvent is the BasicFabricEvent implementation for PartitionReconfiguredEvent.
33292func (pre PartitionReconfiguredEvent) AsNodeDeactivateCompletedEvent() (*NodeDeactivateCompletedEvent, bool) {
33293	return nil, false
33294}
33295
33296// AsNodeDeactivateStartedEvent is the BasicFabricEvent implementation for PartitionReconfiguredEvent.
33297func (pre PartitionReconfiguredEvent) AsNodeDeactivateStartedEvent() (*NodeDeactivateStartedEvent, bool) {
33298	return nil, false
33299}
33300
33301// AsNodeDownEvent is the BasicFabricEvent implementation for PartitionReconfiguredEvent.
33302func (pre PartitionReconfiguredEvent) AsNodeDownEvent() (*NodeDownEvent, bool) {
33303	return nil, false
33304}
33305
33306// AsNodeNewHealthReportEvent is the BasicFabricEvent implementation for PartitionReconfiguredEvent.
33307func (pre PartitionReconfiguredEvent) AsNodeNewHealthReportEvent() (*NodeNewHealthReportEvent, bool) {
33308	return nil, false
33309}
33310
33311// AsNodeHealthReportExpiredEvent is the BasicFabricEvent implementation for PartitionReconfiguredEvent.
33312func (pre PartitionReconfiguredEvent) AsNodeHealthReportExpiredEvent() (*NodeHealthReportExpiredEvent, bool) {
33313	return nil, false
33314}
33315
33316// AsNodeOpenSucceededEvent is the BasicFabricEvent implementation for PartitionReconfiguredEvent.
33317func (pre PartitionReconfiguredEvent) AsNodeOpenSucceededEvent() (*NodeOpenSucceededEvent, bool) {
33318	return nil, false
33319}
33320
33321// AsNodeOpenFailedEvent is the BasicFabricEvent implementation for PartitionReconfiguredEvent.
33322func (pre PartitionReconfiguredEvent) AsNodeOpenFailedEvent() (*NodeOpenFailedEvent, bool) {
33323	return nil, false
33324}
33325
33326// AsNodeRemovedFromClusterEvent is the BasicFabricEvent implementation for PartitionReconfiguredEvent.
33327func (pre PartitionReconfiguredEvent) AsNodeRemovedFromClusterEvent() (*NodeRemovedFromClusterEvent, bool) {
33328	return nil, false
33329}
33330
33331// AsNodeUpEvent is the BasicFabricEvent implementation for PartitionReconfiguredEvent.
33332func (pre PartitionReconfiguredEvent) AsNodeUpEvent() (*NodeUpEvent, bool) {
33333	return nil, false
33334}
33335
33336// AsPartitionNewHealthReportEvent is the BasicFabricEvent implementation for PartitionReconfiguredEvent.
33337func (pre PartitionReconfiguredEvent) AsPartitionNewHealthReportEvent() (*PartitionNewHealthReportEvent, bool) {
33338	return nil, false
33339}
33340
33341// AsPartitionHealthReportExpiredEvent is the BasicFabricEvent implementation for PartitionReconfiguredEvent.
33342func (pre PartitionReconfiguredEvent) AsPartitionHealthReportExpiredEvent() (*PartitionHealthReportExpiredEvent, bool) {
33343	return nil, false
33344}
33345
33346// AsPartitionReconfiguredEvent is the BasicFabricEvent implementation for PartitionReconfiguredEvent.
33347func (pre PartitionReconfiguredEvent) AsPartitionReconfiguredEvent() (*PartitionReconfiguredEvent, bool) {
33348	return &pre, true
33349}
33350
33351// AsPartitionPrimaryMoveAnalysisEvent is the BasicFabricEvent implementation for PartitionReconfiguredEvent.
33352func (pre PartitionReconfiguredEvent) AsPartitionPrimaryMoveAnalysisEvent() (*PartitionPrimaryMoveAnalysisEvent, bool) {
33353	return nil, false
33354}
33355
33356// AsServiceCreatedEvent is the BasicFabricEvent implementation for PartitionReconfiguredEvent.
33357func (pre PartitionReconfiguredEvent) AsServiceCreatedEvent() (*ServiceCreatedEvent, bool) {
33358	return nil, false
33359}
33360
33361// AsServiceDeletedEvent is the BasicFabricEvent implementation for PartitionReconfiguredEvent.
33362func (pre PartitionReconfiguredEvent) AsServiceDeletedEvent() (*ServiceDeletedEvent, bool) {
33363	return nil, false
33364}
33365
33366// AsServiceNewHealthReportEvent is the BasicFabricEvent implementation for PartitionReconfiguredEvent.
33367func (pre PartitionReconfiguredEvent) AsServiceNewHealthReportEvent() (*ServiceNewHealthReportEvent, bool) {
33368	return nil, false
33369}
33370
33371// AsServiceHealthReportExpiredEvent is the BasicFabricEvent implementation for PartitionReconfiguredEvent.
33372func (pre PartitionReconfiguredEvent) AsServiceHealthReportExpiredEvent() (*ServiceHealthReportExpiredEvent, bool) {
33373	return nil, false
33374}
33375
33376// AsDeployedServicePackageNewHealthReportEvent is the BasicFabricEvent implementation for PartitionReconfiguredEvent.
33377func (pre PartitionReconfiguredEvent) AsDeployedServicePackageNewHealthReportEvent() (*DeployedServicePackageNewHealthReportEvent, bool) {
33378	return nil, false
33379}
33380
33381// AsDeployedServicePackageHealthReportExpiredEvent is the BasicFabricEvent implementation for PartitionReconfiguredEvent.
33382func (pre PartitionReconfiguredEvent) AsDeployedServicePackageHealthReportExpiredEvent() (*DeployedServicePackageHealthReportExpiredEvent, bool) {
33383	return nil, false
33384}
33385
33386// AsStatefulReplicaNewHealthReportEvent is the BasicFabricEvent implementation for PartitionReconfiguredEvent.
33387func (pre PartitionReconfiguredEvent) AsStatefulReplicaNewHealthReportEvent() (*StatefulReplicaNewHealthReportEvent, bool) {
33388	return nil, false
33389}
33390
33391// AsStatefulReplicaHealthReportExpiredEvent is the BasicFabricEvent implementation for PartitionReconfiguredEvent.
33392func (pre PartitionReconfiguredEvent) AsStatefulReplicaHealthReportExpiredEvent() (*StatefulReplicaHealthReportExpiredEvent, bool) {
33393	return nil, false
33394}
33395
33396// AsStatelessReplicaNewHealthReportEvent is the BasicFabricEvent implementation for PartitionReconfiguredEvent.
33397func (pre PartitionReconfiguredEvent) AsStatelessReplicaNewHealthReportEvent() (*StatelessReplicaNewHealthReportEvent, bool) {
33398	return nil, false
33399}
33400
33401// AsStatelessReplicaHealthReportExpiredEvent is the BasicFabricEvent implementation for PartitionReconfiguredEvent.
33402func (pre PartitionReconfiguredEvent) AsStatelessReplicaHealthReportExpiredEvent() (*StatelessReplicaHealthReportExpiredEvent, bool) {
33403	return nil, false
33404}
33405
33406// AsClusterNewHealthReportEvent is the BasicFabricEvent implementation for PartitionReconfiguredEvent.
33407func (pre PartitionReconfiguredEvent) AsClusterNewHealthReportEvent() (*ClusterNewHealthReportEvent, bool) {
33408	return nil, false
33409}
33410
33411// AsClusterHealthReportExpiredEvent is the BasicFabricEvent implementation for PartitionReconfiguredEvent.
33412func (pre PartitionReconfiguredEvent) AsClusterHealthReportExpiredEvent() (*ClusterHealthReportExpiredEvent, bool) {
33413	return nil, false
33414}
33415
33416// AsClusterUpgradeCompletedEvent is the BasicFabricEvent implementation for PartitionReconfiguredEvent.
33417func (pre PartitionReconfiguredEvent) AsClusterUpgradeCompletedEvent() (*ClusterUpgradeCompletedEvent, bool) {
33418	return nil, false
33419}
33420
33421// AsClusterUpgradeDomainCompletedEvent is the BasicFabricEvent implementation for PartitionReconfiguredEvent.
33422func (pre PartitionReconfiguredEvent) AsClusterUpgradeDomainCompletedEvent() (*ClusterUpgradeDomainCompletedEvent, bool) {
33423	return nil, false
33424}
33425
33426// AsClusterUpgradeRollbackCompletedEvent is the BasicFabricEvent implementation for PartitionReconfiguredEvent.
33427func (pre PartitionReconfiguredEvent) AsClusterUpgradeRollbackCompletedEvent() (*ClusterUpgradeRollbackCompletedEvent, bool) {
33428	return nil, false
33429}
33430
33431// AsClusterUpgradeRollbackStartedEvent is the BasicFabricEvent implementation for PartitionReconfiguredEvent.
33432func (pre PartitionReconfiguredEvent) AsClusterUpgradeRollbackStartedEvent() (*ClusterUpgradeRollbackStartedEvent, bool) {
33433	return nil, false
33434}
33435
33436// AsClusterUpgradeStartedEvent is the BasicFabricEvent implementation for PartitionReconfiguredEvent.
33437func (pre PartitionReconfiguredEvent) AsClusterUpgradeStartedEvent() (*ClusterUpgradeStartedEvent, bool) {
33438	return nil, false
33439}
33440
33441// AsChaosStoppedEvent is the BasicFabricEvent implementation for PartitionReconfiguredEvent.
33442func (pre PartitionReconfiguredEvent) AsChaosStoppedEvent() (*ChaosStoppedEvent, bool) {
33443	return nil, false
33444}
33445
33446// AsChaosStartedEvent is the BasicFabricEvent implementation for PartitionReconfiguredEvent.
33447func (pre PartitionReconfiguredEvent) AsChaosStartedEvent() (*ChaosStartedEvent, bool) {
33448	return nil, false
33449}
33450
33451// AsChaosCodePackageRestartScheduledEvent is the BasicFabricEvent implementation for PartitionReconfiguredEvent.
33452func (pre PartitionReconfiguredEvent) AsChaosCodePackageRestartScheduledEvent() (*ChaosCodePackageRestartScheduledEvent, bool) {
33453	return nil, false
33454}
33455
33456// AsChaosReplicaRemovalScheduledEvent is the BasicFabricEvent implementation for PartitionReconfiguredEvent.
33457func (pre PartitionReconfiguredEvent) AsChaosReplicaRemovalScheduledEvent() (*ChaosReplicaRemovalScheduledEvent, bool) {
33458	return nil, false
33459}
33460
33461// AsChaosPartitionSecondaryMoveScheduledEvent is the BasicFabricEvent implementation for PartitionReconfiguredEvent.
33462func (pre PartitionReconfiguredEvent) AsChaosPartitionSecondaryMoveScheduledEvent() (*ChaosPartitionSecondaryMoveScheduledEvent, bool) {
33463	return nil, false
33464}
33465
33466// AsChaosPartitionPrimaryMoveScheduledEvent is the BasicFabricEvent implementation for PartitionReconfiguredEvent.
33467func (pre PartitionReconfiguredEvent) AsChaosPartitionPrimaryMoveScheduledEvent() (*ChaosPartitionPrimaryMoveScheduledEvent, bool) {
33468	return nil, false
33469}
33470
33471// AsChaosReplicaRestartScheduledEvent is the BasicFabricEvent implementation for PartitionReconfiguredEvent.
33472func (pre PartitionReconfiguredEvent) AsChaosReplicaRestartScheduledEvent() (*ChaosReplicaRestartScheduledEvent, bool) {
33473	return nil, false
33474}
33475
33476// AsChaosNodeRestartScheduledEvent is the BasicFabricEvent implementation for PartitionReconfiguredEvent.
33477func (pre PartitionReconfiguredEvent) AsChaosNodeRestartScheduledEvent() (*ChaosNodeRestartScheduledEvent, bool) {
33478	return nil, false
33479}
33480
33481// AsFabricEvent is the BasicFabricEvent implementation for PartitionReconfiguredEvent.
33482func (pre PartitionReconfiguredEvent) AsFabricEvent() (*FabricEvent, bool) {
33483	return nil, false
33484}
33485
33486// AsBasicFabricEvent is the BasicFabricEvent implementation for PartitionReconfiguredEvent.
33487func (pre PartitionReconfiguredEvent) AsBasicFabricEvent() (BasicFabricEvent, bool) {
33488	return &pre, true
33489}
33490
33491// PartitionRestartProgress information about a partition restart user-induced operation.
33492type PartitionRestartProgress struct {
33493	autorest.Response `json:"-"`
33494	// State - The state of the operation. Possible values include: 'OperationStateInvalid', 'OperationStateRunning', 'OperationStateRollingBack', 'OperationStateCompleted', 'OperationStateFaulted', 'OperationStateCancelled', 'OperationStateForceCancelled'
33495	State OperationState `json:"State,omitempty"`
33496	// RestartPartitionResult - Represents information about an operation in a terminal state (Completed or Faulted).
33497	RestartPartitionResult *RestartPartitionResult `json:"RestartPartitionResult,omitempty"`
33498}
33499
33500// BasicPartitionSafetyCheck represents a safety check for the service partition being performed by service fabric
33501// before continuing with operations.
33502type BasicPartitionSafetyCheck interface {
33503	AsEnsureAvailabilitySafetyCheck() (*EnsureAvailabilitySafetyCheck, bool)
33504	AsEnsurePartitionQuorumSafetyCheck() (*EnsurePartitionQuorumSafetyCheck, bool)
33505	AsWaitForInbuildReplicaSafetyCheck() (*WaitForInbuildReplicaSafetyCheck, bool)
33506	AsWaitForPrimaryPlacementSafetyCheck() (*WaitForPrimaryPlacementSafetyCheck, bool)
33507	AsWaitForPrimarySwapSafetyCheck() (*WaitForPrimarySwapSafetyCheck, bool)
33508	AsWaitForReconfigurationSafetyCheck() (*WaitForReconfigurationSafetyCheck, bool)
33509	AsPartitionSafetyCheck() (*PartitionSafetyCheck, bool)
33510}
33511
33512// PartitionSafetyCheck represents a safety check for the service partition being performed by service fabric
33513// before continuing with operations.
33514type PartitionSafetyCheck struct {
33515	// PartitionID - Id of the partition which is undergoing the safety check.
33516	PartitionID *uuid.UUID `json:"PartitionId,omitempty"`
33517	// Kind - Possible values include: 'KindSafetyCheck', 'KindPartitionSafetyCheck', 'KindEnsureAvailability', 'KindEnsurePartitionQuorum', 'KindEnsureSeedNodeQuorum', 'KindWaitForInbuildReplica', 'KindWaitForPrimaryPlacement', 'KindWaitForPrimarySwap', 'KindWaitForReconfiguration'
33518	Kind KindBasicSafetyCheck `json:"Kind,omitempty"`
33519}
33520
33521func unmarshalBasicPartitionSafetyCheck(body []byte) (BasicPartitionSafetyCheck, error) {
33522	var m map[string]interface{}
33523	err := json.Unmarshal(body, &m)
33524	if err != nil {
33525		return nil, err
33526	}
33527
33528	switch m["Kind"] {
33529	case string(KindEnsureAvailability):
33530		var easc EnsureAvailabilitySafetyCheck
33531		err := json.Unmarshal(body, &easc)
33532		return easc, err
33533	case string(KindEnsurePartitionQuorum):
33534		var epqsc EnsurePartitionQuorumSafetyCheck
33535		err := json.Unmarshal(body, &epqsc)
33536		return epqsc, err
33537	case string(KindWaitForInbuildReplica):
33538		var wfirsc WaitForInbuildReplicaSafetyCheck
33539		err := json.Unmarshal(body, &wfirsc)
33540		return wfirsc, err
33541	case string(KindWaitForPrimaryPlacement):
33542		var wfppsc WaitForPrimaryPlacementSafetyCheck
33543		err := json.Unmarshal(body, &wfppsc)
33544		return wfppsc, err
33545	case string(KindWaitForPrimarySwap):
33546		var wfpssc WaitForPrimarySwapSafetyCheck
33547		err := json.Unmarshal(body, &wfpssc)
33548		return wfpssc, err
33549	case string(KindWaitForReconfiguration):
33550		var wfrsc WaitForReconfigurationSafetyCheck
33551		err := json.Unmarshal(body, &wfrsc)
33552		return wfrsc, err
33553	default:
33554		var psc PartitionSafetyCheck
33555		err := json.Unmarshal(body, &psc)
33556		return psc, err
33557	}
33558}
33559func unmarshalBasicPartitionSafetyCheckArray(body []byte) ([]BasicPartitionSafetyCheck, error) {
33560	var rawMessages []*json.RawMessage
33561	err := json.Unmarshal(body, &rawMessages)
33562	if err != nil {
33563		return nil, err
33564	}
33565
33566	pscArray := make([]BasicPartitionSafetyCheck, len(rawMessages))
33567
33568	for index, rawMessage := range rawMessages {
33569		psc, err := unmarshalBasicPartitionSafetyCheck(*rawMessage)
33570		if err != nil {
33571			return nil, err
33572		}
33573		pscArray[index] = psc
33574	}
33575	return pscArray, nil
33576}
33577
33578// MarshalJSON is the custom marshaler for PartitionSafetyCheck.
33579func (psc PartitionSafetyCheck) MarshalJSON() ([]byte, error) {
33580	psc.Kind = KindPartitionSafetyCheck
33581	objectMap := make(map[string]interface{})
33582	if psc.PartitionID != nil {
33583		objectMap["PartitionId"] = psc.PartitionID
33584	}
33585	if psc.Kind != "" {
33586		objectMap["Kind"] = psc.Kind
33587	}
33588	return json.Marshal(objectMap)
33589}
33590
33591// AsPartitionSafetyCheck is the BasicSafetyCheck implementation for PartitionSafetyCheck.
33592func (psc PartitionSafetyCheck) AsPartitionSafetyCheck() (*PartitionSafetyCheck, bool) {
33593	return &psc, true
33594}
33595
33596// AsBasicPartitionSafetyCheck is the BasicSafetyCheck implementation for PartitionSafetyCheck.
33597func (psc PartitionSafetyCheck) AsBasicPartitionSafetyCheck() (BasicPartitionSafetyCheck, bool) {
33598	return &psc, true
33599}
33600
33601// AsEnsureAvailabilitySafetyCheck is the BasicSafetyCheck implementation for PartitionSafetyCheck.
33602func (psc PartitionSafetyCheck) AsEnsureAvailabilitySafetyCheck() (*EnsureAvailabilitySafetyCheck, bool) {
33603	return nil, false
33604}
33605
33606// AsEnsurePartitionQuorumSafetyCheck is the BasicSafetyCheck implementation for PartitionSafetyCheck.
33607func (psc PartitionSafetyCheck) AsEnsurePartitionQuorumSafetyCheck() (*EnsurePartitionQuorumSafetyCheck, bool) {
33608	return nil, false
33609}
33610
33611// AsSeedNodeSafetyCheck is the BasicSafetyCheck implementation for PartitionSafetyCheck.
33612func (psc PartitionSafetyCheck) AsSeedNodeSafetyCheck() (*SeedNodeSafetyCheck, bool) {
33613	return nil, false
33614}
33615
33616// AsWaitForInbuildReplicaSafetyCheck is the BasicSafetyCheck implementation for PartitionSafetyCheck.
33617func (psc PartitionSafetyCheck) AsWaitForInbuildReplicaSafetyCheck() (*WaitForInbuildReplicaSafetyCheck, bool) {
33618	return nil, false
33619}
33620
33621// AsWaitForPrimaryPlacementSafetyCheck is the BasicSafetyCheck implementation for PartitionSafetyCheck.
33622func (psc PartitionSafetyCheck) AsWaitForPrimaryPlacementSafetyCheck() (*WaitForPrimaryPlacementSafetyCheck, bool) {
33623	return nil, false
33624}
33625
33626// AsWaitForPrimarySwapSafetyCheck is the BasicSafetyCheck implementation for PartitionSafetyCheck.
33627func (psc PartitionSafetyCheck) AsWaitForPrimarySwapSafetyCheck() (*WaitForPrimarySwapSafetyCheck, bool) {
33628	return nil, false
33629}
33630
33631// AsWaitForReconfigurationSafetyCheck is the BasicSafetyCheck implementation for PartitionSafetyCheck.
33632func (psc PartitionSafetyCheck) AsWaitForReconfigurationSafetyCheck() (*WaitForReconfigurationSafetyCheck, bool) {
33633	return nil, false
33634}
33635
33636// AsSafetyCheck is the BasicSafetyCheck implementation for PartitionSafetyCheck.
33637func (psc PartitionSafetyCheck) AsSafetyCheck() (*SafetyCheck, bool) {
33638	return nil, false
33639}
33640
33641// AsBasicSafetyCheck is the BasicSafetyCheck implementation for PartitionSafetyCheck.
33642func (psc PartitionSafetyCheck) AsBasicSafetyCheck() (BasicSafetyCheck, bool) {
33643	return &psc, true
33644}
33645
33646// BasicPartitionSchemeDescription describes how the service is partitioned.
33647type BasicPartitionSchemeDescription interface {
33648	AsNamedPartitionSchemeDescription() (*NamedPartitionSchemeDescription, bool)
33649	AsSingletonPartitionSchemeDescription() (*SingletonPartitionSchemeDescription, bool)
33650	AsUniformInt64RangePartitionSchemeDescription() (*UniformInt64RangePartitionSchemeDescription, bool)
33651	AsPartitionSchemeDescription() (*PartitionSchemeDescription, bool)
33652}
33653
33654// PartitionSchemeDescription describes how the service is partitioned.
33655type PartitionSchemeDescription struct {
33656	// PartitionScheme - Possible values include: 'PartitionSchemePartitionSchemeDescription', 'PartitionSchemeNamed1', 'PartitionSchemeSingleton1', 'PartitionSchemeUniformInt64Range1'
33657	PartitionScheme PartitionSchemeBasicPartitionSchemeDescription `json:"PartitionScheme,omitempty"`
33658}
33659
33660func unmarshalBasicPartitionSchemeDescription(body []byte) (BasicPartitionSchemeDescription, error) {
33661	var m map[string]interface{}
33662	err := json.Unmarshal(body, &m)
33663	if err != nil {
33664		return nil, err
33665	}
33666
33667	switch m["PartitionScheme"] {
33668	case string(PartitionSchemeNamed1):
33669		var npsd NamedPartitionSchemeDescription
33670		err := json.Unmarshal(body, &npsd)
33671		return npsd, err
33672	case string(PartitionSchemeSingleton1):
33673		var spsd SingletonPartitionSchemeDescription
33674		err := json.Unmarshal(body, &spsd)
33675		return spsd, err
33676	case string(PartitionSchemeUniformInt64Range1):
33677		var ui6rpsd UniformInt64RangePartitionSchemeDescription
33678		err := json.Unmarshal(body, &ui6rpsd)
33679		return ui6rpsd, err
33680	default:
33681		var psd PartitionSchemeDescription
33682		err := json.Unmarshal(body, &psd)
33683		return psd, err
33684	}
33685}
33686func unmarshalBasicPartitionSchemeDescriptionArray(body []byte) ([]BasicPartitionSchemeDescription, error) {
33687	var rawMessages []*json.RawMessage
33688	err := json.Unmarshal(body, &rawMessages)
33689	if err != nil {
33690		return nil, err
33691	}
33692
33693	psdArray := make([]BasicPartitionSchemeDescription, len(rawMessages))
33694
33695	for index, rawMessage := range rawMessages {
33696		psd, err := unmarshalBasicPartitionSchemeDescription(*rawMessage)
33697		if err != nil {
33698			return nil, err
33699		}
33700		psdArray[index] = psd
33701	}
33702	return psdArray, nil
33703}
33704
33705// MarshalJSON is the custom marshaler for PartitionSchemeDescription.
33706func (psd PartitionSchemeDescription) MarshalJSON() ([]byte, error) {
33707	psd.PartitionScheme = PartitionSchemePartitionSchemeDescription
33708	objectMap := make(map[string]interface{})
33709	if psd.PartitionScheme != "" {
33710		objectMap["PartitionScheme"] = psd.PartitionScheme
33711	}
33712	return json.Marshal(objectMap)
33713}
33714
33715// AsNamedPartitionSchemeDescription is the BasicPartitionSchemeDescription implementation for PartitionSchemeDescription.
33716func (psd PartitionSchemeDescription) AsNamedPartitionSchemeDescription() (*NamedPartitionSchemeDescription, bool) {
33717	return nil, false
33718}
33719
33720// AsSingletonPartitionSchemeDescription is the BasicPartitionSchemeDescription implementation for PartitionSchemeDescription.
33721func (psd PartitionSchemeDescription) AsSingletonPartitionSchemeDescription() (*SingletonPartitionSchemeDescription, bool) {
33722	return nil, false
33723}
33724
33725// AsUniformInt64RangePartitionSchemeDescription is the BasicPartitionSchemeDescription implementation for PartitionSchemeDescription.
33726func (psd PartitionSchemeDescription) AsUniformInt64RangePartitionSchemeDescription() (*UniformInt64RangePartitionSchemeDescription, bool) {
33727	return nil, false
33728}
33729
33730// AsPartitionSchemeDescription is the BasicPartitionSchemeDescription implementation for PartitionSchemeDescription.
33731func (psd PartitionSchemeDescription) AsPartitionSchemeDescription() (*PartitionSchemeDescription, bool) {
33732	return &psd, true
33733}
33734
33735// AsBasicPartitionSchemeDescription is the BasicPartitionSchemeDescription implementation for PartitionSchemeDescription.
33736func (psd PartitionSchemeDescription) AsBasicPartitionSchemeDescription() (BasicPartitionSchemeDescription, bool) {
33737	return &psd, true
33738}
33739
33740// PartitionsHealthEvaluation represents health evaluation for the partitions of a service, containing
33741// health evaluations for each unhealthy partition that impacts current aggregated health state. Can be
33742// returned when evaluating service health and the aggregated health state is either Error or Warning.
33743type PartitionsHealthEvaluation struct {
33744	// MaxPercentUnhealthyPartitionsPerService - Maximum allowed percentage of unhealthy partitions per service from the ServiceTypeHealthPolicy.
33745	MaxPercentUnhealthyPartitionsPerService *int32 `json:"MaxPercentUnhealthyPartitionsPerService,omitempty"`
33746	// TotalCount - Total number of partitions of the service from the health store.
33747	TotalCount *int64 `json:"TotalCount,omitempty"`
33748	// UnhealthyEvaluations - List of unhealthy evaluations that led to the aggregated health state. Includes all the unhealthy PartitionHealthEvaluation that impacted the aggregated health.
33749	UnhealthyEvaluations *[]HealthEvaluationWrapper `json:"UnhealthyEvaluations,omitempty"`
33750	// 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'
33751	AggregatedHealthState HealthState `json:"AggregatedHealthState,omitempty"`
33752	// Description - Description of the health evaluation, which represents a summary of the evaluation process.
33753	Description *string `json:"Description,omitempty"`
33754	// 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'
33755	Kind Kind `json:"Kind,omitempty"`
33756}
33757
33758// MarshalJSON is the custom marshaler for PartitionsHealthEvaluation.
33759func (phe PartitionsHealthEvaluation) MarshalJSON() ([]byte, error) {
33760	phe.Kind = KindPartitions
33761	objectMap := make(map[string]interface{})
33762	if phe.MaxPercentUnhealthyPartitionsPerService != nil {
33763		objectMap["MaxPercentUnhealthyPartitionsPerService"] = phe.MaxPercentUnhealthyPartitionsPerService
33764	}
33765	if phe.TotalCount != nil {
33766		objectMap["TotalCount"] = phe.TotalCount
33767	}
33768	if phe.UnhealthyEvaluations != nil {
33769		objectMap["UnhealthyEvaluations"] = phe.UnhealthyEvaluations
33770	}
33771	if phe.AggregatedHealthState != "" {
33772		objectMap["AggregatedHealthState"] = phe.AggregatedHealthState
33773	}
33774	if phe.Description != nil {
33775		objectMap["Description"] = phe.Description
33776	}
33777	if phe.Kind != "" {
33778		objectMap["Kind"] = phe.Kind
33779	}
33780	return json.Marshal(objectMap)
33781}
33782
33783// AsApplicationHealthEvaluation is the BasicHealthEvaluation implementation for PartitionsHealthEvaluation.
33784func (phe PartitionsHealthEvaluation) AsApplicationHealthEvaluation() (*ApplicationHealthEvaluation, bool) {
33785	return nil, false
33786}
33787
33788// AsApplicationsHealthEvaluation is the BasicHealthEvaluation implementation for PartitionsHealthEvaluation.
33789func (phe PartitionsHealthEvaluation) AsApplicationsHealthEvaluation() (*ApplicationsHealthEvaluation, bool) {
33790	return nil, false
33791}
33792
33793// AsApplicationTypeApplicationsHealthEvaluation is the BasicHealthEvaluation implementation for PartitionsHealthEvaluation.
33794func (phe PartitionsHealthEvaluation) AsApplicationTypeApplicationsHealthEvaluation() (*ApplicationTypeApplicationsHealthEvaluation, bool) {
33795	return nil, false
33796}
33797
33798// AsDeltaNodesCheckHealthEvaluation is the BasicHealthEvaluation implementation for PartitionsHealthEvaluation.
33799func (phe PartitionsHealthEvaluation) AsDeltaNodesCheckHealthEvaluation() (*DeltaNodesCheckHealthEvaluation, bool) {
33800	return nil, false
33801}
33802
33803// AsDeployedApplicationHealthEvaluation is the BasicHealthEvaluation implementation for PartitionsHealthEvaluation.
33804func (phe PartitionsHealthEvaluation) AsDeployedApplicationHealthEvaluation() (*DeployedApplicationHealthEvaluation, bool) {
33805	return nil, false
33806}
33807
33808// AsDeployedApplicationsHealthEvaluation is the BasicHealthEvaluation implementation for PartitionsHealthEvaluation.
33809func (phe PartitionsHealthEvaluation) AsDeployedApplicationsHealthEvaluation() (*DeployedApplicationsHealthEvaluation, bool) {
33810	return nil, false
33811}
33812
33813// AsDeployedServicePackageHealthEvaluation is the BasicHealthEvaluation implementation for PartitionsHealthEvaluation.
33814func (phe PartitionsHealthEvaluation) AsDeployedServicePackageHealthEvaluation() (*DeployedServicePackageHealthEvaluation, bool) {
33815	return nil, false
33816}
33817
33818// AsDeployedServicePackagesHealthEvaluation is the BasicHealthEvaluation implementation for PartitionsHealthEvaluation.
33819func (phe PartitionsHealthEvaluation) AsDeployedServicePackagesHealthEvaluation() (*DeployedServicePackagesHealthEvaluation, bool) {
33820	return nil, false
33821}
33822
33823// AsEventHealthEvaluation is the BasicHealthEvaluation implementation for PartitionsHealthEvaluation.
33824func (phe PartitionsHealthEvaluation) AsEventHealthEvaluation() (*EventHealthEvaluation, bool) {
33825	return nil, false
33826}
33827
33828// AsNodeHealthEvaluation is the BasicHealthEvaluation implementation for PartitionsHealthEvaluation.
33829func (phe PartitionsHealthEvaluation) AsNodeHealthEvaluation() (*NodeHealthEvaluation, bool) {
33830	return nil, false
33831}
33832
33833// AsNodesHealthEvaluation is the BasicHealthEvaluation implementation for PartitionsHealthEvaluation.
33834func (phe PartitionsHealthEvaluation) AsNodesHealthEvaluation() (*NodesHealthEvaluation, bool) {
33835	return nil, false
33836}
33837
33838// AsPartitionHealthEvaluation is the BasicHealthEvaluation implementation for PartitionsHealthEvaluation.
33839func (phe PartitionsHealthEvaluation) AsPartitionHealthEvaluation() (*PartitionHealthEvaluation, bool) {
33840	return nil, false
33841}
33842
33843// AsPartitionsHealthEvaluation is the BasicHealthEvaluation implementation for PartitionsHealthEvaluation.
33844func (phe PartitionsHealthEvaluation) AsPartitionsHealthEvaluation() (*PartitionsHealthEvaluation, bool) {
33845	return &phe, true
33846}
33847
33848// AsReplicaHealthEvaluation is the BasicHealthEvaluation implementation for PartitionsHealthEvaluation.
33849func (phe PartitionsHealthEvaluation) AsReplicaHealthEvaluation() (*ReplicaHealthEvaluation, bool) {
33850	return nil, false
33851}
33852
33853// AsReplicasHealthEvaluation is the BasicHealthEvaluation implementation for PartitionsHealthEvaluation.
33854func (phe PartitionsHealthEvaluation) AsReplicasHealthEvaluation() (*ReplicasHealthEvaluation, bool) {
33855	return nil, false
33856}
33857
33858// AsServiceHealthEvaluation is the BasicHealthEvaluation implementation for PartitionsHealthEvaluation.
33859func (phe PartitionsHealthEvaluation) AsServiceHealthEvaluation() (*ServiceHealthEvaluation, bool) {
33860	return nil, false
33861}
33862
33863// AsServicesHealthEvaluation is the BasicHealthEvaluation implementation for PartitionsHealthEvaluation.
33864func (phe PartitionsHealthEvaluation) AsServicesHealthEvaluation() (*ServicesHealthEvaluation, bool) {
33865	return nil, false
33866}
33867
33868// AsSystemApplicationHealthEvaluation is the BasicHealthEvaluation implementation for PartitionsHealthEvaluation.
33869func (phe PartitionsHealthEvaluation) AsSystemApplicationHealthEvaluation() (*SystemApplicationHealthEvaluation, bool) {
33870	return nil, false
33871}
33872
33873// AsUpgradeDomainDeltaNodesCheckHealthEvaluation is the BasicHealthEvaluation implementation for PartitionsHealthEvaluation.
33874func (phe PartitionsHealthEvaluation) AsUpgradeDomainDeltaNodesCheckHealthEvaluation() (*UpgradeDomainDeltaNodesCheckHealthEvaluation, bool) {
33875	return nil, false
33876}
33877
33878// AsUpgradeDomainNodesHealthEvaluation is the BasicHealthEvaluation implementation for PartitionsHealthEvaluation.
33879func (phe PartitionsHealthEvaluation) AsUpgradeDomainNodesHealthEvaluation() (*UpgradeDomainNodesHealthEvaluation, bool) {
33880	return nil, false
33881}
33882
33883// AsHealthEvaluation is the BasicHealthEvaluation implementation for PartitionsHealthEvaluation.
33884func (phe PartitionsHealthEvaluation) AsHealthEvaluation() (*HealthEvaluation, bool) {
33885	return nil, false
33886}
33887
33888// AsBasicHealthEvaluation is the BasicHealthEvaluation implementation for PartitionsHealthEvaluation.
33889func (phe PartitionsHealthEvaluation) AsBasicHealthEvaluation() (BasicHealthEvaluation, bool) {
33890	return &phe, true
33891}
33892
33893// PrimaryReplicatorStatus provides statistics about the Service Fabric Replicator, when it is functioning
33894// in a Primary role.
33895type PrimaryReplicatorStatus struct {
33896	// ReplicationQueueStatus - Details about the replication queue on the primary replicator.
33897	ReplicationQueueStatus *ReplicatorQueueStatus `json:"ReplicationQueueStatus,omitempty"`
33898	// RemoteReplicators - The status of all the active and idle secondary replicators that the primary is aware of.
33899	RemoteReplicators *[]RemoteReplicatorStatus `json:"RemoteReplicators,omitempty"`
33900	// Kind - Possible values include: 'KindReplicatorStatus', 'KindPrimary', 'KindSecondaryReplicatorStatus', 'KindActiveSecondary', 'KindIdleSecondary'
33901	Kind KindBasicReplicatorStatus `json:"Kind,omitempty"`
33902}
33903
33904// MarshalJSON is the custom marshaler for PrimaryReplicatorStatus.
33905func (prs PrimaryReplicatorStatus) MarshalJSON() ([]byte, error) {
33906	prs.Kind = KindPrimary
33907	objectMap := make(map[string]interface{})
33908	if prs.ReplicationQueueStatus != nil {
33909		objectMap["ReplicationQueueStatus"] = prs.ReplicationQueueStatus
33910	}
33911	if prs.RemoteReplicators != nil {
33912		objectMap["RemoteReplicators"] = prs.RemoteReplicators
33913	}
33914	if prs.Kind != "" {
33915		objectMap["Kind"] = prs.Kind
33916	}
33917	return json.Marshal(objectMap)
33918}
33919
33920// AsPrimaryReplicatorStatus is the BasicReplicatorStatus implementation for PrimaryReplicatorStatus.
33921func (prs PrimaryReplicatorStatus) AsPrimaryReplicatorStatus() (*PrimaryReplicatorStatus, bool) {
33922	return &prs, true
33923}
33924
33925// AsSecondaryReplicatorStatus is the BasicReplicatorStatus implementation for PrimaryReplicatorStatus.
33926func (prs PrimaryReplicatorStatus) AsSecondaryReplicatorStatus() (*SecondaryReplicatorStatus, bool) {
33927	return nil, false
33928}
33929
33930// AsBasicSecondaryReplicatorStatus is the BasicReplicatorStatus implementation for PrimaryReplicatorStatus.
33931func (prs PrimaryReplicatorStatus) AsBasicSecondaryReplicatorStatus() (BasicSecondaryReplicatorStatus, bool) {
33932	return nil, false
33933}
33934
33935// AsSecondaryActiveReplicatorStatus is the BasicReplicatorStatus implementation for PrimaryReplicatorStatus.
33936func (prs PrimaryReplicatorStatus) AsSecondaryActiveReplicatorStatus() (*SecondaryActiveReplicatorStatus, bool) {
33937	return nil, false
33938}
33939
33940// AsSecondaryIdleReplicatorStatus is the BasicReplicatorStatus implementation for PrimaryReplicatorStatus.
33941func (prs PrimaryReplicatorStatus) AsSecondaryIdleReplicatorStatus() (*SecondaryIdleReplicatorStatus, bool) {
33942	return nil, false
33943}
33944
33945// AsReplicatorStatus is the BasicReplicatorStatus implementation for PrimaryReplicatorStatus.
33946func (prs PrimaryReplicatorStatus) AsReplicatorStatus() (*ReplicatorStatus, bool) {
33947	return nil, false
33948}
33949
33950// AsBasicReplicatorStatus is the BasicReplicatorStatus implementation for PrimaryReplicatorStatus.
33951func (prs PrimaryReplicatorStatus) AsBasicReplicatorStatus() (BasicReplicatorStatus, bool) {
33952	return &prs, true
33953}
33954
33955// PropertyBatchDescriptionList describes a list of property batch operations to be executed. Either all or
33956// none of the operations will be committed.
33957type PropertyBatchDescriptionList struct {
33958	// Operations - A list of the property batch operations to be executed.
33959	Operations *[]BasicPropertyBatchOperation `json:"Operations,omitempty"`
33960}
33961
33962// UnmarshalJSON is the custom unmarshaler for PropertyBatchDescriptionList struct.
33963func (pbdl *PropertyBatchDescriptionList) UnmarshalJSON(body []byte) error {
33964	var m map[string]*json.RawMessage
33965	err := json.Unmarshal(body, &m)
33966	if err != nil {
33967		return err
33968	}
33969	for k, v := range m {
33970		switch k {
33971		case "Operations":
33972			if v != nil {
33973				operations, err := unmarshalBasicPropertyBatchOperationArray(*v)
33974				if err != nil {
33975					return err
33976				}
33977				pbdl.Operations = &operations
33978			}
33979		}
33980	}
33981
33982	return nil
33983}
33984
33985// BasicPropertyBatchInfo information about the results of a property batch.
33986type BasicPropertyBatchInfo interface {
33987	AsSuccessfulPropertyBatchInfo() (*SuccessfulPropertyBatchInfo, bool)
33988	AsFailedPropertyBatchInfo() (*FailedPropertyBatchInfo, bool)
33989	AsPropertyBatchInfo() (*PropertyBatchInfo, bool)
33990}
33991
33992// PropertyBatchInfo information about the results of a property batch.
33993type PropertyBatchInfo struct {
33994	autorest.Response `json:"-"`
33995	// Kind - Possible values include: 'KindPropertyBatchInfo', 'KindSuccessful', 'KindFailed'
33996	Kind KindBasicPropertyBatchInfo `json:"Kind,omitempty"`
33997}
33998
33999func unmarshalBasicPropertyBatchInfo(body []byte) (BasicPropertyBatchInfo, error) {
34000	var m map[string]interface{}
34001	err := json.Unmarshal(body, &m)
34002	if err != nil {
34003		return nil, err
34004	}
34005
34006	switch m["Kind"] {
34007	case string(KindSuccessful):
34008		var spbi SuccessfulPropertyBatchInfo
34009		err := json.Unmarshal(body, &spbi)
34010		return spbi, err
34011	case string(KindFailed):
34012		var fpbi FailedPropertyBatchInfo
34013		err := json.Unmarshal(body, &fpbi)
34014		return fpbi, err
34015	default:
34016		var pbi PropertyBatchInfo
34017		err := json.Unmarshal(body, &pbi)
34018		return pbi, err
34019	}
34020}
34021func unmarshalBasicPropertyBatchInfoArray(body []byte) ([]BasicPropertyBatchInfo, error) {
34022	var rawMessages []*json.RawMessage
34023	err := json.Unmarshal(body, &rawMessages)
34024	if err != nil {
34025		return nil, err
34026	}
34027
34028	pbiArray := make([]BasicPropertyBatchInfo, len(rawMessages))
34029
34030	for index, rawMessage := range rawMessages {
34031		pbi, err := unmarshalBasicPropertyBatchInfo(*rawMessage)
34032		if err != nil {
34033			return nil, err
34034		}
34035		pbiArray[index] = pbi
34036	}
34037	return pbiArray, nil
34038}
34039
34040// MarshalJSON is the custom marshaler for PropertyBatchInfo.
34041func (pbi PropertyBatchInfo) MarshalJSON() ([]byte, error) {
34042	pbi.Kind = KindPropertyBatchInfo
34043	objectMap := make(map[string]interface{})
34044	if pbi.Kind != "" {
34045		objectMap["Kind"] = pbi.Kind
34046	}
34047	return json.Marshal(objectMap)
34048}
34049
34050// AsSuccessfulPropertyBatchInfo is the BasicPropertyBatchInfo implementation for PropertyBatchInfo.
34051func (pbi PropertyBatchInfo) AsSuccessfulPropertyBatchInfo() (*SuccessfulPropertyBatchInfo, bool) {
34052	return nil, false
34053}
34054
34055// AsFailedPropertyBatchInfo is the BasicPropertyBatchInfo implementation for PropertyBatchInfo.
34056func (pbi PropertyBatchInfo) AsFailedPropertyBatchInfo() (*FailedPropertyBatchInfo, bool) {
34057	return nil, false
34058}
34059
34060// AsPropertyBatchInfo is the BasicPropertyBatchInfo implementation for PropertyBatchInfo.
34061func (pbi PropertyBatchInfo) AsPropertyBatchInfo() (*PropertyBatchInfo, bool) {
34062	return &pbi, true
34063}
34064
34065// AsBasicPropertyBatchInfo is the BasicPropertyBatchInfo implementation for PropertyBatchInfo.
34066func (pbi PropertyBatchInfo) AsBasicPropertyBatchInfo() (BasicPropertyBatchInfo, bool) {
34067	return &pbi, true
34068}
34069
34070// PropertyBatchInfoModel ...
34071type PropertyBatchInfoModel struct {
34072	autorest.Response `json:"-"`
34073	Value             BasicPropertyBatchInfo `json:"value,omitempty"`
34074}
34075
34076// UnmarshalJSON is the custom unmarshaler for PropertyBatchInfoModel struct.
34077func (pbim *PropertyBatchInfoModel) UnmarshalJSON(body []byte) error {
34078	pbi, err := unmarshalBasicPropertyBatchInfo(body)
34079	if err != nil {
34080		return err
34081	}
34082	pbim.Value = pbi
34083
34084	return nil
34085}
34086
34087// BasicPropertyBatchOperation represents the base type for property operations that can be put into a batch and
34088// submitted.
34089type BasicPropertyBatchOperation interface {
34090	AsCheckExistsPropertyBatchOperation() (*CheckExistsPropertyBatchOperation, bool)
34091	AsCheckSequencePropertyBatchOperation() (*CheckSequencePropertyBatchOperation, bool)
34092	AsCheckValuePropertyBatchOperation() (*CheckValuePropertyBatchOperation, bool)
34093	AsDeletePropertyBatchOperation() (*DeletePropertyBatchOperation, bool)
34094	AsGetPropertyBatchOperation() (*GetPropertyBatchOperation, bool)
34095	AsPutPropertyBatchOperation() (*PutPropertyBatchOperation, bool)
34096	AsPropertyBatchOperation() (*PropertyBatchOperation, bool)
34097}
34098
34099// PropertyBatchOperation represents the base type for property operations that can be put into a batch and
34100// submitted.
34101type PropertyBatchOperation struct {
34102	// PropertyName - The name of the Service Fabric property.
34103	PropertyName *string `json:"PropertyName,omitempty"`
34104	// Kind - Possible values include: 'KindPropertyBatchOperation', 'KindCheckExists', 'KindCheckSequence', 'KindCheckValue', 'KindDelete', 'KindGet', 'KindPut'
34105	Kind KindBasicPropertyBatchOperation `json:"Kind,omitempty"`
34106}
34107
34108func unmarshalBasicPropertyBatchOperation(body []byte) (BasicPropertyBatchOperation, error) {
34109	var m map[string]interface{}
34110	err := json.Unmarshal(body, &m)
34111	if err != nil {
34112		return nil, err
34113	}
34114
34115	switch m["Kind"] {
34116	case string(KindCheckExists):
34117		var cepbo CheckExistsPropertyBatchOperation
34118		err := json.Unmarshal(body, &cepbo)
34119		return cepbo, err
34120	case string(KindCheckSequence):
34121		var cspbo CheckSequencePropertyBatchOperation
34122		err := json.Unmarshal(body, &cspbo)
34123		return cspbo, err
34124	case string(KindCheckValue):
34125		var cvpbo CheckValuePropertyBatchOperation
34126		err := json.Unmarshal(body, &cvpbo)
34127		return cvpbo, err
34128	case string(KindDelete):
34129		var dpbo DeletePropertyBatchOperation
34130		err := json.Unmarshal(body, &dpbo)
34131		return dpbo, err
34132	case string(KindGet):
34133		var gpbo GetPropertyBatchOperation
34134		err := json.Unmarshal(body, &gpbo)
34135		return gpbo, err
34136	case string(KindPut):
34137		var ppbo PutPropertyBatchOperation
34138		err := json.Unmarshal(body, &ppbo)
34139		return ppbo, err
34140	default:
34141		var pbo PropertyBatchOperation
34142		err := json.Unmarshal(body, &pbo)
34143		return pbo, err
34144	}
34145}
34146func unmarshalBasicPropertyBatchOperationArray(body []byte) ([]BasicPropertyBatchOperation, error) {
34147	var rawMessages []*json.RawMessage
34148	err := json.Unmarshal(body, &rawMessages)
34149	if err != nil {
34150		return nil, err
34151	}
34152
34153	pboArray := make([]BasicPropertyBatchOperation, len(rawMessages))
34154
34155	for index, rawMessage := range rawMessages {
34156		pbo, err := unmarshalBasicPropertyBatchOperation(*rawMessage)
34157		if err != nil {
34158			return nil, err
34159		}
34160		pboArray[index] = pbo
34161	}
34162	return pboArray, nil
34163}
34164
34165// MarshalJSON is the custom marshaler for PropertyBatchOperation.
34166func (pbo PropertyBatchOperation) MarshalJSON() ([]byte, error) {
34167	pbo.Kind = KindPropertyBatchOperation
34168	objectMap := make(map[string]interface{})
34169	if pbo.PropertyName != nil {
34170		objectMap["PropertyName"] = pbo.PropertyName
34171	}
34172	if pbo.Kind != "" {
34173		objectMap["Kind"] = pbo.Kind
34174	}
34175	return json.Marshal(objectMap)
34176}
34177
34178// AsCheckExistsPropertyBatchOperation is the BasicPropertyBatchOperation implementation for PropertyBatchOperation.
34179func (pbo PropertyBatchOperation) AsCheckExistsPropertyBatchOperation() (*CheckExistsPropertyBatchOperation, bool) {
34180	return nil, false
34181}
34182
34183// AsCheckSequencePropertyBatchOperation is the BasicPropertyBatchOperation implementation for PropertyBatchOperation.
34184func (pbo PropertyBatchOperation) AsCheckSequencePropertyBatchOperation() (*CheckSequencePropertyBatchOperation, bool) {
34185	return nil, false
34186}
34187
34188// AsCheckValuePropertyBatchOperation is the BasicPropertyBatchOperation implementation for PropertyBatchOperation.
34189func (pbo PropertyBatchOperation) AsCheckValuePropertyBatchOperation() (*CheckValuePropertyBatchOperation, bool) {
34190	return nil, false
34191}
34192
34193// AsDeletePropertyBatchOperation is the BasicPropertyBatchOperation implementation for PropertyBatchOperation.
34194func (pbo PropertyBatchOperation) AsDeletePropertyBatchOperation() (*DeletePropertyBatchOperation, bool) {
34195	return nil, false
34196}
34197
34198// AsGetPropertyBatchOperation is the BasicPropertyBatchOperation implementation for PropertyBatchOperation.
34199func (pbo PropertyBatchOperation) AsGetPropertyBatchOperation() (*GetPropertyBatchOperation, bool) {
34200	return nil, false
34201}
34202
34203// AsPutPropertyBatchOperation is the BasicPropertyBatchOperation implementation for PropertyBatchOperation.
34204func (pbo PropertyBatchOperation) AsPutPropertyBatchOperation() (*PutPropertyBatchOperation, bool) {
34205	return nil, false
34206}
34207
34208// AsPropertyBatchOperation is the BasicPropertyBatchOperation implementation for PropertyBatchOperation.
34209func (pbo PropertyBatchOperation) AsPropertyBatchOperation() (*PropertyBatchOperation, bool) {
34210	return &pbo, true
34211}
34212
34213// AsBasicPropertyBatchOperation is the BasicPropertyBatchOperation implementation for PropertyBatchOperation.
34214func (pbo PropertyBatchOperation) AsBasicPropertyBatchOperation() (BasicPropertyBatchOperation, bool) {
34215	return &pbo, true
34216}
34217
34218// PropertyDescription description of a Service Fabric property.
34219type PropertyDescription struct {
34220	// PropertyName - The name of the Service Fabric property.
34221	PropertyName *string `json:"PropertyName,omitempty"`
34222	// CustomTypeID - The property's custom type ID. Using this property, the user is able to tag the type of the value of the property.
34223	CustomTypeID *string `json:"CustomTypeId,omitempty"`
34224	// Value - Describes a Service Fabric property value.
34225	Value BasicPropertyValue `json:"Value,omitempty"`
34226}
34227
34228// UnmarshalJSON is the custom unmarshaler for PropertyDescription struct.
34229func (pd *PropertyDescription) UnmarshalJSON(body []byte) error {
34230	var m map[string]*json.RawMessage
34231	err := json.Unmarshal(body, &m)
34232	if err != nil {
34233		return err
34234	}
34235	for k, v := range m {
34236		switch k {
34237		case "PropertyName":
34238			if v != nil {
34239				var propertyName string
34240				err = json.Unmarshal(*v, &propertyName)
34241				if err != nil {
34242					return err
34243				}
34244				pd.PropertyName = &propertyName
34245			}
34246		case "CustomTypeId":
34247			if v != nil {
34248				var customTypeID string
34249				err = json.Unmarshal(*v, &customTypeID)
34250				if err != nil {
34251					return err
34252				}
34253				pd.CustomTypeID = &customTypeID
34254			}
34255		case "Value":
34256			if v != nil {
34257				value, err := unmarshalBasicPropertyValue(*v)
34258				if err != nil {
34259					return err
34260				}
34261				pd.Value = value
34262			}
34263		}
34264	}
34265
34266	return nil
34267}
34268
34269// PropertyInfo information about a Service Fabric property.
34270type PropertyInfo struct {
34271	autorest.Response `json:"-"`
34272	// Name - The name of the Service Fabric property.
34273	Name *string `json:"Name,omitempty"`
34274	// Value - Describes a Service Fabric property value.
34275	Value BasicPropertyValue `json:"Value,omitempty"`
34276	// Metadata - The metadata associated with a property, including the property's name.
34277	Metadata *PropertyMetadata `json:"Metadata,omitempty"`
34278}
34279
34280// UnmarshalJSON is the custom unmarshaler for PropertyInfo struct.
34281func (pi *PropertyInfo) UnmarshalJSON(body []byte) error {
34282	var m map[string]*json.RawMessage
34283	err := json.Unmarshal(body, &m)
34284	if err != nil {
34285		return err
34286	}
34287	for k, v := range m {
34288		switch k {
34289		case "Name":
34290			if v != nil {
34291				var name string
34292				err = json.Unmarshal(*v, &name)
34293				if err != nil {
34294					return err
34295				}
34296				pi.Name = &name
34297			}
34298		case "Value":
34299			if v != nil {
34300				value, err := unmarshalBasicPropertyValue(*v)
34301				if err != nil {
34302					return err
34303				}
34304				pi.Value = value
34305			}
34306		case "Metadata":
34307			if v != nil {
34308				var metadata PropertyMetadata
34309				err = json.Unmarshal(*v, &metadata)
34310				if err != nil {
34311					return err
34312				}
34313				pi.Metadata = &metadata
34314			}
34315		}
34316	}
34317
34318	return nil
34319}
34320
34321// PropertyMetadata the metadata associated with a property, including the property's name.
34322type PropertyMetadata struct {
34323	// 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'
34324	TypeID PropertyValueKind `json:"TypeId,omitempty"`
34325	// CustomTypeID - The property's custom type ID.
34326	CustomTypeID *string `json:"CustomTypeId,omitempty"`
34327	// 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.
34328	Parent *string `json:"Parent,omitempty"`
34329	// SizeInBytes - The length of the serialized property value.
34330	SizeInBytes *int32 `json:"SizeInBytes,omitempty"`
34331	// LastModifiedUtcTimestamp - Represents when the Property was last modified. Only write operations will cause this field to be updated.
34332	LastModifiedUtcTimestamp *date.Time `json:"LastModifiedUtcTimestamp,omitempty"`
34333	// SequenceNumber - The version of the property. Every time a property is modified, its sequence number is increased.
34334	SequenceNumber *string `json:"SequenceNumber,omitempty"`
34335}
34336
34337// BasicPropertyValue describes a Service Fabric property value.
34338type BasicPropertyValue interface {
34339	AsBinaryPropertyValue() (*BinaryPropertyValue, bool)
34340	AsInt64PropertyValue() (*Int64PropertyValue, bool)
34341	AsDoublePropertyValue() (*DoublePropertyValue, bool)
34342	AsStringPropertyValue() (*StringPropertyValue, bool)
34343	AsGUIDPropertyValue() (*GUIDPropertyValue, bool)
34344	AsPropertyValue() (*PropertyValue, bool)
34345}
34346
34347// PropertyValue describes a Service Fabric property value.
34348type PropertyValue struct {
34349	// Kind - Possible values include: 'KindPropertyValue', 'KindBinary', 'KindInt64', 'KindDouble', 'KindString', 'KindGUID'
34350	Kind KindBasicPropertyValue `json:"Kind,omitempty"`
34351}
34352
34353func unmarshalBasicPropertyValue(body []byte) (BasicPropertyValue, error) {
34354	var m map[string]interface{}
34355	err := json.Unmarshal(body, &m)
34356	if err != nil {
34357		return nil, err
34358	}
34359
34360	switch m["Kind"] {
34361	case string(KindBinary):
34362		var bpv BinaryPropertyValue
34363		err := json.Unmarshal(body, &bpv)
34364		return bpv, err
34365	case string(KindInt64):
34366		var i6pv Int64PropertyValue
34367		err := json.Unmarshal(body, &i6pv)
34368		return i6pv, err
34369	case string(KindDouble):
34370		var dpv DoublePropertyValue
34371		err := json.Unmarshal(body, &dpv)
34372		return dpv, err
34373	case string(KindString):
34374		var spv StringPropertyValue
34375		err := json.Unmarshal(body, &spv)
34376		return spv, err
34377	case string(KindGUID):
34378		var gpv GUIDPropertyValue
34379		err := json.Unmarshal(body, &gpv)
34380		return gpv, err
34381	default:
34382		var pv PropertyValue
34383		err := json.Unmarshal(body, &pv)
34384		return pv, err
34385	}
34386}
34387func unmarshalBasicPropertyValueArray(body []byte) ([]BasicPropertyValue, error) {
34388	var rawMessages []*json.RawMessage
34389	err := json.Unmarshal(body, &rawMessages)
34390	if err != nil {
34391		return nil, err
34392	}
34393
34394	pvArray := make([]BasicPropertyValue, len(rawMessages))
34395
34396	for index, rawMessage := range rawMessages {
34397		pv, err := unmarshalBasicPropertyValue(*rawMessage)
34398		if err != nil {
34399			return nil, err
34400		}
34401		pvArray[index] = pv
34402	}
34403	return pvArray, nil
34404}
34405
34406// MarshalJSON is the custom marshaler for PropertyValue.
34407func (pv PropertyValue) MarshalJSON() ([]byte, error) {
34408	pv.Kind = KindPropertyValue
34409	objectMap := make(map[string]interface{})
34410	if pv.Kind != "" {
34411		objectMap["Kind"] = pv.Kind
34412	}
34413	return json.Marshal(objectMap)
34414}
34415
34416// AsBinaryPropertyValue is the BasicPropertyValue implementation for PropertyValue.
34417func (pv PropertyValue) AsBinaryPropertyValue() (*BinaryPropertyValue, bool) {
34418	return nil, false
34419}
34420
34421// AsInt64PropertyValue is the BasicPropertyValue implementation for PropertyValue.
34422func (pv PropertyValue) AsInt64PropertyValue() (*Int64PropertyValue, bool) {
34423	return nil, false
34424}
34425
34426// AsDoublePropertyValue is the BasicPropertyValue implementation for PropertyValue.
34427func (pv PropertyValue) AsDoublePropertyValue() (*DoublePropertyValue, bool) {
34428	return nil, false
34429}
34430
34431// AsStringPropertyValue is the BasicPropertyValue implementation for PropertyValue.
34432func (pv PropertyValue) AsStringPropertyValue() (*StringPropertyValue, bool) {
34433	return nil, false
34434}
34435
34436// AsGUIDPropertyValue is the BasicPropertyValue implementation for PropertyValue.
34437func (pv PropertyValue) AsGUIDPropertyValue() (*GUIDPropertyValue, bool) {
34438	return nil, false
34439}
34440
34441// AsPropertyValue is the BasicPropertyValue implementation for PropertyValue.
34442func (pv PropertyValue) AsPropertyValue() (*PropertyValue, bool) {
34443	return &pv, true
34444}
34445
34446// AsBasicPropertyValue is the BasicPropertyValue implementation for PropertyValue.
34447func (pv PropertyValue) AsBasicPropertyValue() (BasicPropertyValue, bool) {
34448	return &pv, true
34449}
34450
34451// ProvisionApplicationTypeDescription describes the operation to register or provision an application type
34452// using an application package uploaded to the Service Fabric image store.
34453type ProvisionApplicationTypeDescription struct {
34454	// ApplicationTypeBuildPath - The relative path for the application package in the image store specified during the prior upload operation.
34455	ApplicationTypeBuildPath *string `json:"ApplicationTypeBuildPath,omitempty"`
34456	// 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'
34457	ApplicationPackageCleanupPolicy ApplicationPackageCleanupPolicy `json:"ApplicationPackageCleanupPolicy,omitempty"`
34458	// 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.
34459	Async *bool `json:"Async,omitempty"`
34460	// Kind - Possible values include: 'KindProvisionApplicationTypeDescriptionBase', 'KindImageStorePath', 'KindExternalStore'
34461	Kind KindBasicProvisionApplicationTypeDescriptionBase `json:"Kind,omitempty"`
34462}
34463
34464// MarshalJSON is the custom marshaler for ProvisionApplicationTypeDescription.
34465func (patd ProvisionApplicationTypeDescription) MarshalJSON() ([]byte, error) {
34466	patd.Kind = KindImageStorePath
34467	objectMap := make(map[string]interface{})
34468	if patd.ApplicationTypeBuildPath != nil {
34469		objectMap["ApplicationTypeBuildPath"] = patd.ApplicationTypeBuildPath
34470	}
34471	if patd.ApplicationPackageCleanupPolicy != "" {
34472		objectMap["ApplicationPackageCleanupPolicy"] = patd.ApplicationPackageCleanupPolicy
34473	}
34474	if patd.Async != nil {
34475		objectMap["Async"] = patd.Async
34476	}
34477	if patd.Kind != "" {
34478		objectMap["Kind"] = patd.Kind
34479	}
34480	return json.Marshal(objectMap)
34481}
34482
34483// AsProvisionApplicationTypeDescription is the BasicProvisionApplicationTypeDescriptionBase implementation for ProvisionApplicationTypeDescription.
34484func (patd ProvisionApplicationTypeDescription) AsProvisionApplicationTypeDescription() (*ProvisionApplicationTypeDescription, bool) {
34485	return &patd, true
34486}
34487
34488// AsExternalStoreProvisionApplicationTypeDescription is the BasicProvisionApplicationTypeDescriptionBase implementation for ProvisionApplicationTypeDescription.
34489func (patd ProvisionApplicationTypeDescription) AsExternalStoreProvisionApplicationTypeDescription() (*ExternalStoreProvisionApplicationTypeDescription, bool) {
34490	return nil, false
34491}
34492
34493// AsProvisionApplicationTypeDescriptionBase is the BasicProvisionApplicationTypeDescriptionBase implementation for ProvisionApplicationTypeDescription.
34494func (patd ProvisionApplicationTypeDescription) AsProvisionApplicationTypeDescriptionBase() (*ProvisionApplicationTypeDescriptionBase, bool) {
34495	return nil, false
34496}
34497
34498// AsBasicProvisionApplicationTypeDescriptionBase is the BasicProvisionApplicationTypeDescriptionBase implementation for ProvisionApplicationTypeDescription.
34499func (patd ProvisionApplicationTypeDescription) AsBasicProvisionApplicationTypeDescriptionBase() (BasicProvisionApplicationTypeDescriptionBase, bool) {
34500	return &patd, true
34501}
34502
34503// BasicProvisionApplicationTypeDescriptionBase represents the type of registration or provision requested, and if the
34504// operation needs to be asynchronous or not. Supported types of provision operations are from either image store or
34505// external store.
34506type BasicProvisionApplicationTypeDescriptionBase interface {
34507	AsProvisionApplicationTypeDescription() (*ProvisionApplicationTypeDescription, bool)
34508	AsExternalStoreProvisionApplicationTypeDescription() (*ExternalStoreProvisionApplicationTypeDescription, bool)
34509	AsProvisionApplicationTypeDescriptionBase() (*ProvisionApplicationTypeDescriptionBase, bool)
34510}
34511
34512// ProvisionApplicationTypeDescriptionBase represents the type of registration or provision requested, and if
34513// the operation needs to be asynchronous or not. Supported types of provision operations are from either image
34514// store or external store.
34515type ProvisionApplicationTypeDescriptionBase struct {
34516	// 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.
34517	Async *bool `json:"Async,omitempty"`
34518	// Kind - Possible values include: 'KindProvisionApplicationTypeDescriptionBase', 'KindImageStorePath', 'KindExternalStore'
34519	Kind KindBasicProvisionApplicationTypeDescriptionBase `json:"Kind,omitempty"`
34520}
34521
34522func unmarshalBasicProvisionApplicationTypeDescriptionBase(body []byte) (BasicProvisionApplicationTypeDescriptionBase, error) {
34523	var m map[string]interface{}
34524	err := json.Unmarshal(body, &m)
34525	if err != nil {
34526		return nil, err
34527	}
34528
34529	switch m["Kind"] {
34530	case string(KindImageStorePath):
34531		var patd ProvisionApplicationTypeDescription
34532		err := json.Unmarshal(body, &patd)
34533		return patd, err
34534	case string(KindExternalStore):
34535		var espatd ExternalStoreProvisionApplicationTypeDescription
34536		err := json.Unmarshal(body, &espatd)
34537		return espatd, err
34538	default:
34539		var patdb ProvisionApplicationTypeDescriptionBase
34540		err := json.Unmarshal(body, &patdb)
34541		return patdb, err
34542	}
34543}
34544func unmarshalBasicProvisionApplicationTypeDescriptionBaseArray(body []byte) ([]BasicProvisionApplicationTypeDescriptionBase, error) {
34545	var rawMessages []*json.RawMessage
34546	err := json.Unmarshal(body, &rawMessages)
34547	if err != nil {
34548		return nil, err
34549	}
34550
34551	patdbArray := make([]BasicProvisionApplicationTypeDescriptionBase, len(rawMessages))
34552
34553	for index, rawMessage := range rawMessages {
34554		patdb, err := unmarshalBasicProvisionApplicationTypeDescriptionBase(*rawMessage)
34555		if err != nil {
34556			return nil, err
34557		}
34558		patdbArray[index] = patdb
34559	}
34560	return patdbArray, nil
34561}
34562
34563// MarshalJSON is the custom marshaler for ProvisionApplicationTypeDescriptionBase.
34564func (patdb ProvisionApplicationTypeDescriptionBase) MarshalJSON() ([]byte, error) {
34565	patdb.Kind = KindProvisionApplicationTypeDescriptionBase
34566	objectMap := make(map[string]interface{})
34567	if patdb.Async != nil {
34568		objectMap["Async"] = patdb.Async
34569	}
34570	if patdb.Kind != "" {
34571		objectMap["Kind"] = patdb.Kind
34572	}
34573	return json.Marshal(objectMap)
34574}
34575
34576// AsProvisionApplicationTypeDescription is the BasicProvisionApplicationTypeDescriptionBase implementation for ProvisionApplicationTypeDescriptionBase.
34577func (patdb ProvisionApplicationTypeDescriptionBase) AsProvisionApplicationTypeDescription() (*ProvisionApplicationTypeDescription, bool) {
34578	return nil, false
34579}
34580
34581// AsExternalStoreProvisionApplicationTypeDescription is the BasicProvisionApplicationTypeDescriptionBase implementation for ProvisionApplicationTypeDescriptionBase.
34582func (patdb ProvisionApplicationTypeDescriptionBase) AsExternalStoreProvisionApplicationTypeDescription() (*ExternalStoreProvisionApplicationTypeDescription, bool) {
34583	return nil, false
34584}
34585
34586// AsProvisionApplicationTypeDescriptionBase is the BasicProvisionApplicationTypeDescriptionBase implementation for ProvisionApplicationTypeDescriptionBase.
34587func (patdb ProvisionApplicationTypeDescriptionBase) AsProvisionApplicationTypeDescriptionBase() (*ProvisionApplicationTypeDescriptionBase, bool) {
34588	return &patdb, true
34589}
34590
34591// AsBasicProvisionApplicationTypeDescriptionBase is the BasicProvisionApplicationTypeDescriptionBase implementation for ProvisionApplicationTypeDescriptionBase.
34592func (patdb ProvisionApplicationTypeDescriptionBase) AsBasicProvisionApplicationTypeDescriptionBase() (BasicProvisionApplicationTypeDescriptionBase, bool) {
34593	return &patdb, true
34594}
34595
34596// ProvisionFabricDescription describes the parameters for provisioning a cluster.
34597type ProvisionFabricDescription struct {
34598	// CodeFilePath - The cluster code package file path.
34599	CodeFilePath *string `json:"CodeFilePath,omitempty"`
34600	// ClusterManifestFilePath - The cluster manifest file path.
34601	ClusterManifestFilePath *string `json:"ClusterManifestFilePath,omitempty"`
34602}
34603
34604// PutPropertyBatchOperation puts the specified property under the specified name.
34605// Note that if one PropertyBatchOperation in a PropertyBatch fails,
34606// the entire batch fails and cannot be committed in a transactional manner.
34607type PutPropertyBatchOperation struct {
34608	// Value - Describes a Service Fabric property value.
34609	Value BasicPropertyValue `json:"Value,omitempty"`
34610	// CustomTypeID - The property's custom type ID. Using this property, the user is able to tag the type of the value of the property.
34611	CustomTypeID *string `json:"CustomTypeId,omitempty"`
34612	// PropertyName - The name of the Service Fabric property.
34613	PropertyName *string `json:"PropertyName,omitempty"`
34614	// Kind - Possible values include: 'KindPropertyBatchOperation', 'KindCheckExists', 'KindCheckSequence', 'KindCheckValue', 'KindDelete', 'KindGet', 'KindPut'
34615	Kind KindBasicPropertyBatchOperation `json:"Kind,omitempty"`
34616}
34617
34618// MarshalJSON is the custom marshaler for PutPropertyBatchOperation.
34619func (ppbo PutPropertyBatchOperation) MarshalJSON() ([]byte, error) {
34620	ppbo.Kind = KindPut
34621	objectMap := make(map[string]interface{})
34622	objectMap["Value"] = ppbo.Value
34623	if ppbo.CustomTypeID != nil {
34624		objectMap["CustomTypeId"] = ppbo.CustomTypeID
34625	}
34626	if ppbo.PropertyName != nil {
34627		objectMap["PropertyName"] = ppbo.PropertyName
34628	}
34629	if ppbo.Kind != "" {
34630		objectMap["Kind"] = ppbo.Kind
34631	}
34632	return json.Marshal(objectMap)
34633}
34634
34635// AsCheckExistsPropertyBatchOperation is the BasicPropertyBatchOperation implementation for PutPropertyBatchOperation.
34636func (ppbo PutPropertyBatchOperation) AsCheckExistsPropertyBatchOperation() (*CheckExistsPropertyBatchOperation, bool) {
34637	return nil, false
34638}
34639
34640// AsCheckSequencePropertyBatchOperation is the BasicPropertyBatchOperation implementation for PutPropertyBatchOperation.
34641func (ppbo PutPropertyBatchOperation) AsCheckSequencePropertyBatchOperation() (*CheckSequencePropertyBatchOperation, bool) {
34642	return nil, false
34643}
34644
34645// AsCheckValuePropertyBatchOperation is the BasicPropertyBatchOperation implementation for PutPropertyBatchOperation.
34646func (ppbo PutPropertyBatchOperation) AsCheckValuePropertyBatchOperation() (*CheckValuePropertyBatchOperation, bool) {
34647	return nil, false
34648}
34649
34650// AsDeletePropertyBatchOperation is the BasicPropertyBatchOperation implementation for PutPropertyBatchOperation.
34651func (ppbo PutPropertyBatchOperation) AsDeletePropertyBatchOperation() (*DeletePropertyBatchOperation, bool) {
34652	return nil, false
34653}
34654
34655// AsGetPropertyBatchOperation is the BasicPropertyBatchOperation implementation for PutPropertyBatchOperation.
34656func (ppbo PutPropertyBatchOperation) AsGetPropertyBatchOperation() (*GetPropertyBatchOperation, bool) {
34657	return nil, false
34658}
34659
34660// AsPutPropertyBatchOperation is the BasicPropertyBatchOperation implementation for PutPropertyBatchOperation.
34661func (ppbo PutPropertyBatchOperation) AsPutPropertyBatchOperation() (*PutPropertyBatchOperation, bool) {
34662	return &ppbo, true
34663}
34664
34665// AsPropertyBatchOperation is the BasicPropertyBatchOperation implementation for PutPropertyBatchOperation.
34666func (ppbo PutPropertyBatchOperation) AsPropertyBatchOperation() (*PropertyBatchOperation, bool) {
34667	return nil, false
34668}
34669
34670// AsBasicPropertyBatchOperation is the BasicPropertyBatchOperation implementation for PutPropertyBatchOperation.
34671func (ppbo PutPropertyBatchOperation) AsBasicPropertyBatchOperation() (BasicPropertyBatchOperation, bool) {
34672	return &ppbo, true
34673}
34674
34675// UnmarshalJSON is the custom unmarshaler for PutPropertyBatchOperation struct.
34676func (ppbo *PutPropertyBatchOperation) UnmarshalJSON(body []byte) error {
34677	var m map[string]*json.RawMessage
34678	err := json.Unmarshal(body, &m)
34679	if err != nil {
34680		return err
34681	}
34682	for k, v := range m {
34683		switch k {
34684		case "Value":
34685			if v != nil {
34686				value, err := unmarshalBasicPropertyValue(*v)
34687				if err != nil {
34688					return err
34689				}
34690				ppbo.Value = value
34691			}
34692		case "CustomTypeId":
34693			if v != nil {
34694				var customTypeID string
34695				err = json.Unmarshal(*v, &customTypeID)
34696				if err != nil {
34697					return err
34698				}
34699				ppbo.CustomTypeID = &customTypeID
34700			}
34701		case "PropertyName":
34702			if v != nil {
34703				var propertyName string
34704				err = json.Unmarshal(*v, &propertyName)
34705				if err != nil {
34706					return err
34707				}
34708				ppbo.PropertyName = &propertyName
34709			}
34710		case "Kind":
34711			if v != nil {
34712				var kind KindBasicPropertyBatchOperation
34713				err = json.Unmarshal(*v, &kind)
34714				if err != nil {
34715					return err
34716				}
34717				ppbo.Kind = kind
34718			}
34719		}
34720	}
34721
34722	return nil
34723}
34724
34725// ReconfigurationInformation information about current reconfiguration like phase, type, previous
34726// configuration role of replica and reconfiguration start date time.
34727type ReconfigurationInformation struct {
34728	// PreviousConfigurationRole - Replica role before reconfiguration started. Possible values include: 'ReplicaRoleUnknown', 'ReplicaRoleNone', 'ReplicaRolePrimary', 'ReplicaRoleIdleSecondary', 'ReplicaRoleActiveSecondary'
34729	PreviousConfigurationRole ReplicaRole `json:"PreviousConfigurationRole,omitempty"`
34730	// 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'
34731	ReconfigurationPhase ReconfigurationPhase `json:"ReconfigurationPhase,omitempty"`
34732	// ReconfigurationType - Type of current ongoing reconfiguration. If no reconfiguration is taking place then this value will be "None". Possible values include: 'ReconfigurationTypeUnknown', 'ReconfigurationTypeSwapPrimary', 'ReconfigurationTypeFailover', 'ReconfigurationTypeOther'
34733	ReconfigurationType ReconfigurationType `json:"ReconfigurationType,omitempty"`
34734	// ReconfigurationStartTimeUtc - Start time (in UTC) of the ongoing reconfiguration. If no reconfiguration is taking place then this value will be zero date-time.
34735	ReconfigurationStartTimeUtc *date.Time `json:"ReconfigurationStartTimeUtc,omitempty"`
34736}
34737
34738// RegistryCredential credential information to connect to container registry.
34739type RegistryCredential struct {
34740	// RegistryUserName - The user name to connect to container registry.
34741	RegistryUserName *string `json:"RegistryUserName,omitempty"`
34742	// RegistryPassword - The password for supplied username to connect to container registry.
34743	RegistryPassword *string `json:"RegistryPassword,omitempty"`
34744	// PasswordEncrypted - Indicates that supplied container registry password is encrypted.
34745	PasswordEncrypted *bool `json:"PasswordEncrypted,omitempty"`
34746}
34747
34748// ReliableCollectionsRef specifying this parameter adds support for reliable collections
34749type ReliableCollectionsRef struct {
34750	// Name - Name of ReliableCollection resource. Right now it's not used and you can use any string.
34751	Name *string `json:"name,omitempty"`
34752	// 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.
34753	DoNotPersistState *bool `json:"doNotPersistState,omitempty"`
34754}
34755
34756// RemoteReplicatorAcknowledgementDetail provides various statistics of the acknowledgements that are being
34757// received from the remote replicator.
34758type RemoteReplicatorAcknowledgementDetail struct {
34759	// AverageReceiveDuration - Represents the average duration it takes for the remote replicator to receive an operation.
34760	AverageReceiveDuration *string `json:"AverageReceiveDuration,omitempty"`
34761	// AverageApplyDuration - Represents the average duration it takes for the remote replicator to apply an operation. This usually entails writing the operation to disk.
34762	AverageApplyDuration *string `json:"AverageApplyDuration,omitempty"`
34763	// NotReceivedCount - Represents the number of operations not yet received by a remote replicator.
34764	NotReceivedCount *string `json:"NotReceivedCount,omitempty"`
34765	// ReceivedAndNotAppliedCount - Represents the number of operations received and not yet applied by a remote replicator.
34766	ReceivedAndNotAppliedCount *string `json:"ReceivedAndNotAppliedCount,omitempty"`
34767}
34768
34769// RemoteReplicatorAcknowledgementStatus provides details about the remote replicators from the primary
34770// replicator's point of view.
34771type RemoteReplicatorAcknowledgementStatus struct {
34772	// ReplicationStreamAcknowledgementDetail - Details about the acknowledgements for operations that are part of the replication stream data.
34773	ReplicationStreamAcknowledgementDetail *RemoteReplicatorAcknowledgementDetail `json:"ReplicationStreamAcknowledgementDetail,omitempty"`
34774	// CopyStreamAcknowledgementDetail - Details about the acknowledgements for operations that are part of the copy stream data.
34775	CopyStreamAcknowledgementDetail *RemoteReplicatorAcknowledgementDetail `json:"CopyStreamAcknowledgementDetail,omitempty"`
34776}
34777
34778// RemoteReplicatorStatus represents the state of the secondary replicator from the primary replicator’s
34779// point of view.
34780type RemoteReplicatorStatus struct {
34781	// ReplicaID - Represents the replica ID of the remote secondary replicator.
34782	ReplicaID *string `json:"ReplicaId,omitempty"`
34783	// LastAcknowledgementProcessedTimeUtc - The last timestamp (in UTC) when an acknowledgement from the secondary replicator was processed on the primary.
34784	// UTC 0 represents an invalid value, indicating that no acknowledgement messages were ever processed.
34785	LastAcknowledgementProcessedTimeUtc *date.Time `json:"LastAcknowledgementProcessedTimeUtc,omitempty"`
34786	// LastReceivedReplicationSequenceNumber - The highest replication operation sequence number that the secondary has received from the primary.
34787	LastReceivedReplicationSequenceNumber *string `json:"LastReceivedReplicationSequenceNumber,omitempty"`
34788	// LastAppliedReplicationSequenceNumber - The highest replication operation sequence number that the secondary has applied to its state.
34789	LastAppliedReplicationSequenceNumber *string `json:"LastAppliedReplicationSequenceNumber,omitempty"`
34790	// IsInBuild - A value that indicates whether the secondary replica is in the process of being built.
34791	IsInBuild *bool `json:"IsInBuild,omitempty"`
34792	// LastReceivedCopySequenceNumber - The highest copy operation sequence number that the secondary has received from the primary.
34793	// A value of -1 implies that the secondary has received all copy operations.
34794	LastReceivedCopySequenceNumber *string `json:"LastReceivedCopySequenceNumber,omitempty"`
34795	// LastAppliedCopySequenceNumber - The highest copy operation sequence number that the secondary has applied to its state.
34796	// A value of -1 implies that the secondary has applied all copy operations and the copy process is complete.
34797	LastAppliedCopySequenceNumber *string `json:"LastAppliedCopySequenceNumber,omitempty"`
34798	// RemoteReplicatorAcknowledgementStatus - Represents the acknowledgment status for the remote secondary replicator.
34799	RemoteReplicatorAcknowledgementStatus *RemoteReplicatorAcknowledgementStatus `json:"RemoteReplicatorAcknowledgementStatus,omitempty"`
34800}
34801
34802// BasicRepairImpactDescriptionBase describes the expected impact of executing a repair task.
34803//
34804// This type supports the Service Fabric platform; it is not meant to be used directly from your code.
34805type BasicRepairImpactDescriptionBase interface {
34806	AsNodeRepairImpactDescription() (*NodeRepairImpactDescription, bool)
34807	AsRepairImpactDescriptionBase() (*RepairImpactDescriptionBase, bool)
34808}
34809
34810// RepairImpactDescriptionBase describes the expected impact of executing a repair task.
34811//
34812// This type supports the Service Fabric platform; it is not meant to be used directly from your code.
34813type RepairImpactDescriptionBase struct {
34814	// Kind - Possible values include: 'KindBasicRepairImpactDescriptionBaseKindRepairImpactDescriptionBase', 'KindBasicRepairImpactDescriptionBaseKindNode'
34815	Kind KindBasicRepairImpactDescriptionBase `json:"Kind,omitempty"`
34816}
34817
34818func unmarshalBasicRepairImpactDescriptionBase(body []byte) (BasicRepairImpactDescriptionBase, error) {
34819	var m map[string]interface{}
34820	err := json.Unmarshal(body, &m)
34821	if err != nil {
34822		return nil, err
34823	}
34824
34825	switch m["Kind"] {
34826	case string(KindBasicRepairImpactDescriptionBaseKindNode):
34827		var nrid NodeRepairImpactDescription
34828		err := json.Unmarshal(body, &nrid)
34829		return nrid, err
34830	default:
34831		var ridb RepairImpactDescriptionBase
34832		err := json.Unmarshal(body, &ridb)
34833		return ridb, err
34834	}
34835}
34836func unmarshalBasicRepairImpactDescriptionBaseArray(body []byte) ([]BasicRepairImpactDescriptionBase, error) {
34837	var rawMessages []*json.RawMessage
34838	err := json.Unmarshal(body, &rawMessages)
34839	if err != nil {
34840		return nil, err
34841	}
34842
34843	ridbArray := make([]BasicRepairImpactDescriptionBase, len(rawMessages))
34844
34845	for index, rawMessage := range rawMessages {
34846		ridb, err := unmarshalBasicRepairImpactDescriptionBase(*rawMessage)
34847		if err != nil {
34848			return nil, err
34849		}
34850		ridbArray[index] = ridb
34851	}
34852	return ridbArray, nil
34853}
34854
34855// MarshalJSON is the custom marshaler for RepairImpactDescriptionBase.
34856func (ridb RepairImpactDescriptionBase) MarshalJSON() ([]byte, error) {
34857	ridb.Kind = KindBasicRepairImpactDescriptionBaseKindRepairImpactDescriptionBase
34858	objectMap := make(map[string]interface{})
34859	if ridb.Kind != "" {
34860		objectMap["Kind"] = ridb.Kind
34861	}
34862	return json.Marshal(objectMap)
34863}
34864
34865// AsNodeRepairImpactDescription is the BasicRepairImpactDescriptionBase implementation for RepairImpactDescriptionBase.
34866func (ridb RepairImpactDescriptionBase) AsNodeRepairImpactDescription() (*NodeRepairImpactDescription, bool) {
34867	return nil, false
34868}
34869
34870// AsRepairImpactDescriptionBase is the BasicRepairImpactDescriptionBase implementation for RepairImpactDescriptionBase.
34871func (ridb RepairImpactDescriptionBase) AsRepairImpactDescriptionBase() (*RepairImpactDescriptionBase, bool) {
34872	return &ridb, true
34873}
34874
34875// AsBasicRepairImpactDescriptionBase is the BasicRepairImpactDescriptionBase implementation for RepairImpactDescriptionBase.
34876func (ridb RepairImpactDescriptionBase) AsBasicRepairImpactDescriptionBase() (BasicRepairImpactDescriptionBase, bool) {
34877	return &ridb, true
34878}
34879
34880// BasicRepairTargetDescriptionBase describes the entities targeted by a repair action.
34881//
34882// This type supports the Service Fabric platform; it is not meant to be used directly from your code.
34883type BasicRepairTargetDescriptionBase interface {
34884	AsNodeRepairTargetDescription() (*NodeRepairTargetDescription, bool)
34885	AsRepairTargetDescriptionBase() (*RepairTargetDescriptionBase, bool)
34886}
34887
34888// RepairTargetDescriptionBase describes the entities targeted by a repair action.
34889//
34890// This type supports the Service Fabric platform; it is not meant to be used directly from your code.
34891type RepairTargetDescriptionBase struct {
34892	// Kind - Possible values include: 'KindBasicRepairTargetDescriptionBaseKindRepairTargetDescriptionBase', 'KindBasicRepairTargetDescriptionBaseKindNode'
34893	Kind KindBasicRepairTargetDescriptionBase `json:"Kind,omitempty"`
34894}
34895
34896func unmarshalBasicRepairTargetDescriptionBase(body []byte) (BasicRepairTargetDescriptionBase, error) {
34897	var m map[string]interface{}
34898	err := json.Unmarshal(body, &m)
34899	if err != nil {
34900		return nil, err
34901	}
34902
34903	switch m["Kind"] {
34904	case string(KindBasicRepairTargetDescriptionBaseKindNode):
34905		var nrtd NodeRepairTargetDescription
34906		err := json.Unmarshal(body, &nrtd)
34907		return nrtd, err
34908	default:
34909		var rtdb RepairTargetDescriptionBase
34910		err := json.Unmarshal(body, &rtdb)
34911		return rtdb, err
34912	}
34913}
34914func unmarshalBasicRepairTargetDescriptionBaseArray(body []byte) ([]BasicRepairTargetDescriptionBase, error) {
34915	var rawMessages []*json.RawMessage
34916	err := json.Unmarshal(body, &rawMessages)
34917	if err != nil {
34918		return nil, err
34919	}
34920
34921	rtdbArray := make([]BasicRepairTargetDescriptionBase, len(rawMessages))
34922
34923	for index, rawMessage := range rawMessages {
34924		rtdb, err := unmarshalBasicRepairTargetDescriptionBase(*rawMessage)
34925		if err != nil {
34926			return nil, err
34927		}
34928		rtdbArray[index] = rtdb
34929	}
34930	return rtdbArray, nil
34931}
34932
34933// MarshalJSON is the custom marshaler for RepairTargetDescriptionBase.
34934func (rtdb RepairTargetDescriptionBase) MarshalJSON() ([]byte, error) {
34935	rtdb.Kind = KindBasicRepairTargetDescriptionBaseKindRepairTargetDescriptionBase
34936	objectMap := make(map[string]interface{})
34937	if rtdb.Kind != "" {
34938		objectMap["Kind"] = rtdb.Kind
34939	}
34940	return json.Marshal(objectMap)
34941}
34942
34943// AsNodeRepairTargetDescription is the BasicRepairTargetDescriptionBase implementation for RepairTargetDescriptionBase.
34944func (rtdb RepairTargetDescriptionBase) AsNodeRepairTargetDescription() (*NodeRepairTargetDescription, bool) {
34945	return nil, false
34946}
34947
34948// AsRepairTargetDescriptionBase is the BasicRepairTargetDescriptionBase implementation for RepairTargetDescriptionBase.
34949func (rtdb RepairTargetDescriptionBase) AsRepairTargetDescriptionBase() (*RepairTargetDescriptionBase, bool) {
34950	return &rtdb, true
34951}
34952
34953// AsBasicRepairTargetDescriptionBase is the BasicRepairTargetDescriptionBase implementation for RepairTargetDescriptionBase.
34954func (rtdb RepairTargetDescriptionBase) AsBasicRepairTargetDescriptionBase() (BasicRepairTargetDescriptionBase, bool) {
34955	return &rtdb, true
34956}
34957
34958// RepairTask represents a repair task, which includes information about what kind of repair was requested,
34959// what its progress is, and what its final result was.
34960//
34961// This type supports the Service Fabric platform; it is not meant to be used directly from your code.
34962type RepairTask struct {
34963	// TaskID - The ID of the repair task.
34964	TaskID *string `json:"TaskId,omitempty"`
34965	// Version - The version of the repair task.
34966	// When creating a new repair task, the version must be set to zero.  When updating a repair task,
34967	// the version is used for optimistic concurrency checks.  If the version is
34968	// set to zero, the update will not check for write conflicts.  If the version is set to a non-zero value, then the
34969	// update will only succeed if the actual current version of the repair task matches this value.
34970	Version *string `json:"Version,omitempty"`
34971	// Description - A description of the purpose of the repair task, or other informational details.
34972	// May be set when the repair task is created, and is immutable once set.
34973	Description *string `json:"Description,omitempty"`
34974	// 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'
34975	State State `json:"State,omitempty"`
34976	// Flags - A bitwise-OR of the following values, which gives additional details about the status of the repair task.
34977	// - 1 - Cancellation of the repair has been requested
34978	// - 2 - Abort of the repair has been requested
34979	// - 4 - Approval of the repair was forced via client request
34980	Flags *int32 `json:"Flags,omitempty"`
34981	// Action - The requested repair action. Must be specified when the repair task is created, and is immutable once set.
34982	Action *string `json:"Action,omitempty"`
34983	// 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.
34984	// May be set when the repair task is created, and is immutable once set.
34985	Target BasicRepairTargetDescriptionBase `json:"Target,omitempty"`
34986	// Executor - The name of the repair executor. Must be specified in Claimed and later states, and is immutable once set.
34987	Executor *string `json:"Executor,omitempty"`
34988	// ExecutorData - A data string that the repair executor can use to store its internal state.
34989	ExecutorData *string `json:"ExecutorData,omitempty"`
34990	// 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.
34991	// Impact must be specified by the repair executor when transitioning to the Preparing state, and is immutable once set.
34992	Impact BasicRepairImpactDescriptionBase `json:"Impact,omitempty"`
34993	// 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'
34994	ResultStatus ResultStatus `json:"ResultStatus,omitempty"`
34995	// ResultCode - A numeric value providing additional details about the result of the repair task execution.
34996	// May be specified in the Restoring and later states, and is immutable once set.
34997	ResultCode *int32 `json:"ResultCode,omitempty"`
34998	// ResultDetails - A string providing additional details about the result of the repair task execution.
34999	// May be specified in the Restoring and later states, and is immutable once set.
35000	ResultDetails *string `json:"ResultDetails,omitempty"`
35001	// History - An object that contains timestamps of the repair task's state transitions.
35002	// These timestamps are updated by the system, and cannot be directly modified.
35003	History *RepairTaskHistory `json:"History,omitempty"`
35004	// 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'
35005	PreparingHealthCheckState RepairTaskHealthCheckState `json:"PreparingHealthCheckState,omitempty"`
35006	// 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'
35007	RestoringHealthCheckState RepairTaskHealthCheckState `json:"RestoringHealthCheckState,omitempty"`
35008	// PerformPreparingHealthCheck - A value to determine if health checks will be performed when the repair task enters the Preparing state.
35009	PerformPreparingHealthCheck *bool `json:"PerformPreparingHealthCheck,omitempty"`
35010	// PerformRestoringHealthCheck - A value to determine if health checks will be performed when the repair task enters the Restoring state.
35011	PerformRestoringHealthCheck *bool `json:"PerformRestoringHealthCheck,omitempty"`
35012}
35013
35014// UnmarshalJSON is the custom unmarshaler for RepairTask struct.
35015func (rt *RepairTask) UnmarshalJSON(body []byte) error {
35016	var m map[string]*json.RawMessage
35017	err := json.Unmarshal(body, &m)
35018	if err != nil {
35019		return err
35020	}
35021	for k, v := range m {
35022		switch k {
35023		case "TaskId":
35024			if v != nil {
35025				var taskID string
35026				err = json.Unmarshal(*v, &taskID)
35027				if err != nil {
35028					return err
35029				}
35030				rt.TaskID = &taskID
35031			}
35032		case "Version":
35033			if v != nil {
35034				var version string
35035				err = json.Unmarshal(*v, &version)
35036				if err != nil {
35037					return err
35038				}
35039				rt.Version = &version
35040			}
35041		case "Description":
35042			if v != nil {
35043				var description string
35044				err = json.Unmarshal(*v, &description)
35045				if err != nil {
35046					return err
35047				}
35048				rt.Description = &description
35049			}
35050		case "State":
35051			if v != nil {
35052				var state State
35053				err = json.Unmarshal(*v, &state)
35054				if err != nil {
35055					return err
35056				}
35057				rt.State = state
35058			}
35059		case "Flags":
35060			if v != nil {
35061				var flags int32
35062				err = json.Unmarshal(*v, &flags)
35063				if err != nil {
35064					return err
35065				}
35066				rt.Flags = &flags
35067			}
35068		case "Action":
35069			if v != nil {
35070				var action string
35071				err = json.Unmarshal(*v, &action)
35072				if err != nil {
35073					return err
35074				}
35075				rt.Action = &action
35076			}
35077		case "Target":
35078			if v != nil {
35079				target, err := unmarshalBasicRepairTargetDescriptionBase(*v)
35080				if err != nil {
35081					return err
35082				}
35083				rt.Target = target
35084			}
35085		case "Executor":
35086			if v != nil {
35087				var executor string
35088				err = json.Unmarshal(*v, &executor)
35089				if err != nil {
35090					return err
35091				}
35092				rt.Executor = &executor
35093			}
35094		case "ExecutorData":
35095			if v != nil {
35096				var executorData string
35097				err = json.Unmarshal(*v, &executorData)
35098				if err != nil {
35099					return err
35100				}
35101				rt.ExecutorData = &executorData
35102			}
35103		case "Impact":
35104			if v != nil {
35105				impact, err := unmarshalBasicRepairImpactDescriptionBase(*v)
35106				if err != nil {
35107					return err
35108				}
35109				rt.Impact = impact
35110			}
35111		case "ResultStatus":
35112			if v != nil {
35113				var resultStatus ResultStatus
35114				err = json.Unmarshal(*v, &resultStatus)
35115				if err != nil {
35116					return err
35117				}
35118				rt.ResultStatus = resultStatus
35119			}
35120		case "ResultCode":
35121			if v != nil {
35122				var resultCode int32
35123				err = json.Unmarshal(*v, &resultCode)
35124				if err != nil {
35125					return err
35126				}
35127				rt.ResultCode = &resultCode
35128			}
35129		case "ResultDetails":
35130			if v != nil {
35131				var resultDetails string
35132				err = json.Unmarshal(*v, &resultDetails)
35133				if err != nil {
35134					return err
35135				}
35136				rt.ResultDetails = &resultDetails
35137			}
35138		case "History":
35139			if v != nil {
35140				var history RepairTaskHistory
35141				err = json.Unmarshal(*v, &history)
35142				if err != nil {
35143					return err
35144				}
35145				rt.History = &history
35146			}
35147		case "PreparingHealthCheckState":
35148			if v != nil {
35149				var preparingHealthCheckState RepairTaskHealthCheckState
35150				err = json.Unmarshal(*v, &preparingHealthCheckState)
35151				if err != nil {
35152					return err
35153				}
35154				rt.PreparingHealthCheckState = preparingHealthCheckState
35155			}
35156		case "RestoringHealthCheckState":
35157			if v != nil {
35158				var restoringHealthCheckState RepairTaskHealthCheckState
35159				err = json.Unmarshal(*v, &restoringHealthCheckState)
35160				if err != nil {
35161					return err
35162				}
35163				rt.RestoringHealthCheckState = restoringHealthCheckState
35164			}
35165		case "PerformPreparingHealthCheck":
35166			if v != nil {
35167				var performPreparingHealthCheck bool
35168				err = json.Unmarshal(*v, &performPreparingHealthCheck)
35169				if err != nil {
35170					return err
35171				}
35172				rt.PerformPreparingHealthCheck = &performPreparingHealthCheck
35173			}
35174		case "PerformRestoringHealthCheck":
35175			if v != nil {
35176				var performRestoringHealthCheck bool
35177				err = json.Unmarshal(*v, &performRestoringHealthCheck)
35178				if err != nil {
35179					return err
35180				}
35181				rt.PerformRestoringHealthCheck = &performRestoringHealthCheck
35182			}
35183		}
35184	}
35185
35186	return nil
35187}
35188
35189// RepairTaskApproveDescription describes a request for forced approval of a repair task.
35190//
35191// This type supports the Service Fabric platform; it is not meant to be used directly from your code.
35192type RepairTaskApproveDescription struct {
35193	// TaskID - The ID of the repair task.
35194	TaskID *string `json:"TaskId,omitempty"`
35195	// 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.
35196	Version *string `json:"Version,omitempty"`
35197}
35198
35199// RepairTaskCancelDescription describes a request to cancel a repair task.
35200//
35201// This type supports the Service Fabric platform; it is not meant to be used directly from your code.
35202type RepairTaskCancelDescription struct {
35203	// TaskID - The ID of the repair task.
35204	TaskID *string `json:"TaskId,omitempty"`
35205	// 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.
35206	Version *string `json:"Version,omitempty"`
35207	// 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.
35208	RequestAbort *bool `json:"RequestAbort,omitempty"`
35209}
35210
35211// RepairTaskDeleteDescription describes a request to delete a completed repair task.
35212//
35213// This type supports the Service Fabric platform; it is not meant to be used directly from your code.
35214type RepairTaskDeleteDescription struct {
35215	// TaskID - The ID of the completed repair task to be deleted.
35216	TaskID *string `json:"TaskId,omitempty"`
35217	// 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.
35218	Version *string `json:"Version,omitempty"`
35219}
35220
35221// RepairTaskHistory a record of the times when the repair task entered each state.
35222//
35223// This type supports the Service Fabric platform; it is not meant to be used directly from your code.
35224type RepairTaskHistory struct {
35225	// CreatedUtcTimestamp - The time when the repair task entered the Created state.
35226	CreatedUtcTimestamp *date.Time `json:"CreatedUtcTimestamp,omitempty"`
35227	// ClaimedUtcTimestamp - The time when the repair task entered the Claimed state.
35228	ClaimedUtcTimestamp *date.Time `json:"ClaimedUtcTimestamp,omitempty"`
35229	// PreparingUtcTimestamp - The time when the repair task entered the Preparing state.
35230	PreparingUtcTimestamp *date.Time `json:"PreparingUtcTimestamp,omitempty"`
35231	// ApprovedUtcTimestamp - The time when the repair task entered the Approved state
35232	ApprovedUtcTimestamp *date.Time `json:"ApprovedUtcTimestamp,omitempty"`
35233	// ExecutingUtcTimestamp - The time when the repair task entered the Executing state
35234	ExecutingUtcTimestamp *date.Time `json:"ExecutingUtcTimestamp,omitempty"`
35235	// RestoringUtcTimestamp - The time when the repair task entered the Restoring state
35236	RestoringUtcTimestamp *date.Time `json:"RestoringUtcTimestamp,omitempty"`
35237	// CompletedUtcTimestamp - The time when the repair task entered the Completed state
35238	CompletedUtcTimestamp *date.Time `json:"CompletedUtcTimestamp,omitempty"`
35239	// PreparingHealthCheckStartUtcTimestamp - The time when the repair task started the health check in the Preparing state.
35240	PreparingHealthCheckStartUtcTimestamp *date.Time `json:"PreparingHealthCheckStartUtcTimestamp,omitempty"`
35241	// PreparingHealthCheckEndUtcTimestamp - The time when the repair task completed the health check in the Preparing state.
35242	PreparingHealthCheckEndUtcTimestamp *date.Time `json:"PreparingHealthCheckEndUtcTimestamp,omitempty"`
35243	// RestoringHealthCheckStartUtcTimestamp - The time when the repair task started the health check in the Restoring state.
35244	RestoringHealthCheckStartUtcTimestamp *date.Time `json:"RestoringHealthCheckStartUtcTimestamp,omitempty"`
35245	// RestoringHealthCheckEndUtcTimestamp - The time when the repair task completed the health check in the Restoring state.
35246	RestoringHealthCheckEndUtcTimestamp *date.Time `json:"RestoringHealthCheckEndUtcTimestamp,omitempty"`
35247}
35248
35249// RepairTaskUpdateHealthPolicyDescription describes a request to update the health policy of a repair
35250// task.
35251//
35252// This type supports the Service Fabric platform; it is not meant to be used directly from your code.
35253type RepairTaskUpdateHealthPolicyDescription struct {
35254	// TaskID - The ID of the repair task to be updated.
35255	TaskID *string `json:"TaskId,omitempty"`
35256	// 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.
35257	Version *string `json:"Version,omitempty"`
35258	// 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.
35259	PerformPreparingHealthCheck *bool `json:"PerformPreparingHealthCheck,omitempty"`
35260	// 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.
35261	PerformRestoringHealthCheck *bool `json:"PerformRestoringHealthCheck,omitempty"`
35262}
35263
35264// RepairTaskUpdateInfo describes the result of an operation that created or updated a repair task.
35265//
35266// This type supports the Service Fabric platform; it is not meant to be used directly from your code.
35267type RepairTaskUpdateInfo struct {
35268	autorest.Response `json:"-"`
35269	// Version - The new version of the repair task.
35270	Version *string `json:"Version,omitempty"`
35271}
35272
35273// BasicReplicaEvent represents the base for all Replica Events.
35274type BasicReplicaEvent interface {
35275	AsStatefulReplicaNewHealthReportEvent() (*StatefulReplicaNewHealthReportEvent, bool)
35276	AsStatefulReplicaHealthReportExpiredEvent() (*StatefulReplicaHealthReportExpiredEvent, bool)
35277	AsStatelessReplicaNewHealthReportEvent() (*StatelessReplicaNewHealthReportEvent, bool)
35278	AsStatelessReplicaHealthReportExpiredEvent() (*StatelessReplicaHealthReportExpiredEvent, bool)
35279	AsChaosReplicaRemovalScheduledEvent() (*ChaosReplicaRemovalScheduledEvent, bool)
35280	AsChaosReplicaRestartScheduledEvent() (*ChaosReplicaRestartScheduledEvent, bool)
35281	AsReplicaEvent() (*ReplicaEvent, bool)
35282}
35283
35284// ReplicaEvent represents the base for all Replica Events.
35285type ReplicaEvent struct {
35286	// 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.
35287	PartitionID *uuid.UUID `json:"PartitionId,omitempty"`
35288	// 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.
35289	ReplicaID *int64 `json:"ReplicaId,omitempty"`
35290	// EventInstanceID - The identifier for the FabricEvent instance.
35291	EventInstanceID *uuid.UUID `json:"EventInstanceId,omitempty"`
35292	// Category - The category of event.
35293	Category *string `json:"Category,omitempty"`
35294	// TimeStamp - The time event was logged.
35295	TimeStamp *date.Time `json:"TimeStamp,omitempty"`
35296	// HasCorrelatedEvents - Shows there is existing related events available.
35297	HasCorrelatedEvents *bool `json:"HasCorrelatedEvents,omitempty"`
35298	// 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'
35299	Kind KindBasicFabricEvent `json:"Kind,omitempty"`
35300}
35301
35302func unmarshalBasicReplicaEvent(body []byte) (BasicReplicaEvent, error) {
35303	var m map[string]interface{}
35304	err := json.Unmarshal(body, &m)
35305	if err != nil {
35306		return nil, err
35307	}
35308
35309	switch m["Kind"] {
35310	case string(KindStatefulReplicaNewHealthReport):
35311		var srnhre StatefulReplicaNewHealthReportEvent
35312		err := json.Unmarshal(body, &srnhre)
35313		return srnhre, err
35314	case string(KindStatefulReplicaHealthReportExpired):
35315		var srhree StatefulReplicaHealthReportExpiredEvent
35316		err := json.Unmarshal(body, &srhree)
35317		return srhree, err
35318	case string(KindStatelessReplicaNewHealthReport):
35319		var srnhre StatelessReplicaNewHealthReportEvent
35320		err := json.Unmarshal(body, &srnhre)
35321		return srnhre, err
35322	case string(KindStatelessReplicaHealthReportExpired):
35323		var srhree StatelessReplicaHealthReportExpiredEvent
35324		err := json.Unmarshal(body, &srhree)
35325		return srhree, err
35326	case string(KindChaosReplicaRemovalScheduled):
35327		var crrse ChaosReplicaRemovalScheduledEvent
35328		err := json.Unmarshal(body, &crrse)
35329		return crrse, err
35330	case string(KindChaosReplicaRestartScheduled):
35331		var crrse ChaosReplicaRestartScheduledEvent
35332		err := json.Unmarshal(body, &crrse)
35333		return crrse, err
35334	default:
35335		var re ReplicaEvent
35336		err := json.Unmarshal(body, &re)
35337		return re, err
35338	}
35339}
35340func unmarshalBasicReplicaEventArray(body []byte) ([]BasicReplicaEvent, error) {
35341	var rawMessages []*json.RawMessage
35342	err := json.Unmarshal(body, &rawMessages)
35343	if err != nil {
35344		return nil, err
35345	}
35346
35347	reArray := make([]BasicReplicaEvent, len(rawMessages))
35348
35349	for index, rawMessage := range rawMessages {
35350		re, err := unmarshalBasicReplicaEvent(*rawMessage)
35351		if err != nil {
35352			return nil, err
35353		}
35354		reArray[index] = re
35355	}
35356	return reArray, nil
35357}
35358
35359// MarshalJSON is the custom marshaler for ReplicaEvent.
35360func (re ReplicaEvent) MarshalJSON() ([]byte, error) {
35361	re.Kind = KindReplicaEvent
35362	objectMap := make(map[string]interface{})
35363	if re.PartitionID != nil {
35364		objectMap["PartitionId"] = re.PartitionID
35365	}
35366	if re.ReplicaID != nil {
35367		objectMap["ReplicaId"] = re.ReplicaID
35368	}
35369	if re.EventInstanceID != nil {
35370		objectMap["EventInstanceId"] = re.EventInstanceID
35371	}
35372	if re.Category != nil {
35373		objectMap["Category"] = re.Category
35374	}
35375	if re.TimeStamp != nil {
35376		objectMap["TimeStamp"] = re.TimeStamp
35377	}
35378	if re.HasCorrelatedEvents != nil {
35379		objectMap["HasCorrelatedEvents"] = re.HasCorrelatedEvents
35380	}
35381	if re.Kind != "" {
35382		objectMap["Kind"] = re.Kind
35383	}
35384	return json.Marshal(objectMap)
35385}
35386
35387// AsApplicationEvent is the BasicFabricEvent implementation for ReplicaEvent.
35388func (re ReplicaEvent) AsApplicationEvent() (*ApplicationEvent, bool) {
35389	return nil, false
35390}
35391
35392// AsBasicApplicationEvent is the BasicFabricEvent implementation for ReplicaEvent.
35393func (re ReplicaEvent) AsBasicApplicationEvent() (BasicApplicationEvent, bool) {
35394	return nil, false
35395}
35396
35397// AsClusterEvent is the BasicFabricEvent implementation for ReplicaEvent.
35398func (re ReplicaEvent) AsClusterEvent() (*ClusterEvent, bool) {
35399	return nil, false
35400}
35401
35402// AsBasicClusterEvent is the BasicFabricEvent implementation for ReplicaEvent.
35403func (re ReplicaEvent) AsBasicClusterEvent() (BasicClusterEvent, bool) {
35404	return nil, false
35405}
35406
35407// AsContainerInstanceEvent is the BasicFabricEvent implementation for ReplicaEvent.
35408func (re ReplicaEvent) AsContainerInstanceEvent() (*ContainerInstanceEvent, bool) {
35409	return nil, false
35410}
35411
35412// AsNodeEvent is the BasicFabricEvent implementation for ReplicaEvent.
35413func (re ReplicaEvent) AsNodeEvent() (*NodeEvent, bool) {
35414	return nil, false
35415}
35416
35417// AsBasicNodeEvent is the BasicFabricEvent implementation for ReplicaEvent.
35418func (re ReplicaEvent) AsBasicNodeEvent() (BasicNodeEvent, bool) {
35419	return nil, false
35420}
35421
35422// AsPartitionAnalysisEvent is the BasicFabricEvent implementation for ReplicaEvent.
35423func (re ReplicaEvent) AsPartitionAnalysisEvent() (*PartitionAnalysisEvent, bool) {
35424	return nil, false
35425}
35426
35427// AsBasicPartitionAnalysisEvent is the BasicFabricEvent implementation for ReplicaEvent.
35428func (re ReplicaEvent) AsBasicPartitionAnalysisEvent() (BasicPartitionAnalysisEvent, bool) {
35429	return nil, false
35430}
35431
35432// AsPartitionEvent is the BasicFabricEvent implementation for ReplicaEvent.
35433func (re ReplicaEvent) AsPartitionEvent() (*PartitionEvent, bool) {
35434	return nil, false
35435}
35436
35437// AsBasicPartitionEvent is the BasicFabricEvent implementation for ReplicaEvent.
35438func (re ReplicaEvent) AsBasicPartitionEvent() (BasicPartitionEvent, bool) {
35439	return nil, false
35440}
35441
35442// AsReplicaEvent is the BasicFabricEvent implementation for ReplicaEvent.
35443func (re ReplicaEvent) AsReplicaEvent() (*ReplicaEvent, bool) {
35444	return &re, true
35445}
35446
35447// AsBasicReplicaEvent is the BasicFabricEvent implementation for ReplicaEvent.
35448func (re ReplicaEvent) AsBasicReplicaEvent() (BasicReplicaEvent, bool) {
35449	return &re, true
35450}
35451
35452// AsServiceEvent is the BasicFabricEvent implementation for ReplicaEvent.
35453func (re ReplicaEvent) AsServiceEvent() (*ServiceEvent, bool) {
35454	return nil, false
35455}
35456
35457// AsBasicServiceEvent is the BasicFabricEvent implementation for ReplicaEvent.
35458func (re ReplicaEvent) AsBasicServiceEvent() (BasicServiceEvent, bool) {
35459	return nil, false
35460}
35461
35462// AsApplicationCreatedEvent is the BasicFabricEvent implementation for ReplicaEvent.
35463func (re ReplicaEvent) AsApplicationCreatedEvent() (*ApplicationCreatedEvent, bool) {
35464	return nil, false
35465}
35466
35467// AsApplicationDeletedEvent is the BasicFabricEvent implementation for ReplicaEvent.
35468func (re ReplicaEvent) AsApplicationDeletedEvent() (*ApplicationDeletedEvent, bool) {
35469	return nil, false
35470}
35471
35472// AsApplicationNewHealthReportEvent is the BasicFabricEvent implementation for ReplicaEvent.
35473func (re ReplicaEvent) AsApplicationNewHealthReportEvent() (*ApplicationNewHealthReportEvent, bool) {
35474	return nil, false
35475}
35476
35477// AsApplicationHealthReportExpiredEvent is the BasicFabricEvent implementation for ReplicaEvent.
35478func (re ReplicaEvent) AsApplicationHealthReportExpiredEvent() (*ApplicationHealthReportExpiredEvent, bool) {
35479	return nil, false
35480}
35481
35482// AsApplicationUpgradeCompletedEvent is the BasicFabricEvent implementation for ReplicaEvent.
35483func (re ReplicaEvent) AsApplicationUpgradeCompletedEvent() (*ApplicationUpgradeCompletedEvent, bool) {
35484	return nil, false
35485}
35486
35487// AsApplicationUpgradeDomainCompletedEvent is the BasicFabricEvent implementation for ReplicaEvent.
35488func (re ReplicaEvent) AsApplicationUpgradeDomainCompletedEvent() (*ApplicationUpgradeDomainCompletedEvent, bool) {
35489	return nil, false
35490}
35491
35492// AsApplicationUpgradeRollbackCompletedEvent is the BasicFabricEvent implementation for ReplicaEvent.
35493func (re ReplicaEvent) AsApplicationUpgradeRollbackCompletedEvent() (*ApplicationUpgradeRollbackCompletedEvent, bool) {
35494	return nil, false
35495}
35496
35497// AsApplicationUpgradeRollbackStartedEvent is the BasicFabricEvent implementation for ReplicaEvent.
35498func (re ReplicaEvent) AsApplicationUpgradeRollbackStartedEvent() (*ApplicationUpgradeRollbackStartedEvent, bool) {
35499	return nil, false
35500}
35501
35502// AsApplicationUpgradeStartedEvent is the BasicFabricEvent implementation for ReplicaEvent.
35503func (re ReplicaEvent) AsApplicationUpgradeStartedEvent() (*ApplicationUpgradeStartedEvent, bool) {
35504	return nil, false
35505}
35506
35507// AsDeployedApplicationNewHealthReportEvent is the BasicFabricEvent implementation for ReplicaEvent.
35508func (re ReplicaEvent) AsDeployedApplicationNewHealthReportEvent() (*DeployedApplicationNewHealthReportEvent, bool) {
35509	return nil, false
35510}
35511
35512// AsDeployedApplicationHealthReportExpiredEvent is the BasicFabricEvent implementation for ReplicaEvent.
35513func (re ReplicaEvent) AsDeployedApplicationHealthReportExpiredEvent() (*DeployedApplicationHealthReportExpiredEvent, bool) {
35514	return nil, false
35515}
35516
35517// AsApplicationProcessExitedEvent is the BasicFabricEvent implementation for ReplicaEvent.
35518func (re ReplicaEvent) AsApplicationProcessExitedEvent() (*ApplicationProcessExitedEvent, bool) {
35519	return nil, false
35520}
35521
35522// AsApplicationContainerInstanceExitedEvent is the BasicFabricEvent implementation for ReplicaEvent.
35523func (re ReplicaEvent) AsApplicationContainerInstanceExitedEvent() (*ApplicationContainerInstanceExitedEvent, bool) {
35524	return nil, false
35525}
35526
35527// AsNodeAbortedEvent is the BasicFabricEvent implementation for ReplicaEvent.
35528func (re ReplicaEvent) AsNodeAbortedEvent() (*NodeAbortedEvent, bool) {
35529	return nil, false
35530}
35531
35532// AsNodeAddedToClusterEvent is the BasicFabricEvent implementation for ReplicaEvent.
35533func (re ReplicaEvent) AsNodeAddedToClusterEvent() (*NodeAddedToClusterEvent, bool) {
35534	return nil, false
35535}
35536
35537// AsNodeClosedEvent is the BasicFabricEvent implementation for ReplicaEvent.
35538func (re ReplicaEvent) AsNodeClosedEvent() (*NodeClosedEvent, bool) {
35539	return nil, false
35540}
35541
35542// AsNodeDeactivateCompletedEvent is the BasicFabricEvent implementation for ReplicaEvent.
35543func (re ReplicaEvent) AsNodeDeactivateCompletedEvent() (*NodeDeactivateCompletedEvent, bool) {
35544	return nil, false
35545}
35546
35547// AsNodeDeactivateStartedEvent is the BasicFabricEvent implementation for ReplicaEvent.
35548func (re ReplicaEvent) AsNodeDeactivateStartedEvent() (*NodeDeactivateStartedEvent, bool) {
35549	return nil, false
35550}
35551
35552// AsNodeDownEvent is the BasicFabricEvent implementation for ReplicaEvent.
35553func (re ReplicaEvent) AsNodeDownEvent() (*NodeDownEvent, bool) {
35554	return nil, false
35555}
35556
35557// AsNodeNewHealthReportEvent is the BasicFabricEvent implementation for ReplicaEvent.
35558func (re ReplicaEvent) AsNodeNewHealthReportEvent() (*NodeNewHealthReportEvent, bool) {
35559	return nil, false
35560}
35561
35562// AsNodeHealthReportExpiredEvent is the BasicFabricEvent implementation for ReplicaEvent.
35563func (re ReplicaEvent) AsNodeHealthReportExpiredEvent() (*NodeHealthReportExpiredEvent, bool) {
35564	return nil, false
35565}
35566
35567// AsNodeOpenSucceededEvent is the BasicFabricEvent implementation for ReplicaEvent.
35568func (re ReplicaEvent) AsNodeOpenSucceededEvent() (*NodeOpenSucceededEvent, bool) {
35569	return nil, false
35570}
35571
35572// AsNodeOpenFailedEvent is the BasicFabricEvent implementation for ReplicaEvent.
35573func (re ReplicaEvent) AsNodeOpenFailedEvent() (*NodeOpenFailedEvent, bool) {
35574	return nil, false
35575}
35576
35577// AsNodeRemovedFromClusterEvent is the BasicFabricEvent implementation for ReplicaEvent.
35578func (re ReplicaEvent) AsNodeRemovedFromClusterEvent() (*NodeRemovedFromClusterEvent, bool) {
35579	return nil, false
35580}
35581
35582// AsNodeUpEvent is the BasicFabricEvent implementation for ReplicaEvent.
35583func (re ReplicaEvent) AsNodeUpEvent() (*NodeUpEvent, bool) {
35584	return nil, false
35585}
35586
35587// AsPartitionNewHealthReportEvent is the BasicFabricEvent implementation for ReplicaEvent.
35588func (re ReplicaEvent) AsPartitionNewHealthReportEvent() (*PartitionNewHealthReportEvent, bool) {
35589	return nil, false
35590}
35591
35592// AsPartitionHealthReportExpiredEvent is the BasicFabricEvent implementation for ReplicaEvent.
35593func (re ReplicaEvent) AsPartitionHealthReportExpiredEvent() (*PartitionHealthReportExpiredEvent, bool) {
35594	return nil, false
35595}
35596
35597// AsPartitionReconfiguredEvent is the BasicFabricEvent implementation for ReplicaEvent.
35598func (re ReplicaEvent) AsPartitionReconfiguredEvent() (*PartitionReconfiguredEvent, bool) {
35599	return nil, false
35600}
35601
35602// AsPartitionPrimaryMoveAnalysisEvent is the BasicFabricEvent implementation for ReplicaEvent.
35603func (re ReplicaEvent) AsPartitionPrimaryMoveAnalysisEvent() (*PartitionPrimaryMoveAnalysisEvent, bool) {
35604	return nil, false
35605}
35606
35607// AsServiceCreatedEvent is the BasicFabricEvent implementation for ReplicaEvent.
35608func (re ReplicaEvent) AsServiceCreatedEvent() (*ServiceCreatedEvent, bool) {
35609	return nil, false
35610}
35611
35612// AsServiceDeletedEvent is the BasicFabricEvent implementation for ReplicaEvent.
35613func (re ReplicaEvent) AsServiceDeletedEvent() (*ServiceDeletedEvent, bool) {
35614	return nil, false
35615}
35616
35617// AsServiceNewHealthReportEvent is the BasicFabricEvent implementation for ReplicaEvent.
35618func (re ReplicaEvent) AsServiceNewHealthReportEvent() (*ServiceNewHealthReportEvent, bool) {
35619	return nil, false
35620}
35621
35622// AsServiceHealthReportExpiredEvent is the BasicFabricEvent implementation for ReplicaEvent.
35623func (re ReplicaEvent) AsServiceHealthReportExpiredEvent() (*ServiceHealthReportExpiredEvent, bool) {
35624	return nil, false
35625}
35626
35627// AsDeployedServicePackageNewHealthReportEvent is the BasicFabricEvent implementation for ReplicaEvent.
35628func (re ReplicaEvent) AsDeployedServicePackageNewHealthReportEvent() (*DeployedServicePackageNewHealthReportEvent, bool) {
35629	return nil, false
35630}
35631
35632// AsDeployedServicePackageHealthReportExpiredEvent is the BasicFabricEvent implementation for ReplicaEvent.
35633func (re ReplicaEvent) AsDeployedServicePackageHealthReportExpiredEvent() (*DeployedServicePackageHealthReportExpiredEvent, bool) {
35634	return nil, false
35635}
35636
35637// AsStatefulReplicaNewHealthReportEvent is the BasicFabricEvent implementation for ReplicaEvent.
35638func (re ReplicaEvent) AsStatefulReplicaNewHealthReportEvent() (*StatefulReplicaNewHealthReportEvent, bool) {
35639	return nil, false
35640}
35641
35642// AsStatefulReplicaHealthReportExpiredEvent is the BasicFabricEvent implementation for ReplicaEvent.
35643func (re ReplicaEvent) AsStatefulReplicaHealthReportExpiredEvent() (*StatefulReplicaHealthReportExpiredEvent, bool) {
35644	return nil, false
35645}
35646
35647// AsStatelessReplicaNewHealthReportEvent is the BasicFabricEvent implementation for ReplicaEvent.
35648func (re ReplicaEvent) AsStatelessReplicaNewHealthReportEvent() (*StatelessReplicaNewHealthReportEvent, bool) {
35649	return nil, false
35650}
35651
35652// AsStatelessReplicaHealthReportExpiredEvent is the BasicFabricEvent implementation for ReplicaEvent.
35653func (re ReplicaEvent) AsStatelessReplicaHealthReportExpiredEvent() (*StatelessReplicaHealthReportExpiredEvent, bool) {
35654	return nil, false
35655}
35656
35657// AsClusterNewHealthReportEvent is the BasicFabricEvent implementation for ReplicaEvent.
35658func (re ReplicaEvent) AsClusterNewHealthReportEvent() (*ClusterNewHealthReportEvent, bool) {
35659	return nil, false
35660}
35661
35662// AsClusterHealthReportExpiredEvent is the BasicFabricEvent implementation for ReplicaEvent.
35663func (re ReplicaEvent) AsClusterHealthReportExpiredEvent() (*ClusterHealthReportExpiredEvent, bool) {
35664	return nil, false
35665}
35666
35667// AsClusterUpgradeCompletedEvent is the BasicFabricEvent implementation for ReplicaEvent.
35668func (re ReplicaEvent) AsClusterUpgradeCompletedEvent() (*ClusterUpgradeCompletedEvent, bool) {
35669	return nil, false
35670}
35671
35672// AsClusterUpgradeDomainCompletedEvent is the BasicFabricEvent implementation for ReplicaEvent.
35673func (re ReplicaEvent) AsClusterUpgradeDomainCompletedEvent() (*ClusterUpgradeDomainCompletedEvent, bool) {
35674	return nil, false
35675}
35676
35677// AsClusterUpgradeRollbackCompletedEvent is the BasicFabricEvent implementation for ReplicaEvent.
35678func (re ReplicaEvent) AsClusterUpgradeRollbackCompletedEvent() (*ClusterUpgradeRollbackCompletedEvent, bool) {
35679	return nil, false
35680}
35681
35682// AsClusterUpgradeRollbackStartedEvent is the BasicFabricEvent implementation for ReplicaEvent.
35683func (re ReplicaEvent) AsClusterUpgradeRollbackStartedEvent() (*ClusterUpgradeRollbackStartedEvent, bool) {
35684	return nil, false
35685}
35686
35687// AsClusterUpgradeStartedEvent is the BasicFabricEvent implementation for ReplicaEvent.
35688func (re ReplicaEvent) AsClusterUpgradeStartedEvent() (*ClusterUpgradeStartedEvent, bool) {
35689	return nil, false
35690}
35691
35692// AsChaosStoppedEvent is the BasicFabricEvent implementation for ReplicaEvent.
35693func (re ReplicaEvent) AsChaosStoppedEvent() (*ChaosStoppedEvent, bool) {
35694	return nil, false
35695}
35696
35697// AsChaosStartedEvent is the BasicFabricEvent implementation for ReplicaEvent.
35698func (re ReplicaEvent) AsChaosStartedEvent() (*ChaosStartedEvent, bool) {
35699	return nil, false
35700}
35701
35702// AsChaosCodePackageRestartScheduledEvent is the BasicFabricEvent implementation for ReplicaEvent.
35703func (re ReplicaEvent) AsChaosCodePackageRestartScheduledEvent() (*ChaosCodePackageRestartScheduledEvent, bool) {
35704	return nil, false
35705}
35706
35707// AsChaosReplicaRemovalScheduledEvent is the BasicFabricEvent implementation for ReplicaEvent.
35708func (re ReplicaEvent) AsChaosReplicaRemovalScheduledEvent() (*ChaosReplicaRemovalScheduledEvent, bool) {
35709	return nil, false
35710}
35711
35712// AsChaosPartitionSecondaryMoveScheduledEvent is the BasicFabricEvent implementation for ReplicaEvent.
35713func (re ReplicaEvent) AsChaosPartitionSecondaryMoveScheduledEvent() (*ChaosPartitionSecondaryMoveScheduledEvent, bool) {
35714	return nil, false
35715}
35716
35717// AsChaosPartitionPrimaryMoveScheduledEvent is the BasicFabricEvent implementation for ReplicaEvent.
35718func (re ReplicaEvent) AsChaosPartitionPrimaryMoveScheduledEvent() (*ChaosPartitionPrimaryMoveScheduledEvent, bool) {
35719	return nil, false
35720}
35721
35722// AsChaosReplicaRestartScheduledEvent is the BasicFabricEvent implementation for ReplicaEvent.
35723func (re ReplicaEvent) AsChaosReplicaRestartScheduledEvent() (*ChaosReplicaRestartScheduledEvent, bool) {
35724	return nil, false
35725}
35726
35727// AsChaosNodeRestartScheduledEvent is the BasicFabricEvent implementation for ReplicaEvent.
35728func (re ReplicaEvent) AsChaosNodeRestartScheduledEvent() (*ChaosNodeRestartScheduledEvent, bool) {
35729	return nil, false
35730}
35731
35732// AsFabricEvent is the BasicFabricEvent implementation for ReplicaEvent.
35733func (re ReplicaEvent) AsFabricEvent() (*FabricEvent, bool) {
35734	return nil, false
35735}
35736
35737// AsBasicFabricEvent is the BasicFabricEvent implementation for ReplicaEvent.
35738func (re ReplicaEvent) AsBasicFabricEvent() (BasicFabricEvent, bool) {
35739	return &re, true
35740}
35741
35742// BasicReplicaHealth represents a base class for stateful service replica or stateless service instance health.
35743// Contains the replica aggregated health state, the health events and the unhealthy evaluations.
35744type BasicReplicaHealth interface {
35745	AsStatefulServiceReplicaHealth() (*StatefulServiceReplicaHealth, bool)
35746	AsStatelessServiceInstanceHealth() (*StatelessServiceInstanceHealth, bool)
35747	AsReplicaHealth() (*ReplicaHealth, bool)
35748}
35749
35750// ReplicaHealth represents a base class for stateful service replica or stateless service instance health.
35751// Contains the replica aggregated health state, the health events and the unhealthy evaluations.
35752type ReplicaHealth struct {
35753	autorest.Response `json:"-"`
35754	// PartitionID - Id of the partition to which this replica belongs.
35755	PartitionID *uuid.UUID `json:"PartitionId,omitempty"`
35756	// ServiceKind - Possible values include: 'ServiceKindBasicReplicaHealthServiceKindReplicaHealth', 'ServiceKindBasicReplicaHealthServiceKindStateful', 'ServiceKindBasicReplicaHealthServiceKindStateless'
35757	ServiceKind ServiceKindBasicReplicaHealth `json:"ServiceKind,omitempty"`
35758	// AggregatedHealthState - The HealthState representing the aggregated health state of the entity computed by Health Manager.
35759	// The health evaluation of the entity reflects all events reported on the entity and its children (if any).
35760	// The aggregation is done by applying the desired health policy. Possible values include: 'HealthStateInvalid', 'HealthStateOk', 'HealthStateWarning', 'HealthStateError', 'HealthStateUnknown'
35761	AggregatedHealthState HealthState `json:"AggregatedHealthState,omitempty"`
35762	// HealthEvents - The list of health events reported on the entity.
35763	HealthEvents *[]HealthEvent `json:"HealthEvents,omitempty"`
35764	// UnhealthyEvaluations - The unhealthy evaluations that show why the current aggregated health state was returned by Health Manager.
35765	UnhealthyEvaluations *[]HealthEvaluationWrapper `json:"UnhealthyEvaluations,omitempty"`
35766	// HealthStatistics - Shows the health statistics for all children types of the queried entity.
35767	HealthStatistics *HealthStatistics `json:"HealthStatistics,omitempty"`
35768}
35769
35770func unmarshalBasicReplicaHealth(body []byte) (BasicReplicaHealth, error) {
35771	var m map[string]interface{}
35772	err := json.Unmarshal(body, &m)
35773	if err != nil {
35774		return nil, err
35775	}
35776
35777	switch m["ServiceKind"] {
35778	case string(ServiceKindBasicReplicaHealthServiceKindStateful):
35779		var ssrh StatefulServiceReplicaHealth
35780		err := json.Unmarshal(body, &ssrh)
35781		return ssrh, err
35782	case string(ServiceKindBasicReplicaHealthServiceKindStateless):
35783		var ssih StatelessServiceInstanceHealth
35784		err := json.Unmarshal(body, &ssih)
35785		return ssih, err
35786	default:
35787		var rh ReplicaHealth
35788		err := json.Unmarshal(body, &rh)
35789		return rh, err
35790	}
35791}
35792func unmarshalBasicReplicaHealthArray(body []byte) ([]BasicReplicaHealth, error) {
35793	var rawMessages []*json.RawMessage
35794	err := json.Unmarshal(body, &rawMessages)
35795	if err != nil {
35796		return nil, err
35797	}
35798
35799	rhArray := make([]BasicReplicaHealth, len(rawMessages))
35800
35801	for index, rawMessage := range rawMessages {
35802		rh, err := unmarshalBasicReplicaHealth(*rawMessage)
35803		if err != nil {
35804			return nil, err
35805		}
35806		rhArray[index] = rh
35807	}
35808	return rhArray, nil
35809}
35810
35811// MarshalJSON is the custom marshaler for ReplicaHealth.
35812func (rh ReplicaHealth) MarshalJSON() ([]byte, error) {
35813	rh.ServiceKind = ServiceKindBasicReplicaHealthServiceKindReplicaHealth
35814	objectMap := make(map[string]interface{})
35815	if rh.PartitionID != nil {
35816		objectMap["PartitionId"] = rh.PartitionID
35817	}
35818	if rh.ServiceKind != "" {
35819		objectMap["ServiceKind"] = rh.ServiceKind
35820	}
35821	if rh.AggregatedHealthState != "" {
35822		objectMap["AggregatedHealthState"] = rh.AggregatedHealthState
35823	}
35824	if rh.HealthEvents != nil {
35825		objectMap["HealthEvents"] = rh.HealthEvents
35826	}
35827	if rh.UnhealthyEvaluations != nil {
35828		objectMap["UnhealthyEvaluations"] = rh.UnhealthyEvaluations
35829	}
35830	if rh.HealthStatistics != nil {
35831		objectMap["HealthStatistics"] = rh.HealthStatistics
35832	}
35833	return json.Marshal(objectMap)
35834}
35835
35836// AsStatefulServiceReplicaHealth is the BasicReplicaHealth implementation for ReplicaHealth.
35837func (rh ReplicaHealth) AsStatefulServiceReplicaHealth() (*StatefulServiceReplicaHealth, bool) {
35838	return nil, false
35839}
35840
35841// AsStatelessServiceInstanceHealth is the BasicReplicaHealth implementation for ReplicaHealth.
35842func (rh ReplicaHealth) AsStatelessServiceInstanceHealth() (*StatelessServiceInstanceHealth, bool) {
35843	return nil, false
35844}
35845
35846// AsReplicaHealth is the BasicReplicaHealth implementation for ReplicaHealth.
35847func (rh ReplicaHealth) AsReplicaHealth() (*ReplicaHealth, bool) {
35848	return &rh, true
35849}
35850
35851// AsBasicReplicaHealth is the BasicReplicaHealth implementation for ReplicaHealth.
35852func (rh ReplicaHealth) AsBasicReplicaHealth() (BasicReplicaHealth, bool) {
35853	return &rh, true
35854}
35855
35856// ReplicaHealthEvaluation represents health evaluation for a replica, containing information about the
35857// data and the algorithm used by health store to evaluate health. The evaluation is returned only when the
35858// aggregated health state is either Error or Warning.
35859type ReplicaHealthEvaluation struct {
35860	// PartitionID - Id of the partition to which the replica belongs.
35861	PartitionID *uuid.UUID `json:"PartitionId,omitempty"`
35862	// 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.
35863	ReplicaOrInstanceID *string `json:"ReplicaOrInstanceId,omitempty"`
35864	// 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.
35865	UnhealthyEvaluations *[]HealthEvaluationWrapper `json:"UnhealthyEvaluations,omitempty"`
35866	// 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'
35867	AggregatedHealthState HealthState `json:"AggregatedHealthState,omitempty"`
35868	// Description - Description of the health evaluation, which represents a summary of the evaluation process.
35869	Description *string `json:"Description,omitempty"`
35870	// 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'
35871	Kind Kind `json:"Kind,omitempty"`
35872}
35873
35874// MarshalJSON is the custom marshaler for ReplicaHealthEvaluation.
35875func (rhe ReplicaHealthEvaluation) MarshalJSON() ([]byte, error) {
35876	rhe.Kind = KindReplica
35877	objectMap := make(map[string]interface{})
35878	if rhe.PartitionID != nil {
35879		objectMap["PartitionId"] = rhe.PartitionID
35880	}
35881	if rhe.ReplicaOrInstanceID != nil {
35882		objectMap["ReplicaOrInstanceId"] = rhe.ReplicaOrInstanceID
35883	}
35884	if rhe.UnhealthyEvaluations != nil {
35885		objectMap["UnhealthyEvaluations"] = rhe.UnhealthyEvaluations
35886	}
35887	if rhe.AggregatedHealthState != "" {
35888		objectMap["AggregatedHealthState"] = rhe.AggregatedHealthState
35889	}
35890	if rhe.Description != nil {
35891		objectMap["Description"] = rhe.Description
35892	}
35893	if rhe.Kind != "" {
35894		objectMap["Kind"] = rhe.Kind
35895	}
35896	return json.Marshal(objectMap)
35897}
35898
35899// AsApplicationHealthEvaluation is the BasicHealthEvaluation implementation for ReplicaHealthEvaluation.
35900func (rhe ReplicaHealthEvaluation) AsApplicationHealthEvaluation() (*ApplicationHealthEvaluation, bool) {
35901	return nil, false
35902}
35903
35904// AsApplicationsHealthEvaluation is the BasicHealthEvaluation implementation for ReplicaHealthEvaluation.
35905func (rhe ReplicaHealthEvaluation) AsApplicationsHealthEvaluation() (*ApplicationsHealthEvaluation, bool) {
35906	return nil, false
35907}
35908
35909// AsApplicationTypeApplicationsHealthEvaluation is the BasicHealthEvaluation implementation for ReplicaHealthEvaluation.
35910func (rhe ReplicaHealthEvaluation) AsApplicationTypeApplicationsHealthEvaluation() (*ApplicationTypeApplicationsHealthEvaluation, bool) {
35911	return nil, false
35912}
35913
35914// AsDeltaNodesCheckHealthEvaluation is the BasicHealthEvaluation implementation for ReplicaHealthEvaluation.
35915func (rhe ReplicaHealthEvaluation) AsDeltaNodesCheckHealthEvaluation() (*DeltaNodesCheckHealthEvaluation, bool) {
35916	return nil, false
35917}
35918
35919// AsDeployedApplicationHealthEvaluation is the BasicHealthEvaluation implementation for ReplicaHealthEvaluation.
35920func (rhe ReplicaHealthEvaluation) AsDeployedApplicationHealthEvaluation() (*DeployedApplicationHealthEvaluation, bool) {
35921	return nil, false
35922}
35923
35924// AsDeployedApplicationsHealthEvaluation is the BasicHealthEvaluation implementation for ReplicaHealthEvaluation.
35925func (rhe ReplicaHealthEvaluation) AsDeployedApplicationsHealthEvaluation() (*DeployedApplicationsHealthEvaluation, bool) {
35926	return nil, false
35927}
35928
35929// AsDeployedServicePackageHealthEvaluation is the BasicHealthEvaluation implementation for ReplicaHealthEvaluation.
35930func (rhe ReplicaHealthEvaluation) AsDeployedServicePackageHealthEvaluation() (*DeployedServicePackageHealthEvaluation, bool) {
35931	return nil, false
35932}
35933
35934// AsDeployedServicePackagesHealthEvaluation is the BasicHealthEvaluation implementation for ReplicaHealthEvaluation.
35935func (rhe ReplicaHealthEvaluation) AsDeployedServicePackagesHealthEvaluation() (*DeployedServicePackagesHealthEvaluation, bool) {
35936	return nil, false
35937}
35938
35939// AsEventHealthEvaluation is the BasicHealthEvaluation implementation for ReplicaHealthEvaluation.
35940func (rhe ReplicaHealthEvaluation) AsEventHealthEvaluation() (*EventHealthEvaluation, bool) {
35941	return nil, false
35942}
35943
35944// AsNodeHealthEvaluation is the BasicHealthEvaluation implementation for ReplicaHealthEvaluation.
35945func (rhe ReplicaHealthEvaluation) AsNodeHealthEvaluation() (*NodeHealthEvaluation, bool) {
35946	return nil, false
35947}
35948
35949// AsNodesHealthEvaluation is the BasicHealthEvaluation implementation for ReplicaHealthEvaluation.
35950func (rhe ReplicaHealthEvaluation) AsNodesHealthEvaluation() (*NodesHealthEvaluation, bool) {
35951	return nil, false
35952}
35953
35954// AsPartitionHealthEvaluation is the BasicHealthEvaluation implementation for ReplicaHealthEvaluation.
35955func (rhe ReplicaHealthEvaluation) AsPartitionHealthEvaluation() (*PartitionHealthEvaluation, bool) {
35956	return nil, false
35957}
35958
35959// AsPartitionsHealthEvaluation is the BasicHealthEvaluation implementation for ReplicaHealthEvaluation.
35960func (rhe ReplicaHealthEvaluation) AsPartitionsHealthEvaluation() (*PartitionsHealthEvaluation, bool) {
35961	return nil, false
35962}
35963
35964// AsReplicaHealthEvaluation is the BasicHealthEvaluation implementation for ReplicaHealthEvaluation.
35965func (rhe ReplicaHealthEvaluation) AsReplicaHealthEvaluation() (*ReplicaHealthEvaluation, bool) {
35966	return &rhe, true
35967}
35968
35969// AsReplicasHealthEvaluation is the BasicHealthEvaluation implementation for ReplicaHealthEvaluation.
35970func (rhe ReplicaHealthEvaluation) AsReplicasHealthEvaluation() (*ReplicasHealthEvaluation, bool) {
35971	return nil, false
35972}
35973
35974// AsServiceHealthEvaluation is the BasicHealthEvaluation implementation for ReplicaHealthEvaluation.
35975func (rhe ReplicaHealthEvaluation) AsServiceHealthEvaluation() (*ServiceHealthEvaluation, bool) {
35976	return nil, false
35977}
35978
35979// AsServicesHealthEvaluation is the BasicHealthEvaluation implementation for ReplicaHealthEvaluation.
35980func (rhe ReplicaHealthEvaluation) AsServicesHealthEvaluation() (*ServicesHealthEvaluation, bool) {
35981	return nil, false
35982}
35983
35984// AsSystemApplicationHealthEvaluation is the BasicHealthEvaluation implementation for ReplicaHealthEvaluation.
35985func (rhe ReplicaHealthEvaluation) AsSystemApplicationHealthEvaluation() (*SystemApplicationHealthEvaluation, bool) {
35986	return nil, false
35987}
35988
35989// AsUpgradeDomainDeltaNodesCheckHealthEvaluation is the BasicHealthEvaluation implementation for ReplicaHealthEvaluation.
35990func (rhe ReplicaHealthEvaluation) AsUpgradeDomainDeltaNodesCheckHealthEvaluation() (*UpgradeDomainDeltaNodesCheckHealthEvaluation, bool) {
35991	return nil, false
35992}
35993
35994// AsUpgradeDomainNodesHealthEvaluation is the BasicHealthEvaluation implementation for ReplicaHealthEvaluation.
35995func (rhe ReplicaHealthEvaluation) AsUpgradeDomainNodesHealthEvaluation() (*UpgradeDomainNodesHealthEvaluation, bool) {
35996	return nil, false
35997}
35998
35999// AsHealthEvaluation is the BasicHealthEvaluation implementation for ReplicaHealthEvaluation.
36000func (rhe ReplicaHealthEvaluation) AsHealthEvaluation() (*HealthEvaluation, bool) {
36001	return nil, false
36002}
36003
36004// AsBasicHealthEvaluation is the BasicHealthEvaluation implementation for ReplicaHealthEvaluation.
36005func (rhe ReplicaHealthEvaluation) AsBasicHealthEvaluation() (BasicHealthEvaluation, bool) {
36006	return &rhe, true
36007}
36008
36009// ReplicaHealthModel ...
36010type ReplicaHealthModel struct {
36011	autorest.Response `json:"-"`
36012	Value             BasicReplicaHealth `json:"value,omitempty"`
36013}
36014
36015// UnmarshalJSON is the custom unmarshaler for ReplicaHealthModel struct.
36016func (rhm *ReplicaHealthModel) UnmarshalJSON(body []byte) error {
36017	rh, err := unmarshalBasicReplicaHealth(body)
36018	if err != nil {
36019		return err
36020	}
36021	rhm.Value = rh
36022
36023	return nil
36024}
36025
36026// BasicReplicaHealthState represents a base class for stateful service replica or stateless service instance health
36027// state.
36028type BasicReplicaHealthState interface {
36029	AsStatefulServiceReplicaHealthState() (*StatefulServiceReplicaHealthState, bool)
36030	AsStatelessServiceInstanceHealthState() (*StatelessServiceInstanceHealthState, bool)
36031	AsReplicaHealthState() (*ReplicaHealthState, bool)
36032}
36033
36034// ReplicaHealthState represents a base class for stateful service replica or stateless service instance health
36035// state.
36036type ReplicaHealthState struct {
36037	// PartitionID - The ID of the partition to which this replica belongs.
36038	PartitionID *uuid.UUID `json:"PartitionId,omitempty"`
36039	// ServiceKind - Possible values include: 'ServiceKindBasicReplicaHealthStateServiceKindReplicaHealthState', 'ServiceKindBasicReplicaHealthStateServiceKindStateful', 'ServiceKindBasicReplicaHealthStateServiceKindStateless'
36040	ServiceKind ServiceKindBasicReplicaHealthState `json:"ServiceKind,omitempty"`
36041	// 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'
36042	AggregatedHealthState HealthState `json:"AggregatedHealthState,omitempty"`
36043}
36044
36045func unmarshalBasicReplicaHealthState(body []byte) (BasicReplicaHealthState, error) {
36046	var m map[string]interface{}
36047	err := json.Unmarshal(body, &m)
36048	if err != nil {
36049		return nil, err
36050	}
36051
36052	switch m["ServiceKind"] {
36053	case string(ServiceKindBasicReplicaHealthStateServiceKindStateful):
36054		var ssrhs StatefulServiceReplicaHealthState
36055		err := json.Unmarshal(body, &ssrhs)
36056		return ssrhs, err
36057	case string(ServiceKindBasicReplicaHealthStateServiceKindStateless):
36058		var ssihs StatelessServiceInstanceHealthState
36059		err := json.Unmarshal(body, &ssihs)
36060		return ssihs, err
36061	default:
36062		var RHS ReplicaHealthState
36063		err := json.Unmarshal(body, &RHS)
36064		return RHS, err
36065	}
36066}
36067func unmarshalBasicReplicaHealthStateArray(body []byte) ([]BasicReplicaHealthState, error) {
36068	var rawMessages []*json.RawMessage
36069	err := json.Unmarshal(body, &rawMessages)
36070	if err != nil {
36071		return nil, err
36072	}
36073
36074	RHSArray := make([]BasicReplicaHealthState, len(rawMessages))
36075
36076	for index, rawMessage := range rawMessages {
36077		RHS, err := unmarshalBasicReplicaHealthState(*rawMessage)
36078		if err != nil {
36079			return nil, err
36080		}
36081		RHSArray[index] = RHS
36082	}
36083	return RHSArray, nil
36084}
36085
36086// MarshalJSON is the custom marshaler for ReplicaHealthState.
36087func (RHS ReplicaHealthState) MarshalJSON() ([]byte, error) {
36088	RHS.ServiceKind = ServiceKindBasicReplicaHealthStateServiceKindReplicaHealthState
36089	objectMap := make(map[string]interface{})
36090	if RHS.PartitionID != nil {
36091		objectMap["PartitionId"] = RHS.PartitionID
36092	}
36093	if RHS.ServiceKind != "" {
36094		objectMap["ServiceKind"] = RHS.ServiceKind
36095	}
36096	if RHS.AggregatedHealthState != "" {
36097		objectMap["AggregatedHealthState"] = RHS.AggregatedHealthState
36098	}
36099	return json.Marshal(objectMap)
36100}
36101
36102// AsStatefulServiceReplicaHealthState is the BasicReplicaHealthState implementation for ReplicaHealthState.
36103func (RHS ReplicaHealthState) AsStatefulServiceReplicaHealthState() (*StatefulServiceReplicaHealthState, bool) {
36104	return nil, false
36105}
36106
36107// AsStatelessServiceInstanceHealthState is the BasicReplicaHealthState implementation for ReplicaHealthState.
36108func (RHS ReplicaHealthState) AsStatelessServiceInstanceHealthState() (*StatelessServiceInstanceHealthState, bool) {
36109	return nil, false
36110}
36111
36112// AsReplicaHealthState is the BasicReplicaHealthState implementation for ReplicaHealthState.
36113func (RHS ReplicaHealthState) AsReplicaHealthState() (*ReplicaHealthState, bool) {
36114	return &RHS, true
36115}
36116
36117// AsBasicReplicaHealthState is the BasicReplicaHealthState implementation for ReplicaHealthState.
36118func (RHS ReplicaHealthState) AsBasicReplicaHealthState() (BasicReplicaHealthState, bool) {
36119	return &RHS, true
36120}
36121
36122// ReplicaHealthStateChunk represents the health state chunk of a stateful service replica or a stateless
36123// service instance.
36124// The replica health state contains the replica ID and its aggregated health state.
36125type ReplicaHealthStateChunk struct {
36126	// 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.
36127	ReplicaOrInstanceID *string `json:"ReplicaOrInstanceId,omitempty"`
36128	// 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'
36129	HealthState HealthState `json:"HealthState,omitempty"`
36130}
36131
36132// ReplicaHealthStateChunkList the list of replica health state chunks that respect the input filters in
36133// the chunk query. Returned by get cluster health state chunks query.
36134type ReplicaHealthStateChunkList struct {
36135	// Items - The list of replica health state chunks that respect the input filters in the chunk query.
36136	Items *[]ReplicaHealthStateChunk `json:"Items,omitempty"`
36137}
36138
36139// ReplicaHealthStateFilter defines matching criteria to determine whether a replica should be included as
36140// a child of a partition in the cluster health chunk.
36141// The replicas are only returned if the parent entities match a filter specified in the cluster health
36142// chunk query description. The parent partition, service and application must be included in the cluster
36143// health chunk.
36144// One filter can match zero, one or multiple replicas, depending on its properties.
36145type ReplicaHealthStateFilter struct {
36146	// 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.
36147	// If the replica doesn't exist, no replica is returned in the cluster health chunk based on this filter.
36148	// If the replica exists, it is included in the cluster health chunk if it respects the other filter properties.
36149	// 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.
36150	ReplicaOrInstanceIDFilter *string `json:"ReplicaOrInstanceIdFilter,omitempty"`
36151	// HealthStateFilter - The filter for the health state of the replicas. It allows selecting replicas if they match the desired health states.
36152	// 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.
36153	// 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.
36154	// The state values are flag-based enumeration, so the value could be a combination of these values obtained using bitwise 'OR' operator.
36155	// For example, if the provided value is 6, it matches replicas with HealthState value of OK (2) and Warning (4).
36156	// - Default - Default value. Matches any HealthState. The value is zero.
36157	// - 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.
36158	// - Ok - Filter that matches input with HealthState value Ok. The value is 2.
36159	// - Warning - Filter that matches input with HealthState value Warning. The value is 4.
36160	// - Error - Filter that matches input with HealthState value Error. The value is 8.
36161	// - All - Filter that matches input with any HealthState value. The value is 65535.
36162	HealthStateFilter *int32 `json:"HealthStateFilter,omitempty"`
36163}
36164
36165// BasicReplicaInfo information about the identity, status, health, node name, uptime, and other details about the
36166// replica.
36167type BasicReplicaInfo interface {
36168	AsStatefulServiceReplicaInfo() (*StatefulServiceReplicaInfo, bool)
36169	AsStatelessServiceInstanceInfo() (*StatelessServiceInstanceInfo, bool)
36170	AsReplicaInfo() (*ReplicaInfo, bool)
36171}
36172
36173// ReplicaInfo information about the identity, status, health, node name, uptime, and other details about the
36174// replica.
36175type ReplicaInfo struct {
36176	autorest.Response `json:"-"`
36177	// ReplicaStatus - The status of a replica of a service. Possible values include: 'ReplicaStatusInvalid', 'ReplicaStatusInBuild', 'ReplicaStatusStandby', 'ReplicaStatusReady', 'ReplicaStatusDown', 'ReplicaStatusDropped'
36178	ReplicaStatus ReplicaStatus `json:"ReplicaStatus,omitempty"`
36179	// 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'
36180	HealthState HealthState `json:"HealthState,omitempty"`
36181	// NodeName - The name of a Service Fabric node.
36182	NodeName *string `json:"NodeName,omitempty"`
36183	// Address - The address the replica is listening on.
36184	Address *string `json:"Address,omitempty"`
36185	// LastInBuildDurationInSeconds - The last in build duration of the replica in seconds.
36186	LastInBuildDurationInSeconds *string `json:"LastInBuildDurationInSeconds,omitempty"`
36187	// ServiceKind - Possible values include: 'ServiceKindBasicReplicaInfoServiceKindReplicaInfo', 'ServiceKindBasicReplicaInfoServiceKindStateful', 'ServiceKindBasicReplicaInfoServiceKindStateless'
36188	ServiceKind ServiceKindBasicReplicaInfo `json:"ServiceKind,omitempty"`
36189}
36190
36191func unmarshalBasicReplicaInfo(body []byte) (BasicReplicaInfo, error) {
36192	var m map[string]interface{}
36193	err := json.Unmarshal(body, &m)
36194	if err != nil {
36195		return nil, err
36196	}
36197
36198	switch m["ServiceKind"] {
36199	case string(ServiceKindBasicReplicaInfoServiceKindStateful):
36200		var ssri StatefulServiceReplicaInfo
36201		err := json.Unmarshal(body, &ssri)
36202		return ssri, err
36203	case string(ServiceKindBasicReplicaInfoServiceKindStateless):
36204		var ssii StatelessServiceInstanceInfo
36205		err := json.Unmarshal(body, &ssii)
36206		return ssii, err
36207	default:
36208		var ri ReplicaInfo
36209		err := json.Unmarshal(body, &ri)
36210		return ri, err
36211	}
36212}
36213func unmarshalBasicReplicaInfoArray(body []byte) ([]BasicReplicaInfo, error) {
36214	var rawMessages []*json.RawMessage
36215	err := json.Unmarshal(body, &rawMessages)
36216	if err != nil {
36217		return nil, err
36218	}
36219
36220	riArray := make([]BasicReplicaInfo, len(rawMessages))
36221
36222	for index, rawMessage := range rawMessages {
36223		ri, err := unmarshalBasicReplicaInfo(*rawMessage)
36224		if err != nil {
36225			return nil, err
36226		}
36227		riArray[index] = ri
36228	}
36229	return riArray, nil
36230}
36231
36232// MarshalJSON is the custom marshaler for ReplicaInfo.
36233func (ri ReplicaInfo) MarshalJSON() ([]byte, error) {
36234	ri.ServiceKind = ServiceKindBasicReplicaInfoServiceKindReplicaInfo
36235	objectMap := make(map[string]interface{})
36236	if ri.ReplicaStatus != "" {
36237		objectMap["ReplicaStatus"] = ri.ReplicaStatus
36238	}
36239	if ri.HealthState != "" {
36240		objectMap["HealthState"] = ri.HealthState
36241	}
36242	if ri.NodeName != nil {
36243		objectMap["NodeName"] = ri.NodeName
36244	}
36245	if ri.Address != nil {
36246		objectMap["Address"] = ri.Address
36247	}
36248	if ri.LastInBuildDurationInSeconds != nil {
36249		objectMap["LastInBuildDurationInSeconds"] = ri.LastInBuildDurationInSeconds
36250	}
36251	if ri.ServiceKind != "" {
36252		objectMap["ServiceKind"] = ri.ServiceKind
36253	}
36254	return json.Marshal(objectMap)
36255}
36256
36257// AsStatefulServiceReplicaInfo is the BasicReplicaInfo implementation for ReplicaInfo.
36258func (ri ReplicaInfo) AsStatefulServiceReplicaInfo() (*StatefulServiceReplicaInfo, bool) {
36259	return nil, false
36260}
36261
36262// AsStatelessServiceInstanceInfo is the BasicReplicaInfo implementation for ReplicaInfo.
36263func (ri ReplicaInfo) AsStatelessServiceInstanceInfo() (*StatelessServiceInstanceInfo, bool) {
36264	return nil, false
36265}
36266
36267// AsReplicaInfo is the BasicReplicaInfo implementation for ReplicaInfo.
36268func (ri ReplicaInfo) AsReplicaInfo() (*ReplicaInfo, bool) {
36269	return &ri, true
36270}
36271
36272// AsBasicReplicaInfo is the BasicReplicaInfo implementation for ReplicaInfo.
36273func (ri ReplicaInfo) AsBasicReplicaInfo() (BasicReplicaInfo, bool) {
36274	return &ri, true
36275}
36276
36277// ReplicaInfoModel ...
36278type ReplicaInfoModel struct {
36279	autorest.Response `json:"-"`
36280	Value             BasicReplicaInfo `json:"value,omitempty"`
36281}
36282
36283// UnmarshalJSON is the custom unmarshaler for ReplicaInfoModel struct.
36284func (rim *ReplicaInfoModel) UnmarshalJSON(body []byte) error {
36285	ri, err := unmarshalBasicReplicaInfo(body)
36286	if err != nil {
36287		return err
36288	}
36289	rim.Value = ri
36290
36291	return nil
36292}
36293
36294// ReplicasHealthEvaluation represents health evaluation for replicas, containing health evaluations for
36295// each unhealthy replica that impacted current aggregated health state. Can be returned when evaluating
36296// partition health and the aggregated health state is either Error or Warning.
36297type ReplicasHealthEvaluation struct {
36298	// MaxPercentUnhealthyReplicasPerPartition - Maximum allowed percentage of unhealthy replicas per partition from the ApplicationHealthPolicy.
36299	MaxPercentUnhealthyReplicasPerPartition *int32 `json:"MaxPercentUnhealthyReplicasPerPartition,omitempty"`
36300	// TotalCount - Total number of replicas in the partition from the health store.
36301	TotalCount *int64 `json:"TotalCount,omitempty"`
36302	// UnhealthyEvaluations - List of unhealthy evaluations that led to the aggregated health state. Includes all the unhealthy ReplicaHealthEvaluation that impacted the aggregated health.
36303	UnhealthyEvaluations *[]HealthEvaluationWrapper `json:"UnhealthyEvaluations,omitempty"`
36304	// 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'
36305	AggregatedHealthState HealthState `json:"AggregatedHealthState,omitempty"`
36306	// Description - Description of the health evaluation, which represents a summary of the evaluation process.
36307	Description *string `json:"Description,omitempty"`
36308	// 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'
36309	Kind Kind `json:"Kind,omitempty"`
36310}
36311
36312// MarshalJSON is the custom marshaler for ReplicasHealthEvaluation.
36313func (rhe ReplicasHealthEvaluation) MarshalJSON() ([]byte, error) {
36314	rhe.Kind = KindReplicas
36315	objectMap := make(map[string]interface{})
36316	if rhe.MaxPercentUnhealthyReplicasPerPartition != nil {
36317		objectMap["MaxPercentUnhealthyReplicasPerPartition"] = rhe.MaxPercentUnhealthyReplicasPerPartition
36318	}
36319	if rhe.TotalCount != nil {
36320		objectMap["TotalCount"] = rhe.TotalCount
36321	}
36322	if rhe.UnhealthyEvaluations != nil {
36323		objectMap["UnhealthyEvaluations"] = rhe.UnhealthyEvaluations
36324	}
36325	if rhe.AggregatedHealthState != "" {
36326		objectMap["AggregatedHealthState"] = rhe.AggregatedHealthState
36327	}
36328	if rhe.Description != nil {
36329		objectMap["Description"] = rhe.Description
36330	}
36331	if rhe.Kind != "" {
36332		objectMap["Kind"] = rhe.Kind
36333	}
36334	return json.Marshal(objectMap)
36335}
36336
36337// AsApplicationHealthEvaluation is the BasicHealthEvaluation implementation for ReplicasHealthEvaluation.
36338func (rhe ReplicasHealthEvaluation) AsApplicationHealthEvaluation() (*ApplicationHealthEvaluation, bool) {
36339	return nil, false
36340}
36341
36342// AsApplicationsHealthEvaluation is the BasicHealthEvaluation implementation for ReplicasHealthEvaluation.
36343func (rhe ReplicasHealthEvaluation) AsApplicationsHealthEvaluation() (*ApplicationsHealthEvaluation, bool) {
36344	return nil, false
36345}
36346
36347// AsApplicationTypeApplicationsHealthEvaluation is the BasicHealthEvaluation implementation for ReplicasHealthEvaluation.
36348func (rhe ReplicasHealthEvaluation) AsApplicationTypeApplicationsHealthEvaluation() (*ApplicationTypeApplicationsHealthEvaluation, bool) {
36349	return nil, false
36350}
36351
36352// AsDeltaNodesCheckHealthEvaluation is the BasicHealthEvaluation implementation for ReplicasHealthEvaluation.
36353func (rhe ReplicasHealthEvaluation) AsDeltaNodesCheckHealthEvaluation() (*DeltaNodesCheckHealthEvaluation, bool) {
36354	return nil, false
36355}
36356
36357// AsDeployedApplicationHealthEvaluation is the BasicHealthEvaluation implementation for ReplicasHealthEvaluation.
36358func (rhe ReplicasHealthEvaluation) AsDeployedApplicationHealthEvaluation() (*DeployedApplicationHealthEvaluation, bool) {
36359	return nil, false
36360}
36361
36362// AsDeployedApplicationsHealthEvaluation is the BasicHealthEvaluation implementation for ReplicasHealthEvaluation.
36363func (rhe ReplicasHealthEvaluation) AsDeployedApplicationsHealthEvaluation() (*DeployedApplicationsHealthEvaluation, bool) {
36364	return nil, false
36365}
36366
36367// AsDeployedServicePackageHealthEvaluation is the BasicHealthEvaluation implementation for ReplicasHealthEvaluation.
36368func (rhe ReplicasHealthEvaluation) AsDeployedServicePackageHealthEvaluation() (*DeployedServicePackageHealthEvaluation, bool) {
36369	return nil, false
36370}
36371
36372// AsDeployedServicePackagesHealthEvaluation is the BasicHealthEvaluation implementation for ReplicasHealthEvaluation.
36373func (rhe ReplicasHealthEvaluation) AsDeployedServicePackagesHealthEvaluation() (*DeployedServicePackagesHealthEvaluation, bool) {
36374	return nil, false
36375}
36376
36377// AsEventHealthEvaluation is the BasicHealthEvaluation implementation for ReplicasHealthEvaluation.
36378func (rhe ReplicasHealthEvaluation) AsEventHealthEvaluation() (*EventHealthEvaluation, bool) {
36379	return nil, false
36380}
36381
36382// AsNodeHealthEvaluation is the BasicHealthEvaluation implementation for ReplicasHealthEvaluation.
36383func (rhe ReplicasHealthEvaluation) AsNodeHealthEvaluation() (*NodeHealthEvaluation, bool) {
36384	return nil, false
36385}
36386
36387// AsNodesHealthEvaluation is the BasicHealthEvaluation implementation for ReplicasHealthEvaluation.
36388func (rhe ReplicasHealthEvaluation) AsNodesHealthEvaluation() (*NodesHealthEvaluation, bool) {
36389	return nil, false
36390}
36391
36392// AsPartitionHealthEvaluation is the BasicHealthEvaluation implementation for ReplicasHealthEvaluation.
36393func (rhe ReplicasHealthEvaluation) AsPartitionHealthEvaluation() (*PartitionHealthEvaluation, bool) {
36394	return nil, false
36395}
36396
36397// AsPartitionsHealthEvaluation is the BasicHealthEvaluation implementation for ReplicasHealthEvaluation.
36398func (rhe ReplicasHealthEvaluation) AsPartitionsHealthEvaluation() (*PartitionsHealthEvaluation, bool) {
36399	return nil, false
36400}
36401
36402// AsReplicaHealthEvaluation is the BasicHealthEvaluation implementation for ReplicasHealthEvaluation.
36403func (rhe ReplicasHealthEvaluation) AsReplicaHealthEvaluation() (*ReplicaHealthEvaluation, bool) {
36404	return nil, false
36405}
36406
36407// AsReplicasHealthEvaluation is the BasicHealthEvaluation implementation for ReplicasHealthEvaluation.
36408func (rhe ReplicasHealthEvaluation) AsReplicasHealthEvaluation() (*ReplicasHealthEvaluation, bool) {
36409	return &rhe, true
36410}
36411
36412// AsServiceHealthEvaluation is the BasicHealthEvaluation implementation for ReplicasHealthEvaluation.
36413func (rhe ReplicasHealthEvaluation) AsServiceHealthEvaluation() (*ServiceHealthEvaluation, bool) {
36414	return nil, false
36415}
36416
36417// AsServicesHealthEvaluation is the BasicHealthEvaluation implementation for ReplicasHealthEvaluation.
36418func (rhe ReplicasHealthEvaluation) AsServicesHealthEvaluation() (*ServicesHealthEvaluation, bool) {
36419	return nil, false
36420}
36421
36422// AsSystemApplicationHealthEvaluation is the BasicHealthEvaluation implementation for ReplicasHealthEvaluation.
36423func (rhe ReplicasHealthEvaluation) AsSystemApplicationHealthEvaluation() (*SystemApplicationHealthEvaluation, bool) {
36424	return nil, false
36425}
36426
36427// AsUpgradeDomainDeltaNodesCheckHealthEvaluation is the BasicHealthEvaluation implementation for ReplicasHealthEvaluation.
36428func (rhe ReplicasHealthEvaluation) AsUpgradeDomainDeltaNodesCheckHealthEvaluation() (*UpgradeDomainDeltaNodesCheckHealthEvaluation, bool) {
36429	return nil, false
36430}
36431
36432// AsUpgradeDomainNodesHealthEvaluation is the BasicHealthEvaluation implementation for ReplicasHealthEvaluation.
36433func (rhe ReplicasHealthEvaluation) AsUpgradeDomainNodesHealthEvaluation() (*UpgradeDomainNodesHealthEvaluation, bool) {
36434	return nil, false
36435}
36436
36437// AsHealthEvaluation is the BasicHealthEvaluation implementation for ReplicasHealthEvaluation.
36438func (rhe ReplicasHealthEvaluation) AsHealthEvaluation() (*HealthEvaluation, bool) {
36439	return nil, false
36440}
36441
36442// AsBasicHealthEvaluation is the BasicHealthEvaluation implementation for ReplicasHealthEvaluation.
36443func (rhe ReplicasHealthEvaluation) AsBasicHealthEvaluation() (BasicHealthEvaluation, bool) {
36444	return &rhe, true
36445}
36446
36447// BasicReplicaStatusBase information about the replica.
36448type BasicReplicaStatusBase interface {
36449	AsKeyValueStoreReplicaStatus() (*KeyValueStoreReplicaStatus, bool)
36450	AsReplicaStatusBase() (*ReplicaStatusBase, bool)
36451}
36452
36453// ReplicaStatusBase information about the replica.
36454type ReplicaStatusBase struct {
36455	// Kind - Possible values include: 'KindReplicaStatusBase', 'KindKeyValueStore'
36456	Kind KindBasicReplicaStatusBase `json:"Kind,omitempty"`
36457}
36458
36459func unmarshalBasicReplicaStatusBase(body []byte) (BasicReplicaStatusBase, error) {
36460	var m map[string]interface{}
36461	err := json.Unmarshal(body, &m)
36462	if err != nil {
36463		return nil, err
36464	}
36465
36466	switch m["Kind"] {
36467	case string(KindKeyValueStore):
36468		var kvsrs KeyValueStoreReplicaStatus
36469		err := json.Unmarshal(body, &kvsrs)
36470		return kvsrs, err
36471	default:
36472		var rsb ReplicaStatusBase
36473		err := json.Unmarshal(body, &rsb)
36474		return rsb, err
36475	}
36476}
36477func unmarshalBasicReplicaStatusBaseArray(body []byte) ([]BasicReplicaStatusBase, error) {
36478	var rawMessages []*json.RawMessage
36479	err := json.Unmarshal(body, &rawMessages)
36480	if err != nil {
36481		return nil, err
36482	}
36483
36484	rsbArray := make([]BasicReplicaStatusBase, len(rawMessages))
36485
36486	for index, rawMessage := range rawMessages {
36487		rsb, err := unmarshalBasicReplicaStatusBase(*rawMessage)
36488		if err != nil {
36489			return nil, err
36490		}
36491		rsbArray[index] = rsb
36492	}
36493	return rsbArray, nil
36494}
36495
36496// MarshalJSON is the custom marshaler for ReplicaStatusBase.
36497func (rsb ReplicaStatusBase) MarshalJSON() ([]byte, error) {
36498	rsb.Kind = KindReplicaStatusBase
36499	objectMap := make(map[string]interface{})
36500	if rsb.Kind != "" {
36501		objectMap["Kind"] = rsb.Kind
36502	}
36503	return json.Marshal(objectMap)
36504}
36505
36506// AsKeyValueStoreReplicaStatus is the BasicReplicaStatusBase implementation for ReplicaStatusBase.
36507func (rsb ReplicaStatusBase) AsKeyValueStoreReplicaStatus() (*KeyValueStoreReplicaStatus, bool) {
36508	return nil, false
36509}
36510
36511// AsReplicaStatusBase is the BasicReplicaStatusBase implementation for ReplicaStatusBase.
36512func (rsb ReplicaStatusBase) AsReplicaStatusBase() (*ReplicaStatusBase, bool) {
36513	return &rsb, true
36514}
36515
36516// AsBasicReplicaStatusBase is the BasicReplicaStatusBase implementation for ReplicaStatusBase.
36517func (rsb ReplicaStatusBase) AsBasicReplicaStatusBase() (BasicReplicaStatusBase, bool) {
36518	return &rsb, true
36519}
36520
36521// ReplicatorQueueStatus provides various statistics of the queue used in the service fabric replicator.
36522// Contains information about the service fabric replicator like the replication/copy queue utilization,
36523// last acknowledgement received timestamp, etc.
36524// Depending on the role of the replicator, the properties in this type imply different meanings.
36525type ReplicatorQueueStatus struct {
36526	// 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.
36527	QueueUtilizationPercentage *int32 `json:"QueueUtilizationPercentage,omitempty"`
36528	// QueueMemorySize - Represents the virtual memory consumed by the queue in bytes.
36529	QueueMemorySize *string `json:"QueueMemorySize,omitempty"`
36530	// FirstSequenceNumber - On a primary replicator, this is semantically the sequence number of the operation for which all the secondary replicas have sent an acknowledgement.
36531	// On a secondary replicator, this is the smallest sequence number of the operation that is present in the queue.
36532	FirstSequenceNumber *string `json:"FirstSequenceNumber,omitempty"`
36533	// 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.
36534	// On a secondary replicator, this is semantically the highest sequence number that has been applied to the persistent state.
36535	CompletedSequenceNumber *string `json:"CompletedSequenceNumber,omitempty"`
36536	// 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.
36537	// On a secondary replicator, this is semantically the highest sequence number of the in-order operation received from the primary.
36538	CommittedSequenceNumber *string `json:"CommittedSequenceNumber,omitempty"`
36539	// LastSequenceNumber - Represents the latest sequence number of the operation that is available in the queue.
36540	LastSequenceNumber *string `json:"LastSequenceNumber,omitempty"`
36541}
36542
36543// BasicReplicatorStatus represents a base class for primary or secondary replicator status.
36544// Contains information about the service fabric replicator like the replication/copy queue utilization, last
36545// acknowledgement received timestamp, etc.
36546type BasicReplicatorStatus interface {
36547	AsPrimaryReplicatorStatus() (*PrimaryReplicatorStatus, bool)
36548	AsSecondaryReplicatorStatus() (*SecondaryReplicatorStatus, bool)
36549	AsBasicSecondaryReplicatorStatus() (BasicSecondaryReplicatorStatus, bool)
36550	AsSecondaryActiveReplicatorStatus() (*SecondaryActiveReplicatorStatus, bool)
36551	AsSecondaryIdleReplicatorStatus() (*SecondaryIdleReplicatorStatus, bool)
36552	AsReplicatorStatus() (*ReplicatorStatus, bool)
36553}
36554
36555// ReplicatorStatus represents a base class for primary or secondary replicator status.
36556// Contains information about the service fabric replicator like the replication/copy queue utilization, last
36557// acknowledgement received timestamp, etc.
36558type ReplicatorStatus struct {
36559	// Kind - Possible values include: 'KindReplicatorStatus', 'KindPrimary', 'KindSecondaryReplicatorStatus', 'KindActiveSecondary', 'KindIdleSecondary'
36560	Kind KindBasicReplicatorStatus `json:"Kind,omitempty"`
36561}
36562
36563func unmarshalBasicReplicatorStatus(body []byte) (BasicReplicatorStatus, error) {
36564	var m map[string]interface{}
36565	err := json.Unmarshal(body, &m)
36566	if err != nil {
36567		return nil, err
36568	}
36569
36570	switch m["Kind"] {
36571	case string(KindPrimary):
36572		var prs PrimaryReplicatorStatus
36573		err := json.Unmarshal(body, &prs)
36574		return prs, err
36575	case string(KindSecondaryReplicatorStatus):
36576		var srs SecondaryReplicatorStatus
36577		err := json.Unmarshal(body, &srs)
36578		return srs, err
36579	case string(KindActiveSecondary):
36580		var sars SecondaryActiveReplicatorStatus
36581		err := json.Unmarshal(body, &sars)
36582		return sars, err
36583	case string(KindIdleSecondary):
36584		var sirs SecondaryIdleReplicatorStatus
36585		err := json.Unmarshal(body, &sirs)
36586		return sirs, err
36587	default:
36588		var rs ReplicatorStatus
36589		err := json.Unmarshal(body, &rs)
36590		return rs, err
36591	}
36592}
36593func unmarshalBasicReplicatorStatusArray(body []byte) ([]BasicReplicatorStatus, error) {
36594	var rawMessages []*json.RawMessage
36595	err := json.Unmarshal(body, &rawMessages)
36596	if err != nil {
36597		return nil, err
36598	}
36599
36600	rsArray := make([]BasicReplicatorStatus, len(rawMessages))
36601
36602	for index, rawMessage := range rawMessages {
36603		rs, err := unmarshalBasicReplicatorStatus(*rawMessage)
36604		if err != nil {
36605			return nil, err
36606		}
36607		rsArray[index] = rs
36608	}
36609	return rsArray, nil
36610}
36611
36612// MarshalJSON is the custom marshaler for ReplicatorStatus.
36613func (rs ReplicatorStatus) MarshalJSON() ([]byte, error) {
36614	rs.Kind = KindReplicatorStatus
36615	objectMap := make(map[string]interface{})
36616	if rs.Kind != "" {
36617		objectMap["Kind"] = rs.Kind
36618	}
36619	return json.Marshal(objectMap)
36620}
36621
36622// AsPrimaryReplicatorStatus is the BasicReplicatorStatus implementation for ReplicatorStatus.
36623func (rs ReplicatorStatus) AsPrimaryReplicatorStatus() (*PrimaryReplicatorStatus, bool) {
36624	return nil, false
36625}
36626
36627// AsSecondaryReplicatorStatus is the BasicReplicatorStatus implementation for ReplicatorStatus.
36628func (rs ReplicatorStatus) AsSecondaryReplicatorStatus() (*SecondaryReplicatorStatus, bool) {
36629	return nil, false
36630}
36631
36632// AsBasicSecondaryReplicatorStatus is the BasicReplicatorStatus implementation for ReplicatorStatus.
36633func (rs ReplicatorStatus) AsBasicSecondaryReplicatorStatus() (BasicSecondaryReplicatorStatus, bool) {
36634	return nil, false
36635}
36636
36637// AsSecondaryActiveReplicatorStatus is the BasicReplicatorStatus implementation for ReplicatorStatus.
36638func (rs ReplicatorStatus) AsSecondaryActiveReplicatorStatus() (*SecondaryActiveReplicatorStatus, bool) {
36639	return nil, false
36640}
36641
36642// AsSecondaryIdleReplicatorStatus is the BasicReplicatorStatus implementation for ReplicatorStatus.
36643func (rs ReplicatorStatus) AsSecondaryIdleReplicatorStatus() (*SecondaryIdleReplicatorStatus, bool) {
36644	return nil, false
36645}
36646
36647// AsReplicatorStatus is the BasicReplicatorStatus implementation for ReplicatorStatus.
36648func (rs ReplicatorStatus) AsReplicatorStatus() (*ReplicatorStatus, bool) {
36649	return &rs, true
36650}
36651
36652// AsBasicReplicatorStatus is the BasicReplicatorStatus implementation for ReplicatorStatus.
36653func (rs ReplicatorStatus) AsBasicReplicatorStatus() (BasicReplicatorStatus, bool) {
36654	return &rs, true
36655}
36656
36657// ResolvedServiceEndpoint endpoint of a resolved service partition.
36658type ResolvedServiceEndpoint struct {
36659	// Kind - The role of the replica where the endpoint is reported. Possible values include: 'ServiceEndpointRoleInvalid', 'ServiceEndpointRoleStateless', 'ServiceEndpointRoleStatefulPrimary', 'ServiceEndpointRoleStatefulSecondary'
36660	Kind ServiceEndpointRole `json:"Kind,omitempty"`
36661	// 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.
36662	Address *string `json:"Address,omitempty"`
36663}
36664
36665// ResolvedServicePartition information about a service partition and its associated endpoints.
36666type ResolvedServicePartition struct {
36667	autorest.Response `json:"-"`
36668	// Name - The full name of the service with 'fabric:' URI scheme.
36669	Name *string `json:"Name,omitempty"`
36670	// PartitionInformation - A representation of the resolved partition.
36671	PartitionInformation BasicPartitionInformation `json:"PartitionInformation,omitempty"`
36672	// Endpoints - List of resolved service endpoints of a service partition.
36673	Endpoints *[]ResolvedServiceEndpoint `json:"Endpoints,omitempty"`
36674	// 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.
36675	Version *string `json:"Version,omitempty"`
36676}
36677
36678// UnmarshalJSON is the custom unmarshaler for ResolvedServicePartition struct.
36679func (rsp *ResolvedServicePartition) UnmarshalJSON(body []byte) error {
36680	var m map[string]*json.RawMessage
36681	err := json.Unmarshal(body, &m)
36682	if err != nil {
36683		return err
36684	}
36685	for k, v := range m {
36686		switch k {
36687		case "Name":
36688			if v != nil {
36689				var name string
36690				err = json.Unmarshal(*v, &name)
36691				if err != nil {
36692					return err
36693				}
36694				rsp.Name = &name
36695			}
36696		case "PartitionInformation":
36697			if v != nil {
36698				partitionInformation, err := unmarshalBasicPartitionInformation(*v)
36699				if err != nil {
36700					return err
36701				}
36702				rsp.PartitionInformation = partitionInformation
36703			}
36704		case "Endpoints":
36705			if v != nil {
36706				var endpoints []ResolvedServiceEndpoint
36707				err = json.Unmarshal(*v, &endpoints)
36708				if err != nil {
36709					return err
36710				}
36711				rsp.Endpoints = &endpoints
36712			}
36713		case "Version":
36714			if v != nil {
36715				var version string
36716				err = json.Unmarshal(*v, &version)
36717				if err != nil {
36718					return err
36719				}
36720				rsp.Version = &version
36721			}
36722		}
36723	}
36724
36725	return nil
36726}
36727
36728// ResourceLimits this type describes the resource limits for a given container. It describes the most
36729// amount of resources a container is allowed to use before being restarted.
36730type ResourceLimits struct {
36731	// MemoryInGB - The memory limit in GB.
36732	MemoryInGB *float64 `json:"memoryInGB,omitempty"`
36733	// CPU - CPU limits in cores. At present, only full cores are supported.
36734	CPU *float64 `json:"cpu,omitempty"`
36735}
36736
36737// ResourceRequests this type describes the requested resources for a given container. It describes the
36738// least amount of resources required for the container. A container can consume more than requested
36739// resources up to the specified limits before being restarted. Currently, the requested resources are
36740// treated as limits.
36741type ResourceRequests struct {
36742	// MemoryInGB - The memory request in GB for this container.
36743	MemoryInGB *float64 `json:"memoryInGB,omitempty"`
36744	// CPU - Requested number of CPU cores. At present, only full cores are supported.
36745	CPU *float64 `json:"cpu,omitempty"`
36746}
36747
36748// ResourceRequirements this type describes the resource requirements for a container or a service.
36749type ResourceRequirements struct {
36750	// Requests - Describes the requested resources for a given container.
36751	Requests *ResourceRequests `json:"requests,omitempty"`
36752	// Limits - Describes the maximum limits on the resources for a given container.
36753	Limits *ResourceLimits `json:"limits,omitempty"`
36754}
36755
36756// RestartDeployedCodePackageDescription defines description for restarting a deployed code package on
36757// Service Fabric node.
36758type RestartDeployedCodePackageDescription struct {
36759	// ServiceManifestName - The name of service manifest that specified this code package.
36760	ServiceManifestName *string `json:"ServiceManifestName,omitempty"`
36761	// ServicePackageActivationID - The ActivationId of a deployed service package. If ServicePackageActivationMode specified at the time of creating the service
36762	// is 'SharedProcess' (or if it is not specified, in which case it defaults to 'SharedProcess'), then value of ServicePackageActivationId
36763	// is always an empty string.
36764	ServicePackageActivationID *string `json:"ServicePackageActivationId,omitempty"`
36765	// CodePackageName - The name of the code package defined in the service manifest.
36766	CodePackageName *string `json:"CodePackageName,omitempty"`
36767	// 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.
36768	// 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.
36769	// 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.
36770	// 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.
36771	CodePackageInstanceID *string `json:"CodePackageInstanceId,omitempty"`
36772}
36773
36774// RestartNodeDescription describes the parameters to restart a Service Fabric node.
36775type RestartNodeDescription struct {
36776	// 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.
36777	NodeInstanceID *string `json:"NodeInstanceId,omitempty"`
36778	// CreateFabricDump - Specify True to create a dump of the fabric node process. This is case-sensitive. Possible values include: 'False', 'True'
36779	CreateFabricDump CreateFabricDump `json:"CreateFabricDump,omitempty"`
36780}
36781
36782// RestartPartitionResult represents information about an operation in a terminal state (Completed or
36783// Faulted).
36784type RestartPartitionResult struct {
36785	// ErrorCode - If OperationState is Completed, this is 0.  If OperationState is Faulted, this is an error code indicating the reason.
36786	ErrorCode *int32 `json:"ErrorCode,omitempty"`
36787	// SelectedPartition - This class returns information about the partition that the user-induced operation acted upon.
36788	SelectedPartition *SelectedPartition `json:"SelectedPartition,omitempty"`
36789}
36790
36791// RestorePartitionDescription specifies the parameters needed to trigger a restore of a specific
36792// partition.
36793type RestorePartitionDescription struct {
36794	// BackupID - Unique backup ID.
36795	BackupID *uuid.UUID `json:"BackupId,omitempty"`
36796	// BackupLocation - Location of the backup relative to the backup storage specified/ configured.
36797	BackupLocation *string `json:"BackupLocation,omitempty"`
36798	// BackupStorage - Location of the backup from where the partition will be restored.
36799	BackupStorage BasicBackupStorageDescription `json:"BackupStorage,omitempty"`
36800}
36801
36802// UnmarshalJSON is the custom unmarshaler for RestorePartitionDescription struct.
36803func (rpd *RestorePartitionDescription) UnmarshalJSON(body []byte) error {
36804	var m map[string]*json.RawMessage
36805	err := json.Unmarshal(body, &m)
36806	if err != nil {
36807		return err
36808	}
36809	for k, v := range m {
36810		switch k {
36811		case "BackupId":
36812			if v != nil {
36813				var backupID uuid.UUID
36814				err = json.Unmarshal(*v, &backupID)
36815				if err != nil {
36816					return err
36817				}
36818				rpd.BackupID = &backupID
36819			}
36820		case "BackupLocation":
36821			if v != nil {
36822				var backupLocation string
36823				err = json.Unmarshal(*v, &backupLocation)
36824				if err != nil {
36825					return err
36826				}
36827				rpd.BackupLocation = &backupLocation
36828			}
36829		case "BackupStorage":
36830			if v != nil {
36831				backupStorage, err := unmarshalBasicBackupStorageDescription(*v)
36832				if err != nil {
36833					return err
36834				}
36835				rpd.BackupStorage = backupStorage
36836			}
36837		}
36838	}
36839
36840	return nil
36841}
36842
36843// RestoreProgressInfo describes the progress of a restore operation on a partition.
36844type RestoreProgressInfo struct {
36845	autorest.Response `json:"-"`
36846	// RestoreState - Represents the current state of the partition restore operation. Possible values include: 'RestoreStateInvalid', 'RestoreStateAccepted', 'RestoreStateRestoreInProgress', 'RestoreStateSuccess', 'RestoreStateFailure', 'RestoreStateTimeout'
36847	RestoreState RestoreState `json:"RestoreState,omitempty"`
36848	// TimeStampUtc - Timestamp when operation succeeded or failed.
36849	TimeStampUtc *date.Time `json:"TimeStampUtc,omitempty"`
36850	// RestoredEpoch - Describes the epoch at which the partition is restored.
36851	RestoredEpoch *Epoch `json:"RestoredEpoch,omitempty"`
36852	// RestoredLsn - Restored LSN.
36853	RestoredLsn *string `json:"RestoredLsn,omitempty"`
36854	// FailureError - Denotes the failure encountered in performing restore operation.
36855	FailureError *FabricErrorError `json:"FailureError,omitempty"`
36856}
36857
36858// ResumeApplicationUpgradeDescription describes the parameters for resuming an unmonitored manual Service
36859// Fabric application upgrade
36860type ResumeApplicationUpgradeDescription struct {
36861	// UpgradeDomainName - The name of the upgrade domain in which to resume the upgrade.
36862	UpgradeDomainName *string `json:"UpgradeDomainName,omitempty"`
36863}
36864
36865// ResumeClusterUpgradeDescription describes the parameters for resuming a cluster upgrade.
36866type ResumeClusterUpgradeDescription struct {
36867	// UpgradeDomain - The next upgrade domain for this cluster upgrade.
36868	UpgradeDomain *string `json:"UpgradeDomain,omitempty"`
36869}
36870
36871// BasicBasicRetentionPolicyDescription describes the retention policy configured.
36872type BasicBasicRetentionPolicyDescription interface {
36873	AsBasicRetentionPolicyDescription() (*BasicRetentionPolicyDescription, bool)
36874	AsRetentionPolicyDescription() (*RetentionPolicyDescription, bool)
36875}
36876
36877// RetentionPolicyDescription describes the retention policy configured.
36878type RetentionPolicyDescription struct {
36879	// RetentionPolicyType - Possible values include: 'RetentionPolicyTypeRetentionPolicyDescription', 'RetentionPolicyTypeBasic1'
36880	RetentionPolicyType RetentionPolicyTypeBasicBasicRetentionPolicyDescription `json:"RetentionPolicyType,omitempty"`
36881}
36882
36883func unmarshalBasicBasicRetentionPolicyDescription(body []byte) (BasicBasicRetentionPolicyDescription, error) {
36884	var m map[string]interface{}
36885	err := json.Unmarshal(body, &m)
36886	if err != nil {
36887		return nil, err
36888	}
36889
36890	switch m["RetentionPolicyType"] {
36891	case string(RetentionPolicyTypeBasic1):
36892		var brpd BasicRetentionPolicyDescription
36893		err := json.Unmarshal(body, &brpd)
36894		return brpd, err
36895	default:
36896		var rpd RetentionPolicyDescription
36897		err := json.Unmarshal(body, &rpd)
36898		return rpd, err
36899	}
36900}
36901func unmarshalBasicBasicRetentionPolicyDescriptionArray(body []byte) ([]BasicBasicRetentionPolicyDescription, error) {
36902	var rawMessages []*json.RawMessage
36903	err := json.Unmarshal(body, &rawMessages)
36904	if err != nil {
36905		return nil, err
36906	}
36907
36908	rpdArray := make([]BasicBasicRetentionPolicyDescription, len(rawMessages))
36909
36910	for index, rawMessage := range rawMessages {
36911		rpd, err := unmarshalBasicBasicRetentionPolicyDescription(*rawMessage)
36912		if err != nil {
36913			return nil, err
36914		}
36915		rpdArray[index] = rpd
36916	}
36917	return rpdArray, nil
36918}
36919
36920// MarshalJSON is the custom marshaler for RetentionPolicyDescription.
36921func (rpd RetentionPolicyDescription) MarshalJSON() ([]byte, error) {
36922	rpd.RetentionPolicyType = RetentionPolicyTypeRetentionPolicyDescription
36923	objectMap := make(map[string]interface{})
36924	if rpd.RetentionPolicyType != "" {
36925		objectMap["RetentionPolicyType"] = rpd.RetentionPolicyType
36926	}
36927	return json.Marshal(objectMap)
36928}
36929
36930// AsBasicRetentionPolicyDescription is the BasicBasicRetentionPolicyDescription implementation for RetentionPolicyDescription.
36931func (rpd RetentionPolicyDescription) AsBasicRetentionPolicyDescription() (*BasicRetentionPolicyDescription, bool) {
36932	return nil, false
36933}
36934
36935// AsRetentionPolicyDescription is the BasicBasicRetentionPolicyDescription implementation for RetentionPolicyDescription.
36936func (rpd RetentionPolicyDescription) AsRetentionPolicyDescription() (*RetentionPolicyDescription, bool) {
36937	return &rpd, true
36938}
36939
36940// AsBasicBasicRetentionPolicyDescription is the BasicBasicRetentionPolicyDescription implementation for RetentionPolicyDescription.
36941func (rpd RetentionPolicyDescription) AsBasicBasicRetentionPolicyDescription() (BasicBasicRetentionPolicyDescription, bool) {
36942	return &rpd, true
36943}
36944
36945// RollingUpgradeUpdateDescription describes the parameters for updating a rolling upgrade of application
36946// or cluster.
36947type RollingUpgradeUpdateDescription struct {
36948	// 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'
36949	RollingUpgradeMode UpgradeMode `json:"RollingUpgradeMode,omitempty"`
36950	// 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).
36951	ForceRestart *bool `json:"ForceRestart,omitempty"`
36952	// 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).
36953	ReplicaSetCheckTimeoutInMilliseconds *int64 `json:"ReplicaSetCheckTimeoutInMilliseconds,omitempty"`
36954	// FailureAction - The compensating action to perform when a Monitored upgrade encounters monitoring policy or health policy violations.
36955	// Invalid indicates the failure action is invalid. Rollback specifies that the upgrade will start rolling back automatically.
36956	// Manual indicates that the upgrade will switch to UnmonitoredManual upgrade mode. Possible values include: 'FailureActionInvalid', 'FailureActionRollback', 'FailureActionManual'
36957	FailureAction FailureAction `json:"FailureAction,omitempty"`
36958	// 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.
36959	HealthCheckWaitDurationInMilliseconds *string `json:"HealthCheckWaitDurationInMilliseconds,omitempty"`
36960	// 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.
36961	HealthCheckStableDurationInMilliseconds *string `json:"HealthCheckStableDurationInMilliseconds,omitempty"`
36962	// 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.
36963	HealthCheckRetryTimeoutInMilliseconds *string `json:"HealthCheckRetryTimeoutInMilliseconds,omitempty"`
36964	// 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.
36965	UpgradeTimeoutInMilliseconds *string `json:"UpgradeTimeoutInMilliseconds,omitempty"`
36966	// 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.
36967	UpgradeDomainTimeoutInMilliseconds *string `json:"UpgradeDomainTimeoutInMilliseconds,omitempty"`
36968}
36969
36970// BasicSafetyCheck represents a safety check performed by service fabric before continuing with the operations. These
36971// checks ensure the availability of the service and the reliability of the state.
36972type BasicSafetyCheck interface {
36973	AsPartitionSafetyCheck() (*PartitionSafetyCheck, bool)
36974	AsBasicPartitionSafetyCheck() (BasicPartitionSafetyCheck, bool)
36975	AsEnsureAvailabilitySafetyCheck() (*EnsureAvailabilitySafetyCheck, bool)
36976	AsEnsurePartitionQuorumSafetyCheck() (*EnsurePartitionQuorumSafetyCheck, bool)
36977	AsSeedNodeSafetyCheck() (*SeedNodeSafetyCheck, bool)
36978	AsWaitForInbuildReplicaSafetyCheck() (*WaitForInbuildReplicaSafetyCheck, bool)
36979	AsWaitForPrimaryPlacementSafetyCheck() (*WaitForPrimaryPlacementSafetyCheck, bool)
36980	AsWaitForPrimarySwapSafetyCheck() (*WaitForPrimarySwapSafetyCheck, bool)
36981	AsWaitForReconfigurationSafetyCheck() (*WaitForReconfigurationSafetyCheck, bool)
36982	AsSafetyCheck() (*SafetyCheck, bool)
36983}
36984
36985// SafetyCheck represents a safety check performed by service fabric before continuing with the operations.
36986// These checks ensure the availability of the service and the reliability of the state.
36987type SafetyCheck struct {
36988	// Kind - Possible values include: 'KindSafetyCheck', 'KindPartitionSafetyCheck', 'KindEnsureAvailability', 'KindEnsurePartitionQuorum', 'KindEnsureSeedNodeQuorum', 'KindWaitForInbuildReplica', 'KindWaitForPrimaryPlacement', 'KindWaitForPrimarySwap', 'KindWaitForReconfiguration'
36989	Kind KindBasicSafetyCheck `json:"Kind,omitempty"`
36990}
36991
36992func unmarshalBasicSafetyCheck(body []byte) (BasicSafetyCheck, error) {
36993	var m map[string]interface{}
36994	err := json.Unmarshal(body, &m)
36995	if err != nil {
36996		return nil, err
36997	}
36998
36999	switch m["Kind"] {
37000	case string(KindPartitionSafetyCheck):
37001		var psc PartitionSafetyCheck
37002		err := json.Unmarshal(body, &psc)
37003		return psc, err
37004	case string(KindEnsureAvailability):
37005		var easc EnsureAvailabilitySafetyCheck
37006		err := json.Unmarshal(body, &easc)
37007		return easc, err
37008	case string(KindEnsurePartitionQuorum):
37009		var epqsc EnsurePartitionQuorumSafetyCheck
37010		err := json.Unmarshal(body, &epqsc)
37011		return epqsc, err
37012	case string(KindEnsureSeedNodeQuorum):
37013		var snsc SeedNodeSafetyCheck
37014		err := json.Unmarshal(body, &snsc)
37015		return snsc, err
37016	case string(KindWaitForInbuildReplica):
37017		var wfirsc WaitForInbuildReplicaSafetyCheck
37018		err := json.Unmarshal(body, &wfirsc)
37019		return wfirsc, err
37020	case string(KindWaitForPrimaryPlacement):
37021		var wfppsc WaitForPrimaryPlacementSafetyCheck
37022		err := json.Unmarshal(body, &wfppsc)
37023		return wfppsc, err
37024	case string(KindWaitForPrimarySwap):
37025		var wfpssc WaitForPrimarySwapSafetyCheck
37026		err := json.Unmarshal(body, &wfpssc)
37027		return wfpssc, err
37028	case string(KindWaitForReconfiguration):
37029		var wfrsc WaitForReconfigurationSafetyCheck
37030		err := json.Unmarshal(body, &wfrsc)
37031		return wfrsc, err
37032	default:
37033		var sc SafetyCheck
37034		err := json.Unmarshal(body, &sc)
37035		return sc, err
37036	}
37037}
37038func unmarshalBasicSafetyCheckArray(body []byte) ([]BasicSafetyCheck, error) {
37039	var rawMessages []*json.RawMessage
37040	err := json.Unmarshal(body, &rawMessages)
37041	if err != nil {
37042		return nil, err
37043	}
37044
37045	scArray := make([]BasicSafetyCheck, len(rawMessages))
37046
37047	for index, rawMessage := range rawMessages {
37048		sc, err := unmarshalBasicSafetyCheck(*rawMessage)
37049		if err != nil {
37050			return nil, err
37051		}
37052		scArray[index] = sc
37053	}
37054	return scArray, nil
37055}
37056
37057// MarshalJSON is the custom marshaler for SafetyCheck.
37058func (sc SafetyCheck) MarshalJSON() ([]byte, error) {
37059	sc.Kind = KindSafetyCheck
37060	objectMap := make(map[string]interface{})
37061	if sc.Kind != "" {
37062		objectMap["Kind"] = sc.Kind
37063	}
37064	return json.Marshal(objectMap)
37065}
37066
37067// AsPartitionSafetyCheck is the BasicSafetyCheck implementation for SafetyCheck.
37068func (sc SafetyCheck) AsPartitionSafetyCheck() (*PartitionSafetyCheck, bool) {
37069	return nil, false
37070}
37071
37072// AsBasicPartitionSafetyCheck is the BasicSafetyCheck implementation for SafetyCheck.
37073func (sc SafetyCheck) AsBasicPartitionSafetyCheck() (BasicPartitionSafetyCheck, bool) {
37074	return nil, false
37075}
37076
37077// AsEnsureAvailabilitySafetyCheck is the BasicSafetyCheck implementation for SafetyCheck.
37078func (sc SafetyCheck) AsEnsureAvailabilitySafetyCheck() (*EnsureAvailabilitySafetyCheck, bool) {
37079	return nil, false
37080}
37081
37082// AsEnsurePartitionQuorumSafetyCheck is the BasicSafetyCheck implementation for SafetyCheck.
37083func (sc SafetyCheck) AsEnsurePartitionQuorumSafetyCheck() (*EnsurePartitionQuorumSafetyCheck, bool) {
37084	return nil, false
37085}
37086
37087// AsSeedNodeSafetyCheck is the BasicSafetyCheck implementation for SafetyCheck.
37088func (sc SafetyCheck) AsSeedNodeSafetyCheck() (*SeedNodeSafetyCheck, bool) {
37089	return nil, false
37090}
37091
37092// AsWaitForInbuildReplicaSafetyCheck is the BasicSafetyCheck implementation for SafetyCheck.
37093func (sc SafetyCheck) AsWaitForInbuildReplicaSafetyCheck() (*WaitForInbuildReplicaSafetyCheck, bool) {
37094	return nil, false
37095}
37096
37097// AsWaitForPrimaryPlacementSafetyCheck is the BasicSafetyCheck implementation for SafetyCheck.
37098func (sc SafetyCheck) AsWaitForPrimaryPlacementSafetyCheck() (*WaitForPrimaryPlacementSafetyCheck, bool) {
37099	return nil, false
37100}
37101
37102// AsWaitForPrimarySwapSafetyCheck is the BasicSafetyCheck implementation for SafetyCheck.
37103func (sc SafetyCheck) AsWaitForPrimarySwapSafetyCheck() (*WaitForPrimarySwapSafetyCheck, bool) {
37104	return nil, false
37105}
37106
37107// AsWaitForReconfigurationSafetyCheck is the BasicSafetyCheck implementation for SafetyCheck.
37108func (sc SafetyCheck) AsWaitForReconfigurationSafetyCheck() (*WaitForReconfigurationSafetyCheck, bool) {
37109	return nil, false
37110}
37111
37112// AsSafetyCheck is the BasicSafetyCheck implementation for SafetyCheck.
37113func (sc SafetyCheck) AsSafetyCheck() (*SafetyCheck, bool) {
37114	return &sc, true
37115}
37116
37117// AsBasicSafetyCheck is the BasicSafetyCheck implementation for SafetyCheck.
37118func (sc SafetyCheck) AsBasicSafetyCheck() (BasicSafetyCheck, bool) {
37119	return &sc, true
37120}
37121
37122// SafetyCheckWrapper a wrapper for the safety check object. Safety checks are performed by service fabric
37123// before continuing with the operations. These checks ensure the availability of the service and the
37124// reliability of the state.
37125type SafetyCheckWrapper struct {
37126	// 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.
37127	SafetyCheck BasicSafetyCheck `json:"SafetyCheck,omitempty"`
37128}
37129
37130// UnmarshalJSON is the custom unmarshaler for SafetyCheckWrapper struct.
37131func (scw *SafetyCheckWrapper) UnmarshalJSON(body []byte) error {
37132	var m map[string]*json.RawMessage
37133	err := json.Unmarshal(body, &m)
37134	if err != nil {
37135		return err
37136	}
37137	for k, v := range m {
37138		switch k {
37139		case "SafetyCheck":
37140			if v != nil {
37141				safetyCheck, err := unmarshalBasicSafetyCheck(*v)
37142				if err != nil {
37143					return err
37144				}
37145				scw.SafetyCheck = safetyCheck
37146			}
37147		}
37148	}
37149
37150	return nil
37151}
37152
37153// BasicScalingMechanismDescription describes the mechanism for performing a scaling operation.
37154type BasicScalingMechanismDescription interface {
37155	AsPartitionInstanceCountScaleMechanism() (*PartitionInstanceCountScaleMechanism, bool)
37156	AsAddRemoveIncrementalNamedPartitionScalingMechanism() (*AddRemoveIncrementalNamedPartitionScalingMechanism, bool)
37157	AsScalingMechanismDescription() (*ScalingMechanismDescription, bool)
37158}
37159
37160// ScalingMechanismDescription describes the mechanism for performing a scaling operation.
37161type ScalingMechanismDescription struct {
37162	// Kind - Possible values include: 'KindScalingMechanismDescription', 'KindPartitionInstanceCount', 'KindAddRemoveIncrementalNamedPartition'
37163	Kind KindBasicScalingMechanismDescription `json:"Kind,omitempty"`
37164}
37165
37166func unmarshalBasicScalingMechanismDescription(body []byte) (BasicScalingMechanismDescription, error) {
37167	var m map[string]interface{}
37168	err := json.Unmarshal(body, &m)
37169	if err != nil {
37170		return nil, err
37171	}
37172
37173	switch m["Kind"] {
37174	case string(KindPartitionInstanceCount):
37175		var picsm PartitionInstanceCountScaleMechanism
37176		err := json.Unmarshal(body, &picsm)
37177		return picsm, err
37178	case string(KindAddRemoveIncrementalNamedPartition):
37179		var arinpsm AddRemoveIncrementalNamedPartitionScalingMechanism
37180		err := json.Unmarshal(body, &arinpsm)
37181		return arinpsm, err
37182	default:
37183		var smd ScalingMechanismDescription
37184		err := json.Unmarshal(body, &smd)
37185		return smd, err
37186	}
37187}
37188func unmarshalBasicScalingMechanismDescriptionArray(body []byte) ([]BasicScalingMechanismDescription, error) {
37189	var rawMessages []*json.RawMessage
37190	err := json.Unmarshal(body, &rawMessages)
37191	if err != nil {
37192		return nil, err
37193	}
37194
37195	smdArray := make([]BasicScalingMechanismDescription, len(rawMessages))
37196
37197	for index, rawMessage := range rawMessages {
37198		smd, err := unmarshalBasicScalingMechanismDescription(*rawMessage)
37199		if err != nil {
37200			return nil, err
37201		}
37202		smdArray[index] = smd
37203	}
37204	return smdArray, nil
37205}
37206
37207// MarshalJSON is the custom marshaler for ScalingMechanismDescription.
37208func (smd ScalingMechanismDescription) MarshalJSON() ([]byte, error) {
37209	smd.Kind = KindScalingMechanismDescription
37210	objectMap := make(map[string]interface{})
37211	if smd.Kind != "" {
37212		objectMap["Kind"] = smd.Kind
37213	}
37214	return json.Marshal(objectMap)
37215}
37216
37217// AsPartitionInstanceCountScaleMechanism is the BasicScalingMechanismDescription implementation for ScalingMechanismDescription.
37218func (smd ScalingMechanismDescription) AsPartitionInstanceCountScaleMechanism() (*PartitionInstanceCountScaleMechanism, bool) {
37219	return nil, false
37220}
37221
37222// AsAddRemoveIncrementalNamedPartitionScalingMechanism is the BasicScalingMechanismDescription implementation for ScalingMechanismDescription.
37223func (smd ScalingMechanismDescription) AsAddRemoveIncrementalNamedPartitionScalingMechanism() (*AddRemoveIncrementalNamedPartitionScalingMechanism, bool) {
37224	return nil, false
37225}
37226
37227// AsScalingMechanismDescription is the BasicScalingMechanismDescription implementation for ScalingMechanismDescription.
37228func (smd ScalingMechanismDescription) AsScalingMechanismDescription() (*ScalingMechanismDescription, bool) {
37229	return &smd, true
37230}
37231
37232// AsBasicScalingMechanismDescription is the BasicScalingMechanismDescription implementation for ScalingMechanismDescription.
37233func (smd ScalingMechanismDescription) AsBasicScalingMechanismDescription() (BasicScalingMechanismDescription, bool) {
37234	return &smd, true
37235}
37236
37237// ScalingPolicyDescription describes how the scaling should be performed
37238type ScalingPolicyDescription struct {
37239	// ScalingTrigger - Specifies the trigger associated with this scaling policy
37240	ScalingTrigger BasicScalingTriggerDescription `json:"ScalingTrigger,omitempty"`
37241	// ScalingMechanism - Specifies the mechanism associated with this scaling policy
37242	ScalingMechanism BasicScalingMechanismDescription `json:"ScalingMechanism,omitempty"`
37243}
37244
37245// UnmarshalJSON is the custom unmarshaler for ScalingPolicyDescription struct.
37246func (spd *ScalingPolicyDescription) UnmarshalJSON(body []byte) error {
37247	var m map[string]*json.RawMessage
37248	err := json.Unmarshal(body, &m)
37249	if err != nil {
37250		return err
37251	}
37252	for k, v := range m {
37253		switch k {
37254		case "ScalingTrigger":
37255			if v != nil {
37256				scalingTrigger, err := unmarshalBasicScalingTriggerDescription(*v)
37257				if err != nil {
37258					return err
37259				}
37260				spd.ScalingTrigger = scalingTrigger
37261			}
37262		case "ScalingMechanism":
37263			if v != nil {
37264				scalingMechanism, err := unmarshalBasicScalingMechanismDescription(*v)
37265				if err != nil {
37266					return err
37267				}
37268				spd.ScalingMechanism = scalingMechanism
37269			}
37270		}
37271	}
37272
37273	return nil
37274}
37275
37276// BasicScalingTriggerDescription describes the trigger for performing a scaling operation.
37277type BasicScalingTriggerDescription interface {
37278	AsAveragePartitionLoadScalingTrigger() (*AveragePartitionLoadScalingTrigger, bool)
37279	AsAverageServiceLoadScalingTrigger() (*AverageServiceLoadScalingTrigger, bool)
37280	AsScalingTriggerDescription() (*ScalingTriggerDescription, bool)
37281}
37282
37283// ScalingTriggerDescription describes the trigger for performing a scaling operation.
37284type ScalingTriggerDescription struct {
37285	// Kind - Possible values include: 'KindScalingTriggerDescription', 'KindAveragePartitionLoad', 'KindAverageServiceLoad'
37286	Kind KindBasicScalingTriggerDescription `json:"Kind,omitempty"`
37287}
37288
37289func unmarshalBasicScalingTriggerDescription(body []byte) (BasicScalingTriggerDescription, error) {
37290	var m map[string]interface{}
37291	err := json.Unmarshal(body, &m)
37292	if err != nil {
37293		return nil, err
37294	}
37295
37296	switch m["Kind"] {
37297	case string(KindAveragePartitionLoad):
37298		var aplst AveragePartitionLoadScalingTrigger
37299		err := json.Unmarshal(body, &aplst)
37300		return aplst, err
37301	case string(KindAverageServiceLoad):
37302		var aslst AverageServiceLoadScalingTrigger
37303		err := json.Unmarshal(body, &aslst)
37304		return aslst, err
37305	default:
37306		var std ScalingTriggerDescription
37307		err := json.Unmarshal(body, &std)
37308		return std, err
37309	}
37310}
37311func unmarshalBasicScalingTriggerDescriptionArray(body []byte) ([]BasicScalingTriggerDescription, error) {
37312	var rawMessages []*json.RawMessage
37313	err := json.Unmarshal(body, &rawMessages)
37314	if err != nil {
37315		return nil, err
37316	}
37317
37318	stdArray := make([]BasicScalingTriggerDescription, len(rawMessages))
37319
37320	for index, rawMessage := range rawMessages {
37321		std, err := unmarshalBasicScalingTriggerDescription(*rawMessage)
37322		if err != nil {
37323			return nil, err
37324		}
37325		stdArray[index] = std
37326	}
37327	return stdArray, nil
37328}
37329
37330// MarshalJSON is the custom marshaler for ScalingTriggerDescription.
37331func (std ScalingTriggerDescription) MarshalJSON() ([]byte, error) {
37332	std.Kind = KindScalingTriggerDescription
37333	objectMap := make(map[string]interface{})
37334	if std.Kind != "" {
37335		objectMap["Kind"] = std.Kind
37336	}
37337	return json.Marshal(objectMap)
37338}
37339
37340// AsAveragePartitionLoadScalingTrigger is the BasicScalingTriggerDescription implementation for ScalingTriggerDescription.
37341func (std ScalingTriggerDescription) AsAveragePartitionLoadScalingTrigger() (*AveragePartitionLoadScalingTrigger, bool) {
37342	return nil, false
37343}
37344
37345// AsAverageServiceLoadScalingTrigger is the BasicScalingTriggerDescription implementation for ScalingTriggerDescription.
37346func (std ScalingTriggerDescription) AsAverageServiceLoadScalingTrigger() (*AverageServiceLoadScalingTrigger, bool) {
37347	return nil, false
37348}
37349
37350// AsScalingTriggerDescription is the BasicScalingTriggerDescription implementation for ScalingTriggerDescription.
37351func (std ScalingTriggerDescription) AsScalingTriggerDescription() (*ScalingTriggerDescription, bool) {
37352	return &std, true
37353}
37354
37355// AsBasicScalingTriggerDescription is the BasicScalingTriggerDescription implementation for ScalingTriggerDescription.
37356func (std ScalingTriggerDescription) AsBasicScalingTriggerDescription() (BasicScalingTriggerDescription, bool) {
37357	return &std, true
37358}
37359
37360// SecondaryActiveReplicatorStatus status of the secondary replicator when it is in active mode and is part
37361// of the replica set.
37362type SecondaryActiveReplicatorStatus struct {
37363	// ReplicationQueueStatus - Details about the replication queue on the secondary replicator.
37364	ReplicationQueueStatus *ReplicatorQueueStatus `json:"ReplicationQueueStatus,omitempty"`
37365	// LastReplicationOperationReceivedTimeUtc - The last time-stamp (UTC) at which a replication operation was received from the primary.
37366	// UTC 0 represents an invalid value, indicating that a replication operation message was never received.
37367	LastReplicationOperationReceivedTimeUtc *date.Time `json:"LastReplicationOperationReceivedTimeUtc,omitempty"`
37368	// IsInBuild - Value that indicates whether the replica is currently being built.
37369	IsInBuild *bool `json:"IsInBuild,omitempty"`
37370	// CopyQueueStatus - Details about the copy queue on the secondary replicator.
37371	CopyQueueStatus *ReplicatorQueueStatus `json:"CopyQueueStatus,omitempty"`
37372	// LastCopyOperationReceivedTimeUtc - The last time-stamp (UTC) at which a copy operation was received from the primary.
37373	// UTC 0 represents an invalid value, indicating that a copy operation message was never received.
37374	LastCopyOperationReceivedTimeUtc *date.Time `json:"LastCopyOperationReceivedTimeUtc,omitempty"`
37375	// LastAcknowledgementSentTimeUtc - The last time-stamp (UTC) at which an acknowledgment was sent to the primary replicator.
37376	// UTC 0 represents an invalid value, indicating that an acknowledgment message was never sent.
37377	LastAcknowledgementSentTimeUtc *date.Time `json:"LastAcknowledgementSentTimeUtc,omitempty"`
37378	// Kind - Possible values include: 'KindReplicatorStatus', 'KindPrimary', 'KindSecondaryReplicatorStatus', 'KindActiveSecondary', 'KindIdleSecondary'
37379	Kind KindBasicReplicatorStatus `json:"Kind,omitempty"`
37380}
37381
37382// MarshalJSON is the custom marshaler for SecondaryActiveReplicatorStatus.
37383func (sars SecondaryActiveReplicatorStatus) MarshalJSON() ([]byte, error) {
37384	sars.Kind = KindActiveSecondary
37385	objectMap := make(map[string]interface{})
37386	if sars.ReplicationQueueStatus != nil {
37387		objectMap["ReplicationQueueStatus"] = sars.ReplicationQueueStatus
37388	}
37389	if sars.LastReplicationOperationReceivedTimeUtc != nil {
37390		objectMap["LastReplicationOperationReceivedTimeUtc"] = sars.LastReplicationOperationReceivedTimeUtc
37391	}
37392	if sars.IsInBuild != nil {
37393		objectMap["IsInBuild"] = sars.IsInBuild
37394	}
37395	if sars.CopyQueueStatus != nil {
37396		objectMap["CopyQueueStatus"] = sars.CopyQueueStatus
37397	}
37398	if sars.LastCopyOperationReceivedTimeUtc != nil {
37399		objectMap["LastCopyOperationReceivedTimeUtc"] = sars.LastCopyOperationReceivedTimeUtc
37400	}
37401	if sars.LastAcknowledgementSentTimeUtc != nil {
37402		objectMap["LastAcknowledgementSentTimeUtc"] = sars.LastAcknowledgementSentTimeUtc
37403	}
37404	if sars.Kind != "" {
37405		objectMap["Kind"] = sars.Kind
37406	}
37407	return json.Marshal(objectMap)
37408}
37409
37410// AsPrimaryReplicatorStatus is the BasicReplicatorStatus implementation for SecondaryActiveReplicatorStatus.
37411func (sars SecondaryActiveReplicatorStatus) AsPrimaryReplicatorStatus() (*PrimaryReplicatorStatus, bool) {
37412	return nil, false
37413}
37414
37415// AsSecondaryReplicatorStatus is the BasicReplicatorStatus implementation for SecondaryActiveReplicatorStatus.
37416func (sars SecondaryActiveReplicatorStatus) AsSecondaryReplicatorStatus() (*SecondaryReplicatorStatus, bool) {
37417	return nil, false
37418}
37419
37420// AsBasicSecondaryReplicatorStatus is the BasicReplicatorStatus implementation for SecondaryActiveReplicatorStatus.
37421func (sars SecondaryActiveReplicatorStatus) AsBasicSecondaryReplicatorStatus() (BasicSecondaryReplicatorStatus, bool) {
37422	return &sars, true
37423}
37424
37425// AsSecondaryActiveReplicatorStatus is the BasicReplicatorStatus implementation for SecondaryActiveReplicatorStatus.
37426func (sars SecondaryActiveReplicatorStatus) AsSecondaryActiveReplicatorStatus() (*SecondaryActiveReplicatorStatus, bool) {
37427	return &sars, true
37428}
37429
37430// AsSecondaryIdleReplicatorStatus is the BasicReplicatorStatus implementation for SecondaryActiveReplicatorStatus.
37431func (sars SecondaryActiveReplicatorStatus) AsSecondaryIdleReplicatorStatus() (*SecondaryIdleReplicatorStatus, bool) {
37432	return nil, false
37433}
37434
37435// AsReplicatorStatus is the BasicReplicatorStatus implementation for SecondaryActiveReplicatorStatus.
37436func (sars SecondaryActiveReplicatorStatus) AsReplicatorStatus() (*ReplicatorStatus, bool) {
37437	return nil, false
37438}
37439
37440// AsBasicReplicatorStatus is the BasicReplicatorStatus implementation for SecondaryActiveReplicatorStatus.
37441func (sars SecondaryActiveReplicatorStatus) AsBasicReplicatorStatus() (BasicReplicatorStatus, bool) {
37442	return &sars, true
37443}
37444
37445// SecondaryIdleReplicatorStatus status of the secondary replicator when it is in idle mode and is being
37446// built by the primary.
37447type SecondaryIdleReplicatorStatus struct {
37448	// ReplicationQueueStatus - Details about the replication queue on the secondary replicator.
37449	ReplicationQueueStatus *ReplicatorQueueStatus `json:"ReplicationQueueStatus,omitempty"`
37450	// LastReplicationOperationReceivedTimeUtc - The last time-stamp (UTC) at which a replication operation was received from the primary.
37451	// UTC 0 represents an invalid value, indicating that a replication operation message was never received.
37452	LastReplicationOperationReceivedTimeUtc *date.Time `json:"LastReplicationOperationReceivedTimeUtc,omitempty"`
37453	// IsInBuild - Value that indicates whether the replica is currently being built.
37454	IsInBuild *bool `json:"IsInBuild,omitempty"`
37455	// CopyQueueStatus - Details about the copy queue on the secondary replicator.
37456	CopyQueueStatus *ReplicatorQueueStatus `json:"CopyQueueStatus,omitempty"`
37457	// LastCopyOperationReceivedTimeUtc - The last time-stamp (UTC) at which a copy operation was received from the primary.
37458	// UTC 0 represents an invalid value, indicating that a copy operation message was never received.
37459	LastCopyOperationReceivedTimeUtc *date.Time `json:"LastCopyOperationReceivedTimeUtc,omitempty"`
37460	// LastAcknowledgementSentTimeUtc - The last time-stamp (UTC) at which an acknowledgment was sent to the primary replicator.
37461	// UTC 0 represents an invalid value, indicating that an acknowledgment message was never sent.
37462	LastAcknowledgementSentTimeUtc *date.Time `json:"LastAcknowledgementSentTimeUtc,omitempty"`
37463	// Kind - Possible values include: 'KindReplicatorStatus', 'KindPrimary', 'KindSecondaryReplicatorStatus', 'KindActiveSecondary', 'KindIdleSecondary'
37464	Kind KindBasicReplicatorStatus `json:"Kind,omitempty"`
37465}
37466
37467// MarshalJSON is the custom marshaler for SecondaryIdleReplicatorStatus.
37468func (sirs SecondaryIdleReplicatorStatus) MarshalJSON() ([]byte, error) {
37469	sirs.Kind = KindIdleSecondary
37470	objectMap := make(map[string]interface{})
37471	if sirs.ReplicationQueueStatus != nil {
37472		objectMap["ReplicationQueueStatus"] = sirs.ReplicationQueueStatus
37473	}
37474	if sirs.LastReplicationOperationReceivedTimeUtc != nil {
37475		objectMap["LastReplicationOperationReceivedTimeUtc"] = sirs.LastReplicationOperationReceivedTimeUtc
37476	}
37477	if sirs.IsInBuild != nil {
37478		objectMap["IsInBuild"] = sirs.IsInBuild
37479	}
37480	if sirs.CopyQueueStatus != nil {
37481		objectMap["CopyQueueStatus"] = sirs.CopyQueueStatus
37482	}
37483	if sirs.LastCopyOperationReceivedTimeUtc != nil {
37484		objectMap["LastCopyOperationReceivedTimeUtc"] = sirs.LastCopyOperationReceivedTimeUtc
37485	}
37486	if sirs.LastAcknowledgementSentTimeUtc != nil {
37487		objectMap["LastAcknowledgementSentTimeUtc"] = sirs.LastAcknowledgementSentTimeUtc
37488	}
37489	if sirs.Kind != "" {
37490		objectMap["Kind"] = sirs.Kind
37491	}
37492	return json.Marshal(objectMap)
37493}
37494
37495// AsPrimaryReplicatorStatus is the BasicReplicatorStatus implementation for SecondaryIdleReplicatorStatus.
37496func (sirs SecondaryIdleReplicatorStatus) AsPrimaryReplicatorStatus() (*PrimaryReplicatorStatus, bool) {
37497	return nil, false
37498}
37499
37500// AsSecondaryReplicatorStatus is the BasicReplicatorStatus implementation for SecondaryIdleReplicatorStatus.
37501func (sirs SecondaryIdleReplicatorStatus) AsSecondaryReplicatorStatus() (*SecondaryReplicatorStatus, bool) {
37502	return nil, false
37503}
37504
37505// AsBasicSecondaryReplicatorStatus is the BasicReplicatorStatus implementation for SecondaryIdleReplicatorStatus.
37506func (sirs SecondaryIdleReplicatorStatus) AsBasicSecondaryReplicatorStatus() (BasicSecondaryReplicatorStatus, bool) {
37507	return &sirs, true
37508}
37509
37510// AsSecondaryActiveReplicatorStatus is the BasicReplicatorStatus implementation for SecondaryIdleReplicatorStatus.
37511func (sirs SecondaryIdleReplicatorStatus) AsSecondaryActiveReplicatorStatus() (*SecondaryActiveReplicatorStatus, bool) {
37512	return nil, false
37513}
37514
37515// AsSecondaryIdleReplicatorStatus is the BasicReplicatorStatus implementation for SecondaryIdleReplicatorStatus.
37516func (sirs SecondaryIdleReplicatorStatus) AsSecondaryIdleReplicatorStatus() (*SecondaryIdleReplicatorStatus, bool) {
37517	return &sirs, true
37518}
37519
37520// AsReplicatorStatus is the BasicReplicatorStatus implementation for SecondaryIdleReplicatorStatus.
37521func (sirs SecondaryIdleReplicatorStatus) AsReplicatorStatus() (*ReplicatorStatus, bool) {
37522	return nil, false
37523}
37524
37525// AsBasicReplicatorStatus is the BasicReplicatorStatus implementation for SecondaryIdleReplicatorStatus.
37526func (sirs SecondaryIdleReplicatorStatus) AsBasicReplicatorStatus() (BasicReplicatorStatus, bool) {
37527	return &sirs, true
37528}
37529
37530// BasicSecondaryReplicatorStatus provides statistics about the Service Fabric Replicator, when it is functioning in a
37531// ActiveSecondary role.
37532type BasicSecondaryReplicatorStatus interface {
37533	AsSecondaryActiveReplicatorStatus() (*SecondaryActiveReplicatorStatus, bool)
37534	AsSecondaryIdleReplicatorStatus() (*SecondaryIdleReplicatorStatus, bool)
37535	AsSecondaryReplicatorStatus() (*SecondaryReplicatorStatus, bool)
37536}
37537
37538// SecondaryReplicatorStatus provides statistics about the Service Fabric Replicator, when it is functioning in
37539// a ActiveSecondary role.
37540type SecondaryReplicatorStatus struct {
37541	// ReplicationQueueStatus - Details about the replication queue on the secondary replicator.
37542	ReplicationQueueStatus *ReplicatorQueueStatus `json:"ReplicationQueueStatus,omitempty"`
37543	// LastReplicationOperationReceivedTimeUtc - The last time-stamp (UTC) at which a replication operation was received from the primary.
37544	// UTC 0 represents an invalid value, indicating that a replication operation message was never received.
37545	LastReplicationOperationReceivedTimeUtc *date.Time `json:"LastReplicationOperationReceivedTimeUtc,omitempty"`
37546	// IsInBuild - Value that indicates whether the replica is currently being built.
37547	IsInBuild *bool `json:"IsInBuild,omitempty"`
37548	// CopyQueueStatus - Details about the copy queue on the secondary replicator.
37549	CopyQueueStatus *ReplicatorQueueStatus `json:"CopyQueueStatus,omitempty"`
37550	// LastCopyOperationReceivedTimeUtc - The last time-stamp (UTC) at which a copy operation was received from the primary.
37551	// UTC 0 represents an invalid value, indicating that a copy operation message was never received.
37552	LastCopyOperationReceivedTimeUtc *date.Time `json:"LastCopyOperationReceivedTimeUtc,omitempty"`
37553	// LastAcknowledgementSentTimeUtc - The last time-stamp (UTC) at which an acknowledgment was sent to the primary replicator.
37554	// UTC 0 represents an invalid value, indicating that an acknowledgment message was never sent.
37555	LastAcknowledgementSentTimeUtc *date.Time `json:"LastAcknowledgementSentTimeUtc,omitempty"`
37556	// Kind - Possible values include: 'KindReplicatorStatus', 'KindPrimary', 'KindSecondaryReplicatorStatus', 'KindActiveSecondary', 'KindIdleSecondary'
37557	Kind KindBasicReplicatorStatus `json:"Kind,omitempty"`
37558}
37559
37560func unmarshalBasicSecondaryReplicatorStatus(body []byte) (BasicSecondaryReplicatorStatus, error) {
37561	var m map[string]interface{}
37562	err := json.Unmarshal(body, &m)
37563	if err != nil {
37564		return nil, err
37565	}
37566
37567	switch m["Kind"] {
37568	case string(KindActiveSecondary):
37569		var sars SecondaryActiveReplicatorStatus
37570		err := json.Unmarshal(body, &sars)
37571		return sars, err
37572	case string(KindIdleSecondary):
37573		var sirs SecondaryIdleReplicatorStatus
37574		err := json.Unmarshal(body, &sirs)
37575		return sirs, err
37576	default:
37577		var srs SecondaryReplicatorStatus
37578		err := json.Unmarshal(body, &srs)
37579		return srs, err
37580	}
37581}
37582func unmarshalBasicSecondaryReplicatorStatusArray(body []byte) ([]BasicSecondaryReplicatorStatus, error) {
37583	var rawMessages []*json.RawMessage
37584	err := json.Unmarshal(body, &rawMessages)
37585	if err != nil {
37586		return nil, err
37587	}
37588
37589	srsArray := make([]BasicSecondaryReplicatorStatus, len(rawMessages))
37590
37591	for index, rawMessage := range rawMessages {
37592		srs, err := unmarshalBasicSecondaryReplicatorStatus(*rawMessage)
37593		if err != nil {
37594			return nil, err
37595		}
37596		srsArray[index] = srs
37597	}
37598	return srsArray, nil
37599}
37600
37601// MarshalJSON is the custom marshaler for SecondaryReplicatorStatus.
37602func (srs SecondaryReplicatorStatus) MarshalJSON() ([]byte, error) {
37603	srs.Kind = KindSecondaryReplicatorStatus
37604	objectMap := make(map[string]interface{})
37605	if srs.ReplicationQueueStatus != nil {
37606		objectMap["ReplicationQueueStatus"] = srs.ReplicationQueueStatus
37607	}
37608	if srs.LastReplicationOperationReceivedTimeUtc != nil {
37609		objectMap["LastReplicationOperationReceivedTimeUtc"] = srs.LastReplicationOperationReceivedTimeUtc
37610	}
37611	if srs.IsInBuild != nil {
37612		objectMap["IsInBuild"] = srs.IsInBuild
37613	}
37614	if srs.CopyQueueStatus != nil {
37615		objectMap["CopyQueueStatus"] = srs.CopyQueueStatus
37616	}
37617	if srs.LastCopyOperationReceivedTimeUtc != nil {
37618		objectMap["LastCopyOperationReceivedTimeUtc"] = srs.LastCopyOperationReceivedTimeUtc
37619	}
37620	if srs.LastAcknowledgementSentTimeUtc != nil {
37621		objectMap["LastAcknowledgementSentTimeUtc"] = srs.LastAcknowledgementSentTimeUtc
37622	}
37623	if srs.Kind != "" {
37624		objectMap["Kind"] = srs.Kind
37625	}
37626	return json.Marshal(objectMap)
37627}
37628
37629// AsPrimaryReplicatorStatus is the BasicReplicatorStatus implementation for SecondaryReplicatorStatus.
37630func (srs SecondaryReplicatorStatus) AsPrimaryReplicatorStatus() (*PrimaryReplicatorStatus, bool) {
37631	return nil, false
37632}
37633
37634// AsSecondaryReplicatorStatus is the BasicReplicatorStatus implementation for SecondaryReplicatorStatus.
37635func (srs SecondaryReplicatorStatus) AsSecondaryReplicatorStatus() (*SecondaryReplicatorStatus, bool) {
37636	return &srs, true
37637}
37638
37639// AsBasicSecondaryReplicatorStatus is the BasicReplicatorStatus implementation for SecondaryReplicatorStatus.
37640func (srs SecondaryReplicatorStatus) AsBasicSecondaryReplicatorStatus() (BasicSecondaryReplicatorStatus, bool) {
37641	return &srs, true
37642}
37643
37644// AsSecondaryActiveReplicatorStatus is the BasicReplicatorStatus implementation for SecondaryReplicatorStatus.
37645func (srs SecondaryReplicatorStatus) AsSecondaryActiveReplicatorStatus() (*SecondaryActiveReplicatorStatus, bool) {
37646	return nil, false
37647}
37648
37649// AsSecondaryIdleReplicatorStatus is the BasicReplicatorStatus implementation for SecondaryReplicatorStatus.
37650func (srs SecondaryReplicatorStatus) AsSecondaryIdleReplicatorStatus() (*SecondaryIdleReplicatorStatus, bool) {
37651	return nil, false
37652}
37653
37654// AsReplicatorStatus is the BasicReplicatorStatus implementation for SecondaryReplicatorStatus.
37655func (srs SecondaryReplicatorStatus) AsReplicatorStatus() (*ReplicatorStatus, bool) {
37656	return nil, false
37657}
37658
37659// AsBasicReplicatorStatus is the BasicReplicatorStatus implementation for SecondaryReplicatorStatus.
37660func (srs SecondaryReplicatorStatus) AsBasicReplicatorStatus() (BasicReplicatorStatus, bool) {
37661	return &srs, true
37662}
37663
37664// SecretResourceDescription this type describes a secret resource.
37665type SecretResourceDescription struct {
37666	autorest.Response `json:"-"`
37667	// Properties - Describes the properties of a secret resource.
37668	Properties BasicSecretResourceProperties `json:"properties,omitempty"`
37669	// Name - Name of the Secret resource.
37670	Name *string `json:"name,omitempty"`
37671}
37672
37673// UnmarshalJSON is the custom unmarshaler for SecretResourceDescription struct.
37674func (srd *SecretResourceDescription) UnmarshalJSON(body []byte) error {
37675	var m map[string]*json.RawMessage
37676	err := json.Unmarshal(body, &m)
37677	if err != nil {
37678		return err
37679	}
37680	for k, v := range m {
37681		switch k {
37682		case "properties":
37683			if v != nil {
37684				properties, err := unmarshalBasicSecretResourceProperties(*v)
37685				if err != nil {
37686					return err
37687				}
37688				srd.Properties = properties
37689			}
37690		case "name":
37691			if v != nil {
37692				var name string
37693				err = json.Unmarshal(*v, &name)
37694				if err != nil {
37695					return err
37696				}
37697				srd.Name = &name
37698			}
37699		}
37700	}
37701
37702	return nil
37703}
37704
37705// BasicSecretResourceProperties describes the properties of a secret resource.
37706type BasicSecretResourceProperties interface {
37707	AsInlinedValueSecretResourceProperties() (*InlinedValueSecretResourceProperties, bool)
37708	AsSecretResourceProperties() (*SecretResourceProperties, bool)
37709}
37710
37711// SecretResourceProperties describes the properties of a secret resource.
37712type SecretResourceProperties struct {
37713	// Description - User readable description of the secret.
37714	Description *string `json:"description,omitempty"`
37715	// Status - READ-ONLY; Status of the resource. Possible values include: 'ResourceStatusUnknown', 'ResourceStatusReady', 'ResourceStatusUpgrading', 'ResourceStatusCreating', 'ResourceStatusDeleting', 'ResourceStatusFailed'
37716	Status ResourceStatus `json:"status,omitempty"`
37717	// StatusDetails - READ-ONLY; Gives additional information about the current status of the secret.
37718	StatusDetails *string `json:"statusDetails,omitempty"`
37719	// 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.
37720	ContentType *string `json:"contentType,omitempty"`
37721	// Kind - Possible values include: 'KindSecretResourcePropertiesBase', 'KindSecretResourceProperties', 'KindInlinedValue'
37722	Kind KindBasicSecretResourcePropertiesBase `json:"kind,omitempty"`
37723}
37724
37725func unmarshalBasicSecretResourceProperties(body []byte) (BasicSecretResourceProperties, error) {
37726	var m map[string]interface{}
37727	err := json.Unmarshal(body, &m)
37728	if err != nil {
37729		return nil, err
37730	}
37731
37732	switch m["kind"] {
37733	case string(KindInlinedValue):
37734		var ivsrp InlinedValueSecretResourceProperties
37735		err := json.Unmarshal(body, &ivsrp)
37736		return ivsrp, err
37737	default:
37738		var srp SecretResourceProperties
37739		err := json.Unmarshal(body, &srp)
37740		return srp, err
37741	}
37742}
37743func unmarshalBasicSecretResourcePropertiesArray(body []byte) ([]BasicSecretResourceProperties, error) {
37744	var rawMessages []*json.RawMessage
37745	err := json.Unmarshal(body, &rawMessages)
37746	if err != nil {
37747		return nil, err
37748	}
37749
37750	srpArray := make([]BasicSecretResourceProperties, len(rawMessages))
37751
37752	for index, rawMessage := range rawMessages {
37753		srp, err := unmarshalBasicSecretResourceProperties(*rawMessage)
37754		if err != nil {
37755			return nil, err
37756		}
37757		srpArray[index] = srp
37758	}
37759	return srpArray, nil
37760}
37761
37762// MarshalJSON is the custom marshaler for SecretResourceProperties.
37763func (srp SecretResourceProperties) MarshalJSON() ([]byte, error) {
37764	srp.Kind = KindSecretResourceProperties
37765	objectMap := make(map[string]interface{})
37766	if srp.Description != nil {
37767		objectMap["description"] = srp.Description
37768	}
37769	if srp.ContentType != nil {
37770		objectMap["contentType"] = srp.ContentType
37771	}
37772	if srp.Kind != "" {
37773		objectMap["kind"] = srp.Kind
37774	}
37775	return json.Marshal(objectMap)
37776}
37777
37778// AsSecretResourceProperties is the BasicSecretResourcePropertiesBase implementation for SecretResourceProperties.
37779func (srp SecretResourceProperties) AsSecretResourceProperties() (*SecretResourceProperties, bool) {
37780	return &srp, true
37781}
37782
37783// AsBasicSecretResourceProperties is the BasicSecretResourcePropertiesBase implementation for SecretResourceProperties.
37784func (srp SecretResourceProperties) AsBasicSecretResourceProperties() (BasicSecretResourceProperties, bool) {
37785	return &srp, true
37786}
37787
37788// AsInlinedValueSecretResourceProperties is the BasicSecretResourcePropertiesBase implementation for SecretResourceProperties.
37789func (srp SecretResourceProperties) AsInlinedValueSecretResourceProperties() (*InlinedValueSecretResourceProperties, bool) {
37790	return nil, false
37791}
37792
37793// AsSecretResourcePropertiesBase is the BasicSecretResourcePropertiesBase implementation for SecretResourceProperties.
37794func (srp SecretResourceProperties) AsSecretResourcePropertiesBase() (*SecretResourcePropertiesBase, bool) {
37795	return nil, false
37796}
37797
37798// AsBasicSecretResourcePropertiesBase is the BasicSecretResourcePropertiesBase implementation for SecretResourceProperties.
37799func (srp SecretResourceProperties) AsBasicSecretResourcePropertiesBase() (BasicSecretResourcePropertiesBase, bool) {
37800	return &srp, true
37801}
37802
37803// BasicSecretResourcePropertiesBase this type describes the properties of a secret resource, including its kind.
37804type BasicSecretResourcePropertiesBase interface {
37805	AsSecretResourceProperties() (*SecretResourceProperties, bool)
37806	AsBasicSecretResourceProperties() (BasicSecretResourceProperties, bool)
37807	AsInlinedValueSecretResourceProperties() (*InlinedValueSecretResourceProperties, bool)
37808	AsSecretResourcePropertiesBase() (*SecretResourcePropertiesBase, bool)
37809}
37810
37811// SecretResourcePropertiesBase this type describes the properties of a secret resource, including its kind.
37812type SecretResourcePropertiesBase struct {
37813	// Kind - Possible values include: 'KindSecretResourcePropertiesBase', 'KindSecretResourceProperties', 'KindInlinedValue'
37814	Kind KindBasicSecretResourcePropertiesBase `json:"kind,omitempty"`
37815}
37816
37817func unmarshalBasicSecretResourcePropertiesBase(body []byte) (BasicSecretResourcePropertiesBase, error) {
37818	var m map[string]interface{}
37819	err := json.Unmarshal(body, &m)
37820	if err != nil {
37821		return nil, err
37822	}
37823
37824	switch m["kind"] {
37825	case string(KindSecretResourceProperties):
37826		var srp SecretResourceProperties
37827		err := json.Unmarshal(body, &srp)
37828		return srp, err
37829	case string(KindInlinedValue):
37830		var ivsrp InlinedValueSecretResourceProperties
37831		err := json.Unmarshal(body, &ivsrp)
37832		return ivsrp, err
37833	default:
37834		var srpb SecretResourcePropertiesBase
37835		err := json.Unmarshal(body, &srpb)
37836		return srpb, err
37837	}
37838}
37839func unmarshalBasicSecretResourcePropertiesBaseArray(body []byte) ([]BasicSecretResourcePropertiesBase, error) {
37840	var rawMessages []*json.RawMessage
37841	err := json.Unmarshal(body, &rawMessages)
37842	if err != nil {
37843		return nil, err
37844	}
37845
37846	srpbArray := make([]BasicSecretResourcePropertiesBase, len(rawMessages))
37847
37848	for index, rawMessage := range rawMessages {
37849		srpb, err := unmarshalBasicSecretResourcePropertiesBase(*rawMessage)
37850		if err != nil {
37851			return nil, err
37852		}
37853		srpbArray[index] = srpb
37854	}
37855	return srpbArray, nil
37856}
37857
37858// MarshalJSON is the custom marshaler for SecretResourcePropertiesBase.
37859func (srpb SecretResourcePropertiesBase) MarshalJSON() ([]byte, error) {
37860	srpb.Kind = KindSecretResourcePropertiesBase
37861	objectMap := make(map[string]interface{})
37862	if srpb.Kind != "" {
37863		objectMap["kind"] = srpb.Kind
37864	}
37865	return json.Marshal(objectMap)
37866}
37867
37868// AsSecretResourceProperties is the BasicSecretResourcePropertiesBase implementation for SecretResourcePropertiesBase.
37869func (srpb SecretResourcePropertiesBase) AsSecretResourceProperties() (*SecretResourceProperties, bool) {
37870	return nil, false
37871}
37872
37873// AsBasicSecretResourceProperties is the BasicSecretResourcePropertiesBase implementation for SecretResourcePropertiesBase.
37874func (srpb SecretResourcePropertiesBase) AsBasicSecretResourceProperties() (BasicSecretResourceProperties, bool) {
37875	return nil, false
37876}
37877
37878// AsInlinedValueSecretResourceProperties is the BasicSecretResourcePropertiesBase implementation for SecretResourcePropertiesBase.
37879func (srpb SecretResourcePropertiesBase) AsInlinedValueSecretResourceProperties() (*InlinedValueSecretResourceProperties, bool) {
37880	return nil, false
37881}
37882
37883// AsSecretResourcePropertiesBase is the BasicSecretResourcePropertiesBase implementation for SecretResourcePropertiesBase.
37884func (srpb SecretResourcePropertiesBase) AsSecretResourcePropertiesBase() (*SecretResourcePropertiesBase, bool) {
37885	return &srpb, true
37886}
37887
37888// AsBasicSecretResourcePropertiesBase is the BasicSecretResourcePropertiesBase implementation for SecretResourcePropertiesBase.
37889func (srpb SecretResourcePropertiesBase) AsBasicSecretResourcePropertiesBase() (BasicSecretResourcePropertiesBase, bool) {
37890	return &srpb, true
37891}
37892
37893// SecretValue this type represents the unencrypted value of the secret.
37894type SecretValue struct {
37895	autorest.Response `json:"-"`
37896	// Value - The actual value of the secret.
37897	Value *string `json:"value,omitempty"`
37898}
37899
37900// SecretValueProperties this type describes properties of secret value resource.
37901type SecretValueProperties struct {
37902	// Value - The actual value of the secret.
37903	Value *string `json:"value,omitempty"`
37904}
37905
37906// SecretValueResourceDescription this type describes a value of a secret resource. The name of this
37907// resource is the version identifier corresponding to this secret value.
37908type SecretValueResourceDescription struct {
37909	autorest.Response `json:"-"`
37910	// Name - Version identifier of the secret value.
37911	Name *string `json:"name,omitempty"`
37912	// SecretValueResourceProperties - This type describes properties of a secret value resource.
37913	*SecretValueResourceProperties `json:"properties,omitempty"`
37914}
37915
37916// MarshalJSON is the custom marshaler for SecretValueResourceDescription.
37917func (svrd SecretValueResourceDescription) MarshalJSON() ([]byte, error) {
37918	objectMap := make(map[string]interface{})
37919	if svrd.Name != nil {
37920		objectMap["name"] = svrd.Name
37921	}
37922	if svrd.SecretValueResourceProperties != nil {
37923		objectMap["properties"] = svrd.SecretValueResourceProperties
37924	}
37925	return json.Marshal(objectMap)
37926}
37927
37928// UnmarshalJSON is the custom unmarshaler for SecretValueResourceDescription struct.
37929func (svrd *SecretValueResourceDescription) UnmarshalJSON(body []byte) error {
37930	var m map[string]*json.RawMessage
37931	err := json.Unmarshal(body, &m)
37932	if err != nil {
37933		return err
37934	}
37935	for k, v := range m {
37936		switch k {
37937		case "name":
37938			if v != nil {
37939				var name string
37940				err = json.Unmarshal(*v, &name)
37941				if err != nil {
37942					return err
37943				}
37944				svrd.Name = &name
37945			}
37946		case "properties":
37947			if v != nil {
37948				var secretValueResourceProperties SecretValueResourceProperties
37949				err = json.Unmarshal(*v, &secretValueResourceProperties)
37950				if err != nil {
37951					return err
37952				}
37953				svrd.SecretValueResourceProperties = &secretValueResourceProperties
37954			}
37955		}
37956	}
37957
37958	return nil
37959}
37960
37961// SecretValueResourceProperties this type describes properties of a secret value resource.
37962type SecretValueResourceProperties struct {
37963	// Value - The actual value of the secret.
37964	Value *string `json:"value,omitempty"`
37965}
37966
37967// SeedNodeSafetyCheck represents a safety check for the seed nodes being performed by service fabric
37968// before continuing with node level operations.
37969type SeedNodeSafetyCheck struct {
37970	// Kind - Possible values include: 'KindSafetyCheck', 'KindPartitionSafetyCheck', 'KindEnsureAvailability', 'KindEnsurePartitionQuorum', 'KindEnsureSeedNodeQuorum', 'KindWaitForInbuildReplica', 'KindWaitForPrimaryPlacement', 'KindWaitForPrimarySwap', 'KindWaitForReconfiguration'
37971	Kind KindBasicSafetyCheck `json:"Kind,omitempty"`
37972}
37973
37974// MarshalJSON is the custom marshaler for SeedNodeSafetyCheck.
37975func (snsc SeedNodeSafetyCheck) MarshalJSON() ([]byte, error) {
37976	snsc.Kind = KindEnsureSeedNodeQuorum
37977	objectMap := make(map[string]interface{})
37978	if snsc.Kind != "" {
37979		objectMap["Kind"] = snsc.Kind
37980	}
37981	return json.Marshal(objectMap)
37982}
37983
37984// AsPartitionSafetyCheck is the BasicSafetyCheck implementation for SeedNodeSafetyCheck.
37985func (snsc SeedNodeSafetyCheck) AsPartitionSafetyCheck() (*PartitionSafetyCheck, bool) {
37986	return nil, false
37987}
37988
37989// AsBasicPartitionSafetyCheck is the BasicSafetyCheck implementation for SeedNodeSafetyCheck.
37990func (snsc SeedNodeSafetyCheck) AsBasicPartitionSafetyCheck() (BasicPartitionSafetyCheck, bool) {
37991	return nil, false
37992}
37993
37994// AsEnsureAvailabilitySafetyCheck is the BasicSafetyCheck implementation for SeedNodeSafetyCheck.
37995func (snsc SeedNodeSafetyCheck) AsEnsureAvailabilitySafetyCheck() (*EnsureAvailabilitySafetyCheck, bool) {
37996	return nil, false
37997}
37998
37999// AsEnsurePartitionQuorumSafetyCheck is the BasicSafetyCheck implementation for SeedNodeSafetyCheck.
38000func (snsc SeedNodeSafetyCheck) AsEnsurePartitionQuorumSafetyCheck() (*EnsurePartitionQuorumSafetyCheck, bool) {
38001	return nil, false
38002}
38003
38004// AsSeedNodeSafetyCheck is the BasicSafetyCheck implementation for SeedNodeSafetyCheck.
38005func (snsc SeedNodeSafetyCheck) AsSeedNodeSafetyCheck() (*SeedNodeSafetyCheck, bool) {
38006	return &snsc, true
38007}
38008
38009// AsWaitForInbuildReplicaSafetyCheck is the BasicSafetyCheck implementation for SeedNodeSafetyCheck.
38010func (snsc SeedNodeSafetyCheck) AsWaitForInbuildReplicaSafetyCheck() (*WaitForInbuildReplicaSafetyCheck, bool) {
38011	return nil, false
38012}
38013
38014// AsWaitForPrimaryPlacementSafetyCheck is the BasicSafetyCheck implementation for SeedNodeSafetyCheck.
38015func (snsc SeedNodeSafetyCheck) AsWaitForPrimaryPlacementSafetyCheck() (*WaitForPrimaryPlacementSafetyCheck, bool) {
38016	return nil, false
38017}
38018
38019// AsWaitForPrimarySwapSafetyCheck is the BasicSafetyCheck implementation for SeedNodeSafetyCheck.
38020func (snsc SeedNodeSafetyCheck) AsWaitForPrimarySwapSafetyCheck() (*WaitForPrimarySwapSafetyCheck, bool) {
38021	return nil, false
38022}
38023
38024// AsWaitForReconfigurationSafetyCheck is the BasicSafetyCheck implementation for SeedNodeSafetyCheck.
38025func (snsc SeedNodeSafetyCheck) AsWaitForReconfigurationSafetyCheck() (*WaitForReconfigurationSafetyCheck, bool) {
38026	return nil, false
38027}
38028
38029// AsSafetyCheck is the BasicSafetyCheck implementation for SeedNodeSafetyCheck.
38030func (snsc SeedNodeSafetyCheck) AsSafetyCheck() (*SafetyCheck, bool) {
38031	return nil, false
38032}
38033
38034// AsBasicSafetyCheck is the BasicSafetyCheck implementation for SeedNodeSafetyCheck.
38035func (snsc SeedNodeSafetyCheck) AsBasicSafetyCheck() (BasicSafetyCheck, bool) {
38036	return &snsc, true
38037}
38038
38039// SelectedPartition this class returns information about the partition that the user-induced operation
38040// acted upon.
38041type SelectedPartition struct {
38042	// ServiceName - The name of the service the partition belongs to.
38043	ServiceName *string `json:"ServiceName,omitempty"`
38044	// 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.
38045	PartitionID *uuid.UUID `json:"PartitionId,omitempty"`
38046}
38047
38048// ServiceBackupConfigurationInfo backup configuration information for a specific Service Fabric service
38049// specifying what backup policy is being applied and suspend description, if any.
38050type ServiceBackupConfigurationInfo struct {
38051	// ServiceName - The full name of the service with 'fabric:' URI scheme.
38052	ServiceName *string `json:"ServiceName,omitempty"`
38053	// PolicyName - The name of the backup policy which is applicable to this Service Fabric application or service or partition.
38054	PolicyName *string `json:"PolicyName,omitempty"`
38055	// PolicyInheritedFrom - Specifies the scope at which the backup policy is applied. Possible values include: 'BackupPolicyScopeInvalid', 'BackupPolicyScopePartition', 'BackupPolicyScopeService', 'BackupPolicyScopeApplication'
38056	PolicyInheritedFrom BackupPolicyScope `json:"PolicyInheritedFrom,omitempty"`
38057	// SuspensionInfo - Describes the backup suspension details.
38058	SuspensionInfo *BackupSuspensionInfo `json:"SuspensionInfo,omitempty"`
38059	// Kind - Possible values include: 'KindBasicBackupConfigurationInfoKindBackupConfigurationInfo', 'KindBasicBackupConfigurationInfoKindApplication', 'KindBasicBackupConfigurationInfoKindService', 'KindBasicBackupConfigurationInfoKindPartition'
38060	Kind KindBasicBackupConfigurationInfo `json:"Kind,omitempty"`
38061}
38062
38063// MarshalJSON is the custom marshaler for ServiceBackupConfigurationInfo.
38064func (sbci ServiceBackupConfigurationInfo) MarshalJSON() ([]byte, error) {
38065	sbci.Kind = KindBasicBackupConfigurationInfoKindService
38066	objectMap := make(map[string]interface{})
38067	if sbci.ServiceName != nil {
38068		objectMap["ServiceName"] = sbci.ServiceName
38069	}
38070	if sbci.PolicyName != nil {
38071		objectMap["PolicyName"] = sbci.PolicyName
38072	}
38073	if sbci.PolicyInheritedFrom != "" {
38074		objectMap["PolicyInheritedFrom"] = sbci.PolicyInheritedFrom
38075	}
38076	if sbci.SuspensionInfo != nil {
38077		objectMap["SuspensionInfo"] = sbci.SuspensionInfo
38078	}
38079	if sbci.Kind != "" {
38080		objectMap["Kind"] = sbci.Kind
38081	}
38082	return json.Marshal(objectMap)
38083}
38084
38085// AsApplicationBackupConfigurationInfo is the BasicBackupConfigurationInfo implementation for ServiceBackupConfigurationInfo.
38086func (sbci ServiceBackupConfigurationInfo) AsApplicationBackupConfigurationInfo() (*ApplicationBackupConfigurationInfo, bool) {
38087	return nil, false
38088}
38089
38090// AsServiceBackupConfigurationInfo is the BasicBackupConfigurationInfo implementation for ServiceBackupConfigurationInfo.
38091func (sbci ServiceBackupConfigurationInfo) AsServiceBackupConfigurationInfo() (*ServiceBackupConfigurationInfo, bool) {
38092	return &sbci, true
38093}
38094
38095// AsPartitionBackupConfigurationInfo is the BasicBackupConfigurationInfo implementation for ServiceBackupConfigurationInfo.
38096func (sbci ServiceBackupConfigurationInfo) AsPartitionBackupConfigurationInfo() (*PartitionBackupConfigurationInfo, bool) {
38097	return nil, false
38098}
38099
38100// AsBackupConfigurationInfo is the BasicBackupConfigurationInfo implementation for ServiceBackupConfigurationInfo.
38101func (sbci ServiceBackupConfigurationInfo) AsBackupConfigurationInfo() (*BackupConfigurationInfo, bool) {
38102	return nil, false
38103}
38104
38105// AsBasicBackupConfigurationInfo is the BasicBackupConfigurationInfo implementation for ServiceBackupConfigurationInfo.
38106func (sbci ServiceBackupConfigurationInfo) AsBasicBackupConfigurationInfo() (BasicBackupConfigurationInfo, bool) {
38107	return &sbci, true
38108}
38109
38110// ServiceBackupEntity identifies the Service Fabric stateful service which is being backed up.
38111type ServiceBackupEntity struct {
38112	// ServiceName - The full name of the service with 'fabric:' URI scheme.
38113	ServiceName *string `json:"ServiceName,omitempty"`
38114	// EntityKind - Possible values include: 'EntityKindBackupEntity', 'EntityKindApplication1', 'EntityKindService1', 'EntityKindPartition1'
38115	EntityKind EntityKindBasicBackupEntity `json:"EntityKind,omitempty"`
38116}
38117
38118// MarshalJSON is the custom marshaler for ServiceBackupEntity.
38119func (sbe ServiceBackupEntity) MarshalJSON() ([]byte, error) {
38120	sbe.EntityKind = EntityKindService1
38121	objectMap := make(map[string]interface{})
38122	if sbe.ServiceName != nil {
38123		objectMap["ServiceName"] = sbe.ServiceName
38124	}
38125	if sbe.EntityKind != "" {
38126		objectMap["EntityKind"] = sbe.EntityKind
38127	}
38128	return json.Marshal(objectMap)
38129}
38130
38131// AsApplicationBackupEntity is the BasicBackupEntity implementation for ServiceBackupEntity.
38132func (sbe ServiceBackupEntity) AsApplicationBackupEntity() (*ApplicationBackupEntity, bool) {
38133	return nil, false
38134}
38135
38136// AsServiceBackupEntity is the BasicBackupEntity implementation for ServiceBackupEntity.
38137func (sbe ServiceBackupEntity) AsServiceBackupEntity() (*ServiceBackupEntity, bool) {
38138	return &sbe, true
38139}
38140
38141// AsPartitionBackupEntity is the BasicBackupEntity implementation for ServiceBackupEntity.
38142func (sbe ServiceBackupEntity) AsPartitionBackupEntity() (*PartitionBackupEntity, bool) {
38143	return nil, false
38144}
38145
38146// AsBackupEntity is the BasicBackupEntity implementation for ServiceBackupEntity.
38147func (sbe ServiceBackupEntity) AsBackupEntity() (*BackupEntity, bool) {
38148	return nil, false
38149}
38150
38151// AsBasicBackupEntity is the BasicBackupEntity implementation for ServiceBackupEntity.
38152func (sbe ServiceBackupEntity) AsBasicBackupEntity() (BasicBackupEntity, bool) {
38153	return &sbe, true
38154}
38155
38156// ServiceCorrelationDescription creates a particular correlation between services.
38157type ServiceCorrelationDescription struct {
38158	// Scheme - The ServiceCorrelationScheme which describes the relationship between this service and the service specified via ServiceName. Possible values include: 'ServiceCorrelationSchemeInvalid', 'ServiceCorrelationSchemeAffinity', 'ServiceCorrelationSchemeAlignedAffinity', 'ServiceCorrelationSchemeNonAlignedAffinity'
38159	Scheme ServiceCorrelationScheme `json:"Scheme,omitempty"`
38160	// ServiceName - The name of the service that the correlation relationship is established with.
38161	ServiceName *string `json:"ServiceName,omitempty"`
38162}
38163
38164// ServiceCreatedEvent service Created event.
38165type ServiceCreatedEvent struct {
38166	// ServiceTypeName - Service type name.
38167	ServiceTypeName *string `json:"ServiceTypeName,omitempty"`
38168	// ApplicationName - Application name.
38169	ApplicationName *string `json:"ApplicationName,omitempty"`
38170	// ApplicationTypeName - Application type name.
38171	ApplicationTypeName *string `json:"ApplicationTypeName,omitempty"`
38172	// ServiceInstance - Id of Service instance.
38173	ServiceInstance *int64 `json:"ServiceInstance,omitempty"`
38174	// IsStateful - Indicates if Service is stateful.
38175	IsStateful *bool `json:"IsStateful,omitempty"`
38176	// PartitionCount - Number of partitions.
38177	PartitionCount *int32 `json:"PartitionCount,omitempty"`
38178	// TargetReplicaSetSize - Size of target replicas set.
38179	TargetReplicaSetSize *int32 `json:"TargetReplicaSetSize,omitempty"`
38180	// MinReplicaSetSize - Minimum size of replicas set.
38181	MinReplicaSetSize *int32 `json:"MinReplicaSetSize,omitempty"`
38182	// ServicePackageVersion - Version of Service package.
38183	ServicePackageVersion *string `json:"ServicePackageVersion,omitempty"`
38184	// 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.
38185	PartitionID *uuid.UUID `json:"PartitionId,omitempty"`
38186	// 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.
38187	// Starting in version 6.0, hierarchical names are delimited with the "\~" character. For example, if the service name is "fabric:/myapp/app1/svc1",
38188	// the service identity would be "myapp~app1\~svc1" in 6.0+ and "myapp/app1/svc1" in previous versions.
38189	ServiceID *string `json:"ServiceId,omitempty"`
38190	// EventInstanceID - The identifier for the FabricEvent instance.
38191	EventInstanceID *uuid.UUID `json:"EventInstanceId,omitempty"`
38192	// Category - The category of event.
38193	Category *string `json:"Category,omitempty"`
38194	// TimeStamp - The time event was logged.
38195	TimeStamp *date.Time `json:"TimeStamp,omitempty"`
38196	// HasCorrelatedEvents - Shows there is existing related events available.
38197	HasCorrelatedEvents *bool `json:"HasCorrelatedEvents,omitempty"`
38198	// 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'
38199	Kind KindBasicFabricEvent `json:"Kind,omitempty"`
38200}
38201
38202// MarshalJSON is the custom marshaler for ServiceCreatedEvent.
38203func (sce ServiceCreatedEvent) MarshalJSON() ([]byte, error) {
38204	sce.Kind = KindServiceCreated
38205	objectMap := make(map[string]interface{})
38206	if sce.ServiceTypeName != nil {
38207		objectMap["ServiceTypeName"] = sce.ServiceTypeName
38208	}
38209	if sce.ApplicationName != nil {
38210		objectMap["ApplicationName"] = sce.ApplicationName
38211	}
38212	if sce.ApplicationTypeName != nil {
38213		objectMap["ApplicationTypeName"] = sce.ApplicationTypeName
38214	}
38215	if sce.ServiceInstance != nil {
38216		objectMap["ServiceInstance"] = sce.ServiceInstance
38217	}
38218	if sce.IsStateful != nil {
38219		objectMap["IsStateful"] = sce.IsStateful
38220	}
38221	if sce.PartitionCount != nil {
38222		objectMap["PartitionCount"] = sce.PartitionCount
38223	}
38224	if sce.TargetReplicaSetSize != nil {
38225		objectMap["TargetReplicaSetSize"] = sce.TargetReplicaSetSize
38226	}
38227	if sce.MinReplicaSetSize != nil {
38228		objectMap["MinReplicaSetSize"] = sce.MinReplicaSetSize
38229	}
38230	if sce.ServicePackageVersion != nil {
38231		objectMap["ServicePackageVersion"] = sce.ServicePackageVersion
38232	}
38233	if sce.PartitionID != nil {
38234		objectMap["PartitionId"] = sce.PartitionID
38235	}
38236	if sce.ServiceID != nil {
38237		objectMap["ServiceId"] = sce.ServiceID
38238	}
38239	if sce.EventInstanceID != nil {
38240		objectMap["EventInstanceId"] = sce.EventInstanceID
38241	}
38242	if sce.Category != nil {
38243		objectMap["Category"] = sce.Category
38244	}
38245	if sce.TimeStamp != nil {
38246		objectMap["TimeStamp"] = sce.TimeStamp
38247	}
38248	if sce.HasCorrelatedEvents != nil {
38249		objectMap["HasCorrelatedEvents"] = sce.HasCorrelatedEvents
38250	}
38251	if sce.Kind != "" {
38252		objectMap["Kind"] = sce.Kind
38253	}
38254	return json.Marshal(objectMap)
38255}
38256
38257// AsApplicationEvent is the BasicFabricEvent implementation for ServiceCreatedEvent.
38258func (sce ServiceCreatedEvent) AsApplicationEvent() (*ApplicationEvent, bool) {
38259	return nil, false
38260}
38261
38262// AsBasicApplicationEvent is the BasicFabricEvent implementation for ServiceCreatedEvent.
38263func (sce ServiceCreatedEvent) AsBasicApplicationEvent() (BasicApplicationEvent, bool) {
38264	return nil, false
38265}
38266
38267// AsClusterEvent is the BasicFabricEvent implementation for ServiceCreatedEvent.
38268func (sce ServiceCreatedEvent) AsClusterEvent() (*ClusterEvent, bool) {
38269	return nil, false
38270}
38271
38272// AsBasicClusterEvent is the BasicFabricEvent implementation for ServiceCreatedEvent.
38273func (sce ServiceCreatedEvent) AsBasicClusterEvent() (BasicClusterEvent, bool) {
38274	return nil, false
38275}
38276
38277// AsContainerInstanceEvent is the BasicFabricEvent implementation for ServiceCreatedEvent.
38278func (sce ServiceCreatedEvent) AsContainerInstanceEvent() (*ContainerInstanceEvent, bool) {
38279	return nil, false
38280}
38281
38282// AsNodeEvent is the BasicFabricEvent implementation for ServiceCreatedEvent.
38283func (sce ServiceCreatedEvent) AsNodeEvent() (*NodeEvent, bool) {
38284	return nil, false
38285}
38286
38287// AsBasicNodeEvent is the BasicFabricEvent implementation for ServiceCreatedEvent.
38288func (sce ServiceCreatedEvent) AsBasicNodeEvent() (BasicNodeEvent, bool) {
38289	return nil, false
38290}
38291
38292// AsPartitionAnalysisEvent is the BasicFabricEvent implementation for ServiceCreatedEvent.
38293func (sce ServiceCreatedEvent) AsPartitionAnalysisEvent() (*PartitionAnalysisEvent, bool) {
38294	return nil, false
38295}
38296
38297// AsBasicPartitionAnalysisEvent is the BasicFabricEvent implementation for ServiceCreatedEvent.
38298func (sce ServiceCreatedEvent) AsBasicPartitionAnalysisEvent() (BasicPartitionAnalysisEvent, bool) {
38299	return nil, false
38300}
38301
38302// AsPartitionEvent is the BasicFabricEvent implementation for ServiceCreatedEvent.
38303func (sce ServiceCreatedEvent) AsPartitionEvent() (*PartitionEvent, bool) {
38304	return nil, false
38305}
38306
38307// AsBasicPartitionEvent is the BasicFabricEvent implementation for ServiceCreatedEvent.
38308func (sce ServiceCreatedEvent) AsBasicPartitionEvent() (BasicPartitionEvent, bool) {
38309	return nil, false
38310}
38311
38312// AsReplicaEvent is the BasicFabricEvent implementation for ServiceCreatedEvent.
38313func (sce ServiceCreatedEvent) AsReplicaEvent() (*ReplicaEvent, bool) {
38314	return nil, false
38315}
38316
38317// AsBasicReplicaEvent is the BasicFabricEvent implementation for ServiceCreatedEvent.
38318func (sce ServiceCreatedEvent) AsBasicReplicaEvent() (BasicReplicaEvent, bool) {
38319	return nil, false
38320}
38321
38322// AsServiceEvent is the BasicFabricEvent implementation for ServiceCreatedEvent.
38323func (sce ServiceCreatedEvent) AsServiceEvent() (*ServiceEvent, bool) {
38324	return nil, false
38325}
38326
38327// AsBasicServiceEvent is the BasicFabricEvent implementation for ServiceCreatedEvent.
38328func (sce ServiceCreatedEvent) AsBasicServiceEvent() (BasicServiceEvent, bool) {
38329	return &sce, true
38330}
38331
38332// AsApplicationCreatedEvent is the BasicFabricEvent implementation for ServiceCreatedEvent.
38333func (sce ServiceCreatedEvent) AsApplicationCreatedEvent() (*ApplicationCreatedEvent, bool) {
38334	return nil, false
38335}
38336
38337// AsApplicationDeletedEvent is the BasicFabricEvent implementation for ServiceCreatedEvent.
38338func (sce ServiceCreatedEvent) AsApplicationDeletedEvent() (*ApplicationDeletedEvent, bool) {
38339	return nil, false
38340}
38341
38342// AsApplicationNewHealthReportEvent is the BasicFabricEvent implementation for ServiceCreatedEvent.
38343func (sce ServiceCreatedEvent) AsApplicationNewHealthReportEvent() (*ApplicationNewHealthReportEvent, bool) {
38344	return nil, false
38345}
38346
38347// AsApplicationHealthReportExpiredEvent is the BasicFabricEvent implementation for ServiceCreatedEvent.
38348func (sce ServiceCreatedEvent) AsApplicationHealthReportExpiredEvent() (*ApplicationHealthReportExpiredEvent, bool) {
38349	return nil, false
38350}
38351
38352// AsApplicationUpgradeCompletedEvent is the BasicFabricEvent implementation for ServiceCreatedEvent.
38353func (sce ServiceCreatedEvent) AsApplicationUpgradeCompletedEvent() (*ApplicationUpgradeCompletedEvent, bool) {
38354	return nil, false
38355}
38356
38357// AsApplicationUpgradeDomainCompletedEvent is the BasicFabricEvent implementation for ServiceCreatedEvent.
38358func (sce ServiceCreatedEvent) AsApplicationUpgradeDomainCompletedEvent() (*ApplicationUpgradeDomainCompletedEvent, bool) {
38359	return nil, false
38360}
38361
38362// AsApplicationUpgradeRollbackCompletedEvent is the BasicFabricEvent implementation for ServiceCreatedEvent.
38363func (sce ServiceCreatedEvent) AsApplicationUpgradeRollbackCompletedEvent() (*ApplicationUpgradeRollbackCompletedEvent, bool) {
38364	return nil, false
38365}
38366
38367// AsApplicationUpgradeRollbackStartedEvent is the BasicFabricEvent implementation for ServiceCreatedEvent.
38368func (sce ServiceCreatedEvent) AsApplicationUpgradeRollbackStartedEvent() (*ApplicationUpgradeRollbackStartedEvent, bool) {
38369	return nil, false
38370}
38371
38372// AsApplicationUpgradeStartedEvent is the BasicFabricEvent implementation for ServiceCreatedEvent.
38373func (sce ServiceCreatedEvent) AsApplicationUpgradeStartedEvent() (*ApplicationUpgradeStartedEvent, bool) {
38374	return nil, false
38375}
38376
38377// AsDeployedApplicationNewHealthReportEvent is the BasicFabricEvent implementation for ServiceCreatedEvent.
38378func (sce ServiceCreatedEvent) AsDeployedApplicationNewHealthReportEvent() (*DeployedApplicationNewHealthReportEvent, bool) {
38379	return nil, false
38380}
38381
38382// AsDeployedApplicationHealthReportExpiredEvent is the BasicFabricEvent implementation for ServiceCreatedEvent.
38383func (sce ServiceCreatedEvent) AsDeployedApplicationHealthReportExpiredEvent() (*DeployedApplicationHealthReportExpiredEvent, bool) {
38384	return nil, false
38385}
38386
38387// AsApplicationProcessExitedEvent is the BasicFabricEvent implementation for ServiceCreatedEvent.
38388func (sce ServiceCreatedEvent) AsApplicationProcessExitedEvent() (*ApplicationProcessExitedEvent, bool) {
38389	return nil, false
38390}
38391
38392// AsApplicationContainerInstanceExitedEvent is the BasicFabricEvent implementation for ServiceCreatedEvent.
38393func (sce ServiceCreatedEvent) AsApplicationContainerInstanceExitedEvent() (*ApplicationContainerInstanceExitedEvent, bool) {
38394	return nil, false
38395}
38396
38397// AsNodeAbortedEvent is the BasicFabricEvent implementation for ServiceCreatedEvent.
38398func (sce ServiceCreatedEvent) AsNodeAbortedEvent() (*NodeAbortedEvent, bool) {
38399	return nil, false
38400}
38401
38402// AsNodeAddedToClusterEvent is the BasicFabricEvent implementation for ServiceCreatedEvent.
38403func (sce ServiceCreatedEvent) AsNodeAddedToClusterEvent() (*NodeAddedToClusterEvent, bool) {
38404	return nil, false
38405}
38406
38407// AsNodeClosedEvent is the BasicFabricEvent implementation for ServiceCreatedEvent.
38408func (sce ServiceCreatedEvent) AsNodeClosedEvent() (*NodeClosedEvent, bool) {
38409	return nil, false
38410}
38411
38412// AsNodeDeactivateCompletedEvent is the BasicFabricEvent implementation for ServiceCreatedEvent.
38413func (sce ServiceCreatedEvent) AsNodeDeactivateCompletedEvent() (*NodeDeactivateCompletedEvent, bool) {
38414	return nil, false
38415}
38416
38417// AsNodeDeactivateStartedEvent is the BasicFabricEvent implementation for ServiceCreatedEvent.
38418func (sce ServiceCreatedEvent) AsNodeDeactivateStartedEvent() (*NodeDeactivateStartedEvent, bool) {
38419	return nil, false
38420}
38421
38422// AsNodeDownEvent is the BasicFabricEvent implementation for ServiceCreatedEvent.
38423func (sce ServiceCreatedEvent) AsNodeDownEvent() (*NodeDownEvent, bool) {
38424	return nil, false
38425}
38426
38427// AsNodeNewHealthReportEvent is the BasicFabricEvent implementation for ServiceCreatedEvent.
38428func (sce ServiceCreatedEvent) AsNodeNewHealthReportEvent() (*NodeNewHealthReportEvent, bool) {
38429	return nil, false
38430}
38431
38432// AsNodeHealthReportExpiredEvent is the BasicFabricEvent implementation for ServiceCreatedEvent.
38433func (sce ServiceCreatedEvent) AsNodeHealthReportExpiredEvent() (*NodeHealthReportExpiredEvent, bool) {
38434	return nil, false
38435}
38436
38437// AsNodeOpenSucceededEvent is the BasicFabricEvent implementation for ServiceCreatedEvent.
38438func (sce ServiceCreatedEvent) AsNodeOpenSucceededEvent() (*NodeOpenSucceededEvent, bool) {
38439	return nil, false
38440}
38441
38442// AsNodeOpenFailedEvent is the BasicFabricEvent implementation for ServiceCreatedEvent.
38443func (sce ServiceCreatedEvent) AsNodeOpenFailedEvent() (*NodeOpenFailedEvent, bool) {
38444	return nil, false
38445}
38446
38447// AsNodeRemovedFromClusterEvent is the BasicFabricEvent implementation for ServiceCreatedEvent.
38448func (sce ServiceCreatedEvent) AsNodeRemovedFromClusterEvent() (*NodeRemovedFromClusterEvent, bool) {
38449	return nil, false
38450}
38451
38452// AsNodeUpEvent is the BasicFabricEvent implementation for ServiceCreatedEvent.
38453func (sce ServiceCreatedEvent) AsNodeUpEvent() (*NodeUpEvent, bool) {
38454	return nil, false
38455}
38456
38457// AsPartitionNewHealthReportEvent is the BasicFabricEvent implementation for ServiceCreatedEvent.
38458func (sce ServiceCreatedEvent) AsPartitionNewHealthReportEvent() (*PartitionNewHealthReportEvent, bool) {
38459	return nil, false
38460}
38461
38462// AsPartitionHealthReportExpiredEvent is the BasicFabricEvent implementation for ServiceCreatedEvent.
38463func (sce ServiceCreatedEvent) AsPartitionHealthReportExpiredEvent() (*PartitionHealthReportExpiredEvent, bool) {
38464	return nil, false
38465}
38466
38467// AsPartitionReconfiguredEvent is the BasicFabricEvent implementation for ServiceCreatedEvent.
38468func (sce ServiceCreatedEvent) AsPartitionReconfiguredEvent() (*PartitionReconfiguredEvent, bool) {
38469	return nil, false
38470}
38471
38472// AsPartitionPrimaryMoveAnalysisEvent is the BasicFabricEvent implementation for ServiceCreatedEvent.
38473func (sce ServiceCreatedEvent) AsPartitionPrimaryMoveAnalysisEvent() (*PartitionPrimaryMoveAnalysisEvent, bool) {
38474	return nil, false
38475}
38476
38477// AsServiceCreatedEvent is the BasicFabricEvent implementation for ServiceCreatedEvent.
38478func (sce ServiceCreatedEvent) AsServiceCreatedEvent() (*ServiceCreatedEvent, bool) {
38479	return &sce, true
38480}
38481
38482// AsServiceDeletedEvent is the BasicFabricEvent implementation for ServiceCreatedEvent.
38483func (sce ServiceCreatedEvent) AsServiceDeletedEvent() (*ServiceDeletedEvent, bool) {
38484	return nil, false
38485}
38486
38487// AsServiceNewHealthReportEvent is the BasicFabricEvent implementation for ServiceCreatedEvent.
38488func (sce ServiceCreatedEvent) AsServiceNewHealthReportEvent() (*ServiceNewHealthReportEvent, bool) {
38489	return nil, false
38490}
38491
38492// AsServiceHealthReportExpiredEvent is the BasicFabricEvent implementation for ServiceCreatedEvent.
38493func (sce ServiceCreatedEvent) AsServiceHealthReportExpiredEvent() (*ServiceHealthReportExpiredEvent, bool) {
38494	return nil, false
38495}
38496
38497// AsDeployedServicePackageNewHealthReportEvent is the BasicFabricEvent implementation for ServiceCreatedEvent.
38498func (sce ServiceCreatedEvent) AsDeployedServicePackageNewHealthReportEvent() (*DeployedServicePackageNewHealthReportEvent, bool) {
38499	return nil, false
38500}
38501
38502// AsDeployedServicePackageHealthReportExpiredEvent is the BasicFabricEvent implementation for ServiceCreatedEvent.
38503func (sce ServiceCreatedEvent) AsDeployedServicePackageHealthReportExpiredEvent() (*DeployedServicePackageHealthReportExpiredEvent, bool) {
38504	return nil, false
38505}
38506
38507// AsStatefulReplicaNewHealthReportEvent is the BasicFabricEvent implementation for ServiceCreatedEvent.
38508func (sce ServiceCreatedEvent) AsStatefulReplicaNewHealthReportEvent() (*StatefulReplicaNewHealthReportEvent, bool) {
38509	return nil, false
38510}
38511
38512// AsStatefulReplicaHealthReportExpiredEvent is the BasicFabricEvent implementation for ServiceCreatedEvent.
38513func (sce ServiceCreatedEvent) AsStatefulReplicaHealthReportExpiredEvent() (*StatefulReplicaHealthReportExpiredEvent, bool) {
38514	return nil, false
38515}
38516
38517// AsStatelessReplicaNewHealthReportEvent is the BasicFabricEvent implementation for ServiceCreatedEvent.
38518func (sce ServiceCreatedEvent) AsStatelessReplicaNewHealthReportEvent() (*StatelessReplicaNewHealthReportEvent, bool) {
38519	return nil, false
38520}
38521
38522// AsStatelessReplicaHealthReportExpiredEvent is the BasicFabricEvent implementation for ServiceCreatedEvent.
38523func (sce ServiceCreatedEvent) AsStatelessReplicaHealthReportExpiredEvent() (*StatelessReplicaHealthReportExpiredEvent, bool) {
38524	return nil, false
38525}
38526
38527// AsClusterNewHealthReportEvent is the BasicFabricEvent implementation for ServiceCreatedEvent.
38528func (sce ServiceCreatedEvent) AsClusterNewHealthReportEvent() (*ClusterNewHealthReportEvent, bool) {
38529	return nil, false
38530}
38531
38532// AsClusterHealthReportExpiredEvent is the BasicFabricEvent implementation for ServiceCreatedEvent.
38533func (sce ServiceCreatedEvent) AsClusterHealthReportExpiredEvent() (*ClusterHealthReportExpiredEvent, bool) {
38534	return nil, false
38535}
38536
38537// AsClusterUpgradeCompletedEvent is the BasicFabricEvent implementation for ServiceCreatedEvent.
38538func (sce ServiceCreatedEvent) AsClusterUpgradeCompletedEvent() (*ClusterUpgradeCompletedEvent, bool) {
38539	return nil, false
38540}
38541
38542// AsClusterUpgradeDomainCompletedEvent is the BasicFabricEvent implementation for ServiceCreatedEvent.
38543func (sce ServiceCreatedEvent) AsClusterUpgradeDomainCompletedEvent() (*ClusterUpgradeDomainCompletedEvent, bool) {
38544	return nil, false
38545}
38546
38547// AsClusterUpgradeRollbackCompletedEvent is the BasicFabricEvent implementation for ServiceCreatedEvent.
38548func (sce ServiceCreatedEvent) AsClusterUpgradeRollbackCompletedEvent() (*ClusterUpgradeRollbackCompletedEvent, bool) {
38549	return nil, false
38550}
38551
38552// AsClusterUpgradeRollbackStartedEvent is the BasicFabricEvent implementation for ServiceCreatedEvent.
38553func (sce ServiceCreatedEvent) AsClusterUpgradeRollbackStartedEvent() (*ClusterUpgradeRollbackStartedEvent, bool) {
38554	return nil, false
38555}
38556
38557// AsClusterUpgradeStartedEvent is the BasicFabricEvent implementation for ServiceCreatedEvent.
38558func (sce ServiceCreatedEvent) AsClusterUpgradeStartedEvent() (*ClusterUpgradeStartedEvent, bool) {
38559	return nil, false
38560}
38561
38562// AsChaosStoppedEvent is the BasicFabricEvent implementation for ServiceCreatedEvent.
38563func (sce ServiceCreatedEvent) AsChaosStoppedEvent() (*ChaosStoppedEvent, bool) {
38564	return nil, false
38565}
38566
38567// AsChaosStartedEvent is the BasicFabricEvent implementation for ServiceCreatedEvent.
38568func (sce ServiceCreatedEvent) AsChaosStartedEvent() (*ChaosStartedEvent, bool) {
38569	return nil, false
38570}
38571
38572// AsChaosCodePackageRestartScheduledEvent is the BasicFabricEvent implementation for ServiceCreatedEvent.
38573func (sce ServiceCreatedEvent) AsChaosCodePackageRestartScheduledEvent() (*ChaosCodePackageRestartScheduledEvent, bool) {
38574	return nil, false
38575}
38576
38577// AsChaosReplicaRemovalScheduledEvent is the BasicFabricEvent implementation for ServiceCreatedEvent.
38578func (sce ServiceCreatedEvent) AsChaosReplicaRemovalScheduledEvent() (*ChaosReplicaRemovalScheduledEvent, bool) {
38579	return nil, false
38580}
38581
38582// AsChaosPartitionSecondaryMoveScheduledEvent is the BasicFabricEvent implementation for ServiceCreatedEvent.
38583func (sce ServiceCreatedEvent) AsChaosPartitionSecondaryMoveScheduledEvent() (*ChaosPartitionSecondaryMoveScheduledEvent, bool) {
38584	return nil, false
38585}
38586
38587// AsChaosPartitionPrimaryMoveScheduledEvent is the BasicFabricEvent implementation for ServiceCreatedEvent.
38588func (sce ServiceCreatedEvent) AsChaosPartitionPrimaryMoveScheduledEvent() (*ChaosPartitionPrimaryMoveScheduledEvent, bool) {
38589	return nil, false
38590}
38591
38592// AsChaosReplicaRestartScheduledEvent is the BasicFabricEvent implementation for ServiceCreatedEvent.
38593func (sce ServiceCreatedEvent) AsChaosReplicaRestartScheduledEvent() (*ChaosReplicaRestartScheduledEvent, bool) {
38594	return nil, false
38595}
38596
38597// AsChaosNodeRestartScheduledEvent is the BasicFabricEvent implementation for ServiceCreatedEvent.
38598func (sce ServiceCreatedEvent) AsChaosNodeRestartScheduledEvent() (*ChaosNodeRestartScheduledEvent, bool) {
38599	return nil, false
38600}
38601
38602// AsFabricEvent is the BasicFabricEvent implementation for ServiceCreatedEvent.
38603func (sce ServiceCreatedEvent) AsFabricEvent() (*FabricEvent, bool) {
38604	return nil, false
38605}
38606
38607// AsBasicFabricEvent is the BasicFabricEvent implementation for ServiceCreatedEvent.
38608func (sce ServiceCreatedEvent) AsBasicFabricEvent() (BasicFabricEvent, bool) {
38609	return &sce, true
38610}
38611
38612// ServiceDeletedEvent service Deleted event.
38613type ServiceDeletedEvent struct {
38614	// ServiceTypeName - Service type name.
38615	ServiceTypeName *string `json:"ServiceTypeName,omitempty"`
38616	// ApplicationName - Application name.
38617	ApplicationName *string `json:"ApplicationName,omitempty"`
38618	// ApplicationTypeName - Application type name.
38619	ApplicationTypeName *string `json:"ApplicationTypeName,omitempty"`
38620	// ServiceInstance - Id of Service instance.
38621	ServiceInstance *int64 `json:"ServiceInstance,omitempty"`
38622	// IsStateful - Indicates if Service is stateful.
38623	IsStateful *bool `json:"IsStateful,omitempty"`
38624	// PartitionCount - Number of partitions.
38625	PartitionCount *int32 `json:"PartitionCount,omitempty"`
38626	// TargetReplicaSetSize - Size of target replicas set.
38627	TargetReplicaSetSize *int32 `json:"TargetReplicaSetSize,omitempty"`
38628	// MinReplicaSetSize - Minimum size of replicas set.
38629	MinReplicaSetSize *int32 `json:"MinReplicaSetSize,omitempty"`
38630	// ServicePackageVersion - Version of Service package.
38631	ServicePackageVersion *string `json:"ServicePackageVersion,omitempty"`
38632	// 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.
38633	// Starting in version 6.0, hierarchical names are delimited with the "\~" character. For example, if the service name is "fabric:/myapp/app1/svc1",
38634	// the service identity would be "myapp~app1\~svc1" in 6.0+ and "myapp/app1/svc1" in previous versions.
38635	ServiceID *string `json:"ServiceId,omitempty"`
38636	// EventInstanceID - The identifier for the FabricEvent instance.
38637	EventInstanceID *uuid.UUID `json:"EventInstanceId,omitempty"`
38638	// Category - The category of event.
38639	Category *string `json:"Category,omitempty"`
38640	// TimeStamp - The time event was logged.
38641	TimeStamp *date.Time `json:"TimeStamp,omitempty"`
38642	// HasCorrelatedEvents - Shows there is existing related events available.
38643	HasCorrelatedEvents *bool `json:"HasCorrelatedEvents,omitempty"`
38644	// 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'
38645	Kind KindBasicFabricEvent `json:"Kind,omitempty"`
38646}
38647
38648// MarshalJSON is the custom marshaler for ServiceDeletedEvent.
38649func (sde ServiceDeletedEvent) MarshalJSON() ([]byte, error) {
38650	sde.Kind = KindServiceDeleted
38651	objectMap := make(map[string]interface{})
38652	if sde.ServiceTypeName != nil {
38653		objectMap["ServiceTypeName"] = sde.ServiceTypeName
38654	}
38655	if sde.ApplicationName != nil {
38656		objectMap["ApplicationName"] = sde.ApplicationName
38657	}
38658	if sde.ApplicationTypeName != nil {
38659		objectMap["ApplicationTypeName"] = sde.ApplicationTypeName
38660	}
38661	if sde.ServiceInstance != nil {
38662		objectMap["ServiceInstance"] = sde.ServiceInstance
38663	}
38664	if sde.IsStateful != nil {
38665		objectMap["IsStateful"] = sde.IsStateful
38666	}
38667	if sde.PartitionCount != nil {
38668		objectMap["PartitionCount"] = sde.PartitionCount
38669	}
38670	if sde.TargetReplicaSetSize != nil {
38671		objectMap["TargetReplicaSetSize"] = sde.TargetReplicaSetSize
38672	}
38673	if sde.MinReplicaSetSize != nil {
38674		objectMap["MinReplicaSetSize"] = sde.MinReplicaSetSize
38675	}
38676	if sde.ServicePackageVersion != nil {
38677		objectMap["ServicePackageVersion"] = sde.ServicePackageVersion
38678	}
38679	if sde.ServiceID != nil {
38680		objectMap["ServiceId"] = sde.ServiceID
38681	}
38682	if sde.EventInstanceID != nil {
38683		objectMap["EventInstanceId"] = sde.EventInstanceID
38684	}
38685	if sde.Category != nil {
38686		objectMap["Category"] = sde.Category
38687	}
38688	if sde.TimeStamp != nil {
38689		objectMap["TimeStamp"] = sde.TimeStamp
38690	}
38691	if sde.HasCorrelatedEvents != nil {
38692		objectMap["HasCorrelatedEvents"] = sde.HasCorrelatedEvents
38693	}
38694	if sde.Kind != "" {
38695		objectMap["Kind"] = sde.Kind
38696	}
38697	return json.Marshal(objectMap)
38698}
38699
38700// AsApplicationEvent is the BasicFabricEvent implementation for ServiceDeletedEvent.
38701func (sde ServiceDeletedEvent) AsApplicationEvent() (*ApplicationEvent, bool) {
38702	return nil, false
38703}
38704
38705// AsBasicApplicationEvent is the BasicFabricEvent implementation for ServiceDeletedEvent.
38706func (sde ServiceDeletedEvent) AsBasicApplicationEvent() (BasicApplicationEvent, bool) {
38707	return nil, false
38708}
38709
38710// AsClusterEvent is the BasicFabricEvent implementation for ServiceDeletedEvent.
38711func (sde ServiceDeletedEvent) AsClusterEvent() (*ClusterEvent, bool) {
38712	return nil, false
38713}
38714
38715// AsBasicClusterEvent is the BasicFabricEvent implementation for ServiceDeletedEvent.
38716func (sde ServiceDeletedEvent) AsBasicClusterEvent() (BasicClusterEvent, bool) {
38717	return nil, false
38718}
38719
38720// AsContainerInstanceEvent is the BasicFabricEvent implementation for ServiceDeletedEvent.
38721func (sde ServiceDeletedEvent) AsContainerInstanceEvent() (*ContainerInstanceEvent, bool) {
38722	return nil, false
38723}
38724
38725// AsNodeEvent is the BasicFabricEvent implementation for ServiceDeletedEvent.
38726func (sde ServiceDeletedEvent) AsNodeEvent() (*NodeEvent, bool) {
38727	return nil, false
38728}
38729
38730// AsBasicNodeEvent is the BasicFabricEvent implementation for ServiceDeletedEvent.
38731func (sde ServiceDeletedEvent) AsBasicNodeEvent() (BasicNodeEvent, bool) {
38732	return nil, false
38733}
38734
38735// AsPartitionAnalysisEvent is the BasicFabricEvent implementation for ServiceDeletedEvent.
38736func (sde ServiceDeletedEvent) AsPartitionAnalysisEvent() (*PartitionAnalysisEvent, bool) {
38737	return nil, false
38738}
38739
38740// AsBasicPartitionAnalysisEvent is the BasicFabricEvent implementation for ServiceDeletedEvent.
38741func (sde ServiceDeletedEvent) AsBasicPartitionAnalysisEvent() (BasicPartitionAnalysisEvent, bool) {
38742	return nil, false
38743}
38744
38745// AsPartitionEvent is the BasicFabricEvent implementation for ServiceDeletedEvent.
38746func (sde ServiceDeletedEvent) AsPartitionEvent() (*PartitionEvent, bool) {
38747	return nil, false
38748}
38749
38750// AsBasicPartitionEvent is the BasicFabricEvent implementation for ServiceDeletedEvent.
38751func (sde ServiceDeletedEvent) AsBasicPartitionEvent() (BasicPartitionEvent, bool) {
38752	return nil, false
38753}
38754
38755// AsReplicaEvent is the BasicFabricEvent implementation for ServiceDeletedEvent.
38756func (sde ServiceDeletedEvent) AsReplicaEvent() (*ReplicaEvent, bool) {
38757	return nil, false
38758}
38759
38760// AsBasicReplicaEvent is the BasicFabricEvent implementation for ServiceDeletedEvent.
38761func (sde ServiceDeletedEvent) AsBasicReplicaEvent() (BasicReplicaEvent, bool) {
38762	return nil, false
38763}
38764
38765// AsServiceEvent is the BasicFabricEvent implementation for ServiceDeletedEvent.
38766func (sde ServiceDeletedEvent) AsServiceEvent() (*ServiceEvent, bool) {
38767	return nil, false
38768}
38769
38770// AsBasicServiceEvent is the BasicFabricEvent implementation for ServiceDeletedEvent.
38771func (sde ServiceDeletedEvent) AsBasicServiceEvent() (BasicServiceEvent, bool) {
38772	return &sde, true
38773}
38774
38775// AsApplicationCreatedEvent is the BasicFabricEvent implementation for ServiceDeletedEvent.
38776func (sde ServiceDeletedEvent) AsApplicationCreatedEvent() (*ApplicationCreatedEvent, bool) {
38777	return nil, false
38778}
38779
38780// AsApplicationDeletedEvent is the BasicFabricEvent implementation for ServiceDeletedEvent.
38781func (sde ServiceDeletedEvent) AsApplicationDeletedEvent() (*ApplicationDeletedEvent, bool) {
38782	return nil, false
38783}
38784
38785// AsApplicationNewHealthReportEvent is the BasicFabricEvent implementation for ServiceDeletedEvent.
38786func (sde ServiceDeletedEvent) AsApplicationNewHealthReportEvent() (*ApplicationNewHealthReportEvent, bool) {
38787	return nil, false
38788}
38789
38790// AsApplicationHealthReportExpiredEvent is the BasicFabricEvent implementation for ServiceDeletedEvent.
38791func (sde ServiceDeletedEvent) AsApplicationHealthReportExpiredEvent() (*ApplicationHealthReportExpiredEvent, bool) {
38792	return nil, false
38793}
38794
38795// AsApplicationUpgradeCompletedEvent is the BasicFabricEvent implementation for ServiceDeletedEvent.
38796func (sde ServiceDeletedEvent) AsApplicationUpgradeCompletedEvent() (*ApplicationUpgradeCompletedEvent, bool) {
38797	return nil, false
38798}
38799
38800// AsApplicationUpgradeDomainCompletedEvent is the BasicFabricEvent implementation for ServiceDeletedEvent.
38801func (sde ServiceDeletedEvent) AsApplicationUpgradeDomainCompletedEvent() (*ApplicationUpgradeDomainCompletedEvent, bool) {
38802	return nil, false
38803}
38804
38805// AsApplicationUpgradeRollbackCompletedEvent is the BasicFabricEvent implementation for ServiceDeletedEvent.
38806func (sde ServiceDeletedEvent) AsApplicationUpgradeRollbackCompletedEvent() (*ApplicationUpgradeRollbackCompletedEvent, bool) {
38807	return nil, false
38808}
38809
38810// AsApplicationUpgradeRollbackStartedEvent is the BasicFabricEvent implementation for ServiceDeletedEvent.
38811func (sde ServiceDeletedEvent) AsApplicationUpgradeRollbackStartedEvent() (*ApplicationUpgradeRollbackStartedEvent, bool) {
38812	return nil, false
38813}
38814
38815// AsApplicationUpgradeStartedEvent is the BasicFabricEvent implementation for ServiceDeletedEvent.
38816func (sde ServiceDeletedEvent) AsApplicationUpgradeStartedEvent() (*ApplicationUpgradeStartedEvent, bool) {
38817	return nil, false
38818}
38819
38820// AsDeployedApplicationNewHealthReportEvent is the BasicFabricEvent implementation for ServiceDeletedEvent.
38821func (sde ServiceDeletedEvent) AsDeployedApplicationNewHealthReportEvent() (*DeployedApplicationNewHealthReportEvent, bool) {
38822	return nil, false
38823}
38824
38825// AsDeployedApplicationHealthReportExpiredEvent is the BasicFabricEvent implementation for ServiceDeletedEvent.
38826func (sde ServiceDeletedEvent) AsDeployedApplicationHealthReportExpiredEvent() (*DeployedApplicationHealthReportExpiredEvent, bool) {
38827	return nil, false
38828}
38829
38830// AsApplicationProcessExitedEvent is the BasicFabricEvent implementation for ServiceDeletedEvent.
38831func (sde ServiceDeletedEvent) AsApplicationProcessExitedEvent() (*ApplicationProcessExitedEvent, bool) {
38832	return nil, false
38833}
38834
38835// AsApplicationContainerInstanceExitedEvent is the BasicFabricEvent implementation for ServiceDeletedEvent.
38836func (sde ServiceDeletedEvent) AsApplicationContainerInstanceExitedEvent() (*ApplicationContainerInstanceExitedEvent, bool) {
38837	return nil, false
38838}
38839
38840// AsNodeAbortedEvent is the BasicFabricEvent implementation for ServiceDeletedEvent.
38841func (sde ServiceDeletedEvent) AsNodeAbortedEvent() (*NodeAbortedEvent, bool) {
38842	return nil, false
38843}
38844
38845// AsNodeAddedToClusterEvent is the BasicFabricEvent implementation for ServiceDeletedEvent.
38846func (sde ServiceDeletedEvent) AsNodeAddedToClusterEvent() (*NodeAddedToClusterEvent, bool) {
38847	return nil, false
38848}
38849
38850// AsNodeClosedEvent is the BasicFabricEvent implementation for ServiceDeletedEvent.
38851func (sde ServiceDeletedEvent) AsNodeClosedEvent() (*NodeClosedEvent, bool) {
38852	return nil, false
38853}
38854
38855// AsNodeDeactivateCompletedEvent is the BasicFabricEvent implementation for ServiceDeletedEvent.
38856func (sde ServiceDeletedEvent) AsNodeDeactivateCompletedEvent() (*NodeDeactivateCompletedEvent, bool) {
38857	return nil, false
38858}
38859
38860// AsNodeDeactivateStartedEvent is the BasicFabricEvent implementation for ServiceDeletedEvent.
38861func (sde ServiceDeletedEvent) AsNodeDeactivateStartedEvent() (*NodeDeactivateStartedEvent, bool) {
38862	return nil, false
38863}
38864
38865// AsNodeDownEvent is the BasicFabricEvent implementation for ServiceDeletedEvent.
38866func (sde ServiceDeletedEvent) AsNodeDownEvent() (*NodeDownEvent, bool) {
38867	return nil, false
38868}
38869
38870// AsNodeNewHealthReportEvent is the BasicFabricEvent implementation for ServiceDeletedEvent.
38871func (sde ServiceDeletedEvent) AsNodeNewHealthReportEvent() (*NodeNewHealthReportEvent, bool) {
38872	return nil, false
38873}
38874
38875// AsNodeHealthReportExpiredEvent is the BasicFabricEvent implementation for ServiceDeletedEvent.
38876func (sde ServiceDeletedEvent) AsNodeHealthReportExpiredEvent() (*NodeHealthReportExpiredEvent, bool) {
38877	return nil, false
38878}
38879
38880// AsNodeOpenSucceededEvent is the BasicFabricEvent implementation for ServiceDeletedEvent.
38881func (sde ServiceDeletedEvent) AsNodeOpenSucceededEvent() (*NodeOpenSucceededEvent, bool) {
38882	return nil, false
38883}
38884
38885// AsNodeOpenFailedEvent is the BasicFabricEvent implementation for ServiceDeletedEvent.
38886func (sde ServiceDeletedEvent) AsNodeOpenFailedEvent() (*NodeOpenFailedEvent, bool) {
38887	return nil, false
38888}
38889
38890// AsNodeRemovedFromClusterEvent is the BasicFabricEvent implementation for ServiceDeletedEvent.
38891func (sde ServiceDeletedEvent) AsNodeRemovedFromClusterEvent() (*NodeRemovedFromClusterEvent, bool) {
38892	return nil, false
38893}
38894
38895// AsNodeUpEvent is the BasicFabricEvent implementation for ServiceDeletedEvent.
38896func (sde ServiceDeletedEvent) AsNodeUpEvent() (*NodeUpEvent, bool) {
38897	return nil, false
38898}
38899
38900// AsPartitionNewHealthReportEvent is the BasicFabricEvent implementation for ServiceDeletedEvent.
38901func (sde ServiceDeletedEvent) AsPartitionNewHealthReportEvent() (*PartitionNewHealthReportEvent, bool) {
38902	return nil, false
38903}
38904
38905// AsPartitionHealthReportExpiredEvent is the BasicFabricEvent implementation for ServiceDeletedEvent.
38906func (sde ServiceDeletedEvent) AsPartitionHealthReportExpiredEvent() (*PartitionHealthReportExpiredEvent, bool) {
38907	return nil, false
38908}
38909
38910// AsPartitionReconfiguredEvent is the BasicFabricEvent implementation for ServiceDeletedEvent.
38911func (sde ServiceDeletedEvent) AsPartitionReconfiguredEvent() (*PartitionReconfiguredEvent, bool) {
38912	return nil, false
38913}
38914
38915// AsPartitionPrimaryMoveAnalysisEvent is the BasicFabricEvent implementation for ServiceDeletedEvent.
38916func (sde ServiceDeletedEvent) AsPartitionPrimaryMoveAnalysisEvent() (*PartitionPrimaryMoveAnalysisEvent, bool) {
38917	return nil, false
38918}
38919
38920// AsServiceCreatedEvent is the BasicFabricEvent implementation for ServiceDeletedEvent.
38921func (sde ServiceDeletedEvent) AsServiceCreatedEvent() (*ServiceCreatedEvent, bool) {
38922	return nil, false
38923}
38924
38925// AsServiceDeletedEvent is the BasicFabricEvent implementation for ServiceDeletedEvent.
38926func (sde ServiceDeletedEvent) AsServiceDeletedEvent() (*ServiceDeletedEvent, bool) {
38927	return &sde, true
38928}
38929
38930// AsServiceNewHealthReportEvent is the BasicFabricEvent implementation for ServiceDeletedEvent.
38931func (sde ServiceDeletedEvent) AsServiceNewHealthReportEvent() (*ServiceNewHealthReportEvent, bool) {
38932	return nil, false
38933}
38934
38935// AsServiceHealthReportExpiredEvent is the BasicFabricEvent implementation for ServiceDeletedEvent.
38936func (sde ServiceDeletedEvent) AsServiceHealthReportExpiredEvent() (*ServiceHealthReportExpiredEvent, bool) {
38937	return nil, false
38938}
38939
38940// AsDeployedServicePackageNewHealthReportEvent is the BasicFabricEvent implementation for ServiceDeletedEvent.
38941func (sde ServiceDeletedEvent) AsDeployedServicePackageNewHealthReportEvent() (*DeployedServicePackageNewHealthReportEvent, bool) {
38942	return nil, false
38943}
38944
38945// AsDeployedServicePackageHealthReportExpiredEvent is the BasicFabricEvent implementation for ServiceDeletedEvent.
38946func (sde ServiceDeletedEvent) AsDeployedServicePackageHealthReportExpiredEvent() (*DeployedServicePackageHealthReportExpiredEvent, bool) {
38947	return nil, false
38948}
38949
38950// AsStatefulReplicaNewHealthReportEvent is the BasicFabricEvent implementation for ServiceDeletedEvent.
38951func (sde ServiceDeletedEvent) AsStatefulReplicaNewHealthReportEvent() (*StatefulReplicaNewHealthReportEvent, bool) {
38952	return nil, false
38953}
38954
38955// AsStatefulReplicaHealthReportExpiredEvent is the BasicFabricEvent implementation for ServiceDeletedEvent.
38956func (sde ServiceDeletedEvent) AsStatefulReplicaHealthReportExpiredEvent() (*StatefulReplicaHealthReportExpiredEvent, bool) {
38957	return nil, false
38958}
38959
38960// AsStatelessReplicaNewHealthReportEvent is the BasicFabricEvent implementation for ServiceDeletedEvent.
38961func (sde ServiceDeletedEvent) AsStatelessReplicaNewHealthReportEvent() (*StatelessReplicaNewHealthReportEvent, bool) {
38962	return nil, false
38963}
38964
38965// AsStatelessReplicaHealthReportExpiredEvent is the BasicFabricEvent implementation for ServiceDeletedEvent.
38966func (sde ServiceDeletedEvent) AsStatelessReplicaHealthReportExpiredEvent() (*StatelessReplicaHealthReportExpiredEvent, bool) {
38967	return nil, false
38968}
38969
38970// AsClusterNewHealthReportEvent is the BasicFabricEvent implementation for ServiceDeletedEvent.
38971func (sde ServiceDeletedEvent) AsClusterNewHealthReportEvent() (*ClusterNewHealthReportEvent, bool) {
38972	return nil, false
38973}
38974
38975// AsClusterHealthReportExpiredEvent is the BasicFabricEvent implementation for ServiceDeletedEvent.
38976func (sde ServiceDeletedEvent) AsClusterHealthReportExpiredEvent() (*ClusterHealthReportExpiredEvent, bool) {
38977	return nil, false
38978}
38979
38980// AsClusterUpgradeCompletedEvent is the BasicFabricEvent implementation for ServiceDeletedEvent.
38981func (sde ServiceDeletedEvent) AsClusterUpgradeCompletedEvent() (*ClusterUpgradeCompletedEvent, bool) {
38982	return nil, false
38983}
38984
38985// AsClusterUpgradeDomainCompletedEvent is the BasicFabricEvent implementation for ServiceDeletedEvent.
38986func (sde ServiceDeletedEvent) AsClusterUpgradeDomainCompletedEvent() (*ClusterUpgradeDomainCompletedEvent, bool) {
38987	return nil, false
38988}
38989
38990// AsClusterUpgradeRollbackCompletedEvent is the BasicFabricEvent implementation for ServiceDeletedEvent.
38991func (sde ServiceDeletedEvent) AsClusterUpgradeRollbackCompletedEvent() (*ClusterUpgradeRollbackCompletedEvent, bool) {
38992	return nil, false
38993}
38994
38995// AsClusterUpgradeRollbackStartedEvent is the BasicFabricEvent implementation for ServiceDeletedEvent.
38996func (sde ServiceDeletedEvent) AsClusterUpgradeRollbackStartedEvent() (*ClusterUpgradeRollbackStartedEvent, bool) {
38997	return nil, false
38998}
38999
39000// AsClusterUpgradeStartedEvent is the BasicFabricEvent implementation for ServiceDeletedEvent.
39001func (sde ServiceDeletedEvent) AsClusterUpgradeStartedEvent() (*ClusterUpgradeStartedEvent, bool) {
39002	return nil, false
39003}
39004
39005// AsChaosStoppedEvent is the BasicFabricEvent implementation for ServiceDeletedEvent.
39006func (sde ServiceDeletedEvent) AsChaosStoppedEvent() (*ChaosStoppedEvent, bool) {
39007	return nil, false
39008}
39009
39010// AsChaosStartedEvent is the BasicFabricEvent implementation for ServiceDeletedEvent.
39011func (sde ServiceDeletedEvent) AsChaosStartedEvent() (*ChaosStartedEvent, bool) {
39012	return nil, false
39013}
39014
39015// AsChaosCodePackageRestartScheduledEvent is the BasicFabricEvent implementation for ServiceDeletedEvent.
39016func (sde ServiceDeletedEvent) AsChaosCodePackageRestartScheduledEvent() (*ChaosCodePackageRestartScheduledEvent, bool) {
39017	return nil, false
39018}
39019
39020// AsChaosReplicaRemovalScheduledEvent is the BasicFabricEvent implementation for ServiceDeletedEvent.
39021func (sde ServiceDeletedEvent) AsChaosReplicaRemovalScheduledEvent() (*ChaosReplicaRemovalScheduledEvent, bool) {
39022	return nil, false
39023}
39024
39025// AsChaosPartitionSecondaryMoveScheduledEvent is the BasicFabricEvent implementation for ServiceDeletedEvent.
39026func (sde ServiceDeletedEvent) AsChaosPartitionSecondaryMoveScheduledEvent() (*ChaosPartitionSecondaryMoveScheduledEvent, bool) {
39027	return nil, false
39028}
39029
39030// AsChaosPartitionPrimaryMoveScheduledEvent is the BasicFabricEvent implementation for ServiceDeletedEvent.
39031func (sde ServiceDeletedEvent) AsChaosPartitionPrimaryMoveScheduledEvent() (*ChaosPartitionPrimaryMoveScheduledEvent, bool) {
39032	return nil, false
39033}
39034
39035// AsChaosReplicaRestartScheduledEvent is the BasicFabricEvent implementation for ServiceDeletedEvent.
39036func (sde ServiceDeletedEvent) AsChaosReplicaRestartScheduledEvent() (*ChaosReplicaRestartScheduledEvent, bool) {
39037	return nil, false
39038}
39039
39040// AsChaosNodeRestartScheduledEvent is the BasicFabricEvent implementation for ServiceDeletedEvent.
39041func (sde ServiceDeletedEvent) AsChaosNodeRestartScheduledEvent() (*ChaosNodeRestartScheduledEvent, bool) {
39042	return nil, false
39043}
39044
39045// AsFabricEvent is the BasicFabricEvent implementation for ServiceDeletedEvent.
39046func (sde ServiceDeletedEvent) AsFabricEvent() (*FabricEvent, bool) {
39047	return nil, false
39048}
39049
39050// AsBasicFabricEvent is the BasicFabricEvent implementation for ServiceDeletedEvent.
39051func (sde ServiceDeletedEvent) AsBasicFabricEvent() (BasicFabricEvent, bool) {
39052	return &sde, true
39053}
39054
39055// BasicServiceDescription a ServiceDescription contains all of the information necessary to create a service.
39056type BasicServiceDescription interface {
39057	AsStatefulServiceDescription() (*StatefulServiceDescription, bool)
39058	AsStatelessServiceDescription() (*StatelessServiceDescription, bool)
39059	AsServiceDescription() (*ServiceDescription, bool)
39060}
39061
39062// ServiceDescription a ServiceDescription contains all of the information necessary to create a service.
39063type ServiceDescription struct {
39064	autorest.Response `json:"-"`
39065	// ApplicationName - The name of the application, including the 'fabric:' URI scheme.
39066	ApplicationName *string `json:"ApplicationName,omitempty"`
39067	// ServiceName - The full name of the service with 'fabric:' URI scheme.
39068	ServiceName *string `json:"ServiceName,omitempty"`
39069	// ServiceTypeName - Name of the service type as specified in the service manifest.
39070	ServiceTypeName *string `json:"ServiceTypeName,omitempty"`
39071	// InitializationData - The initialization data as an array of bytes. Initialization data is passed to service instances or replicas when they are created.
39072	InitializationData *[]int32 `json:"InitializationData,omitempty"`
39073	// PartitionDescription - The partition description as an object.
39074	PartitionDescription BasicPartitionSchemeDescription `json:"PartitionDescription,omitempty"`
39075	// 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)".
39076	PlacementConstraints *string `json:"PlacementConstraints,omitempty"`
39077	// CorrelationScheme - The correlation scheme.
39078	CorrelationScheme *[]ServiceCorrelationDescription `json:"CorrelationScheme,omitempty"`
39079	// ServiceLoadMetrics - The service load metrics.
39080	ServiceLoadMetrics *[]ServiceLoadMetricDescription `json:"ServiceLoadMetrics,omitempty"`
39081	// ServicePlacementPolicies - The service placement policies.
39082	ServicePlacementPolicies *[]BasicServicePlacementPolicyDescription `json:"ServicePlacementPolicies,omitempty"`
39083	// DefaultMoveCost - The move cost for the service. Possible values include: 'Zero', 'Low', 'Medium', 'High'
39084	DefaultMoveCost MoveCost `json:"DefaultMoveCost,omitempty"`
39085	// IsDefaultMoveCostSpecified - Indicates if the DefaultMoveCost property is specified.
39086	IsDefaultMoveCostSpecified *bool `json:"IsDefaultMoveCostSpecified,omitempty"`
39087	// ServicePackageActivationMode - The activation mode of service package to be used for a service. Possible values include: 'SharedProcess', 'ExclusiveProcess'
39088	ServicePackageActivationMode ServicePackageActivationMode `json:"ServicePackageActivationMode,omitempty"`
39089	// ServiceDNSName - The DNS name of the service. It requires the DNS system service to be enabled in Service Fabric cluster.
39090	ServiceDNSName *string `json:"ServiceDnsName,omitempty"`
39091	// ScalingPolicies - Scaling policies for this service.
39092	ScalingPolicies *[]ScalingPolicyDescription `json:"ScalingPolicies,omitempty"`
39093	// ServiceKind - Possible values include: 'ServiceKindBasicServiceDescriptionServiceKindServiceDescription', 'ServiceKindBasicServiceDescriptionServiceKindStateful', 'ServiceKindBasicServiceDescriptionServiceKindStateless'
39094	ServiceKind ServiceKindBasicServiceDescription `json:"ServiceKind,omitempty"`
39095}
39096
39097func unmarshalBasicServiceDescription(body []byte) (BasicServiceDescription, error) {
39098	var m map[string]interface{}
39099	err := json.Unmarshal(body, &m)
39100	if err != nil {
39101		return nil, err
39102	}
39103
39104	switch m["ServiceKind"] {
39105	case string(ServiceKindBasicServiceDescriptionServiceKindStateful):
39106		var ssd StatefulServiceDescription
39107		err := json.Unmarshal(body, &ssd)
39108		return ssd, err
39109	case string(ServiceKindBasicServiceDescriptionServiceKindStateless):
39110		var ssd StatelessServiceDescription
39111		err := json.Unmarshal(body, &ssd)
39112		return ssd, err
39113	default:
39114		var sd ServiceDescription
39115		err := json.Unmarshal(body, &sd)
39116		return sd, err
39117	}
39118}
39119func unmarshalBasicServiceDescriptionArray(body []byte) ([]BasicServiceDescription, error) {
39120	var rawMessages []*json.RawMessage
39121	err := json.Unmarshal(body, &rawMessages)
39122	if err != nil {
39123		return nil, err
39124	}
39125
39126	sdArray := make([]BasicServiceDescription, len(rawMessages))
39127
39128	for index, rawMessage := range rawMessages {
39129		sd, err := unmarshalBasicServiceDescription(*rawMessage)
39130		if err != nil {
39131			return nil, err
39132		}
39133		sdArray[index] = sd
39134	}
39135	return sdArray, nil
39136}
39137
39138// MarshalJSON is the custom marshaler for ServiceDescription.
39139func (sd ServiceDescription) MarshalJSON() ([]byte, error) {
39140	sd.ServiceKind = ServiceKindBasicServiceDescriptionServiceKindServiceDescription
39141	objectMap := make(map[string]interface{})
39142	if sd.ApplicationName != nil {
39143		objectMap["ApplicationName"] = sd.ApplicationName
39144	}
39145	if sd.ServiceName != nil {
39146		objectMap["ServiceName"] = sd.ServiceName
39147	}
39148	if sd.ServiceTypeName != nil {
39149		objectMap["ServiceTypeName"] = sd.ServiceTypeName
39150	}
39151	if sd.InitializationData != nil {
39152		objectMap["InitializationData"] = sd.InitializationData
39153	}
39154	objectMap["PartitionDescription"] = sd.PartitionDescription
39155	if sd.PlacementConstraints != nil {
39156		objectMap["PlacementConstraints"] = sd.PlacementConstraints
39157	}
39158	if sd.CorrelationScheme != nil {
39159		objectMap["CorrelationScheme"] = sd.CorrelationScheme
39160	}
39161	if sd.ServiceLoadMetrics != nil {
39162		objectMap["ServiceLoadMetrics"] = sd.ServiceLoadMetrics
39163	}
39164	if sd.ServicePlacementPolicies != nil {
39165		objectMap["ServicePlacementPolicies"] = sd.ServicePlacementPolicies
39166	}
39167	if sd.DefaultMoveCost != "" {
39168		objectMap["DefaultMoveCost"] = sd.DefaultMoveCost
39169	}
39170	if sd.IsDefaultMoveCostSpecified != nil {
39171		objectMap["IsDefaultMoveCostSpecified"] = sd.IsDefaultMoveCostSpecified
39172	}
39173	if sd.ServicePackageActivationMode != "" {
39174		objectMap["ServicePackageActivationMode"] = sd.ServicePackageActivationMode
39175	}
39176	if sd.ServiceDNSName != nil {
39177		objectMap["ServiceDnsName"] = sd.ServiceDNSName
39178	}
39179	if sd.ScalingPolicies != nil {
39180		objectMap["ScalingPolicies"] = sd.ScalingPolicies
39181	}
39182	if sd.ServiceKind != "" {
39183		objectMap["ServiceKind"] = sd.ServiceKind
39184	}
39185	return json.Marshal(objectMap)
39186}
39187
39188// AsStatefulServiceDescription is the BasicServiceDescription implementation for ServiceDescription.
39189func (sd ServiceDescription) AsStatefulServiceDescription() (*StatefulServiceDescription, bool) {
39190	return nil, false
39191}
39192
39193// AsStatelessServiceDescription is the BasicServiceDescription implementation for ServiceDescription.
39194func (sd ServiceDescription) AsStatelessServiceDescription() (*StatelessServiceDescription, bool) {
39195	return nil, false
39196}
39197
39198// AsServiceDescription is the BasicServiceDescription implementation for ServiceDescription.
39199func (sd ServiceDescription) AsServiceDescription() (*ServiceDescription, bool) {
39200	return &sd, true
39201}
39202
39203// AsBasicServiceDescription is the BasicServiceDescription implementation for ServiceDescription.
39204func (sd ServiceDescription) AsBasicServiceDescription() (BasicServiceDescription, bool) {
39205	return &sd, true
39206}
39207
39208// UnmarshalJSON is the custom unmarshaler for ServiceDescription struct.
39209func (sd *ServiceDescription) UnmarshalJSON(body []byte) error {
39210	var m map[string]*json.RawMessage
39211	err := json.Unmarshal(body, &m)
39212	if err != nil {
39213		return err
39214	}
39215	for k, v := range m {
39216		switch k {
39217		case "ApplicationName":
39218			if v != nil {
39219				var applicationName string
39220				err = json.Unmarshal(*v, &applicationName)
39221				if err != nil {
39222					return err
39223				}
39224				sd.ApplicationName = &applicationName
39225			}
39226		case "ServiceName":
39227			if v != nil {
39228				var serviceName string
39229				err = json.Unmarshal(*v, &serviceName)
39230				if err != nil {
39231					return err
39232				}
39233				sd.ServiceName = &serviceName
39234			}
39235		case "ServiceTypeName":
39236			if v != nil {
39237				var serviceTypeName string
39238				err = json.Unmarshal(*v, &serviceTypeName)
39239				if err != nil {
39240					return err
39241				}
39242				sd.ServiceTypeName = &serviceTypeName
39243			}
39244		case "InitializationData":
39245			if v != nil {
39246				var initializationData []int32
39247				err = json.Unmarshal(*v, &initializationData)
39248				if err != nil {
39249					return err
39250				}
39251				sd.InitializationData = &initializationData
39252			}
39253		case "PartitionDescription":
39254			if v != nil {
39255				partitionDescription, err := unmarshalBasicPartitionSchemeDescription(*v)
39256				if err != nil {
39257					return err
39258				}
39259				sd.PartitionDescription = partitionDescription
39260			}
39261		case "PlacementConstraints":
39262			if v != nil {
39263				var placementConstraints string
39264				err = json.Unmarshal(*v, &placementConstraints)
39265				if err != nil {
39266					return err
39267				}
39268				sd.PlacementConstraints = &placementConstraints
39269			}
39270		case "CorrelationScheme":
39271			if v != nil {
39272				var correlationScheme []ServiceCorrelationDescription
39273				err = json.Unmarshal(*v, &correlationScheme)
39274				if err != nil {
39275					return err
39276				}
39277				sd.CorrelationScheme = &correlationScheme
39278			}
39279		case "ServiceLoadMetrics":
39280			if v != nil {
39281				var serviceLoadMetrics []ServiceLoadMetricDescription
39282				err = json.Unmarshal(*v, &serviceLoadMetrics)
39283				if err != nil {
39284					return err
39285				}
39286				sd.ServiceLoadMetrics = &serviceLoadMetrics
39287			}
39288		case "ServicePlacementPolicies":
39289			if v != nil {
39290				servicePlacementPolicies, err := unmarshalBasicServicePlacementPolicyDescriptionArray(*v)
39291				if err != nil {
39292					return err
39293				}
39294				sd.ServicePlacementPolicies = &servicePlacementPolicies
39295			}
39296		case "DefaultMoveCost":
39297			if v != nil {
39298				var defaultMoveCost MoveCost
39299				err = json.Unmarshal(*v, &defaultMoveCost)
39300				if err != nil {
39301					return err
39302				}
39303				sd.DefaultMoveCost = defaultMoveCost
39304			}
39305		case "IsDefaultMoveCostSpecified":
39306			if v != nil {
39307				var isDefaultMoveCostSpecified bool
39308				err = json.Unmarshal(*v, &isDefaultMoveCostSpecified)
39309				if err != nil {
39310					return err
39311				}
39312				sd.IsDefaultMoveCostSpecified = &isDefaultMoveCostSpecified
39313			}
39314		case "ServicePackageActivationMode":
39315			if v != nil {
39316				var servicePackageActivationMode ServicePackageActivationMode
39317				err = json.Unmarshal(*v, &servicePackageActivationMode)
39318				if err != nil {
39319					return err
39320				}
39321				sd.ServicePackageActivationMode = servicePackageActivationMode
39322			}
39323		case "ServiceDnsName":
39324			if v != nil {
39325				var serviceDNSName string
39326				err = json.Unmarshal(*v, &serviceDNSName)
39327				if err != nil {
39328					return err
39329				}
39330				sd.ServiceDNSName = &serviceDNSName
39331			}
39332		case "ScalingPolicies":
39333			if v != nil {
39334				var scalingPolicies []ScalingPolicyDescription
39335				err = json.Unmarshal(*v, &scalingPolicies)
39336				if err != nil {
39337					return err
39338				}
39339				sd.ScalingPolicies = &scalingPolicies
39340			}
39341		case "ServiceKind":
39342			if v != nil {
39343				var serviceKind ServiceKindBasicServiceDescription
39344				err = json.Unmarshal(*v, &serviceKind)
39345				if err != nil {
39346					return err
39347				}
39348				sd.ServiceKind = serviceKind
39349			}
39350		}
39351	}
39352
39353	return nil
39354}
39355
39356// ServiceDescriptionModel ...
39357type ServiceDescriptionModel struct {
39358	autorest.Response `json:"-"`
39359	Value             BasicServiceDescription `json:"value,omitempty"`
39360}
39361
39362// UnmarshalJSON is the custom unmarshaler for ServiceDescriptionModel struct.
39363func (sdm *ServiceDescriptionModel) UnmarshalJSON(body []byte) error {
39364	sd, err := unmarshalBasicServiceDescription(body)
39365	if err != nil {
39366		return err
39367	}
39368	sdm.Value = sd
39369
39370	return nil
39371}
39372
39373// BasicServiceEvent represents the base for all Service Events.
39374type BasicServiceEvent interface {
39375	AsServiceCreatedEvent() (*ServiceCreatedEvent, bool)
39376	AsServiceDeletedEvent() (*ServiceDeletedEvent, bool)
39377	AsServiceNewHealthReportEvent() (*ServiceNewHealthReportEvent, bool)
39378	AsServiceHealthReportExpiredEvent() (*ServiceHealthReportExpiredEvent, bool)
39379	AsServiceEvent() (*ServiceEvent, bool)
39380}
39381
39382// ServiceEvent represents the base for all Service Events.
39383type ServiceEvent struct {
39384	// 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.
39385	// Starting in version 6.0, hierarchical names are delimited with the "\~" character. For example, if the service name is "fabric:/myapp/app1/svc1",
39386	// the service identity would be "myapp~app1\~svc1" in 6.0+ and "myapp/app1/svc1" in previous versions.
39387	ServiceID *string `json:"ServiceId,omitempty"`
39388	// EventInstanceID - The identifier for the FabricEvent instance.
39389	EventInstanceID *uuid.UUID `json:"EventInstanceId,omitempty"`
39390	// Category - The category of event.
39391	Category *string `json:"Category,omitempty"`
39392	// TimeStamp - The time event was logged.
39393	TimeStamp *date.Time `json:"TimeStamp,omitempty"`
39394	// HasCorrelatedEvents - Shows there is existing related events available.
39395	HasCorrelatedEvents *bool `json:"HasCorrelatedEvents,omitempty"`
39396	// 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'
39397	Kind KindBasicFabricEvent `json:"Kind,omitempty"`
39398}
39399
39400func unmarshalBasicServiceEvent(body []byte) (BasicServiceEvent, error) {
39401	var m map[string]interface{}
39402	err := json.Unmarshal(body, &m)
39403	if err != nil {
39404		return nil, err
39405	}
39406
39407	switch m["Kind"] {
39408	case string(KindServiceCreated):
39409		var sce ServiceCreatedEvent
39410		err := json.Unmarshal(body, &sce)
39411		return sce, err
39412	case string(KindServiceDeleted):
39413		var sde ServiceDeletedEvent
39414		err := json.Unmarshal(body, &sde)
39415		return sde, err
39416	case string(KindServiceNewHealthReport):
39417		var snhre ServiceNewHealthReportEvent
39418		err := json.Unmarshal(body, &snhre)
39419		return snhre, err
39420	case string(KindServiceHealthReportExpired):
39421		var shree ServiceHealthReportExpiredEvent
39422		err := json.Unmarshal(body, &shree)
39423		return shree, err
39424	default:
39425		var se ServiceEvent
39426		err := json.Unmarshal(body, &se)
39427		return se, err
39428	}
39429}
39430func unmarshalBasicServiceEventArray(body []byte) ([]BasicServiceEvent, error) {
39431	var rawMessages []*json.RawMessage
39432	err := json.Unmarshal(body, &rawMessages)
39433	if err != nil {
39434		return nil, err
39435	}
39436
39437	seArray := make([]BasicServiceEvent, len(rawMessages))
39438
39439	for index, rawMessage := range rawMessages {
39440		se, err := unmarshalBasicServiceEvent(*rawMessage)
39441		if err != nil {
39442			return nil, err
39443		}
39444		seArray[index] = se
39445	}
39446	return seArray, nil
39447}
39448
39449// MarshalJSON is the custom marshaler for ServiceEvent.
39450func (se ServiceEvent) MarshalJSON() ([]byte, error) {
39451	se.Kind = KindServiceEvent
39452	objectMap := make(map[string]interface{})
39453	if se.ServiceID != nil {
39454		objectMap["ServiceId"] = se.ServiceID
39455	}
39456	if se.EventInstanceID != nil {
39457		objectMap["EventInstanceId"] = se.EventInstanceID
39458	}
39459	if se.Category != nil {
39460		objectMap["Category"] = se.Category
39461	}
39462	if se.TimeStamp != nil {
39463		objectMap["TimeStamp"] = se.TimeStamp
39464	}
39465	if se.HasCorrelatedEvents != nil {
39466		objectMap["HasCorrelatedEvents"] = se.HasCorrelatedEvents
39467	}
39468	if se.Kind != "" {
39469		objectMap["Kind"] = se.Kind
39470	}
39471	return json.Marshal(objectMap)
39472}
39473
39474// AsApplicationEvent is the BasicFabricEvent implementation for ServiceEvent.
39475func (se ServiceEvent) AsApplicationEvent() (*ApplicationEvent, bool) {
39476	return nil, false
39477}
39478
39479// AsBasicApplicationEvent is the BasicFabricEvent implementation for ServiceEvent.
39480func (se ServiceEvent) AsBasicApplicationEvent() (BasicApplicationEvent, bool) {
39481	return nil, false
39482}
39483
39484// AsClusterEvent is the BasicFabricEvent implementation for ServiceEvent.
39485func (se ServiceEvent) AsClusterEvent() (*ClusterEvent, bool) {
39486	return nil, false
39487}
39488
39489// AsBasicClusterEvent is the BasicFabricEvent implementation for ServiceEvent.
39490func (se ServiceEvent) AsBasicClusterEvent() (BasicClusterEvent, bool) {
39491	return nil, false
39492}
39493
39494// AsContainerInstanceEvent is the BasicFabricEvent implementation for ServiceEvent.
39495func (se ServiceEvent) AsContainerInstanceEvent() (*ContainerInstanceEvent, bool) {
39496	return nil, false
39497}
39498
39499// AsNodeEvent is the BasicFabricEvent implementation for ServiceEvent.
39500func (se ServiceEvent) AsNodeEvent() (*NodeEvent, bool) {
39501	return nil, false
39502}
39503
39504// AsBasicNodeEvent is the BasicFabricEvent implementation for ServiceEvent.
39505func (se ServiceEvent) AsBasicNodeEvent() (BasicNodeEvent, bool) {
39506	return nil, false
39507}
39508
39509// AsPartitionAnalysisEvent is the BasicFabricEvent implementation for ServiceEvent.
39510func (se ServiceEvent) AsPartitionAnalysisEvent() (*PartitionAnalysisEvent, bool) {
39511	return nil, false
39512}
39513
39514// AsBasicPartitionAnalysisEvent is the BasicFabricEvent implementation for ServiceEvent.
39515func (se ServiceEvent) AsBasicPartitionAnalysisEvent() (BasicPartitionAnalysisEvent, bool) {
39516	return nil, false
39517}
39518
39519// AsPartitionEvent is the BasicFabricEvent implementation for ServiceEvent.
39520func (se ServiceEvent) AsPartitionEvent() (*PartitionEvent, bool) {
39521	return nil, false
39522}
39523
39524// AsBasicPartitionEvent is the BasicFabricEvent implementation for ServiceEvent.
39525func (se ServiceEvent) AsBasicPartitionEvent() (BasicPartitionEvent, bool) {
39526	return nil, false
39527}
39528
39529// AsReplicaEvent is the BasicFabricEvent implementation for ServiceEvent.
39530func (se ServiceEvent) AsReplicaEvent() (*ReplicaEvent, bool) {
39531	return nil, false
39532}
39533
39534// AsBasicReplicaEvent is the BasicFabricEvent implementation for ServiceEvent.
39535func (se ServiceEvent) AsBasicReplicaEvent() (BasicReplicaEvent, bool) {
39536	return nil, false
39537}
39538
39539// AsServiceEvent is the BasicFabricEvent implementation for ServiceEvent.
39540func (se ServiceEvent) AsServiceEvent() (*ServiceEvent, bool) {
39541	return &se, true
39542}
39543
39544// AsBasicServiceEvent is the BasicFabricEvent implementation for ServiceEvent.
39545func (se ServiceEvent) AsBasicServiceEvent() (BasicServiceEvent, bool) {
39546	return &se, true
39547}
39548
39549// AsApplicationCreatedEvent is the BasicFabricEvent implementation for ServiceEvent.
39550func (se ServiceEvent) AsApplicationCreatedEvent() (*ApplicationCreatedEvent, bool) {
39551	return nil, false
39552}
39553
39554// AsApplicationDeletedEvent is the BasicFabricEvent implementation for ServiceEvent.
39555func (se ServiceEvent) AsApplicationDeletedEvent() (*ApplicationDeletedEvent, bool) {
39556	return nil, false
39557}
39558
39559// AsApplicationNewHealthReportEvent is the BasicFabricEvent implementation for ServiceEvent.
39560func (se ServiceEvent) AsApplicationNewHealthReportEvent() (*ApplicationNewHealthReportEvent, bool) {
39561	return nil, false
39562}
39563
39564// AsApplicationHealthReportExpiredEvent is the BasicFabricEvent implementation for ServiceEvent.
39565func (se ServiceEvent) AsApplicationHealthReportExpiredEvent() (*ApplicationHealthReportExpiredEvent, bool) {
39566	return nil, false
39567}
39568
39569// AsApplicationUpgradeCompletedEvent is the BasicFabricEvent implementation for ServiceEvent.
39570func (se ServiceEvent) AsApplicationUpgradeCompletedEvent() (*ApplicationUpgradeCompletedEvent, bool) {
39571	return nil, false
39572}
39573
39574// AsApplicationUpgradeDomainCompletedEvent is the BasicFabricEvent implementation for ServiceEvent.
39575func (se ServiceEvent) AsApplicationUpgradeDomainCompletedEvent() (*ApplicationUpgradeDomainCompletedEvent, bool) {
39576	return nil, false
39577}
39578
39579// AsApplicationUpgradeRollbackCompletedEvent is the BasicFabricEvent implementation for ServiceEvent.
39580func (se ServiceEvent) AsApplicationUpgradeRollbackCompletedEvent() (*ApplicationUpgradeRollbackCompletedEvent, bool) {
39581	return nil, false
39582}
39583
39584// AsApplicationUpgradeRollbackStartedEvent is the BasicFabricEvent implementation for ServiceEvent.
39585func (se ServiceEvent) AsApplicationUpgradeRollbackStartedEvent() (*ApplicationUpgradeRollbackStartedEvent, bool) {
39586	return nil, false
39587}
39588
39589// AsApplicationUpgradeStartedEvent is the BasicFabricEvent implementation for ServiceEvent.
39590func (se ServiceEvent) AsApplicationUpgradeStartedEvent() (*ApplicationUpgradeStartedEvent, bool) {
39591	return nil, false
39592}
39593
39594// AsDeployedApplicationNewHealthReportEvent is the BasicFabricEvent implementation for ServiceEvent.
39595func (se ServiceEvent) AsDeployedApplicationNewHealthReportEvent() (*DeployedApplicationNewHealthReportEvent, bool) {
39596	return nil, false
39597}
39598
39599// AsDeployedApplicationHealthReportExpiredEvent is the BasicFabricEvent implementation for ServiceEvent.
39600func (se ServiceEvent) AsDeployedApplicationHealthReportExpiredEvent() (*DeployedApplicationHealthReportExpiredEvent, bool) {
39601	return nil, false
39602}
39603
39604// AsApplicationProcessExitedEvent is the BasicFabricEvent implementation for ServiceEvent.
39605func (se ServiceEvent) AsApplicationProcessExitedEvent() (*ApplicationProcessExitedEvent, bool) {
39606	return nil, false
39607}
39608
39609// AsApplicationContainerInstanceExitedEvent is the BasicFabricEvent implementation for ServiceEvent.
39610func (se ServiceEvent) AsApplicationContainerInstanceExitedEvent() (*ApplicationContainerInstanceExitedEvent, bool) {
39611	return nil, false
39612}
39613
39614// AsNodeAbortedEvent is the BasicFabricEvent implementation for ServiceEvent.
39615func (se ServiceEvent) AsNodeAbortedEvent() (*NodeAbortedEvent, bool) {
39616	return nil, false
39617}
39618
39619// AsNodeAddedToClusterEvent is the BasicFabricEvent implementation for ServiceEvent.
39620func (se ServiceEvent) AsNodeAddedToClusterEvent() (*NodeAddedToClusterEvent, bool) {
39621	return nil, false
39622}
39623
39624// AsNodeClosedEvent is the BasicFabricEvent implementation for ServiceEvent.
39625func (se ServiceEvent) AsNodeClosedEvent() (*NodeClosedEvent, bool) {
39626	return nil, false
39627}
39628
39629// AsNodeDeactivateCompletedEvent is the BasicFabricEvent implementation for ServiceEvent.
39630func (se ServiceEvent) AsNodeDeactivateCompletedEvent() (*NodeDeactivateCompletedEvent, bool) {
39631	return nil, false
39632}
39633
39634// AsNodeDeactivateStartedEvent is the BasicFabricEvent implementation for ServiceEvent.
39635func (se ServiceEvent) AsNodeDeactivateStartedEvent() (*NodeDeactivateStartedEvent, bool) {
39636	return nil, false
39637}
39638
39639// AsNodeDownEvent is the BasicFabricEvent implementation for ServiceEvent.
39640func (se ServiceEvent) AsNodeDownEvent() (*NodeDownEvent, bool) {
39641	return nil, false
39642}
39643
39644// AsNodeNewHealthReportEvent is the BasicFabricEvent implementation for ServiceEvent.
39645func (se ServiceEvent) AsNodeNewHealthReportEvent() (*NodeNewHealthReportEvent, bool) {
39646	return nil, false
39647}
39648
39649// AsNodeHealthReportExpiredEvent is the BasicFabricEvent implementation for ServiceEvent.
39650func (se ServiceEvent) AsNodeHealthReportExpiredEvent() (*NodeHealthReportExpiredEvent, bool) {
39651	return nil, false
39652}
39653
39654// AsNodeOpenSucceededEvent is the BasicFabricEvent implementation for ServiceEvent.
39655func (se ServiceEvent) AsNodeOpenSucceededEvent() (*NodeOpenSucceededEvent, bool) {
39656	return nil, false
39657}
39658
39659// AsNodeOpenFailedEvent is the BasicFabricEvent implementation for ServiceEvent.
39660func (se ServiceEvent) AsNodeOpenFailedEvent() (*NodeOpenFailedEvent, bool) {
39661	return nil, false
39662}
39663
39664// AsNodeRemovedFromClusterEvent is the BasicFabricEvent implementation for ServiceEvent.
39665func (se ServiceEvent) AsNodeRemovedFromClusterEvent() (*NodeRemovedFromClusterEvent, bool) {
39666	return nil, false
39667}
39668
39669// AsNodeUpEvent is the BasicFabricEvent implementation for ServiceEvent.
39670func (se ServiceEvent) AsNodeUpEvent() (*NodeUpEvent, bool) {
39671	return nil, false
39672}
39673
39674// AsPartitionNewHealthReportEvent is the BasicFabricEvent implementation for ServiceEvent.
39675func (se ServiceEvent) AsPartitionNewHealthReportEvent() (*PartitionNewHealthReportEvent, bool) {
39676	return nil, false
39677}
39678
39679// AsPartitionHealthReportExpiredEvent is the BasicFabricEvent implementation for ServiceEvent.
39680func (se ServiceEvent) AsPartitionHealthReportExpiredEvent() (*PartitionHealthReportExpiredEvent, bool) {
39681	return nil, false
39682}
39683
39684// AsPartitionReconfiguredEvent is the BasicFabricEvent implementation for ServiceEvent.
39685func (se ServiceEvent) AsPartitionReconfiguredEvent() (*PartitionReconfiguredEvent, bool) {
39686	return nil, false
39687}
39688
39689// AsPartitionPrimaryMoveAnalysisEvent is the BasicFabricEvent implementation for ServiceEvent.
39690func (se ServiceEvent) AsPartitionPrimaryMoveAnalysisEvent() (*PartitionPrimaryMoveAnalysisEvent, bool) {
39691	return nil, false
39692}
39693
39694// AsServiceCreatedEvent is the BasicFabricEvent implementation for ServiceEvent.
39695func (se ServiceEvent) AsServiceCreatedEvent() (*ServiceCreatedEvent, bool) {
39696	return nil, false
39697}
39698
39699// AsServiceDeletedEvent is the BasicFabricEvent implementation for ServiceEvent.
39700func (se ServiceEvent) AsServiceDeletedEvent() (*ServiceDeletedEvent, bool) {
39701	return nil, false
39702}
39703
39704// AsServiceNewHealthReportEvent is the BasicFabricEvent implementation for ServiceEvent.
39705func (se ServiceEvent) AsServiceNewHealthReportEvent() (*ServiceNewHealthReportEvent, bool) {
39706	return nil, false
39707}
39708
39709// AsServiceHealthReportExpiredEvent is the BasicFabricEvent implementation for ServiceEvent.
39710func (se ServiceEvent) AsServiceHealthReportExpiredEvent() (*ServiceHealthReportExpiredEvent, bool) {
39711	return nil, false
39712}
39713
39714// AsDeployedServicePackageNewHealthReportEvent is the BasicFabricEvent implementation for ServiceEvent.
39715func (se ServiceEvent) AsDeployedServicePackageNewHealthReportEvent() (*DeployedServicePackageNewHealthReportEvent, bool) {
39716	return nil, false
39717}
39718
39719// AsDeployedServicePackageHealthReportExpiredEvent is the BasicFabricEvent implementation for ServiceEvent.
39720func (se ServiceEvent) AsDeployedServicePackageHealthReportExpiredEvent() (*DeployedServicePackageHealthReportExpiredEvent, bool) {
39721	return nil, false
39722}
39723
39724// AsStatefulReplicaNewHealthReportEvent is the BasicFabricEvent implementation for ServiceEvent.
39725func (se ServiceEvent) AsStatefulReplicaNewHealthReportEvent() (*StatefulReplicaNewHealthReportEvent, bool) {
39726	return nil, false
39727}
39728
39729// AsStatefulReplicaHealthReportExpiredEvent is the BasicFabricEvent implementation for ServiceEvent.
39730func (se ServiceEvent) AsStatefulReplicaHealthReportExpiredEvent() (*StatefulReplicaHealthReportExpiredEvent, bool) {
39731	return nil, false
39732}
39733
39734// AsStatelessReplicaNewHealthReportEvent is the BasicFabricEvent implementation for ServiceEvent.
39735func (se ServiceEvent) AsStatelessReplicaNewHealthReportEvent() (*StatelessReplicaNewHealthReportEvent, bool) {
39736	return nil, false
39737}
39738
39739// AsStatelessReplicaHealthReportExpiredEvent is the BasicFabricEvent implementation for ServiceEvent.
39740func (se ServiceEvent) AsStatelessReplicaHealthReportExpiredEvent() (*StatelessReplicaHealthReportExpiredEvent, bool) {
39741	return nil, false
39742}
39743
39744// AsClusterNewHealthReportEvent is the BasicFabricEvent implementation for ServiceEvent.
39745func (se ServiceEvent) AsClusterNewHealthReportEvent() (*ClusterNewHealthReportEvent, bool) {
39746	return nil, false
39747}
39748
39749// AsClusterHealthReportExpiredEvent is the BasicFabricEvent implementation for ServiceEvent.
39750func (se ServiceEvent) AsClusterHealthReportExpiredEvent() (*ClusterHealthReportExpiredEvent, bool) {
39751	return nil, false
39752}
39753
39754// AsClusterUpgradeCompletedEvent is the BasicFabricEvent implementation for ServiceEvent.
39755func (se ServiceEvent) AsClusterUpgradeCompletedEvent() (*ClusterUpgradeCompletedEvent, bool) {
39756	return nil, false
39757}
39758
39759// AsClusterUpgradeDomainCompletedEvent is the BasicFabricEvent implementation for ServiceEvent.
39760func (se ServiceEvent) AsClusterUpgradeDomainCompletedEvent() (*ClusterUpgradeDomainCompletedEvent, bool) {
39761	return nil, false
39762}
39763
39764// AsClusterUpgradeRollbackCompletedEvent is the BasicFabricEvent implementation for ServiceEvent.
39765func (se ServiceEvent) AsClusterUpgradeRollbackCompletedEvent() (*ClusterUpgradeRollbackCompletedEvent, bool) {
39766	return nil, false
39767}
39768
39769// AsClusterUpgradeRollbackStartedEvent is the BasicFabricEvent implementation for ServiceEvent.
39770func (se ServiceEvent) AsClusterUpgradeRollbackStartedEvent() (*ClusterUpgradeRollbackStartedEvent, bool) {
39771	return nil, false
39772}
39773
39774// AsClusterUpgradeStartedEvent is the BasicFabricEvent implementation for ServiceEvent.
39775func (se ServiceEvent) AsClusterUpgradeStartedEvent() (*ClusterUpgradeStartedEvent, bool) {
39776	return nil, false
39777}
39778
39779// AsChaosStoppedEvent is the BasicFabricEvent implementation for ServiceEvent.
39780func (se ServiceEvent) AsChaosStoppedEvent() (*ChaosStoppedEvent, bool) {
39781	return nil, false
39782}
39783
39784// AsChaosStartedEvent is the BasicFabricEvent implementation for ServiceEvent.
39785func (se ServiceEvent) AsChaosStartedEvent() (*ChaosStartedEvent, bool) {
39786	return nil, false
39787}
39788
39789// AsChaosCodePackageRestartScheduledEvent is the BasicFabricEvent implementation for ServiceEvent.
39790func (se ServiceEvent) AsChaosCodePackageRestartScheduledEvent() (*ChaosCodePackageRestartScheduledEvent, bool) {
39791	return nil, false
39792}
39793
39794// AsChaosReplicaRemovalScheduledEvent is the BasicFabricEvent implementation for ServiceEvent.
39795func (se ServiceEvent) AsChaosReplicaRemovalScheduledEvent() (*ChaosReplicaRemovalScheduledEvent, bool) {
39796	return nil, false
39797}
39798
39799// AsChaosPartitionSecondaryMoveScheduledEvent is the BasicFabricEvent implementation for ServiceEvent.
39800func (se ServiceEvent) AsChaosPartitionSecondaryMoveScheduledEvent() (*ChaosPartitionSecondaryMoveScheduledEvent, bool) {
39801	return nil, false
39802}
39803
39804// AsChaosPartitionPrimaryMoveScheduledEvent is the BasicFabricEvent implementation for ServiceEvent.
39805func (se ServiceEvent) AsChaosPartitionPrimaryMoveScheduledEvent() (*ChaosPartitionPrimaryMoveScheduledEvent, bool) {
39806	return nil, false
39807}
39808
39809// AsChaosReplicaRestartScheduledEvent is the BasicFabricEvent implementation for ServiceEvent.
39810func (se ServiceEvent) AsChaosReplicaRestartScheduledEvent() (*ChaosReplicaRestartScheduledEvent, bool) {
39811	return nil, false
39812}
39813
39814// AsChaosNodeRestartScheduledEvent is the BasicFabricEvent implementation for ServiceEvent.
39815func (se ServiceEvent) AsChaosNodeRestartScheduledEvent() (*ChaosNodeRestartScheduledEvent, bool) {
39816	return nil, false
39817}
39818
39819// AsFabricEvent is the BasicFabricEvent implementation for ServiceEvent.
39820func (se ServiceEvent) AsFabricEvent() (*FabricEvent, bool) {
39821	return nil, false
39822}
39823
39824// AsBasicFabricEvent is the BasicFabricEvent implementation for ServiceEvent.
39825func (se ServiceEvent) AsBasicFabricEvent() (BasicFabricEvent, bool) {
39826	return &se, true
39827}
39828
39829// ServiceFromTemplateDescription defines description for creating a Service Fabric service from a template
39830// defined in the application manifest.
39831type ServiceFromTemplateDescription struct {
39832	// ApplicationName - The name of the application, including the 'fabric:' URI scheme.
39833	ApplicationName *string `json:"ApplicationName,omitempty"`
39834	// ServiceName - The full name of the service with 'fabric:' URI scheme.
39835	ServiceName *string `json:"ServiceName,omitempty"`
39836	// ServiceTypeName - Name of the service type as specified in the service manifest.
39837	ServiceTypeName *string `json:"ServiceTypeName,omitempty"`
39838	// InitializationData - The initialization data for the newly created service instance.
39839	InitializationData *[]int32 `json:"InitializationData,omitempty"`
39840	// ServicePackageActivationMode - The activation mode of service package to be used for a service. Possible values include: 'SharedProcess', 'ExclusiveProcess'
39841	ServicePackageActivationMode ServicePackageActivationMode `json:"ServicePackageActivationMode,omitempty"`
39842	// ServiceDNSName - The DNS name of the service. It requires the DNS system service to be enabled in Service Fabric cluster.
39843	ServiceDNSName *string `json:"ServiceDnsName,omitempty"`
39844}
39845
39846// ServiceHealth information about the health of a Service Fabric service.
39847type ServiceHealth struct {
39848	autorest.Response `json:"-"`
39849	// Name - The name of the service whose health information is described by this object.
39850	Name *string `json:"Name,omitempty"`
39851	// PartitionHealthStates - The list of partition health states associated with the service.
39852	PartitionHealthStates *[]PartitionHealthState `json:"PartitionHealthStates,omitempty"`
39853	// AggregatedHealthState - The HealthState representing the aggregated health state of the entity computed by Health Manager.
39854	// The health evaluation of the entity reflects all events reported on the entity and its children (if any).
39855	// The aggregation is done by applying the desired health policy. Possible values include: 'HealthStateInvalid', 'HealthStateOk', 'HealthStateWarning', 'HealthStateError', 'HealthStateUnknown'
39856	AggregatedHealthState HealthState `json:"AggregatedHealthState,omitempty"`
39857	// HealthEvents - The list of health events reported on the entity.
39858	HealthEvents *[]HealthEvent `json:"HealthEvents,omitempty"`
39859	// UnhealthyEvaluations - The unhealthy evaluations that show why the current aggregated health state was returned by Health Manager.
39860	UnhealthyEvaluations *[]HealthEvaluationWrapper `json:"UnhealthyEvaluations,omitempty"`
39861	// HealthStatistics - Shows the health statistics for all children types of the queried entity.
39862	HealthStatistics *HealthStatistics `json:"HealthStatistics,omitempty"`
39863}
39864
39865// ServiceHealthEvaluation represents health evaluation for a service, containing information about the
39866// data and the algorithm used by health store to evaluate health. The evaluation is returned only when the
39867// aggregated health state is either Error or Warning.
39868type ServiceHealthEvaluation struct {
39869	// ServiceName - Name of the service whose health evaluation is described by this object.
39870	ServiceName *string `json:"ServiceName,omitempty"`
39871	// 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.
39872	UnhealthyEvaluations *[]HealthEvaluationWrapper `json:"UnhealthyEvaluations,omitempty"`
39873	// 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'
39874	AggregatedHealthState HealthState `json:"AggregatedHealthState,omitempty"`
39875	// Description - Description of the health evaluation, which represents a summary of the evaluation process.
39876	Description *string `json:"Description,omitempty"`
39877	// 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'
39878	Kind Kind `json:"Kind,omitempty"`
39879}
39880
39881// MarshalJSON is the custom marshaler for ServiceHealthEvaluation.
39882func (she ServiceHealthEvaluation) MarshalJSON() ([]byte, error) {
39883	she.Kind = KindService
39884	objectMap := make(map[string]interface{})
39885	if she.ServiceName != nil {
39886		objectMap["ServiceName"] = she.ServiceName
39887	}
39888	if she.UnhealthyEvaluations != nil {
39889		objectMap["UnhealthyEvaluations"] = she.UnhealthyEvaluations
39890	}
39891	if she.AggregatedHealthState != "" {
39892		objectMap["AggregatedHealthState"] = she.AggregatedHealthState
39893	}
39894	if she.Description != nil {
39895		objectMap["Description"] = she.Description
39896	}
39897	if she.Kind != "" {
39898		objectMap["Kind"] = she.Kind
39899	}
39900	return json.Marshal(objectMap)
39901}
39902
39903// AsApplicationHealthEvaluation is the BasicHealthEvaluation implementation for ServiceHealthEvaluation.
39904func (she ServiceHealthEvaluation) AsApplicationHealthEvaluation() (*ApplicationHealthEvaluation, bool) {
39905	return nil, false
39906}
39907
39908// AsApplicationsHealthEvaluation is the BasicHealthEvaluation implementation for ServiceHealthEvaluation.
39909func (she ServiceHealthEvaluation) AsApplicationsHealthEvaluation() (*ApplicationsHealthEvaluation, bool) {
39910	return nil, false
39911}
39912
39913// AsApplicationTypeApplicationsHealthEvaluation is the BasicHealthEvaluation implementation for ServiceHealthEvaluation.
39914func (she ServiceHealthEvaluation) AsApplicationTypeApplicationsHealthEvaluation() (*ApplicationTypeApplicationsHealthEvaluation, bool) {
39915	return nil, false
39916}
39917
39918// AsDeltaNodesCheckHealthEvaluation is the BasicHealthEvaluation implementation for ServiceHealthEvaluation.
39919func (she ServiceHealthEvaluation) AsDeltaNodesCheckHealthEvaluation() (*DeltaNodesCheckHealthEvaluation, bool) {
39920	return nil, false
39921}
39922
39923// AsDeployedApplicationHealthEvaluation is the BasicHealthEvaluation implementation for ServiceHealthEvaluation.
39924func (she ServiceHealthEvaluation) AsDeployedApplicationHealthEvaluation() (*DeployedApplicationHealthEvaluation, bool) {
39925	return nil, false
39926}
39927
39928// AsDeployedApplicationsHealthEvaluation is the BasicHealthEvaluation implementation for ServiceHealthEvaluation.
39929func (she ServiceHealthEvaluation) AsDeployedApplicationsHealthEvaluation() (*DeployedApplicationsHealthEvaluation, bool) {
39930	return nil, false
39931}
39932
39933// AsDeployedServicePackageHealthEvaluation is the BasicHealthEvaluation implementation for ServiceHealthEvaluation.
39934func (she ServiceHealthEvaluation) AsDeployedServicePackageHealthEvaluation() (*DeployedServicePackageHealthEvaluation, bool) {
39935	return nil, false
39936}
39937
39938// AsDeployedServicePackagesHealthEvaluation is the BasicHealthEvaluation implementation for ServiceHealthEvaluation.
39939func (she ServiceHealthEvaluation) AsDeployedServicePackagesHealthEvaluation() (*DeployedServicePackagesHealthEvaluation, bool) {
39940	return nil, false
39941}
39942
39943// AsEventHealthEvaluation is the BasicHealthEvaluation implementation for ServiceHealthEvaluation.
39944func (she ServiceHealthEvaluation) AsEventHealthEvaluation() (*EventHealthEvaluation, bool) {
39945	return nil, false
39946}
39947
39948// AsNodeHealthEvaluation is the BasicHealthEvaluation implementation for ServiceHealthEvaluation.
39949func (she ServiceHealthEvaluation) AsNodeHealthEvaluation() (*NodeHealthEvaluation, bool) {
39950	return nil, false
39951}
39952
39953// AsNodesHealthEvaluation is the BasicHealthEvaluation implementation for ServiceHealthEvaluation.
39954func (she ServiceHealthEvaluation) AsNodesHealthEvaluation() (*NodesHealthEvaluation, bool) {
39955	return nil, false
39956}
39957
39958// AsPartitionHealthEvaluation is the BasicHealthEvaluation implementation for ServiceHealthEvaluation.
39959func (she ServiceHealthEvaluation) AsPartitionHealthEvaluation() (*PartitionHealthEvaluation, bool) {
39960	return nil, false
39961}
39962
39963// AsPartitionsHealthEvaluation is the BasicHealthEvaluation implementation for ServiceHealthEvaluation.
39964func (she ServiceHealthEvaluation) AsPartitionsHealthEvaluation() (*PartitionsHealthEvaluation, bool) {
39965	return nil, false
39966}
39967
39968// AsReplicaHealthEvaluation is the BasicHealthEvaluation implementation for ServiceHealthEvaluation.
39969func (she ServiceHealthEvaluation) AsReplicaHealthEvaluation() (*ReplicaHealthEvaluation, bool) {
39970	return nil, false
39971}
39972
39973// AsReplicasHealthEvaluation is the BasicHealthEvaluation implementation for ServiceHealthEvaluation.
39974func (she ServiceHealthEvaluation) AsReplicasHealthEvaluation() (*ReplicasHealthEvaluation, bool) {
39975	return nil, false
39976}
39977
39978// AsServiceHealthEvaluation is the BasicHealthEvaluation implementation for ServiceHealthEvaluation.
39979func (she ServiceHealthEvaluation) AsServiceHealthEvaluation() (*ServiceHealthEvaluation, bool) {
39980	return &she, true
39981}
39982
39983// AsServicesHealthEvaluation is the BasicHealthEvaluation implementation for ServiceHealthEvaluation.
39984func (she ServiceHealthEvaluation) AsServicesHealthEvaluation() (*ServicesHealthEvaluation, bool) {
39985	return nil, false
39986}
39987
39988// AsSystemApplicationHealthEvaluation is the BasicHealthEvaluation implementation for ServiceHealthEvaluation.
39989func (she ServiceHealthEvaluation) AsSystemApplicationHealthEvaluation() (*SystemApplicationHealthEvaluation, bool) {
39990	return nil, false
39991}
39992
39993// AsUpgradeDomainDeltaNodesCheckHealthEvaluation is the BasicHealthEvaluation implementation for ServiceHealthEvaluation.
39994func (she ServiceHealthEvaluation) AsUpgradeDomainDeltaNodesCheckHealthEvaluation() (*UpgradeDomainDeltaNodesCheckHealthEvaluation, bool) {
39995	return nil, false
39996}
39997
39998// AsUpgradeDomainNodesHealthEvaluation is the BasicHealthEvaluation implementation for ServiceHealthEvaluation.
39999func (she ServiceHealthEvaluation) AsUpgradeDomainNodesHealthEvaluation() (*UpgradeDomainNodesHealthEvaluation, bool) {
40000	return nil, false
40001}
40002
40003// AsHealthEvaluation is the BasicHealthEvaluation implementation for ServiceHealthEvaluation.
40004func (she ServiceHealthEvaluation) AsHealthEvaluation() (*HealthEvaluation, bool) {
40005	return nil, false
40006}
40007
40008// AsBasicHealthEvaluation is the BasicHealthEvaluation implementation for ServiceHealthEvaluation.
40009func (she ServiceHealthEvaluation) AsBasicHealthEvaluation() (BasicHealthEvaluation, bool) {
40010	return &she, true
40011}
40012
40013// ServiceHealthReportExpiredEvent service Health Report Expired event.
40014type ServiceHealthReportExpiredEvent struct {
40015	// InstanceID - Id of Service instance.
40016	InstanceID *int64 `json:"InstanceId,omitempty"`
40017	// SourceID - Id of report source.
40018	SourceID *string `json:"SourceId,omitempty"`
40019	// Property - Describes the property.
40020	Property *string `json:"Property,omitempty"`
40021	// HealthState - Describes the property health state.
40022	HealthState *string `json:"HealthState,omitempty"`
40023	// TimeToLiveMs - Time to live in milli-seconds.
40024	TimeToLiveMs *int64 `json:"TimeToLiveMs,omitempty"`
40025	// SequenceNumber - Sequence number of report.
40026	SequenceNumber *int64 `json:"SequenceNumber,omitempty"`
40027	// Description - Description of report.
40028	Description *string `json:"Description,omitempty"`
40029	// RemoveWhenExpired - Indicates the removal when it expires.
40030	RemoveWhenExpired *bool `json:"RemoveWhenExpired,omitempty"`
40031	// SourceUtcTimestamp - Source time.
40032	SourceUtcTimestamp *date.Time `json:"SourceUtcTimestamp,omitempty"`
40033	// 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.
40034	// Starting in version 6.0, hierarchical names are delimited with the "\~" character. For example, if the service name is "fabric:/myapp/app1/svc1",
40035	// the service identity would be "myapp~app1\~svc1" in 6.0+ and "myapp/app1/svc1" in previous versions.
40036	ServiceID *string `json:"ServiceId,omitempty"`
40037	// EventInstanceID - The identifier for the FabricEvent instance.
40038	EventInstanceID *uuid.UUID `json:"EventInstanceId,omitempty"`
40039	// Category - The category of event.
40040	Category *string `json:"Category,omitempty"`
40041	// TimeStamp - The time event was logged.
40042	TimeStamp *date.Time `json:"TimeStamp,omitempty"`
40043	// HasCorrelatedEvents - Shows there is existing related events available.
40044	HasCorrelatedEvents *bool `json:"HasCorrelatedEvents,omitempty"`
40045	// 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'
40046	Kind KindBasicFabricEvent `json:"Kind,omitempty"`
40047}
40048
40049// MarshalJSON is the custom marshaler for ServiceHealthReportExpiredEvent.
40050func (shree ServiceHealthReportExpiredEvent) MarshalJSON() ([]byte, error) {
40051	shree.Kind = KindServiceHealthReportExpired
40052	objectMap := make(map[string]interface{})
40053	if shree.InstanceID != nil {
40054		objectMap["InstanceId"] = shree.InstanceID
40055	}
40056	if shree.SourceID != nil {
40057		objectMap["SourceId"] = shree.SourceID
40058	}
40059	if shree.Property != nil {
40060		objectMap["Property"] = shree.Property
40061	}
40062	if shree.HealthState != nil {
40063		objectMap["HealthState"] = shree.HealthState
40064	}
40065	if shree.TimeToLiveMs != nil {
40066		objectMap["TimeToLiveMs"] = shree.TimeToLiveMs
40067	}
40068	if shree.SequenceNumber != nil {
40069		objectMap["SequenceNumber"] = shree.SequenceNumber
40070	}
40071	if shree.Description != nil {
40072		objectMap["Description"] = shree.Description
40073	}
40074	if shree.RemoveWhenExpired != nil {
40075		objectMap["RemoveWhenExpired"] = shree.RemoveWhenExpired
40076	}
40077	if shree.SourceUtcTimestamp != nil {
40078		objectMap["SourceUtcTimestamp"] = shree.SourceUtcTimestamp
40079	}
40080	if shree.ServiceID != nil {
40081		objectMap["ServiceId"] = shree.ServiceID
40082	}
40083	if shree.EventInstanceID != nil {
40084		objectMap["EventInstanceId"] = shree.EventInstanceID
40085	}
40086	if shree.Category != nil {
40087		objectMap["Category"] = shree.Category
40088	}
40089	if shree.TimeStamp != nil {
40090		objectMap["TimeStamp"] = shree.TimeStamp
40091	}
40092	if shree.HasCorrelatedEvents != nil {
40093		objectMap["HasCorrelatedEvents"] = shree.HasCorrelatedEvents
40094	}
40095	if shree.Kind != "" {
40096		objectMap["Kind"] = shree.Kind
40097	}
40098	return json.Marshal(objectMap)
40099}
40100
40101// AsApplicationEvent is the BasicFabricEvent implementation for ServiceHealthReportExpiredEvent.
40102func (shree ServiceHealthReportExpiredEvent) AsApplicationEvent() (*ApplicationEvent, bool) {
40103	return nil, false
40104}
40105
40106// AsBasicApplicationEvent is the BasicFabricEvent implementation for ServiceHealthReportExpiredEvent.
40107func (shree ServiceHealthReportExpiredEvent) AsBasicApplicationEvent() (BasicApplicationEvent, bool) {
40108	return nil, false
40109}
40110
40111// AsClusterEvent is the BasicFabricEvent implementation for ServiceHealthReportExpiredEvent.
40112func (shree ServiceHealthReportExpiredEvent) AsClusterEvent() (*ClusterEvent, bool) {
40113	return nil, false
40114}
40115
40116// AsBasicClusterEvent is the BasicFabricEvent implementation for ServiceHealthReportExpiredEvent.
40117func (shree ServiceHealthReportExpiredEvent) AsBasicClusterEvent() (BasicClusterEvent, bool) {
40118	return nil, false
40119}
40120
40121// AsContainerInstanceEvent is the BasicFabricEvent implementation for ServiceHealthReportExpiredEvent.
40122func (shree ServiceHealthReportExpiredEvent) AsContainerInstanceEvent() (*ContainerInstanceEvent, bool) {
40123	return nil, false
40124}
40125
40126// AsNodeEvent is the BasicFabricEvent implementation for ServiceHealthReportExpiredEvent.
40127func (shree ServiceHealthReportExpiredEvent) AsNodeEvent() (*NodeEvent, bool) {
40128	return nil, false
40129}
40130
40131// AsBasicNodeEvent is the BasicFabricEvent implementation for ServiceHealthReportExpiredEvent.
40132func (shree ServiceHealthReportExpiredEvent) AsBasicNodeEvent() (BasicNodeEvent, bool) {
40133	return nil, false
40134}
40135
40136// AsPartitionAnalysisEvent is the BasicFabricEvent implementation for ServiceHealthReportExpiredEvent.
40137func (shree ServiceHealthReportExpiredEvent) AsPartitionAnalysisEvent() (*PartitionAnalysisEvent, bool) {
40138	return nil, false
40139}
40140
40141// AsBasicPartitionAnalysisEvent is the BasicFabricEvent implementation for ServiceHealthReportExpiredEvent.
40142func (shree ServiceHealthReportExpiredEvent) AsBasicPartitionAnalysisEvent() (BasicPartitionAnalysisEvent, bool) {
40143	return nil, false
40144}
40145
40146// AsPartitionEvent is the BasicFabricEvent implementation for ServiceHealthReportExpiredEvent.
40147func (shree ServiceHealthReportExpiredEvent) AsPartitionEvent() (*PartitionEvent, bool) {
40148	return nil, false
40149}
40150
40151// AsBasicPartitionEvent is the BasicFabricEvent implementation for ServiceHealthReportExpiredEvent.
40152func (shree ServiceHealthReportExpiredEvent) AsBasicPartitionEvent() (BasicPartitionEvent, bool) {
40153	return nil, false
40154}
40155
40156// AsReplicaEvent is the BasicFabricEvent implementation for ServiceHealthReportExpiredEvent.
40157func (shree ServiceHealthReportExpiredEvent) AsReplicaEvent() (*ReplicaEvent, bool) {
40158	return nil, false
40159}
40160
40161// AsBasicReplicaEvent is the BasicFabricEvent implementation for ServiceHealthReportExpiredEvent.
40162func (shree ServiceHealthReportExpiredEvent) AsBasicReplicaEvent() (BasicReplicaEvent, bool) {
40163	return nil, false
40164}
40165
40166// AsServiceEvent is the BasicFabricEvent implementation for ServiceHealthReportExpiredEvent.
40167func (shree ServiceHealthReportExpiredEvent) AsServiceEvent() (*ServiceEvent, bool) {
40168	return nil, false
40169}
40170
40171// AsBasicServiceEvent is the BasicFabricEvent implementation for ServiceHealthReportExpiredEvent.
40172func (shree ServiceHealthReportExpiredEvent) AsBasicServiceEvent() (BasicServiceEvent, bool) {
40173	return &shree, true
40174}
40175
40176// AsApplicationCreatedEvent is the BasicFabricEvent implementation for ServiceHealthReportExpiredEvent.
40177func (shree ServiceHealthReportExpiredEvent) AsApplicationCreatedEvent() (*ApplicationCreatedEvent, bool) {
40178	return nil, false
40179}
40180
40181// AsApplicationDeletedEvent is the BasicFabricEvent implementation for ServiceHealthReportExpiredEvent.
40182func (shree ServiceHealthReportExpiredEvent) AsApplicationDeletedEvent() (*ApplicationDeletedEvent, bool) {
40183	return nil, false
40184}
40185
40186// AsApplicationNewHealthReportEvent is the BasicFabricEvent implementation for ServiceHealthReportExpiredEvent.
40187func (shree ServiceHealthReportExpiredEvent) AsApplicationNewHealthReportEvent() (*ApplicationNewHealthReportEvent, bool) {
40188	return nil, false
40189}
40190
40191// AsApplicationHealthReportExpiredEvent is the BasicFabricEvent implementation for ServiceHealthReportExpiredEvent.
40192func (shree ServiceHealthReportExpiredEvent) AsApplicationHealthReportExpiredEvent() (*ApplicationHealthReportExpiredEvent, bool) {
40193	return nil, false
40194}
40195
40196// AsApplicationUpgradeCompletedEvent is the BasicFabricEvent implementation for ServiceHealthReportExpiredEvent.
40197func (shree ServiceHealthReportExpiredEvent) AsApplicationUpgradeCompletedEvent() (*ApplicationUpgradeCompletedEvent, bool) {
40198	return nil, false
40199}
40200
40201// AsApplicationUpgradeDomainCompletedEvent is the BasicFabricEvent implementation for ServiceHealthReportExpiredEvent.
40202func (shree ServiceHealthReportExpiredEvent) AsApplicationUpgradeDomainCompletedEvent() (*ApplicationUpgradeDomainCompletedEvent, bool) {
40203	return nil, false
40204}
40205
40206// AsApplicationUpgradeRollbackCompletedEvent is the BasicFabricEvent implementation for ServiceHealthReportExpiredEvent.
40207func (shree ServiceHealthReportExpiredEvent) AsApplicationUpgradeRollbackCompletedEvent() (*ApplicationUpgradeRollbackCompletedEvent, bool) {
40208	return nil, false
40209}
40210
40211// AsApplicationUpgradeRollbackStartedEvent is the BasicFabricEvent implementation for ServiceHealthReportExpiredEvent.
40212func (shree ServiceHealthReportExpiredEvent) AsApplicationUpgradeRollbackStartedEvent() (*ApplicationUpgradeRollbackStartedEvent, bool) {
40213	return nil, false
40214}
40215
40216// AsApplicationUpgradeStartedEvent is the BasicFabricEvent implementation for ServiceHealthReportExpiredEvent.
40217func (shree ServiceHealthReportExpiredEvent) AsApplicationUpgradeStartedEvent() (*ApplicationUpgradeStartedEvent, bool) {
40218	return nil, false
40219}
40220
40221// AsDeployedApplicationNewHealthReportEvent is the BasicFabricEvent implementation for ServiceHealthReportExpiredEvent.
40222func (shree ServiceHealthReportExpiredEvent) AsDeployedApplicationNewHealthReportEvent() (*DeployedApplicationNewHealthReportEvent, bool) {
40223	return nil, false
40224}
40225
40226// AsDeployedApplicationHealthReportExpiredEvent is the BasicFabricEvent implementation for ServiceHealthReportExpiredEvent.
40227func (shree ServiceHealthReportExpiredEvent) AsDeployedApplicationHealthReportExpiredEvent() (*DeployedApplicationHealthReportExpiredEvent, bool) {
40228	return nil, false
40229}
40230
40231// AsApplicationProcessExitedEvent is the BasicFabricEvent implementation for ServiceHealthReportExpiredEvent.
40232func (shree ServiceHealthReportExpiredEvent) AsApplicationProcessExitedEvent() (*ApplicationProcessExitedEvent, bool) {
40233	return nil, false
40234}
40235
40236// AsApplicationContainerInstanceExitedEvent is the BasicFabricEvent implementation for ServiceHealthReportExpiredEvent.
40237func (shree ServiceHealthReportExpiredEvent) AsApplicationContainerInstanceExitedEvent() (*ApplicationContainerInstanceExitedEvent, bool) {
40238	return nil, false
40239}
40240
40241// AsNodeAbortedEvent is the BasicFabricEvent implementation for ServiceHealthReportExpiredEvent.
40242func (shree ServiceHealthReportExpiredEvent) AsNodeAbortedEvent() (*NodeAbortedEvent, bool) {
40243	return nil, false
40244}
40245
40246// AsNodeAddedToClusterEvent is the BasicFabricEvent implementation for ServiceHealthReportExpiredEvent.
40247func (shree ServiceHealthReportExpiredEvent) AsNodeAddedToClusterEvent() (*NodeAddedToClusterEvent, bool) {
40248	return nil, false
40249}
40250
40251// AsNodeClosedEvent is the BasicFabricEvent implementation for ServiceHealthReportExpiredEvent.
40252func (shree ServiceHealthReportExpiredEvent) AsNodeClosedEvent() (*NodeClosedEvent, bool) {
40253	return nil, false
40254}
40255
40256// AsNodeDeactivateCompletedEvent is the BasicFabricEvent implementation for ServiceHealthReportExpiredEvent.
40257func (shree ServiceHealthReportExpiredEvent) AsNodeDeactivateCompletedEvent() (*NodeDeactivateCompletedEvent, bool) {
40258	return nil, false
40259}
40260
40261// AsNodeDeactivateStartedEvent is the BasicFabricEvent implementation for ServiceHealthReportExpiredEvent.
40262func (shree ServiceHealthReportExpiredEvent) AsNodeDeactivateStartedEvent() (*NodeDeactivateStartedEvent, bool) {
40263	return nil, false
40264}
40265
40266// AsNodeDownEvent is the BasicFabricEvent implementation for ServiceHealthReportExpiredEvent.
40267func (shree ServiceHealthReportExpiredEvent) AsNodeDownEvent() (*NodeDownEvent, bool) {
40268	return nil, false
40269}
40270
40271// AsNodeNewHealthReportEvent is the BasicFabricEvent implementation for ServiceHealthReportExpiredEvent.
40272func (shree ServiceHealthReportExpiredEvent) AsNodeNewHealthReportEvent() (*NodeNewHealthReportEvent, bool) {
40273	return nil, false
40274}
40275
40276// AsNodeHealthReportExpiredEvent is the BasicFabricEvent implementation for ServiceHealthReportExpiredEvent.
40277func (shree ServiceHealthReportExpiredEvent) AsNodeHealthReportExpiredEvent() (*NodeHealthReportExpiredEvent, bool) {
40278	return nil, false
40279}
40280
40281// AsNodeOpenSucceededEvent is the BasicFabricEvent implementation for ServiceHealthReportExpiredEvent.
40282func (shree ServiceHealthReportExpiredEvent) AsNodeOpenSucceededEvent() (*NodeOpenSucceededEvent, bool) {
40283	return nil, false
40284}
40285
40286// AsNodeOpenFailedEvent is the BasicFabricEvent implementation for ServiceHealthReportExpiredEvent.
40287func (shree ServiceHealthReportExpiredEvent) AsNodeOpenFailedEvent() (*NodeOpenFailedEvent, bool) {
40288	return nil, false
40289}
40290
40291// AsNodeRemovedFromClusterEvent is the BasicFabricEvent implementation for ServiceHealthReportExpiredEvent.
40292func (shree ServiceHealthReportExpiredEvent) AsNodeRemovedFromClusterEvent() (*NodeRemovedFromClusterEvent, bool) {
40293	return nil, false
40294}
40295
40296// AsNodeUpEvent is the BasicFabricEvent implementation for ServiceHealthReportExpiredEvent.
40297func (shree ServiceHealthReportExpiredEvent) AsNodeUpEvent() (*NodeUpEvent, bool) {
40298	return nil, false
40299}
40300
40301// AsPartitionNewHealthReportEvent is the BasicFabricEvent implementation for ServiceHealthReportExpiredEvent.
40302func (shree ServiceHealthReportExpiredEvent) AsPartitionNewHealthReportEvent() (*PartitionNewHealthReportEvent, bool) {
40303	return nil, false
40304}
40305
40306// AsPartitionHealthReportExpiredEvent is the BasicFabricEvent implementation for ServiceHealthReportExpiredEvent.
40307func (shree ServiceHealthReportExpiredEvent) AsPartitionHealthReportExpiredEvent() (*PartitionHealthReportExpiredEvent, bool) {
40308	return nil, false
40309}
40310
40311// AsPartitionReconfiguredEvent is the BasicFabricEvent implementation for ServiceHealthReportExpiredEvent.
40312func (shree ServiceHealthReportExpiredEvent) AsPartitionReconfiguredEvent() (*PartitionReconfiguredEvent, bool) {
40313	return nil, false
40314}
40315
40316// AsPartitionPrimaryMoveAnalysisEvent is the BasicFabricEvent implementation for ServiceHealthReportExpiredEvent.
40317func (shree ServiceHealthReportExpiredEvent) AsPartitionPrimaryMoveAnalysisEvent() (*PartitionPrimaryMoveAnalysisEvent, bool) {
40318	return nil, false
40319}
40320
40321// AsServiceCreatedEvent is the BasicFabricEvent implementation for ServiceHealthReportExpiredEvent.
40322func (shree ServiceHealthReportExpiredEvent) AsServiceCreatedEvent() (*ServiceCreatedEvent, bool) {
40323	return nil, false
40324}
40325
40326// AsServiceDeletedEvent is the BasicFabricEvent implementation for ServiceHealthReportExpiredEvent.
40327func (shree ServiceHealthReportExpiredEvent) AsServiceDeletedEvent() (*ServiceDeletedEvent, bool) {
40328	return nil, false
40329}
40330
40331// AsServiceNewHealthReportEvent is the BasicFabricEvent implementation for ServiceHealthReportExpiredEvent.
40332func (shree ServiceHealthReportExpiredEvent) AsServiceNewHealthReportEvent() (*ServiceNewHealthReportEvent, bool) {
40333	return nil, false
40334}
40335
40336// AsServiceHealthReportExpiredEvent is the BasicFabricEvent implementation for ServiceHealthReportExpiredEvent.
40337func (shree ServiceHealthReportExpiredEvent) AsServiceHealthReportExpiredEvent() (*ServiceHealthReportExpiredEvent, bool) {
40338	return &shree, true
40339}
40340
40341// AsDeployedServicePackageNewHealthReportEvent is the BasicFabricEvent implementation for ServiceHealthReportExpiredEvent.
40342func (shree ServiceHealthReportExpiredEvent) AsDeployedServicePackageNewHealthReportEvent() (*DeployedServicePackageNewHealthReportEvent, bool) {
40343	return nil, false
40344}
40345
40346// AsDeployedServicePackageHealthReportExpiredEvent is the BasicFabricEvent implementation for ServiceHealthReportExpiredEvent.
40347func (shree ServiceHealthReportExpiredEvent) AsDeployedServicePackageHealthReportExpiredEvent() (*DeployedServicePackageHealthReportExpiredEvent, bool) {
40348	return nil, false
40349}
40350
40351// AsStatefulReplicaNewHealthReportEvent is the BasicFabricEvent implementation for ServiceHealthReportExpiredEvent.
40352func (shree ServiceHealthReportExpiredEvent) AsStatefulReplicaNewHealthReportEvent() (*StatefulReplicaNewHealthReportEvent, bool) {
40353	return nil, false
40354}
40355
40356// AsStatefulReplicaHealthReportExpiredEvent is the BasicFabricEvent implementation for ServiceHealthReportExpiredEvent.
40357func (shree ServiceHealthReportExpiredEvent) AsStatefulReplicaHealthReportExpiredEvent() (*StatefulReplicaHealthReportExpiredEvent, bool) {
40358	return nil, false
40359}
40360
40361// AsStatelessReplicaNewHealthReportEvent is the BasicFabricEvent implementation for ServiceHealthReportExpiredEvent.
40362func (shree ServiceHealthReportExpiredEvent) AsStatelessReplicaNewHealthReportEvent() (*StatelessReplicaNewHealthReportEvent, bool) {
40363	return nil, false
40364}
40365
40366// AsStatelessReplicaHealthReportExpiredEvent is the BasicFabricEvent implementation for ServiceHealthReportExpiredEvent.
40367func (shree ServiceHealthReportExpiredEvent) AsStatelessReplicaHealthReportExpiredEvent() (*StatelessReplicaHealthReportExpiredEvent, bool) {
40368	return nil, false
40369}
40370
40371// AsClusterNewHealthReportEvent is the BasicFabricEvent implementation for ServiceHealthReportExpiredEvent.
40372func (shree ServiceHealthReportExpiredEvent) AsClusterNewHealthReportEvent() (*ClusterNewHealthReportEvent, bool) {
40373	return nil, false
40374}
40375
40376// AsClusterHealthReportExpiredEvent is the BasicFabricEvent implementation for ServiceHealthReportExpiredEvent.
40377func (shree ServiceHealthReportExpiredEvent) AsClusterHealthReportExpiredEvent() (*ClusterHealthReportExpiredEvent, bool) {
40378	return nil, false
40379}
40380
40381// AsClusterUpgradeCompletedEvent is the BasicFabricEvent implementation for ServiceHealthReportExpiredEvent.
40382func (shree ServiceHealthReportExpiredEvent) AsClusterUpgradeCompletedEvent() (*ClusterUpgradeCompletedEvent, bool) {
40383	return nil, false
40384}
40385
40386// AsClusterUpgradeDomainCompletedEvent is the BasicFabricEvent implementation for ServiceHealthReportExpiredEvent.
40387func (shree ServiceHealthReportExpiredEvent) AsClusterUpgradeDomainCompletedEvent() (*ClusterUpgradeDomainCompletedEvent, bool) {
40388	return nil, false
40389}
40390
40391// AsClusterUpgradeRollbackCompletedEvent is the BasicFabricEvent implementation for ServiceHealthReportExpiredEvent.
40392func (shree ServiceHealthReportExpiredEvent) AsClusterUpgradeRollbackCompletedEvent() (*ClusterUpgradeRollbackCompletedEvent, bool) {
40393	return nil, false
40394}
40395
40396// AsClusterUpgradeRollbackStartedEvent is the BasicFabricEvent implementation for ServiceHealthReportExpiredEvent.
40397func (shree ServiceHealthReportExpiredEvent) AsClusterUpgradeRollbackStartedEvent() (*ClusterUpgradeRollbackStartedEvent, bool) {
40398	return nil, false
40399}
40400
40401// AsClusterUpgradeStartedEvent is the BasicFabricEvent implementation for ServiceHealthReportExpiredEvent.
40402func (shree ServiceHealthReportExpiredEvent) AsClusterUpgradeStartedEvent() (*ClusterUpgradeStartedEvent, bool) {
40403	return nil, false
40404}
40405
40406// AsChaosStoppedEvent is the BasicFabricEvent implementation for ServiceHealthReportExpiredEvent.
40407func (shree ServiceHealthReportExpiredEvent) AsChaosStoppedEvent() (*ChaosStoppedEvent, bool) {
40408	return nil, false
40409}
40410
40411// AsChaosStartedEvent is the BasicFabricEvent implementation for ServiceHealthReportExpiredEvent.
40412func (shree ServiceHealthReportExpiredEvent) AsChaosStartedEvent() (*ChaosStartedEvent, bool) {
40413	return nil, false
40414}
40415
40416// AsChaosCodePackageRestartScheduledEvent is the BasicFabricEvent implementation for ServiceHealthReportExpiredEvent.
40417func (shree ServiceHealthReportExpiredEvent) AsChaosCodePackageRestartScheduledEvent() (*ChaosCodePackageRestartScheduledEvent, bool) {
40418	return nil, false
40419}
40420
40421// AsChaosReplicaRemovalScheduledEvent is the BasicFabricEvent implementation for ServiceHealthReportExpiredEvent.
40422func (shree ServiceHealthReportExpiredEvent) AsChaosReplicaRemovalScheduledEvent() (*ChaosReplicaRemovalScheduledEvent, bool) {
40423	return nil, false
40424}
40425
40426// AsChaosPartitionSecondaryMoveScheduledEvent is the BasicFabricEvent implementation for ServiceHealthReportExpiredEvent.
40427func (shree ServiceHealthReportExpiredEvent) AsChaosPartitionSecondaryMoveScheduledEvent() (*ChaosPartitionSecondaryMoveScheduledEvent, bool) {
40428	return nil, false
40429}
40430
40431// AsChaosPartitionPrimaryMoveScheduledEvent is the BasicFabricEvent implementation for ServiceHealthReportExpiredEvent.
40432func (shree ServiceHealthReportExpiredEvent) AsChaosPartitionPrimaryMoveScheduledEvent() (*ChaosPartitionPrimaryMoveScheduledEvent, bool) {
40433	return nil, false
40434}
40435
40436// AsChaosReplicaRestartScheduledEvent is the BasicFabricEvent implementation for ServiceHealthReportExpiredEvent.
40437func (shree ServiceHealthReportExpiredEvent) AsChaosReplicaRestartScheduledEvent() (*ChaosReplicaRestartScheduledEvent, bool) {
40438	return nil, false
40439}
40440
40441// AsChaosNodeRestartScheduledEvent is the BasicFabricEvent implementation for ServiceHealthReportExpiredEvent.
40442func (shree ServiceHealthReportExpiredEvent) AsChaosNodeRestartScheduledEvent() (*ChaosNodeRestartScheduledEvent, bool) {
40443	return nil, false
40444}
40445
40446// AsFabricEvent is the BasicFabricEvent implementation for ServiceHealthReportExpiredEvent.
40447func (shree ServiceHealthReportExpiredEvent) AsFabricEvent() (*FabricEvent, bool) {
40448	return nil, false
40449}
40450
40451// AsBasicFabricEvent is the BasicFabricEvent implementation for ServiceHealthReportExpiredEvent.
40452func (shree ServiceHealthReportExpiredEvent) AsBasicFabricEvent() (BasicFabricEvent, bool) {
40453	return &shree, true
40454}
40455
40456// ServiceHealthState represents the health state of a service, which contains the service identifier and
40457// its aggregated health state.
40458type ServiceHealthState struct {
40459	// ServiceName - Name of the service whose health state is represented by this object.
40460	ServiceName *string `json:"ServiceName,omitempty"`
40461	// 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'
40462	AggregatedHealthState HealthState `json:"AggregatedHealthState,omitempty"`
40463}
40464
40465// ServiceHealthStateChunk represents the health state chunk of a service, which contains the service name,
40466// its aggregated health state and any partitions that respect the filters in the cluster health chunk
40467// query description.
40468type ServiceHealthStateChunk struct {
40469	// ServiceName - The name of the service whose health state chunk is provided in this object.
40470	ServiceName *string `json:"ServiceName,omitempty"`
40471	// PartitionHealthStateChunks - The list of partition health state chunks belonging to the service that respect the filters in the cluster health chunk query description.
40472	PartitionHealthStateChunks *PartitionHealthStateChunkList `json:"PartitionHealthStateChunks,omitempty"`
40473	// 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'
40474	HealthState HealthState `json:"HealthState,omitempty"`
40475}
40476
40477// ServiceHealthStateChunkList the list of service health state chunks that respect the input filters in
40478// the chunk query. Returned by get cluster health state chunks query.
40479type ServiceHealthStateChunkList struct {
40480	// Items - The list of service health state chunks that respect the input filters in the chunk query.
40481	Items *[]ServiceHealthStateChunk `json:"Items,omitempty"`
40482}
40483
40484// ServiceHealthStateFilter defines matching criteria to determine whether a service should be included as
40485// a child of an application in the cluster health chunk.
40486// The services are only returned if the parent application matches a filter specified in the cluster
40487// health chunk query description.
40488// One filter can match zero, one or multiple services, depending on its properties.
40489type ServiceHealthStateFilter struct {
40490	// ServiceNameFilter - The name of the service that matches the filter. The filter is applied only to the specified service, if it exists.
40491	// If the service doesn't exist, no service is returned in the cluster health chunk based on this filter.
40492	// If the service exists, it is included as the application's child if the health state matches the other filter properties.
40493	// 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.
40494	ServiceNameFilter *string `json:"ServiceNameFilter,omitempty"`
40495	// HealthStateFilter - The filter for the health state of the services. It allows selecting services if they match the desired health states.
40496	// 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.
40497	// 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.
40498	// The state values are flag-based enumeration, so the value could be a combination of these values obtained using bitwise 'OR' operator.
40499	// For example, if the provided value is 6, it matches services with HealthState value of OK (2) and Warning (4).
40500	// - Default - Default value. Matches any HealthState. The value is zero.
40501	// - 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.
40502	// - Ok - Filter that matches input with HealthState value Ok. The value is 2.
40503	// - Warning - Filter that matches input with HealthState value Warning. The value is 4.
40504	// - Error - Filter that matches input with HealthState value Error. The value is 8.
40505	// - All - Filter that matches input with any HealthState value. The value is 65535.
40506	HealthStateFilter *int32 `json:"HealthStateFilter,omitempty"`
40507	// 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.
40508	// 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.
40509	// The service filter may specify multiple partition filters.
40510	// 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.
40511	PartitionFilters *[]PartitionHealthStateFilter `json:"PartitionFilters,omitempty"`
40512}
40513
40514// ServiceIdentity map service identity friendly name to an application identity.
40515type ServiceIdentity struct {
40516	// Name - The identity friendly name.
40517	Name *string `json:"name,omitempty"`
40518	// IdentityRef - The application identity name.
40519	IdentityRef *string `json:"identityRef,omitempty"`
40520}
40521
40522// BasicServiceInfo information about a Service Fabric service.
40523type BasicServiceInfo interface {
40524	AsStatefulServiceInfo() (*StatefulServiceInfo, bool)
40525	AsStatelessServiceInfo() (*StatelessServiceInfo, bool)
40526	AsServiceInfo() (*ServiceInfo, bool)
40527}
40528
40529// ServiceInfo information about a Service Fabric service.
40530type ServiceInfo struct {
40531	autorest.Response `json:"-"`
40532	// 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.
40533	// Starting in version 6.0, hierarchical names are delimited with the "\~" character. For example, if the service name is "fabric:/myapp/app1/svc1",
40534	// the service identity would be "myapp~app1\~svc1" in 6.0+ and "myapp/app1/svc1" in previous versions.
40535	ID *string `json:"Id,omitempty"`
40536	// Name - The full name of the service with 'fabric:' URI scheme.
40537	Name *string `json:"Name,omitempty"`
40538	// TypeName - Name of the service type as specified in the service manifest.
40539	TypeName *string `json:"TypeName,omitempty"`
40540	// ManifestVersion - The version of the service manifest.
40541	ManifestVersion *string `json:"ManifestVersion,omitempty"`
40542	// 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'
40543	HealthState HealthState `json:"HealthState,omitempty"`
40544	// ServiceStatus - The status of the application. Possible values include: 'ServiceStatusUnknown', 'ServiceStatusActive', 'ServiceStatusUpgrading', 'ServiceStatusDeleting', 'ServiceStatusCreating', 'ServiceStatusFailed'
40545	ServiceStatus ServiceStatus `json:"ServiceStatus,omitempty"`
40546	// IsServiceGroup - Whether the service is in a service group.
40547	IsServiceGroup *bool `json:"IsServiceGroup,omitempty"`
40548	// ServiceKind - Possible values include: 'ServiceKindBasicServiceInfoServiceKindServiceInfo', 'ServiceKindBasicServiceInfoServiceKindStateful', 'ServiceKindBasicServiceInfoServiceKindStateless'
40549	ServiceKind ServiceKindBasicServiceInfo `json:"ServiceKind,omitempty"`
40550}
40551
40552func unmarshalBasicServiceInfo(body []byte) (BasicServiceInfo, error) {
40553	var m map[string]interface{}
40554	err := json.Unmarshal(body, &m)
40555	if err != nil {
40556		return nil, err
40557	}
40558
40559	switch m["ServiceKind"] {
40560	case string(ServiceKindBasicServiceInfoServiceKindStateful):
40561		var ssi StatefulServiceInfo
40562		err := json.Unmarshal(body, &ssi)
40563		return ssi, err
40564	case string(ServiceKindBasicServiceInfoServiceKindStateless):
40565		var ssi StatelessServiceInfo
40566		err := json.Unmarshal(body, &ssi)
40567		return ssi, err
40568	default:
40569		var si ServiceInfo
40570		err := json.Unmarshal(body, &si)
40571		return si, err
40572	}
40573}
40574func unmarshalBasicServiceInfoArray(body []byte) ([]BasicServiceInfo, error) {
40575	var rawMessages []*json.RawMessage
40576	err := json.Unmarshal(body, &rawMessages)
40577	if err != nil {
40578		return nil, err
40579	}
40580
40581	siArray := make([]BasicServiceInfo, len(rawMessages))
40582
40583	for index, rawMessage := range rawMessages {
40584		si, err := unmarshalBasicServiceInfo(*rawMessage)
40585		if err != nil {
40586			return nil, err
40587		}
40588		siArray[index] = si
40589	}
40590	return siArray, nil
40591}
40592
40593// MarshalJSON is the custom marshaler for ServiceInfo.
40594func (si ServiceInfo) MarshalJSON() ([]byte, error) {
40595	si.ServiceKind = ServiceKindBasicServiceInfoServiceKindServiceInfo
40596	objectMap := make(map[string]interface{})
40597	if si.ID != nil {
40598		objectMap["Id"] = si.ID
40599	}
40600	if si.Name != nil {
40601		objectMap["Name"] = si.Name
40602	}
40603	if si.TypeName != nil {
40604		objectMap["TypeName"] = si.TypeName
40605	}
40606	if si.ManifestVersion != nil {
40607		objectMap["ManifestVersion"] = si.ManifestVersion
40608	}
40609	if si.HealthState != "" {
40610		objectMap["HealthState"] = si.HealthState
40611	}
40612	if si.ServiceStatus != "" {
40613		objectMap["ServiceStatus"] = si.ServiceStatus
40614	}
40615	if si.IsServiceGroup != nil {
40616		objectMap["IsServiceGroup"] = si.IsServiceGroup
40617	}
40618	if si.ServiceKind != "" {
40619		objectMap["ServiceKind"] = si.ServiceKind
40620	}
40621	return json.Marshal(objectMap)
40622}
40623
40624// AsStatefulServiceInfo is the BasicServiceInfo implementation for ServiceInfo.
40625func (si ServiceInfo) AsStatefulServiceInfo() (*StatefulServiceInfo, bool) {
40626	return nil, false
40627}
40628
40629// AsStatelessServiceInfo is the BasicServiceInfo implementation for ServiceInfo.
40630func (si ServiceInfo) AsStatelessServiceInfo() (*StatelessServiceInfo, bool) {
40631	return nil, false
40632}
40633
40634// AsServiceInfo is the BasicServiceInfo implementation for ServiceInfo.
40635func (si ServiceInfo) AsServiceInfo() (*ServiceInfo, bool) {
40636	return &si, true
40637}
40638
40639// AsBasicServiceInfo is the BasicServiceInfo implementation for ServiceInfo.
40640func (si ServiceInfo) AsBasicServiceInfo() (BasicServiceInfo, bool) {
40641	return &si, true
40642}
40643
40644// ServiceInfoModel ...
40645type ServiceInfoModel struct {
40646	autorest.Response `json:"-"`
40647	Value             BasicServiceInfo `json:"value,omitempty"`
40648}
40649
40650// UnmarshalJSON is the custom unmarshaler for ServiceInfoModel struct.
40651func (sim *ServiceInfoModel) UnmarshalJSON(body []byte) error {
40652	si, err := unmarshalBasicServiceInfo(body)
40653	if err != nil {
40654		return err
40655	}
40656	sim.Value = si
40657
40658	return nil
40659}
40660
40661// ServiceLoadMetricDescription specifies a metric to load balance a service during runtime.
40662type ServiceLoadMetricDescription struct {
40663	// 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.
40664	Name *string `json:"Name,omitempty"`
40665	// 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'
40666	Weight ServiceLoadMetricWeight `json:"Weight,omitempty"`
40667	// 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.
40668	PrimaryDefaultLoad *int32 `json:"PrimaryDefaultLoad,omitempty"`
40669	// 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.
40670	SecondaryDefaultLoad *int32 `json:"SecondaryDefaultLoad,omitempty"`
40671	// DefaultLoad - Used only for Stateless services. The default amount of load, as a number, that this service creates for this metric.
40672	DefaultLoad *int32 `json:"DefaultLoad,omitempty"`
40673}
40674
40675// ServiceNameInfo information about the service name.
40676type ServiceNameInfo struct {
40677	autorest.Response `json:"-"`
40678	// 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.
40679	// Starting in version 6.0, hierarchical names are delimited with the "\~" character. For example, if the service name is "fabric:/myapp/app1/svc1",
40680	// the service identity would be "myapp~app1\~svc1" in 6.0+ and "myapp/app1/svc1" in previous versions.
40681	ID *string `json:"Id,omitempty"`
40682	// Name - The full name of the service with 'fabric:' URI scheme.
40683	Name *string `json:"Name,omitempty"`
40684}
40685
40686// ServiceNewHealthReportEvent service Health Report Created event.
40687type ServiceNewHealthReportEvent struct {
40688	// InstanceID - Id of Service instance.
40689	InstanceID *int64 `json:"InstanceId,omitempty"`
40690	// SourceID - Id of report source.
40691	SourceID *string `json:"SourceId,omitempty"`
40692	// Property - Describes the property.
40693	Property *string `json:"Property,omitempty"`
40694	// HealthState - Describes the property health state.
40695	HealthState *string `json:"HealthState,omitempty"`
40696	// TimeToLiveMs - Time to live in milli-seconds.
40697	TimeToLiveMs *int64 `json:"TimeToLiveMs,omitempty"`
40698	// SequenceNumber - Sequence number of report.
40699	SequenceNumber *int64 `json:"SequenceNumber,omitempty"`
40700	// Description - Description of report.
40701	Description *string `json:"Description,omitempty"`
40702	// RemoveWhenExpired - Indicates the removal when it expires.
40703	RemoveWhenExpired *bool `json:"RemoveWhenExpired,omitempty"`
40704	// SourceUtcTimestamp - Source time.
40705	SourceUtcTimestamp *date.Time `json:"SourceUtcTimestamp,omitempty"`
40706	// 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.
40707	// Starting in version 6.0, hierarchical names are delimited with the "\~" character. For example, if the service name is "fabric:/myapp/app1/svc1",
40708	// the service identity would be "myapp~app1\~svc1" in 6.0+ and "myapp/app1/svc1" in previous versions.
40709	ServiceID *string `json:"ServiceId,omitempty"`
40710	// EventInstanceID - The identifier for the FabricEvent instance.
40711	EventInstanceID *uuid.UUID `json:"EventInstanceId,omitempty"`
40712	// Category - The category of event.
40713	Category *string `json:"Category,omitempty"`
40714	// TimeStamp - The time event was logged.
40715	TimeStamp *date.Time `json:"TimeStamp,omitempty"`
40716	// HasCorrelatedEvents - Shows there is existing related events available.
40717	HasCorrelatedEvents *bool `json:"HasCorrelatedEvents,omitempty"`
40718	// 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'
40719	Kind KindBasicFabricEvent `json:"Kind,omitempty"`
40720}
40721
40722// MarshalJSON is the custom marshaler for ServiceNewHealthReportEvent.
40723func (snhre ServiceNewHealthReportEvent) MarshalJSON() ([]byte, error) {
40724	snhre.Kind = KindServiceNewHealthReport
40725	objectMap := make(map[string]interface{})
40726	if snhre.InstanceID != nil {
40727		objectMap["InstanceId"] = snhre.InstanceID
40728	}
40729	if snhre.SourceID != nil {
40730		objectMap["SourceId"] = snhre.SourceID
40731	}
40732	if snhre.Property != nil {
40733		objectMap["Property"] = snhre.Property
40734	}
40735	if snhre.HealthState != nil {
40736		objectMap["HealthState"] = snhre.HealthState
40737	}
40738	if snhre.TimeToLiveMs != nil {
40739		objectMap["TimeToLiveMs"] = snhre.TimeToLiveMs
40740	}
40741	if snhre.SequenceNumber != nil {
40742		objectMap["SequenceNumber"] = snhre.SequenceNumber
40743	}
40744	if snhre.Description != nil {
40745		objectMap["Description"] = snhre.Description
40746	}
40747	if snhre.RemoveWhenExpired != nil {
40748		objectMap["RemoveWhenExpired"] = snhre.RemoveWhenExpired
40749	}
40750	if snhre.SourceUtcTimestamp != nil {
40751		objectMap["SourceUtcTimestamp"] = snhre.SourceUtcTimestamp
40752	}
40753	if snhre.ServiceID != nil {
40754		objectMap["ServiceId"] = snhre.ServiceID
40755	}
40756	if snhre.EventInstanceID != nil {
40757		objectMap["EventInstanceId"] = snhre.EventInstanceID
40758	}
40759	if snhre.Category != nil {
40760		objectMap["Category"] = snhre.Category
40761	}
40762	if snhre.TimeStamp != nil {
40763		objectMap["TimeStamp"] = snhre.TimeStamp
40764	}
40765	if snhre.HasCorrelatedEvents != nil {
40766		objectMap["HasCorrelatedEvents"] = snhre.HasCorrelatedEvents
40767	}
40768	if snhre.Kind != "" {
40769		objectMap["Kind"] = snhre.Kind
40770	}
40771	return json.Marshal(objectMap)
40772}
40773
40774// AsApplicationEvent is the BasicFabricEvent implementation for ServiceNewHealthReportEvent.
40775func (snhre ServiceNewHealthReportEvent) AsApplicationEvent() (*ApplicationEvent, bool) {
40776	return nil, false
40777}
40778
40779// AsBasicApplicationEvent is the BasicFabricEvent implementation for ServiceNewHealthReportEvent.
40780func (snhre ServiceNewHealthReportEvent) AsBasicApplicationEvent() (BasicApplicationEvent, bool) {
40781	return nil, false
40782}
40783
40784// AsClusterEvent is the BasicFabricEvent implementation for ServiceNewHealthReportEvent.
40785func (snhre ServiceNewHealthReportEvent) AsClusterEvent() (*ClusterEvent, bool) {
40786	return nil, false
40787}
40788
40789// AsBasicClusterEvent is the BasicFabricEvent implementation for ServiceNewHealthReportEvent.
40790func (snhre ServiceNewHealthReportEvent) AsBasicClusterEvent() (BasicClusterEvent, bool) {
40791	return nil, false
40792}
40793
40794// AsContainerInstanceEvent is the BasicFabricEvent implementation for ServiceNewHealthReportEvent.
40795func (snhre ServiceNewHealthReportEvent) AsContainerInstanceEvent() (*ContainerInstanceEvent, bool) {
40796	return nil, false
40797}
40798
40799// AsNodeEvent is the BasicFabricEvent implementation for ServiceNewHealthReportEvent.
40800func (snhre ServiceNewHealthReportEvent) AsNodeEvent() (*NodeEvent, bool) {
40801	return nil, false
40802}
40803
40804// AsBasicNodeEvent is the BasicFabricEvent implementation for ServiceNewHealthReportEvent.
40805func (snhre ServiceNewHealthReportEvent) AsBasicNodeEvent() (BasicNodeEvent, bool) {
40806	return nil, false
40807}
40808
40809// AsPartitionAnalysisEvent is the BasicFabricEvent implementation for ServiceNewHealthReportEvent.
40810func (snhre ServiceNewHealthReportEvent) AsPartitionAnalysisEvent() (*PartitionAnalysisEvent, bool) {
40811	return nil, false
40812}
40813
40814// AsBasicPartitionAnalysisEvent is the BasicFabricEvent implementation for ServiceNewHealthReportEvent.
40815func (snhre ServiceNewHealthReportEvent) AsBasicPartitionAnalysisEvent() (BasicPartitionAnalysisEvent, bool) {
40816	return nil, false
40817}
40818
40819// AsPartitionEvent is the BasicFabricEvent implementation for ServiceNewHealthReportEvent.
40820func (snhre ServiceNewHealthReportEvent) AsPartitionEvent() (*PartitionEvent, bool) {
40821	return nil, false
40822}
40823
40824// AsBasicPartitionEvent is the BasicFabricEvent implementation for ServiceNewHealthReportEvent.
40825func (snhre ServiceNewHealthReportEvent) AsBasicPartitionEvent() (BasicPartitionEvent, bool) {
40826	return nil, false
40827}
40828
40829// AsReplicaEvent is the BasicFabricEvent implementation for ServiceNewHealthReportEvent.
40830func (snhre ServiceNewHealthReportEvent) AsReplicaEvent() (*ReplicaEvent, bool) {
40831	return nil, false
40832}
40833
40834// AsBasicReplicaEvent is the BasicFabricEvent implementation for ServiceNewHealthReportEvent.
40835func (snhre ServiceNewHealthReportEvent) AsBasicReplicaEvent() (BasicReplicaEvent, bool) {
40836	return nil, false
40837}
40838
40839// AsServiceEvent is the BasicFabricEvent implementation for ServiceNewHealthReportEvent.
40840func (snhre ServiceNewHealthReportEvent) AsServiceEvent() (*ServiceEvent, bool) {
40841	return nil, false
40842}
40843
40844// AsBasicServiceEvent is the BasicFabricEvent implementation for ServiceNewHealthReportEvent.
40845func (snhre ServiceNewHealthReportEvent) AsBasicServiceEvent() (BasicServiceEvent, bool) {
40846	return &snhre, true
40847}
40848
40849// AsApplicationCreatedEvent is the BasicFabricEvent implementation for ServiceNewHealthReportEvent.
40850func (snhre ServiceNewHealthReportEvent) AsApplicationCreatedEvent() (*ApplicationCreatedEvent, bool) {
40851	return nil, false
40852}
40853
40854// AsApplicationDeletedEvent is the BasicFabricEvent implementation for ServiceNewHealthReportEvent.
40855func (snhre ServiceNewHealthReportEvent) AsApplicationDeletedEvent() (*ApplicationDeletedEvent, bool) {
40856	return nil, false
40857}
40858
40859// AsApplicationNewHealthReportEvent is the BasicFabricEvent implementation for ServiceNewHealthReportEvent.
40860func (snhre ServiceNewHealthReportEvent) AsApplicationNewHealthReportEvent() (*ApplicationNewHealthReportEvent, bool) {
40861	return nil, false
40862}
40863
40864// AsApplicationHealthReportExpiredEvent is the BasicFabricEvent implementation for ServiceNewHealthReportEvent.
40865func (snhre ServiceNewHealthReportEvent) AsApplicationHealthReportExpiredEvent() (*ApplicationHealthReportExpiredEvent, bool) {
40866	return nil, false
40867}
40868
40869// AsApplicationUpgradeCompletedEvent is the BasicFabricEvent implementation for ServiceNewHealthReportEvent.
40870func (snhre ServiceNewHealthReportEvent) AsApplicationUpgradeCompletedEvent() (*ApplicationUpgradeCompletedEvent, bool) {
40871	return nil, false
40872}
40873
40874// AsApplicationUpgradeDomainCompletedEvent is the BasicFabricEvent implementation for ServiceNewHealthReportEvent.
40875func (snhre ServiceNewHealthReportEvent) AsApplicationUpgradeDomainCompletedEvent() (*ApplicationUpgradeDomainCompletedEvent, bool) {
40876	return nil, false
40877}
40878
40879// AsApplicationUpgradeRollbackCompletedEvent is the BasicFabricEvent implementation for ServiceNewHealthReportEvent.
40880func (snhre ServiceNewHealthReportEvent) AsApplicationUpgradeRollbackCompletedEvent() (*ApplicationUpgradeRollbackCompletedEvent, bool) {
40881	return nil, false
40882}
40883
40884// AsApplicationUpgradeRollbackStartedEvent is the BasicFabricEvent implementation for ServiceNewHealthReportEvent.
40885func (snhre ServiceNewHealthReportEvent) AsApplicationUpgradeRollbackStartedEvent() (*ApplicationUpgradeRollbackStartedEvent, bool) {
40886	return nil, false
40887}
40888
40889// AsApplicationUpgradeStartedEvent is the BasicFabricEvent implementation for ServiceNewHealthReportEvent.
40890func (snhre ServiceNewHealthReportEvent) AsApplicationUpgradeStartedEvent() (*ApplicationUpgradeStartedEvent, bool) {
40891	return nil, false
40892}
40893
40894// AsDeployedApplicationNewHealthReportEvent is the BasicFabricEvent implementation for ServiceNewHealthReportEvent.
40895func (snhre ServiceNewHealthReportEvent) AsDeployedApplicationNewHealthReportEvent() (*DeployedApplicationNewHealthReportEvent, bool) {
40896	return nil, false
40897}
40898
40899// AsDeployedApplicationHealthReportExpiredEvent is the BasicFabricEvent implementation for ServiceNewHealthReportEvent.
40900func (snhre ServiceNewHealthReportEvent) AsDeployedApplicationHealthReportExpiredEvent() (*DeployedApplicationHealthReportExpiredEvent, bool) {
40901	return nil, false
40902}
40903
40904// AsApplicationProcessExitedEvent is the BasicFabricEvent implementation for ServiceNewHealthReportEvent.
40905func (snhre ServiceNewHealthReportEvent) AsApplicationProcessExitedEvent() (*ApplicationProcessExitedEvent, bool) {
40906	return nil, false
40907}
40908
40909// AsApplicationContainerInstanceExitedEvent is the BasicFabricEvent implementation for ServiceNewHealthReportEvent.
40910func (snhre ServiceNewHealthReportEvent) AsApplicationContainerInstanceExitedEvent() (*ApplicationContainerInstanceExitedEvent, bool) {
40911	return nil, false
40912}
40913
40914// AsNodeAbortedEvent is the BasicFabricEvent implementation for ServiceNewHealthReportEvent.
40915func (snhre ServiceNewHealthReportEvent) AsNodeAbortedEvent() (*NodeAbortedEvent, bool) {
40916	return nil, false
40917}
40918
40919// AsNodeAddedToClusterEvent is the BasicFabricEvent implementation for ServiceNewHealthReportEvent.
40920func (snhre ServiceNewHealthReportEvent) AsNodeAddedToClusterEvent() (*NodeAddedToClusterEvent, bool) {
40921	return nil, false
40922}
40923
40924// AsNodeClosedEvent is the BasicFabricEvent implementation for ServiceNewHealthReportEvent.
40925func (snhre ServiceNewHealthReportEvent) AsNodeClosedEvent() (*NodeClosedEvent, bool) {
40926	return nil, false
40927}
40928
40929// AsNodeDeactivateCompletedEvent is the BasicFabricEvent implementation for ServiceNewHealthReportEvent.
40930func (snhre ServiceNewHealthReportEvent) AsNodeDeactivateCompletedEvent() (*NodeDeactivateCompletedEvent, bool) {
40931	return nil, false
40932}
40933
40934// AsNodeDeactivateStartedEvent is the BasicFabricEvent implementation for ServiceNewHealthReportEvent.
40935func (snhre ServiceNewHealthReportEvent) AsNodeDeactivateStartedEvent() (*NodeDeactivateStartedEvent, bool) {
40936	return nil, false
40937}
40938
40939// AsNodeDownEvent is the BasicFabricEvent implementation for ServiceNewHealthReportEvent.
40940func (snhre ServiceNewHealthReportEvent) AsNodeDownEvent() (*NodeDownEvent, bool) {
40941	return nil, false
40942}
40943
40944// AsNodeNewHealthReportEvent is the BasicFabricEvent implementation for ServiceNewHealthReportEvent.
40945func (snhre ServiceNewHealthReportEvent) AsNodeNewHealthReportEvent() (*NodeNewHealthReportEvent, bool) {
40946	return nil, false
40947}
40948
40949// AsNodeHealthReportExpiredEvent is the BasicFabricEvent implementation for ServiceNewHealthReportEvent.
40950func (snhre ServiceNewHealthReportEvent) AsNodeHealthReportExpiredEvent() (*NodeHealthReportExpiredEvent, bool) {
40951	return nil, false
40952}
40953
40954// AsNodeOpenSucceededEvent is the BasicFabricEvent implementation for ServiceNewHealthReportEvent.
40955func (snhre ServiceNewHealthReportEvent) AsNodeOpenSucceededEvent() (*NodeOpenSucceededEvent, bool) {
40956	return nil, false
40957}
40958
40959// AsNodeOpenFailedEvent is the BasicFabricEvent implementation for ServiceNewHealthReportEvent.
40960func (snhre ServiceNewHealthReportEvent) AsNodeOpenFailedEvent() (*NodeOpenFailedEvent, bool) {
40961	return nil, false
40962}
40963
40964// AsNodeRemovedFromClusterEvent is the BasicFabricEvent implementation for ServiceNewHealthReportEvent.
40965func (snhre ServiceNewHealthReportEvent) AsNodeRemovedFromClusterEvent() (*NodeRemovedFromClusterEvent, bool) {
40966	return nil, false
40967}
40968
40969// AsNodeUpEvent is the BasicFabricEvent implementation for ServiceNewHealthReportEvent.
40970func (snhre ServiceNewHealthReportEvent) AsNodeUpEvent() (*NodeUpEvent, bool) {
40971	return nil, false
40972}
40973
40974// AsPartitionNewHealthReportEvent is the BasicFabricEvent implementation for ServiceNewHealthReportEvent.
40975func (snhre ServiceNewHealthReportEvent) AsPartitionNewHealthReportEvent() (*PartitionNewHealthReportEvent, bool) {
40976	return nil, false
40977}
40978
40979// AsPartitionHealthReportExpiredEvent is the BasicFabricEvent implementation for ServiceNewHealthReportEvent.
40980func (snhre ServiceNewHealthReportEvent) AsPartitionHealthReportExpiredEvent() (*PartitionHealthReportExpiredEvent, bool) {
40981	return nil, false
40982}
40983
40984// AsPartitionReconfiguredEvent is the BasicFabricEvent implementation for ServiceNewHealthReportEvent.
40985func (snhre ServiceNewHealthReportEvent) AsPartitionReconfiguredEvent() (*PartitionReconfiguredEvent, bool) {
40986	return nil, false
40987}
40988
40989// AsPartitionPrimaryMoveAnalysisEvent is the BasicFabricEvent implementation for ServiceNewHealthReportEvent.
40990func (snhre ServiceNewHealthReportEvent) AsPartitionPrimaryMoveAnalysisEvent() (*PartitionPrimaryMoveAnalysisEvent, bool) {
40991	return nil, false
40992}
40993
40994// AsServiceCreatedEvent is the BasicFabricEvent implementation for ServiceNewHealthReportEvent.
40995func (snhre ServiceNewHealthReportEvent) AsServiceCreatedEvent() (*ServiceCreatedEvent, bool) {
40996	return nil, false
40997}
40998
40999// AsServiceDeletedEvent is the BasicFabricEvent implementation for ServiceNewHealthReportEvent.
41000func (snhre ServiceNewHealthReportEvent) AsServiceDeletedEvent() (*ServiceDeletedEvent, bool) {
41001	return nil, false
41002}
41003
41004// AsServiceNewHealthReportEvent is the BasicFabricEvent implementation for ServiceNewHealthReportEvent.
41005func (snhre ServiceNewHealthReportEvent) AsServiceNewHealthReportEvent() (*ServiceNewHealthReportEvent, bool) {
41006	return &snhre, true
41007}
41008
41009// AsServiceHealthReportExpiredEvent is the BasicFabricEvent implementation for ServiceNewHealthReportEvent.
41010func (snhre ServiceNewHealthReportEvent) AsServiceHealthReportExpiredEvent() (*ServiceHealthReportExpiredEvent, bool) {
41011	return nil, false
41012}
41013
41014// AsDeployedServicePackageNewHealthReportEvent is the BasicFabricEvent implementation for ServiceNewHealthReportEvent.
41015func (snhre ServiceNewHealthReportEvent) AsDeployedServicePackageNewHealthReportEvent() (*DeployedServicePackageNewHealthReportEvent, bool) {
41016	return nil, false
41017}
41018
41019// AsDeployedServicePackageHealthReportExpiredEvent is the BasicFabricEvent implementation for ServiceNewHealthReportEvent.
41020func (snhre ServiceNewHealthReportEvent) AsDeployedServicePackageHealthReportExpiredEvent() (*DeployedServicePackageHealthReportExpiredEvent, bool) {
41021	return nil, false
41022}
41023
41024// AsStatefulReplicaNewHealthReportEvent is the BasicFabricEvent implementation for ServiceNewHealthReportEvent.
41025func (snhre ServiceNewHealthReportEvent) AsStatefulReplicaNewHealthReportEvent() (*StatefulReplicaNewHealthReportEvent, bool) {
41026	return nil, false
41027}
41028
41029// AsStatefulReplicaHealthReportExpiredEvent is the BasicFabricEvent implementation for ServiceNewHealthReportEvent.
41030func (snhre ServiceNewHealthReportEvent) AsStatefulReplicaHealthReportExpiredEvent() (*StatefulReplicaHealthReportExpiredEvent, bool) {
41031	return nil, false
41032}
41033
41034// AsStatelessReplicaNewHealthReportEvent is the BasicFabricEvent implementation for ServiceNewHealthReportEvent.
41035func (snhre ServiceNewHealthReportEvent) AsStatelessReplicaNewHealthReportEvent() (*StatelessReplicaNewHealthReportEvent, bool) {
41036	return nil, false
41037}
41038
41039// AsStatelessReplicaHealthReportExpiredEvent is the BasicFabricEvent implementation for ServiceNewHealthReportEvent.
41040func (snhre ServiceNewHealthReportEvent) AsStatelessReplicaHealthReportExpiredEvent() (*StatelessReplicaHealthReportExpiredEvent, bool) {
41041	return nil, false
41042}
41043
41044// AsClusterNewHealthReportEvent is the BasicFabricEvent implementation for ServiceNewHealthReportEvent.
41045func (snhre ServiceNewHealthReportEvent) AsClusterNewHealthReportEvent() (*ClusterNewHealthReportEvent, bool) {
41046	return nil, false
41047}
41048
41049// AsClusterHealthReportExpiredEvent is the BasicFabricEvent implementation for ServiceNewHealthReportEvent.
41050func (snhre ServiceNewHealthReportEvent) AsClusterHealthReportExpiredEvent() (*ClusterHealthReportExpiredEvent, bool) {
41051	return nil, false
41052}
41053
41054// AsClusterUpgradeCompletedEvent is the BasicFabricEvent implementation for ServiceNewHealthReportEvent.
41055func (snhre ServiceNewHealthReportEvent) AsClusterUpgradeCompletedEvent() (*ClusterUpgradeCompletedEvent, bool) {
41056	return nil, false
41057}
41058
41059// AsClusterUpgradeDomainCompletedEvent is the BasicFabricEvent implementation for ServiceNewHealthReportEvent.
41060func (snhre ServiceNewHealthReportEvent) AsClusterUpgradeDomainCompletedEvent() (*ClusterUpgradeDomainCompletedEvent, bool) {
41061	return nil, false
41062}
41063
41064// AsClusterUpgradeRollbackCompletedEvent is the BasicFabricEvent implementation for ServiceNewHealthReportEvent.
41065func (snhre ServiceNewHealthReportEvent) AsClusterUpgradeRollbackCompletedEvent() (*ClusterUpgradeRollbackCompletedEvent, bool) {
41066	return nil, false
41067}
41068
41069// AsClusterUpgradeRollbackStartedEvent is the BasicFabricEvent implementation for ServiceNewHealthReportEvent.
41070func (snhre ServiceNewHealthReportEvent) AsClusterUpgradeRollbackStartedEvent() (*ClusterUpgradeRollbackStartedEvent, bool) {
41071	return nil, false
41072}
41073
41074// AsClusterUpgradeStartedEvent is the BasicFabricEvent implementation for ServiceNewHealthReportEvent.
41075func (snhre ServiceNewHealthReportEvent) AsClusterUpgradeStartedEvent() (*ClusterUpgradeStartedEvent, bool) {
41076	return nil, false
41077}
41078
41079// AsChaosStoppedEvent is the BasicFabricEvent implementation for ServiceNewHealthReportEvent.
41080func (snhre ServiceNewHealthReportEvent) AsChaosStoppedEvent() (*ChaosStoppedEvent, bool) {
41081	return nil, false
41082}
41083
41084// AsChaosStartedEvent is the BasicFabricEvent implementation for ServiceNewHealthReportEvent.
41085func (snhre ServiceNewHealthReportEvent) AsChaosStartedEvent() (*ChaosStartedEvent, bool) {
41086	return nil, false
41087}
41088
41089// AsChaosCodePackageRestartScheduledEvent is the BasicFabricEvent implementation for ServiceNewHealthReportEvent.
41090func (snhre ServiceNewHealthReportEvent) AsChaosCodePackageRestartScheduledEvent() (*ChaosCodePackageRestartScheduledEvent, bool) {
41091	return nil, false
41092}
41093
41094// AsChaosReplicaRemovalScheduledEvent is the BasicFabricEvent implementation for ServiceNewHealthReportEvent.
41095func (snhre ServiceNewHealthReportEvent) AsChaosReplicaRemovalScheduledEvent() (*ChaosReplicaRemovalScheduledEvent, bool) {
41096	return nil, false
41097}
41098
41099// AsChaosPartitionSecondaryMoveScheduledEvent is the BasicFabricEvent implementation for ServiceNewHealthReportEvent.
41100func (snhre ServiceNewHealthReportEvent) AsChaosPartitionSecondaryMoveScheduledEvent() (*ChaosPartitionSecondaryMoveScheduledEvent, bool) {
41101	return nil, false
41102}
41103
41104// AsChaosPartitionPrimaryMoveScheduledEvent is the BasicFabricEvent implementation for ServiceNewHealthReportEvent.
41105func (snhre ServiceNewHealthReportEvent) AsChaosPartitionPrimaryMoveScheduledEvent() (*ChaosPartitionPrimaryMoveScheduledEvent, bool) {
41106	return nil, false
41107}
41108
41109// AsChaosReplicaRestartScheduledEvent is the BasicFabricEvent implementation for ServiceNewHealthReportEvent.
41110func (snhre ServiceNewHealthReportEvent) AsChaosReplicaRestartScheduledEvent() (*ChaosReplicaRestartScheduledEvent, bool) {
41111	return nil, false
41112}
41113
41114// AsChaosNodeRestartScheduledEvent is the BasicFabricEvent implementation for ServiceNewHealthReportEvent.
41115func (snhre ServiceNewHealthReportEvent) AsChaosNodeRestartScheduledEvent() (*ChaosNodeRestartScheduledEvent, bool) {
41116	return nil, false
41117}
41118
41119// AsFabricEvent is the BasicFabricEvent implementation for ServiceNewHealthReportEvent.
41120func (snhre ServiceNewHealthReportEvent) AsFabricEvent() (*FabricEvent, bool) {
41121	return nil, false
41122}
41123
41124// AsBasicFabricEvent is the BasicFabricEvent implementation for ServiceNewHealthReportEvent.
41125func (snhre ServiceNewHealthReportEvent) AsBasicFabricEvent() (BasicFabricEvent, bool) {
41126	return &snhre, true
41127}
41128
41129// BasicServicePartitionInfo information about a partition of a Service Fabric service.
41130type BasicServicePartitionInfo interface {
41131	AsStatefulServicePartitionInfo() (*StatefulServicePartitionInfo, bool)
41132	AsStatelessServicePartitionInfo() (*StatelessServicePartitionInfo, bool)
41133	AsServicePartitionInfo() (*ServicePartitionInfo, bool)
41134}
41135
41136// ServicePartitionInfo information about a partition of a Service Fabric service.
41137type ServicePartitionInfo struct {
41138	autorest.Response `json:"-"`
41139	// 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'
41140	HealthState HealthState `json:"HealthState,omitempty"`
41141	// PartitionStatus - The status of the service fabric service partition. Possible values include: 'ServicePartitionStatusInvalid', 'ServicePartitionStatusReady', 'ServicePartitionStatusNotReady', 'ServicePartitionStatusInQuorumLoss', 'ServicePartitionStatusReconfiguring', 'ServicePartitionStatusDeleting'
41142	PartitionStatus ServicePartitionStatus `json:"PartitionStatus,omitempty"`
41143	// PartitionInformation - Information about the partition identity, partitioning scheme and keys supported by it.
41144	PartitionInformation BasicPartitionInformation `json:"PartitionInformation,omitempty"`
41145	// ServiceKind - Possible values include: 'ServiceKindBasicServicePartitionInfoServiceKindServicePartitionInfo', 'ServiceKindBasicServicePartitionInfoServiceKindStateful', 'ServiceKindBasicServicePartitionInfoServiceKindStateless'
41146	ServiceKind ServiceKindBasicServicePartitionInfo `json:"ServiceKind,omitempty"`
41147}
41148
41149func unmarshalBasicServicePartitionInfo(body []byte) (BasicServicePartitionInfo, error) {
41150	var m map[string]interface{}
41151	err := json.Unmarshal(body, &m)
41152	if err != nil {
41153		return nil, err
41154	}
41155
41156	switch m["ServiceKind"] {
41157	case string(ServiceKindBasicServicePartitionInfoServiceKindStateful):
41158		var sspi StatefulServicePartitionInfo
41159		err := json.Unmarshal(body, &sspi)
41160		return sspi, err
41161	case string(ServiceKindBasicServicePartitionInfoServiceKindStateless):
41162		var sspi StatelessServicePartitionInfo
41163		err := json.Unmarshal(body, &sspi)
41164		return sspi, err
41165	default:
41166		var spi ServicePartitionInfo
41167		err := json.Unmarshal(body, &spi)
41168		return spi, err
41169	}
41170}
41171func unmarshalBasicServicePartitionInfoArray(body []byte) ([]BasicServicePartitionInfo, error) {
41172	var rawMessages []*json.RawMessage
41173	err := json.Unmarshal(body, &rawMessages)
41174	if err != nil {
41175		return nil, err
41176	}
41177
41178	spiArray := make([]BasicServicePartitionInfo, len(rawMessages))
41179
41180	for index, rawMessage := range rawMessages {
41181		spi, err := unmarshalBasicServicePartitionInfo(*rawMessage)
41182		if err != nil {
41183			return nil, err
41184		}
41185		spiArray[index] = spi
41186	}
41187	return spiArray, nil
41188}
41189
41190// MarshalJSON is the custom marshaler for ServicePartitionInfo.
41191func (spi ServicePartitionInfo) MarshalJSON() ([]byte, error) {
41192	spi.ServiceKind = ServiceKindBasicServicePartitionInfoServiceKindServicePartitionInfo
41193	objectMap := make(map[string]interface{})
41194	if spi.HealthState != "" {
41195		objectMap["HealthState"] = spi.HealthState
41196	}
41197	if spi.PartitionStatus != "" {
41198		objectMap["PartitionStatus"] = spi.PartitionStatus
41199	}
41200	objectMap["PartitionInformation"] = spi.PartitionInformation
41201	if spi.ServiceKind != "" {
41202		objectMap["ServiceKind"] = spi.ServiceKind
41203	}
41204	return json.Marshal(objectMap)
41205}
41206
41207// AsStatefulServicePartitionInfo is the BasicServicePartitionInfo implementation for ServicePartitionInfo.
41208func (spi ServicePartitionInfo) AsStatefulServicePartitionInfo() (*StatefulServicePartitionInfo, bool) {
41209	return nil, false
41210}
41211
41212// AsStatelessServicePartitionInfo is the BasicServicePartitionInfo implementation for ServicePartitionInfo.
41213func (spi ServicePartitionInfo) AsStatelessServicePartitionInfo() (*StatelessServicePartitionInfo, bool) {
41214	return nil, false
41215}
41216
41217// AsServicePartitionInfo is the BasicServicePartitionInfo implementation for ServicePartitionInfo.
41218func (spi ServicePartitionInfo) AsServicePartitionInfo() (*ServicePartitionInfo, bool) {
41219	return &spi, true
41220}
41221
41222// AsBasicServicePartitionInfo is the BasicServicePartitionInfo implementation for ServicePartitionInfo.
41223func (spi ServicePartitionInfo) AsBasicServicePartitionInfo() (BasicServicePartitionInfo, bool) {
41224	return &spi, true
41225}
41226
41227// UnmarshalJSON is the custom unmarshaler for ServicePartitionInfo struct.
41228func (spi *ServicePartitionInfo) UnmarshalJSON(body []byte) error {
41229	var m map[string]*json.RawMessage
41230	err := json.Unmarshal(body, &m)
41231	if err != nil {
41232		return err
41233	}
41234	for k, v := range m {
41235		switch k {
41236		case "HealthState":
41237			if v != nil {
41238				var healthState HealthState
41239				err = json.Unmarshal(*v, &healthState)
41240				if err != nil {
41241					return err
41242				}
41243				spi.HealthState = healthState
41244			}
41245		case "PartitionStatus":
41246			if v != nil {
41247				var partitionStatus ServicePartitionStatus
41248				err = json.Unmarshal(*v, &partitionStatus)
41249				if err != nil {
41250					return err
41251				}
41252				spi.PartitionStatus = partitionStatus
41253			}
41254		case "PartitionInformation":
41255			if v != nil {
41256				partitionInformation, err := unmarshalBasicPartitionInformation(*v)
41257				if err != nil {
41258					return err
41259				}
41260				spi.PartitionInformation = partitionInformation
41261			}
41262		case "ServiceKind":
41263			if v != nil {
41264				var serviceKind ServiceKindBasicServicePartitionInfo
41265				err = json.Unmarshal(*v, &serviceKind)
41266				if err != nil {
41267					return err
41268				}
41269				spi.ServiceKind = serviceKind
41270			}
41271		}
41272	}
41273
41274	return nil
41275}
41276
41277// ServicePartitionInfoModel ...
41278type ServicePartitionInfoModel struct {
41279	autorest.Response `json:"-"`
41280	Value             BasicServicePartitionInfo `json:"value,omitempty"`
41281}
41282
41283// UnmarshalJSON is the custom unmarshaler for ServicePartitionInfoModel struct.
41284func (spim *ServicePartitionInfoModel) UnmarshalJSON(body []byte) error {
41285	spi, err := unmarshalBasicServicePartitionInfo(body)
41286	if err != nil {
41287		return err
41288	}
41289	spim.Value = spi
41290
41291	return nil
41292}
41293
41294// ServicePlacementInvalidDomainPolicyDescription describes the policy to be used for placement of a
41295// Service Fabric service where a particular fault or upgrade domain should not be used for placement of
41296// the instances or replicas of that service.
41297type ServicePlacementInvalidDomainPolicyDescription struct {
41298	// DomainName - The name of the domain that should not be used for placement.
41299	DomainName *string `json:"DomainName,omitempty"`
41300	// Type - Possible values include: 'TypeServicePlacementPolicyDescription', 'TypeInvalidDomain', 'TypeNonPartiallyPlaceService', 'TypePreferPrimaryDomain', 'TypeRequireDomain', 'TypeRequireDomainDistribution'
41301	Type Type `json:"Type,omitempty"`
41302}
41303
41304// MarshalJSON is the custom marshaler for ServicePlacementInvalidDomainPolicyDescription.
41305func (spidpd ServicePlacementInvalidDomainPolicyDescription) MarshalJSON() ([]byte, error) {
41306	spidpd.Type = TypeInvalidDomain
41307	objectMap := make(map[string]interface{})
41308	if spidpd.DomainName != nil {
41309		objectMap["DomainName"] = spidpd.DomainName
41310	}
41311	if spidpd.Type != "" {
41312		objectMap["Type"] = spidpd.Type
41313	}
41314	return json.Marshal(objectMap)
41315}
41316
41317// AsServicePlacementInvalidDomainPolicyDescription is the BasicServicePlacementPolicyDescription implementation for ServicePlacementInvalidDomainPolicyDescription.
41318func (spidpd ServicePlacementInvalidDomainPolicyDescription) AsServicePlacementInvalidDomainPolicyDescription() (*ServicePlacementInvalidDomainPolicyDescription, bool) {
41319	return &spidpd, true
41320}
41321
41322// AsServicePlacementNonPartiallyPlaceServicePolicyDescription is the BasicServicePlacementPolicyDescription implementation for ServicePlacementInvalidDomainPolicyDescription.
41323func (spidpd ServicePlacementInvalidDomainPolicyDescription) AsServicePlacementNonPartiallyPlaceServicePolicyDescription() (*ServicePlacementNonPartiallyPlaceServicePolicyDescription, bool) {
41324	return nil, false
41325}
41326
41327// AsServicePlacementPreferPrimaryDomainPolicyDescription is the BasicServicePlacementPolicyDescription implementation for ServicePlacementInvalidDomainPolicyDescription.
41328func (spidpd ServicePlacementInvalidDomainPolicyDescription) AsServicePlacementPreferPrimaryDomainPolicyDescription() (*ServicePlacementPreferPrimaryDomainPolicyDescription, bool) {
41329	return nil, false
41330}
41331
41332// AsServicePlacementRequiredDomainPolicyDescription is the BasicServicePlacementPolicyDescription implementation for ServicePlacementInvalidDomainPolicyDescription.
41333func (spidpd ServicePlacementInvalidDomainPolicyDescription) AsServicePlacementRequiredDomainPolicyDescription() (*ServicePlacementRequiredDomainPolicyDescription, bool) {
41334	return nil, false
41335}
41336
41337// AsServicePlacementRequireDomainDistributionPolicyDescription is the BasicServicePlacementPolicyDescription implementation for ServicePlacementInvalidDomainPolicyDescription.
41338func (spidpd ServicePlacementInvalidDomainPolicyDescription) AsServicePlacementRequireDomainDistributionPolicyDescription() (*ServicePlacementRequireDomainDistributionPolicyDescription, bool) {
41339	return nil, false
41340}
41341
41342// AsServicePlacementPolicyDescription is the BasicServicePlacementPolicyDescription implementation for ServicePlacementInvalidDomainPolicyDescription.
41343func (spidpd ServicePlacementInvalidDomainPolicyDescription) AsServicePlacementPolicyDescription() (*ServicePlacementPolicyDescription, bool) {
41344	return nil, false
41345}
41346
41347// AsBasicServicePlacementPolicyDescription is the BasicServicePlacementPolicyDescription implementation for ServicePlacementInvalidDomainPolicyDescription.
41348func (spidpd ServicePlacementInvalidDomainPolicyDescription) AsBasicServicePlacementPolicyDescription() (BasicServicePlacementPolicyDescription, bool) {
41349	return &spidpd, true
41350}
41351
41352// ServicePlacementNonPartiallyPlaceServicePolicyDescription describes the policy to be used for placement
41353// of a Service Fabric service where all replicas must be able to be placed in order for any replicas to be
41354// created.
41355type ServicePlacementNonPartiallyPlaceServicePolicyDescription struct {
41356	// Type - Possible values include: 'TypeServicePlacementPolicyDescription', 'TypeInvalidDomain', 'TypeNonPartiallyPlaceService', 'TypePreferPrimaryDomain', 'TypeRequireDomain', 'TypeRequireDomainDistribution'
41357	Type Type `json:"Type,omitempty"`
41358}
41359
41360// MarshalJSON is the custom marshaler for ServicePlacementNonPartiallyPlaceServicePolicyDescription.
41361func (spnppspd ServicePlacementNonPartiallyPlaceServicePolicyDescription) MarshalJSON() ([]byte, error) {
41362	spnppspd.Type = TypeNonPartiallyPlaceService
41363	objectMap := make(map[string]interface{})
41364	if spnppspd.Type != "" {
41365		objectMap["Type"] = spnppspd.Type
41366	}
41367	return json.Marshal(objectMap)
41368}
41369
41370// AsServicePlacementInvalidDomainPolicyDescription is the BasicServicePlacementPolicyDescription implementation for ServicePlacementNonPartiallyPlaceServicePolicyDescription.
41371func (spnppspd ServicePlacementNonPartiallyPlaceServicePolicyDescription) AsServicePlacementInvalidDomainPolicyDescription() (*ServicePlacementInvalidDomainPolicyDescription, bool) {
41372	return nil, false
41373}
41374
41375// AsServicePlacementNonPartiallyPlaceServicePolicyDescription is the BasicServicePlacementPolicyDescription implementation for ServicePlacementNonPartiallyPlaceServicePolicyDescription.
41376func (spnppspd ServicePlacementNonPartiallyPlaceServicePolicyDescription) AsServicePlacementNonPartiallyPlaceServicePolicyDescription() (*ServicePlacementNonPartiallyPlaceServicePolicyDescription, bool) {
41377	return &spnppspd, true
41378}
41379
41380// AsServicePlacementPreferPrimaryDomainPolicyDescription is the BasicServicePlacementPolicyDescription implementation for ServicePlacementNonPartiallyPlaceServicePolicyDescription.
41381func (spnppspd ServicePlacementNonPartiallyPlaceServicePolicyDescription) AsServicePlacementPreferPrimaryDomainPolicyDescription() (*ServicePlacementPreferPrimaryDomainPolicyDescription, bool) {
41382	return nil, false
41383}
41384
41385// AsServicePlacementRequiredDomainPolicyDescription is the BasicServicePlacementPolicyDescription implementation for ServicePlacementNonPartiallyPlaceServicePolicyDescription.
41386func (spnppspd ServicePlacementNonPartiallyPlaceServicePolicyDescription) AsServicePlacementRequiredDomainPolicyDescription() (*ServicePlacementRequiredDomainPolicyDescription, bool) {
41387	return nil, false
41388}
41389
41390// AsServicePlacementRequireDomainDistributionPolicyDescription is the BasicServicePlacementPolicyDescription implementation for ServicePlacementNonPartiallyPlaceServicePolicyDescription.
41391func (spnppspd ServicePlacementNonPartiallyPlaceServicePolicyDescription) AsServicePlacementRequireDomainDistributionPolicyDescription() (*ServicePlacementRequireDomainDistributionPolicyDescription, bool) {
41392	return nil, false
41393}
41394
41395// AsServicePlacementPolicyDescription is the BasicServicePlacementPolicyDescription implementation for ServicePlacementNonPartiallyPlaceServicePolicyDescription.
41396func (spnppspd ServicePlacementNonPartiallyPlaceServicePolicyDescription) AsServicePlacementPolicyDescription() (*ServicePlacementPolicyDescription, bool) {
41397	return nil, false
41398}
41399
41400// AsBasicServicePlacementPolicyDescription is the BasicServicePlacementPolicyDescription implementation for ServicePlacementNonPartiallyPlaceServicePolicyDescription.
41401func (spnppspd ServicePlacementNonPartiallyPlaceServicePolicyDescription) AsBasicServicePlacementPolicyDescription() (BasicServicePlacementPolicyDescription, bool) {
41402	return &spnppspd, true
41403}
41404
41405// BasicServicePlacementPolicyDescription describes the policy to be used for placement of a Service Fabric service.
41406type BasicServicePlacementPolicyDescription interface {
41407	AsServicePlacementInvalidDomainPolicyDescription() (*ServicePlacementInvalidDomainPolicyDescription, bool)
41408	AsServicePlacementNonPartiallyPlaceServicePolicyDescription() (*ServicePlacementNonPartiallyPlaceServicePolicyDescription, bool)
41409	AsServicePlacementPreferPrimaryDomainPolicyDescription() (*ServicePlacementPreferPrimaryDomainPolicyDescription, bool)
41410	AsServicePlacementRequiredDomainPolicyDescription() (*ServicePlacementRequiredDomainPolicyDescription, bool)
41411	AsServicePlacementRequireDomainDistributionPolicyDescription() (*ServicePlacementRequireDomainDistributionPolicyDescription, bool)
41412	AsServicePlacementPolicyDescription() (*ServicePlacementPolicyDescription, bool)
41413}
41414
41415// ServicePlacementPolicyDescription describes the policy to be used for placement of a Service Fabric service.
41416type ServicePlacementPolicyDescription struct {
41417	// Type - Possible values include: 'TypeServicePlacementPolicyDescription', 'TypeInvalidDomain', 'TypeNonPartiallyPlaceService', 'TypePreferPrimaryDomain', 'TypeRequireDomain', 'TypeRequireDomainDistribution'
41418	Type Type `json:"Type,omitempty"`
41419}
41420
41421func unmarshalBasicServicePlacementPolicyDescription(body []byte) (BasicServicePlacementPolicyDescription, error) {
41422	var m map[string]interface{}
41423	err := json.Unmarshal(body, &m)
41424	if err != nil {
41425		return nil, err
41426	}
41427
41428	switch m["Type"] {
41429	case string(TypeInvalidDomain):
41430		var spidpd ServicePlacementInvalidDomainPolicyDescription
41431		err := json.Unmarshal(body, &spidpd)
41432		return spidpd, err
41433	case string(TypeNonPartiallyPlaceService):
41434		var spnppspd ServicePlacementNonPartiallyPlaceServicePolicyDescription
41435		err := json.Unmarshal(body, &spnppspd)
41436		return spnppspd, err
41437	case string(TypePreferPrimaryDomain):
41438		var spppdpd ServicePlacementPreferPrimaryDomainPolicyDescription
41439		err := json.Unmarshal(body, &spppdpd)
41440		return spppdpd, err
41441	case string(TypeRequireDomain):
41442		var sprdpd ServicePlacementRequiredDomainPolicyDescription
41443		err := json.Unmarshal(body, &sprdpd)
41444		return sprdpd, err
41445	case string(TypeRequireDomainDistribution):
41446		var sprddpd ServicePlacementRequireDomainDistributionPolicyDescription
41447		err := json.Unmarshal(body, &sprddpd)
41448		return sprddpd, err
41449	default:
41450		var sppd ServicePlacementPolicyDescription
41451		err := json.Unmarshal(body, &sppd)
41452		return sppd, err
41453	}
41454}
41455func unmarshalBasicServicePlacementPolicyDescriptionArray(body []byte) ([]BasicServicePlacementPolicyDescription, error) {
41456	var rawMessages []*json.RawMessage
41457	err := json.Unmarshal(body, &rawMessages)
41458	if err != nil {
41459		return nil, err
41460	}
41461
41462	sppdArray := make([]BasicServicePlacementPolicyDescription, len(rawMessages))
41463
41464	for index, rawMessage := range rawMessages {
41465		sppd, err := unmarshalBasicServicePlacementPolicyDescription(*rawMessage)
41466		if err != nil {
41467			return nil, err
41468		}
41469		sppdArray[index] = sppd
41470	}
41471	return sppdArray, nil
41472}
41473
41474// MarshalJSON is the custom marshaler for ServicePlacementPolicyDescription.
41475func (sppd ServicePlacementPolicyDescription) MarshalJSON() ([]byte, error) {
41476	sppd.Type = TypeServicePlacementPolicyDescription
41477	objectMap := make(map[string]interface{})
41478	if sppd.Type != "" {
41479		objectMap["Type"] = sppd.Type
41480	}
41481	return json.Marshal(objectMap)
41482}
41483
41484// AsServicePlacementInvalidDomainPolicyDescription is the BasicServicePlacementPolicyDescription implementation for ServicePlacementPolicyDescription.
41485func (sppd ServicePlacementPolicyDescription) AsServicePlacementInvalidDomainPolicyDescription() (*ServicePlacementInvalidDomainPolicyDescription, bool) {
41486	return nil, false
41487}
41488
41489// AsServicePlacementNonPartiallyPlaceServicePolicyDescription is the BasicServicePlacementPolicyDescription implementation for ServicePlacementPolicyDescription.
41490func (sppd ServicePlacementPolicyDescription) AsServicePlacementNonPartiallyPlaceServicePolicyDescription() (*ServicePlacementNonPartiallyPlaceServicePolicyDescription, bool) {
41491	return nil, false
41492}
41493
41494// AsServicePlacementPreferPrimaryDomainPolicyDescription is the BasicServicePlacementPolicyDescription implementation for ServicePlacementPolicyDescription.
41495func (sppd ServicePlacementPolicyDescription) AsServicePlacementPreferPrimaryDomainPolicyDescription() (*ServicePlacementPreferPrimaryDomainPolicyDescription, bool) {
41496	return nil, false
41497}
41498
41499// AsServicePlacementRequiredDomainPolicyDescription is the BasicServicePlacementPolicyDescription implementation for ServicePlacementPolicyDescription.
41500func (sppd ServicePlacementPolicyDescription) AsServicePlacementRequiredDomainPolicyDescription() (*ServicePlacementRequiredDomainPolicyDescription, bool) {
41501	return nil, false
41502}
41503
41504// AsServicePlacementRequireDomainDistributionPolicyDescription is the BasicServicePlacementPolicyDescription implementation for ServicePlacementPolicyDescription.
41505func (sppd ServicePlacementPolicyDescription) AsServicePlacementRequireDomainDistributionPolicyDescription() (*ServicePlacementRequireDomainDistributionPolicyDescription, bool) {
41506	return nil, false
41507}
41508
41509// AsServicePlacementPolicyDescription is the BasicServicePlacementPolicyDescription implementation for ServicePlacementPolicyDescription.
41510func (sppd ServicePlacementPolicyDescription) AsServicePlacementPolicyDescription() (*ServicePlacementPolicyDescription, bool) {
41511	return &sppd, true
41512}
41513
41514// AsBasicServicePlacementPolicyDescription is the BasicServicePlacementPolicyDescription implementation for ServicePlacementPolicyDescription.
41515func (sppd ServicePlacementPolicyDescription) AsBasicServicePlacementPolicyDescription() (BasicServicePlacementPolicyDescription, bool) {
41516	return &sppd, true
41517}
41518
41519// ServicePlacementPreferPrimaryDomainPolicyDescription describes the policy to be used for placement of a
41520// Service Fabric service where the service's Primary replicas should optimally be placed in a particular
41521// domain.
41522//
41523// This placement policy is usually used with fault domains in scenarios where the Service Fabric cluster
41524// is geographically distributed in order to indicate that a service's primary replica should be located in
41525// a particular fault domain, which in geo-distributed scenarios usually aligns with regional or datacenter
41526// boundaries. Note that since this is an optimization it is possible that the Primary replica may not end
41527// up located in this domain due to failures, capacity limits, or other constraints.
41528type ServicePlacementPreferPrimaryDomainPolicyDescription struct {
41529	// DomainName - The name of the domain that should used for placement as per this policy.
41530	DomainName *string `json:"DomainName,omitempty"`
41531	// Type - Possible values include: 'TypeServicePlacementPolicyDescription', 'TypeInvalidDomain', 'TypeNonPartiallyPlaceService', 'TypePreferPrimaryDomain', 'TypeRequireDomain', 'TypeRequireDomainDistribution'
41532	Type Type `json:"Type,omitempty"`
41533}
41534
41535// MarshalJSON is the custom marshaler for ServicePlacementPreferPrimaryDomainPolicyDescription.
41536func (spppdpd ServicePlacementPreferPrimaryDomainPolicyDescription) MarshalJSON() ([]byte, error) {
41537	spppdpd.Type = TypePreferPrimaryDomain
41538	objectMap := make(map[string]interface{})
41539	if spppdpd.DomainName != nil {
41540		objectMap["DomainName"] = spppdpd.DomainName
41541	}
41542	if spppdpd.Type != "" {
41543		objectMap["Type"] = spppdpd.Type
41544	}
41545	return json.Marshal(objectMap)
41546}
41547
41548// AsServicePlacementInvalidDomainPolicyDescription is the BasicServicePlacementPolicyDescription implementation for ServicePlacementPreferPrimaryDomainPolicyDescription.
41549func (spppdpd ServicePlacementPreferPrimaryDomainPolicyDescription) AsServicePlacementInvalidDomainPolicyDescription() (*ServicePlacementInvalidDomainPolicyDescription, bool) {
41550	return nil, false
41551}
41552
41553// AsServicePlacementNonPartiallyPlaceServicePolicyDescription is the BasicServicePlacementPolicyDescription implementation for ServicePlacementPreferPrimaryDomainPolicyDescription.
41554func (spppdpd ServicePlacementPreferPrimaryDomainPolicyDescription) AsServicePlacementNonPartiallyPlaceServicePolicyDescription() (*ServicePlacementNonPartiallyPlaceServicePolicyDescription, bool) {
41555	return nil, false
41556}
41557
41558// AsServicePlacementPreferPrimaryDomainPolicyDescription is the BasicServicePlacementPolicyDescription implementation for ServicePlacementPreferPrimaryDomainPolicyDescription.
41559func (spppdpd ServicePlacementPreferPrimaryDomainPolicyDescription) AsServicePlacementPreferPrimaryDomainPolicyDescription() (*ServicePlacementPreferPrimaryDomainPolicyDescription, bool) {
41560	return &spppdpd, true
41561}
41562
41563// AsServicePlacementRequiredDomainPolicyDescription is the BasicServicePlacementPolicyDescription implementation for ServicePlacementPreferPrimaryDomainPolicyDescription.
41564func (spppdpd ServicePlacementPreferPrimaryDomainPolicyDescription) AsServicePlacementRequiredDomainPolicyDescription() (*ServicePlacementRequiredDomainPolicyDescription, bool) {
41565	return nil, false
41566}
41567
41568// AsServicePlacementRequireDomainDistributionPolicyDescription is the BasicServicePlacementPolicyDescription implementation for ServicePlacementPreferPrimaryDomainPolicyDescription.
41569func (spppdpd ServicePlacementPreferPrimaryDomainPolicyDescription) AsServicePlacementRequireDomainDistributionPolicyDescription() (*ServicePlacementRequireDomainDistributionPolicyDescription, bool) {
41570	return nil, false
41571}
41572
41573// AsServicePlacementPolicyDescription is the BasicServicePlacementPolicyDescription implementation for ServicePlacementPreferPrimaryDomainPolicyDescription.
41574func (spppdpd ServicePlacementPreferPrimaryDomainPolicyDescription) AsServicePlacementPolicyDescription() (*ServicePlacementPolicyDescription, bool) {
41575	return nil, false
41576}
41577
41578// AsBasicServicePlacementPolicyDescription is the BasicServicePlacementPolicyDescription implementation for ServicePlacementPreferPrimaryDomainPolicyDescription.
41579func (spppdpd ServicePlacementPreferPrimaryDomainPolicyDescription) AsBasicServicePlacementPolicyDescription() (BasicServicePlacementPolicyDescription, bool) {
41580	return &spppdpd, true
41581}
41582
41583// ServicePlacementRequiredDomainPolicyDescription describes the policy to be used for placement of a
41584// Service Fabric service where the instances or replicas of that service must be placed in a particular
41585// domain
41586type ServicePlacementRequiredDomainPolicyDescription struct {
41587	// DomainName - The name of the domain that should used for placement as per this policy.
41588	DomainName *string `json:"DomainName,omitempty"`
41589	// Type - Possible values include: 'TypeServicePlacementPolicyDescription', 'TypeInvalidDomain', 'TypeNonPartiallyPlaceService', 'TypePreferPrimaryDomain', 'TypeRequireDomain', 'TypeRequireDomainDistribution'
41590	Type Type `json:"Type,omitempty"`
41591}
41592
41593// MarshalJSON is the custom marshaler for ServicePlacementRequiredDomainPolicyDescription.
41594func (sprdpd ServicePlacementRequiredDomainPolicyDescription) MarshalJSON() ([]byte, error) {
41595	sprdpd.Type = TypeRequireDomain
41596	objectMap := make(map[string]interface{})
41597	if sprdpd.DomainName != nil {
41598		objectMap["DomainName"] = sprdpd.DomainName
41599	}
41600	if sprdpd.Type != "" {
41601		objectMap["Type"] = sprdpd.Type
41602	}
41603	return json.Marshal(objectMap)
41604}
41605
41606// AsServicePlacementInvalidDomainPolicyDescription is the BasicServicePlacementPolicyDescription implementation for ServicePlacementRequiredDomainPolicyDescription.
41607func (sprdpd ServicePlacementRequiredDomainPolicyDescription) AsServicePlacementInvalidDomainPolicyDescription() (*ServicePlacementInvalidDomainPolicyDescription, bool) {
41608	return nil, false
41609}
41610
41611// AsServicePlacementNonPartiallyPlaceServicePolicyDescription is the BasicServicePlacementPolicyDescription implementation for ServicePlacementRequiredDomainPolicyDescription.
41612func (sprdpd ServicePlacementRequiredDomainPolicyDescription) AsServicePlacementNonPartiallyPlaceServicePolicyDescription() (*ServicePlacementNonPartiallyPlaceServicePolicyDescription, bool) {
41613	return nil, false
41614}
41615
41616// AsServicePlacementPreferPrimaryDomainPolicyDescription is the BasicServicePlacementPolicyDescription implementation for ServicePlacementRequiredDomainPolicyDescription.
41617func (sprdpd ServicePlacementRequiredDomainPolicyDescription) AsServicePlacementPreferPrimaryDomainPolicyDescription() (*ServicePlacementPreferPrimaryDomainPolicyDescription, bool) {
41618	return nil, false
41619}
41620
41621// AsServicePlacementRequiredDomainPolicyDescription is the BasicServicePlacementPolicyDescription implementation for ServicePlacementRequiredDomainPolicyDescription.
41622func (sprdpd ServicePlacementRequiredDomainPolicyDescription) AsServicePlacementRequiredDomainPolicyDescription() (*ServicePlacementRequiredDomainPolicyDescription, bool) {
41623	return &sprdpd, true
41624}
41625
41626// AsServicePlacementRequireDomainDistributionPolicyDescription is the BasicServicePlacementPolicyDescription implementation for ServicePlacementRequiredDomainPolicyDescription.
41627func (sprdpd ServicePlacementRequiredDomainPolicyDescription) AsServicePlacementRequireDomainDistributionPolicyDescription() (*ServicePlacementRequireDomainDistributionPolicyDescription, bool) {
41628	return nil, false
41629}
41630
41631// AsServicePlacementPolicyDescription is the BasicServicePlacementPolicyDescription implementation for ServicePlacementRequiredDomainPolicyDescription.
41632func (sprdpd ServicePlacementRequiredDomainPolicyDescription) AsServicePlacementPolicyDescription() (*ServicePlacementPolicyDescription, bool) {
41633	return nil, false
41634}
41635
41636// AsBasicServicePlacementPolicyDescription is the BasicServicePlacementPolicyDescription implementation for ServicePlacementRequiredDomainPolicyDescription.
41637func (sprdpd ServicePlacementRequiredDomainPolicyDescription) AsBasicServicePlacementPolicyDescription() (BasicServicePlacementPolicyDescription, bool) {
41638	return &sprdpd, true
41639}
41640
41641// ServicePlacementRequireDomainDistributionPolicyDescription describes the policy to be used for placement
41642// of a Service Fabric service where two replicas from the same partition should never be placed in the
41643// same fault or upgrade domain.
41644//
41645// While this is not common it can expose the service to an increased risk of concurrent failures due to
41646// unplanned outages or other cases of subsequent/concurrent failures. As an example, consider a case where
41647// replicas are deployed across different data center, with one replica per location. In the event that one
41648// of the datacenters goes offline, normally the replica that was placed in that datacenter will be packed
41649// into one of the remaining datacenters. If this is not desirable then this policy should be set.
41650type ServicePlacementRequireDomainDistributionPolicyDescription struct {
41651	// DomainName - The name of the domain that should used for placement as per this policy.
41652	DomainName *string `json:"DomainName,omitempty"`
41653	// Type - Possible values include: 'TypeServicePlacementPolicyDescription', 'TypeInvalidDomain', 'TypeNonPartiallyPlaceService', 'TypePreferPrimaryDomain', 'TypeRequireDomain', 'TypeRequireDomainDistribution'
41654	Type Type `json:"Type,omitempty"`
41655}
41656
41657// MarshalJSON is the custom marshaler for ServicePlacementRequireDomainDistributionPolicyDescription.
41658func (sprddpd ServicePlacementRequireDomainDistributionPolicyDescription) MarshalJSON() ([]byte, error) {
41659	sprddpd.Type = TypeRequireDomainDistribution
41660	objectMap := make(map[string]interface{})
41661	if sprddpd.DomainName != nil {
41662		objectMap["DomainName"] = sprddpd.DomainName
41663	}
41664	if sprddpd.Type != "" {
41665		objectMap["Type"] = sprddpd.Type
41666	}
41667	return json.Marshal(objectMap)
41668}
41669
41670// AsServicePlacementInvalidDomainPolicyDescription is the BasicServicePlacementPolicyDescription implementation for ServicePlacementRequireDomainDistributionPolicyDescription.
41671func (sprddpd ServicePlacementRequireDomainDistributionPolicyDescription) AsServicePlacementInvalidDomainPolicyDescription() (*ServicePlacementInvalidDomainPolicyDescription, bool) {
41672	return nil, false
41673}
41674
41675// AsServicePlacementNonPartiallyPlaceServicePolicyDescription is the BasicServicePlacementPolicyDescription implementation for ServicePlacementRequireDomainDistributionPolicyDescription.
41676func (sprddpd ServicePlacementRequireDomainDistributionPolicyDescription) AsServicePlacementNonPartiallyPlaceServicePolicyDescription() (*ServicePlacementNonPartiallyPlaceServicePolicyDescription, bool) {
41677	return nil, false
41678}
41679
41680// AsServicePlacementPreferPrimaryDomainPolicyDescription is the BasicServicePlacementPolicyDescription implementation for ServicePlacementRequireDomainDistributionPolicyDescription.
41681func (sprddpd ServicePlacementRequireDomainDistributionPolicyDescription) AsServicePlacementPreferPrimaryDomainPolicyDescription() (*ServicePlacementPreferPrimaryDomainPolicyDescription, bool) {
41682	return nil, false
41683}
41684
41685// AsServicePlacementRequiredDomainPolicyDescription is the BasicServicePlacementPolicyDescription implementation for ServicePlacementRequireDomainDistributionPolicyDescription.
41686func (sprddpd ServicePlacementRequireDomainDistributionPolicyDescription) AsServicePlacementRequiredDomainPolicyDescription() (*ServicePlacementRequiredDomainPolicyDescription, bool) {
41687	return nil, false
41688}
41689
41690// AsServicePlacementRequireDomainDistributionPolicyDescription is the BasicServicePlacementPolicyDescription implementation for ServicePlacementRequireDomainDistributionPolicyDescription.
41691func (sprddpd ServicePlacementRequireDomainDistributionPolicyDescription) AsServicePlacementRequireDomainDistributionPolicyDescription() (*ServicePlacementRequireDomainDistributionPolicyDescription, bool) {
41692	return &sprddpd, true
41693}
41694
41695// AsServicePlacementPolicyDescription is the BasicServicePlacementPolicyDescription implementation for ServicePlacementRequireDomainDistributionPolicyDescription.
41696func (sprddpd ServicePlacementRequireDomainDistributionPolicyDescription) AsServicePlacementPolicyDescription() (*ServicePlacementPolicyDescription, bool) {
41697	return nil, false
41698}
41699
41700// AsBasicServicePlacementPolicyDescription is the BasicServicePlacementPolicyDescription implementation for ServicePlacementRequireDomainDistributionPolicyDescription.
41701func (sprddpd ServicePlacementRequireDomainDistributionPolicyDescription) AsBasicServicePlacementPolicyDescription() (BasicServicePlacementPolicyDescription, bool) {
41702	return &sprddpd, true
41703}
41704
41705// ServiceProperties describes properties of a service resource.
41706type ServiceProperties struct {
41707	// Description - User readable description of the service.
41708	Description *string `json:"description,omitempty"`
41709	// ReplicaCount - The number of replicas of the service to create. Defaults to 1 if not specified.
41710	ReplicaCount *int32 `json:"replicaCount,omitempty"`
41711	// AutoScalingPolicies - Auto scaling policies
41712	AutoScalingPolicies *[]AutoScalingPolicy `json:"autoScalingPolicies,omitempty"`
41713	// Status - READ-ONLY; Status of the service. Possible values include: 'ResourceStatusUnknown', 'ResourceStatusReady', 'ResourceStatusUpgrading', 'ResourceStatusCreating', 'ResourceStatusDeleting', 'ResourceStatusFailed'
41714	Status ResourceStatus `json:"status,omitempty"`
41715	// StatusDetails - READ-ONLY; Gives additional information about the current status of the service.
41716	StatusDetails *string `json:"statusDetails,omitempty"`
41717	// HealthState - READ-ONLY; Describes the health state of an application resource. Possible values include: 'HealthStateInvalid', 'HealthStateOk', 'HealthStateWarning', 'HealthStateError', 'HealthStateUnknown'
41718	HealthState HealthState `json:"healthState,omitempty"`
41719	// 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.
41720	UnhealthyEvaluation *string `json:"unhealthyEvaluation,omitempty"`
41721	// IdentityRefs - The service identity list.
41722	IdentityRefs *[]ServiceIdentity `json:"identityRefs,omitempty"`
41723}
41724
41725// MarshalJSON is the custom marshaler for ServiceProperties.
41726func (sp ServiceProperties) MarshalJSON() ([]byte, error) {
41727	objectMap := make(map[string]interface{})
41728	if sp.Description != nil {
41729		objectMap["description"] = sp.Description
41730	}
41731	if sp.ReplicaCount != nil {
41732		objectMap["replicaCount"] = sp.ReplicaCount
41733	}
41734	if sp.AutoScalingPolicies != nil {
41735		objectMap["autoScalingPolicies"] = sp.AutoScalingPolicies
41736	}
41737	if sp.IdentityRefs != nil {
41738		objectMap["identityRefs"] = sp.IdentityRefs
41739	}
41740	return json.Marshal(objectMap)
41741}
41742
41743// ServiceReplicaDescription describes a replica of a service resource.
41744type ServiceReplicaDescription struct {
41745	autorest.Response `json:"-"`
41746	// ReplicaName - Name of the replica.
41747	ReplicaName *string `json:"replicaName,omitempty"`
41748	// OsType - The operation system required by the code in service. Possible values include: 'Linux', 'Windows'
41749	OsType OperatingSystemType `json:"osType,omitempty"`
41750	// 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.).
41751	CodePackages *[]ContainerCodePackageProperties `json:"codePackages,omitempty"`
41752	// NetworkRefs - The names of the private networks that this service needs to be part of.
41753	NetworkRefs *[]NetworkRef `json:"networkRefs,omitempty"`
41754	// Diagnostics - Reference to sinks in DiagnosticsDescription.
41755	Diagnostics *DiagnosticsRef `json:"diagnostics,omitempty"`
41756}
41757
41758// ServiceReplicaProperties describes the properties of a service replica.
41759type ServiceReplicaProperties struct {
41760	// OsType - The operation system required by the code in service. Possible values include: 'Linux', 'Windows'
41761	OsType OperatingSystemType `json:"osType,omitempty"`
41762	// 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.).
41763	CodePackages *[]ContainerCodePackageProperties `json:"codePackages,omitempty"`
41764	// NetworkRefs - The names of the private networks that this service needs to be part of.
41765	NetworkRefs *[]NetworkRef `json:"networkRefs,omitempty"`
41766	// Diagnostics - Reference to sinks in DiagnosticsDescription.
41767	Diagnostics *DiagnosticsRef `json:"diagnostics,omitempty"`
41768}
41769
41770// ServiceResourceDescription this type describes a service resource.
41771type ServiceResourceDescription struct {
41772	autorest.Response `json:"-"`
41773	// Name - Name of the Service resource.
41774	Name *string `json:"name,omitempty"`
41775	// ServiceResourceProperties - This type describes properties of a service resource.
41776	*ServiceResourceProperties `json:"properties,omitempty"`
41777}
41778
41779// MarshalJSON is the custom marshaler for ServiceResourceDescription.
41780func (srd ServiceResourceDescription) MarshalJSON() ([]byte, error) {
41781	objectMap := make(map[string]interface{})
41782	if srd.Name != nil {
41783		objectMap["name"] = srd.Name
41784	}
41785	if srd.ServiceResourceProperties != nil {
41786		objectMap["properties"] = srd.ServiceResourceProperties
41787	}
41788	return json.Marshal(objectMap)
41789}
41790
41791// UnmarshalJSON is the custom unmarshaler for ServiceResourceDescription struct.
41792func (srd *ServiceResourceDescription) UnmarshalJSON(body []byte) error {
41793	var m map[string]*json.RawMessage
41794	err := json.Unmarshal(body, &m)
41795	if err != nil {
41796		return err
41797	}
41798	for k, v := range m {
41799		switch k {
41800		case "name":
41801			if v != nil {
41802				var name string
41803				err = json.Unmarshal(*v, &name)
41804				if err != nil {
41805					return err
41806				}
41807				srd.Name = &name
41808			}
41809		case "properties":
41810			if v != nil {
41811				var serviceResourceProperties ServiceResourceProperties
41812				err = json.Unmarshal(*v, &serviceResourceProperties)
41813				if err != nil {
41814					return err
41815				}
41816				srd.ServiceResourceProperties = &serviceResourceProperties
41817			}
41818		}
41819	}
41820
41821	return nil
41822}
41823
41824// ServiceResourceProperties this type describes properties of a service resource.
41825type ServiceResourceProperties struct {
41826	// OsType - The operation system required by the code in service. Possible values include: 'Linux', 'Windows'
41827	OsType OperatingSystemType `json:"osType,omitempty"`
41828	// 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.).
41829	CodePackages *[]ContainerCodePackageProperties `json:"codePackages,omitempty"`
41830	// NetworkRefs - The names of the private networks that this service needs to be part of.
41831	NetworkRefs *[]NetworkRef `json:"networkRefs,omitempty"`
41832	// Diagnostics - Reference to sinks in DiagnosticsDescription.
41833	Diagnostics *DiagnosticsRef `json:"diagnostics,omitempty"`
41834	// Description - User readable description of the service.
41835	Description *string `json:"description,omitempty"`
41836	// ReplicaCount - The number of replicas of the service to create. Defaults to 1 if not specified.
41837	ReplicaCount *int32 `json:"replicaCount,omitempty"`
41838	// AutoScalingPolicies - Auto scaling policies
41839	AutoScalingPolicies *[]AutoScalingPolicy `json:"autoScalingPolicies,omitempty"`
41840	// Status - READ-ONLY; Status of the service. Possible values include: 'ResourceStatusUnknown', 'ResourceStatusReady', 'ResourceStatusUpgrading', 'ResourceStatusCreating', 'ResourceStatusDeleting', 'ResourceStatusFailed'
41841	Status ResourceStatus `json:"status,omitempty"`
41842	// StatusDetails - READ-ONLY; Gives additional information about the current status of the service.
41843	StatusDetails *string `json:"statusDetails,omitempty"`
41844	// HealthState - READ-ONLY; Describes the health state of an application resource. Possible values include: 'HealthStateInvalid', 'HealthStateOk', 'HealthStateWarning', 'HealthStateError', 'HealthStateUnknown'
41845	HealthState HealthState `json:"healthState,omitempty"`
41846	// 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.
41847	UnhealthyEvaluation *string `json:"unhealthyEvaluation,omitempty"`
41848	// IdentityRefs - The service identity list.
41849	IdentityRefs *[]ServiceIdentity `json:"identityRefs,omitempty"`
41850}
41851
41852// MarshalJSON is the custom marshaler for ServiceResourceProperties.
41853func (srp ServiceResourceProperties) MarshalJSON() ([]byte, error) {
41854	objectMap := make(map[string]interface{})
41855	if srp.OsType != "" {
41856		objectMap["osType"] = srp.OsType
41857	}
41858	if srp.CodePackages != nil {
41859		objectMap["codePackages"] = srp.CodePackages
41860	}
41861	if srp.NetworkRefs != nil {
41862		objectMap["networkRefs"] = srp.NetworkRefs
41863	}
41864	if srp.Diagnostics != nil {
41865		objectMap["diagnostics"] = srp.Diagnostics
41866	}
41867	if srp.Description != nil {
41868		objectMap["description"] = srp.Description
41869	}
41870	if srp.ReplicaCount != nil {
41871		objectMap["replicaCount"] = srp.ReplicaCount
41872	}
41873	if srp.AutoScalingPolicies != nil {
41874		objectMap["autoScalingPolicies"] = srp.AutoScalingPolicies
41875	}
41876	if srp.IdentityRefs != nil {
41877		objectMap["identityRefs"] = srp.IdentityRefs
41878	}
41879	return json.Marshal(objectMap)
41880}
41881
41882// ServicesHealthEvaluation represents health evaluation for services of a certain service type belonging
41883// to an application, containing health evaluations for each unhealthy service that impacted current
41884// aggregated health state. Can be returned when evaluating application health and the aggregated health
41885// state is either Error or Warning.
41886type ServicesHealthEvaluation struct {
41887	// ServiceTypeName - Name of the service type of the services.
41888	ServiceTypeName *string `json:"ServiceTypeName,omitempty"`
41889	// MaxPercentUnhealthyServices - Maximum allowed percentage of unhealthy services from the ServiceTypeHealthPolicy.
41890	MaxPercentUnhealthyServices *int32 `json:"MaxPercentUnhealthyServices,omitempty"`
41891	// TotalCount - Total number of services of the current service type in the application from the health store.
41892	TotalCount *int64 `json:"TotalCount,omitempty"`
41893	// UnhealthyEvaluations - List of unhealthy evaluations that led to the aggregated health state. Includes all the unhealthy ServiceHealthEvaluation that impacted the aggregated health.
41894	UnhealthyEvaluations *[]HealthEvaluationWrapper `json:"UnhealthyEvaluations,omitempty"`
41895	// 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'
41896	AggregatedHealthState HealthState `json:"AggregatedHealthState,omitempty"`
41897	// Description - Description of the health evaluation, which represents a summary of the evaluation process.
41898	Description *string `json:"Description,omitempty"`
41899	// 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'
41900	Kind Kind `json:"Kind,omitempty"`
41901}
41902
41903// MarshalJSON is the custom marshaler for ServicesHealthEvaluation.
41904func (she ServicesHealthEvaluation) MarshalJSON() ([]byte, error) {
41905	she.Kind = KindServices
41906	objectMap := make(map[string]interface{})
41907	if she.ServiceTypeName != nil {
41908		objectMap["ServiceTypeName"] = she.ServiceTypeName
41909	}
41910	if she.MaxPercentUnhealthyServices != nil {
41911		objectMap["MaxPercentUnhealthyServices"] = she.MaxPercentUnhealthyServices
41912	}
41913	if she.TotalCount != nil {
41914		objectMap["TotalCount"] = she.TotalCount
41915	}
41916	if she.UnhealthyEvaluations != nil {
41917		objectMap["UnhealthyEvaluations"] = she.UnhealthyEvaluations
41918	}
41919	if she.AggregatedHealthState != "" {
41920		objectMap["AggregatedHealthState"] = she.AggregatedHealthState
41921	}
41922	if she.Description != nil {
41923		objectMap["Description"] = she.Description
41924	}
41925	if she.Kind != "" {
41926		objectMap["Kind"] = she.Kind
41927	}
41928	return json.Marshal(objectMap)
41929}
41930
41931// AsApplicationHealthEvaluation is the BasicHealthEvaluation implementation for ServicesHealthEvaluation.
41932func (she ServicesHealthEvaluation) AsApplicationHealthEvaluation() (*ApplicationHealthEvaluation, bool) {
41933	return nil, false
41934}
41935
41936// AsApplicationsHealthEvaluation is the BasicHealthEvaluation implementation for ServicesHealthEvaluation.
41937func (she ServicesHealthEvaluation) AsApplicationsHealthEvaluation() (*ApplicationsHealthEvaluation, bool) {
41938	return nil, false
41939}
41940
41941// AsApplicationTypeApplicationsHealthEvaluation is the BasicHealthEvaluation implementation for ServicesHealthEvaluation.
41942func (she ServicesHealthEvaluation) AsApplicationTypeApplicationsHealthEvaluation() (*ApplicationTypeApplicationsHealthEvaluation, bool) {
41943	return nil, false
41944}
41945
41946// AsDeltaNodesCheckHealthEvaluation is the BasicHealthEvaluation implementation for ServicesHealthEvaluation.
41947func (she ServicesHealthEvaluation) AsDeltaNodesCheckHealthEvaluation() (*DeltaNodesCheckHealthEvaluation, bool) {
41948	return nil, false
41949}
41950
41951// AsDeployedApplicationHealthEvaluation is the BasicHealthEvaluation implementation for ServicesHealthEvaluation.
41952func (she ServicesHealthEvaluation) AsDeployedApplicationHealthEvaluation() (*DeployedApplicationHealthEvaluation, bool) {
41953	return nil, false
41954}
41955
41956// AsDeployedApplicationsHealthEvaluation is the BasicHealthEvaluation implementation for ServicesHealthEvaluation.
41957func (she ServicesHealthEvaluation) AsDeployedApplicationsHealthEvaluation() (*DeployedApplicationsHealthEvaluation, bool) {
41958	return nil, false
41959}
41960
41961// AsDeployedServicePackageHealthEvaluation is the BasicHealthEvaluation implementation for ServicesHealthEvaluation.
41962func (she ServicesHealthEvaluation) AsDeployedServicePackageHealthEvaluation() (*DeployedServicePackageHealthEvaluation, bool) {
41963	return nil, false
41964}
41965
41966// AsDeployedServicePackagesHealthEvaluation is the BasicHealthEvaluation implementation for ServicesHealthEvaluation.
41967func (she ServicesHealthEvaluation) AsDeployedServicePackagesHealthEvaluation() (*DeployedServicePackagesHealthEvaluation, bool) {
41968	return nil, false
41969}
41970
41971// AsEventHealthEvaluation is the BasicHealthEvaluation implementation for ServicesHealthEvaluation.
41972func (she ServicesHealthEvaluation) AsEventHealthEvaluation() (*EventHealthEvaluation, bool) {
41973	return nil, false
41974}
41975
41976// AsNodeHealthEvaluation is the BasicHealthEvaluation implementation for ServicesHealthEvaluation.
41977func (she ServicesHealthEvaluation) AsNodeHealthEvaluation() (*NodeHealthEvaluation, bool) {
41978	return nil, false
41979}
41980
41981// AsNodesHealthEvaluation is the BasicHealthEvaluation implementation for ServicesHealthEvaluation.
41982func (she ServicesHealthEvaluation) AsNodesHealthEvaluation() (*NodesHealthEvaluation, bool) {
41983	return nil, false
41984}
41985
41986// AsPartitionHealthEvaluation is the BasicHealthEvaluation implementation for ServicesHealthEvaluation.
41987func (she ServicesHealthEvaluation) AsPartitionHealthEvaluation() (*PartitionHealthEvaluation, bool) {
41988	return nil, false
41989}
41990
41991// AsPartitionsHealthEvaluation is the BasicHealthEvaluation implementation for ServicesHealthEvaluation.
41992func (she ServicesHealthEvaluation) AsPartitionsHealthEvaluation() (*PartitionsHealthEvaluation, bool) {
41993	return nil, false
41994}
41995
41996// AsReplicaHealthEvaluation is the BasicHealthEvaluation implementation for ServicesHealthEvaluation.
41997func (she ServicesHealthEvaluation) AsReplicaHealthEvaluation() (*ReplicaHealthEvaluation, bool) {
41998	return nil, false
41999}
42000
42001// AsReplicasHealthEvaluation is the BasicHealthEvaluation implementation for ServicesHealthEvaluation.
42002func (she ServicesHealthEvaluation) AsReplicasHealthEvaluation() (*ReplicasHealthEvaluation, bool) {
42003	return nil, false
42004}
42005
42006// AsServiceHealthEvaluation is the BasicHealthEvaluation implementation for ServicesHealthEvaluation.
42007func (she ServicesHealthEvaluation) AsServiceHealthEvaluation() (*ServiceHealthEvaluation, bool) {
42008	return nil, false
42009}
42010
42011// AsServicesHealthEvaluation is the BasicHealthEvaluation implementation for ServicesHealthEvaluation.
42012func (she ServicesHealthEvaluation) AsServicesHealthEvaluation() (*ServicesHealthEvaluation, bool) {
42013	return &she, true
42014}
42015
42016// AsSystemApplicationHealthEvaluation is the BasicHealthEvaluation implementation for ServicesHealthEvaluation.
42017func (she ServicesHealthEvaluation) AsSystemApplicationHealthEvaluation() (*SystemApplicationHealthEvaluation, bool) {
42018	return nil, false
42019}
42020
42021// AsUpgradeDomainDeltaNodesCheckHealthEvaluation is the BasicHealthEvaluation implementation for ServicesHealthEvaluation.
42022func (she ServicesHealthEvaluation) AsUpgradeDomainDeltaNodesCheckHealthEvaluation() (*UpgradeDomainDeltaNodesCheckHealthEvaluation, bool) {
42023	return nil, false
42024}
42025
42026// AsUpgradeDomainNodesHealthEvaluation is the BasicHealthEvaluation implementation for ServicesHealthEvaluation.
42027func (she ServicesHealthEvaluation) AsUpgradeDomainNodesHealthEvaluation() (*UpgradeDomainNodesHealthEvaluation, bool) {
42028	return nil, false
42029}
42030
42031// AsHealthEvaluation is the BasicHealthEvaluation implementation for ServicesHealthEvaluation.
42032func (she ServicesHealthEvaluation) AsHealthEvaluation() (*HealthEvaluation, bool) {
42033	return nil, false
42034}
42035
42036// AsBasicHealthEvaluation is the BasicHealthEvaluation implementation for ServicesHealthEvaluation.
42037func (she ServicesHealthEvaluation) AsBasicHealthEvaluation() (BasicHealthEvaluation, bool) {
42038	return &she, true
42039}
42040
42041// BasicServiceTypeDescription describes a service type defined in the service manifest of a provisioned application
42042// type. The properties the ones defined in the service manifest.
42043type BasicServiceTypeDescription interface {
42044	AsStatefulServiceTypeDescription() (*StatefulServiceTypeDescription, bool)
42045	AsStatelessServiceTypeDescription() (*StatelessServiceTypeDescription, bool)
42046	AsServiceTypeDescription() (*ServiceTypeDescription, bool)
42047}
42048
42049// ServiceTypeDescription describes a service type defined in the service manifest of a provisioned application
42050// type. The properties the ones defined in the service manifest.
42051type ServiceTypeDescription struct {
42052	// 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.
42053	IsStateful *bool `json:"IsStateful,omitempty"`
42054	// ServiceTypeName - Name of the service type as specified in the service manifest.
42055	ServiceTypeName *string `json:"ServiceTypeName,omitempty"`
42056	// PlacementConstraints - The placement constraint to be used when instantiating this service in a Service Fabric cluster.
42057	PlacementConstraints *string `json:"PlacementConstraints,omitempty"`
42058	// LoadMetrics - The service load metrics is given as an array of ServiceLoadMetricDescription objects.
42059	LoadMetrics *[]ServiceLoadMetricDescription `json:"LoadMetrics,omitempty"`
42060	// ServicePlacementPolicies - List of service placement policy descriptions.
42061	ServicePlacementPolicies *[]BasicServicePlacementPolicyDescription `json:"ServicePlacementPolicies,omitempty"`
42062	// Extensions - List of service type extensions.
42063	Extensions *[]ServiceTypeExtensionDescription `json:"Extensions,omitempty"`
42064	// Kind - Possible values include: 'KindServiceTypeDescription', 'KindStateful', 'KindStateless'
42065	Kind KindBasicServiceTypeDescription `json:"Kind,omitempty"`
42066}
42067
42068func unmarshalBasicServiceTypeDescription(body []byte) (BasicServiceTypeDescription, error) {
42069	var m map[string]interface{}
42070	err := json.Unmarshal(body, &m)
42071	if err != nil {
42072		return nil, err
42073	}
42074
42075	switch m["Kind"] {
42076	case string(KindStateful):
42077		var sstd StatefulServiceTypeDescription
42078		err := json.Unmarshal(body, &sstd)
42079		return sstd, err
42080	case string(KindStateless):
42081		var sstd StatelessServiceTypeDescription
42082		err := json.Unmarshal(body, &sstd)
42083		return sstd, err
42084	default:
42085		var std ServiceTypeDescription
42086		err := json.Unmarshal(body, &std)
42087		return std, err
42088	}
42089}
42090func unmarshalBasicServiceTypeDescriptionArray(body []byte) ([]BasicServiceTypeDescription, error) {
42091	var rawMessages []*json.RawMessage
42092	err := json.Unmarshal(body, &rawMessages)
42093	if err != nil {
42094		return nil, err
42095	}
42096
42097	stdArray := make([]BasicServiceTypeDescription, len(rawMessages))
42098
42099	for index, rawMessage := range rawMessages {
42100		std, err := unmarshalBasicServiceTypeDescription(*rawMessage)
42101		if err != nil {
42102			return nil, err
42103		}
42104		stdArray[index] = std
42105	}
42106	return stdArray, nil
42107}
42108
42109// MarshalJSON is the custom marshaler for ServiceTypeDescription.
42110func (std ServiceTypeDescription) MarshalJSON() ([]byte, error) {
42111	std.Kind = KindServiceTypeDescription
42112	objectMap := make(map[string]interface{})
42113	if std.IsStateful != nil {
42114		objectMap["IsStateful"] = std.IsStateful
42115	}
42116	if std.ServiceTypeName != nil {
42117		objectMap["ServiceTypeName"] = std.ServiceTypeName
42118	}
42119	if std.PlacementConstraints != nil {
42120		objectMap["PlacementConstraints"] = std.PlacementConstraints
42121	}
42122	if std.LoadMetrics != nil {
42123		objectMap["LoadMetrics"] = std.LoadMetrics
42124	}
42125	if std.ServicePlacementPolicies != nil {
42126		objectMap["ServicePlacementPolicies"] = std.ServicePlacementPolicies
42127	}
42128	if std.Extensions != nil {
42129		objectMap["Extensions"] = std.Extensions
42130	}
42131	if std.Kind != "" {
42132		objectMap["Kind"] = std.Kind
42133	}
42134	return json.Marshal(objectMap)
42135}
42136
42137// AsStatefulServiceTypeDescription is the BasicServiceTypeDescription implementation for ServiceTypeDescription.
42138func (std ServiceTypeDescription) AsStatefulServiceTypeDescription() (*StatefulServiceTypeDescription, bool) {
42139	return nil, false
42140}
42141
42142// AsStatelessServiceTypeDescription is the BasicServiceTypeDescription implementation for ServiceTypeDescription.
42143func (std ServiceTypeDescription) AsStatelessServiceTypeDescription() (*StatelessServiceTypeDescription, bool) {
42144	return nil, false
42145}
42146
42147// AsServiceTypeDescription is the BasicServiceTypeDescription implementation for ServiceTypeDescription.
42148func (std ServiceTypeDescription) AsServiceTypeDescription() (*ServiceTypeDescription, bool) {
42149	return &std, true
42150}
42151
42152// AsBasicServiceTypeDescription is the BasicServiceTypeDescription implementation for ServiceTypeDescription.
42153func (std ServiceTypeDescription) AsBasicServiceTypeDescription() (BasicServiceTypeDescription, bool) {
42154	return &std, true
42155}
42156
42157// UnmarshalJSON is the custom unmarshaler for ServiceTypeDescription struct.
42158func (std *ServiceTypeDescription) UnmarshalJSON(body []byte) error {
42159	var m map[string]*json.RawMessage
42160	err := json.Unmarshal(body, &m)
42161	if err != nil {
42162		return err
42163	}
42164	for k, v := range m {
42165		switch k {
42166		case "IsStateful":
42167			if v != nil {
42168				var isStateful bool
42169				err = json.Unmarshal(*v, &isStateful)
42170				if err != nil {
42171					return err
42172				}
42173				std.IsStateful = &isStateful
42174			}
42175		case "ServiceTypeName":
42176			if v != nil {
42177				var serviceTypeName string
42178				err = json.Unmarshal(*v, &serviceTypeName)
42179				if err != nil {
42180					return err
42181				}
42182				std.ServiceTypeName = &serviceTypeName
42183			}
42184		case "PlacementConstraints":
42185			if v != nil {
42186				var placementConstraints string
42187				err = json.Unmarshal(*v, &placementConstraints)
42188				if err != nil {
42189					return err
42190				}
42191				std.PlacementConstraints = &placementConstraints
42192			}
42193		case "LoadMetrics":
42194			if v != nil {
42195				var loadMetrics []ServiceLoadMetricDescription
42196				err = json.Unmarshal(*v, &loadMetrics)
42197				if err != nil {
42198					return err
42199				}
42200				std.LoadMetrics = &loadMetrics
42201			}
42202		case "ServicePlacementPolicies":
42203			if v != nil {
42204				servicePlacementPolicies, err := unmarshalBasicServicePlacementPolicyDescriptionArray(*v)
42205				if err != nil {
42206					return err
42207				}
42208				std.ServicePlacementPolicies = &servicePlacementPolicies
42209			}
42210		case "Extensions":
42211			if v != nil {
42212				var extensions []ServiceTypeExtensionDescription
42213				err = json.Unmarshal(*v, &extensions)
42214				if err != nil {
42215					return err
42216				}
42217				std.Extensions = &extensions
42218			}
42219		case "Kind":
42220			if v != nil {
42221				var kind KindBasicServiceTypeDescription
42222				err = json.Unmarshal(*v, &kind)
42223				if err != nil {
42224					return err
42225				}
42226				std.Kind = kind
42227			}
42228		}
42229	}
42230
42231	return nil
42232}
42233
42234// ServiceTypeExtensionDescription describes extension of a service type defined in the service manifest.
42235type ServiceTypeExtensionDescription struct {
42236	// Key - The name of the extension.
42237	Key *string `json:"Key,omitempty"`
42238	// Value - The extension value.
42239	Value *string `json:"Value,omitempty"`
42240}
42241
42242// ServiceTypeHealthPolicy represents the health policy used to evaluate the health of services belonging
42243// to a service type.
42244type ServiceTypeHealthPolicy struct {
42245	// MaxPercentUnhealthyPartitionsPerService - The maximum allowed percentage of unhealthy partitions per service. Allowed values are Byte values from zero to 100
42246	// The percentage represents the maximum tolerated percentage of partitions that can be unhealthy before the service is considered in error.
42247	// If the percentage is respected but there is at least one unhealthy partition, the health is evaluated as Warning.
42248	// The percentage is calculated by dividing the number of unhealthy partitions over the total number of partitions in the service.
42249	// The computation rounds up to tolerate one failure on small numbers of partitions. Default percentage is zero.
42250	MaxPercentUnhealthyPartitionsPerService *int32 `json:"MaxPercentUnhealthyPartitionsPerService,omitempty"`
42251	// MaxPercentUnhealthyReplicasPerPartition - The maximum allowed percentage of unhealthy replicas per partition. Allowed values are Byte values from zero to 100.
42252	// The percentage represents the maximum tolerated percentage of replicas that can be unhealthy before the partition is considered in error.
42253	// If the percentage is respected but there is at least one unhealthy replica, the health is evaluated as Warning.
42254	// The percentage is calculated by dividing the number of unhealthy replicas over the total number of replicas in the partition.
42255	// The computation rounds up to tolerate one failure on small numbers of replicas. Default percentage is zero.
42256	MaxPercentUnhealthyReplicasPerPartition *int32 `json:"MaxPercentUnhealthyReplicasPerPartition,omitempty"`
42257	// MaxPercentUnhealthyServices - The maximum allowed percentage of unhealthy services. Allowed values are Byte values from zero to 100.
42258	// The percentage represents the maximum tolerated percentage of services that can be unhealthy before the application is considered in error.
42259	// If the percentage is respected but there is at least one unhealthy service, the health is evaluated as Warning.
42260	// 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.
42261	// The computation rounds up to tolerate one failure on small numbers of services. Default percentage is zero.
42262	MaxPercentUnhealthyServices *int32 `json:"MaxPercentUnhealthyServices,omitempty"`
42263}
42264
42265// ServiceTypeHealthPolicyMapItem defines an item in ServiceTypeHealthPolicyMap.
42266type ServiceTypeHealthPolicyMapItem struct {
42267	// Key - The key of the service type health policy map item. This is the name of the service type.
42268	Key *string `json:"Key,omitempty"`
42269	// Value - The value of the service type health policy map item. This is the ServiceTypeHealthPolicy for this service type.
42270	Value *ServiceTypeHealthPolicy `json:"Value,omitempty"`
42271}
42272
42273// ServiceTypeInfo information about a service type that is defined in a service manifest of a provisioned
42274// application type.
42275type ServiceTypeInfo struct {
42276	autorest.Response `json:"-"`
42277	// ServiceTypeDescription - Describes a service type defined in the service manifest of a provisioned application type. The properties the ones defined in the service manifest.
42278	ServiceTypeDescription BasicServiceTypeDescription `json:"ServiceTypeDescription,omitempty"`
42279	// ServiceManifestName - The name of the service manifest in which this service type is defined.
42280	ServiceManifestName *string `json:"ServiceManifestName,omitempty"`
42281	// ServiceManifestVersion - The version of the service manifest in which this service type is defined.
42282	ServiceManifestVersion *string `json:"ServiceManifestVersion,omitempty"`
42283	// IsServiceGroup - Indicates whether the service is a service group. If it is, the property value is true otherwise false.
42284	IsServiceGroup *bool `json:"IsServiceGroup,omitempty"`
42285}
42286
42287// UnmarshalJSON is the custom unmarshaler for ServiceTypeInfo struct.
42288func (sti *ServiceTypeInfo) UnmarshalJSON(body []byte) error {
42289	var m map[string]*json.RawMessage
42290	err := json.Unmarshal(body, &m)
42291	if err != nil {
42292		return err
42293	}
42294	for k, v := range m {
42295		switch k {
42296		case "ServiceTypeDescription":
42297			if v != nil {
42298				serviceTypeDescription, err := unmarshalBasicServiceTypeDescription(*v)
42299				if err != nil {
42300					return err
42301				}
42302				sti.ServiceTypeDescription = serviceTypeDescription
42303			}
42304		case "ServiceManifestName":
42305			if v != nil {
42306				var serviceManifestName string
42307				err = json.Unmarshal(*v, &serviceManifestName)
42308				if err != nil {
42309					return err
42310				}
42311				sti.ServiceManifestName = &serviceManifestName
42312			}
42313		case "ServiceManifestVersion":
42314			if v != nil {
42315				var serviceManifestVersion string
42316				err = json.Unmarshal(*v, &serviceManifestVersion)
42317				if err != nil {
42318					return err
42319				}
42320				sti.ServiceManifestVersion = &serviceManifestVersion
42321			}
42322		case "IsServiceGroup":
42323			if v != nil {
42324				var isServiceGroup bool
42325				err = json.Unmarshal(*v, &isServiceGroup)
42326				if err != nil {
42327					return err
42328				}
42329				sti.IsServiceGroup = &isServiceGroup
42330			}
42331		}
42332	}
42333
42334	return nil
42335}
42336
42337// ServiceTypeManifest contains the manifest describing a service type registered as part of an application
42338// in a Service Fabric cluster.
42339type ServiceTypeManifest struct {
42340	autorest.Response `json:"-"`
42341	// Manifest - The XML manifest as a string.
42342	Manifest *string `json:"Manifest,omitempty"`
42343}
42344
42345// BasicServiceUpdateDescription a ServiceUpdateDescription contains all of the information necessary to update a
42346// service.
42347type BasicServiceUpdateDescription interface {
42348	AsStatefulServiceUpdateDescription() (*StatefulServiceUpdateDescription, bool)
42349	AsStatelessServiceUpdateDescription() (*StatelessServiceUpdateDescription, bool)
42350	AsServiceUpdateDescription() (*ServiceUpdateDescription, bool)
42351}
42352
42353// ServiceUpdateDescription a ServiceUpdateDescription contains all of the information necessary to update a
42354// service.
42355type ServiceUpdateDescription struct {
42356	// 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.
42357	// This property can be a combination of those flags obtained using bitwise 'OR' operator.
42358	// For example, if the provided value is 6 then the flags for ReplicaRestartWaitDuration (2) and QuorumLossWaitDuration (4) are set.
42359	// - None - Does not indicate any other properties are set. The value is zero.
42360	// - TargetReplicaSetSize/InstanceCount - Indicates whether the TargetReplicaSetSize property (for Stateful services) or the InstanceCount property (for Stateless services) is set. The value is 1.
42361	// - ReplicaRestartWaitDuration - Indicates the ReplicaRestartWaitDuration property is set. The value is  2.
42362	// - QuorumLossWaitDuration - Indicates the QuorumLossWaitDuration property is set. The value is 4.
42363	// - StandByReplicaKeepDuration - Indicates the StandByReplicaKeepDuration property is set. The value is 8.
42364	// - MinReplicaSetSize - Indicates the MinReplicaSetSize property is set. The value is 16.
42365	// - PlacementConstraints - Indicates the PlacementConstraints property is set. The value is 32.
42366	// - PlacementPolicyList - Indicates the ServicePlacementPolicies property is set. The value is 64.
42367	// - Correlation - Indicates the CorrelationScheme property is set. The value is 128.
42368	// - Metrics - Indicates the ServiceLoadMetrics property is set. The value is 256.
42369	// - DefaultMoveCost - Indicates the DefaultMoveCost property is set. The value is 512.
42370	// - ScalingPolicy - Indicates the ScalingPolicies property is set. The value is 1024.
42371	Flags *string `json:"Flags,omitempty"`
42372	// 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)".
42373	PlacementConstraints *string `json:"PlacementConstraints,omitempty"`
42374	// CorrelationScheme - The correlation scheme.
42375	CorrelationScheme *[]ServiceCorrelationDescription `json:"CorrelationScheme,omitempty"`
42376	// LoadMetrics - The service load metrics.
42377	LoadMetrics *[]ServiceLoadMetricDescription `json:"LoadMetrics,omitempty"`
42378	// ServicePlacementPolicies - The service placement policies.
42379	ServicePlacementPolicies *[]BasicServicePlacementPolicyDescription `json:"ServicePlacementPolicies,omitempty"`
42380	// DefaultMoveCost - The move cost for the service. Possible values include: 'Zero', 'Low', 'Medium', 'High'
42381	DefaultMoveCost MoveCost `json:"DefaultMoveCost,omitempty"`
42382	// ScalingPolicies - Scaling policies for this service.
42383	ScalingPolicies *[]ScalingPolicyDescription `json:"ScalingPolicies,omitempty"`
42384	// ServiceKind - Possible values include: 'ServiceKindBasicServiceUpdateDescriptionServiceKindServiceUpdateDescription', 'ServiceKindBasicServiceUpdateDescriptionServiceKindStateful', 'ServiceKindBasicServiceUpdateDescriptionServiceKindStateless'
42385	ServiceKind ServiceKindBasicServiceUpdateDescription `json:"ServiceKind,omitempty"`
42386}
42387
42388func unmarshalBasicServiceUpdateDescription(body []byte) (BasicServiceUpdateDescription, error) {
42389	var m map[string]interface{}
42390	err := json.Unmarshal(body, &m)
42391	if err != nil {
42392		return nil, err
42393	}
42394
42395	switch m["ServiceKind"] {
42396	case string(ServiceKindBasicServiceUpdateDescriptionServiceKindStateful):
42397		var ssud StatefulServiceUpdateDescription
42398		err := json.Unmarshal(body, &ssud)
42399		return ssud, err
42400	case string(ServiceKindBasicServiceUpdateDescriptionServiceKindStateless):
42401		var ssud StatelessServiceUpdateDescription
42402		err := json.Unmarshal(body, &ssud)
42403		return ssud, err
42404	default:
42405		var sud ServiceUpdateDescription
42406		err := json.Unmarshal(body, &sud)
42407		return sud, err
42408	}
42409}
42410func unmarshalBasicServiceUpdateDescriptionArray(body []byte) ([]BasicServiceUpdateDescription, error) {
42411	var rawMessages []*json.RawMessage
42412	err := json.Unmarshal(body, &rawMessages)
42413	if err != nil {
42414		return nil, err
42415	}
42416
42417	sudArray := make([]BasicServiceUpdateDescription, len(rawMessages))
42418
42419	for index, rawMessage := range rawMessages {
42420		sud, err := unmarshalBasicServiceUpdateDescription(*rawMessage)
42421		if err != nil {
42422			return nil, err
42423		}
42424		sudArray[index] = sud
42425	}
42426	return sudArray, nil
42427}
42428
42429// MarshalJSON is the custom marshaler for ServiceUpdateDescription.
42430func (sud ServiceUpdateDescription) MarshalJSON() ([]byte, error) {
42431	sud.ServiceKind = ServiceKindBasicServiceUpdateDescriptionServiceKindServiceUpdateDescription
42432	objectMap := make(map[string]interface{})
42433	if sud.Flags != nil {
42434		objectMap["Flags"] = sud.Flags
42435	}
42436	if sud.PlacementConstraints != nil {
42437		objectMap["PlacementConstraints"] = sud.PlacementConstraints
42438	}
42439	if sud.CorrelationScheme != nil {
42440		objectMap["CorrelationScheme"] = sud.CorrelationScheme
42441	}
42442	if sud.LoadMetrics != nil {
42443		objectMap["LoadMetrics"] = sud.LoadMetrics
42444	}
42445	if sud.ServicePlacementPolicies != nil {
42446		objectMap["ServicePlacementPolicies"] = sud.ServicePlacementPolicies
42447	}
42448	if sud.DefaultMoveCost != "" {
42449		objectMap["DefaultMoveCost"] = sud.DefaultMoveCost
42450	}
42451	if sud.ScalingPolicies != nil {
42452		objectMap["ScalingPolicies"] = sud.ScalingPolicies
42453	}
42454	if sud.ServiceKind != "" {
42455		objectMap["ServiceKind"] = sud.ServiceKind
42456	}
42457	return json.Marshal(objectMap)
42458}
42459
42460// AsStatefulServiceUpdateDescription is the BasicServiceUpdateDescription implementation for ServiceUpdateDescription.
42461func (sud ServiceUpdateDescription) AsStatefulServiceUpdateDescription() (*StatefulServiceUpdateDescription, bool) {
42462	return nil, false
42463}
42464
42465// AsStatelessServiceUpdateDescription is the BasicServiceUpdateDescription implementation for ServiceUpdateDescription.
42466func (sud ServiceUpdateDescription) AsStatelessServiceUpdateDescription() (*StatelessServiceUpdateDescription, bool) {
42467	return nil, false
42468}
42469
42470// AsServiceUpdateDescription is the BasicServiceUpdateDescription implementation for ServiceUpdateDescription.
42471func (sud ServiceUpdateDescription) AsServiceUpdateDescription() (*ServiceUpdateDescription, bool) {
42472	return &sud, true
42473}
42474
42475// AsBasicServiceUpdateDescription is the BasicServiceUpdateDescription implementation for ServiceUpdateDescription.
42476func (sud ServiceUpdateDescription) AsBasicServiceUpdateDescription() (BasicServiceUpdateDescription, bool) {
42477	return &sud, true
42478}
42479
42480// UnmarshalJSON is the custom unmarshaler for ServiceUpdateDescription struct.
42481func (sud *ServiceUpdateDescription) UnmarshalJSON(body []byte) error {
42482	var m map[string]*json.RawMessage
42483	err := json.Unmarshal(body, &m)
42484	if err != nil {
42485		return err
42486	}
42487	for k, v := range m {
42488		switch k {
42489		case "Flags":
42490			if v != nil {
42491				var flags string
42492				err = json.Unmarshal(*v, &flags)
42493				if err != nil {
42494					return err
42495				}
42496				sud.Flags = &flags
42497			}
42498		case "PlacementConstraints":
42499			if v != nil {
42500				var placementConstraints string
42501				err = json.Unmarshal(*v, &placementConstraints)
42502				if err != nil {
42503					return err
42504				}
42505				sud.PlacementConstraints = &placementConstraints
42506			}
42507		case "CorrelationScheme":
42508			if v != nil {
42509				var correlationScheme []ServiceCorrelationDescription
42510				err = json.Unmarshal(*v, &correlationScheme)
42511				if err != nil {
42512					return err
42513				}
42514				sud.CorrelationScheme = &correlationScheme
42515			}
42516		case "LoadMetrics":
42517			if v != nil {
42518				var loadMetrics []ServiceLoadMetricDescription
42519				err = json.Unmarshal(*v, &loadMetrics)
42520				if err != nil {
42521					return err
42522				}
42523				sud.LoadMetrics = &loadMetrics
42524			}
42525		case "ServicePlacementPolicies":
42526			if v != nil {
42527				servicePlacementPolicies, err := unmarshalBasicServicePlacementPolicyDescriptionArray(*v)
42528				if err != nil {
42529					return err
42530				}
42531				sud.ServicePlacementPolicies = &servicePlacementPolicies
42532			}
42533		case "DefaultMoveCost":
42534			if v != nil {
42535				var defaultMoveCost MoveCost
42536				err = json.Unmarshal(*v, &defaultMoveCost)
42537				if err != nil {
42538					return err
42539				}
42540				sud.DefaultMoveCost = defaultMoveCost
42541			}
42542		case "ScalingPolicies":
42543			if v != nil {
42544				var scalingPolicies []ScalingPolicyDescription
42545				err = json.Unmarshal(*v, &scalingPolicies)
42546				if err != nil {
42547					return err
42548				}
42549				sud.ScalingPolicies = &scalingPolicies
42550			}
42551		case "ServiceKind":
42552			if v != nil {
42553				var serviceKind ServiceKindBasicServiceUpdateDescription
42554				err = json.Unmarshal(*v, &serviceKind)
42555				if err != nil {
42556					return err
42557				}
42558				sud.ServiceKind = serviceKind
42559			}
42560		}
42561	}
42562
42563	return nil
42564}
42565
42566// Setting describes a setting for the container. The setting file path can be fetched from environment
42567// variable "Fabric_SettingPath". The path for Windows container is "C:\\secrets". The path for Linux
42568// container is "/var/secrets".
42569type Setting struct {
42570	// Name - The name of the setting.
42571	Name *string `json:"name,omitempty"`
42572	// Value - The value of the setting.
42573	Value *string `json:"value,omitempty"`
42574}
42575
42576// SingletonPartitionInformation information about a partition that is singleton. The services with
42577// singleton partitioning scheme are effectively non-partitioned. They only have one partition.
42578type SingletonPartitionInformation struct {
42579	// 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.
42580	ID *uuid.UUID `json:"Id,omitempty"`
42581	// ServicePartitionKind - Possible values include: 'ServicePartitionKindPartitionInformation', 'ServicePartitionKindInt64Range1', 'ServicePartitionKindNamed1', 'ServicePartitionKindSingleton1'
42582	ServicePartitionKind ServicePartitionKindBasicPartitionInformation `json:"ServicePartitionKind,omitempty"`
42583}
42584
42585// MarshalJSON is the custom marshaler for SingletonPartitionInformation.
42586func (spi SingletonPartitionInformation) MarshalJSON() ([]byte, error) {
42587	spi.ServicePartitionKind = ServicePartitionKindSingleton1
42588	objectMap := make(map[string]interface{})
42589	if spi.ID != nil {
42590		objectMap["Id"] = spi.ID
42591	}
42592	if spi.ServicePartitionKind != "" {
42593		objectMap["ServicePartitionKind"] = spi.ServicePartitionKind
42594	}
42595	return json.Marshal(objectMap)
42596}
42597
42598// AsInt64RangePartitionInformation is the BasicPartitionInformation implementation for SingletonPartitionInformation.
42599func (spi SingletonPartitionInformation) AsInt64RangePartitionInformation() (*Int64RangePartitionInformation, bool) {
42600	return nil, false
42601}
42602
42603// AsNamedPartitionInformation is the BasicPartitionInformation implementation for SingletonPartitionInformation.
42604func (spi SingletonPartitionInformation) AsNamedPartitionInformation() (*NamedPartitionInformation, bool) {
42605	return nil, false
42606}
42607
42608// AsSingletonPartitionInformation is the BasicPartitionInformation implementation for SingletonPartitionInformation.
42609func (spi SingletonPartitionInformation) AsSingletonPartitionInformation() (*SingletonPartitionInformation, bool) {
42610	return &spi, true
42611}
42612
42613// AsPartitionInformation is the BasicPartitionInformation implementation for SingletonPartitionInformation.
42614func (spi SingletonPartitionInformation) AsPartitionInformation() (*PartitionInformation, bool) {
42615	return nil, false
42616}
42617
42618// AsBasicPartitionInformation is the BasicPartitionInformation implementation for SingletonPartitionInformation.
42619func (spi SingletonPartitionInformation) AsBasicPartitionInformation() (BasicPartitionInformation, bool) {
42620	return &spi, true
42621}
42622
42623// SingletonPartitionSchemeDescription describes the partition scheme of a singleton-partitioned, or
42624// non-partitioned service.
42625type SingletonPartitionSchemeDescription struct {
42626	// PartitionScheme - Possible values include: 'PartitionSchemePartitionSchemeDescription', 'PartitionSchemeNamed1', 'PartitionSchemeSingleton1', 'PartitionSchemeUniformInt64Range1'
42627	PartitionScheme PartitionSchemeBasicPartitionSchemeDescription `json:"PartitionScheme,omitempty"`
42628}
42629
42630// MarshalJSON is the custom marshaler for SingletonPartitionSchemeDescription.
42631func (spsd SingletonPartitionSchemeDescription) MarshalJSON() ([]byte, error) {
42632	spsd.PartitionScheme = PartitionSchemeSingleton1
42633	objectMap := make(map[string]interface{})
42634	if spsd.PartitionScheme != "" {
42635		objectMap["PartitionScheme"] = spsd.PartitionScheme
42636	}
42637	return json.Marshal(objectMap)
42638}
42639
42640// AsNamedPartitionSchemeDescription is the BasicPartitionSchemeDescription implementation for SingletonPartitionSchemeDescription.
42641func (spsd SingletonPartitionSchemeDescription) AsNamedPartitionSchemeDescription() (*NamedPartitionSchemeDescription, bool) {
42642	return nil, false
42643}
42644
42645// AsSingletonPartitionSchemeDescription is the BasicPartitionSchemeDescription implementation for SingletonPartitionSchemeDescription.
42646func (spsd SingletonPartitionSchemeDescription) AsSingletonPartitionSchemeDescription() (*SingletonPartitionSchemeDescription, bool) {
42647	return &spsd, true
42648}
42649
42650// AsUniformInt64RangePartitionSchemeDescription is the BasicPartitionSchemeDescription implementation for SingletonPartitionSchemeDescription.
42651func (spsd SingletonPartitionSchemeDescription) AsUniformInt64RangePartitionSchemeDescription() (*UniformInt64RangePartitionSchemeDescription, bool) {
42652	return nil, false
42653}
42654
42655// AsPartitionSchemeDescription is the BasicPartitionSchemeDescription implementation for SingletonPartitionSchemeDescription.
42656func (spsd SingletonPartitionSchemeDescription) AsPartitionSchemeDescription() (*PartitionSchemeDescription, bool) {
42657	return nil, false
42658}
42659
42660// AsBasicPartitionSchemeDescription is the BasicPartitionSchemeDescription implementation for SingletonPartitionSchemeDescription.
42661func (spsd SingletonPartitionSchemeDescription) AsBasicPartitionSchemeDescription() (BasicPartitionSchemeDescription, bool) {
42662	return &spsd, true
42663}
42664
42665// StartClusterUpgradeDescription describes the parameters for starting a cluster upgrade.
42666type StartClusterUpgradeDescription struct {
42667	// CodeVersion - The cluster code version.
42668	CodeVersion *string `json:"CodeVersion,omitempty"`
42669	// ConfigVersion - The cluster configuration version.
42670	ConfigVersion *string `json:"ConfigVersion,omitempty"`
42671	// UpgradeKind - The kind of upgrade out of the following possible values. Possible values include: 'UpgradeKindInvalid', 'UpgradeKindRolling'
42672	UpgradeKind UpgradeKind `json:"UpgradeKind,omitempty"`
42673	// 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'
42674	RollingUpgradeMode UpgradeMode `json:"RollingUpgradeMode,omitempty"`
42675	// 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).
42676	UpgradeReplicaSetCheckTimeoutInSeconds *int64 `json:"UpgradeReplicaSetCheckTimeoutInSeconds,omitempty"`
42677	// 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).
42678	ForceRestart *bool `json:"ForceRestart,omitempty"`
42679	// SortOrder - Defines the order in which an upgrade proceeds through the cluster. Possible values include: 'UpgradeSortOrderInvalid', 'UpgradeSortOrderDefault', 'UpgradeSortOrderNumeric', 'UpgradeSortOrderLexicographical', 'UpgradeSortOrderReverseNumeric', 'UpgradeSortOrderReverseLexicographical'
42680	SortOrder UpgradeSortOrder `json:"SortOrder,omitempty"`
42681	// MonitoringPolicy - Describes the parameters for monitoring an upgrade in Monitored mode.
42682	MonitoringPolicy *MonitoringPolicyDescription `json:"MonitoringPolicy,omitempty"`
42683	// ClusterHealthPolicy - Defines a health policy used to evaluate the health of the cluster or of a cluster node.
42684	ClusterHealthPolicy *ClusterHealthPolicy `json:"ClusterHealthPolicy,omitempty"`
42685	// EnableDeltaHealthEvaluation - When true, enables delta health evaluation rather than absolute health evaluation after completion of each upgrade domain.
42686	EnableDeltaHealthEvaluation *bool `json:"EnableDeltaHealthEvaluation,omitempty"`
42687	// ClusterUpgradeHealthPolicy - Defines a health policy used to evaluate the health of the cluster during a cluster upgrade.
42688	ClusterUpgradeHealthPolicy *ClusterUpgradeHealthPolicyObject `json:"ClusterUpgradeHealthPolicy,omitempty"`
42689	// ApplicationHealthPolicyMap - Defines the application health policy map used to evaluate the health of an application or one of its children entities.
42690	ApplicationHealthPolicyMap *ApplicationHealthPolicies `json:"ApplicationHealthPolicyMap,omitempty"`
42691}
42692
42693// StartedChaosEvent describes a Chaos event that gets generated when Chaos is started.
42694type StartedChaosEvent struct {
42695	// ChaosParameters - Defines all the parameters to configure a Chaos run.
42696	ChaosParameters *ChaosParameters `json:"ChaosParameters,omitempty"`
42697	// TimeStampUtc - The UTC timestamp when this Chaos event was generated.
42698	TimeStampUtc *date.Time `json:"TimeStampUtc,omitempty"`
42699	// Kind - Possible values include: 'KindChaosEvent', 'KindExecutingFaults', 'KindStarted', 'KindStopped', 'KindTestError', 'KindValidationFailed', 'KindWaiting'
42700	Kind KindBasicChaosEvent `json:"Kind,omitempty"`
42701}
42702
42703// MarshalJSON is the custom marshaler for StartedChaosEvent.
42704func (sce StartedChaosEvent) MarshalJSON() ([]byte, error) {
42705	sce.Kind = KindStarted
42706	objectMap := make(map[string]interface{})
42707	if sce.ChaosParameters != nil {
42708		objectMap["ChaosParameters"] = sce.ChaosParameters
42709	}
42710	if sce.TimeStampUtc != nil {
42711		objectMap["TimeStampUtc"] = sce.TimeStampUtc
42712	}
42713	if sce.Kind != "" {
42714		objectMap["Kind"] = sce.Kind
42715	}
42716	return json.Marshal(objectMap)
42717}
42718
42719// AsExecutingFaultsChaosEvent is the BasicChaosEvent implementation for StartedChaosEvent.
42720func (sce StartedChaosEvent) AsExecutingFaultsChaosEvent() (*ExecutingFaultsChaosEvent, bool) {
42721	return nil, false
42722}
42723
42724// AsStartedChaosEvent is the BasicChaosEvent implementation for StartedChaosEvent.
42725func (sce StartedChaosEvent) AsStartedChaosEvent() (*StartedChaosEvent, bool) {
42726	return &sce, true
42727}
42728
42729// AsStoppedChaosEvent is the BasicChaosEvent implementation for StartedChaosEvent.
42730func (sce StartedChaosEvent) AsStoppedChaosEvent() (*StoppedChaosEvent, bool) {
42731	return nil, false
42732}
42733
42734// AsTestErrorChaosEvent is the BasicChaosEvent implementation for StartedChaosEvent.
42735func (sce StartedChaosEvent) AsTestErrorChaosEvent() (*TestErrorChaosEvent, bool) {
42736	return nil, false
42737}
42738
42739// AsValidationFailedChaosEvent is the BasicChaosEvent implementation for StartedChaosEvent.
42740func (sce StartedChaosEvent) AsValidationFailedChaosEvent() (*ValidationFailedChaosEvent, bool) {
42741	return nil, false
42742}
42743
42744// AsWaitingChaosEvent is the BasicChaosEvent implementation for StartedChaosEvent.
42745func (sce StartedChaosEvent) AsWaitingChaosEvent() (*WaitingChaosEvent, bool) {
42746	return nil, false
42747}
42748
42749// AsChaosEvent is the BasicChaosEvent implementation for StartedChaosEvent.
42750func (sce StartedChaosEvent) AsChaosEvent() (*ChaosEvent, bool) {
42751	return nil, false
42752}
42753
42754// AsBasicChaosEvent is the BasicChaosEvent implementation for StartedChaosEvent.
42755func (sce StartedChaosEvent) AsBasicChaosEvent() (BasicChaosEvent, bool) {
42756	return &sce, true
42757}
42758
42759// StatefulReplicaHealthReportExpiredEvent stateful Replica Health Report Expired event.
42760type StatefulReplicaHealthReportExpiredEvent struct {
42761	// ReplicaInstanceID - Id of Replica instance.
42762	ReplicaInstanceID *int64 `json:"ReplicaInstanceId,omitempty"`
42763	// SourceID - Id of report source.
42764	SourceID *string `json:"SourceId,omitempty"`
42765	// Property - Describes the property.
42766	Property *string `json:"Property,omitempty"`
42767	// HealthState - Describes the property health state.
42768	HealthState *string `json:"HealthState,omitempty"`
42769	// TimeToLiveMs - Time to live in milli-seconds.
42770	TimeToLiveMs *int64 `json:"TimeToLiveMs,omitempty"`
42771	// SequenceNumber - Sequence number of report.
42772	SequenceNumber *int64 `json:"SequenceNumber,omitempty"`
42773	// Description - Description of report.
42774	Description *string `json:"Description,omitempty"`
42775	// RemoveWhenExpired - Indicates the removal when it expires.
42776	RemoveWhenExpired *bool `json:"RemoveWhenExpired,omitempty"`
42777	// SourceUtcTimestamp - Source time.
42778	SourceUtcTimestamp *date.Time `json:"SourceUtcTimestamp,omitempty"`
42779	// 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.
42780	PartitionID *uuid.UUID `json:"PartitionId,omitempty"`
42781	// 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.
42782	ReplicaID *int64 `json:"ReplicaId,omitempty"`
42783	// EventInstanceID - The identifier for the FabricEvent instance.
42784	EventInstanceID *uuid.UUID `json:"EventInstanceId,omitempty"`
42785	// Category - The category of event.
42786	Category *string `json:"Category,omitempty"`
42787	// TimeStamp - The time event was logged.
42788	TimeStamp *date.Time `json:"TimeStamp,omitempty"`
42789	// HasCorrelatedEvents - Shows there is existing related events available.
42790	HasCorrelatedEvents *bool `json:"HasCorrelatedEvents,omitempty"`
42791	// 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'
42792	Kind KindBasicFabricEvent `json:"Kind,omitempty"`
42793}
42794
42795// MarshalJSON is the custom marshaler for StatefulReplicaHealthReportExpiredEvent.
42796func (srhree StatefulReplicaHealthReportExpiredEvent) MarshalJSON() ([]byte, error) {
42797	srhree.Kind = KindStatefulReplicaHealthReportExpired
42798	objectMap := make(map[string]interface{})
42799	if srhree.ReplicaInstanceID != nil {
42800		objectMap["ReplicaInstanceId"] = srhree.ReplicaInstanceID
42801	}
42802	if srhree.SourceID != nil {
42803		objectMap["SourceId"] = srhree.SourceID
42804	}
42805	if srhree.Property != nil {
42806		objectMap["Property"] = srhree.Property
42807	}
42808	if srhree.HealthState != nil {
42809		objectMap["HealthState"] = srhree.HealthState
42810	}
42811	if srhree.TimeToLiveMs != nil {
42812		objectMap["TimeToLiveMs"] = srhree.TimeToLiveMs
42813	}
42814	if srhree.SequenceNumber != nil {
42815		objectMap["SequenceNumber"] = srhree.SequenceNumber
42816	}
42817	if srhree.Description != nil {
42818		objectMap["Description"] = srhree.Description
42819	}
42820	if srhree.RemoveWhenExpired != nil {
42821		objectMap["RemoveWhenExpired"] = srhree.RemoveWhenExpired
42822	}
42823	if srhree.SourceUtcTimestamp != nil {
42824		objectMap["SourceUtcTimestamp"] = srhree.SourceUtcTimestamp
42825	}
42826	if srhree.PartitionID != nil {
42827		objectMap["PartitionId"] = srhree.PartitionID
42828	}
42829	if srhree.ReplicaID != nil {
42830		objectMap["ReplicaId"] = srhree.ReplicaID
42831	}
42832	if srhree.EventInstanceID != nil {
42833		objectMap["EventInstanceId"] = srhree.EventInstanceID
42834	}
42835	if srhree.Category != nil {
42836		objectMap["Category"] = srhree.Category
42837	}
42838	if srhree.TimeStamp != nil {
42839		objectMap["TimeStamp"] = srhree.TimeStamp
42840	}
42841	if srhree.HasCorrelatedEvents != nil {
42842		objectMap["HasCorrelatedEvents"] = srhree.HasCorrelatedEvents
42843	}
42844	if srhree.Kind != "" {
42845		objectMap["Kind"] = srhree.Kind
42846	}
42847	return json.Marshal(objectMap)
42848}
42849
42850// AsApplicationEvent is the BasicFabricEvent implementation for StatefulReplicaHealthReportExpiredEvent.
42851func (srhree StatefulReplicaHealthReportExpiredEvent) AsApplicationEvent() (*ApplicationEvent, bool) {
42852	return nil, false
42853}
42854
42855// AsBasicApplicationEvent is the BasicFabricEvent implementation for StatefulReplicaHealthReportExpiredEvent.
42856func (srhree StatefulReplicaHealthReportExpiredEvent) AsBasicApplicationEvent() (BasicApplicationEvent, bool) {
42857	return nil, false
42858}
42859
42860// AsClusterEvent is the BasicFabricEvent implementation for StatefulReplicaHealthReportExpiredEvent.
42861func (srhree StatefulReplicaHealthReportExpiredEvent) AsClusterEvent() (*ClusterEvent, bool) {
42862	return nil, false
42863}
42864
42865// AsBasicClusterEvent is the BasicFabricEvent implementation for StatefulReplicaHealthReportExpiredEvent.
42866func (srhree StatefulReplicaHealthReportExpiredEvent) AsBasicClusterEvent() (BasicClusterEvent, bool) {
42867	return nil, false
42868}
42869
42870// AsContainerInstanceEvent is the BasicFabricEvent implementation for StatefulReplicaHealthReportExpiredEvent.
42871func (srhree StatefulReplicaHealthReportExpiredEvent) AsContainerInstanceEvent() (*ContainerInstanceEvent, bool) {
42872	return nil, false
42873}
42874
42875// AsNodeEvent is the BasicFabricEvent implementation for StatefulReplicaHealthReportExpiredEvent.
42876func (srhree StatefulReplicaHealthReportExpiredEvent) AsNodeEvent() (*NodeEvent, bool) {
42877	return nil, false
42878}
42879
42880// AsBasicNodeEvent is the BasicFabricEvent implementation for StatefulReplicaHealthReportExpiredEvent.
42881func (srhree StatefulReplicaHealthReportExpiredEvent) AsBasicNodeEvent() (BasicNodeEvent, bool) {
42882	return nil, false
42883}
42884
42885// AsPartitionAnalysisEvent is the BasicFabricEvent implementation for StatefulReplicaHealthReportExpiredEvent.
42886func (srhree StatefulReplicaHealthReportExpiredEvent) AsPartitionAnalysisEvent() (*PartitionAnalysisEvent, bool) {
42887	return nil, false
42888}
42889
42890// AsBasicPartitionAnalysisEvent is the BasicFabricEvent implementation for StatefulReplicaHealthReportExpiredEvent.
42891func (srhree StatefulReplicaHealthReportExpiredEvent) AsBasicPartitionAnalysisEvent() (BasicPartitionAnalysisEvent, bool) {
42892	return nil, false
42893}
42894
42895// AsPartitionEvent is the BasicFabricEvent implementation for StatefulReplicaHealthReportExpiredEvent.
42896func (srhree StatefulReplicaHealthReportExpiredEvent) AsPartitionEvent() (*PartitionEvent, bool) {
42897	return nil, false
42898}
42899
42900// AsBasicPartitionEvent is the BasicFabricEvent implementation for StatefulReplicaHealthReportExpiredEvent.
42901func (srhree StatefulReplicaHealthReportExpiredEvent) AsBasicPartitionEvent() (BasicPartitionEvent, bool) {
42902	return nil, false
42903}
42904
42905// AsReplicaEvent is the BasicFabricEvent implementation for StatefulReplicaHealthReportExpiredEvent.
42906func (srhree StatefulReplicaHealthReportExpiredEvent) AsReplicaEvent() (*ReplicaEvent, bool) {
42907	return nil, false
42908}
42909
42910// AsBasicReplicaEvent is the BasicFabricEvent implementation for StatefulReplicaHealthReportExpiredEvent.
42911func (srhree StatefulReplicaHealthReportExpiredEvent) AsBasicReplicaEvent() (BasicReplicaEvent, bool) {
42912	return &srhree, true
42913}
42914
42915// AsServiceEvent is the BasicFabricEvent implementation for StatefulReplicaHealthReportExpiredEvent.
42916func (srhree StatefulReplicaHealthReportExpiredEvent) AsServiceEvent() (*ServiceEvent, bool) {
42917	return nil, false
42918}
42919
42920// AsBasicServiceEvent is the BasicFabricEvent implementation for StatefulReplicaHealthReportExpiredEvent.
42921func (srhree StatefulReplicaHealthReportExpiredEvent) AsBasicServiceEvent() (BasicServiceEvent, bool) {
42922	return nil, false
42923}
42924
42925// AsApplicationCreatedEvent is the BasicFabricEvent implementation for StatefulReplicaHealthReportExpiredEvent.
42926func (srhree StatefulReplicaHealthReportExpiredEvent) AsApplicationCreatedEvent() (*ApplicationCreatedEvent, bool) {
42927	return nil, false
42928}
42929
42930// AsApplicationDeletedEvent is the BasicFabricEvent implementation for StatefulReplicaHealthReportExpiredEvent.
42931func (srhree StatefulReplicaHealthReportExpiredEvent) AsApplicationDeletedEvent() (*ApplicationDeletedEvent, bool) {
42932	return nil, false
42933}
42934
42935// AsApplicationNewHealthReportEvent is the BasicFabricEvent implementation for StatefulReplicaHealthReportExpiredEvent.
42936func (srhree StatefulReplicaHealthReportExpiredEvent) AsApplicationNewHealthReportEvent() (*ApplicationNewHealthReportEvent, bool) {
42937	return nil, false
42938}
42939
42940// AsApplicationHealthReportExpiredEvent is the BasicFabricEvent implementation for StatefulReplicaHealthReportExpiredEvent.
42941func (srhree StatefulReplicaHealthReportExpiredEvent) AsApplicationHealthReportExpiredEvent() (*ApplicationHealthReportExpiredEvent, bool) {
42942	return nil, false
42943}
42944
42945// AsApplicationUpgradeCompletedEvent is the BasicFabricEvent implementation for StatefulReplicaHealthReportExpiredEvent.
42946func (srhree StatefulReplicaHealthReportExpiredEvent) AsApplicationUpgradeCompletedEvent() (*ApplicationUpgradeCompletedEvent, bool) {
42947	return nil, false
42948}
42949
42950// AsApplicationUpgradeDomainCompletedEvent is the BasicFabricEvent implementation for StatefulReplicaHealthReportExpiredEvent.
42951func (srhree StatefulReplicaHealthReportExpiredEvent) AsApplicationUpgradeDomainCompletedEvent() (*ApplicationUpgradeDomainCompletedEvent, bool) {
42952	return nil, false
42953}
42954
42955// AsApplicationUpgradeRollbackCompletedEvent is the BasicFabricEvent implementation for StatefulReplicaHealthReportExpiredEvent.
42956func (srhree StatefulReplicaHealthReportExpiredEvent) AsApplicationUpgradeRollbackCompletedEvent() (*ApplicationUpgradeRollbackCompletedEvent, bool) {
42957	return nil, false
42958}
42959
42960// AsApplicationUpgradeRollbackStartedEvent is the BasicFabricEvent implementation for StatefulReplicaHealthReportExpiredEvent.
42961func (srhree StatefulReplicaHealthReportExpiredEvent) AsApplicationUpgradeRollbackStartedEvent() (*ApplicationUpgradeRollbackStartedEvent, bool) {
42962	return nil, false
42963}
42964
42965// AsApplicationUpgradeStartedEvent is the BasicFabricEvent implementation for StatefulReplicaHealthReportExpiredEvent.
42966func (srhree StatefulReplicaHealthReportExpiredEvent) AsApplicationUpgradeStartedEvent() (*ApplicationUpgradeStartedEvent, bool) {
42967	return nil, false
42968}
42969
42970// AsDeployedApplicationNewHealthReportEvent is the BasicFabricEvent implementation for StatefulReplicaHealthReportExpiredEvent.
42971func (srhree StatefulReplicaHealthReportExpiredEvent) AsDeployedApplicationNewHealthReportEvent() (*DeployedApplicationNewHealthReportEvent, bool) {
42972	return nil, false
42973}
42974
42975// AsDeployedApplicationHealthReportExpiredEvent is the BasicFabricEvent implementation for StatefulReplicaHealthReportExpiredEvent.
42976func (srhree StatefulReplicaHealthReportExpiredEvent) AsDeployedApplicationHealthReportExpiredEvent() (*DeployedApplicationHealthReportExpiredEvent, bool) {
42977	return nil, false
42978}
42979
42980// AsApplicationProcessExitedEvent is the BasicFabricEvent implementation for StatefulReplicaHealthReportExpiredEvent.
42981func (srhree StatefulReplicaHealthReportExpiredEvent) AsApplicationProcessExitedEvent() (*ApplicationProcessExitedEvent, bool) {
42982	return nil, false
42983}
42984
42985// AsApplicationContainerInstanceExitedEvent is the BasicFabricEvent implementation for StatefulReplicaHealthReportExpiredEvent.
42986func (srhree StatefulReplicaHealthReportExpiredEvent) AsApplicationContainerInstanceExitedEvent() (*ApplicationContainerInstanceExitedEvent, bool) {
42987	return nil, false
42988}
42989
42990// AsNodeAbortedEvent is the BasicFabricEvent implementation for StatefulReplicaHealthReportExpiredEvent.
42991func (srhree StatefulReplicaHealthReportExpiredEvent) AsNodeAbortedEvent() (*NodeAbortedEvent, bool) {
42992	return nil, false
42993}
42994
42995// AsNodeAddedToClusterEvent is the BasicFabricEvent implementation for StatefulReplicaHealthReportExpiredEvent.
42996func (srhree StatefulReplicaHealthReportExpiredEvent) AsNodeAddedToClusterEvent() (*NodeAddedToClusterEvent, bool) {
42997	return nil, false
42998}
42999
43000// AsNodeClosedEvent is the BasicFabricEvent implementation for StatefulReplicaHealthReportExpiredEvent.
43001func (srhree StatefulReplicaHealthReportExpiredEvent) AsNodeClosedEvent() (*NodeClosedEvent, bool) {
43002	return nil, false
43003}
43004
43005// AsNodeDeactivateCompletedEvent is the BasicFabricEvent implementation for StatefulReplicaHealthReportExpiredEvent.
43006func (srhree StatefulReplicaHealthReportExpiredEvent) AsNodeDeactivateCompletedEvent() (*NodeDeactivateCompletedEvent, bool) {
43007	return nil, false
43008}
43009
43010// AsNodeDeactivateStartedEvent is the BasicFabricEvent implementation for StatefulReplicaHealthReportExpiredEvent.
43011func (srhree StatefulReplicaHealthReportExpiredEvent) AsNodeDeactivateStartedEvent() (*NodeDeactivateStartedEvent, bool) {
43012	return nil, false
43013}
43014
43015// AsNodeDownEvent is the BasicFabricEvent implementation for StatefulReplicaHealthReportExpiredEvent.
43016func (srhree StatefulReplicaHealthReportExpiredEvent) AsNodeDownEvent() (*NodeDownEvent, bool) {
43017	return nil, false
43018}
43019
43020// AsNodeNewHealthReportEvent is the BasicFabricEvent implementation for StatefulReplicaHealthReportExpiredEvent.
43021func (srhree StatefulReplicaHealthReportExpiredEvent) AsNodeNewHealthReportEvent() (*NodeNewHealthReportEvent, bool) {
43022	return nil, false
43023}
43024
43025// AsNodeHealthReportExpiredEvent is the BasicFabricEvent implementation for StatefulReplicaHealthReportExpiredEvent.
43026func (srhree StatefulReplicaHealthReportExpiredEvent) AsNodeHealthReportExpiredEvent() (*NodeHealthReportExpiredEvent, bool) {
43027	return nil, false
43028}
43029
43030// AsNodeOpenSucceededEvent is the BasicFabricEvent implementation for StatefulReplicaHealthReportExpiredEvent.
43031func (srhree StatefulReplicaHealthReportExpiredEvent) AsNodeOpenSucceededEvent() (*NodeOpenSucceededEvent, bool) {
43032	return nil, false
43033}
43034
43035// AsNodeOpenFailedEvent is the BasicFabricEvent implementation for StatefulReplicaHealthReportExpiredEvent.
43036func (srhree StatefulReplicaHealthReportExpiredEvent) AsNodeOpenFailedEvent() (*NodeOpenFailedEvent, bool) {
43037	return nil, false
43038}
43039
43040// AsNodeRemovedFromClusterEvent is the BasicFabricEvent implementation for StatefulReplicaHealthReportExpiredEvent.
43041func (srhree StatefulReplicaHealthReportExpiredEvent) AsNodeRemovedFromClusterEvent() (*NodeRemovedFromClusterEvent, bool) {
43042	return nil, false
43043}
43044
43045// AsNodeUpEvent is the BasicFabricEvent implementation for StatefulReplicaHealthReportExpiredEvent.
43046func (srhree StatefulReplicaHealthReportExpiredEvent) AsNodeUpEvent() (*NodeUpEvent, bool) {
43047	return nil, false
43048}
43049
43050// AsPartitionNewHealthReportEvent is the BasicFabricEvent implementation for StatefulReplicaHealthReportExpiredEvent.
43051func (srhree StatefulReplicaHealthReportExpiredEvent) AsPartitionNewHealthReportEvent() (*PartitionNewHealthReportEvent, bool) {
43052	return nil, false
43053}
43054
43055// AsPartitionHealthReportExpiredEvent is the BasicFabricEvent implementation for StatefulReplicaHealthReportExpiredEvent.
43056func (srhree StatefulReplicaHealthReportExpiredEvent) AsPartitionHealthReportExpiredEvent() (*PartitionHealthReportExpiredEvent, bool) {
43057	return nil, false
43058}
43059
43060// AsPartitionReconfiguredEvent is the BasicFabricEvent implementation for StatefulReplicaHealthReportExpiredEvent.
43061func (srhree StatefulReplicaHealthReportExpiredEvent) AsPartitionReconfiguredEvent() (*PartitionReconfiguredEvent, bool) {
43062	return nil, false
43063}
43064
43065// AsPartitionPrimaryMoveAnalysisEvent is the BasicFabricEvent implementation for StatefulReplicaHealthReportExpiredEvent.
43066func (srhree StatefulReplicaHealthReportExpiredEvent) AsPartitionPrimaryMoveAnalysisEvent() (*PartitionPrimaryMoveAnalysisEvent, bool) {
43067	return nil, false
43068}
43069
43070// AsServiceCreatedEvent is the BasicFabricEvent implementation for StatefulReplicaHealthReportExpiredEvent.
43071func (srhree StatefulReplicaHealthReportExpiredEvent) AsServiceCreatedEvent() (*ServiceCreatedEvent, bool) {
43072	return nil, false
43073}
43074
43075// AsServiceDeletedEvent is the BasicFabricEvent implementation for StatefulReplicaHealthReportExpiredEvent.
43076func (srhree StatefulReplicaHealthReportExpiredEvent) AsServiceDeletedEvent() (*ServiceDeletedEvent, bool) {
43077	return nil, false
43078}
43079
43080// AsServiceNewHealthReportEvent is the BasicFabricEvent implementation for StatefulReplicaHealthReportExpiredEvent.
43081func (srhree StatefulReplicaHealthReportExpiredEvent) AsServiceNewHealthReportEvent() (*ServiceNewHealthReportEvent, bool) {
43082	return nil, false
43083}
43084
43085// AsServiceHealthReportExpiredEvent is the BasicFabricEvent implementation for StatefulReplicaHealthReportExpiredEvent.
43086func (srhree StatefulReplicaHealthReportExpiredEvent) AsServiceHealthReportExpiredEvent() (*ServiceHealthReportExpiredEvent, bool) {
43087	return nil, false
43088}
43089
43090// AsDeployedServicePackageNewHealthReportEvent is the BasicFabricEvent implementation for StatefulReplicaHealthReportExpiredEvent.
43091func (srhree StatefulReplicaHealthReportExpiredEvent) AsDeployedServicePackageNewHealthReportEvent() (*DeployedServicePackageNewHealthReportEvent, bool) {
43092	return nil, false
43093}
43094
43095// AsDeployedServicePackageHealthReportExpiredEvent is the BasicFabricEvent implementation for StatefulReplicaHealthReportExpiredEvent.
43096func (srhree StatefulReplicaHealthReportExpiredEvent) AsDeployedServicePackageHealthReportExpiredEvent() (*DeployedServicePackageHealthReportExpiredEvent, bool) {
43097	return nil, false
43098}
43099
43100// AsStatefulReplicaNewHealthReportEvent is the BasicFabricEvent implementation for StatefulReplicaHealthReportExpiredEvent.
43101func (srhree StatefulReplicaHealthReportExpiredEvent) AsStatefulReplicaNewHealthReportEvent() (*StatefulReplicaNewHealthReportEvent, bool) {
43102	return nil, false
43103}
43104
43105// AsStatefulReplicaHealthReportExpiredEvent is the BasicFabricEvent implementation for StatefulReplicaHealthReportExpiredEvent.
43106func (srhree StatefulReplicaHealthReportExpiredEvent) AsStatefulReplicaHealthReportExpiredEvent() (*StatefulReplicaHealthReportExpiredEvent, bool) {
43107	return &srhree, true
43108}
43109
43110// AsStatelessReplicaNewHealthReportEvent is the BasicFabricEvent implementation for StatefulReplicaHealthReportExpiredEvent.
43111func (srhree StatefulReplicaHealthReportExpiredEvent) AsStatelessReplicaNewHealthReportEvent() (*StatelessReplicaNewHealthReportEvent, bool) {
43112	return nil, false
43113}
43114
43115// AsStatelessReplicaHealthReportExpiredEvent is the BasicFabricEvent implementation for StatefulReplicaHealthReportExpiredEvent.
43116func (srhree StatefulReplicaHealthReportExpiredEvent) AsStatelessReplicaHealthReportExpiredEvent() (*StatelessReplicaHealthReportExpiredEvent, bool) {
43117	return nil, false
43118}
43119
43120// AsClusterNewHealthReportEvent is the BasicFabricEvent implementation for StatefulReplicaHealthReportExpiredEvent.
43121func (srhree StatefulReplicaHealthReportExpiredEvent) AsClusterNewHealthReportEvent() (*ClusterNewHealthReportEvent, bool) {
43122	return nil, false
43123}
43124
43125// AsClusterHealthReportExpiredEvent is the BasicFabricEvent implementation for StatefulReplicaHealthReportExpiredEvent.
43126func (srhree StatefulReplicaHealthReportExpiredEvent) AsClusterHealthReportExpiredEvent() (*ClusterHealthReportExpiredEvent, bool) {
43127	return nil, false
43128}
43129
43130// AsClusterUpgradeCompletedEvent is the BasicFabricEvent implementation for StatefulReplicaHealthReportExpiredEvent.
43131func (srhree StatefulReplicaHealthReportExpiredEvent) AsClusterUpgradeCompletedEvent() (*ClusterUpgradeCompletedEvent, bool) {
43132	return nil, false
43133}
43134
43135// AsClusterUpgradeDomainCompletedEvent is the BasicFabricEvent implementation for StatefulReplicaHealthReportExpiredEvent.
43136func (srhree StatefulReplicaHealthReportExpiredEvent) AsClusterUpgradeDomainCompletedEvent() (*ClusterUpgradeDomainCompletedEvent, bool) {
43137	return nil, false
43138}
43139
43140// AsClusterUpgradeRollbackCompletedEvent is the BasicFabricEvent implementation for StatefulReplicaHealthReportExpiredEvent.
43141func (srhree StatefulReplicaHealthReportExpiredEvent) AsClusterUpgradeRollbackCompletedEvent() (*ClusterUpgradeRollbackCompletedEvent, bool) {
43142	return nil, false
43143}
43144
43145// AsClusterUpgradeRollbackStartedEvent is the BasicFabricEvent implementation for StatefulReplicaHealthReportExpiredEvent.
43146func (srhree StatefulReplicaHealthReportExpiredEvent) AsClusterUpgradeRollbackStartedEvent() (*ClusterUpgradeRollbackStartedEvent, bool) {
43147	return nil, false
43148}
43149
43150// AsClusterUpgradeStartedEvent is the BasicFabricEvent implementation for StatefulReplicaHealthReportExpiredEvent.
43151func (srhree StatefulReplicaHealthReportExpiredEvent) AsClusterUpgradeStartedEvent() (*ClusterUpgradeStartedEvent, bool) {
43152	return nil, false
43153}
43154
43155// AsChaosStoppedEvent is the BasicFabricEvent implementation for StatefulReplicaHealthReportExpiredEvent.
43156func (srhree StatefulReplicaHealthReportExpiredEvent) AsChaosStoppedEvent() (*ChaosStoppedEvent, bool) {
43157	return nil, false
43158}
43159
43160// AsChaosStartedEvent is the BasicFabricEvent implementation for StatefulReplicaHealthReportExpiredEvent.
43161func (srhree StatefulReplicaHealthReportExpiredEvent) AsChaosStartedEvent() (*ChaosStartedEvent, bool) {
43162	return nil, false
43163}
43164
43165// AsChaosCodePackageRestartScheduledEvent is the BasicFabricEvent implementation for StatefulReplicaHealthReportExpiredEvent.
43166func (srhree StatefulReplicaHealthReportExpiredEvent) AsChaosCodePackageRestartScheduledEvent() (*ChaosCodePackageRestartScheduledEvent, bool) {
43167	return nil, false
43168}
43169
43170// AsChaosReplicaRemovalScheduledEvent is the BasicFabricEvent implementation for StatefulReplicaHealthReportExpiredEvent.
43171func (srhree StatefulReplicaHealthReportExpiredEvent) AsChaosReplicaRemovalScheduledEvent() (*ChaosReplicaRemovalScheduledEvent, bool) {
43172	return nil, false
43173}
43174
43175// AsChaosPartitionSecondaryMoveScheduledEvent is the BasicFabricEvent implementation for StatefulReplicaHealthReportExpiredEvent.
43176func (srhree StatefulReplicaHealthReportExpiredEvent) AsChaosPartitionSecondaryMoveScheduledEvent() (*ChaosPartitionSecondaryMoveScheduledEvent, bool) {
43177	return nil, false
43178}
43179
43180// AsChaosPartitionPrimaryMoveScheduledEvent is the BasicFabricEvent implementation for StatefulReplicaHealthReportExpiredEvent.
43181func (srhree StatefulReplicaHealthReportExpiredEvent) AsChaosPartitionPrimaryMoveScheduledEvent() (*ChaosPartitionPrimaryMoveScheduledEvent, bool) {
43182	return nil, false
43183}
43184
43185// AsChaosReplicaRestartScheduledEvent is the BasicFabricEvent implementation for StatefulReplicaHealthReportExpiredEvent.
43186func (srhree StatefulReplicaHealthReportExpiredEvent) AsChaosReplicaRestartScheduledEvent() (*ChaosReplicaRestartScheduledEvent, bool) {
43187	return nil, false
43188}
43189
43190// AsChaosNodeRestartScheduledEvent is the BasicFabricEvent implementation for StatefulReplicaHealthReportExpiredEvent.
43191func (srhree StatefulReplicaHealthReportExpiredEvent) AsChaosNodeRestartScheduledEvent() (*ChaosNodeRestartScheduledEvent, bool) {
43192	return nil, false
43193}
43194
43195// AsFabricEvent is the BasicFabricEvent implementation for StatefulReplicaHealthReportExpiredEvent.
43196func (srhree StatefulReplicaHealthReportExpiredEvent) AsFabricEvent() (*FabricEvent, bool) {
43197	return nil, false
43198}
43199
43200// AsBasicFabricEvent is the BasicFabricEvent implementation for StatefulReplicaHealthReportExpiredEvent.
43201func (srhree StatefulReplicaHealthReportExpiredEvent) AsBasicFabricEvent() (BasicFabricEvent, bool) {
43202	return &srhree, true
43203}
43204
43205// StatefulReplicaNewHealthReportEvent stateful Replica Health Report Created event.
43206type StatefulReplicaNewHealthReportEvent struct {
43207	// ReplicaInstanceID - Id of Replica instance.
43208	ReplicaInstanceID *int64 `json:"ReplicaInstanceId,omitempty"`
43209	// SourceID - Id of report source.
43210	SourceID *string `json:"SourceId,omitempty"`
43211	// Property - Describes the property.
43212	Property *string `json:"Property,omitempty"`
43213	// HealthState - Describes the property health state.
43214	HealthState *string `json:"HealthState,omitempty"`
43215	// TimeToLiveMs - Time to live in milli-seconds.
43216	TimeToLiveMs *int64 `json:"TimeToLiveMs,omitempty"`
43217	// SequenceNumber - Sequence number of report.
43218	SequenceNumber *int64 `json:"SequenceNumber,omitempty"`
43219	// Description - Description of report.
43220	Description *string `json:"Description,omitempty"`
43221	// RemoveWhenExpired - Indicates the removal when it expires.
43222	RemoveWhenExpired *bool `json:"RemoveWhenExpired,omitempty"`
43223	// SourceUtcTimestamp - Source time.
43224	SourceUtcTimestamp *date.Time `json:"SourceUtcTimestamp,omitempty"`
43225	// 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.
43226	PartitionID *uuid.UUID `json:"PartitionId,omitempty"`
43227	// 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.
43228	ReplicaID *int64 `json:"ReplicaId,omitempty"`
43229	// EventInstanceID - The identifier for the FabricEvent instance.
43230	EventInstanceID *uuid.UUID `json:"EventInstanceId,omitempty"`
43231	// Category - The category of event.
43232	Category *string `json:"Category,omitempty"`
43233	// TimeStamp - The time event was logged.
43234	TimeStamp *date.Time `json:"TimeStamp,omitempty"`
43235	// HasCorrelatedEvents - Shows there is existing related events available.
43236	HasCorrelatedEvents *bool `json:"HasCorrelatedEvents,omitempty"`
43237	// 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'
43238	Kind KindBasicFabricEvent `json:"Kind,omitempty"`
43239}
43240
43241// MarshalJSON is the custom marshaler for StatefulReplicaNewHealthReportEvent.
43242func (srnhre StatefulReplicaNewHealthReportEvent) MarshalJSON() ([]byte, error) {
43243	srnhre.Kind = KindStatefulReplicaNewHealthReport
43244	objectMap := make(map[string]interface{})
43245	if srnhre.ReplicaInstanceID != nil {
43246		objectMap["ReplicaInstanceId"] = srnhre.ReplicaInstanceID
43247	}
43248	if srnhre.SourceID != nil {
43249		objectMap["SourceId"] = srnhre.SourceID
43250	}
43251	if srnhre.Property != nil {
43252		objectMap["Property"] = srnhre.Property
43253	}
43254	if srnhre.HealthState != nil {
43255		objectMap["HealthState"] = srnhre.HealthState
43256	}
43257	if srnhre.TimeToLiveMs != nil {
43258		objectMap["TimeToLiveMs"] = srnhre.TimeToLiveMs
43259	}
43260	if srnhre.SequenceNumber != nil {
43261		objectMap["SequenceNumber"] = srnhre.SequenceNumber
43262	}
43263	if srnhre.Description != nil {
43264		objectMap["Description"] = srnhre.Description
43265	}
43266	if srnhre.RemoveWhenExpired != nil {
43267		objectMap["RemoveWhenExpired"] = srnhre.RemoveWhenExpired
43268	}
43269	if srnhre.SourceUtcTimestamp != nil {
43270		objectMap["SourceUtcTimestamp"] = srnhre.SourceUtcTimestamp
43271	}
43272	if srnhre.PartitionID != nil {
43273		objectMap["PartitionId"] = srnhre.PartitionID
43274	}
43275	if srnhre.ReplicaID != nil {
43276		objectMap["ReplicaId"] = srnhre.ReplicaID
43277	}
43278	if srnhre.EventInstanceID != nil {
43279		objectMap["EventInstanceId"] = srnhre.EventInstanceID
43280	}
43281	if srnhre.Category != nil {
43282		objectMap["Category"] = srnhre.Category
43283	}
43284	if srnhre.TimeStamp != nil {
43285		objectMap["TimeStamp"] = srnhre.TimeStamp
43286	}
43287	if srnhre.HasCorrelatedEvents != nil {
43288		objectMap["HasCorrelatedEvents"] = srnhre.HasCorrelatedEvents
43289	}
43290	if srnhre.Kind != "" {
43291		objectMap["Kind"] = srnhre.Kind
43292	}
43293	return json.Marshal(objectMap)
43294}
43295
43296// AsApplicationEvent is the BasicFabricEvent implementation for StatefulReplicaNewHealthReportEvent.
43297func (srnhre StatefulReplicaNewHealthReportEvent) AsApplicationEvent() (*ApplicationEvent, bool) {
43298	return nil, false
43299}
43300
43301// AsBasicApplicationEvent is the BasicFabricEvent implementation for StatefulReplicaNewHealthReportEvent.
43302func (srnhre StatefulReplicaNewHealthReportEvent) AsBasicApplicationEvent() (BasicApplicationEvent, bool) {
43303	return nil, false
43304}
43305
43306// AsClusterEvent is the BasicFabricEvent implementation for StatefulReplicaNewHealthReportEvent.
43307func (srnhre StatefulReplicaNewHealthReportEvent) AsClusterEvent() (*ClusterEvent, bool) {
43308	return nil, false
43309}
43310
43311// AsBasicClusterEvent is the BasicFabricEvent implementation for StatefulReplicaNewHealthReportEvent.
43312func (srnhre StatefulReplicaNewHealthReportEvent) AsBasicClusterEvent() (BasicClusterEvent, bool) {
43313	return nil, false
43314}
43315
43316// AsContainerInstanceEvent is the BasicFabricEvent implementation for StatefulReplicaNewHealthReportEvent.
43317func (srnhre StatefulReplicaNewHealthReportEvent) AsContainerInstanceEvent() (*ContainerInstanceEvent, bool) {
43318	return nil, false
43319}
43320
43321// AsNodeEvent is the BasicFabricEvent implementation for StatefulReplicaNewHealthReportEvent.
43322func (srnhre StatefulReplicaNewHealthReportEvent) AsNodeEvent() (*NodeEvent, bool) {
43323	return nil, false
43324}
43325
43326// AsBasicNodeEvent is the BasicFabricEvent implementation for StatefulReplicaNewHealthReportEvent.
43327func (srnhre StatefulReplicaNewHealthReportEvent) AsBasicNodeEvent() (BasicNodeEvent, bool) {
43328	return nil, false
43329}
43330
43331// AsPartitionAnalysisEvent is the BasicFabricEvent implementation for StatefulReplicaNewHealthReportEvent.
43332func (srnhre StatefulReplicaNewHealthReportEvent) AsPartitionAnalysisEvent() (*PartitionAnalysisEvent, bool) {
43333	return nil, false
43334}
43335
43336// AsBasicPartitionAnalysisEvent is the BasicFabricEvent implementation for StatefulReplicaNewHealthReportEvent.
43337func (srnhre StatefulReplicaNewHealthReportEvent) AsBasicPartitionAnalysisEvent() (BasicPartitionAnalysisEvent, bool) {
43338	return nil, false
43339}
43340
43341// AsPartitionEvent is the BasicFabricEvent implementation for StatefulReplicaNewHealthReportEvent.
43342func (srnhre StatefulReplicaNewHealthReportEvent) AsPartitionEvent() (*PartitionEvent, bool) {
43343	return nil, false
43344}
43345
43346// AsBasicPartitionEvent is the BasicFabricEvent implementation for StatefulReplicaNewHealthReportEvent.
43347func (srnhre StatefulReplicaNewHealthReportEvent) AsBasicPartitionEvent() (BasicPartitionEvent, bool) {
43348	return nil, false
43349}
43350
43351// AsReplicaEvent is the BasicFabricEvent implementation for StatefulReplicaNewHealthReportEvent.
43352func (srnhre StatefulReplicaNewHealthReportEvent) AsReplicaEvent() (*ReplicaEvent, bool) {
43353	return nil, false
43354}
43355
43356// AsBasicReplicaEvent is the BasicFabricEvent implementation for StatefulReplicaNewHealthReportEvent.
43357func (srnhre StatefulReplicaNewHealthReportEvent) AsBasicReplicaEvent() (BasicReplicaEvent, bool) {
43358	return &srnhre, true
43359}
43360
43361// AsServiceEvent is the BasicFabricEvent implementation for StatefulReplicaNewHealthReportEvent.
43362func (srnhre StatefulReplicaNewHealthReportEvent) AsServiceEvent() (*ServiceEvent, bool) {
43363	return nil, false
43364}
43365
43366// AsBasicServiceEvent is the BasicFabricEvent implementation for StatefulReplicaNewHealthReportEvent.
43367func (srnhre StatefulReplicaNewHealthReportEvent) AsBasicServiceEvent() (BasicServiceEvent, bool) {
43368	return nil, false
43369}
43370
43371// AsApplicationCreatedEvent is the BasicFabricEvent implementation for StatefulReplicaNewHealthReportEvent.
43372func (srnhre StatefulReplicaNewHealthReportEvent) AsApplicationCreatedEvent() (*ApplicationCreatedEvent, bool) {
43373	return nil, false
43374}
43375
43376// AsApplicationDeletedEvent is the BasicFabricEvent implementation for StatefulReplicaNewHealthReportEvent.
43377func (srnhre StatefulReplicaNewHealthReportEvent) AsApplicationDeletedEvent() (*ApplicationDeletedEvent, bool) {
43378	return nil, false
43379}
43380
43381// AsApplicationNewHealthReportEvent is the BasicFabricEvent implementation for StatefulReplicaNewHealthReportEvent.
43382func (srnhre StatefulReplicaNewHealthReportEvent) AsApplicationNewHealthReportEvent() (*ApplicationNewHealthReportEvent, bool) {
43383	return nil, false
43384}
43385
43386// AsApplicationHealthReportExpiredEvent is the BasicFabricEvent implementation for StatefulReplicaNewHealthReportEvent.
43387func (srnhre StatefulReplicaNewHealthReportEvent) AsApplicationHealthReportExpiredEvent() (*ApplicationHealthReportExpiredEvent, bool) {
43388	return nil, false
43389}
43390
43391// AsApplicationUpgradeCompletedEvent is the BasicFabricEvent implementation for StatefulReplicaNewHealthReportEvent.
43392func (srnhre StatefulReplicaNewHealthReportEvent) AsApplicationUpgradeCompletedEvent() (*ApplicationUpgradeCompletedEvent, bool) {
43393	return nil, false
43394}
43395
43396// AsApplicationUpgradeDomainCompletedEvent is the BasicFabricEvent implementation for StatefulReplicaNewHealthReportEvent.
43397func (srnhre StatefulReplicaNewHealthReportEvent) AsApplicationUpgradeDomainCompletedEvent() (*ApplicationUpgradeDomainCompletedEvent, bool) {
43398	return nil, false
43399}
43400
43401// AsApplicationUpgradeRollbackCompletedEvent is the BasicFabricEvent implementation for StatefulReplicaNewHealthReportEvent.
43402func (srnhre StatefulReplicaNewHealthReportEvent) AsApplicationUpgradeRollbackCompletedEvent() (*ApplicationUpgradeRollbackCompletedEvent, bool) {
43403	return nil, false
43404}
43405
43406// AsApplicationUpgradeRollbackStartedEvent is the BasicFabricEvent implementation for StatefulReplicaNewHealthReportEvent.
43407func (srnhre StatefulReplicaNewHealthReportEvent) AsApplicationUpgradeRollbackStartedEvent() (*ApplicationUpgradeRollbackStartedEvent, bool) {
43408	return nil, false
43409}
43410
43411// AsApplicationUpgradeStartedEvent is the BasicFabricEvent implementation for StatefulReplicaNewHealthReportEvent.
43412func (srnhre StatefulReplicaNewHealthReportEvent) AsApplicationUpgradeStartedEvent() (*ApplicationUpgradeStartedEvent, bool) {
43413	return nil, false
43414}
43415
43416// AsDeployedApplicationNewHealthReportEvent is the BasicFabricEvent implementation for StatefulReplicaNewHealthReportEvent.
43417func (srnhre StatefulReplicaNewHealthReportEvent) AsDeployedApplicationNewHealthReportEvent() (*DeployedApplicationNewHealthReportEvent, bool) {
43418	return nil, false
43419}
43420
43421// AsDeployedApplicationHealthReportExpiredEvent is the BasicFabricEvent implementation for StatefulReplicaNewHealthReportEvent.
43422func (srnhre StatefulReplicaNewHealthReportEvent) AsDeployedApplicationHealthReportExpiredEvent() (*DeployedApplicationHealthReportExpiredEvent, bool) {
43423	return nil, false
43424}
43425
43426// AsApplicationProcessExitedEvent is the BasicFabricEvent implementation for StatefulReplicaNewHealthReportEvent.
43427func (srnhre StatefulReplicaNewHealthReportEvent) AsApplicationProcessExitedEvent() (*ApplicationProcessExitedEvent, bool) {
43428	return nil, false
43429}
43430
43431// AsApplicationContainerInstanceExitedEvent is the BasicFabricEvent implementation for StatefulReplicaNewHealthReportEvent.
43432func (srnhre StatefulReplicaNewHealthReportEvent) AsApplicationContainerInstanceExitedEvent() (*ApplicationContainerInstanceExitedEvent, bool) {
43433	return nil, false
43434}
43435
43436// AsNodeAbortedEvent is the BasicFabricEvent implementation for StatefulReplicaNewHealthReportEvent.
43437func (srnhre StatefulReplicaNewHealthReportEvent) AsNodeAbortedEvent() (*NodeAbortedEvent, bool) {
43438	return nil, false
43439}
43440
43441// AsNodeAddedToClusterEvent is the BasicFabricEvent implementation for StatefulReplicaNewHealthReportEvent.
43442func (srnhre StatefulReplicaNewHealthReportEvent) AsNodeAddedToClusterEvent() (*NodeAddedToClusterEvent, bool) {
43443	return nil, false
43444}
43445
43446// AsNodeClosedEvent is the BasicFabricEvent implementation for StatefulReplicaNewHealthReportEvent.
43447func (srnhre StatefulReplicaNewHealthReportEvent) AsNodeClosedEvent() (*NodeClosedEvent, bool) {
43448	return nil, false
43449}
43450
43451// AsNodeDeactivateCompletedEvent is the BasicFabricEvent implementation for StatefulReplicaNewHealthReportEvent.
43452func (srnhre StatefulReplicaNewHealthReportEvent) AsNodeDeactivateCompletedEvent() (*NodeDeactivateCompletedEvent, bool) {
43453	return nil, false
43454}
43455
43456// AsNodeDeactivateStartedEvent is the BasicFabricEvent implementation for StatefulReplicaNewHealthReportEvent.
43457func (srnhre StatefulReplicaNewHealthReportEvent) AsNodeDeactivateStartedEvent() (*NodeDeactivateStartedEvent, bool) {
43458	return nil, false
43459}
43460
43461// AsNodeDownEvent is the BasicFabricEvent implementation for StatefulReplicaNewHealthReportEvent.
43462func (srnhre StatefulReplicaNewHealthReportEvent) AsNodeDownEvent() (*NodeDownEvent, bool) {
43463	return nil, false
43464}
43465
43466// AsNodeNewHealthReportEvent is the BasicFabricEvent implementation for StatefulReplicaNewHealthReportEvent.
43467func (srnhre StatefulReplicaNewHealthReportEvent) AsNodeNewHealthReportEvent() (*NodeNewHealthReportEvent, bool) {
43468	return nil, false
43469}
43470
43471// AsNodeHealthReportExpiredEvent is the BasicFabricEvent implementation for StatefulReplicaNewHealthReportEvent.
43472func (srnhre StatefulReplicaNewHealthReportEvent) AsNodeHealthReportExpiredEvent() (*NodeHealthReportExpiredEvent, bool) {
43473	return nil, false
43474}
43475
43476// AsNodeOpenSucceededEvent is the BasicFabricEvent implementation for StatefulReplicaNewHealthReportEvent.
43477func (srnhre StatefulReplicaNewHealthReportEvent) AsNodeOpenSucceededEvent() (*NodeOpenSucceededEvent, bool) {
43478	return nil, false
43479}
43480
43481// AsNodeOpenFailedEvent is the BasicFabricEvent implementation for StatefulReplicaNewHealthReportEvent.
43482func (srnhre StatefulReplicaNewHealthReportEvent) AsNodeOpenFailedEvent() (*NodeOpenFailedEvent, bool) {
43483	return nil, false
43484}
43485
43486// AsNodeRemovedFromClusterEvent is the BasicFabricEvent implementation for StatefulReplicaNewHealthReportEvent.
43487func (srnhre StatefulReplicaNewHealthReportEvent) AsNodeRemovedFromClusterEvent() (*NodeRemovedFromClusterEvent, bool) {
43488	return nil, false
43489}
43490
43491// AsNodeUpEvent is the BasicFabricEvent implementation for StatefulReplicaNewHealthReportEvent.
43492func (srnhre StatefulReplicaNewHealthReportEvent) AsNodeUpEvent() (*NodeUpEvent, bool) {
43493	return nil, false
43494}
43495
43496// AsPartitionNewHealthReportEvent is the BasicFabricEvent implementation for StatefulReplicaNewHealthReportEvent.
43497func (srnhre StatefulReplicaNewHealthReportEvent) AsPartitionNewHealthReportEvent() (*PartitionNewHealthReportEvent, bool) {
43498	return nil, false
43499}
43500
43501// AsPartitionHealthReportExpiredEvent is the BasicFabricEvent implementation for StatefulReplicaNewHealthReportEvent.
43502func (srnhre StatefulReplicaNewHealthReportEvent) AsPartitionHealthReportExpiredEvent() (*PartitionHealthReportExpiredEvent, bool) {
43503	return nil, false
43504}
43505
43506// AsPartitionReconfiguredEvent is the BasicFabricEvent implementation for StatefulReplicaNewHealthReportEvent.
43507func (srnhre StatefulReplicaNewHealthReportEvent) AsPartitionReconfiguredEvent() (*PartitionReconfiguredEvent, bool) {
43508	return nil, false
43509}
43510
43511// AsPartitionPrimaryMoveAnalysisEvent is the BasicFabricEvent implementation for StatefulReplicaNewHealthReportEvent.
43512func (srnhre StatefulReplicaNewHealthReportEvent) AsPartitionPrimaryMoveAnalysisEvent() (*PartitionPrimaryMoveAnalysisEvent, bool) {
43513	return nil, false
43514}
43515
43516// AsServiceCreatedEvent is the BasicFabricEvent implementation for StatefulReplicaNewHealthReportEvent.
43517func (srnhre StatefulReplicaNewHealthReportEvent) AsServiceCreatedEvent() (*ServiceCreatedEvent, bool) {
43518	return nil, false
43519}
43520
43521// AsServiceDeletedEvent is the BasicFabricEvent implementation for StatefulReplicaNewHealthReportEvent.
43522func (srnhre StatefulReplicaNewHealthReportEvent) AsServiceDeletedEvent() (*ServiceDeletedEvent, bool) {
43523	return nil, false
43524}
43525
43526// AsServiceNewHealthReportEvent is the BasicFabricEvent implementation for StatefulReplicaNewHealthReportEvent.
43527func (srnhre StatefulReplicaNewHealthReportEvent) AsServiceNewHealthReportEvent() (*ServiceNewHealthReportEvent, bool) {
43528	return nil, false
43529}
43530
43531// AsServiceHealthReportExpiredEvent is the BasicFabricEvent implementation for StatefulReplicaNewHealthReportEvent.
43532func (srnhre StatefulReplicaNewHealthReportEvent) AsServiceHealthReportExpiredEvent() (*ServiceHealthReportExpiredEvent, bool) {
43533	return nil, false
43534}
43535
43536// AsDeployedServicePackageNewHealthReportEvent is the BasicFabricEvent implementation for StatefulReplicaNewHealthReportEvent.
43537func (srnhre StatefulReplicaNewHealthReportEvent) AsDeployedServicePackageNewHealthReportEvent() (*DeployedServicePackageNewHealthReportEvent, bool) {
43538	return nil, false
43539}
43540
43541// AsDeployedServicePackageHealthReportExpiredEvent is the BasicFabricEvent implementation for StatefulReplicaNewHealthReportEvent.
43542func (srnhre StatefulReplicaNewHealthReportEvent) AsDeployedServicePackageHealthReportExpiredEvent() (*DeployedServicePackageHealthReportExpiredEvent, bool) {
43543	return nil, false
43544}
43545
43546// AsStatefulReplicaNewHealthReportEvent is the BasicFabricEvent implementation for StatefulReplicaNewHealthReportEvent.
43547func (srnhre StatefulReplicaNewHealthReportEvent) AsStatefulReplicaNewHealthReportEvent() (*StatefulReplicaNewHealthReportEvent, bool) {
43548	return &srnhre, true
43549}
43550
43551// AsStatefulReplicaHealthReportExpiredEvent is the BasicFabricEvent implementation for StatefulReplicaNewHealthReportEvent.
43552func (srnhre StatefulReplicaNewHealthReportEvent) AsStatefulReplicaHealthReportExpiredEvent() (*StatefulReplicaHealthReportExpiredEvent, bool) {
43553	return nil, false
43554}
43555
43556// AsStatelessReplicaNewHealthReportEvent is the BasicFabricEvent implementation for StatefulReplicaNewHealthReportEvent.
43557func (srnhre StatefulReplicaNewHealthReportEvent) AsStatelessReplicaNewHealthReportEvent() (*StatelessReplicaNewHealthReportEvent, bool) {
43558	return nil, false
43559}
43560
43561// AsStatelessReplicaHealthReportExpiredEvent is the BasicFabricEvent implementation for StatefulReplicaNewHealthReportEvent.
43562func (srnhre StatefulReplicaNewHealthReportEvent) AsStatelessReplicaHealthReportExpiredEvent() (*StatelessReplicaHealthReportExpiredEvent, bool) {
43563	return nil, false
43564}
43565
43566// AsClusterNewHealthReportEvent is the BasicFabricEvent implementation for StatefulReplicaNewHealthReportEvent.
43567func (srnhre StatefulReplicaNewHealthReportEvent) AsClusterNewHealthReportEvent() (*ClusterNewHealthReportEvent, bool) {
43568	return nil, false
43569}
43570
43571// AsClusterHealthReportExpiredEvent is the BasicFabricEvent implementation for StatefulReplicaNewHealthReportEvent.
43572func (srnhre StatefulReplicaNewHealthReportEvent) AsClusterHealthReportExpiredEvent() (*ClusterHealthReportExpiredEvent, bool) {
43573	return nil, false
43574}
43575
43576// AsClusterUpgradeCompletedEvent is the BasicFabricEvent implementation for StatefulReplicaNewHealthReportEvent.
43577func (srnhre StatefulReplicaNewHealthReportEvent) AsClusterUpgradeCompletedEvent() (*ClusterUpgradeCompletedEvent, bool) {
43578	return nil, false
43579}
43580
43581// AsClusterUpgradeDomainCompletedEvent is the BasicFabricEvent implementation for StatefulReplicaNewHealthReportEvent.
43582func (srnhre StatefulReplicaNewHealthReportEvent) AsClusterUpgradeDomainCompletedEvent() (*ClusterUpgradeDomainCompletedEvent, bool) {
43583	return nil, false
43584}
43585
43586// AsClusterUpgradeRollbackCompletedEvent is the BasicFabricEvent implementation for StatefulReplicaNewHealthReportEvent.
43587func (srnhre StatefulReplicaNewHealthReportEvent) AsClusterUpgradeRollbackCompletedEvent() (*ClusterUpgradeRollbackCompletedEvent, bool) {
43588	return nil, false
43589}
43590
43591// AsClusterUpgradeRollbackStartedEvent is the BasicFabricEvent implementation for StatefulReplicaNewHealthReportEvent.
43592func (srnhre StatefulReplicaNewHealthReportEvent) AsClusterUpgradeRollbackStartedEvent() (*ClusterUpgradeRollbackStartedEvent, bool) {
43593	return nil, false
43594}
43595
43596// AsClusterUpgradeStartedEvent is the BasicFabricEvent implementation for StatefulReplicaNewHealthReportEvent.
43597func (srnhre StatefulReplicaNewHealthReportEvent) AsClusterUpgradeStartedEvent() (*ClusterUpgradeStartedEvent, bool) {
43598	return nil, false
43599}
43600
43601// AsChaosStoppedEvent is the BasicFabricEvent implementation for StatefulReplicaNewHealthReportEvent.
43602func (srnhre StatefulReplicaNewHealthReportEvent) AsChaosStoppedEvent() (*ChaosStoppedEvent, bool) {
43603	return nil, false
43604}
43605
43606// AsChaosStartedEvent is the BasicFabricEvent implementation for StatefulReplicaNewHealthReportEvent.
43607func (srnhre StatefulReplicaNewHealthReportEvent) AsChaosStartedEvent() (*ChaosStartedEvent, bool) {
43608	return nil, false
43609}
43610
43611// AsChaosCodePackageRestartScheduledEvent is the BasicFabricEvent implementation for StatefulReplicaNewHealthReportEvent.
43612func (srnhre StatefulReplicaNewHealthReportEvent) AsChaosCodePackageRestartScheduledEvent() (*ChaosCodePackageRestartScheduledEvent, bool) {
43613	return nil, false
43614}
43615
43616// AsChaosReplicaRemovalScheduledEvent is the BasicFabricEvent implementation for StatefulReplicaNewHealthReportEvent.
43617func (srnhre StatefulReplicaNewHealthReportEvent) AsChaosReplicaRemovalScheduledEvent() (*ChaosReplicaRemovalScheduledEvent, bool) {
43618	return nil, false
43619}
43620
43621// AsChaosPartitionSecondaryMoveScheduledEvent is the BasicFabricEvent implementation for StatefulReplicaNewHealthReportEvent.
43622func (srnhre StatefulReplicaNewHealthReportEvent) AsChaosPartitionSecondaryMoveScheduledEvent() (*ChaosPartitionSecondaryMoveScheduledEvent, bool) {
43623	return nil, false
43624}
43625
43626// AsChaosPartitionPrimaryMoveScheduledEvent is the BasicFabricEvent implementation for StatefulReplicaNewHealthReportEvent.
43627func (srnhre StatefulReplicaNewHealthReportEvent) AsChaosPartitionPrimaryMoveScheduledEvent() (*ChaosPartitionPrimaryMoveScheduledEvent, bool) {
43628	return nil, false
43629}
43630
43631// AsChaosReplicaRestartScheduledEvent is the BasicFabricEvent implementation for StatefulReplicaNewHealthReportEvent.
43632func (srnhre StatefulReplicaNewHealthReportEvent) AsChaosReplicaRestartScheduledEvent() (*ChaosReplicaRestartScheduledEvent, bool) {
43633	return nil, false
43634}
43635
43636// AsChaosNodeRestartScheduledEvent is the BasicFabricEvent implementation for StatefulReplicaNewHealthReportEvent.
43637func (srnhre StatefulReplicaNewHealthReportEvent) AsChaosNodeRestartScheduledEvent() (*ChaosNodeRestartScheduledEvent, bool) {
43638	return nil, false
43639}
43640
43641// AsFabricEvent is the BasicFabricEvent implementation for StatefulReplicaNewHealthReportEvent.
43642func (srnhre StatefulReplicaNewHealthReportEvent) AsFabricEvent() (*FabricEvent, bool) {
43643	return nil, false
43644}
43645
43646// AsBasicFabricEvent is the BasicFabricEvent implementation for StatefulReplicaNewHealthReportEvent.
43647func (srnhre StatefulReplicaNewHealthReportEvent) AsBasicFabricEvent() (BasicFabricEvent, bool) {
43648	return &srnhre, true
43649}
43650
43651// StatefulServiceDescription describes a stateful service.
43652type StatefulServiceDescription struct {
43653	// TargetReplicaSetSize - The target replica set size as a number.
43654	TargetReplicaSetSize *int32 `json:"TargetReplicaSetSize,omitempty"`
43655	// MinReplicaSetSize - The minimum replica set size as a number.
43656	MinReplicaSetSize *int32 `json:"MinReplicaSetSize,omitempty"`
43657	// 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.
43658	HasPersistedState *bool `json:"HasPersistedState,omitempty"`
43659	// 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.
43660	// This property can be a combination of those flags obtained using bitwise 'OR' operator.
43661	// For example, if the provided value is 6 then the flags for QuorumLossWaitDuration (2) and StandByReplicaKeepDuration(4) are set.
43662	// - None - Does not indicate any other properties are set. The value is zero.
43663	// - ReplicaRestartWaitDuration - Indicates the ReplicaRestartWaitDuration property is set. The value is 1.
43664	// - QuorumLossWaitDuration - Indicates the QuorumLossWaitDuration property is set. The value is 2.
43665	// - StandByReplicaKeepDuration - Indicates the StandByReplicaKeepDuration property is set. The value is 4.
43666	Flags *int32 `json:"Flags,omitempty"`
43667	// ReplicaRestartWaitDurationSeconds - The duration, in seconds, between when a replica goes down and when a new replica is created.
43668	ReplicaRestartWaitDurationSeconds *int64 `json:"ReplicaRestartWaitDurationSeconds,omitempty"`
43669	// QuorumLossWaitDurationSeconds - The maximum duration, in seconds, for which a partition is allowed to be in a state of quorum loss.
43670	QuorumLossWaitDurationSeconds *int64 `json:"QuorumLossWaitDurationSeconds,omitempty"`
43671	// StandByReplicaKeepDurationSeconds - The definition on how long StandBy replicas should be maintained before being removed.
43672	StandByReplicaKeepDurationSeconds *int64 `json:"StandByReplicaKeepDurationSeconds,omitempty"`
43673	// ApplicationName - The name of the application, including the 'fabric:' URI scheme.
43674	ApplicationName *string `json:"ApplicationName,omitempty"`
43675	// ServiceName - The full name of the service with 'fabric:' URI scheme.
43676	ServiceName *string `json:"ServiceName,omitempty"`
43677	// ServiceTypeName - Name of the service type as specified in the service manifest.
43678	ServiceTypeName *string `json:"ServiceTypeName,omitempty"`
43679	// InitializationData - The initialization data as an array of bytes. Initialization data is passed to service instances or replicas when they are created.
43680	InitializationData *[]int32 `json:"InitializationData,omitempty"`
43681	// PartitionDescription - The partition description as an object.
43682	PartitionDescription BasicPartitionSchemeDescription `json:"PartitionDescription,omitempty"`
43683	// 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)".
43684	PlacementConstraints *string `json:"PlacementConstraints,omitempty"`
43685	// CorrelationScheme - The correlation scheme.
43686	CorrelationScheme *[]ServiceCorrelationDescription `json:"CorrelationScheme,omitempty"`
43687	// ServiceLoadMetrics - The service load metrics.
43688	ServiceLoadMetrics *[]ServiceLoadMetricDescription `json:"ServiceLoadMetrics,omitempty"`
43689	// ServicePlacementPolicies - The service placement policies.
43690	ServicePlacementPolicies *[]BasicServicePlacementPolicyDescription `json:"ServicePlacementPolicies,omitempty"`
43691	// DefaultMoveCost - The move cost for the service. Possible values include: 'Zero', 'Low', 'Medium', 'High'
43692	DefaultMoveCost MoveCost `json:"DefaultMoveCost,omitempty"`
43693	// IsDefaultMoveCostSpecified - Indicates if the DefaultMoveCost property is specified.
43694	IsDefaultMoveCostSpecified *bool `json:"IsDefaultMoveCostSpecified,omitempty"`
43695	// ServicePackageActivationMode - The activation mode of service package to be used for a service. Possible values include: 'SharedProcess', 'ExclusiveProcess'
43696	ServicePackageActivationMode ServicePackageActivationMode `json:"ServicePackageActivationMode,omitempty"`
43697	// ServiceDNSName - The DNS name of the service. It requires the DNS system service to be enabled in Service Fabric cluster.
43698	ServiceDNSName *string `json:"ServiceDnsName,omitempty"`
43699	// ScalingPolicies - Scaling policies for this service.
43700	ScalingPolicies *[]ScalingPolicyDescription `json:"ScalingPolicies,omitempty"`
43701	// ServiceKind - Possible values include: 'ServiceKindBasicServiceDescriptionServiceKindServiceDescription', 'ServiceKindBasicServiceDescriptionServiceKindStateful', 'ServiceKindBasicServiceDescriptionServiceKindStateless'
43702	ServiceKind ServiceKindBasicServiceDescription `json:"ServiceKind,omitempty"`
43703}
43704
43705// MarshalJSON is the custom marshaler for StatefulServiceDescription.
43706func (ssd StatefulServiceDescription) MarshalJSON() ([]byte, error) {
43707	ssd.ServiceKind = ServiceKindBasicServiceDescriptionServiceKindStateful
43708	objectMap := make(map[string]interface{})
43709	if ssd.TargetReplicaSetSize != nil {
43710		objectMap["TargetReplicaSetSize"] = ssd.TargetReplicaSetSize
43711	}
43712	if ssd.MinReplicaSetSize != nil {
43713		objectMap["MinReplicaSetSize"] = ssd.MinReplicaSetSize
43714	}
43715	if ssd.HasPersistedState != nil {
43716		objectMap["HasPersistedState"] = ssd.HasPersistedState
43717	}
43718	if ssd.Flags != nil {
43719		objectMap["Flags"] = ssd.Flags
43720	}
43721	if ssd.ReplicaRestartWaitDurationSeconds != nil {
43722		objectMap["ReplicaRestartWaitDurationSeconds"] = ssd.ReplicaRestartWaitDurationSeconds
43723	}
43724	if ssd.QuorumLossWaitDurationSeconds != nil {
43725		objectMap["QuorumLossWaitDurationSeconds"] = ssd.QuorumLossWaitDurationSeconds
43726	}
43727	if ssd.StandByReplicaKeepDurationSeconds != nil {
43728		objectMap["StandByReplicaKeepDurationSeconds"] = ssd.StandByReplicaKeepDurationSeconds
43729	}
43730	if ssd.ApplicationName != nil {
43731		objectMap["ApplicationName"] = ssd.ApplicationName
43732	}
43733	if ssd.ServiceName != nil {
43734		objectMap["ServiceName"] = ssd.ServiceName
43735	}
43736	if ssd.ServiceTypeName != nil {
43737		objectMap["ServiceTypeName"] = ssd.ServiceTypeName
43738	}
43739	if ssd.InitializationData != nil {
43740		objectMap["InitializationData"] = ssd.InitializationData
43741	}
43742	objectMap["PartitionDescription"] = ssd.PartitionDescription
43743	if ssd.PlacementConstraints != nil {
43744		objectMap["PlacementConstraints"] = ssd.PlacementConstraints
43745	}
43746	if ssd.CorrelationScheme != nil {
43747		objectMap["CorrelationScheme"] = ssd.CorrelationScheme
43748	}
43749	if ssd.ServiceLoadMetrics != nil {
43750		objectMap["ServiceLoadMetrics"] = ssd.ServiceLoadMetrics
43751	}
43752	if ssd.ServicePlacementPolicies != nil {
43753		objectMap["ServicePlacementPolicies"] = ssd.ServicePlacementPolicies
43754	}
43755	if ssd.DefaultMoveCost != "" {
43756		objectMap["DefaultMoveCost"] = ssd.DefaultMoveCost
43757	}
43758	if ssd.IsDefaultMoveCostSpecified != nil {
43759		objectMap["IsDefaultMoveCostSpecified"] = ssd.IsDefaultMoveCostSpecified
43760	}
43761	if ssd.ServicePackageActivationMode != "" {
43762		objectMap["ServicePackageActivationMode"] = ssd.ServicePackageActivationMode
43763	}
43764	if ssd.ServiceDNSName != nil {
43765		objectMap["ServiceDnsName"] = ssd.ServiceDNSName
43766	}
43767	if ssd.ScalingPolicies != nil {
43768		objectMap["ScalingPolicies"] = ssd.ScalingPolicies
43769	}
43770	if ssd.ServiceKind != "" {
43771		objectMap["ServiceKind"] = ssd.ServiceKind
43772	}
43773	return json.Marshal(objectMap)
43774}
43775
43776// AsStatefulServiceDescription is the BasicServiceDescription implementation for StatefulServiceDescription.
43777func (ssd StatefulServiceDescription) AsStatefulServiceDescription() (*StatefulServiceDescription, bool) {
43778	return &ssd, true
43779}
43780
43781// AsStatelessServiceDescription is the BasicServiceDescription implementation for StatefulServiceDescription.
43782func (ssd StatefulServiceDescription) AsStatelessServiceDescription() (*StatelessServiceDescription, bool) {
43783	return nil, false
43784}
43785
43786// AsServiceDescription is the BasicServiceDescription implementation for StatefulServiceDescription.
43787func (ssd StatefulServiceDescription) AsServiceDescription() (*ServiceDescription, bool) {
43788	return nil, false
43789}
43790
43791// AsBasicServiceDescription is the BasicServiceDescription implementation for StatefulServiceDescription.
43792func (ssd StatefulServiceDescription) AsBasicServiceDescription() (BasicServiceDescription, bool) {
43793	return &ssd, true
43794}
43795
43796// UnmarshalJSON is the custom unmarshaler for StatefulServiceDescription struct.
43797func (ssd *StatefulServiceDescription) UnmarshalJSON(body []byte) error {
43798	var m map[string]*json.RawMessage
43799	err := json.Unmarshal(body, &m)
43800	if err != nil {
43801		return err
43802	}
43803	for k, v := range m {
43804		switch k {
43805		case "TargetReplicaSetSize":
43806			if v != nil {
43807				var targetReplicaSetSize int32
43808				err = json.Unmarshal(*v, &targetReplicaSetSize)
43809				if err != nil {
43810					return err
43811				}
43812				ssd.TargetReplicaSetSize = &targetReplicaSetSize
43813			}
43814		case "MinReplicaSetSize":
43815			if v != nil {
43816				var minReplicaSetSize int32
43817				err = json.Unmarshal(*v, &minReplicaSetSize)
43818				if err != nil {
43819					return err
43820				}
43821				ssd.MinReplicaSetSize = &minReplicaSetSize
43822			}
43823		case "HasPersistedState":
43824			if v != nil {
43825				var hasPersistedState bool
43826				err = json.Unmarshal(*v, &hasPersistedState)
43827				if err != nil {
43828					return err
43829				}
43830				ssd.HasPersistedState = &hasPersistedState
43831			}
43832		case "Flags":
43833			if v != nil {
43834				var flags int32
43835				err = json.Unmarshal(*v, &flags)
43836				if err != nil {
43837					return err
43838				}
43839				ssd.Flags = &flags
43840			}
43841		case "ReplicaRestartWaitDurationSeconds":
43842			if v != nil {
43843				var replicaRestartWaitDurationSeconds int64
43844				err = json.Unmarshal(*v, &replicaRestartWaitDurationSeconds)
43845				if err != nil {
43846					return err
43847				}
43848				ssd.ReplicaRestartWaitDurationSeconds = &replicaRestartWaitDurationSeconds
43849			}
43850		case "QuorumLossWaitDurationSeconds":
43851			if v != nil {
43852				var quorumLossWaitDurationSeconds int64
43853				err = json.Unmarshal(*v, &quorumLossWaitDurationSeconds)
43854				if err != nil {
43855					return err
43856				}
43857				ssd.QuorumLossWaitDurationSeconds = &quorumLossWaitDurationSeconds
43858			}
43859		case "StandByReplicaKeepDurationSeconds":
43860			if v != nil {
43861				var standByReplicaKeepDurationSeconds int64
43862				err = json.Unmarshal(*v, &standByReplicaKeepDurationSeconds)
43863				if err != nil {
43864					return err
43865				}
43866				ssd.StandByReplicaKeepDurationSeconds = &standByReplicaKeepDurationSeconds
43867			}
43868		case "ApplicationName":
43869			if v != nil {
43870				var applicationName string
43871				err = json.Unmarshal(*v, &applicationName)
43872				if err != nil {
43873					return err
43874				}
43875				ssd.ApplicationName = &applicationName
43876			}
43877		case "ServiceName":
43878			if v != nil {
43879				var serviceName string
43880				err = json.Unmarshal(*v, &serviceName)
43881				if err != nil {
43882					return err
43883				}
43884				ssd.ServiceName = &serviceName
43885			}
43886		case "ServiceTypeName":
43887			if v != nil {
43888				var serviceTypeName string
43889				err = json.Unmarshal(*v, &serviceTypeName)
43890				if err != nil {
43891					return err
43892				}
43893				ssd.ServiceTypeName = &serviceTypeName
43894			}
43895		case "InitializationData":
43896			if v != nil {
43897				var initializationData []int32
43898				err = json.Unmarshal(*v, &initializationData)
43899				if err != nil {
43900					return err
43901				}
43902				ssd.InitializationData = &initializationData
43903			}
43904		case "PartitionDescription":
43905			if v != nil {
43906				partitionDescription, err := unmarshalBasicPartitionSchemeDescription(*v)
43907				if err != nil {
43908					return err
43909				}
43910				ssd.PartitionDescription = partitionDescription
43911			}
43912		case "PlacementConstraints":
43913			if v != nil {
43914				var placementConstraints string
43915				err = json.Unmarshal(*v, &placementConstraints)
43916				if err != nil {
43917					return err
43918				}
43919				ssd.PlacementConstraints = &placementConstraints
43920			}
43921		case "CorrelationScheme":
43922			if v != nil {
43923				var correlationScheme []ServiceCorrelationDescription
43924				err = json.Unmarshal(*v, &correlationScheme)
43925				if err != nil {
43926					return err
43927				}
43928				ssd.CorrelationScheme = &correlationScheme
43929			}
43930		case "ServiceLoadMetrics":
43931			if v != nil {
43932				var serviceLoadMetrics []ServiceLoadMetricDescription
43933				err = json.Unmarshal(*v, &serviceLoadMetrics)
43934				if err != nil {
43935					return err
43936				}
43937				ssd.ServiceLoadMetrics = &serviceLoadMetrics
43938			}
43939		case "ServicePlacementPolicies":
43940			if v != nil {
43941				servicePlacementPolicies, err := unmarshalBasicServicePlacementPolicyDescriptionArray(*v)
43942				if err != nil {
43943					return err
43944				}
43945				ssd.ServicePlacementPolicies = &servicePlacementPolicies
43946			}
43947		case "DefaultMoveCost":
43948			if v != nil {
43949				var defaultMoveCost MoveCost
43950				err = json.Unmarshal(*v, &defaultMoveCost)
43951				if err != nil {
43952					return err
43953				}
43954				ssd.DefaultMoveCost = defaultMoveCost
43955			}
43956		case "IsDefaultMoveCostSpecified":
43957			if v != nil {
43958				var isDefaultMoveCostSpecified bool
43959				err = json.Unmarshal(*v, &isDefaultMoveCostSpecified)
43960				if err != nil {
43961					return err
43962				}
43963				ssd.IsDefaultMoveCostSpecified = &isDefaultMoveCostSpecified
43964			}
43965		case "ServicePackageActivationMode":
43966			if v != nil {
43967				var servicePackageActivationMode ServicePackageActivationMode
43968				err = json.Unmarshal(*v, &servicePackageActivationMode)
43969				if err != nil {
43970					return err
43971				}
43972				ssd.ServicePackageActivationMode = servicePackageActivationMode
43973			}
43974		case "ServiceDnsName":
43975			if v != nil {
43976				var serviceDNSName string
43977				err = json.Unmarshal(*v, &serviceDNSName)
43978				if err != nil {
43979					return err
43980				}
43981				ssd.ServiceDNSName = &serviceDNSName
43982			}
43983		case "ScalingPolicies":
43984			if v != nil {
43985				var scalingPolicies []ScalingPolicyDescription
43986				err = json.Unmarshal(*v, &scalingPolicies)
43987				if err != nil {
43988					return err
43989				}
43990				ssd.ScalingPolicies = &scalingPolicies
43991			}
43992		case "ServiceKind":
43993			if v != nil {
43994				var serviceKind ServiceKindBasicServiceDescription
43995				err = json.Unmarshal(*v, &serviceKind)
43996				if err != nil {
43997					return err
43998				}
43999				ssd.ServiceKind = serviceKind
44000			}
44001		}
44002	}
44003
44004	return nil
44005}
44006
44007// StatefulServiceInfo information about a stateful Service Fabric service.
44008type StatefulServiceInfo struct {
44009	// HasPersistedState - Whether the service has persisted state.
44010	HasPersistedState *bool `json:"HasPersistedState,omitempty"`
44011	// 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.
44012	// Starting in version 6.0, hierarchical names are delimited with the "\~" character. For example, if the service name is "fabric:/myapp/app1/svc1",
44013	// the service identity would be "myapp~app1\~svc1" in 6.0+ and "myapp/app1/svc1" in previous versions.
44014	ID *string `json:"Id,omitempty"`
44015	// Name - The full name of the service with 'fabric:' URI scheme.
44016	Name *string `json:"Name,omitempty"`
44017	// TypeName - Name of the service type as specified in the service manifest.
44018	TypeName *string `json:"TypeName,omitempty"`
44019	// ManifestVersion - The version of the service manifest.
44020	ManifestVersion *string `json:"ManifestVersion,omitempty"`
44021	// 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'
44022	HealthState HealthState `json:"HealthState,omitempty"`
44023	// ServiceStatus - The status of the application. Possible values include: 'ServiceStatusUnknown', 'ServiceStatusActive', 'ServiceStatusUpgrading', 'ServiceStatusDeleting', 'ServiceStatusCreating', 'ServiceStatusFailed'
44024	ServiceStatus ServiceStatus `json:"ServiceStatus,omitempty"`
44025	// IsServiceGroup - Whether the service is in a service group.
44026	IsServiceGroup *bool `json:"IsServiceGroup,omitempty"`
44027	// ServiceKind - Possible values include: 'ServiceKindBasicServiceInfoServiceKindServiceInfo', 'ServiceKindBasicServiceInfoServiceKindStateful', 'ServiceKindBasicServiceInfoServiceKindStateless'
44028	ServiceKind ServiceKindBasicServiceInfo `json:"ServiceKind,omitempty"`
44029}
44030
44031// MarshalJSON is the custom marshaler for StatefulServiceInfo.
44032func (ssi StatefulServiceInfo) MarshalJSON() ([]byte, error) {
44033	ssi.ServiceKind = ServiceKindBasicServiceInfoServiceKindStateful
44034	objectMap := make(map[string]interface{})
44035	if ssi.HasPersistedState != nil {
44036		objectMap["HasPersistedState"] = ssi.HasPersistedState
44037	}
44038	if ssi.ID != nil {
44039		objectMap["Id"] = ssi.ID
44040	}
44041	if ssi.Name != nil {
44042		objectMap["Name"] = ssi.Name
44043	}
44044	if ssi.TypeName != nil {
44045		objectMap["TypeName"] = ssi.TypeName
44046	}
44047	if ssi.ManifestVersion != nil {
44048		objectMap["ManifestVersion"] = ssi.ManifestVersion
44049	}
44050	if ssi.HealthState != "" {
44051		objectMap["HealthState"] = ssi.HealthState
44052	}
44053	if ssi.ServiceStatus != "" {
44054		objectMap["ServiceStatus"] = ssi.ServiceStatus
44055	}
44056	if ssi.IsServiceGroup != nil {
44057		objectMap["IsServiceGroup"] = ssi.IsServiceGroup
44058	}
44059	if ssi.ServiceKind != "" {
44060		objectMap["ServiceKind"] = ssi.ServiceKind
44061	}
44062	return json.Marshal(objectMap)
44063}
44064
44065// AsStatefulServiceInfo is the BasicServiceInfo implementation for StatefulServiceInfo.
44066func (ssi StatefulServiceInfo) AsStatefulServiceInfo() (*StatefulServiceInfo, bool) {
44067	return &ssi, true
44068}
44069
44070// AsStatelessServiceInfo is the BasicServiceInfo implementation for StatefulServiceInfo.
44071func (ssi StatefulServiceInfo) AsStatelessServiceInfo() (*StatelessServiceInfo, bool) {
44072	return nil, false
44073}
44074
44075// AsServiceInfo is the BasicServiceInfo implementation for StatefulServiceInfo.
44076func (ssi StatefulServiceInfo) AsServiceInfo() (*ServiceInfo, bool) {
44077	return nil, false
44078}
44079
44080// AsBasicServiceInfo is the BasicServiceInfo implementation for StatefulServiceInfo.
44081func (ssi StatefulServiceInfo) AsBasicServiceInfo() (BasicServiceInfo, bool) {
44082	return &ssi, true
44083}
44084
44085// StatefulServicePartitionInfo information about a partition of a stateful Service Fabric service..
44086type StatefulServicePartitionInfo struct {
44087	// TargetReplicaSetSize - The target replica set size as a number.
44088	TargetReplicaSetSize *int64 `json:"TargetReplicaSetSize,omitempty"`
44089	// MinReplicaSetSize - The minimum replica set size as a number.
44090	MinReplicaSetSize *int64 `json:"MinReplicaSetSize,omitempty"`
44091	// 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.
44092	LastQuorumLossDuration *string `json:"LastQuorumLossDuration,omitempty"`
44093	// 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.
44094	PrimaryEpoch *Epoch `json:"PrimaryEpoch,omitempty"`
44095	// 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'
44096	HealthState HealthState `json:"HealthState,omitempty"`
44097	// PartitionStatus - The status of the service fabric service partition. Possible values include: 'ServicePartitionStatusInvalid', 'ServicePartitionStatusReady', 'ServicePartitionStatusNotReady', 'ServicePartitionStatusInQuorumLoss', 'ServicePartitionStatusReconfiguring', 'ServicePartitionStatusDeleting'
44098	PartitionStatus ServicePartitionStatus `json:"PartitionStatus,omitempty"`
44099	// PartitionInformation - Information about the partition identity, partitioning scheme and keys supported by it.
44100	PartitionInformation BasicPartitionInformation `json:"PartitionInformation,omitempty"`
44101	// ServiceKind - Possible values include: 'ServiceKindBasicServicePartitionInfoServiceKindServicePartitionInfo', 'ServiceKindBasicServicePartitionInfoServiceKindStateful', 'ServiceKindBasicServicePartitionInfoServiceKindStateless'
44102	ServiceKind ServiceKindBasicServicePartitionInfo `json:"ServiceKind,omitempty"`
44103}
44104
44105// MarshalJSON is the custom marshaler for StatefulServicePartitionInfo.
44106func (sspi StatefulServicePartitionInfo) MarshalJSON() ([]byte, error) {
44107	sspi.ServiceKind = ServiceKindBasicServicePartitionInfoServiceKindStateful
44108	objectMap := make(map[string]interface{})
44109	if sspi.TargetReplicaSetSize != nil {
44110		objectMap["TargetReplicaSetSize"] = sspi.TargetReplicaSetSize
44111	}
44112	if sspi.MinReplicaSetSize != nil {
44113		objectMap["MinReplicaSetSize"] = sspi.MinReplicaSetSize
44114	}
44115	if sspi.LastQuorumLossDuration != nil {
44116		objectMap["LastQuorumLossDuration"] = sspi.LastQuorumLossDuration
44117	}
44118	if sspi.PrimaryEpoch != nil {
44119		objectMap["PrimaryEpoch"] = sspi.PrimaryEpoch
44120	}
44121	if sspi.HealthState != "" {
44122		objectMap["HealthState"] = sspi.HealthState
44123	}
44124	if sspi.PartitionStatus != "" {
44125		objectMap["PartitionStatus"] = sspi.PartitionStatus
44126	}
44127	objectMap["PartitionInformation"] = sspi.PartitionInformation
44128	if sspi.ServiceKind != "" {
44129		objectMap["ServiceKind"] = sspi.ServiceKind
44130	}
44131	return json.Marshal(objectMap)
44132}
44133
44134// AsStatefulServicePartitionInfo is the BasicServicePartitionInfo implementation for StatefulServicePartitionInfo.
44135func (sspi StatefulServicePartitionInfo) AsStatefulServicePartitionInfo() (*StatefulServicePartitionInfo, bool) {
44136	return &sspi, true
44137}
44138
44139// AsStatelessServicePartitionInfo is the BasicServicePartitionInfo implementation for StatefulServicePartitionInfo.
44140func (sspi StatefulServicePartitionInfo) AsStatelessServicePartitionInfo() (*StatelessServicePartitionInfo, bool) {
44141	return nil, false
44142}
44143
44144// AsServicePartitionInfo is the BasicServicePartitionInfo implementation for StatefulServicePartitionInfo.
44145func (sspi StatefulServicePartitionInfo) AsServicePartitionInfo() (*ServicePartitionInfo, bool) {
44146	return nil, false
44147}
44148
44149// AsBasicServicePartitionInfo is the BasicServicePartitionInfo implementation for StatefulServicePartitionInfo.
44150func (sspi StatefulServicePartitionInfo) AsBasicServicePartitionInfo() (BasicServicePartitionInfo, bool) {
44151	return &sspi, true
44152}
44153
44154// UnmarshalJSON is the custom unmarshaler for StatefulServicePartitionInfo struct.
44155func (sspi *StatefulServicePartitionInfo) UnmarshalJSON(body []byte) error {
44156	var m map[string]*json.RawMessage
44157	err := json.Unmarshal(body, &m)
44158	if err != nil {
44159		return err
44160	}
44161	for k, v := range m {
44162		switch k {
44163		case "TargetReplicaSetSize":
44164			if v != nil {
44165				var targetReplicaSetSize int64
44166				err = json.Unmarshal(*v, &targetReplicaSetSize)
44167				if err != nil {
44168					return err
44169				}
44170				sspi.TargetReplicaSetSize = &targetReplicaSetSize
44171			}
44172		case "MinReplicaSetSize":
44173			if v != nil {
44174				var minReplicaSetSize int64
44175				err = json.Unmarshal(*v, &minReplicaSetSize)
44176				if err != nil {
44177					return err
44178				}
44179				sspi.MinReplicaSetSize = &minReplicaSetSize
44180			}
44181		case "LastQuorumLossDuration":
44182			if v != nil {
44183				var lastQuorumLossDuration string
44184				err = json.Unmarshal(*v, &lastQuorumLossDuration)
44185				if err != nil {
44186					return err
44187				}
44188				sspi.LastQuorumLossDuration = &lastQuorumLossDuration
44189			}
44190		case "PrimaryEpoch":
44191			if v != nil {
44192				var primaryEpoch Epoch
44193				err = json.Unmarshal(*v, &primaryEpoch)
44194				if err != nil {
44195					return err
44196				}
44197				sspi.PrimaryEpoch = &primaryEpoch
44198			}
44199		case "HealthState":
44200			if v != nil {
44201				var healthState HealthState
44202				err = json.Unmarshal(*v, &healthState)
44203				if err != nil {
44204					return err
44205				}
44206				sspi.HealthState = healthState
44207			}
44208		case "PartitionStatus":
44209			if v != nil {
44210				var partitionStatus ServicePartitionStatus
44211				err = json.Unmarshal(*v, &partitionStatus)
44212				if err != nil {
44213					return err
44214				}
44215				sspi.PartitionStatus = partitionStatus
44216			}
44217		case "PartitionInformation":
44218			if v != nil {
44219				partitionInformation, err := unmarshalBasicPartitionInformation(*v)
44220				if err != nil {
44221					return err
44222				}
44223				sspi.PartitionInformation = partitionInformation
44224			}
44225		case "ServiceKind":
44226			if v != nil {
44227				var serviceKind ServiceKindBasicServicePartitionInfo
44228				err = json.Unmarshal(*v, &serviceKind)
44229				if err != nil {
44230					return err
44231				}
44232				sspi.ServiceKind = serviceKind
44233			}
44234		}
44235	}
44236
44237	return nil
44238}
44239
44240// StatefulServiceReplicaHealth represents the health of the stateful service replica.
44241// Contains the replica aggregated health state, the health events and the unhealthy evaluations.
44242type StatefulServiceReplicaHealth struct {
44243	// 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.
44244	ReplicaID *string `json:"ReplicaId,omitempty"`
44245	// PartitionID - Id of the partition to which this replica belongs.
44246	PartitionID *uuid.UUID `json:"PartitionId,omitempty"`
44247	// ServiceKind - Possible values include: 'ServiceKindBasicReplicaHealthServiceKindReplicaHealth', 'ServiceKindBasicReplicaHealthServiceKindStateful', 'ServiceKindBasicReplicaHealthServiceKindStateless'
44248	ServiceKind ServiceKindBasicReplicaHealth `json:"ServiceKind,omitempty"`
44249	// AggregatedHealthState - The HealthState representing the aggregated health state of the entity computed by Health Manager.
44250	// The health evaluation of the entity reflects all events reported on the entity and its children (if any).
44251	// The aggregation is done by applying the desired health policy. Possible values include: 'HealthStateInvalid', 'HealthStateOk', 'HealthStateWarning', 'HealthStateError', 'HealthStateUnknown'
44252	AggregatedHealthState HealthState `json:"AggregatedHealthState,omitempty"`
44253	// HealthEvents - The list of health events reported on the entity.
44254	HealthEvents *[]HealthEvent `json:"HealthEvents,omitempty"`
44255	// UnhealthyEvaluations - The unhealthy evaluations that show why the current aggregated health state was returned by Health Manager.
44256	UnhealthyEvaluations *[]HealthEvaluationWrapper `json:"UnhealthyEvaluations,omitempty"`
44257	// HealthStatistics - Shows the health statistics for all children types of the queried entity.
44258	HealthStatistics *HealthStatistics `json:"HealthStatistics,omitempty"`
44259}
44260
44261// MarshalJSON is the custom marshaler for StatefulServiceReplicaHealth.
44262func (ssrh StatefulServiceReplicaHealth) MarshalJSON() ([]byte, error) {
44263	ssrh.ServiceKind = ServiceKindBasicReplicaHealthServiceKindStateful
44264	objectMap := make(map[string]interface{})
44265	if ssrh.ReplicaID != nil {
44266		objectMap["ReplicaId"] = ssrh.ReplicaID
44267	}
44268	if ssrh.PartitionID != nil {
44269		objectMap["PartitionId"] = ssrh.PartitionID
44270	}
44271	if ssrh.ServiceKind != "" {
44272		objectMap["ServiceKind"] = ssrh.ServiceKind
44273	}
44274	if ssrh.AggregatedHealthState != "" {
44275		objectMap["AggregatedHealthState"] = ssrh.AggregatedHealthState
44276	}
44277	if ssrh.HealthEvents != nil {
44278		objectMap["HealthEvents"] = ssrh.HealthEvents
44279	}
44280	if ssrh.UnhealthyEvaluations != nil {
44281		objectMap["UnhealthyEvaluations"] = ssrh.UnhealthyEvaluations
44282	}
44283	if ssrh.HealthStatistics != nil {
44284		objectMap["HealthStatistics"] = ssrh.HealthStatistics
44285	}
44286	return json.Marshal(objectMap)
44287}
44288
44289// AsStatefulServiceReplicaHealth is the BasicReplicaHealth implementation for StatefulServiceReplicaHealth.
44290func (ssrh StatefulServiceReplicaHealth) AsStatefulServiceReplicaHealth() (*StatefulServiceReplicaHealth, bool) {
44291	return &ssrh, true
44292}
44293
44294// AsStatelessServiceInstanceHealth is the BasicReplicaHealth implementation for StatefulServiceReplicaHealth.
44295func (ssrh StatefulServiceReplicaHealth) AsStatelessServiceInstanceHealth() (*StatelessServiceInstanceHealth, bool) {
44296	return nil, false
44297}
44298
44299// AsReplicaHealth is the BasicReplicaHealth implementation for StatefulServiceReplicaHealth.
44300func (ssrh StatefulServiceReplicaHealth) AsReplicaHealth() (*ReplicaHealth, bool) {
44301	return nil, false
44302}
44303
44304// AsBasicReplicaHealth is the BasicReplicaHealth implementation for StatefulServiceReplicaHealth.
44305func (ssrh StatefulServiceReplicaHealth) AsBasicReplicaHealth() (BasicReplicaHealth, bool) {
44306	return &ssrh, true
44307}
44308
44309// StatefulServiceReplicaHealthState represents the health state of the stateful service replica, which
44310// contains the replica ID and the aggregated health state.
44311type StatefulServiceReplicaHealthState struct {
44312	// 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.
44313	ReplicaID *string `json:"ReplicaId,omitempty"`
44314	// PartitionID - The ID of the partition to which this replica belongs.
44315	PartitionID *uuid.UUID `json:"PartitionId,omitempty"`
44316	// ServiceKind - Possible values include: 'ServiceKindBasicReplicaHealthStateServiceKindReplicaHealthState', 'ServiceKindBasicReplicaHealthStateServiceKindStateful', 'ServiceKindBasicReplicaHealthStateServiceKindStateless'
44317	ServiceKind ServiceKindBasicReplicaHealthState `json:"ServiceKind,omitempty"`
44318	// 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'
44319	AggregatedHealthState HealthState `json:"AggregatedHealthState,omitempty"`
44320}
44321
44322// MarshalJSON is the custom marshaler for StatefulServiceReplicaHealthState.
44323func (ssrhs StatefulServiceReplicaHealthState) MarshalJSON() ([]byte, error) {
44324	ssrhs.ServiceKind = ServiceKindBasicReplicaHealthStateServiceKindStateful
44325	objectMap := make(map[string]interface{})
44326	if ssrhs.ReplicaID != nil {
44327		objectMap["ReplicaId"] = ssrhs.ReplicaID
44328	}
44329	if ssrhs.PartitionID != nil {
44330		objectMap["PartitionId"] = ssrhs.PartitionID
44331	}
44332	if ssrhs.ServiceKind != "" {
44333		objectMap["ServiceKind"] = ssrhs.ServiceKind
44334	}
44335	if ssrhs.AggregatedHealthState != "" {
44336		objectMap["AggregatedHealthState"] = ssrhs.AggregatedHealthState
44337	}
44338	return json.Marshal(objectMap)
44339}
44340
44341// AsStatefulServiceReplicaHealthState is the BasicReplicaHealthState implementation for StatefulServiceReplicaHealthState.
44342func (ssrhs StatefulServiceReplicaHealthState) AsStatefulServiceReplicaHealthState() (*StatefulServiceReplicaHealthState, bool) {
44343	return &ssrhs, true
44344}
44345
44346// AsStatelessServiceInstanceHealthState is the BasicReplicaHealthState implementation for StatefulServiceReplicaHealthState.
44347func (ssrhs StatefulServiceReplicaHealthState) AsStatelessServiceInstanceHealthState() (*StatelessServiceInstanceHealthState, bool) {
44348	return nil, false
44349}
44350
44351// AsReplicaHealthState is the BasicReplicaHealthState implementation for StatefulServiceReplicaHealthState.
44352func (ssrhs StatefulServiceReplicaHealthState) AsReplicaHealthState() (*ReplicaHealthState, bool) {
44353	return nil, false
44354}
44355
44356// AsBasicReplicaHealthState is the BasicReplicaHealthState implementation for StatefulServiceReplicaHealthState.
44357func (ssrhs StatefulServiceReplicaHealthState) AsBasicReplicaHealthState() (BasicReplicaHealthState, bool) {
44358	return &ssrhs, true
44359}
44360
44361// StatefulServiceReplicaInfo represents a stateful service replica. This includes information about the
44362// identity, role, status, health, node name, uptime, and other details about the replica.
44363type StatefulServiceReplicaInfo struct {
44364	// ReplicaRole - The role of a replica of a stateful service. Possible values include: 'ReplicaRoleUnknown', 'ReplicaRoleNone', 'ReplicaRolePrimary', 'ReplicaRoleIdleSecondary', 'ReplicaRoleActiveSecondary'
44365	ReplicaRole ReplicaRole `json:"ReplicaRole,omitempty"`
44366	// 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.
44367	ReplicaID *string `json:"ReplicaId,omitempty"`
44368	// ReplicaStatus - The status of a replica of a service. Possible values include: 'ReplicaStatusInvalid', 'ReplicaStatusInBuild', 'ReplicaStatusStandby', 'ReplicaStatusReady', 'ReplicaStatusDown', 'ReplicaStatusDropped'
44369	ReplicaStatus ReplicaStatus `json:"ReplicaStatus,omitempty"`
44370	// 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'
44371	HealthState HealthState `json:"HealthState,omitempty"`
44372	// NodeName - The name of a Service Fabric node.
44373	NodeName *string `json:"NodeName,omitempty"`
44374	// Address - The address the replica is listening on.
44375	Address *string `json:"Address,omitempty"`
44376	// LastInBuildDurationInSeconds - The last in build duration of the replica in seconds.
44377	LastInBuildDurationInSeconds *string `json:"LastInBuildDurationInSeconds,omitempty"`
44378	// ServiceKind - Possible values include: 'ServiceKindBasicReplicaInfoServiceKindReplicaInfo', 'ServiceKindBasicReplicaInfoServiceKindStateful', 'ServiceKindBasicReplicaInfoServiceKindStateless'
44379	ServiceKind ServiceKindBasicReplicaInfo `json:"ServiceKind,omitempty"`
44380}
44381
44382// MarshalJSON is the custom marshaler for StatefulServiceReplicaInfo.
44383func (ssri StatefulServiceReplicaInfo) MarshalJSON() ([]byte, error) {
44384	ssri.ServiceKind = ServiceKindBasicReplicaInfoServiceKindStateful
44385	objectMap := make(map[string]interface{})
44386	if ssri.ReplicaRole != "" {
44387		objectMap["ReplicaRole"] = ssri.ReplicaRole
44388	}
44389	if ssri.ReplicaID != nil {
44390		objectMap["ReplicaId"] = ssri.ReplicaID
44391	}
44392	if ssri.ReplicaStatus != "" {
44393		objectMap["ReplicaStatus"] = ssri.ReplicaStatus
44394	}
44395	if ssri.HealthState != "" {
44396		objectMap["HealthState"] = ssri.HealthState
44397	}
44398	if ssri.NodeName != nil {
44399		objectMap["NodeName"] = ssri.NodeName
44400	}
44401	if ssri.Address != nil {
44402		objectMap["Address"] = ssri.Address
44403	}
44404	if ssri.LastInBuildDurationInSeconds != nil {
44405		objectMap["LastInBuildDurationInSeconds"] = ssri.LastInBuildDurationInSeconds
44406	}
44407	if ssri.ServiceKind != "" {
44408		objectMap["ServiceKind"] = ssri.ServiceKind
44409	}
44410	return json.Marshal(objectMap)
44411}
44412
44413// AsStatefulServiceReplicaInfo is the BasicReplicaInfo implementation for StatefulServiceReplicaInfo.
44414func (ssri StatefulServiceReplicaInfo) AsStatefulServiceReplicaInfo() (*StatefulServiceReplicaInfo, bool) {
44415	return &ssri, true
44416}
44417
44418// AsStatelessServiceInstanceInfo is the BasicReplicaInfo implementation for StatefulServiceReplicaInfo.
44419func (ssri StatefulServiceReplicaInfo) AsStatelessServiceInstanceInfo() (*StatelessServiceInstanceInfo, bool) {
44420	return nil, false
44421}
44422
44423// AsReplicaInfo is the BasicReplicaInfo implementation for StatefulServiceReplicaInfo.
44424func (ssri StatefulServiceReplicaInfo) AsReplicaInfo() (*ReplicaInfo, bool) {
44425	return nil, false
44426}
44427
44428// AsBasicReplicaInfo is the BasicReplicaInfo implementation for StatefulServiceReplicaInfo.
44429func (ssri StatefulServiceReplicaInfo) AsBasicReplicaInfo() (BasicReplicaInfo, bool) {
44430	return &ssri, true
44431}
44432
44433// StatefulServiceTypeDescription describes a stateful service type defined in the service manifest of a
44434// provisioned application type.
44435type StatefulServiceTypeDescription struct {
44436	// 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.
44437	HasPersistedState *bool `json:"HasPersistedState,omitempty"`
44438	// 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.
44439	IsStateful *bool `json:"IsStateful,omitempty"`
44440	// ServiceTypeName - Name of the service type as specified in the service manifest.
44441	ServiceTypeName *string `json:"ServiceTypeName,omitempty"`
44442	// PlacementConstraints - The placement constraint to be used when instantiating this service in a Service Fabric cluster.
44443	PlacementConstraints *string `json:"PlacementConstraints,omitempty"`
44444	// LoadMetrics - The service load metrics is given as an array of ServiceLoadMetricDescription objects.
44445	LoadMetrics *[]ServiceLoadMetricDescription `json:"LoadMetrics,omitempty"`
44446	// ServicePlacementPolicies - List of service placement policy descriptions.
44447	ServicePlacementPolicies *[]BasicServicePlacementPolicyDescription `json:"ServicePlacementPolicies,omitempty"`
44448	// Extensions - List of service type extensions.
44449	Extensions *[]ServiceTypeExtensionDescription `json:"Extensions,omitempty"`
44450	// Kind - Possible values include: 'KindServiceTypeDescription', 'KindStateful', 'KindStateless'
44451	Kind KindBasicServiceTypeDescription `json:"Kind,omitempty"`
44452}
44453
44454// MarshalJSON is the custom marshaler for StatefulServiceTypeDescription.
44455func (sstd StatefulServiceTypeDescription) MarshalJSON() ([]byte, error) {
44456	sstd.Kind = KindStateful
44457	objectMap := make(map[string]interface{})
44458	if sstd.HasPersistedState != nil {
44459		objectMap["HasPersistedState"] = sstd.HasPersistedState
44460	}
44461	if sstd.IsStateful != nil {
44462		objectMap["IsStateful"] = sstd.IsStateful
44463	}
44464	if sstd.ServiceTypeName != nil {
44465		objectMap["ServiceTypeName"] = sstd.ServiceTypeName
44466	}
44467	if sstd.PlacementConstraints != nil {
44468		objectMap["PlacementConstraints"] = sstd.PlacementConstraints
44469	}
44470	if sstd.LoadMetrics != nil {
44471		objectMap["LoadMetrics"] = sstd.LoadMetrics
44472	}
44473	if sstd.ServicePlacementPolicies != nil {
44474		objectMap["ServicePlacementPolicies"] = sstd.ServicePlacementPolicies
44475	}
44476	if sstd.Extensions != nil {
44477		objectMap["Extensions"] = sstd.Extensions
44478	}
44479	if sstd.Kind != "" {
44480		objectMap["Kind"] = sstd.Kind
44481	}
44482	return json.Marshal(objectMap)
44483}
44484
44485// AsStatefulServiceTypeDescription is the BasicServiceTypeDescription implementation for StatefulServiceTypeDescription.
44486func (sstd StatefulServiceTypeDescription) AsStatefulServiceTypeDescription() (*StatefulServiceTypeDescription, bool) {
44487	return &sstd, true
44488}
44489
44490// AsStatelessServiceTypeDescription is the BasicServiceTypeDescription implementation for StatefulServiceTypeDescription.
44491func (sstd StatefulServiceTypeDescription) AsStatelessServiceTypeDescription() (*StatelessServiceTypeDescription, bool) {
44492	return nil, false
44493}
44494
44495// AsServiceTypeDescription is the BasicServiceTypeDescription implementation for StatefulServiceTypeDescription.
44496func (sstd StatefulServiceTypeDescription) AsServiceTypeDescription() (*ServiceTypeDescription, bool) {
44497	return nil, false
44498}
44499
44500// AsBasicServiceTypeDescription is the BasicServiceTypeDescription implementation for StatefulServiceTypeDescription.
44501func (sstd StatefulServiceTypeDescription) AsBasicServiceTypeDescription() (BasicServiceTypeDescription, bool) {
44502	return &sstd, true
44503}
44504
44505// UnmarshalJSON is the custom unmarshaler for StatefulServiceTypeDescription struct.
44506func (sstd *StatefulServiceTypeDescription) UnmarshalJSON(body []byte) error {
44507	var m map[string]*json.RawMessage
44508	err := json.Unmarshal(body, &m)
44509	if err != nil {
44510		return err
44511	}
44512	for k, v := range m {
44513		switch k {
44514		case "HasPersistedState":
44515			if v != nil {
44516				var hasPersistedState bool
44517				err = json.Unmarshal(*v, &hasPersistedState)
44518				if err != nil {
44519					return err
44520				}
44521				sstd.HasPersistedState = &hasPersistedState
44522			}
44523		case "IsStateful":
44524			if v != nil {
44525				var isStateful bool
44526				err = json.Unmarshal(*v, &isStateful)
44527				if err != nil {
44528					return err
44529				}
44530				sstd.IsStateful = &isStateful
44531			}
44532		case "ServiceTypeName":
44533			if v != nil {
44534				var serviceTypeName string
44535				err = json.Unmarshal(*v, &serviceTypeName)
44536				if err != nil {
44537					return err
44538				}
44539				sstd.ServiceTypeName = &serviceTypeName
44540			}
44541		case "PlacementConstraints":
44542			if v != nil {
44543				var placementConstraints string
44544				err = json.Unmarshal(*v, &placementConstraints)
44545				if err != nil {
44546					return err
44547				}
44548				sstd.PlacementConstraints = &placementConstraints
44549			}
44550		case "LoadMetrics":
44551			if v != nil {
44552				var loadMetrics []ServiceLoadMetricDescription
44553				err = json.Unmarshal(*v, &loadMetrics)
44554				if err != nil {
44555					return err
44556				}
44557				sstd.LoadMetrics = &loadMetrics
44558			}
44559		case "ServicePlacementPolicies":
44560			if v != nil {
44561				servicePlacementPolicies, err := unmarshalBasicServicePlacementPolicyDescriptionArray(*v)
44562				if err != nil {
44563					return err
44564				}
44565				sstd.ServicePlacementPolicies = &servicePlacementPolicies
44566			}
44567		case "Extensions":
44568			if v != nil {
44569				var extensions []ServiceTypeExtensionDescription
44570				err = json.Unmarshal(*v, &extensions)
44571				if err != nil {
44572					return err
44573				}
44574				sstd.Extensions = &extensions
44575			}
44576		case "Kind":
44577			if v != nil {
44578				var kind KindBasicServiceTypeDescription
44579				err = json.Unmarshal(*v, &kind)
44580				if err != nil {
44581					return err
44582				}
44583				sstd.Kind = kind
44584			}
44585		}
44586	}
44587
44588	return nil
44589}
44590
44591// StatefulServiceUpdateDescription describes an update for a stateful service.
44592type StatefulServiceUpdateDescription struct {
44593	// TargetReplicaSetSize - The target replica set size as a number.
44594	TargetReplicaSetSize *int32 `json:"TargetReplicaSetSize,omitempty"`
44595	// MinReplicaSetSize - The minimum replica set size as a number.
44596	MinReplicaSetSize *int32 `json:"MinReplicaSetSize,omitempty"`
44597	// ReplicaRestartWaitDurationSeconds - The duration, in seconds, between when a replica goes down and when a new replica is created.
44598	ReplicaRestartWaitDurationSeconds *string `json:"ReplicaRestartWaitDurationSeconds,omitempty"`
44599	// QuorumLossWaitDurationSeconds - The maximum duration, in seconds, for which a partition is allowed to be in a state of quorum loss.
44600	QuorumLossWaitDurationSeconds *string `json:"QuorumLossWaitDurationSeconds,omitempty"`
44601	// StandByReplicaKeepDurationSeconds - The definition on how long StandBy replicas should be maintained before being removed.
44602	StandByReplicaKeepDurationSeconds *string `json:"StandByReplicaKeepDurationSeconds,omitempty"`
44603	// 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.
44604	// This property can be a combination of those flags obtained using bitwise 'OR' operator.
44605	// For example, if the provided value is 6 then the flags for ReplicaRestartWaitDuration (2) and QuorumLossWaitDuration (4) are set.
44606	// - None - Does not indicate any other properties are set. The value is zero.
44607	// - TargetReplicaSetSize/InstanceCount - Indicates whether the TargetReplicaSetSize property (for Stateful services) or the InstanceCount property (for Stateless services) is set. The value is 1.
44608	// - ReplicaRestartWaitDuration - Indicates the ReplicaRestartWaitDuration property is set. The value is  2.
44609	// - QuorumLossWaitDuration - Indicates the QuorumLossWaitDuration property is set. The value is 4.
44610	// - StandByReplicaKeepDuration - Indicates the StandByReplicaKeepDuration property is set. The value is 8.
44611	// - MinReplicaSetSize - Indicates the MinReplicaSetSize property is set. The value is 16.
44612	// - PlacementConstraints - Indicates the PlacementConstraints property is set. The value is 32.
44613	// - PlacementPolicyList - Indicates the ServicePlacementPolicies property is set. The value is 64.
44614	// - Correlation - Indicates the CorrelationScheme property is set. The value is 128.
44615	// - Metrics - Indicates the ServiceLoadMetrics property is set. The value is 256.
44616	// - DefaultMoveCost - Indicates the DefaultMoveCost property is set. The value is 512.
44617	// - ScalingPolicy - Indicates the ScalingPolicies property is set. The value is 1024.
44618	Flags *string `json:"Flags,omitempty"`
44619	// 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)".
44620	PlacementConstraints *string `json:"PlacementConstraints,omitempty"`
44621	// CorrelationScheme - The correlation scheme.
44622	CorrelationScheme *[]ServiceCorrelationDescription `json:"CorrelationScheme,omitempty"`
44623	// LoadMetrics - The service load metrics.
44624	LoadMetrics *[]ServiceLoadMetricDescription `json:"LoadMetrics,omitempty"`
44625	// ServicePlacementPolicies - The service placement policies.
44626	ServicePlacementPolicies *[]BasicServicePlacementPolicyDescription `json:"ServicePlacementPolicies,omitempty"`
44627	// DefaultMoveCost - The move cost for the service. Possible values include: 'Zero', 'Low', 'Medium', 'High'
44628	DefaultMoveCost MoveCost `json:"DefaultMoveCost,omitempty"`
44629	// ScalingPolicies - Scaling policies for this service.
44630	ScalingPolicies *[]ScalingPolicyDescription `json:"ScalingPolicies,omitempty"`
44631	// ServiceKind - Possible values include: 'ServiceKindBasicServiceUpdateDescriptionServiceKindServiceUpdateDescription', 'ServiceKindBasicServiceUpdateDescriptionServiceKindStateful', 'ServiceKindBasicServiceUpdateDescriptionServiceKindStateless'
44632	ServiceKind ServiceKindBasicServiceUpdateDescription `json:"ServiceKind,omitempty"`
44633}
44634
44635// MarshalJSON is the custom marshaler for StatefulServiceUpdateDescription.
44636func (ssud StatefulServiceUpdateDescription) MarshalJSON() ([]byte, error) {
44637	ssud.ServiceKind = ServiceKindBasicServiceUpdateDescriptionServiceKindStateful
44638	objectMap := make(map[string]interface{})
44639	if ssud.TargetReplicaSetSize != nil {
44640		objectMap["TargetReplicaSetSize"] = ssud.TargetReplicaSetSize
44641	}
44642	if ssud.MinReplicaSetSize != nil {
44643		objectMap["MinReplicaSetSize"] = ssud.MinReplicaSetSize
44644	}
44645	if ssud.ReplicaRestartWaitDurationSeconds != nil {
44646		objectMap["ReplicaRestartWaitDurationSeconds"] = ssud.ReplicaRestartWaitDurationSeconds
44647	}
44648	if ssud.QuorumLossWaitDurationSeconds != nil {
44649		objectMap["QuorumLossWaitDurationSeconds"] = ssud.QuorumLossWaitDurationSeconds
44650	}
44651	if ssud.StandByReplicaKeepDurationSeconds != nil {
44652		objectMap["StandByReplicaKeepDurationSeconds"] = ssud.StandByReplicaKeepDurationSeconds
44653	}
44654	if ssud.Flags != nil {
44655		objectMap["Flags"] = ssud.Flags
44656	}
44657	if ssud.PlacementConstraints != nil {
44658		objectMap["PlacementConstraints"] = ssud.PlacementConstraints
44659	}
44660	if ssud.CorrelationScheme != nil {
44661		objectMap["CorrelationScheme"] = ssud.CorrelationScheme
44662	}
44663	if ssud.LoadMetrics != nil {
44664		objectMap["LoadMetrics"] = ssud.LoadMetrics
44665	}
44666	if ssud.ServicePlacementPolicies != nil {
44667		objectMap["ServicePlacementPolicies"] = ssud.ServicePlacementPolicies
44668	}
44669	if ssud.DefaultMoveCost != "" {
44670		objectMap["DefaultMoveCost"] = ssud.DefaultMoveCost
44671	}
44672	if ssud.ScalingPolicies != nil {
44673		objectMap["ScalingPolicies"] = ssud.ScalingPolicies
44674	}
44675	if ssud.ServiceKind != "" {
44676		objectMap["ServiceKind"] = ssud.ServiceKind
44677	}
44678	return json.Marshal(objectMap)
44679}
44680
44681// AsStatefulServiceUpdateDescription is the BasicServiceUpdateDescription implementation for StatefulServiceUpdateDescription.
44682func (ssud StatefulServiceUpdateDescription) AsStatefulServiceUpdateDescription() (*StatefulServiceUpdateDescription, bool) {
44683	return &ssud, true
44684}
44685
44686// AsStatelessServiceUpdateDescription is the BasicServiceUpdateDescription implementation for StatefulServiceUpdateDescription.
44687func (ssud StatefulServiceUpdateDescription) AsStatelessServiceUpdateDescription() (*StatelessServiceUpdateDescription, bool) {
44688	return nil, false
44689}
44690
44691// AsServiceUpdateDescription is the BasicServiceUpdateDescription implementation for StatefulServiceUpdateDescription.
44692func (ssud StatefulServiceUpdateDescription) AsServiceUpdateDescription() (*ServiceUpdateDescription, bool) {
44693	return nil, false
44694}
44695
44696// AsBasicServiceUpdateDescription is the BasicServiceUpdateDescription implementation for StatefulServiceUpdateDescription.
44697func (ssud StatefulServiceUpdateDescription) AsBasicServiceUpdateDescription() (BasicServiceUpdateDescription, bool) {
44698	return &ssud, true
44699}
44700
44701// UnmarshalJSON is the custom unmarshaler for StatefulServiceUpdateDescription struct.
44702func (ssud *StatefulServiceUpdateDescription) UnmarshalJSON(body []byte) error {
44703	var m map[string]*json.RawMessage
44704	err := json.Unmarshal(body, &m)
44705	if err != nil {
44706		return err
44707	}
44708	for k, v := range m {
44709		switch k {
44710		case "TargetReplicaSetSize":
44711			if v != nil {
44712				var targetReplicaSetSize int32
44713				err = json.Unmarshal(*v, &targetReplicaSetSize)
44714				if err != nil {
44715					return err
44716				}
44717				ssud.TargetReplicaSetSize = &targetReplicaSetSize
44718			}
44719		case "MinReplicaSetSize":
44720			if v != nil {
44721				var minReplicaSetSize int32
44722				err = json.Unmarshal(*v, &minReplicaSetSize)
44723				if err != nil {
44724					return err
44725				}
44726				ssud.MinReplicaSetSize = &minReplicaSetSize
44727			}
44728		case "ReplicaRestartWaitDurationSeconds":
44729			if v != nil {
44730				var replicaRestartWaitDurationSeconds string
44731				err = json.Unmarshal(*v, &replicaRestartWaitDurationSeconds)
44732				if err != nil {
44733					return err
44734				}
44735				ssud.ReplicaRestartWaitDurationSeconds = &replicaRestartWaitDurationSeconds
44736			}
44737		case "QuorumLossWaitDurationSeconds":
44738			if v != nil {
44739				var quorumLossWaitDurationSeconds string
44740				err = json.Unmarshal(*v, &quorumLossWaitDurationSeconds)
44741				if err != nil {
44742					return err
44743				}
44744				ssud.QuorumLossWaitDurationSeconds = &quorumLossWaitDurationSeconds
44745			}
44746		case "StandByReplicaKeepDurationSeconds":
44747			if v != nil {
44748				var standByReplicaKeepDurationSeconds string
44749				err = json.Unmarshal(*v, &standByReplicaKeepDurationSeconds)
44750				if err != nil {
44751					return err
44752				}
44753				ssud.StandByReplicaKeepDurationSeconds = &standByReplicaKeepDurationSeconds
44754			}
44755		case "Flags":
44756			if v != nil {
44757				var flags string
44758				err = json.Unmarshal(*v, &flags)
44759				if err != nil {
44760					return err
44761				}
44762				ssud.Flags = &flags
44763			}
44764		case "PlacementConstraints":
44765			if v != nil {
44766				var placementConstraints string
44767				err = json.Unmarshal(*v, &placementConstraints)
44768				if err != nil {
44769					return err
44770				}
44771				ssud.PlacementConstraints = &placementConstraints
44772			}
44773		case "CorrelationScheme":
44774			if v != nil {
44775				var correlationScheme []ServiceCorrelationDescription
44776				err = json.Unmarshal(*v, &correlationScheme)
44777				if err != nil {
44778					return err
44779				}
44780				ssud.CorrelationScheme = &correlationScheme
44781			}
44782		case "LoadMetrics":
44783			if v != nil {
44784				var loadMetrics []ServiceLoadMetricDescription
44785				err = json.Unmarshal(*v, &loadMetrics)
44786				if err != nil {
44787					return err
44788				}
44789				ssud.LoadMetrics = &loadMetrics
44790			}
44791		case "ServicePlacementPolicies":
44792			if v != nil {
44793				servicePlacementPolicies, err := unmarshalBasicServicePlacementPolicyDescriptionArray(*v)
44794				if err != nil {
44795					return err
44796				}
44797				ssud.ServicePlacementPolicies = &servicePlacementPolicies
44798			}
44799		case "DefaultMoveCost":
44800			if v != nil {
44801				var defaultMoveCost MoveCost
44802				err = json.Unmarshal(*v, &defaultMoveCost)
44803				if err != nil {
44804					return err
44805				}
44806				ssud.DefaultMoveCost = defaultMoveCost
44807			}
44808		case "ScalingPolicies":
44809			if v != nil {
44810				var scalingPolicies []ScalingPolicyDescription
44811				err = json.Unmarshal(*v, &scalingPolicies)
44812				if err != nil {
44813					return err
44814				}
44815				ssud.ScalingPolicies = &scalingPolicies
44816			}
44817		case "ServiceKind":
44818			if v != nil {
44819				var serviceKind ServiceKindBasicServiceUpdateDescription
44820				err = json.Unmarshal(*v, &serviceKind)
44821				if err != nil {
44822					return err
44823				}
44824				ssud.ServiceKind = serviceKind
44825			}
44826		}
44827	}
44828
44829	return nil
44830}
44831
44832// StatelessReplicaHealthReportExpiredEvent stateless Replica Health Report Expired event.
44833type StatelessReplicaHealthReportExpiredEvent struct {
44834	// SourceID - Id of report source.
44835	SourceID *string `json:"SourceId,omitempty"`
44836	// Property - Describes the property.
44837	Property *string `json:"Property,omitempty"`
44838	// HealthState - Describes the property health state.
44839	HealthState *string `json:"HealthState,omitempty"`
44840	// TimeToLiveMs - Time to live in milli-seconds.
44841	TimeToLiveMs *int64 `json:"TimeToLiveMs,omitempty"`
44842	// SequenceNumber - Sequence number of report.
44843	SequenceNumber *int64 `json:"SequenceNumber,omitempty"`
44844	// Description - Description of report.
44845	Description *string `json:"Description,omitempty"`
44846	// RemoveWhenExpired - Indicates the removal when it expires.
44847	RemoveWhenExpired *bool `json:"RemoveWhenExpired,omitempty"`
44848	// SourceUtcTimestamp - Source time.
44849	SourceUtcTimestamp *date.Time `json:"SourceUtcTimestamp,omitempty"`
44850	// 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.
44851	PartitionID *uuid.UUID `json:"PartitionId,omitempty"`
44852	// 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.
44853	ReplicaID *int64 `json:"ReplicaId,omitempty"`
44854	// EventInstanceID - The identifier for the FabricEvent instance.
44855	EventInstanceID *uuid.UUID `json:"EventInstanceId,omitempty"`
44856	// Category - The category of event.
44857	Category *string `json:"Category,omitempty"`
44858	// TimeStamp - The time event was logged.
44859	TimeStamp *date.Time `json:"TimeStamp,omitempty"`
44860	// HasCorrelatedEvents - Shows there is existing related events available.
44861	HasCorrelatedEvents *bool `json:"HasCorrelatedEvents,omitempty"`
44862	// 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'
44863	Kind KindBasicFabricEvent `json:"Kind,omitempty"`
44864}
44865
44866// MarshalJSON is the custom marshaler for StatelessReplicaHealthReportExpiredEvent.
44867func (srhree StatelessReplicaHealthReportExpiredEvent) MarshalJSON() ([]byte, error) {
44868	srhree.Kind = KindStatelessReplicaHealthReportExpired
44869	objectMap := make(map[string]interface{})
44870	if srhree.SourceID != nil {
44871		objectMap["SourceId"] = srhree.SourceID
44872	}
44873	if srhree.Property != nil {
44874		objectMap["Property"] = srhree.Property
44875	}
44876	if srhree.HealthState != nil {
44877		objectMap["HealthState"] = srhree.HealthState
44878	}
44879	if srhree.TimeToLiveMs != nil {
44880		objectMap["TimeToLiveMs"] = srhree.TimeToLiveMs
44881	}
44882	if srhree.SequenceNumber != nil {
44883		objectMap["SequenceNumber"] = srhree.SequenceNumber
44884	}
44885	if srhree.Description != nil {
44886		objectMap["Description"] = srhree.Description
44887	}
44888	if srhree.RemoveWhenExpired != nil {
44889		objectMap["RemoveWhenExpired"] = srhree.RemoveWhenExpired
44890	}
44891	if srhree.SourceUtcTimestamp != nil {
44892		objectMap["SourceUtcTimestamp"] = srhree.SourceUtcTimestamp
44893	}
44894	if srhree.PartitionID != nil {
44895		objectMap["PartitionId"] = srhree.PartitionID
44896	}
44897	if srhree.ReplicaID != nil {
44898		objectMap["ReplicaId"] = srhree.ReplicaID
44899	}
44900	if srhree.EventInstanceID != nil {
44901		objectMap["EventInstanceId"] = srhree.EventInstanceID
44902	}
44903	if srhree.Category != nil {
44904		objectMap["Category"] = srhree.Category
44905	}
44906	if srhree.TimeStamp != nil {
44907		objectMap["TimeStamp"] = srhree.TimeStamp
44908	}
44909	if srhree.HasCorrelatedEvents != nil {
44910		objectMap["HasCorrelatedEvents"] = srhree.HasCorrelatedEvents
44911	}
44912	if srhree.Kind != "" {
44913		objectMap["Kind"] = srhree.Kind
44914	}
44915	return json.Marshal(objectMap)
44916}
44917
44918// AsApplicationEvent is the BasicFabricEvent implementation for StatelessReplicaHealthReportExpiredEvent.
44919func (srhree StatelessReplicaHealthReportExpiredEvent) AsApplicationEvent() (*ApplicationEvent, bool) {
44920	return nil, false
44921}
44922
44923// AsBasicApplicationEvent is the BasicFabricEvent implementation for StatelessReplicaHealthReportExpiredEvent.
44924func (srhree StatelessReplicaHealthReportExpiredEvent) AsBasicApplicationEvent() (BasicApplicationEvent, bool) {
44925	return nil, false
44926}
44927
44928// AsClusterEvent is the BasicFabricEvent implementation for StatelessReplicaHealthReportExpiredEvent.
44929func (srhree StatelessReplicaHealthReportExpiredEvent) AsClusterEvent() (*ClusterEvent, bool) {
44930	return nil, false
44931}
44932
44933// AsBasicClusterEvent is the BasicFabricEvent implementation for StatelessReplicaHealthReportExpiredEvent.
44934func (srhree StatelessReplicaHealthReportExpiredEvent) AsBasicClusterEvent() (BasicClusterEvent, bool) {
44935	return nil, false
44936}
44937
44938// AsContainerInstanceEvent is the BasicFabricEvent implementation for StatelessReplicaHealthReportExpiredEvent.
44939func (srhree StatelessReplicaHealthReportExpiredEvent) AsContainerInstanceEvent() (*ContainerInstanceEvent, bool) {
44940	return nil, false
44941}
44942
44943// AsNodeEvent is the BasicFabricEvent implementation for StatelessReplicaHealthReportExpiredEvent.
44944func (srhree StatelessReplicaHealthReportExpiredEvent) AsNodeEvent() (*NodeEvent, bool) {
44945	return nil, false
44946}
44947
44948// AsBasicNodeEvent is the BasicFabricEvent implementation for StatelessReplicaHealthReportExpiredEvent.
44949func (srhree StatelessReplicaHealthReportExpiredEvent) AsBasicNodeEvent() (BasicNodeEvent, bool) {
44950	return nil, false
44951}
44952
44953// AsPartitionAnalysisEvent is the BasicFabricEvent implementation for StatelessReplicaHealthReportExpiredEvent.
44954func (srhree StatelessReplicaHealthReportExpiredEvent) AsPartitionAnalysisEvent() (*PartitionAnalysisEvent, bool) {
44955	return nil, false
44956}
44957
44958// AsBasicPartitionAnalysisEvent is the BasicFabricEvent implementation for StatelessReplicaHealthReportExpiredEvent.
44959func (srhree StatelessReplicaHealthReportExpiredEvent) AsBasicPartitionAnalysisEvent() (BasicPartitionAnalysisEvent, bool) {
44960	return nil, false
44961}
44962
44963// AsPartitionEvent is the BasicFabricEvent implementation for StatelessReplicaHealthReportExpiredEvent.
44964func (srhree StatelessReplicaHealthReportExpiredEvent) AsPartitionEvent() (*PartitionEvent, bool) {
44965	return nil, false
44966}
44967
44968// AsBasicPartitionEvent is the BasicFabricEvent implementation for StatelessReplicaHealthReportExpiredEvent.
44969func (srhree StatelessReplicaHealthReportExpiredEvent) AsBasicPartitionEvent() (BasicPartitionEvent, bool) {
44970	return nil, false
44971}
44972
44973// AsReplicaEvent is the BasicFabricEvent implementation for StatelessReplicaHealthReportExpiredEvent.
44974func (srhree StatelessReplicaHealthReportExpiredEvent) AsReplicaEvent() (*ReplicaEvent, bool) {
44975	return nil, false
44976}
44977
44978// AsBasicReplicaEvent is the BasicFabricEvent implementation for StatelessReplicaHealthReportExpiredEvent.
44979func (srhree StatelessReplicaHealthReportExpiredEvent) AsBasicReplicaEvent() (BasicReplicaEvent, bool) {
44980	return &srhree, true
44981}
44982
44983// AsServiceEvent is the BasicFabricEvent implementation for StatelessReplicaHealthReportExpiredEvent.
44984func (srhree StatelessReplicaHealthReportExpiredEvent) AsServiceEvent() (*ServiceEvent, bool) {
44985	return nil, false
44986}
44987
44988// AsBasicServiceEvent is the BasicFabricEvent implementation for StatelessReplicaHealthReportExpiredEvent.
44989func (srhree StatelessReplicaHealthReportExpiredEvent) AsBasicServiceEvent() (BasicServiceEvent, bool) {
44990	return nil, false
44991}
44992
44993// AsApplicationCreatedEvent is the BasicFabricEvent implementation for StatelessReplicaHealthReportExpiredEvent.
44994func (srhree StatelessReplicaHealthReportExpiredEvent) AsApplicationCreatedEvent() (*ApplicationCreatedEvent, bool) {
44995	return nil, false
44996}
44997
44998// AsApplicationDeletedEvent is the BasicFabricEvent implementation for StatelessReplicaHealthReportExpiredEvent.
44999func (srhree StatelessReplicaHealthReportExpiredEvent) AsApplicationDeletedEvent() (*ApplicationDeletedEvent, bool) {
45000	return nil, false
45001}
45002
45003// AsApplicationNewHealthReportEvent is the BasicFabricEvent implementation for StatelessReplicaHealthReportExpiredEvent.
45004func (srhree StatelessReplicaHealthReportExpiredEvent) AsApplicationNewHealthReportEvent() (*ApplicationNewHealthReportEvent, bool) {
45005	return nil, false
45006}
45007
45008// AsApplicationHealthReportExpiredEvent is the BasicFabricEvent implementation for StatelessReplicaHealthReportExpiredEvent.
45009func (srhree StatelessReplicaHealthReportExpiredEvent) AsApplicationHealthReportExpiredEvent() (*ApplicationHealthReportExpiredEvent, bool) {
45010	return nil, false
45011}
45012
45013// AsApplicationUpgradeCompletedEvent is the BasicFabricEvent implementation for StatelessReplicaHealthReportExpiredEvent.
45014func (srhree StatelessReplicaHealthReportExpiredEvent) AsApplicationUpgradeCompletedEvent() (*ApplicationUpgradeCompletedEvent, bool) {
45015	return nil, false
45016}
45017
45018// AsApplicationUpgradeDomainCompletedEvent is the BasicFabricEvent implementation for StatelessReplicaHealthReportExpiredEvent.
45019func (srhree StatelessReplicaHealthReportExpiredEvent) AsApplicationUpgradeDomainCompletedEvent() (*ApplicationUpgradeDomainCompletedEvent, bool) {
45020	return nil, false
45021}
45022
45023// AsApplicationUpgradeRollbackCompletedEvent is the BasicFabricEvent implementation for StatelessReplicaHealthReportExpiredEvent.
45024func (srhree StatelessReplicaHealthReportExpiredEvent) AsApplicationUpgradeRollbackCompletedEvent() (*ApplicationUpgradeRollbackCompletedEvent, bool) {
45025	return nil, false
45026}
45027
45028// AsApplicationUpgradeRollbackStartedEvent is the BasicFabricEvent implementation for StatelessReplicaHealthReportExpiredEvent.
45029func (srhree StatelessReplicaHealthReportExpiredEvent) AsApplicationUpgradeRollbackStartedEvent() (*ApplicationUpgradeRollbackStartedEvent, bool) {
45030	return nil, false
45031}
45032
45033// AsApplicationUpgradeStartedEvent is the BasicFabricEvent implementation for StatelessReplicaHealthReportExpiredEvent.
45034func (srhree StatelessReplicaHealthReportExpiredEvent) AsApplicationUpgradeStartedEvent() (*ApplicationUpgradeStartedEvent, bool) {
45035	return nil, false
45036}
45037
45038// AsDeployedApplicationNewHealthReportEvent is the BasicFabricEvent implementation for StatelessReplicaHealthReportExpiredEvent.
45039func (srhree StatelessReplicaHealthReportExpiredEvent) AsDeployedApplicationNewHealthReportEvent() (*DeployedApplicationNewHealthReportEvent, bool) {
45040	return nil, false
45041}
45042
45043// AsDeployedApplicationHealthReportExpiredEvent is the BasicFabricEvent implementation for StatelessReplicaHealthReportExpiredEvent.
45044func (srhree StatelessReplicaHealthReportExpiredEvent) AsDeployedApplicationHealthReportExpiredEvent() (*DeployedApplicationHealthReportExpiredEvent, bool) {
45045	return nil, false
45046}
45047
45048// AsApplicationProcessExitedEvent is the BasicFabricEvent implementation for StatelessReplicaHealthReportExpiredEvent.
45049func (srhree StatelessReplicaHealthReportExpiredEvent) AsApplicationProcessExitedEvent() (*ApplicationProcessExitedEvent, bool) {
45050	return nil, false
45051}
45052
45053// AsApplicationContainerInstanceExitedEvent is the BasicFabricEvent implementation for StatelessReplicaHealthReportExpiredEvent.
45054func (srhree StatelessReplicaHealthReportExpiredEvent) AsApplicationContainerInstanceExitedEvent() (*ApplicationContainerInstanceExitedEvent, bool) {
45055	return nil, false
45056}
45057
45058// AsNodeAbortedEvent is the BasicFabricEvent implementation for StatelessReplicaHealthReportExpiredEvent.
45059func (srhree StatelessReplicaHealthReportExpiredEvent) AsNodeAbortedEvent() (*NodeAbortedEvent, bool) {
45060	return nil, false
45061}
45062
45063// AsNodeAddedToClusterEvent is the BasicFabricEvent implementation for StatelessReplicaHealthReportExpiredEvent.
45064func (srhree StatelessReplicaHealthReportExpiredEvent) AsNodeAddedToClusterEvent() (*NodeAddedToClusterEvent, bool) {
45065	return nil, false
45066}
45067
45068// AsNodeClosedEvent is the BasicFabricEvent implementation for StatelessReplicaHealthReportExpiredEvent.
45069func (srhree StatelessReplicaHealthReportExpiredEvent) AsNodeClosedEvent() (*NodeClosedEvent, bool) {
45070	return nil, false
45071}
45072
45073// AsNodeDeactivateCompletedEvent is the BasicFabricEvent implementation for StatelessReplicaHealthReportExpiredEvent.
45074func (srhree StatelessReplicaHealthReportExpiredEvent) AsNodeDeactivateCompletedEvent() (*NodeDeactivateCompletedEvent, bool) {
45075	return nil, false
45076}
45077
45078// AsNodeDeactivateStartedEvent is the BasicFabricEvent implementation for StatelessReplicaHealthReportExpiredEvent.
45079func (srhree StatelessReplicaHealthReportExpiredEvent) AsNodeDeactivateStartedEvent() (*NodeDeactivateStartedEvent, bool) {
45080	return nil, false
45081}
45082
45083// AsNodeDownEvent is the BasicFabricEvent implementation for StatelessReplicaHealthReportExpiredEvent.
45084func (srhree StatelessReplicaHealthReportExpiredEvent) AsNodeDownEvent() (*NodeDownEvent, bool) {
45085	return nil, false
45086}
45087
45088// AsNodeNewHealthReportEvent is the BasicFabricEvent implementation for StatelessReplicaHealthReportExpiredEvent.
45089func (srhree StatelessReplicaHealthReportExpiredEvent) AsNodeNewHealthReportEvent() (*NodeNewHealthReportEvent, bool) {
45090	return nil, false
45091}
45092
45093// AsNodeHealthReportExpiredEvent is the BasicFabricEvent implementation for StatelessReplicaHealthReportExpiredEvent.
45094func (srhree StatelessReplicaHealthReportExpiredEvent) AsNodeHealthReportExpiredEvent() (*NodeHealthReportExpiredEvent, bool) {
45095	return nil, false
45096}
45097
45098// AsNodeOpenSucceededEvent is the BasicFabricEvent implementation for StatelessReplicaHealthReportExpiredEvent.
45099func (srhree StatelessReplicaHealthReportExpiredEvent) AsNodeOpenSucceededEvent() (*NodeOpenSucceededEvent, bool) {
45100	return nil, false
45101}
45102
45103// AsNodeOpenFailedEvent is the BasicFabricEvent implementation for StatelessReplicaHealthReportExpiredEvent.
45104func (srhree StatelessReplicaHealthReportExpiredEvent) AsNodeOpenFailedEvent() (*NodeOpenFailedEvent, bool) {
45105	return nil, false
45106}
45107
45108// AsNodeRemovedFromClusterEvent is the BasicFabricEvent implementation for StatelessReplicaHealthReportExpiredEvent.
45109func (srhree StatelessReplicaHealthReportExpiredEvent) AsNodeRemovedFromClusterEvent() (*NodeRemovedFromClusterEvent, bool) {
45110	return nil, false
45111}
45112
45113// AsNodeUpEvent is the BasicFabricEvent implementation for StatelessReplicaHealthReportExpiredEvent.
45114func (srhree StatelessReplicaHealthReportExpiredEvent) AsNodeUpEvent() (*NodeUpEvent, bool) {
45115	return nil, false
45116}
45117
45118// AsPartitionNewHealthReportEvent is the BasicFabricEvent implementation for StatelessReplicaHealthReportExpiredEvent.
45119func (srhree StatelessReplicaHealthReportExpiredEvent) AsPartitionNewHealthReportEvent() (*PartitionNewHealthReportEvent, bool) {
45120	return nil, false
45121}
45122
45123// AsPartitionHealthReportExpiredEvent is the BasicFabricEvent implementation for StatelessReplicaHealthReportExpiredEvent.
45124func (srhree StatelessReplicaHealthReportExpiredEvent) AsPartitionHealthReportExpiredEvent() (*PartitionHealthReportExpiredEvent, bool) {
45125	return nil, false
45126}
45127
45128// AsPartitionReconfiguredEvent is the BasicFabricEvent implementation for StatelessReplicaHealthReportExpiredEvent.
45129func (srhree StatelessReplicaHealthReportExpiredEvent) AsPartitionReconfiguredEvent() (*PartitionReconfiguredEvent, bool) {
45130	return nil, false
45131}
45132
45133// AsPartitionPrimaryMoveAnalysisEvent is the BasicFabricEvent implementation for StatelessReplicaHealthReportExpiredEvent.
45134func (srhree StatelessReplicaHealthReportExpiredEvent) AsPartitionPrimaryMoveAnalysisEvent() (*PartitionPrimaryMoveAnalysisEvent, bool) {
45135	return nil, false
45136}
45137
45138// AsServiceCreatedEvent is the BasicFabricEvent implementation for StatelessReplicaHealthReportExpiredEvent.
45139func (srhree StatelessReplicaHealthReportExpiredEvent) AsServiceCreatedEvent() (*ServiceCreatedEvent, bool) {
45140	return nil, false
45141}
45142
45143// AsServiceDeletedEvent is the BasicFabricEvent implementation for StatelessReplicaHealthReportExpiredEvent.
45144func (srhree StatelessReplicaHealthReportExpiredEvent) AsServiceDeletedEvent() (*ServiceDeletedEvent, bool) {
45145	return nil, false
45146}
45147
45148// AsServiceNewHealthReportEvent is the BasicFabricEvent implementation for StatelessReplicaHealthReportExpiredEvent.
45149func (srhree StatelessReplicaHealthReportExpiredEvent) AsServiceNewHealthReportEvent() (*ServiceNewHealthReportEvent, bool) {
45150	return nil, false
45151}
45152
45153// AsServiceHealthReportExpiredEvent is the BasicFabricEvent implementation for StatelessReplicaHealthReportExpiredEvent.
45154func (srhree StatelessReplicaHealthReportExpiredEvent) AsServiceHealthReportExpiredEvent() (*ServiceHealthReportExpiredEvent, bool) {
45155	return nil, false
45156}
45157
45158// AsDeployedServicePackageNewHealthReportEvent is the BasicFabricEvent implementation for StatelessReplicaHealthReportExpiredEvent.
45159func (srhree StatelessReplicaHealthReportExpiredEvent) AsDeployedServicePackageNewHealthReportEvent() (*DeployedServicePackageNewHealthReportEvent, bool) {
45160	return nil, false
45161}
45162
45163// AsDeployedServicePackageHealthReportExpiredEvent is the BasicFabricEvent implementation for StatelessReplicaHealthReportExpiredEvent.
45164func (srhree StatelessReplicaHealthReportExpiredEvent) AsDeployedServicePackageHealthReportExpiredEvent() (*DeployedServicePackageHealthReportExpiredEvent, bool) {
45165	return nil, false
45166}
45167
45168// AsStatefulReplicaNewHealthReportEvent is the BasicFabricEvent implementation for StatelessReplicaHealthReportExpiredEvent.
45169func (srhree StatelessReplicaHealthReportExpiredEvent) AsStatefulReplicaNewHealthReportEvent() (*StatefulReplicaNewHealthReportEvent, bool) {
45170	return nil, false
45171}
45172
45173// AsStatefulReplicaHealthReportExpiredEvent is the BasicFabricEvent implementation for StatelessReplicaHealthReportExpiredEvent.
45174func (srhree StatelessReplicaHealthReportExpiredEvent) AsStatefulReplicaHealthReportExpiredEvent() (*StatefulReplicaHealthReportExpiredEvent, bool) {
45175	return nil, false
45176}
45177
45178// AsStatelessReplicaNewHealthReportEvent is the BasicFabricEvent implementation for StatelessReplicaHealthReportExpiredEvent.
45179func (srhree StatelessReplicaHealthReportExpiredEvent) AsStatelessReplicaNewHealthReportEvent() (*StatelessReplicaNewHealthReportEvent, bool) {
45180	return nil, false
45181}
45182
45183// AsStatelessReplicaHealthReportExpiredEvent is the BasicFabricEvent implementation for StatelessReplicaHealthReportExpiredEvent.
45184func (srhree StatelessReplicaHealthReportExpiredEvent) AsStatelessReplicaHealthReportExpiredEvent() (*StatelessReplicaHealthReportExpiredEvent, bool) {
45185	return &srhree, true
45186}
45187
45188// AsClusterNewHealthReportEvent is the BasicFabricEvent implementation for StatelessReplicaHealthReportExpiredEvent.
45189func (srhree StatelessReplicaHealthReportExpiredEvent) AsClusterNewHealthReportEvent() (*ClusterNewHealthReportEvent, bool) {
45190	return nil, false
45191}
45192
45193// AsClusterHealthReportExpiredEvent is the BasicFabricEvent implementation for StatelessReplicaHealthReportExpiredEvent.
45194func (srhree StatelessReplicaHealthReportExpiredEvent) AsClusterHealthReportExpiredEvent() (*ClusterHealthReportExpiredEvent, bool) {
45195	return nil, false
45196}
45197
45198// AsClusterUpgradeCompletedEvent is the BasicFabricEvent implementation for StatelessReplicaHealthReportExpiredEvent.
45199func (srhree StatelessReplicaHealthReportExpiredEvent) AsClusterUpgradeCompletedEvent() (*ClusterUpgradeCompletedEvent, bool) {
45200	return nil, false
45201}
45202
45203// AsClusterUpgradeDomainCompletedEvent is the BasicFabricEvent implementation for StatelessReplicaHealthReportExpiredEvent.
45204func (srhree StatelessReplicaHealthReportExpiredEvent) AsClusterUpgradeDomainCompletedEvent() (*ClusterUpgradeDomainCompletedEvent, bool) {
45205	return nil, false
45206}
45207
45208// AsClusterUpgradeRollbackCompletedEvent is the BasicFabricEvent implementation for StatelessReplicaHealthReportExpiredEvent.
45209func (srhree StatelessReplicaHealthReportExpiredEvent) AsClusterUpgradeRollbackCompletedEvent() (*ClusterUpgradeRollbackCompletedEvent, bool) {
45210	return nil, false
45211}
45212
45213// AsClusterUpgradeRollbackStartedEvent is the BasicFabricEvent implementation for StatelessReplicaHealthReportExpiredEvent.
45214func (srhree StatelessReplicaHealthReportExpiredEvent) AsClusterUpgradeRollbackStartedEvent() (*ClusterUpgradeRollbackStartedEvent, bool) {
45215	return nil, false
45216}
45217
45218// AsClusterUpgradeStartedEvent is the BasicFabricEvent implementation for StatelessReplicaHealthReportExpiredEvent.
45219func (srhree StatelessReplicaHealthReportExpiredEvent) AsClusterUpgradeStartedEvent() (*ClusterUpgradeStartedEvent, bool) {
45220	return nil, false
45221}
45222
45223// AsChaosStoppedEvent is the BasicFabricEvent implementation for StatelessReplicaHealthReportExpiredEvent.
45224func (srhree StatelessReplicaHealthReportExpiredEvent) AsChaosStoppedEvent() (*ChaosStoppedEvent, bool) {
45225	return nil, false
45226}
45227
45228// AsChaosStartedEvent is the BasicFabricEvent implementation for StatelessReplicaHealthReportExpiredEvent.
45229func (srhree StatelessReplicaHealthReportExpiredEvent) AsChaosStartedEvent() (*ChaosStartedEvent, bool) {
45230	return nil, false
45231}
45232
45233// AsChaosCodePackageRestartScheduledEvent is the BasicFabricEvent implementation for StatelessReplicaHealthReportExpiredEvent.
45234func (srhree StatelessReplicaHealthReportExpiredEvent) AsChaosCodePackageRestartScheduledEvent() (*ChaosCodePackageRestartScheduledEvent, bool) {
45235	return nil, false
45236}
45237
45238// AsChaosReplicaRemovalScheduledEvent is the BasicFabricEvent implementation for StatelessReplicaHealthReportExpiredEvent.
45239func (srhree StatelessReplicaHealthReportExpiredEvent) AsChaosReplicaRemovalScheduledEvent() (*ChaosReplicaRemovalScheduledEvent, bool) {
45240	return nil, false
45241}
45242
45243// AsChaosPartitionSecondaryMoveScheduledEvent is the BasicFabricEvent implementation for StatelessReplicaHealthReportExpiredEvent.
45244func (srhree StatelessReplicaHealthReportExpiredEvent) AsChaosPartitionSecondaryMoveScheduledEvent() (*ChaosPartitionSecondaryMoveScheduledEvent, bool) {
45245	return nil, false
45246}
45247
45248// AsChaosPartitionPrimaryMoveScheduledEvent is the BasicFabricEvent implementation for StatelessReplicaHealthReportExpiredEvent.
45249func (srhree StatelessReplicaHealthReportExpiredEvent) AsChaosPartitionPrimaryMoveScheduledEvent() (*ChaosPartitionPrimaryMoveScheduledEvent, bool) {
45250	return nil, false
45251}
45252
45253// AsChaosReplicaRestartScheduledEvent is the BasicFabricEvent implementation for StatelessReplicaHealthReportExpiredEvent.
45254func (srhree StatelessReplicaHealthReportExpiredEvent) AsChaosReplicaRestartScheduledEvent() (*ChaosReplicaRestartScheduledEvent, bool) {
45255	return nil, false
45256}
45257
45258// AsChaosNodeRestartScheduledEvent is the BasicFabricEvent implementation for StatelessReplicaHealthReportExpiredEvent.
45259func (srhree StatelessReplicaHealthReportExpiredEvent) AsChaosNodeRestartScheduledEvent() (*ChaosNodeRestartScheduledEvent, bool) {
45260	return nil, false
45261}
45262
45263// AsFabricEvent is the BasicFabricEvent implementation for StatelessReplicaHealthReportExpiredEvent.
45264func (srhree StatelessReplicaHealthReportExpiredEvent) AsFabricEvent() (*FabricEvent, bool) {
45265	return nil, false
45266}
45267
45268// AsBasicFabricEvent is the BasicFabricEvent implementation for StatelessReplicaHealthReportExpiredEvent.
45269func (srhree StatelessReplicaHealthReportExpiredEvent) AsBasicFabricEvent() (BasicFabricEvent, bool) {
45270	return &srhree, true
45271}
45272
45273// StatelessReplicaNewHealthReportEvent stateless Replica Health Report Created event.
45274type StatelessReplicaNewHealthReportEvent struct {
45275	// SourceID - Id of report source.
45276	SourceID *string `json:"SourceId,omitempty"`
45277	// Property - Describes the property.
45278	Property *string `json:"Property,omitempty"`
45279	// HealthState - Describes the property health state.
45280	HealthState *string `json:"HealthState,omitempty"`
45281	// TimeToLiveMs - Time to live in milli-seconds.
45282	TimeToLiveMs *int64 `json:"TimeToLiveMs,omitempty"`
45283	// SequenceNumber - Sequence number of report.
45284	SequenceNumber *int64 `json:"SequenceNumber,omitempty"`
45285	// Description - Description of report.
45286	Description *string `json:"Description,omitempty"`
45287	// RemoveWhenExpired - Indicates the removal when it expires.
45288	RemoveWhenExpired *bool `json:"RemoveWhenExpired,omitempty"`
45289	// SourceUtcTimestamp - Source time.
45290	SourceUtcTimestamp *date.Time `json:"SourceUtcTimestamp,omitempty"`
45291	// 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.
45292	PartitionID *uuid.UUID `json:"PartitionId,omitempty"`
45293	// 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.
45294	ReplicaID *int64 `json:"ReplicaId,omitempty"`
45295	// EventInstanceID - The identifier for the FabricEvent instance.
45296	EventInstanceID *uuid.UUID `json:"EventInstanceId,omitempty"`
45297	// Category - The category of event.
45298	Category *string `json:"Category,omitempty"`
45299	// TimeStamp - The time event was logged.
45300	TimeStamp *date.Time `json:"TimeStamp,omitempty"`
45301	// HasCorrelatedEvents - Shows there is existing related events available.
45302	HasCorrelatedEvents *bool `json:"HasCorrelatedEvents,omitempty"`
45303	// 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'
45304	Kind KindBasicFabricEvent `json:"Kind,omitempty"`
45305}
45306
45307// MarshalJSON is the custom marshaler for StatelessReplicaNewHealthReportEvent.
45308func (srnhre StatelessReplicaNewHealthReportEvent) MarshalJSON() ([]byte, error) {
45309	srnhre.Kind = KindStatelessReplicaNewHealthReport
45310	objectMap := make(map[string]interface{})
45311	if srnhre.SourceID != nil {
45312		objectMap["SourceId"] = srnhre.SourceID
45313	}
45314	if srnhre.Property != nil {
45315		objectMap["Property"] = srnhre.Property
45316	}
45317	if srnhre.HealthState != nil {
45318		objectMap["HealthState"] = srnhre.HealthState
45319	}
45320	if srnhre.TimeToLiveMs != nil {
45321		objectMap["TimeToLiveMs"] = srnhre.TimeToLiveMs
45322	}
45323	if srnhre.SequenceNumber != nil {
45324		objectMap["SequenceNumber"] = srnhre.SequenceNumber
45325	}
45326	if srnhre.Description != nil {
45327		objectMap["Description"] = srnhre.Description
45328	}
45329	if srnhre.RemoveWhenExpired != nil {
45330		objectMap["RemoveWhenExpired"] = srnhre.RemoveWhenExpired
45331	}
45332	if srnhre.SourceUtcTimestamp != nil {
45333		objectMap["SourceUtcTimestamp"] = srnhre.SourceUtcTimestamp
45334	}
45335	if srnhre.PartitionID != nil {
45336		objectMap["PartitionId"] = srnhre.PartitionID
45337	}
45338	if srnhre.ReplicaID != nil {
45339		objectMap["ReplicaId"] = srnhre.ReplicaID
45340	}
45341	if srnhre.EventInstanceID != nil {
45342		objectMap["EventInstanceId"] = srnhre.EventInstanceID
45343	}
45344	if srnhre.Category != nil {
45345		objectMap["Category"] = srnhre.Category
45346	}
45347	if srnhre.TimeStamp != nil {
45348		objectMap["TimeStamp"] = srnhre.TimeStamp
45349	}
45350	if srnhre.HasCorrelatedEvents != nil {
45351		objectMap["HasCorrelatedEvents"] = srnhre.HasCorrelatedEvents
45352	}
45353	if srnhre.Kind != "" {
45354		objectMap["Kind"] = srnhre.Kind
45355	}
45356	return json.Marshal(objectMap)
45357}
45358
45359// AsApplicationEvent is the BasicFabricEvent implementation for StatelessReplicaNewHealthReportEvent.
45360func (srnhre StatelessReplicaNewHealthReportEvent) AsApplicationEvent() (*ApplicationEvent, bool) {
45361	return nil, false
45362}
45363
45364// AsBasicApplicationEvent is the BasicFabricEvent implementation for StatelessReplicaNewHealthReportEvent.
45365func (srnhre StatelessReplicaNewHealthReportEvent) AsBasicApplicationEvent() (BasicApplicationEvent, bool) {
45366	return nil, false
45367}
45368
45369// AsClusterEvent is the BasicFabricEvent implementation for StatelessReplicaNewHealthReportEvent.
45370func (srnhre StatelessReplicaNewHealthReportEvent) AsClusterEvent() (*ClusterEvent, bool) {
45371	return nil, false
45372}
45373
45374// AsBasicClusterEvent is the BasicFabricEvent implementation for StatelessReplicaNewHealthReportEvent.
45375func (srnhre StatelessReplicaNewHealthReportEvent) AsBasicClusterEvent() (BasicClusterEvent, bool) {
45376	return nil, false
45377}
45378
45379// AsContainerInstanceEvent is the BasicFabricEvent implementation for StatelessReplicaNewHealthReportEvent.
45380func (srnhre StatelessReplicaNewHealthReportEvent) AsContainerInstanceEvent() (*ContainerInstanceEvent, bool) {
45381	return nil, false
45382}
45383
45384// AsNodeEvent is the BasicFabricEvent implementation for StatelessReplicaNewHealthReportEvent.
45385func (srnhre StatelessReplicaNewHealthReportEvent) AsNodeEvent() (*NodeEvent, bool) {
45386	return nil, false
45387}
45388
45389// AsBasicNodeEvent is the BasicFabricEvent implementation for StatelessReplicaNewHealthReportEvent.
45390func (srnhre StatelessReplicaNewHealthReportEvent) AsBasicNodeEvent() (BasicNodeEvent, bool) {
45391	return nil, false
45392}
45393
45394// AsPartitionAnalysisEvent is the BasicFabricEvent implementation for StatelessReplicaNewHealthReportEvent.
45395func (srnhre StatelessReplicaNewHealthReportEvent) AsPartitionAnalysisEvent() (*PartitionAnalysisEvent, bool) {
45396	return nil, false
45397}
45398
45399// AsBasicPartitionAnalysisEvent is the BasicFabricEvent implementation for StatelessReplicaNewHealthReportEvent.
45400func (srnhre StatelessReplicaNewHealthReportEvent) AsBasicPartitionAnalysisEvent() (BasicPartitionAnalysisEvent, bool) {
45401	return nil, false
45402}
45403
45404// AsPartitionEvent is the BasicFabricEvent implementation for StatelessReplicaNewHealthReportEvent.
45405func (srnhre StatelessReplicaNewHealthReportEvent) AsPartitionEvent() (*PartitionEvent, bool) {
45406	return nil, false
45407}
45408
45409// AsBasicPartitionEvent is the BasicFabricEvent implementation for StatelessReplicaNewHealthReportEvent.
45410func (srnhre StatelessReplicaNewHealthReportEvent) AsBasicPartitionEvent() (BasicPartitionEvent, bool) {
45411	return nil, false
45412}
45413
45414// AsReplicaEvent is the BasicFabricEvent implementation for StatelessReplicaNewHealthReportEvent.
45415func (srnhre StatelessReplicaNewHealthReportEvent) AsReplicaEvent() (*ReplicaEvent, bool) {
45416	return nil, false
45417}
45418
45419// AsBasicReplicaEvent is the BasicFabricEvent implementation for StatelessReplicaNewHealthReportEvent.
45420func (srnhre StatelessReplicaNewHealthReportEvent) AsBasicReplicaEvent() (BasicReplicaEvent, bool) {
45421	return &srnhre, true
45422}
45423
45424// AsServiceEvent is the BasicFabricEvent implementation for StatelessReplicaNewHealthReportEvent.
45425func (srnhre StatelessReplicaNewHealthReportEvent) AsServiceEvent() (*ServiceEvent, bool) {
45426	return nil, false
45427}
45428
45429// AsBasicServiceEvent is the BasicFabricEvent implementation for StatelessReplicaNewHealthReportEvent.
45430func (srnhre StatelessReplicaNewHealthReportEvent) AsBasicServiceEvent() (BasicServiceEvent, bool) {
45431	return nil, false
45432}
45433
45434// AsApplicationCreatedEvent is the BasicFabricEvent implementation for StatelessReplicaNewHealthReportEvent.
45435func (srnhre StatelessReplicaNewHealthReportEvent) AsApplicationCreatedEvent() (*ApplicationCreatedEvent, bool) {
45436	return nil, false
45437}
45438
45439// AsApplicationDeletedEvent is the BasicFabricEvent implementation for StatelessReplicaNewHealthReportEvent.
45440func (srnhre StatelessReplicaNewHealthReportEvent) AsApplicationDeletedEvent() (*ApplicationDeletedEvent, bool) {
45441	return nil, false
45442}
45443
45444// AsApplicationNewHealthReportEvent is the BasicFabricEvent implementation for StatelessReplicaNewHealthReportEvent.
45445func (srnhre StatelessReplicaNewHealthReportEvent) AsApplicationNewHealthReportEvent() (*ApplicationNewHealthReportEvent, bool) {
45446	return nil, false
45447}
45448
45449// AsApplicationHealthReportExpiredEvent is the BasicFabricEvent implementation for StatelessReplicaNewHealthReportEvent.
45450func (srnhre StatelessReplicaNewHealthReportEvent) AsApplicationHealthReportExpiredEvent() (*ApplicationHealthReportExpiredEvent, bool) {
45451	return nil, false
45452}
45453
45454// AsApplicationUpgradeCompletedEvent is the BasicFabricEvent implementation for StatelessReplicaNewHealthReportEvent.
45455func (srnhre StatelessReplicaNewHealthReportEvent) AsApplicationUpgradeCompletedEvent() (*ApplicationUpgradeCompletedEvent, bool) {
45456	return nil, false
45457}
45458
45459// AsApplicationUpgradeDomainCompletedEvent is the BasicFabricEvent implementation for StatelessReplicaNewHealthReportEvent.
45460func (srnhre StatelessReplicaNewHealthReportEvent) AsApplicationUpgradeDomainCompletedEvent() (*ApplicationUpgradeDomainCompletedEvent, bool) {
45461	return nil, false
45462}
45463
45464// AsApplicationUpgradeRollbackCompletedEvent is the BasicFabricEvent implementation for StatelessReplicaNewHealthReportEvent.
45465func (srnhre StatelessReplicaNewHealthReportEvent) AsApplicationUpgradeRollbackCompletedEvent() (*ApplicationUpgradeRollbackCompletedEvent, bool) {
45466	return nil, false
45467}
45468
45469// AsApplicationUpgradeRollbackStartedEvent is the BasicFabricEvent implementation for StatelessReplicaNewHealthReportEvent.
45470func (srnhre StatelessReplicaNewHealthReportEvent) AsApplicationUpgradeRollbackStartedEvent() (*ApplicationUpgradeRollbackStartedEvent, bool) {
45471	return nil, false
45472}
45473
45474// AsApplicationUpgradeStartedEvent is the BasicFabricEvent implementation for StatelessReplicaNewHealthReportEvent.
45475func (srnhre StatelessReplicaNewHealthReportEvent) AsApplicationUpgradeStartedEvent() (*ApplicationUpgradeStartedEvent, bool) {
45476	return nil, false
45477}
45478
45479// AsDeployedApplicationNewHealthReportEvent is the BasicFabricEvent implementation for StatelessReplicaNewHealthReportEvent.
45480func (srnhre StatelessReplicaNewHealthReportEvent) AsDeployedApplicationNewHealthReportEvent() (*DeployedApplicationNewHealthReportEvent, bool) {
45481	return nil, false
45482}
45483
45484// AsDeployedApplicationHealthReportExpiredEvent is the BasicFabricEvent implementation for StatelessReplicaNewHealthReportEvent.
45485func (srnhre StatelessReplicaNewHealthReportEvent) AsDeployedApplicationHealthReportExpiredEvent() (*DeployedApplicationHealthReportExpiredEvent, bool) {
45486	return nil, false
45487}
45488
45489// AsApplicationProcessExitedEvent is the BasicFabricEvent implementation for StatelessReplicaNewHealthReportEvent.
45490func (srnhre StatelessReplicaNewHealthReportEvent) AsApplicationProcessExitedEvent() (*ApplicationProcessExitedEvent, bool) {
45491	return nil, false
45492}
45493
45494// AsApplicationContainerInstanceExitedEvent is the BasicFabricEvent implementation for StatelessReplicaNewHealthReportEvent.
45495func (srnhre StatelessReplicaNewHealthReportEvent) AsApplicationContainerInstanceExitedEvent() (*ApplicationContainerInstanceExitedEvent, bool) {
45496	return nil, false
45497}
45498
45499// AsNodeAbortedEvent is the BasicFabricEvent implementation for StatelessReplicaNewHealthReportEvent.
45500func (srnhre StatelessReplicaNewHealthReportEvent) AsNodeAbortedEvent() (*NodeAbortedEvent, bool) {
45501	return nil, false
45502}
45503
45504// AsNodeAddedToClusterEvent is the BasicFabricEvent implementation for StatelessReplicaNewHealthReportEvent.
45505func (srnhre StatelessReplicaNewHealthReportEvent) AsNodeAddedToClusterEvent() (*NodeAddedToClusterEvent, bool) {
45506	return nil, false
45507}
45508
45509// AsNodeClosedEvent is the BasicFabricEvent implementation for StatelessReplicaNewHealthReportEvent.
45510func (srnhre StatelessReplicaNewHealthReportEvent) AsNodeClosedEvent() (*NodeClosedEvent, bool) {
45511	return nil, false
45512}
45513
45514// AsNodeDeactivateCompletedEvent is the BasicFabricEvent implementation for StatelessReplicaNewHealthReportEvent.
45515func (srnhre StatelessReplicaNewHealthReportEvent) AsNodeDeactivateCompletedEvent() (*NodeDeactivateCompletedEvent, bool) {
45516	return nil, false
45517}
45518
45519// AsNodeDeactivateStartedEvent is the BasicFabricEvent implementation for StatelessReplicaNewHealthReportEvent.
45520func (srnhre StatelessReplicaNewHealthReportEvent) AsNodeDeactivateStartedEvent() (*NodeDeactivateStartedEvent, bool) {
45521	return nil, false
45522}
45523
45524// AsNodeDownEvent is the BasicFabricEvent implementation for StatelessReplicaNewHealthReportEvent.
45525func (srnhre StatelessReplicaNewHealthReportEvent) AsNodeDownEvent() (*NodeDownEvent, bool) {
45526	return nil, false
45527}
45528
45529// AsNodeNewHealthReportEvent is the BasicFabricEvent implementation for StatelessReplicaNewHealthReportEvent.
45530func (srnhre StatelessReplicaNewHealthReportEvent) AsNodeNewHealthReportEvent() (*NodeNewHealthReportEvent, bool) {
45531	return nil, false
45532}
45533
45534// AsNodeHealthReportExpiredEvent is the BasicFabricEvent implementation for StatelessReplicaNewHealthReportEvent.
45535func (srnhre StatelessReplicaNewHealthReportEvent) AsNodeHealthReportExpiredEvent() (*NodeHealthReportExpiredEvent, bool) {
45536	return nil, false
45537}
45538
45539// AsNodeOpenSucceededEvent is the BasicFabricEvent implementation for StatelessReplicaNewHealthReportEvent.
45540func (srnhre StatelessReplicaNewHealthReportEvent) AsNodeOpenSucceededEvent() (*NodeOpenSucceededEvent, bool) {
45541	return nil, false
45542}
45543
45544// AsNodeOpenFailedEvent is the BasicFabricEvent implementation for StatelessReplicaNewHealthReportEvent.
45545func (srnhre StatelessReplicaNewHealthReportEvent) AsNodeOpenFailedEvent() (*NodeOpenFailedEvent, bool) {
45546	return nil, false
45547}
45548
45549// AsNodeRemovedFromClusterEvent is the BasicFabricEvent implementation for StatelessReplicaNewHealthReportEvent.
45550func (srnhre StatelessReplicaNewHealthReportEvent) AsNodeRemovedFromClusterEvent() (*NodeRemovedFromClusterEvent, bool) {
45551	return nil, false
45552}
45553
45554// AsNodeUpEvent is the BasicFabricEvent implementation for StatelessReplicaNewHealthReportEvent.
45555func (srnhre StatelessReplicaNewHealthReportEvent) AsNodeUpEvent() (*NodeUpEvent, bool) {
45556	return nil, false
45557}
45558
45559// AsPartitionNewHealthReportEvent is the BasicFabricEvent implementation for StatelessReplicaNewHealthReportEvent.
45560func (srnhre StatelessReplicaNewHealthReportEvent) AsPartitionNewHealthReportEvent() (*PartitionNewHealthReportEvent, bool) {
45561	return nil, false
45562}
45563
45564// AsPartitionHealthReportExpiredEvent is the BasicFabricEvent implementation for StatelessReplicaNewHealthReportEvent.
45565func (srnhre StatelessReplicaNewHealthReportEvent) AsPartitionHealthReportExpiredEvent() (*PartitionHealthReportExpiredEvent, bool) {
45566	return nil, false
45567}
45568
45569// AsPartitionReconfiguredEvent is the BasicFabricEvent implementation for StatelessReplicaNewHealthReportEvent.
45570func (srnhre StatelessReplicaNewHealthReportEvent) AsPartitionReconfiguredEvent() (*PartitionReconfiguredEvent, bool) {
45571	return nil, false
45572}
45573
45574// AsPartitionPrimaryMoveAnalysisEvent is the BasicFabricEvent implementation for StatelessReplicaNewHealthReportEvent.
45575func (srnhre StatelessReplicaNewHealthReportEvent) AsPartitionPrimaryMoveAnalysisEvent() (*PartitionPrimaryMoveAnalysisEvent, bool) {
45576	return nil, false
45577}
45578
45579// AsServiceCreatedEvent is the BasicFabricEvent implementation for StatelessReplicaNewHealthReportEvent.
45580func (srnhre StatelessReplicaNewHealthReportEvent) AsServiceCreatedEvent() (*ServiceCreatedEvent, bool) {
45581	return nil, false
45582}
45583
45584// AsServiceDeletedEvent is the BasicFabricEvent implementation for StatelessReplicaNewHealthReportEvent.
45585func (srnhre StatelessReplicaNewHealthReportEvent) AsServiceDeletedEvent() (*ServiceDeletedEvent, bool) {
45586	return nil, false
45587}
45588
45589// AsServiceNewHealthReportEvent is the BasicFabricEvent implementation for StatelessReplicaNewHealthReportEvent.
45590func (srnhre StatelessReplicaNewHealthReportEvent) AsServiceNewHealthReportEvent() (*ServiceNewHealthReportEvent, bool) {
45591	return nil, false
45592}
45593
45594// AsServiceHealthReportExpiredEvent is the BasicFabricEvent implementation for StatelessReplicaNewHealthReportEvent.
45595func (srnhre StatelessReplicaNewHealthReportEvent) AsServiceHealthReportExpiredEvent() (*ServiceHealthReportExpiredEvent, bool) {
45596	return nil, false
45597}
45598
45599// AsDeployedServicePackageNewHealthReportEvent is the BasicFabricEvent implementation for StatelessReplicaNewHealthReportEvent.
45600func (srnhre StatelessReplicaNewHealthReportEvent) AsDeployedServicePackageNewHealthReportEvent() (*DeployedServicePackageNewHealthReportEvent, bool) {
45601	return nil, false
45602}
45603
45604// AsDeployedServicePackageHealthReportExpiredEvent is the BasicFabricEvent implementation for StatelessReplicaNewHealthReportEvent.
45605func (srnhre StatelessReplicaNewHealthReportEvent) AsDeployedServicePackageHealthReportExpiredEvent() (*DeployedServicePackageHealthReportExpiredEvent, bool) {
45606	return nil, false
45607}
45608
45609// AsStatefulReplicaNewHealthReportEvent is the BasicFabricEvent implementation for StatelessReplicaNewHealthReportEvent.
45610func (srnhre StatelessReplicaNewHealthReportEvent) AsStatefulReplicaNewHealthReportEvent() (*StatefulReplicaNewHealthReportEvent, bool) {
45611	return nil, false
45612}
45613
45614// AsStatefulReplicaHealthReportExpiredEvent is the BasicFabricEvent implementation for StatelessReplicaNewHealthReportEvent.
45615func (srnhre StatelessReplicaNewHealthReportEvent) AsStatefulReplicaHealthReportExpiredEvent() (*StatefulReplicaHealthReportExpiredEvent, bool) {
45616	return nil, false
45617}
45618
45619// AsStatelessReplicaNewHealthReportEvent is the BasicFabricEvent implementation for StatelessReplicaNewHealthReportEvent.
45620func (srnhre StatelessReplicaNewHealthReportEvent) AsStatelessReplicaNewHealthReportEvent() (*StatelessReplicaNewHealthReportEvent, bool) {
45621	return &srnhre, true
45622}
45623
45624// AsStatelessReplicaHealthReportExpiredEvent is the BasicFabricEvent implementation for StatelessReplicaNewHealthReportEvent.
45625func (srnhre StatelessReplicaNewHealthReportEvent) AsStatelessReplicaHealthReportExpiredEvent() (*StatelessReplicaHealthReportExpiredEvent, bool) {
45626	return nil, false
45627}
45628
45629// AsClusterNewHealthReportEvent is the BasicFabricEvent implementation for StatelessReplicaNewHealthReportEvent.
45630func (srnhre StatelessReplicaNewHealthReportEvent) AsClusterNewHealthReportEvent() (*ClusterNewHealthReportEvent, bool) {
45631	return nil, false
45632}
45633
45634// AsClusterHealthReportExpiredEvent is the BasicFabricEvent implementation for StatelessReplicaNewHealthReportEvent.
45635func (srnhre StatelessReplicaNewHealthReportEvent) AsClusterHealthReportExpiredEvent() (*ClusterHealthReportExpiredEvent, bool) {
45636	return nil, false
45637}
45638
45639// AsClusterUpgradeCompletedEvent is the BasicFabricEvent implementation for StatelessReplicaNewHealthReportEvent.
45640func (srnhre StatelessReplicaNewHealthReportEvent) AsClusterUpgradeCompletedEvent() (*ClusterUpgradeCompletedEvent, bool) {
45641	return nil, false
45642}
45643
45644// AsClusterUpgradeDomainCompletedEvent is the BasicFabricEvent implementation for StatelessReplicaNewHealthReportEvent.
45645func (srnhre StatelessReplicaNewHealthReportEvent) AsClusterUpgradeDomainCompletedEvent() (*ClusterUpgradeDomainCompletedEvent, bool) {
45646	return nil, false
45647}
45648
45649// AsClusterUpgradeRollbackCompletedEvent is the BasicFabricEvent implementation for StatelessReplicaNewHealthReportEvent.
45650func (srnhre StatelessReplicaNewHealthReportEvent) AsClusterUpgradeRollbackCompletedEvent() (*ClusterUpgradeRollbackCompletedEvent, bool) {
45651	return nil, false
45652}
45653
45654// AsClusterUpgradeRollbackStartedEvent is the BasicFabricEvent implementation for StatelessReplicaNewHealthReportEvent.
45655func (srnhre StatelessReplicaNewHealthReportEvent) AsClusterUpgradeRollbackStartedEvent() (*ClusterUpgradeRollbackStartedEvent, bool) {
45656	return nil, false
45657}
45658
45659// AsClusterUpgradeStartedEvent is the BasicFabricEvent implementation for StatelessReplicaNewHealthReportEvent.
45660func (srnhre StatelessReplicaNewHealthReportEvent) AsClusterUpgradeStartedEvent() (*ClusterUpgradeStartedEvent, bool) {
45661	return nil, false
45662}
45663
45664// AsChaosStoppedEvent is the BasicFabricEvent implementation for StatelessReplicaNewHealthReportEvent.
45665func (srnhre StatelessReplicaNewHealthReportEvent) AsChaosStoppedEvent() (*ChaosStoppedEvent, bool) {
45666	return nil, false
45667}
45668
45669// AsChaosStartedEvent is the BasicFabricEvent implementation for StatelessReplicaNewHealthReportEvent.
45670func (srnhre StatelessReplicaNewHealthReportEvent) AsChaosStartedEvent() (*ChaosStartedEvent, bool) {
45671	return nil, false
45672}
45673
45674// AsChaosCodePackageRestartScheduledEvent is the BasicFabricEvent implementation for StatelessReplicaNewHealthReportEvent.
45675func (srnhre StatelessReplicaNewHealthReportEvent) AsChaosCodePackageRestartScheduledEvent() (*ChaosCodePackageRestartScheduledEvent, bool) {
45676	return nil, false
45677}
45678
45679// AsChaosReplicaRemovalScheduledEvent is the BasicFabricEvent implementation for StatelessReplicaNewHealthReportEvent.
45680func (srnhre StatelessReplicaNewHealthReportEvent) AsChaosReplicaRemovalScheduledEvent() (*ChaosReplicaRemovalScheduledEvent, bool) {
45681	return nil, false
45682}
45683
45684// AsChaosPartitionSecondaryMoveScheduledEvent is the BasicFabricEvent implementation for StatelessReplicaNewHealthReportEvent.
45685func (srnhre StatelessReplicaNewHealthReportEvent) AsChaosPartitionSecondaryMoveScheduledEvent() (*ChaosPartitionSecondaryMoveScheduledEvent, bool) {
45686	return nil, false
45687}
45688
45689// AsChaosPartitionPrimaryMoveScheduledEvent is the BasicFabricEvent implementation for StatelessReplicaNewHealthReportEvent.
45690func (srnhre StatelessReplicaNewHealthReportEvent) AsChaosPartitionPrimaryMoveScheduledEvent() (*ChaosPartitionPrimaryMoveScheduledEvent, bool) {
45691	return nil, false
45692}
45693
45694// AsChaosReplicaRestartScheduledEvent is the BasicFabricEvent implementation for StatelessReplicaNewHealthReportEvent.
45695func (srnhre StatelessReplicaNewHealthReportEvent) AsChaosReplicaRestartScheduledEvent() (*ChaosReplicaRestartScheduledEvent, bool) {
45696	return nil, false
45697}
45698
45699// AsChaosNodeRestartScheduledEvent is the BasicFabricEvent implementation for StatelessReplicaNewHealthReportEvent.
45700func (srnhre StatelessReplicaNewHealthReportEvent) AsChaosNodeRestartScheduledEvent() (*ChaosNodeRestartScheduledEvent, bool) {
45701	return nil, false
45702}
45703
45704// AsFabricEvent is the BasicFabricEvent implementation for StatelessReplicaNewHealthReportEvent.
45705func (srnhre StatelessReplicaNewHealthReportEvent) AsFabricEvent() (*FabricEvent, bool) {
45706	return nil, false
45707}
45708
45709// AsBasicFabricEvent is the BasicFabricEvent implementation for StatelessReplicaNewHealthReportEvent.
45710func (srnhre StatelessReplicaNewHealthReportEvent) AsBasicFabricEvent() (BasicFabricEvent, bool) {
45711	return &srnhre, true
45712}
45713
45714// StatelessServiceDescription describes a stateless service.
45715type StatelessServiceDescription struct {
45716	// InstanceCount - The instance count.
45717	InstanceCount *int32 `json:"InstanceCount,omitempty"`
45718	// ApplicationName - The name of the application, including the 'fabric:' URI scheme.
45719	ApplicationName *string `json:"ApplicationName,omitempty"`
45720	// ServiceName - The full name of the service with 'fabric:' URI scheme.
45721	ServiceName *string `json:"ServiceName,omitempty"`
45722	// ServiceTypeName - Name of the service type as specified in the service manifest.
45723	ServiceTypeName *string `json:"ServiceTypeName,omitempty"`
45724	// InitializationData - The initialization data as an array of bytes. Initialization data is passed to service instances or replicas when they are created.
45725	InitializationData *[]int32 `json:"InitializationData,omitempty"`
45726	// PartitionDescription - The partition description as an object.
45727	PartitionDescription BasicPartitionSchemeDescription `json:"PartitionDescription,omitempty"`
45728	// 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)".
45729	PlacementConstraints *string `json:"PlacementConstraints,omitempty"`
45730	// CorrelationScheme - The correlation scheme.
45731	CorrelationScheme *[]ServiceCorrelationDescription `json:"CorrelationScheme,omitempty"`
45732	// ServiceLoadMetrics - The service load metrics.
45733	ServiceLoadMetrics *[]ServiceLoadMetricDescription `json:"ServiceLoadMetrics,omitempty"`
45734	// ServicePlacementPolicies - The service placement policies.
45735	ServicePlacementPolicies *[]BasicServicePlacementPolicyDescription `json:"ServicePlacementPolicies,omitempty"`
45736	// DefaultMoveCost - The move cost for the service. Possible values include: 'Zero', 'Low', 'Medium', 'High'
45737	DefaultMoveCost MoveCost `json:"DefaultMoveCost,omitempty"`
45738	// IsDefaultMoveCostSpecified - Indicates if the DefaultMoveCost property is specified.
45739	IsDefaultMoveCostSpecified *bool `json:"IsDefaultMoveCostSpecified,omitempty"`
45740	// ServicePackageActivationMode - The activation mode of service package to be used for a service. Possible values include: 'SharedProcess', 'ExclusiveProcess'
45741	ServicePackageActivationMode ServicePackageActivationMode `json:"ServicePackageActivationMode,omitempty"`
45742	// ServiceDNSName - The DNS name of the service. It requires the DNS system service to be enabled in Service Fabric cluster.
45743	ServiceDNSName *string `json:"ServiceDnsName,omitempty"`
45744	// ScalingPolicies - Scaling policies for this service.
45745	ScalingPolicies *[]ScalingPolicyDescription `json:"ScalingPolicies,omitempty"`
45746	// ServiceKind - Possible values include: 'ServiceKindBasicServiceDescriptionServiceKindServiceDescription', 'ServiceKindBasicServiceDescriptionServiceKindStateful', 'ServiceKindBasicServiceDescriptionServiceKindStateless'
45747	ServiceKind ServiceKindBasicServiceDescription `json:"ServiceKind,omitempty"`
45748}
45749
45750// MarshalJSON is the custom marshaler for StatelessServiceDescription.
45751func (ssd StatelessServiceDescription) MarshalJSON() ([]byte, error) {
45752	ssd.ServiceKind = ServiceKindBasicServiceDescriptionServiceKindStateless
45753	objectMap := make(map[string]interface{})
45754	if ssd.InstanceCount != nil {
45755		objectMap["InstanceCount"] = ssd.InstanceCount
45756	}
45757	if ssd.ApplicationName != nil {
45758		objectMap["ApplicationName"] = ssd.ApplicationName
45759	}
45760	if ssd.ServiceName != nil {
45761		objectMap["ServiceName"] = ssd.ServiceName
45762	}
45763	if ssd.ServiceTypeName != nil {
45764		objectMap["ServiceTypeName"] = ssd.ServiceTypeName
45765	}
45766	if ssd.InitializationData != nil {
45767		objectMap["InitializationData"] = ssd.InitializationData
45768	}
45769	objectMap["PartitionDescription"] = ssd.PartitionDescription
45770	if ssd.PlacementConstraints != nil {
45771		objectMap["PlacementConstraints"] = ssd.PlacementConstraints
45772	}
45773	if ssd.CorrelationScheme != nil {
45774		objectMap["CorrelationScheme"] = ssd.CorrelationScheme
45775	}
45776	if ssd.ServiceLoadMetrics != nil {
45777		objectMap["ServiceLoadMetrics"] = ssd.ServiceLoadMetrics
45778	}
45779	if ssd.ServicePlacementPolicies != nil {
45780		objectMap["ServicePlacementPolicies"] = ssd.ServicePlacementPolicies
45781	}
45782	if ssd.DefaultMoveCost != "" {
45783		objectMap["DefaultMoveCost"] = ssd.DefaultMoveCost
45784	}
45785	if ssd.IsDefaultMoveCostSpecified != nil {
45786		objectMap["IsDefaultMoveCostSpecified"] = ssd.IsDefaultMoveCostSpecified
45787	}
45788	if ssd.ServicePackageActivationMode != "" {
45789		objectMap["ServicePackageActivationMode"] = ssd.ServicePackageActivationMode
45790	}
45791	if ssd.ServiceDNSName != nil {
45792		objectMap["ServiceDnsName"] = ssd.ServiceDNSName
45793	}
45794	if ssd.ScalingPolicies != nil {
45795		objectMap["ScalingPolicies"] = ssd.ScalingPolicies
45796	}
45797	if ssd.ServiceKind != "" {
45798		objectMap["ServiceKind"] = ssd.ServiceKind
45799	}
45800	return json.Marshal(objectMap)
45801}
45802
45803// AsStatefulServiceDescription is the BasicServiceDescription implementation for StatelessServiceDescription.
45804func (ssd StatelessServiceDescription) AsStatefulServiceDescription() (*StatefulServiceDescription, bool) {
45805	return nil, false
45806}
45807
45808// AsStatelessServiceDescription is the BasicServiceDescription implementation for StatelessServiceDescription.
45809func (ssd StatelessServiceDescription) AsStatelessServiceDescription() (*StatelessServiceDescription, bool) {
45810	return &ssd, true
45811}
45812
45813// AsServiceDescription is the BasicServiceDescription implementation for StatelessServiceDescription.
45814func (ssd StatelessServiceDescription) AsServiceDescription() (*ServiceDescription, bool) {
45815	return nil, false
45816}
45817
45818// AsBasicServiceDescription is the BasicServiceDescription implementation for StatelessServiceDescription.
45819func (ssd StatelessServiceDescription) AsBasicServiceDescription() (BasicServiceDescription, bool) {
45820	return &ssd, true
45821}
45822
45823// UnmarshalJSON is the custom unmarshaler for StatelessServiceDescription struct.
45824func (ssd *StatelessServiceDescription) UnmarshalJSON(body []byte) error {
45825	var m map[string]*json.RawMessage
45826	err := json.Unmarshal(body, &m)
45827	if err != nil {
45828		return err
45829	}
45830	for k, v := range m {
45831		switch k {
45832		case "InstanceCount":
45833			if v != nil {
45834				var instanceCount int32
45835				err = json.Unmarshal(*v, &instanceCount)
45836				if err != nil {
45837					return err
45838				}
45839				ssd.InstanceCount = &instanceCount
45840			}
45841		case "ApplicationName":
45842			if v != nil {
45843				var applicationName string
45844				err = json.Unmarshal(*v, &applicationName)
45845				if err != nil {
45846					return err
45847				}
45848				ssd.ApplicationName = &applicationName
45849			}
45850		case "ServiceName":
45851			if v != nil {
45852				var serviceName string
45853				err = json.Unmarshal(*v, &serviceName)
45854				if err != nil {
45855					return err
45856				}
45857				ssd.ServiceName = &serviceName
45858			}
45859		case "ServiceTypeName":
45860			if v != nil {
45861				var serviceTypeName string
45862				err = json.Unmarshal(*v, &serviceTypeName)
45863				if err != nil {
45864					return err
45865				}
45866				ssd.ServiceTypeName = &serviceTypeName
45867			}
45868		case "InitializationData":
45869			if v != nil {
45870				var initializationData []int32
45871				err = json.Unmarshal(*v, &initializationData)
45872				if err != nil {
45873					return err
45874				}
45875				ssd.InitializationData = &initializationData
45876			}
45877		case "PartitionDescription":
45878			if v != nil {
45879				partitionDescription, err := unmarshalBasicPartitionSchemeDescription(*v)
45880				if err != nil {
45881					return err
45882				}
45883				ssd.PartitionDescription = partitionDescription
45884			}
45885		case "PlacementConstraints":
45886			if v != nil {
45887				var placementConstraints string
45888				err = json.Unmarshal(*v, &placementConstraints)
45889				if err != nil {
45890					return err
45891				}
45892				ssd.PlacementConstraints = &placementConstraints
45893			}
45894		case "CorrelationScheme":
45895			if v != nil {
45896				var correlationScheme []ServiceCorrelationDescription
45897				err = json.Unmarshal(*v, &correlationScheme)
45898				if err != nil {
45899					return err
45900				}
45901				ssd.CorrelationScheme = &correlationScheme
45902			}
45903		case "ServiceLoadMetrics":
45904			if v != nil {
45905				var serviceLoadMetrics []ServiceLoadMetricDescription
45906				err = json.Unmarshal(*v, &serviceLoadMetrics)
45907				if err != nil {
45908					return err
45909				}
45910				ssd.ServiceLoadMetrics = &serviceLoadMetrics
45911			}
45912		case "ServicePlacementPolicies":
45913			if v != nil {
45914				servicePlacementPolicies, err := unmarshalBasicServicePlacementPolicyDescriptionArray(*v)
45915				if err != nil {
45916					return err
45917				}
45918				ssd.ServicePlacementPolicies = &servicePlacementPolicies
45919			}
45920		case "DefaultMoveCost":
45921			if v != nil {
45922				var defaultMoveCost MoveCost
45923				err = json.Unmarshal(*v, &defaultMoveCost)
45924				if err != nil {
45925					return err
45926				}
45927				ssd.DefaultMoveCost = defaultMoveCost
45928			}
45929		case "IsDefaultMoveCostSpecified":
45930			if v != nil {
45931				var isDefaultMoveCostSpecified bool
45932				err = json.Unmarshal(*v, &isDefaultMoveCostSpecified)
45933				if err != nil {
45934					return err
45935				}
45936				ssd.IsDefaultMoveCostSpecified = &isDefaultMoveCostSpecified
45937			}
45938		case "ServicePackageActivationMode":
45939			if v != nil {
45940				var servicePackageActivationMode ServicePackageActivationMode
45941				err = json.Unmarshal(*v, &servicePackageActivationMode)
45942				if err != nil {
45943					return err
45944				}
45945				ssd.ServicePackageActivationMode = servicePackageActivationMode
45946			}
45947		case "ServiceDnsName":
45948			if v != nil {
45949				var serviceDNSName string
45950				err = json.Unmarshal(*v, &serviceDNSName)
45951				if err != nil {
45952					return err
45953				}
45954				ssd.ServiceDNSName = &serviceDNSName
45955			}
45956		case "ScalingPolicies":
45957			if v != nil {
45958				var scalingPolicies []ScalingPolicyDescription
45959				err = json.Unmarshal(*v, &scalingPolicies)
45960				if err != nil {
45961					return err
45962				}
45963				ssd.ScalingPolicies = &scalingPolicies
45964			}
45965		case "ServiceKind":
45966			if v != nil {
45967				var serviceKind ServiceKindBasicServiceDescription
45968				err = json.Unmarshal(*v, &serviceKind)
45969				if err != nil {
45970					return err
45971				}
45972				ssd.ServiceKind = serviceKind
45973			}
45974		}
45975	}
45976
45977	return nil
45978}
45979
45980// StatelessServiceInfo information about a stateless Service Fabric service.
45981type StatelessServiceInfo struct {
45982	// 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.
45983	// Starting in version 6.0, hierarchical names are delimited with the "\~" character. For example, if the service name is "fabric:/myapp/app1/svc1",
45984	// the service identity would be "myapp~app1\~svc1" in 6.0+ and "myapp/app1/svc1" in previous versions.
45985	ID *string `json:"Id,omitempty"`
45986	// Name - The full name of the service with 'fabric:' URI scheme.
45987	Name *string `json:"Name,omitempty"`
45988	// TypeName - Name of the service type as specified in the service manifest.
45989	TypeName *string `json:"TypeName,omitempty"`
45990	// ManifestVersion - The version of the service manifest.
45991	ManifestVersion *string `json:"ManifestVersion,omitempty"`
45992	// 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'
45993	HealthState HealthState `json:"HealthState,omitempty"`
45994	// ServiceStatus - The status of the application. Possible values include: 'ServiceStatusUnknown', 'ServiceStatusActive', 'ServiceStatusUpgrading', 'ServiceStatusDeleting', 'ServiceStatusCreating', 'ServiceStatusFailed'
45995	ServiceStatus ServiceStatus `json:"ServiceStatus,omitempty"`
45996	// IsServiceGroup - Whether the service is in a service group.
45997	IsServiceGroup *bool `json:"IsServiceGroup,omitempty"`
45998	// ServiceKind - Possible values include: 'ServiceKindBasicServiceInfoServiceKindServiceInfo', 'ServiceKindBasicServiceInfoServiceKindStateful', 'ServiceKindBasicServiceInfoServiceKindStateless'
45999	ServiceKind ServiceKindBasicServiceInfo `json:"ServiceKind,omitempty"`
46000}
46001
46002// MarshalJSON is the custom marshaler for StatelessServiceInfo.
46003func (ssi StatelessServiceInfo) MarshalJSON() ([]byte, error) {
46004	ssi.ServiceKind = ServiceKindBasicServiceInfoServiceKindStateless
46005	objectMap := make(map[string]interface{})
46006	if ssi.ID != nil {
46007		objectMap["Id"] = ssi.ID
46008	}
46009	if ssi.Name != nil {
46010		objectMap["Name"] = ssi.Name
46011	}
46012	if ssi.TypeName != nil {
46013		objectMap["TypeName"] = ssi.TypeName
46014	}
46015	if ssi.ManifestVersion != nil {
46016		objectMap["ManifestVersion"] = ssi.ManifestVersion
46017	}
46018	if ssi.HealthState != "" {
46019		objectMap["HealthState"] = ssi.HealthState
46020	}
46021	if ssi.ServiceStatus != "" {
46022		objectMap["ServiceStatus"] = ssi.ServiceStatus
46023	}
46024	if ssi.IsServiceGroup != nil {
46025		objectMap["IsServiceGroup"] = ssi.IsServiceGroup
46026	}
46027	if ssi.ServiceKind != "" {
46028		objectMap["ServiceKind"] = ssi.ServiceKind
46029	}
46030	return json.Marshal(objectMap)
46031}
46032
46033// AsStatefulServiceInfo is the BasicServiceInfo implementation for StatelessServiceInfo.
46034func (ssi StatelessServiceInfo) AsStatefulServiceInfo() (*StatefulServiceInfo, bool) {
46035	return nil, false
46036}
46037
46038// AsStatelessServiceInfo is the BasicServiceInfo implementation for StatelessServiceInfo.
46039func (ssi StatelessServiceInfo) AsStatelessServiceInfo() (*StatelessServiceInfo, bool) {
46040	return &ssi, true
46041}
46042
46043// AsServiceInfo is the BasicServiceInfo implementation for StatelessServiceInfo.
46044func (ssi StatelessServiceInfo) AsServiceInfo() (*ServiceInfo, bool) {
46045	return nil, false
46046}
46047
46048// AsBasicServiceInfo is the BasicServiceInfo implementation for StatelessServiceInfo.
46049func (ssi StatelessServiceInfo) AsBasicServiceInfo() (BasicServiceInfo, bool) {
46050	return &ssi, true
46051}
46052
46053// StatelessServiceInstanceHealth represents the health of the stateless service instance.
46054// Contains the instance aggregated health state, the health events and the unhealthy evaluations.
46055type StatelessServiceInstanceHealth struct {
46056	// 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.
46057	InstanceID *string `json:"InstanceId,omitempty"`
46058	// PartitionID - Id of the partition to which this replica belongs.
46059	PartitionID *uuid.UUID `json:"PartitionId,omitempty"`
46060	// ServiceKind - Possible values include: 'ServiceKindBasicReplicaHealthServiceKindReplicaHealth', 'ServiceKindBasicReplicaHealthServiceKindStateful', 'ServiceKindBasicReplicaHealthServiceKindStateless'
46061	ServiceKind ServiceKindBasicReplicaHealth `json:"ServiceKind,omitempty"`
46062	// AggregatedHealthState - The HealthState representing the aggregated health state of the entity computed by Health Manager.
46063	// The health evaluation of the entity reflects all events reported on the entity and its children (if any).
46064	// The aggregation is done by applying the desired health policy. Possible values include: 'HealthStateInvalid', 'HealthStateOk', 'HealthStateWarning', 'HealthStateError', 'HealthStateUnknown'
46065	AggregatedHealthState HealthState `json:"AggregatedHealthState,omitempty"`
46066	// HealthEvents - The list of health events reported on the entity.
46067	HealthEvents *[]HealthEvent `json:"HealthEvents,omitempty"`
46068	// UnhealthyEvaluations - The unhealthy evaluations that show why the current aggregated health state was returned by Health Manager.
46069	UnhealthyEvaluations *[]HealthEvaluationWrapper `json:"UnhealthyEvaluations,omitempty"`
46070	// HealthStatistics - Shows the health statistics for all children types of the queried entity.
46071	HealthStatistics *HealthStatistics `json:"HealthStatistics,omitempty"`
46072}
46073
46074// MarshalJSON is the custom marshaler for StatelessServiceInstanceHealth.
46075func (ssih StatelessServiceInstanceHealth) MarshalJSON() ([]byte, error) {
46076	ssih.ServiceKind = ServiceKindBasicReplicaHealthServiceKindStateless
46077	objectMap := make(map[string]interface{})
46078	if ssih.InstanceID != nil {
46079		objectMap["InstanceId"] = ssih.InstanceID
46080	}
46081	if ssih.PartitionID != nil {
46082		objectMap["PartitionId"] = ssih.PartitionID
46083	}
46084	if ssih.ServiceKind != "" {
46085		objectMap["ServiceKind"] = ssih.ServiceKind
46086	}
46087	if ssih.AggregatedHealthState != "" {
46088		objectMap["AggregatedHealthState"] = ssih.AggregatedHealthState
46089	}
46090	if ssih.HealthEvents != nil {
46091		objectMap["HealthEvents"] = ssih.HealthEvents
46092	}
46093	if ssih.UnhealthyEvaluations != nil {
46094		objectMap["UnhealthyEvaluations"] = ssih.UnhealthyEvaluations
46095	}
46096	if ssih.HealthStatistics != nil {
46097		objectMap["HealthStatistics"] = ssih.HealthStatistics
46098	}
46099	return json.Marshal(objectMap)
46100}
46101
46102// AsStatefulServiceReplicaHealth is the BasicReplicaHealth implementation for StatelessServiceInstanceHealth.
46103func (ssih StatelessServiceInstanceHealth) AsStatefulServiceReplicaHealth() (*StatefulServiceReplicaHealth, bool) {
46104	return nil, false
46105}
46106
46107// AsStatelessServiceInstanceHealth is the BasicReplicaHealth implementation for StatelessServiceInstanceHealth.
46108func (ssih StatelessServiceInstanceHealth) AsStatelessServiceInstanceHealth() (*StatelessServiceInstanceHealth, bool) {
46109	return &ssih, true
46110}
46111
46112// AsReplicaHealth is the BasicReplicaHealth implementation for StatelessServiceInstanceHealth.
46113func (ssih StatelessServiceInstanceHealth) AsReplicaHealth() (*ReplicaHealth, bool) {
46114	return nil, false
46115}
46116
46117// AsBasicReplicaHealth is the BasicReplicaHealth implementation for StatelessServiceInstanceHealth.
46118func (ssih StatelessServiceInstanceHealth) AsBasicReplicaHealth() (BasicReplicaHealth, bool) {
46119	return &ssih, true
46120}
46121
46122// StatelessServiceInstanceHealthState represents the health state of the stateless service instance, which
46123// contains the instance ID and the aggregated health state.
46124type StatelessServiceInstanceHealthState struct {
46125	// ReplicaID - Id of the stateless service instance on the wire this field is called ReplicaId.
46126	ReplicaID *string `json:"ReplicaId,omitempty"`
46127	// PartitionID - The ID of the partition to which this replica belongs.
46128	PartitionID *uuid.UUID `json:"PartitionId,omitempty"`
46129	// ServiceKind - Possible values include: 'ServiceKindBasicReplicaHealthStateServiceKindReplicaHealthState', 'ServiceKindBasicReplicaHealthStateServiceKindStateful', 'ServiceKindBasicReplicaHealthStateServiceKindStateless'
46130	ServiceKind ServiceKindBasicReplicaHealthState `json:"ServiceKind,omitempty"`
46131	// 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'
46132	AggregatedHealthState HealthState `json:"AggregatedHealthState,omitempty"`
46133}
46134
46135// MarshalJSON is the custom marshaler for StatelessServiceInstanceHealthState.
46136func (ssihs StatelessServiceInstanceHealthState) MarshalJSON() ([]byte, error) {
46137	ssihs.ServiceKind = ServiceKindBasicReplicaHealthStateServiceKindStateless
46138	objectMap := make(map[string]interface{})
46139	if ssihs.ReplicaID != nil {
46140		objectMap["ReplicaId"] = ssihs.ReplicaID
46141	}
46142	if ssihs.PartitionID != nil {
46143		objectMap["PartitionId"] = ssihs.PartitionID
46144	}
46145	if ssihs.ServiceKind != "" {
46146		objectMap["ServiceKind"] = ssihs.ServiceKind
46147	}
46148	if ssihs.AggregatedHealthState != "" {
46149		objectMap["AggregatedHealthState"] = ssihs.AggregatedHealthState
46150	}
46151	return json.Marshal(objectMap)
46152}
46153
46154// AsStatefulServiceReplicaHealthState is the BasicReplicaHealthState implementation for StatelessServiceInstanceHealthState.
46155func (ssihs StatelessServiceInstanceHealthState) AsStatefulServiceReplicaHealthState() (*StatefulServiceReplicaHealthState, bool) {
46156	return nil, false
46157}
46158
46159// AsStatelessServiceInstanceHealthState is the BasicReplicaHealthState implementation for StatelessServiceInstanceHealthState.
46160func (ssihs StatelessServiceInstanceHealthState) AsStatelessServiceInstanceHealthState() (*StatelessServiceInstanceHealthState, bool) {
46161	return &ssihs, true
46162}
46163
46164// AsReplicaHealthState is the BasicReplicaHealthState implementation for StatelessServiceInstanceHealthState.
46165func (ssihs StatelessServiceInstanceHealthState) AsReplicaHealthState() (*ReplicaHealthState, bool) {
46166	return nil, false
46167}
46168
46169// AsBasicReplicaHealthState is the BasicReplicaHealthState implementation for StatelessServiceInstanceHealthState.
46170func (ssihs StatelessServiceInstanceHealthState) AsBasicReplicaHealthState() (BasicReplicaHealthState, bool) {
46171	return &ssihs, true
46172}
46173
46174// StatelessServiceInstanceInfo represents a stateless service instance. This includes information about
46175// the identity, status, health, node name, uptime, and other details about the instance.
46176type StatelessServiceInstanceInfo struct {
46177	// 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.
46178	InstanceID *string `json:"InstanceId,omitempty"`
46179	// ReplicaStatus - The status of a replica of a service. Possible values include: 'ReplicaStatusInvalid', 'ReplicaStatusInBuild', 'ReplicaStatusStandby', 'ReplicaStatusReady', 'ReplicaStatusDown', 'ReplicaStatusDropped'
46180	ReplicaStatus ReplicaStatus `json:"ReplicaStatus,omitempty"`
46181	// 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'
46182	HealthState HealthState `json:"HealthState,omitempty"`
46183	// NodeName - The name of a Service Fabric node.
46184	NodeName *string `json:"NodeName,omitempty"`
46185	// Address - The address the replica is listening on.
46186	Address *string `json:"Address,omitempty"`
46187	// LastInBuildDurationInSeconds - The last in build duration of the replica in seconds.
46188	LastInBuildDurationInSeconds *string `json:"LastInBuildDurationInSeconds,omitempty"`
46189	// ServiceKind - Possible values include: 'ServiceKindBasicReplicaInfoServiceKindReplicaInfo', 'ServiceKindBasicReplicaInfoServiceKindStateful', 'ServiceKindBasicReplicaInfoServiceKindStateless'
46190	ServiceKind ServiceKindBasicReplicaInfo `json:"ServiceKind,omitempty"`
46191}
46192
46193// MarshalJSON is the custom marshaler for StatelessServiceInstanceInfo.
46194func (ssii StatelessServiceInstanceInfo) MarshalJSON() ([]byte, error) {
46195	ssii.ServiceKind = ServiceKindBasicReplicaInfoServiceKindStateless
46196	objectMap := make(map[string]interface{})
46197	if ssii.InstanceID != nil {
46198		objectMap["InstanceId"] = ssii.InstanceID
46199	}
46200	if ssii.ReplicaStatus != "" {
46201		objectMap["ReplicaStatus"] = ssii.ReplicaStatus
46202	}
46203	if ssii.HealthState != "" {
46204		objectMap["HealthState"] = ssii.HealthState
46205	}
46206	if ssii.NodeName != nil {
46207		objectMap["NodeName"] = ssii.NodeName
46208	}
46209	if ssii.Address != nil {
46210		objectMap["Address"] = ssii.Address
46211	}
46212	if ssii.LastInBuildDurationInSeconds != nil {
46213		objectMap["LastInBuildDurationInSeconds"] = ssii.LastInBuildDurationInSeconds
46214	}
46215	if ssii.ServiceKind != "" {
46216		objectMap["ServiceKind"] = ssii.ServiceKind
46217	}
46218	return json.Marshal(objectMap)
46219}
46220
46221// AsStatefulServiceReplicaInfo is the BasicReplicaInfo implementation for StatelessServiceInstanceInfo.
46222func (ssii StatelessServiceInstanceInfo) AsStatefulServiceReplicaInfo() (*StatefulServiceReplicaInfo, bool) {
46223	return nil, false
46224}
46225
46226// AsStatelessServiceInstanceInfo is the BasicReplicaInfo implementation for StatelessServiceInstanceInfo.
46227func (ssii StatelessServiceInstanceInfo) AsStatelessServiceInstanceInfo() (*StatelessServiceInstanceInfo, bool) {
46228	return &ssii, true
46229}
46230
46231// AsReplicaInfo is the BasicReplicaInfo implementation for StatelessServiceInstanceInfo.
46232func (ssii StatelessServiceInstanceInfo) AsReplicaInfo() (*ReplicaInfo, bool) {
46233	return nil, false
46234}
46235
46236// AsBasicReplicaInfo is the BasicReplicaInfo implementation for StatelessServiceInstanceInfo.
46237func (ssii StatelessServiceInstanceInfo) AsBasicReplicaInfo() (BasicReplicaInfo, bool) {
46238	return &ssii, true
46239}
46240
46241// StatelessServicePartitionInfo information about a partition of a stateless Service Fabric service.
46242type StatelessServicePartitionInfo struct {
46243	// InstanceCount - Number of instances of this partition.
46244	InstanceCount *int64 `json:"InstanceCount,omitempty"`
46245	// 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'
46246	HealthState HealthState `json:"HealthState,omitempty"`
46247	// PartitionStatus - The status of the service fabric service partition. Possible values include: 'ServicePartitionStatusInvalid', 'ServicePartitionStatusReady', 'ServicePartitionStatusNotReady', 'ServicePartitionStatusInQuorumLoss', 'ServicePartitionStatusReconfiguring', 'ServicePartitionStatusDeleting'
46248	PartitionStatus ServicePartitionStatus `json:"PartitionStatus,omitempty"`
46249	// PartitionInformation - Information about the partition identity, partitioning scheme and keys supported by it.
46250	PartitionInformation BasicPartitionInformation `json:"PartitionInformation,omitempty"`
46251	// ServiceKind - Possible values include: 'ServiceKindBasicServicePartitionInfoServiceKindServicePartitionInfo', 'ServiceKindBasicServicePartitionInfoServiceKindStateful', 'ServiceKindBasicServicePartitionInfoServiceKindStateless'
46252	ServiceKind ServiceKindBasicServicePartitionInfo `json:"ServiceKind,omitempty"`
46253}
46254
46255// MarshalJSON is the custom marshaler for StatelessServicePartitionInfo.
46256func (sspi StatelessServicePartitionInfo) MarshalJSON() ([]byte, error) {
46257	sspi.ServiceKind = ServiceKindBasicServicePartitionInfoServiceKindStateless
46258	objectMap := make(map[string]interface{})
46259	if sspi.InstanceCount != nil {
46260		objectMap["InstanceCount"] = sspi.InstanceCount
46261	}
46262	if sspi.HealthState != "" {
46263		objectMap["HealthState"] = sspi.HealthState
46264	}
46265	if sspi.PartitionStatus != "" {
46266		objectMap["PartitionStatus"] = sspi.PartitionStatus
46267	}
46268	objectMap["PartitionInformation"] = sspi.PartitionInformation
46269	if sspi.ServiceKind != "" {
46270		objectMap["ServiceKind"] = sspi.ServiceKind
46271	}
46272	return json.Marshal(objectMap)
46273}
46274
46275// AsStatefulServicePartitionInfo is the BasicServicePartitionInfo implementation for StatelessServicePartitionInfo.
46276func (sspi StatelessServicePartitionInfo) AsStatefulServicePartitionInfo() (*StatefulServicePartitionInfo, bool) {
46277	return nil, false
46278}
46279
46280// AsStatelessServicePartitionInfo is the BasicServicePartitionInfo implementation for StatelessServicePartitionInfo.
46281func (sspi StatelessServicePartitionInfo) AsStatelessServicePartitionInfo() (*StatelessServicePartitionInfo, bool) {
46282	return &sspi, true
46283}
46284
46285// AsServicePartitionInfo is the BasicServicePartitionInfo implementation for StatelessServicePartitionInfo.
46286func (sspi StatelessServicePartitionInfo) AsServicePartitionInfo() (*ServicePartitionInfo, bool) {
46287	return nil, false
46288}
46289
46290// AsBasicServicePartitionInfo is the BasicServicePartitionInfo implementation for StatelessServicePartitionInfo.
46291func (sspi StatelessServicePartitionInfo) AsBasicServicePartitionInfo() (BasicServicePartitionInfo, bool) {
46292	return &sspi, true
46293}
46294
46295// UnmarshalJSON is the custom unmarshaler for StatelessServicePartitionInfo struct.
46296func (sspi *StatelessServicePartitionInfo) UnmarshalJSON(body []byte) error {
46297	var m map[string]*json.RawMessage
46298	err := json.Unmarshal(body, &m)
46299	if err != nil {
46300		return err
46301	}
46302	for k, v := range m {
46303		switch k {
46304		case "InstanceCount":
46305			if v != nil {
46306				var instanceCount int64
46307				err = json.Unmarshal(*v, &instanceCount)
46308				if err != nil {
46309					return err
46310				}
46311				sspi.InstanceCount = &instanceCount
46312			}
46313		case "HealthState":
46314			if v != nil {
46315				var healthState HealthState
46316				err = json.Unmarshal(*v, &healthState)
46317				if err != nil {
46318					return err
46319				}
46320				sspi.HealthState = healthState
46321			}
46322		case "PartitionStatus":
46323			if v != nil {
46324				var partitionStatus ServicePartitionStatus
46325				err = json.Unmarshal(*v, &partitionStatus)
46326				if err != nil {
46327					return err
46328				}
46329				sspi.PartitionStatus = partitionStatus
46330			}
46331		case "PartitionInformation":
46332			if v != nil {
46333				partitionInformation, err := unmarshalBasicPartitionInformation(*v)
46334				if err != nil {
46335					return err
46336				}
46337				sspi.PartitionInformation = partitionInformation
46338			}
46339		case "ServiceKind":
46340			if v != nil {
46341				var serviceKind ServiceKindBasicServicePartitionInfo
46342				err = json.Unmarshal(*v, &serviceKind)
46343				if err != nil {
46344					return err
46345				}
46346				sspi.ServiceKind = serviceKind
46347			}
46348		}
46349	}
46350
46351	return nil
46352}
46353
46354// StatelessServiceTypeDescription describes a stateless service type defined in the service manifest of a
46355// provisioned application type.
46356type StatelessServiceTypeDescription struct {
46357	// 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.
46358	UseImplicitHost *bool `json:"UseImplicitHost,omitempty"`
46359	// 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.
46360	IsStateful *bool `json:"IsStateful,omitempty"`
46361	// ServiceTypeName - Name of the service type as specified in the service manifest.
46362	ServiceTypeName *string `json:"ServiceTypeName,omitempty"`
46363	// PlacementConstraints - The placement constraint to be used when instantiating this service in a Service Fabric cluster.
46364	PlacementConstraints *string `json:"PlacementConstraints,omitempty"`
46365	// LoadMetrics - The service load metrics is given as an array of ServiceLoadMetricDescription objects.
46366	LoadMetrics *[]ServiceLoadMetricDescription `json:"LoadMetrics,omitempty"`
46367	// ServicePlacementPolicies - List of service placement policy descriptions.
46368	ServicePlacementPolicies *[]BasicServicePlacementPolicyDescription `json:"ServicePlacementPolicies,omitempty"`
46369	// Extensions - List of service type extensions.
46370	Extensions *[]ServiceTypeExtensionDescription `json:"Extensions,omitempty"`
46371	// Kind - Possible values include: 'KindServiceTypeDescription', 'KindStateful', 'KindStateless'
46372	Kind KindBasicServiceTypeDescription `json:"Kind,omitempty"`
46373}
46374
46375// MarshalJSON is the custom marshaler for StatelessServiceTypeDescription.
46376func (sstd StatelessServiceTypeDescription) MarshalJSON() ([]byte, error) {
46377	sstd.Kind = KindStateless
46378	objectMap := make(map[string]interface{})
46379	if sstd.UseImplicitHost != nil {
46380		objectMap["UseImplicitHost"] = sstd.UseImplicitHost
46381	}
46382	if sstd.IsStateful != nil {
46383		objectMap["IsStateful"] = sstd.IsStateful
46384	}
46385	if sstd.ServiceTypeName != nil {
46386		objectMap["ServiceTypeName"] = sstd.ServiceTypeName
46387	}
46388	if sstd.PlacementConstraints != nil {
46389		objectMap["PlacementConstraints"] = sstd.PlacementConstraints
46390	}
46391	if sstd.LoadMetrics != nil {
46392		objectMap["LoadMetrics"] = sstd.LoadMetrics
46393	}
46394	if sstd.ServicePlacementPolicies != nil {
46395		objectMap["ServicePlacementPolicies"] = sstd.ServicePlacementPolicies
46396	}
46397	if sstd.Extensions != nil {
46398		objectMap["Extensions"] = sstd.Extensions
46399	}
46400	if sstd.Kind != "" {
46401		objectMap["Kind"] = sstd.Kind
46402	}
46403	return json.Marshal(objectMap)
46404}
46405
46406// AsStatefulServiceTypeDescription is the BasicServiceTypeDescription implementation for StatelessServiceTypeDescription.
46407func (sstd StatelessServiceTypeDescription) AsStatefulServiceTypeDescription() (*StatefulServiceTypeDescription, bool) {
46408	return nil, false
46409}
46410
46411// AsStatelessServiceTypeDescription is the BasicServiceTypeDescription implementation for StatelessServiceTypeDescription.
46412func (sstd StatelessServiceTypeDescription) AsStatelessServiceTypeDescription() (*StatelessServiceTypeDescription, bool) {
46413	return &sstd, true
46414}
46415
46416// AsServiceTypeDescription is the BasicServiceTypeDescription implementation for StatelessServiceTypeDescription.
46417func (sstd StatelessServiceTypeDescription) AsServiceTypeDescription() (*ServiceTypeDescription, bool) {
46418	return nil, false
46419}
46420
46421// AsBasicServiceTypeDescription is the BasicServiceTypeDescription implementation for StatelessServiceTypeDescription.
46422func (sstd StatelessServiceTypeDescription) AsBasicServiceTypeDescription() (BasicServiceTypeDescription, bool) {
46423	return &sstd, true
46424}
46425
46426// UnmarshalJSON is the custom unmarshaler for StatelessServiceTypeDescription struct.
46427func (sstd *StatelessServiceTypeDescription) UnmarshalJSON(body []byte) error {
46428	var m map[string]*json.RawMessage
46429	err := json.Unmarshal(body, &m)
46430	if err != nil {
46431		return err
46432	}
46433	for k, v := range m {
46434		switch k {
46435		case "UseImplicitHost":
46436			if v != nil {
46437				var useImplicitHost bool
46438				err = json.Unmarshal(*v, &useImplicitHost)
46439				if err != nil {
46440					return err
46441				}
46442				sstd.UseImplicitHost = &useImplicitHost
46443			}
46444		case "IsStateful":
46445			if v != nil {
46446				var isStateful bool
46447				err = json.Unmarshal(*v, &isStateful)
46448				if err != nil {
46449					return err
46450				}
46451				sstd.IsStateful = &isStateful
46452			}
46453		case "ServiceTypeName":
46454			if v != nil {
46455				var serviceTypeName string
46456				err = json.Unmarshal(*v, &serviceTypeName)
46457				if err != nil {
46458					return err
46459				}
46460				sstd.ServiceTypeName = &serviceTypeName
46461			}
46462		case "PlacementConstraints":
46463			if v != nil {
46464				var placementConstraints string
46465				err = json.Unmarshal(*v, &placementConstraints)
46466				if err != nil {
46467					return err
46468				}
46469				sstd.PlacementConstraints = &placementConstraints
46470			}
46471		case "LoadMetrics":
46472			if v != nil {
46473				var loadMetrics []ServiceLoadMetricDescription
46474				err = json.Unmarshal(*v, &loadMetrics)
46475				if err != nil {
46476					return err
46477				}
46478				sstd.LoadMetrics = &loadMetrics
46479			}
46480		case "ServicePlacementPolicies":
46481			if v != nil {
46482				servicePlacementPolicies, err := unmarshalBasicServicePlacementPolicyDescriptionArray(*v)
46483				if err != nil {
46484					return err
46485				}
46486				sstd.ServicePlacementPolicies = &servicePlacementPolicies
46487			}
46488		case "Extensions":
46489			if v != nil {
46490				var extensions []ServiceTypeExtensionDescription
46491				err = json.Unmarshal(*v, &extensions)
46492				if err != nil {
46493					return err
46494				}
46495				sstd.Extensions = &extensions
46496			}
46497		case "Kind":
46498			if v != nil {
46499				var kind KindBasicServiceTypeDescription
46500				err = json.Unmarshal(*v, &kind)
46501				if err != nil {
46502					return err
46503				}
46504				sstd.Kind = kind
46505			}
46506		}
46507	}
46508
46509	return nil
46510}
46511
46512// StatelessServiceUpdateDescription describes an update for a stateless service.
46513type StatelessServiceUpdateDescription struct {
46514	// InstanceCount - The instance count.
46515	InstanceCount *int32 `json:"InstanceCount,omitempty"`
46516	// 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.
46517	// This property can be a combination of those flags obtained using bitwise 'OR' operator.
46518	// For example, if the provided value is 6 then the flags for ReplicaRestartWaitDuration (2) and QuorumLossWaitDuration (4) are set.
46519	// - None - Does not indicate any other properties are set. The value is zero.
46520	// - TargetReplicaSetSize/InstanceCount - Indicates whether the TargetReplicaSetSize property (for Stateful services) or the InstanceCount property (for Stateless services) is set. The value is 1.
46521	// - ReplicaRestartWaitDuration - Indicates the ReplicaRestartWaitDuration property is set. The value is  2.
46522	// - QuorumLossWaitDuration - Indicates the QuorumLossWaitDuration property is set. The value is 4.
46523	// - StandByReplicaKeepDuration - Indicates the StandByReplicaKeepDuration property is set. The value is 8.
46524	// - MinReplicaSetSize - Indicates the MinReplicaSetSize property is set. The value is 16.
46525	// - PlacementConstraints - Indicates the PlacementConstraints property is set. The value is 32.
46526	// - PlacementPolicyList - Indicates the ServicePlacementPolicies property is set. The value is 64.
46527	// - Correlation - Indicates the CorrelationScheme property is set. The value is 128.
46528	// - Metrics - Indicates the ServiceLoadMetrics property is set. The value is 256.
46529	// - DefaultMoveCost - Indicates the DefaultMoveCost property is set. The value is 512.
46530	// - ScalingPolicy - Indicates the ScalingPolicies property is set. The value is 1024.
46531	Flags *string `json:"Flags,omitempty"`
46532	// 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)".
46533	PlacementConstraints *string `json:"PlacementConstraints,omitempty"`
46534	// CorrelationScheme - The correlation scheme.
46535	CorrelationScheme *[]ServiceCorrelationDescription `json:"CorrelationScheme,omitempty"`
46536	// LoadMetrics - The service load metrics.
46537	LoadMetrics *[]ServiceLoadMetricDescription `json:"LoadMetrics,omitempty"`
46538	// ServicePlacementPolicies - The service placement policies.
46539	ServicePlacementPolicies *[]BasicServicePlacementPolicyDescription `json:"ServicePlacementPolicies,omitempty"`
46540	// DefaultMoveCost - The move cost for the service. Possible values include: 'Zero', 'Low', 'Medium', 'High'
46541	DefaultMoveCost MoveCost `json:"DefaultMoveCost,omitempty"`
46542	// ScalingPolicies - Scaling policies for this service.
46543	ScalingPolicies *[]ScalingPolicyDescription `json:"ScalingPolicies,omitempty"`
46544	// ServiceKind - Possible values include: 'ServiceKindBasicServiceUpdateDescriptionServiceKindServiceUpdateDescription', 'ServiceKindBasicServiceUpdateDescriptionServiceKindStateful', 'ServiceKindBasicServiceUpdateDescriptionServiceKindStateless'
46545	ServiceKind ServiceKindBasicServiceUpdateDescription `json:"ServiceKind,omitempty"`
46546}
46547
46548// MarshalJSON is the custom marshaler for StatelessServiceUpdateDescription.
46549func (ssud StatelessServiceUpdateDescription) MarshalJSON() ([]byte, error) {
46550	ssud.ServiceKind = ServiceKindBasicServiceUpdateDescriptionServiceKindStateless
46551	objectMap := make(map[string]interface{})
46552	if ssud.InstanceCount != nil {
46553		objectMap["InstanceCount"] = ssud.InstanceCount
46554	}
46555	if ssud.Flags != nil {
46556		objectMap["Flags"] = ssud.Flags
46557	}
46558	if ssud.PlacementConstraints != nil {
46559		objectMap["PlacementConstraints"] = ssud.PlacementConstraints
46560	}
46561	if ssud.CorrelationScheme != nil {
46562		objectMap["CorrelationScheme"] = ssud.CorrelationScheme
46563	}
46564	if ssud.LoadMetrics != nil {
46565		objectMap["LoadMetrics"] = ssud.LoadMetrics
46566	}
46567	if ssud.ServicePlacementPolicies != nil {
46568		objectMap["ServicePlacementPolicies"] = ssud.ServicePlacementPolicies
46569	}
46570	if ssud.DefaultMoveCost != "" {
46571		objectMap["DefaultMoveCost"] = ssud.DefaultMoveCost
46572	}
46573	if ssud.ScalingPolicies != nil {
46574		objectMap["ScalingPolicies"] = ssud.ScalingPolicies
46575	}
46576	if ssud.ServiceKind != "" {
46577		objectMap["ServiceKind"] = ssud.ServiceKind
46578	}
46579	return json.Marshal(objectMap)
46580}
46581
46582// AsStatefulServiceUpdateDescription is the BasicServiceUpdateDescription implementation for StatelessServiceUpdateDescription.
46583func (ssud StatelessServiceUpdateDescription) AsStatefulServiceUpdateDescription() (*StatefulServiceUpdateDescription, bool) {
46584	return nil, false
46585}
46586
46587// AsStatelessServiceUpdateDescription is the BasicServiceUpdateDescription implementation for StatelessServiceUpdateDescription.
46588func (ssud StatelessServiceUpdateDescription) AsStatelessServiceUpdateDescription() (*StatelessServiceUpdateDescription, bool) {
46589	return &ssud, true
46590}
46591
46592// AsServiceUpdateDescription is the BasicServiceUpdateDescription implementation for StatelessServiceUpdateDescription.
46593func (ssud StatelessServiceUpdateDescription) AsServiceUpdateDescription() (*ServiceUpdateDescription, bool) {
46594	return nil, false
46595}
46596
46597// AsBasicServiceUpdateDescription is the BasicServiceUpdateDescription implementation for StatelessServiceUpdateDescription.
46598func (ssud StatelessServiceUpdateDescription) AsBasicServiceUpdateDescription() (BasicServiceUpdateDescription, bool) {
46599	return &ssud, true
46600}
46601
46602// UnmarshalJSON is the custom unmarshaler for StatelessServiceUpdateDescription struct.
46603func (ssud *StatelessServiceUpdateDescription) UnmarshalJSON(body []byte) error {
46604	var m map[string]*json.RawMessage
46605	err := json.Unmarshal(body, &m)
46606	if err != nil {
46607		return err
46608	}
46609	for k, v := range m {
46610		switch k {
46611		case "InstanceCount":
46612			if v != nil {
46613				var instanceCount int32
46614				err = json.Unmarshal(*v, &instanceCount)
46615				if err != nil {
46616					return err
46617				}
46618				ssud.InstanceCount = &instanceCount
46619			}
46620		case "Flags":
46621			if v != nil {
46622				var flags string
46623				err = json.Unmarshal(*v, &flags)
46624				if err != nil {
46625					return err
46626				}
46627				ssud.Flags = &flags
46628			}
46629		case "PlacementConstraints":
46630			if v != nil {
46631				var placementConstraints string
46632				err = json.Unmarshal(*v, &placementConstraints)
46633				if err != nil {
46634					return err
46635				}
46636				ssud.PlacementConstraints = &placementConstraints
46637			}
46638		case "CorrelationScheme":
46639			if v != nil {
46640				var correlationScheme []ServiceCorrelationDescription
46641				err = json.Unmarshal(*v, &correlationScheme)
46642				if err != nil {
46643					return err
46644				}
46645				ssud.CorrelationScheme = &correlationScheme
46646			}
46647		case "LoadMetrics":
46648			if v != nil {
46649				var loadMetrics []ServiceLoadMetricDescription
46650				err = json.Unmarshal(*v, &loadMetrics)
46651				if err != nil {
46652					return err
46653				}
46654				ssud.LoadMetrics = &loadMetrics
46655			}
46656		case "ServicePlacementPolicies":
46657			if v != nil {
46658				servicePlacementPolicies, err := unmarshalBasicServicePlacementPolicyDescriptionArray(*v)
46659				if err != nil {
46660					return err
46661				}
46662				ssud.ServicePlacementPolicies = &servicePlacementPolicies
46663			}
46664		case "DefaultMoveCost":
46665			if v != nil {
46666				var defaultMoveCost MoveCost
46667				err = json.Unmarshal(*v, &defaultMoveCost)
46668				if err != nil {
46669					return err
46670				}
46671				ssud.DefaultMoveCost = defaultMoveCost
46672			}
46673		case "ScalingPolicies":
46674			if v != nil {
46675				var scalingPolicies []ScalingPolicyDescription
46676				err = json.Unmarshal(*v, &scalingPolicies)
46677				if err != nil {
46678					return err
46679				}
46680				ssud.ScalingPolicies = &scalingPolicies
46681			}
46682		case "ServiceKind":
46683			if v != nil {
46684				var serviceKind ServiceKindBasicServiceUpdateDescription
46685				err = json.Unmarshal(*v, &serviceKind)
46686				if err != nil {
46687					return err
46688				}
46689				ssud.ServiceKind = serviceKind
46690			}
46691		}
46692	}
46693
46694	return nil
46695}
46696
46697// StoppedChaosEvent describes a Chaos event that gets generated when Chaos stops because either the user
46698// issued a stop or the time to run was up.
46699type StoppedChaosEvent struct {
46700	// Reason - Describes why Chaos stopped. Chaos can stop because of StopChaos API call or the timeToRun provided in ChaosParameters is over.
46701	Reason *string `json:"Reason,omitempty"`
46702	// TimeStampUtc - The UTC timestamp when this Chaos event was generated.
46703	TimeStampUtc *date.Time `json:"TimeStampUtc,omitempty"`
46704	// Kind - Possible values include: 'KindChaosEvent', 'KindExecutingFaults', 'KindStarted', 'KindStopped', 'KindTestError', 'KindValidationFailed', 'KindWaiting'
46705	Kind KindBasicChaosEvent `json:"Kind,omitempty"`
46706}
46707
46708// MarshalJSON is the custom marshaler for StoppedChaosEvent.
46709func (sce StoppedChaosEvent) MarshalJSON() ([]byte, error) {
46710	sce.Kind = KindStopped
46711	objectMap := make(map[string]interface{})
46712	if sce.Reason != nil {
46713		objectMap["Reason"] = sce.Reason
46714	}
46715	if sce.TimeStampUtc != nil {
46716		objectMap["TimeStampUtc"] = sce.TimeStampUtc
46717	}
46718	if sce.Kind != "" {
46719		objectMap["Kind"] = sce.Kind
46720	}
46721	return json.Marshal(objectMap)
46722}
46723
46724// AsExecutingFaultsChaosEvent is the BasicChaosEvent implementation for StoppedChaosEvent.
46725func (sce StoppedChaosEvent) AsExecutingFaultsChaosEvent() (*ExecutingFaultsChaosEvent, bool) {
46726	return nil, false
46727}
46728
46729// AsStartedChaosEvent is the BasicChaosEvent implementation for StoppedChaosEvent.
46730func (sce StoppedChaosEvent) AsStartedChaosEvent() (*StartedChaosEvent, bool) {
46731	return nil, false
46732}
46733
46734// AsStoppedChaosEvent is the BasicChaosEvent implementation for StoppedChaosEvent.
46735func (sce StoppedChaosEvent) AsStoppedChaosEvent() (*StoppedChaosEvent, bool) {
46736	return &sce, true
46737}
46738
46739// AsTestErrorChaosEvent is the BasicChaosEvent implementation for StoppedChaosEvent.
46740func (sce StoppedChaosEvent) AsTestErrorChaosEvent() (*TestErrorChaosEvent, bool) {
46741	return nil, false
46742}
46743
46744// AsValidationFailedChaosEvent is the BasicChaosEvent implementation for StoppedChaosEvent.
46745func (sce StoppedChaosEvent) AsValidationFailedChaosEvent() (*ValidationFailedChaosEvent, bool) {
46746	return nil, false
46747}
46748
46749// AsWaitingChaosEvent is the BasicChaosEvent implementation for StoppedChaosEvent.
46750func (sce StoppedChaosEvent) AsWaitingChaosEvent() (*WaitingChaosEvent, bool) {
46751	return nil, false
46752}
46753
46754// AsChaosEvent is the BasicChaosEvent implementation for StoppedChaosEvent.
46755func (sce StoppedChaosEvent) AsChaosEvent() (*ChaosEvent, bool) {
46756	return nil, false
46757}
46758
46759// AsBasicChaosEvent is the BasicChaosEvent implementation for StoppedChaosEvent.
46760func (sce StoppedChaosEvent) AsBasicChaosEvent() (BasicChaosEvent, bool) {
46761	return &sce, true
46762}
46763
46764// String ...
46765type String struct {
46766	autorest.Response `json:"-"`
46767	Value             *string `json:"value,omitempty"`
46768}
46769
46770// StringPropertyValue describes a Service Fabric property value of type String.
46771type StringPropertyValue struct {
46772	// Data - The data of the property value.
46773	Data *string `json:"Data,omitempty"`
46774	// Kind - Possible values include: 'KindPropertyValue', 'KindBinary', 'KindInt64', 'KindDouble', 'KindString', 'KindGUID'
46775	Kind KindBasicPropertyValue `json:"Kind,omitempty"`
46776}
46777
46778// MarshalJSON is the custom marshaler for StringPropertyValue.
46779func (spv StringPropertyValue) MarshalJSON() ([]byte, error) {
46780	spv.Kind = KindString
46781	objectMap := make(map[string]interface{})
46782	if spv.Data != nil {
46783		objectMap["Data"] = spv.Data
46784	}
46785	if spv.Kind != "" {
46786		objectMap["Kind"] = spv.Kind
46787	}
46788	return json.Marshal(objectMap)
46789}
46790
46791// AsBinaryPropertyValue is the BasicPropertyValue implementation for StringPropertyValue.
46792func (spv StringPropertyValue) AsBinaryPropertyValue() (*BinaryPropertyValue, bool) {
46793	return nil, false
46794}
46795
46796// AsInt64PropertyValue is the BasicPropertyValue implementation for StringPropertyValue.
46797func (spv StringPropertyValue) AsInt64PropertyValue() (*Int64PropertyValue, bool) {
46798	return nil, false
46799}
46800
46801// AsDoublePropertyValue is the BasicPropertyValue implementation for StringPropertyValue.
46802func (spv StringPropertyValue) AsDoublePropertyValue() (*DoublePropertyValue, bool) {
46803	return nil, false
46804}
46805
46806// AsStringPropertyValue is the BasicPropertyValue implementation for StringPropertyValue.
46807func (spv StringPropertyValue) AsStringPropertyValue() (*StringPropertyValue, bool) {
46808	return &spv, true
46809}
46810
46811// AsGUIDPropertyValue is the BasicPropertyValue implementation for StringPropertyValue.
46812func (spv StringPropertyValue) AsGUIDPropertyValue() (*GUIDPropertyValue, bool) {
46813	return nil, false
46814}
46815
46816// AsPropertyValue is the BasicPropertyValue implementation for StringPropertyValue.
46817func (spv StringPropertyValue) AsPropertyValue() (*PropertyValue, bool) {
46818	return nil, false
46819}
46820
46821// AsBasicPropertyValue is the BasicPropertyValue implementation for StringPropertyValue.
46822func (spv StringPropertyValue) AsBasicPropertyValue() (BasicPropertyValue, bool) {
46823	return &spv, true
46824}
46825
46826// SuccessfulPropertyBatchInfo derived from PropertyBatchInfo. Represents the property batch succeeding.
46827// Contains the results of any "Get" operations in the batch.
46828type SuccessfulPropertyBatchInfo struct {
46829	// 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.
46830	Properties map[string]*PropertyInfo `json:"Properties"`
46831	// Kind - Possible values include: 'KindPropertyBatchInfo', 'KindSuccessful', 'KindFailed'
46832	Kind KindBasicPropertyBatchInfo `json:"Kind,omitempty"`
46833}
46834
46835// MarshalJSON is the custom marshaler for SuccessfulPropertyBatchInfo.
46836func (spbi SuccessfulPropertyBatchInfo) MarshalJSON() ([]byte, error) {
46837	spbi.Kind = KindSuccessful
46838	objectMap := make(map[string]interface{})
46839	if spbi.Properties != nil {
46840		objectMap["Properties"] = spbi.Properties
46841	}
46842	if spbi.Kind != "" {
46843		objectMap["Kind"] = spbi.Kind
46844	}
46845	return json.Marshal(objectMap)
46846}
46847
46848// AsSuccessfulPropertyBatchInfo is the BasicPropertyBatchInfo implementation for SuccessfulPropertyBatchInfo.
46849func (spbi SuccessfulPropertyBatchInfo) AsSuccessfulPropertyBatchInfo() (*SuccessfulPropertyBatchInfo, bool) {
46850	return &spbi, true
46851}
46852
46853// AsFailedPropertyBatchInfo is the BasicPropertyBatchInfo implementation for SuccessfulPropertyBatchInfo.
46854func (spbi SuccessfulPropertyBatchInfo) AsFailedPropertyBatchInfo() (*FailedPropertyBatchInfo, bool) {
46855	return nil, false
46856}
46857
46858// AsPropertyBatchInfo is the BasicPropertyBatchInfo implementation for SuccessfulPropertyBatchInfo.
46859func (spbi SuccessfulPropertyBatchInfo) AsPropertyBatchInfo() (*PropertyBatchInfo, bool) {
46860	return nil, false
46861}
46862
46863// AsBasicPropertyBatchInfo is the BasicPropertyBatchInfo implementation for SuccessfulPropertyBatchInfo.
46864func (spbi SuccessfulPropertyBatchInfo) AsBasicPropertyBatchInfo() (BasicPropertyBatchInfo, bool) {
46865	return &spbi, true
46866}
46867
46868// SystemApplicationHealthEvaluation represents health evaluation for the fabric:/System application,
46869// containing information about the data and the algorithm used by health store to evaluate health. The
46870// evaluation is returned only when the aggregated health state of the cluster is either Error or Warning.
46871type SystemApplicationHealthEvaluation struct {
46872	// 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.
46873	UnhealthyEvaluations *[]HealthEvaluationWrapper `json:"UnhealthyEvaluations,omitempty"`
46874	// 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'
46875	AggregatedHealthState HealthState `json:"AggregatedHealthState,omitempty"`
46876	// Description - Description of the health evaluation, which represents a summary of the evaluation process.
46877	Description *string `json:"Description,omitempty"`
46878	// 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'
46879	Kind Kind `json:"Kind,omitempty"`
46880}
46881
46882// MarshalJSON is the custom marshaler for SystemApplicationHealthEvaluation.
46883func (sahe SystemApplicationHealthEvaluation) MarshalJSON() ([]byte, error) {
46884	sahe.Kind = KindSystemApplication
46885	objectMap := make(map[string]interface{})
46886	if sahe.UnhealthyEvaluations != nil {
46887		objectMap["UnhealthyEvaluations"] = sahe.UnhealthyEvaluations
46888	}
46889	if sahe.AggregatedHealthState != "" {
46890		objectMap["AggregatedHealthState"] = sahe.AggregatedHealthState
46891	}
46892	if sahe.Description != nil {
46893		objectMap["Description"] = sahe.Description
46894	}
46895	if sahe.Kind != "" {
46896		objectMap["Kind"] = sahe.Kind
46897	}
46898	return json.Marshal(objectMap)
46899}
46900
46901// AsApplicationHealthEvaluation is the BasicHealthEvaluation implementation for SystemApplicationHealthEvaluation.
46902func (sahe SystemApplicationHealthEvaluation) AsApplicationHealthEvaluation() (*ApplicationHealthEvaluation, bool) {
46903	return nil, false
46904}
46905
46906// AsApplicationsHealthEvaluation is the BasicHealthEvaluation implementation for SystemApplicationHealthEvaluation.
46907func (sahe SystemApplicationHealthEvaluation) AsApplicationsHealthEvaluation() (*ApplicationsHealthEvaluation, bool) {
46908	return nil, false
46909}
46910
46911// AsApplicationTypeApplicationsHealthEvaluation is the BasicHealthEvaluation implementation for SystemApplicationHealthEvaluation.
46912func (sahe SystemApplicationHealthEvaluation) AsApplicationTypeApplicationsHealthEvaluation() (*ApplicationTypeApplicationsHealthEvaluation, bool) {
46913	return nil, false
46914}
46915
46916// AsDeltaNodesCheckHealthEvaluation is the BasicHealthEvaluation implementation for SystemApplicationHealthEvaluation.
46917func (sahe SystemApplicationHealthEvaluation) AsDeltaNodesCheckHealthEvaluation() (*DeltaNodesCheckHealthEvaluation, bool) {
46918	return nil, false
46919}
46920
46921// AsDeployedApplicationHealthEvaluation is the BasicHealthEvaluation implementation for SystemApplicationHealthEvaluation.
46922func (sahe SystemApplicationHealthEvaluation) AsDeployedApplicationHealthEvaluation() (*DeployedApplicationHealthEvaluation, bool) {
46923	return nil, false
46924}
46925
46926// AsDeployedApplicationsHealthEvaluation is the BasicHealthEvaluation implementation for SystemApplicationHealthEvaluation.
46927func (sahe SystemApplicationHealthEvaluation) AsDeployedApplicationsHealthEvaluation() (*DeployedApplicationsHealthEvaluation, bool) {
46928	return nil, false
46929}
46930
46931// AsDeployedServicePackageHealthEvaluation is the BasicHealthEvaluation implementation for SystemApplicationHealthEvaluation.
46932func (sahe SystemApplicationHealthEvaluation) AsDeployedServicePackageHealthEvaluation() (*DeployedServicePackageHealthEvaluation, bool) {
46933	return nil, false
46934}
46935
46936// AsDeployedServicePackagesHealthEvaluation is the BasicHealthEvaluation implementation for SystemApplicationHealthEvaluation.
46937func (sahe SystemApplicationHealthEvaluation) AsDeployedServicePackagesHealthEvaluation() (*DeployedServicePackagesHealthEvaluation, bool) {
46938	return nil, false
46939}
46940
46941// AsEventHealthEvaluation is the BasicHealthEvaluation implementation for SystemApplicationHealthEvaluation.
46942func (sahe SystemApplicationHealthEvaluation) AsEventHealthEvaluation() (*EventHealthEvaluation, bool) {
46943	return nil, false
46944}
46945
46946// AsNodeHealthEvaluation is the BasicHealthEvaluation implementation for SystemApplicationHealthEvaluation.
46947func (sahe SystemApplicationHealthEvaluation) AsNodeHealthEvaluation() (*NodeHealthEvaluation, bool) {
46948	return nil, false
46949}
46950
46951// AsNodesHealthEvaluation is the BasicHealthEvaluation implementation for SystemApplicationHealthEvaluation.
46952func (sahe SystemApplicationHealthEvaluation) AsNodesHealthEvaluation() (*NodesHealthEvaluation, bool) {
46953	return nil, false
46954}
46955
46956// AsPartitionHealthEvaluation is the BasicHealthEvaluation implementation for SystemApplicationHealthEvaluation.
46957func (sahe SystemApplicationHealthEvaluation) AsPartitionHealthEvaluation() (*PartitionHealthEvaluation, bool) {
46958	return nil, false
46959}
46960
46961// AsPartitionsHealthEvaluation is the BasicHealthEvaluation implementation for SystemApplicationHealthEvaluation.
46962func (sahe SystemApplicationHealthEvaluation) AsPartitionsHealthEvaluation() (*PartitionsHealthEvaluation, bool) {
46963	return nil, false
46964}
46965
46966// AsReplicaHealthEvaluation is the BasicHealthEvaluation implementation for SystemApplicationHealthEvaluation.
46967func (sahe SystemApplicationHealthEvaluation) AsReplicaHealthEvaluation() (*ReplicaHealthEvaluation, bool) {
46968	return nil, false
46969}
46970
46971// AsReplicasHealthEvaluation is the BasicHealthEvaluation implementation for SystemApplicationHealthEvaluation.
46972func (sahe SystemApplicationHealthEvaluation) AsReplicasHealthEvaluation() (*ReplicasHealthEvaluation, bool) {
46973	return nil, false
46974}
46975
46976// AsServiceHealthEvaluation is the BasicHealthEvaluation implementation for SystemApplicationHealthEvaluation.
46977func (sahe SystemApplicationHealthEvaluation) AsServiceHealthEvaluation() (*ServiceHealthEvaluation, bool) {
46978	return nil, false
46979}
46980
46981// AsServicesHealthEvaluation is the BasicHealthEvaluation implementation for SystemApplicationHealthEvaluation.
46982func (sahe SystemApplicationHealthEvaluation) AsServicesHealthEvaluation() (*ServicesHealthEvaluation, bool) {
46983	return nil, false
46984}
46985
46986// AsSystemApplicationHealthEvaluation is the BasicHealthEvaluation implementation for SystemApplicationHealthEvaluation.
46987func (sahe SystemApplicationHealthEvaluation) AsSystemApplicationHealthEvaluation() (*SystemApplicationHealthEvaluation, bool) {
46988	return &sahe, true
46989}
46990
46991// AsUpgradeDomainDeltaNodesCheckHealthEvaluation is the BasicHealthEvaluation implementation for SystemApplicationHealthEvaluation.
46992func (sahe SystemApplicationHealthEvaluation) AsUpgradeDomainDeltaNodesCheckHealthEvaluation() (*UpgradeDomainDeltaNodesCheckHealthEvaluation, bool) {
46993	return nil, false
46994}
46995
46996// AsUpgradeDomainNodesHealthEvaluation is the BasicHealthEvaluation implementation for SystemApplicationHealthEvaluation.
46997func (sahe SystemApplicationHealthEvaluation) AsUpgradeDomainNodesHealthEvaluation() (*UpgradeDomainNodesHealthEvaluation, bool) {
46998	return nil, false
46999}
47000
47001// AsHealthEvaluation is the BasicHealthEvaluation implementation for SystemApplicationHealthEvaluation.
47002func (sahe SystemApplicationHealthEvaluation) AsHealthEvaluation() (*HealthEvaluation, bool) {
47003	return nil, false
47004}
47005
47006// AsBasicHealthEvaluation is the BasicHealthEvaluation implementation for SystemApplicationHealthEvaluation.
47007func (sahe SystemApplicationHealthEvaluation) AsBasicHealthEvaluation() (BasicHealthEvaluation, bool) {
47008	return &sahe, true
47009}
47010
47011// TCPConfig describes the tcp configuration for external connectivity for this network.
47012type TCPConfig struct {
47013	// Name - tcp gateway config name.
47014	Name *string `json:"name,omitempty"`
47015	// Port - Specifies the port at which the service endpoint below needs to be exposed.
47016	Port *int32 `json:"port,omitempty"`
47017	// Destination - Describes destination endpoint for routing traffic.
47018	Destination *GatewayDestination `json:"destination,omitempty"`
47019}
47020
47021// TestErrorChaosEvent describes a Chaos event that gets generated when an unexpected event occurs in the
47022// Chaos engine.
47023// For example, due to the cluster snapshot being inconsistent, while faulting an entity, Chaos found that
47024// the entity was already faulted -- which would be an unexpected event.
47025type TestErrorChaosEvent struct {
47026	// 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.
47027	Reason *string `json:"Reason,omitempty"`
47028	// TimeStampUtc - The UTC timestamp when this Chaos event was generated.
47029	TimeStampUtc *date.Time `json:"TimeStampUtc,omitempty"`
47030	// Kind - Possible values include: 'KindChaosEvent', 'KindExecutingFaults', 'KindStarted', 'KindStopped', 'KindTestError', 'KindValidationFailed', 'KindWaiting'
47031	Kind KindBasicChaosEvent `json:"Kind,omitempty"`
47032}
47033
47034// MarshalJSON is the custom marshaler for TestErrorChaosEvent.
47035func (tece TestErrorChaosEvent) MarshalJSON() ([]byte, error) {
47036	tece.Kind = KindTestError
47037	objectMap := make(map[string]interface{})
47038	if tece.Reason != nil {
47039		objectMap["Reason"] = tece.Reason
47040	}
47041	if tece.TimeStampUtc != nil {
47042		objectMap["TimeStampUtc"] = tece.TimeStampUtc
47043	}
47044	if tece.Kind != "" {
47045		objectMap["Kind"] = tece.Kind
47046	}
47047	return json.Marshal(objectMap)
47048}
47049
47050// AsExecutingFaultsChaosEvent is the BasicChaosEvent implementation for TestErrorChaosEvent.
47051func (tece TestErrorChaosEvent) AsExecutingFaultsChaosEvent() (*ExecutingFaultsChaosEvent, bool) {
47052	return nil, false
47053}
47054
47055// AsStartedChaosEvent is the BasicChaosEvent implementation for TestErrorChaosEvent.
47056func (tece TestErrorChaosEvent) AsStartedChaosEvent() (*StartedChaosEvent, bool) {
47057	return nil, false
47058}
47059
47060// AsStoppedChaosEvent is the BasicChaosEvent implementation for TestErrorChaosEvent.
47061func (tece TestErrorChaosEvent) AsStoppedChaosEvent() (*StoppedChaosEvent, bool) {
47062	return nil, false
47063}
47064
47065// AsTestErrorChaosEvent is the BasicChaosEvent implementation for TestErrorChaosEvent.
47066func (tece TestErrorChaosEvent) AsTestErrorChaosEvent() (*TestErrorChaosEvent, bool) {
47067	return &tece, true
47068}
47069
47070// AsValidationFailedChaosEvent is the BasicChaosEvent implementation for TestErrorChaosEvent.
47071func (tece TestErrorChaosEvent) AsValidationFailedChaosEvent() (*ValidationFailedChaosEvent, bool) {
47072	return nil, false
47073}
47074
47075// AsWaitingChaosEvent is the BasicChaosEvent implementation for TestErrorChaosEvent.
47076func (tece TestErrorChaosEvent) AsWaitingChaosEvent() (*WaitingChaosEvent, bool) {
47077	return nil, false
47078}
47079
47080// AsChaosEvent is the BasicChaosEvent implementation for TestErrorChaosEvent.
47081func (tece TestErrorChaosEvent) AsChaosEvent() (*ChaosEvent, bool) {
47082	return nil, false
47083}
47084
47085// AsBasicChaosEvent is the BasicChaosEvent implementation for TestErrorChaosEvent.
47086func (tece TestErrorChaosEvent) AsBasicChaosEvent() (BasicChaosEvent, bool) {
47087	return &tece, true
47088}
47089
47090// TimeBasedBackupScheduleDescription describes the time based backup schedule.
47091type TimeBasedBackupScheduleDescription struct {
47092	// ScheduleFrequencyType - Describes the frequency with which to run the time based backup schedule. Possible values include: 'BackupScheduleFrequencyTypeInvalid', 'BackupScheduleFrequencyTypeDaily', 'BackupScheduleFrequencyTypeWeekly'
47093	ScheduleFrequencyType BackupScheduleFrequencyType `json:"ScheduleFrequencyType,omitempty"`
47094	// 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.
47095	RunDays *[]DayOfWeek `json:"RunDays,omitempty"`
47096	// 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.
47097	RunTimes *[]date.Time `json:"RunTimes,omitempty"`
47098	// ScheduleKind - Possible values include: 'ScheduleKindBackupScheduleDescription', 'ScheduleKindFrequencyBased', 'ScheduleKindTimeBased'
47099	ScheduleKind ScheduleKind `json:"ScheduleKind,omitempty"`
47100}
47101
47102// MarshalJSON is the custom marshaler for TimeBasedBackupScheduleDescription.
47103func (tbbsd TimeBasedBackupScheduleDescription) MarshalJSON() ([]byte, error) {
47104	tbbsd.ScheduleKind = ScheduleKindTimeBased
47105	objectMap := make(map[string]interface{})
47106	if tbbsd.ScheduleFrequencyType != "" {
47107		objectMap["ScheduleFrequencyType"] = tbbsd.ScheduleFrequencyType
47108	}
47109	if tbbsd.RunDays != nil {
47110		objectMap["RunDays"] = tbbsd.RunDays
47111	}
47112	if tbbsd.RunTimes != nil {
47113		objectMap["RunTimes"] = tbbsd.RunTimes
47114	}
47115	if tbbsd.ScheduleKind != "" {
47116		objectMap["ScheduleKind"] = tbbsd.ScheduleKind
47117	}
47118	return json.Marshal(objectMap)
47119}
47120
47121// AsFrequencyBasedBackupScheduleDescription is the BasicBackupScheduleDescription implementation for TimeBasedBackupScheduleDescription.
47122func (tbbsd TimeBasedBackupScheduleDescription) AsFrequencyBasedBackupScheduleDescription() (*FrequencyBasedBackupScheduleDescription, bool) {
47123	return nil, false
47124}
47125
47126// AsTimeBasedBackupScheduleDescription is the BasicBackupScheduleDescription implementation for TimeBasedBackupScheduleDescription.
47127func (tbbsd TimeBasedBackupScheduleDescription) AsTimeBasedBackupScheduleDescription() (*TimeBasedBackupScheduleDescription, bool) {
47128	return &tbbsd, true
47129}
47130
47131// AsBackupScheduleDescription is the BasicBackupScheduleDescription implementation for TimeBasedBackupScheduleDescription.
47132func (tbbsd TimeBasedBackupScheduleDescription) AsBackupScheduleDescription() (*BackupScheduleDescription, bool) {
47133	return nil, false
47134}
47135
47136// AsBasicBackupScheduleDescription is the BasicBackupScheduleDescription implementation for TimeBasedBackupScheduleDescription.
47137func (tbbsd TimeBasedBackupScheduleDescription) AsBasicBackupScheduleDescription() (BasicBackupScheduleDescription, bool) {
47138	return &tbbsd, true
47139}
47140
47141// TimeOfDay defines an hour and minute of the day specified in 24 hour time.
47142type TimeOfDay struct {
47143	// Hour - Represents the hour of the day. Value must be between 0 and 23 inclusive.
47144	Hour *int32 `json:"Hour,omitempty"`
47145	// Minute - Represents the minute of the hour. Value must be between 0 to 59 inclusive.
47146	Minute *int32 `json:"Minute,omitempty"`
47147}
47148
47149// TimeRange defines a time range in a 24 hour day specified by a start and end time.
47150type TimeRange struct {
47151	// StartTime - Defines an hour and minute of the day specified in 24 hour time.
47152	StartTime *TimeOfDay `json:"StartTime,omitempty"`
47153	// EndTime - Defines an hour and minute of the day specified in 24 hour time.
47154	EndTime *TimeOfDay `json:"EndTime,omitempty"`
47155}
47156
47157// UniformInt64RangePartitionSchemeDescription describes a partitioning scheme where an integer range is
47158// allocated evenly across a number of partitions.
47159type UniformInt64RangePartitionSchemeDescription struct {
47160	// Count - The number of partitions.
47161	Count *int32 `json:"Count,omitempty"`
47162	// LowKey - String indicating the lower bound of the partition key range that
47163	// should be split between the partitions.
47164	LowKey *string `json:"LowKey,omitempty"`
47165	// HighKey - String indicating the upper bound of the partition key range that
47166	// should be split between the partitions.
47167	HighKey *string `json:"HighKey,omitempty"`
47168	// PartitionScheme - Possible values include: 'PartitionSchemePartitionSchemeDescription', 'PartitionSchemeNamed1', 'PartitionSchemeSingleton1', 'PartitionSchemeUniformInt64Range1'
47169	PartitionScheme PartitionSchemeBasicPartitionSchemeDescription `json:"PartitionScheme,omitempty"`
47170}
47171
47172// MarshalJSON is the custom marshaler for UniformInt64RangePartitionSchemeDescription.
47173func (ui6rpsd UniformInt64RangePartitionSchemeDescription) MarshalJSON() ([]byte, error) {
47174	ui6rpsd.PartitionScheme = PartitionSchemeUniformInt64Range1
47175	objectMap := make(map[string]interface{})
47176	if ui6rpsd.Count != nil {
47177		objectMap["Count"] = ui6rpsd.Count
47178	}
47179	if ui6rpsd.LowKey != nil {
47180		objectMap["LowKey"] = ui6rpsd.LowKey
47181	}
47182	if ui6rpsd.HighKey != nil {
47183		objectMap["HighKey"] = ui6rpsd.HighKey
47184	}
47185	if ui6rpsd.PartitionScheme != "" {
47186		objectMap["PartitionScheme"] = ui6rpsd.PartitionScheme
47187	}
47188	return json.Marshal(objectMap)
47189}
47190
47191// AsNamedPartitionSchemeDescription is the BasicPartitionSchemeDescription implementation for UniformInt64RangePartitionSchemeDescription.
47192func (ui6rpsd UniformInt64RangePartitionSchemeDescription) AsNamedPartitionSchemeDescription() (*NamedPartitionSchemeDescription, bool) {
47193	return nil, false
47194}
47195
47196// AsSingletonPartitionSchemeDescription is the BasicPartitionSchemeDescription implementation for UniformInt64RangePartitionSchemeDescription.
47197func (ui6rpsd UniformInt64RangePartitionSchemeDescription) AsSingletonPartitionSchemeDescription() (*SingletonPartitionSchemeDescription, bool) {
47198	return nil, false
47199}
47200
47201// AsUniformInt64RangePartitionSchemeDescription is the BasicPartitionSchemeDescription implementation for UniformInt64RangePartitionSchemeDescription.
47202func (ui6rpsd UniformInt64RangePartitionSchemeDescription) AsUniformInt64RangePartitionSchemeDescription() (*UniformInt64RangePartitionSchemeDescription, bool) {
47203	return &ui6rpsd, true
47204}
47205
47206// AsPartitionSchemeDescription is the BasicPartitionSchemeDescription implementation for UniformInt64RangePartitionSchemeDescription.
47207func (ui6rpsd UniformInt64RangePartitionSchemeDescription) AsPartitionSchemeDescription() (*PartitionSchemeDescription, bool) {
47208	return nil, false
47209}
47210
47211// AsBasicPartitionSchemeDescription is the BasicPartitionSchemeDescription implementation for UniformInt64RangePartitionSchemeDescription.
47212func (ui6rpsd UniformInt64RangePartitionSchemeDescription) AsBasicPartitionSchemeDescription() (BasicPartitionSchemeDescription, bool) {
47213	return &ui6rpsd, true
47214}
47215
47216// UnplacedReplicaInformation contains information for an unplaced replica.
47217type UnplacedReplicaInformation struct {
47218	autorest.Response `json:"-"`
47219	// ServiceName - The name of the service.
47220	ServiceName *string `json:"ServiceName,omitempty"`
47221	// PartitionID - The ID of the partition.
47222	PartitionID *uuid.UUID `json:"PartitionId,omitempty"`
47223	// UnplacedReplicaDetails - List of reasons due to which a replica cannot be placed.
47224	UnplacedReplicaDetails *[]string `json:"UnplacedReplicaDetails,omitempty"`
47225}
47226
47227// UnprovisionApplicationTypeDescriptionInfo describes the operation to unregister or unprovision an
47228// application type and its version that was registered with the Service Fabric.
47229type UnprovisionApplicationTypeDescriptionInfo struct {
47230	// ApplicationTypeVersion - The version of the application type as defined in the application manifest.
47231	ApplicationTypeVersion *string `json:"ApplicationTypeVersion,omitempty"`
47232	// 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.
47233	Async *bool `json:"Async,omitempty"`
47234}
47235
47236// UnprovisionFabricDescription describes the parameters for unprovisioning a cluster.
47237type UnprovisionFabricDescription struct {
47238	// CodeVersion - The cluster code package version.
47239	CodeVersion *string `json:"CodeVersion,omitempty"`
47240	// ConfigVersion - The cluster manifest version.
47241	ConfigVersion *string `json:"ConfigVersion,omitempty"`
47242}
47243
47244// UpdateClusterUpgradeDescription parameters for updating a cluster upgrade.
47245type UpdateClusterUpgradeDescription struct {
47246	// UpgradeKind - The type of upgrade out of the following possible values. Possible values include: 'UpgradeTypeInvalid', 'UpgradeTypeRolling', 'UpgradeTypeRollingForceRestart'
47247	UpgradeKind UpgradeType `json:"UpgradeKind,omitempty"`
47248	// UpdateDescription - Describes the parameters for updating a rolling upgrade of application or cluster.
47249	UpdateDescription *RollingUpgradeUpdateDescription `json:"UpdateDescription,omitempty"`
47250	// ClusterHealthPolicy - Defines a health policy used to evaluate the health of the cluster or of a cluster node.
47251	ClusterHealthPolicy *ClusterHealthPolicy `json:"ClusterHealthPolicy,omitempty"`
47252	// EnableDeltaHealthEvaluation - When true, enables delta health evaluation rather than absolute health evaluation after completion of each upgrade domain.
47253	EnableDeltaHealthEvaluation *bool `json:"EnableDeltaHealthEvaluation,omitempty"`
47254	// ClusterUpgradeHealthPolicy - Defines a health policy used to evaluate the health of the cluster during a cluster upgrade.
47255	ClusterUpgradeHealthPolicy *ClusterUpgradeHealthPolicyObject `json:"ClusterUpgradeHealthPolicy,omitempty"`
47256	// ApplicationHealthPolicyMap - Defines the application health policy map used to evaluate the health of an application or one of its children entities.
47257	ApplicationHealthPolicyMap *ApplicationHealthPolicies `json:"ApplicationHealthPolicyMap,omitempty"`
47258}
47259
47260// UpgradeDomainDeltaNodesCheckHealthEvaluation represents health evaluation for delta unhealthy cluster
47261// nodes in an upgrade domain, containing health evaluations for each unhealthy node that impacted current
47262// aggregated health state.
47263// Can be returned during cluster upgrade when cluster aggregated health state is Warning or Error.
47264type UpgradeDomainDeltaNodesCheckHealthEvaluation struct {
47265	// UpgradeDomainName - Name of the upgrade domain where nodes health is currently evaluated.
47266	UpgradeDomainName *string `json:"UpgradeDomainName,omitempty"`
47267	// BaselineErrorCount - Number of upgrade domain nodes with aggregated heath state Error in the health store at the beginning of the cluster upgrade.
47268	BaselineErrorCount *int64 `json:"BaselineErrorCount,omitempty"`
47269	// BaselineTotalCount - Total number of upgrade domain nodes in the health store at the beginning of the cluster upgrade.
47270	BaselineTotalCount *int64 `json:"BaselineTotalCount,omitempty"`
47271	// MaxPercentDeltaUnhealthyNodes - Maximum allowed percentage of upgrade domain delta unhealthy nodes from the ClusterUpgradeHealthPolicy.
47272	MaxPercentDeltaUnhealthyNodes *int32 `json:"MaxPercentDeltaUnhealthyNodes,omitempty"`
47273	// TotalCount - Total number of upgrade domain nodes in the health store.
47274	TotalCount *int64 `json:"TotalCount,omitempty"`
47275	// UnhealthyEvaluations - List of unhealthy evaluations that led to the aggregated health state. Includes all the unhealthy NodeHealthEvaluation that impacted the aggregated health.
47276	UnhealthyEvaluations *[]HealthEvaluationWrapper `json:"UnhealthyEvaluations,omitempty"`
47277	// 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'
47278	AggregatedHealthState HealthState `json:"AggregatedHealthState,omitempty"`
47279	// Description - Description of the health evaluation, which represents a summary of the evaluation process.
47280	Description *string `json:"Description,omitempty"`
47281	// 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'
47282	Kind Kind `json:"Kind,omitempty"`
47283}
47284
47285// MarshalJSON is the custom marshaler for UpgradeDomainDeltaNodesCheckHealthEvaluation.
47286func (uddnche UpgradeDomainDeltaNodesCheckHealthEvaluation) MarshalJSON() ([]byte, error) {
47287	uddnche.Kind = KindUpgradeDomainDeltaNodesCheck
47288	objectMap := make(map[string]interface{})
47289	if uddnche.UpgradeDomainName != nil {
47290		objectMap["UpgradeDomainName"] = uddnche.UpgradeDomainName
47291	}
47292	if uddnche.BaselineErrorCount != nil {
47293		objectMap["BaselineErrorCount"] = uddnche.BaselineErrorCount
47294	}
47295	if uddnche.BaselineTotalCount != nil {
47296		objectMap["BaselineTotalCount"] = uddnche.BaselineTotalCount
47297	}
47298	if uddnche.MaxPercentDeltaUnhealthyNodes != nil {
47299		objectMap["MaxPercentDeltaUnhealthyNodes"] = uddnche.MaxPercentDeltaUnhealthyNodes
47300	}
47301	if uddnche.TotalCount != nil {
47302		objectMap["TotalCount"] = uddnche.TotalCount
47303	}
47304	if uddnche.UnhealthyEvaluations != nil {
47305		objectMap["UnhealthyEvaluations"] = uddnche.UnhealthyEvaluations
47306	}
47307	if uddnche.AggregatedHealthState != "" {
47308		objectMap["AggregatedHealthState"] = uddnche.AggregatedHealthState
47309	}
47310	if uddnche.Description != nil {
47311		objectMap["Description"] = uddnche.Description
47312	}
47313	if uddnche.Kind != "" {
47314		objectMap["Kind"] = uddnche.Kind
47315	}
47316	return json.Marshal(objectMap)
47317}
47318
47319// AsApplicationHealthEvaluation is the BasicHealthEvaluation implementation for UpgradeDomainDeltaNodesCheckHealthEvaluation.
47320func (uddnche UpgradeDomainDeltaNodesCheckHealthEvaluation) AsApplicationHealthEvaluation() (*ApplicationHealthEvaluation, bool) {
47321	return nil, false
47322}
47323
47324// AsApplicationsHealthEvaluation is the BasicHealthEvaluation implementation for UpgradeDomainDeltaNodesCheckHealthEvaluation.
47325func (uddnche UpgradeDomainDeltaNodesCheckHealthEvaluation) AsApplicationsHealthEvaluation() (*ApplicationsHealthEvaluation, bool) {
47326	return nil, false
47327}
47328
47329// AsApplicationTypeApplicationsHealthEvaluation is the BasicHealthEvaluation implementation for UpgradeDomainDeltaNodesCheckHealthEvaluation.
47330func (uddnche UpgradeDomainDeltaNodesCheckHealthEvaluation) AsApplicationTypeApplicationsHealthEvaluation() (*ApplicationTypeApplicationsHealthEvaluation, bool) {
47331	return nil, false
47332}
47333
47334// AsDeltaNodesCheckHealthEvaluation is the BasicHealthEvaluation implementation for UpgradeDomainDeltaNodesCheckHealthEvaluation.
47335func (uddnche UpgradeDomainDeltaNodesCheckHealthEvaluation) AsDeltaNodesCheckHealthEvaluation() (*DeltaNodesCheckHealthEvaluation, bool) {
47336	return nil, false
47337}
47338
47339// AsDeployedApplicationHealthEvaluation is the BasicHealthEvaluation implementation for UpgradeDomainDeltaNodesCheckHealthEvaluation.
47340func (uddnche UpgradeDomainDeltaNodesCheckHealthEvaluation) AsDeployedApplicationHealthEvaluation() (*DeployedApplicationHealthEvaluation, bool) {
47341	return nil, false
47342}
47343
47344// AsDeployedApplicationsHealthEvaluation is the BasicHealthEvaluation implementation for UpgradeDomainDeltaNodesCheckHealthEvaluation.
47345func (uddnche UpgradeDomainDeltaNodesCheckHealthEvaluation) AsDeployedApplicationsHealthEvaluation() (*DeployedApplicationsHealthEvaluation, bool) {
47346	return nil, false
47347}
47348
47349// AsDeployedServicePackageHealthEvaluation is the BasicHealthEvaluation implementation for UpgradeDomainDeltaNodesCheckHealthEvaluation.
47350func (uddnche UpgradeDomainDeltaNodesCheckHealthEvaluation) AsDeployedServicePackageHealthEvaluation() (*DeployedServicePackageHealthEvaluation, bool) {
47351	return nil, false
47352}
47353
47354// AsDeployedServicePackagesHealthEvaluation is the BasicHealthEvaluation implementation for UpgradeDomainDeltaNodesCheckHealthEvaluation.
47355func (uddnche UpgradeDomainDeltaNodesCheckHealthEvaluation) AsDeployedServicePackagesHealthEvaluation() (*DeployedServicePackagesHealthEvaluation, bool) {
47356	return nil, false
47357}
47358
47359// AsEventHealthEvaluation is the BasicHealthEvaluation implementation for UpgradeDomainDeltaNodesCheckHealthEvaluation.
47360func (uddnche UpgradeDomainDeltaNodesCheckHealthEvaluation) AsEventHealthEvaluation() (*EventHealthEvaluation, bool) {
47361	return nil, false
47362}
47363
47364// AsNodeHealthEvaluation is the BasicHealthEvaluation implementation for UpgradeDomainDeltaNodesCheckHealthEvaluation.
47365func (uddnche UpgradeDomainDeltaNodesCheckHealthEvaluation) AsNodeHealthEvaluation() (*NodeHealthEvaluation, bool) {
47366	return nil, false
47367}
47368
47369// AsNodesHealthEvaluation is the BasicHealthEvaluation implementation for UpgradeDomainDeltaNodesCheckHealthEvaluation.
47370func (uddnche UpgradeDomainDeltaNodesCheckHealthEvaluation) AsNodesHealthEvaluation() (*NodesHealthEvaluation, bool) {
47371	return nil, false
47372}
47373
47374// AsPartitionHealthEvaluation is the BasicHealthEvaluation implementation for UpgradeDomainDeltaNodesCheckHealthEvaluation.
47375func (uddnche UpgradeDomainDeltaNodesCheckHealthEvaluation) AsPartitionHealthEvaluation() (*PartitionHealthEvaluation, bool) {
47376	return nil, false
47377}
47378
47379// AsPartitionsHealthEvaluation is the BasicHealthEvaluation implementation for UpgradeDomainDeltaNodesCheckHealthEvaluation.
47380func (uddnche UpgradeDomainDeltaNodesCheckHealthEvaluation) AsPartitionsHealthEvaluation() (*PartitionsHealthEvaluation, bool) {
47381	return nil, false
47382}
47383
47384// AsReplicaHealthEvaluation is the BasicHealthEvaluation implementation for UpgradeDomainDeltaNodesCheckHealthEvaluation.
47385func (uddnche UpgradeDomainDeltaNodesCheckHealthEvaluation) AsReplicaHealthEvaluation() (*ReplicaHealthEvaluation, bool) {
47386	return nil, false
47387}
47388
47389// AsReplicasHealthEvaluation is the BasicHealthEvaluation implementation for UpgradeDomainDeltaNodesCheckHealthEvaluation.
47390func (uddnche UpgradeDomainDeltaNodesCheckHealthEvaluation) AsReplicasHealthEvaluation() (*ReplicasHealthEvaluation, bool) {
47391	return nil, false
47392}
47393
47394// AsServiceHealthEvaluation is the BasicHealthEvaluation implementation for UpgradeDomainDeltaNodesCheckHealthEvaluation.
47395func (uddnche UpgradeDomainDeltaNodesCheckHealthEvaluation) AsServiceHealthEvaluation() (*ServiceHealthEvaluation, bool) {
47396	return nil, false
47397}
47398
47399// AsServicesHealthEvaluation is the BasicHealthEvaluation implementation for UpgradeDomainDeltaNodesCheckHealthEvaluation.
47400func (uddnche UpgradeDomainDeltaNodesCheckHealthEvaluation) AsServicesHealthEvaluation() (*ServicesHealthEvaluation, bool) {
47401	return nil, false
47402}
47403
47404// AsSystemApplicationHealthEvaluation is the BasicHealthEvaluation implementation for UpgradeDomainDeltaNodesCheckHealthEvaluation.
47405func (uddnche UpgradeDomainDeltaNodesCheckHealthEvaluation) AsSystemApplicationHealthEvaluation() (*SystemApplicationHealthEvaluation, bool) {
47406	return nil, false
47407}
47408
47409// AsUpgradeDomainDeltaNodesCheckHealthEvaluation is the BasicHealthEvaluation implementation for UpgradeDomainDeltaNodesCheckHealthEvaluation.
47410func (uddnche UpgradeDomainDeltaNodesCheckHealthEvaluation) AsUpgradeDomainDeltaNodesCheckHealthEvaluation() (*UpgradeDomainDeltaNodesCheckHealthEvaluation, bool) {
47411	return &uddnche, true
47412}
47413
47414// AsUpgradeDomainNodesHealthEvaluation is the BasicHealthEvaluation implementation for UpgradeDomainDeltaNodesCheckHealthEvaluation.
47415func (uddnche UpgradeDomainDeltaNodesCheckHealthEvaluation) AsUpgradeDomainNodesHealthEvaluation() (*UpgradeDomainNodesHealthEvaluation, bool) {
47416	return nil, false
47417}
47418
47419// AsHealthEvaluation is the BasicHealthEvaluation implementation for UpgradeDomainDeltaNodesCheckHealthEvaluation.
47420func (uddnche UpgradeDomainDeltaNodesCheckHealthEvaluation) AsHealthEvaluation() (*HealthEvaluation, bool) {
47421	return nil, false
47422}
47423
47424// AsBasicHealthEvaluation is the BasicHealthEvaluation implementation for UpgradeDomainDeltaNodesCheckHealthEvaluation.
47425func (uddnche UpgradeDomainDeltaNodesCheckHealthEvaluation) AsBasicHealthEvaluation() (BasicHealthEvaluation, bool) {
47426	return &uddnche, true
47427}
47428
47429// UpgradeDomainInfo information about an upgrade domain.
47430type UpgradeDomainInfo struct {
47431	// Name - The name of the upgrade domain
47432	Name *string `json:"Name,omitempty"`
47433	// State - The state of the upgrade domain. Possible values include: 'UpgradeDomainStateInvalid', 'UpgradeDomainStatePending', 'UpgradeDomainStateInProgress', 'UpgradeDomainStateCompleted'
47434	State UpgradeDomainState `json:"State,omitempty"`
47435}
47436
47437// UpgradeDomainNodesHealthEvaluation represents health evaluation for cluster nodes in an upgrade domain,
47438// containing health evaluations for each unhealthy node that impacted current aggregated health state. Can
47439// be returned when evaluating cluster health during cluster upgrade and the aggregated health state is
47440// either Error or Warning.
47441type UpgradeDomainNodesHealthEvaluation struct {
47442	// UpgradeDomainName - Name of the upgrade domain where nodes health is currently evaluated.
47443	UpgradeDomainName *string `json:"UpgradeDomainName,omitempty"`
47444	// MaxPercentUnhealthyNodes - Maximum allowed percentage of unhealthy nodes from the ClusterHealthPolicy.
47445	MaxPercentUnhealthyNodes *int32 `json:"MaxPercentUnhealthyNodes,omitempty"`
47446	// TotalCount - Total number of nodes in the current upgrade domain.
47447	TotalCount *int64 `json:"TotalCount,omitempty"`
47448	// UnhealthyEvaluations - List of unhealthy evaluations that led to the aggregated health state. Includes all the unhealthy NodeHealthEvaluation that impacted the aggregated health.
47449	UnhealthyEvaluations *[]HealthEvaluationWrapper `json:"UnhealthyEvaluations,omitempty"`
47450	// 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'
47451	AggregatedHealthState HealthState `json:"AggregatedHealthState,omitempty"`
47452	// Description - Description of the health evaluation, which represents a summary of the evaluation process.
47453	Description *string `json:"Description,omitempty"`
47454	// 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'
47455	Kind Kind `json:"Kind,omitempty"`
47456}
47457
47458// MarshalJSON is the custom marshaler for UpgradeDomainNodesHealthEvaluation.
47459func (udnhe UpgradeDomainNodesHealthEvaluation) MarshalJSON() ([]byte, error) {
47460	udnhe.Kind = KindUpgradeDomainNodes
47461	objectMap := make(map[string]interface{})
47462	if udnhe.UpgradeDomainName != nil {
47463		objectMap["UpgradeDomainName"] = udnhe.UpgradeDomainName
47464	}
47465	if udnhe.MaxPercentUnhealthyNodes != nil {
47466		objectMap["MaxPercentUnhealthyNodes"] = udnhe.MaxPercentUnhealthyNodes
47467	}
47468	if udnhe.TotalCount != nil {
47469		objectMap["TotalCount"] = udnhe.TotalCount
47470	}
47471	if udnhe.UnhealthyEvaluations != nil {
47472		objectMap["UnhealthyEvaluations"] = udnhe.UnhealthyEvaluations
47473	}
47474	if udnhe.AggregatedHealthState != "" {
47475		objectMap["AggregatedHealthState"] = udnhe.AggregatedHealthState
47476	}
47477	if udnhe.Description != nil {
47478		objectMap["Description"] = udnhe.Description
47479	}
47480	if udnhe.Kind != "" {
47481		objectMap["Kind"] = udnhe.Kind
47482	}
47483	return json.Marshal(objectMap)
47484}
47485
47486// AsApplicationHealthEvaluation is the BasicHealthEvaluation implementation for UpgradeDomainNodesHealthEvaluation.
47487func (udnhe UpgradeDomainNodesHealthEvaluation) AsApplicationHealthEvaluation() (*ApplicationHealthEvaluation, bool) {
47488	return nil, false
47489}
47490
47491// AsApplicationsHealthEvaluation is the BasicHealthEvaluation implementation for UpgradeDomainNodesHealthEvaluation.
47492func (udnhe UpgradeDomainNodesHealthEvaluation) AsApplicationsHealthEvaluation() (*ApplicationsHealthEvaluation, bool) {
47493	return nil, false
47494}
47495
47496// AsApplicationTypeApplicationsHealthEvaluation is the BasicHealthEvaluation implementation for UpgradeDomainNodesHealthEvaluation.
47497func (udnhe UpgradeDomainNodesHealthEvaluation) AsApplicationTypeApplicationsHealthEvaluation() (*ApplicationTypeApplicationsHealthEvaluation, bool) {
47498	return nil, false
47499}
47500
47501// AsDeltaNodesCheckHealthEvaluation is the BasicHealthEvaluation implementation for UpgradeDomainNodesHealthEvaluation.
47502func (udnhe UpgradeDomainNodesHealthEvaluation) AsDeltaNodesCheckHealthEvaluation() (*DeltaNodesCheckHealthEvaluation, bool) {
47503	return nil, false
47504}
47505
47506// AsDeployedApplicationHealthEvaluation is the BasicHealthEvaluation implementation for UpgradeDomainNodesHealthEvaluation.
47507func (udnhe UpgradeDomainNodesHealthEvaluation) AsDeployedApplicationHealthEvaluation() (*DeployedApplicationHealthEvaluation, bool) {
47508	return nil, false
47509}
47510
47511// AsDeployedApplicationsHealthEvaluation is the BasicHealthEvaluation implementation for UpgradeDomainNodesHealthEvaluation.
47512func (udnhe UpgradeDomainNodesHealthEvaluation) AsDeployedApplicationsHealthEvaluation() (*DeployedApplicationsHealthEvaluation, bool) {
47513	return nil, false
47514}
47515
47516// AsDeployedServicePackageHealthEvaluation is the BasicHealthEvaluation implementation for UpgradeDomainNodesHealthEvaluation.
47517func (udnhe UpgradeDomainNodesHealthEvaluation) AsDeployedServicePackageHealthEvaluation() (*DeployedServicePackageHealthEvaluation, bool) {
47518	return nil, false
47519}
47520
47521// AsDeployedServicePackagesHealthEvaluation is the BasicHealthEvaluation implementation for UpgradeDomainNodesHealthEvaluation.
47522func (udnhe UpgradeDomainNodesHealthEvaluation) AsDeployedServicePackagesHealthEvaluation() (*DeployedServicePackagesHealthEvaluation, bool) {
47523	return nil, false
47524}
47525
47526// AsEventHealthEvaluation is the BasicHealthEvaluation implementation for UpgradeDomainNodesHealthEvaluation.
47527func (udnhe UpgradeDomainNodesHealthEvaluation) AsEventHealthEvaluation() (*EventHealthEvaluation, bool) {
47528	return nil, false
47529}
47530
47531// AsNodeHealthEvaluation is the BasicHealthEvaluation implementation for UpgradeDomainNodesHealthEvaluation.
47532func (udnhe UpgradeDomainNodesHealthEvaluation) AsNodeHealthEvaluation() (*NodeHealthEvaluation, bool) {
47533	return nil, false
47534}
47535
47536// AsNodesHealthEvaluation is the BasicHealthEvaluation implementation for UpgradeDomainNodesHealthEvaluation.
47537func (udnhe UpgradeDomainNodesHealthEvaluation) AsNodesHealthEvaluation() (*NodesHealthEvaluation, bool) {
47538	return nil, false
47539}
47540
47541// AsPartitionHealthEvaluation is the BasicHealthEvaluation implementation for UpgradeDomainNodesHealthEvaluation.
47542func (udnhe UpgradeDomainNodesHealthEvaluation) AsPartitionHealthEvaluation() (*PartitionHealthEvaluation, bool) {
47543	return nil, false
47544}
47545
47546// AsPartitionsHealthEvaluation is the BasicHealthEvaluation implementation for UpgradeDomainNodesHealthEvaluation.
47547func (udnhe UpgradeDomainNodesHealthEvaluation) AsPartitionsHealthEvaluation() (*PartitionsHealthEvaluation, bool) {
47548	return nil, false
47549}
47550
47551// AsReplicaHealthEvaluation is the BasicHealthEvaluation implementation for UpgradeDomainNodesHealthEvaluation.
47552func (udnhe UpgradeDomainNodesHealthEvaluation) AsReplicaHealthEvaluation() (*ReplicaHealthEvaluation, bool) {
47553	return nil, false
47554}
47555
47556// AsReplicasHealthEvaluation is the BasicHealthEvaluation implementation for UpgradeDomainNodesHealthEvaluation.
47557func (udnhe UpgradeDomainNodesHealthEvaluation) AsReplicasHealthEvaluation() (*ReplicasHealthEvaluation, bool) {
47558	return nil, false
47559}
47560
47561// AsServiceHealthEvaluation is the BasicHealthEvaluation implementation for UpgradeDomainNodesHealthEvaluation.
47562func (udnhe UpgradeDomainNodesHealthEvaluation) AsServiceHealthEvaluation() (*ServiceHealthEvaluation, bool) {
47563	return nil, false
47564}
47565
47566// AsServicesHealthEvaluation is the BasicHealthEvaluation implementation for UpgradeDomainNodesHealthEvaluation.
47567func (udnhe UpgradeDomainNodesHealthEvaluation) AsServicesHealthEvaluation() (*ServicesHealthEvaluation, bool) {
47568	return nil, false
47569}
47570
47571// AsSystemApplicationHealthEvaluation is the BasicHealthEvaluation implementation for UpgradeDomainNodesHealthEvaluation.
47572func (udnhe UpgradeDomainNodesHealthEvaluation) AsSystemApplicationHealthEvaluation() (*SystemApplicationHealthEvaluation, bool) {
47573	return nil, false
47574}
47575
47576// AsUpgradeDomainDeltaNodesCheckHealthEvaluation is the BasicHealthEvaluation implementation for UpgradeDomainNodesHealthEvaluation.
47577func (udnhe UpgradeDomainNodesHealthEvaluation) AsUpgradeDomainDeltaNodesCheckHealthEvaluation() (*UpgradeDomainDeltaNodesCheckHealthEvaluation, bool) {
47578	return nil, false
47579}
47580
47581// AsUpgradeDomainNodesHealthEvaluation is the BasicHealthEvaluation implementation for UpgradeDomainNodesHealthEvaluation.
47582func (udnhe UpgradeDomainNodesHealthEvaluation) AsUpgradeDomainNodesHealthEvaluation() (*UpgradeDomainNodesHealthEvaluation, bool) {
47583	return &udnhe, true
47584}
47585
47586// AsHealthEvaluation is the BasicHealthEvaluation implementation for UpgradeDomainNodesHealthEvaluation.
47587func (udnhe UpgradeDomainNodesHealthEvaluation) AsHealthEvaluation() (*HealthEvaluation, bool) {
47588	return nil, false
47589}
47590
47591// AsBasicHealthEvaluation is the BasicHealthEvaluation implementation for UpgradeDomainNodesHealthEvaluation.
47592func (udnhe UpgradeDomainNodesHealthEvaluation) AsBasicHealthEvaluation() (BasicHealthEvaluation, bool) {
47593	return &udnhe, true
47594}
47595
47596// UpgradeOrchestrationServiceState service state of Service Fabric Upgrade Orchestration Service.
47597type UpgradeOrchestrationServiceState struct {
47598	autorest.Response `json:"-"`
47599	// ServiceState - The state of Service Fabric Upgrade Orchestration Service.
47600	ServiceState *string `json:"ServiceState,omitempty"`
47601}
47602
47603// UpgradeOrchestrationServiceStateSummary service state summary of Service Fabric Upgrade Orchestration
47604// Service.
47605type UpgradeOrchestrationServiceStateSummary struct {
47606	autorest.Response `json:"-"`
47607	// CurrentCodeVersion - The current code version of the cluster.
47608	CurrentCodeVersion *string `json:"CurrentCodeVersion,omitempty"`
47609	// CurrentManifestVersion - The current manifest version of the cluster.
47610	CurrentManifestVersion *string `json:"CurrentManifestVersion,omitempty"`
47611	// TargetCodeVersion - The target code version of  the cluster.
47612	TargetCodeVersion *string `json:"TargetCodeVersion,omitempty"`
47613	// TargetManifestVersion - The target manifest version of the cluster.
47614	TargetManifestVersion *string `json:"TargetManifestVersion,omitempty"`
47615	// PendingUpgradeType - The type of the pending upgrade of the cluster.
47616	PendingUpgradeType *string `json:"PendingUpgradeType,omitempty"`
47617}
47618
47619// UploadChunkRange information about which portion of the file to upload.
47620type UploadChunkRange struct {
47621	// StartPosition - The start position of the portion of the file. It's represented by the number of bytes.
47622	StartPosition *string `json:"StartPosition,omitempty"`
47623	// EndPosition - The end position of the portion of the file. It's represented by the number of bytes.
47624	EndPosition *string `json:"EndPosition,omitempty"`
47625}
47626
47627// UploadSession information about a image store upload session
47628type UploadSession struct {
47629	autorest.Response `json:"-"`
47630	// 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.
47631	UploadSessions *[]UploadSessionInfo `json:"UploadSessions,omitempty"`
47632}
47633
47634// UploadSessionInfo information about an image store upload session. A session is associated with a
47635// relative path in the image store.
47636type UploadSessionInfo struct {
47637	// StoreRelativePath - The remote location within image store. This path is relative to the image store root.
47638	StoreRelativePath *string `json:"StoreRelativePath,omitempty"`
47639	// SessionID - A unique ID of the upload session. A session ID can be reused only if the session was committed or removed.
47640	SessionID *uuid.UUID `json:"SessionId,omitempty"`
47641	// ModifiedDate - The date and time when the upload session was last modified.
47642	ModifiedDate *date.Time `json:"ModifiedDate,omitempty"`
47643	// FileSize - The size in bytes of the uploading file.
47644	FileSize *string `json:"FileSize,omitempty"`
47645	// ExpectedRanges - List of chunk ranges that image store has not received yet.
47646	ExpectedRanges *[]UploadChunkRange `json:"ExpectedRanges,omitempty"`
47647}
47648
47649// ValidationFailedChaosEvent chaos event corresponding to a failure during validation.
47650type ValidationFailedChaosEvent struct {
47651	// 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.
47652	Reason *string `json:"Reason,omitempty"`
47653	// TimeStampUtc - The UTC timestamp when this Chaos event was generated.
47654	TimeStampUtc *date.Time `json:"TimeStampUtc,omitempty"`
47655	// Kind - Possible values include: 'KindChaosEvent', 'KindExecutingFaults', 'KindStarted', 'KindStopped', 'KindTestError', 'KindValidationFailed', 'KindWaiting'
47656	Kind KindBasicChaosEvent `json:"Kind,omitempty"`
47657}
47658
47659// MarshalJSON is the custom marshaler for ValidationFailedChaosEvent.
47660func (vfce ValidationFailedChaosEvent) MarshalJSON() ([]byte, error) {
47661	vfce.Kind = KindValidationFailed
47662	objectMap := make(map[string]interface{})
47663	if vfce.Reason != nil {
47664		objectMap["Reason"] = vfce.Reason
47665	}
47666	if vfce.TimeStampUtc != nil {
47667		objectMap["TimeStampUtc"] = vfce.TimeStampUtc
47668	}
47669	if vfce.Kind != "" {
47670		objectMap["Kind"] = vfce.Kind
47671	}
47672	return json.Marshal(objectMap)
47673}
47674
47675// AsExecutingFaultsChaosEvent is the BasicChaosEvent implementation for ValidationFailedChaosEvent.
47676func (vfce ValidationFailedChaosEvent) AsExecutingFaultsChaosEvent() (*ExecutingFaultsChaosEvent, bool) {
47677	return nil, false
47678}
47679
47680// AsStartedChaosEvent is the BasicChaosEvent implementation for ValidationFailedChaosEvent.
47681func (vfce ValidationFailedChaosEvent) AsStartedChaosEvent() (*StartedChaosEvent, bool) {
47682	return nil, false
47683}
47684
47685// AsStoppedChaosEvent is the BasicChaosEvent implementation for ValidationFailedChaosEvent.
47686func (vfce ValidationFailedChaosEvent) AsStoppedChaosEvent() (*StoppedChaosEvent, bool) {
47687	return nil, false
47688}
47689
47690// AsTestErrorChaosEvent is the BasicChaosEvent implementation for ValidationFailedChaosEvent.
47691func (vfce ValidationFailedChaosEvent) AsTestErrorChaosEvent() (*TestErrorChaosEvent, bool) {
47692	return nil, false
47693}
47694
47695// AsValidationFailedChaosEvent is the BasicChaosEvent implementation for ValidationFailedChaosEvent.
47696func (vfce ValidationFailedChaosEvent) AsValidationFailedChaosEvent() (*ValidationFailedChaosEvent, bool) {
47697	return &vfce, true
47698}
47699
47700// AsWaitingChaosEvent is the BasicChaosEvent implementation for ValidationFailedChaosEvent.
47701func (vfce ValidationFailedChaosEvent) AsWaitingChaosEvent() (*WaitingChaosEvent, bool) {
47702	return nil, false
47703}
47704
47705// AsChaosEvent is the BasicChaosEvent implementation for ValidationFailedChaosEvent.
47706func (vfce ValidationFailedChaosEvent) AsChaosEvent() (*ChaosEvent, bool) {
47707	return nil, false
47708}
47709
47710// AsBasicChaosEvent is the BasicChaosEvent implementation for ValidationFailedChaosEvent.
47711func (vfce ValidationFailedChaosEvent) AsBasicChaosEvent() (BasicChaosEvent, bool) {
47712	return &vfce, true
47713}
47714
47715// VolumeProperties describes properties of a volume resource.
47716type VolumeProperties struct {
47717	// Description - User readable description of the volume.
47718	Description *string `json:"description,omitempty"`
47719	// Status - READ-ONLY; Status of the volume. Possible values include: 'ResourceStatusUnknown', 'ResourceStatusReady', 'ResourceStatusUpgrading', 'ResourceStatusCreating', 'ResourceStatusDeleting', 'ResourceStatusFailed'
47720	Status ResourceStatus `json:"status,omitempty"`
47721	// StatusDetails - READ-ONLY; Gives additional information about the current status of the volume.
47722	StatusDetails *string `json:"statusDetails,omitempty"`
47723	// Provider - Provider of the volume.
47724	Provider *string `json:"provider,omitempty"`
47725	// AzureFileParameters - This type describes a volume provided by an Azure Files file share.
47726	AzureFileParameters *VolumeProviderParametersAzureFile `json:"azureFileParameters,omitempty"`
47727}
47728
47729// MarshalJSON is the custom marshaler for VolumeProperties.
47730func (vp VolumeProperties) MarshalJSON() ([]byte, error) {
47731	objectMap := make(map[string]interface{})
47732	if vp.Description != nil {
47733		objectMap["description"] = vp.Description
47734	}
47735	if vp.Provider != nil {
47736		objectMap["provider"] = vp.Provider
47737	}
47738	if vp.AzureFileParameters != nil {
47739		objectMap["azureFileParameters"] = vp.AzureFileParameters
47740	}
47741	return json.Marshal(objectMap)
47742}
47743
47744// VolumeProviderParametersAzureFile this type describes a volume provided by an Azure Files file share.
47745type VolumeProviderParametersAzureFile struct {
47746	// AccountName - Name of the Azure storage account for the File Share.
47747	AccountName *string `json:"accountName,omitempty"`
47748	// AccountKey - Access key of the Azure storage account for the File Share.
47749	AccountKey *string `json:"accountKey,omitempty"`
47750	// ShareName - Name of the Azure Files file share that provides storage for the volume.
47751	ShareName *string `json:"shareName,omitempty"`
47752}
47753
47754// VolumeReference describes a reference to a volume resource.
47755type VolumeReference struct {
47756	// Name - Name of the volume being referenced.
47757	Name *string `json:"name,omitempty"`
47758	// ReadOnly - The flag indicating whether the volume is read only. Default is 'false'.
47759	ReadOnly *bool `json:"readOnly,omitempty"`
47760	// DestinationPath - The path within the container at which the volume should be mounted. Only valid path characters are allowed.
47761	DestinationPath *string `json:"destinationPath,omitempty"`
47762}
47763
47764// VolumeResourceDescription this type describes a volume resource.
47765type VolumeResourceDescription struct {
47766	autorest.Response `json:"-"`
47767	// Name - Name of the Volume resource.
47768	Name *string `json:"name,omitempty"`
47769	// VolumeProperties - Describes properties of a volume resource.
47770	*VolumeProperties `json:"properties,omitempty"`
47771}
47772
47773// MarshalJSON is the custom marshaler for VolumeResourceDescription.
47774func (vrd VolumeResourceDescription) MarshalJSON() ([]byte, error) {
47775	objectMap := make(map[string]interface{})
47776	if vrd.Name != nil {
47777		objectMap["name"] = vrd.Name
47778	}
47779	if vrd.VolumeProperties != nil {
47780		objectMap["properties"] = vrd.VolumeProperties
47781	}
47782	return json.Marshal(objectMap)
47783}
47784
47785// UnmarshalJSON is the custom unmarshaler for VolumeResourceDescription struct.
47786func (vrd *VolumeResourceDescription) UnmarshalJSON(body []byte) error {
47787	var m map[string]*json.RawMessage
47788	err := json.Unmarshal(body, &m)
47789	if err != nil {
47790		return err
47791	}
47792	for k, v := range m {
47793		switch k {
47794		case "name":
47795			if v != nil {
47796				var name string
47797				err = json.Unmarshal(*v, &name)
47798				if err != nil {
47799					return err
47800				}
47801				vrd.Name = &name
47802			}
47803		case "properties":
47804			if v != nil {
47805				var volumeProperties VolumeProperties
47806				err = json.Unmarshal(*v, &volumeProperties)
47807				if err != nil {
47808					return err
47809				}
47810				vrd.VolumeProperties = &volumeProperties
47811			}
47812		}
47813	}
47814
47815	return nil
47816}
47817
47818// WaitForInbuildReplicaSafetyCheck safety check that waits for the replica build operation to finish. This
47819// indicates that there is a replica that is going through the copy or is providing data for building
47820// another replica. Bring the node down will abort this copy operation which are typically expensive
47821// involving data movements.
47822type WaitForInbuildReplicaSafetyCheck struct {
47823	// PartitionID - Id of the partition which is undergoing the safety check.
47824	PartitionID *uuid.UUID `json:"PartitionId,omitempty"`
47825	// Kind - Possible values include: 'KindSafetyCheck', 'KindPartitionSafetyCheck', 'KindEnsureAvailability', 'KindEnsurePartitionQuorum', 'KindEnsureSeedNodeQuorum', 'KindWaitForInbuildReplica', 'KindWaitForPrimaryPlacement', 'KindWaitForPrimarySwap', 'KindWaitForReconfiguration'
47826	Kind KindBasicSafetyCheck `json:"Kind,omitempty"`
47827}
47828
47829// MarshalJSON is the custom marshaler for WaitForInbuildReplicaSafetyCheck.
47830func (wfirsc WaitForInbuildReplicaSafetyCheck) MarshalJSON() ([]byte, error) {
47831	wfirsc.Kind = KindWaitForInbuildReplica
47832	objectMap := make(map[string]interface{})
47833	if wfirsc.PartitionID != nil {
47834		objectMap["PartitionId"] = wfirsc.PartitionID
47835	}
47836	if wfirsc.Kind != "" {
47837		objectMap["Kind"] = wfirsc.Kind
47838	}
47839	return json.Marshal(objectMap)
47840}
47841
47842// AsPartitionSafetyCheck is the BasicSafetyCheck implementation for WaitForInbuildReplicaSafetyCheck.
47843func (wfirsc WaitForInbuildReplicaSafetyCheck) AsPartitionSafetyCheck() (*PartitionSafetyCheck, bool) {
47844	return nil, false
47845}
47846
47847// AsBasicPartitionSafetyCheck is the BasicSafetyCheck implementation for WaitForInbuildReplicaSafetyCheck.
47848func (wfirsc WaitForInbuildReplicaSafetyCheck) AsBasicPartitionSafetyCheck() (BasicPartitionSafetyCheck, bool) {
47849	return &wfirsc, true
47850}
47851
47852// AsEnsureAvailabilitySafetyCheck is the BasicSafetyCheck implementation for WaitForInbuildReplicaSafetyCheck.
47853func (wfirsc WaitForInbuildReplicaSafetyCheck) AsEnsureAvailabilitySafetyCheck() (*EnsureAvailabilitySafetyCheck, bool) {
47854	return nil, false
47855}
47856
47857// AsEnsurePartitionQuorumSafetyCheck is the BasicSafetyCheck implementation for WaitForInbuildReplicaSafetyCheck.
47858func (wfirsc WaitForInbuildReplicaSafetyCheck) AsEnsurePartitionQuorumSafetyCheck() (*EnsurePartitionQuorumSafetyCheck, bool) {
47859	return nil, false
47860}
47861
47862// AsSeedNodeSafetyCheck is the BasicSafetyCheck implementation for WaitForInbuildReplicaSafetyCheck.
47863func (wfirsc WaitForInbuildReplicaSafetyCheck) AsSeedNodeSafetyCheck() (*SeedNodeSafetyCheck, bool) {
47864	return nil, false
47865}
47866
47867// AsWaitForInbuildReplicaSafetyCheck is the BasicSafetyCheck implementation for WaitForInbuildReplicaSafetyCheck.
47868func (wfirsc WaitForInbuildReplicaSafetyCheck) AsWaitForInbuildReplicaSafetyCheck() (*WaitForInbuildReplicaSafetyCheck, bool) {
47869	return &wfirsc, true
47870}
47871
47872// AsWaitForPrimaryPlacementSafetyCheck is the BasicSafetyCheck implementation for WaitForInbuildReplicaSafetyCheck.
47873func (wfirsc WaitForInbuildReplicaSafetyCheck) AsWaitForPrimaryPlacementSafetyCheck() (*WaitForPrimaryPlacementSafetyCheck, bool) {
47874	return nil, false
47875}
47876
47877// AsWaitForPrimarySwapSafetyCheck is the BasicSafetyCheck implementation for WaitForInbuildReplicaSafetyCheck.
47878func (wfirsc WaitForInbuildReplicaSafetyCheck) AsWaitForPrimarySwapSafetyCheck() (*WaitForPrimarySwapSafetyCheck, bool) {
47879	return nil, false
47880}
47881
47882// AsWaitForReconfigurationSafetyCheck is the BasicSafetyCheck implementation for WaitForInbuildReplicaSafetyCheck.
47883func (wfirsc WaitForInbuildReplicaSafetyCheck) AsWaitForReconfigurationSafetyCheck() (*WaitForReconfigurationSafetyCheck, bool) {
47884	return nil, false
47885}
47886
47887// AsSafetyCheck is the BasicSafetyCheck implementation for WaitForInbuildReplicaSafetyCheck.
47888func (wfirsc WaitForInbuildReplicaSafetyCheck) AsSafetyCheck() (*SafetyCheck, bool) {
47889	return nil, false
47890}
47891
47892// AsBasicSafetyCheck is the BasicSafetyCheck implementation for WaitForInbuildReplicaSafetyCheck.
47893func (wfirsc WaitForInbuildReplicaSafetyCheck) AsBasicSafetyCheck() (BasicSafetyCheck, bool) {
47894	return &wfirsc, true
47895}
47896
47897// WaitForPrimaryPlacementSafetyCheck safety check that waits for the primary replica that was moved out of
47898// the node due to upgrade to be placed back again on that node.
47899type WaitForPrimaryPlacementSafetyCheck struct {
47900	// PartitionID - Id of the partition which is undergoing the safety check.
47901	PartitionID *uuid.UUID `json:"PartitionId,omitempty"`
47902	// Kind - Possible values include: 'KindSafetyCheck', 'KindPartitionSafetyCheck', 'KindEnsureAvailability', 'KindEnsurePartitionQuorum', 'KindEnsureSeedNodeQuorum', 'KindWaitForInbuildReplica', 'KindWaitForPrimaryPlacement', 'KindWaitForPrimarySwap', 'KindWaitForReconfiguration'
47903	Kind KindBasicSafetyCheck `json:"Kind,omitempty"`
47904}
47905
47906// MarshalJSON is the custom marshaler for WaitForPrimaryPlacementSafetyCheck.
47907func (wfppsc WaitForPrimaryPlacementSafetyCheck) MarshalJSON() ([]byte, error) {
47908	wfppsc.Kind = KindWaitForPrimaryPlacement
47909	objectMap := make(map[string]interface{})
47910	if wfppsc.PartitionID != nil {
47911		objectMap["PartitionId"] = wfppsc.PartitionID
47912	}
47913	if wfppsc.Kind != "" {
47914		objectMap["Kind"] = wfppsc.Kind
47915	}
47916	return json.Marshal(objectMap)
47917}
47918
47919// AsPartitionSafetyCheck is the BasicSafetyCheck implementation for WaitForPrimaryPlacementSafetyCheck.
47920func (wfppsc WaitForPrimaryPlacementSafetyCheck) AsPartitionSafetyCheck() (*PartitionSafetyCheck, bool) {
47921	return nil, false
47922}
47923
47924// AsBasicPartitionSafetyCheck is the BasicSafetyCheck implementation for WaitForPrimaryPlacementSafetyCheck.
47925func (wfppsc WaitForPrimaryPlacementSafetyCheck) AsBasicPartitionSafetyCheck() (BasicPartitionSafetyCheck, bool) {
47926	return &wfppsc, true
47927}
47928
47929// AsEnsureAvailabilitySafetyCheck is the BasicSafetyCheck implementation for WaitForPrimaryPlacementSafetyCheck.
47930func (wfppsc WaitForPrimaryPlacementSafetyCheck) AsEnsureAvailabilitySafetyCheck() (*EnsureAvailabilitySafetyCheck, bool) {
47931	return nil, false
47932}
47933
47934// AsEnsurePartitionQuorumSafetyCheck is the BasicSafetyCheck implementation for WaitForPrimaryPlacementSafetyCheck.
47935func (wfppsc WaitForPrimaryPlacementSafetyCheck) AsEnsurePartitionQuorumSafetyCheck() (*EnsurePartitionQuorumSafetyCheck, bool) {
47936	return nil, false
47937}
47938
47939// AsSeedNodeSafetyCheck is the BasicSafetyCheck implementation for WaitForPrimaryPlacementSafetyCheck.
47940func (wfppsc WaitForPrimaryPlacementSafetyCheck) AsSeedNodeSafetyCheck() (*SeedNodeSafetyCheck, bool) {
47941	return nil, false
47942}
47943
47944// AsWaitForInbuildReplicaSafetyCheck is the BasicSafetyCheck implementation for WaitForPrimaryPlacementSafetyCheck.
47945func (wfppsc WaitForPrimaryPlacementSafetyCheck) AsWaitForInbuildReplicaSafetyCheck() (*WaitForInbuildReplicaSafetyCheck, bool) {
47946	return nil, false
47947}
47948
47949// AsWaitForPrimaryPlacementSafetyCheck is the BasicSafetyCheck implementation for WaitForPrimaryPlacementSafetyCheck.
47950func (wfppsc WaitForPrimaryPlacementSafetyCheck) AsWaitForPrimaryPlacementSafetyCheck() (*WaitForPrimaryPlacementSafetyCheck, bool) {
47951	return &wfppsc, true
47952}
47953
47954// AsWaitForPrimarySwapSafetyCheck is the BasicSafetyCheck implementation for WaitForPrimaryPlacementSafetyCheck.
47955func (wfppsc WaitForPrimaryPlacementSafetyCheck) AsWaitForPrimarySwapSafetyCheck() (*WaitForPrimarySwapSafetyCheck, bool) {
47956	return nil, false
47957}
47958
47959// AsWaitForReconfigurationSafetyCheck is the BasicSafetyCheck implementation for WaitForPrimaryPlacementSafetyCheck.
47960func (wfppsc WaitForPrimaryPlacementSafetyCheck) AsWaitForReconfigurationSafetyCheck() (*WaitForReconfigurationSafetyCheck, bool) {
47961	return nil, false
47962}
47963
47964// AsSafetyCheck is the BasicSafetyCheck implementation for WaitForPrimaryPlacementSafetyCheck.
47965func (wfppsc WaitForPrimaryPlacementSafetyCheck) AsSafetyCheck() (*SafetyCheck, bool) {
47966	return nil, false
47967}
47968
47969// AsBasicSafetyCheck is the BasicSafetyCheck implementation for WaitForPrimaryPlacementSafetyCheck.
47970func (wfppsc WaitForPrimaryPlacementSafetyCheck) AsBasicSafetyCheck() (BasicSafetyCheck, bool) {
47971	return &wfppsc, true
47972}
47973
47974// WaitForPrimarySwapSafetyCheck safety check that waits for the primary replica to be moved out of the
47975// node before starting an upgrade to ensure the availability of the primary replica for the partition.
47976type WaitForPrimarySwapSafetyCheck struct {
47977	// PartitionID - Id of the partition which is undergoing the safety check.
47978	PartitionID *uuid.UUID `json:"PartitionId,omitempty"`
47979	// Kind - Possible values include: 'KindSafetyCheck', 'KindPartitionSafetyCheck', 'KindEnsureAvailability', 'KindEnsurePartitionQuorum', 'KindEnsureSeedNodeQuorum', 'KindWaitForInbuildReplica', 'KindWaitForPrimaryPlacement', 'KindWaitForPrimarySwap', 'KindWaitForReconfiguration'
47980	Kind KindBasicSafetyCheck `json:"Kind,omitempty"`
47981}
47982
47983// MarshalJSON is the custom marshaler for WaitForPrimarySwapSafetyCheck.
47984func (wfpssc WaitForPrimarySwapSafetyCheck) MarshalJSON() ([]byte, error) {
47985	wfpssc.Kind = KindWaitForPrimarySwap
47986	objectMap := make(map[string]interface{})
47987	if wfpssc.PartitionID != nil {
47988		objectMap["PartitionId"] = wfpssc.PartitionID
47989	}
47990	if wfpssc.Kind != "" {
47991		objectMap["Kind"] = wfpssc.Kind
47992	}
47993	return json.Marshal(objectMap)
47994}
47995
47996// AsPartitionSafetyCheck is the BasicSafetyCheck implementation for WaitForPrimarySwapSafetyCheck.
47997func (wfpssc WaitForPrimarySwapSafetyCheck) AsPartitionSafetyCheck() (*PartitionSafetyCheck, bool) {
47998	return nil, false
47999}
48000
48001// AsBasicPartitionSafetyCheck is the BasicSafetyCheck implementation for WaitForPrimarySwapSafetyCheck.
48002func (wfpssc WaitForPrimarySwapSafetyCheck) AsBasicPartitionSafetyCheck() (BasicPartitionSafetyCheck, bool) {
48003	return &wfpssc, true
48004}
48005
48006// AsEnsureAvailabilitySafetyCheck is the BasicSafetyCheck implementation for WaitForPrimarySwapSafetyCheck.
48007func (wfpssc WaitForPrimarySwapSafetyCheck) AsEnsureAvailabilitySafetyCheck() (*EnsureAvailabilitySafetyCheck, bool) {
48008	return nil, false
48009}
48010
48011// AsEnsurePartitionQuorumSafetyCheck is the BasicSafetyCheck implementation for WaitForPrimarySwapSafetyCheck.
48012func (wfpssc WaitForPrimarySwapSafetyCheck) AsEnsurePartitionQuorumSafetyCheck() (*EnsurePartitionQuorumSafetyCheck, bool) {
48013	return nil, false
48014}
48015
48016// AsSeedNodeSafetyCheck is the BasicSafetyCheck implementation for WaitForPrimarySwapSafetyCheck.
48017func (wfpssc WaitForPrimarySwapSafetyCheck) AsSeedNodeSafetyCheck() (*SeedNodeSafetyCheck, bool) {
48018	return nil, false
48019}
48020
48021// AsWaitForInbuildReplicaSafetyCheck is the BasicSafetyCheck implementation for WaitForPrimarySwapSafetyCheck.
48022func (wfpssc WaitForPrimarySwapSafetyCheck) AsWaitForInbuildReplicaSafetyCheck() (*WaitForInbuildReplicaSafetyCheck, bool) {
48023	return nil, false
48024}
48025
48026// AsWaitForPrimaryPlacementSafetyCheck is the BasicSafetyCheck implementation for WaitForPrimarySwapSafetyCheck.
48027func (wfpssc WaitForPrimarySwapSafetyCheck) AsWaitForPrimaryPlacementSafetyCheck() (*WaitForPrimaryPlacementSafetyCheck, bool) {
48028	return nil, false
48029}
48030
48031// AsWaitForPrimarySwapSafetyCheck is the BasicSafetyCheck implementation for WaitForPrimarySwapSafetyCheck.
48032func (wfpssc WaitForPrimarySwapSafetyCheck) AsWaitForPrimarySwapSafetyCheck() (*WaitForPrimarySwapSafetyCheck, bool) {
48033	return &wfpssc, true
48034}
48035
48036// AsWaitForReconfigurationSafetyCheck is the BasicSafetyCheck implementation for WaitForPrimarySwapSafetyCheck.
48037func (wfpssc WaitForPrimarySwapSafetyCheck) AsWaitForReconfigurationSafetyCheck() (*WaitForReconfigurationSafetyCheck, bool) {
48038	return nil, false
48039}
48040
48041// AsSafetyCheck is the BasicSafetyCheck implementation for WaitForPrimarySwapSafetyCheck.
48042func (wfpssc WaitForPrimarySwapSafetyCheck) AsSafetyCheck() (*SafetyCheck, bool) {
48043	return nil, false
48044}
48045
48046// AsBasicSafetyCheck is the BasicSafetyCheck implementation for WaitForPrimarySwapSafetyCheck.
48047func (wfpssc WaitForPrimarySwapSafetyCheck) AsBasicSafetyCheck() (BasicSafetyCheck, bool) {
48048	return &wfpssc, true
48049}
48050
48051// WaitForReconfigurationSafetyCheck safety check that waits for the current reconfiguration of the
48052// partition to be completed before starting an upgrade.
48053type WaitForReconfigurationSafetyCheck struct {
48054	// PartitionID - Id of the partition which is undergoing the safety check.
48055	PartitionID *uuid.UUID `json:"PartitionId,omitempty"`
48056	// Kind - Possible values include: 'KindSafetyCheck', 'KindPartitionSafetyCheck', 'KindEnsureAvailability', 'KindEnsurePartitionQuorum', 'KindEnsureSeedNodeQuorum', 'KindWaitForInbuildReplica', 'KindWaitForPrimaryPlacement', 'KindWaitForPrimarySwap', 'KindWaitForReconfiguration'
48057	Kind KindBasicSafetyCheck `json:"Kind,omitempty"`
48058}
48059
48060// MarshalJSON is the custom marshaler for WaitForReconfigurationSafetyCheck.
48061func (wfrsc WaitForReconfigurationSafetyCheck) MarshalJSON() ([]byte, error) {
48062	wfrsc.Kind = KindWaitForReconfiguration
48063	objectMap := make(map[string]interface{})
48064	if wfrsc.PartitionID != nil {
48065		objectMap["PartitionId"] = wfrsc.PartitionID
48066	}
48067	if wfrsc.Kind != "" {
48068		objectMap["Kind"] = wfrsc.Kind
48069	}
48070	return json.Marshal(objectMap)
48071}
48072
48073// AsPartitionSafetyCheck is the BasicSafetyCheck implementation for WaitForReconfigurationSafetyCheck.
48074func (wfrsc WaitForReconfigurationSafetyCheck) AsPartitionSafetyCheck() (*PartitionSafetyCheck, bool) {
48075	return nil, false
48076}
48077
48078// AsBasicPartitionSafetyCheck is the BasicSafetyCheck implementation for WaitForReconfigurationSafetyCheck.
48079func (wfrsc WaitForReconfigurationSafetyCheck) AsBasicPartitionSafetyCheck() (BasicPartitionSafetyCheck, bool) {
48080	return &wfrsc, true
48081}
48082
48083// AsEnsureAvailabilitySafetyCheck is the BasicSafetyCheck implementation for WaitForReconfigurationSafetyCheck.
48084func (wfrsc WaitForReconfigurationSafetyCheck) AsEnsureAvailabilitySafetyCheck() (*EnsureAvailabilitySafetyCheck, bool) {
48085	return nil, false
48086}
48087
48088// AsEnsurePartitionQuorumSafetyCheck is the BasicSafetyCheck implementation for WaitForReconfigurationSafetyCheck.
48089func (wfrsc WaitForReconfigurationSafetyCheck) AsEnsurePartitionQuorumSafetyCheck() (*EnsurePartitionQuorumSafetyCheck, bool) {
48090	return nil, false
48091}
48092
48093// AsSeedNodeSafetyCheck is the BasicSafetyCheck implementation for WaitForReconfigurationSafetyCheck.
48094func (wfrsc WaitForReconfigurationSafetyCheck) AsSeedNodeSafetyCheck() (*SeedNodeSafetyCheck, bool) {
48095	return nil, false
48096}
48097
48098// AsWaitForInbuildReplicaSafetyCheck is the BasicSafetyCheck implementation for WaitForReconfigurationSafetyCheck.
48099func (wfrsc WaitForReconfigurationSafetyCheck) AsWaitForInbuildReplicaSafetyCheck() (*WaitForInbuildReplicaSafetyCheck, bool) {
48100	return nil, false
48101}
48102
48103// AsWaitForPrimaryPlacementSafetyCheck is the BasicSafetyCheck implementation for WaitForReconfigurationSafetyCheck.
48104func (wfrsc WaitForReconfigurationSafetyCheck) AsWaitForPrimaryPlacementSafetyCheck() (*WaitForPrimaryPlacementSafetyCheck, bool) {
48105	return nil, false
48106}
48107
48108// AsWaitForPrimarySwapSafetyCheck is the BasicSafetyCheck implementation for WaitForReconfigurationSafetyCheck.
48109func (wfrsc WaitForReconfigurationSafetyCheck) AsWaitForPrimarySwapSafetyCheck() (*WaitForPrimarySwapSafetyCheck, bool) {
48110	return nil, false
48111}
48112
48113// AsWaitForReconfigurationSafetyCheck is the BasicSafetyCheck implementation for WaitForReconfigurationSafetyCheck.
48114func (wfrsc WaitForReconfigurationSafetyCheck) AsWaitForReconfigurationSafetyCheck() (*WaitForReconfigurationSafetyCheck, bool) {
48115	return &wfrsc, true
48116}
48117
48118// AsSafetyCheck is the BasicSafetyCheck implementation for WaitForReconfigurationSafetyCheck.
48119func (wfrsc WaitForReconfigurationSafetyCheck) AsSafetyCheck() (*SafetyCheck, bool) {
48120	return nil, false
48121}
48122
48123// AsBasicSafetyCheck is the BasicSafetyCheck implementation for WaitForReconfigurationSafetyCheck.
48124func (wfrsc WaitForReconfigurationSafetyCheck) AsBasicSafetyCheck() (BasicSafetyCheck, bool) {
48125	return &wfrsc, true
48126}
48127
48128// WaitingChaosEvent describes a Chaos event that gets generated when Chaos is waiting for the cluster to
48129// become ready for faulting, for example, Chaos may be waiting for the on-going upgrade to finish.
48130type WaitingChaosEvent struct {
48131	// Reason - Describes why the WaitingChaosEvent was generated, for example, due to a cluster upgrade.
48132	Reason *string `json:"Reason,omitempty"`
48133	// TimeStampUtc - The UTC timestamp when this Chaos event was generated.
48134	TimeStampUtc *date.Time `json:"TimeStampUtc,omitempty"`
48135	// Kind - Possible values include: 'KindChaosEvent', 'KindExecutingFaults', 'KindStarted', 'KindStopped', 'KindTestError', 'KindValidationFailed', 'KindWaiting'
48136	Kind KindBasicChaosEvent `json:"Kind,omitempty"`
48137}
48138
48139// MarshalJSON is the custom marshaler for WaitingChaosEvent.
48140func (wce WaitingChaosEvent) MarshalJSON() ([]byte, error) {
48141	wce.Kind = KindWaiting
48142	objectMap := make(map[string]interface{})
48143	if wce.Reason != nil {
48144		objectMap["Reason"] = wce.Reason
48145	}
48146	if wce.TimeStampUtc != nil {
48147		objectMap["TimeStampUtc"] = wce.TimeStampUtc
48148	}
48149	if wce.Kind != "" {
48150		objectMap["Kind"] = wce.Kind
48151	}
48152	return json.Marshal(objectMap)
48153}
48154
48155// AsExecutingFaultsChaosEvent is the BasicChaosEvent implementation for WaitingChaosEvent.
48156func (wce WaitingChaosEvent) AsExecutingFaultsChaosEvent() (*ExecutingFaultsChaosEvent, bool) {
48157	return nil, false
48158}
48159
48160// AsStartedChaosEvent is the BasicChaosEvent implementation for WaitingChaosEvent.
48161func (wce WaitingChaosEvent) AsStartedChaosEvent() (*StartedChaosEvent, bool) {
48162	return nil, false
48163}
48164
48165// AsStoppedChaosEvent is the BasicChaosEvent implementation for WaitingChaosEvent.
48166func (wce WaitingChaosEvent) AsStoppedChaosEvent() (*StoppedChaosEvent, bool) {
48167	return nil, false
48168}
48169
48170// AsTestErrorChaosEvent is the BasicChaosEvent implementation for WaitingChaosEvent.
48171func (wce WaitingChaosEvent) AsTestErrorChaosEvent() (*TestErrorChaosEvent, bool) {
48172	return nil, false
48173}
48174
48175// AsValidationFailedChaosEvent is the BasicChaosEvent implementation for WaitingChaosEvent.
48176func (wce WaitingChaosEvent) AsValidationFailedChaosEvent() (*ValidationFailedChaosEvent, bool) {
48177	return nil, false
48178}
48179
48180// AsWaitingChaosEvent is the BasicChaosEvent implementation for WaitingChaosEvent.
48181func (wce WaitingChaosEvent) AsWaitingChaosEvent() (*WaitingChaosEvent, bool) {
48182	return &wce, true
48183}
48184
48185// AsChaosEvent is the BasicChaosEvent implementation for WaitingChaosEvent.
48186func (wce WaitingChaosEvent) AsChaosEvent() (*ChaosEvent, bool) {
48187	return nil, false
48188}
48189
48190// AsBasicChaosEvent is the BasicChaosEvent implementation for WaitingChaosEvent.
48191func (wce WaitingChaosEvent) AsBasicChaosEvent() (BasicChaosEvent, bool) {
48192	return &wce, true
48193}
48194