1 package backup
2
3
4
5
6
7
8
9 import (
10 "context"
11 "encoding/json"
12 "github.com/Azure/go-autorest/autorest"
13 "github.com/Azure/go-autorest/autorest/azure"
14 "github.com/Azure/go-autorest/autorest/date"
15 "github.com/Azure/go-autorest/autorest/to"
16 "github.com/Azure/go-autorest/tracing"
17 "net/http"
18 )
19
20
21 const fqdn = "github.com/Azure/azure-sdk-for-go/services/recoveryservices/mgmt/2020-02-02/backup"
22
23
24 type AzureBackupGoalFeatureSupportRequest struct {
25
26 FeatureType FeatureType `json:"featureType,omitempty"`
27 }
28
29
30 func (abgfsr AzureBackupGoalFeatureSupportRequest) MarshalJSON() ([]byte, error) {
31 abgfsr.FeatureType = FeatureTypeAzureBackupGoals
32 objectMap := make(map[string]interface{})
33 if abgfsr.FeatureType != "" {
34 objectMap["featureType"] = abgfsr.FeatureType
35 }
36 return json.Marshal(objectMap)
37 }
38
39
40 func (abgfsr AzureBackupGoalFeatureSupportRequest) AsAzureBackupGoalFeatureSupportRequest() (*AzureBackupGoalFeatureSupportRequest, bool) {
41 return &abgfsr, true
42 }
43
44
45 func (abgfsr AzureBackupGoalFeatureSupportRequest) AsAzureVMResourceFeatureSupportRequest() (*AzureVMResourceFeatureSupportRequest, bool) {
46 return nil, false
47 }
48
49
50 func (abgfsr AzureBackupGoalFeatureSupportRequest) AsFeatureSupportRequest() (*FeatureSupportRequest, bool) {
51 return nil, false
52 }
53
54
55 func (abgfsr AzureBackupGoalFeatureSupportRequest) AsBasicFeatureSupportRequest() (BasicFeatureSupportRequest, bool) {
56 return &abgfsr, true
57 }
58
59
60 type AzureBackupServerContainer struct {
61
62 CanReRegister *bool `json:"canReRegister,omitempty"`
63
64 ContainerID *string `json:"containerId,omitempty"`
65
66 ProtectedItemCount *int64 `json:"protectedItemCount,omitempty"`
67
68 DpmAgentVersion *string `json:"dpmAgentVersion,omitempty"`
69
70 DpmServers *[]string `json:"dpmServers,omitempty"`
71
72 UpgradeAvailable *bool `json:"upgradeAvailable,omitempty"`
73
74 ProtectionStatus *string `json:"protectionStatus,omitempty"`
75
76 ExtendedInfo *DPMContainerExtendedInfo `json:"extendedInfo,omitempty"`
77
78 FriendlyName *string `json:"friendlyName,omitempty"`
79
80 BackupManagementType ManagementType `json:"backupManagementType,omitempty"`
81
82 RegistrationStatus *string `json:"registrationStatus,omitempty"`
83
84 HealthStatus *string `json:"healthStatus,omitempty"`
85
86 ContainerType ContainerTypeBasicProtectionContainer `json:"containerType,omitempty"`
87 }
88
89
90 func (absc AzureBackupServerContainer) MarshalJSON() ([]byte, error) {
91 absc.ContainerType = ContainerTypeAzureBackupServerContainer1
92 objectMap := make(map[string]interface{})
93 if absc.CanReRegister != nil {
94 objectMap["canReRegister"] = absc.CanReRegister
95 }
96 if absc.ContainerID != nil {
97 objectMap["containerId"] = absc.ContainerID
98 }
99 if absc.ProtectedItemCount != nil {
100 objectMap["protectedItemCount"] = absc.ProtectedItemCount
101 }
102 if absc.DpmAgentVersion != nil {
103 objectMap["dpmAgentVersion"] = absc.DpmAgentVersion
104 }
105 if absc.DpmServers != nil {
106 objectMap["dpmServers"] = absc.DpmServers
107 }
108 if absc.UpgradeAvailable != nil {
109 objectMap["upgradeAvailable"] = absc.UpgradeAvailable
110 }
111 if absc.ProtectionStatus != nil {
112 objectMap["protectionStatus"] = absc.ProtectionStatus
113 }
114 if absc.ExtendedInfo != nil {
115 objectMap["extendedInfo"] = absc.ExtendedInfo
116 }
117 if absc.FriendlyName != nil {
118 objectMap["friendlyName"] = absc.FriendlyName
119 }
120 if absc.BackupManagementType != "" {
121 objectMap["backupManagementType"] = absc.BackupManagementType
122 }
123 if absc.RegistrationStatus != nil {
124 objectMap["registrationStatus"] = absc.RegistrationStatus
125 }
126 if absc.HealthStatus != nil {
127 objectMap["healthStatus"] = absc.HealthStatus
128 }
129 if absc.ContainerType != "" {
130 objectMap["containerType"] = absc.ContainerType
131 }
132 return json.Marshal(objectMap)
133 }
134
135
136 func (absc AzureBackupServerContainer) AsAzureBackupServerContainer() (*AzureBackupServerContainer, bool) {
137 return &absc, true
138 }
139
140
141 func (absc AzureBackupServerContainer) AsAzureIaaSClassicComputeVMContainer() (*AzureIaaSClassicComputeVMContainer, bool) {
142 return nil, false
143 }
144
145
146 func (absc AzureBackupServerContainer) AsAzureIaaSComputeVMContainer() (*AzureIaaSComputeVMContainer, bool) {
147 return nil, false
148 }
149
150
151 func (absc AzureBackupServerContainer) AsAzureSQLAGWorkloadContainerProtectionContainer() (*AzureSQLAGWorkloadContainerProtectionContainer, bool) {
152 return nil, false
153 }
154
155
156 func (absc AzureBackupServerContainer) AsAzureSQLContainer() (*AzureSQLContainer, bool) {
157 return nil, false
158 }
159
160
161 func (absc AzureBackupServerContainer) AsAzureStorageContainer() (*AzureStorageContainer, bool) {
162 return nil, false
163 }
164
165
166 func (absc AzureBackupServerContainer) AsAzureVMAppContainerProtectionContainer() (*AzureVMAppContainerProtectionContainer, bool) {
167 return nil, false
168 }
169
170
171 func (absc AzureBackupServerContainer) AsAzureWorkloadContainer() (*AzureWorkloadContainer, bool) {
172 return nil, false
173 }
174
175
176 func (absc AzureBackupServerContainer) AsBasicAzureWorkloadContainer() (BasicAzureWorkloadContainer, bool) {
177 return nil, false
178 }
179
180
181 func (absc AzureBackupServerContainer) AsDpmContainer() (*DpmContainer, bool) {
182 return nil, false
183 }
184
185
186 func (absc AzureBackupServerContainer) AsBasicDpmContainer() (BasicDpmContainer, bool) {
187 return &absc, true
188 }
189
190
191 func (absc AzureBackupServerContainer) AsGenericContainer() (*GenericContainer, bool) {
192 return nil, false
193 }
194
195
196 func (absc AzureBackupServerContainer) AsIaaSVMContainer() (*IaaSVMContainer, bool) {
197 return nil, false
198 }
199
200
201 func (absc AzureBackupServerContainer) AsBasicIaaSVMContainer() (BasicIaaSVMContainer, bool) {
202 return nil, false
203 }
204
205
206 func (absc AzureBackupServerContainer) AsMabContainer() (*MabContainer, bool) {
207 return nil, false
208 }
209
210
211 func (absc AzureBackupServerContainer) AsProtectionContainer() (*ProtectionContainer, bool) {
212 return nil, false
213 }
214
215
216 func (absc AzureBackupServerContainer) AsBasicProtectionContainer() (BasicProtectionContainer, bool) {
217 return &absc, true
218 }
219
220
221 type AzureBackupServerEngine struct {
222
223 FriendlyName *string `json:"friendlyName,omitempty"`
224
225 BackupManagementType ManagementType `json:"backupManagementType,omitempty"`
226
227 RegistrationStatus *string `json:"registrationStatus,omitempty"`
228
229 BackupEngineState *string `json:"backupEngineState,omitempty"`
230
231 HealthStatus *string `json:"healthStatus,omitempty"`
232
233 CanReRegister *bool `json:"canReRegister,omitempty"`
234
235 BackupEngineID *string `json:"backupEngineId,omitempty"`
236
237 DpmVersion *string `json:"dpmVersion,omitempty"`
238
239 AzureBackupAgentVersion *string `json:"azureBackupAgentVersion,omitempty"`
240
241 IsAzureBackupAgentUpgradeAvailable *bool `json:"isAzureBackupAgentUpgradeAvailable,omitempty"`
242
243 IsDpmUpgradeAvailable *bool `json:"isDpmUpgradeAvailable,omitempty"`
244
245 ExtendedInfo *EngineExtendedInfo `json:"extendedInfo,omitempty"`
246
247 BackupEngineType EngineType `json:"backupEngineType,omitempty"`
248 }
249
250
251 func (abse AzureBackupServerEngine) MarshalJSON() ([]byte, error) {
252 abse.BackupEngineType = BackupEngineTypeAzureBackupServerEngine
253 objectMap := make(map[string]interface{})
254 if abse.FriendlyName != nil {
255 objectMap["friendlyName"] = abse.FriendlyName
256 }
257 if abse.BackupManagementType != "" {
258 objectMap["backupManagementType"] = abse.BackupManagementType
259 }
260 if abse.RegistrationStatus != nil {
261 objectMap["registrationStatus"] = abse.RegistrationStatus
262 }
263 if abse.BackupEngineState != nil {
264 objectMap["backupEngineState"] = abse.BackupEngineState
265 }
266 if abse.HealthStatus != nil {
267 objectMap["healthStatus"] = abse.HealthStatus
268 }
269 if abse.CanReRegister != nil {
270 objectMap["canReRegister"] = abse.CanReRegister
271 }
272 if abse.BackupEngineID != nil {
273 objectMap["backupEngineId"] = abse.BackupEngineID
274 }
275 if abse.DpmVersion != nil {
276 objectMap["dpmVersion"] = abse.DpmVersion
277 }
278 if abse.AzureBackupAgentVersion != nil {
279 objectMap["azureBackupAgentVersion"] = abse.AzureBackupAgentVersion
280 }
281 if abse.IsAzureBackupAgentUpgradeAvailable != nil {
282 objectMap["isAzureBackupAgentUpgradeAvailable"] = abse.IsAzureBackupAgentUpgradeAvailable
283 }
284 if abse.IsDpmUpgradeAvailable != nil {
285 objectMap["isDpmUpgradeAvailable"] = abse.IsDpmUpgradeAvailable
286 }
287 if abse.ExtendedInfo != nil {
288 objectMap["extendedInfo"] = abse.ExtendedInfo
289 }
290 if abse.BackupEngineType != "" {
291 objectMap["backupEngineType"] = abse.BackupEngineType
292 }
293 return json.Marshal(objectMap)
294 }
295
296
297 func (abse AzureBackupServerEngine) AsAzureBackupServerEngine() (*AzureBackupServerEngine, bool) {
298 return &abse, true
299 }
300
301
302 func (abse AzureBackupServerEngine) AsDpmBackupEngine() (*DpmBackupEngine, bool) {
303 return nil, false
304 }
305
306
307 func (abse AzureBackupServerEngine) AsEngineBase() (*EngineBase, bool) {
308 return nil, false
309 }
310
311
312 func (abse AzureBackupServerEngine) AsBasicEngineBase() (BasicEngineBase, bool) {
313 return &abse, true
314 }
315
316
317 type AzureFileShareBackupRequest struct {
318
319 RecoveryPointExpiryTimeInUTC *date.Time `json:"recoveryPointExpiryTimeInUTC,omitempty"`
320
321 ObjectType ObjectTypeBasicRequest `json:"objectType,omitempty"`
322 }
323
324
325 func (afsbr AzureFileShareBackupRequest) MarshalJSON() ([]byte, error) {
326 afsbr.ObjectType = ObjectTypeAzureFileShareBackupRequest
327 objectMap := make(map[string]interface{})
328 if afsbr.RecoveryPointExpiryTimeInUTC != nil {
329 objectMap["recoveryPointExpiryTimeInUTC"] = afsbr.RecoveryPointExpiryTimeInUTC
330 }
331 if afsbr.ObjectType != "" {
332 objectMap["objectType"] = afsbr.ObjectType
333 }
334 return json.Marshal(objectMap)
335 }
336
337
338 func (afsbr AzureFileShareBackupRequest) AsAzureFileShareBackupRequest() (*AzureFileShareBackupRequest, bool) {
339 return &afsbr, true
340 }
341
342
343 func (afsbr AzureFileShareBackupRequest) AsAzureWorkloadBackupRequest() (*AzureWorkloadBackupRequest, bool) {
344 return nil, false
345 }
346
347
348 func (afsbr AzureFileShareBackupRequest) AsIaasVMBackupRequest() (*IaasVMBackupRequest, bool) {
349 return nil, false
350 }
351
352
353 func (afsbr AzureFileShareBackupRequest) AsRequest() (*Request, bool) {
354 return nil, false
355 }
356
357
358 func (afsbr AzureFileShareBackupRequest) AsBasicRequest() (BasicRequest, bool) {
359 return &afsbr, true
360 }
361
362
363 type AzureFileShareProtectableItem struct {
364
365 ParentContainerFabricID *string `json:"parentContainerFabricId,omitempty"`
366
367 ParentContainerFriendlyName *string `json:"parentContainerFriendlyName,omitempty"`
368
369 AzureFileShareType AzureFileShareType `json:"azureFileShareType,omitempty"`
370
371 BackupManagementType *string `json:"backupManagementType,omitempty"`
372
373 WorkloadType *string `json:"workloadType,omitempty"`
374
375 FriendlyName *string `json:"friendlyName,omitempty"`
376
377 ProtectionState ProtectionStatus `json:"protectionState,omitempty"`
378
379 ProtectableItemType ProtectableItemType `json:"protectableItemType,omitempty"`
380 }
381
382
383 func (afspi AzureFileShareProtectableItem) MarshalJSON() ([]byte, error) {
384 afspi.ProtectableItemType = ProtectableItemTypeAzureFileShare
385 objectMap := make(map[string]interface{})
386 if afspi.ParentContainerFabricID != nil {
387 objectMap["parentContainerFabricId"] = afspi.ParentContainerFabricID
388 }
389 if afspi.ParentContainerFriendlyName != nil {
390 objectMap["parentContainerFriendlyName"] = afspi.ParentContainerFriendlyName
391 }
392 if afspi.AzureFileShareType != "" {
393 objectMap["azureFileShareType"] = afspi.AzureFileShareType
394 }
395 if afspi.BackupManagementType != nil {
396 objectMap["backupManagementType"] = afspi.BackupManagementType
397 }
398 if afspi.WorkloadType != nil {
399 objectMap["workloadType"] = afspi.WorkloadType
400 }
401 if afspi.FriendlyName != nil {
402 objectMap["friendlyName"] = afspi.FriendlyName
403 }
404 if afspi.ProtectionState != "" {
405 objectMap["protectionState"] = afspi.ProtectionState
406 }
407 if afspi.ProtectableItemType != "" {
408 objectMap["protectableItemType"] = afspi.ProtectableItemType
409 }
410 return json.Marshal(objectMap)
411 }
412
413
414 func (afspi AzureFileShareProtectableItem) AsAzureFileShareProtectableItem() (*AzureFileShareProtectableItem, bool) {
415 return &afspi, true
416 }
417
418
419 func (afspi AzureFileShareProtectableItem) AsAzureIaaSClassicComputeVMProtectableItem() (*AzureIaaSClassicComputeVMProtectableItem, bool) {
420 return nil, false
421 }
422
423
424 func (afspi AzureFileShareProtectableItem) AsAzureIaaSComputeVMProtectableItem() (*AzureIaaSComputeVMProtectableItem, bool) {
425 return nil, false
426 }
427
428
429 func (afspi AzureFileShareProtectableItem) AsAzureVMWorkloadProtectableItem() (*AzureVMWorkloadProtectableItem, bool) {
430 return nil, false
431 }
432
433
434 func (afspi AzureFileShareProtectableItem) AsBasicAzureVMWorkloadProtectableItem() (BasicAzureVMWorkloadProtectableItem, bool) {
435 return nil, false
436 }
437
438
439 func (afspi AzureFileShareProtectableItem) AsAzureVMWorkloadSAPAseSystemProtectableItem() (*AzureVMWorkloadSAPAseSystemProtectableItem, bool) {
440 return nil, false
441 }
442
443
444 func (afspi AzureFileShareProtectableItem) AsAzureVMWorkloadSAPHanaDatabaseProtectableItem() (*AzureVMWorkloadSAPHanaDatabaseProtectableItem, bool) {
445 return nil, false
446 }
447
448
449 func (afspi AzureFileShareProtectableItem) AsAzureVMWorkloadSAPHanaSystemProtectableItem() (*AzureVMWorkloadSAPHanaSystemProtectableItem, bool) {
450 return nil, false
451 }
452
453
454 func (afspi AzureFileShareProtectableItem) AsAzureVMWorkloadSQLAvailabilityGroupProtectableItem() (*AzureVMWorkloadSQLAvailabilityGroupProtectableItem, bool) {
455 return nil, false
456 }
457
458
459 func (afspi AzureFileShareProtectableItem) AsAzureVMWorkloadSQLDatabaseProtectableItem() (*AzureVMWorkloadSQLDatabaseProtectableItem, bool) {
460 return nil, false
461 }
462
463
464 func (afspi AzureFileShareProtectableItem) AsAzureVMWorkloadSQLInstanceProtectableItem() (*AzureVMWorkloadSQLInstanceProtectableItem, bool) {
465 return nil, false
466 }
467
468
469 func (afspi AzureFileShareProtectableItem) AsIaaSVMProtectableItem() (*IaaSVMProtectableItem, bool) {
470 return nil, false
471 }
472
473
474 func (afspi AzureFileShareProtectableItem) AsBasicIaaSVMProtectableItem() (BasicIaaSVMProtectableItem, bool) {
475 return nil, false
476 }
477
478
479 func (afspi AzureFileShareProtectableItem) AsWorkloadProtectableItem() (*WorkloadProtectableItem, bool) {
480 return nil, false
481 }
482
483
484 func (afspi AzureFileShareProtectableItem) AsBasicWorkloadProtectableItem() (BasicWorkloadProtectableItem, bool) {
485 return &afspi, true
486 }
487
488
489 type AzureFileshareProtectedItem struct {
490
491 FriendlyName *string `json:"friendlyName,omitempty"`
492
493 ProtectionStatus *string `json:"protectionStatus,omitempty"`
494
495 ProtectionState ProtectionState `json:"protectionState,omitempty"`
496
497 LastBackupStatus *string `json:"lastBackupStatus,omitempty"`
498
499 LastBackupTime *date.Time `json:"lastBackupTime,omitempty"`
500
501 KpisHealths map[string]*KPIResourceHealthDetails `json:"kpisHealths"`
502
503 ExtendedInfo *AzureFileshareProtectedItemExtendedInfo `json:"extendedInfo,omitempty"`
504
505 BackupManagementType ManagementType `json:"backupManagementType,omitempty"`
506
507 WorkloadType DataSourceType `json:"workloadType,omitempty"`
508
509 ContainerName *string `json:"containerName,omitempty"`
510
511 SourceResourceID *string `json:"sourceResourceId,omitempty"`
512
513 PolicyID *string `json:"policyId,omitempty"`
514
515 LastRecoveryPoint *date.Time `json:"lastRecoveryPoint,omitempty"`
516
517 BackupSetName *string `json:"backupSetName,omitempty"`
518
519 CreateMode CreateMode `json:"createMode,omitempty"`
520
521 DeferredDeleteTimeInUTC *date.Time `json:"deferredDeleteTimeInUTC,omitempty"`
522
523 IsScheduledForDeferredDelete *bool `json:"isScheduledForDeferredDelete,omitempty"`
524
525 DeferredDeleteTimeRemaining *string `json:"deferredDeleteTimeRemaining,omitempty"`
526
527 IsDeferredDeleteScheduleUpcoming *bool `json:"isDeferredDeleteScheduleUpcoming,omitempty"`
528
529 IsRehydrate *bool `json:"isRehydrate,omitempty"`
530
531 ProtectedItemType ProtectedItemType `json:"protectedItemType,omitempty"`
532 }
533
534
535 func (afpi AzureFileshareProtectedItem) MarshalJSON() ([]byte, error) {
536 afpi.ProtectedItemType = ProtectedItemTypeAzureFileShareProtectedItem
537 objectMap := make(map[string]interface{})
538 if afpi.FriendlyName != nil {
539 objectMap["friendlyName"] = afpi.FriendlyName
540 }
541 if afpi.ProtectionStatus != nil {
542 objectMap["protectionStatus"] = afpi.ProtectionStatus
543 }
544 if afpi.ProtectionState != "" {
545 objectMap["protectionState"] = afpi.ProtectionState
546 }
547 if afpi.LastBackupStatus != nil {
548 objectMap["lastBackupStatus"] = afpi.LastBackupStatus
549 }
550 if afpi.LastBackupTime != nil {
551 objectMap["lastBackupTime"] = afpi.LastBackupTime
552 }
553 if afpi.KpisHealths != nil {
554 objectMap["kpisHealths"] = afpi.KpisHealths
555 }
556 if afpi.ExtendedInfo != nil {
557 objectMap["extendedInfo"] = afpi.ExtendedInfo
558 }
559 if afpi.BackupManagementType != "" {
560 objectMap["backupManagementType"] = afpi.BackupManagementType
561 }
562 if afpi.WorkloadType != "" {
563 objectMap["workloadType"] = afpi.WorkloadType
564 }
565 if afpi.ContainerName != nil {
566 objectMap["containerName"] = afpi.ContainerName
567 }
568 if afpi.SourceResourceID != nil {
569 objectMap["sourceResourceId"] = afpi.SourceResourceID
570 }
571 if afpi.PolicyID != nil {
572 objectMap["policyId"] = afpi.PolicyID
573 }
574 if afpi.LastRecoveryPoint != nil {
575 objectMap["lastRecoveryPoint"] = afpi.LastRecoveryPoint
576 }
577 if afpi.BackupSetName != nil {
578 objectMap["backupSetName"] = afpi.BackupSetName
579 }
580 if afpi.CreateMode != "" {
581 objectMap["createMode"] = afpi.CreateMode
582 }
583 if afpi.DeferredDeleteTimeInUTC != nil {
584 objectMap["deferredDeleteTimeInUTC"] = afpi.DeferredDeleteTimeInUTC
585 }
586 if afpi.IsScheduledForDeferredDelete != nil {
587 objectMap["isScheduledForDeferredDelete"] = afpi.IsScheduledForDeferredDelete
588 }
589 if afpi.DeferredDeleteTimeRemaining != nil {
590 objectMap["deferredDeleteTimeRemaining"] = afpi.DeferredDeleteTimeRemaining
591 }
592 if afpi.IsDeferredDeleteScheduleUpcoming != nil {
593 objectMap["isDeferredDeleteScheduleUpcoming"] = afpi.IsDeferredDeleteScheduleUpcoming
594 }
595 if afpi.IsRehydrate != nil {
596 objectMap["isRehydrate"] = afpi.IsRehydrate
597 }
598 if afpi.ProtectedItemType != "" {
599 objectMap["protectedItemType"] = afpi.ProtectedItemType
600 }
601 return json.Marshal(objectMap)
602 }
603
604
605 func (afpi AzureFileshareProtectedItem) AsAzureFileshareProtectedItem() (*AzureFileshareProtectedItem, bool) {
606 return &afpi, true
607 }
608
609
610 func (afpi AzureFileshareProtectedItem) AsAzureIaaSClassicComputeVMProtectedItem() (*AzureIaaSClassicComputeVMProtectedItem, bool) {
611 return nil, false
612 }
613
614
615 func (afpi AzureFileshareProtectedItem) AsAzureIaaSComputeVMProtectedItem() (*AzureIaaSComputeVMProtectedItem, bool) {
616 return nil, false
617 }
618
619
620 func (afpi AzureFileshareProtectedItem) AsAzureIaaSVMProtectedItem() (*AzureIaaSVMProtectedItem, bool) {
621 return nil, false
622 }
623
624
625 func (afpi AzureFileshareProtectedItem) AsBasicAzureIaaSVMProtectedItem() (BasicAzureIaaSVMProtectedItem, bool) {
626 return nil, false
627 }
628
629
630 func (afpi AzureFileshareProtectedItem) AsAzureSQLProtectedItem() (*AzureSQLProtectedItem, bool) {
631 return nil, false
632 }
633
634
635 func (afpi AzureFileshareProtectedItem) AsAzureVMWorkloadProtectedItem() (*AzureVMWorkloadProtectedItem, bool) {
636 return nil, false
637 }
638
639
640 func (afpi AzureFileshareProtectedItem) AsBasicAzureVMWorkloadProtectedItem() (BasicAzureVMWorkloadProtectedItem, bool) {
641 return nil, false
642 }
643
644
645 func (afpi AzureFileshareProtectedItem) AsAzureVMWorkloadSAPAseDatabaseProtectedItem() (*AzureVMWorkloadSAPAseDatabaseProtectedItem, bool) {
646 return nil, false
647 }
648
649
650 func (afpi AzureFileshareProtectedItem) AsAzureVMWorkloadSAPHanaDatabaseProtectedItem() (*AzureVMWorkloadSAPHanaDatabaseProtectedItem, bool) {
651 return nil, false
652 }
653
654
655 func (afpi AzureFileshareProtectedItem) AsAzureVMWorkloadSQLDatabaseProtectedItem() (*AzureVMWorkloadSQLDatabaseProtectedItem, bool) {
656 return nil, false
657 }
658
659
660 func (afpi AzureFileshareProtectedItem) AsDPMProtectedItem() (*DPMProtectedItem, bool) {
661 return nil, false
662 }
663
664
665 func (afpi AzureFileshareProtectedItem) AsGenericProtectedItem() (*GenericProtectedItem, bool) {
666 return nil, false
667 }
668
669
670 func (afpi AzureFileshareProtectedItem) AsMabFileFolderProtectedItem() (*MabFileFolderProtectedItem, bool) {
671 return nil, false
672 }
673
674
675 func (afpi AzureFileshareProtectedItem) AsProtectedItem() (*ProtectedItem, bool) {
676 return nil, false
677 }
678
679
680 func (afpi AzureFileshareProtectedItem) AsBasicProtectedItem() (BasicProtectedItem, bool) {
681 return &afpi, true
682 }
683
684
685 type AzureFileshareProtectedItemExtendedInfo struct {
686
687 OldestRecoveryPoint *date.Time `json:"oldestRecoveryPoint,omitempty"`
688
689 RecoveryPointCount *int32 `json:"recoveryPointCount,omitempty"`
690
691 PolicyState *string `json:"policyState,omitempty"`
692
693 ResourceState *string `json:"resourceState,omitempty"`
694
695 ResourceStateSyncTime *date.Time `json:"resourceStateSyncTime,omitempty"`
696 }
697
698
699 func (afpiei AzureFileshareProtectedItemExtendedInfo) MarshalJSON() ([]byte, error) {
700 objectMap := make(map[string]interface{})
701 if afpiei.OldestRecoveryPoint != nil {
702 objectMap["oldestRecoveryPoint"] = afpiei.OldestRecoveryPoint
703 }
704 if afpiei.RecoveryPointCount != nil {
705 objectMap["recoveryPointCount"] = afpiei.RecoveryPointCount
706 }
707 if afpiei.PolicyState != nil {
708 objectMap["policyState"] = afpiei.PolicyState
709 }
710 return json.Marshal(objectMap)
711 }
712
713
714 type AzureFileShareProtectionPolicy struct {
715
716 WorkLoadType WorkloadType `json:"workLoadType,omitempty"`
717
718 SchedulePolicy BasicSchedulePolicy `json:"schedulePolicy,omitempty"`
719
720 RetentionPolicy BasicRetentionPolicy `json:"retentionPolicy,omitempty"`
721
722 TimeZone *string `json:"timeZone,omitempty"`
723
724 ProtectedItemsCount *int32 `json:"protectedItemsCount,omitempty"`
725
726 BackupManagementType ManagementTypeBasicProtectionPolicy `json:"backupManagementType,omitempty"`
727 }
728
729
730 func (afspp AzureFileShareProtectionPolicy) MarshalJSON() ([]byte, error) {
731 afspp.BackupManagementType = BackupManagementTypeAzureStorage
732 objectMap := make(map[string]interface{})
733 if afspp.WorkLoadType != "" {
734 objectMap["workLoadType"] = afspp.WorkLoadType
735 }
736 objectMap["schedulePolicy"] = afspp.SchedulePolicy
737 objectMap["retentionPolicy"] = afspp.RetentionPolicy
738 if afspp.TimeZone != nil {
739 objectMap["timeZone"] = afspp.TimeZone
740 }
741 if afspp.ProtectedItemsCount != nil {
742 objectMap["protectedItemsCount"] = afspp.ProtectedItemsCount
743 }
744 if afspp.BackupManagementType != "" {
745 objectMap["backupManagementType"] = afspp.BackupManagementType
746 }
747 return json.Marshal(objectMap)
748 }
749
750
751 func (afspp AzureFileShareProtectionPolicy) AsAzureVMWorkloadProtectionPolicy() (*AzureVMWorkloadProtectionPolicy, bool) {
752 return nil, false
753 }
754
755
756 func (afspp AzureFileShareProtectionPolicy) AsAzureFileShareProtectionPolicy() (*AzureFileShareProtectionPolicy, bool) {
757 return &afspp, true
758 }
759
760
761 func (afspp AzureFileShareProtectionPolicy) AsAzureIaaSVMProtectionPolicy() (*AzureIaaSVMProtectionPolicy, bool) {
762 return nil, false
763 }
764
765
766 func (afspp AzureFileShareProtectionPolicy) AsAzureSQLProtectionPolicy() (*AzureSQLProtectionPolicy, bool) {
767 return nil, false
768 }
769
770
771 func (afspp AzureFileShareProtectionPolicy) AsGenericProtectionPolicy() (*GenericProtectionPolicy, bool) {
772 return nil, false
773 }
774
775
776 func (afspp AzureFileShareProtectionPolicy) AsMabProtectionPolicy() (*MabProtectionPolicy, bool) {
777 return nil, false
778 }
779
780
781 func (afspp AzureFileShareProtectionPolicy) AsProtectionPolicy() (*ProtectionPolicy, bool) {
782 return nil, false
783 }
784
785
786 func (afspp AzureFileShareProtectionPolicy) AsBasicProtectionPolicy() (BasicProtectionPolicy, bool) {
787 return &afspp, true
788 }
789
790
791 func (afspp *AzureFileShareProtectionPolicy) UnmarshalJSON(body []byte) error {
792 var m map[string]*json.RawMessage
793 err := json.Unmarshal(body, &m)
794 if err != nil {
795 return err
796 }
797 for k, v := range m {
798 switch k {
799 case "workLoadType":
800 if v != nil {
801 var workLoadType WorkloadType
802 err = json.Unmarshal(*v, &workLoadType)
803 if err != nil {
804 return err
805 }
806 afspp.WorkLoadType = workLoadType
807 }
808 case "schedulePolicy":
809 if v != nil {
810 schedulePolicy, err := unmarshalBasicSchedulePolicy(*v)
811 if err != nil {
812 return err
813 }
814 afspp.SchedulePolicy = schedulePolicy
815 }
816 case "retentionPolicy":
817 if v != nil {
818 retentionPolicy, err := unmarshalBasicRetentionPolicy(*v)
819 if err != nil {
820 return err
821 }
822 afspp.RetentionPolicy = retentionPolicy
823 }
824 case "timeZone":
825 if v != nil {
826 var timeZone string
827 err = json.Unmarshal(*v, &timeZone)
828 if err != nil {
829 return err
830 }
831 afspp.TimeZone = &timeZone
832 }
833 case "protectedItemsCount":
834 if v != nil {
835 var protectedItemsCount int32
836 err = json.Unmarshal(*v, &protectedItemsCount)
837 if err != nil {
838 return err
839 }
840 afspp.ProtectedItemsCount = &protectedItemsCount
841 }
842 case "backupManagementType":
843 if v != nil {
844 var backupManagementType ManagementTypeBasicProtectionPolicy
845 err = json.Unmarshal(*v, &backupManagementType)
846 if err != nil {
847 return err
848 }
849 afspp.BackupManagementType = backupManagementType
850 }
851 }
852 }
853
854 return nil
855 }
856
857
858
859 type AzureFileShareProvisionILRRequest struct {
860
861 RecoveryPointID *string `json:"recoveryPointId,omitempty"`
862
863 SourceResourceID *string `json:"sourceResourceId,omitempty"`
864
865 ObjectType ObjectTypeBasicILRRequest `json:"objectType,omitempty"`
866 }
867
868
869 func (afspir AzureFileShareProvisionILRRequest) MarshalJSON() ([]byte, error) {
870 afspir.ObjectType = ObjectTypeAzureFileShareProvisionILRRequest
871 objectMap := make(map[string]interface{})
872 if afspir.RecoveryPointID != nil {
873 objectMap["recoveryPointId"] = afspir.RecoveryPointID
874 }
875 if afspir.SourceResourceID != nil {
876 objectMap["sourceResourceId"] = afspir.SourceResourceID
877 }
878 if afspir.ObjectType != "" {
879 objectMap["objectType"] = afspir.ObjectType
880 }
881 return json.Marshal(objectMap)
882 }
883
884
885 func (afspir AzureFileShareProvisionILRRequest) AsAzureFileShareProvisionILRRequest() (*AzureFileShareProvisionILRRequest, bool) {
886 return &afspir, true
887 }
888
889
890 func (afspir AzureFileShareProvisionILRRequest) AsIaasVMILRRegistrationRequest() (*IaasVMILRRegistrationRequest, bool) {
891 return nil, false
892 }
893
894
895 func (afspir AzureFileShareProvisionILRRequest) AsILRRequest() (*ILRRequest, bool) {
896 return nil, false
897 }
898
899
900 func (afspir AzureFileShareProvisionILRRequest) AsBasicILRRequest() (BasicILRRequest, bool) {
901 return &afspir, true
902 }
903
904
905 type AzureFileShareRecoveryPoint struct {
906
907 RecoveryPointType *string `json:"recoveryPointType,omitempty"`
908
909 RecoveryPointTime *date.Time `json:"recoveryPointTime,omitempty"`
910
911 FileShareSnapshotURI *string `json:"fileShareSnapshotUri,omitempty"`
912
913 RecoveryPointSizeInGB *int32 `json:"recoveryPointSizeInGB,omitempty"`
914
915 ObjectType ObjectTypeBasicRecoveryPoint `json:"objectType,omitempty"`
916 }
917
918
919 func (afsrp AzureFileShareRecoveryPoint) MarshalJSON() ([]byte, error) {
920 afsrp.ObjectType = ObjectTypeAzureFileShareRecoveryPoint
921 objectMap := make(map[string]interface{})
922 if afsrp.ObjectType != "" {
923 objectMap["objectType"] = afsrp.ObjectType
924 }
925 return json.Marshal(objectMap)
926 }
927
928
929 func (afsrp AzureFileShareRecoveryPoint) AsAzureFileShareRecoveryPoint() (*AzureFileShareRecoveryPoint, bool) {
930 return &afsrp, true
931 }
932
933
934 func (afsrp AzureFileShareRecoveryPoint) AsAzureWorkloadPointInTimeRecoveryPoint() (*AzureWorkloadPointInTimeRecoveryPoint, bool) {
935 return nil, false
936 }
937
938
939 func (afsrp AzureFileShareRecoveryPoint) AsBasicAzureWorkloadPointInTimeRecoveryPoint() (BasicAzureWorkloadPointInTimeRecoveryPoint, bool) {
940 return nil, false
941 }
942
943
944 func (afsrp AzureFileShareRecoveryPoint) AsAzureWorkloadRecoveryPoint() (*AzureWorkloadRecoveryPoint, bool) {
945 return nil, false
946 }
947
948
949 func (afsrp AzureFileShareRecoveryPoint) AsBasicAzureWorkloadRecoveryPoint() (BasicAzureWorkloadRecoveryPoint, bool) {
950 return nil, false
951 }
952
953
954 func (afsrp AzureFileShareRecoveryPoint) AsAzureWorkloadSAPHanaPointInTimeRecoveryPoint() (*AzureWorkloadSAPHanaPointInTimeRecoveryPoint, bool) {
955 return nil, false
956 }
957
958
959 func (afsrp AzureFileShareRecoveryPoint) AsAzureWorkloadSAPHanaRecoveryPoint() (*AzureWorkloadSAPHanaRecoveryPoint, bool) {
960 return nil, false
961 }
962
963
964 func (afsrp AzureFileShareRecoveryPoint) AsAzureWorkloadSQLPointInTimeRecoveryPoint() (*AzureWorkloadSQLPointInTimeRecoveryPoint, bool) {
965 return nil, false
966 }
967
968
969 func (afsrp AzureFileShareRecoveryPoint) AsAzureWorkloadSQLRecoveryPoint() (*AzureWorkloadSQLRecoveryPoint, bool) {
970 return nil, false
971 }
972
973
974 func (afsrp AzureFileShareRecoveryPoint) AsBasicAzureWorkloadSQLRecoveryPoint() (BasicAzureWorkloadSQLRecoveryPoint, bool) {
975 return nil, false
976 }
977
978
979 func (afsrp AzureFileShareRecoveryPoint) AsGenericRecoveryPoint() (*GenericRecoveryPoint, bool) {
980 return nil, false
981 }
982
983
984 func (afsrp AzureFileShareRecoveryPoint) AsIaasVMRecoveryPoint() (*IaasVMRecoveryPoint, bool) {
985 return nil, false
986 }
987
988
989 func (afsrp AzureFileShareRecoveryPoint) AsRecoveryPoint() (*RecoveryPoint, bool) {
990 return nil, false
991 }
992
993
994 func (afsrp AzureFileShareRecoveryPoint) AsBasicRecoveryPoint() (BasicRecoveryPoint, bool) {
995 return &afsrp, true
996 }
997
998
999 type AzureFileShareRestoreRequest struct {
1000
1001 RecoveryType RecoveryType `json:"recoveryType,omitempty"`
1002
1003 SourceResourceID *string `json:"sourceResourceId,omitempty"`
1004
1005 CopyOptions CopyOptions `json:"copyOptions,omitempty"`
1006
1007 RestoreRequestType RestoreRequestType `json:"restoreRequestType,omitempty"`
1008
1009 RestoreFileSpecs *[]RestoreFileSpecs `json:"restoreFileSpecs,omitempty"`
1010
1011 TargetDetails *TargetAFSRestoreInfo `json:"targetDetails,omitempty"`
1012
1013 ObjectType ObjectTypeBasicRestoreRequest `json:"objectType,omitempty"`
1014 }
1015
1016
1017 func (afsrr AzureFileShareRestoreRequest) MarshalJSON() ([]byte, error) {
1018 afsrr.ObjectType = ObjectTypeAzureFileShareRestoreRequest
1019 objectMap := make(map[string]interface{})
1020 if afsrr.RecoveryType != "" {
1021 objectMap["recoveryType"] = afsrr.RecoveryType
1022 }
1023 if afsrr.SourceResourceID != nil {
1024 objectMap["sourceResourceId"] = afsrr.SourceResourceID
1025 }
1026 if afsrr.CopyOptions != "" {
1027 objectMap["copyOptions"] = afsrr.CopyOptions
1028 }
1029 if afsrr.RestoreRequestType != "" {
1030 objectMap["restoreRequestType"] = afsrr.RestoreRequestType
1031 }
1032 if afsrr.RestoreFileSpecs != nil {
1033 objectMap["restoreFileSpecs"] = afsrr.RestoreFileSpecs
1034 }
1035 if afsrr.TargetDetails != nil {
1036 objectMap["targetDetails"] = afsrr.TargetDetails
1037 }
1038 if afsrr.ObjectType != "" {
1039 objectMap["objectType"] = afsrr.ObjectType
1040 }
1041 return json.Marshal(objectMap)
1042 }
1043
1044
1045 func (afsrr AzureFileShareRestoreRequest) AsAzureFileShareRestoreRequest() (*AzureFileShareRestoreRequest, bool) {
1046 return &afsrr, true
1047 }
1048
1049
1050 func (afsrr AzureFileShareRestoreRequest) AsAzureWorkloadPointInTimeRestoreRequest() (*AzureWorkloadPointInTimeRestoreRequest, bool) {
1051 return nil, false
1052 }
1053
1054
1055 func (afsrr AzureFileShareRestoreRequest) AsAzureWorkloadRestoreRequest() (*AzureWorkloadRestoreRequest, bool) {
1056 return nil, false
1057 }
1058
1059
1060 func (afsrr AzureFileShareRestoreRequest) AsBasicAzureWorkloadRestoreRequest() (BasicAzureWorkloadRestoreRequest, bool) {
1061 return nil, false
1062 }
1063
1064
1065 func (afsrr AzureFileShareRestoreRequest) AsAzureWorkloadSAPHanaPointInTimeRestoreRequest() (*AzureWorkloadSAPHanaPointInTimeRestoreRequest, bool) {
1066 return nil, false
1067 }
1068
1069
1070 func (afsrr AzureFileShareRestoreRequest) AsAzureWorkloadSAPHanaRestoreRequest() (*AzureWorkloadSAPHanaRestoreRequest, bool) {
1071 return nil, false
1072 }
1073
1074
1075 func (afsrr AzureFileShareRestoreRequest) AsBasicAzureWorkloadSAPHanaRestoreRequest() (BasicAzureWorkloadSAPHanaRestoreRequest, bool) {
1076 return nil, false
1077 }
1078
1079
1080 func (afsrr AzureFileShareRestoreRequest) AsAzureWorkloadSQLPointInTimeRestoreRequest() (*AzureWorkloadSQLPointInTimeRestoreRequest, bool) {
1081 return nil, false
1082 }
1083
1084
1085 func (afsrr AzureFileShareRestoreRequest) AsAzureWorkloadSQLRestoreRequest() (*AzureWorkloadSQLRestoreRequest, bool) {
1086 return nil, false
1087 }
1088
1089
1090 func (afsrr AzureFileShareRestoreRequest) AsBasicAzureWorkloadSQLRestoreRequest() (BasicAzureWorkloadSQLRestoreRequest, bool) {
1091 return nil, false
1092 }
1093
1094
1095 func (afsrr AzureFileShareRestoreRequest) AsIaasVMRestoreRequest() (*IaasVMRestoreRequest, bool) {
1096 return nil, false
1097 }
1098
1099
1100 func (afsrr AzureFileShareRestoreRequest) AsRestoreRequest() (*RestoreRequest, bool) {
1101 return nil, false
1102 }
1103
1104
1105 func (afsrr AzureFileShareRestoreRequest) AsBasicRestoreRequest() (BasicRestoreRequest, bool) {
1106 return &afsrr, true
1107 }
1108
1109
1110
1111 type AzureIaaSClassicComputeVMContainer struct {
1112
1113 VirtualMachineID *string `json:"virtualMachineId,omitempty"`
1114
1115 VirtualMachineVersion *string `json:"virtualMachineVersion,omitempty"`
1116
1117 ResourceGroup *string `json:"resourceGroup,omitempty"`
1118
1119 FriendlyName *string `json:"friendlyName,omitempty"`
1120
1121 BackupManagementType ManagementType `json:"backupManagementType,omitempty"`
1122
1123 RegistrationStatus *string `json:"registrationStatus,omitempty"`
1124
1125 HealthStatus *string `json:"healthStatus,omitempty"`
1126
1127 ContainerType ContainerTypeBasicProtectionContainer `json:"containerType,omitempty"`
1128 }
1129
1130
1131 func (aisccvc AzureIaaSClassicComputeVMContainer) MarshalJSON() ([]byte, error) {
1132 aisccvc.ContainerType = ContainerTypeMicrosoftClassicComputevirtualMachines
1133 objectMap := make(map[string]interface{})
1134 if aisccvc.VirtualMachineID != nil {
1135 objectMap["virtualMachineId"] = aisccvc.VirtualMachineID
1136 }
1137 if aisccvc.VirtualMachineVersion != nil {
1138 objectMap["virtualMachineVersion"] = aisccvc.VirtualMachineVersion
1139 }
1140 if aisccvc.ResourceGroup != nil {
1141 objectMap["resourceGroup"] = aisccvc.ResourceGroup
1142 }
1143 if aisccvc.FriendlyName != nil {
1144 objectMap["friendlyName"] = aisccvc.FriendlyName
1145 }
1146 if aisccvc.BackupManagementType != "" {
1147 objectMap["backupManagementType"] = aisccvc.BackupManagementType
1148 }
1149 if aisccvc.RegistrationStatus != nil {
1150 objectMap["registrationStatus"] = aisccvc.RegistrationStatus
1151 }
1152 if aisccvc.HealthStatus != nil {
1153 objectMap["healthStatus"] = aisccvc.HealthStatus
1154 }
1155 if aisccvc.ContainerType != "" {
1156 objectMap["containerType"] = aisccvc.ContainerType
1157 }
1158 return json.Marshal(objectMap)
1159 }
1160
1161
1162 func (aisccvc AzureIaaSClassicComputeVMContainer) AsAzureBackupServerContainer() (*AzureBackupServerContainer, bool) {
1163 return nil, false
1164 }
1165
1166
1167 func (aisccvc AzureIaaSClassicComputeVMContainer) AsAzureIaaSClassicComputeVMContainer() (*AzureIaaSClassicComputeVMContainer, bool) {
1168 return &aisccvc, true
1169 }
1170
1171
1172 func (aisccvc AzureIaaSClassicComputeVMContainer) AsAzureIaaSComputeVMContainer() (*AzureIaaSComputeVMContainer, bool) {
1173 return nil, false
1174 }
1175
1176
1177 func (aisccvc AzureIaaSClassicComputeVMContainer) AsAzureSQLAGWorkloadContainerProtectionContainer() (*AzureSQLAGWorkloadContainerProtectionContainer, bool) {
1178 return nil, false
1179 }
1180
1181
1182 func (aisccvc AzureIaaSClassicComputeVMContainer) AsAzureSQLContainer() (*AzureSQLContainer, bool) {
1183 return nil, false
1184 }
1185
1186
1187 func (aisccvc AzureIaaSClassicComputeVMContainer) AsAzureStorageContainer() (*AzureStorageContainer, bool) {
1188 return nil, false
1189 }
1190
1191
1192 func (aisccvc AzureIaaSClassicComputeVMContainer) AsAzureVMAppContainerProtectionContainer() (*AzureVMAppContainerProtectionContainer, bool) {
1193 return nil, false
1194 }
1195
1196
1197 func (aisccvc AzureIaaSClassicComputeVMContainer) AsAzureWorkloadContainer() (*AzureWorkloadContainer, bool) {
1198 return nil, false
1199 }
1200
1201
1202 func (aisccvc AzureIaaSClassicComputeVMContainer) AsBasicAzureWorkloadContainer() (BasicAzureWorkloadContainer, bool) {
1203 return nil, false
1204 }
1205
1206
1207 func (aisccvc AzureIaaSClassicComputeVMContainer) AsDpmContainer() (*DpmContainer, bool) {
1208 return nil, false
1209 }
1210
1211
1212 func (aisccvc AzureIaaSClassicComputeVMContainer) AsBasicDpmContainer() (BasicDpmContainer, bool) {
1213 return nil, false
1214 }
1215
1216
1217 func (aisccvc AzureIaaSClassicComputeVMContainer) AsGenericContainer() (*GenericContainer, bool) {
1218 return nil, false
1219 }
1220
1221
1222 func (aisccvc AzureIaaSClassicComputeVMContainer) AsIaaSVMContainer() (*IaaSVMContainer, bool) {
1223 return nil, false
1224 }
1225
1226
1227 func (aisccvc AzureIaaSClassicComputeVMContainer) AsBasicIaaSVMContainer() (BasicIaaSVMContainer, bool) {
1228 return &aisccvc, true
1229 }
1230
1231
1232 func (aisccvc AzureIaaSClassicComputeVMContainer) AsMabContainer() (*MabContainer, bool) {
1233 return nil, false
1234 }
1235
1236
1237 func (aisccvc AzureIaaSClassicComputeVMContainer) AsProtectionContainer() (*ProtectionContainer, bool) {
1238 return nil, false
1239 }
1240
1241
1242 func (aisccvc AzureIaaSClassicComputeVMContainer) AsBasicProtectionContainer() (BasicProtectionContainer, bool) {
1243 return &aisccvc, true
1244 }
1245
1246
1247
1248 type AzureIaaSClassicComputeVMProtectableItem struct {
1249
1250 VirtualMachineID *string `json:"virtualMachineId,omitempty"`
1251
1252 BackupManagementType *string `json:"backupManagementType,omitempty"`
1253
1254 WorkloadType *string `json:"workloadType,omitempty"`
1255
1256 FriendlyName *string `json:"friendlyName,omitempty"`
1257
1258 ProtectionState ProtectionStatus `json:"protectionState,omitempty"`
1259
1260 ProtectableItemType ProtectableItemType `json:"protectableItemType,omitempty"`
1261 }
1262
1263
1264 func (aisccvpi AzureIaaSClassicComputeVMProtectableItem) MarshalJSON() ([]byte, error) {
1265 aisccvpi.ProtectableItemType = ProtectableItemTypeMicrosoftClassicComputevirtualMachines
1266 objectMap := make(map[string]interface{})
1267 if aisccvpi.VirtualMachineID != nil {
1268 objectMap["virtualMachineId"] = aisccvpi.VirtualMachineID
1269 }
1270 if aisccvpi.BackupManagementType != nil {
1271 objectMap["backupManagementType"] = aisccvpi.BackupManagementType
1272 }
1273 if aisccvpi.WorkloadType != nil {
1274 objectMap["workloadType"] = aisccvpi.WorkloadType
1275 }
1276 if aisccvpi.FriendlyName != nil {
1277 objectMap["friendlyName"] = aisccvpi.FriendlyName
1278 }
1279 if aisccvpi.ProtectionState != "" {
1280 objectMap["protectionState"] = aisccvpi.ProtectionState
1281 }
1282 if aisccvpi.ProtectableItemType != "" {
1283 objectMap["protectableItemType"] = aisccvpi.ProtectableItemType
1284 }
1285 return json.Marshal(objectMap)
1286 }
1287
1288
1289 func (aisccvpi AzureIaaSClassicComputeVMProtectableItem) AsAzureFileShareProtectableItem() (*AzureFileShareProtectableItem, bool) {
1290 return nil, false
1291 }
1292
1293
1294 func (aisccvpi AzureIaaSClassicComputeVMProtectableItem) AsAzureIaaSClassicComputeVMProtectableItem() (*AzureIaaSClassicComputeVMProtectableItem, bool) {
1295 return &aisccvpi, true
1296 }
1297
1298
1299 func (aisccvpi AzureIaaSClassicComputeVMProtectableItem) AsAzureIaaSComputeVMProtectableItem() (*AzureIaaSComputeVMProtectableItem, bool) {
1300 return nil, false
1301 }
1302
1303
1304 func (aisccvpi AzureIaaSClassicComputeVMProtectableItem) AsAzureVMWorkloadProtectableItem() (*AzureVMWorkloadProtectableItem, bool) {
1305 return nil, false
1306 }
1307
1308
1309 func (aisccvpi AzureIaaSClassicComputeVMProtectableItem) AsBasicAzureVMWorkloadProtectableItem() (BasicAzureVMWorkloadProtectableItem, bool) {
1310 return nil, false
1311 }
1312
1313
1314 func (aisccvpi AzureIaaSClassicComputeVMProtectableItem) AsAzureVMWorkloadSAPAseSystemProtectableItem() (*AzureVMWorkloadSAPAseSystemProtectableItem, bool) {
1315 return nil, false
1316 }
1317
1318
1319 func (aisccvpi AzureIaaSClassicComputeVMProtectableItem) AsAzureVMWorkloadSAPHanaDatabaseProtectableItem() (*AzureVMWorkloadSAPHanaDatabaseProtectableItem, bool) {
1320 return nil, false
1321 }
1322
1323
1324 func (aisccvpi AzureIaaSClassicComputeVMProtectableItem) AsAzureVMWorkloadSAPHanaSystemProtectableItem() (*AzureVMWorkloadSAPHanaSystemProtectableItem, bool) {
1325 return nil, false
1326 }
1327
1328
1329 func (aisccvpi AzureIaaSClassicComputeVMProtectableItem) AsAzureVMWorkloadSQLAvailabilityGroupProtectableItem() (*AzureVMWorkloadSQLAvailabilityGroupProtectableItem, bool) {
1330 return nil, false
1331 }
1332
1333
1334 func (aisccvpi AzureIaaSClassicComputeVMProtectableItem) AsAzureVMWorkloadSQLDatabaseProtectableItem() (*AzureVMWorkloadSQLDatabaseProtectableItem, bool) {
1335 return nil, false
1336 }
1337
1338
1339 func (aisccvpi AzureIaaSClassicComputeVMProtectableItem) AsAzureVMWorkloadSQLInstanceProtectableItem() (*AzureVMWorkloadSQLInstanceProtectableItem, bool) {
1340 return nil, false
1341 }
1342
1343
1344 func (aisccvpi AzureIaaSClassicComputeVMProtectableItem) AsIaaSVMProtectableItem() (*IaaSVMProtectableItem, bool) {
1345 return nil, false
1346 }
1347
1348
1349 func (aisccvpi AzureIaaSClassicComputeVMProtectableItem) AsBasicIaaSVMProtectableItem() (BasicIaaSVMProtectableItem, bool) {
1350 return &aisccvpi, true
1351 }
1352
1353
1354 func (aisccvpi AzureIaaSClassicComputeVMProtectableItem) AsWorkloadProtectableItem() (*WorkloadProtectableItem, bool) {
1355 return nil, false
1356 }
1357
1358
1359 func (aisccvpi AzureIaaSClassicComputeVMProtectableItem) AsBasicWorkloadProtectableItem() (BasicWorkloadProtectableItem, bool) {
1360 return &aisccvpi, true
1361 }
1362
1363
1364
1365 type AzureIaaSClassicComputeVMProtectedItem struct {
1366
1367 FriendlyName *string `json:"friendlyName,omitempty"`
1368
1369 VirtualMachineID *string `json:"virtualMachineId,omitempty"`
1370
1371 ProtectionStatus *string `json:"protectionStatus,omitempty"`
1372
1373 ProtectionState ProtectionState `json:"protectionState,omitempty"`
1374
1375 HealthStatus HealthStatus `json:"healthStatus,omitempty"`
1376
1377 HealthDetails *[]AzureIaaSVMHealthDetails `json:"healthDetails,omitempty"`
1378
1379 KpisHealths map[string]*KPIResourceHealthDetails `json:"kpisHealths"`
1380
1381 LastBackupStatus *string `json:"lastBackupStatus,omitempty"`
1382
1383 LastBackupTime *date.Time `json:"lastBackupTime,omitempty"`
1384
1385 ProtectedItemDataID *string `json:"protectedItemDataId,omitempty"`
1386
1387 ExtendedInfo *AzureIaaSVMProtectedItemExtendedInfo `json:"extendedInfo,omitempty"`
1388 ExtendedProperties *ExtendedProperties `json:"extendedProperties,omitempty"`
1389
1390 BackupManagementType ManagementType `json:"backupManagementType,omitempty"`
1391
1392 WorkloadType DataSourceType `json:"workloadType,omitempty"`
1393
1394 ContainerName *string `json:"containerName,omitempty"`
1395
1396 SourceResourceID *string `json:"sourceResourceId,omitempty"`
1397
1398 PolicyID *string `json:"policyId,omitempty"`
1399
1400 LastRecoveryPoint *date.Time `json:"lastRecoveryPoint,omitempty"`
1401
1402 BackupSetName *string `json:"backupSetName,omitempty"`
1403
1404 CreateMode CreateMode `json:"createMode,omitempty"`
1405
1406 DeferredDeleteTimeInUTC *date.Time `json:"deferredDeleteTimeInUTC,omitempty"`
1407
1408 IsScheduledForDeferredDelete *bool `json:"isScheduledForDeferredDelete,omitempty"`
1409
1410 DeferredDeleteTimeRemaining *string `json:"deferredDeleteTimeRemaining,omitempty"`
1411
1412 IsDeferredDeleteScheduleUpcoming *bool `json:"isDeferredDeleteScheduleUpcoming,omitempty"`
1413
1414 IsRehydrate *bool `json:"isRehydrate,omitempty"`
1415
1416 ProtectedItemType ProtectedItemType `json:"protectedItemType,omitempty"`
1417 }
1418
1419
1420 func (aisccvpi AzureIaaSClassicComputeVMProtectedItem) MarshalJSON() ([]byte, error) {
1421 aisccvpi.ProtectedItemType = ProtectedItemTypeMicrosoftClassicComputevirtualMachines
1422 objectMap := make(map[string]interface{})
1423 if aisccvpi.FriendlyName != nil {
1424 objectMap["friendlyName"] = aisccvpi.FriendlyName
1425 }
1426 if aisccvpi.VirtualMachineID != nil {
1427 objectMap["virtualMachineId"] = aisccvpi.VirtualMachineID
1428 }
1429 if aisccvpi.ProtectionStatus != nil {
1430 objectMap["protectionStatus"] = aisccvpi.ProtectionStatus
1431 }
1432 if aisccvpi.ProtectionState != "" {
1433 objectMap["protectionState"] = aisccvpi.ProtectionState
1434 }
1435 if aisccvpi.HealthStatus != "" {
1436 objectMap["healthStatus"] = aisccvpi.HealthStatus
1437 }
1438 if aisccvpi.HealthDetails != nil {
1439 objectMap["healthDetails"] = aisccvpi.HealthDetails
1440 }
1441 if aisccvpi.KpisHealths != nil {
1442 objectMap["kpisHealths"] = aisccvpi.KpisHealths
1443 }
1444 if aisccvpi.LastBackupStatus != nil {
1445 objectMap["lastBackupStatus"] = aisccvpi.LastBackupStatus
1446 }
1447 if aisccvpi.LastBackupTime != nil {
1448 objectMap["lastBackupTime"] = aisccvpi.LastBackupTime
1449 }
1450 if aisccvpi.ProtectedItemDataID != nil {
1451 objectMap["protectedItemDataId"] = aisccvpi.ProtectedItemDataID
1452 }
1453 if aisccvpi.ExtendedInfo != nil {
1454 objectMap["extendedInfo"] = aisccvpi.ExtendedInfo
1455 }
1456 if aisccvpi.ExtendedProperties != nil {
1457 objectMap["extendedProperties"] = aisccvpi.ExtendedProperties
1458 }
1459 if aisccvpi.BackupManagementType != "" {
1460 objectMap["backupManagementType"] = aisccvpi.BackupManagementType
1461 }
1462 if aisccvpi.WorkloadType != "" {
1463 objectMap["workloadType"] = aisccvpi.WorkloadType
1464 }
1465 if aisccvpi.ContainerName != nil {
1466 objectMap["containerName"] = aisccvpi.ContainerName
1467 }
1468 if aisccvpi.SourceResourceID != nil {
1469 objectMap["sourceResourceId"] = aisccvpi.SourceResourceID
1470 }
1471 if aisccvpi.PolicyID != nil {
1472 objectMap["policyId"] = aisccvpi.PolicyID
1473 }
1474 if aisccvpi.LastRecoveryPoint != nil {
1475 objectMap["lastRecoveryPoint"] = aisccvpi.LastRecoveryPoint
1476 }
1477 if aisccvpi.BackupSetName != nil {
1478 objectMap["backupSetName"] = aisccvpi.BackupSetName
1479 }
1480 if aisccvpi.CreateMode != "" {
1481 objectMap["createMode"] = aisccvpi.CreateMode
1482 }
1483 if aisccvpi.DeferredDeleteTimeInUTC != nil {
1484 objectMap["deferredDeleteTimeInUTC"] = aisccvpi.DeferredDeleteTimeInUTC
1485 }
1486 if aisccvpi.IsScheduledForDeferredDelete != nil {
1487 objectMap["isScheduledForDeferredDelete"] = aisccvpi.IsScheduledForDeferredDelete
1488 }
1489 if aisccvpi.DeferredDeleteTimeRemaining != nil {
1490 objectMap["deferredDeleteTimeRemaining"] = aisccvpi.DeferredDeleteTimeRemaining
1491 }
1492 if aisccvpi.IsDeferredDeleteScheduleUpcoming != nil {
1493 objectMap["isDeferredDeleteScheduleUpcoming"] = aisccvpi.IsDeferredDeleteScheduleUpcoming
1494 }
1495 if aisccvpi.IsRehydrate != nil {
1496 objectMap["isRehydrate"] = aisccvpi.IsRehydrate
1497 }
1498 if aisccvpi.ProtectedItemType != "" {
1499 objectMap["protectedItemType"] = aisccvpi.ProtectedItemType
1500 }
1501 return json.Marshal(objectMap)
1502 }
1503
1504
1505 func (aisccvpi AzureIaaSClassicComputeVMProtectedItem) AsAzureFileshareProtectedItem() (*AzureFileshareProtectedItem, bool) {
1506 return nil, false
1507 }
1508
1509
1510 func (aisccvpi AzureIaaSClassicComputeVMProtectedItem) AsAzureIaaSClassicComputeVMProtectedItem() (*AzureIaaSClassicComputeVMProtectedItem, bool) {
1511 return &aisccvpi, true
1512 }
1513
1514
1515 func (aisccvpi AzureIaaSClassicComputeVMProtectedItem) AsAzureIaaSComputeVMProtectedItem() (*AzureIaaSComputeVMProtectedItem, bool) {
1516 return nil, false
1517 }
1518
1519
1520 func (aisccvpi AzureIaaSClassicComputeVMProtectedItem) AsAzureIaaSVMProtectedItem() (*AzureIaaSVMProtectedItem, bool) {
1521 return nil, false
1522 }
1523
1524
1525 func (aisccvpi AzureIaaSClassicComputeVMProtectedItem) AsBasicAzureIaaSVMProtectedItem() (BasicAzureIaaSVMProtectedItem, bool) {
1526 return &aisccvpi, true
1527 }
1528
1529
1530 func (aisccvpi AzureIaaSClassicComputeVMProtectedItem) AsAzureSQLProtectedItem() (*AzureSQLProtectedItem, bool) {
1531 return nil, false
1532 }
1533
1534
1535 func (aisccvpi AzureIaaSClassicComputeVMProtectedItem) AsAzureVMWorkloadProtectedItem() (*AzureVMWorkloadProtectedItem, bool) {
1536 return nil, false
1537 }
1538
1539
1540 func (aisccvpi AzureIaaSClassicComputeVMProtectedItem) AsBasicAzureVMWorkloadProtectedItem() (BasicAzureVMWorkloadProtectedItem, bool) {
1541 return nil, false
1542 }
1543
1544
1545 func (aisccvpi AzureIaaSClassicComputeVMProtectedItem) AsAzureVMWorkloadSAPAseDatabaseProtectedItem() (*AzureVMWorkloadSAPAseDatabaseProtectedItem, bool) {
1546 return nil, false
1547 }
1548
1549
1550 func (aisccvpi AzureIaaSClassicComputeVMProtectedItem) AsAzureVMWorkloadSAPHanaDatabaseProtectedItem() (*AzureVMWorkloadSAPHanaDatabaseProtectedItem, bool) {
1551 return nil, false
1552 }
1553
1554
1555 func (aisccvpi AzureIaaSClassicComputeVMProtectedItem) AsAzureVMWorkloadSQLDatabaseProtectedItem() (*AzureVMWorkloadSQLDatabaseProtectedItem, bool) {
1556 return nil, false
1557 }
1558
1559
1560 func (aisccvpi AzureIaaSClassicComputeVMProtectedItem) AsDPMProtectedItem() (*DPMProtectedItem, bool) {
1561 return nil, false
1562 }
1563
1564
1565 func (aisccvpi AzureIaaSClassicComputeVMProtectedItem) AsGenericProtectedItem() (*GenericProtectedItem, bool) {
1566 return nil, false
1567 }
1568
1569
1570 func (aisccvpi AzureIaaSClassicComputeVMProtectedItem) AsMabFileFolderProtectedItem() (*MabFileFolderProtectedItem, bool) {
1571 return nil, false
1572 }
1573
1574
1575 func (aisccvpi AzureIaaSClassicComputeVMProtectedItem) AsProtectedItem() (*ProtectedItem, bool) {
1576 return nil, false
1577 }
1578
1579
1580 func (aisccvpi AzureIaaSClassicComputeVMProtectedItem) AsBasicProtectedItem() (BasicProtectedItem, bool) {
1581 return &aisccvpi, true
1582 }
1583
1584
1585
1586 type AzureIaaSComputeVMContainer struct {
1587
1588 VirtualMachineID *string `json:"virtualMachineId,omitempty"`
1589
1590 VirtualMachineVersion *string `json:"virtualMachineVersion,omitempty"`
1591
1592 ResourceGroup *string `json:"resourceGroup,omitempty"`
1593
1594 FriendlyName *string `json:"friendlyName,omitempty"`
1595
1596 BackupManagementType ManagementType `json:"backupManagementType,omitempty"`
1597
1598 RegistrationStatus *string `json:"registrationStatus,omitempty"`
1599
1600 HealthStatus *string `json:"healthStatus,omitempty"`
1601
1602 ContainerType ContainerTypeBasicProtectionContainer `json:"containerType,omitempty"`
1603 }
1604
1605
1606 func (aiscvc AzureIaaSComputeVMContainer) MarshalJSON() ([]byte, error) {
1607 aiscvc.ContainerType = ContainerTypeMicrosoftComputevirtualMachines
1608 objectMap := make(map[string]interface{})
1609 if aiscvc.VirtualMachineID != nil {
1610 objectMap["virtualMachineId"] = aiscvc.VirtualMachineID
1611 }
1612 if aiscvc.VirtualMachineVersion != nil {
1613 objectMap["virtualMachineVersion"] = aiscvc.VirtualMachineVersion
1614 }
1615 if aiscvc.ResourceGroup != nil {
1616 objectMap["resourceGroup"] = aiscvc.ResourceGroup
1617 }
1618 if aiscvc.FriendlyName != nil {
1619 objectMap["friendlyName"] = aiscvc.FriendlyName
1620 }
1621 if aiscvc.BackupManagementType != "" {
1622 objectMap["backupManagementType"] = aiscvc.BackupManagementType
1623 }
1624 if aiscvc.RegistrationStatus != nil {
1625 objectMap["registrationStatus"] = aiscvc.RegistrationStatus
1626 }
1627 if aiscvc.HealthStatus != nil {
1628 objectMap["healthStatus"] = aiscvc.HealthStatus
1629 }
1630 if aiscvc.ContainerType != "" {
1631 objectMap["containerType"] = aiscvc.ContainerType
1632 }
1633 return json.Marshal(objectMap)
1634 }
1635
1636
1637 func (aiscvc AzureIaaSComputeVMContainer) AsAzureBackupServerContainer() (*AzureBackupServerContainer, bool) {
1638 return nil, false
1639 }
1640
1641
1642 func (aiscvc AzureIaaSComputeVMContainer) AsAzureIaaSClassicComputeVMContainer() (*AzureIaaSClassicComputeVMContainer, bool) {
1643 return nil, false
1644 }
1645
1646
1647 func (aiscvc AzureIaaSComputeVMContainer) AsAzureIaaSComputeVMContainer() (*AzureIaaSComputeVMContainer, bool) {
1648 return &aiscvc, true
1649 }
1650
1651
1652 func (aiscvc AzureIaaSComputeVMContainer) AsAzureSQLAGWorkloadContainerProtectionContainer() (*AzureSQLAGWorkloadContainerProtectionContainer, bool) {
1653 return nil, false
1654 }
1655
1656
1657 func (aiscvc AzureIaaSComputeVMContainer) AsAzureSQLContainer() (*AzureSQLContainer, bool) {
1658 return nil, false
1659 }
1660
1661
1662 func (aiscvc AzureIaaSComputeVMContainer) AsAzureStorageContainer() (*AzureStorageContainer, bool) {
1663 return nil, false
1664 }
1665
1666
1667 func (aiscvc AzureIaaSComputeVMContainer) AsAzureVMAppContainerProtectionContainer() (*AzureVMAppContainerProtectionContainer, bool) {
1668 return nil, false
1669 }
1670
1671
1672 func (aiscvc AzureIaaSComputeVMContainer) AsAzureWorkloadContainer() (*AzureWorkloadContainer, bool) {
1673 return nil, false
1674 }
1675
1676
1677 func (aiscvc AzureIaaSComputeVMContainer) AsBasicAzureWorkloadContainer() (BasicAzureWorkloadContainer, bool) {
1678 return nil, false
1679 }
1680
1681
1682 func (aiscvc AzureIaaSComputeVMContainer) AsDpmContainer() (*DpmContainer, bool) {
1683 return nil, false
1684 }
1685
1686
1687 func (aiscvc AzureIaaSComputeVMContainer) AsBasicDpmContainer() (BasicDpmContainer, bool) {
1688 return nil, false
1689 }
1690
1691
1692 func (aiscvc AzureIaaSComputeVMContainer) AsGenericContainer() (*GenericContainer, bool) {
1693 return nil, false
1694 }
1695
1696
1697 func (aiscvc AzureIaaSComputeVMContainer) AsIaaSVMContainer() (*IaaSVMContainer, bool) {
1698 return nil, false
1699 }
1700
1701
1702 func (aiscvc AzureIaaSComputeVMContainer) AsBasicIaaSVMContainer() (BasicIaaSVMContainer, bool) {
1703 return &aiscvc, true
1704 }
1705
1706
1707 func (aiscvc AzureIaaSComputeVMContainer) AsMabContainer() (*MabContainer, bool) {
1708 return nil, false
1709 }
1710
1711
1712 func (aiscvc AzureIaaSComputeVMContainer) AsProtectionContainer() (*ProtectionContainer, bool) {
1713 return nil, false
1714 }
1715
1716
1717 func (aiscvc AzureIaaSComputeVMContainer) AsBasicProtectionContainer() (BasicProtectionContainer, bool) {
1718 return &aiscvc, true
1719 }
1720
1721
1722
1723 type AzureIaaSComputeVMProtectableItem struct {
1724
1725 VirtualMachineID *string `json:"virtualMachineId,omitempty"`
1726
1727 BackupManagementType *string `json:"backupManagementType,omitempty"`
1728
1729 WorkloadType *string `json:"workloadType,omitempty"`
1730
1731 FriendlyName *string `json:"friendlyName,omitempty"`
1732
1733 ProtectionState ProtectionStatus `json:"protectionState,omitempty"`
1734
1735 ProtectableItemType ProtectableItemType `json:"protectableItemType,omitempty"`
1736 }
1737
1738
1739 func (aiscvpi AzureIaaSComputeVMProtectableItem) MarshalJSON() ([]byte, error) {
1740 aiscvpi.ProtectableItemType = ProtectableItemTypeMicrosoftComputevirtualMachines
1741 objectMap := make(map[string]interface{})
1742 if aiscvpi.VirtualMachineID != nil {
1743 objectMap["virtualMachineId"] = aiscvpi.VirtualMachineID
1744 }
1745 if aiscvpi.BackupManagementType != nil {
1746 objectMap["backupManagementType"] = aiscvpi.BackupManagementType
1747 }
1748 if aiscvpi.WorkloadType != nil {
1749 objectMap["workloadType"] = aiscvpi.WorkloadType
1750 }
1751 if aiscvpi.FriendlyName != nil {
1752 objectMap["friendlyName"] = aiscvpi.FriendlyName
1753 }
1754 if aiscvpi.ProtectionState != "" {
1755 objectMap["protectionState"] = aiscvpi.ProtectionState
1756 }
1757 if aiscvpi.ProtectableItemType != "" {
1758 objectMap["protectableItemType"] = aiscvpi.ProtectableItemType
1759 }
1760 return json.Marshal(objectMap)
1761 }
1762
1763
1764 func (aiscvpi AzureIaaSComputeVMProtectableItem) AsAzureFileShareProtectableItem() (*AzureFileShareProtectableItem, bool) {
1765 return nil, false
1766 }
1767
1768
1769 func (aiscvpi AzureIaaSComputeVMProtectableItem) AsAzureIaaSClassicComputeVMProtectableItem() (*AzureIaaSClassicComputeVMProtectableItem, bool) {
1770 return nil, false
1771 }
1772
1773
1774 func (aiscvpi AzureIaaSComputeVMProtectableItem) AsAzureIaaSComputeVMProtectableItem() (*AzureIaaSComputeVMProtectableItem, bool) {
1775 return &aiscvpi, true
1776 }
1777
1778
1779 func (aiscvpi AzureIaaSComputeVMProtectableItem) AsAzureVMWorkloadProtectableItem() (*AzureVMWorkloadProtectableItem, bool) {
1780 return nil, false
1781 }
1782
1783
1784 func (aiscvpi AzureIaaSComputeVMProtectableItem) AsBasicAzureVMWorkloadProtectableItem() (BasicAzureVMWorkloadProtectableItem, bool) {
1785 return nil, false
1786 }
1787
1788
1789 func (aiscvpi AzureIaaSComputeVMProtectableItem) AsAzureVMWorkloadSAPAseSystemProtectableItem() (*AzureVMWorkloadSAPAseSystemProtectableItem, bool) {
1790 return nil, false
1791 }
1792
1793
1794 func (aiscvpi AzureIaaSComputeVMProtectableItem) AsAzureVMWorkloadSAPHanaDatabaseProtectableItem() (*AzureVMWorkloadSAPHanaDatabaseProtectableItem, bool) {
1795 return nil, false
1796 }
1797
1798
1799 func (aiscvpi AzureIaaSComputeVMProtectableItem) AsAzureVMWorkloadSAPHanaSystemProtectableItem() (*AzureVMWorkloadSAPHanaSystemProtectableItem, bool) {
1800 return nil, false
1801 }
1802
1803
1804 func (aiscvpi AzureIaaSComputeVMProtectableItem) AsAzureVMWorkloadSQLAvailabilityGroupProtectableItem() (*AzureVMWorkloadSQLAvailabilityGroupProtectableItem, bool) {
1805 return nil, false
1806 }
1807
1808
1809 func (aiscvpi AzureIaaSComputeVMProtectableItem) AsAzureVMWorkloadSQLDatabaseProtectableItem() (*AzureVMWorkloadSQLDatabaseProtectableItem, bool) {
1810 return nil, false
1811 }
1812
1813
1814 func (aiscvpi AzureIaaSComputeVMProtectableItem) AsAzureVMWorkloadSQLInstanceProtectableItem() (*AzureVMWorkloadSQLInstanceProtectableItem, bool) {
1815 return nil, false
1816 }
1817
1818
1819 func (aiscvpi AzureIaaSComputeVMProtectableItem) AsIaaSVMProtectableItem() (*IaaSVMProtectableItem, bool) {
1820 return nil, false
1821 }
1822
1823
1824 func (aiscvpi AzureIaaSComputeVMProtectableItem) AsBasicIaaSVMProtectableItem() (BasicIaaSVMProtectableItem, bool) {
1825 return &aiscvpi, true
1826 }
1827
1828
1829 func (aiscvpi AzureIaaSComputeVMProtectableItem) AsWorkloadProtectableItem() (*WorkloadProtectableItem, bool) {
1830 return nil, false
1831 }
1832
1833
1834 func (aiscvpi AzureIaaSComputeVMProtectableItem) AsBasicWorkloadProtectableItem() (BasicWorkloadProtectableItem, bool) {
1835 return &aiscvpi, true
1836 }
1837
1838
1839
1840 type AzureIaaSComputeVMProtectedItem struct {
1841
1842 FriendlyName *string `json:"friendlyName,omitempty"`
1843
1844 VirtualMachineID *string `json:"virtualMachineId,omitempty"`
1845
1846 ProtectionStatus *string `json:"protectionStatus,omitempty"`
1847
1848 ProtectionState ProtectionState `json:"protectionState,omitempty"`
1849
1850 HealthStatus HealthStatus `json:"healthStatus,omitempty"`
1851
1852 HealthDetails *[]AzureIaaSVMHealthDetails `json:"healthDetails,omitempty"`
1853
1854 KpisHealths map[string]*KPIResourceHealthDetails `json:"kpisHealths"`
1855
1856 LastBackupStatus *string `json:"lastBackupStatus,omitempty"`
1857
1858 LastBackupTime *date.Time `json:"lastBackupTime,omitempty"`
1859
1860 ProtectedItemDataID *string `json:"protectedItemDataId,omitempty"`
1861
1862 ExtendedInfo *AzureIaaSVMProtectedItemExtendedInfo `json:"extendedInfo,omitempty"`
1863 ExtendedProperties *ExtendedProperties `json:"extendedProperties,omitempty"`
1864
1865 BackupManagementType ManagementType `json:"backupManagementType,omitempty"`
1866
1867 WorkloadType DataSourceType `json:"workloadType,omitempty"`
1868
1869 ContainerName *string `json:"containerName,omitempty"`
1870
1871 SourceResourceID *string `json:"sourceResourceId,omitempty"`
1872
1873 PolicyID *string `json:"policyId,omitempty"`
1874
1875 LastRecoveryPoint *date.Time `json:"lastRecoveryPoint,omitempty"`
1876
1877 BackupSetName *string `json:"backupSetName,omitempty"`
1878
1879 CreateMode CreateMode `json:"createMode,omitempty"`
1880
1881 DeferredDeleteTimeInUTC *date.Time `json:"deferredDeleteTimeInUTC,omitempty"`
1882
1883 IsScheduledForDeferredDelete *bool `json:"isScheduledForDeferredDelete,omitempty"`
1884
1885 DeferredDeleteTimeRemaining *string `json:"deferredDeleteTimeRemaining,omitempty"`
1886
1887 IsDeferredDeleteScheduleUpcoming *bool `json:"isDeferredDeleteScheduleUpcoming,omitempty"`
1888
1889 IsRehydrate *bool `json:"isRehydrate,omitempty"`
1890
1891 ProtectedItemType ProtectedItemType `json:"protectedItemType,omitempty"`
1892 }
1893
1894
1895 func (aiscvpi AzureIaaSComputeVMProtectedItem) MarshalJSON() ([]byte, error) {
1896 aiscvpi.ProtectedItemType = ProtectedItemTypeMicrosoftComputevirtualMachines
1897 objectMap := make(map[string]interface{})
1898 if aiscvpi.FriendlyName != nil {
1899 objectMap["friendlyName"] = aiscvpi.FriendlyName
1900 }
1901 if aiscvpi.VirtualMachineID != nil {
1902 objectMap["virtualMachineId"] = aiscvpi.VirtualMachineID
1903 }
1904 if aiscvpi.ProtectionStatus != nil {
1905 objectMap["protectionStatus"] = aiscvpi.ProtectionStatus
1906 }
1907 if aiscvpi.ProtectionState != "" {
1908 objectMap["protectionState"] = aiscvpi.ProtectionState
1909 }
1910 if aiscvpi.HealthStatus != "" {
1911 objectMap["healthStatus"] = aiscvpi.HealthStatus
1912 }
1913 if aiscvpi.HealthDetails != nil {
1914 objectMap["healthDetails"] = aiscvpi.HealthDetails
1915 }
1916 if aiscvpi.KpisHealths != nil {
1917 objectMap["kpisHealths"] = aiscvpi.KpisHealths
1918 }
1919 if aiscvpi.LastBackupStatus != nil {
1920 objectMap["lastBackupStatus"] = aiscvpi.LastBackupStatus
1921 }
1922 if aiscvpi.LastBackupTime != nil {
1923 objectMap["lastBackupTime"] = aiscvpi.LastBackupTime
1924 }
1925 if aiscvpi.ProtectedItemDataID != nil {
1926 objectMap["protectedItemDataId"] = aiscvpi.ProtectedItemDataID
1927 }
1928 if aiscvpi.ExtendedInfo != nil {
1929 objectMap["extendedInfo"] = aiscvpi.ExtendedInfo
1930 }
1931 if aiscvpi.ExtendedProperties != nil {
1932 objectMap["extendedProperties"] = aiscvpi.ExtendedProperties
1933 }
1934 if aiscvpi.BackupManagementType != "" {
1935 objectMap["backupManagementType"] = aiscvpi.BackupManagementType
1936 }
1937 if aiscvpi.WorkloadType != "" {
1938 objectMap["workloadType"] = aiscvpi.WorkloadType
1939 }
1940 if aiscvpi.ContainerName != nil {
1941 objectMap["containerName"] = aiscvpi.ContainerName
1942 }
1943 if aiscvpi.SourceResourceID != nil {
1944 objectMap["sourceResourceId"] = aiscvpi.SourceResourceID
1945 }
1946 if aiscvpi.PolicyID != nil {
1947 objectMap["policyId"] = aiscvpi.PolicyID
1948 }
1949 if aiscvpi.LastRecoveryPoint != nil {
1950 objectMap["lastRecoveryPoint"] = aiscvpi.LastRecoveryPoint
1951 }
1952 if aiscvpi.BackupSetName != nil {
1953 objectMap["backupSetName"] = aiscvpi.BackupSetName
1954 }
1955 if aiscvpi.CreateMode != "" {
1956 objectMap["createMode"] = aiscvpi.CreateMode
1957 }
1958 if aiscvpi.DeferredDeleteTimeInUTC != nil {
1959 objectMap["deferredDeleteTimeInUTC"] = aiscvpi.DeferredDeleteTimeInUTC
1960 }
1961 if aiscvpi.IsScheduledForDeferredDelete != nil {
1962 objectMap["isScheduledForDeferredDelete"] = aiscvpi.IsScheduledForDeferredDelete
1963 }
1964 if aiscvpi.DeferredDeleteTimeRemaining != nil {
1965 objectMap["deferredDeleteTimeRemaining"] = aiscvpi.DeferredDeleteTimeRemaining
1966 }
1967 if aiscvpi.IsDeferredDeleteScheduleUpcoming != nil {
1968 objectMap["isDeferredDeleteScheduleUpcoming"] = aiscvpi.IsDeferredDeleteScheduleUpcoming
1969 }
1970 if aiscvpi.IsRehydrate != nil {
1971 objectMap["isRehydrate"] = aiscvpi.IsRehydrate
1972 }
1973 if aiscvpi.ProtectedItemType != "" {
1974 objectMap["protectedItemType"] = aiscvpi.ProtectedItemType
1975 }
1976 return json.Marshal(objectMap)
1977 }
1978
1979
1980 func (aiscvpi AzureIaaSComputeVMProtectedItem) AsAzureFileshareProtectedItem() (*AzureFileshareProtectedItem, bool) {
1981 return nil, false
1982 }
1983
1984
1985 func (aiscvpi AzureIaaSComputeVMProtectedItem) AsAzureIaaSClassicComputeVMProtectedItem() (*AzureIaaSClassicComputeVMProtectedItem, bool) {
1986 return nil, false
1987 }
1988
1989
1990 func (aiscvpi AzureIaaSComputeVMProtectedItem) AsAzureIaaSComputeVMProtectedItem() (*AzureIaaSComputeVMProtectedItem, bool) {
1991 return &aiscvpi, true
1992 }
1993
1994
1995 func (aiscvpi AzureIaaSComputeVMProtectedItem) AsAzureIaaSVMProtectedItem() (*AzureIaaSVMProtectedItem, bool) {
1996 return nil, false
1997 }
1998
1999
2000 func (aiscvpi AzureIaaSComputeVMProtectedItem) AsBasicAzureIaaSVMProtectedItem() (BasicAzureIaaSVMProtectedItem, bool) {
2001 return &aiscvpi, true
2002 }
2003
2004
2005 func (aiscvpi AzureIaaSComputeVMProtectedItem) AsAzureSQLProtectedItem() (*AzureSQLProtectedItem, bool) {
2006 return nil, false
2007 }
2008
2009
2010 func (aiscvpi AzureIaaSComputeVMProtectedItem) AsAzureVMWorkloadProtectedItem() (*AzureVMWorkloadProtectedItem, bool) {
2011 return nil, false
2012 }
2013
2014
2015 func (aiscvpi AzureIaaSComputeVMProtectedItem) AsBasicAzureVMWorkloadProtectedItem() (BasicAzureVMWorkloadProtectedItem, bool) {
2016 return nil, false
2017 }
2018
2019
2020 func (aiscvpi AzureIaaSComputeVMProtectedItem) AsAzureVMWorkloadSAPAseDatabaseProtectedItem() (*AzureVMWorkloadSAPAseDatabaseProtectedItem, bool) {
2021 return nil, false
2022 }
2023
2024
2025 func (aiscvpi AzureIaaSComputeVMProtectedItem) AsAzureVMWorkloadSAPHanaDatabaseProtectedItem() (*AzureVMWorkloadSAPHanaDatabaseProtectedItem, bool) {
2026 return nil, false
2027 }
2028
2029
2030 func (aiscvpi AzureIaaSComputeVMProtectedItem) AsAzureVMWorkloadSQLDatabaseProtectedItem() (*AzureVMWorkloadSQLDatabaseProtectedItem, bool) {
2031 return nil, false
2032 }
2033
2034
2035 func (aiscvpi AzureIaaSComputeVMProtectedItem) AsDPMProtectedItem() (*DPMProtectedItem, bool) {
2036 return nil, false
2037 }
2038
2039
2040 func (aiscvpi AzureIaaSComputeVMProtectedItem) AsGenericProtectedItem() (*GenericProtectedItem, bool) {
2041 return nil, false
2042 }
2043
2044
2045 func (aiscvpi AzureIaaSComputeVMProtectedItem) AsMabFileFolderProtectedItem() (*MabFileFolderProtectedItem, bool) {
2046 return nil, false
2047 }
2048
2049
2050 func (aiscvpi AzureIaaSComputeVMProtectedItem) AsProtectedItem() (*ProtectedItem, bool) {
2051 return nil, false
2052 }
2053
2054
2055 func (aiscvpi AzureIaaSComputeVMProtectedItem) AsBasicProtectedItem() (BasicProtectedItem, bool) {
2056 return &aiscvpi, true
2057 }
2058
2059
2060 type AzureIaaSVMErrorInfo struct {
2061
2062 ErrorCode *int32 `json:"errorCode,omitempty"`
2063
2064 ErrorTitle *string `json:"errorTitle,omitempty"`
2065
2066 ErrorString *string `json:"errorString,omitempty"`
2067
2068 Recommendations *[]string `json:"recommendations,omitempty"`
2069 }
2070
2071
2072 func (aisei AzureIaaSVMErrorInfo) MarshalJSON() ([]byte, error) {
2073 objectMap := make(map[string]interface{})
2074 return json.Marshal(objectMap)
2075 }
2076
2077
2078 type AzureIaaSVMHealthDetails struct {
2079
2080 Code *int32 `json:"code,omitempty"`
2081
2082 Title *string `json:"title,omitempty"`
2083
2084 Message *string `json:"message,omitempty"`
2085
2086 Recommendations *[]string `json:"recommendations,omitempty"`
2087 }
2088
2089
2090 func (aishd AzureIaaSVMHealthDetails) MarshalJSON() ([]byte, error) {
2091 objectMap := make(map[string]interface{})
2092 return json.Marshal(objectMap)
2093 }
2094
2095
2096 type AzureIaaSVMJob struct {
2097
2098 Duration *string `json:"duration,omitempty"`
2099
2100 ActionsInfo *[]JobSupportedAction `json:"actionsInfo,omitempty"`
2101
2102 ErrorDetails *[]AzureIaaSVMErrorInfo `json:"errorDetails,omitempty"`
2103
2104 VirtualMachineVersion *string `json:"virtualMachineVersion,omitempty"`
2105
2106 ExtendedInfo *AzureIaaSVMJobExtendedInfo `json:"extendedInfo,omitempty"`
2107
2108 EntityFriendlyName *string `json:"entityFriendlyName,omitempty"`
2109
2110 BackupManagementType ManagementType `json:"backupManagementType,omitempty"`
2111
2112 Operation *string `json:"operation,omitempty"`
2113
2114 Status *string `json:"status,omitempty"`
2115
2116 StartTime *date.Time `json:"startTime,omitempty"`
2117
2118 EndTime *date.Time `json:"endTime,omitempty"`
2119
2120 ActivityID *string `json:"activityId,omitempty"`
2121
2122 JobType JobType `json:"jobType,omitempty"`
2123 }
2124
2125
2126 func (aisj AzureIaaSVMJob) MarshalJSON() ([]byte, error) {
2127 aisj.JobType = JobTypeAzureIaaSVMJob
2128 objectMap := make(map[string]interface{})
2129 if aisj.Duration != nil {
2130 objectMap["duration"] = aisj.Duration
2131 }
2132 if aisj.ActionsInfo != nil {
2133 objectMap["actionsInfo"] = aisj.ActionsInfo
2134 }
2135 if aisj.ErrorDetails != nil {
2136 objectMap["errorDetails"] = aisj.ErrorDetails
2137 }
2138 if aisj.VirtualMachineVersion != nil {
2139 objectMap["virtualMachineVersion"] = aisj.VirtualMachineVersion
2140 }
2141 if aisj.ExtendedInfo != nil {
2142 objectMap["extendedInfo"] = aisj.ExtendedInfo
2143 }
2144 if aisj.EntityFriendlyName != nil {
2145 objectMap["entityFriendlyName"] = aisj.EntityFriendlyName
2146 }
2147 if aisj.BackupManagementType != "" {
2148 objectMap["backupManagementType"] = aisj.BackupManagementType
2149 }
2150 if aisj.Operation != nil {
2151 objectMap["operation"] = aisj.Operation
2152 }
2153 if aisj.Status != nil {
2154 objectMap["status"] = aisj.Status
2155 }
2156 if aisj.StartTime != nil {
2157 objectMap["startTime"] = aisj.StartTime
2158 }
2159 if aisj.EndTime != nil {
2160 objectMap["endTime"] = aisj.EndTime
2161 }
2162 if aisj.ActivityID != nil {
2163 objectMap["activityId"] = aisj.ActivityID
2164 }
2165 if aisj.JobType != "" {
2166 objectMap["jobType"] = aisj.JobType
2167 }
2168 return json.Marshal(objectMap)
2169 }
2170
2171
2172 func (aisj AzureIaaSVMJob) AsAzureIaaSVMJob() (*AzureIaaSVMJob, bool) {
2173 return &aisj, true
2174 }
2175
2176
2177 func (aisj AzureIaaSVMJob) AsAzureStorageJob() (*AzureStorageJob, bool) {
2178 return nil, false
2179 }
2180
2181
2182 func (aisj AzureIaaSVMJob) AsAzureWorkloadJob() (*AzureWorkloadJob, bool) {
2183 return nil, false
2184 }
2185
2186
2187 func (aisj AzureIaaSVMJob) AsDpmJob() (*DpmJob, bool) {
2188 return nil, false
2189 }
2190
2191
2192 func (aisj AzureIaaSVMJob) AsMabJob() (*MabJob, bool) {
2193 return nil, false
2194 }
2195
2196
2197 func (aisj AzureIaaSVMJob) AsJob() (*Job, bool) {
2198 return nil, false
2199 }
2200
2201
2202 func (aisj AzureIaaSVMJob) AsBasicJob() (BasicJob, bool) {
2203 return &aisj, true
2204 }
2205
2206
2207 type AzureIaaSVMJobExtendedInfo struct {
2208
2209 TasksList *[]AzureIaaSVMJobTaskDetails `json:"tasksList,omitempty"`
2210
2211 PropertyBag map[string]*string `json:"propertyBag"`
2212
2213 InternalPropertyBag map[string]*string `json:"internalPropertyBag"`
2214
2215 ProgressPercentage *float64 `json:"progressPercentage,omitempty"`
2216
2217 EstimatedRemainingDuration *string `json:"estimatedRemainingDuration,omitempty"`
2218
2219 DynamicErrorMessage *string `json:"dynamicErrorMessage,omitempty"`
2220 }
2221
2222
2223 func (aisjei AzureIaaSVMJobExtendedInfo) MarshalJSON() ([]byte, error) {
2224 objectMap := make(map[string]interface{})
2225 if aisjei.TasksList != nil {
2226 objectMap["tasksList"] = aisjei.TasksList
2227 }
2228 if aisjei.PropertyBag != nil {
2229 objectMap["propertyBag"] = aisjei.PropertyBag
2230 }
2231 if aisjei.InternalPropertyBag != nil {
2232 objectMap["internalPropertyBag"] = aisjei.InternalPropertyBag
2233 }
2234 if aisjei.ProgressPercentage != nil {
2235 objectMap["progressPercentage"] = aisjei.ProgressPercentage
2236 }
2237 if aisjei.EstimatedRemainingDuration != nil {
2238 objectMap["estimatedRemainingDuration"] = aisjei.EstimatedRemainingDuration
2239 }
2240 if aisjei.DynamicErrorMessage != nil {
2241 objectMap["dynamicErrorMessage"] = aisjei.DynamicErrorMessage
2242 }
2243 return json.Marshal(objectMap)
2244 }
2245
2246
2247 type AzureIaaSVMJobTaskDetails struct {
2248
2249 TaskID *string `json:"taskId,omitempty"`
2250
2251 StartTime *date.Time `json:"startTime,omitempty"`
2252
2253 EndTime *date.Time `json:"endTime,omitempty"`
2254
2255 InstanceID *string `json:"instanceId,omitempty"`
2256
2257 Duration *string `json:"duration,omitempty"`
2258
2259 Status *string `json:"status,omitempty"`
2260
2261 ProgressPercentage *float64 `json:"progressPercentage,omitempty"`
2262
2263
2264 TaskExecutionDetails *string `json:"taskExecutionDetails,omitempty"`
2265 }
2266
2267
2268 type BasicAzureIaaSVMProtectedItem interface {
2269 AsAzureIaaSClassicComputeVMProtectedItem() (*AzureIaaSClassicComputeVMProtectedItem, bool)
2270 AsAzureIaaSComputeVMProtectedItem() (*AzureIaaSComputeVMProtectedItem, bool)
2271 AsAzureIaaSVMProtectedItem() (*AzureIaaSVMProtectedItem, bool)
2272 }
2273
2274
2275 type AzureIaaSVMProtectedItem struct {
2276
2277 FriendlyName *string `json:"friendlyName,omitempty"`
2278
2279 VirtualMachineID *string `json:"virtualMachineId,omitempty"`
2280
2281 ProtectionStatus *string `json:"protectionStatus,omitempty"`
2282
2283 ProtectionState ProtectionState `json:"protectionState,omitempty"`
2284
2285 HealthStatus HealthStatus `json:"healthStatus,omitempty"`
2286
2287 HealthDetails *[]AzureIaaSVMHealthDetails `json:"healthDetails,omitempty"`
2288
2289 KpisHealths map[string]*KPIResourceHealthDetails `json:"kpisHealths"`
2290
2291 LastBackupStatus *string `json:"lastBackupStatus,omitempty"`
2292
2293 LastBackupTime *date.Time `json:"lastBackupTime,omitempty"`
2294
2295 ProtectedItemDataID *string `json:"protectedItemDataId,omitempty"`
2296
2297 ExtendedInfo *AzureIaaSVMProtectedItemExtendedInfo `json:"extendedInfo,omitempty"`
2298 ExtendedProperties *ExtendedProperties `json:"extendedProperties,omitempty"`
2299
2300 BackupManagementType ManagementType `json:"backupManagementType,omitempty"`
2301
2302 WorkloadType DataSourceType `json:"workloadType,omitempty"`
2303
2304 ContainerName *string `json:"containerName,omitempty"`
2305
2306 SourceResourceID *string `json:"sourceResourceId,omitempty"`
2307
2308 PolicyID *string `json:"policyId,omitempty"`
2309
2310 LastRecoveryPoint *date.Time `json:"lastRecoveryPoint,omitempty"`
2311
2312 BackupSetName *string `json:"backupSetName,omitempty"`
2313
2314 CreateMode CreateMode `json:"createMode,omitempty"`
2315
2316 DeferredDeleteTimeInUTC *date.Time `json:"deferredDeleteTimeInUTC,omitempty"`
2317
2318 IsScheduledForDeferredDelete *bool `json:"isScheduledForDeferredDelete,omitempty"`
2319
2320 DeferredDeleteTimeRemaining *string `json:"deferredDeleteTimeRemaining,omitempty"`
2321
2322 IsDeferredDeleteScheduleUpcoming *bool `json:"isDeferredDeleteScheduleUpcoming,omitempty"`
2323
2324 IsRehydrate *bool `json:"isRehydrate,omitempty"`
2325
2326 ProtectedItemType ProtectedItemType `json:"protectedItemType,omitempty"`
2327 }
2328
2329 func unmarshalBasicAzureIaaSVMProtectedItem(body []byte) (BasicAzureIaaSVMProtectedItem, error) {
2330 var m map[string]interface{}
2331 err := json.Unmarshal(body, &m)
2332 if err != nil {
2333 return nil, err
2334 }
2335
2336 switch m["protectedItemType"] {
2337 case string(ProtectedItemTypeMicrosoftClassicComputevirtualMachines):
2338 var aisccvpi AzureIaaSClassicComputeVMProtectedItem
2339 err := json.Unmarshal(body, &aisccvpi)
2340 return aisccvpi, err
2341 case string(ProtectedItemTypeMicrosoftComputevirtualMachines):
2342 var aiscvpi AzureIaaSComputeVMProtectedItem
2343 err := json.Unmarshal(body, &aiscvpi)
2344 return aiscvpi, err
2345 default:
2346 var aispi AzureIaaSVMProtectedItem
2347 err := json.Unmarshal(body, &aispi)
2348 return aispi, err
2349 }
2350 }
2351 func unmarshalBasicAzureIaaSVMProtectedItemArray(body []byte) ([]BasicAzureIaaSVMProtectedItem, error) {
2352 var rawMessages []*json.RawMessage
2353 err := json.Unmarshal(body, &rawMessages)
2354 if err != nil {
2355 return nil, err
2356 }
2357
2358 aispiArray := make([]BasicAzureIaaSVMProtectedItem, len(rawMessages))
2359
2360 for index, rawMessage := range rawMessages {
2361 aispi, err := unmarshalBasicAzureIaaSVMProtectedItem(*rawMessage)
2362 if err != nil {
2363 return nil, err
2364 }
2365 aispiArray[index] = aispi
2366 }
2367 return aispiArray, nil
2368 }
2369
2370
2371 func (aispi AzureIaaSVMProtectedItem) MarshalJSON() ([]byte, error) {
2372 aispi.ProtectedItemType = ProtectedItemTypeAzureIaaSVMProtectedItem
2373 objectMap := make(map[string]interface{})
2374 if aispi.FriendlyName != nil {
2375 objectMap["friendlyName"] = aispi.FriendlyName
2376 }
2377 if aispi.VirtualMachineID != nil {
2378 objectMap["virtualMachineId"] = aispi.VirtualMachineID
2379 }
2380 if aispi.ProtectionStatus != nil {
2381 objectMap["protectionStatus"] = aispi.ProtectionStatus
2382 }
2383 if aispi.ProtectionState != "" {
2384 objectMap["protectionState"] = aispi.ProtectionState
2385 }
2386 if aispi.HealthStatus != "" {
2387 objectMap["healthStatus"] = aispi.HealthStatus
2388 }
2389 if aispi.HealthDetails != nil {
2390 objectMap["healthDetails"] = aispi.HealthDetails
2391 }
2392 if aispi.KpisHealths != nil {
2393 objectMap["kpisHealths"] = aispi.KpisHealths
2394 }
2395 if aispi.LastBackupStatus != nil {
2396 objectMap["lastBackupStatus"] = aispi.LastBackupStatus
2397 }
2398 if aispi.LastBackupTime != nil {
2399 objectMap["lastBackupTime"] = aispi.LastBackupTime
2400 }
2401 if aispi.ProtectedItemDataID != nil {
2402 objectMap["protectedItemDataId"] = aispi.ProtectedItemDataID
2403 }
2404 if aispi.ExtendedInfo != nil {
2405 objectMap["extendedInfo"] = aispi.ExtendedInfo
2406 }
2407 if aispi.ExtendedProperties != nil {
2408 objectMap["extendedProperties"] = aispi.ExtendedProperties
2409 }
2410 if aispi.BackupManagementType != "" {
2411 objectMap["backupManagementType"] = aispi.BackupManagementType
2412 }
2413 if aispi.WorkloadType != "" {
2414 objectMap["workloadType"] = aispi.WorkloadType
2415 }
2416 if aispi.ContainerName != nil {
2417 objectMap["containerName"] = aispi.ContainerName
2418 }
2419 if aispi.SourceResourceID != nil {
2420 objectMap["sourceResourceId"] = aispi.SourceResourceID
2421 }
2422 if aispi.PolicyID != nil {
2423 objectMap["policyId"] = aispi.PolicyID
2424 }
2425 if aispi.LastRecoveryPoint != nil {
2426 objectMap["lastRecoveryPoint"] = aispi.LastRecoveryPoint
2427 }
2428 if aispi.BackupSetName != nil {
2429 objectMap["backupSetName"] = aispi.BackupSetName
2430 }
2431 if aispi.CreateMode != "" {
2432 objectMap["createMode"] = aispi.CreateMode
2433 }
2434 if aispi.DeferredDeleteTimeInUTC != nil {
2435 objectMap["deferredDeleteTimeInUTC"] = aispi.DeferredDeleteTimeInUTC
2436 }
2437 if aispi.IsScheduledForDeferredDelete != nil {
2438 objectMap["isScheduledForDeferredDelete"] = aispi.IsScheduledForDeferredDelete
2439 }
2440 if aispi.DeferredDeleteTimeRemaining != nil {
2441 objectMap["deferredDeleteTimeRemaining"] = aispi.DeferredDeleteTimeRemaining
2442 }
2443 if aispi.IsDeferredDeleteScheduleUpcoming != nil {
2444 objectMap["isDeferredDeleteScheduleUpcoming"] = aispi.IsDeferredDeleteScheduleUpcoming
2445 }
2446 if aispi.IsRehydrate != nil {
2447 objectMap["isRehydrate"] = aispi.IsRehydrate
2448 }
2449 if aispi.ProtectedItemType != "" {
2450 objectMap["protectedItemType"] = aispi.ProtectedItemType
2451 }
2452 return json.Marshal(objectMap)
2453 }
2454
2455
2456 func (aispi AzureIaaSVMProtectedItem) AsAzureFileshareProtectedItem() (*AzureFileshareProtectedItem, bool) {
2457 return nil, false
2458 }
2459
2460
2461 func (aispi AzureIaaSVMProtectedItem) AsAzureIaaSClassicComputeVMProtectedItem() (*AzureIaaSClassicComputeVMProtectedItem, bool) {
2462 return nil, false
2463 }
2464
2465
2466 func (aispi AzureIaaSVMProtectedItem) AsAzureIaaSComputeVMProtectedItem() (*AzureIaaSComputeVMProtectedItem, bool) {
2467 return nil, false
2468 }
2469
2470
2471 func (aispi AzureIaaSVMProtectedItem) AsAzureIaaSVMProtectedItem() (*AzureIaaSVMProtectedItem, bool) {
2472 return &aispi, true
2473 }
2474
2475
2476 func (aispi AzureIaaSVMProtectedItem) AsBasicAzureIaaSVMProtectedItem() (BasicAzureIaaSVMProtectedItem, bool) {
2477 return &aispi, true
2478 }
2479
2480
2481 func (aispi AzureIaaSVMProtectedItem) AsAzureSQLProtectedItem() (*AzureSQLProtectedItem, bool) {
2482 return nil, false
2483 }
2484
2485
2486 func (aispi AzureIaaSVMProtectedItem) AsAzureVMWorkloadProtectedItem() (*AzureVMWorkloadProtectedItem, bool) {
2487 return nil, false
2488 }
2489
2490
2491 func (aispi AzureIaaSVMProtectedItem) AsBasicAzureVMWorkloadProtectedItem() (BasicAzureVMWorkloadProtectedItem, bool) {
2492 return nil, false
2493 }
2494
2495
2496 func (aispi AzureIaaSVMProtectedItem) AsAzureVMWorkloadSAPAseDatabaseProtectedItem() (*AzureVMWorkloadSAPAseDatabaseProtectedItem, bool) {
2497 return nil, false
2498 }
2499
2500
2501 func (aispi AzureIaaSVMProtectedItem) AsAzureVMWorkloadSAPHanaDatabaseProtectedItem() (*AzureVMWorkloadSAPHanaDatabaseProtectedItem, bool) {
2502 return nil, false
2503 }
2504
2505
2506 func (aispi AzureIaaSVMProtectedItem) AsAzureVMWorkloadSQLDatabaseProtectedItem() (*AzureVMWorkloadSQLDatabaseProtectedItem, bool) {
2507 return nil, false
2508 }
2509
2510
2511 func (aispi AzureIaaSVMProtectedItem) AsDPMProtectedItem() (*DPMProtectedItem, bool) {
2512 return nil, false
2513 }
2514
2515
2516 func (aispi AzureIaaSVMProtectedItem) AsGenericProtectedItem() (*GenericProtectedItem, bool) {
2517 return nil, false
2518 }
2519
2520
2521 func (aispi AzureIaaSVMProtectedItem) AsMabFileFolderProtectedItem() (*MabFileFolderProtectedItem, bool) {
2522 return nil, false
2523 }
2524
2525
2526 func (aispi AzureIaaSVMProtectedItem) AsProtectedItem() (*ProtectedItem, bool) {
2527 return nil, false
2528 }
2529
2530
2531 func (aispi AzureIaaSVMProtectedItem) AsBasicProtectedItem() (BasicProtectedItem, bool) {
2532 return &aispi, true
2533 }
2534
2535
2536 type AzureIaaSVMProtectedItemExtendedInfo struct {
2537
2538 OldestRecoveryPoint *date.Time `json:"oldestRecoveryPoint,omitempty"`
2539
2540 RecoveryPointCount *int32 `json:"recoveryPointCount,omitempty"`
2541
2542 PolicyInconsistent *bool `json:"policyInconsistent,omitempty"`
2543 }
2544
2545
2546 type AzureIaaSVMProtectionPolicy struct {
2547 InstantRPDetails *InstantRPAdditionalDetails `json:"instantRPDetails,omitempty"`
2548
2549 SchedulePolicy BasicSchedulePolicy `json:"schedulePolicy,omitempty"`
2550
2551 RetentionPolicy BasicRetentionPolicy `json:"retentionPolicy,omitempty"`
2552
2553 InstantRpRetentionRangeInDays *int32 `json:"instantRpRetentionRangeInDays,omitempty"`
2554
2555 TimeZone *string `json:"timeZone,omitempty"`
2556
2557 ProtectedItemsCount *int32 `json:"protectedItemsCount,omitempty"`
2558
2559 BackupManagementType ManagementTypeBasicProtectionPolicy `json:"backupManagementType,omitempty"`
2560 }
2561
2562
2563 func (aispp AzureIaaSVMProtectionPolicy) MarshalJSON() ([]byte, error) {
2564 aispp.BackupManagementType = BackupManagementTypeAzureIaasVM
2565 objectMap := make(map[string]interface{})
2566 if aispp.InstantRPDetails != nil {
2567 objectMap["instantRPDetails"] = aispp.InstantRPDetails
2568 }
2569 objectMap["schedulePolicy"] = aispp.SchedulePolicy
2570 objectMap["retentionPolicy"] = aispp.RetentionPolicy
2571 if aispp.InstantRpRetentionRangeInDays != nil {
2572 objectMap["instantRpRetentionRangeInDays"] = aispp.InstantRpRetentionRangeInDays
2573 }
2574 if aispp.TimeZone != nil {
2575 objectMap["timeZone"] = aispp.TimeZone
2576 }
2577 if aispp.ProtectedItemsCount != nil {
2578 objectMap["protectedItemsCount"] = aispp.ProtectedItemsCount
2579 }
2580 if aispp.BackupManagementType != "" {
2581 objectMap["backupManagementType"] = aispp.BackupManagementType
2582 }
2583 return json.Marshal(objectMap)
2584 }
2585
2586
2587 func (aispp AzureIaaSVMProtectionPolicy) AsAzureVMWorkloadProtectionPolicy() (*AzureVMWorkloadProtectionPolicy, bool) {
2588 return nil, false
2589 }
2590
2591
2592 func (aispp AzureIaaSVMProtectionPolicy) AsAzureFileShareProtectionPolicy() (*AzureFileShareProtectionPolicy, bool) {
2593 return nil, false
2594 }
2595
2596
2597 func (aispp AzureIaaSVMProtectionPolicy) AsAzureIaaSVMProtectionPolicy() (*AzureIaaSVMProtectionPolicy, bool) {
2598 return &aispp, true
2599 }
2600
2601
2602 func (aispp AzureIaaSVMProtectionPolicy) AsAzureSQLProtectionPolicy() (*AzureSQLProtectionPolicy, bool) {
2603 return nil, false
2604 }
2605
2606
2607 func (aispp AzureIaaSVMProtectionPolicy) AsGenericProtectionPolicy() (*GenericProtectionPolicy, bool) {
2608 return nil, false
2609 }
2610
2611
2612 func (aispp AzureIaaSVMProtectionPolicy) AsMabProtectionPolicy() (*MabProtectionPolicy, bool) {
2613 return nil, false
2614 }
2615
2616
2617 func (aispp AzureIaaSVMProtectionPolicy) AsProtectionPolicy() (*ProtectionPolicy, bool) {
2618 return nil, false
2619 }
2620
2621
2622 func (aispp AzureIaaSVMProtectionPolicy) AsBasicProtectionPolicy() (BasicProtectionPolicy, bool) {
2623 return &aispp, true
2624 }
2625
2626
2627 func (aispp *AzureIaaSVMProtectionPolicy) UnmarshalJSON(body []byte) error {
2628 var m map[string]*json.RawMessage
2629 err := json.Unmarshal(body, &m)
2630 if err != nil {
2631 return err
2632 }
2633 for k, v := range m {
2634 switch k {
2635 case "instantRPDetails":
2636 if v != nil {
2637 var instantRPDetails InstantRPAdditionalDetails
2638 err = json.Unmarshal(*v, &instantRPDetails)
2639 if err != nil {
2640 return err
2641 }
2642 aispp.InstantRPDetails = &instantRPDetails
2643 }
2644 case "schedulePolicy":
2645 if v != nil {
2646 schedulePolicy, err := unmarshalBasicSchedulePolicy(*v)
2647 if err != nil {
2648 return err
2649 }
2650 aispp.SchedulePolicy = schedulePolicy
2651 }
2652 case "retentionPolicy":
2653 if v != nil {
2654 retentionPolicy, err := unmarshalBasicRetentionPolicy(*v)
2655 if err != nil {
2656 return err
2657 }
2658 aispp.RetentionPolicy = retentionPolicy
2659 }
2660 case "instantRpRetentionRangeInDays":
2661 if v != nil {
2662 var instantRpRetentionRangeInDays int32
2663 err = json.Unmarshal(*v, &instantRpRetentionRangeInDays)
2664 if err != nil {
2665 return err
2666 }
2667 aispp.InstantRpRetentionRangeInDays = &instantRpRetentionRangeInDays
2668 }
2669 case "timeZone":
2670 if v != nil {
2671 var timeZone string
2672 err = json.Unmarshal(*v, &timeZone)
2673 if err != nil {
2674 return err
2675 }
2676 aispp.TimeZone = &timeZone
2677 }
2678 case "protectedItemsCount":
2679 if v != nil {
2680 var protectedItemsCount int32
2681 err = json.Unmarshal(*v, &protectedItemsCount)
2682 if err != nil {
2683 return err
2684 }
2685 aispp.ProtectedItemsCount = &protectedItemsCount
2686 }
2687 case "backupManagementType":
2688 if v != nil {
2689 var backupManagementType ManagementTypeBasicProtectionPolicy
2690 err = json.Unmarshal(*v, &backupManagementType)
2691 if err != nil {
2692 return err
2693 }
2694 aispp.BackupManagementType = backupManagementType
2695 }
2696 }
2697 }
2698
2699 return nil
2700 }
2701
2702
2703 type BasicAzureRecoveryServiceVaultProtectionIntent interface {
2704 AsAzureWorkloadAutoProtectionIntent() (*AzureWorkloadAutoProtectionIntent, bool)
2705 AsBasicAzureWorkloadAutoProtectionIntent() (BasicAzureWorkloadAutoProtectionIntent, bool)
2706 AsAzureWorkloadSQLAutoProtectionIntent() (*AzureWorkloadSQLAutoProtectionIntent, bool)
2707 AsAzureRecoveryServiceVaultProtectionIntent() (*AzureRecoveryServiceVaultProtectionIntent, bool)
2708 }
2709
2710
2711 type AzureRecoveryServiceVaultProtectionIntent struct {
2712
2713 BackupManagementType ManagementType `json:"backupManagementType,omitempty"`
2714
2715 SourceResourceID *string `json:"sourceResourceId,omitempty"`
2716
2717 ItemID *string `json:"itemId,omitempty"`
2718
2719 PolicyID *string `json:"policyId,omitempty"`
2720
2721 ProtectionState ProtectionStatus `json:"protectionState,omitempty"`
2722
2723 ProtectionIntentItemType ProtectionIntentItemType `json:"protectionIntentItemType,omitempty"`
2724 }
2725
2726 func unmarshalBasicAzureRecoveryServiceVaultProtectionIntent(body []byte) (BasicAzureRecoveryServiceVaultProtectionIntent, error) {
2727 var m map[string]interface{}
2728 err := json.Unmarshal(body, &m)
2729 if err != nil {
2730 return nil, err
2731 }
2732
2733 switch m["protectionIntentItemType"] {
2734 case string(ProtectionIntentItemTypeAzureWorkloadAutoProtectionIntent):
2735 var awapi AzureWorkloadAutoProtectionIntent
2736 err := json.Unmarshal(body, &awapi)
2737 return awapi, err
2738 case string(ProtectionIntentItemTypeAzureWorkloadSQLAutoProtectionIntent):
2739 var awsapi AzureWorkloadSQLAutoProtectionIntent
2740 err := json.Unmarshal(body, &awsapi)
2741 return awsapi, err
2742 default:
2743 var arsvpi AzureRecoveryServiceVaultProtectionIntent
2744 err := json.Unmarshal(body, &arsvpi)
2745 return arsvpi, err
2746 }
2747 }
2748 func unmarshalBasicAzureRecoveryServiceVaultProtectionIntentArray(body []byte) ([]BasicAzureRecoveryServiceVaultProtectionIntent, error) {
2749 var rawMessages []*json.RawMessage
2750 err := json.Unmarshal(body, &rawMessages)
2751 if err != nil {
2752 return nil, err
2753 }
2754
2755 arsvpiArray := make([]BasicAzureRecoveryServiceVaultProtectionIntent, len(rawMessages))
2756
2757 for index, rawMessage := range rawMessages {
2758 arsvpi, err := unmarshalBasicAzureRecoveryServiceVaultProtectionIntent(*rawMessage)
2759 if err != nil {
2760 return nil, err
2761 }
2762 arsvpiArray[index] = arsvpi
2763 }
2764 return arsvpiArray, nil
2765 }
2766
2767
2768 func (arsvpi AzureRecoveryServiceVaultProtectionIntent) MarshalJSON() ([]byte, error) {
2769 arsvpi.ProtectionIntentItemType = ProtectionIntentItemTypeRecoveryServiceVaultItem
2770 objectMap := make(map[string]interface{})
2771 if arsvpi.BackupManagementType != "" {
2772 objectMap["backupManagementType"] = arsvpi.BackupManagementType
2773 }
2774 if arsvpi.SourceResourceID != nil {
2775 objectMap["sourceResourceId"] = arsvpi.SourceResourceID
2776 }
2777 if arsvpi.ItemID != nil {
2778 objectMap["itemId"] = arsvpi.ItemID
2779 }
2780 if arsvpi.PolicyID != nil {
2781 objectMap["policyId"] = arsvpi.PolicyID
2782 }
2783 if arsvpi.ProtectionState != "" {
2784 objectMap["protectionState"] = arsvpi.ProtectionState
2785 }
2786 if arsvpi.ProtectionIntentItemType != "" {
2787 objectMap["protectionIntentItemType"] = arsvpi.ProtectionIntentItemType
2788 }
2789 return json.Marshal(objectMap)
2790 }
2791
2792
2793 func (arsvpi AzureRecoveryServiceVaultProtectionIntent) AsAzureRecoveryServiceVaultProtectionIntent() (*AzureRecoveryServiceVaultProtectionIntent, bool) {
2794 return &arsvpi, true
2795 }
2796
2797
2798 func (arsvpi AzureRecoveryServiceVaultProtectionIntent) AsBasicAzureRecoveryServiceVaultProtectionIntent() (BasicAzureRecoveryServiceVaultProtectionIntent, bool) {
2799 return &arsvpi, true
2800 }
2801
2802
2803 func (arsvpi AzureRecoveryServiceVaultProtectionIntent) AsAzureResourceProtectionIntent() (*AzureResourceProtectionIntent, bool) {
2804 return nil, false
2805 }
2806
2807
2808 func (arsvpi AzureRecoveryServiceVaultProtectionIntent) AsAzureWorkloadAutoProtectionIntent() (*AzureWorkloadAutoProtectionIntent, bool) {
2809 return nil, false
2810 }
2811
2812
2813 func (arsvpi AzureRecoveryServiceVaultProtectionIntent) AsBasicAzureWorkloadAutoProtectionIntent() (BasicAzureWorkloadAutoProtectionIntent, bool) {
2814 return nil, false
2815 }
2816
2817
2818 func (arsvpi AzureRecoveryServiceVaultProtectionIntent) AsAzureWorkloadSQLAutoProtectionIntent() (*AzureWorkloadSQLAutoProtectionIntent, bool) {
2819 return nil, false
2820 }
2821
2822
2823 func (arsvpi AzureRecoveryServiceVaultProtectionIntent) AsProtectionIntent() (*ProtectionIntent, bool) {
2824 return nil, false
2825 }
2826
2827
2828 func (arsvpi AzureRecoveryServiceVaultProtectionIntent) AsBasicProtectionIntent() (BasicProtectionIntent, bool) {
2829 return &arsvpi, true
2830 }
2831
2832
2833 type AzureResourceProtectionIntent struct {
2834
2835 FriendlyName *string `json:"friendlyName,omitempty"`
2836
2837 BackupManagementType ManagementType `json:"backupManagementType,omitempty"`
2838
2839 SourceResourceID *string `json:"sourceResourceId,omitempty"`
2840
2841 ItemID *string `json:"itemId,omitempty"`
2842
2843 PolicyID *string `json:"policyId,omitempty"`
2844
2845 ProtectionState ProtectionStatus `json:"protectionState,omitempty"`
2846
2847 ProtectionIntentItemType ProtectionIntentItemType `json:"protectionIntentItemType,omitempty"`
2848 }
2849
2850
2851 func (arpi AzureResourceProtectionIntent) MarshalJSON() ([]byte, error) {
2852 arpi.ProtectionIntentItemType = ProtectionIntentItemTypeAzureResourceItem
2853 objectMap := make(map[string]interface{})
2854 if arpi.FriendlyName != nil {
2855 objectMap["friendlyName"] = arpi.FriendlyName
2856 }
2857 if arpi.BackupManagementType != "" {
2858 objectMap["backupManagementType"] = arpi.BackupManagementType
2859 }
2860 if arpi.SourceResourceID != nil {
2861 objectMap["sourceResourceId"] = arpi.SourceResourceID
2862 }
2863 if arpi.ItemID != nil {
2864 objectMap["itemId"] = arpi.ItemID
2865 }
2866 if arpi.PolicyID != nil {
2867 objectMap["policyId"] = arpi.PolicyID
2868 }
2869 if arpi.ProtectionState != "" {
2870 objectMap["protectionState"] = arpi.ProtectionState
2871 }
2872 if arpi.ProtectionIntentItemType != "" {
2873 objectMap["protectionIntentItemType"] = arpi.ProtectionIntentItemType
2874 }
2875 return json.Marshal(objectMap)
2876 }
2877
2878
2879 func (arpi AzureResourceProtectionIntent) AsAzureRecoveryServiceVaultProtectionIntent() (*AzureRecoveryServiceVaultProtectionIntent, bool) {
2880 return nil, false
2881 }
2882
2883
2884 func (arpi AzureResourceProtectionIntent) AsBasicAzureRecoveryServiceVaultProtectionIntent() (BasicAzureRecoveryServiceVaultProtectionIntent, bool) {
2885 return nil, false
2886 }
2887
2888
2889 func (arpi AzureResourceProtectionIntent) AsAzureResourceProtectionIntent() (*AzureResourceProtectionIntent, bool) {
2890 return &arpi, true
2891 }
2892
2893
2894 func (arpi AzureResourceProtectionIntent) AsAzureWorkloadAutoProtectionIntent() (*AzureWorkloadAutoProtectionIntent, bool) {
2895 return nil, false
2896 }
2897
2898
2899 func (arpi AzureResourceProtectionIntent) AsBasicAzureWorkloadAutoProtectionIntent() (BasicAzureWorkloadAutoProtectionIntent, bool) {
2900 return nil, false
2901 }
2902
2903
2904 func (arpi AzureResourceProtectionIntent) AsAzureWorkloadSQLAutoProtectionIntent() (*AzureWorkloadSQLAutoProtectionIntent, bool) {
2905 return nil, false
2906 }
2907
2908
2909 func (arpi AzureResourceProtectionIntent) AsProtectionIntent() (*ProtectionIntent, bool) {
2910 return nil, false
2911 }
2912
2913
2914 func (arpi AzureResourceProtectionIntent) AsBasicProtectionIntent() (BasicProtectionIntent, bool) {
2915 return &arpi, true
2916 }
2917
2918
2919 type AzureSQLAGWorkloadContainerProtectionContainer struct {
2920
2921 SourceResourceID *string `json:"sourceResourceId,omitempty"`
2922
2923 LastUpdatedTime *date.Time `json:"lastUpdatedTime,omitempty"`
2924
2925 ExtendedInfo *AzureWorkloadContainerExtendedInfo `json:"extendedInfo,omitempty"`
2926
2927 WorkloadType WorkloadType `json:"workloadType,omitempty"`
2928
2929 OperationType OperationType `json:"operationType,omitempty"`
2930
2931 FriendlyName *string `json:"friendlyName,omitempty"`
2932
2933 BackupManagementType ManagementType `json:"backupManagementType,omitempty"`
2934
2935 RegistrationStatus *string `json:"registrationStatus,omitempty"`
2936
2937 HealthStatus *string `json:"healthStatus,omitempty"`
2938
2939 ContainerType ContainerTypeBasicProtectionContainer `json:"containerType,omitempty"`
2940 }
2941
2942
2943 func (aswcpc AzureSQLAGWorkloadContainerProtectionContainer) MarshalJSON() ([]byte, error) {
2944 aswcpc.ContainerType = ContainerTypeSQLAGWorkLoadContainer1
2945 objectMap := make(map[string]interface{})
2946 if aswcpc.SourceResourceID != nil {
2947 objectMap["sourceResourceId"] = aswcpc.SourceResourceID
2948 }
2949 if aswcpc.LastUpdatedTime != nil {
2950 objectMap["lastUpdatedTime"] = aswcpc.LastUpdatedTime
2951 }
2952 if aswcpc.ExtendedInfo != nil {
2953 objectMap["extendedInfo"] = aswcpc.ExtendedInfo
2954 }
2955 if aswcpc.WorkloadType != "" {
2956 objectMap["workloadType"] = aswcpc.WorkloadType
2957 }
2958 if aswcpc.OperationType != "" {
2959 objectMap["operationType"] = aswcpc.OperationType
2960 }
2961 if aswcpc.FriendlyName != nil {
2962 objectMap["friendlyName"] = aswcpc.FriendlyName
2963 }
2964 if aswcpc.BackupManagementType != "" {
2965 objectMap["backupManagementType"] = aswcpc.BackupManagementType
2966 }
2967 if aswcpc.RegistrationStatus != nil {
2968 objectMap["registrationStatus"] = aswcpc.RegistrationStatus
2969 }
2970 if aswcpc.HealthStatus != nil {
2971 objectMap["healthStatus"] = aswcpc.HealthStatus
2972 }
2973 if aswcpc.ContainerType != "" {
2974 objectMap["containerType"] = aswcpc.ContainerType
2975 }
2976 return json.Marshal(objectMap)
2977 }
2978
2979
2980 func (aswcpc AzureSQLAGWorkloadContainerProtectionContainer) AsAzureBackupServerContainer() (*AzureBackupServerContainer, bool) {
2981 return nil, false
2982 }
2983
2984
2985 func (aswcpc AzureSQLAGWorkloadContainerProtectionContainer) AsAzureIaaSClassicComputeVMContainer() (*AzureIaaSClassicComputeVMContainer, bool) {
2986 return nil, false
2987 }
2988
2989
2990 func (aswcpc AzureSQLAGWorkloadContainerProtectionContainer) AsAzureIaaSComputeVMContainer() (*AzureIaaSComputeVMContainer, bool) {
2991 return nil, false
2992 }
2993
2994
2995 func (aswcpc AzureSQLAGWorkloadContainerProtectionContainer) AsAzureSQLAGWorkloadContainerProtectionContainer() (*AzureSQLAGWorkloadContainerProtectionContainer, bool) {
2996 return &aswcpc, true
2997 }
2998
2999
3000 func (aswcpc AzureSQLAGWorkloadContainerProtectionContainer) AsAzureSQLContainer() (*AzureSQLContainer, bool) {
3001 return nil, false
3002 }
3003
3004
3005 func (aswcpc AzureSQLAGWorkloadContainerProtectionContainer) AsAzureStorageContainer() (*AzureStorageContainer, bool) {
3006 return nil, false
3007 }
3008
3009
3010 func (aswcpc AzureSQLAGWorkloadContainerProtectionContainer) AsAzureVMAppContainerProtectionContainer() (*AzureVMAppContainerProtectionContainer, bool) {
3011 return nil, false
3012 }
3013
3014
3015 func (aswcpc AzureSQLAGWorkloadContainerProtectionContainer) AsAzureWorkloadContainer() (*AzureWorkloadContainer, bool) {
3016 return nil, false
3017 }
3018
3019
3020 func (aswcpc AzureSQLAGWorkloadContainerProtectionContainer) AsBasicAzureWorkloadContainer() (BasicAzureWorkloadContainer, bool) {
3021 return &aswcpc, true
3022 }
3023
3024
3025 func (aswcpc AzureSQLAGWorkloadContainerProtectionContainer) AsDpmContainer() (*DpmContainer, bool) {
3026 return nil, false
3027 }
3028
3029
3030 func (aswcpc AzureSQLAGWorkloadContainerProtectionContainer) AsBasicDpmContainer() (BasicDpmContainer, bool) {
3031 return nil, false
3032 }
3033
3034
3035 func (aswcpc AzureSQLAGWorkloadContainerProtectionContainer) AsGenericContainer() (*GenericContainer, bool) {
3036 return nil, false
3037 }
3038
3039
3040 func (aswcpc AzureSQLAGWorkloadContainerProtectionContainer) AsIaaSVMContainer() (*IaaSVMContainer, bool) {
3041 return nil, false
3042 }
3043
3044
3045 func (aswcpc AzureSQLAGWorkloadContainerProtectionContainer) AsBasicIaaSVMContainer() (BasicIaaSVMContainer, bool) {
3046 return nil, false
3047 }
3048
3049
3050 func (aswcpc AzureSQLAGWorkloadContainerProtectionContainer) AsMabContainer() (*MabContainer, bool) {
3051 return nil, false
3052 }
3053
3054
3055 func (aswcpc AzureSQLAGWorkloadContainerProtectionContainer) AsProtectionContainer() (*ProtectionContainer, bool) {
3056 return nil, false
3057 }
3058
3059
3060 func (aswcpc AzureSQLAGWorkloadContainerProtectionContainer) AsBasicProtectionContainer() (BasicProtectionContainer, bool) {
3061 return &aswcpc, true
3062 }
3063
3064
3065 type AzureSQLContainer struct {
3066
3067 FriendlyName *string `json:"friendlyName,omitempty"`
3068
3069 BackupManagementType ManagementType `json:"backupManagementType,omitempty"`
3070
3071 RegistrationStatus *string `json:"registrationStatus,omitempty"`
3072
3073 HealthStatus *string `json:"healthStatus,omitempty"`
3074
3075 ContainerType ContainerTypeBasicProtectionContainer `json:"containerType,omitempty"`
3076 }
3077
3078
3079 func (asc AzureSQLContainer) MarshalJSON() ([]byte, error) {
3080 asc.ContainerType = ContainerTypeAzureSQLContainer1
3081 objectMap := make(map[string]interface{})
3082 if asc.FriendlyName != nil {
3083 objectMap["friendlyName"] = asc.FriendlyName
3084 }
3085 if asc.BackupManagementType != "" {
3086 objectMap["backupManagementType"] = asc.BackupManagementType
3087 }
3088 if asc.RegistrationStatus != nil {
3089 objectMap["registrationStatus"] = asc.RegistrationStatus
3090 }
3091 if asc.HealthStatus != nil {
3092 objectMap["healthStatus"] = asc.HealthStatus
3093 }
3094 if asc.ContainerType != "" {
3095 objectMap["containerType"] = asc.ContainerType
3096 }
3097 return json.Marshal(objectMap)
3098 }
3099
3100
3101 func (asc AzureSQLContainer) AsAzureBackupServerContainer() (*AzureBackupServerContainer, bool) {
3102 return nil, false
3103 }
3104
3105
3106 func (asc AzureSQLContainer) AsAzureIaaSClassicComputeVMContainer() (*AzureIaaSClassicComputeVMContainer, bool) {
3107 return nil, false
3108 }
3109
3110
3111 func (asc AzureSQLContainer) AsAzureIaaSComputeVMContainer() (*AzureIaaSComputeVMContainer, bool) {
3112 return nil, false
3113 }
3114
3115
3116 func (asc AzureSQLContainer) AsAzureSQLAGWorkloadContainerProtectionContainer() (*AzureSQLAGWorkloadContainerProtectionContainer, bool) {
3117 return nil, false
3118 }
3119
3120
3121 func (asc AzureSQLContainer) AsAzureSQLContainer() (*AzureSQLContainer, bool) {
3122 return &asc, true
3123 }
3124
3125
3126 func (asc AzureSQLContainer) AsAzureStorageContainer() (*AzureStorageContainer, bool) {
3127 return nil, false
3128 }
3129
3130
3131 func (asc AzureSQLContainer) AsAzureVMAppContainerProtectionContainer() (*AzureVMAppContainerProtectionContainer, bool) {
3132 return nil, false
3133 }
3134
3135
3136 func (asc AzureSQLContainer) AsAzureWorkloadContainer() (*AzureWorkloadContainer, bool) {
3137 return nil, false
3138 }
3139
3140
3141 func (asc AzureSQLContainer) AsBasicAzureWorkloadContainer() (BasicAzureWorkloadContainer, bool) {
3142 return nil, false
3143 }
3144
3145
3146 func (asc AzureSQLContainer) AsDpmContainer() (*DpmContainer, bool) {
3147 return nil, false
3148 }
3149
3150
3151 func (asc AzureSQLContainer) AsBasicDpmContainer() (BasicDpmContainer, bool) {
3152 return nil, false
3153 }
3154
3155
3156 func (asc AzureSQLContainer) AsGenericContainer() (*GenericContainer, bool) {
3157 return nil, false
3158 }
3159
3160
3161 func (asc AzureSQLContainer) AsIaaSVMContainer() (*IaaSVMContainer, bool) {
3162 return nil, false
3163 }
3164
3165
3166 func (asc AzureSQLContainer) AsBasicIaaSVMContainer() (BasicIaaSVMContainer, bool) {
3167 return nil, false
3168 }
3169
3170
3171 func (asc AzureSQLContainer) AsMabContainer() (*MabContainer, bool) {
3172 return nil, false
3173 }
3174
3175
3176 func (asc AzureSQLContainer) AsProtectionContainer() (*ProtectionContainer, bool) {
3177 return nil, false
3178 }
3179
3180
3181 func (asc AzureSQLContainer) AsBasicProtectionContainer() (BasicProtectionContainer, bool) {
3182 return &asc, true
3183 }
3184
3185
3186 type AzureSQLProtectedItem struct {
3187
3188 ProtectedItemDataID *string `json:"protectedItemDataId,omitempty"`
3189
3190 ProtectionState ProtectedItemState `json:"protectionState,omitempty"`
3191
3192 ExtendedInfo *AzureSQLProtectedItemExtendedInfo `json:"extendedInfo,omitempty"`
3193
3194 BackupManagementType ManagementType `json:"backupManagementType,omitempty"`
3195
3196 WorkloadType DataSourceType `json:"workloadType,omitempty"`
3197
3198 ContainerName *string `json:"containerName,omitempty"`
3199
3200 SourceResourceID *string `json:"sourceResourceId,omitempty"`
3201
3202 PolicyID *string `json:"policyId,omitempty"`
3203
3204 LastRecoveryPoint *date.Time `json:"lastRecoveryPoint,omitempty"`
3205
3206 BackupSetName *string `json:"backupSetName,omitempty"`
3207
3208 CreateMode CreateMode `json:"createMode,omitempty"`
3209
3210 DeferredDeleteTimeInUTC *date.Time `json:"deferredDeleteTimeInUTC,omitempty"`
3211
3212 IsScheduledForDeferredDelete *bool `json:"isScheduledForDeferredDelete,omitempty"`
3213
3214 DeferredDeleteTimeRemaining *string `json:"deferredDeleteTimeRemaining,omitempty"`
3215
3216 IsDeferredDeleteScheduleUpcoming *bool `json:"isDeferredDeleteScheduleUpcoming,omitempty"`
3217
3218 IsRehydrate *bool `json:"isRehydrate,omitempty"`
3219
3220 ProtectedItemType ProtectedItemType `json:"protectedItemType,omitempty"`
3221 }
3222
3223
3224 func (aspi AzureSQLProtectedItem) MarshalJSON() ([]byte, error) {
3225 aspi.ProtectedItemType = ProtectedItemTypeMicrosoftSqlserversdatabases
3226 objectMap := make(map[string]interface{})
3227 if aspi.ProtectedItemDataID != nil {
3228 objectMap["protectedItemDataId"] = aspi.ProtectedItemDataID
3229 }
3230 if aspi.ProtectionState != "" {
3231 objectMap["protectionState"] = aspi.ProtectionState
3232 }
3233 if aspi.ExtendedInfo != nil {
3234 objectMap["extendedInfo"] = aspi.ExtendedInfo
3235 }
3236 if aspi.BackupManagementType != "" {
3237 objectMap["backupManagementType"] = aspi.BackupManagementType
3238 }
3239 if aspi.WorkloadType != "" {
3240 objectMap["workloadType"] = aspi.WorkloadType
3241 }
3242 if aspi.ContainerName != nil {
3243 objectMap["containerName"] = aspi.ContainerName
3244 }
3245 if aspi.SourceResourceID != nil {
3246 objectMap["sourceResourceId"] = aspi.SourceResourceID
3247 }
3248 if aspi.PolicyID != nil {
3249 objectMap["policyId"] = aspi.PolicyID
3250 }
3251 if aspi.LastRecoveryPoint != nil {
3252 objectMap["lastRecoveryPoint"] = aspi.LastRecoveryPoint
3253 }
3254 if aspi.BackupSetName != nil {
3255 objectMap["backupSetName"] = aspi.BackupSetName
3256 }
3257 if aspi.CreateMode != "" {
3258 objectMap["createMode"] = aspi.CreateMode
3259 }
3260 if aspi.DeferredDeleteTimeInUTC != nil {
3261 objectMap["deferredDeleteTimeInUTC"] = aspi.DeferredDeleteTimeInUTC
3262 }
3263 if aspi.IsScheduledForDeferredDelete != nil {
3264 objectMap["isScheduledForDeferredDelete"] = aspi.IsScheduledForDeferredDelete
3265 }
3266 if aspi.DeferredDeleteTimeRemaining != nil {
3267 objectMap["deferredDeleteTimeRemaining"] = aspi.DeferredDeleteTimeRemaining
3268 }
3269 if aspi.IsDeferredDeleteScheduleUpcoming != nil {
3270 objectMap["isDeferredDeleteScheduleUpcoming"] = aspi.IsDeferredDeleteScheduleUpcoming
3271 }
3272 if aspi.IsRehydrate != nil {
3273 objectMap["isRehydrate"] = aspi.IsRehydrate
3274 }
3275 if aspi.ProtectedItemType != "" {
3276 objectMap["protectedItemType"] = aspi.ProtectedItemType
3277 }
3278 return json.Marshal(objectMap)
3279 }
3280
3281
3282 func (aspi AzureSQLProtectedItem) AsAzureFileshareProtectedItem() (*AzureFileshareProtectedItem, bool) {
3283 return nil, false
3284 }
3285
3286
3287 func (aspi AzureSQLProtectedItem) AsAzureIaaSClassicComputeVMProtectedItem() (*AzureIaaSClassicComputeVMProtectedItem, bool) {
3288 return nil, false
3289 }
3290
3291
3292 func (aspi AzureSQLProtectedItem) AsAzureIaaSComputeVMProtectedItem() (*AzureIaaSComputeVMProtectedItem, bool) {
3293 return nil, false
3294 }
3295
3296
3297 func (aspi AzureSQLProtectedItem) AsAzureIaaSVMProtectedItem() (*AzureIaaSVMProtectedItem, bool) {
3298 return nil, false
3299 }
3300
3301
3302 func (aspi AzureSQLProtectedItem) AsBasicAzureIaaSVMProtectedItem() (BasicAzureIaaSVMProtectedItem, bool) {
3303 return nil, false
3304 }
3305
3306
3307 func (aspi AzureSQLProtectedItem) AsAzureSQLProtectedItem() (*AzureSQLProtectedItem, bool) {
3308 return &aspi, true
3309 }
3310
3311
3312 func (aspi AzureSQLProtectedItem) AsAzureVMWorkloadProtectedItem() (*AzureVMWorkloadProtectedItem, bool) {
3313 return nil, false
3314 }
3315
3316
3317 func (aspi AzureSQLProtectedItem) AsBasicAzureVMWorkloadProtectedItem() (BasicAzureVMWorkloadProtectedItem, bool) {
3318 return nil, false
3319 }
3320
3321
3322 func (aspi AzureSQLProtectedItem) AsAzureVMWorkloadSAPAseDatabaseProtectedItem() (*AzureVMWorkloadSAPAseDatabaseProtectedItem, bool) {
3323 return nil, false
3324 }
3325
3326
3327 func (aspi AzureSQLProtectedItem) AsAzureVMWorkloadSAPHanaDatabaseProtectedItem() (*AzureVMWorkloadSAPHanaDatabaseProtectedItem, bool) {
3328 return nil, false
3329 }
3330
3331
3332 func (aspi AzureSQLProtectedItem) AsAzureVMWorkloadSQLDatabaseProtectedItem() (*AzureVMWorkloadSQLDatabaseProtectedItem, bool) {
3333 return nil, false
3334 }
3335
3336
3337 func (aspi AzureSQLProtectedItem) AsDPMProtectedItem() (*DPMProtectedItem, bool) {
3338 return nil, false
3339 }
3340
3341
3342 func (aspi AzureSQLProtectedItem) AsGenericProtectedItem() (*GenericProtectedItem, bool) {
3343 return nil, false
3344 }
3345
3346
3347 func (aspi AzureSQLProtectedItem) AsMabFileFolderProtectedItem() (*MabFileFolderProtectedItem, bool) {
3348 return nil, false
3349 }
3350
3351
3352 func (aspi AzureSQLProtectedItem) AsProtectedItem() (*ProtectedItem, bool) {
3353 return nil, false
3354 }
3355
3356
3357 func (aspi AzureSQLProtectedItem) AsBasicProtectedItem() (BasicProtectedItem, bool) {
3358 return &aspi, true
3359 }
3360
3361
3362 type AzureSQLProtectedItemExtendedInfo struct {
3363
3364 OldestRecoveryPoint *date.Time `json:"oldestRecoveryPoint,omitempty"`
3365
3366 RecoveryPointCount *int32 `json:"recoveryPointCount,omitempty"`
3367
3368 PolicyState *string `json:"policyState,omitempty"`
3369 }
3370
3371
3372 type AzureSQLProtectionPolicy struct {
3373
3374 RetentionPolicy BasicRetentionPolicy `json:"retentionPolicy,omitempty"`
3375
3376 ProtectedItemsCount *int32 `json:"protectedItemsCount,omitempty"`
3377
3378 BackupManagementType ManagementTypeBasicProtectionPolicy `json:"backupManagementType,omitempty"`
3379 }
3380
3381
3382 func (aspp AzureSQLProtectionPolicy) MarshalJSON() ([]byte, error) {
3383 aspp.BackupManagementType = BackupManagementTypeAzureSQL
3384 objectMap := make(map[string]interface{})
3385 objectMap["retentionPolicy"] = aspp.RetentionPolicy
3386 if aspp.ProtectedItemsCount != nil {
3387 objectMap["protectedItemsCount"] = aspp.ProtectedItemsCount
3388 }
3389 if aspp.BackupManagementType != "" {
3390 objectMap["backupManagementType"] = aspp.BackupManagementType
3391 }
3392 return json.Marshal(objectMap)
3393 }
3394
3395
3396 func (aspp AzureSQLProtectionPolicy) AsAzureVMWorkloadProtectionPolicy() (*AzureVMWorkloadProtectionPolicy, bool) {
3397 return nil, false
3398 }
3399
3400
3401 func (aspp AzureSQLProtectionPolicy) AsAzureFileShareProtectionPolicy() (*AzureFileShareProtectionPolicy, bool) {
3402 return nil, false
3403 }
3404
3405
3406 func (aspp AzureSQLProtectionPolicy) AsAzureIaaSVMProtectionPolicy() (*AzureIaaSVMProtectionPolicy, bool) {
3407 return nil, false
3408 }
3409
3410
3411 func (aspp AzureSQLProtectionPolicy) AsAzureSQLProtectionPolicy() (*AzureSQLProtectionPolicy, bool) {
3412 return &aspp, true
3413 }
3414
3415
3416 func (aspp AzureSQLProtectionPolicy) AsGenericProtectionPolicy() (*GenericProtectionPolicy, bool) {
3417 return nil, false
3418 }
3419
3420
3421 func (aspp AzureSQLProtectionPolicy) AsMabProtectionPolicy() (*MabProtectionPolicy, bool) {
3422 return nil, false
3423 }
3424
3425
3426 func (aspp AzureSQLProtectionPolicy) AsProtectionPolicy() (*ProtectionPolicy, bool) {
3427 return nil, false
3428 }
3429
3430
3431 func (aspp AzureSQLProtectionPolicy) AsBasicProtectionPolicy() (BasicProtectionPolicy, bool) {
3432 return &aspp, true
3433 }
3434
3435
3436 func (aspp *AzureSQLProtectionPolicy) UnmarshalJSON(body []byte) error {
3437 var m map[string]*json.RawMessage
3438 err := json.Unmarshal(body, &m)
3439 if err != nil {
3440 return err
3441 }
3442 for k, v := range m {
3443 switch k {
3444 case "retentionPolicy":
3445 if v != nil {
3446 retentionPolicy, err := unmarshalBasicRetentionPolicy(*v)
3447 if err != nil {
3448 return err
3449 }
3450 aspp.RetentionPolicy = retentionPolicy
3451 }
3452 case "protectedItemsCount":
3453 if v != nil {
3454 var protectedItemsCount int32
3455 err = json.Unmarshal(*v, &protectedItemsCount)
3456 if err != nil {
3457 return err
3458 }
3459 aspp.ProtectedItemsCount = &protectedItemsCount
3460 }
3461 case "backupManagementType":
3462 if v != nil {
3463 var backupManagementType ManagementTypeBasicProtectionPolicy
3464 err = json.Unmarshal(*v, &backupManagementType)
3465 if err != nil {
3466 return err
3467 }
3468 aspp.BackupManagementType = backupManagementType
3469 }
3470 }
3471 }
3472
3473 return nil
3474 }
3475
3476
3477 type AzureStorageContainer struct {
3478
3479 SourceResourceID *string `json:"sourceResourceId,omitempty"`
3480
3481 StorageAccountVersion *string `json:"storageAccountVersion,omitempty"`
3482
3483 ResourceGroup *string `json:"resourceGroup,omitempty"`
3484
3485 ProtectedItemCount *int64 `json:"protectedItemCount,omitempty"`
3486
3487 FriendlyName *string `json:"friendlyName,omitempty"`
3488
3489 BackupManagementType ManagementType `json:"backupManagementType,omitempty"`
3490
3491 RegistrationStatus *string `json:"registrationStatus,omitempty"`
3492
3493 HealthStatus *string `json:"healthStatus,omitempty"`
3494
3495 ContainerType ContainerTypeBasicProtectionContainer `json:"containerType,omitempty"`
3496 }
3497
3498
3499 func (asc AzureStorageContainer) MarshalJSON() ([]byte, error) {
3500 asc.ContainerType = ContainerTypeStorageContainer1
3501 objectMap := make(map[string]interface{})
3502 if asc.SourceResourceID != nil {
3503 objectMap["sourceResourceId"] = asc.SourceResourceID
3504 }
3505 if asc.StorageAccountVersion != nil {
3506 objectMap["storageAccountVersion"] = asc.StorageAccountVersion
3507 }
3508 if asc.ResourceGroup != nil {
3509 objectMap["resourceGroup"] = asc.ResourceGroup
3510 }
3511 if asc.ProtectedItemCount != nil {
3512 objectMap["protectedItemCount"] = asc.ProtectedItemCount
3513 }
3514 if asc.FriendlyName != nil {
3515 objectMap["friendlyName"] = asc.FriendlyName
3516 }
3517 if asc.BackupManagementType != "" {
3518 objectMap["backupManagementType"] = asc.BackupManagementType
3519 }
3520 if asc.RegistrationStatus != nil {
3521 objectMap["registrationStatus"] = asc.RegistrationStatus
3522 }
3523 if asc.HealthStatus != nil {
3524 objectMap["healthStatus"] = asc.HealthStatus
3525 }
3526 if asc.ContainerType != "" {
3527 objectMap["containerType"] = asc.ContainerType
3528 }
3529 return json.Marshal(objectMap)
3530 }
3531
3532
3533 func (asc AzureStorageContainer) AsAzureBackupServerContainer() (*AzureBackupServerContainer, bool) {
3534 return nil, false
3535 }
3536
3537
3538 func (asc AzureStorageContainer) AsAzureIaaSClassicComputeVMContainer() (*AzureIaaSClassicComputeVMContainer, bool) {
3539 return nil, false
3540 }
3541
3542
3543 func (asc AzureStorageContainer) AsAzureIaaSComputeVMContainer() (*AzureIaaSComputeVMContainer, bool) {
3544 return nil, false
3545 }
3546
3547
3548 func (asc AzureStorageContainer) AsAzureSQLAGWorkloadContainerProtectionContainer() (*AzureSQLAGWorkloadContainerProtectionContainer, bool) {
3549 return nil, false
3550 }
3551
3552
3553 func (asc AzureStorageContainer) AsAzureSQLContainer() (*AzureSQLContainer, bool) {
3554 return nil, false
3555 }
3556
3557
3558 func (asc AzureStorageContainer) AsAzureStorageContainer() (*AzureStorageContainer, bool) {
3559 return &asc, true
3560 }
3561
3562
3563 func (asc AzureStorageContainer) AsAzureVMAppContainerProtectionContainer() (*AzureVMAppContainerProtectionContainer, bool) {
3564 return nil, false
3565 }
3566
3567
3568 func (asc AzureStorageContainer) AsAzureWorkloadContainer() (*AzureWorkloadContainer, bool) {
3569 return nil, false
3570 }
3571
3572
3573 func (asc AzureStorageContainer) AsBasicAzureWorkloadContainer() (BasicAzureWorkloadContainer, bool) {
3574 return nil, false
3575 }
3576
3577
3578 func (asc AzureStorageContainer) AsDpmContainer() (*DpmContainer, bool) {
3579 return nil, false
3580 }
3581
3582
3583 func (asc AzureStorageContainer) AsBasicDpmContainer() (BasicDpmContainer, bool) {
3584 return nil, false
3585 }
3586
3587
3588 func (asc AzureStorageContainer) AsGenericContainer() (*GenericContainer, bool) {
3589 return nil, false
3590 }
3591
3592
3593 func (asc AzureStorageContainer) AsIaaSVMContainer() (*IaaSVMContainer, bool) {
3594 return nil, false
3595 }
3596
3597
3598 func (asc AzureStorageContainer) AsBasicIaaSVMContainer() (BasicIaaSVMContainer, bool) {
3599 return nil, false
3600 }
3601
3602
3603 func (asc AzureStorageContainer) AsMabContainer() (*MabContainer, bool) {
3604 return nil, false
3605 }
3606
3607
3608 func (asc AzureStorageContainer) AsProtectionContainer() (*ProtectionContainer, bool) {
3609 return nil, false
3610 }
3611
3612
3613 func (asc AzureStorageContainer) AsBasicProtectionContainer() (BasicProtectionContainer, bool) {
3614 return &asc, true
3615 }
3616
3617
3618 type AzureStorageErrorInfo struct {
3619
3620 ErrorCode *int32 `json:"errorCode,omitempty"`
3621
3622 ErrorString *string `json:"errorString,omitempty"`
3623
3624 Recommendations *[]string `json:"recommendations,omitempty"`
3625 }
3626
3627
3628 type AzureStorageJob struct {
3629
3630 Duration *string `json:"duration,omitempty"`
3631
3632 ActionsInfo *[]JobSupportedAction `json:"actionsInfo,omitempty"`
3633
3634 ErrorDetails *[]AzureStorageErrorInfo `json:"errorDetails,omitempty"`
3635
3636 StorageAccountName *string `json:"storageAccountName,omitempty"`
3637
3638 StorageAccountVersion *string `json:"storageAccountVersion,omitempty"`
3639
3640 ExtendedInfo *AzureStorageJobExtendedInfo `json:"extendedInfo,omitempty"`
3641
3642 EntityFriendlyName *string `json:"entityFriendlyName,omitempty"`
3643
3644 BackupManagementType ManagementType `json:"backupManagementType,omitempty"`
3645
3646 Operation *string `json:"operation,omitempty"`
3647
3648 Status *string `json:"status,omitempty"`
3649
3650 StartTime *date.Time `json:"startTime,omitempty"`
3651
3652 EndTime *date.Time `json:"endTime,omitempty"`
3653
3654 ActivityID *string `json:"activityId,omitempty"`
3655
3656 JobType JobType `json:"jobType,omitempty"`
3657 }
3658
3659
3660 func (asj AzureStorageJob) MarshalJSON() ([]byte, error) {
3661 asj.JobType = JobTypeAzureStorageJob
3662 objectMap := make(map[string]interface{})
3663 if asj.Duration != nil {
3664 objectMap["duration"] = asj.Duration
3665 }
3666 if asj.ActionsInfo != nil {
3667 objectMap["actionsInfo"] = asj.ActionsInfo
3668 }
3669 if asj.ErrorDetails != nil {
3670 objectMap["errorDetails"] = asj.ErrorDetails
3671 }
3672 if asj.StorageAccountName != nil {
3673 objectMap["storageAccountName"] = asj.StorageAccountName
3674 }
3675 if asj.StorageAccountVersion != nil {
3676 objectMap["storageAccountVersion"] = asj.StorageAccountVersion
3677 }
3678 if asj.ExtendedInfo != nil {
3679 objectMap["extendedInfo"] = asj.ExtendedInfo
3680 }
3681 if asj.EntityFriendlyName != nil {
3682 objectMap["entityFriendlyName"] = asj.EntityFriendlyName
3683 }
3684 if asj.BackupManagementType != "" {
3685 objectMap["backupManagementType"] = asj.BackupManagementType
3686 }
3687 if asj.Operation != nil {
3688 objectMap["operation"] = asj.Operation
3689 }
3690 if asj.Status != nil {
3691 objectMap["status"] = asj.Status
3692 }
3693 if asj.StartTime != nil {
3694 objectMap["startTime"] = asj.StartTime
3695 }
3696 if asj.EndTime != nil {
3697 objectMap["endTime"] = asj.EndTime
3698 }
3699 if asj.ActivityID != nil {
3700 objectMap["activityId"] = asj.ActivityID
3701 }
3702 if asj.JobType != "" {
3703 objectMap["jobType"] = asj.JobType
3704 }
3705 return json.Marshal(objectMap)
3706 }
3707
3708
3709 func (asj AzureStorageJob) AsAzureIaaSVMJob() (*AzureIaaSVMJob, bool) {
3710 return nil, false
3711 }
3712
3713
3714 func (asj AzureStorageJob) AsAzureStorageJob() (*AzureStorageJob, bool) {
3715 return &asj, true
3716 }
3717
3718
3719 func (asj AzureStorageJob) AsAzureWorkloadJob() (*AzureWorkloadJob, bool) {
3720 return nil, false
3721 }
3722
3723
3724 func (asj AzureStorageJob) AsDpmJob() (*DpmJob, bool) {
3725 return nil, false
3726 }
3727
3728
3729 func (asj AzureStorageJob) AsMabJob() (*MabJob, bool) {
3730 return nil, false
3731 }
3732
3733
3734 func (asj AzureStorageJob) AsJob() (*Job, bool) {
3735 return nil, false
3736 }
3737
3738
3739 func (asj AzureStorageJob) AsBasicJob() (BasicJob, bool) {
3740 return &asj, true
3741 }
3742
3743
3744 type AzureStorageJobExtendedInfo struct {
3745
3746 TasksList *[]AzureStorageJobTaskDetails `json:"tasksList,omitempty"`
3747
3748 PropertyBag map[string]*string `json:"propertyBag"`
3749
3750 DynamicErrorMessage *string `json:"dynamicErrorMessage,omitempty"`
3751 }
3752
3753
3754 func (asjei AzureStorageJobExtendedInfo) MarshalJSON() ([]byte, error) {
3755 objectMap := make(map[string]interface{})
3756 if asjei.TasksList != nil {
3757 objectMap["tasksList"] = asjei.TasksList
3758 }
3759 if asjei.PropertyBag != nil {
3760 objectMap["propertyBag"] = asjei.PropertyBag
3761 }
3762 if asjei.DynamicErrorMessage != nil {
3763 objectMap["dynamicErrorMessage"] = asjei.DynamicErrorMessage
3764 }
3765 return json.Marshal(objectMap)
3766 }
3767
3768
3769 type AzureStorageJobTaskDetails struct {
3770
3771 TaskID *string `json:"taskId,omitempty"`
3772
3773 Status *string `json:"status,omitempty"`
3774 }
3775
3776
3777 type AzureStorageProtectableContainer struct {
3778
3779 FriendlyName *string `json:"friendlyName,omitempty"`
3780
3781 BackupManagementType ManagementType `json:"backupManagementType,omitempty"`
3782
3783 HealthStatus *string `json:"healthStatus,omitempty"`
3784
3785 ContainerID *string `json:"containerId,omitempty"`
3786
3787 ProtectableContainerType ProtectableContainerType `json:"protectableContainerType,omitempty"`
3788 }
3789
3790
3791 func (aspc AzureStorageProtectableContainer) MarshalJSON() ([]byte, error) {
3792 aspc.ProtectableContainerType = ProtectableContainerTypeStorageContainer
3793 objectMap := make(map[string]interface{})
3794 if aspc.FriendlyName != nil {
3795 objectMap["friendlyName"] = aspc.FriendlyName
3796 }
3797 if aspc.BackupManagementType != "" {
3798 objectMap["backupManagementType"] = aspc.BackupManagementType
3799 }
3800 if aspc.HealthStatus != nil {
3801 objectMap["healthStatus"] = aspc.HealthStatus
3802 }
3803 if aspc.ContainerID != nil {
3804 objectMap["containerId"] = aspc.ContainerID
3805 }
3806 if aspc.ProtectableContainerType != "" {
3807 objectMap["protectableContainerType"] = aspc.ProtectableContainerType
3808 }
3809 return json.Marshal(objectMap)
3810 }
3811
3812
3813 func (aspc AzureStorageProtectableContainer) AsAzureStorageProtectableContainer() (*AzureStorageProtectableContainer, bool) {
3814 return &aspc, true
3815 }
3816
3817
3818 func (aspc AzureStorageProtectableContainer) AsAzureVMAppContainerProtectableContainer() (*AzureVMAppContainerProtectableContainer, bool) {
3819 return nil, false
3820 }
3821
3822
3823 func (aspc AzureStorageProtectableContainer) AsProtectableContainer() (*ProtectableContainer, bool) {
3824 return nil, false
3825 }
3826
3827
3828 func (aspc AzureStorageProtectableContainer) AsBasicProtectableContainer() (BasicProtectableContainer, bool) {
3829 return &aspc, true
3830 }
3831
3832
3833 type AzureVMAppContainerProtectableContainer struct {
3834
3835 FriendlyName *string `json:"friendlyName,omitempty"`
3836
3837 BackupManagementType ManagementType `json:"backupManagementType,omitempty"`
3838
3839 HealthStatus *string `json:"healthStatus,omitempty"`
3840
3841 ContainerID *string `json:"containerId,omitempty"`
3842
3843 ProtectableContainerType ProtectableContainerType `json:"protectableContainerType,omitempty"`
3844 }
3845
3846
3847 func (avacpc AzureVMAppContainerProtectableContainer) MarshalJSON() ([]byte, error) {
3848 avacpc.ProtectableContainerType = ProtectableContainerTypeVMAppContainer
3849 objectMap := make(map[string]interface{})
3850 if avacpc.FriendlyName != nil {
3851 objectMap["friendlyName"] = avacpc.FriendlyName
3852 }
3853 if avacpc.BackupManagementType != "" {
3854 objectMap["backupManagementType"] = avacpc.BackupManagementType
3855 }
3856 if avacpc.HealthStatus != nil {
3857 objectMap["healthStatus"] = avacpc.HealthStatus
3858 }
3859 if avacpc.ContainerID != nil {
3860 objectMap["containerId"] = avacpc.ContainerID
3861 }
3862 if avacpc.ProtectableContainerType != "" {
3863 objectMap["protectableContainerType"] = avacpc.ProtectableContainerType
3864 }
3865 return json.Marshal(objectMap)
3866 }
3867
3868
3869 func (avacpc AzureVMAppContainerProtectableContainer) AsAzureStorageProtectableContainer() (*AzureStorageProtectableContainer, bool) {
3870 return nil, false
3871 }
3872
3873
3874 func (avacpc AzureVMAppContainerProtectableContainer) AsAzureVMAppContainerProtectableContainer() (*AzureVMAppContainerProtectableContainer, bool) {
3875 return &avacpc, true
3876 }
3877
3878
3879 func (avacpc AzureVMAppContainerProtectableContainer) AsProtectableContainer() (*ProtectableContainer, bool) {
3880 return nil, false
3881 }
3882
3883
3884 func (avacpc AzureVMAppContainerProtectableContainer) AsBasicProtectableContainer() (BasicProtectableContainer, bool) {
3885 return &avacpc, true
3886 }
3887
3888
3889 type AzureVMAppContainerProtectionContainer struct {
3890
3891 SourceResourceID *string `json:"sourceResourceId,omitempty"`
3892
3893 LastUpdatedTime *date.Time `json:"lastUpdatedTime,omitempty"`
3894
3895 ExtendedInfo *AzureWorkloadContainerExtendedInfo `json:"extendedInfo,omitempty"`
3896
3897 WorkloadType WorkloadType `json:"workloadType,omitempty"`
3898
3899 OperationType OperationType `json:"operationType,omitempty"`
3900
3901 FriendlyName *string `json:"friendlyName,omitempty"`
3902
3903 BackupManagementType ManagementType `json:"backupManagementType,omitempty"`
3904
3905 RegistrationStatus *string `json:"registrationStatus,omitempty"`
3906
3907 HealthStatus *string `json:"healthStatus,omitempty"`
3908
3909 ContainerType ContainerTypeBasicProtectionContainer `json:"containerType,omitempty"`
3910 }
3911
3912
3913 func (avacpc AzureVMAppContainerProtectionContainer) MarshalJSON() ([]byte, error) {
3914 avacpc.ContainerType = ContainerTypeVMAppContainer1
3915 objectMap := make(map[string]interface{})
3916 if avacpc.SourceResourceID != nil {
3917 objectMap["sourceResourceId"] = avacpc.SourceResourceID
3918 }
3919 if avacpc.LastUpdatedTime != nil {
3920 objectMap["lastUpdatedTime"] = avacpc.LastUpdatedTime
3921 }
3922 if avacpc.ExtendedInfo != nil {
3923 objectMap["extendedInfo"] = avacpc.ExtendedInfo
3924 }
3925 if avacpc.WorkloadType != "" {
3926 objectMap["workloadType"] = avacpc.WorkloadType
3927 }
3928 if avacpc.OperationType != "" {
3929 objectMap["operationType"] = avacpc.OperationType
3930 }
3931 if avacpc.FriendlyName != nil {
3932 objectMap["friendlyName"] = avacpc.FriendlyName
3933 }
3934 if avacpc.BackupManagementType != "" {
3935 objectMap["backupManagementType"] = avacpc.BackupManagementType
3936 }
3937 if avacpc.RegistrationStatus != nil {
3938 objectMap["registrationStatus"] = avacpc.RegistrationStatus
3939 }
3940 if avacpc.HealthStatus != nil {
3941 objectMap["healthStatus"] = avacpc.HealthStatus
3942 }
3943 if avacpc.ContainerType != "" {
3944 objectMap["containerType"] = avacpc.ContainerType
3945 }
3946 return json.Marshal(objectMap)
3947 }
3948
3949
3950 func (avacpc AzureVMAppContainerProtectionContainer) AsAzureBackupServerContainer() (*AzureBackupServerContainer, bool) {
3951 return nil, false
3952 }
3953
3954
3955 func (avacpc AzureVMAppContainerProtectionContainer) AsAzureIaaSClassicComputeVMContainer() (*AzureIaaSClassicComputeVMContainer, bool) {
3956 return nil, false
3957 }
3958
3959
3960 func (avacpc AzureVMAppContainerProtectionContainer) AsAzureIaaSComputeVMContainer() (*AzureIaaSComputeVMContainer, bool) {
3961 return nil, false
3962 }
3963
3964
3965 func (avacpc AzureVMAppContainerProtectionContainer) AsAzureSQLAGWorkloadContainerProtectionContainer() (*AzureSQLAGWorkloadContainerProtectionContainer, bool) {
3966 return nil, false
3967 }
3968
3969
3970 func (avacpc AzureVMAppContainerProtectionContainer) AsAzureSQLContainer() (*AzureSQLContainer, bool) {
3971 return nil, false
3972 }
3973
3974
3975 func (avacpc AzureVMAppContainerProtectionContainer) AsAzureStorageContainer() (*AzureStorageContainer, bool) {
3976 return nil, false
3977 }
3978
3979
3980 func (avacpc AzureVMAppContainerProtectionContainer) AsAzureVMAppContainerProtectionContainer() (*AzureVMAppContainerProtectionContainer, bool) {
3981 return &avacpc, true
3982 }
3983
3984
3985 func (avacpc AzureVMAppContainerProtectionContainer) AsAzureWorkloadContainer() (*AzureWorkloadContainer, bool) {
3986 return nil, false
3987 }
3988
3989
3990 func (avacpc AzureVMAppContainerProtectionContainer) AsBasicAzureWorkloadContainer() (BasicAzureWorkloadContainer, bool) {
3991 return &avacpc, true
3992 }
3993
3994
3995 func (avacpc AzureVMAppContainerProtectionContainer) AsDpmContainer() (*DpmContainer, bool) {
3996 return nil, false
3997 }
3998
3999
4000 func (avacpc AzureVMAppContainerProtectionContainer) AsBasicDpmContainer() (BasicDpmContainer, bool) {
4001 return nil, false
4002 }
4003
4004
4005 func (avacpc AzureVMAppContainerProtectionContainer) AsGenericContainer() (*GenericContainer, bool) {
4006 return nil, false
4007 }
4008
4009
4010 func (avacpc AzureVMAppContainerProtectionContainer) AsIaaSVMContainer() (*IaaSVMContainer, bool) {
4011 return nil, false
4012 }
4013
4014
4015 func (avacpc AzureVMAppContainerProtectionContainer) AsBasicIaaSVMContainer() (BasicIaaSVMContainer, bool) {
4016 return nil, false
4017 }
4018
4019
4020 func (avacpc AzureVMAppContainerProtectionContainer) AsMabContainer() (*MabContainer, bool) {
4021 return nil, false
4022 }
4023
4024
4025 func (avacpc AzureVMAppContainerProtectionContainer) AsProtectionContainer() (*ProtectionContainer, bool) {
4026 return nil, false
4027 }
4028
4029
4030 func (avacpc AzureVMAppContainerProtectionContainer) AsBasicProtectionContainer() (BasicProtectionContainer, bool) {
4031 return &avacpc, true
4032 }
4033
4034
4035 type AzureVMResourceFeatureSupportRequest struct {
4036
4037 VMSize *string `json:"vmSize,omitempty"`
4038
4039 VMSku *string `json:"vmSku,omitempty"`
4040
4041 FeatureType FeatureType `json:"featureType,omitempty"`
4042 }
4043
4044
4045 func (avrfsr AzureVMResourceFeatureSupportRequest) MarshalJSON() ([]byte, error) {
4046 avrfsr.FeatureType = FeatureTypeAzureVMResourceBackup
4047 objectMap := make(map[string]interface{})
4048 if avrfsr.VMSize != nil {
4049 objectMap["vmSize"] = avrfsr.VMSize
4050 }
4051 if avrfsr.VMSku != nil {
4052 objectMap["vmSku"] = avrfsr.VMSku
4053 }
4054 if avrfsr.FeatureType != "" {
4055 objectMap["featureType"] = avrfsr.FeatureType
4056 }
4057 return json.Marshal(objectMap)
4058 }
4059
4060
4061 func (avrfsr AzureVMResourceFeatureSupportRequest) AsAzureBackupGoalFeatureSupportRequest() (*AzureBackupGoalFeatureSupportRequest, bool) {
4062 return nil, false
4063 }
4064
4065
4066 func (avrfsr AzureVMResourceFeatureSupportRequest) AsAzureVMResourceFeatureSupportRequest() (*AzureVMResourceFeatureSupportRequest, bool) {
4067 return &avrfsr, true
4068 }
4069
4070
4071 func (avrfsr AzureVMResourceFeatureSupportRequest) AsFeatureSupportRequest() (*FeatureSupportRequest, bool) {
4072 return nil, false
4073 }
4074
4075
4076 func (avrfsr AzureVMResourceFeatureSupportRequest) AsBasicFeatureSupportRequest() (BasicFeatureSupportRequest, bool) {
4077 return &avrfsr, true
4078 }
4079
4080
4081 type AzureVMResourceFeatureSupportResponse struct {
4082 autorest.Response `json:"-"`
4083
4084 SupportStatus SupportStatus `json:"supportStatus,omitempty"`
4085 }
4086
4087
4088 type BasicAzureVMWorkloadItem interface {
4089 AsAzureVMWorkloadSAPAseDatabaseWorkloadItem() (*AzureVMWorkloadSAPAseDatabaseWorkloadItem, bool)
4090 AsAzureVMWorkloadSAPAseSystemWorkloadItem() (*AzureVMWorkloadSAPAseSystemWorkloadItem, bool)
4091 AsAzureVMWorkloadSAPHanaDatabaseWorkloadItem() (*AzureVMWorkloadSAPHanaDatabaseWorkloadItem, bool)
4092 AsAzureVMWorkloadSAPHanaSystemWorkloadItem() (*AzureVMWorkloadSAPHanaSystemWorkloadItem, bool)
4093 AsAzureVMWorkloadSQLDatabaseWorkloadItem() (*AzureVMWorkloadSQLDatabaseWorkloadItem, bool)
4094 AsAzureVMWorkloadSQLInstanceWorkloadItem() (*AzureVMWorkloadSQLInstanceWorkloadItem, bool)
4095 AsAzureVMWorkloadItem() (*AzureVMWorkloadItem, bool)
4096 }
4097
4098
4099 type AzureVMWorkloadItem struct {
4100
4101 ParentName *string `json:"parentName,omitempty"`
4102
4103 ServerName *string `json:"serverName,omitempty"`
4104
4105 IsAutoProtectable *bool `json:"isAutoProtectable,omitempty"`
4106
4107 Subinquireditemcount *int32 `json:"subinquireditemcount,omitempty"`
4108
4109 SubWorkloadItemCount *int32 `json:"subWorkloadItemCount,omitempty"`
4110
4111 BackupManagementType *string `json:"backupManagementType,omitempty"`
4112
4113 WorkloadType *string `json:"workloadType,omitempty"`
4114
4115 FriendlyName *string `json:"friendlyName,omitempty"`
4116
4117 ProtectionState ProtectionStatus `json:"protectionState,omitempty"`
4118
4119 WorkloadItemType WorkloadItemTypeBasicWorkloadItem `json:"workloadItemType,omitempty"`
4120 }
4121
4122 func unmarshalBasicAzureVMWorkloadItem(body []byte) (BasicAzureVMWorkloadItem, error) {
4123 var m map[string]interface{}
4124 err := json.Unmarshal(body, &m)
4125 if err != nil {
4126 return nil, err
4127 }
4128
4129 switch m["workloadItemType"] {
4130 case string(WorkloadItemTypeSAPAseDatabase1):
4131 var avwsadwi AzureVMWorkloadSAPAseDatabaseWorkloadItem
4132 err := json.Unmarshal(body, &avwsadwi)
4133 return avwsadwi, err
4134 case string(WorkloadItemTypeSAPAseSystem1):
4135 var avwsaswi AzureVMWorkloadSAPAseSystemWorkloadItem
4136 err := json.Unmarshal(body, &avwsaswi)
4137 return avwsaswi, err
4138 case string(WorkloadItemTypeSAPHanaDatabase1):
4139 var avwshdwi AzureVMWorkloadSAPHanaDatabaseWorkloadItem
4140 err := json.Unmarshal(body, &avwshdwi)
4141 return avwshdwi, err
4142 case string(WorkloadItemTypeSAPHanaSystem1):
4143 var avwshswi AzureVMWorkloadSAPHanaSystemWorkloadItem
4144 err := json.Unmarshal(body, &avwshswi)
4145 return avwshswi, err
4146 case string(WorkloadItemTypeSQLDataBase1):
4147 var avwsdwi AzureVMWorkloadSQLDatabaseWorkloadItem
4148 err := json.Unmarshal(body, &avwsdwi)
4149 return avwsdwi, err
4150 case string(WorkloadItemTypeSQLInstance1):
4151 var avwsiwi AzureVMWorkloadSQLInstanceWorkloadItem
4152 err := json.Unmarshal(body, &avwsiwi)
4153 return avwsiwi, err
4154 default:
4155 var avwi AzureVMWorkloadItem
4156 err := json.Unmarshal(body, &avwi)
4157 return avwi, err
4158 }
4159 }
4160 func unmarshalBasicAzureVMWorkloadItemArray(body []byte) ([]BasicAzureVMWorkloadItem, error) {
4161 var rawMessages []*json.RawMessage
4162 err := json.Unmarshal(body, &rawMessages)
4163 if err != nil {
4164 return nil, err
4165 }
4166
4167 avwiArray := make([]BasicAzureVMWorkloadItem, len(rawMessages))
4168
4169 for index, rawMessage := range rawMessages {
4170 avwi, err := unmarshalBasicAzureVMWorkloadItem(*rawMessage)
4171 if err != nil {
4172 return nil, err
4173 }
4174 avwiArray[index] = avwi
4175 }
4176 return avwiArray, nil
4177 }
4178
4179
4180 func (avwi AzureVMWorkloadItem) MarshalJSON() ([]byte, error) {
4181 avwi.WorkloadItemType = WorkloadItemTypeAzureVMWorkloadItem
4182 objectMap := make(map[string]interface{})
4183 if avwi.ParentName != nil {
4184 objectMap["parentName"] = avwi.ParentName
4185 }
4186 if avwi.ServerName != nil {
4187 objectMap["serverName"] = avwi.ServerName
4188 }
4189 if avwi.IsAutoProtectable != nil {
4190 objectMap["isAutoProtectable"] = avwi.IsAutoProtectable
4191 }
4192 if avwi.Subinquireditemcount != nil {
4193 objectMap["subinquireditemcount"] = avwi.Subinquireditemcount
4194 }
4195 if avwi.SubWorkloadItemCount != nil {
4196 objectMap["subWorkloadItemCount"] = avwi.SubWorkloadItemCount
4197 }
4198 if avwi.BackupManagementType != nil {
4199 objectMap["backupManagementType"] = avwi.BackupManagementType
4200 }
4201 if avwi.WorkloadType != nil {
4202 objectMap["workloadType"] = avwi.WorkloadType
4203 }
4204 if avwi.FriendlyName != nil {
4205 objectMap["friendlyName"] = avwi.FriendlyName
4206 }
4207 if avwi.ProtectionState != "" {
4208 objectMap["protectionState"] = avwi.ProtectionState
4209 }
4210 if avwi.WorkloadItemType != "" {
4211 objectMap["workloadItemType"] = avwi.WorkloadItemType
4212 }
4213 return json.Marshal(objectMap)
4214 }
4215
4216
4217 func (avwi AzureVMWorkloadItem) AsAzureVMWorkloadItem() (*AzureVMWorkloadItem, bool) {
4218 return &avwi, true
4219 }
4220
4221
4222 func (avwi AzureVMWorkloadItem) AsBasicAzureVMWorkloadItem() (BasicAzureVMWorkloadItem, bool) {
4223 return &avwi, true
4224 }
4225
4226
4227 func (avwi AzureVMWorkloadItem) AsAzureVMWorkloadSAPAseDatabaseWorkloadItem() (*AzureVMWorkloadSAPAseDatabaseWorkloadItem, bool) {
4228 return nil, false
4229 }
4230
4231
4232 func (avwi AzureVMWorkloadItem) AsAzureVMWorkloadSAPAseSystemWorkloadItem() (*AzureVMWorkloadSAPAseSystemWorkloadItem, bool) {
4233 return nil, false
4234 }
4235
4236
4237 func (avwi AzureVMWorkloadItem) AsAzureVMWorkloadSAPHanaDatabaseWorkloadItem() (*AzureVMWorkloadSAPHanaDatabaseWorkloadItem, bool) {
4238 return nil, false
4239 }
4240
4241
4242 func (avwi AzureVMWorkloadItem) AsAzureVMWorkloadSAPHanaSystemWorkloadItem() (*AzureVMWorkloadSAPHanaSystemWorkloadItem, bool) {
4243 return nil, false
4244 }
4245
4246
4247 func (avwi AzureVMWorkloadItem) AsAzureVMWorkloadSQLDatabaseWorkloadItem() (*AzureVMWorkloadSQLDatabaseWorkloadItem, bool) {
4248 return nil, false
4249 }
4250
4251
4252 func (avwi AzureVMWorkloadItem) AsAzureVMWorkloadSQLInstanceWorkloadItem() (*AzureVMWorkloadSQLInstanceWorkloadItem, bool) {
4253 return nil, false
4254 }
4255
4256
4257 func (avwi AzureVMWorkloadItem) AsWorkloadItem() (*WorkloadItem, bool) {
4258 return nil, false
4259 }
4260
4261
4262 func (avwi AzureVMWorkloadItem) AsBasicWorkloadItem() (BasicWorkloadItem, bool) {
4263 return &avwi, true
4264 }
4265
4266
4267 type BasicAzureVMWorkloadProtectableItem interface {
4268 AsAzureVMWorkloadSAPAseSystemProtectableItem() (*AzureVMWorkloadSAPAseSystemProtectableItem, bool)
4269 AsAzureVMWorkloadSAPHanaDatabaseProtectableItem() (*AzureVMWorkloadSAPHanaDatabaseProtectableItem, bool)
4270 AsAzureVMWorkloadSAPHanaSystemProtectableItem() (*AzureVMWorkloadSAPHanaSystemProtectableItem, bool)
4271 AsAzureVMWorkloadSQLAvailabilityGroupProtectableItem() (*AzureVMWorkloadSQLAvailabilityGroupProtectableItem, bool)
4272 AsAzureVMWorkloadSQLDatabaseProtectableItem() (*AzureVMWorkloadSQLDatabaseProtectableItem, bool)
4273 AsAzureVMWorkloadSQLInstanceProtectableItem() (*AzureVMWorkloadSQLInstanceProtectableItem, bool)
4274 AsAzureVMWorkloadProtectableItem() (*AzureVMWorkloadProtectableItem, bool)
4275 }
4276
4277
4278 type AzureVMWorkloadProtectableItem struct {
4279
4280 ParentName *string `json:"parentName,omitempty"`
4281
4282
4283 ParentUniqueName *string `json:"parentUniqueName,omitempty"`
4284
4285 ServerName *string `json:"serverName,omitempty"`
4286
4287 IsAutoProtectable *bool `json:"isAutoProtectable,omitempty"`
4288
4289 IsAutoProtected *bool `json:"isAutoProtected,omitempty"`
4290
4291 Subinquireditemcount *int32 `json:"subinquireditemcount,omitempty"`
4292
4293 Subprotectableitemcount *int32 `json:"subprotectableitemcount,omitempty"`
4294
4295 Prebackupvalidation *PreBackupValidation `json:"prebackupvalidation,omitempty"`
4296
4297 BackupManagementType *string `json:"backupManagementType,omitempty"`
4298
4299 WorkloadType *string `json:"workloadType,omitempty"`
4300
4301 FriendlyName *string `json:"friendlyName,omitempty"`
4302
4303 ProtectionState ProtectionStatus `json:"protectionState,omitempty"`
4304
4305 ProtectableItemType ProtectableItemType `json:"protectableItemType,omitempty"`
4306 }
4307
4308 func unmarshalBasicAzureVMWorkloadProtectableItem(body []byte) (BasicAzureVMWorkloadProtectableItem, error) {
4309 var m map[string]interface{}
4310 err := json.Unmarshal(body, &m)
4311 if err != nil {
4312 return nil, err
4313 }
4314
4315 switch m["protectableItemType"] {
4316 case string(ProtectableItemTypeSAPAseSystem):
4317 var avwsaspi AzureVMWorkloadSAPAseSystemProtectableItem
4318 err := json.Unmarshal(body, &avwsaspi)
4319 return avwsaspi, err
4320 case string(ProtectableItemTypeSAPHanaDatabase):
4321 var avwshdpi AzureVMWorkloadSAPHanaDatabaseProtectableItem
4322 err := json.Unmarshal(body, &avwshdpi)
4323 return avwshdpi, err
4324 case string(ProtectableItemTypeSAPHanaSystem):
4325 var avwshspi AzureVMWorkloadSAPHanaSystemProtectableItem
4326 err := json.Unmarshal(body, &avwshspi)
4327 return avwshspi, err
4328 case string(ProtectableItemTypeSQLAvailabilityGroupContainer):
4329 var avwsagpi AzureVMWorkloadSQLAvailabilityGroupProtectableItem
4330 err := json.Unmarshal(body, &avwsagpi)
4331 return avwsagpi, err
4332 case string(ProtectableItemTypeSQLDataBase):
4333 var avwsdpi AzureVMWorkloadSQLDatabaseProtectableItem
4334 err := json.Unmarshal(body, &avwsdpi)
4335 return avwsdpi, err
4336 case string(ProtectableItemTypeSQLInstance):
4337 var avwsipi AzureVMWorkloadSQLInstanceProtectableItem
4338 err := json.Unmarshal(body, &avwsipi)
4339 return avwsipi, err
4340 default:
4341 var avwpi AzureVMWorkloadProtectableItem
4342 err := json.Unmarshal(body, &avwpi)
4343 return avwpi, err
4344 }
4345 }
4346 func unmarshalBasicAzureVMWorkloadProtectableItemArray(body []byte) ([]BasicAzureVMWorkloadProtectableItem, error) {
4347 var rawMessages []*json.RawMessage
4348 err := json.Unmarshal(body, &rawMessages)
4349 if err != nil {
4350 return nil, err
4351 }
4352
4353 avwpiArray := make([]BasicAzureVMWorkloadProtectableItem, len(rawMessages))
4354
4355 for index, rawMessage := range rawMessages {
4356 avwpi, err := unmarshalBasicAzureVMWorkloadProtectableItem(*rawMessage)
4357 if err != nil {
4358 return nil, err
4359 }
4360 avwpiArray[index] = avwpi
4361 }
4362 return avwpiArray, nil
4363 }
4364
4365
4366 func (avwpi AzureVMWorkloadProtectableItem) MarshalJSON() ([]byte, error) {
4367 avwpi.ProtectableItemType = ProtectableItemTypeAzureVMWorkloadProtectableItem
4368 objectMap := make(map[string]interface{})
4369 if avwpi.ParentName != nil {
4370 objectMap["parentName"] = avwpi.ParentName
4371 }
4372 if avwpi.ParentUniqueName != nil {
4373 objectMap["parentUniqueName"] = avwpi.ParentUniqueName
4374 }
4375 if avwpi.ServerName != nil {
4376 objectMap["serverName"] = avwpi.ServerName
4377 }
4378 if avwpi.IsAutoProtectable != nil {
4379 objectMap["isAutoProtectable"] = avwpi.IsAutoProtectable
4380 }
4381 if avwpi.IsAutoProtected != nil {
4382 objectMap["isAutoProtected"] = avwpi.IsAutoProtected
4383 }
4384 if avwpi.Subinquireditemcount != nil {
4385 objectMap["subinquireditemcount"] = avwpi.Subinquireditemcount
4386 }
4387 if avwpi.Subprotectableitemcount != nil {
4388 objectMap["subprotectableitemcount"] = avwpi.Subprotectableitemcount
4389 }
4390 if avwpi.Prebackupvalidation != nil {
4391 objectMap["prebackupvalidation"] = avwpi.Prebackupvalidation
4392 }
4393 if avwpi.BackupManagementType != nil {
4394 objectMap["backupManagementType"] = avwpi.BackupManagementType
4395 }
4396 if avwpi.WorkloadType != nil {
4397 objectMap["workloadType"] = avwpi.WorkloadType
4398 }
4399 if avwpi.FriendlyName != nil {
4400 objectMap["friendlyName"] = avwpi.FriendlyName
4401 }
4402 if avwpi.ProtectionState != "" {
4403 objectMap["protectionState"] = avwpi.ProtectionState
4404 }
4405 if avwpi.ProtectableItemType != "" {
4406 objectMap["protectableItemType"] = avwpi.ProtectableItemType
4407 }
4408 return json.Marshal(objectMap)
4409 }
4410
4411
4412 func (avwpi AzureVMWorkloadProtectableItem) AsAzureFileShareProtectableItem() (*AzureFileShareProtectableItem, bool) {
4413 return nil, false
4414 }
4415
4416
4417 func (avwpi AzureVMWorkloadProtectableItem) AsAzureIaaSClassicComputeVMProtectableItem() (*AzureIaaSClassicComputeVMProtectableItem, bool) {
4418 return nil, false
4419 }
4420
4421
4422 func (avwpi AzureVMWorkloadProtectableItem) AsAzureIaaSComputeVMProtectableItem() (*AzureIaaSComputeVMProtectableItem, bool) {
4423 return nil, false
4424 }
4425
4426
4427 func (avwpi AzureVMWorkloadProtectableItem) AsAzureVMWorkloadProtectableItem() (*AzureVMWorkloadProtectableItem, bool) {
4428 return &avwpi, true
4429 }
4430
4431
4432 func (avwpi AzureVMWorkloadProtectableItem) AsBasicAzureVMWorkloadProtectableItem() (BasicAzureVMWorkloadProtectableItem, bool) {
4433 return &avwpi, true
4434 }
4435
4436
4437 func (avwpi AzureVMWorkloadProtectableItem) AsAzureVMWorkloadSAPAseSystemProtectableItem() (*AzureVMWorkloadSAPAseSystemProtectableItem, bool) {
4438 return nil, false
4439 }
4440
4441
4442 func (avwpi AzureVMWorkloadProtectableItem) AsAzureVMWorkloadSAPHanaDatabaseProtectableItem() (*AzureVMWorkloadSAPHanaDatabaseProtectableItem, bool) {
4443 return nil, false
4444 }
4445
4446
4447 func (avwpi AzureVMWorkloadProtectableItem) AsAzureVMWorkloadSAPHanaSystemProtectableItem() (*AzureVMWorkloadSAPHanaSystemProtectableItem, bool) {
4448 return nil, false
4449 }
4450
4451
4452 func (avwpi AzureVMWorkloadProtectableItem) AsAzureVMWorkloadSQLAvailabilityGroupProtectableItem() (*AzureVMWorkloadSQLAvailabilityGroupProtectableItem, bool) {
4453 return nil, false
4454 }
4455
4456
4457 func (avwpi AzureVMWorkloadProtectableItem) AsAzureVMWorkloadSQLDatabaseProtectableItem() (*AzureVMWorkloadSQLDatabaseProtectableItem, bool) {
4458 return nil, false
4459 }
4460
4461
4462 func (avwpi AzureVMWorkloadProtectableItem) AsAzureVMWorkloadSQLInstanceProtectableItem() (*AzureVMWorkloadSQLInstanceProtectableItem, bool) {
4463 return nil, false
4464 }
4465
4466
4467 func (avwpi AzureVMWorkloadProtectableItem) AsIaaSVMProtectableItem() (*IaaSVMProtectableItem, bool) {
4468 return nil, false
4469 }
4470
4471
4472 func (avwpi AzureVMWorkloadProtectableItem) AsBasicIaaSVMProtectableItem() (BasicIaaSVMProtectableItem, bool) {
4473 return nil, false
4474 }
4475
4476
4477 func (avwpi AzureVMWorkloadProtectableItem) AsWorkloadProtectableItem() (*WorkloadProtectableItem, bool) {
4478 return nil, false
4479 }
4480
4481
4482 func (avwpi AzureVMWorkloadProtectableItem) AsBasicWorkloadProtectableItem() (BasicWorkloadProtectableItem, bool) {
4483 return &avwpi, true
4484 }
4485
4486
4487 type BasicAzureVMWorkloadProtectedItem interface {
4488 AsAzureVMWorkloadSAPAseDatabaseProtectedItem() (*AzureVMWorkloadSAPAseDatabaseProtectedItem, bool)
4489 AsAzureVMWorkloadSAPHanaDatabaseProtectedItem() (*AzureVMWorkloadSAPHanaDatabaseProtectedItem, bool)
4490 AsAzureVMWorkloadSQLDatabaseProtectedItem() (*AzureVMWorkloadSQLDatabaseProtectedItem, bool)
4491 AsAzureVMWorkloadProtectedItem() (*AzureVMWorkloadProtectedItem, bool)
4492 }
4493
4494
4495 type AzureVMWorkloadProtectedItem struct {
4496
4497 FriendlyName *string `json:"friendlyName,omitempty"`
4498
4499 ServerName *string `json:"serverName,omitempty"`
4500
4501 ParentName *string `json:"parentName,omitempty"`
4502
4503 ParentType *string `json:"parentType,omitempty"`
4504
4505 ProtectionStatus *string `json:"protectionStatus,omitempty"`
4506
4507 ProtectionState ProtectionState `json:"protectionState,omitempty"`
4508
4509 LastBackupStatus LastBackupStatus `json:"lastBackupStatus,omitempty"`
4510
4511 LastBackupTime *date.Time `json:"lastBackupTime,omitempty"`
4512
4513 LastBackupErrorDetail *ErrorDetail `json:"lastBackupErrorDetail,omitempty"`
4514
4515 ProtectedItemDataSourceID *string `json:"protectedItemDataSourceId,omitempty"`
4516
4517 ProtectedItemHealthStatus ProtectedItemHealthStatus `json:"protectedItemHealthStatus,omitempty"`
4518
4519 ExtendedInfo *AzureVMWorkloadProtectedItemExtendedInfo `json:"extendedInfo,omitempty"`
4520
4521 KpisHealths map[string]*KPIResourceHealthDetails `json:"kpisHealths"`
4522
4523 BackupManagementType ManagementType `json:"backupManagementType,omitempty"`
4524
4525 WorkloadType DataSourceType `json:"workloadType,omitempty"`
4526
4527 ContainerName *string `json:"containerName,omitempty"`
4528
4529 SourceResourceID *string `json:"sourceResourceId,omitempty"`
4530
4531 PolicyID *string `json:"policyId,omitempty"`
4532
4533 LastRecoveryPoint *date.Time `json:"lastRecoveryPoint,omitempty"`
4534
4535 BackupSetName *string `json:"backupSetName,omitempty"`
4536
4537 CreateMode CreateMode `json:"createMode,omitempty"`
4538
4539 DeferredDeleteTimeInUTC *date.Time `json:"deferredDeleteTimeInUTC,omitempty"`
4540
4541 IsScheduledForDeferredDelete *bool `json:"isScheduledForDeferredDelete,omitempty"`
4542
4543 DeferredDeleteTimeRemaining *string `json:"deferredDeleteTimeRemaining,omitempty"`
4544
4545 IsDeferredDeleteScheduleUpcoming *bool `json:"isDeferredDeleteScheduleUpcoming,omitempty"`
4546
4547 IsRehydrate *bool `json:"isRehydrate,omitempty"`
4548
4549 ProtectedItemType ProtectedItemType `json:"protectedItemType,omitempty"`
4550 }
4551
4552 func unmarshalBasicAzureVMWorkloadProtectedItem(body []byte) (BasicAzureVMWorkloadProtectedItem, error) {
4553 var m map[string]interface{}
4554 err := json.Unmarshal(body, &m)
4555 if err != nil {
4556 return nil, err
4557 }
4558
4559 switch m["protectedItemType"] {
4560 case string(ProtectedItemTypeAzureVMWorkloadSAPAseDatabase):
4561 var avwsadpi AzureVMWorkloadSAPAseDatabaseProtectedItem
4562 err := json.Unmarshal(body, &avwsadpi)
4563 return avwsadpi, err
4564 case string(ProtectedItemTypeAzureVMWorkloadSAPHanaDatabase):
4565 var avwshdpi AzureVMWorkloadSAPHanaDatabaseProtectedItem
4566 err := json.Unmarshal(body, &avwshdpi)
4567 return avwshdpi, err
4568 case string(ProtectedItemTypeAzureVMWorkloadSQLDatabase):
4569 var avwsdpi AzureVMWorkloadSQLDatabaseProtectedItem
4570 err := json.Unmarshal(body, &avwsdpi)
4571 return avwsdpi, err
4572 default:
4573 var avwpi AzureVMWorkloadProtectedItem
4574 err := json.Unmarshal(body, &avwpi)
4575 return avwpi, err
4576 }
4577 }
4578 func unmarshalBasicAzureVMWorkloadProtectedItemArray(body []byte) ([]BasicAzureVMWorkloadProtectedItem, error) {
4579 var rawMessages []*json.RawMessage
4580 err := json.Unmarshal(body, &rawMessages)
4581 if err != nil {
4582 return nil, err
4583 }
4584
4585 avwpiArray := make([]BasicAzureVMWorkloadProtectedItem, len(rawMessages))
4586
4587 for index, rawMessage := range rawMessages {
4588 avwpi, err := unmarshalBasicAzureVMWorkloadProtectedItem(*rawMessage)
4589 if err != nil {
4590 return nil, err
4591 }
4592 avwpiArray[index] = avwpi
4593 }
4594 return avwpiArray, nil
4595 }
4596
4597
4598 func (avwpi AzureVMWorkloadProtectedItem) MarshalJSON() ([]byte, error) {
4599 avwpi.ProtectedItemType = ProtectedItemTypeAzureVMWorkloadProtectedItem
4600 objectMap := make(map[string]interface{})
4601 if avwpi.FriendlyName != nil {
4602 objectMap["friendlyName"] = avwpi.FriendlyName
4603 }
4604 if avwpi.ServerName != nil {
4605 objectMap["serverName"] = avwpi.ServerName
4606 }
4607 if avwpi.ParentName != nil {
4608 objectMap["parentName"] = avwpi.ParentName
4609 }
4610 if avwpi.ParentType != nil {
4611 objectMap["parentType"] = avwpi.ParentType
4612 }
4613 if avwpi.ProtectionStatus != nil {
4614 objectMap["protectionStatus"] = avwpi.ProtectionStatus
4615 }
4616 if avwpi.ProtectionState != "" {
4617 objectMap["protectionState"] = avwpi.ProtectionState
4618 }
4619 if avwpi.LastBackupStatus != "" {
4620 objectMap["lastBackupStatus"] = avwpi.LastBackupStatus
4621 }
4622 if avwpi.LastBackupTime != nil {
4623 objectMap["lastBackupTime"] = avwpi.LastBackupTime
4624 }
4625 if avwpi.LastBackupErrorDetail != nil {
4626 objectMap["lastBackupErrorDetail"] = avwpi.LastBackupErrorDetail
4627 }
4628 if avwpi.ProtectedItemDataSourceID != nil {
4629 objectMap["protectedItemDataSourceId"] = avwpi.ProtectedItemDataSourceID
4630 }
4631 if avwpi.ProtectedItemHealthStatus != "" {
4632 objectMap["protectedItemHealthStatus"] = avwpi.ProtectedItemHealthStatus
4633 }
4634 if avwpi.ExtendedInfo != nil {
4635 objectMap["extendedInfo"] = avwpi.ExtendedInfo
4636 }
4637 if avwpi.KpisHealths != nil {
4638 objectMap["kpisHealths"] = avwpi.KpisHealths
4639 }
4640 if avwpi.BackupManagementType != "" {
4641 objectMap["backupManagementType"] = avwpi.BackupManagementType
4642 }
4643 if avwpi.WorkloadType != "" {
4644 objectMap["workloadType"] = avwpi.WorkloadType
4645 }
4646 if avwpi.ContainerName != nil {
4647 objectMap["containerName"] = avwpi.ContainerName
4648 }
4649 if avwpi.SourceResourceID != nil {
4650 objectMap["sourceResourceId"] = avwpi.SourceResourceID
4651 }
4652 if avwpi.PolicyID != nil {
4653 objectMap["policyId"] = avwpi.PolicyID
4654 }
4655 if avwpi.LastRecoveryPoint != nil {
4656 objectMap["lastRecoveryPoint"] = avwpi.LastRecoveryPoint
4657 }
4658 if avwpi.BackupSetName != nil {
4659 objectMap["backupSetName"] = avwpi.BackupSetName
4660 }
4661 if avwpi.CreateMode != "" {
4662 objectMap["createMode"] = avwpi.CreateMode
4663 }
4664 if avwpi.DeferredDeleteTimeInUTC != nil {
4665 objectMap["deferredDeleteTimeInUTC"] = avwpi.DeferredDeleteTimeInUTC
4666 }
4667 if avwpi.IsScheduledForDeferredDelete != nil {
4668 objectMap["isScheduledForDeferredDelete"] = avwpi.IsScheduledForDeferredDelete
4669 }
4670 if avwpi.DeferredDeleteTimeRemaining != nil {
4671 objectMap["deferredDeleteTimeRemaining"] = avwpi.DeferredDeleteTimeRemaining
4672 }
4673 if avwpi.IsDeferredDeleteScheduleUpcoming != nil {
4674 objectMap["isDeferredDeleteScheduleUpcoming"] = avwpi.IsDeferredDeleteScheduleUpcoming
4675 }
4676 if avwpi.IsRehydrate != nil {
4677 objectMap["isRehydrate"] = avwpi.IsRehydrate
4678 }
4679 if avwpi.ProtectedItemType != "" {
4680 objectMap["protectedItemType"] = avwpi.ProtectedItemType
4681 }
4682 return json.Marshal(objectMap)
4683 }
4684
4685
4686 func (avwpi AzureVMWorkloadProtectedItem) AsAzureFileshareProtectedItem() (*AzureFileshareProtectedItem, bool) {
4687 return nil, false
4688 }
4689
4690
4691 func (avwpi AzureVMWorkloadProtectedItem) AsAzureIaaSClassicComputeVMProtectedItem() (*AzureIaaSClassicComputeVMProtectedItem, bool) {
4692 return nil, false
4693 }
4694
4695
4696 func (avwpi AzureVMWorkloadProtectedItem) AsAzureIaaSComputeVMProtectedItem() (*AzureIaaSComputeVMProtectedItem, bool) {
4697 return nil, false
4698 }
4699
4700
4701 func (avwpi AzureVMWorkloadProtectedItem) AsAzureIaaSVMProtectedItem() (*AzureIaaSVMProtectedItem, bool) {
4702 return nil, false
4703 }
4704
4705
4706 func (avwpi AzureVMWorkloadProtectedItem) AsBasicAzureIaaSVMProtectedItem() (BasicAzureIaaSVMProtectedItem, bool) {
4707 return nil, false
4708 }
4709
4710
4711 func (avwpi AzureVMWorkloadProtectedItem) AsAzureSQLProtectedItem() (*AzureSQLProtectedItem, bool) {
4712 return nil, false
4713 }
4714
4715
4716 func (avwpi AzureVMWorkloadProtectedItem) AsAzureVMWorkloadProtectedItem() (*AzureVMWorkloadProtectedItem, bool) {
4717 return &avwpi, true
4718 }
4719
4720
4721 func (avwpi AzureVMWorkloadProtectedItem) AsBasicAzureVMWorkloadProtectedItem() (BasicAzureVMWorkloadProtectedItem, bool) {
4722 return &avwpi, true
4723 }
4724
4725
4726 func (avwpi AzureVMWorkloadProtectedItem) AsAzureVMWorkloadSAPAseDatabaseProtectedItem() (*AzureVMWorkloadSAPAseDatabaseProtectedItem, bool) {
4727 return nil, false
4728 }
4729
4730
4731 func (avwpi AzureVMWorkloadProtectedItem) AsAzureVMWorkloadSAPHanaDatabaseProtectedItem() (*AzureVMWorkloadSAPHanaDatabaseProtectedItem, bool) {
4732 return nil, false
4733 }
4734
4735
4736 func (avwpi AzureVMWorkloadProtectedItem) AsAzureVMWorkloadSQLDatabaseProtectedItem() (*AzureVMWorkloadSQLDatabaseProtectedItem, bool) {
4737 return nil, false
4738 }
4739
4740
4741 func (avwpi AzureVMWorkloadProtectedItem) AsDPMProtectedItem() (*DPMProtectedItem, bool) {
4742 return nil, false
4743 }
4744
4745
4746 func (avwpi AzureVMWorkloadProtectedItem) AsGenericProtectedItem() (*GenericProtectedItem, bool) {
4747 return nil, false
4748 }
4749
4750
4751 func (avwpi AzureVMWorkloadProtectedItem) AsMabFileFolderProtectedItem() (*MabFileFolderProtectedItem, bool) {
4752 return nil, false
4753 }
4754
4755
4756 func (avwpi AzureVMWorkloadProtectedItem) AsProtectedItem() (*ProtectedItem, bool) {
4757 return nil, false
4758 }
4759
4760
4761 func (avwpi AzureVMWorkloadProtectedItem) AsBasicProtectedItem() (BasicProtectedItem, bool) {
4762 return &avwpi, true
4763 }
4764
4765
4766
4767 type AzureVMWorkloadProtectedItemExtendedInfo struct {
4768
4769 OldestRecoveryPoint *date.Time `json:"oldestRecoveryPoint,omitempty"`
4770
4771 RecoveryPointCount *int32 `json:"recoveryPointCount,omitempty"`
4772
4773 PolicyState *string `json:"policyState,omitempty"`
4774 }
4775
4776
4777 type AzureVMWorkloadProtectionPolicy struct {
4778
4779 WorkLoadType WorkloadType `json:"workLoadType,omitempty"`
4780
4781 Settings *Settings `json:"settings,omitempty"`
4782
4783 SubProtectionPolicy *[]SubProtectionPolicy `json:"subProtectionPolicy,omitempty"`
4784
4785 MakePolicyConsistent *bool `json:"makePolicyConsistent,omitempty"`
4786
4787 ProtectedItemsCount *int32 `json:"protectedItemsCount,omitempty"`
4788
4789 BackupManagementType ManagementTypeBasicProtectionPolicy `json:"backupManagementType,omitempty"`
4790 }
4791
4792
4793 func (avwpp AzureVMWorkloadProtectionPolicy) MarshalJSON() ([]byte, error) {
4794 avwpp.BackupManagementType = BackupManagementTypeAzureWorkload
4795 objectMap := make(map[string]interface{})
4796 if avwpp.WorkLoadType != "" {
4797 objectMap["workLoadType"] = avwpp.WorkLoadType
4798 }
4799 if avwpp.Settings != nil {
4800 objectMap["settings"] = avwpp.Settings
4801 }
4802 if avwpp.SubProtectionPolicy != nil {
4803 objectMap["subProtectionPolicy"] = avwpp.SubProtectionPolicy
4804 }
4805 if avwpp.MakePolicyConsistent != nil {
4806 objectMap["makePolicyConsistent"] = avwpp.MakePolicyConsistent
4807 }
4808 if avwpp.ProtectedItemsCount != nil {
4809 objectMap["protectedItemsCount"] = avwpp.ProtectedItemsCount
4810 }
4811 if avwpp.BackupManagementType != "" {
4812 objectMap["backupManagementType"] = avwpp.BackupManagementType
4813 }
4814 return json.Marshal(objectMap)
4815 }
4816
4817
4818 func (avwpp AzureVMWorkloadProtectionPolicy) AsAzureVMWorkloadProtectionPolicy() (*AzureVMWorkloadProtectionPolicy, bool) {
4819 return &avwpp, true
4820 }
4821
4822
4823 func (avwpp AzureVMWorkloadProtectionPolicy) AsAzureFileShareProtectionPolicy() (*AzureFileShareProtectionPolicy, bool) {
4824 return nil, false
4825 }
4826
4827
4828 func (avwpp AzureVMWorkloadProtectionPolicy) AsAzureIaaSVMProtectionPolicy() (*AzureIaaSVMProtectionPolicy, bool) {
4829 return nil, false
4830 }
4831
4832
4833 func (avwpp AzureVMWorkloadProtectionPolicy) AsAzureSQLProtectionPolicy() (*AzureSQLProtectionPolicy, bool) {
4834 return nil, false
4835 }
4836
4837
4838 func (avwpp AzureVMWorkloadProtectionPolicy) AsGenericProtectionPolicy() (*GenericProtectionPolicy, bool) {
4839 return nil, false
4840 }
4841
4842
4843 func (avwpp AzureVMWorkloadProtectionPolicy) AsMabProtectionPolicy() (*MabProtectionPolicy, bool) {
4844 return nil, false
4845 }
4846
4847
4848 func (avwpp AzureVMWorkloadProtectionPolicy) AsProtectionPolicy() (*ProtectionPolicy, bool) {
4849 return nil, false
4850 }
4851
4852
4853 func (avwpp AzureVMWorkloadProtectionPolicy) AsBasicProtectionPolicy() (BasicProtectionPolicy, bool) {
4854 return &avwpp, true
4855 }
4856
4857
4858
4859 type AzureVMWorkloadSAPAseDatabaseProtectedItem struct {
4860
4861 FriendlyName *string `json:"friendlyName,omitempty"`
4862
4863 ServerName *string `json:"serverName,omitempty"`
4864
4865 ParentName *string `json:"parentName,omitempty"`
4866
4867 ParentType *string `json:"parentType,omitempty"`
4868
4869 ProtectionStatus *string `json:"protectionStatus,omitempty"`
4870
4871 ProtectionState ProtectionState `json:"protectionState,omitempty"`
4872
4873 LastBackupStatus LastBackupStatus `json:"lastBackupStatus,omitempty"`
4874
4875 LastBackupTime *date.Time `json:"lastBackupTime,omitempty"`
4876
4877 LastBackupErrorDetail *ErrorDetail `json:"lastBackupErrorDetail,omitempty"`
4878
4879 ProtectedItemDataSourceID *string `json:"protectedItemDataSourceId,omitempty"`
4880
4881 ProtectedItemHealthStatus ProtectedItemHealthStatus `json:"protectedItemHealthStatus,omitempty"`
4882
4883 ExtendedInfo *AzureVMWorkloadProtectedItemExtendedInfo `json:"extendedInfo,omitempty"`
4884
4885 KpisHealths map[string]*KPIResourceHealthDetails `json:"kpisHealths"`
4886
4887 BackupManagementType ManagementType `json:"backupManagementType,omitempty"`
4888
4889 WorkloadType DataSourceType `json:"workloadType,omitempty"`
4890
4891 ContainerName *string `json:"containerName,omitempty"`
4892
4893 SourceResourceID *string `json:"sourceResourceId,omitempty"`
4894
4895 PolicyID *string `json:"policyId,omitempty"`
4896
4897 LastRecoveryPoint *date.Time `json:"lastRecoveryPoint,omitempty"`
4898
4899 BackupSetName *string `json:"backupSetName,omitempty"`
4900
4901 CreateMode CreateMode `json:"createMode,omitempty"`
4902
4903 DeferredDeleteTimeInUTC *date.Time `json:"deferredDeleteTimeInUTC,omitempty"`
4904
4905 IsScheduledForDeferredDelete *bool `json:"isScheduledForDeferredDelete,omitempty"`
4906
4907 DeferredDeleteTimeRemaining *string `json:"deferredDeleteTimeRemaining,omitempty"`
4908
4909 IsDeferredDeleteScheduleUpcoming *bool `json:"isDeferredDeleteScheduleUpcoming,omitempty"`
4910
4911 IsRehydrate *bool `json:"isRehydrate,omitempty"`
4912
4913 ProtectedItemType ProtectedItemType `json:"protectedItemType,omitempty"`
4914 }
4915
4916
4917 func (avwsadpi AzureVMWorkloadSAPAseDatabaseProtectedItem) MarshalJSON() ([]byte, error) {
4918 avwsadpi.ProtectedItemType = ProtectedItemTypeAzureVMWorkloadSAPAseDatabase
4919 objectMap := make(map[string]interface{})
4920 if avwsadpi.FriendlyName != nil {
4921 objectMap["friendlyName"] = avwsadpi.FriendlyName
4922 }
4923 if avwsadpi.ServerName != nil {
4924 objectMap["serverName"] = avwsadpi.ServerName
4925 }
4926 if avwsadpi.ParentName != nil {
4927 objectMap["parentName"] = avwsadpi.ParentName
4928 }
4929 if avwsadpi.ParentType != nil {
4930 objectMap["parentType"] = avwsadpi.ParentType
4931 }
4932 if avwsadpi.ProtectionStatus != nil {
4933 objectMap["protectionStatus"] = avwsadpi.ProtectionStatus
4934 }
4935 if avwsadpi.ProtectionState != "" {
4936 objectMap["protectionState"] = avwsadpi.ProtectionState
4937 }
4938 if avwsadpi.LastBackupStatus != "" {
4939 objectMap["lastBackupStatus"] = avwsadpi.LastBackupStatus
4940 }
4941 if avwsadpi.LastBackupTime != nil {
4942 objectMap["lastBackupTime"] = avwsadpi.LastBackupTime
4943 }
4944 if avwsadpi.LastBackupErrorDetail != nil {
4945 objectMap["lastBackupErrorDetail"] = avwsadpi.LastBackupErrorDetail
4946 }
4947 if avwsadpi.ProtectedItemDataSourceID != nil {
4948 objectMap["protectedItemDataSourceId"] = avwsadpi.ProtectedItemDataSourceID
4949 }
4950 if avwsadpi.ProtectedItemHealthStatus != "" {
4951 objectMap["protectedItemHealthStatus"] = avwsadpi.ProtectedItemHealthStatus
4952 }
4953 if avwsadpi.ExtendedInfo != nil {
4954 objectMap["extendedInfo"] = avwsadpi.ExtendedInfo
4955 }
4956 if avwsadpi.KpisHealths != nil {
4957 objectMap["kpisHealths"] = avwsadpi.KpisHealths
4958 }
4959 if avwsadpi.BackupManagementType != "" {
4960 objectMap["backupManagementType"] = avwsadpi.BackupManagementType
4961 }
4962 if avwsadpi.WorkloadType != "" {
4963 objectMap["workloadType"] = avwsadpi.WorkloadType
4964 }
4965 if avwsadpi.ContainerName != nil {
4966 objectMap["containerName"] = avwsadpi.ContainerName
4967 }
4968 if avwsadpi.SourceResourceID != nil {
4969 objectMap["sourceResourceId"] = avwsadpi.SourceResourceID
4970 }
4971 if avwsadpi.PolicyID != nil {
4972 objectMap["policyId"] = avwsadpi.PolicyID
4973 }
4974 if avwsadpi.LastRecoveryPoint != nil {
4975 objectMap["lastRecoveryPoint"] = avwsadpi.LastRecoveryPoint
4976 }
4977 if avwsadpi.BackupSetName != nil {
4978 objectMap["backupSetName"] = avwsadpi.BackupSetName
4979 }
4980 if avwsadpi.CreateMode != "" {
4981 objectMap["createMode"] = avwsadpi.CreateMode
4982 }
4983 if avwsadpi.DeferredDeleteTimeInUTC != nil {
4984 objectMap["deferredDeleteTimeInUTC"] = avwsadpi.DeferredDeleteTimeInUTC
4985 }
4986 if avwsadpi.IsScheduledForDeferredDelete != nil {
4987 objectMap["isScheduledForDeferredDelete"] = avwsadpi.IsScheduledForDeferredDelete
4988 }
4989 if avwsadpi.DeferredDeleteTimeRemaining != nil {
4990 objectMap["deferredDeleteTimeRemaining"] = avwsadpi.DeferredDeleteTimeRemaining
4991 }
4992 if avwsadpi.IsDeferredDeleteScheduleUpcoming != nil {
4993 objectMap["isDeferredDeleteScheduleUpcoming"] = avwsadpi.IsDeferredDeleteScheduleUpcoming
4994 }
4995 if avwsadpi.IsRehydrate != nil {
4996 objectMap["isRehydrate"] = avwsadpi.IsRehydrate
4997 }
4998 if avwsadpi.ProtectedItemType != "" {
4999 objectMap["protectedItemType"] = avwsadpi.ProtectedItemType
5000 }
5001 return json.Marshal(objectMap)
5002 }
5003
5004
5005 func (avwsadpi AzureVMWorkloadSAPAseDatabaseProtectedItem) AsAzureFileshareProtectedItem() (*AzureFileshareProtectedItem, bool) {
5006 return nil, false
5007 }
5008
5009
5010 func (avwsadpi AzureVMWorkloadSAPAseDatabaseProtectedItem) AsAzureIaaSClassicComputeVMProtectedItem() (*AzureIaaSClassicComputeVMProtectedItem, bool) {
5011 return nil, false
5012 }
5013
5014
5015 func (avwsadpi AzureVMWorkloadSAPAseDatabaseProtectedItem) AsAzureIaaSComputeVMProtectedItem() (*AzureIaaSComputeVMProtectedItem, bool) {
5016 return nil, false
5017 }
5018
5019
5020 func (avwsadpi AzureVMWorkloadSAPAseDatabaseProtectedItem) AsAzureIaaSVMProtectedItem() (*AzureIaaSVMProtectedItem, bool) {
5021 return nil, false
5022 }
5023
5024
5025 func (avwsadpi AzureVMWorkloadSAPAseDatabaseProtectedItem) AsBasicAzureIaaSVMProtectedItem() (BasicAzureIaaSVMProtectedItem, bool) {
5026 return nil, false
5027 }
5028
5029
5030 func (avwsadpi AzureVMWorkloadSAPAseDatabaseProtectedItem) AsAzureSQLProtectedItem() (*AzureSQLProtectedItem, bool) {
5031 return nil, false
5032 }
5033
5034
5035 func (avwsadpi AzureVMWorkloadSAPAseDatabaseProtectedItem) AsAzureVMWorkloadProtectedItem() (*AzureVMWorkloadProtectedItem, bool) {
5036 return nil, false
5037 }
5038
5039
5040 func (avwsadpi AzureVMWorkloadSAPAseDatabaseProtectedItem) AsBasicAzureVMWorkloadProtectedItem() (BasicAzureVMWorkloadProtectedItem, bool) {
5041 return &avwsadpi, true
5042 }
5043
5044
5045 func (avwsadpi AzureVMWorkloadSAPAseDatabaseProtectedItem) AsAzureVMWorkloadSAPAseDatabaseProtectedItem() (*AzureVMWorkloadSAPAseDatabaseProtectedItem, bool) {
5046 return &avwsadpi, true
5047 }
5048
5049
5050 func (avwsadpi AzureVMWorkloadSAPAseDatabaseProtectedItem) AsAzureVMWorkloadSAPHanaDatabaseProtectedItem() (*AzureVMWorkloadSAPHanaDatabaseProtectedItem, bool) {
5051 return nil, false
5052 }
5053
5054
5055 func (avwsadpi AzureVMWorkloadSAPAseDatabaseProtectedItem) AsAzureVMWorkloadSQLDatabaseProtectedItem() (*AzureVMWorkloadSQLDatabaseProtectedItem, bool) {
5056 return nil, false
5057 }
5058
5059
5060 func (avwsadpi AzureVMWorkloadSAPAseDatabaseProtectedItem) AsDPMProtectedItem() (*DPMProtectedItem, bool) {
5061 return nil, false
5062 }
5063
5064
5065 func (avwsadpi AzureVMWorkloadSAPAseDatabaseProtectedItem) AsGenericProtectedItem() (*GenericProtectedItem, bool) {
5066 return nil, false
5067 }
5068
5069
5070 func (avwsadpi AzureVMWorkloadSAPAseDatabaseProtectedItem) AsMabFileFolderProtectedItem() (*MabFileFolderProtectedItem, bool) {
5071 return nil, false
5072 }
5073
5074
5075 func (avwsadpi AzureVMWorkloadSAPAseDatabaseProtectedItem) AsProtectedItem() (*ProtectedItem, bool) {
5076 return nil, false
5077 }
5078
5079
5080 func (avwsadpi AzureVMWorkloadSAPAseDatabaseProtectedItem) AsBasicProtectedItem() (BasicProtectedItem, bool) {
5081 return &avwsadpi, true
5082 }
5083
5084
5085
5086 type AzureVMWorkloadSAPAseDatabaseWorkloadItem struct {
5087
5088 ParentName *string `json:"parentName,omitempty"`
5089
5090 ServerName *string `json:"serverName,omitempty"`
5091
5092 IsAutoProtectable *bool `json:"isAutoProtectable,omitempty"`
5093
5094 Subinquireditemcount *int32 `json:"subinquireditemcount,omitempty"`
5095
5096 SubWorkloadItemCount *int32 `json:"subWorkloadItemCount,omitempty"`
5097
5098 BackupManagementType *string `json:"backupManagementType,omitempty"`
5099
5100 WorkloadType *string `json:"workloadType,omitempty"`
5101
5102 FriendlyName *string `json:"friendlyName,omitempty"`
5103
5104 ProtectionState ProtectionStatus `json:"protectionState,omitempty"`
5105
5106 WorkloadItemType WorkloadItemTypeBasicWorkloadItem `json:"workloadItemType,omitempty"`
5107 }
5108
5109
5110 func (avwsadwi AzureVMWorkloadSAPAseDatabaseWorkloadItem) MarshalJSON() ([]byte, error) {
5111 avwsadwi.WorkloadItemType = WorkloadItemTypeSAPAseDatabase1
5112 objectMap := make(map[string]interface{})
5113 if avwsadwi.ParentName != nil {
5114 objectMap["parentName"] = avwsadwi.ParentName
5115 }
5116 if avwsadwi.ServerName != nil {
5117 objectMap["serverName"] = avwsadwi.ServerName
5118 }
5119 if avwsadwi.IsAutoProtectable != nil {
5120 objectMap["isAutoProtectable"] = avwsadwi.IsAutoProtectable
5121 }
5122 if avwsadwi.Subinquireditemcount != nil {
5123 objectMap["subinquireditemcount"] = avwsadwi.Subinquireditemcount
5124 }
5125 if avwsadwi.SubWorkloadItemCount != nil {
5126 objectMap["subWorkloadItemCount"] = avwsadwi.SubWorkloadItemCount
5127 }
5128 if avwsadwi.BackupManagementType != nil {
5129 objectMap["backupManagementType"] = avwsadwi.BackupManagementType
5130 }
5131 if avwsadwi.WorkloadType != nil {
5132 objectMap["workloadType"] = avwsadwi.WorkloadType
5133 }
5134 if avwsadwi.FriendlyName != nil {
5135 objectMap["friendlyName"] = avwsadwi.FriendlyName
5136 }
5137 if avwsadwi.ProtectionState != "" {
5138 objectMap["protectionState"] = avwsadwi.ProtectionState
5139 }
5140 if avwsadwi.WorkloadItemType != "" {
5141 objectMap["workloadItemType"] = avwsadwi.WorkloadItemType
5142 }
5143 return json.Marshal(objectMap)
5144 }
5145
5146
5147 func (avwsadwi AzureVMWorkloadSAPAseDatabaseWorkloadItem) AsAzureVMWorkloadItem() (*AzureVMWorkloadItem, bool) {
5148 return nil, false
5149 }
5150
5151
5152 func (avwsadwi AzureVMWorkloadSAPAseDatabaseWorkloadItem) AsBasicAzureVMWorkloadItem() (BasicAzureVMWorkloadItem, bool) {
5153 return &avwsadwi, true
5154 }
5155
5156
5157 func (avwsadwi AzureVMWorkloadSAPAseDatabaseWorkloadItem) AsAzureVMWorkloadSAPAseDatabaseWorkloadItem() (*AzureVMWorkloadSAPAseDatabaseWorkloadItem, bool) {
5158 return &avwsadwi, true
5159 }
5160
5161
5162 func (avwsadwi AzureVMWorkloadSAPAseDatabaseWorkloadItem) AsAzureVMWorkloadSAPAseSystemWorkloadItem() (*AzureVMWorkloadSAPAseSystemWorkloadItem, bool) {
5163 return nil, false
5164 }
5165
5166
5167 func (avwsadwi AzureVMWorkloadSAPAseDatabaseWorkloadItem) AsAzureVMWorkloadSAPHanaDatabaseWorkloadItem() (*AzureVMWorkloadSAPHanaDatabaseWorkloadItem, bool) {
5168 return nil, false
5169 }
5170
5171
5172 func (avwsadwi AzureVMWorkloadSAPAseDatabaseWorkloadItem) AsAzureVMWorkloadSAPHanaSystemWorkloadItem() (*AzureVMWorkloadSAPHanaSystemWorkloadItem, bool) {
5173 return nil, false
5174 }
5175
5176
5177 func (avwsadwi AzureVMWorkloadSAPAseDatabaseWorkloadItem) AsAzureVMWorkloadSQLDatabaseWorkloadItem() (*AzureVMWorkloadSQLDatabaseWorkloadItem, bool) {
5178 return nil, false
5179 }
5180
5181
5182 func (avwsadwi AzureVMWorkloadSAPAseDatabaseWorkloadItem) AsAzureVMWorkloadSQLInstanceWorkloadItem() (*AzureVMWorkloadSQLInstanceWorkloadItem, bool) {
5183 return nil, false
5184 }
5185
5186
5187 func (avwsadwi AzureVMWorkloadSAPAseDatabaseWorkloadItem) AsWorkloadItem() (*WorkloadItem, bool) {
5188 return nil, false
5189 }
5190
5191
5192 func (avwsadwi AzureVMWorkloadSAPAseDatabaseWorkloadItem) AsBasicWorkloadItem() (BasicWorkloadItem, bool) {
5193 return &avwsadwi, true
5194 }
5195
5196
5197
5198 type AzureVMWorkloadSAPAseSystemProtectableItem struct {
5199
5200 ParentName *string `json:"parentName,omitempty"`
5201
5202
5203 ParentUniqueName *string `json:"parentUniqueName,omitempty"`
5204
5205 ServerName *string `json:"serverName,omitempty"`
5206
5207 IsAutoProtectable *bool `json:"isAutoProtectable,omitempty"`
5208
5209 IsAutoProtected *bool `json:"isAutoProtected,omitempty"`
5210
5211 Subinquireditemcount *int32 `json:"subinquireditemcount,omitempty"`
5212
5213 Subprotectableitemcount *int32 `json:"subprotectableitemcount,omitempty"`
5214
5215 Prebackupvalidation *PreBackupValidation `json:"prebackupvalidation,omitempty"`
5216
5217 BackupManagementType *string `json:"backupManagementType,omitempty"`
5218
5219 WorkloadType *string `json:"workloadType,omitempty"`
5220
5221 FriendlyName *string `json:"friendlyName,omitempty"`
5222
5223 ProtectionState ProtectionStatus `json:"protectionState,omitempty"`
5224
5225 ProtectableItemType ProtectableItemType `json:"protectableItemType,omitempty"`
5226 }
5227
5228
5229 func (avwsaspi AzureVMWorkloadSAPAseSystemProtectableItem) MarshalJSON() ([]byte, error) {
5230 avwsaspi.ProtectableItemType = ProtectableItemTypeSAPAseSystem
5231 objectMap := make(map[string]interface{})
5232 if avwsaspi.ParentName != nil {
5233 objectMap["parentName"] = avwsaspi.ParentName
5234 }
5235 if avwsaspi.ParentUniqueName != nil {
5236 objectMap["parentUniqueName"] = avwsaspi.ParentUniqueName
5237 }
5238 if avwsaspi.ServerName != nil {
5239 objectMap["serverName"] = avwsaspi.ServerName
5240 }
5241 if avwsaspi.IsAutoProtectable != nil {
5242 objectMap["isAutoProtectable"] = avwsaspi.IsAutoProtectable
5243 }
5244 if avwsaspi.IsAutoProtected != nil {
5245 objectMap["isAutoProtected"] = avwsaspi.IsAutoProtected
5246 }
5247 if avwsaspi.Subinquireditemcount != nil {
5248 objectMap["subinquireditemcount"] = avwsaspi.Subinquireditemcount
5249 }
5250 if avwsaspi.Subprotectableitemcount != nil {
5251 objectMap["subprotectableitemcount"] = avwsaspi.Subprotectableitemcount
5252 }
5253 if avwsaspi.Prebackupvalidation != nil {
5254 objectMap["prebackupvalidation"] = avwsaspi.Prebackupvalidation
5255 }
5256 if avwsaspi.BackupManagementType != nil {
5257 objectMap["backupManagementType"] = avwsaspi.BackupManagementType
5258 }
5259 if avwsaspi.WorkloadType != nil {
5260 objectMap["workloadType"] = avwsaspi.WorkloadType
5261 }
5262 if avwsaspi.FriendlyName != nil {
5263 objectMap["friendlyName"] = avwsaspi.FriendlyName
5264 }
5265 if avwsaspi.ProtectionState != "" {
5266 objectMap["protectionState"] = avwsaspi.ProtectionState
5267 }
5268 if avwsaspi.ProtectableItemType != "" {
5269 objectMap["protectableItemType"] = avwsaspi.ProtectableItemType
5270 }
5271 return json.Marshal(objectMap)
5272 }
5273
5274
5275 func (avwsaspi AzureVMWorkloadSAPAseSystemProtectableItem) AsAzureFileShareProtectableItem() (*AzureFileShareProtectableItem, bool) {
5276 return nil, false
5277 }
5278
5279
5280 func (avwsaspi AzureVMWorkloadSAPAseSystemProtectableItem) AsAzureIaaSClassicComputeVMProtectableItem() (*AzureIaaSClassicComputeVMProtectableItem, bool) {
5281 return nil, false
5282 }
5283
5284
5285 func (avwsaspi AzureVMWorkloadSAPAseSystemProtectableItem) AsAzureIaaSComputeVMProtectableItem() (*AzureIaaSComputeVMProtectableItem, bool) {
5286 return nil, false
5287 }
5288
5289
5290 func (avwsaspi AzureVMWorkloadSAPAseSystemProtectableItem) AsAzureVMWorkloadProtectableItem() (*AzureVMWorkloadProtectableItem, bool) {
5291 return nil, false
5292 }
5293
5294
5295 func (avwsaspi AzureVMWorkloadSAPAseSystemProtectableItem) AsBasicAzureVMWorkloadProtectableItem() (BasicAzureVMWorkloadProtectableItem, bool) {
5296 return &avwsaspi, true
5297 }
5298
5299
5300 func (avwsaspi AzureVMWorkloadSAPAseSystemProtectableItem) AsAzureVMWorkloadSAPAseSystemProtectableItem() (*AzureVMWorkloadSAPAseSystemProtectableItem, bool) {
5301 return &avwsaspi, true
5302 }
5303
5304
5305 func (avwsaspi AzureVMWorkloadSAPAseSystemProtectableItem) AsAzureVMWorkloadSAPHanaDatabaseProtectableItem() (*AzureVMWorkloadSAPHanaDatabaseProtectableItem, bool) {
5306 return nil, false
5307 }
5308
5309
5310 func (avwsaspi AzureVMWorkloadSAPAseSystemProtectableItem) AsAzureVMWorkloadSAPHanaSystemProtectableItem() (*AzureVMWorkloadSAPHanaSystemProtectableItem, bool) {
5311 return nil, false
5312 }
5313
5314
5315 func (avwsaspi AzureVMWorkloadSAPAseSystemProtectableItem) AsAzureVMWorkloadSQLAvailabilityGroupProtectableItem() (*AzureVMWorkloadSQLAvailabilityGroupProtectableItem, bool) {
5316 return nil, false
5317 }
5318
5319
5320 func (avwsaspi AzureVMWorkloadSAPAseSystemProtectableItem) AsAzureVMWorkloadSQLDatabaseProtectableItem() (*AzureVMWorkloadSQLDatabaseProtectableItem, bool) {
5321 return nil, false
5322 }
5323
5324
5325 func (avwsaspi AzureVMWorkloadSAPAseSystemProtectableItem) AsAzureVMWorkloadSQLInstanceProtectableItem() (*AzureVMWorkloadSQLInstanceProtectableItem, bool) {
5326 return nil, false
5327 }
5328
5329
5330 func (avwsaspi AzureVMWorkloadSAPAseSystemProtectableItem) AsIaaSVMProtectableItem() (*IaaSVMProtectableItem, bool) {
5331 return nil, false
5332 }
5333
5334
5335 func (avwsaspi AzureVMWorkloadSAPAseSystemProtectableItem) AsBasicIaaSVMProtectableItem() (BasicIaaSVMProtectableItem, bool) {
5336 return nil, false
5337 }
5338
5339
5340 func (avwsaspi AzureVMWorkloadSAPAseSystemProtectableItem) AsWorkloadProtectableItem() (*WorkloadProtectableItem, bool) {
5341 return nil, false
5342 }
5343
5344
5345 func (avwsaspi AzureVMWorkloadSAPAseSystemProtectableItem) AsBasicWorkloadProtectableItem() (BasicWorkloadProtectableItem, bool) {
5346 return &avwsaspi, true
5347 }
5348
5349
5350
5351 type AzureVMWorkloadSAPAseSystemWorkloadItem struct {
5352
5353 ParentName *string `json:"parentName,omitempty"`
5354
5355 ServerName *string `json:"serverName,omitempty"`
5356
5357 IsAutoProtectable *bool `json:"isAutoProtectable,omitempty"`
5358
5359 Subinquireditemcount *int32 `json:"subinquireditemcount,omitempty"`
5360
5361 SubWorkloadItemCount *int32 `json:"subWorkloadItemCount,omitempty"`
5362
5363 BackupManagementType *string `json:"backupManagementType,omitempty"`
5364
5365 WorkloadType *string `json:"workloadType,omitempty"`
5366
5367 FriendlyName *string `json:"friendlyName,omitempty"`
5368
5369 ProtectionState ProtectionStatus `json:"protectionState,omitempty"`
5370
5371 WorkloadItemType WorkloadItemTypeBasicWorkloadItem `json:"workloadItemType,omitempty"`
5372 }
5373
5374
5375 func (avwsaswi AzureVMWorkloadSAPAseSystemWorkloadItem) MarshalJSON() ([]byte, error) {
5376 avwsaswi.WorkloadItemType = WorkloadItemTypeSAPAseSystem1
5377 objectMap := make(map[string]interface{})
5378 if avwsaswi.ParentName != nil {
5379 objectMap["parentName"] = avwsaswi.ParentName
5380 }
5381 if avwsaswi.ServerName != nil {
5382 objectMap["serverName"] = avwsaswi.ServerName
5383 }
5384 if avwsaswi.IsAutoProtectable != nil {
5385 objectMap["isAutoProtectable"] = avwsaswi.IsAutoProtectable
5386 }
5387 if avwsaswi.Subinquireditemcount != nil {
5388 objectMap["subinquireditemcount"] = avwsaswi.Subinquireditemcount
5389 }
5390 if avwsaswi.SubWorkloadItemCount != nil {
5391 objectMap["subWorkloadItemCount"] = avwsaswi.SubWorkloadItemCount
5392 }
5393 if avwsaswi.BackupManagementType != nil {
5394 objectMap["backupManagementType"] = avwsaswi.BackupManagementType
5395 }
5396 if avwsaswi.WorkloadType != nil {
5397 objectMap["workloadType"] = avwsaswi.WorkloadType
5398 }
5399 if avwsaswi.FriendlyName != nil {
5400 objectMap["friendlyName"] = avwsaswi.FriendlyName
5401 }
5402 if avwsaswi.ProtectionState != "" {
5403 objectMap["protectionState"] = avwsaswi.ProtectionState
5404 }
5405 if avwsaswi.WorkloadItemType != "" {
5406 objectMap["workloadItemType"] = avwsaswi.WorkloadItemType
5407 }
5408 return json.Marshal(objectMap)
5409 }
5410
5411
5412 func (avwsaswi AzureVMWorkloadSAPAseSystemWorkloadItem) AsAzureVMWorkloadItem() (*AzureVMWorkloadItem, bool) {
5413 return nil, false
5414 }
5415
5416
5417 func (avwsaswi AzureVMWorkloadSAPAseSystemWorkloadItem) AsBasicAzureVMWorkloadItem() (BasicAzureVMWorkloadItem, bool) {
5418 return &avwsaswi, true
5419 }
5420
5421
5422 func (avwsaswi AzureVMWorkloadSAPAseSystemWorkloadItem) AsAzureVMWorkloadSAPAseDatabaseWorkloadItem() (*AzureVMWorkloadSAPAseDatabaseWorkloadItem, bool) {
5423 return nil, false
5424 }
5425
5426
5427 func (avwsaswi AzureVMWorkloadSAPAseSystemWorkloadItem) AsAzureVMWorkloadSAPAseSystemWorkloadItem() (*AzureVMWorkloadSAPAseSystemWorkloadItem, bool) {
5428 return &avwsaswi, true
5429 }
5430
5431
5432 func (avwsaswi AzureVMWorkloadSAPAseSystemWorkloadItem) AsAzureVMWorkloadSAPHanaDatabaseWorkloadItem() (*AzureVMWorkloadSAPHanaDatabaseWorkloadItem, bool) {
5433 return nil, false
5434 }
5435
5436
5437 func (avwsaswi AzureVMWorkloadSAPAseSystemWorkloadItem) AsAzureVMWorkloadSAPHanaSystemWorkloadItem() (*AzureVMWorkloadSAPHanaSystemWorkloadItem, bool) {
5438 return nil, false
5439 }
5440
5441
5442 func (avwsaswi AzureVMWorkloadSAPAseSystemWorkloadItem) AsAzureVMWorkloadSQLDatabaseWorkloadItem() (*AzureVMWorkloadSQLDatabaseWorkloadItem, bool) {
5443 return nil, false
5444 }
5445
5446
5447 func (avwsaswi AzureVMWorkloadSAPAseSystemWorkloadItem) AsAzureVMWorkloadSQLInstanceWorkloadItem() (*AzureVMWorkloadSQLInstanceWorkloadItem, bool) {
5448 return nil, false
5449 }
5450
5451
5452 func (avwsaswi AzureVMWorkloadSAPAseSystemWorkloadItem) AsWorkloadItem() (*WorkloadItem, bool) {
5453 return nil, false
5454 }
5455
5456
5457 func (avwsaswi AzureVMWorkloadSAPAseSystemWorkloadItem) AsBasicWorkloadItem() (BasicWorkloadItem, bool) {
5458 return &avwsaswi, true
5459 }
5460
5461
5462
5463 type AzureVMWorkloadSAPHanaDatabaseProtectableItem struct {
5464
5465 ParentName *string `json:"parentName,omitempty"`
5466
5467
5468 ParentUniqueName *string `json:"parentUniqueName,omitempty"`
5469
5470 ServerName *string `json:"serverName,omitempty"`
5471
5472 IsAutoProtectable *bool `json:"isAutoProtectable,omitempty"`
5473
5474 IsAutoProtected *bool `json:"isAutoProtected,omitempty"`
5475
5476 Subinquireditemcount *int32 `json:"subinquireditemcount,omitempty"`
5477
5478 Subprotectableitemcount *int32 `json:"subprotectableitemcount,omitempty"`
5479
5480 Prebackupvalidation *PreBackupValidation `json:"prebackupvalidation,omitempty"`
5481
5482 BackupManagementType *string `json:"backupManagementType,omitempty"`
5483
5484 WorkloadType *string `json:"workloadType,omitempty"`
5485
5486 FriendlyName *string `json:"friendlyName,omitempty"`
5487
5488 ProtectionState ProtectionStatus `json:"protectionState,omitempty"`
5489
5490 ProtectableItemType ProtectableItemType `json:"protectableItemType,omitempty"`
5491 }
5492
5493
5494 func (avwshdpi AzureVMWorkloadSAPHanaDatabaseProtectableItem) MarshalJSON() ([]byte, error) {
5495 avwshdpi.ProtectableItemType = ProtectableItemTypeSAPHanaDatabase
5496 objectMap := make(map[string]interface{})
5497 if avwshdpi.ParentName != nil {
5498 objectMap["parentName"] = avwshdpi.ParentName
5499 }
5500 if avwshdpi.ParentUniqueName != nil {
5501 objectMap["parentUniqueName"] = avwshdpi.ParentUniqueName
5502 }
5503 if avwshdpi.ServerName != nil {
5504 objectMap["serverName"] = avwshdpi.ServerName
5505 }
5506 if avwshdpi.IsAutoProtectable != nil {
5507 objectMap["isAutoProtectable"] = avwshdpi.IsAutoProtectable
5508 }
5509 if avwshdpi.IsAutoProtected != nil {
5510 objectMap["isAutoProtected"] = avwshdpi.IsAutoProtected
5511 }
5512 if avwshdpi.Subinquireditemcount != nil {
5513 objectMap["subinquireditemcount"] = avwshdpi.Subinquireditemcount
5514 }
5515 if avwshdpi.Subprotectableitemcount != nil {
5516 objectMap["subprotectableitemcount"] = avwshdpi.Subprotectableitemcount
5517 }
5518 if avwshdpi.Prebackupvalidation != nil {
5519 objectMap["prebackupvalidation"] = avwshdpi.Prebackupvalidation
5520 }
5521 if avwshdpi.BackupManagementType != nil {
5522 objectMap["backupManagementType"] = avwshdpi.BackupManagementType
5523 }
5524 if avwshdpi.WorkloadType != nil {
5525 objectMap["workloadType"] = avwshdpi.WorkloadType
5526 }
5527 if avwshdpi.FriendlyName != nil {
5528 objectMap["friendlyName"] = avwshdpi.FriendlyName
5529 }
5530 if avwshdpi.ProtectionState != "" {
5531 objectMap["protectionState"] = avwshdpi.ProtectionState
5532 }
5533 if avwshdpi.ProtectableItemType != "" {
5534 objectMap["protectableItemType"] = avwshdpi.ProtectableItemType
5535 }
5536 return json.Marshal(objectMap)
5537 }
5538
5539
5540 func (avwshdpi AzureVMWorkloadSAPHanaDatabaseProtectableItem) AsAzureFileShareProtectableItem() (*AzureFileShareProtectableItem, bool) {
5541 return nil, false
5542 }
5543
5544
5545 func (avwshdpi AzureVMWorkloadSAPHanaDatabaseProtectableItem) AsAzureIaaSClassicComputeVMProtectableItem() (*AzureIaaSClassicComputeVMProtectableItem, bool) {
5546 return nil, false
5547 }
5548
5549
5550 func (avwshdpi AzureVMWorkloadSAPHanaDatabaseProtectableItem) AsAzureIaaSComputeVMProtectableItem() (*AzureIaaSComputeVMProtectableItem, bool) {
5551 return nil, false
5552 }
5553
5554
5555 func (avwshdpi AzureVMWorkloadSAPHanaDatabaseProtectableItem) AsAzureVMWorkloadProtectableItem() (*AzureVMWorkloadProtectableItem, bool) {
5556 return nil, false
5557 }
5558
5559
5560 func (avwshdpi AzureVMWorkloadSAPHanaDatabaseProtectableItem) AsBasicAzureVMWorkloadProtectableItem() (BasicAzureVMWorkloadProtectableItem, bool) {
5561 return &avwshdpi, true
5562 }
5563
5564
5565 func (avwshdpi AzureVMWorkloadSAPHanaDatabaseProtectableItem) AsAzureVMWorkloadSAPAseSystemProtectableItem() (*AzureVMWorkloadSAPAseSystemProtectableItem, bool) {
5566 return nil, false
5567 }
5568
5569
5570 func (avwshdpi AzureVMWorkloadSAPHanaDatabaseProtectableItem) AsAzureVMWorkloadSAPHanaDatabaseProtectableItem() (*AzureVMWorkloadSAPHanaDatabaseProtectableItem, bool) {
5571 return &avwshdpi, true
5572 }
5573
5574
5575 func (avwshdpi AzureVMWorkloadSAPHanaDatabaseProtectableItem) AsAzureVMWorkloadSAPHanaSystemProtectableItem() (*AzureVMWorkloadSAPHanaSystemProtectableItem, bool) {
5576 return nil, false
5577 }
5578
5579
5580 func (avwshdpi AzureVMWorkloadSAPHanaDatabaseProtectableItem) AsAzureVMWorkloadSQLAvailabilityGroupProtectableItem() (*AzureVMWorkloadSQLAvailabilityGroupProtectableItem, bool) {
5581 return nil, false
5582 }
5583
5584
5585 func (avwshdpi AzureVMWorkloadSAPHanaDatabaseProtectableItem) AsAzureVMWorkloadSQLDatabaseProtectableItem() (*AzureVMWorkloadSQLDatabaseProtectableItem, bool) {
5586 return nil, false
5587 }
5588
5589
5590 func (avwshdpi AzureVMWorkloadSAPHanaDatabaseProtectableItem) AsAzureVMWorkloadSQLInstanceProtectableItem() (*AzureVMWorkloadSQLInstanceProtectableItem, bool) {
5591 return nil, false
5592 }
5593
5594
5595 func (avwshdpi AzureVMWorkloadSAPHanaDatabaseProtectableItem) AsIaaSVMProtectableItem() (*IaaSVMProtectableItem, bool) {
5596 return nil, false
5597 }
5598
5599
5600 func (avwshdpi AzureVMWorkloadSAPHanaDatabaseProtectableItem) AsBasicIaaSVMProtectableItem() (BasicIaaSVMProtectableItem, bool) {
5601 return nil, false
5602 }
5603
5604
5605 func (avwshdpi AzureVMWorkloadSAPHanaDatabaseProtectableItem) AsWorkloadProtectableItem() (*WorkloadProtectableItem, bool) {
5606 return nil, false
5607 }
5608
5609
5610 func (avwshdpi AzureVMWorkloadSAPHanaDatabaseProtectableItem) AsBasicWorkloadProtectableItem() (BasicWorkloadProtectableItem, bool) {
5611 return &avwshdpi, true
5612 }
5613
5614
5615
5616 type AzureVMWorkloadSAPHanaDatabaseProtectedItem struct {
5617
5618 FriendlyName *string `json:"friendlyName,omitempty"`
5619
5620 ServerName *string `json:"serverName,omitempty"`
5621
5622 ParentName *string `json:"parentName,omitempty"`
5623
5624 ParentType *string `json:"parentType,omitempty"`
5625
5626 ProtectionStatus *string `json:"protectionStatus,omitempty"`
5627
5628 ProtectionState ProtectionState `json:"protectionState,omitempty"`
5629
5630 LastBackupStatus LastBackupStatus `json:"lastBackupStatus,omitempty"`
5631
5632 LastBackupTime *date.Time `json:"lastBackupTime,omitempty"`
5633
5634 LastBackupErrorDetail *ErrorDetail `json:"lastBackupErrorDetail,omitempty"`
5635
5636 ProtectedItemDataSourceID *string `json:"protectedItemDataSourceId,omitempty"`
5637
5638 ProtectedItemHealthStatus ProtectedItemHealthStatus `json:"protectedItemHealthStatus,omitempty"`
5639
5640 ExtendedInfo *AzureVMWorkloadProtectedItemExtendedInfo `json:"extendedInfo,omitempty"`
5641
5642 KpisHealths map[string]*KPIResourceHealthDetails `json:"kpisHealths"`
5643
5644 BackupManagementType ManagementType `json:"backupManagementType,omitempty"`
5645
5646 WorkloadType DataSourceType `json:"workloadType,omitempty"`
5647
5648 ContainerName *string `json:"containerName,omitempty"`
5649
5650 SourceResourceID *string `json:"sourceResourceId,omitempty"`
5651
5652 PolicyID *string `json:"policyId,omitempty"`
5653
5654 LastRecoveryPoint *date.Time `json:"lastRecoveryPoint,omitempty"`
5655
5656 BackupSetName *string `json:"backupSetName,omitempty"`
5657
5658 CreateMode CreateMode `json:"createMode,omitempty"`
5659
5660 DeferredDeleteTimeInUTC *date.Time `json:"deferredDeleteTimeInUTC,omitempty"`
5661
5662 IsScheduledForDeferredDelete *bool `json:"isScheduledForDeferredDelete,omitempty"`
5663
5664 DeferredDeleteTimeRemaining *string `json:"deferredDeleteTimeRemaining,omitempty"`
5665
5666 IsDeferredDeleteScheduleUpcoming *bool `json:"isDeferredDeleteScheduleUpcoming,omitempty"`
5667
5668 IsRehydrate *bool `json:"isRehydrate,omitempty"`
5669
5670 ProtectedItemType ProtectedItemType `json:"protectedItemType,omitempty"`
5671 }
5672
5673
5674 func (avwshdpi AzureVMWorkloadSAPHanaDatabaseProtectedItem) MarshalJSON() ([]byte, error) {
5675 avwshdpi.ProtectedItemType = ProtectedItemTypeAzureVMWorkloadSAPHanaDatabase
5676 objectMap := make(map[string]interface{})
5677 if avwshdpi.FriendlyName != nil {
5678 objectMap["friendlyName"] = avwshdpi.FriendlyName
5679 }
5680 if avwshdpi.ServerName != nil {
5681 objectMap["serverName"] = avwshdpi.ServerName
5682 }
5683 if avwshdpi.ParentName != nil {
5684 objectMap["parentName"] = avwshdpi.ParentName
5685 }
5686 if avwshdpi.ParentType != nil {
5687 objectMap["parentType"] = avwshdpi.ParentType
5688 }
5689 if avwshdpi.ProtectionStatus != nil {
5690 objectMap["protectionStatus"] = avwshdpi.ProtectionStatus
5691 }
5692 if avwshdpi.ProtectionState != "" {
5693 objectMap["protectionState"] = avwshdpi.ProtectionState
5694 }
5695 if avwshdpi.LastBackupStatus != "" {
5696 objectMap["lastBackupStatus"] = avwshdpi.LastBackupStatus
5697 }
5698 if avwshdpi.LastBackupTime != nil {
5699 objectMap["lastBackupTime"] = avwshdpi.LastBackupTime
5700 }
5701 if avwshdpi.LastBackupErrorDetail != nil {
5702 objectMap["lastBackupErrorDetail"] = avwshdpi.LastBackupErrorDetail
5703 }
5704 if avwshdpi.ProtectedItemDataSourceID != nil {
5705 objectMap["protectedItemDataSourceId"] = avwshdpi.ProtectedItemDataSourceID
5706 }
5707 if avwshdpi.ProtectedItemHealthStatus != "" {
5708 objectMap["protectedItemHealthStatus"] = avwshdpi.ProtectedItemHealthStatus
5709 }
5710 if avwshdpi.ExtendedInfo != nil {
5711 objectMap["extendedInfo"] = avwshdpi.ExtendedInfo
5712 }
5713 if avwshdpi.KpisHealths != nil {
5714 objectMap["kpisHealths"] = avwshdpi.KpisHealths
5715 }
5716 if avwshdpi.BackupManagementType != "" {
5717 objectMap["backupManagementType"] = avwshdpi.BackupManagementType
5718 }
5719 if avwshdpi.WorkloadType != "" {
5720 objectMap["workloadType"] = avwshdpi.WorkloadType
5721 }
5722 if avwshdpi.ContainerName != nil {
5723 objectMap["containerName"] = avwshdpi.ContainerName
5724 }
5725 if avwshdpi.SourceResourceID != nil {
5726 objectMap["sourceResourceId"] = avwshdpi.SourceResourceID
5727 }
5728 if avwshdpi.PolicyID != nil {
5729 objectMap["policyId"] = avwshdpi.PolicyID
5730 }
5731 if avwshdpi.LastRecoveryPoint != nil {
5732 objectMap["lastRecoveryPoint"] = avwshdpi.LastRecoveryPoint
5733 }
5734 if avwshdpi.BackupSetName != nil {
5735 objectMap["backupSetName"] = avwshdpi.BackupSetName
5736 }
5737 if avwshdpi.CreateMode != "" {
5738 objectMap["createMode"] = avwshdpi.CreateMode
5739 }
5740 if avwshdpi.DeferredDeleteTimeInUTC != nil {
5741 objectMap["deferredDeleteTimeInUTC"] = avwshdpi.DeferredDeleteTimeInUTC
5742 }
5743 if avwshdpi.IsScheduledForDeferredDelete != nil {
5744 objectMap["isScheduledForDeferredDelete"] = avwshdpi.IsScheduledForDeferredDelete
5745 }
5746 if avwshdpi.DeferredDeleteTimeRemaining != nil {
5747 objectMap["deferredDeleteTimeRemaining"] = avwshdpi.DeferredDeleteTimeRemaining
5748 }
5749 if avwshdpi.IsDeferredDeleteScheduleUpcoming != nil {
5750 objectMap["isDeferredDeleteScheduleUpcoming"] = avwshdpi.IsDeferredDeleteScheduleUpcoming
5751 }
5752 if avwshdpi.IsRehydrate != nil {
5753 objectMap["isRehydrate"] = avwshdpi.IsRehydrate
5754 }
5755 if avwshdpi.ProtectedItemType != "" {
5756 objectMap["protectedItemType"] = avwshdpi.ProtectedItemType
5757 }
5758 return json.Marshal(objectMap)
5759 }
5760
5761
5762 func (avwshdpi AzureVMWorkloadSAPHanaDatabaseProtectedItem) AsAzureFileshareProtectedItem() (*AzureFileshareProtectedItem, bool) {
5763 return nil, false
5764 }
5765
5766
5767 func (avwshdpi AzureVMWorkloadSAPHanaDatabaseProtectedItem) AsAzureIaaSClassicComputeVMProtectedItem() (*AzureIaaSClassicComputeVMProtectedItem, bool) {
5768 return nil, false
5769 }
5770
5771
5772 func (avwshdpi AzureVMWorkloadSAPHanaDatabaseProtectedItem) AsAzureIaaSComputeVMProtectedItem() (*AzureIaaSComputeVMProtectedItem, bool) {
5773 return nil, false
5774 }
5775
5776
5777 func (avwshdpi AzureVMWorkloadSAPHanaDatabaseProtectedItem) AsAzureIaaSVMProtectedItem() (*AzureIaaSVMProtectedItem, bool) {
5778 return nil, false
5779 }
5780
5781
5782 func (avwshdpi AzureVMWorkloadSAPHanaDatabaseProtectedItem) AsBasicAzureIaaSVMProtectedItem() (BasicAzureIaaSVMProtectedItem, bool) {
5783 return nil, false
5784 }
5785
5786
5787 func (avwshdpi AzureVMWorkloadSAPHanaDatabaseProtectedItem) AsAzureSQLProtectedItem() (*AzureSQLProtectedItem, bool) {
5788 return nil, false
5789 }
5790
5791
5792 func (avwshdpi AzureVMWorkloadSAPHanaDatabaseProtectedItem) AsAzureVMWorkloadProtectedItem() (*AzureVMWorkloadProtectedItem, bool) {
5793 return nil, false
5794 }
5795
5796
5797 func (avwshdpi AzureVMWorkloadSAPHanaDatabaseProtectedItem) AsBasicAzureVMWorkloadProtectedItem() (BasicAzureVMWorkloadProtectedItem, bool) {
5798 return &avwshdpi, true
5799 }
5800
5801
5802 func (avwshdpi AzureVMWorkloadSAPHanaDatabaseProtectedItem) AsAzureVMWorkloadSAPAseDatabaseProtectedItem() (*AzureVMWorkloadSAPAseDatabaseProtectedItem, bool) {
5803 return nil, false
5804 }
5805
5806
5807 func (avwshdpi AzureVMWorkloadSAPHanaDatabaseProtectedItem) AsAzureVMWorkloadSAPHanaDatabaseProtectedItem() (*AzureVMWorkloadSAPHanaDatabaseProtectedItem, bool) {
5808 return &avwshdpi, true
5809 }
5810
5811
5812 func (avwshdpi AzureVMWorkloadSAPHanaDatabaseProtectedItem) AsAzureVMWorkloadSQLDatabaseProtectedItem() (*AzureVMWorkloadSQLDatabaseProtectedItem, bool) {
5813 return nil, false
5814 }
5815
5816
5817 func (avwshdpi AzureVMWorkloadSAPHanaDatabaseProtectedItem) AsDPMProtectedItem() (*DPMProtectedItem, bool) {
5818 return nil, false
5819 }
5820
5821
5822 func (avwshdpi AzureVMWorkloadSAPHanaDatabaseProtectedItem) AsGenericProtectedItem() (*GenericProtectedItem, bool) {
5823 return nil, false
5824 }
5825
5826
5827 func (avwshdpi AzureVMWorkloadSAPHanaDatabaseProtectedItem) AsMabFileFolderProtectedItem() (*MabFileFolderProtectedItem, bool) {
5828 return nil, false
5829 }
5830
5831
5832 func (avwshdpi AzureVMWorkloadSAPHanaDatabaseProtectedItem) AsProtectedItem() (*ProtectedItem, bool) {
5833 return nil, false
5834 }
5835
5836
5837 func (avwshdpi AzureVMWorkloadSAPHanaDatabaseProtectedItem) AsBasicProtectedItem() (BasicProtectedItem, bool) {
5838 return &avwshdpi, true
5839 }
5840
5841
5842
5843 type AzureVMWorkloadSAPHanaDatabaseWorkloadItem struct {
5844
5845 ParentName *string `json:"parentName,omitempty"`
5846
5847 ServerName *string `json:"serverName,omitempty"`
5848
5849 IsAutoProtectable *bool `json:"isAutoProtectable,omitempty"`
5850
5851 Subinquireditemcount *int32 `json:"subinquireditemcount,omitempty"`
5852
5853 SubWorkloadItemCount *int32 `json:"subWorkloadItemCount,omitempty"`
5854
5855 BackupManagementType *string `json:"backupManagementType,omitempty"`
5856
5857 WorkloadType *string `json:"workloadType,omitempty"`
5858
5859 FriendlyName *string `json:"friendlyName,omitempty"`
5860
5861 ProtectionState ProtectionStatus `json:"protectionState,omitempty"`
5862
5863 WorkloadItemType WorkloadItemTypeBasicWorkloadItem `json:"workloadItemType,omitempty"`
5864 }
5865
5866
5867 func (avwshdwi AzureVMWorkloadSAPHanaDatabaseWorkloadItem) MarshalJSON() ([]byte, error) {
5868 avwshdwi.WorkloadItemType = WorkloadItemTypeSAPHanaDatabase1
5869 objectMap := make(map[string]interface{})
5870 if avwshdwi.ParentName != nil {
5871 objectMap["parentName"] = avwshdwi.ParentName
5872 }
5873 if avwshdwi.ServerName != nil {
5874 objectMap["serverName"] = avwshdwi.ServerName
5875 }
5876 if avwshdwi.IsAutoProtectable != nil {
5877 objectMap["isAutoProtectable"] = avwshdwi.IsAutoProtectable
5878 }
5879 if avwshdwi.Subinquireditemcount != nil {
5880 objectMap["subinquireditemcount"] = avwshdwi.Subinquireditemcount
5881 }
5882 if avwshdwi.SubWorkloadItemCount != nil {
5883 objectMap["subWorkloadItemCount"] = avwshdwi.SubWorkloadItemCount
5884 }
5885 if avwshdwi.BackupManagementType != nil {
5886 objectMap["backupManagementType"] = avwshdwi.BackupManagementType
5887 }
5888 if avwshdwi.WorkloadType != nil {
5889 objectMap["workloadType"] = avwshdwi.WorkloadType
5890 }
5891 if avwshdwi.FriendlyName != nil {
5892 objectMap["friendlyName"] = avwshdwi.FriendlyName
5893 }
5894 if avwshdwi.ProtectionState != "" {
5895 objectMap["protectionState"] = avwshdwi.ProtectionState
5896 }
5897 if avwshdwi.WorkloadItemType != "" {
5898 objectMap["workloadItemType"] = avwshdwi.WorkloadItemType
5899 }
5900 return json.Marshal(objectMap)
5901 }
5902
5903
5904 func (avwshdwi AzureVMWorkloadSAPHanaDatabaseWorkloadItem) AsAzureVMWorkloadItem() (*AzureVMWorkloadItem, bool) {
5905 return nil, false
5906 }
5907
5908
5909 func (avwshdwi AzureVMWorkloadSAPHanaDatabaseWorkloadItem) AsBasicAzureVMWorkloadItem() (BasicAzureVMWorkloadItem, bool) {
5910 return &avwshdwi, true
5911 }
5912
5913
5914 func (avwshdwi AzureVMWorkloadSAPHanaDatabaseWorkloadItem) AsAzureVMWorkloadSAPAseDatabaseWorkloadItem() (*AzureVMWorkloadSAPAseDatabaseWorkloadItem, bool) {
5915 return nil, false
5916 }
5917
5918
5919 func (avwshdwi AzureVMWorkloadSAPHanaDatabaseWorkloadItem) AsAzureVMWorkloadSAPAseSystemWorkloadItem() (*AzureVMWorkloadSAPAseSystemWorkloadItem, bool) {
5920 return nil, false
5921 }
5922
5923
5924 func (avwshdwi AzureVMWorkloadSAPHanaDatabaseWorkloadItem) AsAzureVMWorkloadSAPHanaDatabaseWorkloadItem() (*AzureVMWorkloadSAPHanaDatabaseWorkloadItem, bool) {
5925 return &avwshdwi, true
5926 }
5927
5928
5929 func (avwshdwi AzureVMWorkloadSAPHanaDatabaseWorkloadItem) AsAzureVMWorkloadSAPHanaSystemWorkloadItem() (*AzureVMWorkloadSAPHanaSystemWorkloadItem, bool) {
5930 return nil, false
5931 }
5932
5933
5934 func (avwshdwi AzureVMWorkloadSAPHanaDatabaseWorkloadItem) AsAzureVMWorkloadSQLDatabaseWorkloadItem() (*AzureVMWorkloadSQLDatabaseWorkloadItem, bool) {
5935 return nil, false
5936 }
5937
5938
5939 func (avwshdwi AzureVMWorkloadSAPHanaDatabaseWorkloadItem) AsAzureVMWorkloadSQLInstanceWorkloadItem() (*AzureVMWorkloadSQLInstanceWorkloadItem, bool) {
5940 return nil, false
5941 }
5942
5943
5944 func (avwshdwi AzureVMWorkloadSAPHanaDatabaseWorkloadItem) AsWorkloadItem() (*WorkloadItem, bool) {
5945 return nil, false
5946 }
5947
5948
5949 func (avwshdwi AzureVMWorkloadSAPHanaDatabaseWorkloadItem) AsBasicWorkloadItem() (BasicWorkloadItem, bool) {
5950 return &avwshdwi, true
5951 }
5952
5953
5954
5955 type AzureVMWorkloadSAPHanaSystemProtectableItem struct {
5956
5957 ParentName *string `json:"parentName,omitempty"`
5958
5959
5960 ParentUniqueName *string `json:"parentUniqueName,omitempty"`
5961
5962 ServerName *string `json:"serverName,omitempty"`
5963
5964 IsAutoProtectable *bool `json:"isAutoProtectable,omitempty"`
5965
5966 IsAutoProtected *bool `json:"isAutoProtected,omitempty"`
5967
5968 Subinquireditemcount *int32 `json:"subinquireditemcount,omitempty"`
5969
5970 Subprotectableitemcount *int32 `json:"subprotectableitemcount,omitempty"`
5971
5972 Prebackupvalidation *PreBackupValidation `json:"prebackupvalidation,omitempty"`
5973
5974 BackupManagementType *string `json:"backupManagementType,omitempty"`
5975
5976 WorkloadType *string `json:"workloadType,omitempty"`
5977
5978 FriendlyName *string `json:"friendlyName,omitempty"`
5979
5980 ProtectionState ProtectionStatus `json:"protectionState,omitempty"`
5981
5982 ProtectableItemType ProtectableItemType `json:"protectableItemType,omitempty"`
5983 }
5984
5985
5986 func (avwshspi AzureVMWorkloadSAPHanaSystemProtectableItem) MarshalJSON() ([]byte, error) {
5987 avwshspi.ProtectableItemType = ProtectableItemTypeSAPHanaSystem
5988 objectMap := make(map[string]interface{})
5989 if avwshspi.ParentName != nil {
5990 objectMap["parentName"] = avwshspi.ParentName
5991 }
5992 if avwshspi.ParentUniqueName != nil {
5993 objectMap["parentUniqueName"] = avwshspi.ParentUniqueName
5994 }
5995 if avwshspi.ServerName != nil {
5996 objectMap["serverName"] = avwshspi.ServerName
5997 }
5998 if avwshspi.IsAutoProtectable != nil {
5999 objectMap["isAutoProtectable"] = avwshspi.IsAutoProtectable
6000 }
6001 if avwshspi.IsAutoProtected != nil {
6002 objectMap["isAutoProtected"] = avwshspi.IsAutoProtected
6003 }
6004 if avwshspi.Subinquireditemcount != nil {
6005 objectMap["subinquireditemcount"] = avwshspi.Subinquireditemcount
6006 }
6007 if avwshspi.Subprotectableitemcount != nil {
6008 objectMap["subprotectableitemcount"] = avwshspi.Subprotectableitemcount
6009 }
6010 if avwshspi.Prebackupvalidation != nil {
6011 objectMap["prebackupvalidation"] = avwshspi.Prebackupvalidation
6012 }
6013 if avwshspi.BackupManagementType != nil {
6014 objectMap["backupManagementType"] = avwshspi.BackupManagementType
6015 }
6016 if avwshspi.WorkloadType != nil {
6017 objectMap["workloadType"] = avwshspi.WorkloadType
6018 }
6019 if avwshspi.FriendlyName != nil {
6020 objectMap["friendlyName"] = avwshspi.FriendlyName
6021 }
6022 if avwshspi.ProtectionState != "" {
6023 objectMap["protectionState"] = avwshspi.ProtectionState
6024 }
6025 if avwshspi.ProtectableItemType != "" {
6026 objectMap["protectableItemType"] = avwshspi.ProtectableItemType
6027 }
6028 return json.Marshal(objectMap)
6029 }
6030
6031
6032 func (avwshspi AzureVMWorkloadSAPHanaSystemProtectableItem) AsAzureFileShareProtectableItem() (*AzureFileShareProtectableItem, bool) {
6033 return nil, false
6034 }
6035
6036
6037 func (avwshspi AzureVMWorkloadSAPHanaSystemProtectableItem) AsAzureIaaSClassicComputeVMProtectableItem() (*AzureIaaSClassicComputeVMProtectableItem, bool) {
6038 return nil, false
6039 }
6040
6041
6042 func (avwshspi AzureVMWorkloadSAPHanaSystemProtectableItem) AsAzureIaaSComputeVMProtectableItem() (*AzureIaaSComputeVMProtectableItem, bool) {
6043 return nil, false
6044 }
6045
6046
6047 func (avwshspi AzureVMWorkloadSAPHanaSystemProtectableItem) AsAzureVMWorkloadProtectableItem() (*AzureVMWorkloadProtectableItem, bool) {
6048 return nil, false
6049 }
6050
6051
6052 func (avwshspi AzureVMWorkloadSAPHanaSystemProtectableItem) AsBasicAzureVMWorkloadProtectableItem() (BasicAzureVMWorkloadProtectableItem, bool) {
6053 return &avwshspi, true
6054 }
6055
6056
6057 func (avwshspi AzureVMWorkloadSAPHanaSystemProtectableItem) AsAzureVMWorkloadSAPAseSystemProtectableItem() (*AzureVMWorkloadSAPAseSystemProtectableItem, bool) {
6058 return nil, false
6059 }
6060
6061
6062 func (avwshspi AzureVMWorkloadSAPHanaSystemProtectableItem) AsAzureVMWorkloadSAPHanaDatabaseProtectableItem() (*AzureVMWorkloadSAPHanaDatabaseProtectableItem, bool) {
6063 return nil, false
6064 }
6065
6066
6067 func (avwshspi AzureVMWorkloadSAPHanaSystemProtectableItem) AsAzureVMWorkloadSAPHanaSystemProtectableItem() (*AzureVMWorkloadSAPHanaSystemProtectableItem, bool) {
6068 return &avwshspi, true
6069 }
6070
6071
6072 func (avwshspi AzureVMWorkloadSAPHanaSystemProtectableItem) AsAzureVMWorkloadSQLAvailabilityGroupProtectableItem() (*AzureVMWorkloadSQLAvailabilityGroupProtectableItem, bool) {
6073 return nil, false
6074 }
6075
6076
6077 func (avwshspi AzureVMWorkloadSAPHanaSystemProtectableItem) AsAzureVMWorkloadSQLDatabaseProtectableItem() (*AzureVMWorkloadSQLDatabaseProtectableItem, bool) {
6078 return nil, false
6079 }
6080
6081
6082 func (avwshspi AzureVMWorkloadSAPHanaSystemProtectableItem) AsAzureVMWorkloadSQLInstanceProtectableItem() (*AzureVMWorkloadSQLInstanceProtectableItem, bool) {
6083 return nil, false
6084 }
6085
6086
6087 func (avwshspi AzureVMWorkloadSAPHanaSystemProtectableItem) AsIaaSVMProtectableItem() (*IaaSVMProtectableItem, bool) {
6088 return nil, false
6089 }
6090
6091
6092 func (avwshspi AzureVMWorkloadSAPHanaSystemProtectableItem) AsBasicIaaSVMProtectableItem() (BasicIaaSVMProtectableItem, bool) {
6093 return nil, false
6094 }
6095
6096
6097 func (avwshspi AzureVMWorkloadSAPHanaSystemProtectableItem) AsWorkloadProtectableItem() (*WorkloadProtectableItem, bool) {
6098 return nil, false
6099 }
6100
6101
6102 func (avwshspi AzureVMWorkloadSAPHanaSystemProtectableItem) AsBasicWorkloadProtectableItem() (BasicWorkloadProtectableItem, bool) {
6103 return &avwshspi, true
6104 }
6105
6106
6107
6108 type AzureVMWorkloadSAPHanaSystemWorkloadItem struct {
6109
6110 ParentName *string `json:"parentName,omitempty"`
6111
6112 ServerName *string `json:"serverName,omitempty"`
6113
6114 IsAutoProtectable *bool `json:"isAutoProtectable,omitempty"`
6115
6116 Subinquireditemcount *int32 `json:"subinquireditemcount,omitempty"`
6117
6118 SubWorkloadItemCount *int32 `json:"subWorkloadItemCount,omitempty"`
6119
6120 BackupManagementType *string `json:"backupManagementType,omitempty"`
6121
6122 WorkloadType *string `json:"workloadType,omitempty"`
6123
6124 FriendlyName *string `json:"friendlyName,omitempty"`
6125
6126 ProtectionState ProtectionStatus `json:"protectionState,omitempty"`
6127
6128 WorkloadItemType WorkloadItemTypeBasicWorkloadItem `json:"workloadItemType,omitempty"`
6129 }
6130
6131
6132 func (avwshswi AzureVMWorkloadSAPHanaSystemWorkloadItem) MarshalJSON() ([]byte, error) {
6133 avwshswi.WorkloadItemType = WorkloadItemTypeSAPHanaSystem1
6134 objectMap := make(map[string]interface{})
6135 if avwshswi.ParentName != nil {
6136 objectMap["parentName"] = avwshswi.ParentName
6137 }
6138 if avwshswi.ServerName != nil {
6139 objectMap["serverName"] = avwshswi.ServerName
6140 }
6141 if avwshswi.IsAutoProtectable != nil {
6142 objectMap["isAutoProtectable"] = avwshswi.IsAutoProtectable
6143 }
6144 if avwshswi.Subinquireditemcount != nil {
6145 objectMap["subinquireditemcount"] = avwshswi.Subinquireditemcount
6146 }
6147 if avwshswi.SubWorkloadItemCount != nil {
6148 objectMap["subWorkloadItemCount"] = avwshswi.SubWorkloadItemCount
6149 }
6150 if avwshswi.BackupManagementType != nil {
6151 objectMap["backupManagementType"] = avwshswi.BackupManagementType
6152 }
6153 if avwshswi.WorkloadType != nil {
6154 objectMap["workloadType"] = avwshswi.WorkloadType
6155 }
6156 if avwshswi.FriendlyName != nil {
6157 objectMap["friendlyName"] = avwshswi.FriendlyName
6158 }
6159 if avwshswi.ProtectionState != "" {
6160 objectMap["protectionState"] = avwshswi.ProtectionState
6161 }
6162 if avwshswi.WorkloadItemType != "" {
6163 objectMap["workloadItemType"] = avwshswi.WorkloadItemType
6164 }
6165 return json.Marshal(objectMap)
6166 }
6167
6168
6169 func (avwshswi AzureVMWorkloadSAPHanaSystemWorkloadItem) AsAzureVMWorkloadItem() (*AzureVMWorkloadItem, bool) {
6170 return nil, false
6171 }
6172
6173
6174 func (avwshswi AzureVMWorkloadSAPHanaSystemWorkloadItem) AsBasicAzureVMWorkloadItem() (BasicAzureVMWorkloadItem, bool) {
6175 return &avwshswi, true
6176 }
6177
6178
6179 func (avwshswi AzureVMWorkloadSAPHanaSystemWorkloadItem) AsAzureVMWorkloadSAPAseDatabaseWorkloadItem() (*AzureVMWorkloadSAPAseDatabaseWorkloadItem, bool) {
6180 return nil, false
6181 }
6182
6183
6184 func (avwshswi AzureVMWorkloadSAPHanaSystemWorkloadItem) AsAzureVMWorkloadSAPAseSystemWorkloadItem() (*AzureVMWorkloadSAPAseSystemWorkloadItem, bool) {
6185 return nil, false
6186 }
6187
6188
6189 func (avwshswi AzureVMWorkloadSAPHanaSystemWorkloadItem) AsAzureVMWorkloadSAPHanaDatabaseWorkloadItem() (*AzureVMWorkloadSAPHanaDatabaseWorkloadItem, bool) {
6190 return nil, false
6191 }
6192
6193
6194 func (avwshswi AzureVMWorkloadSAPHanaSystemWorkloadItem) AsAzureVMWorkloadSAPHanaSystemWorkloadItem() (*AzureVMWorkloadSAPHanaSystemWorkloadItem, bool) {
6195 return &avwshswi, true
6196 }
6197
6198
6199 func (avwshswi AzureVMWorkloadSAPHanaSystemWorkloadItem) AsAzureVMWorkloadSQLDatabaseWorkloadItem() (*AzureVMWorkloadSQLDatabaseWorkloadItem, bool) {
6200 return nil, false
6201 }
6202
6203
6204 func (avwshswi AzureVMWorkloadSAPHanaSystemWorkloadItem) AsAzureVMWorkloadSQLInstanceWorkloadItem() (*AzureVMWorkloadSQLInstanceWorkloadItem, bool) {
6205 return nil, false
6206 }
6207
6208
6209 func (avwshswi AzureVMWorkloadSAPHanaSystemWorkloadItem) AsWorkloadItem() (*WorkloadItem, bool) {
6210 return nil, false
6211 }
6212
6213
6214 func (avwshswi AzureVMWorkloadSAPHanaSystemWorkloadItem) AsBasicWorkloadItem() (BasicWorkloadItem, bool) {
6215 return &avwshswi, true
6216 }
6217
6218
6219
6220 type AzureVMWorkloadSQLAvailabilityGroupProtectableItem struct {
6221
6222 ParentName *string `json:"parentName,omitempty"`
6223
6224
6225 ParentUniqueName *string `json:"parentUniqueName,omitempty"`
6226
6227 ServerName *string `json:"serverName,omitempty"`
6228
6229 IsAutoProtectable *bool `json:"isAutoProtectable,omitempty"`
6230
6231 IsAutoProtected *bool `json:"isAutoProtected,omitempty"`
6232
6233 Subinquireditemcount *int32 `json:"subinquireditemcount,omitempty"`
6234
6235 Subprotectableitemcount *int32 `json:"subprotectableitemcount,omitempty"`
6236
6237 Prebackupvalidation *PreBackupValidation `json:"prebackupvalidation,omitempty"`
6238
6239 BackupManagementType *string `json:"backupManagementType,omitempty"`
6240
6241 WorkloadType *string `json:"workloadType,omitempty"`
6242
6243 FriendlyName *string `json:"friendlyName,omitempty"`
6244
6245 ProtectionState ProtectionStatus `json:"protectionState,omitempty"`
6246
6247 ProtectableItemType ProtectableItemType `json:"protectableItemType,omitempty"`
6248 }
6249
6250
6251 func (avwsagpi AzureVMWorkloadSQLAvailabilityGroupProtectableItem) MarshalJSON() ([]byte, error) {
6252 avwsagpi.ProtectableItemType = ProtectableItemTypeSQLAvailabilityGroupContainer
6253 objectMap := make(map[string]interface{})
6254 if avwsagpi.ParentName != nil {
6255 objectMap["parentName"] = avwsagpi.ParentName
6256 }
6257 if avwsagpi.ParentUniqueName != nil {
6258 objectMap["parentUniqueName"] = avwsagpi.ParentUniqueName
6259 }
6260 if avwsagpi.ServerName != nil {
6261 objectMap["serverName"] = avwsagpi.ServerName
6262 }
6263 if avwsagpi.IsAutoProtectable != nil {
6264 objectMap["isAutoProtectable"] = avwsagpi.IsAutoProtectable
6265 }
6266 if avwsagpi.IsAutoProtected != nil {
6267 objectMap["isAutoProtected"] = avwsagpi.IsAutoProtected
6268 }
6269 if avwsagpi.Subinquireditemcount != nil {
6270 objectMap["subinquireditemcount"] = avwsagpi.Subinquireditemcount
6271 }
6272 if avwsagpi.Subprotectableitemcount != nil {
6273 objectMap["subprotectableitemcount"] = avwsagpi.Subprotectableitemcount
6274 }
6275 if avwsagpi.Prebackupvalidation != nil {
6276 objectMap["prebackupvalidation"] = avwsagpi.Prebackupvalidation
6277 }
6278 if avwsagpi.BackupManagementType != nil {
6279 objectMap["backupManagementType"] = avwsagpi.BackupManagementType
6280 }
6281 if avwsagpi.WorkloadType != nil {
6282 objectMap["workloadType"] = avwsagpi.WorkloadType
6283 }
6284 if avwsagpi.FriendlyName != nil {
6285 objectMap["friendlyName"] = avwsagpi.FriendlyName
6286 }
6287 if avwsagpi.ProtectionState != "" {
6288 objectMap["protectionState"] = avwsagpi.ProtectionState
6289 }
6290 if avwsagpi.ProtectableItemType != "" {
6291 objectMap["protectableItemType"] = avwsagpi.ProtectableItemType
6292 }
6293 return json.Marshal(objectMap)
6294 }
6295
6296
6297 func (avwsagpi AzureVMWorkloadSQLAvailabilityGroupProtectableItem) AsAzureFileShareProtectableItem() (*AzureFileShareProtectableItem, bool) {
6298 return nil, false
6299 }
6300
6301
6302 func (avwsagpi AzureVMWorkloadSQLAvailabilityGroupProtectableItem) AsAzureIaaSClassicComputeVMProtectableItem() (*AzureIaaSClassicComputeVMProtectableItem, bool) {
6303 return nil, false
6304 }
6305
6306
6307 func (avwsagpi AzureVMWorkloadSQLAvailabilityGroupProtectableItem) AsAzureIaaSComputeVMProtectableItem() (*AzureIaaSComputeVMProtectableItem, bool) {
6308 return nil, false
6309 }
6310
6311
6312 func (avwsagpi AzureVMWorkloadSQLAvailabilityGroupProtectableItem) AsAzureVMWorkloadProtectableItem() (*AzureVMWorkloadProtectableItem, bool) {
6313 return nil, false
6314 }
6315
6316
6317 func (avwsagpi AzureVMWorkloadSQLAvailabilityGroupProtectableItem) AsBasicAzureVMWorkloadProtectableItem() (BasicAzureVMWorkloadProtectableItem, bool) {
6318 return &avwsagpi, true
6319 }
6320
6321
6322 func (avwsagpi AzureVMWorkloadSQLAvailabilityGroupProtectableItem) AsAzureVMWorkloadSAPAseSystemProtectableItem() (*AzureVMWorkloadSAPAseSystemProtectableItem, bool) {
6323 return nil, false
6324 }
6325
6326
6327 func (avwsagpi AzureVMWorkloadSQLAvailabilityGroupProtectableItem) AsAzureVMWorkloadSAPHanaDatabaseProtectableItem() (*AzureVMWorkloadSAPHanaDatabaseProtectableItem, bool) {
6328 return nil, false
6329 }
6330
6331
6332 func (avwsagpi AzureVMWorkloadSQLAvailabilityGroupProtectableItem) AsAzureVMWorkloadSAPHanaSystemProtectableItem() (*AzureVMWorkloadSAPHanaSystemProtectableItem, bool) {
6333 return nil, false
6334 }
6335
6336
6337 func (avwsagpi AzureVMWorkloadSQLAvailabilityGroupProtectableItem) AsAzureVMWorkloadSQLAvailabilityGroupProtectableItem() (*AzureVMWorkloadSQLAvailabilityGroupProtectableItem, bool) {
6338 return &avwsagpi, true
6339 }
6340
6341
6342 func (avwsagpi AzureVMWorkloadSQLAvailabilityGroupProtectableItem) AsAzureVMWorkloadSQLDatabaseProtectableItem() (*AzureVMWorkloadSQLDatabaseProtectableItem, bool) {
6343 return nil, false
6344 }
6345
6346
6347 func (avwsagpi AzureVMWorkloadSQLAvailabilityGroupProtectableItem) AsAzureVMWorkloadSQLInstanceProtectableItem() (*AzureVMWorkloadSQLInstanceProtectableItem, bool) {
6348 return nil, false
6349 }
6350
6351
6352 func (avwsagpi AzureVMWorkloadSQLAvailabilityGroupProtectableItem) AsIaaSVMProtectableItem() (*IaaSVMProtectableItem, bool) {
6353 return nil, false
6354 }
6355
6356
6357 func (avwsagpi AzureVMWorkloadSQLAvailabilityGroupProtectableItem) AsBasicIaaSVMProtectableItem() (BasicIaaSVMProtectableItem, bool) {
6358 return nil, false
6359 }
6360
6361
6362 func (avwsagpi AzureVMWorkloadSQLAvailabilityGroupProtectableItem) AsWorkloadProtectableItem() (*WorkloadProtectableItem, bool) {
6363 return nil, false
6364 }
6365
6366
6367 func (avwsagpi AzureVMWorkloadSQLAvailabilityGroupProtectableItem) AsBasicWorkloadProtectableItem() (BasicWorkloadProtectableItem, bool) {
6368 return &avwsagpi, true
6369 }
6370
6371
6372
6373 type AzureVMWorkloadSQLDatabaseProtectableItem struct {
6374
6375 ParentName *string `json:"parentName,omitempty"`
6376
6377
6378 ParentUniqueName *string `json:"parentUniqueName,omitempty"`
6379
6380 ServerName *string `json:"serverName,omitempty"`
6381
6382 IsAutoProtectable *bool `json:"isAutoProtectable,omitempty"`
6383
6384 IsAutoProtected *bool `json:"isAutoProtected,omitempty"`
6385
6386 Subinquireditemcount *int32 `json:"subinquireditemcount,omitempty"`
6387
6388 Subprotectableitemcount *int32 `json:"subprotectableitemcount,omitempty"`
6389
6390 Prebackupvalidation *PreBackupValidation `json:"prebackupvalidation,omitempty"`
6391
6392 BackupManagementType *string `json:"backupManagementType,omitempty"`
6393
6394 WorkloadType *string `json:"workloadType,omitempty"`
6395
6396 FriendlyName *string `json:"friendlyName,omitempty"`
6397
6398 ProtectionState ProtectionStatus `json:"protectionState,omitempty"`
6399
6400 ProtectableItemType ProtectableItemType `json:"protectableItemType,omitempty"`
6401 }
6402
6403
6404 func (avwsdpi AzureVMWorkloadSQLDatabaseProtectableItem) MarshalJSON() ([]byte, error) {
6405 avwsdpi.ProtectableItemType = ProtectableItemTypeSQLDataBase
6406 objectMap := make(map[string]interface{})
6407 if avwsdpi.ParentName != nil {
6408 objectMap["parentName"] = avwsdpi.ParentName
6409 }
6410 if avwsdpi.ParentUniqueName != nil {
6411 objectMap["parentUniqueName"] = avwsdpi.ParentUniqueName
6412 }
6413 if avwsdpi.ServerName != nil {
6414 objectMap["serverName"] = avwsdpi.ServerName
6415 }
6416 if avwsdpi.IsAutoProtectable != nil {
6417 objectMap["isAutoProtectable"] = avwsdpi.IsAutoProtectable
6418 }
6419 if avwsdpi.IsAutoProtected != nil {
6420 objectMap["isAutoProtected"] = avwsdpi.IsAutoProtected
6421 }
6422 if avwsdpi.Subinquireditemcount != nil {
6423 objectMap["subinquireditemcount"] = avwsdpi.Subinquireditemcount
6424 }
6425 if avwsdpi.Subprotectableitemcount != nil {
6426 objectMap["subprotectableitemcount"] = avwsdpi.Subprotectableitemcount
6427 }
6428 if avwsdpi.Prebackupvalidation != nil {
6429 objectMap["prebackupvalidation"] = avwsdpi.Prebackupvalidation
6430 }
6431 if avwsdpi.BackupManagementType != nil {
6432 objectMap["backupManagementType"] = avwsdpi.BackupManagementType
6433 }
6434 if avwsdpi.WorkloadType != nil {
6435 objectMap["workloadType"] = avwsdpi.WorkloadType
6436 }
6437 if avwsdpi.FriendlyName != nil {
6438 objectMap["friendlyName"] = avwsdpi.FriendlyName
6439 }
6440 if avwsdpi.ProtectionState != "" {
6441 objectMap["protectionState"] = avwsdpi.ProtectionState
6442 }
6443 if avwsdpi.ProtectableItemType != "" {
6444 objectMap["protectableItemType"] = avwsdpi.ProtectableItemType
6445 }
6446 return json.Marshal(objectMap)
6447 }
6448
6449
6450 func (avwsdpi AzureVMWorkloadSQLDatabaseProtectableItem) AsAzureFileShareProtectableItem() (*AzureFileShareProtectableItem, bool) {
6451 return nil, false
6452 }
6453
6454
6455 func (avwsdpi AzureVMWorkloadSQLDatabaseProtectableItem) AsAzureIaaSClassicComputeVMProtectableItem() (*AzureIaaSClassicComputeVMProtectableItem, bool) {
6456 return nil, false
6457 }
6458
6459
6460 func (avwsdpi AzureVMWorkloadSQLDatabaseProtectableItem) AsAzureIaaSComputeVMProtectableItem() (*AzureIaaSComputeVMProtectableItem, bool) {
6461 return nil, false
6462 }
6463
6464
6465 func (avwsdpi AzureVMWorkloadSQLDatabaseProtectableItem) AsAzureVMWorkloadProtectableItem() (*AzureVMWorkloadProtectableItem, bool) {
6466 return nil, false
6467 }
6468
6469
6470 func (avwsdpi AzureVMWorkloadSQLDatabaseProtectableItem) AsBasicAzureVMWorkloadProtectableItem() (BasicAzureVMWorkloadProtectableItem, bool) {
6471 return &avwsdpi, true
6472 }
6473
6474
6475 func (avwsdpi AzureVMWorkloadSQLDatabaseProtectableItem) AsAzureVMWorkloadSAPAseSystemProtectableItem() (*AzureVMWorkloadSAPAseSystemProtectableItem, bool) {
6476 return nil, false
6477 }
6478
6479
6480 func (avwsdpi AzureVMWorkloadSQLDatabaseProtectableItem) AsAzureVMWorkloadSAPHanaDatabaseProtectableItem() (*AzureVMWorkloadSAPHanaDatabaseProtectableItem, bool) {
6481 return nil, false
6482 }
6483
6484
6485 func (avwsdpi AzureVMWorkloadSQLDatabaseProtectableItem) AsAzureVMWorkloadSAPHanaSystemProtectableItem() (*AzureVMWorkloadSAPHanaSystemProtectableItem, bool) {
6486 return nil, false
6487 }
6488
6489
6490 func (avwsdpi AzureVMWorkloadSQLDatabaseProtectableItem) AsAzureVMWorkloadSQLAvailabilityGroupProtectableItem() (*AzureVMWorkloadSQLAvailabilityGroupProtectableItem, bool) {
6491 return nil, false
6492 }
6493
6494
6495 func (avwsdpi AzureVMWorkloadSQLDatabaseProtectableItem) AsAzureVMWorkloadSQLDatabaseProtectableItem() (*AzureVMWorkloadSQLDatabaseProtectableItem, bool) {
6496 return &avwsdpi, true
6497 }
6498
6499
6500 func (avwsdpi AzureVMWorkloadSQLDatabaseProtectableItem) AsAzureVMWorkloadSQLInstanceProtectableItem() (*AzureVMWorkloadSQLInstanceProtectableItem, bool) {
6501 return nil, false
6502 }
6503
6504
6505 func (avwsdpi AzureVMWorkloadSQLDatabaseProtectableItem) AsIaaSVMProtectableItem() (*IaaSVMProtectableItem, bool) {
6506 return nil, false
6507 }
6508
6509
6510 func (avwsdpi AzureVMWorkloadSQLDatabaseProtectableItem) AsBasicIaaSVMProtectableItem() (BasicIaaSVMProtectableItem, bool) {
6511 return nil, false
6512 }
6513
6514
6515 func (avwsdpi AzureVMWorkloadSQLDatabaseProtectableItem) AsWorkloadProtectableItem() (*WorkloadProtectableItem, bool) {
6516 return nil, false
6517 }
6518
6519
6520 func (avwsdpi AzureVMWorkloadSQLDatabaseProtectableItem) AsBasicWorkloadProtectableItem() (BasicWorkloadProtectableItem, bool) {
6521 return &avwsdpi, true
6522 }
6523
6524
6525
6526 type AzureVMWorkloadSQLDatabaseProtectedItem struct {
6527
6528 FriendlyName *string `json:"friendlyName,omitempty"`
6529
6530 ServerName *string `json:"serverName,omitempty"`
6531
6532 ParentName *string `json:"parentName,omitempty"`
6533
6534 ParentType *string `json:"parentType,omitempty"`
6535
6536 ProtectionStatus *string `json:"protectionStatus,omitempty"`
6537
6538 ProtectionState ProtectionState `json:"protectionState,omitempty"`
6539
6540 LastBackupStatus LastBackupStatus `json:"lastBackupStatus,omitempty"`
6541
6542 LastBackupTime *date.Time `json:"lastBackupTime,omitempty"`
6543
6544 LastBackupErrorDetail *ErrorDetail `json:"lastBackupErrorDetail,omitempty"`
6545
6546 ProtectedItemDataSourceID *string `json:"protectedItemDataSourceId,omitempty"`
6547
6548 ProtectedItemHealthStatus ProtectedItemHealthStatus `json:"protectedItemHealthStatus,omitempty"`
6549
6550 ExtendedInfo *AzureVMWorkloadProtectedItemExtendedInfo `json:"extendedInfo,omitempty"`
6551
6552 KpisHealths map[string]*KPIResourceHealthDetails `json:"kpisHealths"`
6553
6554 BackupManagementType ManagementType `json:"backupManagementType,omitempty"`
6555
6556 WorkloadType DataSourceType `json:"workloadType,omitempty"`
6557
6558 ContainerName *string `json:"containerName,omitempty"`
6559
6560 SourceResourceID *string `json:"sourceResourceId,omitempty"`
6561
6562 PolicyID *string `json:"policyId,omitempty"`
6563
6564 LastRecoveryPoint *date.Time `json:"lastRecoveryPoint,omitempty"`
6565
6566 BackupSetName *string `json:"backupSetName,omitempty"`
6567
6568 CreateMode CreateMode `json:"createMode,omitempty"`
6569
6570 DeferredDeleteTimeInUTC *date.Time `json:"deferredDeleteTimeInUTC,omitempty"`
6571
6572 IsScheduledForDeferredDelete *bool `json:"isScheduledForDeferredDelete,omitempty"`
6573
6574 DeferredDeleteTimeRemaining *string `json:"deferredDeleteTimeRemaining,omitempty"`
6575
6576 IsDeferredDeleteScheduleUpcoming *bool `json:"isDeferredDeleteScheduleUpcoming,omitempty"`
6577
6578 IsRehydrate *bool `json:"isRehydrate,omitempty"`
6579
6580 ProtectedItemType ProtectedItemType `json:"protectedItemType,omitempty"`
6581 }
6582
6583
6584 func (avwsdpi AzureVMWorkloadSQLDatabaseProtectedItem) MarshalJSON() ([]byte, error) {
6585 avwsdpi.ProtectedItemType = ProtectedItemTypeAzureVMWorkloadSQLDatabase
6586 objectMap := make(map[string]interface{})
6587 if avwsdpi.FriendlyName != nil {
6588 objectMap["friendlyName"] = avwsdpi.FriendlyName
6589 }
6590 if avwsdpi.ServerName != nil {
6591 objectMap["serverName"] = avwsdpi.ServerName
6592 }
6593 if avwsdpi.ParentName != nil {
6594 objectMap["parentName"] = avwsdpi.ParentName
6595 }
6596 if avwsdpi.ParentType != nil {
6597 objectMap["parentType"] = avwsdpi.ParentType
6598 }
6599 if avwsdpi.ProtectionStatus != nil {
6600 objectMap["protectionStatus"] = avwsdpi.ProtectionStatus
6601 }
6602 if avwsdpi.ProtectionState != "" {
6603 objectMap["protectionState"] = avwsdpi.ProtectionState
6604 }
6605 if avwsdpi.LastBackupStatus != "" {
6606 objectMap["lastBackupStatus"] = avwsdpi.LastBackupStatus
6607 }
6608 if avwsdpi.LastBackupTime != nil {
6609 objectMap["lastBackupTime"] = avwsdpi.LastBackupTime
6610 }
6611 if avwsdpi.LastBackupErrorDetail != nil {
6612 objectMap["lastBackupErrorDetail"] = avwsdpi.LastBackupErrorDetail
6613 }
6614 if avwsdpi.ProtectedItemDataSourceID != nil {
6615 objectMap["protectedItemDataSourceId"] = avwsdpi.ProtectedItemDataSourceID
6616 }
6617 if avwsdpi.ProtectedItemHealthStatus != "" {
6618 objectMap["protectedItemHealthStatus"] = avwsdpi.ProtectedItemHealthStatus
6619 }
6620 if avwsdpi.ExtendedInfo != nil {
6621 objectMap["extendedInfo"] = avwsdpi.ExtendedInfo
6622 }
6623 if avwsdpi.KpisHealths != nil {
6624 objectMap["kpisHealths"] = avwsdpi.KpisHealths
6625 }
6626 if avwsdpi.BackupManagementType != "" {
6627 objectMap["backupManagementType"] = avwsdpi.BackupManagementType
6628 }
6629 if avwsdpi.WorkloadType != "" {
6630 objectMap["workloadType"] = avwsdpi.WorkloadType
6631 }
6632 if avwsdpi.ContainerName != nil {
6633 objectMap["containerName"] = avwsdpi.ContainerName
6634 }
6635 if avwsdpi.SourceResourceID != nil {
6636 objectMap["sourceResourceId"] = avwsdpi.SourceResourceID
6637 }
6638 if avwsdpi.PolicyID != nil {
6639 objectMap["policyId"] = avwsdpi.PolicyID
6640 }
6641 if avwsdpi.LastRecoveryPoint != nil {
6642 objectMap["lastRecoveryPoint"] = avwsdpi.LastRecoveryPoint
6643 }
6644 if avwsdpi.BackupSetName != nil {
6645 objectMap["backupSetName"] = avwsdpi.BackupSetName
6646 }
6647 if avwsdpi.CreateMode != "" {
6648 objectMap["createMode"] = avwsdpi.CreateMode
6649 }
6650 if avwsdpi.DeferredDeleteTimeInUTC != nil {
6651 objectMap["deferredDeleteTimeInUTC"] = avwsdpi.DeferredDeleteTimeInUTC
6652 }
6653 if avwsdpi.IsScheduledForDeferredDelete != nil {
6654 objectMap["isScheduledForDeferredDelete"] = avwsdpi.IsScheduledForDeferredDelete
6655 }
6656 if avwsdpi.DeferredDeleteTimeRemaining != nil {
6657 objectMap["deferredDeleteTimeRemaining"] = avwsdpi.DeferredDeleteTimeRemaining
6658 }
6659 if avwsdpi.IsDeferredDeleteScheduleUpcoming != nil {
6660 objectMap["isDeferredDeleteScheduleUpcoming"] = avwsdpi.IsDeferredDeleteScheduleUpcoming
6661 }
6662 if avwsdpi.IsRehydrate != nil {
6663 objectMap["isRehydrate"] = avwsdpi.IsRehydrate
6664 }
6665 if avwsdpi.ProtectedItemType != "" {
6666 objectMap["protectedItemType"] = avwsdpi.ProtectedItemType
6667 }
6668 return json.Marshal(objectMap)
6669 }
6670
6671
6672 func (avwsdpi AzureVMWorkloadSQLDatabaseProtectedItem) AsAzureFileshareProtectedItem() (*AzureFileshareProtectedItem, bool) {
6673 return nil, false
6674 }
6675
6676
6677 func (avwsdpi AzureVMWorkloadSQLDatabaseProtectedItem) AsAzureIaaSClassicComputeVMProtectedItem() (*AzureIaaSClassicComputeVMProtectedItem, bool) {
6678 return nil, false
6679 }
6680
6681
6682 func (avwsdpi AzureVMWorkloadSQLDatabaseProtectedItem) AsAzureIaaSComputeVMProtectedItem() (*AzureIaaSComputeVMProtectedItem, bool) {
6683 return nil, false
6684 }
6685
6686
6687 func (avwsdpi AzureVMWorkloadSQLDatabaseProtectedItem) AsAzureIaaSVMProtectedItem() (*AzureIaaSVMProtectedItem, bool) {
6688 return nil, false
6689 }
6690
6691
6692 func (avwsdpi AzureVMWorkloadSQLDatabaseProtectedItem) AsBasicAzureIaaSVMProtectedItem() (BasicAzureIaaSVMProtectedItem, bool) {
6693 return nil, false
6694 }
6695
6696
6697 func (avwsdpi AzureVMWorkloadSQLDatabaseProtectedItem) AsAzureSQLProtectedItem() (*AzureSQLProtectedItem, bool) {
6698 return nil, false
6699 }
6700
6701
6702 func (avwsdpi AzureVMWorkloadSQLDatabaseProtectedItem) AsAzureVMWorkloadProtectedItem() (*AzureVMWorkloadProtectedItem, bool) {
6703 return nil, false
6704 }
6705
6706
6707 func (avwsdpi AzureVMWorkloadSQLDatabaseProtectedItem) AsBasicAzureVMWorkloadProtectedItem() (BasicAzureVMWorkloadProtectedItem, bool) {
6708 return &avwsdpi, true
6709 }
6710
6711
6712 func (avwsdpi AzureVMWorkloadSQLDatabaseProtectedItem) AsAzureVMWorkloadSAPAseDatabaseProtectedItem() (*AzureVMWorkloadSAPAseDatabaseProtectedItem, bool) {
6713 return nil, false
6714 }
6715
6716
6717 func (avwsdpi AzureVMWorkloadSQLDatabaseProtectedItem) AsAzureVMWorkloadSAPHanaDatabaseProtectedItem() (*AzureVMWorkloadSAPHanaDatabaseProtectedItem, bool) {
6718 return nil, false
6719 }
6720
6721
6722 func (avwsdpi AzureVMWorkloadSQLDatabaseProtectedItem) AsAzureVMWorkloadSQLDatabaseProtectedItem() (*AzureVMWorkloadSQLDatabaseProtectedItem, bool) {
6723 return &avwsdpi, true
6724 }
6725
6726
6727 func (avwsdpi AzureVMWorkloadSQLDatabaseProtectedItem) AsDPMProtectedItem() (*DPMProtectedItem, bool) {
6728 return nil, false
6729 }
6730
6731
6732 func (avwsdpi AzureVMWorkloadSQLDatabaseProtectedItem) AsGenericProtectedItem() (*GenericProtectedItem, bool) {
6733 return nil, false
6734 }
6735
6736
6737 func (avwsdpi AzureVMWorkloadSQLDatabaseProtectedItem) AsMabFileFolderProtectedItem() (*MabFileFolderProtectedItem, bool) {
6738 return nil, false
6739 }
6740
6741
6742 func (avwsdpi AzureVMWorkloadSQLDatabaseProtectedItem) AsProtectedItem() (*ProtectedItem, bool) {
6743 return nil, false
6744 }
6745
6746
6747 func (avwsdpi AzureVMWorkloadSQLDatabaseProtectedItem) AsBasicProtectedItem() (BasicProtectedItem, bool) {
6748 return &avwsdpi, true
6749 }
6750
6751
6752
6753 type AzureVMWorkloadSQLDatabaseWorkloadItem struct {
6754
6755 ParentName *string `json:"parentName,omitempty"`
6756
6757 ServerName *string `json:"serverName,omitempty"`
6758
6759 IsAutoProtectable *bool `json:"isAutoProtectable,omitempty"`
6760
6761 Subinquireditemcount *int32 `json:"subinquireditemcount,omitempty"`
6762
6763 SubWorkloadItemCount *int32 `json:"subWorkloadItemCount,omitempty"`
6764
6765 BackupManagementType *string `json:"backupManagementType,omitempty"`
6766
6767 WorkloadType *string `json:"workloadType,omitempty"`
6768
6769 FriendlyName *string `json:"friendlyName,omitempty"`
6770
6771 ProtectionState ProtectionStatus `json:"protectionState,omitempty"`
6772
6773 WorkloadItemType WorkloadItemTypeBasicWorkloadItem `json:"workloadItemType,omitempty"`
6774 }
6775
6776
6777 func (avwsdwi AzureVMWorkloadSQLDatabaseWorkloadItem) MarshalJSON() ([]byte, error) {
6778 avwsdwi.WorkloadItemType = WorkloadItemTypeSQLDataBase1
6779 objectMap := make(map[string]interface{})
6780 if avwsdwi.ParentName != nil {
6781 objectMap["parentName"] = avwsdwi.ParentName
6782 }
6783 if avwsdwi.ServerName != nil {
6784 objectMap["serverName"] = avwsdwi.ServerName
6785 }
6786 if avwsdwi.IsAutoProtectable != nil {
6787 objectMap["isAutoProtectable"] = avwsdwi.IsAutoProtectable
6788 }
6789 if avwsdwi.Subinquireditemcount != nil {
6790 objectMap["subinquireditemcount"] = avwsdwi.Subinquireditemcount
6791 }
6792 if avwsdwi.SubWorkloadItemCount != nil {
6793 objectMap["subWorkloadItemCount"] = avwsdwi.SubWorkloadItemCount
6794 }
6795 if avwsdwi.BackupManagementType != nil {
6796 objectMap["backupManagementType"] = avwsdwi.BackupManagementType
6797 }
6798 if avwsdwi.WorkloadType != nil {
6799 objectMap["workloadType"] = avwsdwi.WorkloadType
6800 }
6801 if avwsdwi.FriendlyName != nil {
6802 objectMap["friendlyName"] = avwsdwi.FriendlyName
6803 }
6804 if avwsdwi.ProtectionState != "" {
6805 objectMap["protectionState"] = avwsdwi.ProtectionState
6806 }
6807 if avwsdwi.WorkloadItemType != "" {
6808 objectMap["workloadItemType"] = avwsdwi.WorkloadItemType
6809 }
6810 return json.Marshal(objectMap)
6811 }
6812
6813
6814 func (avwsdwi AzureVMWorkloadSQLDatabaseWorkloadItem) AsAzureVMWorkloadItem() (*AzureVMWorkloadItem, bool) {
6815 return nil, false
6816 }
6817
6818
6819 func (avwsdwi AzureVMWorkloadSQLDatabaseWorkloadItem) AsBasicAzureVMWorkloadItem() (BasicAzureVMWorkloadItem, bool) {
6820 return &avwsdwi, true
6821 }
6822
6823
6824 func (avwsdwi AzureVMWorkloadSQLDatabaseWorkloadItem) AsAzureVMWorkloadSAPAseDatabaseWorkloadItem() (*AzureVMWorkloadSAPAseDatabaseWorkloadItem, bool) {
6825 return nil, false
6826 }
6827
6828
6829 func (avwsdwi AzureVMWorkloadSQLDatabaseWorkloadItem) AsAzureVMWorkloadSAPAseSystemWorkloadItem() (*AzureVMWorkloadSAPAseSystemWorkloadItem, bool) {
6830 return nil, false
6831 }
6832
6833
6834 func (avwsdwi AzureVMWorkloadSQLDatabaseWorkloadItem) AsAzureVMWorkloadSAPHanaDatabaseWorkloadItem() (*AzureVMWorkloadSAPHanaDatabaseWorkloadItem, bool) {
6835 return nil, false
6836 }
6837
6838
6839 func (avwsdwi AzureVMWorkloadSQLDatabaseWorkloadItem) AsAzureVMWorkloadSAPHanaSystemWorkloadItem() (*AzureVMWorkloadSAPHanaSystemWorkloadItem, bool) {
6840 return nil, false
6841 }
6842
6843
6844 func (avwsdwi AzureVMWorkloadSQLDatabaseWorkloadItem) AsAzureVMWorkloadSQLDatabaseWorkloadItem() (*AzureVMWorkloadSQLDatabaseWorkloadItem, bool) {
6845 return &avwsdwi, true
6846 }
6847
6848
6849 func (avwsdwi AzureVMWorkloadSQLDatabaseWorkloadItem) AsAzureVMWorkloadSQLInstanceWorkloadItem() (*AzureVMWorkloadSQLInstanceWorkloadItem, bool) {
6850 return nil, false
6851 }
6852
6853
6854 func (avwsdwi AzureVMWorkloadSQLDatabaseWorkloadItem) AsWorkloadItem() (*WorkloadItem, bool) {
6855 return nil, false
6856 }
6857
6858
6859 func (avwsdwi AzureVMWorkloadSQLDatabaseWorkloadItem) AsBasicWorkloadItem() (BasicWorkloadItem, bool) {
6860 return &avwsdwi, true
6861 }
6862
6863
6864
6865 type AzureVMWorkloadSQLInstanceProtectableItem struct {
6866
6867 ParentName *string `json:"parentName,omitempty"`
6868
6869
6870 ParentUniqueName *string `json:"parentUniqueName,omitempty"`
6871
6872 ServerName *string `json:"serverName,omitempty"`
6873
6874 IsAutoProtectable *bool `json:"isAutoProtectable,omitempty"`
6875
6876 IsAutoProtected *bool `json:"isAutoProtected,omitempty"`
6877
6878 Subinquireditemcount *int32 `json:"subinquireditemcount,omitempty"`
6879
6880 Subprotectableitemcount *int32 `json:"subprotectableitemcount,omitempty"`
6881
6882 Prebackupvalidation *PreBackupValidation `json:"prebackupvalidation,omitempty"`
6883
6884 BackupManagementType *string `json:"backupManagementType,omitempty"`
6885
6886 WorkloadType *string `json:"workloadType,omitempty"`
6887
6888 FriendlyName *string `json:"friendlyName,omitempty"`
6889
6890 ProtectionState ProtectionStatus `json:"protectionState,omitempty"`
6891
6892 ProtectableItemType ProtectableItemType `json:"protectableItemType,omitempty"`
6893 }
6894
6895
6896 func (avwsipi AzureVMWorkloadSQLInstanceProtectableItem) MarshalJSON() ([]byte, error) {
6897 avwsipi.ProtectableItemType = ProtectableItemTypeSQLInstance
6898 objectMap := make(map[string]interface{})
6899 if avwsipi.ParentName != nil {
6900 objectMap["parentName"] = avwsipi.ParentName
6901 }
6902 if avwsipi.ParentUniqueName != nil {
6903 objectMap["parentUniqueName"] = avwsipi.ParentUniqueName
6904 }
6905 if avwsipi.ServerName != nil {
6906 objectMap["serverName"] = avwsipi.ServerName
6907 }
6908 if avwsipi.IsAutoProtectable != nil {
6909 objectMap["isAutoProtectable"] = avwsipi.IsAutoProtectable
6910 }
6911 if avwsipi.IsAutoProtected != nil {
6912 objectMap["isAutoProtected"] = avwsipi.IsAutoProtected
6913 }
6914 if avwsipi.Subinquireditemcount != nil {
6915 objectMap["subinquireditemcount"] = avwsipi.Subinquireditemcount
6916 }
6917 if avwsipi.Subprotectableitemcount != nil {
6918 objectMap["subprotectableitemcount"] = avwsipi.Subprotectableitemcount
6919 }
6920 if avwsipi.Prebackupvalidation != nil {
6921 objectMap["prebackupvalidation"] = avwsipi.Prebackupvalidation
6922 }
6923 if avwsipi.BackupManagementType != nil {
6924 objectMap["backupManagementType"] = avwsipi.BackupManagementType
6925 }
6926 if avwsipi.WorkloadType != nil {
6927 objectMap["workloadType"] = avwsipi.WorkloadType
6928 }
6929 if avwsipi.FriendlyName != nil {
6930 objectMap["friendlyName"] = avwsipi.FriendlyName
6931 }
6932 if avwsipi.ProtectionState != "" {
6933 objectMap["protectionState"] = avwsipi.ProtectionState
6934 }
6935 if avwsipi.ProtectableItemType != "" {
6936 objectMap["protectableItemType"] = avwsipi.ProtectableItemType
6937 }
6938 return json.Marshal(objectMap)
6939 }
6940
6941
6942 func (avwsipi AzureVMWorkloadSQLInstanceProtectableItem) AsAzureFileShareProtectableItem() (*AzureFileShareProtectableItem, bool) {
6943 return nil, false
6944 }
6945
6946
6947 func (avwsipi AzureVMWorkloadSQLInstanceProtectableItem) AsAzureIaaSClassicComputeVMProtectableItem() (*AzureIaaSClassicComputeVMProtectableItem, bool) {
6948 return nil, false
6949 }
6950
6951
6952 func (avwsipi AzureVMWorkloadSQLInstanceProtectableItem) AsAzureIaaSComputeVMProtectableItem() (*AzureIaaSComputeVMProtectableItem, bool) {
6953 return nil, false
6954 }
6955
6956
6957 func (avwsipi AzureVMWorkloadSQLInstanceProtectableItem) AsAzureVMWorkloadProtectableItem() (*AzureVMWorkloadProtectableItem, bool) {
6958 return nil, false
6959 }
6960
6961
6962 func (avwsipi AzureVMWorkloadSQLInstanceProtectableItem) AsBasicAzureVMWorkloadProtectableItem() (BasicAzureVMWorkloadProtectableItem, bool) {
6963 return &avwsipi, true
6964 }
6965
6966
6967 func (avwsipi AzureVMWorkloadSQLInstanceProtectableItem) AsAzureVMWorkloadSAPAseSystemProtectableItem() (*AzureVMWorkloadSAPAseSystemProtectableItem, bool) {
6968 return nil, false
6969 }
6970
6971
6972 func (avwsipi AzureVMWorkloadSQLInstanceProtectableItem) AsAzureVMWorkloadSAPHanaDatabaseProtectableItem() (*AzureVMWorkloadSAPHanaDatabaseProtectableItem, bool) {
6973 return nil, false
6974 }
6975
6976
6977 func (avwsipi AzureVMWorkloadSQLInstanceProtectableItem) AsAzureVMWorkloadSAPHanaSystemProtectableItem() (*AzureVMWorkloadSAPHanaSystemProtectableItem, bool) {
6978 return nil, false
6979 }
6980
6981
6982 func (avwsipi AzureVMWorkloadSQLInstanceProtectableItem) AsAzureVMWorkloadSQLAvailabilityGroupProtectableItem() (*AzureVMWorkloadSQLAvailabilityGroupProtectableItem, bool) {
6983 return nil, false
6984 }
6985
6986
6987 func (avwsipi AzureVMWorkloadSQLInstanceProtectableItem) AsAzureVMWorkloadSQLDatabaseProtectableItem() (*AzureVMWorkloadSQLDatabaseProtectableItem, bool) {
6988 return nil, false
6989 }
6990
6991
6992 func (avwsipi AzureVMWorkloadSQLInstanceProtectableItem) AsAzureVMWorkloadSQLInstanceProtectableItem() (*AzureVMWorkloadSQLInstanceProtectableItem, bool) {
6993 return &avwsipi, true
6994 }
6995
6996
6997 func (avwsipi AzureVMWorkloadSQLInstanceProtectableItem) AsIaaSVMProtectableItem() (*IaaSVMProtectableItem, bool) {
6998 return nil, false
6999 }
7000
7001
7002 func (avwsipi AzureVMWorkloadSQLInstanceProtectableItem) AsBasicIaaSVMProtectableItem() (BasicIaaSVMProtectableItem, bool) {
7003 return nil, false
7004 }
7005
7006
7007 func (avwsipi AzureVMWorkloadSQLInstanceProtectableItem) AsWorkloadProtectableItem() (*WorkloadProtectableItem, bool) {
7008 return nil, false
7009 }
7010
7011
7012 func (avwsipi AzureVMWorkloadSQLInstanceProtectableItem) AsBasicWorkloadProtectableItem() (BasicWorkloadProtectableItem, bool) {
7013 return &avwsipi, true
7014 }
7015
7016
7017
7018 type AzureVMWorkloadSQLInstanceWorkloadItem struct {
7019
7020 DataDirectoryPaths *[]SQLDataDirectory `json:"dataDirectoryPaths,omitempty"`
7021
7022 ParentName *string `json:"parentName,omitempty"`
7023
7024 ServerName *string `json:"serverName,omitempty"`
7025
7026 IsAutoProtectable *bool `json:"isAutoProtectable,omitempty"`
7027
7028 Subinquireditemcount *int32 `json:"subinquireditemcount,omitempty"`
7029
7030 SubWorkloadItemCount *int32 `json:"subWorkloadItemCount,omitempty"`
7031
7032 BackupManagementType *string `json:"backupManagementType,omitempty"`
7033
7034 WorkloadType *string `json:"workloadType,omitempty"`
7035
7036 FriendlyName *string `json:"friendlyName,omitempty"`
7037
7038 ProtectionState ProtectionStatus `json:"protectionState,omitempty"`
7039
7040 WorkloadItemType WorkloadItemTypeBasicWorkloadItem `json:"workloadItemType,omitempty"`
7041 }
7042
7043
7044 func (avwsiwi AzureVMWorkloadSQLInstanceWorkloadItem) MarshalJSON() ([]byte, error) {
7045 avwsiwi.WorkloadItemType = WorkloadItemTypeSQLInstance1
7046 objectMap := make(map[string]interface{})
7047 if avwsiwi.DataDirectoryPaths != nil {
7048 objectMap["dataDirectoryPaths"] = avwsiwi.DataDirectoryPaths
7049 }
7050 if avwsiwi.ParentName != nil {
7051 objectMap["parentName"] = avwsiwi.ParentName
7052 }
7053 if avwsiwi.ServerName != nil {
7054 objectMap["serverName"] = avwsiwi.ServerName
7055 }
7056 if avwsiwi.IsAutoProtectable != nil {
7057 objectMap["isAutoProtectable"] = avwsiwi.IsAutoProtectable
7058 }
7059 if avwsiwi.Subinquireditemcount != nil {
7060 objectMap["subinquireditemcount"] = avwsiwi.Subinquireditemcount
7061 }
7062 if avwsiwi.SubWorkloadItemCount != nil {
7063 objectMap["subWorkloadItemCount"] = avwsiwi.SubWorkloadItemCount
7064 }
7065 if avwsiwi.BackupManagementType != nil {
7066 objectMap["backupManagementType"] = avwsiwi.BackupManagementType
7067 }
7068 if avwsiwi.WorkloadType != nil {
7069 objectMap["workloadType"] = avwsiwi.WorkloadType
7070 }
7071 if avwsiwi.FriendlyName != nil {
7072 objectMap["friendlyName"] = avwsiwi.FriendlyName
7073 }
7074 if avwsiwi.ProtectionState != "" {
7075 objectMap["protectionState"] = avwsiwi.ProtectionState
7076 }
7077 if avwsiwi.WorkloadItemType != "" {
7078 objectMap["workloadItemType"] = avwsiwi.WorkloadItemType
7079 }
7080 return json.Marshal(objectMap)
7081 }
7082
7083
7084 func (avwsiwi AzureVMWorkloadSQLInstanceWorkloadItem) AsAzureVMWorkloadItem() (*AzureVMWorkloadItem, bool) {
7085 return nil, false
7086 }
7087
7088
7089 func (avwsiwi AzureVMWorkloadSQLInstanceWorkloadItem) AsBasicAzureVMWorkloadItem() (BasicAzureVMWorkloadItem, bool) {
7090 return &avwsiwi, true
7091 }
7092
7093
7094 func (avwsiwi AzureVMWorkloadSQLInstanceWorkloadItem) AsAzureVMWorkloadSAPAseDatabaseWorkloadItem() (*AzureVMWorkloadSAPAseDatabaseWorkloadItem, bool) {
7095 return nil, false
7096 }
7097
7098
7099 func (avwsiwi AzureVMWorkloadSQLInstanceWorkloadItem) AsAzureVMWorkloadSAPAseSystemWorkloadItem() (*AzureVMWorkloadSAPAseSystemWorkloadItem, bool) {
7100 return nil, false
7101 }
7102
7103
7104 func (avwsiwi AzureVMWorkloadSQLInstanceWorkloadItem) AsAzureVMWorkloadSAPHanaDatabaseWorkloadItem() (*AzureVMWorkloadSAPHanaDatabaseWorkloadItem, bool) {
7105 return nil, false
7106 }
7107
7108
7109 func (avwsiwi AzureVMWorkloadSQLInstanceWorkloadItem) AsAzureVMWorkloadSAPHanaSystemWorkloadItem() (*AzureVMWorkloadSAPHanaSystemWorkloadItem, bool) {
7110 return nil, false
7111 }
7112
7113
7114 func (avwsiwi AzureVMWorkloadSQLInstanceWorkloadItem) AsAzureVMWorkloadSQLDatabaseWorkloadItem() (*AzureVMWorkloadSQLDatabaseWorkloadItem, bool) {
7115 return nil, false
7116 }
7117
7118
7119 func (avwsiwi AzureVMWorkloadSQLInstanceWorkloadItem) AsAzureVMWorkloadSQLInstanceWorkloadItem() (*AzureVMWorkloadSQLInstanceWorkloadItem, bool) {
7120 return &avwsiwi, true
7121 }
7122
7123
7124 func (avwsiwi AzureVMWorkloadSQLInstanceWorkloadItem) AsWorkloadItem() (*WorkloadItem, bool) {
7125 return nil, false
7126 }
7127
7128
7129 func (avwsiwi AzureVMWorkloadSQLInstanceWorkloadItem) AsBasicWorkloadItem() (BasicWorkloadItem, bool) {
7130 return &avwsiwi, true
7131 }
7132
7133
7134 type BasicAzureWorkloadAutoProtectionIntent interface {
7135 AsAzureWorkloadSQLAutoProtectionIntent() (*AzureWorkloadSQLAutoProtectionIntent, bool)
7136 AsAzureWorkloadAutoProtectionIntent() (*AzureWorkloadAutoProtectionIntent, bool)
7137 }
7138
7139
7140 type AzureWorkloadAutoProtectionIntent struct {
7141
7142 BackupManagementType ManagementType `json:"backupManagementType,omitempty"`
7143
7144 SourceResourceID *string `json:"sourceResourceId,omitempty"`
7145
7146 ItemID *string `json:"itemId,omitempty"`
7147
7148 PolicyID *string `json:"policyId,omitempty"`
7149
7150 ProtectionState ProtectionStatus `json:"protectionState,omitempty"`
7151
7152 ProtectionIntentItemType ProtectionIntentItemType `json:"protectionIntentItemType,omitempty"`
7153 }
7154
7155 func unmarshalBasicAzureWorkloadAutoProtectionIntent(body []byte) (BasicAzureWorkloadAutoProtectionIntent, error) {
7156 var m map[string]interface{}
7157 err := json.Unmarshal(body, &m)
7158 if err != nil {
7159 return nil, err
7160 }
7161
7162 switch m["protectionIntentItemType"] {
7163 case string(ProtectionIntentItemTypeAzureWorkloadSQLAutoProtectionIntent):
7164 var awsapi AzureWorkloadSQLAutoProtectionIntent
7165 err := json.Unmarshal(body, &awsapi)
7166 return awsapi, err
7167 default:
7168 var awapi AzureWorkloadAutoProtectionIntent
7169 err := json.Unmarshal(body, &awapi)
7170 return awapi, err
7171 }
7172 }
7173 func unmarshalBasicAzureWorkloadAutoProtectionIntentArray(body []byte) ([]BasicAzureWorkloadAutoProtectionIntent, error) {
7174 var rawMessages []*json.RawMessage
7175 err := json.Unmarshal(body, &rawMessages)
7176 if err != nil {
7177 return nil, err
7178 }
7179
7180 awapiArray := make([]BasicAzureWorkloadAutoProtectionIntent, len(rawMessages))
7181
7182 for index, rawMessage := range rawMessages {
7183 awapi, err := unmarshalBasicAzureWorkloadAutoProtectionIntent(*rawMessage)
7184 if err != nil {
7185 return nil, err
7186 }
7187 awapiArray[index] = awapi
7188 }
7189 return awapiArray, nil
7190 }
7191
7192
7193 func (awapi AzureWorkloadAutoProtectionIntent) MarshalJSON() ([]byte, error) {
7194 awapi.ProtectionIntentItemType = ProtectionIntentItemTypeAzureWorkloadAutoProtectionIntent
7195 objectMap := make(map[string]interface{})
7196 if awapi.BackupManagementType != "" {
7197 objectMap["backupManagementType"] = awapi.BackupManagementType
7198 }
7199 if awapi.SourceResourceID != nil {
7200 objectMap["sourceResourceId"] = awapi.SourceResourceID
7201 }
7202 if awapi.ItemID != nil {
7203 objectMap["itemId"] = awapi.ItemID
7204 }
7205 if awapi.PolicyID != nil {
7206 objectMap["policyId"] = awapi.PolicyID
7207 }
7208 if awapi.ProtectionState != "" {
7209 objectMap["protectionState"] = awapi.ProtectionState
7210 }
7211 if awapi.ProtectionIntentItemType != "" {
7212 objectMap["protectionIntentItemType"] = awapi.ProtectionIntentItemType
7213 }
7214 return json.Marshal(objectMap)
7215 }
7216
7217
7218 func (awapi AzureWorkloadAutoProtectionIntent) AsAzureRecoveryServiceVaultProtectionIntent() (*AzureRecoveryServiceVaultProtectionIntent, bool) {
7219 return nil, false
7220 }
7221
7222
7223 func (awapi AzureWorkloadAutoProtectionIntent) AsBasicAzureRecoveryServiceVaultProtectionIntent() (BasicAzureRecoveryServiceVaultProtectionIntent, bool) {
7224 return &awapi, true
7225 }
7226
7227
7228 func (awapi AzureWorkloadAutoProtectionIntent) AsAzureResourceProtectionIntent() (*AzureResourceProtectionIntent, bool) {
7229 return nil, false
7230 }
7231
7232
7233 func (awapi AzureWorkloadAutoProtectionIntent) AsAzureWorkloadAutoProtectionIntent() (*AzureWorkloadAutoProtectionIntent, bool) {
7234 return &awapi, true
7235 }
7236
7237
7238 func (awapi AzureWorkloadAutoProtectionIntent) AsBasicAzureWorkloadAutoProtectionIntent() (BasicAzureWorkloadAutoProtectionIntent, bool) {
7239 return &awapi, true
7240 }
7241
7242
7243 func (awapi AzureWorkloadAutoProtectionIntent) AsAzureWorkloadSQLAutoProtectionIntent() (*AzureWorkloadSQLAutoProtectionIntent, bool) {
7244 return nil, false
7245 }
7246
7247
7248 func (awapi AzureWorkloadAutoProtectionIntent) AsProtectionIntent() (*ProtectionIntent, bool) {
7249 return nil, false
7250 }
7251
7252
7253 func (awapi AzureWorkloadAutoProtectionIntent) AsBasicProtectionIntent() (BasicProtectionIntent, bool) {
7254 return &awapi, true
7255 }
7256
7257
7258 type AzureWorkloadBackupRequest struct {
7259
7260 BackupType TypeEnum `json:"backupType,omitempty"`
7261
7262 EnableCompression *bool `json:"enableCompression,omitempty"`
7263
7264 RecoveryPointExpiryTimeInUTC *date.Time `json:"recoveryPointExpiryTimeInUTC,omitempty"`
7265
7266 ObjectType ObjectTypeBasicRequest `json:"objectType,omitempty"`
7267 }
7268
7269
7270 func (awbr AzureWorkloadBackupRequest) MarshalJSON() ([]byte, error) {
7271 awbr.ObjectType = ObjectTypeAzureWorkloadBackupRequest
7272 objectMap := make(map[string]interface{})
7273 if awbr.BackupType != "" {
7274 objectMap["backupType"] = awbr.BackupType
7275 }
7276 if awbr.EnableCompression != nil {
7277 objectMap["enableCompression"] = awbr.EnableCompression
7278 }
7279 if awbr.RecoveryPointExpiryTimeInUTC != nil {
7280 objectMap["recoveryPointExpiryTimeInUTC"] = awbr.RecoveryPointExpiryTimeInUTC
7281 }
7282 if awbr.ObjectType != "" {
7283 objectMap["objectType"] = awbr.ObjectType
7284 }
7285 return json.Marshal(objectMap)
7286 }
7287
7288
7289 func (awbr AzureWorkloadBackupRequest) AsAzureFileShareBackupRequest() (*AzureFileShareBackupRequest, bool) {
7290 return nil, false
7291 }
7292
7293
7294 func (awbr AzureWorkloadBackupRequest) AsAzureWorkloadBackupRequest() (*AzureWorkloadBackupRequest, bool) {
7295 return &awbr, true
7296 }
7297
7298
7299 func (awbr AzureWorkloadBackupRequest) AsIaasVMBackupRequest() (*IaasVMBackupRequest, bool) {
7300 return nil, false
7301 }
7302
7303
7304 func (awbr AzureWorkloadBackupRequest) AsRequest() (*Request, bool) {
7305 return nil, false
7306 }
7307
7308
7309 func (awbr AzureWorkloadBackupRequest) AsBasicRequest() (BasicRequest, bool) {
7310 return &awbr, true
7311 }
7312
7313
7314 type BasicAzureWorkloadContainer interface {
7315 AsAzureSQLAGWorkloadContainerProtectionContainer() (*AzureSQLAGWorkloadContainerProtectionContainer, bool)
7316 AsAzureVMAppContainerProtectionContainer() (*AzureVMAppContainerProtectionContainer, bool)
7317 AsAzureWorkloadContainer() (*AzureWorkloadContainer, bool)
7318 }
7319
7320
7321 type AzureWorkloadContainer struct {
7322
7323 SourceResourceID *string `json:"sourceResourceId,omitempty"`
7324
7325 LastUpdatedTime *date.Time `json:"lastUpdatedTime,omitempty"`
7326
7327 ExtendedInfo *AzureWorkloadContainerExtendedInfo `json:"extendedInfo,omitempty"`
7328
7329 WorkloadType WorkloadType `json:"workloadType,omitempty"`
7330
7331 OperationType OperationType `json:"operationType,omitempty"`
7332
7333 FriendlyName *string `json:"friendlyName,omitempty"`
7334
7335 BackupManagementType ManagementType `json:"backupManagementType,omitempty"`
7336
7337 RegistrationStatus *string `json:"registrationStatus,omitempty"`
7338
7339 HealthStatus *string `json:"healthStatus,omitempty"`
7340
7341 ContainerType ContainerTypeBasicProtectionContainer `json:"containerType,omitempty"`
7342 }
7343
7344 func unmarshalBasicAzureWorkloadContainer(body []byte) (BasicAzureWorkloadContainer, error) {
7345 var m map[string]interface{}
7346 err := json.Unmarshal(body, &m)
7347 if err != nil {
7348 return nil, err
7349 }
7350
7351 switch m["containerType"] {
7352 case string(ContainerTypeSQLAGWorkLoadContainer1):
7353 var aswcpc AzureSQLAGWorkloadContainerProtectionContainer
7354 err := json.Unmarshal(body, &aswcpc)
7355 return aswcpc, err
7356 case string(ContainerTypeVMAppContainer1):
7357 var avacpc AzureVMAppContainerProtectionContainer
7358 err := json.Unmarshal(body, &avacpc)
7359 return avacpc, err
7360 default:
7361 var awc AzureWorkloadContainer
7362 err := json.Unmarshal(body, &awc)
7363 return awc, err
7364 }
7365 }
7366 func unmarshalBasicAzureWorkloadContainerArray(body []byte) ([]BasicAzureWorkloadContainer, error) {
7367 var rawMessages []*json.RawMessage
7368 err := json.Unmarshal(body, &rawMessages)
7369 if err != nil {
7370 return nil, err
7371 }
7372
7373 awcArray := make([]BasicAzureWorkloadContainer, len(rawMessages))
7374
7375 for index, rawMessage := range rawMessages {
7376 awc, err := unmarshalBasicAzureWorkloadContainer(*rawMessage)
7377 if err != nil {
7378 return nil, err
7379 }
7380 awcArray[index] = awc
7381 }
7382 return awcArray, nil
7383 }
7384
7385
7386 func (awc AzureWorkloadContainer) MarshalJSON() ([]byte, error) {
7387 awc.ContainerType = ContainerTypeAzureWorkloadContainer
7388 objectMap := make(map[string]interface{})
7389 if awc.SourceResourceID != nil {
7390 objectMap["sourceResourceId"] = awc.SourceResourceID
7391 }
7392 if awc.LastUpdatedTime != nil {
7393 objectMap["lastUpdatedTime"] = awc.LastUpdatedTime
7394 }
7395 if awc.ExtendedInfo != nil {
7396 objectMap["extendedInfo"] = awc.ExtendedInfo
7397 }
7398 if awc.WorkloadType != "" {
7399 objectMap["workloadType"] = awc.WorkloadType
7400 }
7401 if awc.OperationType != "" {
7402 objectMap["operationType"] = awc.OperationType
7403 }
7404 if awc.FriendlyName != nil {
7405 objectMap["friendlyName"] = awc.FriendlyName
7406 }
7407 if awc.BackupManagementType != "" {
7408 objectMap["backupManagementType"] = awc.BackupManagementType
7409 }
7410 if awc.RegistrationStatus != nil {
7411 objectMap["registrationStatus"] = awc.RegistrationStatus
7412 }
7413 if awc.HealthStatus != nil {
7414 objectMap["healthStatus"] = awc.HealthStatus
7415 }
7416 if awc.ContainerType != "" {
7417 objectMap["containerType"] = awc.ContainerType
7418 }
7419 return json.Marshal(objectMap)
7420 }
7421
7422
7423 func (awc AzureWorkloadContainer) AsAzureBackupServerContainer() (*AzureBackupServerContainer, bool) {
7424 return nil, false
7425 }
7426
7427
7428 func (awc AzureWorkloadContainer) AsAzureIaaSClassicComputeVMContainer() (*AzureIaaSClassicComputeVMContainer, bool) {
7429 return nil, false
7430 }
7431
7432
7433 func (awc AzureWorkloadContainer) AsAzureIaaSComputeVMContainer() (*AzureIaaSComputeVMContainer, bool) {
7434 return nil, false
7435 }
7436
7437
7438 func (awc AzureWorkloadContainer) AsAzureSQLAGWorkloadContainerProtectionContainer() (*AzureSQLAGWorkloadContainerProtectionContainer, bool) {
7439 return nil, false
7440 }
7441
7442
7443 func (awc AzureWorkloadContainer) AsAzureSQLContainer() (*AzureSQLContainer, bool) {
7444 return nil, false
7445 }
7446
7447
7448 func (awc AzureWorkloadContainer) AsAzureStorageContainer() (*AzureStorageContainer, bool) {
7449 return nil, false
7450 }
7451
7452
7453 func (awc AzureWorkloadContainer) AsAzureVMAppContainerProtectionContainer() (*AzureVMAppContainerProtectionContainer, bool) {
7454 return nil, false
7455 }
7456
7457
7458 func (awc AzureWorkloadContainer) AsAzureWorkloadContainer() (*AzureWorkloadContainer, bool) {
7459 return &awc, true
7460 }
7461
7462
7463 func (awc AzureWorkloadContainer) AsBasicAzureWorkloadContainer() (BasicAzureWorkloadContainer, bool) {
7464 return &awc, true
7465 }
7466
7467
7468 func (awc AzureWorkloadContainer) AsDpmContainer() (*DpmContainer, bool) {
7469 return nil, false
7470 }
7471
7472
7473 func (awc AzureWorkloadContainer) AsBasicDpmContainer() (BasicDpmContainer, bool) {
7474 return nil, false
7475 }
7476
7477
7478 func (awc AzureWorkloadContainer) AsGenericContainer() (*GenericContainer, bool) {
7479 return nil, false
7480 }
7481
7482
7483 func (awc AzureWorkloadContainer) AsIaaSVMContainer() (*IaaSVMContainer, bool) {
7484 return nil, false
7485 }
7486
7487
7488 func (awc AzureWorkloadContainer) AsBasicIaaSVMContainer() (BasicIaaSVMContainer, bool) {
7489 return nil, false
7490 }
7491
7492
7493 func (awc AzureWorkloadContainer) AsMabContainer() (*MabContainer, bool) {
7494 return nil, false
7495 }
7496
7497
7498 func (awc AzureWorkloadContainer) AsProtectionContainer() (*ProtectionContainer, bool) {
7499 return nil, false
7500 }
7501
7502
7503 func (awc AzureWorkloadContainer) AsBasicProtectionContainer() (BasicProtectionContainer, bool) {
7504 return &awc, true
7505 }
7506
7507
7508 type AzureWorkloadContainerExtendedInfo struct {
7509
7510 HostServerName *string `json:"hostServerName,omitempty"`
7511
7512 InquiryInfo *InquiryInfo `json:"inquiryInfo,omitempty"`
7513
7514 NodesList *[]DistributedNodesInfo `json:"nodesList,omitempty"`
7515 }
7516
7517
7518 type AzureWorkloadErrorInfo struct {
7519
7520 ErrorCode *int32 `json:"errorCode,omitempty"`
7521
7522 ErrorString *string `json:"errorString,omitempty"`
7523
7524 ErrorTitle *string `json:"errorTitle,omitempty"`
7525
7526 Recommendations *[]string `json:"recommendations,omitempty"`
7527
7528 AdditionalDetails *string `json:"additionalDetails,omitempty"`
7529 }
7530
7531
7532 type AzureWorkloadJob struct {
7533
7534 WorkloadType *string `json:"workloadType,omitempty"`
7535
7536 Duration *string `json:"duration,omitempty"`
7537
7538 ActionsInfo *[]JobSupportedAction `json:"actionsInfo,omitempty"`
7539
7540 ErrorDetails *[]AzureWorkloadErrorInfo `json:"errorDetails,omitempty"`
7541
7542 ExtendedInfo *AzureWorkloadJobExtendedInfo `json:"extendedInfo,omitempty"`
7543
7544 EntityFriendlyName *string `json:"entityFriendlyName,omitempty"`
7545
7546 BackupManagementType ManagementType `json:"backupManagementType,omitempty"`
7547
7548 Operation *string `json:"operation,omitempty"`
7549
7550 Status *string `json:"status,omitempty"`
7551
7552 StartTime *date.Time `json:"startTime,omitempty"`
7553
7554 EndTime *date.Time `json:"endTime,omitempty"`
7555
7556 ActivityID *string `json:"activityId,omitempty"`
7557
7558 JobType JobType `json:"jobType,omitempty"`
7559 }
7560
7561
7562 func (awj AzureWorkloadJob) MarshalJSON() ([]byte, error) {
7563 awj.JobType = JobTypeAzureWorkloadJob
7564 objectMap := make(map[string]interface{})
7565 if awj.WorkloadType != nil {
7566 objectMap["workloadType"] = awj.WorkloadType
7567 }
7568 if awj.Duration != nil {
7569 objectMap["duration"] = awj.Duration
7570 }
7571 if awj.ActionsInfo != nil {
7572 objectMap["actionsInfo"] = awj.ActionsInfo
7573 }
7574 if awj.ErrorDetails != nil {
7575 objectMap["errorDetails"] = awj.ErrorDetails
7576 }
7577 if awj.ExtendedInfo != nil {
7578 objectMap["extendedInfo"] = awj.ExtendedInfo
7579 }
7580 if awj.EntityFriendlyName != nil {
7581 objectMap["entityFriendlyName"] = awj.EntityFriendlyName
7582 }
7583 if awj.BackupManagementType != "" {
7584 objectMap["backupManagementType"] = awj.BackupManagementType
7585 }
7586 if awj.Operation != nil {
7587 objectMap["operation"] = awj.Operation
7588 }
7589 if awj.Status != nil {
7590 objectMap["status"] = awj.Status
7591 }
7592 if awj.StartTime != nil {
7593 objectMap["startTime"] = awj.StartTime
7594 }
7595 if awj.EndTime != nil {
7596 objectMap["endTime"] = awj.EndTime
7597 }
7598 if awj.ActivityID != nil {
7599 objectMap["activityId"] = awj.ActivityID
7600 }
7601 if awj.JobType != "" {
7602 objectMap["jobType"] = awj.JobType
7603 }
7604 return json.Marshal(objectMap)
7605 }
7606
7607
7608 func (awj AzureWorkloadJob) AsAzureIaaSVMJob() (*AzureIaaSVMJob, bool) {
7609 return nil, false
7610 }
7611
7612
7613 func (awj AzureWorkloadJob) AsAzureStorageJob() (*AzureStorageJob, bool) {
7614 return nil, false
7615 }
7616
7617
7618 func (awj AzureWorkloadJob) AsAzureWorkloadJob() (*AzureWorkloadJob, bool) {
7619 return &awj, true
7620 }
7621
7622
7623 func (awj AzureWorkloadJob) AsDpmJob() (*DpmJob, bool) {
7624 return nil, false
7625 }
7626
7627
7628 func (awj AzureWorkloadJob) AsMabJob() (*MabJob, bool) {
7629 return nil, false
7630 }
7631
7632
7633 func (awj AzureWorkloadJob) AsJob() (*Job, bool) {
7634 return nil, false
7635 }
7636
7637
7638 func (awj AzureWorkloadJob) AsBasicJob() (BasicJob, bool) {
7639 return &awj, true
7640 }
7641
7642
7643 type AzureWorkloadJobExtendedInfo struct {
7644
7645 TasksList *[]AzureWorkloadJobTaskDetails `json:"tasksList,omitempty"`
7646
7647 PropertyBag map[string]*string `json:"propertyBag"`
7648
7649 DynamicErrorMessage *string `json:"dynamicErrorMessage,omitempty"`
7650 }
7651
7652
7653 func (awjei AzureWorkloadJobExtendedInfo) MarshalJSON() ([]byte, error) {
7654 objectMap := make(map[string]interface{})
7655 if awjei.TasksList != nil {
7656 objectMap["tasksList"] = awjei.TasksList
7657 }
7658 if awjei.PropertyBag != nil {
7659 objectMap["propertyBag"] = awjei.PropertyBag
7660 }
7661 if awjei.DynamicErrorMessage != nil {
7662 objectMap["dynamicErrorMessage"] = awjei.DynamicErrorMessage
7663 }
7664 return json.Marshal(objectMap)
7665 }
7666
7667
7668 type AzureWorkloadJobTaskDetails struct {
7669
7670 TaskID *string `json:"taskId,omitempty"`
7671
7672 Status *string `json:"status,omitempty"`
7673 }
7674
7675
7676 type BasicAzureWorkloadPointInTimeRecoveryPoint interface {
7677 AsAzureWorkloadSAPHanaPointInTimeRecoveryPoint() (*AzureWorkloadSAPHanaPointInTimeRecoveryPoint, bool)
7678 AsAzureWorkloadPointInTimeRecoveryPoint() (*AzureWorkloadPointInTimeRecoveryPoint, bool)
7679 }
7680
7681
7682 type AzureWorkloadPointInTimeRecoveryPoint struct {
7683
7684 TimeRanges *[]PointInTimeRange `json:"timeRanges,omitempty"`
7685
7686 RecoveryPointTimeInUTC *date.Time `json:"recoveryPointTimeInUTC,omitempty"`
7687
7688 Type RestorePointType `json:"type,omitempty"`
7689
7690 ObjectType ObjectTypeBasicRecoveryPoint `json:"objectType,omitempty"`
7691 }
7692
7693 func unmarshalBasicAzureWorkloadPointInTimeRecoveryPoint(body []byte) (BasicAzureWorkloadPointInTimeRecoveryPoint, error) {
7694 var m map[string]interface{}
7695 err := json.Unmarshal(body, &m)
7696 if err != nil {
7697 return nil, err
7698 }
7699
7700 switch m["objectType"] {
7701 case string(ObjectTypeAzureWorkloadSAPHanaPointInTimeRecoveryPoint):
7702 var awshpitrp AzureWorkloadSAPHanaPointInTimeRecoveryPoint
7703 err := json.Unmarshal(body, &awshpitrp)
7704 return awshpitrp, err
7705 default:
7706 var awpitrp AzureWorkloadPointInTimeRecoveryPoint
7707 err := json.Unmarshal(body, &awpitrp)
7708 return awpitrp, err
7709 }
7710 }
7711 func unmarshalBasicAzureWorkloadPointInTimeRecoveryPointArray(body []byte) ([]BasicAzureWorkloadPointInTimeRecoveryPoint, error) {
7712 var rawMessages []*json.RawMessage
7713 err := json.Unmarshal(body, &rawMessages)
7714 if err != nil {
7715 return nil, err
7716 }
7717
7718 awpitrpArray := make([]BasicAzureWorkloadPointInTimeRecoveryPoint, len(rawMessages))
7719
7720 for index, rawMessage := range rawMessages {
7721 awpitrp, err := unmarshalBasicAzureWorkloadPointInTimeRecoveryPoint(*rawMessage)
7722 if err != nil {
7723 return nil, err
7724 }
7725 awpitrpArray[index] = awpitrp
7726 }
7727 return awpitrpArray, nil
7728 }
7729
7730
7731 func (awpitrp AzureWorkloadPointInTimeRecoveryPoint) MarshalJSON() ([]byte, error) {
7732 awpitrp.ObjectType = ObjectTypeAzureWorkloadPointInTimeRecoveryPoint
7733 objectMap := make(map[string]interface{})
7734 if awpitrp.TimeRanges != nil {
7735 objectMap["timeRanges"] = awpitrp.TimeRanges
7736 }
7737 if awpitrp.ObjectType != "" {
7738 objectMap["objectType"] = awpitrp.ObjectType
7739 }
7740 return json.Marshal(objectMap)
7741 }
7742
7743
7744 func (awpitrp AzureWorkloadPointInTimeRecoveryPoint) AsAzureFileShareRecoveryPoint() (*AzureFileShareRecoveryPoint, bool) {
7745 return nil, false
7746 }
7747
7748
7749 func (awpitrp AzureWorkloadPointInTimeRecoveryPoint) AsAzureWorkloadPointInTimeRecoveryPoint() (*AzureWorkloadPointInTimeRecoveryPoint, bool) {
7750 return &awpitrp, true
7751 }
7752
7753
7754 func (awpitrp AzureWorkloadPointInTimeRecoveryPoint) AsBasicAzureWorkloadPointInTimeRecoveryPoint() (BasicAzureWorkloadPointInTimeRecoveryPoint, bool) {
7755 return &awpitrp, true
7756 }
7757
7758
7759 func (awpitrp AzureWorkloadPointInTimeRecoveryPoint) AsAzureWorkloadRecoveryPoint() (*AzureWorkloadRecoveryPoint, bool) {
7760 return nil, false
7761 }
7762
7763
7764 func (awpitrp AzureWorkloadPointInTimeRecoveryPoint) AsBasicAzureWorkloadRecoveryPoint() (BasicAzureWorkloadRecoveryPoint, bool) {
7765 return &awpitrp, true
7766 }
7767
7768
7769 func (awpitrp AzureWorkloadPointInTimeRecoveryPoint) AsAzureWorkloadSAPHanaPointInTimeRecoveryPoint() (*AzureWorkloadSAPHanaPointInTimeRecoveryPoint, bool) {
7770 return nil, false
7771 }
7772
7773
7774 func (awpitrp AzureWorkloadPointInTimeRecoveryPoint) AsAzureWorkloadSAPHanaRecoveryPoint() (*AzureWorkloadSAPHanaRecoveryPoint, bool) {
7775 return nil, false
7776 }
7777
7778
7779 func (awpitrp AzureWorkloadPointInTimeRecoveryPoint) AsAzureWorkloadSQLPointInTimeRecoveryPoint() (*AzureWorkloadSQLPointInTimeRecoveryPoint, bool) {
7780 return nil, false
7781 }
7782
7783
7784 func (awpitrp AzureWorkloadPointInTimeRecoveryPoint) AsAzureWorkloadSQLRecoveryPoint() (*AzureWorkloadSQLRecoveryPoint, bool) {
7785 return nil, false
7786 }
7787
7788
7789 func (awpitrp AzureWorkloadPointInTimeRecoveryPoint) AsBasicAzureWorkloadSQLRecoveryPoint() (BasicAzureWorkloadSQLRecoveryPoint, bool) {
7790 return nil, false
7791 }
7792
7793
7794 func (awpitrp AzureWorkloadPointInTimeRecoveryPoint) AsGenericRecoveryPoint() (*GenericRecoveryPoint, bool) {
7795 return nil, false
7796 }
7797
7798
7799 func (awpitrp AzureWorkloadPointInTimeRecoveryPoint) AsIaasVMRecoveryPoint() (*IaasVMRecoveryPoint, bool) {
7800 return nil, false
7801 }
7802
7803
7804 func (awpitrp AzureWorkloadPointInTimeRecoveryPoint) AsRecoveryPoint() (*RecoveryPoint, bool) {
7805 return nil, false
7806 }
7807
7808
7809 func (awpitrp AzureWorkloadPointInTimeRecoveryPoint) AsBasicRecoveryPoint() (BasicRecoveryPoint, bool) {
7810 return &awpitrp, true
7811 }
7812
7813
7814
7815 type AzureWorkloadPointInTimeRestoreRequest struct {
7816
7817 PointInTime *date.Time `json:"pointInTime,omitempty"`
7818
7819 RecoveryType RecoveryType `json:"recoveryType,omitempty"`
7820
7821 SourceResourceID *string `json:"sourceResourceId,omitempty"`
7822
7823 PropertyBag map[string]*string `json:"propertyBag"`
7824
7825 TargetInfo *TargetRestoreInfo `json:"targetInfo,omitempty"`
7826
7827 RecoveryMode RecoveryMode `json:"recoveryMode,omitempty"`
7828
7829 ObjectType ObjectTypeBasicRestoreRequest `json:"objectType,omitempty"`
7830 }
7831
7832
7833 func (awpitrr AzureWorkloadPointInTimeRestoreRequest) MarshalJSON() ([]byte, error) {
7834 awpitrr.ObjectType = ObjectTypeAzureWorkloadPointInTimeRestoreRequest
7835 objectMap := make(map[string]interface{})
7836 if awpitrr.PointInTime != nil {
7837 objectMap["pointInTime"] = awpitrr.PointInTime
7838 }
7839 if awpitrr.RecoveryType != "" {
7840 objectMap["recoveryType"] = awpitrr.RecoveryType
7841 }
7842 if awpitrr.SourceResourceID != nil {
7843 objectMap["sourceResourceId"] = awpitrr.SourceResourceID
7844 }
7845 if awpitrr.PropertyBag != nil {
7846 objectMap["propertyBag"] = awpitrr.PropertyBag
7847 }
7848 if awpitrr.TargetInfo != nil {
7849 objectMap["targetInfo"] = awpitrr.TargetInfo
7850 }
7851 if awpitrr.RecoveryMode != "" {
7852 objectMap["recoveryMode"] = awpitrr.RecoveryMode
7853 }
7854 if awpitrr.ObjectType != "" {
7855 objectMap["objectType"] = awpitrr.ObjectType
7856 }
7857 return json.Marshal(objectMap)
7858 }
7859
7860
7861 func (awpitrr AzureWorkloadPointInTimeRestoreRequest) AsAzureFileShareRestoreRequest() (*AzureFileShareRestoreRequest, bool) {
7862 return nil, false
7863 }
7864
7865
7866 func (awpitrr AzureWorkloadPointInTimeRestoreRequest) AsAzureWorkloadPointInTimeRestoreRequest() (*AzureWorkloadPointInTimeRestoreRequest, bool) {
7867 return &awpitrr, true
7868 }
7869
7870
7871 func (awpitrr AzureWorkloadPointInTimeRestoreRequest) AsAzureWorkloadRestoreRequest() (*AzureWorkloadRestoreRequest, bool) {
7872 return nil, false
7873 }
7874
7875
7876 func (awpitrr AzureWorkloadPointInTimeRestoreRequest) AsBasicAzureWorkloadRestoreRequest() (BasicAzureWorkloadRestoreRequest, bool) {
7877 return &awpitrr, true
7878 }
7879
7880
7881 func (awpitrr AzureWorkloadPointInTimeRestoreRequest) AsAzureWorkloadSAPHanaPointInTimeRestoreRequest() (*AzureWorkloadSAPHanaPointInTimeRestoreRequest, bool) {
7882 return nil, false
7883 }
7884
7885
7886 func (awpitrr AzureWorkloadPointInTimeRestoreRequest) AsAzureWorkloadSAPHanaRestoreRequest() (*AzureWorkloadSAPHanaRestoreRequest, bool) {
7887 return nil, false
7888 }
7889
7890
7891 func (awpitrr AzureWorkloadPointInTimeRestoreRequest) AsBasicAzureWorkloadSAPHanaRestoreRequest() (BasicAzureWorkloadSAPHanaRestoreRequest, bool) {
7892 return nil, false
7893 }
7894
7895
7896 func (awpitrr AzureWorkloadPointInTimeRestoreRequest) AsAzureWorkloadSQLPointInTimeRestoreRequest() (*AzureWorkloadSQLPointInTimeRestoreRequest, bool) {
7897 return nil, false
7898 }
7899
7900
7901 func (awpitrr AzureWorkloadPointInTimeRestoreRequest) AsAzureWorkloadSQLRestoreRequest() (*AzureWorkloadSQLRestoreRequest, bool) {
7902 return nil, false
7903 }
7904
7905
7906 func (awpitrr AzureWorkloadPointInTimeRestoreRequest) AsBasicAzureWorkloadSQLRestoreRequest() (BasicAzureWorkloadSQLRestoreRequest, bool) {
7907 return nil, false
7908 }
7909
7910
7911 func (awpitrr AzureWorkloadPointInTimeRestoreRequest) AsIaasVMRestoreRequest() (*IaasVMRestoreRequest, bool) {
7912 return nil, false
7913 }
7914
7915
7916 func (awpitrr AzureWorkloadPointInTimeRestoreRequest) AsRestoreRequest() (*RestoreRequest, bool) {
7917 return nil, false
7918 }
7919
7920
7921 func (awpitrr AzureWorkloadPointInTimeRestoreRequest) AsBasicRestoreRequest() (BasicRestoreRequest, bool) {
7922 return &awpitrr, true
7923 }
7924
7925
7926 type BasicAzureWorkloadRecoveryPoint interface {
7927 AsAzureWorkloadPointInTimeRecoveryPoint() (*AzureWorkloadPointInTimeRecoveryPoint, bool)
7928 AsBasicAzureWorkloadPointInTimeRecoveryPoint() (BasicAzureWorkloadPointInTimeRecoveryPoint, bool)
7929 AsAzureWorkloadSAPHanaPointInTimeRecoveryPoint() (*AzureWorkloadSAPHanaPointInTimeRecoveryPoint, bool)
7930 AsAzureWorkloadSAPHanaRecoveryPoint() (*AzureWorkloadSAPHanaRecoveryPoint, bool)
7931 AsAzureWorkloadSQLPointInTimeRecoveryPoint() (*AzureWorkloadSQLPointInTimeRecoveryPoint, bool)
7932 AsAzureWorkloadSQLRecoveryPoint() (*AzureWorkloadSQLRecoveryPoint, bool)
7933 AsBasicAzureWorkloadSQLRecoveryPoint() (BasicAzureWorkloadSQLRecoveryPoint, bool)
7934 AsAzureWorkloadRecoveryPoint() (*AzureWorkloadRecoveryPoint, bool)
7935 }
7936
7937
7938
7939 type AzureWorkloadRecoveryPoint struct {
7940
7941 RecoveryPointTimeInUTC *date.Time `json:"recoveryPointTimeInUTC,omitempty"`
7942
7943 Type RestorePointType `json:"type,omitempty"`
7944
7945 ObjectType ObjectTypeBasicRecoveryPoint `json:"objectType,omitempty"`
7946 }
7947
7948 func unmarshalBasicAzureWorkloadRecoveryPoint(body []byte) (BasicAzureWorkloadRecoveryPoint, error) {
7949 var m map[string]interface{}
7950 err := json.Unmarshal(body, &m)
7951 if err != nil {
7952 return nil, err
7953 }
7954
7955 switch m["objectType"] {
7956 case string(ObjectTypeAzureWorkloadPointInTimeRecoveryPoint):
7957 var awpitrp AzureWorkloadPointInTimeRecoveryPoint
7958 err := json.Unmarshal(body, &awpitrp)
7959 return awpitrp, err
7960 case string(ObjectTypeAzureWorkloadSAPHanaPointInTimeRecoveryPoint):
7961 var awshpitrp AzureWorkloadSAPHanaPointInTimeRecoveryPoint
7962 err := json.Unmarshal(body, &awshpitrp)
7963 return awshpitrp, err
7964 case string(ObjectTypeAzureWorkloadSAPHanaRecoveryPoint):
7965 var awshrp AzureWorkloadSAPHanaRecoveryPoint
7966 err := json.Unmarshal(body, &awshrp)
7967 return awshrp, err
7968 case string(ObjectTypeAzureWorkloadSQLPointInTimeRecoveryPoint):
7969 var awspitrp AzureWorkloadSQLPointInTimeRecoveryPoint
7970 err := json.Unmarshal(body, &awspitrp)
7971 return awspitrp, err
7972 case string(ObjectTypeAzureWorkloadSQLRecoveryPoint):
7973 var awsrp AzureWorkloadSQLRecoveryPoint
7974 err := json.Unmarshal(body, &awsrp)
7975 return awsrp, err
7976 default:
7977 var awrp AzureWorkloadRecoveryPoint
7978 err := json.Unmarshal(body, &awrp)
7979 return awrp, err
7980 }
7981 }
7982 func unmarshalBasicAzureWorkloadRecoveryPointArray(body []byte) ([]BasicAzureWorkloadRecoveryPoint, error) {
7983 var rawMessages []*json.RawMessage
7984 err := json.Unmarshal(body, &rawMessages)
7985 if err != nil {
7986 return nil, err
7987 }
7988
7989 awrpArray := make([]BasicAzureWorkloadRecoveryPoint, len(rawMessages))
7990
7991 for index, rawMessage := range rawMessages {
7992 awrp, err := unmarshalBasicAzureWorkloadRecoveryPoint(*rawMessage)
7993 if err != nil {
7994 return nil, err
7995 }
7996 awrpArray[index] = awrp
7997 }
7998 return awrpArray, nil
7999 }
8000
8001
8002 func (awrp AzureWorkloadRecoveryPoint) MarshalJSON() ([]byte, error) {
8003 awrp.ObjectType = ObjectTypeAzureWorkloadRecoveryPoint
8004 objectMap := make(map[string]interface{})
8005 if awrp.ObjectType != "" {
8006 objectMap["objectType"] = awrp.ObjectType
8007 }
8008 return json.Marshal(objectMap)
8009 }
8010
8011
8012 func (awrp AzureWorkloadRecoveryPoint) AsAzureFileShareRecoveryPoint() (*AzureFileShareRecoveryPoint, bool) {
8013 return nil, false
8014 }
8015
8016
8017 func (awrp AzureWorkloadRecoveryPoint) AsAzureWorkloadPointInTimeRecoveryPoint() (*AzureWorkloadPointInTimeRecoveryPoint, bool) {
8018 return nil, false
8019 }
8020
8021
8022 func (awrp AzureWorkloadRecoveryPoint) AsBasicAzureWorkloadPointInTimeRecoveryPoint() (BasicAzureWorkloadPointInTimeRecoveryPoint, bool) {
8023 return nil, false
8024 }
8025
8026
8027 func (awrp AzureWorkloadRecoveryPoint) AsAzureWorkloadRecoveryPoint() (*AzureWorkloadRecoveryPoint, bool) {
8028 return &awrp, true
8029 }
8030
8031
8032 func (awrp AzureWorkloadRecoveryPoint) AsBasicAzureWorkloadRecoveryPoint() (BasicAzureWorkloadRecoveryPoint, bool) {
8033 return &awrp, true
8034 }
8035
8036
8037 func (awrp AzureWorkloadRecoveryPoint) AsAzureWorkloadSAPHanaPointInTimeRecoveryPoint() (*AzureWorkloadSAPHanaPointInTimeRecoveryPoint, bool) {
8038 return nil, false
8039 }
8040
8041
8042 func (awrp AzureWorkloadRecoveryPoint) AsAzureWorkloadSAPHanaRecoveryPoint() (*AzureWorkloadSAPHanaRecoveryPoint, bool) {
8043 return nil, false
8044 }
8045
8046
8047 func (awrp AzureWorkloadRecoveryPoint) AsAzureWorkloadSQLPointInTimeRecoveryPoint() (*AzureWorkloadSQLPointInTimeRecoveryPoint, bool) {
8048 return nil, false
8049 }
8050
8051
8052 func (awrp AzureWorkloadRecoveryPoint) AsAzureWorkloadSQLRecoveryPoint() (*AzureWorkloadSQLRecoveryPoint, bool) {
8053 return nil, false
8054 }
8055
8056
8057 func (awrp AzureWorkloadRecoveryPoint) AsBasicAzureWorkloadSQLRecoveryPoint() (BasicAzureWorkloadSQLRecoveryPoint, bool) {
8058 return nil, false
8059 }
8060
8061
8062 func (awrp AzureWorkloadRecoveryPoint) AsGenericRecoveryPoint() (*GenericRecoveryPoint, bool) {
8063 return nil, false
8064 }
8065
8066
8067 func (awrp AzureWorkloadRecoveryPoint) AsIaasVMRecoveryPoint() (*IaasVMRecoveryPoint, bool) {
8068 return nil, false
8069 }
8070
8071
8072 func (awrp AzureWorkloadRecoveryPoint) AsRecoveryPoint() (*RecoveryPoint, bool) {
8073 return nil, false
8074 }
8075
8076
8077 func (awrp AzureWorkloadRecoveryPoint) AsBasicRecoveryPoint() (BasicRecoveryPoint, bool) {
8078 return &awrp, true
8079 }
8080
8081
8082 type BasicAzureWorkloadRestoreRequest interface {
8083 AsAzureWorkloadPointInTimeRestoreRequest() (*AzureWorkloadPointInTimeRestoreRequest, bool)
8084 AsAzureWorkloadSAPHanaPointInTimeRestoreRequest() (*AzureWorkloadSAPHanaPointInTimeRestoreRequest, bool)
8085 AsAzureWorkloadSAPHanaRestoreRequest() (*AzureWorkloadSAPHanaRestoreRequest, bool)
8086 AsBasicAzureWorkloadSAPHanaRestoreRequest() (BasicAzureWorkloadSAPHanaRestoreRequest, bool)
8087 AsAzureWorkloadSQLPointInTimeRestoreRequest() (*AzureWorkloadSQLPointInTimeRestoreRequest, bool)
8088 AsAzureWorkloadSQLRestoreRequest() (*AzureWorkloadSQLRestoreRequest, bool)
8089 AsBasicAzureWorkloadSQLRestoreRequest() (BasicAzureWorkloadSQLRestoreRequest, bool)
8090 AsAzureWorkloadRestoreRequest() (*AzureWorkloadRestoreRequest, bool)
8091 }
8092
8093
8094 type AzureWorkloadRestoreRequest struct {
8095
8096 RecoveryType RecoveryType `json:"recoveryType,omitempty"`
8097
8098 SourceResourceID *string `json:"sourceResourceId,omitempty"`
8099
8100 PropertyBag map[string]*string `json:"propertyBag"`
8101
8102 TargetInfo *TargetRestoreInfo `json:"targetInfo,omitempty"`
8103
8104 RecoveryMode RecoveryMode `json:"recoveryMode,omitempty"`
8105
8106 ObjectType ObjectTypeBasicRestoreRequest `json:"objectType,omitempty"`
8107 }
8108
8109 func unmarshalBasicAzureWorkloadRestoreRequest(body []byte) (BasicAzureWorkloadRestoreRequest, error) {
8110 var m map[string]interface{}
8111 err := json.Unmarshal(body, &m)
8112 if err != nil {
8113 return nil, err
8114 }
8115
8116 switch m["objectType"] {
8117 case string(ObjectTypeAzureWorkloadPointInTimeRestoreRequest):
8118 var awpitrr AzureWorkloadPointInTimeRestoreRequest
8119 err := json.Unmarshal(body, &awpitrr)
8120 return awpitrr, err
8121 case string(ObjectTypeAzureWorkloadSAPHanaPointInTimeRestoreRequest):
8122 var awshpitrr AzureWorkloadSAPHanaPointInTimeRestoreRequest
8123 err := json.Unmarshal(body, &awshpitrr)
8124 return awshpitrr, err
8125 case string(ObjectTypeAzureWorkloadSAPHanaRestoreRequest):
8126 var awshrr AzureWorkloadSAPHanaRestoreRequest
8127 err := json.Unmarshal(body, &awshrr)
8128 return awshrr, err
8129 case string(ObjectTypeAzureWorkloadSQLPointInTimeRestoreRequest):
8130 var awspitrr AzureWorkloadSQLPointInTimeRestoreRequest
8131 err := json.Unmarshal(body, &awspitrr)
8132 return awspitrr, err
8133 case string(ObjectTypeAzureWorkloadSQLRestoreRequest):
8134 var awsrr AzureWorkloadSQLRestoreRequest
8135 err := json.Unmarshal(body, &awsrr)
8136 return awsrr, err
8137 default:
8138 var awrr AzureWorkloadRestoreRequest
8139 err := json.Unmarshal(body, &awrr)
8140 return awrr, err
8141 }
8142 }
8143 func unmarshalBasicAzureWorkloadRestoreRequestArray(body []byte) ([]BasicAzureWorkloadRestoreRequest, error) {
8144 var rawMessages []*json.RawMessage
8145 err := json.Unmarshal(body, &rawMessages)
8146 if err != nil {
8147 return nil, err
8148 }
8149
8150 awrrArray := make([]BasicAzureWorkloadRestoreRequest, len(rawMessages))
8151
8152 for index, rawMessage := range rawMessages {
8153 awrr, err := unmarshalBasicAzureWorkloadRestoreRequest(*rawMessage)
8154 if err != nil {
8155 return nil, err
8156 }
8157 awrrArray[index] = awrr
8158 }
8159 return awrrArray, nil
8160 }
8161
8162
8163 func (awrr AzureWorkloadRestoreRequest) MarshalJSON() ([]byte, error) {
8164 awrr.ObjectType = ObjectTypeAzureWorkloadRestoreRequest
8165 objectMap := make(map[string]interface{})
8166 if awrr.RecoveryType != "" {
8167 objectMap["recoveryType"] = awrr.RecoveryType
8168 }
8169 if awrr.SourceResourceID != nil {
8170 objectMap["sourceResourceId"] = awrr.SourceResourceID
8171 }
8172 if awrr.PropertyBag != nil {
8173 objectMap["propertyBag"] = awrr.PropertyBag
8174 }
8175 if awrr.TargetInfo != nil {
8176 objectMap["targetInfo"] = awrr.TargetInfo
8177 }
8178 if awrr.RecoveryMode != "" {
8179 objectMap["recoveryMode"] = awrr.RecoveryMode
8180 }
8181 if awrr.ObjectType != "" {
8182 objectMap["objectType"] = awrr.ObjectType
8183 }
8184 return json.Marshal(objectMap)
8185 }
8186
8187
8188 func (awrr AzureWorkloadRestoreRequest) AsAzureFileShareRestoreRequest() (*AzureFileShareRestoreRequest, bool) {
8189 return nil, false
8190 }
8191
8192
8193 func (awrr AzureWorkloadRestoreRequest) AsAzureWorkloadPointInTimeRestoreRequest() (*AzureWorkloadPointInTimeRestoreRequest, bool) {
8194 return nil, false
8195 }
8196
8197
8198 func (awrr AzureWorkloadRestoreRequest) AsAzureWorkloadRestoreRequest() (*AzureWorkloadRestoreRequest, bool) {
8199 return &awrr, true
8200 }
8201
8202
8203 func (awrr AzureWorkloadRestoreRequest) AsBasicAzureWorkloadRestoreRequest() (BasicAzureWorkloadRestoreRequest, bool) {
8204 return &awrr, true
8205 }
8206
8207
8208 func (awrr AzureWorkloadRestoreRequest) AsAzureWorkloadSAPHanaPointInTimeRestoreRequest() (*AzureWorkloadSAPHanaPointInTimeRestoreRequest, bool) {
8209 return nil, false
8210 }
8211
8212
8213 func (awrr AzureWorkloadRestoreRequest) AsAzureWorkloadSAPHanaRestoreRequest() (*AzureWorkloadSAPHanaRestoreRequest, bool) {
8214 return nil, false
8215 }
8216
8217
8218 func (awrr AzureWorkloadRestoreRequest) AsBasicAzureWorkloadSAPHanaRestoreRequest() (BasicAzureWorkloadSAPHanaRestoreRequest, bool) {
8219 return nil, false
8220 }
8221
8222
8223 func (awrr AzureWorkloadRestoreRequest) AsAzureWorkloadSQLPointInTimeRestoreRequest() (*AzureWorkloadSQLPointInTimeRestoreRequest, bool) {
8224 return nil, false
8225 }
8226
8227
8228 func (awrr AzureWorkloadRestoreRequest) AsAzureWorkloadSQLRestoreRequest() (*AzureWorkloadSQLRestoreRequest, bool) {
8229 return nil, false
8230 }
8231
8232
8233 func (awrr AzureWorkloadRestoreRequest) AsBasicAzureWorkloadSQLRestoreRequest() (BasicAzureWorkloadSQLRestoreRequest, bool) {
8234 return nil, false
8235 }
8236
8237
8238 func (awrr AzureWorkloadRestoreRequest) AsIaasVMRestoreRequest() (*IaasVMRestoreRequest, bool) {
8239 return nil, false
8240 }
8241
8242
8243 func (awrr AzureWorkloadRestoreRequest) AsRestoreRequest() (*RestoreRequest, bool) {
8244 return nil, false
8245 }
8246
8247
8248 func (awrr AzureWorkloadRestoreRequest) AsBasicRestoreRequest() (BasicRestoreRequest, bool) {
8249 return &awrr, true
8250 }
8251
8252
8253 type AzureWorkloadSAPHanaPointInTimeRecoveryPoint struct {
8254
8255 TimeRanges *[]PointInTimeRange `json:"timeRanges,omitempty"`
8256
8257 RecoveryPointTimeInUTC *date.Time `json:"recoveryPointTimeInUTC,omitempty"`
8258
8259 Type RestorePointType `json:"type,omitempty"`
8260
8261 ObjectType ObjectTypeBasicRecoveryPoint `json:"objectType,omitempty"`
8262 }
8263
8264
8265 func (awshpitrp AzureWorkloadSAPHanaPointInTimeRecoveryPoint) MarshalJSON() ([]byte, error) {
8266 awshpitrp.ObjectType = ObjectTypeAzureWorkloadSAPHanaPointInTimeRecoveryPoint
8267 objectMap := make(map[string]interface{})
8268 if awshpitrp.TimeRanges != nil {
8269 objectMap["timeRanges"] = awshpitrp.TimeRanges
8270 }
8271 if awshpitrp.ObjectType != "" {
8272 objectMap["objectType"] = awshpitrp.ObjectType
8273 }
8274 return json.Marshal(objectMap)
8275 }
8276
8277
8278 func (awshpitrp AzureWorkloadSAPHanaPointInTimeRecoveryPoint) AsAzureFileShareRecoveryPoint() (*AzureFileShareRecoveryPoint, bool) {
8279 return nil, false
8280 }
8281
8282
8283 func (awshpitrp AzureWorkloadSAPHanaPointInTimeRecoveryPoint) AsAzureWorkloadPointInTimeRecoveryPoint() (*AzureWorkloadPointInTimeRecoveryPoint, bool) {
8284 return nil, false
8285 }
8286
8287
8288 func (awshpitrp AzureWorkloadSAPHanaPointInTimeRecoveryPoint) AsBasicAzureWorkloadPointInTimeRecoveryPoint() (BasicAzureWorkloadPointInTimeRecoveryPoint, bool) {
8289 return &awshpitrp, true
8290 }
8291
8292
8293 func (awshpitrp AzureWorkloadSAPHanaPointInTimeRecoveryPoint) AsAzureWorkloadRecoveryPoint() (*AzureWorkloadRecoveryPoint, bool) {
8294 return nil, false
8295 }
8296
8297
8298 func (awshpitrp AzureWorkloadSAPHanaPointInTimeRecoveryPoint) AsBasicAzureWorkloadRecoveryPoint() (BasicAzureWorkloadRecoveryPoint, bool) {
8299 return &awshpitrp, true
8300 }
8301
8302
8303 func (awshpitrp AzureWorkloadSAPHanaPointInTimeRecoveryPoint) AsAzureWorkloadSAPHanaPointInTimeRecoveryPoint() (*AzureWorkloadSAPHanaPointInTimeRecoveryPoint, bool) {
8304 return &awshpitrp, true
8305 }
8306
8307
8308 func (awshpitrp AzureWorkloadSAPHanaPointInTimeRecoveryPoint) AsAzureWorkloadSAPHanaRecoveryPoint() (*AzureWorkloadSAPHanaRecoveryPoint, bool) {
8309 return nil, false
8310 }
8311
8312
8313 func (awshpitrp AzureWorkloadSAPHanaPointInTimeRecoveryPoint) AsAzureWorkloadSQLPointInTimeRecoveryPoint() (*AzureWorkloadSQLPointInTimeRecoveryPoint, bool) {
8314 return nil, false
8315 }
8316
8317
8318 func (awshpitrp AzureWorkloadSAPHanaPointInTimeRecoveryPoint) AsAzureWorkloadSQLRecoveryPoint() (*AzureWorkloadSQLRecoveryPoint, bool) {
8319 return nil, false
8320 }
8321
8322
8323 func (awshpitrp AzureWorkloadSAPHanaPointInTimeRecoveryPoint) AsBasicAzureWorkloadSQLRecoveryPoint() (BasicAzureWorkloadSQLRecoveryPoint, bool) {
8324 return nil, false
8325 }
8326
8327
8328 func (awshpitrp AzureWorkloadSAPHanaPointInTimeRecoveryPoint) AsGenericRecoveryPoint() (*GenericRecoveryPoint, bool) {
8329 return nil, false
8330 }
8331
8332
8333 func (awshpitrp AzureWorkloadSAPHanaPointInTimeRecoveryPoint) AsIaasVMRecoveryPoint() (*IaasVMRecoveryPoint, bool) {
8334 return nil, false
8335 }
8336
8337
8338 func (awshpitrp AzureWorkloadSAPHanaPointInTimeRecoveryPoint) AsRecoveryPoint() (*RecoveryPoint, bool) {
8339 return nil, false
8340 }
8341
8342
8343 func (awshpitrp AzureWorkloadSAPHanaPointInTimeRecoveryPoint) AsBasicRecoveryPoint() (BasicRecoveryPoint, bool) {
8344 return &awshpitrp, true
8345 }
8346
8347
8348
8349 type AzureWorkloadSAPHanaPointInTimeRestoreRequest struct {
8350
8351 PointInTime *date.Time `json:"pointInTime,omitempty"`
8352
8353 RecoveryType RecoveryType `json:"recoveryType,omitempty"`
8354
8355 SourceResourceID *string `json:"sourceResourceId,omitempty"`
8356
8357 PropertyBag map[string]*string `json:"propertyBag"`
8358
8359 TargetInfo *TargetRestoreInfo `json:"targetInfo,omitempty"`
8360
8361 RecoveryMode RecoveryMode `json:"recoveryMode,omitempty"`
8362
8363 ObjectType ObjectTypeBasicRestoreRequest `json:"objectType,omitempty"`
8364 }
8365
8366
8367 func (awshpitrr AzureWorkloadSAPHanaPointInTimeRestoreRequest) MarshalJSON() ([]byte, error) {
8368 awshpitrr.ObjectType = ObjectTypeAzureWorkloadSAPHanaPointInTimeRestoreRequest
8369 objectMap := make(map[string]interface{})
8370 if awshpitrr.PointInTime != nil {
8371 objectMap["pointInTime"] = awshpitrr.PointInTime
8372 }
8373 if awshpitrr.RecoveryType != "" {
8374 objectMap["recoveryType"] = awshpitrr.RecoveryType
8375 }
8376 if awshpitrr.SourceResourceID != nil {
8377 objectMap["sourceResourceId"] = awshpitrr.SourceResourceID
8378 }
8379 if awshpitrr.PropertyBag != nil {
8380 objectMap["propertyBag"] = awshpitrr.PropertyBag
8381 }
8382 if awshpitrr.TargetInfo != nil {
8383 objectMap["targetInfo"] = awshpitrr.TargetInfo
8384 }
8385 if awshpitrr.RecoveryMode != "" {
8386 objectMap["recoveryMode"] = awshpitrr.RecoveryMode
8387 }
8388 if awshpitrr.ObjectType != "" {
8389 objectMap["objectType"] = awshpitrr.ObjectType
8390 }
8391 return json.Marshal(objectMap)
8392 }
8393
8394
8395 func (awshpitrr AzureWorkloadSAPHanaPointInTimeRestoreRequest) AsAzureFileShareRestoreRequest() (*AzureFileShareRestoreRequest, bool) {
8396 return nil, false
8397 }
8398
8399
8400 func (awshpitrr AzureWorkloadSAPHanaPointInTimeRestoreRequest) AsAzureWorkloadPointInTimeRestoreRequest() (*AzureWorkloadPointInTimeRestoreRequest, bool) {
8401 return nil, false
8402 }
8403
8404
8405 func (awshpitrr AzureWorkloadSAPHanaPointInTimeRestoreRequest) AsAzureWorkloadRestoreRequest() (*AzureWorkloadRestoreRequest, bool) {
8406 return nil, false
8407 }
8408
8409
8410 func (awshpitrr AzureWorkloadSAPHanaPointInTimeRestoreRequest) AsBasicAzureWorkloadRestoreRequest() (BasicAzureWorkloadRestoreRequest, bool) {
8411 return &awshpitrr, true
8412 }
8413
8414
8415 func (awshpitrr AzureWorkloadSAPHanaPointInTimeRestoreRequest) AsAzureWorkloadSAPHanaPointInTimeRestoreRequest() (*AzureWorkloadSAPHanaPointInTimeRestoreRequest, bool) {
8416 return &awshpitrr, true
8417 }
8418
8419
8420 func (awshpitrr AzureWorkloadSAPHanaPointInTimeRestoreRequest) AsAzureWorkloadSAPHanaRestoreRequest() (*AzureWorkloadSAPHanaRestoreRequest, bool) {
8421 return nil, false
8422 }
8423
8424
8425 func (awshpitrr AzureWorkloadSAPHanaPointInTimeRestoreRequest) AsBasicAzureWorkloadSAPHanaRestoreRequest() (BasicAzureWorkloadSAPHanaRestoreRequest, bool) {
8426 return &awshpitrr, true
8427 }
8428
8429
8430 func (awshpitrr AzureWorkloadSAPHanaPointInTimeRestoreRequest) AsAzureWorkloadSQLPointInTimeRestoreRequest() (*AzureWorkloadSQLPointInTimeRestoreRequest, bool) {
8431 return nil, false
8432 }
8433
8434
8435 func (awshpitrr AzureWorkloadSAPHanaPointInTimeRestoreRequest) AsAzureWorkloadSQLRestoreRequest() (*AzureWorkloadSQLRestoreRequest, bool) {
8436 return nil, false
8437 }
8438
8439
8440 func (awshpitrr AzureWorkloadSAPHanaPointInTimeRestoreRequest) AsBasicAzureWorkloadSQLRestoreRequest() (BasicAzureWorkloadSQLRestoreRequest, bool) {
8441 return nil, false
8442 }
8443
8444
8445 func (awshpitrr AzureWorkloadSAPHanaPointInTimeRestoreRequest) AsIaasVMRestoreRequest() (*IaasVMRestoreRequest, bool) {
8446 return nil, false
8447 }
8448
8449
8450 func (awshpitrr AzureWorkloadSAPHanaPointInTimeRestoreRequest) AsRestoreRequest() (*RestoreRequest, bool) {
8451 return nil, false
8452 }
8453
8454
8455 func (awshpitrr AzureWorkloadSAPHanaPointInTimeRestoreRequest) AsBasicRestoreRequest() (BasicRestoreRequest, bool) {
8456 return &awshpitrr, true
8457 }
8458
8459
8460
8461 type AzureWorkloadSAPHanaRecoveryPoint struct {
8462
8463 RecoveryPointTimeInUTC *date.Time `json:"recoveryPointTimeInUTC,omitempty"`
8464
8465 Type RestorePointType `json:"type,omitempty"`
8466
8467 ObjectType ObjectTypeBasicRecoveryPoint `json:"objectType,omitempty"`
8468 }
8469
8470
8471 func (awshrp AzureWorkloadSAPHanaRecoveryPoint) MarshalJSON() ([]byte, error) {
8472 awshrp.ObjectType = ObjectTypeAzureWorkloadSAPHanaRecoveryPoint
8473 objectMap := make(map[string]interface{})
8474 if awshrp.ObjectType != "" {
8475 objectMap["objectType"] = awshrp.ObjectType
8476 }
8477 return json.Marshal(objectMap)
8478 }
8479
8480
8481 func (awshrp AzureWorkloadSAPHanaRecoveryPoint) AsAzureFileShareRecoveryPoint() (*AzureFileShareRecoveryPoint, bool) {
8482 return nil, false
8483 }
8484
8485
8486 func (awshrp AzureWorkloadSAPHanaRecoveryPoint) AsAzureWorkloadPointInTimeRecoveryPoint() (*AzureWorkloadPointInTimeRecoveryPoint, bool) {
8487 return nil, false
8488 }
8489
8490
8491 func (awshrp AzureWorkloadSAPHanaRecoveryPoint) AsBasicAzureWorkloadPointInTimeRecoveryPoint() (BasicAzureWorkloadPointInTimeRecoveryPoint, bool) {
8492 return nil, false
8493 }
8494
8495
8496 func (awshrp AzureWorkloadSAPHanaRecoveryPoint) AsAzureWorkloadRecoveryPoint() (*AzureWorkloadRecoveryPoint, bool) {
8497 return nil, false
8498 }
8499
8500
8501 func (awshrp AzureWorkloadSAPHanaRecoveryPoint) AsBasicAzureWorkloadRecoveryPoint() (BasicAzureWorkloadRecoveryPoint, bool) {
8502 return &awshrp, true
8503 }
8504
8505
8506 func (awshrp AzureWorkloadSAPHanaRecoveryPoint) AsAzureWorkloadSAPHanaPointInTimeRecoveryPoint() (*AzureWorkloadSAPHanaPointInTimeRecoveryPoint, bool) {
8507 return nil, false
8508 }
8509
8510
8511 func (awshrp AzureWorkloadSAPHanaRecoveryPoint) AsAzureWorkloadSAPHanaRecoveryPoint() (*AzureWorkloadSAPHanaRecoveryPoint, bool) {
8512 return &awshrp, true
8513 }
8514
8515
8516 func (awshrp AzureWorkloadSAPHanaRecoveryPoint) AsAzureWorkloadSQLPointInTimeRecoveryPoint() (*AzureWorkloadSQLPointInTimeRecoveryPoint, bool) {
8517 return nil, false
8518 }
8519
8520
8521 func (awshrp AzureWorkloadSAPHanaRecoveryPoint) AsAzureWorkloadSQLRecoveryPoint() (*AzureWorkloadSQLRecoveryPoint, bool) {
8522 return nil, false
8523 }
8524
8525
8526 func (awshrp AzureWorkloadSAPHanaRecoveryPoint) AsBasicAzureWorkloadSQLRecoveryPoint() (BasicAzureWorkloadSQLRecoveryPoint, bool) {
8527 return nil, false
8528 }
8529
8530
8531 func (awshrp AzureWorkloadSAPHanaRecoveryPoint) AsGenericRecoveryPoint() (*GenericRecoveryPoint, bool) {
8532 return nil, false
8533 }
8534
8535
8536 func (awshrp AzureWorkloadSAPHanaRecoveryPoint) AsIaasVMRecoveryPoint() (*IaasVMRecoveryPoint, bool) {
8537 return nil, false
8538 }
8539
8540
8541 func (awshrp AzureWorkloadSAPHanaRecoveryPoint) AsRecoveryPoint() (*RecoveryPoint, bool) {
8542 return nil, false
8543 }
8544
8545
8546 func (awshrp AzureWorkloadSAPHanaRecoveryPoint) AsBasicRecoveryPoint() (BasicRecoveryPoint, bool) {
8547 return &awshrp, true
8548 }
8549
8550
8551 type BasicAzureWorkloadSAPHanaRestoreRequest interface {
8552 AsAzureWorkloadSAPHanaPointInTimeRestoreRequest() (*AzureWorkloadSAPHanaPointInTimeRestoreRequest, bool)
8553 AsAzureWorkloadSAPHanaRestoreRequest() (*AzureWorkloadSAPHanaRestoreRequest, bool)
8554 }
8555
8556
8557 type AzureWorkloadSAPHanaRestoreRequest struct {
8558
8559 RecoveryType RecoveryType `json:"recoveryType,omitempty"`
8560
8561 SourceResourceID *string `json:"sourceResourceId,omitempty"`
8562
8563 PropertyBag map[string]*string `json:"propertyBag"`
8564
8565 TargetInfo *TargetRestoreInfo `json:"targetInfo,omitempty"`
8566
8567 RecoveryMode RecoveryMode `json:"recoveryMode,omitempty"`
8568
8569 ObjectType ObjectTypeBasicRestoreRequest `json:"objectType,omitempty"`
8570 }
8571
8572 func unmarshalBasicAzureWorkloadSAPHanaRestoreRequest(body []byte) (BasicAzureWorkloadSAPHanaRestoreRequest, error) {
8573 var m map[string]interface{}
8574 err := json.Unmarshal(body, &m)
8575 if err != nil {
8576 return nil, err
8577 }
8578
8579 switch m["objectType"] {
8580 case string(ObjectTypeAzureWorkloadSAPHanaPointInTimeRestoreRequest):
8581 var awshpitrr AzureWorkloadSAPHanaPointInTimeRestoreRequest
8582 err := json.Unmarshal(body, &awshpitrr)
8583 return awshpitrr, err
8584 default:
8585 var awshrr AzureWorkloadSAPHanaRestoreRequest
8586 err := json.Unmarshal(body, &awshrr)
8587 return awshrr, err
8588 }
8589 }
8590 func unmarshalBasicAzureWorkloadSAPHanaRestoreRequestArray(body []byte) ([]BasicAzureWorkloadSAPHanaRestoreRequest, error) {
8591 var rawMessages []*json.RawMessage
8592 err := json.Unmarshal(body, &rawMessages)
8593 if err != nil {
8594 return nil, err
8595 }
8596
8597 awshrrArray := make([]BasicAzureWorkloadSAPHanaRestoreRequest, len(rawMessages))
8598
8599 for index, rawMessage := range rawMessages {
8600 awshrr, err := unmarshalBasicAzureWorkloadSAPHanaRestoreRequest(*rawMessage)
8601 if err != nil {
8602 return nil, err
8603 }
8604 awshrrArray[index] = awshrr
8605 }
8606 return awshrrArray, nil
8607 }
8608
8609
8610 func (awshrr AzureWorkloadSAPHanaRestoreRequest) MarshalJSON() ([]byte, error) {
8611 awshrr.ObjectType = ObjectTypeAzureWorkloadSAPHanaRestoreRequest
8612 objectMap := make(map[string]interface{})
8613 if awshrr.RecoveryType != "" {
8614 objectMap["recoveryType"] = awshrr.RecoveryType
8615 }
8616 if awshrr.SourceResourceID != nil {
8617 objectMap["sourceResourceId"] = awshrr.SourceResourceID
8618 }
8619 if awshrr.PropertyBag != nil {
8620 objectMap["propertyBag"] = awshrr.PropertyBag
8621 }
8622 if awshrr.TargetInfo != nil {
8623 objectMap["targetInfo"] = awshrr.TargetInfo
8624 }
8625 if awshrr.RecoveryMode != "" {
8626 objectMap["recoveryMode"] = awshrr.RecoveryMode
8627 }
8628 if awshrr.ObjectType != "" {
8629 objectMap["objectType"] = awshrr.ObjectType
8630 }
8631 return json.Marshal(objectMap)
8632 }
8633
8634
8635 func (awshrr AzureWorkloadSAPHanaRestoreRequest) AsAzureFileShareRestoreRequest() (*AzureFileShareRestoreRequest, bool) {
8636 return nil, false
8637 }
8638
8639
8640 func (awshrr AzureWorkloadSAPHanaRestoreRequest) AsAzureWorkloadPointInTimeRestoreRequest() (*AzureWorkloadPointInTimeRestoreRequest, bool) {
8641 return nil, false
8642 }
8643
8644
8645 func (awshrr AzureWorkloadSAPHanaRestoreRequest) AsAzureWorkloadRestoreRequest() (*AzureWorkloadRestoreRequest, bool) {
8646 return nil, false
8647 }
8648
8649
8650 func (awshrr AzureWorkloadSAPHanaRestoreRequest) AsBasicAzureWorkloadRestoreRequest() (BasicAzureWorkloadRestoreRequest, bool) {
8651 return &awshrr, true
8652 }
8653
8654
8655 func (awshrr AzureWorkloadSAPHanaRestoreRequest) AsAzureWorkloadSAPHanaPointInTimeRestoreRequest() (*AzureWorkloadSAPHanaPointInTimeRestoreRequest, bool) {
8656 return nil, false
8657 }
8658
8659
8660 func (awshrr AzureWorkloadSAPHanaRestoreRequest) AsAzureWorkloadSAPHanaRestoreRequest() (*AzureWorkloadSAPHanaRestoreRequest, bool) {
8661 return &awshrr, true
8662 }
8663
8664
8665 func (awshrr AzureWorkloadSAPHanaRestoreRequest) AsBasicAzureWorkloadSAPHanaRestoreRequest() (BasicAzureWorkloadSAPHanaRestoreRequest, bool) {
8666 return &awshrr, true
8667 }
8668
8669
8670 func (awshrr AzureWorkloadSAPHanaRestoreRequest) AsAzureWorkloadSQLPointInTimeRestoreRequest() (*AzureWorkloadSQLPointInTimeRestoreRequest, bool) {
8671 return nil, false
8672 }
8673
8674
8675 func (awshrr AzureWorkloadSAPHanaRestoreRequest) AsAzureWorkloadSQLRestoreRequest() (*AzureWorkloadSQLRestoreRequest, bool) {
8676 return nil, false
8677 }
8678
8679
8680 func (awshrr AzureWorkloadSAPHanaRestoreRequest) AsBasicAzureWorkloadSQLRestoreRequest() (BasicAzureWorkloadSQLRestoreRequest, bool) {
8681 return nil, false
8682 }
8683
8684
8685 func (awshrr AzureWorkloadSAPHanaRestoreRequest) AsIaasVMRestoreRequest() (*IaasVMRestoreRequest, bool) {
8686 return nil, false
8687 }
8688
8689
8690 func (awshrr AzureWorkloadSAPHanaRestoreRequest) AsRestoreRequest() (*RestoreRequest, bool) {
8691 return nil, false
8692 }
8693
8694
8695 func (awshrr AzureWorkloadSAPHanaRestoreRequest) AsBasicRestoreRequest() (BasicRestoreRequest, bool) {
8696 return &awshrr, true
8697 }
8698
8699
8700 type AzureWorkloadSQLAutoProtectionIntent struct {
8701
8702 WorkloadItemType WorkloadItemType `json:"workloadItemType,omitempty"`
8703
8704 BackupManagementType ManagementType `json:"backupManagementType,omitempty"`
8705
8706 SourceResourceID *string `json:"sourceResourceId,omitempty"`
8707
8708 ItemID *string `json:"itemId,omitempty"`
8709
8710 PolicyID *string `json:"policyId,omitempty"`
8711
8712 ProtectionState ProtectionStatus `json:"protectionState,omitempty"`
8713
8714 ProtectionIntentItemType ProtectionIntentItemType `json:"protectionIntentItemType,omitempty"`
8715 }
8716
8717
8718 func (awsapi AzureWorkloadSQLAutoProtectionIntent) MarshalJSON() ([]byte, error) {
8719 awsapi.ProtectionIntentItemType = ProtectionIntentItemTypeAzureWorkloadSQLAutoProtectionIntent
8720 objectMap := make(map[string]interface{})
8721 if awsapi.WorkloadItemType != "" {
8722 objectMap["workloadItemType"] = awsapi.WorkloadItemType
8723 }
8724 if awsapi.BackupManagementType != "" {
8725 objectMap["backupManagementType"] = awsapi.BackupManagementType
8726 }
8727 if awsapi.SourceResourceID != nil {
8728 objectMap["sourceResourceId"] = awsapi.SourceResourceID
8729 }
8730 if awsapi.ItemID != nil {
8731 objectMap["itemId"] = awsapi.ItemID
8732 }
8733 if awsapi.PolicyID != nil {
8734 objectMap["policyId"] = awsapi.PolicyID
8735 }
8736 if awsapi.ProtectionState != "" {
8737 objectMap["protectionState"] = awsapi.ProtectionState
8738 }
8739 if awsapi.ProtectionIntentItemType != "" {
8740 objectMap["protectionIntentItemType"] = awsapi.ProtectionIntentItemType
8741 }
8742 return json.Marshal(objectMap)
8743 }
8744
8745
8746 func (awsapi AzureWorkloadSQLAutoProtectionIntent) AsAzureRecoveryServiceVaultProtectionIntent() (*AzureRecoveryServiceVaultProtectionIntent, bool) {
8747 return nil, false
8748 }
8749
8750
8751 func (awsapi AzureWorkloadSQLAutoProtectionIntent) AsBasicAzureRecoveryServiceVaultProtectionIntent() (BasicAzureRecoveryServiceVaultProtectionIntent, bool) {
8752 return &awsapi, true
8753 }
8754
8755
8756 func (awsapi AzureWorkloadSQLAutoProtectionIntent) AsAzureResourceProtectionIntent() (*AzureResourceProtectionIntent, bool) {
8757 return nil, false
8758 }
8759
8760
8761 func (awsapi AzureWorkloadSQLAutoProtectionIntent) AsAzureWorkloadAutoProtectionIntent() (*AzureWorkloadAutoProtectionIntent, bool) {
8762 return nil, false
8763 }
8764
8765
8766 func (awsapi AzureWorkloadSQLAutoProtectionIntent) AsBasicAzureWorkloadAutoProtectionIntent() (BasicAzureWorkloadAutoProtectionIntent, bool) {
8767 return &awsapi, true
8768 }
8769
8770
8771 func (awsapi AzureWorkloadSQLAutoProtectionIntent) AsAzureWorkloadSQLAutoProtectionIntent() (*AzureWorkloadSQLAutoProtectionIntent, bool) {
8772 return &awsapi, true
8773 }
8774
8775
8776 func (awsapi AzureWorkloadSQLAutoProtectionIntent) AsProtectionIntent() (*ProtectionIntent, bool) {
8777 return nil, false
8778 }
8779
8780
8781 func (awsapi AzureWorkloadSQLAutoProtectionIntent) AsBasicProtectionIntent() (BasicProtectionIntent, bool) {
8782 return &awsapi, true
8783 }
8784
8785
8786 type AzureWorkloadSQLPointInTimeRecoveryPoint struct {
8787
8788 TimeRanges *[]PointInTimeRange `json:"timeRanges,omitempty"`
8789
8790
8791
8792 ExtendedInfo *AzureWorkloadSQLRecoveryPointExtendedInfo `json:"extendedInfo,omitempty"`
8793
8794 RecoveryPointTimeInUTC *date.Time `json:"recoveryPointTimeInUTC,omitempty"`
8795
8796 Type RestorePointType `json:"type,omitempty"`
8797
8798 ObjectType ObjectTypeBasicRecoveryPoint `json:"objectType,omitempty"`
8799 }
8800
8801
8802 func (awspitrp AzureWorkloadSQLPointInTimeRecoveryPoint) MarshalJSON() ([]byte, error) {
8803 awspitrp.ObjectType = ObjectTypeAzureWorkloadSQLPointInTimeRecoveryPoint
8804 objectMap := make(map[string]interface{})
8805 if awspitrp.TimeRanges != nil {
8806 objectMap["timeRanges"] = awspitrp.TimeRanges
8807 }
8808 if awspitrp.ExtendedInfo != nil {
8809 objectMap["extendedInfo"] = awspitrp.ExtendedInfo
8810 }
8811 if awspitrp.ObjectType != "" {
8812 objectMap["objectType"] = awspitrp.ObjectType
8813 }
8814 return json.Marshal(objectMap)
8815 }
8816
8817
8818 func (awspitrp AzureWorkloadSQLPointInTimeRecoveryPoint) AsAzureFileShareRecoveryPoint() (*AzureFileShareRecoveryPoint, bool) {
8819 return nil, false
8820 }
8821
8822
8823 func (awspitrp AzureWorkloadSQLPointInTimeRecoveryPoint) AsAzureWorkloadPointInTimeRecoveryPoint() (*AzureWorkloadPointInTimeRecoveryPoint, bool) {
8824 return nil, false
8825 }
8826
8827
8828 func (awspitrp AzureWorkloadSQLPointInTimeRecoveryPoint) AsBasicAzureWorkloadPointInTimeRecoveryPoint() (BasicAzureWorkloadPointInTimeRecoveryPoint, bool) {
8829 return nil, false
8830 }
8831
8832
8833 func (awspitrp AzureWorkloadSQLPointInTimeRecoveryPoint) AsAzureWorkloadRecoveryPoint() (*AzureWorkloadRecoveryPoint, bool) {
8834 return nil, false
8835 }
8836
8837
8838 func (awspitrp AzureWorkloadSQLPointInTimeRecoveryPoint) AsBasicAzureWorkloadRecoveryPoint() (BasicAzureWorkloadRecoveryPoint, bool) {
8839 return &awspitrp, true
8840 }
8841
8842
8843 func (awspitrp AzureWorkloadSQLPointInTimeRecoveryPoint) AsAzureWorkloadSAPHanaPointInTimeRecoveryPoint() (*AzureWorkloadSAPHanaPointInTimeRecoveryPoint, bool) {
8844 return nil, false
8845 }
8846
8847
8848 func (awspitrp AzureWorkloadSQLPointInTimeRecoveryPoint) AsAzureWorkloadSAPHanaRecoveryPoint() (*AzureWorkloadSAPHanaRecoveryPoint, bool) {
8849 return nil, false
8850 }
8851
8852
8853 func (awspitrp AzureWorkloadSQLPointInTimeRecoveryPoint) AsAzureWorkloadSQLPointInTimeRecoveryPoint() (*AzureWorkloadSQLPointInTimeRecoveryPoint, bool) {
8854 return &awspitrp, true
8855 }
8856
8857
8858 func (awspitrp AzureWorkloadSQLPointInTimeRecoveryPoint) AsAzureWorkloadSQLRecoveryPoint() (*AzureWorkloadSQLRecoveryPoint, bool) {
8859 return nil, false
8860 }
8861
8862
8863 func (awspitrp AzureWorkloadSQLPointInTimeRecoveryPoint) AsBasicAzureWorkloadSQLRecoveryPoint() (BasicAzureWorkloadSQLRecoveryPoint, bool) {
8864 return &awspitrp, true
8865 }
8866
8867
8868 func (awspitrp AzureWorkloadSQLPointInTimeRecoveryPoint) AsGenericRecoveryPoint() (*GenericRecoveryPoint, bool) {
8869 return nil, false
8870 }
8871
8872
8873 func (awspitrp AzureWorkloadSQLPointInTimeRecoveryPoint) AsIaasVMRecoveryPoint() (*IaasVMRecoveryPoint, bool) {
8874 return nil, false
8875 }
8876
8877
8878 func (awspitrp AzureWorkloadSQLPointInTimeRecoveryPoint) AsRecoveryPoint() (*RecoveryPoint, bool) {
8879 return nil, false
8880 }
8881
8882
8883 func (awspitrp AzureWorkloadSQLPointInTimeRecoveryPoint) AsBasicRecoveryPoint() (BasicRecoveryPoint, bool) {
8884 return &awspitrp, true
8885 }
8886
8887
8888
8889 type AzureWorkloadSQLPointInTimeRestoreRequest struct {
8890
8891 PointInTime *date.Time `json:"pointInTime,omitempty"`
8892
8893 ShouldUseAlternateTargetLocation *bool `json:"shouldUseAlternateTargetLocation,omitempty"`
8894
8895 IsNonRecoverable *bool `json:"isNonRecoverable,omitempty"`
8896
8897 AlternateDirectoryPaths *[]SQLDataDirectoryMapping `json:"alternateDirectoryPaths,omitempty"`
8898
8899 RecoveryType RecoveryType `json:"recoveryType,omitempty"`
8900
8901 SourceResourceID *string `json:"sourceResourceId,omitempty"`
8902
8903 PropertyBag map[string]*string `json:"propertyBag"`
8904
8905 TargetInfo *TargetRestoreInfo `json:"targetInfo,omitempty"`
8906
8907 RecoveryMode RecoveryMode `json:"recoveryMode,omitempty"`
8908
8909 ObjectType ObjectTypeBasicRestoreRequest `json:"objectType,omitempty"`
8910 }
8911
8912
8913 func (awspitrr AzureWorkloadSQLPointInTimeRestoreRequest) MarshalJSON() ([]byte, error) {
8914 awspitrr.ObjectType = ObjectTypeAzureWorkloadSQLPointInTimeRestoreRequest
8915 objectMap := make(map[string]interface{})
8916 if awspitrr.PointInTime != nil {
8917 objectMap["pointInTime"] = awspitrr.PointInTime
8918 }
8919 if awspitrr.ShouldUseAlternateTargetLocation != nil {
8920 objectMap["shouldUseAlternateTargetLocation"] = awspitrr.ShouldUseAlternateTargetLocation
8921 }
8922 if awspitrr.IsNonRecoverable != nil {
8923 objectMap["isNonRecoverable"] = awspitrr.IsNonRecoverable
8924 }
8925 if awspitrr.AlternateDirectoryPaths != nil {
8926 objectMap["alternateDirectoryPaths"] = awspitrr.AlternateDirectoryPaths
8927 }
8928 if awspitrr.RecoveryType != "" {
8929 objectMap["recoveryType"] = awspitrr.RecoveryType
8930 }
8931 if awspitrr.SourceResourceID != nil {
8932 objectMap["sourceResourceId"] = awspitrr.SourceResourceID
8933 }
8934 if awspitrr.PropertyBag != nil {
8935 objectMap["propertyBag"] = awspitrr.PropertyBag
8936 }
8937 if awspitrr.TargetInfo != nil {
8938 objectMap["targetInfo"] = awspitrr.TargetInfo
8939 }
8940 if awspitrr.RecoveryMode != "" {
8941 objectMap["recoveryMode"] = awspitrr.RecoveryMode
8942 }
8943 if awspitrr.ObjectType != "" {
8944 objectMap["objectType"] = awspitrr.ObjectType
8945 }
8946 return json.Marshal(objectMap)
8947 }
8948
8949
8950 func (awspitrr AzureWorkloadSQLPointInTimeRestoreRequest) AsAzureFileShareRestoreRequest() (*AzureFileShareRestoreRequest, bool) {
8951 return nil, false
8952 }
8953
8954
8955 func (awspitrr AzureWorkloadSQLPointInTimeRestoreRequest) AsAzureWorkloadPointInTimeRestoreRequest() (*AzureWorkloadPointInTimeRestoreRequest, bool) {
8956 return nil, false
8957 }
8958
8959
8960 func (awspitrr AzureWorkloadSQLPointInTimeRestoreRequest) AsAzureWorkloadRestoreRequest() (*AzureWorkloadRestoreRequest, bool) {
8961 return nil, false
8962 }
8963
8964
8965 func (awspitrr AzureWorkloadSQLPointInTimeRestoreRequest) AsBasicAzureWorkloadRestoreRequest() (BasicAzureWorkloadRestoreRequest, bool) {
8966 return &awspitrr, true
8967 }
8968
8969
8970 func (awspitrr AzureWorkloadSQLPointInTimeRestoreRequest) AsAzureWorkloadSAPHanaPointInTimeRestoreRequest() (*AzureWorkloadSAPHanaPointInTimeRestoreRequest, bool) {
8971 return nil, false
8972 }
8973
8974
8975 func (awspitrr AzureWorkloadSQLPointInTimeRestoreRequest) AsAzureWorkloadSAPHanaRestoreRequest() (*AzureWorkloadSAPHanaRestoreRequest, bool) {
8976 return nil, false
8977 }
8978
8979
8980 func (awspitrr AzureWorkloadSQLPointInTimeRestoreRequest) AsBasicAzureWorkloadSAPHanaRestoreRequest() (BasicAzureWorkloadSAPHanaRestoreRequest, bool) {
8981 return nil, false
8982 }
8983
8984
8985 func (awspitrr AzureWorkloadSQLPointInTimeRestoreRequest) AsAzureWorkloadSQLPointInTimeRestoreRequest() (*AzureWorkloadSQLPointInTimeRestoreRequest, bool) {
8986 return &awspitrr, true
8987 }
8988
8989
8990 func (awspitrr AzureWorkloadSQLPointInTimeRestoreRequest) AsAzureWorkloadSQLRestoreRequest() (*AzureWorkloadSQLRestoreRequest, bool) {
8991 return nil, false
8992 }
8993
8994
8995 func (awspitrr AzureWorkloadSQLPointInTimeRestoreRequest) AsBasicAzureWorkloadSQLRestoreRequest() (BasicAzureWorkloadSQLRestoreRequest, bool) {
8996 return &awspitrr, true
8997 }
8998
8999
9000 func (awspitrr AzureWorkloadSQLPointInTimeRestoreRequest) AsIaasVMRestoreRequest() (*IaasVMRestoreRequest, bool) {
9001 return nil, false
9002 }
9003
9004
9005 func (awspitrr AzureWorkloadSQLPointInTimeRestoreRequest) AsRestoreRequest() (*RestoreRequest, bool) {
9006 return nil, false
9007 }
9008
9009
9010 func (awspitrr AzureWorkloadSQLPointInTimeRestoreRequest) AsBasicRestoreRequest() (BasicRestoreRequest, bool) {
9011 return &awspitrr, true
9012 }
9013
9014
9015
9016 type BasicAzureWorkloadSQLRecoveryPoint interface {
9017 AsAzureWorkloadSQLPointInTimeRecoveryPoint() (*AzureWorkloadSQLPointInTimeRecoveryPoint, bool)
9018 AsAzureWorkloadSQLRecoveryPoint() (*AzureWorkloadSQLRecoveryPoint, bool)
9019 }
9020
9021
9022
9023 type AzureWorkloadSQLRecoveryPoint struct {
9024
9025
9026
9027 ExtendedInfo *AzureWorkloadSQLRecoveryPointExtendedInfo `json:"extendedInfo,omitempty"`
9028
9029 RecoveryPointTimeInUTC *date.Time `json:"recoveryPointTimeInUTC,omitempty"`
9030
9031 Type RestorePointType `json:"type,omitempty"`
9032
9033 ObjectType ObjectTypeBasicRecoveryPoint `json:"objectType,omitempty"`
9034 }
9035
9036 func unmarshalBasicAzureWorkloadSQLRecoveryPoint(body []byte) (BasicAzureWorkloadSQLRecoveryPoint, error) {
9037 var m map[string]interface{}
9038 err := json.Unmarshal(body, &m)
9039 if err != nil {
9040 return nil, err
9041 }
9042
9043 switch m["objectType"] {
9044 case string(ObjectTypeAzureWorkloadSQLPointInTimeRecoveryPoint):
9045 var awspitrp AzureWorkloadSQLPointInTimeRecoveryPoint
9046 err := json.Unmarshal(body, &awspitrp)
9047 return awspitrp, err
9048 default:
9049 var awsrp AzureWorkloadSQLRecoveryPoint
9050 err := json.Unmarshal(body, &awsrp)
9051 return awsrp, err
9052 }
9053 }
9054 func unmarshalBasicAzureWorkloadSQLRecoveryPointArray(body []byte) ([]BasicAzureWorkloadSQLRecoveryPoint, error) {
9055 var rawMessages []*json.RawMessage
9056 err := json.Unmarshal(body, &rawMessages)
9057 if err != nil {
9058 return nil, err
9059 }
9060
9061 awsrpArray := make([]BasicAzureWorkloadSQLRecoveryPoint, len(rawMessages))
9062
9063 for index, rawMessage := range rawMessages {
9064 awsrp, err := unmarshalBasicAzureWorkloadSQLRecoveryPoint(*rawMessage)
9065 if err != nil {
9066 return nil, err
9067 }
9068 awsrpArray[index] = awsrp
9069 }
9070 return awsrpArray, nil
9071 }
9072
9073
9074 func (awsrp AzureWorkloadSQLRecoveryPoint) MarshalJSON() ([]byte, error) {
9075 awsrp.ObjectType = ObjectTypeAzureWorkloadSQLRecoveryPoint
9076 objectMap := make(map[string]interface{})
9077 if awsrp.ExtendedInfo != nil {
9078 objectMap["extendedInfo"] = awsrp.ExtendedInfo
9079 }
9080 if awsrp.ObjectType != "" {
9081 objectMap["objectType"] = awsrp.ObjectType
9082 }
9083 return json.Marshal(objectMap)
9084 }
9085
9086
9087 func (awsrp AzureWorkloadSQLRecoveryPoint) AsAzureFileShareRecoveryPoint() (*AzureFileShareRecoveryPoint, bool) {
9088 return nil, false
9089 }
9090
9091
9092 func (awsrp AzureWorkloadSQLRecoveryPoint) AsAzureWorkloadPointInTimeRecoveryPoint() (*AzureWorkloadPointInTimeRecoveryPoint, bool) {
9093 return nil, false
9094 }
9095
9096
9097 func (awsrp AzureWorkloadSQLRecoveryPoint) AsBasicAzureWorkloadPointInTimeRecoveryPoint() (BasicAzureWorkloadPointInTimeRecoveryPoint, bool) {
9098 return nil, false
9099 }
9100
9101
9102 func (awsrp AzureWorkloadSQLRecoveryPoint) AsAzureWorkloadRecoveryPoint() (*AzureWorkloadRecoveryPoint, bool) {
9103 return nil, false
9104 }
9105
9106
9107 func (awsrp AzureWorkloadSQLRecoveryPoint) AsBasicAzureWorkloadRecoveryPoint() (BasicAzureWorkloadRecoveryPoint, bool) {
9108 return &awsrp, true
9109 }
9110
9111
9112 func (awsrp AzureWorkloadSQLRecoveryPoint) AsAzureWorkloadSAPHanaPointInTimeRecoveryPoint() (*AzureWorkloadSAPHanaPointInTimeRecoveryPoint, bool) {
9113 return nil, false
9114 }
9115
9116
9117 func (awsrp AzureWorkloadSQLRecoveryPoint) AsAzureWorkloadSAPHanaRecoveryPoint() (*AzureWorkloadSAPHanaRecoveryPoint, bool) {
9118 return nil, false
9119 }
9120
9121
9122 func (awsrp AzureWorkloadSQLRecoveryPoint) AsAzureWorkloadSQLPointInTimeRecoveryPoint() (*AzureWorkloadSQLPointInTimeRecoveryPoint, bool) {
9123 return nil, false
9124 }
9125
9126
9127 func (awsrp AzureWorkloadSQLRecoveryPoint) AsAzureWorkloadSQLRecoveryPoint() (*AzureWorkloadSQLRecoveryPoint, bool) {
9128 return &awsrp, true
9129 }
9130
9131
9132 func (awsrp AzureWorkloadSQLRecoveryPoint) AsBasicAzureWorkloadSQLRecoveryPoint() (BasicAzureWorkloadSQLRecoveryPoint, bool) {
9133 return &awsrp, true
9134 }
9135
9136
9137 func (awsrp AzureWorkloadSQLRecoveryPoint) AsGenericRecoveryPoint() (*GenericRecoveryPoint, bool) {
9138 return nil, false
9139 }
9140
9141
9142 func (awsrp AzureWorkloadSQLRecoveryPoint) AsIaasVMRecoveryPoint() (*IaasVMRecoveryPoint, bool) {
9143 return nil, false
9144 }
9145
9146
9147 func (awsrp AzureWorkloadSQLRecoveryPoint) AsRecoveryPoint() (*RecoveryPoint, bool) {
9148 return nil, false
9149 }
9150
9151
9152 func (awsrp AzureWorkloadSQLRecoveryPoint) AsBasicRecoveryPoint() (BasicRecoveryPoint, bool) {
9153 return &awsrp, true
9154 }
9155
9156
9157 type AzureWorkloadSQLRecoveryPointExtendedInfo struct {
9158
9159 DataDirectoryTimeInUTC *date.Time `json:"dataDirectoryTimeInUTC,omitempty"`
9160
9161 DataDirectoryPaths *[]SQLDataDirectory `json:"dataDirectoryPaths,omitempty"`
9162 }
9163
9164
9165 func (awsrpei AzureWorkloadSQLRecoveryPointExtendedInfo) MarshalJSON() ([]byte, error) {
9166 objectMap := make(map[string]interface{})
9167 return json.Marshal(objectMap)
9168 }
9169
9170
9171 type BasicAzureWorkloadSQLRestoreRequest interface {
9172 AsAzureWorkloadSQLPointInTimeRestoreRequest() (*AzureWorkloadSQLPointInTimeRestoreRequest, bool)
9173 AsAzureWorkloadSQLRestoreRequest() (*AzureWorkloadSQLRestoreRequest, bool)
9174 }
9175
9176
9177 type AzureWorkloadSQLRestoreRequest struct {
9178
9179 ShouldUseAlternateTargetLocation *bool `json:"shouldUseAlternateTargetLocation,omitempty"`
9180
9181 IsNonRecoverable *bool `json:"isNonRecoverable,omitempty"`
9182
9183 AlternateDirectoryPaths *[]SQLDataDirectoryMapping `json:"alternateDirectoryPaths,omitempty"`
9184
9185 RecoveryType RecoveryType `json:"recoveryType,omitempty"`
9186
9187 SourceResourceID *string `json:"sourceResourceId,omitempty"`
9188
9189 PropertyBag map[string]*string `json:"propertyBag"`
9190
9191 TargetInfo *TargetRestoreInfo `json:"targetInfo,omitempty"`
9192
9193 RecoveryMode RecoveryMode `json:"recoveryMode,omitempty"`
9194
9195 ObjectType ObjectTypeBasicRestoreRequest `json:"objectType,omitempty"`
9196 }
9197
9198 func unmarshalBasicAzureWorkloadSQLRestoreRequest(body []byte) (BasicAzureWorkloadSQLRestoreRequest, error) {
9199 var m map[string]interface{}
9200 err := json.Unmarshal(body, &m)
9201 if err != nil {
9202 return nil, err
9203 }
9204
9205 switch m["objectType"] {
9206 case string(ObjectTypeAzureWorkloadSQLPointInTimeRestoreRequest):
9207 var awspitrr AzureWorkloadSQLPointInTimeRestoreRequest
9208 err := json.Unmarshal(body, &awspitrr)
9209 return awspitrr, err
9210 default:
9211 var awsrr AzureWorkloadSQLRestoreRequest
9212 err := json.Unmarshal(body, &awsrr)
9213 return awsrr, err
9214 }
9215 }
9216 func unmarshalBasicAzureWorkloadSQLRestoreRequestArray(body []byte) ([]BasicAzureWorkloadSQLRestoreRequest, error) {
9217 var rawMessages []*json.RawMessage
9218 err := json.Unmarshal(body, &rawMessages)
9219 if err != nil {
9220 return nil, err
9221 }
9222
9223 awsrrArray := make([]BasicAzureWorkloadSQLRestoreRequest, len(rawMessages))
9224
9225 for index, rawMessage := range rawMessages {
9226 awsrr, err := unmarshalBasicAzureWorkloadSQLRestoreRequest(*rawMessage)
9227 if err != nil {
9228 return nil, err
9229 }
9230 awsrrArray[index] = awsrr
9231 }
9232 return awsrrArray, nil
9233 }
9234
9235
9236 func (awsrr AzureWorkloadSQLRestoreRequest) MarshalJSON() ([]byte, error) {
9237 awsrr.ObjectType = ObjectTypeAzureWorkloadSQLRestoreRequest
9238 objectMap := make(map[string]interface{})
9239 if awsrr.ShouldUseAlternateTargetLocation != nil {
9240 objectMap["shouldUseAlternateTargetLocation"] = awsrr.ShouldUseAlternateTargetLocation
9241 }
9242 if awsrr.IsNonRecoverable != nil {
9243 objectMap["isNonRecoverable"] = awsrr.IsNonRecoverable
9244 }
9245 if awsrr.AlternateDirectoryPaths != nil {
9246 objectMap["alternateDirectoryPaths"] = awsrr.AlternateDirectoryPaths
9247 }
9248 if awsrr.RecoveryType != "" {
9249 objectMap["recoveryType"] = awsrr.RecoveryType
9250 }
9251 if awsrr.SourceResourceID != nil {
9252 objectMap["sourceResourceId"] = awsrr.SourceResourceID
9253 }
9254 if awsrr.PropertyBag != nil {
9255 objectMap["propertyBag"] = awsrr.PropertyBag
9256 }
9257 if awsrr.TargetInfo != nil {
9258 objectMap["targetInfo"] = awsrr.TargetInfo
9259 }
9260 if awsrr.RecoveryMode != "" {
9261 objectMap["recoveryMode"] = awsrr.RecoveryMode
9262 }
9263 if awsrr.ObjectType != "" {
9264 objectMap["objectType"] = awsrr.ObjectType
9265 }
9266 return json.Marshal(objectMap)
9267 }
9268
9269
9270 func (awsrr AzureWorkloadSQLRestoreRequest) AsAzureFileShareRestoreRequest() (*AzureFileShareRestoreRequest, bool) {
9271 return nil, false
9272 }
9273
9274
9275 func (awsrr AzureWorkloadSQLRestoreRequest) AsAzureWorkloadPointInTimeRestoreRequest() (*AzureWorkloadPointInTimeRestoreRequest, bool) {
9276 return nil, false
9277 }
9278
9279
9280 func (awsrr AzureWorkloadSQLRestoreRequest) AsAzureWorkloadRestoreRequest() (*AzureWorkloadRestoreRequest, bool) {
9281 return nil, false
9282 }
9283
9284
9285 func (awsrr AzureWorkloadSQLRestoreRequest) AsBasicAzureWorkloadRestoreRequest() (BasicAzureWorkloadRestoreRequest, bool) {
9286 return &awsrr, true
9287 }
9288
9289
9290 func (awsrr AzureWorkloadSQLRestoreRequest) AsAzureWorkloadSAPHanaPointInTimeRestoreRequest() (*AzureWorkloadSAPHanaPointInTimeRestoreRequest, bool) {
9291 return nil, false
9292 }
9293
9294
9295 func (awsrr AzureWorkloadSQLRestoreRequest) AsAzureWorkloadSAPHanaRestoreRequest() (*AzureWorkloadSAPHanaRestoreRequest, bool) {
9296 return nil, false
9297 }
9298
9299
9300 func (awsrr AzureWorkloadSQLRestoreRequest) AsBasicAzureWorkloadSAPHanaRestoreRequest() (BasicAzureWorkloadSAPHanaRestoreRequest, bool) {
9301 return nil, false
9302 }
9303
9304
9305 func (awsrr AzureWorkloadSQLRestoreRequest) AsAzureWorkloadSQLPointInTimeRestoreRequest() (*AzureWorkloadSQLPointInTimeRestoreRequest, bool) {
9306 return nil, false
9307 }
9308
9309
9310 func (awsrr AzureWorkloadSQLRestoreRequest) AsAzureWorkloadSQLRestoreRequest() (*AzureWorkloadSQLRestoreRequest, bool) {
9311 return &awsrr, true
9312 }
9313
9314
9315 func (awsrr AzureWorkloadSQLRestoreRequest) AsBasicAzureWorkloadSQLRestoreRequest() (BasicAzureWorkloadSQLRestoreRequest, bool) {
9316 return &awsrr, true
9317 }
9318
9319
9320 func (awsrr AzureWorkloadSQLRestoreRequest) AsIaasVMRestoreRequest() (*IaasVMRestoreRequest, bool) {
9321 return nil, false
9322 }
9323
9324
9325 func (awsrr AzureWorkloadSQLRestoreRequest) AsRestoreRequest() (*RestoreRequest, bool) {
9326 return nil, false
9327 }
9328
9329
9330 func (awsrr AzureWorkloadSQLRestoreRequest) AsBasicRestoreRequest() (BasicRestoreRequest, bool) {
9331 return &awsrr, true
9332 }
9333
9334
9335 type BEKDetails struct {
9336
9337 SecretURL *string `json:"secretUrl,omitempty"`
9338
9339 SecretVaultID *string `json:"secretVaultId,omitempty"`
9340
9341 SecretData *string `json:"secretData,omitempty"`
9342 }
9343
9344
9345 type BMSBackupEngineQueryObject struct {
9346
9347 Expand *string `json:"expand,omitempty"`
9348 }
9349
9350
9351 type BMSBackupEnginesQueryObject struct {
9352
9353 BackupManagementType ManagementType `json:"backupManagementType,omitempty"`
9354
9355 FriendlyName *string `json:"friendlyName,omitempty"`
9356
9357 Expand *string `json:"expand,omitempty"`
9358 }
9359
9360
9361 type BMSBackupSummariesQueryObject struct {
9362
9363 Type Type `json:"type,omitempty"`
9364 }
9365
9366
9367 type BMSContainerQueryObject struct {
9368
9369 BackupManagementType ManagementType `json:"backupManagementType,omitempty"`
9370
9371 ContainerType ContainerType `json:"containerType,omitempty"`
9372
9373 BackupEngineName *string `json:"backupEngineName,omitempty"`
9374
9375 FabricName *string `json:"fabricName,omitempty"`
9376
9377 Status *string `json:"status,omitempty"`
9378
9379 FriendlyName *string `json:"friendlyName,omitempty"`
9380 }
9381
9382
9383 type BMSContainersInquiryQueryObject struct {
9384
9385 BackupManagementType ManagementType `json:"backupManagementType,omitempty"`
9386
9387 WorkloadType WorkloadType `json:"workloadType,omitempty"`
9388 }
9389
9390
9391 type BMSPOQueryObject struct {
9392
9393 BackupManagementType ManagementType `json:"backupManagementType,omitempty"`
9394
9395 WorkloadType WorkloadType `json:"workloadType,omitempty"`
9396
9397 ContainerName *string `json:"containerName,omitempty"`
9398
9399 Status *string `json:"status,omitempty"`
9400
9401 FriendlyName *string `json:"friendlyName,omitempty"`
9402 }
9403
9404
9405 type BMSRefreshContainersQueryObject struct {
9406
9407 BackupManagementType ManagementType `json:"backupManagementType,omitempty"`
9408 }
9409
9410
9411 type BMSRPQueryObject struct {
9412
9413 StartDate *date.Time `json:"startDate,omitempty"`
9414
9415 EndDate *date.Time `json:"endDate,omitempty"`
9416
9417 RestorePointQueryType RestorePointQueryType `json:"restorePointQueryType,omitempty"`
9418
9419 ExtendedInfo *bool `json:"extendedInfo,omitempty"`
9420 }
9421
9422
9423 type BMSWorkloadItemQueryObject struct {
9424
9425 BackupManagementType ManagementType `json:"backupManagementType,omitempty"`
9426
9427 WorkloadItemType WorkloadItemType `json:"workloadItemType,omitempty"`
9428
9429 WorkloadType WorkloadType `json:"workloadType,omitempty"`
9430
9431 ProtectionStatus ProtectionStatus `json:"protectionStatus,omitempty"`
9432 }
9433
9434
9435 type ClientDiscoveryDisplay struct {
9436
9437 Provider *string `json:"provider,omitempty"`
9438
9439 Resource *string `json:"resource,omitempty"`
9440
9441 Operation *string `json:"operation,omitempty"`
9442
9443 Description *string `json:"description,omitempty"`
9444 }
9445
9446
9447
9448 type ClientDiscoveryForLogSpecification struct {
9449
9450 Name *string `json:"name,omitempty"`
9451
9452 DisplayName *string `json:"displayName,omitempty"`
9453
9454 BlobDuration *string `json:"blobDuration,omitempty"`
9455 }
9456
9457
9458 type ClientDiscoveryForProperties struct {
9459
9460 ServiceSpecification *ClientDiscoveryForServiceSpecification `json:"serviceSpecification,omitempty"`
9461 }
9462
9463
9464
9465 type ClientDiscoveryForServiceSpecification struct {
9466
9467 LogSpecifications *[]ClientDiscoveryForLogSpecification `json:"logSpecifications,omitempty"`
9468 }
9469
9470
9471 type ClientDiscoveryResponse struct {
9472 autorest.Response `json:"-"`
9473
9474 Value *[]ClientDiscoveryValueForSingleAPI `json:"value,omitempty"`
9475
9476 NextLink *string `json:"nextLink,omitempty"`
9477 }
9478
9479
9480
9481 type ClientDiscoveryResponseIterator struct {
9482 i int
9483 page ClientDiscoveryResponsePage
9484 }
9485
9486
9487
9488 func (iter *ClientDiscoveryResponseIterator) NextWithContext(ctx context.Context) (err error) {
9489 if tracing.IsEnabled() {
9490 ctx = tracing.StartSpan(ctx, fqdn+"/ClientDiscoveryResponseIterator.NextWithContext")
9491 defer func() {
9492 sc := -1
9493 if iter.Response().Response.Response != nil {
9494 sc = iter.Response().Response.Response.StatusCode
9495 }
9496 tracing.EndSpan(ctx, sc, err)
9497 }()
9498 }
9499 iter.i++
9500 if iter.i < len(iter.page.Values()) {
9501 return nil
9502 }
9503 err = iter.page.NextWithContext(ctx)
9504 if err != nil {
9505 iter.i--
9506 return err
9507 }
9508 iter.i = 0
9509 return nil
9510 }
9511
9512
9513
9514
9515 func (iter *ClientDiscoveryResponseIterator) Next() error {
9516 return iter.NextWithContext(context.Background())
9517 }
9518
9519
9520 func (iter ClientDiscoveryResponseIterator) NotDone() bool {
9521 return iter.page.NotDone() && iter.i < len(iter.page.Values())
9522 }
9523
9524
9525 func (iter ClientDiscoveryResponseIterator) Response() ClientDiscoveryResponse {
9526 return iter.page.Response()
9527 }
9528
9529
9530
9531 func (iter ClientDiscoveryResponseIterator) Value() ClientDiscoveryValueForSingleAPI {
9532 if !iter.page.NotDone() {
9533 return ClientDiscoveryValueForSingleAPI{}
9534 }
9535 return iter.page.Values()[iter.i]
9536 }
9537
9538
9539 func NewClientDiscoveryResponseIterator(page ClientDiscoveryResponsePage) ClientDiscoveryResponseIterator {
9540 return ClientDiscoveryResponseIterator{page: page}
9541 }
9542
9543
9544 func (cdr ClientDiscoveryResponse) IsEmpty() bool {
9545 return cdr.Value == nil || len(*cdr.Value) == 0
9546 }
9547
9548
9549 func (cdr ClientDiscoveryResponse) hasNextLink() bool {
9550 return cdr.NextLink != nil && len(*cdr.NextLink) != 0
9551 }
9552
9553
9554
9555 func (cdr ClientDiscoveryResponse) clientDiscoveryResponsePreparer(ctx context.Context) (*http.Request, error) {
9556 if !cdr.hasNextLink() {
9557 return nil, nil
9558 }
9559 return autorest.Prepare((&http.Request{}).WithContext(ctx),
9560 autorest.AsJSON(),
9561 autorest.AsGet(),
9562 autorest.WithBaseURL(to.String(cdr.NextLink)))
9563 }
9564
9565
9566 type ClientDiscoveryResponsePage struct {
9567 fn func(context.Context, ClientDiscoveryResponse) (ClientDiscoveryResponse, error)
9568 cdr ClientDiscoveryResponse
9569 }
9570
9571
9572
9573 func (page *ClientDiscoveryResponsePage) NextWithContext(ctx context.Context) (err error) {
9574 if tracing.IsEnabled() {
9575 ctx = tracing.StartSpan(ctx, fqdn+"/ClientDiscoveryResponsePage.NextWithContext")
9576 defer func() {
9577 sc := -1
9578 if page.Response().Response.Response != nil {
9579 sc = page.Response().Response.Response.StatusCode
9580 }
9581 tracing.EndSpan(ctx, sc, err)
9582 }()
9583 }
9584 for {
9585 next, err := page.fn(ctx, page.cdr)
9586 if err != nil {
9587 return err
9588 }
9589 page.cdr = next
9590 if !next.hasNextLink() || !next.IsEmpty() {
9591 break
9592 }
9593 }
9594 return nil
9595 }
9596
9597
9598
9599
9600 func (page *ClientDiscoveryResponsePage) Next() error {
9601 return page.NextWithContext(context.Background())
9602 }
9603
9604
9605 func (page ClientDiscoveryResponsePage) NotDone() bool {
9606 return !page.cdr.IsEmpty()
9607 }
9608
9609
9610 func (page ClientDiscoveryResponsePage) Response() ClientDiscoveryResponse {
9611 return page.cdr
9612 }
9613
9614
9615 func (page ClientDiscoveryResponsePage) Values() []ClientDiscoveryValueForSingleAPI {
9616 if page.cdr.IsEmpty() {
9617 return nil
9618 }
9619 return *page.cdr.Value
9620 }
9621
9622
9623 func NewClientDiscoveryResponsePage(cur ClientDiscoveryResponse, getNextPage func(context.Context, ClientDiscoveryResponse) (ClientDiscoveryResponse, error)) ClientDiscoveryResponsePage {
9624 return ClientDiscoveryResponsePage{
9625 fn: getNextPage,
9626 cdr: cur,
9627 }
9628 }
9629
9630
9631 type ClientDiscoveryValueForSingleAPI struct {
9632
9633 Name *string `json:"name,omitempty"`
9634
9635 Display *ClientDiscoveryDisplay `json:"display,omitempty"`
9636
9637 Origin *string `json:"origin,omitempty"`
9638
9639 Properties *ClientDiscoveryForProperties `json:"properties,omitempty"`
9640 }
9641
9642
9643 type ClientScriptForConnect struct {
9644
9645 ScriptContent *string `json:"scriptContent,omitempty"`
9646
9647 ScriptExtension *string `json:"scriptExtension,omitempty"`
9648
9649 OsType *string `json:"osType,omitempty"`
9650
9651 URL *string `json:"url,omitempty"`
9652
9653
9654 ScriptNameSuffix *string `json:"scriptNameSuffix,omitempty"`
9655 }
9656
9657
9658 type ContainerIdentityInfo struct {
9659
9660 UniqueName *string `json:"uniqueName,omitempty"`
9661
9662 AadTenantID *string `json:"aadTenantId,omitempty"`
9663
9664 ServicePrincipalClientID *string `json:"servicePrincipalClientId,omitempty"`
9665
9666 Audience *string `json:"audience,omitempty"`
9667 }
9668
9669
9670 type DailyRetentionFormat struct {
9671
9672 DaysOfTheMonth *[]Day `json:"daysOfTheMonth,omitempty"`
9673 }
9674
9675
9676 type DailyRetentionSchedule struct {
9677
9678 RetentionTimes *[]date.Time `json:"retentionTimes,omitempty"`
9679
9680 RetentionDuration *RetentionDuration `json:"retentionDuration,omitempty"`
9681 }
9682
9683
9684 type Day struct {
9685
9686 Date *int32 `json:"date,omitempty"`
9687
9688 IsLast *bool `json:"isLast,omitempty"`
9689 }
9690
9691
9692 type DiskExclusionProperties struct {
9693
9694 DiskLunList *[]int32 `json:"diskLunList,omitempty"`
9695
9696 IsInclusionList *bool `json:"isInclusionList,omitempty"`
9697 }
9698
9699
9700 type DiskInformation struct {
9701 Lun *int32 `json:"lun,omitempty"`
9702 Name *string `json:"name,omitempty"`
9703 }
9704
9705
9706 type DistributedNodesInfo struct {
9707
9708 NodeName *string `json:"nodeName,omitempty"`
9709
9710
9711 Status *string `json:"status,omitempty"`
9712
9713 ErrorDetail *ErrorDetail `json:"errorDetail,omitempty"`
9714 }
9715
9716
9717 type DpmBackupEngine struct {
9718
9719 FriendlyName *string `json:"friendlyName,omitempty"`
9720
9721 BackupManagementType ManagementType `json:"backupManagementType,omitempty"`
9722
9723 RegistrationStatus *string `json:"registrationStatus,omitempty"`
9724
9725 BackupEngineState *string `json:"backupEngineState,omitempty"`
9726
9727 HealthStatus *string `json:"healthStatus,omitempty"`
9728
9729 CanReRegister *bool `json:"canReRegister,omitempty"`
9730
9731 BackupEngineID *string `json:"backupEngineId,omitempty"`
9732
9733 DpmVersion *string `json:"dpmVersion,omitempty"`
9734
9735 AzureBackupAgentVersion *string `json:"azureBackupAgentVersion,omitempty"`
9736
9737 IsAzureBackupAgentUpgradeAvailable *bool `json:"isAzureBackupAgentUpgradeAvailable,omitempty"`
9738
9739 IsDpmUpgradeAvailable *bool `json:"isDpmUpgradeAvailable,omitempty"`
9740
9741 ExtendedInfo *EngineExtendedInfo `json:"extendedInfo,omitempty"`
9742
9743 BackupEngineType EngineType `json:"backupEngineType,omitempty"`
9744 }
9745
9746
9747 func (dbe DpmBackupEngine) MarshalJSON() ([]byte, error) {
9748 dbe.BackupEngineType = BackupEngineTypeDpmBackupEngine
9749 objectMap := make(map[string]interface{})
9750 if dbe.FriendlyName != nil {
9751 objectMap["friendlyName"] = dbe.FriendlyName
9752 }
9753 if dbe.BackupManagementType != "" {
9754 objectMap["backupManagementType"] = dbe.BackupManagementType
9755 }
9756 if dbe.RegistrationStatus != nil {
9757 objectMap["registrationStatus"] = dbe.RegistrationStatus
9758 }
9759 if dbe.BackupEngineState != nil {
9760 objectMap["backupEngineState"] = dbe.BackupEngineState
9761 }
9762 if dbe.HealthStatus != nil {
9763 objectMap["healthStatus"] = dbe.HealthStatus
9764 }
9765 if dbe.CanReRegister != nil {
9766 objectMap["canReRegister"] = dbe.CanReRegister
9767 }
9768 if dbe.BackupEngineID != nil {
9769 objectMap["backupEngineId"] = dbe.BackupEngineID
9770 }
9771 if dbe.DpmVersion != nil {
9772 objectMap["dpmVersion"] = dbe.DpmVersion
9773 }
9774 if dbe.AzureBackupAgentVersion != nil {
9775 objectMap["azureBackupAgentVersion"] = dbe.AzureBackupAgentVersion
9776 }
9777 if dbe.IsAzureBackupAgentUpgradeAvailable != nil {
9778 objectMap["isAzureBackupAgentUpgradeAvailable"] = dbe.IsAzureBackupAgentUpgradeAvailable
9779 }
9780 if dbe.IsDpmUpgradeAvailable != nil {
9781 objectMap["isDpmUpgradeAvailable"] = dbe.IsDpmUpgradeAvailable
9782 }
9783 if dbe.ExtendedInfo != nil {
9784 objectMap["extendedInfo"] = dbe.ExtendedInfo
9785 }
9786 if dbe.BackupEngineType != "" {
9787 objectMap["backupEngineType"] = dbe.BackupEngineType
9788 }
9789 return json.Marshal(objectMap)
9790 }
9791
9792
9793 func (dbe DpmBackupEngine) AsAzureBackupServerEngine() (*AzureBackupServerEngine, bool) {
9794 return nil, false
9795 }
9796
9797
9798 func (dbe DpmBackupEngine) AsDpmBackupEngine() (*DpmBackupEngine, bool) {
9799 return &dbe, true
9800 }
9801
9802
9803 func (dbe DpmBackupEngine) AsEngineBase() (*EngineBase, bool) {
9804 return nil, false
9805 }
9806
9807
9808 func (dbe DpmBackupEngine) AsBasicEngineBase() (BasicEngineBase, bool) {
9809 return &dbe, true
9810 }
9811
9812
9813 type BasicDpmContainer interface {
9814 AsAzureBackupServerContainer() (*AzureBackupServerContainer, bool)
9815 AsDpmContainer() (*DpmContainer, bool)
9816 }
9817
9818
9819 type DpmContainer struct {
9820
9821 CanReRegister *bool `json:"canReRegister,omitempty"`
9822
9823 ContainerID *string `json:"containerId,omitempty"`
9824
9825 ProtectedItemCount *int64 `json:"protectedItemCount,omitempty"`
9826
9827 DpmAgentVersion *string `json:"dpmAgentVersion,omitempty"`
9828
9829 DpmServers *[]string `json:"dpmServers,omitempty"`
9830
9831 UpgradeAvailable *bool `json:"upgradeAvailable,omitempty"`
9832
9833 ProtectionStatus *string `json:"protectionStatus,omitempty"`
9834
9835 ExtendedInfo *DPMContainerExtendedInfo `json:"extendedInfo,omitempty"`
9836
9837 FriendlyName *string `json:"friendlyName,omitempty"`
9838
9839 BackupManagementType ManagementType `json:"backupManagementType,omitempty"`
9840
9841 RegistrationStatus *string `json:"registrationStatus,omitempty"`
9842
9843 HealthStatus *string `json:"healthStatus,omitempty"`
9844
9845 ContainerType ContainerTypeBasicProtectionContainer `json:"containerType,omitempty"`
9846 }
9847
9848 func unmarshalBasicDpmContainer(body []byte) (BasicDpmContainer, error) {
9849 var m map[string]interface{}
9850 err := json.Unmarshal(body, &m)
9851 if err != nil {
9852 return nil, err
9853 }
9854
9855 switch m["containerType"] {
9856 case string(ContainerTypeAzureBackupServerContainer1):
9857 var absc AzureBackupServerContainer
9858 err := json.Unmarshal(body, &absc)
9859 return absc, err
9860 default:
9861 var dc DpmContainer
9862 err := json.Unmarshal(body, &dc)
9863 return dc, err
9864 }
9865 }
9866 func unmarshalBasicDpmContainerArray(body []byte) ([]BasicDpmContainer, error) {
9867 var rawMessages []*json.RawMessage
9868 err := json.Unmarshal(body, &rawMessages)
9869 if err != nil {
9870 return nil, err
9871 }
9872
9873 dcArray := make([]BasicDpmContainer, len(rawMessages))
9874
9875 for index, rawMessage := range rawMessages {
9876 dc, err := unmarshalBasicDpmContainer(*rawMessage)
9877 if err != nil {
9878 return nil, err
9879 }
9880 dcArray[index] = dc
9881 }
9882 return dcArray, nil
9883 }
9884
9885
9886 func (dc DpmContainer) MarshalJSON() ([]byte, error) {
9887 dc.ContainerType = ContainerTypeDPMContainer1
9888 objectMap := make(map[string]interface{})
9889 if dc.CanReRegister != nil {
9890 objectMap["canReRegister"] = dc.CanReRegister
9891 }
9892 if dc.ContainerID != nil {
9893 objectMap["containerId"] = dc.ContainerID
9894 }
9895 if dc.ProtectedItemCount != nil {
9896 objectMap["protectedItemCount"] = dc.ProtectedItemCount
9897 }
9898 if dc.DpmAgentVersion != nil {
9899 objectMap["dpmAgentVersion"] = dc.DpmAgentVersion
9900 }
9901 if dc.DpmServers != nil {
9902 objectMap["dpmServers"] = dc.DpmServers
9903 }
9904 if dc.UpgradeAvailable != nil {
9905 objectMap["upgradeAvailable"] = dc.UpgradeAvailable
9906 }
9907 if dc.ProtectionStatus != nil {
9908 objectMap["protectionStatus"] = dc.ProtectionStatus
9909 }
9910 if dc.ExtendedInfo != nil {
9911 objectMap["extendedInfo"] = dc.ExtendedInfo
9912 }
9913 if dc.FriendlyName != nil {
9914 objectMap["friendlyName"] = dc.FriendlyName
9915 }
9916 if dc.BackupManagementType != "" {
9917 objectMap["backupManagementType"] = dc.BackupManagementType
9918 }
9919 if dc.RegistrationStatus != nil {
9920 objectMap["registrationStatus"] = dc.RegistrationStatus
9921 }
9922 if dc.HealthStatus != nil {
9923 objectMap["healthStatus"] = dc.HealthStatus
9924 }
9925 if dc.ContainerType != "" {
9926 objectMap["containerType"] = dc.ContainerType
9927 }
9928 return json.Marshal(objectMap)
9929 }
9930
9931
9932 func (dc DpmContainer) AsAzureBackupServerContainer() (*AzureBackupServerContainer, bool) {
9933 return nil, false
9934 }
9935
9936
9937 func (dc DpmContainer) AsAzureIaaSClassicComputeVMContainer() (*AzureIaaSClassicComputeVMContainer, bool) {
9938 return nil, false
9939 }
9940
9941
9942 func (dc DpmContainer) AsAzureIaaSComputeVMContainer() (*AzureIaaSComputeVMContainer, bool) {
9943 return nil, false
9944 }
9945
9946
9947 func (dc DpmContainer) AsAzureSQLAGWorkloadContainerProtectionContainer() (*AzureSQLAGWorkloadContainerProtectionContainer, bool) {
9948 return nil, false
9949 }
9950
9951
9952 func (dc DpmContainer) AsAzureSQLContainer() (*AzureSQLContainer, bool) {
9953 return nil, false
9954 }
9955
9956
9957 func (dc DpmContainer) AsAzureStorageContainer() (*AzureStorageContainer, bool) {
9958 return nil, false
9959 }
9960
9961
9962 func (dc DpmContainer) AsAzureVMAppContainerProtectionContainer() (*AzureVMAppContainerProtectionContainer, bool) {
9963 return nil, false
9964 }
9965
9966
9967 func (dc DpmContainer) AsAzureWorkloadContainer() (*AzureWorkloadContainer, bool) {
9968 return nil, false
9969 }
9970
9971
9972 func (dc DpmContainer) AsBasicAzureWorkloadContainer() (BasicAzureWorkloadContainer, bool) {
9973 return nil, false
9974 }
9975
9976
9977 func (dc DpmContainer) AsDpmContainer() (*DpmContainer, bool) {
9978 return &dc, true
9979 }
9980
9981
9982 func (dc DpmContainer) AsBasicDpmContainer() (BasicDpmContainer, bool) {
9983 return &dc, true
9984 }
9985
9986
9987 func (dc DpmContainer) AsGenericContainer() (*GenericContainer, bool) {
9988 return nil, false
9989 }
9990
9991
9992 func (dc DpmContainer) AsIaaSVMContainer() (*IaaSVMContainer, bool) {
9993 return nil, false
9994 }
9995
9996
9997 func (dc DpmContainer) AsBasicIaaSVMContainer() (BasicIaaSVMContainer, bool) {
9998 return nil, false
9999 }
10000
10001
10002 func (dc DpmContainer) AsMabContainer() (*MabContainer, bool) {
10003 return nil, false
10004 }
10005
10006
10007 func (dc DpmContainer) AsProtectionContainer() (*ProtectionContainer, bool) {
10008 return nil, false
10009 }
10010
10011
10012 func (dc DpmContainer) AsBasicProtectionContainer() (BasicProtectionContainer, bool) {
10013 return &dc, true
10014 }
10015
10016
10017 type DPMContainerExtendedInfo struct {
10018
10019 LastRefreshedAt *date.Time `json:"lastRefreshedAt,omitempty"`
10020 }
10021
10022
10023 type DpmErrorInfo struct {
10024
10025 ErrorString *string `json:"errorString,omitempty"`
10026
10027 Recommendations *[]string `json:"recommendations,omitempty"`
10028 }
10029
10030
10031 type DpmJob struct {
10032
10033 Duration *string `json:"duration,omitempty"`
10034
10035 DpmServerName *string `json:"dpmServerName,omitempty"`
10036
10037 ContainerName *string `json:"containerName,omitempty"`
10038
10039 ContainerType *string `json:"containerType,omitempty"`
10040
10041 WorkloadType *string `json:"workloadType,omitempty"`
10042
10043 ActionsInfo *[]JobSupportedAction `json:"actionsInfo,omitempty"`
10044
10045 ErrorDetails *[]DpmErrorInfo `json:"errorDetails,omitempty"`
10046
10047 ExtendedInfo *DpmJobExtendedInfo `json:"extendedInfo,omitempty"`
10048
10049 EntityFriendlyName *string `json:"entityFriendlyName,omitempty"`
10050
10051 BackupManagementType ManagementType `json:"backupManagementType,omitempty"`
10052
10053 Operation *string `json:"operation,omitempty"`
10054
10055 Status *string `json:"status,omitempty"`
10056
10057 StartTime *date.Time `json:"startTime,omitempty"`
10058
10059 EndTime *date.Time `json:"endTime,omitempty"`
10060
10061 ActivityID *string `json:"activityId,omitempty"`
10062
10063 JobType JobType `json:"jobType,omitempty"`
10064 }
10065
10066
10067 func (dj DpmJob) MarshalJSON() ([]byte, error) {
10068 dj.JobType = JobTypeDpmJob
10069 objectMap := make(map[string]interface{})
10070 if dj.Duration != nil {
10071 objectMap["duration"] = dj.Duration
10072 }
10073 if dj.DpmServerName != nil {
10074 objectMap["dpmServerName"] = dj.DpmServerName
10075 }
10076 if dj.ContainerName != nil {
10077 objectMap["containerName"] = dj.ContainerName
10078 }
10079 if dj.ContainerType != nil {
10080 objectMap["containerType"] = dj.ContainerType
10081 }
10082 if dj.WorkloadType != nil {
10083 objectMap["workloadType"] = dj.WorkloadType
10084 }
10085 if dj.ActionsInfo != nil {
10086 objectMap["actionsInfo"] = dj.ActionsInfo
10087 }
10088 if dj.ErrorDetails != nil {
10089 objectMap["errorDetails"] = dj.ErrorDetails
10090 }
10091 if dj.ExtendedInfo != nil {
10092 objectMap["extendedInfo"] = dj.ExtendedInfo
10093 }
10094 if dj.EntityFriendlyName != nil {
10095 objectMap["entityFriendlyName"] = dj.EntityFriendlyName
10096 }
10097 if dj.BackupManagementType != "" {
10098 objectMap["backupManagementType"] = dj.BackupManagementType
10099 }
10100 if dj.Operation != nil {
10101 objectMap["operation"] = dj.Operation
10102 }
10103 if dj.Status != nil {
10104 objectMap["status"] = dj.Status
10105 }
10106 if dj.StartTime != nil {
10107 objectMap["startTime"] = dj.StartTime
10108 }
10109 if dj.EndTime != nil {
10110 objectMap["endTime"] = dj.EndTime
10111 }
10112 if dj.ActivityID != nil {
10113 objectMap["activityId"] = dj.ActivityID
10114 }
10115 if dj.JobType != "" {
10116 objectMap["jobType"] = dj.JobType
10117 }
10118 return json.Marshal(objectMap)
10119 }
10120
10121
10122 func (dj DpmJob) AsAzureIaaSVMJob() (*AzureIaaSVMJob, bool) {
10123 return nil, false
10124 }
10125
10126
10127 func (dj DpmJob) AsAzureStorageJob() (*AzureStorageJob, bool) {
10128 return nil, false
10129 }
10130
10131
10132 func (dj DpmJob) AsAzureWorkloadJob() (*AzureWorkloadJob, bool) {
10133 return nil, false
10134 }
10135
10136
10137 func (dj DpmJob) AsDpmJob() (*DpmJob, bool) {
10138 return &dj, true
10139 }
10140
10141
10142 func (dj DpmJob) AsMabJob() (*MabJob, bool) {
10143 return nil, false
10144 }
10145
10146
10147 func (dj DpmJob) AsJob() (*Job, bool) {
10148 return nil, false
10149 }
10150
10151
10152 func (dj DpmJob) AsBasicJob() (BasicJob, bool) {
10153 return &dj, true
10154 }
10155
10156
10157 type DpmJobExtendedInfo struct {
10158
10159 TasksList *[]DpmJobTaskDetails `json:"tasksList,omitempty"`
10160
10161 PropertyBag map[string]*string `json:"propertyBag"`
10162
10163 DynamicErrorMessage *string `json:"dynamicErrorMessage,omitempty"`
10164 }
10165
10166
10167 func (djei DpmJobExtendedInfo) MarshalJSON() ([]byte, error) {
10168 objectMap := make(map[string]interface{})
10169 if djei.TasksList != nil {
10170 objectMap["tasksList"] = djei.TasksList
10171 }
10172 if djei.PropertyBag != nil {
10173 objectMap["propertyBag"] = djei.PropertyBag
10174 }
10175 if djei.DynamicErrorMessage != nil {
10176 objectMap["dynamicErrorMessage"] = djei.DynamicErrorMessage
10177 }
10178 return json.Marshal(objectMap)
10179 }
10180
10181
10182 type DpmJobTaskDetails struct {
10183
10184 TaskID *string `json:"taskId,omitempty"`
10185
10186 StartTime *date.Time `json:"startTime,omitempty"`
10187
10188 EndTime *date.Time `json:"endTime,omitempty"`
10189
10190 Duration *string `json:"duration,omitempty"`
10191
10192 Status *string `json:"status,omitempty"`
10193 }
10194
10195
10196 type DPMProtectedItem struct {
10197
10198 FriendlyName *string `json:"friendlyName,omitempty"`
10199
10200 BackupEngineName *string `json:"backupEngineName,omitempty"`
10201
10202 ProtectionState ProtectedItemState `json:"protectionState,omitempty"`
10203
10204 ExtendedInfo *DPMProtectedItemExtendedInfo `json:"extendedInfo,omitempty"`
10205
10206 BackupManagementType ManagementType `json:"backupManagementType,omitempty"`
10207
10208 WorkloadType DataSourceType `json:"workloadType,omitempty"`
10209
10210 ContainerName *string `json:"containerName,omitempty"`
10211
10212 SourceResourceID *string `json:"sourceResourceId,omitempty"`
10213
10214 PolicyID *string `json:"policyId,omitempty"`
10215
10216 LastRecoveryPoint *date.Time `json:"lastRecoveryPoint,omitempty"`
10217
10218 BackupSetName *string `json:"backupSetName,omitempty"`
10219
10220 CreateMode CreateMode `json:"createMode,omitempty"`
10221
10222 DeferredDeleteTimeInUTC *date.Time `json:"deferredDeleteTimeInUTC,omitempty"`
10223
10224 IsScheduledForDeferredDelete *bool `json:"isScheduledForDeferredDelete,omitempty"`
10225
10226 DeferredDeleteTimeRemaining *string `json:"deferredDeleteTimeRemaining,omitempty"`
10227
10228 IsDeferredDeleteScheduleUpcoming *bool `json:"isDeferredDeleteScheduleUpcoming,omitempty"`
10229
10230 IsRehydrate *bool `json:"isRehydrate,omitempty"`
10231
10232 ProtectedItemType ProtectedItemType `json:"protectedItemType,omitempty"`
10233 }
10234
10235
10236 func (dpi DPMProtectedItem) MarshalJSON() ([]byte, error) {
10237 dpi.ProtectedItemType = ProtectedItemTypeDPMProtectedItem
10238 objectMap := make(map[string]interface{})
10239 if dpi.FriendlyName != nil {
10240 objectMap["friendlyName"] = dpi.FriendlyName
10241 }
10242 if dpi.BackupEngineName != nil {
10243 objectMap["backupEngineName"] = dpi.BackupEngineName
10244 }
10245 if dpi.ProtectionState != "" {
10246 objectMap["protectionState"] = dpi.ProtectionState
10247 }
10248 if dpi.ExtendedInfo != nil {
10249 objectMap["extendedInfo"] = dpi.ExtendedInfo
10250 }
10251 if dpi.BackupManagementType != "" {
10252 objectMap["backupManagementType"] = dpi.BackupManagementType
10253 }
10254 if dpi.WorkloadType != "" {
10255 objectMap["workloadType"] = dpi.WorkloadType
10256 }
10257 if dpi.ContainerName != nil {
10258 objectMap["containerName"] = dpi.ContainerName
10259 }
10260 if dpi.SourceResourceID != nil {
10261 objectMap["sourceResourceId"] = dpi.SourceResourceID
10262 }
10263 if dpi.PolicyID != nil {
10264 objectMap["policyId"] = dpi.PolicyID
10265 }
10266 if dpi.LastRecoveryPoint != nil {
10267 objectMap["lastRecoveryPoint"] = dpi.LastRecoveryPoint
10268 }
10269 if dpi.BackupSetName != nil {
10270 objectMap["backupSetName"] = dpi.BackupSetName
10271 }
10272 if dpi.CreateMode != "" {
10273 objectMap["createMode"] = dpi.CreateMode
10274 }
10275 if dpi.DeferredDeleteTimeInUTC != nil {
10276 objectMap["deferredDeleteTimeInUTC"] = dpi.DeferredDeleteTimeInUTC
10277 }
10278 if dpi.IsScheduledForDeferredDelete != nil {
10279 objectMap["isScheduledForDeferredDelete"] = dpi.IsScheduledForDeferredDelete
10280 }
10281 if dpi.DeferredDeleteTimeRemaining != nil {
10282 objectMap["deferredDeleteTimeRemaining"] = dpi.DeferredDeleteTimeRemaining
10283 }
10284 if dpi.IsDeferredDeleteScheduleUpcoming != nil {
10285 objectMap["isDeferredDeleteScheduleUpcoming"] = dpi.IsDeferredDeleteScheduleUpcoming
10286 }
10287 if dpi.IsRehydrate != nil {
10288 objectMap["isRehydrate"] = dpi.IsRehydrate
10289 }
10290 if dpi.ProtectedItemType != "" {
10291 objectMap["protectedItemType"] = dpi.ProtectedItemType
10292 }
10293 return json.Marshal(objectMap)
10294 }
10295
10296
10297 func (dpi DPMProtectedItem) AsAzureFileshareProtectedItem() (*AzureFileshareProtectedItem, bool) {
10298 return nil, false
10299 }
10300
10301
10302 func (dpi DPMProtectedItem) AsAzureIaaSClassicComputeVMProtectedItem() (*AzureIaaSClassicComputeVMProtectedItem, bool) {
10303 return nil, false
10304 }
10305
10306
10307 func (dpi DPMProtectedItem) AsAzureIaaSComputeVMProtectedItem() (*AzureIaaSComputeVMProtectedItem, bool) {
10308 return nil, false
10309 }
10310
10311
10312 func (dpi DPMProtectedItem) AsAzureIaaSVMProtectedItem() (*AzureIaaSVMProtectedItem, bool) {
10313 return nil, false
10314 }
10315
10316
10317 func (dpi DPMProtectedItem) AsBasicAzureIaaSVMProtectedItem() (BasicAzureIaaSVMProtectedItem, bool) {
10318 return nil, false
10319 }
10320
10321
10322 func (dpi DPMProtectedItem) AsAzureSQLProtectedItem() (*AzureSQLProtectedItem, bool) {
10323 return nil, false
10324 }
10325
10326
10327 func (dpi DPMProtectedItem) AsAzureVMWorkloadProtectedItem() (*AzureVMWorkloadProtectedItem, bool) {
10328 return nil, false
10329 }
10330
10331
10332 func (dpi DPMProtectedItem) AsBasicAzureVMWorkloadProtectedItem() (BasicAzureVMWorkloadProtectedItem, bool) {
10333 return nil, false
10334 }
10335
10336
10337 func (dpi DPMProtectedItem) AsAzureVMWorkloadSAPAseDatabaseProtectedItem() (*AzureVMWorkloadSAPAseDatabaseProtectedItem, bool) {
10338 return nil, false
10339 }
10340
10341
10342 func (dpi DPMProtectedItem) AsAzureVMWorkloadSAPHanaDatabaseProtectedItem() (*AzureVMWorkloadSAPHanaDatabaseProtectedItem, bool) {
10343 return nil, false
10344 }
10345
10346
10347 func (dpi DPMProtectedItem) AsAzureVMWorkloadSQLDatabaseProtectedItem() (*AzureVMWorkloadSQLDatabaseProtectedItem, bool) {
10348 return nil, false
10349 }
10350
10351
10352 func (dpi DPMProtectedItem) AsDPMProtectedItem() (*DPMProtectedItem, bool) {
10353 return &dpi, true
10354 }
10355
10356
10357 func (dpi DPMProtectedItem) AsGenericProtectedItem() (*GenericProtectedItem, bool) {
10358 return nil, false
10359 }
10360
10361
10362 func (dpi DPMProtectedItem) AsMabFileFolderProtectedItem() (*MabFileFolderProtectedItem, bool) {
10363 return nil, false
10364 }
10365
10366
10367 func (dpi DPMProtectedItem) AsProtectedItem() (*ProtectedItem, bool) {
10368 return nil, false
10369 }
10370
10371
10372 func (dpi DPMProtectedItem) AsBasicProtectedItem() (BasicProtectedItem, bool) {
10373 return &dpi, true
10374 }
10375
10376
10377 type DPMProtectedItemExtendedInfo struct {
10378
10379 ProtectableObjectLoadPath map[string]*string `json:"protectableObjectLoadPath"`
10380
10381 Protected *bool `json:"protected,omitempty"`
10382
10383 IsPresentOnCloud *bool `json:"isPresentOnCloud,omitempty"`
10384
10385 LastBackupStatus *string `json:"lastBackupStatus,omitempty"`
10386
10387 LastRefreshedAt *date.Time `json:"lastRefreshedAt,omitempty"`
10388
10389 OldestRecoveryPoint *date.Time `json:"oldestRecoveryPoint,omitempty"`
10390
10391 RecoveryPointCount *int32 `json:"recoveryPointCount,omitempty"`
10392
10393 OnPremiseOldestRecoveryPoint *date.Time `json:"onPremiseOldestRecoveryPoint,omitempty"`
10394
10395 OnPremiseLatestRecoveryPoint *date.Time `json:"onPremiseLatestRecoveryPoint,omitempty"`
10396
10397 OnPremiseRecoveryPointCount *int32 `json:"onPremiseRecoveryPointCount,omitempty"`
10398
10399 IsCollocated *bool `json:"isCollocated,omitempty"`
10400
10401 ProtectionGroupName *string `json:"protectionGroupName,omitempty"`
10402
10403 DiskStorageUsedInBytes *string `json:"diskStorageUsedInBytes,omitempty"`
10404
10405 TotalDiskStorageSizeInBytes *string `json:"totalDiskStorageSizeInBytes,omitempty"`
10406 }
10407
10408
10409 func (dpiei DPMProtectedItemExtendedInfo) MarshalJSON() ([]byte, error) {
10410 objectMap := make(map[string]interface{})
10411 if dpiei.ProtectableObjectLoadPath != nil {
10412 objectMap["protectableObjectLoadPath"] = dpiei.ProtectableObjectLoadPath
10413 }
10414 if dpiei.Protected != nil {
10415 objectMap["protected"] = dpiei.Protected
10416 }
10417 if dpiei.IsPresentOnCloud != nil {
10418 objectMap["isPresentOnCloud"] = dpiei.IsPresentOnCloud
10419 }
10420 if dpiei.LastBackupStatus != nil {
10421 objectMap["lastBackupStatus"] = dpiei.LastBackupStatus
10422 }
10423 if dpiei.LastRefreshedAt != nil {
10424 objectMap["lastRefreshedAt"] = dpiei.LastRefreshedAt
10425 }
10426 if dpiei.OldestRecoveryPoint != nil {
10427 objectMap["oldestRecoveryPoint"] = dpiei.OldestRecoveryPoint
10428 }
10429 if dpiei.RecoveryPointCount != nil {
10430 objectMap["recoveryPointCount"] = dpiei.RecoveryPointCount
10431 }
10432 if dpiei.OnPremiseOldestRecoveryPoint != nil {
10433 objectMap["onPremiseOldestRecoveryPoint"] = dpiei.OnPremiseOldestRecoveryPoint
10434 }
10435 if dpiei.OnPremiseLatestRecoveryPoint != nil {
10436 objectMap["onPremiseLatestRecoveryPoint"] = dpiei.OnPremiseLatestRecoveryPoint
10437 }
10438 if dpiei.OnPremiseRecoveryPointCount != nil {
10439 objectMap["onPremiseRecoveryPointCount"] = dpiei.OnPremiseRecoveryPointCount
10440 }
10441 if dpiei.IsCollocated != nil {
10442 objectMap["isCollocated"] = dpiei.IsCollocated
10443 }
10444 if dpiei.ProtectionGroupName != nil {
10445 objectMap["protectionGroupName"] = dpiei.ProtectionGroupName
10446 }
10447 if dpiei.DiskStorageUsedInBytes != nil {
10448 objectMap["diskStorageUsedInBytes"] = dpiei.DiskStorageUsedInBytes
10449 }
10450 if dpiei.TotalDiskStorageSizeInBytes != nil {
10451 objectMap["totalDiskStorageSizeInBytes"] = dpiei.TotalDiskStorageSizeInBytes
10452 }
10453 return json.Marshal(objectMap)
10454 }
10455
10456
10457 type EncryptionDetails struct {
10458
10459 EncryptionEnabled *bool `json:"encryptionEnabled,omitempty"`
10460
10461 KekURL *string `json:"kekUrl,omitempty"`
10462
10463 SecretKeyURL *string `json:"secretKeyUrl,omitempty"`
10464
10465 KekVaultID *string `json:"kekVaultId,omitempty"`
10466
10467 SecretKeyVaultID *string `json:"secretKeyVaultId,omitempty"`
10468 }
10469
10470
10471 type BasicEngineBase interface {
10472 AsAzureBackupServerEngine() (*AzureBackupServerEngine, bool)
10473 AsDpmBackupEngine() (*DpmBackupEngine, bool)
10474 AsEngineBase() (*EngineBase, bool)
10475 }
10476
10477
10478 type EngineBase struct {
10479
10480 FriendlyName *string `json:"friendlyName,omitempty"`
10481
10482 BackupManagementType ManagementType `json:"backupManagementType,omitempty"`
10483
10484 RegistrationStatus *string `json:"registrationStatus,omitempty"`
10485
10486 BackupEngineState *string `json:"backupEngineState,omitempty"`
10487
10488 HealthStatus *string `json:"healthStatus,omitempty"`
10489
10490 CanReRegister *bool `json:"canReRegister,omitempty"`
10491
10492 BackupEngineID *string `json:"backupEngineId,omitempty"`
10493
10494 DpmVersion *string `json:"dpmVersion,omitempty"`
10495
10496 AzureBackupAgentVersion *string `json:"azureBackupAgentVersion,omitempty"`
10497
10498 IsAzureBackupAgentUpgradeAvailable *bool `json:"isAzureBackupAgentUpgradeAvailable,omitempty"`
10499
10500 IsDpmUpgradeAvailable *bool `json:"isDpmUpgradeAvailable,omitempty"`
10501
10502 ExtendedInfo *EngineExtendedInfo `json:"extendedInfo,omitempty"`
10503
10504 BackupEngineType EngineType `json:"backupEngineType,omitempty"`
10505 }
10506
10507 func unmarshalBasicEngineBase(body []byte) (BasicEngineBase, error) {
10508 var m map[string]interface{}
10509 err := json.Unmarshal(body, &m)
10510 if err != nil {
10511 return nil, err
10512 }
10513
10514 switch m["backupEngineType"] {
10515 case string(BackupEngineTypeAzureBackupServerEngine):
10516 var abse AzureBackupServerEngine
10517 err := json.Unmarshal(body, &abse)
10518 return abse, err
10519 case string(BackupEngineTypeDpmBackupEngine):
10520 var dbe DpmBackupEngine
10521 err := json.Unmarshal(body, &dbe)
10522 return dbe, err
10523 default:
10524 var eb EngineBase
10525 err := json.Unmarshal(body, &eb)
10526 return eb, err
10527 }
10528 }
10529 func unmarshalBasicEngineBaseArray(body []byte) ([]BasicEngineBase, error) {
10530 var rawMessages []*json.RawMessage
10531 err := json.Unmarshal(body, &rawMessages)
10532 if err != nil {
10533 return nil, err
10534 }
10535
10536 ebArray := make([]BasicEngineBase, len(rawMessages))
10537
10538 for index, rawMessage := range rawMessages {
10539 eb, err := unmarshalBasicEngineBase(*rawMessage)
10540 if err != nil {
10541 return nil, err
10542 }
10543 ebArray[index] = eb
10544 }
10545 return ebArray, nil
10546 }
10547
10548
10549 func (eb EngineBase) MarshalJSON() ([]byte, error) {
10550 eb.BackupEngineType = BackupEngineTypeBackupEngineBase
10551 objectMap := make(map[string]interface{})
10552 if eb.FriendlyName != nil {
10553 objectMap["friendlyName"] = eb.FriendlyName
10554 }
10555 if eb.BackupManagementType != "" {
10556 objectMap["backupManagementType"] = eb.BackupManagementType
10557 }
10558 if eb.RegistrationStatus != nil {
10559 objectMap["registrationStatus"] = eb.RegistrationStatus
10560 }
10561 if eb.BackupEngineState != nil {
10562 objectMap["backupEngineState"] = eb.BackupEngineState
10563 }
10564 if eb.HealthStatus != nil {
10565 objectMap["healthStatus"] = eb.HealthStatus
10566 }
10567 if eb.CanReRegister != nil {
10568 objectMap["canReRegister"] = eb.CanReRegister
10569 }
10570 if eb.BackupEngineID != nil {
10571 objectMap["backupEngineId"] = eb.BackupEngineID
10572 }
10573 if eb.DpmVersion != nil {
10574 objectMap["dpmVersion"] = eb.DpmVersion
10575 }
10576 if eb.AzureBackupAgentVersion != nil {
10577 objectMap["azureBackupAgentVersion"] = eb.AzureBackupAgentVersion
10578 }
10579 if eb.IsAzureBackupAgentUpgradeAvailable != nil {
10580 objectMap["isAzureBackupAgentUpgradeAvailable"] = eb.IsAzureBackupAgentUpgradeAvailable
10581 }
10582 if eb.IsDpmUpgradeAvailable != nil {
10583 objectMap["isDpmUpgradeAvailable"] = eb.IsDpmUpgradeAvailable
10584 }
10585 if eb.ExtendedInfo != nil {
10586 objectMap["extendedInfo"] = eb.ExtendedInfo
10587 }
10588 if eb.BackupEngineType != "" {
10589 objectMap["backupEngineType"] = eb.BackupEngineType
10590 }
10591 return json.Marshal(objectMap)
10592 }
10593
10594
10595 func (eb EngineBase) AsAzureBackupServerEngine() (*AzureBackupServerEngine, bool) {
10596 return nil, false
10597 }
10598
10599
10600 func (eb EngineBase) AsDpmBackupEngine() (*DpmBackupEngine, bool) {
10601 return nil, false
10602 }
10603
10604
10605 func (eb EngineBase) AsEngineBase() (*EngineBase, bool) {
10606 return &eb, true
10607 }
10608
10609
10610 func (eb EngineBase) AsBasicEngineBase() (BasicEngineBase, bool) {
10611 return &eb, true
10612 }
10613
10614
10615
10616 type EngineBaseResource struct {
10617 autorest.Response `json:"-"`
10618
10619 Properties BasicEngineBase `json:"properties,omitempty"`
10620
10621 ID *string `json:"id,omitempty"`
10622
10623 Name *string `json:"name,omitempty"`
10624
10625 Type *string `json:"type,omitempty"`
10626
10627 Location *string `json:"location,omitempty"`
10628
10629 Tags map[string]*string `json:"tags"`
10630
10631 ETag *string `json:"eTag,omitempty"`
10632 }
10633
10634
10635 func (ebr EngineBaseResource) MarshalJSON() ([]byte, error) {
10636 objectMap := make(map[string]interface{})
10637 objectMap["properties"] = ebr.Properties
10638 if ebr.Location != nil {
10639 objectMap["location"] = ebr.Location
10640 }
10641 if ebr.Tags != nil {
10642 objectMap["tags"] = ebr.Tags
10643 }
10644 if ebr.ETag != nil {
10645 objectMap["eTag"] = ebr.ETag
10646 }
10647 return json.Marshal(objectMap)
10648 }
10649
10650
10651 func (ebr *EngineBaseResource) UnmarshalJSON(body []byte) error {
10652 var m map[string]*json.RawMessage
10653 err := json.Unmarshal(body, &m)
10654 if err != nil {
10655 return err
10656 }
10657 for k, v := range m {
10658 switch k {
10659 case "properties":
10660 if v != nil {
10661 properties, err := unmarshalBasicEngineBase(*v)
10662 if err != nil {
10663 return err
10664 }
10665 ebr.Properties = properties
10666 }
10667 case "id":
10668 if v != nil {
10669 var ID string
10670 err = json.Unmarshal(*v, &ID)
10671 if err != nil {
10672 return err
10673 }
10674 ebr.ID = &ID
10675 }
10676 case "name":
10677 if v != nil {
10678 var name string
10679 err = json.Unmarshal(*v, &name)
10680 if err != nil {
10681 return err
10682 }
10683 ebr.Name = &name
10684 }
10685 case "type":
10686 if v != nil {
10687 var typeVar string
10688 err = json.Unmarshal(*v, &typeVar)
10689 if err != nil {
10690 return err
10691 }
10692 ebr.Type = &typeVar
10693 }
10694 case "location":
10695 if v != nil {
10696 var location string
10697 err = json.Unmarshal(*v, &location)
10698 if err != nil {
10699 return err
10700 }
10701 ebr.Location = &location
10702 }
10703 case "tags":
10704 if v != nil {
10705 var tags map[string]*string
10706 err = json.Unmarshal(*v, &tags)
10707 if err != nil {
10708 return err
10709 }
10710 ebr.Tags = tags
10711 }
10712 case "eTag":
10713 if v != nil {
10714 var eTag string
10715 err = json.Unmarshal(*v, &eTag)
10716 if err != nil {
10717 return err
10718 }
10719 ebr.ETag = &eTag
10720 }
10721 }
10722 }
10723
10724 return nil
10725 }
10726
10727
10728 type EngineBaseResourceList struct {
10729 autorest.Response `json:"-"`
10730
10731 Value *[]EngineBaseResource `json:"value,omitempty"`
10732
10733 NextLink *string `json:"nextLink,omitempty"`
10734 }
10735
10736
10737 type EngineBaseResourceListIterator struct {
10738 i int
10739 page EngineBaseResourceListPage
10740 }
10741
10742
10743
10744 func (iter *EngineBaseResourceListIterator) NextWithContext(ctx context.Context) (err error) {
10745 if tracing.IsEnabled() {
10746 ctx = tracing.StartSpan(ctx, fqdn+"/EngineBaseResourceListIterator.NextWithContext")
10747 defer func() {
10748 sc := -1
10749 if iter.Response().Response.Response != nil {
10750 sc = iter.Response().Response.Response.StatusCode
10751 }
10752 tracing.EndSpan(ctx, sc, err)
10753 }()
10754 }
10755 iter.i++
10756 if iter.i < len(iter.page.Values()) {
10757 return nil
10758 }
10759 err = iter.page.NextWithContext(ctx)
10760 if err != nil {
10761 iter.i--
10762 return err
10763 }
10764 iter.i = 0
10765 return nil
10766 }
10767
10768
10769
10770
10771 func (iter *EngineBaseResourceListIterator) Next() error {
10772 return iter.NextWithContext(context.Background())
10773 }
10774
10775
10776 func (iter EngineBaseResourceListIterator) NotDone() bool {
10777 return iter.page.NotDone() && iter.i < len(iter.page.Values())
10778 }
10779
10780
10781 func (iter EngineBaseResourceListIterator) Response() EngineBaseResourceList {
10782 return iter.page.Response()
10783 }
10784
10785
10786
10787 func (iter EngineBaseResourceListIterator) Value() EngineBaseResource {
10788 if !iter.page.NotDone() {
10789 return EngineBaseResource{}
10790 }
10791 return iter.page.Values()[iter.i]
10792 }
10793
10794
10795 func NewEngineBaseResourceListIterator(page EngineBaseResourceListPage) EngineBaseResourceListIterator {
10796 return EngineBaseResourceListIterator{page: page}
10797 }
10798
10799
10800 func (ebrl EngineBaseResourceList) IsEmpty() bool {
10801 return ebrl.Value == nil || len(*ebrl.Value) == 0
10802 }
10803
10804
10805 func (ebrl EngineBaseResourceList) hasNextLink() bool {
10806 return ebrl.NextLink != nil && len(*ebrl.NextLink) != 0
10807 }
10808
10809
10810
10811 func (ebrl EngineBaseResourceList) engineBaseResourceListPreparer(ctx context.Context) (*http.Request, error) {
10812 if !ebrl.hasNextLink() {
10813 return nil, nil
10814 }
10815 return autorest.Prepare((&http.Request{}).WithContext(ctx),
10816 autorest.AsJSON(),
10817 autorest.AsGet(),
10818 autorest.WithBaseURL(to.String(ebrl.NextLink)))
10819 }
10820
10821
10822 type EngineBaseResourceListPage struct {
10823 fn func(context.Context, EngineBaseResourceList) (EngineBaseResourceList, error)
10824 ebrl EngineBaseResourceList
10825 }
10826
10827
10828
10829 func (page *EngineBaseResourceListPage) NextWithContext(ctx context.Context) (err error) {
10830 if tracing.IsEnabled() {
10831 ctx = tracing.StartSpan(ctx, fqdn+"/EngineBaseResourceListPage.NextWithContext")
10832 defer func() {
10833 sc := -1
10834 if page.Response().Response.Response != nil {
10835 sc = page.Response().Response.Response.StatusCode
10836 }
10837 tracing.EndSpan(ctx, sc, err)
10838 }()
10839 }
10840 for {
10841 next, err := page.fn(ctx, page.ebrl)
10842 if err != nil {
10843 return err
10844 }
10845 page.ebrl = next
10846 if !next.hasNextLink() || !next.IsEmpty() {
10847 break
10848 }
10849 }
10850 return nil
10851 }
10852
10853
10854
10855
10856 func (page *EngineBaseResourceListPage) Next() error {
10857 return page.NextWithContext(context.Background())
10858 }
10859
10860
10861 func (page EngineBaseResourceListPage) NotDone() bool {
10862 return !page.ebrl.IsEmpty()
10863 }
10864
10865
10866 func (page EngineBaseResourceListPage) Response() EngineBaseResourceList {
10867 return page.ebrl
10868 }
10869
10870
10871 func (page EngineBaseResourceListPage) Values() []EngineBaseResource {
10872 if page.ebrl.IsEmpty() {
10873 return nil
10874 }
10875 return *page.ebrl.Value
10876 }
10877
10878
10879 func NewEngineBaseResourceListPage(cur EngineBaseResourceList, getNextPage func(context.Context, EngineBaseResourceList) (EngineBaseResourceList, error)) EngineBaseResourceListPage {
10880 return EngineBaseResourceListPage{
10881 fn: getNextPage,
10882 ebrl: cur,
10883 }
10884 }
10885
10886
10887 type EngineExtendedInfo struct {
10888
10889 DatabaseName *string `json:"databaseName,omitempty"`
10890
10891 ProtectedItemsCount *int32 `json:"protectedItemsCount,omitempty"`
10892
10893 ProtectedServersCount *int32 `json:"protectedServersCount,omitempty"`
10894
10895 DiskCount *int32 `json:"diskCount,omitempty"`
10896
10897 UsedDiskSpace *float64 `json:"usedDiskSpace,omitempty"`
10898
10899 AvailableDiskSpace *float64 `json:"availableDiskSpace,omitempty"`
10900
10901 RefreshedAt *date.Time `json:"refreshedAt,omitempty"`
10902
10903 AzureProtectedInstances *int32 `json:"azureProtectedInstances,omitempty"`
10904 }
10905
10906
10907 type ErrorAdditionalInfo struct {
10908
10909 Type *string `json:"type,omitempty"`
10910
10911 Info interface{} `json:"info,omitempty"`
10912 }
10913
10914
10915 func (eai ErrorAdditionalInfo) MarshalJSON() ([]byte, error) {
10916 objectMap := make(map[string]interface{})
10917 return json.Marshal(objectMap)
10918 }
10919
10920
10921 type ErrorDetail struct {
10922
10923 Code *string `json:"code,omitempty"`
10924
10925 Message *string `json:"message,omitempty"`
10926
10927 Recommendations *[]string `json:"recommendations,omitempty"`
10928 }
10929
10930
10931 func (ed ErrorDetail) MarshalJSON() ([]byte, error) {
10932 objectMap := make(map[string]interface{})
10933 return json.Marshal(objectMap)
10934 }
10935
10936
10937
10938 type ErrorResponse struct {
10939
10940 Code *string `json:"code,omitempty"`
10941
10942 Message *string `json:"message,omitempty"`
10943
10944 Target *string `json:"target,omitempty"`
10945
10946 Details *[]ErrorResponse `json:"details,omitempty"`
10947
10948 AdditionalInfo *[]ErrorAdditionalInfo `json:"additionalInfo,omitempty"`
10949 }
10950
10951
10952 func (er ErrorResponse) MarshalJSON() ([]byte, error) {
10953 objectMap := make(map[string]interface{})
10954 return json.Marshal(objectMap)
10955 }
10956
10957
10958 type ExportJobsOperationResultInfo struct {
10959
10960 BlobURL *string `json:"blobUrl,omitempty"`
10961
10962 BlobSasKey *string `json:"blobSasKey,omitempty"`
10963
10964 ExcelFileBlobURL *string `json:"excelFileBlobUrl,omitempty"`
10965
10966 ExcelFileBlobSasKey *string `json:"excelFileBlobSasKey,omitempty"`
10967
10968 ObjectType ObjectTypeBasicOperationResultInfoBase `json:"objectType,omitempty"`
10969 }
10970
10971
10972 func (ejori ExportJobsOperationResultInfo) MarshalJSON() ([]byte, error) {
10973 ejori.ObjectType = ObjectTypeExportJobsOperationResultInfo
10974 objectMap := make(map[string]interface{})
10975 if ejori.BlobURL != nil {
10976 objectMap["blobUrl"] = ejori.BlobURL
10977 }
10978 if ejori.BlobSasKey != nil {
10979 objectMap["blobSasKey"] = ejori.BlobSasKey
10980 }
10981 if ejori.ExcelFileBlobURL != nil {
10982 objectMap["excelFileBlobUrl"] = ejori.ExcelFileBlobURL
10983 }
10984 if ejori.ExcelFileBlobSasKey != nil {
10985 objectMap["excelFileBlobSasKey"] = ejori.ExcelFileBlobSasKey
10986 }
10987 if ejori.ObjectType != "" {
10988 objectMap["objectType"] = ejori.ObjectType
10989 }
10990 return json.Marshal(objectMap)
10991 }
10992
10993
10994 func (ejori ExportJobsOperationResultInfo) AsExportJobsOperationResultInfo() (*ExportJobsOperationResultInfo, bool) {
10995 return &ejori, true
10996 }
10997
10998
10999 func (ejori ExportJobsOperationResultInfo) AsOperationResultInfo() (*OperationResultInfo, bool) {
11000 return nil, false
11001 }
11002
11003
11004 func (ejori ExportJobsOperationResultInfo) AsOperationResultInfoBase() (*OperationResultInfoBase, bool) {
11005 return nil, false
11006 }
11007
11008
11009 func (ejori ExportJobsOperationResultInfo) AsBasicOperationResultInfoBase() (BasicOperationResultInfoBase, bool) {
11010 return &ejori, true
11011 }
11012
11013
11014 type ExtendedProperties struct {
11015
11016 DiskExclusionProperties *DiskExclusionProperties `json:"diskExclusionProperties,omitempty"`
11017 }
11018
11019
11020 type BasicFeatureSupportRequest interface {
11021 AsAzureBackupGoalFeatureSupportRequest() (*AzureBackupGoalFeatureSupportRequest, bool)
11022 AsAzureVMResourceFeatureSupportRequest() (*AzureVMResourceFeatureSupportRequest, bool)
11023 AsFeatureSupportRequest() (*FeatureSupportRequest, bool)
11024 }
11025
11026
11027 type FeatureSupportRequest struct {
11028
11029 FeatureType FeatureType `json:"featureType,omitempty"`
11030 }
11031
11032 func unmarshalBasicFeatureSupportRequest(body []byte) (BasicFeatureSupportRequest, error) {
11033 var m map[string]interface{}
11034 err := json.Unmarshal(body, &m)
11035 if err != nil {
11036 return nil, err
11037 }
11038
11039 switch m["featureType"] {
11040 case string(FeatureTypeAzureBackupGoals):
11041 var abgfsr AzureBackupGoalFeatureSupportRequest
11042 err := json.Unmarshal(body, &abgfsr)
11043 return abgfsr, err
11044 case string(FeatureTypeAzureVMResourceBackup):
11045 var avrfsr AzureVMResourceFeatureSupportRequest
11046 err := json.Unmarshal(body, &avrfsr)
11047 return avrfsr, err
11048 default:
11049 var fsr FeatureSupportRequest
11050 err := json.Unmarshal(body, &fsr)
11051 return fsr, err
11052 }
11053 }
11054 func unmarshalBasicFeatureSupportRequestArray(body []byte) ([]BasicFeatureSupportRequest, error) {
11055 var rawMessages []*json.RawMessage
11056 err := json.Unmarshal(body, &rawMessages)
11057 if err != nil {
11058 return nil, err
11059 }
11060
11061 fsrArray := make([]BasicFeatureSupportRequest, len(rawMessages))
11062
11063 for index, rawMessage := range rawMessages {
11064 fsr, err := unmarshalBasicFeatureSupportRequest(*rawMessage)
11065 if err != nil {
11066 return nil, err
11067 }
11068 fsrArray[index] = fsr
11069 }
11070 return fsrArray, nil
11071 }
11072
11073
11074 func (fsr FeatureSupportRequest) MarshalJSON() ([]byte, error) {
11075 fsr.FeatureType = FeatureTypeFeatureSupportRequest
11076 objectMap := make(map[string]interface{})
11077 if fsr.FeatureType != "" {
11078 objectMap["featureType"] = fsr.FeatureType
11079 }
11080 return json.Marshal(objectMap)
11081 }
11082
11083
11084 func (fsr FeatureSupportRequest) AsAzureBackupGoalFeatureSupportRequest() (*AzureBackupGoalFeatureSupportRequest, bool) {
11085 return nil, false
11086 }
11087
11088
11089 func (fsr FeatureSupportRequest) AsAzureVMResourceFeatureSupportRequest() (*AzureVMResourceFeatureSupportRequest, bool) {
11090 return nil, false
11091 }
11092
11093
11094 func (fsr FeatureSupportRequest) AsFeatureSupportRequest() (*FeatureSupportRequest, bool) {
11095 return &fsr, true
11096 }
11097
11098
11099 func (fsr FeatureSupportRequest) AsBasicFeatureSupportRequest() (BasicFeatureSupportRequest, bool) {
11100 return &fsr, true
11101 }
11102
11103
11104 type GenericContainer struct {
11105
11106 FabricName *string `json:"fabricName,omitempty"`
11107
11108 ExtendedInformation *GenericContainerExtendedInfo `json:"extendedInformation,omitempty"`
11109
11110 FriendlyName *string `json:"friendlyName,omitempty"`
11111
11112 BackupManagementType ManagementType `json:"backupManagementType,omitempty"`
11113
11114 RegistrationStatus *string `json:"registrationStatus,omitempty"`
11115
11116 HealthStatus *string `json:"healthStatus,omitempty"`
11117
11118 ContainerType ContainerTypeBasicProtectionContainer `json:"containerType,omitempty"`
11119 }
11120
11121
11122 func (gc GenericContainer) MarshalJSON() ([]byte, error) {
11123 gc.ContainerType = ContainerTypeGenericContainer1
11124 objectMap := make(map[string]interface{})
11125 if gc.FabricName != nil {
11126 objectMap["fabricName"] = gc.FabricName
11127 }
11128 if gc.ExtendedInformation != nil {
11129 objectMap["extendedInformation"] = gc.ExtendedInformation
11130 }
11131 if gc.FriendlyName != nil {
11132 objectMap["friendlyName"] = gc.FriendlyName
11133 }
11134 if gc.BackupManagementType != "" {
11135 objectMap["backupManagementType"] = gc.BackupManagementType
11136 }
11137 if gc.RegistrationStatus != nil {
11138 objectMap["registrationStatus"] = gc.RegistrationStatus
11139 }
11140 if gc.HealthStatus != nil {
11141 objectMap["healthStatus"] = gc.HealthStatus
11142 }
11143 if gc.ContainerType != "" {
11144 objectMap["containerType"] = gc.ContainerType
11145 }
11146 return json.Marshal(objectMap)
11147 }
11148
11149
11150 func (gc GenericContainer) AsAzureBackupServerContainer() (*AzureBackupServerContainer, bool) {
11151 return nil, false
11152 }
11153
11154
11155 func (gc GenericContainer) AsAzureIaaSClassicComputeVMContainer() (*AzureIaaSClassicComputeVMContainer, bool) {
11156 return nil, false
11157 }
11158
11159
11160 func (gc GenericContainer) AsAzureIaaSComputeVMContainer() (*AzureIaaSComputeVMContainer, bool) {
11161 return nil, false
11162 }
11163
11164
11165 func (gc GenericContainer) AsAzureSQLAGWorkloadContainerProtectionContainer() (*AzureSQLAGWorkloadContainerProtectionContainer, bool) {
11166 return nil, false
11167 }
11168
11169
11170 func (gc GenericContainer) AsAzureSQLContainer() (*AzureSQLContainer, bool) {
11171 return nil, false
11172 }
11173
11174
11175 func (gc GenericContainer) AsAzureStorageContainer() (*AzureStorageContainer, bool) {
11176 return nil, false
11177 }
11178
11179
11180 func (gc GenericContainer) AsAzureVMAppContainerProtectionContainer() (*AzureVMAppContainerProtectionContainer, bool) {
11181 return nil, false
11182 }
11183
11184
11185 func (gc GenericContainer) AsAzureWorkloadContainer() (*AzureWorkloadContainer, bool) {
11186 return nil, false
11187 }
11188
11189
11190 func (gc GenericContainer) AsBasicAzureWorkloadContainer() (BasicAzureWorkloadContainer, bool) {
11191 return nil, false
11192 }
11193
11194
11195 func (gc GenericContainer) AsDpmContainer() (*DpmContainer, bool) {
11196 return nil, false
11197 }
11198
11199
11200 func (gc GenericContainer) AsBasicDpmContainer() (BasicDpmContainer, bool) {
11201 return nil, false
11202 }
11203
11204
11205 func (gc GenericContainer) AsGenericContainer() (*GenericContainer, bool) {
11206 return &gc, true
11207 }
11208
11209
11210 func (gc GenericContainer) AsIaaSVMContainer() (*IaaSVMContainer, bool) {
11211 return nil, false
11212 }
11213
11214
11215 func (gc GenericContainer) AsBasicIaaSVMContainer() (BasicIaaSVMContainer, bool) {
11216 return nil, false
11217 }
11218
11219
11220 func (gc GenericContainer) AsMabContainer() (*MabContainer, bool) {
11221 return nil, false
11222 }
11223
11224
11225 func (gc GenericContainer) AsProtectionContainer() (*ProtectionContainer, bool) {
11226 return nil, false
11227 }
11228
11229
11230 func (gc GenericContainer) AsBasicProtectionContainer() (BasicProtectionContainer, bool) {
11231 return &gc, true
11232 }
11233
11234
11235 type GenericContainerExtendedInfo struct {
11236
11237 RawCertData *string `json:"rawCertData,omitempty"`
11238
11239 ContainerIdentityInfo *ContainerIdentityInfo `json:"containerIdentityInfo,omitempty"`
11240
11241 ServiceEndpoints map[string]*string `json:"serviceEndpoints"`
11242 }
11243
11244
11245 func (gcei GenericContainerExtendedInfo) MarshalJSON() ([]byte, error) {
11246 objectMap := make(map[string]interface{})
11247 if gcei.RawCertData != nil {
11248 objectMap["rawCertData"] = gcei.RawCertData
11249 }
11250 if gcei.ContainerIdentityInfo != nil {
11251 objectMap["containerIdentityInfo"] = gcei.ContainerIdentityInfo
11252 }
11253 if gcei.ServiceEndpoints != nil {
11254 objectMap["serviceEndpoints"] = gcei.ServiceEndpoints
11255 }
11256 return json.Marshal(objectMap)
11257 }
11258
11259
11260 type GenericProtectedItem struct {
11261
11262 FriendlyName *string `json:"friendlyName,omitempty"`
11263
11264 PolicyState *string `json:"policyState,omitempty"`
11265
11266 ProtectionState ProtectionState `json:"protectionState,omitempty"`
11267
11268 ProtectedItemID *int64 `json:"protectedItemId,omitempty"`
11269
11270 SourceAssociations map[string]*string `json:"sourceAssociations"`
11271
11272 FabricName *string `json:"fabricName,omitempty"`
11273
11274 BackupManagementType ManagementType `json:"backupManagementType,omitempty"`
11275
11276 WorkloadType DataSourceType `json:"workloadType,omitempty"`
11277
11278 ContainerName *string `json:"containerName,omitempty"`
11279
11280 SourceResourceID *string `json:"sourceResourceId,omitempty"`
11281
11282 PolicyID *string `json:"policyId,omitempty"`
11283
11284 LastRecoveryPoint *date.Time `json:"lastRecoveryPoint,omitempty"`
11285
11286 BackupSetName *string `json:"backupSetName,omitempty"`
11287
11288 CreateMode CreateMode `json:"createMode,omitempty"`
11289
11290 DeferredDeleteTimeInUTC *date.Time `json:"deferredDeleteTimeInUTC,omitempty"`
11291
11292 IsScheduledForDeferredDelete *bool `json:"isScheduledForDeferredDelete,omitempty"`
11293
11294 DeferredDeleteTimeRemaining *string `json:"deferredDeleteTimeRemaining,omitempty"`
11295
11296 IsDeferredDeleteScheduleUpcoming *bool `json:"isDeferredDeleteScheduleUpcoming,omitempty"`
11297
11298 IsRehydrate *bool `json:"isRehydrate,omitempty"`
11299
11300 ProtectedItemType ProtectedItemType `json:"protectedItemType,omitempty"`
11301 }
11302
11303
11304 func (gpi GenericProtectedItem) MarshalJSON() ([]byte, error) {
11305 gpi.ProtectedItemType = ProtectedItemTypeGenericProtectedItem
11306 objectMap := make(map[string]interface{})
11307 if gpi.FriendlyName != nil {
11308 objectMap["friendlyName"] = gpi.FriendlyName
11309 }
11310 if gpi.PolicyState != nil {
11311 objectMap["policyState"] = gpi.PolicyState
11312 }
11313 if gpi.ProtectionState != "" {
11314 objectMap["protectionState"] = gpi.ProtectionState
11315 }
11316 if gpi.ProtectedItemID != nil {
11317 objectMap["protectedItemId"] = gpi.ProtectedItemID
11318 }
11319 if gpi.SourceAssociations != nil {
11320 objectMap["sourceAssociations"] = gpi.SourceAssociations
11321 }
11322 if gpi.FabricName != nil {
11323 objectMap["fabricName"] = gpi.FabricName
11324 }
11325 if gpi.BackupManagementType != "" {
11326 objectMap["backupManagementType"] = gpi.BackupManagementType
11327 }
11328 if gpi.WorkloadType != "" {
11329 objectMap["workloadType"] = gpi.WorkloadType
11330 }
11331 if gpi.ContainerName != nil {
11332 objectMap["containerName"] = gpi.ContainerName
11333 }
11334 if gpi.SourceResourceID != nil {
11335 objectMap["sourceResourceId"] = gpi.SourceResourceID
11336 }
11337 if gpi.PolicyID != nil {
11338 objectMap["policyId"] = gpi.PolicyID
11339 }
11340 if gpi.LastRecoveryPoint != nil {
11341 objectMap["lastRecoveryPoint"] = gpi.LastRecoveryPoint
11342 }
11343 if gpi.BackupSetName != nil {
11344 objectMap["backupSetName"] = gpi.BackupSetName
11345 }
11346 if gpi.CreateMode != "" {
11347 objectMap["createMode"] = gpi.CreateMode
11348 }
11349 if gpi.DeferredDeleteTimeInUTC != nil {
11350 objectMap["deferredDeleteTimeInUTC"] = gpi.DeferredDeleteTimeInUTC
11351 }
11352 if gpi.IsScheduledForDeferredDelete != nil {
11353 objectMap["isScheduledForDeferredDelete"] = gpi.IsScheduledForDeferredDelete
11354 }
11355 if gpi.DeferredDeleteTimeRemaining != nil {
11356 objectMap["deferredDeleteTimeRemaining"] = gpi.DeferredDeleteTimeRemaining
11357 }
11358 if gpi.IsDeferredDeleteScheduleUpcoming != nil {
11359 objectMap["isDeferredDeleteScheduleUpcoming"] = gpi.IsDeferredDeleteScheduleUpcoming
11360 }
11361 if gpi.IsRehydrate != nil {
11362 objectMap["isRehydrate"] = gpi.IsRehydrate
11363 }
11364 if gpi.ProtectedItemType != "" {
11365 objectMap["protectedItemType"] = gpi.ProtectedItemType
11366 }
11367 return json.Marshal(objectMap)
11368 }
11369
11370
11371 func (gpi GenericProtectedItem) AsAzureFileshareProtectedItem() (*AzureFileshareProtectedItem, bool) {
11372 return nil, false
11373 }
11374
11375
11376 func (gpi GenericProtectedItem) AsAzureIaaSClassicComputeVMProtectedItem() (*AzureIaaSClassicComputeVMProtectedItem, bool) {
11377 return nil, false
11378 }
11379
11380
11381 func (gpi GenericProtectedItem) AsAzureIaaSComputeVMProtectedItem() (*AzureIaaSComputeVMProtectedItem, bool) {
11382 return nil, false
11383 }
11384
11385
11386 func (gpi GenericProtectedItem) AsAzureIaaSVMProtectedItem() (*AzureIaaSVMProtectedItem, bool) {
11387 return nil, false
11388 }
11389
11390
11391 func (gpi GenericProtectedItem) AsBasicAzureIaaSVMProtectedItem() (BasicAzureIaaSVMProtectedItem, bool) {
11392 return nil, false
11393 }
11394
11395
11396 func (gpi GenericProtectedItem) AsAzureSQLProtectedItem() (*AzureSQLProtectedItem, bool) {
11397 return nil, false
11398 }
11399
11400
11401 func (gpi GenericProtectedItem) AsAzureVMWorkloadProtectedItem() (*AzureVMWorkloadProtectedItem, bool) {
11402 return nil, false
11403 }
11404
11405
11406 func (gpi GenericProtectedItem) AsBasicAzureVMWorkloadProtectedItem() (BasicAzureVMWorkloadProtectedItem, bool) {
11407 return nil, false
11408 }
11409
11410
11411 func (gpi GenericProtectedItem) AsAzureVMWorkloadSAPAseDatabaseProtectedItem() (*AzureVMWorkloadSAPAseDatabaseProtectedItem, bool) {
11412 return nil, false
11413 }
11414
11415
11416 func (gpi GenericProtectedItem) AsAzureVMWorkloadSAPHanaDatabaseProtectedItem() (*AzureVMWorkloadSAPHanaDatabaseProtectedItem, bool) {
11417 return nil, false
11418 }
11419
11420
11421 func (gpi GenericProtectedItem) AsAzureVMWorkloadSQLDatabaseProtectedItem() (*AzureVMWorkloadSQLDatabaseProtectedItem, bool) {
11422 return nil, false
11423 }
11424
11425
11426 func (gpi GenericProtectedItem) AsDPMProtectedItem() (*DPMProtectedItem, bool) {
11427 return nil, false
11428 }
11429
11430
11431 func (gpi GenericProtectedItem) AsGenericProtectedItem() (*GenericProtectedItem, bool) {
11432 return &gpi, true
11433 }
11434
11435
11436 func (gpi GenericProtectedItem) AsMabFileFolderProtectedItem() (*MabFileFolderProtectedItem, bool) {
11437 return nil, false
11438 }
11439
11440
11441 func (gpi GenericProtectedItem) AsProtectedItem() (*ProtectedItem, bool) {
11442 return nil, false
11443 }
11444
11445
11446 func (gpi GenericProtectedItem) AsBasicProtectedItem() (BasicProtectedItem, bool) {
11447 return &gpi, true
11448 }
11449
11450
11451 type GenericProtectionPolicy struct {
11452
11453 SubProtectionPolicy *[]SubProtectionPolicy `json:"subProtectionPolicy,omitempty"`
11454
11455 TimeZone *string `json:"timeZone,omitempty"`
11456
11457 FabricName *string `json:"fabricName,omitempty"`
11458
11459 ProtectedItemsCount *int32 `json:"protectedItemsCount,omitempty"`
11460
11461 BackupManagementType ManagementTypeBasicProtectionPolicy `json:"backupManagementType,omitempty"`
11462 }
11463
11464
11465 func (gpp GenericProtectionPolicy) MarshalJSON() ([]byte, error) {
11466 gpp.BackupManagementType = BackupManagementTypeGenericProtectionPolicy
11467 objectMap := make(map[string]interface{})
11468 if gpp.SubProtectionPolicy != nil {
11469 objectMap["subProtectionPolicy"] = gpp.SubProtectionPolicy
11470 }
11471 if gpp.TimeZone != nil {
11472 objectMap["timeZone"] = gpp.TimeZone
11473 }
11474 if gpp.FabricName != nil {
11475 objectMap["fabricName"] = gpp.FabricName
11476 }
11477 if gpp.ProtectedItemsCount != nil {
11478 objectMap["protectedItemsCount"] = gpp.ProtectedItemsCount
11479 }
11480 if gpp.BackupManagementType != "" {
11481 objectMap["backupManagementType"] = gpp.BackupManagementType
11482 }
11483 return json.Marshal(objectMap)
11484 }
11485
11486
11487 func (gpp GenericProtectionPolicy) AsAzureVMWorkloadProtectionPolicy() (*AzureVMWorkloadProtectionPolicy, bool) {
11488 return nil, false
11489 }
11490
11491
11492 func (gpp GenericProtectionPolicy) AsAzureFileShareProtectionPolicy() (*AzureFileShareProtectionPolicy, bool) {
11493 return nil, false
11494 }
11495
11496
11497 func (gpp GenericProtectionPolicy) AsAzureIaaSVMProtectionPolicy() (*AzureIaaSVMProtectionPolicy, bool) {
11498 return nil, false
11499 }
11500
11501
11502 func (gpp GenericProtectionPolicy) AsAzureSQLProtectionPolicy() (*AzureSQLProtectionPolicy, bool) {
11503 return nil, false
11504 }
11505
11506
11507 func (gpp GenericProtectionPolicy) AsGenericProtectionPolicy() (*GenericProtectionPolicy, bool) {
11508 return &gpp, true
11509 }
11510
11511
11512 func (gpp GenericProtectionPolicy) AsMabProtectionPolicy() (*MabProtectionPolicy, bool) {
11513 return nil, false
11514 }
11515
11516
11517 func (gpp GenericProtectionPolicy) AsProtectionPolicy() (*ProtectionPolicy, bool) {
11518 return nil, false
11519 }
11520
11521
11522 func (gpp GenericProtectionPolicy) AsBasicProtectionPolicy() (BasicProtectionPolicy, bool) {
11523 return &gpp, true
11524 }
11525
11526
11527 type GenericRecoveryPoint struct {
11528
11529 FriendlyName *string `json:"friendlyName,omitempty"`
11530
11531 RecoveryPointType *string `json:"recoveryPointType,omitempty"`
11532
11533 RecoveryPointTime *date.Time `json:"recoveryPointTime,omitempty"`
11534
11535 RecoveryPointAdditionalInfo *string `json:"recoveryPointAdditionalInfo,omitempty"`
11536
11537 ObjectType ObjectTypeBasicRecoveryPoint `json:"objectType,omitempty"`
11538 }
11539
11540
11541 func (grp GenericRecoveryPoint) MarshalJSON() ([]byte, error) {
11542 grp.ObjectType = ObjectTypeGenericRecoveryPoint
11543 objectMap := make(map[string]interface{})
11544 if grp.FriendlyName != nil {
11545 objectMap["friendlyName"] = grp.FriendlyName
11546 }
11547 if grp.RecoveryPointType != nil {
11548 objectMap["recoveryPointType"] = grp.RecoveryPointType
11549 }
11550 if grp.RecoveryPointTime != nil {
11551 objectMap["recoveryPointTime"] = grp.RecoveryPointTime
11552 }
11553 if grp.RecoveryPointAdditionalInfo != nil {
11554 objectMap["recoveryPointAdditionalInfo"] = grp.RecoveryPointAdditionalInfo
11555 }
11556 if grp.ObjectType != "" {
11557 objectMap["objectType"] = grp.ObjectType
11558 }
11559 return json.Marshal(objectMap)
11560 }
11561
11562
11563 func (grp GenericRecoveryPoint) AsAzureFileShareRecoveryPoint() (*AzureFileShareRecoveryPoint, bool) {
11564 return nil, false
11565 }
11566
11567
11568 func (grp GenericRecoveryPoint) AsAzureWorkloadPointInTimeRecoveryPoint() (*AzureWorkloadPointInTimeRecoveryPoint, bool) {
11569 return nil, false
11570 }
11571
11572
11573 func (grp GenericRecoveryPoint) AsBasicAzureWorkloadPointInTimeRecoveryPoint() (BasicAzureWorkloadPointInTimeRecoveryPoint, bool) {
11574 return nil, false
11575 }
11576
11577
11578 func (grp GenericRecoveryPoint) AsAzureWorkloadRecoveryPoint() (*AzureWorkloadRecoveryPoint, bool) {
11579 return nil, false
11580 }
11581
11582
11583 func (grp GenericRecoveryPoint) AsBasicAzureWorkloadRecoveryPoint() (BasicAzureWorkloadRecoveryPoint, bool) {
11584 return nil, false
11585 }
11586
11587
11588 func (grp GenericRecoveryPoint) AsAzureWorkloadSAPHanaPointInTimeRecoveryPoint() (*AzureWorkloadSAPHanaPointInTimeRecoveryPoint, bool) {
11589 return nil, false
11590 }
11591
11592
11593 func (grp GenericRecoveryPoint) AsAzureWorkloadSAPHanaRecoveryPoint() (*AzureWorkloadSAPHanaRecoveryPoint, bool) {
11594 return nil, false
11595 }
11596
11597
11598 func (grp GenericRecoveryPoint) AsAzureWorkloadSQLPointInTimeRecoveryPoint() (*AzureWorkloadSQLPointInTimeRecoveryPoint, bool) {
11599 return nil, false
11600 }
11601
11602
11603 func (grp GenericRecoveryPoint) AsAzureWorkloadSQLRecoveryPoint() (*AzureWorkloadSQLRecoveryPoint, bool) {
11604 return nil, false
11605 }
11606
11607
11608 func (grp GenericRecoveryPoint) AsBasicAzureWorkloadSQLRecoveryPoint() (BasicAzureWorkloadSQLRecoveryPoint, bool) {
11609 return nil, false
11610 }
11611
11612
11613 func (grp GenericRecoveryPoint) AsGenericRecoveryPoint() (*GenericRecoveryPoint, bool) {
11614 return &grp, true
11615 }
11616
11617
11618 func (grp GenericRecoveryPoint) AsIaasVMRecoveryPoint() (*IaasVMRecoveryPoint, bool) {
11619 return nil, false
11620 }
11621
11622
11623 func (grp GenericRecoveryPoint) AsRecoveryPoint() (*RecoveryPoint, bool) {
11624 return nil, false
11625 }
11626
11627
11628 func (grp GenericRecoveryPoint) AsBasicRecoveryPoint() (BasicRecoveryPoint, bool) {
11629 return &grp, true
11630 }
11631
11632
11633 type GetProtectedItemQueryObject struct {
11634
11635 Expand *string `json:"expand,omitempty"`
11636 }
11637
11638
11639 type IaasVMBackupRequest struct {
11640
11641 RecoveryPointExpiryTimeInUTC *date.Time `json:"recoveryPointExpiryTimeInUTC,omitempty"`
11642
11643 ObjectType ObjectTypeBasicRequest `json:"objectType,omitempty"`
11644 }
11645
11646
11647 func (ivbr IaasVMBackupRequest) MarshalJSON() ([]byte, error) {
11648 ivbr.ObjectType = ObjectTypeIaasVMBackupRequest
11649 objectMap := make(map[string]interface{})
11650 if ivbr.RecoveryPointExpiryTimeInUTC != nil {
11651 objectMap["recoveryPointExpiryTimeInUTC"] = ivbr.RecoveryPointExpiryTimeInUTC
11652 }
11653 if ivbr.ObjectType != "" {
11654 objectMap["objectType"] = ivbr.ObjectType
11655 }
11656 return json.Marshal(objectMap)
11657 }
11658
11659
11660 func (ivbr IaasVMBackupRequest) AsAzureFileShareBackupRequest() (*AzureFileShareBackupRequest, bool) {
11661 return nil, false
11662 }
11663
11664
11665 func (ivbr IaasVMBackupRequest) AsAzureWorkloadBackupRequest() (*AzureWorkloadBackupRequest, bool) {
11666 return nil, false
11667 }
11668
11669
11670 func (ivbr IaasVMBackupRequest) AsIaasVMBackupRequest() (*IaasVMBackupRequest, bool) {
11671 return &ivbr, true
11672 }
11673
11674
11675 func (ivbr IaasVMBackupRequest) AsRequest() (*Request, bool) {
11676 return nil, false
11677 }
11678
11679
11680 func (ivbr IaasVMBackupRequest) AsBasicRequest() (BasicRequest, bool) {
11681 return &ivbr, true
11682 }
11683
11684
11685 type BasicIaaSVMContainer interface {
11686 AsAzureIaaSClassicComputeVMContainer() (*AzureIaaSClassicComputeVMContainer, bool)
11687 AsAzureIaaSComputeVMContainer() (*AzureIaaSComputeVMContainer, bool)
11688 AsIaaSVMContainer() (*IaaSVMContainer, bool)
11689 }
11690
11691
11692 type IaaSVMContainer struct {
11693
11694 VirtualMachineID *string `json:"virtualMachineId,omitempty"`
11695
11696 VirtualMachineVersion *string `json:"virtualMachineVersion,omitempty"`
11697
11698 ResourceGroup *string `json:"resourceGroup,omitempty"`
11699
11700 FriendlyName *string `json:"friendlyName,omitempty"`
11701
11702 BackupManagementType ManagementType `json:"backupManagementType,omitempty"`
11703
11704 RegistrationStatus *string `json:"registrationStatus,omitempty"`
11705
11706 HealthStatus *string `json:"healthStatus,omitempty"`
11707
11708 ContainerType ContainerTypeBasicProtectionContainer `json:"containerType,omitempty"`
11709 }
11710
11711 func unmarshalBasicIaaSVMContainer(body []byte) (BasicIaaSVMContainer, error) {
11712 var m map[string]interface{}
11713 err := json.Unmarshal(body, &m)
11714 if err != nil {
11715 return nil, err
11716 }
11717
11718 switch m["containerType"] {
11719 case string(ContainerTypeMicrosoftClassicComputevirtualMachines):
11720 var aisccvc AzureIaaSClassicComputeVMContainer
11721 err := json.Unmarshal(body, &aisccvc)
11722 return aisccvc, err
11723 case string(ContainerTypeMicrosoftComputevirtualMachines):
11724 var aiscvc AzureIaaSComputeVMContainer
11725 err := json.Unmarshal(body, &aiscvc)
11726 return aiscvc, err
11727 default:
11728 var isc IaaSVMContainer
11729 err := json.Unmarshal(body, &isc)
11730 return isc, err
11731 }
11732 }
11733 func unmarshalBasicIaaSVMContainerArray(body []byte) ([]BasicIaaSVMContainer, error) {
11734 var rawMessages []*json.RawMessage
11735 err := json.Unmarshal(body, &rawMessages)
11736 if err != nil {
11737 return nil, err
11738 }
11739
11740 iscArray := make([]BasicIaaSVMContainer, len(rawMessages))
11741
11742 for index, rawMessage := range rawMessages {
11743 isc, err := unmarshalBasicIaaSVMContainer(*rawMessage)
11744 if err != nil {
11745 return nil, err
11746 }
11747 iscArray[index] = isc
11748 }
11749 return iscArray, nil
11750 }
11751
11752
11753 func (isc IaaSVMContainer) MarshalJSON() ([]byte, error) {
11754 isc.ContainerType = ContainerTypeIaaSVMContainer
11755 objectMap := make(map[string]interface{})
11756 if isc.VirtualMachineID != nil {
11757 objectMap["virtualMachineId"] = isc.VirtualMachineID
11758 }
11759 if isc.VirtualMachineVersion != nil {
11760 objectMap["virtualMachineVersion"] = isc.VirtualMachineVersion
11761 }
11762 if isc.ResourceGroup != nil {
11763 objectMap["resourceGroup"] = isc.ResourceGroup
11764 }
11765 if isc.FriendlyName != nil {
11766 objectMap["friendlyName"] = isc.FriendlyName
11767 }
11768 if isc.BackupManagementType != "" {
11769 objectMap["backupManagementType"] = isc.BackupManagementType
11770 }
11771 if isc.RegistrationStatus != nil {
11772 objectMap["registrationStatus"] = isc.RegistrationStatus
11773 }
11774 if isc.HealthStatus != nil {
11775 objectMap["healthStatus"] = isc.HealthStatus
11776 }
11777 if isc.ContainerType != "" {
11778 objectMap["containerType"] = isc.ContainerType
11779 }
11780 return json.Marshal(objectMap)
11781 }
11782
11783
11784 func (isc IaaSVMContainer) AsAzureBackupServerContainer() (*AzureBackupServerContainer, bool) {
11785 return nil, false
11786 }
11787
11788
11789 func (isc IaaSVMContainer) AsAzureIaaSClassicComputeVMContainer() (*AzureIaaSClassicComputeVMContainer, bool) {
11790 return nil, false
11791 }
11792
11793
11794 func (isc IaaSVMContainer) AsAzureIaaSComputeVMContainer() (*AzureIaaSComputeVMContainer, bool) {
11795 return nil, false
11796 }
11797
11798
11799 func (isc IaaSVMContainer) AsAzureSQLAGWorkloadContainerProtectionContainer() (*AzureSQLAGWorkloadContainerProtectionContainer, bool) {
11800 return nil, false
11801 }
11802
11803
11804 func (isc IaaSVMContainer) AsAzureSQLContainer() (*AzureSQLContainer, bool) {
11805 return nil, false
11806 }
11807
11808
11809 func (isc IaaSVMContainer) AsAzureStorageContainer() (*AzureStorageContainer, bool) {
11810 return nil, false
11811 }
11812
11813
11814 func (isc IaaSVMContainer) AsAzureVMAppContainerProtectionContainer() (*AzureVMAppContainerProtectionContainer, bool) {
11815 return nil, false
11816 }
11817
11818
11819 func (isc IaaSVMContainer) AsAzureWorkloadContainer() (*AzureWorkloadContainer, bool) {
11820 return nil, false
11821 }
11822
11823
11824 func (isc IaaSVMContainer) AsBasicAzureWorkloadContainer() (BasicAzureWorkloadContainer, bool) {
11825 return nil, false
11826 }
11827
11828
11829 func (isc IaaSVMContainer) AsDpmContainer() (*DpmContainer, bool) {
11830 return nil, false
11831 }
11832
11833
11834 func (isc IaaSVMContainer) AsBasicDpmContainer() (BasicDpmContainer, bool) {
11835 return nil, false
11836 }
11837
11838
11839 func (isc IaaSVMContainer) AsGenericContainer() (*GenericContainer, bool) {
11840 return nil, false
11841 }
11842
11843
11844 func (isc IaaSVMContainer) AsIaaSVMContainer() (*IaaSVMContainer, bool) {
11845 return &isc, true
11846 }
11847
11848
11849 func (isc IaaSVMContainer) AsBasicIaaSVMContainer() (BasicIaaSVMContainer, bool) {
11850 return &isc, true
11851 }
11852
11853
11854 func (isc IaaSVMContainer) AsMabContainer() (*MabContainer, bool) {
11855 return nil, false
11856 }
11857
11858
11859 func (isc IaaSVMContainer) AsProtectionContainer() (*ProtectionContainer, bool) {
11860 return nil, false
11861 }
11862
11863
11864 func (isc IaaSVMContainer) AsBasicProtectionContainer() (BasicProtectionContainer, bool) {
11865 return &isc, true
11866 }
11867
11868
11869 type IaasVMILRRegistrationRequest struct {
11870
11871 RecoveryPointID *string `json:"recoveryPointId,omitempty"`
11872
11873 VirtualMachineID *string `json:"virtualMachineId,omitempty"`
11874
11875 InitiatorName *string `json:"initiatorName,omitempty"`
11876
11877 RenewExistingRegistration *bool `json:"renewExistingRegistration,omitempty"`
11878
11879 ObjectType ObjectTypeBasicILRRequest `json:"objectType,omitempty"`
11880 }
11881
11882
11883 func (ivrr IaasVMILRRegistrationRequest) MarshalJSON() ([]byte, error) {
11884 ivrr.ObjectType = ObjectTypeIaasVMILRRegistrationRequest
11885 objectMap := make(map[string]interface{})
11886 if ivrr.RecoveryPointID != nil {
11887 objectMap["recoveryPointId"] = ivrr.RecoveryPointID
11888 }
11889 if ivrr.VirtualMachineID != nil {
11890 objectMap["virtualMachineId"] = ivrr.VirtualMachineID
11891 }
11892 if ivrr.InitiatorName != nil {
11893 objectMap["initiatorName"] = ivrr.InitiatorName
11894 }
11895 if ivrr.RenewExistingRegistration != nil {
11896 objectMap["renewExistingRegistration"] = ivrr.RenewExistingRegistration
11897 }
11898 if ivrr.ObjectType != "" {
11899 objectMap["objectType"] = ivrr.ObjectType
11900 }
11901 return json.Marshal(objectMap)
11902 }
11903
11904
11905 func (ivrr IaasVMILRRegistrationRequest) AsAzureFileShareProvisionILRRequest() (*AzureFileShareProvisionILRRequest, bool) {
11906 return nil, false
11907 }
11908
11909
11910 func (ivrr IaasVMILRRegistrationRequest) AsIaasVMILRRegistrationRequest() (*IaasVMILRRegistrationRequest, bool) {
11911 return &ivrr, true
11912 }
11913
11914
11915 func (ivrr IaasVMILRRegistrationRequest) AsILRRequest() (*ILRRequest, bool) {
11916 return nil, false
11917 }
11918
11919
11920 func (ivrr IaasVMILRRegistrationRequest) AsBasicILRRequest() (BasicILRRequest, bool) {
11921 return &ivrr, true
11922 }
11923
11924
11925 type BasicIaaSVMProtectableItem interface {
11926 AsAzureIaaSClassicComputeVMProtectableItem() (*AzureIaaSClassicComputeVMProtectableItem, bool)
11927 AsAzureIaaSComputeVMProtectableItem() (*AzureIaaSComputeVMProtectableItem, bool)
11928 AsIaaSVMProtectableItem() (*IaaSVMProtectableItem, bool)
11929 }
11930
11931
11932 type IaaSVMProtectableItem struct {
11933
11934 VirtualMachineID *string `json:"virtualMachineId,omitempty"`
11935
11936 BackupManagementType *string `json:"backupManagementType,omitempty"`
11937
11938 WorkloadType *string `json:"workloadType,omitempty"`
11939
11940 FriendlyName *string `json:"friendlyName,omitempty"`
11941
11942 ProtectionState ProtectionStatus `json:"protectionState,omitempty"`
11943
11944 ProtectableItemType ProtectableItemType `json:"protectableItemType,omitempty"`
11945 }
11946
11947 func unmarshalBasicIaaSVMProtectableItem(body []byte) (BasicIaaSVMProtectableItem, error) {
11948 var m map[string]interface{}
11949 err := json.Unmarshal(body, &m)
11950 if err != nil {
11951 return nil, err
11952 }
11953
11954 switch m["protectableItemType"] {
11955 case string(ProtectableItemTypeMicrosoftClassicComputevirtualMachines):
11956 var aisccvpi AzureIaaSClassicComputeVMProtectableItem
11957 err := json.Unmarshal(body, &aisccvpi)
11958 return aisccvpi, err
11959 case string(ProtectableItemTypeMicrosoftComputevirtualMachines):
11960 var aiscvpi AzureIaaSComputeVMProtectableItem
11961 err := json.Unmarshal(body, &aiscvpi)
11962 return aiscvpi, err
11963 default:
11964 var ispi IaaSVMProtectableItem
11965 err := json.Unmarshal(body, &ispi)
11966 return ispi, err
11967 }
11968 }
11969 func unmarshalBasicIaaSVMProtectableItemArray(body []byte) ([]BasicIaaSVMProtectableItem, error) {
11970 var rawMessages []*json.RawMessage
11971 err := json.Unmarshal(body, &rawMessages)
11972 if err != nil {
11973 return nil, err
11974 }
11975
11976 ispiArray := make([]BasicIaaSVMProtectableItem, len(rawMessages))
11977
11978 for index, rawMessage := range rawMessages {
11979 ispi, err := unmarshalBasicIaaSVMProtectableItem(*rawMessage)
11980 if err != nil {
11981 return nil, err
11982 }
11983 ispiArray[index] = ispi
11984 }
11985 return ispiArray, nil
11986 }
11987
11988
11989 func (ispi IaaSVMProtectableItem) MarshalJSON() ([]byte, error) {
11990 ispi.ProtectableItemType = ProtectableItemTypeIaaSVMProtectableItem
11991 objectMap := make(map[string]interface{})
11992 if ispi.VirtualMachineID != nil {
11993 objectMap["virtualMachineId"] = ispi.VirtualMachineID
11994 }
11995 if ispi.BackupManagementType != nil {
11996 objectMap["backupManagementType"] = ispi.BackupManagementType
11997 }
11998 if ispi.WorkloadType != nil {
11999 objectMap["workloadType"] = ispi.WorkloadType
12000 }
12001 if ispi.FriendlyName != nil {
12002 objectMap["friendlyName"] = ispi.FriendlyName
12003 }
12004 if ispi.ProtectionState != "" {
12005 objectMap["protectionState"] = ispi.ProtectionState
12006 }
12007 if ispi.ProtectableItemType != "" {
12008 objectMap["protectableItemType"] = ispi.ProtectableItemType
12009 }
12010 return json.Marshal(objectMap)
12011 }
12012
12013
12014 func (ispi IaaSVMProtectableItem) AsAzureFileShareProtectableItem() (*AzureFileShareProtectableItem, bool) {
12015 return nil, false
12016 }
12017
12018
12019 func (ispi IaaSVMProtectableItem) AsAzureIaaSClassicComputeVMProtectableItem() (*AzureIaaSClassicComputeVMProtectableItem, bool) {
12020 return nil, false
12021 }
12022
12023
12024 func (ispi IaaSVMProtectableItem) AsAzureIaaSComputeVMProtectableItem() (*AzureIaaSComputeVMProtectableItem, bool) {
12025 return nil, false
12026 }
12027
12028
12029 func (ispi IaaSVMProtectableItem) AsAzureVMWorkloadProtectableItem() (*AzureVMWorkloadProtectableItem, bool) {
12030 return nil, false
12031 }
12032
12033
12034 func (ispi IaaSVMProtectableItem) AsBasicAzureVMWorkloadProtectableItem() (BasicAzureVMWorkloadProtectableItem, bool) {
12035 return nil, false
12036 }
12037
12038
12039 func (ispi IaaSVMProtectableItem) AsAzureVMWorkloadSAPAseSystemProtectableItem() (*AzureVMWorkloadSAPAseSystemProtectableItem, bool) {
12040 return nil, false
12041 }
12042
12043
12044 func (ispi IaaSVMProtectableItem) AsAzureVMWorkloadSAPHanaDatabaseProtectableItem() (*AzureVMWorkloadSAPHanaDatabaseProtectableItem, bool) {
12045 return nil, false
12046 }
12047
12048
12049 func (ispi IaaSVMProtectableItem) AsAzureVMWorkloadSAPHanaSystemProtectableItem() (*AzureVMWorkloadSAPHanaSystemProtectableItem, bool) {
12050 return nil, false
12051 }
12052
12053
12054 func (ispi IaaSVMProtectableItem) AsAzureVMWorkloadSQLAvailabilityGroupProtectableItem() (*AzureVMWorkloadSQLAvailabilityGroupProtectableItem, bool) {
12055 return nil, false
12056 }
12057
12058
12059 func (ispi IaaSVMProtectableItem) AsAzureVMWorkloadSQLDatabaseProtectableItem() (*AzureVMWorkloadSQLDatabaseProtectableItem, bool) {
12060 return nil, false
12061 }
12062
12063
12064 func (ispi IaaSVMProtectableItem) AsAzureVMWorkloadSQLInstanceProtectableItem() (*AzureVMWorkloadSQLInstanceProtectableItem, bool) {
12065 return nil, false
12066 }
12067
12068
12069 func (ispi IaaSVMProtectableItem) AsIaaSVMProtectableItem() (*IaaSVMProtectableItem, bool) {
12070 return &ispi, true
12071 }
12072
12073
12074 func (ispi IaaSVMProtectableItem) AsBasicIaaSVMProtectableItem() (BasicIaaSVMProtectableItem, bool) {
12075 return &ispi, true
12076 }
12077
12078
12079 func (ispi IaaSVMProtectableItem) AsWorkloadProtectableItem() (*WorkloadProtectableItem, bool) {
12080 return nil, false
12081 }
12082
12083
12084 func (ispi IaaSVMProtectableItem) AsBasicWorkloadProtectableItem() (BasicWorkloadProtectableItem, bool) {
12085 return &ispi, true
12086 }
12087
12088
12089 type IaasVMRecoveryPoint struct {
12090
12091 RecoveryPointType *string `json:"recoveryPointType,omitempty"`
12092
12093 RecoveryPointTime *date.Time `json:"recoveryPointTime,omitempty"`
12094
12095 RecoveryPointAdditionalInfo *string `json:"recoveryPointAdditionalInfo,omitempty"`
12096
12097 SourceVMStorageType *string `json:"sourceVMStorageType,omitempty"`
12098
12099 IsSourceVMEncrypted *bool `json:"isSourceVMEncrypted,omitempty"`
12100
12101 KeyAndSecret *KeyAndSecretDetails `json:"keyAndSecret,omitempty"`
12102
12103 IsInstantIlrSessionActive *bool `json:"isInstantIlrSessionActive,omitempty"`
12104
12105 RecoveryPointTierDetails *[]RecoveryPointTierInformation `json:"recoveryPointTierDetails,omitempty"`
12106
12107 IsManagedVirtualMachine *bool `json:"isManagedVirtualMachine,omitempty"`
12108
12109 VirtualMachineSize *string `json:"virtualMachineSize,omitempty"`
12110
12111 OriginalStorageAccountOption *bool `json:"originalStorageAccountOption,omitempty"`
12112
12113 OsType *string `json:"osType,omitempty"`
12114
12115 RecoveryPointDiskConfiguration *RecoveryPointDiskConfiguration `json:"recoveryPointDiskConfiguration,omitempty"`
12116
12117 ObjectType ObjectTypeBasicRecoveryPoint `json:"objectType,omitempty"`
12118 }
12119
12120
12121 func (ivrp IaasVMRecoveryPoint) MarshalJSON() ([]byte, error) {
12122 ivrp.ObjectType = ObjectTypeIaasVMRecoveryPoint
12123 objectMap := make(map[string]interface{})
12124 if ivrp.KeyAndSecret != nil {
12125 objectMap["keyAndSecret"] = ivrp.KeyAndSecret
12126 }
12127 if ivrp.IsInstantIlrSessionActive != nil {
12128 objectMap["isInstantIlrSessionActive"] = ivrp.IsInstantIlrSessionActive
12129 }
12130 if ivrp.RecoveryPointTierDetails != nil {
12131 objectMap["recoveryPointTierDetails"] = ivrp.RecoveryPointTierDetails
12132 }
12133 if ivrp.IsManagedVirtualMachine != nil {
12134 objectMap["isManagedVirtualMachine"] = ivrp.IsManagedVirtualMachine
12135 }
12136 if ivrp.VirtualMachineSize != nil {
12137 objectMap["virtualMachineSize"] = ivrp.VirtualMachineSize
12138 }
12139 if ivrp.OriginalStorageAccountOption != nil {
12140 objectMap["originalStorageAccountOption"] = ivrp.OriginalStorageAccountOption
12141 }
12142 if ivrp.OsType != nil {
12143 objectMap["osType"] = ivrp.OsType
12144 }
12145 if ivrp.RecoveryPointDiskConfiguration != nil {
12146 objectMap["recoveryPointDiskConfiguration"] = ivrp.RecoveryPointDiskConfiguration
12147 }
12148 if ivrp.ObjectType != "" {
12149 objectMap["objectType"] = ivrp.ObjectType
12150 }
12151 return json.Marshal(objectMap)
12152 }
12153
12154
12155 func (ivrp IaasVMRecoveryPoint) AsAzureFileShareRecoveryPoint() (*AzureFileShareRecoveryPoint, bool) {
12156 return nil, false
12157 }
12158
12159
12160 func (ivrp IaasVMRecoveryPoint) AsAzureWorkloadPointInTimeRecoveryPoint() (*AzureWorkloadPointInTimeRecoveryPoint, bool) {
12161 return nil, false
12162 }
12163
12164
12165 func (ivrp IaasVMRecoveryPoint) AsBasicAzureWorkloadPointInTimeRecoveryPoint() (BasicAzureWorkloadPointInTimeRecoveryPoint, bool) {
12166 return nil, false
12167 }
12168
12169
12170 func (ivrp IaasVMRecoveryPoint) AsAzureWorkloadRecoveryPoint() (*AzureWorkloadRecoveryPoint, bool) {
12171 return nil, false
12172 }
12173
12174
12175 func (ivrp IaasVMRecoveryPoint) AsBasicAzureWorkloadRecoveryPoint() (BasicAzureWorkloadRecoveryPoint, bool) {
12176 return nil, false
12177 }
12178
12179
12180 func (ivrp IaasVMRecoveryPoint) AsAzureWorkloadSAPHanaPointInTimeRecoveryPoint() (*AzureWorkloadSAPHanaPointInTimeRecoveryPoint, bool) {
12181 return nil, false
12182 }
12183
12184
12185 func (ivrp IaasVMRecoveryPoint) AsAzureWorkloadSAPHanaRecoveryPoint() (*AzureWorkloadSAPHanaRecoveryPoint, bool) {
12186 return nil, false
12187 }
12188
12189
12190 func (ivrp IaasVMRecoveryPoint) AsAzureWorkloadSQLPointInTimeRecoveryPoint() (*AzureWorkloadSQLPointInTimeRecoveryPoint, bool) {
12191 return nil, false
12192 }
12193
12194
12195 func (ivrp IaasVMRecoveryPoint) AsAzureWorkloadSQLRecoveryPoint() (*AzureWorkloadSQLRecoveryPoint, bool) {
12196 return nil, false
12197 }
12198
12199
12200 func (ivrp IaasVMRecoveryPoint) AsBasicAzureWorkloadSQLRecoveryPoint() (BasicAzureWorkloadSQLRecoveryPoint, bool) {
12201 return nil, false
12202 }
12203
12204
12205 func (ivrp IaasVMRecoveryPoint) AsGenericRecoveryPoint() (*GenericRecoveryPoint, bool) {
12206 return nil, false
12207 }
12208
12209
12210 func (ivrp IaasVMRecoveryPoint) AsIaasVMRecoveryPoint() (*IaasVMRecoveryPoint, bool) {
12211 return &ivrp, true
12212 }
12213
12214
12215 func (ivrp IaasVMRecoveryPoint) AsRecoveryPoint() (*RecoveryPoint, bool) {
12216 return nil, false
12217 }
12218
12219
12220 func (ivrp IaasVMRecoveryPoint) AsBasicRecoveryPoint() (BasicRecoveryPoint, bool) {
12221 return &ivrp, true
12222 }
12223
12224
12225 type IaasVMRestoreRequest struct {
12226
12227 RecoveryPointID *string `json:"recoveryPointId,omitempty"`
12228
12229 RecoveryType RecoveryType `json:"recoveryType,omitempty"`
12230
12231 SourceResourceID *string `json:"sourceResourceId,omitempty"`
12232
12233
12234 TargetVirtualMachineID *string `json:"targetVirtualMachineId,omitempty"`
12235
12236
12237 TargetResourceGroupID *string `json:"targetResourceGroupId,omitempty"`
12238
12239 StorageAccountID *string `json:"storageAccountId,omitempty"`
12240
12241
12242 VirtualNetworkID *string `json:"virtualNetworkId,omitempty"`
12243
12244
12245
12246 SubnetID *string `json:"subnetId,omitempty"`
12247
12248
12249 TargetDomainNameID *string `json:"targetDomainNameId,omitempty"`
12250
12251 Region *string `json:"region,omitempty"`
12252
12253 AffinityGroup *string `json:"affinityGroup,omitempty"`
12254
12255
12256 CreateNewCloudService *bool `json:"createNewCloudService,omitempty"`
12257
12258 OriginalStorageAccountOption *bool `json:"originalStorageAccountOption,omitempty"`
12259
12260 EncryptionDetails *EncryptionDetails `json:"encryptionDetails,omitempty"`
12261
12262 RestoreDiskLunList *[]int32 `json:"restoreDiskLunList,omitempty"`
12263
12264 ObjectType ObjectTypeBasicRestoreRequest `json:"objectType,omitempty"`
12265 }
12266
12267
12268 func (ivrr IaasVMRestoreRequest) MarshalJSON() ([]byte, error) {
12269 ivrr.ObjectType = ObjectTypeIaasVMRestoreRequest
12270 objectMap := make(map[string]interface{})
12271 if ivrr.RecoveryPointID != nil {
12272 objectMap["recoveryPointId"] = ivrr.RecoveryPointID
12273 }
12274 if ivrr.RecoveryType != "" {
12275 objectMap["recoveryType"] = ivrr.RecoveryType
12276 }
12277 if ivrr.SourceResourceID != nil {
12278 objectMap["sourceResourceId"] = ivrr.SourceResourceID
12279 }
12280 if ivrr.TargetVirtualMachineID != nil {
12281 objectMap["targetVirtualMachineId"] = ivrr.TargetVirtualMachineID
12282 }
12283 if ivrr.TargetResourceGroupID != nil {
12284 objectMap["targetResourceGroupId"] = ivrr.TargetResourceGroupID
12285 }
12286 if ivrr.StorageAccountID != nil {
12287 objectMap["storageAccountId"] = ivrr.StorageAccountID
12288 }
12289 if ivrr.VirtualNetworkID != nil {
12290 objectMap["virtualNetworkId"] = ivrr.VirtualNetworkID
12291 }
12292 if ivrr.SubnetID != nil {
12293 objectMap["subnetId"] = ivrr.SubnetID
12294 }
12295 if ivrr.TargetDomainNameID != nil {
12296 objectMap["targetDomainNameId"] = ivrr.TargetDomainNameID
12297 }
12298 if ivrr.Region != nil {
12299 objectMap["region"] = ivrr.Region
12300 }
12301 if ivrr.AffinityGroup != nil {
12302 objectMap["affinityGroup"] = ivrr.AffinityGroup
12303 }
12304 if ivrr.CreateNewCloudService != nil {
12305 objectMap["createNewCloudService"] = ivrr.CreateNewCloudService
12306 }
12307 if ivrr.OriginalStorageAccountOption != nil {
12308 objectMap["originalStorageAccountOption"] = ivrr.OriginalStorageAccountOption
12309 }
12310 if ivrr.EncryptionDetails != nil {
12311 objectMap["encryptionDetails"] = ivrr.EncryptionDetails
12312 }
12313 if ivrr.RestoreDiskLunList != nil {
12314 objectMap["restoreDiskLunList"] = ivrr.RestoreDiskLunList
12315 }
12316 if ivrr.ObjectType != "" {
12317 objectMap["objectType"] = ivrr.ObjectType
12318 }
12319 return json.Marshal(objectMap)
12320 }
12321
12322
12323 func (ivrr IaasVMRestoreRequest) AsAzureFileShareRestoreRequest() (*AzureFileShareRestoreRequest, bool) {
12324 return nil, false
12325 }
12326
12327
12328 func (ivrr IaasVMRestoreRequest) AsAzureWorkloadPointInTimeRestoreRequest() (*AzureWorkloadPointInTimeRestoreRequest, bool) {
12329 return nil, false
12330 }
12331
12332
12333 func (ivrr IaasVMRestoreRequest) AsAzureWorkloadRestoreRequest() (*AzureWorkloadRestoreRequest, bool) {
12334 return nil, false
12335 }
12336
12337
12338 func (ivrr IaasVMRestoreRequest) AsBasicAzureWorkloadRestoreRequest() (BasicAzureWorkloadRestoreRequest, bool) {
12339 return nil, false
12340 }
12341
12342
12343 func (ivrr IaasVMRestoreRequest) AsAzureWorkloadSAPHanaPointInTimeRestoreRequest() (*AzureWorkloadSAPHanaPointInTimeRestoreRequest, bool) {
12344 return nil, false
12345 }
12346
12347
12348 func (ivrr IaasVMRestoreRequest) AsAzureWorkloadSAPHanaRestoreRequest() (*AzureWorkloadSAPHanaRestoreRequest, bool) {
12349 return nil, false
12350 }
12351
12352
12353 func (ivrr IaasVMRestoreRequest) AsBasicAzureWorkloadSAPHanaRestoreRequest() (BasicAzureWorkloadSAPHanaRestoreRequest, bool) {
12354 return nil, false
12355 }
12356
12357
12358 func (ivrr IaasVMRestoreRequest) AsAzureWorkloadSQLPointInTimeRestoreRequest() (*AzureWorkloadSQLPointInTimeRestoreRequest, bool) {
12359 return nil, false
12360 }
12361
12362
12363 func (ivrr IaasVMRestoreRequest) AsAzureWorkloadSQLRestoreRequest() (*AzureWorkloadSQLRestoreRequest, bool) {
12364 return nil, false
12365 }
12366
12367
12368 func (ivrr IaasVMRestoreRequest) AsBasicAzureWorkloadSQLRestoreRequest() (BasicAzureWorkloadSQLRestoreRequest, bool) {
12369 return nil, false
12370 }
12371
12372
12373 func (ivrr IaasVMRestoreRequest) AsIaasVMRestoreRequest() (*IaasVMRestoreRequest, bool) {
12374 return &ivrr, true
12375 }
12376
12377
12378 func (ivrr IaasVMRestoreRequest) AsRestoreRequest() (*RestoreRequest, bool) {
12379 return nil, false
12380 }
12381
12382
12383 func (ivrr IaasVMRestoreRequest) AsBasicRestoreRequest() (BasicRestoreRequest, bool) {
12384 return &ivrr, true
12385 }
12386
12387
12388 type BasicILRRequest interface {
12389 AsAzureFileShareProvisionILRRequest() (*AzureFileShareProvisionILRRequest, bool)
12390 AsIaasVMILRRegistrationRequest() (*IaasVMILRRegistrationRequest, bool)
12391 AsILRRequest() (*ILRRequest, bool)
12392 }
12393
12394
12395 type ILRRequest struct {
12396
12397 ObjectType ObjectTypeBasicILRRequest `json:"objectType,omitempty"`
12398 }
12399
12400 func unmarshalBasicILRRequest(body []byte) (BasicILRRequest, error) {
12401 var m map[string]interface{}
12402 err := json.Unmarshal(body, &m)
12403 if err != nil {
12404 return nil, err
12405 }
12406
12407 switch m["objectType"] {
12408 case string(ObjectTypeAzureFileShareProvisionILRRequest):
12409 var afspir AzureFileShareProvisionILRRequest
12410 err := json.Unmarshal(body, &afspir)
12411 return afspir, err
12412 case string(ObjectTypeIaasVMILRRegistrationRequest):
12413 var ivrr IaasVMILRRegistrationRequest
12414 err := json.Unmarshal(body, &ivrr)
12415 return ivrr, err
12416 default:
12417 var ir ILRRequest
12418 err := json.Unmarshal(body, &ir)
12419 return ir, err
12420 }
12421 }
12422 func unmarshalBasicILRRequestArray(body []byte) ([]BasicILRRequest, error) {
12423 var rawMessages []*json.RawMessage
12424 err := json.Unmarshal(body, &rawMessages)
12425 if err != nil {
12426 return nil, err
12427 }
12428
12429 irArray := make([]BasicILRRequest, len(rawMessages))
12430
12431 for index, rawMessage := range rawMessages {
12432 ir, err := unmarshalBasicILRRequest(*rawMessage)
12433 if err != nil {
12434 return nil, err
12435 }
12436 irArray[index] = ir
12437 }
12438 return irArray, nil
12439 }
12440
12441
12442 func (ir ILRRequest) MarshalJSON() ([]byte, error) {
12443 ir.ObjectType = ObjectTypeILRRequest
12444 objectMap := make(map[string]interface{})
12445 if ir.ObjectType != "" {
12446 objectMap["objectType"] = ir.ObjectType
12447 }
12448 return json.Marshal(objectMap)
12449 }
12450
12451
12452 func (ir ILRRequest) AsAzureFileShareProvisionILRRequest() (*AzureFileShareProvisionILRRequest, bool) {
12453 return nil, false
12454 }
12455
12456
12457 func (ir ILRRequest) AsIaasVMILRRegistrationRequest() (*IaasVMILRRegistrationRequest, bool) {
12458 return nil, false
12459 }
12460
12461
12462 func (ir ILRRequest) AsILRRequest() (*ILRRequest, bool) {
12463 return &ir, true
12464 }
12465
12466
12467 func (ir ILRRequest) AsBasicILRRequest() (BasicILRRequest, bool) {
12468 return &ir, true
12469 }
12470
12471
12472 type ILRRequestResource struct {
12473
12474 Properties BasicILRRequest `json:"properties,omitempty"`
12475
12476 ID *string `json:"id,omitempty"`
12477
12478 Name *string `json:"name,omitempty"`
12479
12480 Type *string `json:"type,omitempty"`
12481
12482 Location *string `json:"location,omitempty"`
12483
12484 Tags map[string]*string `json:"tags"`
12485
12486 ETag *string `json:"eTag,omitempty"`
12487 }
12488
12489
12490 func (irr ILRRequestResource) MarshalJSON() ([]byte, error) {
12491 objectMap := make(map[string]interface{})
12492 objectMap["properties"] = irr.Properties
12493 if irr.Location != nil {
12494 objectMap["location"] = irr.Location
12495 }
12496 if irr.Tags != nil {
12497 objectMap["tags"] = irr.Tags
12498 }
12499 if irr.ETag != nil {
12500 objectMap["eTag"] = irr.ETag
12501 }
12502 return json.Marshal(objectMap)
12503 }
12504
12505
12506 func (irr *ILRRequestResource) UnmarshalJSON(body []byte) error {
12507 var m map[string]*json.RawMessage
12508 err := json.Unmarshal(body, &m)
12509 if err != nil {
12510 return err
12511 }
12512 for k, v := range m {
12513 switch k {
12514 case "properties":
12515 if v != nil {
12516 properties, err := unmarshalBasicILRRequest(*v)
12517 if err != nil {
12518 return err
12519 }
12520 irr.Properties = properties
12521 }
12522 case "id":
12523 if v != nil {
12524 var ID string
12525 err = json.Unmarshal(*v, &ID)
12526 if err != nil {
12527 return err
12528 }
12529 irr.ID = &ID
12530 }
12531 case "name":
12532 if v != nil {
12533 var name string
12534 err = json.Unmarshal(*v, &name)
12535 if err != nil {
12536 return err
12537 }
12538 irr.Name = &name
12539 }
12540 case "type":
12541 if v != nil {
12542 var typeVar string
12543 err = json.Unmarshal(*v, &typeVar)
12544 if err != nil {
12545 return err
12546 }
12547 irr.Type = &typeVar
12548 }
12549 case "location":
12550 if v != nil {
12551 var location string
12552 err = json.Unmarshal(*v, &location)
12553 if err != nil {
12554 return err
12555 }
12556 irr.Location = &location
12557 }
12558 case "tags":
12559 if v != nil {
12560 var tags map[string]*string
12561 err = json.Unmarshal(*v, &tags)
12562 if err != nil {
12563 return err
12564 }
12565 irr.Tags = tags
12566 }
12567 case "eTag":
12568 if v != nil {
12569 var eTag string
12570 err = json.Unmarshal(*v, &eTag)
12571 if err != nil {
12572 return err
12573 }
12574 irr.ETag = &eTag
12575 }
12576 }
12577 }
12578
12579 return nil
12580 }
12581
12582
12583 type InquiryInfo struct {
12584
12585
12586 Status *string `json:"status,omitempty"`
12587
12588 ErrorDetail *ErrorDetail `json:"errorDetail,omitempty"`
12589
12590
12591 InquiryDetails *[]WorkloadInquiryDetails `json:"inquiryDetails,omitempty"`
12592 }
12593
12594
12595 type InquiryValidation struct {
12596
12597 Status *string `json:"status,omitempty"`
12598
12599 ErrorDetail *ErrorDetail `json:"errorDetail,omitempty"`
12600
12601 AdditionalDetail *string `json:"additionalDetail,omitempty"`
12602 }
12603
12604
12605 func (iv InquiryValidation) MarshalJSON() ([]byte, error) {
12606 objectMap := make(map[string]interface{})
12607 if iv.Status != nil {
12608 objectMap["status"] = iv.Status
12609 }
12610 if iv.ErrorDetail != nil {
12611 objectMap["errorDetail"] = iv.ErrorDetail
12612 }
12613 return json.Marshal(objectMap)
12614 }
12615
12616
12617 type InstantItemRecoveryTarget struct {
12618
12619 ClientScripts *[]ClientScriptForConnect `json:"clientScripts,omitempty"`
12620 }
12621
12622
12623 type InstantRPAdditionalDetails struct {
12624 AzureBackupRGNamePrefix *string `json:"azureBackupRGNamePrefix,omitempty"`
12625 AzureBackupRGNameSuffix *string `json:"azureBackupRGNameSuffix,omitempty"`
12626 }
12627
12628
12629 type BasicJob interface {
12630 AsAzureIaaSVMJob() (*AzureIaaSVMJob, bool)
12631 AsAzureStorageJob() (*AzureStorageJob, bool)
12632 AsAzureWorkloadJob() (*AzureWorkloadJob, bool)
12633 AsDpmJob() (*DpmJob, bool)
12634 AsMabJob() (*MabJob, bool)
12635 AsJob() (*Job, bool)
12636 }
12637
12638
12639 type Job struct {
12640
12641 EntityFriendlyName *string `json:"entityFriendlyName,omitempty"`
12642
12643 BackupManagementType ManagementType `json:"backupManagementType,omitempty"`
12644
12645 Operation *string `json:"operation,omitempty"`
12646
12647 Status *string `json:"status,omitempty"`
12648
12649 StartTime *date.Time `json:"startTime,omitempty"`
12650
12651 EndTime *date.Time `json:"endTime,omitempty"`
12652
12653 ActivityID *string `json:"activityId,omitempty"`
12654
12655 JobType JobType `json:"jobType,omitempty"`
12656 }
12657
12658 func unmarshalBasicJob(body []byte) (BasicJob, error) {
12659 var m map[string]interface{}
12660 err := json.Unmarshal(body, &m)
12661 if err != nil {
12662 return nil, err
12663 }
12664
12665 switch m["jobType"] {
12666 case string(JobTypeAzureIaaSVMJob):
12667 var aisj AzureIaaSVMJob
12668 err := json.Unmarshal(body, &aisj)
12669 return aisj, err
12670 case string(JobTypeAzureStorageJob):
12671 var asj AzureStorageJob
12672 err := json.Unmarshal(body, &asj)
12673 return asj, err
12674 case string(JobTypeAzureWorkloadJob):
12675 var awj AzureWorkloadJob
12676 err := json.Unmarshal(body, &awj)
12677 return awj, err
12678 case string(JobTypeDpmJob):
12679 var dj DpmJob
12680 err := json.Unmarshal(body, &dj)
12681 return dj, err
12682 case string(JobTypeMabJob):
12683 var mj MabJob
12684 err := json.Unmarshal(body, &mj)
12685 return mj, err
12686 default:
12687 var j Job
12688 err := json.Unmarshal(body, &j)
12689 return j, err
12690 }
12691 }
12692 func unmarshalBasicJobArray(body []byte) ([]BasicJob, error) {
12693 var rawMessages []*json.RawMessage
12694 err := json.Unmarshal(body, &rawMessages)
12695 if err != nil {
12696 return nil, err
12697 }
12698
12699 jArray := make([]BasicJob, len(rawMessages))
12700
12701 for index, rawMessage := range rawMessages {
12702 j, err := unmarshalBasicJob(*rawMessage)
12703 if err != nil {
12704 return nil, err
12705 }
12706 jArray[index] = j
12707 }
12708 return jArray, nil
12709 }
12710
12711
12712 func (j Job) MarshalJSON() ([]byte, error) {
12713 j.JobType = JobTypeJob
12714 objectMap := make(map[string]interface{})
12715 if j.EntityFriendlyName != nil {
12716 objectMap["entityFriendlyName"] = j.EntityFriendlyName
12717 }
12718 if j.BackupManagementType != "" {
12719 objectMap["backupManagementType"] = j.BackupManagementType
12720 }
12721 if j.Operation != nil {
12722 objectMap["operation"] = j.Operation
12723 }
12724 if j.Status != nil {
12725 objectMap["status"] = j.Status
12726 }
12727 if j.StartTime != nil {
12728 objectMap["startTime"] = j.StartTime
12729 }
12730 if j.EndTime != nil {
12731 objectMap["endTime"] = j.EndTime
12732 }
12733 if j.ActivityID != nil {
12734 objectMap["activityId"] = j.ActivityID
12735 }
12736 if j.JobType != "" {
12737 objectMap["jobType"] = j.JobType
12738 }
12739 return json.Marshal(objectMap)
12740 }
12741
12742
12743 func (j Job) AsAzureIaaSVMJob() (*AzureIaaSVMJob, bool) {
12744 return nil, false
12745 }
12746
12747
12748 func (j Job) AsAzureStorageJob() (*AzureStorageJob, bool) {
12749 return nil, false
12750 }
12751
12752
12753 func (j Job) AsAzureWorkloadJob() (*AzureWorkloadJob, bool) {
12754 return nil, false
12755 }
12756
12757
12758 func (j Job) AsDpmJob() (*DpmJob, bool) {
12759 return nil, false
12760 }
12761
12762
12763 func (j Job) AsMabJob() (*MabJob, bool) {
12764 return nil, false
12765 }
12766
12767
12768 func (j Job) AsJob() (*Job, bool) {
12769 return &j, true
12770 }
12771
12772
12773 func (j Job) AsBasicJob() (BasicJob, bool) {
12774 return &j, true
12775 }
12776
12777
12778 type JobQueryObject struct {
12779
12780 Status JobStatus `json:"status,omitempty"`
12781
12782 BackupManagementType ManagementType `json:"backupManagementType,omitempty"`
12783
12784 Operation JobOperationType `json:"operation,omitempty"`
12785
12786 JobID *string `json:"jobId,omitempty"`
12787
12788 StartTime *date.Time `json:"startTime,omitempty"`
12789
12790 EndTime *date.Time `json:"endTime,omitempty"`
12791 }
12792
12793
12794 type JobResource struct {
12795 autorest.Response `json:"-"`
12796
12797 Properties BasicJob `json:"properties,omitempty"`
12798
12799 ID *string `json:"id,omitempty"`
12800
12801 Name *string `json:"name,omitempty"`
12802
12803 Type *string `json:"type,omitempty"`
12804
12805 Location *string `json:"location,omitempty"`
12806
12807 Tags map[string]*string `json:"tags"`
12808
12809 ETag *string `json:"eTag,omitempty"`
12810 }
12811
12812
12813 func (jr JobResource) MarshalJSON() ([]byte, error) {
12814 objectMap := make(map[string]interface{})
12815 objectMap["properties"] = jr.Properties
12816 if jr.Location != nil {
12817 objectMap["location"] = jr.Location
12818 }
12819 if jr.Tags != nil {
12820 objectMap["tags"] = jr.Tags
12821 }
12822 if jr.ETag != nil {
12823 objectMap["eTag"] = jr.ETag
12824 }
12825 return json.Marshal(objectMap)
12826 }
12827
12828
12829 func (jr *JobResource) UnmarshalJSON(body []byte) error {
12830 var m map[string]*json.RawMessage
12831 err := json.Unmarshal(body, &m)
12832 if err != nil {
12833 return err
12834 }
12835 for k, v := range m {
12836 switch k {
12837 case "properties":
12838 if v != nil {
12839 properties, err := unmarshalBasicJob(*v)
12840 if err != nil {
12841 return err
12842 }
12843 jr.Properties = properties
12844 }
12845 case "id":
12846 if v != nil {
12847 var ID string
12848 err = json.Unmarshal(*v, &ID)
12849 if err != nil {
12850 return err
12851 }
12852 jr.ID = &ID
12853 }
12854 case "name":
12855 if v != nil {
12856 var name string
12857 err = json.Unmarshal(*v, &name)
12858 if err != nil {
12859 return err
12860 }
12861 jr.Name = &name
12862 }
12863 case "type":
12864 if v != nil {
12865 var typeVar string
12866 err = json.Unmarshal(*v, &typeVar)
12867 if err != nil {
12868 return err
12869 }
12870 jr.Type = &typeVar
12871 }
12872 case "location":
12873 if v != nil {
12874 var location string
12875 err = json.Unmarshal(*v, &location)
12876 if err != nil {
12877 return err
12878 }
12879 jr.Location = &location
12880 }
12881 case "tags":
12882 if v != nil {
12883 var tags map[string]*string
12884 err = json.Unmarshal(*v, &tags)
12885 if err != nil {
12886 return err
12887 }
12888 jr.Tags = tags
12889 }
12890 case "eTag":
12891 if v != nil {
12892 var eTag string
12893 err = json.Unmarshal(*v, &eTag)
12894 if err != nil {
12895 return err
12896 }
12897 jr.ETag = &eTag
12898 }
12899 }
12900 }
12901
12902 return nil
12903 }
12904
12905
12906 type JobResourceList struct {
12907 autorest.Response `json:"-"`
12908
12909 Value *[]JobResource `json:"value,omitempty"`
12910
12911 NextLink *string `json:"nextLink,omitempty"`
12912 }
12913
12914
12915 type JobResourceListIterator struct {
12916 i int
12917 page JobResourceListPage
12918 }
12919
12920
12921
12922 func (iter *JobResourceListIterator) NextWithContext(ctx context.Context) (err error) {
12923 if tracing.IsEnabled() {
12924 ctx = tracing.StartSpan(ctx, fqdn+"/JobResourceListIterator.NextWithContext")
12925 defer func() {
12926 sc := -1
12927 if iter.Response().Response.Response != nil {
12928 sc = iter.Response().Response.Response.StatusCode
12929 }
12930 tracing.EndSpan(ctx, sc, err)
12931 }()
12932 }
12933 iter.i++
12934 if iter.i < len(iter.page.Values()) {
12935 return nil
12936 }
12937 err = iter.page.NextWithContext(ctx)
12938 if err != nil {
12939 iter.i--
12940 return err
12941 }
12942 iter.i = 0
12943 return nil
12944 }
12945
12946
12947
12948
12949 func (iter *JobResourceListIterator) Next() error {
12950 return iter.NextWithContext(context.Background())
12951 }
12952
12953
12954 func (iter JobResourceListIterator) NotDone() bool {
12955 return iter.page.NotDone() && iter.i < len(iter.page.Values())
12956 }
12957
12958
12959 func (iter JobResourceListIterator) Response() JobResourceList {
12960 return iter.page.Response()
12961 }
12962
12963
12964
12965 func (iter JobResourceListIterator) Value() JobResource {
12966 if !iter.page.NotDone() {
12967 return JobResource{}
12968 }
12969 return iter.page.Values()[iter.i]
12970 }
12971
12972
12973 func NewJobResourceListIterator(page JobResourceListPage) JobResourceListIterator {
12974 return JobResourceListIterator{page: page}
12975 }
12976
12977
12978 func (jrl JobResourceList) IsEmpty() bool {
12979 return jrl.Value == nil || len(*jrl.Value) == 0
12980 }
12981
12982
12983 func (jrl JobResourceList) hasNextLink() bool {
12984 return jrl.NextLink != nil && len(*jrl.NextLink) != 0
12985 }
12986
12987
12988
12989 func (jrl JobResourceList) jobResourceListPreparer(ctx context.Context) (*http.Request, error) {
12990 if !jrl.hasNextLink() {
12991 return nil, nil
12992 }
12993 return autorest.Prepare((&http.Request{}).WithContext(ctx),
12994 autorest.AsJSON(),
12995 autorest.AsGet(),
12996 autorest.WithBaseURL(to.String(jrl.NextLink)))
12997 }
12998
12999
13000 type JobResourceListPage struct {
13001 fn func(context.Context, JobResourceList) (JobResourceList, error)
13002 jrl JobResourceList
13003 }
13004
13005
13006
13007 func (page *JobResourceListPage) NextWithContext(ctx context.Context) (err error) {
13008 if tracing.IsEnabled() {
13009 ctx = tracing.StartSpan(ctx, fqdn+"/JobResourceListPage.NextWithContext")
13010 defer func() {
13011 sc := -1
13012 if page.Response().Response.Response != nil {
13013 sc = page.Response().Response.Response.StatusCode
13014 }
13015 tracing.EndSpan(ctx, sc, err)
13016 }()
13017 }
13018 for {
13019 next, err := page.fn(ctx, page.jrl)
13020 if err != nil {
13021 return err
13022 }
13023 page.jrl = next
13024 if !next.hasNextLink() || !next.IsEmpty() {
13025 break
13026 }
13027 }
13028 return nil
13029 }
13030
13031
13032
13033
13034 func (page *JobResourceListPage) Next() error {
13035 return page.NextWithContext(context.Background())
13036 }
13037
13038
13039 func (page JobResourceListPage) NotDone() bool {
13040 return !page.jrl.IsEmpty()
13041 }
13042
13043
13044 func (page JobResourceListPage) Response() JobResourceList {
13045 return page.jrl
13046 }
13047
13048
13049 func (page JobResourceListPage) Values() []JobResource {
13050 if page.jrl.IsEmpty() {
13051 return nil
13052 }
13053 return *page.jrl.Value
13054 }
13055
13056
13057 func NewJobResourceListPage(cur JobResourceList, getNextPage func(context.Context, JobResourceList) (JobResourceList, error)) JobResourceListPage {
13058 return JobResourceListPage{
13059 fn: getNextPage,
13060 jrl: cur,
13061 }
13062 }
13063
13064
13065 type KEKDetails struct {
13066
13067 KeyURL *string `json:"keyUrl,omitempty"`
13068
13069 KeyVaultID *string `json:"keyVaultId,omitempty"`
13070
13071 KeyBackupData *string `json:"keyBackupData,omitempty"`
13072 }
13073
13074
13075
13076
13077
13078
13079
13080
13081 type KeyAndSecretDetails struct {
13082
13083 KekDetails *KEKDetails `json:"kekDetails,omitempty"`
13084
13085 BekDetails *BEKDetails `json:"bekDetails,omitempty"`
13086
13087 EncryptionMechanism *string `json:"encryptionMechanism,omitempty"`
13088 }
13089
13090
13091 type KPIResourceHealthDetails struct {
13092
13093 ResourceHealthStatus ResourceHealthStatus `json:"resourceHealthStatus,omitempty"`
13094
13095 ResourceHealthDetails *[]ResourceHealthDetails `json:"resourceHealthDetails,omitempty"`
13096 }
13097
13098
13099 type LogSchedulePolicy struct {
13100
13101 ScheduleFrequencyInMins *int32 `json:"scheduleFrequencyInMins,omitempty"`
13102
13103 SchedulePolicyType SchedulePolicyType `json:"schedulePolicyType,omitempty"`
13104 }
13105
13106
13107 func (lsp LogSchedulePolicy) MarshalJSON() ([]byte, error) {
13108 lsp.SchedulePolicyType = SchedulePolicyTypeLogSchedulePolicy
13109 objectMap := make(map[string]interface{})
13110 if lsp.ScheduleFrequencyInMins != nil {
13111 objectMap["scheduleFrequencyInMins"] = lsp.ScheduleFrequencyInMins
13112 }
13113 if lsp.SchedulePolicyType != "" {
13114 objectMap["schedulePolicyType"] = lsp.SchedulePolicyType
13115 }
13116 return json.Marshal(objectMap)
13117 }
13118
13119
13120 func (lsp LogSchedulePolicy) AsLogSchedulePolicy() (*LogSchedulePolicy, bool) {
13121 return &lsp, true
13122 }
13123
13124
13125 func (lsp LogSchedulePolicy) AsLongTermSchedulePolicy() (*LongTermSchedulePolicy, bool) {
13126 return nil, false
13127 }
13128
13129
13130 func (lsp LogSchedulePolicy) AsSimpleSchedulePolicy() (*SimpleSchedulePolicy, bool) {
13131 return nil, false
13132 }
13133
13134
13135 func (lsp LogSchedulePolicy) AsSchedulePolicy() (*SchedulePolicy, bool) {
13136 return nil, false
13137 }
13138
13139
13140 func (lsp LogSchedulePolicy) AsBasicSchedulePolicy() (BasicSchedulePolicy, bool) {
13141 return &lsp, true
13142 }
13143
13144
13145 type LongTermRetentionPolicy struct {
13146
13147 DailySchedule *DailyRetentionSchedule `json:"dailySchedule,omitempty"`
13148
13149 WeeklySchedule *WeeklyRetentionSchedule `json:"weeklySchedule,omitempty"`
13150
13151 MonthlySchedule *MonthlyRetentionSchedule `json:"monthlySchedule,omitempty"`
13152
13153 YearlySchedule *YearlyRetentionSchedule `json:"yearlySchedule,omitempty"`
13154
13155 RetentionPolicyType RetentionPolicyType `json:"retentionPolicyType,omitempty"`
13156 }
13157
13158
13159 func (ltrp LongTermRetentionPolicy) MarshalJSON() ([]byte, error) {
13160 ltrp.RetentionPolicyType = RetentionPolicyTypeLongTermRetentionPolicy
13161 objectMap := make(map[string]interface{})
13162 if ltrp.DailySchedule != nil {
13163 objectMap["dailySchedule"] = ltrp.DailySchedule
13164 }
13165 if ltrp.WeeklySchedule != nil {
13166 objectMap["weeklySchedule"] = ltrp.WeeklySchedule
13167 }
13168 if ltrp.MonthlySchedule != nil {
13169 objectMap["monthlySchedule"] = ltrp.MonthlySchedule
13170 }
13171 if ltrp.YearlySchedule != nil {
13172 objectMap["yearlySchedule"] = ltrp.YearlySchedule
13173 }
13174 if ltrp.RetentionPolicyType != "" {
13175 objectMap["retentionPolicyType"] = ltrp.RetentionPolicyType
13176 }
13177 return json.Marshal(objectMap)
13178 }
13179
13180
13181 func (ltrp LongTermRetentionPolicy) AsLongTermRetentionPolicy() (*LongTermRetentionPolicy, bool) {
13182 return <rp, true
13183 }
13184
13185
13186 func (ltrp LongTermRetentionPolicy) AsSimpleRetentionPolicy() (*SimpleRetentionPolicy, bool) {
13187 return nil, false
13188 }
13189
13190
13191 func (ltrp LongTermRetentionPolicy) AsRetentionPolicy() (*RetentionPolicy, bool) {
13192 return nil, false
13193 }
13194
13195
13196 func (ltrp LongTermRetentionPolicy) AsBasicRetentionPolicy() (BasicRetentionPolicy, bool) {
13197 return <rp, true
13198 }
13199
13200
13201 type LongTermSchedulePolicy struct {
13202
13203 SchedulePolicyType SchedulePolicyType `json:"schedulePolicyType,omitempty"`
13204 }
13205
13206
13207 func (ltsp LongTermSchedulePolicy) MarshalJSON() ([]byte, error) {
13208 ltsp.SchedulePolicyType = SchedulePolicyTypeLongTermSchedulePolicy
13209 objectMap := make(map[string]interface{})
13210 if ltsp.SchedulePolicyType != "" {
13211 objectMap["schedulePolicyType"] = ltsp.SchedulePolicyType
13212 }
13213 return json.Marshal(objectMap)
13214 }
13215
13216
13217 func (ltsp LongTermSchedulePolicy) AsLogSchedulePolicy() (*LogSchedulePolicy, bool) {
13218 return nil, false
13219 }
13220
13221
13222 func (ltsp LongTermSchedulePolicy) AsLongTermSchedulePolicy() (*LongTermSchedulePolicy, bool) {
13223 return <sp, true
13224 }
13225
13226
13227 func (ltsp LongTermSchedulePolicy) AsSimpleSchedulePolicy() (*SimpleSchedulePolicy, bool) {
13228 return nil, false
13229 }
13230
13231
13232 func (ltsp LongTermSchedulePolicy) AsSchedulePolicy() (*SchedulePolicy, bool) {
13233 return nil, false
13234 }
13235
13236
13237 func (ltsp LongTermSchedulePolicy) AsBasicSchedulePolicy() (BasicSchedulePolicy, bool) {
13238 return <sp, true
13239 }
13240
13241
13242 type MabContainer struct {
13243
13244 CanReRegister *bool `json:"canReRegister,omitempty"`
13245
13246 ContainerID *int64 `json:"containerId,omitempty"`
13247
13248 ProtectedItemCount *int64 `json:"protectedItemCount,omitempty"`
13249
13250 AgentVersion *string `json:"agentVersion,omitempty"`
13251
13252 ExtendedInfo *MabContainerExtendedInfo `json:"extendedInfo,omitempty"`
13253
13254 MabContainerHealthDetails *[]MABContainerHealthDetails `json:"mabContainerHealthDetails,omitempty"`
13255
13256 ContainerHealthState *string `json:"containerHealthState,omitempty"`
13257
13258 FriendlyName *string `json:"friendlyName,omitempty"`
13259
13260 BackupManagementType ManagementType `json:"backupManagementType,omitempty"`
13261
13262 RegistrationStatus *string `json:"registrationStatus,omitempty"`
13263
13264 HealthStatus *string `json:"healthStatus,omitempty"`
13265
13266 ContainerType ContainerTypeBasicProtectionContainer `json:"containerType,omitempty"`
13267 }
13268
13269
13270 func (mc MabContainer) MarshalJSON() ([]byte, error) {
13271 mc.ContainerType = ContainerTypeWindows1
13272 objectMap := make(map[string]interface{})
13273 if mc.CanReRegister != nil {
13274 objectMap["canReRegister"] = mc.CanReRegister
13275 }
13276 if mc.ContainerID != nil {
13277 objectMap["containerId"] = mc.ContainerID
13278 }
13279 if mc.ProtectedItemCount != nil {
13280 objectMap["protectedItemCount"] = mc.ProtectedItemCount
13281 }
13282 if mc.AgentVersion != nil {
13283 objectMap["agentVersion"] = mc.AgentVersion
13284 }
13285 if mc.ExtendedInfo != nil {
13286 objectMap["extendedInfo"] = mc.ExtendedInfo
13287 }
13288 if mc.MabContainerHealthDetails != nil {
13289 objectMap["mabContainerHealthDetails"] = mc.MabContainerHealthDetails
13290 }
13291 if mc.ContainerHealthState != nil {
13292 objectMap["containerHealthState"] = mc.ContainerHealthState
13293 }
13294 if mc.FriendlyName != nil {
13295 objectMap["friendlyName"] = mc.FriendlyName
13296 }
13297 if mc.BackupManagementType != "" {
13298 objectMap["backupManagementType"] = mc.BackupManagementType
13299 }
13300 if mc.RegistrationStatus != nil {
13301 objectMap["registrationStatus"] = mc.RegistrationStatus
13302 }
13303 if mc.HealthStatus != nil {
13304 objectMap["healthStatus"] = mc.HealthStatus
13305 }
13306 if mc.ContainerType != "" {
13307 objectMap["containerType"] = mc.ContainerType
13308 }
13309 return json.Marshal(objectMap)
13310 }
13311
13312
13313 func (mc MabContainer) AsAzureBackupServerContainer() (*AzureBackupServerContainer, bool) {
13314 return nil, false
13315 }
13316
13317
13318 func (mc MabContainer) AsAzureIaaSClassicComputeVMContainer() (*AzureIaaSClassicComputeVMContainer, bool) {
13319 return nil, false
13320 }
13321
13322
13323 func (mc MabContainer) AsAzureIaaSComputeVMContainer() (*AzureIaaSComputeVMContainer, bool) {
13324 return nil, false
13325 }
13326
13327
13328 func (mc MabContainer) AsAzureSQLAGWorkloadContainerProtectionContainer() (*AzureSQLAGWorkloadContainerProtectionContainer, bool) {
13329 return nil, false
13330 }
13331
13332
13333 func (mc MabContainer) AsAzureSQLContainer() (*AzureSQLContainer, bool) {
13334 return nil, false
13335 }
13336
13337
13338 func (mc MabContainer) AsAzureStorageContainer() (*AzureStorageContainer, bool) {
13339 return nil, false
13340 }
13341
13342
13343 func (mc MabContainer) AsAzureVMAppContainerProtectionContainer() (*AzureVMAppContainerProtectionContainer, bool) {
13344 return nil, false
13345 }
13346
13347
13348 func (mc MabContainer) AsAzureWorkloadContainer() (*AzureWorkloadContainer, bool) {
13349 return nil, false
13350 }
13351
13352
13353 func (mc MabContainer) AsBasicAzureWorkloadContainer() (BasicAzureWorkloadContainer, bool) {
13354 return nil, false
13355 }
13356
13357
13358 func (mc MabContainer) AsDpmContainer() (*DpmContainer, bool) {
13359 return nil, false
13360 }
13361
13362
13363 func (mc MabContainer) AsBasicDpmContainer() (BasicDpmContainer, bool) {
13364 return nil, false
13365 }
13366
13367
13368 func (mc MabContainer) AsGenericContainer() (*GenericContainer, bool) {
13369 return nil, false
13370 }
13371
13372
13373 func (mc MabContainer) AsIaaSVMContainer() (*IaaSVMContainer, bool) {
13374 return nil, false
13375 }
13376
13377
13378 func (mc MabContainer) AsBasicIaaSVMContainer() (BasicIaaSVMContainer, bool) {
13379 return nil, false
13380 }
13381
13382
13383 func (mc MabContainer) AsMabContainer() (*MabContainer, bool) {
13384 return &mc, true
13385 }
13386
13387
13388 func (mc MabContainer) AsProtectionContainer() (*ProtectionContainer, bool) {
13389 return nil, false
13390 }
13391
13392
13393 func (mc MabContainer) AsBasicProtectionContainer() (BasicProtectionContainer, bool) {
13394 return &mc, true
13395 }
13396
13397
13398 type MabContainerExtendedInfo struct {
13399
13400 LastRefreshedAt *date.Time `json:"lastRefreshedAt,omitempty"`
13401
13402 BackupItemType ItemType `json:"backupItemType,omitempty"`
13403
13404 BackupItems *[]string `json:"backupItems,omitempty"`
13405
13406 PolicyName *string `json:"policyName,omitempty"`
13407
13408 LastBackupStatus *string `json:"lastBackupStatus,omitempty"`
13409 }
13410
13411
13412 type MABContainerHealthDetails struct {
13413
13414 Code *int32 `json:"code,omitempty"`
13415
13416 Title *string `json:"title,omitempty"`
13417
13418 Message *string `json:"message,omitempty"`
13419
13420 Recommendations *[]string `json:"recommendations,omitempty"`
13421 }
13422
13423
13424 type MabErrorInfo struct {
13425
13426 ErrorString *string `json:"errorString,omitempty"`
13427
13428 Recommendations *[]string `json:"recommendations,omitempty"`
13429 }
13430
13431
13432 func (mei MabErrorInfo) MarshalJSON() ([]byte, error) {
13433 objectMap := make(map[string]interface{})
13434 return json.Marshal(objectMap)
13435 }
13436
13437
13438 type MabFileFolderProtectedItem struct {
13439
13440 FriendlyName *string `json:"friendlyName,omitempty"`
13441
13442 ComputerName *string `json:"computerName,omitempty"`
13443
13444 LastBackupStatus *string `json:"lastBackupStatus,omitempty"`
13445
13446 LastBackupTime *date.Time `json:"lastBackupTime,omitempty"`
13447
13448 ProtectionState *string `json:"protectionState,omitempty"`
13449
13450 DeferredDeleteSyncTimeInUTC *int64 `json:"deferredDeleteSyncTimeInUTC,omitempty"`
13451
13452 ExtendedInfo *MabFileFolderProtectedItemExtendedInfo `json:"extendedInfo,omitempty"`
13453
13454 BackupManagementType ManagementType `json:"backupManagementType,omitempty"`
13455
13456 WorkloadType DataSourceType `json:"workloadType,omitempty"`
13457
13458 ContainerName *string `json:"containerName,omitempty"`
13459
13460 SourceResourceID *string `json:"sourceResourceId,omitempty"`
13461
13462 PolicyID *string `json:"policyId,omitempty"`
13463
13464 LastRecoveryPoint *date.Time `json:"lastRecoveryPoint,omitempty"`
13465
13466 BackupSetName *string `json:"backupSetName,omitempty"`
13467
13468 CreateMode CreateMode `json:"createMode,omitempty"`
13469
13470 DeferredDeleteTimeInUTC *date.Time `json:"deferredDeleteTimeInUTC,omitempty"`
13471
13472 IsScheduledForDeferredDelete *bool `json:"isScheduledForDeferredDelete,omitempty"`
13473
13474 DeferredDeleteTimeRemaining *string `json:"deferredDeleteTimeRemaining,omitempty"`
13475
13476 IsDeferredDeleteScheduleUpcoming *bool `json:"isDeferredDeleteScheduleUpcoming,omitempty"`
13477
13478 IsRehydrate *bool `json:"isRehydrate,omitempty"`
13479
13480 ProtectedItemType ProtectedItemType `json:"protectedItemType,omitempty"`
13481 }
13482
13483
13484 func (mffpi MabFileFolderProtectedItem) MarshalJSON() ([]byte, error) {
13485 mffpi.ProtectedItemType = ProtectedItemTypeMabFileFolderProtectedItem
13486 objectMap := make(map[string]interface{})
13487 if mffpi.FriendlyName != nil {
13488 objectMap["friendlyName"] = mffpi.FriendlyName
13489 }
13490 if mffpi.ComputerName != nil {
13491 objectMap["computerName"] = mffpi.ComputerName
13492 }
13493 if mffpi.LastBackupStatus != nil {
13494 objectMap["lastBackupStatus"] = mffpi.LastBackupStatus
13495 }
13496 if mffpi.LastBackupTime != nil {
13497 objectMap["lastBackupTime"] = mffpi.LastBackupTime
13498 }
13499 if mffpi.ProtectionState != nil {
13500 objectMap["protectionState"] = mffpi.ProtectionState
13501 }
13502 if mffpi.DeferredDeleteSyncTimeInUTC != nil {
13503 objectMap["deferredDeleteSyncTimeInUTC"] = mffpi.DeferredDeleteSyncTimeInUTC
13504 }
13505 if mffpi.ExtendedInfo != nil {
13506 objectMap["extendedInfo"] = mffpi.ExtendedInfo
13507 }
13508 if mffpi.BackupManagementType != "" {
13509 objectMap["backupManagementType"] = mffpi.BackupManagementType
13510 }
13511 if mffpi.WorkloadType != "" {
13512 objectMap["workloadType"] = mffpi.WorkloadType
13513 }
13514 if mffpi.ContainerName != nil {
13515 objectMap["containerName"] = mffpi.ContainerName
13516 }
13517 if mffpi.SourceResourceID != nil {
13518 objectMap["sourceResourceId"] = mffpi.SourceResourceID
13519 }
13520 if mffpi.PolicyID != nil {
13521 objectMap["policyId"] = mffpi.PolicyID
13522 }
13523 if mffpi.LastRecoveryPoint != nil {
13524 objectMap["lastRecoveryPoint"] = mffpi.LastRecoveryPoint
13525 }
13526 if mffpi.BackupSetName != nil {
13527 objectMap["backupSetName"] = mffpi.BackupSetName
13528 }
13529 if mffpi.CreateMode != "" {
13530 objectMap["createMode"] = mffpi.CreateMode
13531 }
13532 if mffpi.DeferredDeleteTimeInUTC != nil {
13533 objectMap["deferredDeleteTimeInUTC"] = mffpi.DeferredDeleteTimeInUTC
13534 }
13535 if mffpi.IsScheduledForDeferredDelete != nil {
13536 objectMap["isScheduledForDeferredDelete"] = mffpi.IsScheduledForDeferredDelete
13537 }
13538 if mffpi.DeferredDeleteTimeRemaining != nil {
13539 objectMap["deferredDeleteTimeRemaining"] = mffpi.DeferredDeleteTimeRemaining
13540 }
13541 if mffpi.IsDeferredDeleteScheduleUpcoming != nil {
13542 objectMap["isDeferredDeleteScheduleUpcoming"] = mffpi.IsDeferredDeleteScheduleUpcoming
13543 }
13544 if mffpi.IsRehydrate != nil {
13545 objectMap["isRehydrate"] = mffpi.IsRehydrate
13546 }
13547 if mffpi.ProtectedItemType != "" {
13548 objectMap["protectedItemType"] = mffpi.ProtectedItemType
13549 }
13550 return json.Marshal(objectMap)
13551 }
13552
13553
13554 func (mffpi MabFileFolderProtectedItem) AsAzureFileshareProtectedItem() (*AzureFileshareProtectedItem, bool) {
13555 return nil, false
13556 }
13557
13558
13559 func (mffpi MabFileFolderProtectedItem) AsAzureIaaSClassicComputeVMProtectedItem() (*AzureIaaSClassicComputeVMProtectedItem, bool) {
13560 return nil, false
13561 }
13562
13563
13564 func (mffpi MabFileFolderProtectedItem) AsAzureIaaSComputeVMProtectedItem() (*AzureIaaSComputeVMProtectedItem, bool) {
13565 return nil, false
13566 }
13567
13568
13569 func (mffpi MabFileFolderProtectedItem) AsAzureIaaSVMProtectedItem() (*AzureIaaSVMProtectedItem, bool) {
13570 return nil, false
13571 }
13572
13573
13574 func (mffpi MabFileFolderProtectedItem) AsBasicAzureIaaSVMProtectedItem() (BasicAzureIaaSVMProtectedItem, bool) {
13575 return nil, false
13576 }
13577
13578
13579 func (mffpi MabFileFolderProtectedItem) AsAzureSQLProtectedItem() (*AzureSQLProtectedItem, bool) {
13580 return nil, false
13581 }
13582
13583
13584 func (mffpi MabFileFolderProtectedItem) AsAzureVMWorkloadProtectedItem() (*AzureVMWorkloadProtectedItem, bool) {
13585 return nil, false
13586 }
13587
13588
13589 func (mffpi MabFileFolderProtectedItem) AsBasicAzureVMWorkloadProtectedItem() (BasicAzureVMWorkloadProtectedItem, bool) {
13590 return nil, false
13591 }
13592
13593
13594 func (mffpi MabFileFolderProtectedItem) AsAzureVMWorkloadSAPAseDatabaseProtectedItem() (*AzureVMWorkloadSAPAseDatabaseProtectedItem, bool) {
13595 return nil, false
13596 }
13597
13598
13599 func (mffpi MabFileFolderProtectedItem) AsAzureVMWorkloadSAPHanaDatabaseProtectedItem() (*AzureVMWorkloadSAPHanaDatabaseProtectedItem, bool) {
13600 return nil, false
13601 }
13602
13603
13604 func (mffpi MabFileFolderProtectedItem) AsAzureVMWorkloadSQLDatabaseProtectedItem() (*AzureVMWorkloadSQLDatabaseProtectedItem, bool) {
13605 return nil, false
13606 }
13607
13608
13609 func (mffpi MabFileFolderProtectedItem) AsDPMProtectedItem() (*DPMProtectedItem, bool) {
13610 return nil, false
13611 }
13612
13613
13614 func (mffpi MabFileFolderProtectedItem) AsGenericProtectedItem() (*GenericProtectedItem, bool) {
13615 return nil, false
13616 }
13617
13618
13619 func (mffpi MabFileFolderProtectedItem) AsMabFileFolderProtectedItem() (*MabFileFolderProtectedItem, bool) {
13620 return &mffpi, true
13621 }
13622
13623
13624 func (mffpi MabFileFolderProtectedItem) AsProtectedItem() (*ProtectedItem, bool) {
13625 return nil, false
13626 }
13627
13628
13629 func (mffpi MabFileFolderProtectedItem) AsBasicProtectedItem() (BasicProtectedItem, bool) {
13630 return &mffpi, true
13631 }
13632
13633
13634 type MabFileFolderProtectedItemExtendedInfo struct {
13635
13636 LastRefreshedAt *date.Time `json:"lastRefreshedAt,omitempty"`
13637
13638 OldestRecoveryPoint *date.Time `json:"oldestRecoveryPoint,omitempty"`
13639
13640 RecoveryPointCount *int32 `json:"recoveryPointCount,omitempty"`
13641 }
13642
13643
13644 type MabJob struct {
13645
13646 Duration *string `json:"duration,omitempty"`
13647
13648 ActionsInfo *[]JobSupportedAction `json:"actionsInfo,omitempty"`
13649
13650 MabServerName *string `json:"mabServerName,omitempty"`
13651
13652 MabServerType MabServerType `json:"mabServerType,omitempty"`
13653
13654 WorkloadType WorkloadType `json:"workloadType,omitempty"`
13655
13656 ErrorDetails *[]MabErrorInfo `json:"errorDetails,omitempty"`
13657
13658 ExtendedInfo *MabJobExtendedInfo `json:"extendedInfo,omitempty"`
13659
13660 EntityFriendlyName *string `json:"entityFriendlyName,omitempty"`
13661
13662 BackupManagementType ManagementType `json:"backupManagementType,omitempty"`
13663
13664 Operation *string `json:"operation,omitempty"`
13665
13666 Status *string `json:"status,omitempty"`
13667
13668 StartTime *date.Time `json:"startTime,omitempty"`
13669
13670 EndTime *date.Time `json:"endTime,omitempty"`
13671
13672 ActivityID *string `json:"activityId,omitempty"`
13673
13674 JobType JobType `json:"jobType,omitempty"`
13675 }
13676
13677
13678 func (mj MabJob) MarshalJSON() ([]byte, error) {
13679 mj.JobType = JobTypeMabJob
13680 objectMap := make(map[string]interface{})
13681 if mj.Duration != nil {
13682 objectMap["duration"] = mj.Duration
13683 }
13684 if mj.ActionsInfo != nil {
13685 objectMap["actionsInfo"] = mj.ActionsInfo
13686 }
13687 if mj.MabServerName != nil {
13688 objectMap["mabServerName"] = mj.MabServerName
13689 }
13690 if mj.MabServerType != "" {
13691 objectMap["mabServerType"] = mj.MabServerType
13692 }
13693 if mj.WorkloadType != "" {
13694 objectMap["workloadType"] = mj.WorkloadType
13695 }
13696 if mj.ErrorDetails != nil {
13697 objectMap["errorDetails"] = mj.ErrorDetails
13698 }
13699 if mj.ExtendedInfo != nil {
13700 objectMap["extendedInfo"] = mj.ExtendedInfo
13701 }
13702 if mj.EntityFriendlyName != nil {
13703 objectMap["entityFriendlyName"] = mj.EntityFriendlyName
13704 }
13705 if mj.BackupManagementType != "" {
13706 objectMap["backupManagementType"] = mj.BackupManagementType
13707 }
13708 if mj.Operation != nil {
13709 objectMap["operation"] = mj.Operation
13710 }
13711 if mj.Status != nil {
13712 objectMap["status"] = mj.Status
13713 }
13714 if mj.StartTime != nil {
13715 objectMap["startTime"] = mj.StartTime
13716 }
13717 if mj.EndTime != nil {
13718 objectMap["endTime"] = mj.EndTime
13719 }
13720 if mj.ActivityID != nil {
13721 objectMap["activityId"] = mj.ActivityID
13722 }
13723 if mj.JobType != "" {
13724 objectMap["jobType"] = mj.JobType
13725 }
13726 return json.Marshal(objectMap)
13727 }
13728
13729
13730 func (mj MabJob) AsAzureIaaSVMJob() (*AzureIaaSVMJob, bool) {
13731 return nil, false
13732 }
13733
13734
13735 func (mj MabJob) AsAzureStorageJob() (*AzureStorageJob, bool) {
13736 return nil, false
13737 }
13738
13739
13740 func (mj MabJob) AsAzureWorkloadJob() (*AzureWorkloadJob, bool) {
13741 return nil, false
13742 }
13743
13744
13745 func (mj MabJob) AsDpmJob() (*DpmJob, bool) {
13746 return nil, false
13747 }
13748
13749
13750 func (mj MabJob) AsMabJob() (*MabJob, bool) {
13751 return &mj, true
13752 }
13753
13754
13755 func (mj MabJob) AsJob() (*Job, bool) {
13756 return nil, false
13757 }
13758
13759
13760 func (mj MabJob) AsBasicJob() (BasicJob, bool) {
13761 return &mj, true
13762 }
13763
13764
13765 type MabJobExtendedInfo struct {
13766
13767 TasksList *[]MabJobTaskDetails `json:"tasksList,omitempty"`
13768
13769 PropertyBag map[string]*string `json:"propertyBag"`
13770
13771 DynamicErrorMessage *string `json:"dynamicErrorMessage,omitempty"`
13772 }
13773
13774
13775 func (mjei MabJobExtendedInfo) MarshalJSON() ([]byte, error) {
13776 objectMap := make(map[string]interface{})
13777 if mjei.TasksList != nil {
13778 objectMap["tasksList"] = mjei.TasksList
13779 }
13780 if mjei.PropertyBag != nil {
13781 objectMap["propertyBag"] = mjei.PropertyBag
13782 }
13783 if mjei.DynamicErrorMessage != nil {
13784 objectMap["dynamicErrorMessage"] = mjei.DynamicErrorMessage
13785 }
13786 return json.Marshal(objectMap)
13787 }
13788
13789
13790 type MabJobTaskDetails struct {
13791
13792 TaskID *string `json:"taskId,omitempty"`
13793
13794 StartTime *date.Time `json:"startTime,omitempty"`
13795
13796 EndTime *date.Time `json:"endTime,omitempty"`
13797
13798 Duration *string `json:"duration,omitempty"`
13799
13800 Status *string `json:"status,omitempty"`
13801 }
13802
13803
13804 type MabProtectionPolicy struct {
13805
13806 SchedulePolicy BasicSchedulePolicy `json:"schedulePolicy,omitempty"`
13807
13808 RetentionPolicy BasicRetentionPolicy `json:"retentionPolicy,omitempty"`
13809
13810 ProtectedItemsCount *int32 `json:"protectedItemsCount,omitempty"`
13811
13812 BackupManagementType ManagementTypeBasicProtectionPolicy `json:"backupManagementType,omitempty"`
13813 }
13814
13815
13816 func (mpp MabProtectionPolicy) MarshalJSON() ([]byte, error) {
13817 mpp.BackupManagementType = BackupManagementTypeMAB
13818 objectMap := make(map[string]interface{})
13819 objectMap["schedulePolicy"] = mpp.SchedulePolicy
13820 objectMap["retentionPolicy"] = mpp.RetentionPolicy
13821 if mpp.ProtectedItemsCount != nil {
13822 objectMap["protectedItemsCount"] = mpp.ProtectedItemsCount
13823 }
13824 if mpp.BackupManagementType != "" {
13825 objectMap["backupManagementType"] = mpp.BackupManagementType
13826 }
13827 return json.Marshal(objectMap)
13828 }
13829
13830
13831 func (mpp MabProtectionPolicy) AsAzureVMWorkloadProtectionPolicy() (*AzureVMWorkloadProtectionPolicy, bool) {
13832 return nil, false
13833 }
13834
13835
13836 func (mpp MabProtectionPolicy) AsAzureFileShareProtectionPolicy() (*AzureFileShareProtectionPolicy, bool) {
13837 return nil, false
13838 }
13839
13840
13841 func (mpp MabProtectionPolicy) AsAzureIaaSVMProtectionPolicy() (*AzureIaaSVMProtectionPolicy, bool) {
13842 return nil, false
13843 }
13844
13845
13846 func (mpp MabProtectionPolicy) AsAzureSQLProtectionPolicy() (*AzureSQLProtectionPolicy, bool) {
13847 return nil, false
13848 }
13849
13850
13851 func (mpp MabProtectionPolicy) AsGenericProtectionPolicy() (*GenericProtectionPolicy, bool) {
13852 return nil, false
13853 }
13854
13855
13856 func (mpp MabProtectionPolicy) AsMabProtectionPolicy() (*MabProtectionPolicy, bool) {
13857 return &mpp, true
13858 }
13859
13860
13861 func (mpp MabProtectionPolicy) AsProtectionPolicy() (*ProtectionPolicy, bool) {
13862 return nil, false
13863 }
13864
13865
13866 func (mpp MabProtectionPolicy) AsBasicProtectionPolicy() (BasicProtectionPolicy, bool) {
13867 return &mpp, true
13868 }
13869
13870
13871 func (mpp *MabProtectionPolicy) UnmarshalJSON(body []byte) error {
13872 var m map[string]*json.RawMessage
13873 err := json.Unmarshal(body, &m)
13874 if err != nil {
13875 return err
13876 }
13877 for k, v := range m {
13878 switch k {
13879 case "schedulePolicy":
13880 if v != nil {
13881 schedulePolicy, err := unmarshalBasicSchedulePolicy(*v)
13882 if err != nil {
13883 return err
13884 }
13885 mpp.SchedulePolicy = schedulePolicy
13886 }
13887 case "retentionPolicy":
13888 if v != nil {
13889 retentionPolicy, err := unmarshalBasicRetentionPolicy(*v)
13890 if err != nil {
13891 return err
13892 }
13893 mpp.RetentionPolicy = retentionPolicy
13894 }
13895 case "protectedItemsCount":
13896 if v != nil {
13897 var protectedItemsCount int32
13898 err = json.Unmarshal(*v, &protectedItemsCount)
13899 if err != nil {
13900 return err
13901 }
13902 mpp.ProtectedItemsCount = &protectedItemsCount
13903 }
13904 case "backupManagementType":
13905 if v != nil {
13906 var backupManagementType ManagementTypeBasicProtectionPolicy
13907 err = json.Unmarshal(*v, &backupManagementType)
13908 if err != nil {
13909 return err
13910 }
13911 mpp.BackupManagementType = backupManagementType
13912 }
13913 }
13914 }
13915
13916 return nil
13917 }
13918
13919
13920 type ManagementUsage struct {
13921
13922 Unit UsagesUnit `json:"unit,omitempty"`
13923
13924 QuotaPeriod *string `json:"quotaPeriod,omitempty"`
13925
13926 NextResetTime *date.Time `json:"nextResetTime,omitempty"`
13927
13928 CurrentValue *int64 `json:"currentValue,omitempty"`
13929
13930 Limit *int64 `json:"limit,omitempty"`
13931
13932 Name *NameInfo `json:"name,omitempty"`
13933 }
13934
13935
13936 type ManagementUsageList struct {
13937 autorest.Response `json:"-"`
13938
13939 Value *[]ManagementUsage `json:"value,omitempty"`
13940 }
13941
13942
13943 type MonthlyRetentionSchedule struct {
13944
13945 RetentionScheduleFormatType RetentionScheduleFormat `json:"retentionScheduleFormatType,omitempty"`
13946
13947 RetentionScheduleDaily *DailyRetentionFormat `json:"retentionScheduleDaily,omitempty"`
13948
13949 RetentionScheduleWeekly *WeeklyRetentionFormat `json:"retentionScheduleWeekly,omitempty"`
13950
13951 RetentionTimes *[]date.Time `json:"retentionTimes,omitempty"`
13952
13953 RetentionDuration *RetentionDuration `json:"retentionDuration,omitempty"`
13954 }
13955
13956
13957 type NameInfo struct {
13958
13959 Value *string `json:"value,omitempty"`
13960
13961 LocalizedValue *string `json:"localizedValue,omitempty"`
13962 }
13963
13964
13965 type OperationResultInfo struct {
13966
13967 JobList *[]string `json:"jobList,omitempty"`
13968
13969 ObjectType ObjectTypeBasicOperationResultInfoBase `json:"objectType,omitempty"`
13970 }
13971
13972
13973 func (ori OperationResultInfo) MarshalJSON() ([]byte, error) {
13974 ori.ObjectType = ObjectTypeOperationResultInfo
13975 objectMap := make(map[string]interface{})
13976 if ori.JobList != nil {
13977 objectMap["jobList"] = ori.JobList
13978 }
13979 if ori.ObjectType != "" {
13980 objectMap["objectType"] = ori.ObjectType
13981 }
13982 return json.Marshal(objectMap)
13983 }
13984
13985
13986 func (ori OperationResultInfo) AsExportJobsOperationResultInfo() (*ExportJobsOperationResultInfo, bool) {
13987 return nil, false
13988 }
13989
13990
13991 func (ori OperationResultInfo) AsOperationResultInfo() (*OperationResultInfo, bool) {
13992 return &ori, true
13993 }
13994
13995
13996 func (ori OperationResultInfo) AsOperationResultInfoBase() (*OperationResultInfoBase, bool) {
13997 return nil, false
13998 }
13999
14000
14001 func (ori OperationResultInfo) AsBasicOperationResultInfoBase() (BasicOperationResultInfoBase, bool) {
14002 return &ori, true
14003 }
14004
14005
14006 type BasicOperationResultInfoBase interface {
14007 AsExportJobsOperationResultInfo() (*ExportJobsOperationResultInfo, bool)
14008 AsOperationResultInfo() (*OperationResultInfo, bool)
14009 AsOperationResultInfoBase() (*OperationResultInfoBase, bool)
14010 }
14011
14012
14013 type OperationResultInfoBase struct {
14014
14015 ObjectType ObjectTypeBasicOperationResultInfoBase `json:"objectType,omitempty"`
14016 }
14017
14018 func unmarshalBasicOperationResultInfoBase(body []byte) (BasicOperationResultInfoBase, error) {
14019 var m map[string]interface{}
14020 err := json.Unmarshal(body, &m)
14021 if err != nil {
14022 return nil, err
14023 }
14024
14025 switch m["objectType"] {
14026 case string(ObjectTypeExportJobsOperationResultInfo):
14027 var ejori ExportJobsOperationResultInfo
14028 err := json.Unmarshal(body, &ejori)
14029 return ejori, err
14030 case string(ObjectTypeOperationResultInfo):
14031 var ori OperationResultInfo
14032 err := json.Unmarshal(body, &ori)
14033 return ori, err
14034 default:
14035 var orib OperationResultInfoBase
14036 err := json.Unmarshal(body, &orib)
14037 return orib, err
14038 }
14039 }
14040 func unmarshalBasicOperationResultInfoBaseArray(body []byte) ([]BasicOperationResultInfoBase, error) {
14041 var rawMessages []*json.RawMessage
14042 err := json.Unmarshal(body, &rawMessages)
14043 if err != nil {
14044 return nil, err
14045 }
14046
14047 oribArray := make([]BasicOperationResultInfoBase, len(rawMessages))
14048
14049 for index, rawMessage := range rawMessages {
14050 orib, err := unmarshalBasicOperationResultInfoBase(*rawMessage)
14051 if err != nil {
14052 return nil, err
14053 }
14054 oribArray[index] = orib
14055 }
14056 return oribArray, nil
14057 }
14058
14059
14060 func (orib OperationResultInfoBase) MarshalJSON() ([]byte, error) {
14061 orib.ObjectType = ObjectTypeOperationResultInfoBase
14062 objectMap := make(map[string]interface{})
14063 if orib.ObjectType != "" {
14064 objectMap["objectType"] = orib.ObjectType
14065 }
14066 return json.Marshal(objectMap)
14067 }
14068
14069
14070 func (orib OperationResultInfoBase) AsExportJobsOperationResultInfo() (*ExportJobsOperationResultInfo, bool) {
14071 return nil, false
14072 }
14073
14074
14075 func (orib OperationResultInfoBase) AsOperationResultInfo() (*OperationResultInfo, bool) {
14076 return nil, false
14077 }
14078
14079
14080 func (orib OperationResultInfoBase) AsOperationResultInfoBase() (*OperationResultInfoBase, bool) {
14081 return &orib, true
14082 }
14083
14084
14085 func (orib OperationResultInfoBase) AsBasicOperationResultInfoBase() (BasicOperationResultInfoBase, bool) {
14086 return &orib, true
14087 }
14088
14089
14090 type OperationResultInfoBaseResource struct {
14091 autorest.Response `json:"-"`
14092
14093 Operation BasicOperationResultInfoBase `json:"operation,omitempty"`
14094
14095 StatusCode HTTPStatusCode `json:"statusCode,omitempty"`
14096
14097 Headers map[string][]string `json:"headers"`
14098 }
14099
14100
14101 func (oribr OperationResultInfoBaseResource) MarshalJSON() ([]byte, error) {
14102 objectMap := make(map[string]interface{})
14103 objectMap["operation"] = oribr.Operation
14104 if oribr.StatusCode != "" {
14105 objectMap["statusCode"] = oribr.StatusCode
14106 }
14107 if oribr.Headers != nil {
14108 objectMap["headers"] = oribr.Headers
14109 }
14110 return json.Marshal(objectMap)
14111 }
14112
14113
14114 func (oribr *OperationResultInfoBaseResource) UnmarshalJSON(body []byte) error {
14115 var m map[string]*json.RawMessage
14116 err := json.Unmarshal(body, &m)
14117 if err != nil {
14118 return err
14119 }
14120 for k, v := range m {
14121 switch k {
14122 case "operation":
14123 if v != nil {
14124 operation, err := unmarshalBasicOperationResultInfoBase(*v)
14125 if err != nil {
14126 return err
14127 }
14128 oribr.Operation = operation
14129 }
14130 case "statusCode":
14131 if v != nil {
14132 var statusCode HTTPStatusCode
14133 err = json.Unmarshal(*v, &statusCode)
14134 if err != nil {
14135 return err
14136 }
14137 oribr.StatusCode = statusCode
14138 }
14139 case "headers":
14140 if v != nil {
14141 var headers map[string][]string
14142 err = json.Unmarshal(*v, &headers)
14143 if err != nil {
14144 return err
14145 }
14146 oribr.Headers = headers
14147 }
14148 }
14149 }
14150
14151 return nil
14152 }
14153
14154
14155 type OperationStatus struct {
14156 autorest.Response `json:"-"`
14157
14158 ID *string `json:"id,omitempty"`
14159
14160 Name *string `json:"name,omitempty"`
14161
14162 Status OperationStatusValues `json:"status,omitempty"`
14163
14164 StartTime *date.Time `json:"startTime,omitempty"`
14165
14166 EndTime *date.Time `json:"endTime,omitempty"`
14167
14168 Error *OperationStatusError `json:"error,omitempty"`
14169
14170 Properties BasicOperationStatusExtendedInfo `json:"properties,omitempty"`
14171 }
14172
14173
14174 func (osVar *OperationStatus) UnmarshalJSON(body []byte) error {
14175 var m map[string]*json.RawMessage
14176 err := json.Unmarshal(body, &m)
14177 if err != nil {
14178 return err
14179 }
14180 for k, v := range m {
14181 switch k {
14182 case "id":
14183 if v != nil {
14184 var ID string
14185 err = json.Unmarshal(*v, &ID)
14186 if err != nil {
14187 return err
14188 }
14189 osVar.ID = &ID
14190 }
14191 case "name":
14192 if v != nil {
14193 var name string
14194 err = json.Unmarshal(*v, &name)
14195 if err != nil {
14196 return err
14197 }
14198 osVar.Name = &name
14199 }
14200 case "status":
14201 if v != nil {
14202 var status OperationStatusValues
14203 err = json.Unmarshal(*v, &status)
14204 if err != nil {
14205 return err
14206 }
14207 osVar.Status = status
14208 }
14209 case "startTime":
14210 if v != nil {
14211 var startTime date.Time
14212 err = json.Unmarshal(*v, &startTime)
14213 if err != nil {
14214 return err
14215 }
14216 osVar.StartTime = &startTime
14217 }
14218 case "endTime":
14219 if v != nil {
14220 var endTime date.Time
14221 err = json.Unmarshal(*v, &endTime)
14222 if err != nil {
14223 return err
14224 }
14225 osVar.EndTime = &endTime
14226 }
14227 case "error":
14228 if v != nil {
14229 var errorVar OperationStatusError
14230 err = json.Unmarshal(*v, &errorVar)
14231 if err != nil {
14232 return err
14233 }
14234 osVar.Error = &errorVar
14235 }
14236 case "properties":
14237 if v != nil {
14238 properties, err := unmarshalBasicOperationStatusExtendedInfo(*v)
14239 if err != nil {
14240 return err
14241 }
14242 osVar.Properties = properties
14243 }
14244 }
14245 }
14246
14247 return nil
14248 }
14249
14250
14251 type OperationStatusError struct {
14252
14253 Code *string `json:"code,omitempty"`
14254
14255 Message *string `json:"message,omitempty"`
14256 }
14257
14258
14259 type BasicOperationStatusExtendedInfo interface {
14260 AsOperationStatusJobExtendedInfo() (*OperationStatusJobExtendedInfo, bool)
14261 AsOperationStatusJobsExtendedInfo() (*OperationStatusJobsExtendedInfo, bool)
14262 AsOperationStatusProvisionILRExtendedInfo() (*OperationStatusProvisionILRExtendedInfo, bool)
14263 AsOperationStatusExtendedInfo() (*OperationStatusExtendedInfo, bool)
14264 }
14265
14266
14267 type OperationStatusExtendedInfo struct {
14268
14269 ObjectType ObjectType `json:"objectType,omitempty"`
14270 }
14271
14272 func unmarshalBasicOperationStatusExtendedInfo(body []byte) (BasicOperationStatusExtendedInfo, error) {
14273 var m map[string]interface{}
14274 err := json.Unmarshal(body, &m)
14275 if err != nil {
14276 return nil, err
14277 }
14278
14279 switch m["objectType"] {
14280 case string(ObjectTypeOperationStatusJobExtendedInfo):
14281 var osjei OperationStatusJobExtendedInfo
14282 err := json.Unmarshal(body, &osjei)
14283 return osjei, err
14284 case string(ObjectTypeOperationStatusJobsExtendedInfo):
14285 var osjei OperationStatusJobsExtendedInfo
14286 err := json.Unmarshal(body, &osjei)
14287 return osjei, err
14288 case string(ObjectTypeOperationStatusProvisionILRExtendedInfo):
14289 var ospiei OperationStatusProvisionILRExtendedInfo
14290 err := json.Unmarshal(body, &ospiei)
14291 return ospiei, err
14292 default:
14293 var osei OperationStatusExtendedInfo
14294 err := json.Unmarshal(body, &osei)
14295 return osei, err
14296 }
14297 }
14298 func unmarshalBasicOperationStatusExtendedInfoArray(body []byte) ([]BasicOperationStatusExtendedInfo, error) {
14299 var rawMessages []*json.RawMessage
14300 err := json.Unmarshal(body, &rawMessages)
14301 if err != nil {
14302 return nil, err
14303 }
14304
14305 oseiArray := make([]BasicOperationStatusExtendedInfo, len(rawMessages))
14306
14307 for index, rawMessage := range rawMessages {
14308 osei, err := unmarshalBasicOperationStatusExtendedInfo(*rawMessage)
14309 if err != nil {
14310 return nil, err
14311 }
14312 oseiArray[index] = osei
14313 }
14314 return oseiArray, nil
14315 }
14316
14317
14318 func (osei OperationStatusExtendedInfo) MarshalJSON() ([]byte, error) {
14319 osei.ObjectType = ObjectTypeOperationStatusExtendedInfo
14320 objectMap := make(map[string]interface{})
14321 if osei.ObjectType != "" {
14322 objectMap["objectType"] = osei.ObjectType
14323 }
14324 return json.Marshal(objectMap)
14325 }
14326
14327
14328 func (osei OperationStatusExtendedInfo) AsOperationStatusJobExtendedInfo() (*OperationStatusJobExtendedInfo, bool) {
14329 return nil, false
14330 }
14331
14332
14333 func (osei OperationStatusExtendedInfo) AsOperationStatusJobsExtendedInfo() (*OperationStatusJobsExtendedInfo, bool) {
14334 return nil, false
14335 }
14336
14337
14338 func (osei OperationStatusExtendedInfo) AsOperationStatusProvisionILRExtendedInfo() (*OperationStatusProvisionILRExtendedInfo, bool) {
14339 return nil, false
14340 }
14341
14342
14343 func (osei OperationStatusExtendedInfo) AsOperationStatusExtendedInfo() (*OperationStatusExtendedInfo, bool) {
14344 return &osei, true
14345 }
14346
14347
14348 func (osei OperationStatusExtendedInfo) AsBasicOperationStatusExtendedInfo() (BasicOperationStatusExtendedInfo, bool) {
14349 return &osei, true
14350 }
14351
14352
14353 type OperationStatusJobExtendedInfo struct {
14354
14355 JobID *string `json:"jobId,omitempty"`
14356
14357 ObjectType ObjectType `json:"objectType,omitempty"`
14358 }
14359
14360
14361 func (osjei OperationStatusJobExtendedInfo) MarshalJSON() ([]byte, error) {
14362 osjei.ObjectType = ObjectTypeOperationStatusJobExtendedInfo
14363 objectMap := make(map[string]interface{})
14364 if osjei.JobID != nil {
14365 objectMap["jobId"] = osjei.JobID
14366 }
14367 if osjei.ObjectType != "" {
14368 objectMap["objectType"] = osjei.ObjectType
14369 }
14370 return json.Marshal(objectMap)
14371 }
14372
14373
14374 func (osjei OperationStatusJobExtendedInfo) AsOperationStatusJobExtendedInfo() (*OperationStatusJobExtendedInfo, bool) {
14375 return &osjei, true
14376 }
14377
14378
14379 func (osjei OperationStatusJobExtendedInfo) AsOperationStatusJobsExtendedInfo() (*OperationStatusJobsExtendedInfo, bool) {
14380 return nil, false
14381 }
14382
14383
14384 func (osjei OperationStatusJobExtendedInfo) AsOperationStatusProvisionILRExtendedInfo() (*OperationStatusProvisionILRExtendedInfo, bool) {
14385 return nil, false
14386 }
14387
14388
14389 func (osjei OperationStatusJobExtendedInfo) AsOperationStatusExtendedInfo() (*OperationStatusExtendedInfo, bool) {
14390 return nil, false
14391 }
14392
14393
14394 func (osjei OperationStatusJobExtendedInfo) AsBasicOperationStatusExtendedInfo() (BasicOperationStatusExtendedInfo, bool) {
14395 return &osjei, true
14396 }
14397
14398
14399 type OperationStatusJobsExtendedInfo struct {
14400
14401 JobIds *[]string `json:"jobIds,omitempty"`
14402
14403 FailedJobsError map[string]*string `json:"failedJobsError"`
14404
14405 ObjectType ObjectType `json:"objectType,omitempty"`
14406 }
14407
14408
14409 func (osjei OperationStatusJobsExtendedInfo) MarshalJSON() ([]byte, error) {
14410 osjei.ObjectType = ObjectTypeOperationStatusJobsExtendedInfo
14411 objectMap := make(map[string]interface{})
14412 if osjei.JobIds != nil {
14413 objectMap["jobIds"] = osjei.JobIds
14414 }
14415 if osjei.FailedJobsError != nil {
14416 objectMap["failedJobsError"] = osjei.FailedJobsError
14417 }
14418 if osjei.ObjectType != "" {
14419 objectMap["objectType"] = osjei.ObjectType
14420 }
14421 return json.Marshal(objectMap)
14422 }
14423
14424
14425 func (osjei OperationStatusJobsExtendedInfo) AsOperationStatusJobExtendedInfo() (*OperationStatusJobExtendedInfo, bool) {
14426 return nil, false
14427 }
14428
14429
14430 func (osjei OperationStatusJobsExtendedInfo) AsOperationStatusJobsExtendedInfo() (*OperationStatusJobsExtendedInfo, bool) {
14431 return &osjei, true
14432 }
14433
14434
14435 func (osjei OperationStatusJobsExtendedInfo) AsOperationStatusProvisionILRExtendedInfo() (*OperationStatusProvisionILRExtendedInfo, bool) {
14436 return nil, false
14437 }
14438
14439
14440 func (osjei OperationStatusJobsExtendedInfo) AsOperationStatusExtendedInfo() (*OperationStatusExtendedInfo, bool) {
14441 return nil, false
14442 }
14443
14444
14445 func (osjei OperationStatusJobsExtendedInfo) AsBasicOperationStatusExtendedInfo() (BasicOperationStatusExtendedInfo, bool) {
14446 return &osjei, true
14447 }
14448
14449
14450 type OperationStatusProvisionILRExtendedInfo struct {
14451
14452 RecoveryTarget *InstantItemRecoveryTarget `json:"recoveryTarget,omitempty"`
14453
14454 ObjectType ObjectType `json:"objectType,omitempty"`
14455 }
14456
14457
14458 func (ospiei OperationStatusProvisionILRExtendedInfo) MarshalJSON() ([]byte, error) {
14459 ospiei.ObjectType = ObjectTypeOperationStatusProvisionILRExtendedInfo
14460 objectMap := make(map[string]interface{})
14461 if ospiei.RecoveryTarget != nil {
14462 objectMap["recoveryTarget"] = ospiei.RecoveryTarget
14463 }
14464 if ospiei.ObjectType != "" {
14465 objectMap["objectType"] = ospiei.ObjectType
14466 }
14467 return json.Marshal(objectMap)
14468 }
14469
14470
14471 func (ospiei OperationStatusProvisionILRExtendedInfo) AsOperationStatusJobExtendedInfo() (*OperationStatusJobExtendedInfo, bool) {
14472 return nil, false
14473 }
14474
14475
14476 func (ospiei OperationStatusProvisionILRExtendedInfo) AsOperationStatusJobsExtendedInfo() (*OperationStatusJobsExtendedInfo, bool) {
14477 return nil, false
14478 }
14479
14480
14481 func (ospiei OperationStatusProvisionILRExtendedInfo) AsOperationStatusProvisionILRExtendedInfo() (*OperationStatusProvisionILRExtendedInfo, bool) {
14482 return &ospiei, true
14483 }
14484
14485
14486 func (ospiei OperationStatusProvisionILRExtendedInfo) AsOperationStatusExtendedInfo() (*OperationStatusExtendedInfo, bool) {
14487 return nil, false
14488 }
14489
14490
14491 func (ospiei OperationStatusProvisionILRExtendedInfo) AsBasicOperationStatusExtendedInfo() (BasicOperationStatusExtendedInfo, bool) {
14492 return &ospiei, true
14493 }
14494
14495
14496 type OperationWorkerResponse struct {
14497
14498 StatusCode HTTPStatusCode `json:"statusCode,omitempty"`
14499
14500 Headers map[string][]string `json:"headers"`
14501 }
14502
14503
14504 func (owr OperationWorkerResponse) MarshalJSON() ([]byte, error) {
14505 objectMap := make(map[string]interface{})
14506 if owr.StatusCode != "" {
14507 objectMap["statusCode"] = owr.StatusCode
14508 }
14509 if owr.Headers != nil {
14510 objectMap["headers"] = owr.Headers
14511 }
14512 return json.Marshal(objectMap)
14513 }
14514
14515
14516 type PointInTimeRange struct {
14517
14518 StartTime *date.Time `json:"startTime,omitempty"`
14519
14520 EndTime *date.Time `json:"endTime,omitempty"`
14521 }
14522
14523
14524 type PreBackupValidation struct {
14525
14526 Status InquiryStatus `json:"status,omitempty"`
14527
14528 Code *string `json:"code,omitempty"`
14529
14530 Message *string `json:"message,omitempty"`
14531 }
14532
14533
14534
14535
14536
14537
14538
14539 type PreValidateEnableBackupRequest struct {
14540
14541 ResourceType DataSourceType `json:"resourceType,omitempty"`
14542
14543 ResourceID *string `json:"resourceId,omitempty"`
14544
14545 VaultID *string `json:"vaultId,omitempty"`
14546
14547 Properties *string `json:"properties,omitempty"`
14548 }
14549
14550
14551 type PreValidateEnableBackupResponse struct {
14552 autorest.Response `json:"-"`
14553
14554 Status ValidationStatus `json:"status,omitempty"`
14555
14556 ErrorCode *string `json:"errorCode,omitempty"`
14557
14558 ErrorMessage *string `json:"errorMessage,omitempty"`
14559
14560 Recommendation *string `json:"recommendation,omitempty"`
14561
14562
14563 ContainerName *string `json:"containerName,omitempty"`
14564
14565 ProtectedItemName *string `json:"protectedItemName,omitempty"`
14566 }
14567
14568
14569 type PrivateEndpoint struct {
14570
14571 ID *string `json:"id,omitempty"`
14572 }
14573
14574
14575 type PrivateEndpointConnection struct {
14576
14577 ProvisioningState ProvisioningState `json:"provisioningState,omitempty"`
14578
14579 PrivateEndpoint *PrivateEndpoint `json:"privateEndpoint,omitempty"`
14580
14581 PrivateLinkServiceConnectionState *PrivateLinkServiceConnectionState `json:"privateLinkServiceConnectionState,omitempty"`
14582 }
14583
14584
14585
14586 type PrivateEndpointConnectionDeleteFuture struct {
14587 azure.FutureAPI
14588
14589
14590 Result func(PrivateEndpointConnectionClient) (autorest.Response, error)
14591 }
14592
14593
14594 func (future *PrivateEndpointConnectionDeleteFuture) UnmarshalJSON(body []byte) error {
14595 var azFuture azure.Future
14596 if err := json.Unmarshal(body, &azFuture); err != nil {
14597 return err
14598 }
14599 future.FutureAPI = &azFuture
14600 future.Result = future.result
14601 return nil
14602 }
14603
14604
14605 func (future *PrivateEndpointConnectionDeleteFuture) result(client PrivateEndpointConnectionClient) (ar autorest.Response, err error) {
14606 var done bool
14607 done, err = future.DoneWithContext(context.Background(), client)
14608 if err != nil {
14609 err = autorest.NewErrorWithError(err, "backup.PrivateEndpointConnectionDeleteFuture", "Result", future.Response(), "Polling failure")
14610 return
14611 }
14612 if !done {
14613 ar.Response = future.Response()
14614 err = azure.NewAsyncOpIncompleteError("backup.PrivateEndpointConnectionDeleteFuture")
14615 return
14616 }
14617 ar.Response = future.Response()
14618 return
14619 }
14620
14621
14622
14623 type PrivateEndpointConnectionPutFuture struct {
14624 azure.FutureAPI
14625
14626
14627 Result func(PrivateEndpointConnectionClient) (PrivateEndpointConnectionResource, error)
14628 }
14629
14630
14631 func (future *PrivateEndpointConnectionPutFuture) UnmarshalJSON(body []byte) error {
14632 var azFuture azure.Future
14633 if err := json.Unmarshal(body, &azFuture); err != nil {
14634 return err
14635 }
14636 future.FutureAPI = &azFuture
14637 future.Result = future.result
14638 return nil
14639 }
14640
14641
14642 func (future *PrivateEndpointConnectionPutFuture) result(client PrivateEndpointConnectionClient) (pecr PrivateEndpointConnectionResource, err error) {
14643 var done bool
14644 done, err = future.DoneWithContext(context.Background(), client)
14645 if err != nil {
14646 err = autorest.NewErrorWithError(err, "backup.PrivateEndpointConnectionPutFuture", "Result", future.Response(), "Polling failure")
14647 return
14648 }
14649 if !done {
14650 pecr.Response.Response = future.Response()
14651 err = azure.NewAsyncOpIncompleteError("backup.PrivateEndpointConnectionPutFuture")
14652 return
14653 }
14654 sender := autorest.DecorateSender(client, autorest.DoRetryForStatusCodes(client.RetryAttempts, client.RetryDuration, autorest.StatusCodesForRetry...))
14655 if pecr.Response.Response, err = future.GetResult(sender); err == nil && pecr.Response.Response.StatusCode != http.StatusNoContent {
14656 pecr, err = client.PutResponder(pecr.Response.Response)
14657 if err != nil {
14658 err = autorest.NewErrorWithError(err, "backup.PrivateEndpointConnectionPutFuture", "Result", pecr.Response.Response, "Failure responding to request")
14659 }
14660 }
14661 return
14662 }
14663
14664
14665 type PrivateEndpointConnectionResource struct {
14666 autorest.Response `json:"-"`
14667
14668 Properties *PrivateEndpointConnection `json:"properties,omitempty"`
14669
14670 ID *string `json:"id,omitempty"`
14671
14672 Name *string `json:"name,omitempty"`
14673
14674 Type *string `json:"type,omitempty"`
14675
14676 Location *string `json:"location,omitempty"`
14677
14678 Tags map[string]*string `json:"tags"`
14679
14680 ETag *string `json:"eTag,omitempty"`
14681 }
14682
14683
14684 func (pecr PrivateEndpointConnectionResource) MarshalJSON() ([]byte, error) {
14685 objectMap := make(map[string]interface{})
14686 if pecr.Properties != nil {
14687 objectMap["properties"] = pecr.Properties
14688 }
14689 if pecr.Location != nil {
14690 objectMap["location"] = pecr.Location
14691 }
14692 if pecr.Tags != nil {
14693 objectMap["tags"] = pecr.Tags
14694 }
14695 if pecr.ETag != nil {
14696 objectMap["eTag"] = pecr.ETag
14697 }
14698 return json.Marshal(objectMap)
14699 }
14700
14701
14702 type PrivateLinkServiceConnectionState struct {
14703
14704 Status PrivateEndpointConnectionStatus `json:"status,omitempty"`
14705
14706 Description *string `json:"description,omitempty"`
14707
14708 ActionRequired *string `json:"actionRequired,omitempty"`
14709 }
14710
14711
14712 type BasicProtectableContainer interface {
14713 AsAzureStorageProtectableContainer() (*AzureStorageProtectableContainer, bool)
14714 AsAzureVMAppContainerProtectableContainer() (*AzureVMAppContainerProtectableContainer, bool)
14715 AsProtectableContainer() (*ProtectableContainer, bool)
14716 }
14717
14718
14719 type ProtectableContainer struct {
14720
14721 FriendlyName *string `json:"friendlyName,omitempty"`
14722
14723 BackupManagementType ManagementType `json:"backupManagementType,omitempty"`
14724
14725 HealthStatus *string `json:"healthStatus,omitempty"`
14726
14727 ContainerID *string `json:"containerId,omitempty"`
14728
14729 ProtectableContainerType ProtectableContainerType `json:"protectableContainerType,omitempty"`
14730 }
14731
14732 func unmarshalBasicProtectableContainer(body []byte) (BasicProtectableContainer, error) {
14733 var m map[string]interface{}
14734 err := json.Unmarshal(body, &m)
14735 if err != nil {
14736 return nil, err
14737 }
14738
14739 switch m["protectableContainerType"] {
14740 case string(ProtectableContainerTypeStorageContainer):
14741 var aspc AzureStorageProtectableContainer
14742 err := json.Unmarshal(body, &aspc)
14743 return aspc, err
14744 case string(ProtectableContainerTypeVMAppContainer):
14745 var avacpc AzureVMAppContainerProtectableContainer
14746 err := json.Unmarshal(body, &avacpc)
14747 return avacpc, err
14748 default:
14749 var pc ProtectableContainer
14750 err := json.Unmarshal(body, &pc)
14751 return pc, err
14752 }
14753 }
14754 func unmarshalBasicProtectableContainerArray(body []byte) ([]BasicProtectableContainer, error) {
14755 var rawMessages []*json.RawMessage
14756 err := json.Unmarshal(body, &rawMessages)
14757 if err != nil {
14758 return nil, err
14759 }
14760
14761 pcArray := make([]BasicProtectableContainer, len(rawMessages))
14762
14763 for index, rawMessage := range rawMessages {
14764 pc, err := unmarshalBasicProtectableContainer(*rawMessage)
14765 if err != nil {
14766 return nil, err
14767 }
14768 pcArray[index] = pc
14769 }
14770 return pcArray, nil
14771 }
14772
14773
14774 func (pc ProtectableContainer) MarshalJSON() ([]byte, error) {
14775 pc.ProtectableContainerType = ProtectableContainerTypeProtectableContainer
14776 objectMap := make(map[string]interface{})
14777 if pc.FriendlyName != nil {
14778 objectMap["friendlyName"] = pc.FriendlyName
14779 }
14780 if pc.BackupManagementType != "" {
14781 objectMap["backupManagementType"] = pc.BackupManagementType
14782 }
14783 if pc.HealthStatus != nil {
14784 objectMap["healthStatus"] = pc.HealthStatus
14785 }
14786 if pc.ContainerID != nil {
14787 objectMap["containerId"] = pc.ContainerID
14788 }
14789 if pc.ProtectableContainerType != "" {
14790 objectMap["protectableContainerType"] = pc.ProtectableContainerType
14791 }
14792 return json.Marshal(objectMap)
14793 }
14794
14795
14796 func (pc ProtectableContainer) AsAzureStorageProtectableContainer() (*AzureStorageProtectableContainer, bool) {
14797 return nil, false
14798 }
14799
14800
14801 func (pc ProtectableContainer) AsAzureVMAppContainerProtectableContainer() (*AzureVMAppContainerProtectableContainer, bool) {
14802 return nil, false
14803 }
14804
14805
14806 func (pc ProtectableContainer) AsProtectableContainer() (*ProtectableContainer, bool) {
14807 return &pc, true
14808 }
14809
14810
14811 func (pc ProtectableContainer) AsBasicProtectableContainer() (BasicProtectableContainer, bool) {
14812 return &pc, true
14813 }
14814
14815
14816 type ProtectableContainerResource struct {
14817
14818 Properties BasicProtectableContainer `json:"properties,omitempty"`
14819
14820 ID *string `json:"id,omitempty"`
14821
14822 Name *string `json:"name,omitempty"`
14823
14824 Type *string `json:"type,omitempty"`
14825
14826 Location *string `json:"location,omitempty"`
14827
14828 Tags map[string]*string `json:"tags"`
14829
14830 ETag *string `json:"eTag,omitempty"`
14831 }
14832
14833
14834 func (pcr ProtectableContainerResource) MarshalJSON() ([]byte, error) {
14835 objectMap := make(map[string]interface{})
14836 objectMap["properties"] = pcr.Properties
14837 if pcr.Location != nil {
14838 objectMap["location"] = pcr.Location
14839 }
14840 if pcr.Tags != nil {
14841 objectMap["tags"] = pcr.Tags
14842 }
14843 if pcr.ETag != nil {
14844 objectMap["eTag"] = pcr.ETag
14845 }
14846 return json.Marshal(objectMap)
14847 }
14848
14849
14850 func (pcr *ProtectableContainerResource) UnmarshalJSON(body []byte) error {
14851 var m map[string]*json.RawMessage
14852 err := json.Unmarshal(body, &m)
14853 if err != nil {
14854 return err
14855 }
14856 for k, v := range m {
14857 switch k {
14858 case "properties":
14859 if v != nil {
14860 properties, err := unmarshalBasicProtectableContainer(*v)
14861 if err != nil {
14862 return err
14863 }
14864 pcr.Properties = properties
14865 }
14866 case "id":
14867 if v != nil {
14868 var ID string
14869 err = json.Unmarshal(*v, &ID)
14870 if err != nil {
14871 return err
14872 }
14873 pcr.ID = &ID
14874 }
14875 case "name":
14876 if v != nil {
14877 var name string
14878 err = json.Unmarshal(*v, &name)
14879 if err != nil {
14880 return err
14881 }
14882 pcr.Name = &name
14883 }
14884 case "type":
14885 if v != nil {
14886 var typeVar string
14887 err = json.Unmarshal(*v, &typeVar)
14888 if err != nil {
14889 return err
14890 }
14891 pcr.Type = &typeVar
14892 }
14893 case "location":
14894 if v != nil {
14895 var location string
14896 err = json.Unmarshal(*v, &location)
14897 if err != nil {
14898 return err
14899 }
14900 pcr.Location = &location
14901 }
14902 case "tags":
14903 if v != nil {
14904 var tags map[string]*string
14905 err = json.Unmarshal(*v, &tags)
14906 if err != nil {
14907 return err
14908 }
14909 pcr.Tags = tags
14910 }
14911 case "eTag":
14912 if v != nil {
14913 var eTag string
14914 err = json.Unmarshal(*v, &eTag)
14915 if err != nil {
14916 return err
14917 }
14918 pcr.ETag = &eTag
14919 }
14920 }
14921 }
14922
14923 return nil
14924 }
14925
14926
14927 type ProtectableContainerResourceList struct {
14928 autorest.Response `json:"-"`
14929
14930 Value *[]ProtectableContainerResource `json:"value,omitempty"`
14931
14932 NextLink *string `json:"nextLink,omitempty"`
14933 }
14934
14935
14936
14937 type ProtectableContainerResourceListIterator struct {
14938 i int
14939 page ProtectableContainerResourceListPage
14940 }
14941
14942
14943
14944 func (iter *ProtectableContainerResourceListIterator) NextWithContext(ctx context.Context) (err error) {
14945 if tracing.IsEnabled() {
14946 ctx = tracing.StartSpan(ctx, fqdn+"/ProtectableContainerResourceListIterator.NextWithContext")
14947 defer func() {
14948 sc := -1
14949 if iter.Response().Response.Response != nil {
14950 sc = iter.Response().Response.Response.StatusCode
14951 }
14952 tracing.EndSpan(ctx, sc, err)
14953 }()
14954 }
14955 iter.i++
14956 if iter.i < len(iter.page.Values()) {
14957 return nil
14958 }
14959 err = iter.page.NextWithContext(ctx)
14960 if err != nil {
14961 iter.i--
14962 return err
14963 }
14964 iter.i = 0
14965 return nil
14966 }
14967
14968
14969
14970
14971 func (iter *ProtectableContainerResourceListIterator) Next() error {
14972 return iter.NextWithContext(context.Background())
14973 }
14974
14975
14976 func (iter ProtectableContainerResourceListIterator) NotDone() bool {
14977 return iter.page.NotDone() && iter.i < len(iter.page.Values())
14978 }
14979
14980
14981 func (iter ProtectableContainerResourceListIterator) Response() ProtectableContainerResourceList {
14982 return iter.page.Response()
14983 }
14984
14985
14986
14987 func (iter ProtectableContainerResourceListIterator) Value() ProtectableContainerResource {
14988 if !iter.page.NotDone() {
14989 return ProtectableContainerResource{}
14990 }
14991 return iter.page.Values()[iter.i]
14992 }
14993
14994
14995 func NewProtectableContainerResourceListIterator(page ProtectableContainerResourceListPage) ProtectableContainerResourceListIterator {
14996 return ProtectableContainerResourceListIterator{page: page}
14997 }
14998
14999
15000 func (pcrl ProtectableContainerResourceList) IsEmpty() bool {
15001 return pcrl.Value == nil || len(*pcrl.Value) == 0
15002 }
15003
15004
15005 func (pcrl ProtectableContainerResourceList) hasNextLink() bool {
15006 return pcrl.NextLink != nil && len(*pcrl.NextLink) != 0
15007 }
15008
15009
15010
15011 func (pcrl ProtectableContainerResourceList) protectableContainerResourceListPreparer(ctx context.Context) (*http.Request, error) {
15012 if !pcrl.hasNextLink() {
15013 return nil, nil
15014 }
15015 return autorest.Prepare((&http.Request{}).WithContext(ctx),
15016 autorest.AsJSON(),
15017 autorest.AsGet(),
15018 autorest.WithBaseURL(to.String(pcrl.NextLink)))
15019 }
15020
15021
15022 type ProtectableContainerResourceListPage struct {
15023 fn func(context.Context, ProtectableContainerResourceList) (ProtectableContainerResourceList, error)
15024 pcrl ProtectableContainerResourceList
15025 }
15026
15027
15028
15029 func (page *ProtectableContainerResourceListPage) NextWithContext(ctx context.Context) (err error) {
15030 if tracing.IsEnabled() {
15031 ctx = tracing.StartSpan(ctx, fqdn+"/ProtectableContainerResourceListPage.NextWithContext")
15032 defer func() {
15033 sc := -1
15034 if page.Response().Response.Response != nil {
15035 sc = page.Response().Response.Response.StatusCode
15036 }
15037 tracing.EndSpan(ctx, sc, err)
15038 }()
15039 }
15040 for {
15041 next, err := page.fn(ctx, page.pcrl)
15042 if err != nil {
15043 return err
15044 }
15045 page.pcrl = next
15046 if !next.hasNextLink() || !next.IsEmpty() {
15047 break
15048 }
15049 }
15050 return nil
15051 }
15052
15053
15054
15055
15056 func (page *ProtectableContainerResourceListPage) Next() error {
15057 return page.NextWithContext(context.Background())
15058 }
15059
15060
15061 func (page ProtectableContainerResourceListPage) NotDone() bool {
15062 return !page.pcrl.IsEmpty()
15063 }
15064
15065
15066 func (page ProtectableContainerResourceListPage) Response() ProtectableContainerResourceList {
15067 return page.pcrl
15068 }
15069
15070
15071 func (page ProtectableContainerResourceListPage) Values() []ProtectableContainerResource {
15072 if page.pcrl.IsEmpty() {
15073 return nil
15074 }
15075 return *page.pcrl.Value
15076 }
15077
15078
15079 func NewProtectableContainerResourceListPage(cur ProtectableContainerResourceList, getNextPage func(context.Context, ProtectableContainerResourceList) (ProtectableContainerResourceList, error)) ProtectableContainerResourceListPage {
15080 return ProtectableContainerResourceListPage{
15081 fn: getNextPage,
15082 pcrl: cur,
15083 }
15084 }
15085
15086
15087 type BasicProtectedItem interface {
15088 AsAzureFileshareProtectedItem() (*AzureFileshareProtectedItem, bool)
15089 AsAzureIaaSClassicComputeVMProtectedItem() (*AzureIaaSClassicComputeVMProtectedItem, bool)
15090 AsAzureIaaSComputeVMProtectedItem() (*AzureIaaSComputeVMProtectedItem, bool)
15091 AsAzureIaaSVMProtectedItem() (*AzureIaaSVMProtectedItem, bool)
15092 AsBasicAzureIaaSVMProtectedItem() (BasicAzureIaaSVMProtectedItem, bool)
15093 AsAzureSQLProtectedItem() (*AzureSQLProtectedItem, bool)
15094 AsAzureVMWorkloadProtectedItem() (*AzureVMWorkloadProtectedItem, bool)
15095 AsBasicAzureVMWorkloadProtectedItem() (BasicAzureVMWorkloadProtectedItem, bool)
15096 AsAzureVMWorkloadSAPAseDatabaseProtectedItem() (*AzureVMWorkloadSAPAseDatabaseProtectedItem, bool)
15097 AsAzureVMWorkloadSAPHanaDatabaseProtectedItem() (*AzureVMWorkloadSAPHanaDatabaseProtectedItem, bool)
15098 AsAzureVMWorkloadSQLDatabaseProtectedItem() (*AzureVMWorkloadSQLDatabaseProtectedItem, bool)
15099 AsDPMProtectedItem() (*DPMProtectedItem, bool)
15100 AsGenericProtectedItem() (*GenericProtectedItem, bool)
15101 AsMabFileFolderProtectedItem() (*MabFileFolderProtectedItem, bool)
15102 AsProtectedItem() (*ProtectedItem, bool)
15103 }
15104
15105
15106 type ProtectedItem struct {
15107
15108 BackupManagementType ManagementType `json:"backupManagementType,omitempty"`
15109
15110 WorkloadType DataSourceType `json:"workloadType,omitempty"`
15111
15112 ContainerName *string `json:"containerName,omitempty"`
15113
15114 SourceResourceID *string `json:"sourceResourceId,omitempty"`
15115
15116 PolicyID *string `json:"policyId,omitempty"`
15117
15118 LastRecoveryPoint *date.Time `json:"lastRecoveryPoint,omitempty"`
15119
15120 BackupSetName *string `json:"backupSetName,omitempty"`
15121
15122 CreateMode CreateMode `json:"createMode,omitempty"`
15123
15124 DeferredDeleteTimeInUTC *date.Time `json:"deferredDeleteTimeInUTC,omitempty"`
15125
15126 IsScheduledForDeferredDelete *bool `json:"isScheduledForDeferredDelete,omitempty"`
15127
15128 DeferredDeleteTimeRemaining *string `json:"deferredDeleteTimeRemaining,omitempty"`
15129
15130 IsDeferredDeleteScheduleUpcoming *bool `json:"isDeferredDeleteScheduleUpcoming,omitempty"`
15131
15132 IsRehydrate *bool `json:"isRehydrate,omitempty"`
15133
15134 ProtectedItemType ProtectedItemType `json:"protectedItemType,omitempty"`
15135 }
15136
15137 func unmarshalBasicProtectedItem(body []byte) (BasicProtectedItem, error) {
15138 var m map[string]interface{}
15139 err := json.Unmarshal(body, &m)
15140 if err != nil {
15141 return nil, err
15142 }
15143
15144 switch m["protectedItemType"] {
15145 case string(ProtectedItemTypeAzureFileShareProtectedItem):
15146 var afpi AzureFileshareProtectedItem
15147 err := json.Unmarshal(body, &afpi)
15148 return afpi, err
15149 case string(ProtectedItemTypeMicrosoftClassicComputevirtualMachines):
15150 var aisccvpi AzureIaaSClassicComputeVMProtectedItem
15151 err := json.Unmarshal(body, &aisccvpi)
15152 return aisccvpi, err
15153 case string(ProtectedItemTypeMicrosoftComputevirtualMachines):
15154 var aiscvpi AzureIaaSComputeVMProtectedItem
15155 err := json.Unmarshal(body, &aiscvpi)
15156 return aiscvpi, err
15157 case string(ProtectedItemTypeAzureIaaSVMProtectedItem):
15158 var aispi AzureIaaSVMProtectedItem
15159 err := json.Unmarshal(body, &aispi)
15160 return aispi, err
15161 case string(ProtectedItemTypeMicrosoftSqlserversdatabases):
15162 var aspi AzureSQLProtectedItem
15163 err := json.Unmarshal(body, &aspi)
15164 return aspi, err
15165 case string(ProtectedItemTypeAzureVMWorkloadProtectedItem):
15166 var avwpi AzureVMWorkloadProtectedItem
15167 err := json.Unmarshal(body, &avwpi)
15168 return avwpi, err
15169 case string(ProtectedItemTypeAzureVMWorkloadSAPAseDatabase):
15170 var avwsadpi AzureVMWorkloadSAPAseDatabaseProtectedItem
15171 err := json.Unmarshal(body, &avwsadpi)
15172 return avwsadpi, err
15173 case string(ProtectedItemTypeAzureVMWorkloadSAPHanaDatabase):
15174 var avwshdpi AzureVMWorkloadSAPHanaDatabaseProtectedItem
15175 err := json.Unmarshal(body, &avwshdpi)
15176 return avwshdpi, err
15177 case string(ProtectedItemTypeAzureVMWorkloadSQLDatabase):
15178 var avwsdpi AzureVMWorkloadSQLDatabaseProtectedItem
15179 err := json.Unmarshal(body, &avwsdpi)
15180 return avwsdpi, err
15181 case string(ProtectedItemTypeDPMProtectedItem):
15182 var dpi DPMProtectedItem
15183 err := json.Unmarshal(body, &dpi)
15184 return dpi, err
15185 case string(ProtectedItemTypeGenericProtectedItem):
15186 var gpi GenericProtectedItem
15187 err := json.Unmarshal(body, &gpi)
15188 return gpi, err
15189 case string(ProtectedItemTypeMabFileFolderProtectedItem):
15190 var mffpi MabFileFolderProtectedItem
15191 err := json.Unmarshal(body, &mffpi)
15192 return mffpi, err
15193 default:
15194 var pi ProtectedItem
15195 err := json.Unmarshal(body, &pi)
15196 return pi, err
15197 }
15198 }
15199 func unmarshalBasicProtectedItemArray(body []byte) ([]BasicProtectedItem, error) {
15200 var rawMessages []*json.RawMessage
15201 err := json.Unmarshal(body, &rawMessages)
15202 if err != nil {
15203 return nil, err
15204 }
15205
15206 piArray := make([]BasicProtectedItem, len(rawMessages))
15207
15208 for index, rawMessage := range rawMessages {
15209 pi, err := unmarshalBasicProtectedItem(*rawMessage)
15210 if err != nil {
15211 return nil, err
15212 }
15213 piArray[index] = pi
15214 }
15215 return piArray, nil
15216 }
15217
15218
15219 func (pi ProtectedItem) MarshalJSON() ([]byte, error) {
15220 pi.ProtectedItemType = ProtectedItemTypeProtectedItem
15221 objectMap := make(map[string]interface{})
15222 if pi.BackupManagementType != "" {
15223 objectMap["backupManagementType"] = pi.BackupManagementType
15224 }
15225 if pi.WorkloadType != "" {
15226 objectMap["workloadType"] = pi.WorkloadType
15227 }
15228 if pi.ContainerName != nil {
15229 objectMap["containerName"] = pi.ContainerName
15230 }
15231 if pi.SourceResourceID != nil {
15232 objectMap["sourceResourceId"] = pi.SourceResourceID
15233 }
15234 if pi.PolicyID != nil {
15235 objectMap["policyId"] = pi.PolicyID
15236 }
15237 if pi.LastRecoveryPoint != nil {
15238 objectMap["lastRecoveryPoint"] = pi.LastRecoveryPoint
15239 }
15240 if pi.BackupSetName != nil {
15241 objectMap["backupSetName"] = pi.BackupSetName
15242 }
15243 if pi.CreateMode != "" {
15244 objectMap["createMode"] = pi.CreateMode
15245 }
15246 if pi.DeferredDeleteTimeInUTC != nil {
15247 objectMap["deferredDeleteTimeInUTC"] = pi.DeferredDeleteTimeInUTC
15248 }
15249 if pi.IsScheduledForDeferredDelete != nil {
15250 objectMap["isScheduledForDeferredDelete"] = pi.IsScheduledForDeferredDelete
15251 }
15252 if pi.DeferredDeleteTimeRemaining != nil {
15253 objectMap["deferredDeleteTimeRemaining"] = pi.DeferredDeleteTimeRemaining
15254 }
15255 if pi.IsDeferredDeleteScheduleUpcoming != nil {
15256 objectMap["isDeferredDeleteScheduleUpcoming"] = pi.IsDeferredDeleteScheduleUpcoming
15257 }
15258 if pi.IsRehydrate != nil {
15259 objectMap["isRehydrate"] = pi.IsRehydrate
15260 }
15261 if pi.ProtectedItemType != "" {
15262 objectMap["protectedItemType"] = pi.ProtectedItemType
15263 }
15264 return json.Marshal(objectMap)
15265 }
15266
15267
15268 func (pi ProtectedItem) AsAzureFileshareProtectedItem() (*AzureFileshareProtectedItem, bool) {
15269 return nil, false
15270 }
15271
15272
15273 func (pi ProtectedItem) AsAzureIaaSClassicComputeVMProtectedItem() (*AzureIaaSClassicComputeVMProtectedItem, bool) {
15274 return nil, false
15275 }
15276
15277
15278 func (pi ProtectedItem) AsAzureIaaSComputeVMProtectedItem() (*AzureIaaSComputeVMProtectedItem, bool) {
15279 return nil, false
15280 }
15281
15282
15283 func (pi ProtectedItem) AsAzureIaaSVMProtectedItem() (*AzureIaaSVMProtectedItem, bool) {
15284 return nil, false
15285 }
15286
15287
15288 func (pi ProtectedItem) AsBasicAzureIaaSVMProtectedItem() (BasicAzureIaaSVMProtectedItem, bool) {
15289 return nil, false
15290 }
15291
15292
15293 func (pi ProtectedItem) AsAzureSQLProtectedItem() (*AzureSQLProtectedItem, bool) {
15294 return nil, false
15295 }
15296
15297
15298 func (pi ProtectedItem) AsAzureVMWorkloadProtectedItem() (*AzureVMWorkloadProtectedItem, bool) {
15299 return nil, false
15300 }
15301
15302
15303 func (pi ProtectedItem) AsBasicAzureVMWorkloadProtectedItem() (BasicAzureVMWorkloadProtectedItem, bool) {
15304 return nil, false
15305 }
15306
15307
15308 func (pi ProtectedItem) AsAzureVMWorkloadSAPAseDatabaseProtectedItem() (*AzureVMWorkloadSAPAseDatabaseProtectedItem, bool) {
15309 return nil, false
15310 }
15311
15312
15313 func (pi ProtectedItem) AsAzureVMWorkloadSAPHanaDatabaseProtectedItem() (*AzureVMWorkloadSAPHanaDatabaseProtectedItem, bool) {
15314 return nil, false
15315 }
15316
15317
15318 func (pi ProtectedItem) AsAzureVMWorkloadSQLDatabaseProtectedItem() (*AzureVMWorkloadSQLDatabaseProtectedItem, bool) {
15319 return nil, false
15320 }
15321
15322
15323 func (pi ProtectedItem) AsDPMProtectedItem() (*DPMProtectedItem, bool) {
15324 return nil, false
15325 }
15326
15327
15328 func (pi ProtectedItem) AsGenericProtectedItem() (*GenericProtectedItem, bool) {
15329 return nil, false
15330 }
15331
15332
15333 func (pi ProtectedItem) AsMabFileFolderProtectedItem() (*MabFileFolderProtectedItem, bool) {
15334 return nil, false
15335 }
15336
15337
15338 func (pi ProtectedItem) AsProtectedItem() (*ProtectedItem, bool) {
15339 return &pi, true
15340 }
15341
15342
15343 func (pi ProtectedItem) AsBasicProtectedItem() (BasicProtectedItem, bool) {
15344 return &pi, true
15345 }
15346
15347
15348 type ProtectedItemQueryObject struct {
15349
15350 HealthState HealthState `json:"healthState,omitempty"`
15351
15352 BackupManagementType ManagementType `json:"backupManagementType,omitempty"`
15353
15354 ItemType DataSourceType `json:"itemType,omitempty"`
15355
15356 PolicyName *string `json:"policyName,omitempty"`
15357
15358 ContainerName *string `json:"containerName,omitempty"`
15359
15360 BackupEngineName *string `json:"backupEngineName,omitempty"`
15361
15362 FriendlyName *string `json:"friendlyName,omitempty"`
15363
15364 FabricName *string `json:"fabricName,omitempty"`
15365
15366 BackupSetName *string `json:"backupSetName,omitempty"`
15367 }
15368
15369
15370 type ProtectedItemResource struct {
15371 autorest.Response `json:"-"`
15372
15373 Properties BasicProtectedItem `json:"properties,omitempty"`
15374
15375 ID *string `json:"id,omitempty"`
15376
15377 Name *string `json:"name,omitempty"`
15378
15379 Type *string `json:"type,omitempty"`
15380
15381 Location *string `json:"location,omitempty"`
15382
15383 Tags map[string]*string `json:"tags"`
15384
15385 ETag *string `json:"eTag,omitempty"`
15386 }
15387
15388
15389 func (pir ProtectedItemResource) MarshalJSON() ([]byte, error) {
15390 objectMap := make(map[string]interface{})
15391 objectMap["properties"] = pir.Properties
15392 if pir.Location != nil {
15393 objectMap["location"] = pir.Location
15394 }
15395 if pir.Tags != nil {
15396 objectMap["tags"] = pir.Tags
15397 }
15398 if pir.ETag != nil {
15399 objectMap["eTag"] = pir.ETag
15400 }
15401 return json.Marshal(objectMap)
15402 }
15403
15404
15405 func (pir *ProtectedItemResource) UnmarshalJSON(body []byte) error {
15406 var m map[string]*json.RawMessage
15407 err := json.Unmarshal(body, &m)
15408 if err != nil {
15409 return err
15410 }
15411 for k, v := range m {
15412 switch k {
15413 case "properties":
15414 if v != nil {
15415 properties, err := unmarshalBasicProtectedItem(*v)
15416 if err != nil {
15417 return err
15418 }
15419 pir.Properties = properties
15420 }
15421 case "id":
15422 if v != nil {
15423 var ID string
15424 err = json.Unmarshal(*v, &ID)
15425 if err != nil {
15426 return err
15427 }
15428 pir.ID = &ID
15429 }
15430 case "name":
15431 if v != nil {
15432 var name string
15433 err = json.Unmarshal(*v, &name)
15434 if err != nil {
15435 return err
15436 }
15437 pir.Name = &name
15438 }
15439 case "type":
15440 if v != nil {
15441 var typeVar string
15442 err = json.Unmarshal(*v, &typeVar)
15443 if err != nil {
15444 return err
15445 }
15446 pir.Type = &typeVar
15447 }
15448 case "location":
15449 if v != nil {
15450 var location string
15451 err = json.Unmarshal(*v, &location)
15452 if err != nil {
15453 return err
15454 }
15455 pir.Location = &location
15456 }
15457 case "tags":
15458 if v != nil {
15459 var tags map[string]*string
15460 err = json.Unmarshal(*v, &tags)
15461 if err != nil {
15462 return err
15463 }
15464 pir.Tags = tags
15465 }
15466 case "eTag":
15467 if v != nil {
15468 var eTag string
15469 err = json.Unmarshal(*v, &eTag)
15470 if err != nil {
15471 return err
15472 }
15473 pir.ETag = &eTag
15474 }
15475 }
15476 }
15477
15478 return nil
15479 }
15480
15481
15482 type ProtectedItemResourceList struct {
15483 autorest.Response `json:"-"`
15484
15485 Value *[]ProtectedItemResource `json:"value,omitempty"`
15486
15487 NextLink *string `json:"nextLink,omitempty"`
15488 }
15489
15490
15491 type ProtectedItemResourceListIterator struct {
15492 i int
15493 page ProtectedItemResourceListPage
15494 }
15495
15496
15497
15498 func (iter *ProtectedItemResourceListIterator) NextWithContext(ctx context.Context) (err error) {
15499 if tracing.IsEnabled() {
15500 ctx = tracing.StartSpan(ctx, fqdn+"/ProtectedItemResourceListIterator.NextWithContext")
15501 defer func() {
15502 sc := -1
15503 if iter.Response().Response.Response != nil {
15504 sc = iter.Response().Response.Response.StatusCode
15505 }
15506 tracing.EndSpan(ctx, sc, err)
15507 }()
15508 }
15509 iter.i++
15510 if iter.i < len(iter.page.Values()) {
15511 return nil
15512 }
15513 err = iter.page.NextWithContext(ctx)
15514 if err != nil {
15515 iter.i--
15516 return err
15517 }
15518 iter.i = 0
15519 return nil
15520 }
15521
15522
15523
15524
15525 func (iter *ProtectedItemResourceListIterator) Next() error {
15526 return iter.NextWithContext(context.Background())
15527 }
15528
15529
15530 func (iter ProtectedItemResourceListIterator) NotDone() bool {
15531 return iter.page.NotDone() && iter.i < len(iter.page.Values())
15532 }
15533
15534
15535 func (iter ProtectedItemResourceListIterator) Response() ProtectedItemResourceList {
15536 return iter.page.Response()
15537 }
15538
15539
15540
15541 func (iter ProtectedItemResourceListIterator) Value() ProtectedItemResource {
15542 if !iter.page.NotDone() {
15543 return ProtectedItemResource{}
15544 }
15545 return iter.page.Values()[iter.i]
15546 }
15547
15548
15549 func NewProtectedItemResourceListIterator(page ProtectedItemResourceListPage) ProtectedItemResourceListIterator {
15550 return ProtectedItemResourceListIterator{page: page}
15551 }
15552
15553
15554 func (pirl ProtectedItemResourceList) IsEmpty() bool {
15555 return pirl.Value == nil || len(*pirl.Value) == 0
15556 }
15557
15558
15559 func (pirl ProtectedItemResourceList) hasNextLink() bool {
15560 return pirl.NextLink != nil && len(*pirl.NextLink) != 0
15561 }
15562
15563
15564
15565 func (pirl ProtectedItemResourceList) protectedItemResourceListPreparer(ctx context.Context) (*http.Request, error) {
15566 if !pirl.hasNextLink() {
15567 return nil, nil
15568 }
15569 return autorest.Prepare((&http.Request{}).WithContext(ctx),
15570 autorest.AsJSON(),
15571 autorest.AsGet(),
15572 autorest.WithBaseURL(to.String(pirl.NextLink)))
15573 }
15574
15575
15576 type ProtectedItemResourceListPage struct {
15577 fn func(context.Context, ProtectedItemResourceList) (ProtectedItemResourceList, error)
15578 pirl ProtectedItemResourceList
15579 }
15580
15581
15582
15583 func (page *ProtectedItemResourceListPage) NextWithContext(ctx context.Context) (err error) {
15584 if tracing.IsEnabled() {
15585 ctx = tracing.StartSpan(ctx, fqdn+"/ProtectedItemResourceListPage.NextWithContext")
15586 defer func() {
15587 sc := -1
15588 if page.Response().Response.Response != nil {
15589 sc = page.Response().Response.Response.StatusCode
15590 }
15591 tracing.EndSpan(ctx, sc, err)
15592 }()
15593 }
15594 for {
15595 next, err := page.fn(ctx, page.pirl)
15596 if err != nil {
15597 return err
15598 }
15599 page.pirl = next
15600 if !next.hasNextLink() || !next.IsEmpty() {
15601 break
15602 }
15603 }
15604 return nil
15605 }
15606
15607
15608
15609
15610 func (page *ProtectedItemResourceListPage) Next() error {
15611 return page.NextWithContext(context.Background())
15612 }
15613
15614
15615 func (page ProtectedItemResourceListPage) NotDone() bool {
15616 return !page.pirl.IsEmpty()
15617 }
15618
15619
15620 func (page ProtectedItemResourceListPage) Response() ProtectedItemResourceList {
15621 return page.pirl
15622 }
15623
15624
15625 func (page ProtectedItemResourceListPage) Values() []ProtectedItemResource {
15626 if page.pirl.IsEmpty() {
15627 return nil
15628 }
15629 return *page.pirl.Value
15630 }
15631
15632
15633 func NewProtectedItemResourceListPage(cur ProtectedItemResourceList, getNextPage func(context.Context, ProtectedItemResourceList) (ProtectedItemResourceList, error)) ProtectedItemResourceListPage {
15634 return ProtectedItemResourceListPage{
15635 fn: getNextPage,
15636 pirl: cur,
15637 }
15638 }
15639
15640
15641
15642 type BasicProtectionContainer interface {
15643 AsAzureBackupServerContainer() (*AzureBackupServerContainer, bool)
15644 AsAzureIaaSClassicComputeVMContainer() (*AzureIaaSClassicComputeVMContainer, bool)
15645 AsAzureIaaSComputeVMContainer() (*AzureIaaSComputeVMContainer, bool)
15646 AsAzureSQLAGWorkloadContainerProtectionContainer() (*AzureSQLAGWorkloadContainerProtectionContainer, bool)
15647 AsAzureSQLContainer() (*AzureSQLContainer, bool)
15648 AsAzureStorageContainer() (*AzureStorageContainer, bool)
15649 AsAzureVMAppContainerProtectionContainer() (*AzureVMAppContainerProtectionContainer, bool)
15650 AsAzureWorkloadContainer() (*AzureWorkloadContainer, bool)
15651 AsBasicAzureWorkloadContainer() (BasicAzureWorkloadContainer, bool)
15652 AsDpmContainer() (*DpmContainer, bool)
15653 AsBasicDpmContainer() (BasicDpmContainer, bool)
15654 AsGenericContainer() (*GenericContainer, bool)
15655 AsIaaSVMContainer() (*IaaSVMContainer, bool)
15656 AsBasicIaaSVMContainer() (BasicIaaSVMContainer, bool)
15657 AsMabContainer() (*MabContainer, bool)
15658 AsProtectionContainer() (*ProtectionContainer, bool)
15659 }
15660
15661
15662
15663 type ProtectionContainer struct {
15664
15665 FriendlyName *string `json:"friendlyName,omitempty"`
15666
15667 BackupManagementType ManagementType `json:"backupManagementType,omitempty"`
15668
15669 RegistrationStatus *string `json:"registrationStatus,omitempty"`
15670
15671 HealthStatus *string `json:"healthStatus,omitempty"`
15672
15673 ContainerType ContainerTypeBasicProtectionContainer `json:"containerType,omitempty"`
15674 }
15675
15676 func unmarshalBasicProtectionContainer(body []byte) (BasicProtectionContainer, error) {
15677 var m map[string]interface{}
15678 err := json.Unmarshal(body, &m)
15679 if err != nil {
15680 return nil, err
15681 }
15682
15683 switch m["containerType"] {
15684 case string(ContainerTypeAzureBackupServerContainer1):
15685 var absc AzureBackupServerContainer
15686 err := json.Unmarshal(body, &absc)
15687 return absc, err
15688 case string(ContainerTypeMicrosoftClassicComputevirtualMachines):
15689 var aisccvc AzureIaaSClassicComputeVMContainer
15690 err := json.Unmarshal(body, &aisccvc)
15691 return aisccvc, err
15692 case string(ContainerTypeMicrosoftComputevirtualMachines):
15693 var aiscvc AzureIaaSComputeVMContainer
15694 err := json.Unmarshal(body, &aiscvc)
15695 return aiscvc, err
15696 case string(ContainerTypeSQLAGWorkLoadContainer1):
15697 var aswcpc AzureSQLAGWorkloadContainerProtectionContainer
15698 err := json.Unmarshal(body, &aswcpc)
15699 return aswcpc, err
15700 case string(ContainerTypeAzureSQLContainer1):
15701 var asc AzureSQLContainer
15702 err := json.Unmarshal(body, &asc)
15703 return asc, err
15704 case string(ContainerTypeStorageContainer1):
15705 var asc AzureStorageContainer
15706 err := json.Unmarshal(body, &asc)
15707 return asc, err
15708 case string(ContainerTypeVMAppContainer1):
15709 var avacpc AzureVMAppContainerProtectionContainer
15710 err := json.Unmarshal(body, &avacpc)
15711 return avacpc, err
15712 case string(ContainerTypeAzureWorkloadContainer):
15713 var awc AzureWorkloadContainer
15714 err := json.Unmarshal(body, &awc)
15715 return awc, err
15716 case string(ContainerTypeDPMContainer1):
15717 var dc DpmContainer
15718 err := json.Unmarshal(body, &dc)
15719 return dc, err
15720 case string(ContainerTypeGenericContainer1):
15721 var gc GenericContainer
15722 err := json.Unmarshal(body, &gc)
15723 return gc, err
15724 case string(ContainerTypeIaaSVMContainer):
15725 var isc IaaSVMContainer
15726 err := json.Unmarshal(body, &isc)
15727 return isc, err
15728 case string(ContainerTypeWindows1):
15729 var mc MabContainer
15730 err := json.Unmarshal(body, &mc)
15731 return mc, err
15732 default:
15733 var pc ProtectionContainer
15734 err := json.Unmarshal(body, &pc)
15735 return pc, err
15736 }
15737 }
15738 func unmarshalBasicProtectionContainerArray(body []byte) ([]BasicProtectionContainer, error) {
15739 var rawMessages []*json.RawMessage
15740 err := json.Unmarshal(body, &rawMessages)
15741 if err != nil {
15742 return nil, err
15743 }
15744
15745 pcArray := make([]BasicProtectionContainer, len(rawMessages))
15746
15747 for index, rawMessage := range rawMessages {
15748 pc, err := unmarshalBasicProtectionContainer(*rawMessage)
15749 if err != nil {
15750 return nil, err
15751 }
15752 pcArray[index] = pc
15753 }
15754 return pcArray, nil
15755 }
15756
15757
15758 func (pc ProtectionContainer) MarshalJSON() ([]byte, error) {
15759 pc.ContainerType = ContainerTypeProtectionContainer
15760 objectMap := make(map[string]interface{})
15761 if pc.FriendlyName != nil {
15762 objectMap["friendlyName"] = pc.FriendlyName
15763 }
15764 if pc.BackupManagementType != "" {
15765 objectMap["backupManagementType"] = pc.BackupManagementType
15766 }
15767 if pc.RegistrationStatus != nil {
15768 objectMap["registrationStatus"] = pc.RegistrationStatus
15769 }
15770 if pc.HealthStatus != nil {
15771 objectMap["healthStatus"] = pc.HealthStatus
15772 }
15773 if pc.ContainerType != "" {
15774 objectMap["containerType"] = pc.ContainerType
15775 }
15776 return json.Marshal(objectMap)
15777 }
15778
15779
15780 func (pc ProtectionContainer) AsAzureBackupServerContainer() (*AzureBackupServerContainer, bool) {
15781 return nil, false
15782 }
15783
15784
15785 func (pc ProtectionContainer) AsAzureIaaSClassicComputeVMContainer() (*AzureIaaSClassicComputeVMContainer, bool) {
15786 return nil, false
15787 }
15788
15789
15790 func (pc ProtectionContainer) AsAzureIaaSComputeVMContainer() (*AzureIaaSComputeVMContainer, bool) {
15791 return nil, false
15792 }
15793
15794
15795 func (pc ProtectionContainer) AsAzureSQLAGWorkloadContainerProtectionContainer() (*AzureSQLAGWorkloadContainerProtectionContainer, bool) {
15796 return nil, false
15797 }
15798
15799
15800 func (pc ProtectionContainer) AsAzureSQLContainer() (*AzureSQLContainer, bool) {
15801 return nil, false
15802 }
15803
15804
15805 func (pc ProtectionContainer) AsAzureStorageContainer() (*AzureStorageContainer, bool) {
15806 return nil, false
15807 }
15808
15809
15810 func (pc ProtectionContainer) AsAzureVMAppContainerProtectionContainer() (*AzureVMAppContainerProtectionContainer, bool) {
15811 return nil, false
15812 }
15813
15814
15815 func (pc ProtectionContainer) AsAzureWorkloadContainer() (*AzureWorkloadContainer, bool) {
15816 return nil, false
15817 }
15818
15819
15820 func (pc ProtectionContainer) AsBasicAzureWorkloadContainer() (BasicAzureWorkloadContainer, bool) {
15821 return nil, false
15822 }
15823
15824
15825 func (pc ProtectionContainer) AsDpmContainer() (*DpmContainer, bool) {
15826 return nil, false
15827 }
15828
15829
15830 func (pc ProtectionContainer) AsBasicDpmContainer() (BasicDpmContainer, bool) {
15831 return nil, false
15832 }
15833
15834
15835 func (pc ProtectionContainer) AsGenericContainer() (*GenericContainer, bool) {
15836 return nil, false
15837 }
15838
15839
15840 func (pc ProtectionContainer) AsIaaSVMContainer() (*IaaSVMContainer, bool) {
15841 return nil, false
15842 }
15843
15844
15845 func (pc ProtectionContainer) AsBasicIaaSVMContainer() (BasicIaaSVMContainer, bool) {
15846 return nil, false
15847 }
15848
15849
15850 func (pc ProtectionContainer) AsMabContainer() (*MabContainer, bool) {
15851 return nil, false
15852 }
15853
15854
15855 func (pc ProtectionContainer) AsProtectionContainer() (*ProtectionContainer, bool) {
15856 return &pc, true
15857 }
15858
15859
15860 func (pc ProtectionContainer) AsBasicProtectionContainer() (BasicProtectionContainer, bool) {
15861 return &pc, true
15862 }
15863
15864
15865
15866 type ProtectionContainerResource struct {
15867 autorest.Response `json:"-"`
15868
15869 Properties BasicProtectionContainer `json:"properties,omitempty"`
15870
15871 ID *string `json:"id,omitempty"`
15872
15873 Name *string `json:"name,omitempty"`
15874
15875 Type *string `json:"type,omitempty"`
15876
15877 Location *string `json:"location,omitempty"`
15878
15879 Tags map[string]*string `json:"tags"`
15880
15881 ETag *string `json:"eTag,omitempty"`
15882 }
15883
15884
15885 func (pcr ProtectionContainerResource) MarshalJSON() ([]byte, error) {
15886 objectMap := make(map[string]interface{})
15887 objectMap["properties"] = pcr.Properties
15888 if pcr.Location != nil {
15889 objectMap["location"] = pcr.Location
15890 }
15891 if pcr.Tags != nil {
15892 objectMap["tags"] = pcr.Tags
15893 }
15894 if pcr.ETag != nil {
15895 objectMap["eTag"] = pcr.ETag
15896 }
15897 return json.Marshal(objectMap)
15898 }
15899
15900
15901 func (pcr *ProtectionContainerResource) UnmarshalJSON(body []byte) error {
15902 var m map[string]*json.RawMessage
15903 err := json.Unmarshal(body, &m)
15904 if err != nil {
15905 return err
15906 }
15907 for k, v := range m {
15908 switch k {
15909 case "properties":
15910 if v != nil {
15911 properties, err := unmarshalBasicProtectionContainer(*v)
15912 if err != nil {
15913 return err
15914 }
15915 pcr.Properties = properties
15916 }
15917 case "id":
15918 if v != nil {
15919 var ID string
15920 err = json.Unmarshal(*v, &ID)
15921 if err != nil {
15922 return err
15923 }
15924 pcr.ID = &ID
15925 }
15926 case "name":
15927 if v != nil {
15928 var name string
15929 err = json.Unmarshal(*v, &name)
15930 if err != nil {
15931 return err
15932 }
15933 pcr.Name = &name
15934 }
15935 case "type":
15936 if v != nil {
15937 var typeVar string
15938 err = json.Unmarshal(*v, &typeVar)
15939 if err != nil {
15940 return err
15941 }
15942 pcr.Type = &typeVar
15943 }
15944 case "location":
15945 if v != nil {
15946 var location string
15947 err = json.Unmarshal(*v, &location)
15948 if err != nil {
15949 return err
15950 }
15951 pcr.Location = &location
15952 }
15953 case "tags":
15954 if v != nil {
15955 var tags map[string]*string
15956 err = json.Unmarshal(*v, &tags)
15957 if err != nil {
15958 return err
15959 }
15960 pcr.Tags = tags
15961 }
15962 case "eTag":
15963 if v != nil {
15964 var eTag string
15965 err = json.Unmarshal(*v, &eTag)
15966 if err != nil {
15967 return err
15968 }
15969 pcr.ETag = &eTag
15970 }
15971 }
15972 }
15973
15974 return nil
15975 }
15976
15977
15978 type ProtectionContainerResourceList struct {
15979 autorest.Response `json:"-"`
15980
15981 Value *[]ProtectionContainerResource `json:"value,omitempty"`
15982
15983 NextLink *string `json:"nextLink,omitempty"`
15984 }
15985
15986
15987
15988 type ProtectionContainerResourceListIterator struct {
15989 i int
15990 page ProtectionContainerResourceListPage
15991 }
15992
15993
15994
15995 func (iter *ProtectionContainerResourceListIterator) NextWithContext(ctx context.Context) (err error) {
15996 if tracing.IsEnabled() {
15997 ctx = tracing.StartSpan(ctx, fqdn+"/ProtectionContainerResourceListIterator.NextWithContext")
15998 defer func() {
15999 sc := -1
16000 if iter.Response().Response.Response != nil {
16001 sc = iter.Response().Response.Response.StatusCode
16002 }
16003 tracing.EndSpan(ctx, sc, err)
16004 }()
16005 }
16006 iter.i++
16007 if iter.i < len(iter.page.Values()) {
16008 return nil
16009 }
16010 err = iter.page.NextWithContext(ctx)
16011 if err != nil {
16012 iter.i--
16013 return err
16014 }
16015 iter.i = 0
16016 return nil
16017 }
16018
16019
16020
16021
16022 func (iter *ProtectionContainerResourceListIterator) Next() error {
16023 return iter.NextWithContext(context.Background())
16024 }
16025
16026
16027 func (iter ProtectionContainerResourceListIterator) NotDone() bool {
16028 return iter.page.NotDone() && iter.i < len(iter.page.Values())
16029 }
16030
16031
16032 func (iter ProtectionContainerResourceListIterator) Response() ProtectionContainerResourceList {
16033 return iter.page.Response()
16034 }
16035
16036
16037
16038 func (iter ProtectionContainerResourceListIterator) Value() ProtectionContainerResource {
16039 if !iter.page.NotDone() {
16040 return ProtectionContainerResource{}
16041 }
16042 return iter.page.Values()[iter.i]
16043 }
16044
16045
16046 func NewProtectionContainerResourceListIterator(page ProtectionContainerResourceListPage) ProtectionContainerResourceListIterator {
16047 return ProtectionContainerResourceListIterator{page: page}
16048 }
16049
16050
16051 func (pcrl ProtectionContainerResourceList) IsEmpty() bool {
16052 return pcrl.Value == nil || len(*pcrl.Value) == 0
16053 }
16054
16055
16056 func (pcrl ProtectionContainerResourceList) hasNextLink() bool {
16057 return pcrl.NextLink != nil && len(*pcrl.NextLink) != 0
16058 }
16059
16060
16061
16062 func (pcrl ProtectionContainerResourceList) protectionContainerResourceListPreparer(ctx context.Context) (*http.Request, error) {
16063 if !pcrl.hasNextLink() {
16064 return nil, nil
16065 }
16066 return autorest.Prepare((&http.Request{}).WithContext(ctx),
16067 autorest.AsJSON(),
16068 autorest.AsGet(),
16069 autorest.WithBaseURL(to.String(pcrl.NextLink)))
16070 }
16071
16072
16073 type ProtectionContainerResourceListPage struct {
16074 fn func(context.Context, ProtectionContainerResourceList) (ProtectionContainerResourceList, error)
16075 pcrl ProtectionContainerResourceList
16076 }
16077
16078
16079
16080 func (page *ProtectionContainerResourceListPage) NextWithContext(ctx context.Context) (err error) {
16081 if tracing.IsEnabled() {
16082 ctx = tracing.StartSpan(ctx, fqdn+"/ProtectionContainerResourceListPage.NextWithContext")
16083 defer func() {
16084 sc := -1
16085 if page.Response().Response.Response != nil {
16086 sc = page.Response().Response.Response.StatusCode
16087 }
16088 tracing.EndSpan(ctx, sc, err)
16089 }()
16090 }
16091 for {
16092 next, err := page.fn(ctx, page.pcrl)
16093 if err != nil {
16094 return err
16095 }
16096 page.pcrl = next
16097 if !next.hasNextLink() || !next.IsEmpty() {
16098 break
16099 }
16100 }
16101 return nil
16102 }
16103
16104
16105
16106
16107 func (page *ProtectionContainerResourceListPage) Next() error {
16108 return page.NextWithContext(context.Background())
16109 }
16110
16111
16112 func (page ProtectionContainerResourceListPage) NotDone() bool {
16113 return !page.pcrl.IsEmpty()
16114 }
16115
16116
16117 func (page ProtectionContainerResourceListPage) Response() ProtectionContainerResourceList {
16118 return page.pcrl
16119 }
16120
16121
16122 func (page ProtectionContainerResourceListPage) Values() []ProtectionContainerResource {
16123 if page.pcrl.IsEmpty() {
16124 return nil
16125 }
16126 return *page.pcrl.Value
16127 }
16128
16129
16130 func NewProtectionContainerResourceListPage(cur ProtectionContainerResourceList, getNextPage func(context.Context, ProtectionContainerResourceList) (ProtectionContainerResourceList, error)) ProtectionContainerResourceListPage {
16131 return ProtectionContainerResourceListPage{
16132 fn: getNextPage,
16133 pcrl: cur,
16134 }
16135 }
16136
16137
16138 type BasicProtectionIntent interface {
16139 AsAzureRecoveryServiceVaultProtectionIntent() (*AzureRecoveryServiceVaultProtectionIntent, bool)
16140 AsBasicAzureRecoveryServiceVaultProtectionIntent() (BasicAzureRecoveryServiceVaultProtectionIntent, bool)
16141 AsAzureResourceProtectionIntent() (*AzureResourceProtectionIntent, bool)
16142 AsAzureWorkloadAutoProtectionIntent() (*AzureWorkloadAutoProtectionIntent, bool)
16143 AsBasicAzureWorkloadAutoProtectionIntent() (BasicAzureWorkloadAutoProtectionIntent, bool)
16144 AsAzureWorkloadSQLAutoProtectionIntent() (*AzureWorkloadSQLAutoProtectionIntent, bool)
16145 AsProtectionIntent() (*ProtectionIntent, bool)
16146 }
16147
16148
16149 type ProtectionIntent struct {
16150
16151 BackupManagementType ManagementType `json:"backupManagementType,omitempty"`
16152
16153 SourceResourceID *string `json:"sourceResourceId,omitempty"`
16154
16155 ItemID *string `json:"itemId,omitempty"`
16156
16157 PolicyID *string `json:"policyId,omitempty"`
16158
16159 ProtectionState ProtectionStatus `json:"protectionState,omitempty"`
16160
16161 ProtectionIntentItemType ProtectionIntentItemType `json:"protectionIntentItemType,omitempty"`
16162 }
16163
16164 func unmarshalBasicProtectionIntent(body []byte) (BasicProtectionIntent, error) {
16165 var m map[string]interface{}
16166 err := json.Unmarshal(body, &m)
16167 if err != nil {
16168 return nil, err
16169 }
16170
16171 switch m["protectionIntentItemType"] {
16172 case string(ProtectionIntentItemTypeRecoveryServiceVaultItem):
16173 var arsvpi AzureRecoveryServiceVaultProtectionIntent
16174 err := json.Unmarshal(body, &arsvpi)
16175 return arsvpi, err
16176 case string(ProtectionIntentItemTypeAzureResourceItem):
16177 var arpi AzureResourceProtectionIntent
16178 err := json.Unmarshal(body, &arpi)
16179 return arpi, err
16180 case string(ProtectionIntentItemTypeAzureWorkloadAutoProtectionIntent):
16181 var awapi AzureWorkloadAutoProtectionIntent
16182 err := json.Unmarshal(body, &awapi)
16183 return awapi, err
16184 case string(ProtectionIntentItemTypeAzureWorkloadSQLAutoProtectionIntent):
16185 var awsapi AzureWorkloadSQLAutoProtectionIntent
16186 err := json.Unmarshal(body, &awsapi)
16187 return awsapi, err
16188 default:
16189 var pi ProtectionIntent
16190 err := json.Unmarshal(body, &pi)
16191 return pi, err
16192 }
16193 }
16194 func unmarshalBasicProtectionIntentArray(body []byte) ([]BasicProtectionIntent, error) {
16195 var rawMessages []*json.RawMessage
16196 err := json.Unmarshal(body, &rawMessages)
16197 if err != nil {
16198 return nil, err
16199 }
16200
16201 piArray := make([]BasicProtectionIntent, len(rawMessages))
16202
16203 for index, rawMessage := range rawMessages {
16204 pi, err := unmarshalBasicProtectionIntent(*rawMessage)
16205 if err != nil {
16206 return nil, err
16207 }
16208 piArray[index] = pi
16209 }
16210 return piArray, nil
16211 }
16212
16213
16214 func (pi ProtectionIntent) MarshalJSON() ([]byte, error) {
16215 pi.ProtectionIntentItemType = ProtectionIntentItemTypeProtectionIntent
16216 objectMap := make(map[string]interface{})
16217 if pi.BackupManagementType != "" {
16218 objectMap["backupManagementType"] = pi.BackupManagementType
16219 }
16220 if pi.SourceResourceID != nil {
16221 objectMap["sourceResourceId"] = pi.SourceResourceID
16222 }
16223 if pi.ItemID != nil {
16224 objectMap["itemId"] = pi.ItemID
16225 }
16226 if pi.PolicyID != nil {
16227 objectMap["policyId"] = pi.PolicyID
16228 }
16229 if pi.ProtectionState != "" {
16230 objectMap["protectionState"] = pi.ProtectionState
16231 }
16232 if pi.ProtectionIntentItemType != "" {
16233 objectMap["protectionIntentItemType"] = pi.ProtectionIntentItemType
16234 }
16235 return json.Marshal(objectMap)
16236 }
16237
16238
16239 func (pi ProtectionIntent) AsAzureRecoveryServiceVaultProtectionIntent() (*AzureRecoveryServiceVaultProtectionIntent, bool) {
16240 return nil, false
16241 }
16242
16243
16244 func (pi ProtectionIntent) AsBasicAzureRecoveryServiceVaultProtectionIntent() (BasicAzureRecoveryServiceVaultProtectionIntent, bool) {
16245 return nil, false
16246 }
16247
16248
16249 func (pi ProtectionIntent) AsAzureResourceProtectionIntent() (*AzureResourceProtectionIntent, bool) {
16250 return nil, false
16251 }
16252
16253
16254 func (pi ProtectionIntent) AsAzureWorkloadAutoProtectionIntent() (*AzureWorkloadAutoProtectionIntent, bool) {
16255 return nil, false
16256 }
16257
16258
16259 func (pi ProtectionIntent) AsBasicAzureWorkloadAutoProtectionIntent() (BasicAzureWorkloadAutoProtectionIntent, bool) {
16260 return nil, false
16261 }
16262
16263
16264 func (pi ProtectionIntent) AsAzureWorkloadSQLAutoProtectionIntent() (*AzureWorkloadSQLAutoProtectionIntent, bool) {
16265 return nil, false
16266 }
16267
16268
16269 func (pi ProtectionIntent) AsProtectionIntent() (*ProtectionIntent, bool) {
16270 return &pi, true
16271 }
16272
16273
16274 func (pi ProtectionIntent) AsBasicProtectionIntent() (BasicProtectionIntent, bool) {
16275 return &pi, true
16276 }
16277
16278
16279 type ProtectionIntentQueryObject struct {
16280
16281 BackupManagementType ManagementType `json:"backupManagementType,omitempty"`
16282
16283 ItemType IntentItemType `json:"itemType,omitempty"`
16284
16285 ParentName *string `json:"parentName,omitempty"`
16286
16287 ItemName *string `json:"itemName,omitempty"`
16288 }
16289
16290
16291 type ProtectionIntentResource struct {
16292 autorest.Response `json:"-"`
16293
16294 Properties BasicProtectionIntent `json:"properties,omitempty"`
16295
16296 ID *string `json:"id,omitempty"`
16297
16298 Name *string `json:"name,omitempty"`
16299
16300 Type *string `json:"type,omitempty"`
16301
16302 Location *string `json:"location,omitempty"`
16303
16304 Tags map[string]*string `json:"tags"`
16305
16306 ETag *string `json:"eTag,omitempty"`
16307 }
16308
16309
16310 func (pir ProtectionIntentResource) MarshalJSON() ([]byte, error) {
16311 objectMap := make(map[string]interface{})
16312 objectMap["properties"] = pir.Properties
16313 if pir.Location != nil {
16314 objectMap["location"] = pir.Location
16315 }
16316 if pir.Tags != nil {
16317 objectMap["tags"] = pir.Tags
16318 }
16319 if pir.ETag != nil {
16320 objectMap["eTag"] = pir.ETag
16321 }
16322 return json.Marshal(objectMap)
16323 }
16324
16325
16326 func (pir *ProtectionIntentResource) UnmarshalJSON(body []byte) error {
16327 var m map[string]*json.RawMessage
16328 err := json.Unmarshal(body, &m)
16329 if err != nil {
16330 return err
16331 }
16332 for k, v := range m {
16333 switch k {
16334 case "properties":
16335 if v != nil {
16336 properties, err := unmarshalBasicProtectionIntent(*v)
16337 if err != nil {
16338 return err
16339 }
16340 pir.Properties = properties
16341 }
16342 case "id":
16343 if v != nil {
16344 var ID string
16345 err = json.Unmarshal(*v, &ID)
16346 if err != nil {
16347 return err
16348 }
16349 pir.ID = &ID
16350 }
16351 case "name":
16352 if v != nil {
16353 var name string
16354 err = json.Unmarshal(*v, &name)
16355 if err != nil {
16356 return err
16357 }
16358 pir.Name = &name
16359 }
16360 case "type":
16361 if v != nil {
16362 var typeVar string
16363 err = json.Unmarshal(*v, &typeVar)
16364 if err != nil {
16365 return err
16366 }
16367 pir.Type = &typeVar
16368 }
16369 case "location":
16370 if v != nil {
16371 var location string
16372 err = json.Unmarshal(*v, &location)
16373 if err != nil {
16374 return err
16375 }
16376 pir.Location = &location
16377 }
16378 case "tags":
16379 if v != nil {
16380 var tags map[string]*string
16381 err = json.Unmarshal(*v, &tags)
16382 if err != nil {
16383 return err
16384 }
16385 pir.Tags = tags
16386 }
16387 case "eTag":
16388 if v != nil {
16389 var eTag string
16390 err = json.Unmarshal(*v, &eTag)
16391 if err != nil {
16392 return err
16393 }
16394 pir.ETag = &eTag
16395 }
16396 }
16397 }
16398
16399 return nil
16400 }
16401
16402
16403 type ProtectionIntentResourceList struct {
16404 autorest.Response `json:"-"`
16405
16406 Value *[]ProtectionIntentResource `json:"value,omitempty"`
16407
16408 NextLink *string `json:"nextLink,omitempty"`
16409 }
16410
16411
16412
16413 type ProtectionIntentResourceListIterator struct {
16414 i int
16415 page ProtectionIntentResourceListPage
16416 }
16417
16418
16419
16420 func (iter *ProtectionIntentResourceListIterator) NextWithContext(ctx context.Context) (err error) {
16421 if tracing.IsEnabled() {
16422 ctx = tracing.StartSpan(ctx, fqdn+"/ProtectionIntentResourceListIterator.NextWithContext")
16423 defer func() {
16424 sc := -1
16425 if iter.Response().Response.Response != nil {
16426 sc = iter.Response().Response.Response.StatusCode
16427 }
16428 tracing.EndSpan(ctx, sc, err)
16429 }()
16430 }
16431 iter.i++
16432 if iter.i < len(iter.page.Values()) {
16433 return nil
16434 }
16435 err = iter.page.NextWithContext(ctx)
16436 if err != nil {
16437 iter.i--
16438 return err
16439 }
16440 iter.i = 0
16441 return nil
16442 }
16443
16444
16445
16446
16447 func (iter *ProtectionIntentResourceListIterator) Next() error {
16448 return iter.NextWithContext(context.Background())
16449 }
16450
16451
16452 func (iter ProtectionIntentResourceListIterator) NotDone() bool {
16453 return iter.page.NotDone() && iter.i < len(iter.page.Values())
16454 }
16455
16456
16457 func (iter ProtectionIntentResourceListIterator) Response() ProtectionIntentResourceList {
16458 return iter.page.Response()
16459 }
16460
16461
16462
16463 func (iter ProtectionIntentResourceListIterator) Value() ProtectionIntentResource {
16464 if !iter.page.NotDone() {
16465 return ProtectionIntentResource{}
16466 }
16467 return iter.page.Values()[iter.i]
16468 }
16469
16470
16471 func NewProtectionIntentResourceListIterator(page ProtectionIntentResourceListPage) ProtectionIntentResourceListIterator {
16472 return ProtectionIntentResourceListIterator{page: page}
16473 }
16474
16475
16476 func (pirl ProtectionIntentResourceList) IsEmpty() bool {
16477 return pirl.Value == nil || len(*pirl.Value) == 0
16478 }
16479
16480
16481 func (pirl ProtectionIntentResourceList) hasNextLink() bool {
16482 return pirl.NextLink != nil && len(*pirl.NextLink) != 0
16483 }
16484
16485
16486
16487 func (pirl ProtectionIntentResourceList) protectionIntentResourceListPreparer(ctx context.Context) (*http.Request, error) {
16488 if !pirl.hasNextLink() {
16489 return nil, nil
16490 }
16491 return autorest.Prepare((&http.Request{}).WithContext(ctx),
16492 autorest.AsJSON(),
16493 autorest.AsGet(),
16494 autorest.WithBaseURL(to.String(pirl.NextLink)))
16495 }
16496
16497
16498 type ProtectionIntentResourceListPage struct {
16499 fn func(context.Context, ProtectionIntentResourceList) (ProtectionIntentResourceList, error)
16500 pirl ProtectionIntentResourceList
16501 }
16502
16503
16504
16505 func (page *ProtectionIntentResourceListPage) NextWithContext(ctx context.Context) (err error) {
16506 if tracing.IsEnabled() {
16507 ctx = tracing.StartSpan(ctx, fqdn+"/ProtectionIntentResourceListPage.NextWithContext")
16508 defer func() {
16509 sc := -1
16510 if page.Response().Response.Response != nil {
16511 sc = page.Response().Response.Response.StatusCode
16512 }
16513 tracing.EndSpan(ctx, sc, err)
16514 }()
16515 }
16516 for {
16517 next, err := page.fn(ctx, page.pirl)
16518 if err != nil {
16519 return err
16520 }
16521 page.pirl = next
16522 if !next.hasNextLink() || !next.IsEmpty() {
16523 break
16524 }
16525 }
16526 return nil
16527 }
16528
16529
16530
16531
16532 func (page *ProtectionIntentResourceListPage) Next() error {
16533 return page.NextWithContext(context.Background())
16534 }
16535
16536
16537 func (page ProtectionIntentResourceListPage) NotDone() bool {
16538 return !page.pirl.IsEmpty()
16539 }
16540
16541
16542 func (page ProtectionIntentResourceListPage) Response() ProtectionIntentResourceList {
16543 return page.pirl
16544 }
16545
16546
16547 func (page ProtectionIntentResourceListPage) Values() []ProtectionIntentResource {
16548 if page.pirl.IsEmpty() {
16549 return nil
16550 }
16551 return *page.pirl.Value
16552 }
16553
16554
16555 func NewProtectionIntentResourceListPage(cur ProtectionIntentResourceList, getNextPage func(context.Context, ProtectionIntentResourceList) (ProtectionIntentResourceList, error)) ProtectionIntentResourceListPage {
16556 return ProtectionIntentResourceListPage{
16557 fn: getNextPage,
16558 pirl: cur,
16559 }
16560 }
16561
16562
16563 type BasicProtectionPolicy interface {
16564 AsAzureVMWorkloadProtectionPolicy() (*AzureVMWorkloadProtectionPolicy, bool)
16565 AsAzureFileShareProtectionPolicy() (*AzureFileShareProtectionPolicy, bool)
16566 AsAzureIaaSVMProtectionPolicy() (*AzureIaaSVMProtectionPolicy, bool)
16567 AsAzureSQLProtectionPolicy() (*AzureSQLProtectionPolicy, bool)
16568 AsGenericProtectionPolicy() (*GenericProtectionPolicy, bool)
16569 AsMabProtectionPolicy() (*MabProtectionPolicy, bool)
16570 AsProtectionPolicy() (*ProtectionPolicy, bool)
16571 }
16572
16573
16574
16575 type ProtectionPolicy struct {
16576
16577 ProtectedItemsCount *int32 `json:"protectedItemsCount,omitempty"`
16578
16579 BackupManagementType ManagementTypeBasicProtectionPolicy `json:"backupManagementType,omitempty"`
16580 }
16581
16582 func unmarshalBasicProtectionPolicy(body []byte) (BasicProtectionPolicy, error) {
16583 var m map[string]interface{}
16584 err := json.Unmarshal(body, &m)
16585 if err != nil {
16586 return nil, err
16587 }
16588
16589 switch m["backupManagementType"] {
16590 case string(BackupManagementTypeAzureWorkload):
16591 var avwpp AzureVMWorkloadProtectionPolicy
16592 err := json.Unmarshal(body, &avwpp)
16593 return avwpp, err
16594 case string(BackupManagementTypeAzureStorage):
16595 var afspp AzureFileShareProtectionPolicy
16596 err := json.Unmarshal(body, &afspp)
16597 return afspp, err
16598 case string(BackupManagementTypeAzureIaasVM):
16599 var aispp AzureIaaSVMProtectionPolicy
16600 err := json.Unmarshal(body, &aispp)
16601 return aispp, err
16602 case string(BackupManagementTypeAzureSQL):
16603 var aspp AzureSQLProtectionPolicy
16604 err := json.Unmarshal(body, &aspp)
16605 return aspp, err
16606 case string(BackupManagementTypeGenericProtectionPolicy):
16607 var gpp GenericProtectionPolicy
16608 err := json.Unmarshal(body, &gpp)
16609 return gpp, err
16610 case string(BackupManagementTypeMAB):
16611 var mpp MabProtectionPolicy
16612 err := json.Unmarshal(body, &mpp)
16613 return mpp, err
16614 default:
16615 var pp ProtectionPolicy
16616 err := json.Unmarshal(body, &pp)
16617 return pp, err
16618 }
16619 }
16620 func unmarshalBasicProtectionPolicyArray(body []byte) ([]BasicProtectionPolicy, error) {
16621 var rawMessages []*json.RawMessage
16622 err := json.Unmarshal(body, &rawMessages)
16623 if err != nil {
16624 return nil, err
16625 }
16626
16627 ppArray := make([]BasicProtectionPolicy, len(rawMessages))
16628
16629 for index, rawMessage := range rawMessages {
16630 pp, err := unmarshalBasicProtectionPolicy(*rawMessage)
16631 if err != nil {
16632 return nil, err
16633 }
16634 ppArray[index] = pp
16635 }
16636 return ppArray, nil
16637 }
16638
16639
16640 func (pp ProtectionPolicy) MarshalJSON() ([]byte, error) {
16641 pp.BackupManagementType = BackupManagementTypeProtectionPolicy
16642 objectMap := make(map[string]interface{})
16643 if pp.ProtectedItemsCount != nil {
16644 objectMap["protectedItemsCount"] = pp.ProtectedItemsCount
16645 }
16646 if pp.BackupManagementType != "" {
16647 objectMap["backupManagementType"] = pp.BackupManagementType
16648 }
16649 return json.Marshal(objectMap)
16650 }
16651
16652
16653 func (pp ProtectionPolicy) AsAzureVMWorkloadProtectionPolicy() (*AzureVMWorkloadProtectionPolicy, bool) {
16654 return nil, false
16655 }
16656
16657
16658 func (pp ProtectionPolicy) AsAzureFileShareProtectionPolicy() (*AzureFileShareProtectionPolicy, bool) {
16659 return nil, false
16660 }
16661
16662
16663 func (pp ProtectionPolicy) AsAzureIaaSVMProtectionPolicy() (*AzureIaaSVMProtectionPolicy, bool) {
16664 return nil, false
16665 }
16666
16667
16668 func (pp ProtectionPolicy) AsAzureSQLProtectionPolicy() (*AzureSQLProtectionPolicy, bool) {
16669 return nil, false
16670 }
16671
16672
16673 func (pp ProtectionPolicy) AsGenericProtectionPolicy() (*GenericProtectionPolicy, bool) {
16674 return nil, false
16675 }
16676
16677
16678 func (pp ProtectionPolicy) AsMabProtectionPolicy() (*MabProtectionPolicy, bool) {
16679 return nil, false
16680 }
16681
16682
16683 func (pp ProtectionPolicy) AsProtectionPolicy() (*ProtectionPolicy, bool) {
16684 return &pp, true
16685 }
16686
16687
16688 func (pp ProtectionPolicy) AsBasicProtectionPolicy() (BasicProtectionPolicy, bool) {
16689 return &pp, true
16690 }
16691
16692
16693 type ProtectionPolicyQueryObject struct {
16694
16695 BackupManagementType ManagementType `json:"backupManagementType,omitempty"`
16696
16697 FabricName *string `json:"fabricName,omitempty"`
16698
16699 WorkloadType WorkloadType `json:"workloadType,omitempty"`
16700 }
16701
16702
16703
16704 type ProtectionPolicyResource struct {
16705 autorest.Response `json:"-"`
16706
16707 Properties BasicProtectionPolicy `json:"properties,omitempty"`
16708
16709 ID *string `json:"id,omitempty"`
16710
16711 Name *string `json:"name,omitempty"`
16712
16713 Type *string `json:"type,omitempty"`
16714
16715 Location *string `json:"location,omitempty"`
16716
16717 Tags map[string]*string `json:"tags"`
16718
16719 ETag *string `json:"eTag,omitempty"`
16720 }
16721
16722
16723 func (ppr ProtectionPolicyResource) MarshalJSON() ([]byte, error) {
16724 objectMap := make(map[string]interface{})
16725 objectMap["properties"] = ppr.Properties
16726 if ppr.Location != nil {
16727 objectMap["location"] = ppr.Location
16728 }
16729 if ppr.Tags != nil {
16730 objectMap["tags"] = ppr.Tags
16731 }
16732 if ppr.ETag != nil {
16733 objectMap["eTag"] = ppr.ETag
16734 }
16735 return json.Marshal(objectMap)
16736 }
16737
16738
16739 func (ppr *ProtectionPolicyResource) UnmarshalJSON(body []byte) error {
16740 var m map[string]*json.RawMessage
16741 err := json.Unmarshal(body, &m)
16742 if err != nil {
16743 return err
16744 }
16745 for k, v := range m {
16746 switch k {
16747 case "properties":
16748 if v != nil {
16749 properties, err := unmarshalBasicProtectionPolicy(*v)
16750 if err != nil {
16751 return err
16752 }
16753 ppr.Properties = properties
16754 }
16755 case "id":
16756 if v != nil {
16757 var ID string
16758 err = json.Unmarshal(*v, &ID)
16759 if err != nil {
16760 return err
16761 }
16762 ppr.ID = &ID
16763 }
16764 case "name":
16765 if v != nil {
16766 var name string
16767 err = json.Unmarshal(*v, &name)
16768 if err != nil {
16769 return err
16770 }
16771 ppr.Name = &name
16772 }
16773 case "type":
16774 if v != nil {
16775 var typeVar string
16776 err = json.Unmarshal(*v, &typeVar)
16777 if err != nil {
16778 return err
16779 }
16780 ppr.Type = &typeVar
16781 }
16782 case "location":
16783 if v != nil {
16784 var location string
16785 err = json.Unmarshal(*v, &location)
16786 if err != nil {
16787 return err
16788 }
16789 ppr.Location = &location
16790 }
16791 case "tags":
16792 if v != nil {
16793 var tags map[string]*string
16794 err = json.Unmarshal(*v, &tags)
16795 if err != nil {
16796 return err
16797 }
16798 ppr.Tags = tags
16799 }
16800 case "eTag":
16801 if v != nil {
16802 var eTag string
16803 err = json.Unmarshal(*v, &eTag)
16804 if err != nil {
16805 return err
16806 }
16807 ppr.ETag = &eTag
16808 }
16809 }
16810 }
16811
16812 return nil
16813 }
16814
16815
16816 type ProtectionPolicyResourceList struct {
16817 autorest.Response `json:"-"`
16818
16819 Value *[]ProtectionPolicyResource `json:"value,omitempty"`
16820
16821 NextLink *string `json:"nextLink,omitempty"`
16822 }
16823
16824
16825
16826 type ProtectionPolicyResourceListIterator struct {
16827 i int
16828 page ProtectionPolicyResourceListPage
16829 }
16830
16831
16832
16833 func (iter *ProtectionPolicyResourceListIterator) NextWithContext(ctx context.Context) (err error) {
16834 if tracing.IsEnabled() {
16835 ctx = tracing.StartSpan(ctx, fqdn+"/ProtectionPolicyResourceListIterator.NextWithContext")
16836 defer func() {
16837 sc := -1
16838 if iter.Response().Response.Response != nil {
16839 sc = iter.Response().Response.Response.StatusCode
16840 }
16841 tracing.EndSpan(ctx, sc, err)
16842 }()
16843 }
16844 iter.i++
16845 if iter.i < len(iter.page.Values()) {
16846 return nil
16847 }
16848 err = iter.page.NextWithContext(ctx)
16849 if err != nil {
16850 iter.i--
16851 return err
16852 }
16853 iter.i = 0
16854 return nil
16855 }
16856
16857
16858
16859
16860 func (iter *ProtectionPolicyResourceListIterator) Next() error {
16861 return iter.NextWithContext(context.Background())
16862 }
16863
16864
16865 func (iter ProtectionPolicyResourceListIterator) NotDone() bool {
16866 return iter.page.NotDone() && iter.i < len(iter.page.Values())
16867 }
16868
16869
16870 func (iter ProtectionPolicyResourceListIterator) Response() ProtectionPolicyResourceList {
16871 return iter.page.Response()
16872 }
16873
16874
16875
16876 func (iter ProtectionPolicyResourceListIterator) Value() ProtectionPolicyResource {
16877 if !iter.page.NotDone() {
16878 return ProtectionPolicyResource{}
16879 }
16880 return iter.page.Values()[iter.i]
16881 }
16882
16883
16884 func NewProtectionPolicyResourceListIterator(page ProtectionPolicyResourceListPage) ProtectionPolicyResourceListIterator {
16885 return ProtectionPolicyResourceListIterator{page: page}
16886 }
16887
16888
16889 func (pprl ProtectionPolicyResourceList) IsEmpty() bool {
16890 return pprl.Value == nil || len(*pprl.Value) == 0
16891 }
16892
16893
16894 func (pprl ProtectionPolicyResourceList) hasNextLink() bool {
16895 return pprl.NextLink != nil && len(*pprl.NextLink) != 0
16896 }
16897
16898
16899
16900 func (pprl ProtectionPolicyResourceList) protectionPolicyResourceListPreparer(ctx context.Context) (*http.Request, error) {
16901 if !pprl.hasNextLink() {
16902 return nil, nil
16903 }
16904 return autorest.Prepare((&http.Request{}).WithContext(ctx),
16905 autorest.AsJSON(),
16906 autorest.AsGet(),
16907 autorest.WithBaseURL(to.String(pprl.NextLink)))
16908 }
16909
16910
16911 type ProtectionPolicyResourceListPage struct {
16912 fn func(context.Context, ProtectionPolicyResourceList) (ProtectionPolicyResourceList, error)
16913 pprl ProtectionPolicyResourceList
16914 }
16915
16916
16917
16918 func (page *ProtectionPolicyResourceListPage) NextWithContext(ctx context.Context) (err error) {
16919 if tracing.IsEnabled() {
16920 ctx = tracing.StartSpan(ctx, fqdn+"/ProtectionPolicyResourceListPage.NextWithContext")
16921 defer func() {
16922 sc := -1
16923 if page.Response().Response.Response != nil {
16924 sc = page.Response().Response.Response.StatusCode
16925 }
16926 tracing.EndSpan(ctx, sc, err)
16927 }()
16928 }
16929 for {
16930 next, err := page.fn(ctx, page.pprl)
16931 if err != nil {
16932 return err
16933 }
16934 page.pprl = next
16935 if !next.hasNextLink() || !next.IsEmpty() {
16936 break
16937 }
16938 }
16939 return nil
16940 }
16941
16942
16943
16944
16945 func (page *ProtectionPolicyResourceListPage) Next() error {
16946 return page.NextWithContext(context.Background())
16947 }
16948
16949
16950 func (page ProtectionPolicyResourceListPage) NotDone() bool {
16951 return !page.pprl.IsEmpty()
16952 }
16953
16954
16955 func (page ProtectionPolicyResourceListPage) Response() ProtectionPolicyResourceList {
16956 return page.pprl
16957 }
16958
16959
16960 func (page ProtectionPolicyResourceListPage) Values() []ProtectionPolicyResource {
16961 if page.pprl.IsEmpty() {
16962 return nil
16963 }
16964 return *page.pprl.Value
16965 }
16966
16967
16968 func NewProtectionPolicyResourceListPage(cur ProtectionPolicyResourceList, getNextPage func(context.Context, ProtectionPolicyResourceList) (ProtectionPolicyResourceList, error)) ProtectionPolicyResourceListPage {
16969 return ProtectionPolicyResourceListPage{
16970 fn: getNextPage,
16971 pprl: cur,
16972 }
16973 }
16974
16975
16976 type BasicRecoveryPoint interface {
16977 AsAzureFileShareRecoveryPoint() (*AzureFileShareRecoveryPoint, bool)
16978 AsAzureWorkloadPointInTimeRecoveryPoint() (*AzureWorkloadPointInTimeRecoveryPoint, bool)
16979 AsBasicAzureWorkloadPointInTimeRecoveryPoint() (BasicAzureWorkloadPointInTimeRecoveryPoint, bool)
16980 AsAzureWorkloadRecoveryPoint() (*AzureWorkloadRecoveryPoint, bool)
16981 AsBasicAzureWorkloadRecoveryPoint() (BasicAzureWorkloadRecoveryPoint, bool)
16982 AsAzureWorkloadSAPHanaPointInTimeRecoveryPoint() (*AzureWorkloadSAPHanaPointInTimeRecoveryPoint, bool)
16983 AsAzureWorkloadSAPHanaRecoveryPoint() (*AzureWorkloadSAPHanaRecoveryPoint, bool)
16984 AsAzureWorkloadSQLPointInTimeRecoveryPoint() (*AzureWorkloadSQLPointInTimeRecoveryPoint, bool)
16985 AsAzureWorkloadSQLRecoveryPoint() (*AzureWorkloadSQLRecoveryPoint, bool)
16986 AsBasicAzureWorkloadSQLRecoveryPoint() (BasicAzureWorkloadSQLRecoveryPoint, bool)
16987 AsGenericRecoveryPoint() (*GenericRecoveryPoint, bool)
16988 AsIaasVMRecoveryPoint() (*IaasVMRecoveryPoint, bool)
16989 AsRecoveryPoint() (*RecoveryPoint, bool)
16990 }
16991
16992
16993 type RecoveryPoint struct {
16994
16995 ObjectType ObjectTypeBasicRecoveryPoint `json:"objectType,omitempty"`
16996 }
16997
16998 func unmarshalBasicRecoveryPoint(body []byte) (BasicRecoveryPoint, error) {
16999 var m map[string]interface{}
17000 err := json.Unmarshal(body, &m)
17001 if err != nil {
17002 return nil, err
17003 }
17004
17005 switch m["objectType"] {
17006 case string(ObjectTypeAzureFileShareRecoveryPoint):
17007 var afsrp AzureFileShareRecoveryPoint
17008 err := json.Unmarshal(body, &afsrp)
17009 return afsrp, err
17010 case string(ObjectTypeAzureWorkloadPointInTimeRecoveryPoint):
17011 var awpitrp AzureWorkloadPointInTimeRecoveryPoint
17012 err := json.Unmarshal(body, &awpitrp)
17013 return awpitrp, err
17014 case string(ObjectTypeAzureWorkloadRecoveryPoint):
17015 var awrp AzureWorkloadRecoveryPoint
17016 err := json.Unmarshal(body, &awrp)
17017 return awrp, err
17018 case string(ObjectTypeAzureWorkloadSAPHanaPointInTimeRecoveryPoint):
17019 var awshpitrp AzureWorkloadSAPHanaPointInTimeRecoveryPoint
17020 err := json.Unmarshal(body, &awshpitrp)
17021 return awshpitrp, err
17022 case string(ObjectTypeAzureWorkloadSAPHanaRecoveryPoint):
17023 var awshrp AzureWorkloadSAPHanaRecoveryPoint
17024 err := json.Unmarshal(body, &awshrp)
17025 return awshrp, err
17026 case string(ObjectTypeAzureWorkloadSQLPointInTimeRecoveryPoint):
17027 var awspitrp AzureWorkloadSQLPointInTimeRecoveryPoint
17028 err := json.Unmarshal(body, &awspitrp)
17029 return awspitrp, err
17030 case string(ObjectTypeAzureWorkloadSQLRecoveryPoint):
17031 var awsrp AzureWorkloadSQLRecoveryPoint
17032 err := json.Unmarshal(body, &awsrp)
17033 return awsrp, err
17034 case string(ObjectTypeGenericRecoveryPoint):
17035 var grp GenericRecoveryPoint
17036 err := json.Unmarshal(body, &grp)
17037 return grp, err
17038 case string(ObjectTypeIaasVMRecoveryPoint):
17039 var ivrp IaasVMRecoveryPoint
17040 err := json.Unmarshal(body, &ivrp)
17041 return ivrp, err
17042 default:
17043 var rp RecoveryPoint
17044 err := json.Unmarshal(body, &rp)
17045 return rp, err
17046 }
17047 }
17048 func unmarshalBasicRecoveryPointArray(body []byte) ([]BasicRecoveryPoint, error) {
17049 var rawMessages []*json.RawMessage
17050 err := json.Unmarshal(body, &rawMessages)
17051 if err != nil {
17052 return nil, err
17053 }
17054
17055 rpArray := make([]BasicRecoveryPoint, len(rawMessages))
17056
17057 for index, rawMessage := range rawMessages {
17058 rp, err := unmarshalBasicRecoveryPoint(*rawMessage)
17059 if err != nil {
17060 return nil, err
17061 }
17062 rpArray[index] = rp
17063 }
17064 return rpArray, nil
17065 }
17066
17067
17068 func (rp RecoveryPoint) MarshalJSON() ([]byte, error) {
17069 rp.ObjectType = ObjectTypeRecoveryPoint
17070 objectMap := make(map[string]interface{})
17071 if rp.ObjectType != "" {
17072 objectMap["objectType"] = rp.ObjectType
17073 }
17074 return json.Marshal(objectMap)
17075 }
17076
17077
17078 func (rp RecoveryPoint) AsAzureFileShareRecoveryPoint() (*AzureFileShareRecoveryPoint, bool) {
17079 return nil, false
17080 }
17081
17082
17083 func (rp RecoveryPoint) AsAzureWorkloadPointInTimeRecoveryPoint() (*AzureWorkloadPointInTimeRecoveryPoint, bool) {
17084 return nil, false
17085 }
17086
17087
17088 func (rp RecoveryPoint) AsBasicAzureWorkloadPointInTimeRecoveryPoint() (BasicAzureWorkloadPointInTimeRecoveryPoint, bool) {
17089 return nil, false
17090 }
17091
17092
17093 func (rp RecoveryPoint) AsAzureWorkloadRecoveryPoint() (*AzureWorkloadRecoveryPoint, bool) {
17094 return nil, false
17095 }
17096
17097
17098 func (rp RecoveryPoint) AsBasicAzureWorkloadRecoveryPoint() (BasicAzureWorkloadRecoveryPoint, bool) {
17099 return nil, false
17100 }
17101
17102
17103 func (rp RecoveryPoint) AsAzureWorkloadSAPHanaPointInTimeRecoveryPoint() (*AzureWorkloadSAPHanaPointInTimeRecoveryPoint, bool) {
17104 return nil, false
17105 }
17106
17107
17108 func (rp RecoveryPoint) AsAzureWorkloadSAPHanaRecoveryPoint() (*AzureWorkloadSAPHanaRecoveryPoint, bool) {
17109 return nil, false
17110 }
17111
17112
17113 func (rp RecoveryPoint) AsAzureWorkloadSQLPointInTimeRecoveryPoint() (*AzureWorkloadSQLPointInTimeRecoveryPoint, bool) {
17114 return nil, false
17115 }
17116
17117
17118 func (rp RecoveryPoint) AsAzureWorkloadSQLRecoveryPoint() (*AzureWorkloadSQLRecoveryPoint, bool) {
17119 return nil, false
17120 }
17121
17122
17123 func (rp RecoveryPoint) AsBasicAzureWorkloadSQLRecoveryPoint() (BasicAzureWorkloadSQLRecoveryPoint, bool) {
17124 return nil, false
17125 }
17126
17127
17128 func (rp RecoveryPoint) AsGenericRecoveryPoint() (*GenericRecoveryPoint, bool) {
17129 return nil, false
17130 }
17131
17132
17133 func (rp RecoveryPoint) AsIaasVMRecoveryPoint() (*IaasVMRecoveryPoint, bool) {
17134 return nil, false
17135 }
17136
17137
17138 func (rp RecoveryPoint) AsRecoveryPoint() (*RecoveryPoint, bool) {
17139 return &rp, true
17140 }
17141
17142
17143 func (rp RecoveryPoint) AsBasicRecoveryPoint() (BasicRecoveryPoint, bool) {
17144 return &rp, true
17145 }
17146
17147
17148 type RecoveryPointDiskConfiguration struct {
17149
17150 NumberOfDisksIncludedInBackup *int32 `json:"numberOfDisksIncludedInBackup,omitempty"`
17151
17152 NumberOfDisksAttachedToVM *int32 `json:"numberOfDisksAttachedToVm,omitempty"`
17153
17154 IncludedDiskList *[]DiskInformation `json:"includedDiskList,omitempty"`
17155
17156 ExcludedDiskList *[]DiskInformation `json:"excludedDiskList,omitempty"`
17157 }
17158
17159
17160
17161 type RecoveryPointResource struct {
17162 autorest.Response `json:"-"`
17163
17164 Properties BasicRecoveryPoint `json:"properties,omitempty"`
17165
17166 ID *string `json:"id,omitempty"`
17167
17168 Name *string `json:"name,omitempty"`
17169
17170 Type *string `json:"type,omitempty"`
17171
17172 Location *string `json:"location,omitempty"`
17173
17174 Tags map[string]*string `json:"tags"`
17175
17176 ETag *string `json:"eTag,omitempty"`
17177 }
17178
17179
17180 func (rpr RecoveryPointResource) MarshalJSON() ([]byte, error) {
17181 objectMap := make(map[string]interface{})
17182 objectMap["properties"] = rpr.Properties
17183 if rpr.Location != nil {
17184 objectMap["location"] = rpr.Location
17185 }
17186 if rpr.Tags != nil {
17187 objectMap["tags"] = rpr.Tags
17188 }
17189 if rpr.ETag != nil {
17190 objectMap["eTag"] = rpr.ETag
17191 }
17192 return json.Marshal(objectMap)
17193 }
17194
17195
17196 func (rpr *RecoveryPointResource) UnmarshalJSON(body []byte) error {
17197 var m map[string]*json.RawMessage
17198 err := json.Unmarshal(body, &m)
17199 if err != nil {
17200 return err
17201 }
17202 for k, v := range m {
17203 switch k {
17204 case "properties":
17205 if v != nil {
17206 properties, err := unmarshalBasicRecoveryPoint(*v)
17207 if err != nil {
17208 return err
17209 }
17210 rpr.Properties = properties
17211 }
17212 case "id":
17213 if v != nil {
17214 var ID string
17215 err = json.Unmarshal(*v, &ID)
17216 if err != nil {
17217 return err
17218 }
17219 rpr.ID = &ID
17220 }
17221 case "name":
17222 if v != nil {
17223 var name string
17224 err = json.Unmarshal(*v, &name)
17225 if err != nil {
17226 return err
17227 }
17228 rpr.Name = &name
17229 }
17230 case "type":
17231 if v != nil {
17232 var typeVar string
17233 err = json.Unmarshal(*v, &typeVar)
17234 if err != nil {
17235 return err
17236 }
17237 rpr.Type = &typeVar
17238 }
17239 case "location":
17240 if v != nil {
17241 var location string
17242 err = json.Unmarshal(*v, &location)
17243 if err != nil {
17244 return err
17245 }
17246 rpr.Location = &location
17247 }
17248 case "tags":
17249 if v != nil {
17250 var tags map[string]*string
17251 err = json.Unmarshal(*v, &tags)
17252 if err != nil {
17253 return err
17254 }
17255 rpr.Tags = tags
17256 }
17257 case "eTag":
17258 if v != nil {
17259 var eTag string
17260 err = json.Unmarshal(*v, &eTag)
17261 if err != nil {
17262 return err
17263 }
17264 rpr.ETag = &eTag
17265 }
17266 }
17267 }
17268
17269 return nil
17270 }
17271
17272
17273 type RecoveryPointResourceList struct {
17274 autorest.Response `json:"-"`
17275
17276 Value *[]RecoveryPointResource `json:"value,omitempty"`
17277
17278 NextLink *string `json:"nextLink,omitempty"`
17279 }
17280
17281
17282 type RecoveryPointResourceListIterator struct {
17283 i int
17284 page RecoveryPointResourceListPage
17285 }
17286
17287
17288
17289 func (iter *RecoveryPointResourceListIterator) NextWithContext(ctx context.Context) (err error) {
17290 if tracing.IsEnabled() {
17291 ctx = tracing.StartSpan(ctx, fqdn+"/RecoveryPointResourceListIterator.NextWithContext")
17292 defer func() {
17293 sc := -1
17294 if iter.Response().Response.Response != nil {
17295 sc = iter.Response().Response.Response.StatusCode
17296 }
17297 tracing.EndSpan(ctx, sc, err)
17298 }()
17299 }
17300 iter.i++
17301 if iter.i < len(iter.page.Values()) {
17302 return nil
17303 }
17304 err = iter.page.NextWithContext(ctx)
17305 if err != nil {
17306 iter.i--
17307 return err
17308 }
17309 iter.i = 0
17310 return nil
17311 }
17312
17313
17314
17315
17316 func (iter *RecoveryPointResourceListIterator) Next() error {
17317 return iter.NextWithContext(context.Background())
17318 }
17319
17320
17321 func (iter RecoveryPointResourceListIterator) NotDone() bool {
17322 return iter.page.NotDone() && iter.i < len(iter.page.Values())
17323 }
17324
17325
17326 func (iter RecoveryPointResourceListIterator) Response() RecoveryPointResourceList {
17327 return iter.page.Response()
17328 }
17329
17330
17331
17332 func (iter RecoveryPointResourceListIterator) Value() RecoveryPointResource {
17333 if !iter.page.NotDone() {
17334 return RecoveryPointResource{}
17335 }
17336 return iter.page.Values()[iter.i]
17337 }
17338
17339
17340 func NewRecoveryPointResourceListIterator(page RecoveryPointResourceListPage) RecoveryPointResourceListIterator {
17341 return RecoveryPointResourceListIterator{page: page}
17342 }
17343
17344
17345 func (rprl RecoveryPointResourceList) IsEmpty() bool {
17346 return rprl.Value == nil || len(*rprl.Value) == 0
17347 }
17348
17349
17350 func (rprl RecoveryPointResourceList) hasNextLink() bool {
17351 return rprl.NextLink != nil && len(*rprl.NextLink) != 0
17352 }
17353
17354
17355
17356 func (rprl RecoveryPointResourceList) recoveryPointResourceListPreparer(ctx context.Context) (*http.Request, error) {
17357 if !rprl.hasNextLink() {
17358 return nil, nil
17359 }
17360 return autorest.Prepare((&http.Request{}).WithContext(ctx),
17361 autorest.AsJSON(),
17362 autorest.AsGet(),
17363 autorest.WithBaseURL(to.String(rprl.NextLink)))
17364 }
17365
17366
17367 type RecoveryPointResourceListPage struct {
17368 fn func(context.Context, RecoveryPointResourceList) (RecoveryPointResourceList, error)
17369 rprl RecoveryPointResourceList
17370 }
17371
17372
17373
17374 func (page *RecoveryPointResourceListPage) NextWithContext(ctx context.Context) (err error) {
17375 if tracing.IsEnabled() {
17376 ctx = tracing.StartSpan(ctx, fqdn+"/RecoveryPointResourceListPage.NextWithContext")
17377 defer func() {
17378 sc := -1
17379 if page.Response().Response.Response != nil {
17380 sc = page.Response().Response.Response.StatusCode
17381 }
17382 tracing.EndSpan(ctx, sc, err)
17383 }()
17384 }
17385 for {
17386 next, err := page.fn(ctx, page.rprl)
17387 if err != nil {
17388 return err
17389 }
17390 page.rprl = next
17391 if !next.hasNextLink() || !next.IsEmpty() {
17392 break
17393 }
17394 }
17395 return nil
17396 }
17397
17398
17399
17400
17401 func (page *RecoveryPointResourceListPage) Next() error {
17402 return page.NextWithContext(context.Background())
17403 }
17404
17405
17406 func (page RecoveryPointResourceListPage) NotDone() bool {
17407 return !page.rprl.IsEmpty()
17408 }
17409
17410
17411 func (page RecoveryPointResourceListPage) Response() RecoveryPointResourceList {
17412 return page.rprl
17413 }
17414
17415
17416 func (page RecoveryPointResourceListPage) Values() []RecoveryPointResource {
17417 if page.rprl.IsEmpty() {
17418 return nil
17419 }
17420 return *page.rprl.Value
17421 }
17422
17423
17424 func NewRecoveryPointResourceListPage(cur RecoveryPointResourceList, getNextPage func(context.Context, RecoveryPointResourceList) (RecoveryPointResourceList, error)) RecoveryPointResourceListPage {
17425 return RecoveryPointResourceListPage{
17426 fn: getNextPage,
17427 rprl: cur,
17428 }
17429 }
17430
17431
17432 type RecoveryPointTierInformation struct {
17433
17434 Type RecoveryPointTierType `json:"type,omitempty"`
17435
17436 Status RecoveryPointTierStatus `json:"status,omitempty"`
17437 }
17438
17439
17440 type BasicRequest interface {
17441 AsAzureFileShareBackupRequest() (*AzureFileShareBackupRequest, bool)
17442 AsAzureWorkloadBackupRequest() (*AzureWorkloadBackupRequest, bool)
17443 AsIaasVMBackupRequest() (*IaasVMBackupRequest, bool)
17444 AsRequest() (*Request, bool)
17445 }
17446
17447
17448 type Request struct {
17449
17450 ObjectType ObjectTypeBasicRequest `json:"objectType,omitempty"`
17451 }
17452
17453 func unmarshalBasicRequest(body []byte) (BasicRequest, error) {
17454 var m map[string]interface{}
17455 err := json.Unmarshal(body, &m)
17456 if err != nil {
17457 return nil, err
17458 }
17459
17460 switch m["objectType"] {
17461 case string(ObjectTypeAzureFileShareBackupRequest):
17462 var afsbr AzureFileShareBackupRequest
17463 err := json.Unmarshal(body, &afsbr)
17464 return afsbr, err
17465 case string(ObjectTypeAzureWorkloadBackupRequest):
17466 var awbr AzureWorkloadBackupRequest
17467 err := json.Unmarshal(body, &awbr)
17468 return awbr, err
17469 case string(ObjectTypeIaasVMBackupRequest):
17470 var ivbr IaasVMBackupRequest
17471 err := json.Unmarshal(body, &ivbr)
17472 return ivbr, err
17473 default:
17474 var r Request
17475 err := json.Unmarshal(body, &r)
17476 return r, err
17477 }
17478 }
17479 func unmarshalBasicRequestArray(body []byte) ([]BasicRequest, error) {
17480 var rawMessages []*json.RawMessage
17481 err := json.Unmarshal(body, &rawMessages)
17482 if err != nil {
17483 return nil, err
17484 }
17485
17486 rArray := make([]BasicRequest, len(rawMessages))
17487
17488 for index, rawMessage := range rawMessages {
17489 r, err := unmarshalBasicRequest(*rawMessage)
17490 if err != nil {
17491 return nil, err
17492 }
17493 rArray[index] = r
17494 }
17495 return rArray, nil
17496 }
17497
17498
17499 func (r Request) MarshalJSON() ([]byte, error) {
17500 r.ObjectType = ObjectTypeBackupRequest
17501 objectMap := make(map[string]interface{})
17502 if r.ObjectType != "" {
17503 objectMap["objectType"] = r.ObjectType
17504 }
17505 return json.Marshal(objectMap)
17506 }
17507
17508
17509 func (r Request) AsAzureFileShareBackupRequest() (*AzureFileShareBackupRequest, bool) {
17510 return nil, false
17511 }
17512
17513
17514 func (r Request) AsAzureWorkloadBackupRequest() (*AzureWorkloadBackupRequest, bool) {
17515 return nil, false
17516 }
17517
17518
17519 func (r Request) AsIaasVMBackupRequest() (*IaasVMBackupRequest, bool) {
17520 return nil, false
17521 }
17522
17523
17524 func (r Request) AsRequest() (*Request, bool) {
17525 return &r, true
17526 }
17527
17528
17529 func (r Request) AsBasicRequest() (BasicRequest, bool) {
17530 return &r, true
17531 }
17532
17533
17534
17535 type RequestResource struct {
17536
17537 Properties BasicRequest `json:"properties,omitempty"`
17538
17539 ID *string `json:"id,omitempty"`
17540
17541 Name *string `json:"name,omitempty"`
17542
17543 Type *string `json:"type,omitempty"`
17544
17545 Location *string `json:"location,omitempty"`
17546
17547 Tags map[string]*string `json:"tags"`
17548
17549 ETag *string `json:"eTag,omitempty"`
17550 }
17551
17552
17553 func (rr RequestResource) MarshalJSON() ([]byte, error) {
17554 objectMap := make(map[string]interface{})
17555 objectMap["properties"] = rr.Properties
17556 if rr.Location != nil {
17557 objectMap["location"] = rr.Location
17558 }
17559 if rr.Tags != nil {
17560 objectMap["tags"] = rr.Tags
17561 }
17562 if rr.ETag != nil {
17563 objectMap["eTag"] = rr.ETag
17564 }
17565 return json.Marshal(objectMap)
17566 }
17567
17568
17569 func (rr *RequestResource) UnmarshalJSON(body []byte) error {
17570 var m map[string]*json.RawMessage
17571 err := json.Unmarshal(body, &m)
17572 if err != nil {
17573 return err
17574 }
17575 for k, v := range m {
17576 switch k {
17577 case "properties":
17578 if v != nil {
17579 properties, err := unmarshalBasicRequest(*v)
17580 if err != nil {
17581 return err
17582 }
17583 rr.Properties = properties
17584 }
17585 case "id":
17586 if v != nil {
17587 var ID string
17588 err = json.Unmarshal(*v, &ID)
17589 if err != nil {
17590 return err
17591 }
17592 rr.ID = &ID
17593 }
17594 case "name":
17595 if v != nil {
17596 var name string
17597 err = json.Unmarshal(*v, &name)
17598 if err != nil {
17599 return err
17600 }
17601 rr.Name = &name
17602 }
17603 case "type":
17604 if v != nil {
17605 var typeVar string
17606 err = json.Unmarshal(*v, &typeVar)
17607 if err != nil {
17608 return err
17609 }
17610 rr.Type = &typeVar
17611 }
17612 case "location":
17613 if v != nil {
17614 var location string
17615 err = json.Unmarshal(*v, &location)
17616 if err != nil {
17617 return err
17618 }
17619 rr.Location = &location
17620 }
17621 case "tags":
17622 if v != nil {
17623 var tags map[string]*string
17624 err = json.Unmarshal(*v, &tags)
17625 if err != nil {
17626 return err
17627 }
17628 rr.Tags = tags
17629 }
17630 case "eTag":
17631 if v != nil {
17632 var eTag string
17633 err = json.Unmarshal(*v, &eTag)
17634 if err != nil {
17635 return err
17636 }
17637 rr.ETag = &eTag
17638 }
17639 }
17640 }
17641
17642 return nil
17643 }
17644
17645
17646 type Resource struct {
17647
17648 ID *string `json:"id,omitempty"`
17649
17650 Name *string `json:"name,omitempty"`
17651
17652 Type *string `json:"type,omitempty"`
17653
17654 Location *string `json:"location,omitempty"`
17655
17656 Tags map[string]*string `json:"tags"`
17657
17658 ETag *string `json:"eTag,omitempty"`
17659 }
17660
17661
17662 func (r Resource) MarshalJSON() ([]byte, error) {
17663 objectMap := make(map[string]interface{})
17664 if r.Location != nil {
17665 objectMap["location"] = r.Location
17666 }
17667 if r.Tags != nil {
17668 objectMap["tags"] = r.Tags
17669 }
17670 if r.ETag != nil {
17671 objectMap["eTag"] = r.ETag
17672 }
17673 return json.Marshal(objectMap)
17674 }
17675
17676
17677 type ResourceConfig struct {
17678
17679 StorageModelType StorageType `json:"storageModelType,omitempty"`
17680
17681 StorageType StorageType `json:"storageType,omitempty"`
17682
17683 StorageTypeState StorageTypeState `json:"storageTypeState,omitempty"`
17684 }
17685
17686
17687 type ResourceConfigResource struct {
17688 autorest.Response `json:"-"`
17689
17690 Properties *ResourceConfig `json:"properties,omitempty"`
17691
17692 ID *string `json:"id,omitempty"`
17693
17694 Name *string `json:"name,omitempty"`
17695
17696 Type *string `json:"type,omitempty"`
17697
17698 Location *string `json:"location,omitempty"`
17699
17700 Tags map[string]*string `json:"tags"`
17701
17702 ETag *string `json:"eTag,omitempty"`
17703 }
17704
17705
17706 func (rcr ResourceConfigResource) MarshalJSON() ([]byte, error) {
17707 objectMap := make(map[string]interface{})
17708 if rcr.Properties != nil {
17709 objectMap["properties"] = rcr.Properties
17710 }
17711 if rcr.Location != nil {
17712 objectMap["location"] = rcr.Location
17713 }
17714 if rcr.Tags != nil {
17715 objectMap["tags"] = rcr.Tags
17716 }
17717 if rcr.ETag != nil {
17718 objectMap["eTag"] = rcr.ETag
17719 }
17720 return json.Marshal(objectMap)
17721 }
17722
17723
17724 type ResourceHealthDetails struct {
17725
17726 Code *int32 `json:"code,omitempty"`
17727
17728 Title *string `json:"title,omitempty"`
17729
17730 Message *string `json:"message,omitempty"`
17731
17732 Recommendations *[]string `json:"recommendations,omitempty"`
17733 }
17734
17735
17736 func (rhd ResourceHealthDetails) MarshalJSON() ([]byte, error) {
17737 objectMap := make(map[string]interface{})
17738 return json.Marshal(objectMap)
17739 }
17740
17741
17742 type ResourceList struct {
17743
17744 NextLink *string `json:"nextLink,omitempty"`
17745 }
17746
17747
17748 type ResourceVaultConfig struct {
17749
17750 StorageModelType StorageType `json:"storageModelType,omitempty"`
17751
17752 StorageType StorageType `json:"storageType,omitempty"`
17753
17754 StorageTypeState StorageTypeState `json:"storageTypeState,omitempty"`
17755
17756 EnhancedSecurityState EnhancedSecurityState `json:"enhancedSecurityState,omitempty"`
17757
17758 SoftDeleteFeatureState SoftDeleteFeatureState `json:"softDeleteFeatureState,omitempty"`
17759 }
17760
17761
17762 type ResourceVaultConfigResource struct {
17763 autorest.Response `json:"-"`
17764
17765 Properties *ResourceVaultConfig `json:"properties,omitempty"`
17766
17767 ID *string `json:"id,omitempty"`
17768
17769 Name *string `json:"name,omitempty"`
17770
17771 Type *string `json:"type,omitempty"`
17772
17773 Location *string `json:"location,omitempty"`
17774
17775 Tags map[string]*string `json:"tags"`
17776
17777 ETag *string `json:"eTag,omitempty"`
17778 }
17779
17780
17781 func (rvcr ResourceVaultConfigResource) MarshalJSON() ([]byte, error) {
17782 objectMap := make(map[string]interface{})
17783 if rvcr.Properties != nil {
17784 objectMap["properties"] = rvcr.Properties
17785 }
17786 if rvcr.Location != nil {
17787 objectMap["location"] = rvcr.Location
17788 }
17789 if rvcr.Tags != nil {
17790 objectMap["tags"] = rvcr.Tags
17791 }
17792 if rvcr.ETag != nil {
17793 objectMap["eTag"] = rvcr.ETag
17794 }
17795 return json.Marshal(objectMap)
17796 }
17797
17798
17799 type RestoreFileSpecs struct {
17800
17801 Path *string `json:"path,omitempty"`
17802
17803 FileSpecType *string `json:"fileSpecType,omitempty"`
17804
17805 TargetFolderPath *string `json:"targetFolderPath,omitempty"`
17806 }
17807
17808
17809 type BasicRestoreRequest interface {
17810 AsAzureFileShareRestoreRequest() (*AzureFileShareRestoreRequest, bool)
17811 AsAzureWorkloadPointInTimeRestoreRequest() (*AzureWorkloadPointInTimeRestoreRequest, bool)
17812 AsAzureWorkloadRestoreRequest() (*AzureWorkloadRestoreRequest, bool)
17813 AsBasicAzureWorkloadRestoreRequest() (BasicAzureWorkloadRestoreRequest, bool)
17814 AsAzureWorkloadSAPHanaPointInTimeRestoreRequest() (*AzureWorkloadSAPHanaPointInTimeRestoreRequest, bool)
17815 AsAzureWorkloadSAPHanaRestoreRequest() (*AzureWorkloadSAPHanaRestoreRequest, bool)
17816 AsBasicAzureWorkloadSAPHanaRestoreRequest() (BasicAzureWorkloadSAPHanaRestoreRequest, bool)
17817 AsAzureWorkloadSQLPointInTimeRestoreRequest() (*AzureWorkloadSQLPointInTimeRestoreRequest, bool)
17818 AsAzureWorkloadSQLRestoreRequest() (*AzureWorkloadSQLRestoreRequest, bool)
17819 AsBasicAzureWorkloadSQLRestoreRequest() (BasicAzureWorkloadSQLRestoreRequest, bool)
17820 AsIaasVMRestoreRequest() (*IaasVMRestoreRequest, bool)
17821 AsRestoreRequest() (*RestoreRequest, bool)
17822 }
17823
17824
17825
17826 type RestoreRequest struct {
17827
17828 ObjectType ObjectTypeBasicRestoreRequest `json:"objectType,omitempty"`
17829 }
17830
17831 func unmarshalBasicRestoreRequest(body []byte) (BasicRestoreRequest, error) {
17832 var m map[string]interface{}
17833 err := json.Unmarshal(body, &m)
17834 if err != nil {
17835 return nil, err
17836 }
17837
17838 switch m["objectType"] {
17839 case string(ObjectTypeAzureFileShareRestoreRequest):
17840 var afsrr AzureFileShareRestoreRequest
17841 err := json.Unmarshal(body, &afsrr)
17842 return afsrr, err
17843 case string(ObjectTypeAzureWorkloadPointInTimeRestoreRequest):
17844 var awpitrr AzureWorkloadPointInTimeRestoreRequest
17845 err := json.Unmarshal(body, &awpitrr)
17846 return awpitrr, err
17847 case string(ObjectTypeAzureWorkloadRestoreRequest):
17848 var awrr AzureWorkloadRestoreRequest
17849 err := json.Unmarshal(body, &awrr)
17850 return awrr, err
17851 case string(ObjectTypeAzureWorkloadSAPHanaPointInTimeRestoreRequest):
17852 var awshpitrr AzureWorkloadSAPHanaPointInTimeRestoreRequest
17853 err := json.Unmarshal(body, &awshpitrr)
17854 return awshpitrr, err
17855 case string(ObjectTypeAzureWorkloadSAPHanaRestoreRequest):
17856 var awshrr AzureWorkloadSAPHanaRestoreRequest
17857 err := json.Unmarshal(body, &awshrr)
17858 return awshrr, err
17859 case string(ObjectTypeAzureWorkloadSQLPointInTimeRestoreRequest):
17860 var awspitrr AzureWorkloadSQLPointInTimeRestoreRequest
17861 err := json.Unmarshal(body, &awspitrr)
17862 return awspitrr, err
17863 case string(ObjectTypeAzureWorkloadSQLRestoreRequest):
17864 var awsrr AzureWorkloadSQLRestoreRequest
17865 err := json.Unmarshal(body, &awsrr)
17866 return awsrr, err
17867 case string(ObjectTypeIaasVMRestoreRequest):
17868 var ivrr IaasVMRestoreRequest
17869 err := json.Unmarshal(body, &ivrr)
17870 return ivrr, err
17871 default:
17872 var rr RestoreRequest
17873 err := json.Unmarshal(body, &rr)
17874 return rr, err
17875 }
17876 }
17877 func unmarshalBasicRestoreRequestArray(body []byte) ([]BasicRestoreRequest, error) {
17878 var rawMessages []*json.RawMessage
17879 err := json.Unmarshal(body, &rawMessages)
17880 if err != nil {
17881 return nil, err
17882 }
17883
17884 rrArray := make([]BasicRestoreRequest, len(rawMessages))
17885
17886 for index, rawMessage := range rawMessages {
17887 rr, err := unmarshalBasicRestoreRequest(*rawMessage)
17888 if err != nil {
17889 return nil, err
17890 }
17891 rrArray[index] = rr
17892 }
17893 return rrArray, nil
17894 }
17895
17896
17897 func (rr RestoreRequest) MarshalJSON() ([]byte, error) {
17898 rr.ObjectType = ObjectTypeRestoreRequest
17899 objectMap := make(map[string]interface{})
17900 if rr.ObjectType != "" {
17901 objectMap["objectType"] = rr.ObjectType
17902 }
17903 return json.Marshal(objectMap)
17904 }
17905
17906
17907 func (rr RestoreRequest) AsAzureFileShareRestoreRequest() (*AzureFileShareRestoreRequest, bool) {
17908 return nil, false
17909 }
17910
17911
17912 func (rr RestoreRequest) AsAzureWorkloadPointInTimeRestoreRequest() (*AzureWorkloadPointInTimeRestoreRequest, bool) {
17913 return nil, false
17914 }
17915
17916
17917 func (rr RestoreRequest) AsAzureWorkloadRestoreRequest() (*AzureWorkloadRestoreRequest, bool) {
17918 return nil, false
17919 }
17920
17921
17922 func (rr RestoreRequest) AsBasicAzureWorkloadRestoreRequest() (BasicAzureWorkloadRestoreRequest, bool) {
17923 return nil, false
17924 }
17925
17926
17927 func (rr RestoreRequest) AsAzureWorkloadSAPHanaPointInTimeRestoreRequest() (*AzureWorkloadSAPHanaPointInTimeRestoreRequest, bool) {
17928 return nil, false
17929 }
17930
17931
17932 func (rr RestoreRequest) AsAzureWorkloadSAPHanaRestoreRequest() (*AzureWorkloadSAPHanaRestoreRequest, bool) {
17933 return nil, false
17934 }
17935
17936
17937 func (rr RestoreRequest) AsBasicAzureWorkloadSAPHanaRestoreRequest() (BasicAzureWorkloadSAPHanaRestoreRequest, bool) {
17938 return nil, false
17939 }
17940
17941
17942 func (rr RestoreRequest) AsAzureWorkloadSQLPointInTimeRestoreRequest() (*AzureWorkloadSQLPointInTimeRestoreRequest, bool) {
17943 return nil, false
17944 }
17945
17946
17947 func (rr RestoreRequest) AsAzureWorkloadSQLRestoreRequest() (*AzureWorkloadSQLRestoreRequest, bool) {
17948 return nil, false
17949 }
17950
17951
17952 func (rr RestoreRequest) AsBasicAzureWorkloadSQLRestoreRequest() (BasicAzureWorkloadSQLRestoreRequest, bool) {
17953 return nil, false
17954 }
17955
17956
17957 func (rr RestoreRequest) AsIaasVMRestoreRequest() (*IaasVMRestoreRequest, bool) {
17958 return nil, false
17959 }
17960
17961
17962 func (rr RestoreRequest) AsRestoreRequest() (*RestoreRequest, bool) {
17963 return &rr, true
17964 }
17965
17966
17967 func (rr RestoreRequest) AsBasicRestoreRequest() (BasicRestoreRequest, bool) {
17968 return &rr, true
17969 }
17970
17971
17972
17973 type RestoreRequestResource struct {
17974
17975 Properties BasicRestoreRequest `json:"properties,omitempty"`
17976
17977 ID *string `json:"id,omitempty"`
17978
17979 Name *string `json:"name,omitempty"`
17980
17981 Type *string `json:"type,omitempty"`
17982
17983 Location *string `json:"location,omitempty"`
17984
17985 Tags map[string]*string `json:"tags"`
17986
17987 ETag *string `json:"eTag,omitempty"`
17988 }
17989
17990
17991 func (rrr RestoreRequestResource) MarshalJSON() ([]byte, error) {
17992 objectMap := make(map[string]interface{})
17993 objectMap["properties"] = rrr.Properties
17994 if rrr.Location != nil {
17995 objectMap["location"] = rrr.Location
17996 }
17997 if rrr.Tags != nil {
17998 objectMap["tags"] = rrr.Tags
17999 }
18000 if rrr.ETag != nil {
18001 objectMap["eTag"] = rrr.ETag
18002 }
18003 return json.Marshal(objectMap)
18004 }
18005
18006
18007 func (rrr *RestoreRequestResource) UnmarshalJSON(body []byte) error {
18008 var m map[string]*json.RawMessage
18009 err := json.Unmarshal(body, &m)
18010 if err != nil {
18011 return err
18012 }
18013 for k, v := range m {
18014 switch k {
18015 case "properties":
18016 if v != nil {
18017 properties, err := unmarshalBasicRestoreRequest(*v)
18018 if err != nil {
18019 return err
18020 }
18021 rrr.Properties = properties
18022 }
18023 case "id":
18024 if v != nil {
18025 var ID string
18026 err = json.Unmarshal(*v, &ID)
18027 if err != nil {
18028 return err
18029 }
18030 rrr.ID = &ID
18031 }
18032 case "name":
18033 if v != nil {
18034 var name string
18035 err = json.Unmarshal(*v, &name)
18036 if err != nil {
18037 return err
18038 }
18039 rrr.Name = &name
18040 }
18041 case "type":
18042 if v != nil {
18043 var typeVar string
18044 err = json.Unmarshal(*v, &typeVar)
18045 if err != nil {
18046 return err
18047 }
18048 rrr.Type = &typeVar
18049 }
18050 case "location":
18051 if v != nil {
18052 var location string
18053 err = json.Unmarshal(*v, &location)
18054 if err != nil {
18055 return err
18056 }
18057 rrr.Location = &location
18058 }
18059 case "tags":
18060 if v != nil {
18061 var tags map[string]*string
18062 err = json.Unmarshal(*v, &tags)
18063 if err != nil {
18064 return err
18065 }
18066 rrr.Tags = tags
18067 }
18068 case "eTag":
18069 if v != nil {
18070 var eTag string
18071 err = json.Unmarshal(*v, &eTag)
18072 if err != nil {
18073 return err
18074 }
18075 rrr.ETag = &eTag
18076 }
18077 }
18078 }
18079
18080 return nil
18081 }
18082
18083
18084 type RetentionDuration struct {
18085
18086
18087 Count *int32 `json:"count,omitempty"`
18088
18089 DurationType RetentionDurationType `json:"durationType,omitempty"`
18090 }
18091
18092
18093 type BasicRetentionPolicy interface {
18094 AsLongTermRetentionPolicy() (*LongTermRetentionPolicy, bool)
18095 AsSimpleRetentionPolicy() (*SimpleRetentionPolicy, bool)
18096 AsRetentionPolicy() (*RetentionPolicy, bool)
18097 }
18098
18099
18100 type RetentionPolicy struct {
18101
18102 RetentionPolicyType RetentionPolicyType `json:"retentionPolicyType,omitempty"`
18103 }
18104
18105 func unmarshalBasicRetentionPolicy(body []byte) (BasicRetentionPolicy, error) {
18106 var m map[string]interface{}
18107 err := json.Unmarshal(body, &m)
18108 if err != nil {
18109 return nil, err
18110 }
18111
18112 switch m["retentionPolicyType"] {
18113 case string(RetentionPolicyTypeLongTermRetentionPolicy):
18114 var ltrp LongTermRetentionPolicy
18115 err := json.Unmarshal(body, <rp)
18116 return ltrp, err
18117 case string(RetentionPolicyTypeSimpleRetentionPolicy):
18118 var srp SimpleRetentionPolicy
18119 err := json.Unmarshal(body, &srp)
18120 return srp, err
18121 default:
18122 var rp RetentionPolicy
18123 err := json.Unmarshal(body, &rp)
18124 return rp, err
18125 }
18126 }
18127 func unmarshalBasicRetentionPolicyArray(body []byte) ([]BasicRetentionPolicy, error) {
18128 var rawMessages []*json.RawMessage
18129 err := json.Unmarshal(body, &rawMessages)
18130 if err != nil {
18131 return nil, err
18132 }
18133
18134 rpArray := make([]BasicRetentionPolicy, len(rawMessages))
18135
18136 for index, rawMessage := range rawMessages {
18137 rp, err := unmarshalBasicRetentionPolicy(*rawMessage)
18138 if err != nil {
18139 return nil, err
18140 }
18141 rpArray[index] = rp
18142 }
18143 return rpArray, nil
18144 }
18145
18146
18147 func (rp RetentionPolicy) MarshalJSON() ([]byte, error) {
18148 rp.RetentionPolicyType = RetentionPolicyTypeRetentionPolicy
18149 objectMap := make(map[string]interface{})
18150 if rp.RetentionPolicyType != "" {
18151 objectMap["retentionPolicyType"] = rp.RetentionPolicyType
18152 }
18153 return json.Marshal(objectMap)
18154 }
18155
18156
18157 func (rp RetentionPolicy) AsLongTermRetentionPolicy() (*LongTermRetentionPolicy, bool) {
18158 return nil, false
18159 }
18160
18161
18162 func (rp RetentionPolicy) AsSimpleRetentionPolicy() (*SimpleRetentionPolicy, bool) {
18163 return nil, false
18164 }
18165
18166
18167 func (rp RetentionPolicy) AsRetentionPolicy() (*RetentionPolicy, bool) {
18168 return &rp, true
18169 }
18170
18171
18172 func (rp RetentionPolicy) AsBasicRetentionPolicy() (BasicRetentionPolicy, bool) {
18173 return &rp, true
18174 }
18175
18176
18177 type BasicSchedulePolicy interface {
18178 AsLogSchedulePolicy() (*LogSchedulePolicy, bool)
18179 AsLongTermSchedulePolicy() (*LongTermSchedulePolicy, bool)
18180 AsSimpleSchedulePolicy() (*SimpleSchedulePolicy, bool)
18181 AsSchedulePolicy() (*SchedulePolicy, bool)
18182 }
18183
18184
18185 type SchedulePolicy struct {
18186
18187 SchedulePolicyType SchedulePolicyType `json:"schedulePolicyType,omitempty"`
18188 }
18189
18190 func unmarshalBasicSchedulePolicy(body []byte) (BasicSchedulePolicy, error) {
18191 var m map[string]interface{}
18192 err := json.Unmarshal(body, &m)
18193 if err != nil {
18194 return nil, err
18195 }
18196
18197 switch m["schedulePolicyType"] {
18198 case string(SchedulePolicyTypeLogSchedulePolicy):
18199 var lsp LogSchedulePolicy
18200 err := json.Unmarshal(body, &lsp)
18201 return lsp, err
18202 case string(SchedulePolicyTypeLongTermSchedulePolicy):
18203 var ltsp LongTermSchedulePolicy
18204 err := json.Unmarshal(body, <sp)
18205 return ltsp, err
18206 case string(SchedulePolicyTypeSimpleSchedulePolicy):
18207 var ssp SimpleSchedulePolicy
18208 err := json.Unmarshal(body, &ssp)
18209 return ssp, err
18210 default:
18211 var sp SchedulePolicy
18212 err := json.Unmarshal(body, &sp)
18213 return sp, err
18214 }
18215 }
18216 func unmarshalBasicSchedulePolicyArray(body []byte) ([]BasicSchedulePolicy, error) {
18217 var rawMessages []*json.RawMessage
18218 err := json.Unmarshal(body, &rawMessages)
18219 if err != nil {
18220 return nil, err
18221 }
18222
18223 spArray := make([]BasicSchedulePolicy, len(rawMessages))
18224
18225 for index, rawMessage := range rawMessages {
18226 sp, err := unmarshalBasicSchedulePolicy(*rawMessage)
18227 if err != nil {
18228 return nil, err
18229 }
18230 spArray[index] = sp
18231 }
18232 return spArray, nil
18233 }
18234
18235
18236 func (sp SchedulePolicy) MarshalJSON() ([]byte, error) {
18237 sp.SchedulePolicyType = SchedulePolicyTypeSchedulePolicy
18238 objectMap := make(map[string]interface{})
18239 if sp.SchedulePolicyType != "" {
18240 objectMap["schedulePolicyType"] = sp.SchedulePolicyType
18241 }
18242 return json.Marshal(objectMap)
18243 }
18244
18245
18246 func (sp SchedulePolicy) AsLogSchedulePolicy() (*LogSchedulePolicy, bool) {
18247 return nil, false
18248 }
18249
18250
18251 func (sp SchedulePolicy) AsLongTermSchedulePolicy() (*LongTermSchedulePolicy, bool) {
18252 return nil, false
18253 }
18254
18255
18256 func (sp SchedulePolicy) AsSimpleSchedulePolicy() (*SimpleSchedulePolicy, bool) {
18257 return nil, false
18258 }
18259
18260
18261 func (sp SchedulePolicy) AsSchedulePolicy() (*SchedulePolicy, bool) {
18262 return &sp, true
18263 }
18264
18265
18266 func (sp SchedulePolicy) AsBasicSchedulePolicy() (BasicSchedulePolicy, bool) {
18267 return &sp, true
18268 }
18269
18270
18271 type Settings struct {
18272
18273 TimeZone *string `json:"timeZone,omitempty"`
18274
18275 Issqlcompression *bool `json:"issqlcompression,omitempty"`
18276
18277
18278 IsCompression *bool `json:"isCompression,omitempty"`
18279 }
18280
18281
18282 type SimpleRetentionPolicy struct {
18283
18284 RetentionDuration *RetentionDuration `json:"retentionDuration,omitempty"`
18285
18286 RetentionPolicyType RetentionPolicyType `json:"retentionPolicyType,omitempty"`
18287 }
18288
18289
18290 func (srp SimpleRetentionPolicy) MarshalJSON() ([]byte, error) {
18291 srp.RetentionPolicyType = RetentionPolicyTypeSimpleRetentionPolicy
18292 objectMap := make(map[string]interface{})
18293 if srp.RetentionDuration != nil {
18294 objectMap["retentionDuration"] = srp.RetentionDuration
18295 }
18296 if srp.RetentionPolicyType != "" {
18297 objectMap["retentionPolicyType"] = srp.RetentionPolicyType
18298 }
18299 return json.Marshal(objectMap)
18300 }
18301
18302
18303 func (srp SimpleRetentionPolicy) AsLongTermRetentionPolicy() (*LongTermRetentionPolicy, bool) {
18304 return nil, false
18305 }
18306
18307
18308 func (srp SimpleRetentionPolicy) AsSimpleRetentionPolicy() (*SimpleRetentionPolicy, bool) {
18309 return &srp, true
18310 }
18311
18312
18313 func (srp SimpleRetentionPolicy) AsRetentionPolicy() (*RetentionPolicy, bool) {
18314 return nil, false
18315 }
18316
18317
18318 func (srp SimpleRetentionPolicy) AsBasicRetentionPolicy() (BasicRetentionPolicy, bool) {
18319 return &srp, true
18320 }
18321
18322
18323 type SimpleSchedulePolicy struct {
18324
18325 ScheduleRunFrequency ScheduleRunType `json:"scheduleRunFrequency,omitempty"`
18326
18327 ScheduleRunDays *[]DayOfWeek `json:"scheduleRunDays,omitempty"`
18328
18329 ScheduleRunTimes *[]date.Time `json:"scheduleRunTimes,omitempty"`
18330
18331 ScheduleWeeklyFrequency *int32 `json:"scheduleWeeklyFrequency,omitempty"`
18332
18333 SchedulePolicyType SchedulePolicyType `json:"schedulePolicyType,omitempty"`
18334 }
18335
18336
18337 func (ssp SimpleSchedulePolicy) MarshalJSON() ([]byte, error) {
18338 ssp.SchedulePolicyType = SchedulePolicyTypeSimpleSchedulePolicy
18339 objectMap := make(map[string]interface{})
18340 if ssp.ScheduleRunFrequency != "" {
18341 objectMap["scheduleRunFrequency"] = ssp.ScheduleRunFrequency
18342 }
18343 if ssp.ScheduleRunDays != nil {
18344 objectMap["scheduleRunDays"] = ssp.ScheduleRunDays
18345 }
18346 if ssp.ScheduleRunTimes != nil {
18347 objectMap["scheduleRunTimes"] = ssp.ScheduleRunTimes
18348 }
18349 if ssp.ScheduleWeeklyFrequency != nil {
18350 objectMap["scheduleWeeklyFrequency"] = ssp.ScheduleWeeklyFrequency
18351 }
18352 if ssp.SchedulePolicyType != "" {
18353 objectMap["schedulePolicyType"] = ssp.SchedulePolicyType
18354 }
18355 return json.Marshal(objectMap)
18356 }
18357
18358
18359 func (ssp SimpleSchedulePolicy) AsLogSchedulePolicy() (*LogSchedulePolicy, bool) {
18360 return nil, false
18361 }
18362
18363
18364 func (ssp SimpleSchedulePolicy) AsLongTermSchedulePolicy() (*LongTermSchedulePolicy, bool) {
18365 return nil, false
18366 }
18367
18368
18369 func (ssp SimpleSchedulePolicy) AsSimpleSchedulePolicy() (*SimpleSchedulePolicy, bool) {
18370 return &ssp, true
18371 }
18372
18373
18374 func (ssp SimpleSchedulePolicy) AsSchedulePolicy() (*SchedulePolicy, bool) {
18375 return nil, false
18376 }
18377
18378
18379 func (ssp SimpleSchedulePolicy) AsBasicSchedulePolicy() (BasicSchedulePolicy, bool) {
18380 return &ssp, true
18381 }
18382
18383
18384 type SQLDataDirectory struct {
18385
18386 Type SQLDataDirectoryType `json:"type,omitempty"`
18387
18388 Path *string `json:"path,omitempty"`
18389
18390 LogicalName *string `json:"logicalName,omitempty"`
18391 }
18392
18393
18394 type SQLDataDirectoryMapping struct {
18395
18396 MappingType SQLDataDirectoryType `json:"mappingType,omitempty"`
18397
18398 SourceLogicalName *string `json:"sourceLogicalName,omitempty"`
18399
18400 SourcePath *string `json:"sourcePath,omitempty"`
18401
18402 TargetPath *string `json:"targetPath,omitempty"`
18403 }
18404
18405
18406 type StatusRequest struct {
18407
18408 ResourceType DataSourceType `json:"resourceType,omitempty"`
18409
18410 ResourceID *string `json:"resourceId,omitempty"`
18411
18412 PoLogicalName *string `json:"poLogicalName,omitempty"`
18413 }
18414
18415
18416 type StatusResponse struct {
18417 autorest.Response `json:"-"`
18418
18419 ProtectionStatus ProtectionStatus `json:"protectionStatus,omitempty"`
18420
18421 VaultID *string `json:"vaultId,omitempty"`
18422
18423 FabricName FabricName `json:"fabricName,omitempty"`
18424
18425 ContainerName *string `json:"containerName,omitempty"`
18426
18427 ProtectedItemName *string `json:"protectedItemName,omitempty"`
18428
18429 ErrorCode *string `json:"errorCode,omitempty"`
18430
18431 ErrorMessage *string `json:"errorMessage,omitempty"`
18432
18433 PolicyName *string `json:"policyName,omitempty"`
18434
18435 RegistrationStatus *string `json:"registrationStatus,omitempty"`
18436 }
18437
18438
18439 type SubProtectionPolicy struct {
18440
18441 PolicyType PolicyType `json:"policyType,omitempty"`
18442
18443 SchedulePolicy BasicSchedulePolicy `json:"schedulePolicy,omitempty"`
18444
18445 RetentionPolicy BasicRetentionPolicy `json:"retentionPolicy,omitempty"`
18446 }
18447
18448
18449 func (spp *SubProtectionPolicy) UnmarshalJSON(body []byte) error {
18450 var m map[string]*json.RawMessage
18451 err := json.Unmarshal(body, &m)
18452 if err != nil {
18453 return err
18454 }
18455 for k, v := range m {
18456 switch k {
18457 case "policyType":
18458 if v != nil {
18459 var policyType PolicyType
18460 err = json.Unmarshal(*v, &policyType)
18461 if err != nil {
18462 return err
18463 }
18464 spp.PolicyType = policyType
18465 }
18466 case "schedulePolicy":
18467 if v != nil {
18468 schedulePolicy, err := unmarshalBasicSchedulePolicy(*v)
18469 if err != nil {
18470 return err
18471 }
18472 spp.SchedulePolicy = schedulePolicy
18473 }
18474 case "retentionPolicy":
18475 if v != nil {
18476 retentionPolicy, err := unmarshalBasicRetentionPolicy(*v)
18477 if err != nil {
18478 return err
18479 }
18480 spp.RetentionPolicy = retentionPolicy
18481 }
18482 }
18483 }
18484
18485 return nil
18486 }
18487
18488
18489 type TargetAFSRestoreInfo struct {
18490
18491 Name *string `json:"name,omitempty"`
18492
18493 TargetResourceID *string `json:"targetResourceId,omitempty"`
18494 }
18495
18496
18497 type TargetRestoreInfo struct {
18498
18499 OverwriteOption OverwriteOptions `json:"overwriteOption,omitempty"`
18500
18501 ContainerID *string `json:"containerId,omitempty"`
18502
18503 DatabaseName *string `json:"databaseName,omitempty"`
18504
18505 TargetDirectoryForFileRestore *string `json:"targetDirectoryForFileRestore,omitempty"`
18506 }
18507
18508
18509 type TokenInformation struct {
18510 autorest.Response `json:"-"`
18511
18512 Token *string `json:"token,omitempty"`
18513
18514 ExpiryTimeInUtcTicks *int64 `json:"expiryTimeInUtcTicks,omitempty"`
18515
18516 SecurityPIN *string `json:"securityPIN,omitempty"`
18517 }
18518
18519
18520 type ValidateIaasVMRestoreOperationRequest struct {
18521
18522 RestoreRequest BasicRestoreRequest `json:"restoreRequest,omitempty"`
18523
18524 ObjectType ObjectTypeBasicValidateOperationRequest `json:"objectType,omitempty"`
18525 }
18526
18527
18528 func (vivror ValidateIaasVMRestoreOperationRequest) MarshalJSON() ([]byte, error) {
18529 vivror.ObjectType = ObjectTypeValidateIaasVMRestoreOperationRequest
18530 objectMap := make(map[string]interface{})
18531 objectMap["restoreRequest"] = vivror.RestoreRequest
18532 if vivror.ObjectType != "" {
18533 objectMap["objectType"] = vivror.ObjectType
18534 }
18535 return json.Marshal(objectMap)
18536 }
18537
18538
18539 func (vivror ValidateIaasVMRestoreOperationRequest) AsValidateIaasVMRestoreOperationRequest() (*ValidateIaasVMRestoreOperationRequest, bool) {
18540 return &vivror, true
18541 }
18542
18543
18544 func (vivror ValidateIaasVMRestoreOperationRequest) AsValidateRestoreOperationRequest() (*ValidateRestoreOperationRequest, bool) {
18545 return nil, false
18546 }
18547
18548
18549 func (vivror ValidateIaasVMRestoreOperationRequest) AsBasicValidateRestoreOperationRequest() (BasicValidateRestoreOperationRequest, bool) {
18550 return &vivror, true
18551 }
18552
18553
18554 func (vivror ValidateIaasVMRestoreOperationRequest) AsValidateOperationRequest() (*ValidateOperationRequest, bool) {
18555 return nil, false
18556 }
18557
18558
18559 func (vivror ValidateIaasVMRestoreOperationRequest) AsBasicValidateOperationRequest() (BasicValidateOperationRequest, bool) {
18560 return &vivror, true
18561 }
18562
18563
18564 func (vivror *ValidateIaasVMRestoreOperationRequest) UnmarshalJSON(body []byte) error {
18565 var m map[string]*json.RawMessage
18566 err := json.Unmarshal(body, &m)
18567 if err != nil {
18568 return err
18569 }
18570 for k, v := range m {
18571 switch k {
18572 case "restoreRequest":
18573 if v != nil {
18574 restoreRequest, err := unmarshalBasicRestoreRequest(*v)
18575 if err != nil {
18576 return err
18577 }
18578 vivror.RestoreRequest = restoreRequest
18579 }
18580 case "objectType":
18581 if v != nil {
18582 var objectType ObjectTypeBasicValidateOperationRequest
18583 err = json.Unmarshal(*v, &objectType)
18584 if err != nil {
18585 return err
18586 }
18587 vivror.ObjectType = objectType
18588 }
18589 }
18590 }
18591
18592 return nil
18593 }
18594
18595
18596 type BasicValidateOperationRequest interface {
18597 AsValidateIaasVMRestoreOperationRequest() (*ValidateIaasVMRestoreOperationRequest, bool)
18598 AsValidateRestoreOperationRequest() (*ValidateRestoreOperationRequest, bool)
18599 AsBasicValidateRestoreOperationRequest() (BasicValidateRestoreOperationRequest, bool)
18600 AsValidateOperationRequest() (*ValidateOperationRequest, bool)
18601 }
18602
18603
18604 type ValidateOperationRequest struct {
18605
18606 ObjectType ObjectTypeBasicValidateOperationRequest `json:"objectType,omitempty"`
18607 }
18608
18609 func unmarshalBasicValidateOperationRequest(body []byte) (BasicValidateOperationRequest, error) {
18610 var m map[string]interface{}
18611 err := json.Unmarshal(body, &m)
18612 if err != nil {
18613 return nil, err
18614 }
18615
18616 switch m["objectType"] {
18617 case string(ObjectTypeValidateIaasVMRestoreOperationRequest):
18618 var vivror ValidateIaasVMRestoreOperationRequest
18619 err := json.Unmarshal(body, &vivror)
18620 return vivror, err
18621 case string(ObjectTypeValidateRestoreOperationRequest):
18622 var vror ValidateRestoreOperationRequest
18623 err := json.Unmarshal(body, &vror)
18624 return vror, err
18625 default:
18626 var vor ValidateOperationRequest
18627 err := json.Unmarshal(body, &vor)
18628 return vor, err
18629 }
18630 }
18631 func unmarshalBasicValidateOperationRequestArray(body []byte) ([]BasicValidateOperationRequest, error) {
18632 var rawMessages []*json.RawMessage
18633 err := json.Unmarshal(body, &rawMessages)
18634 if err != nil {
18635 return nil, err
18636 }
18637
18638 vorArray := make([]BasicValidateOperationRequest, len(rawMessages))
18639
18640 for index, rawMessage := range rawMessages {
18641 vor, err := unmarshalBasicValidateOperationRequest(*rawMessage)
18642 if err != nil {
18643 return nil, err
18644 }
18645 vorArray[index] = vor
18646 }
18647 return vorArray, nil
18648 }
18649
18650
18651 func (vor ValidateOperationRequest) MarshalJSON() ([]byte, error) {
18652 vor.ObjectType = ObjectTypeValidateOperationRequest
18653 objectMap := make(map[string]interface{})
18654 if vor.ObjectType != "" {
18655 objectMap["objectType"] = vor.ObjectType
18656 }
18657 return json.Marshal(objectMap)
18658 }
18659
18660
18661 func (vor ValidateOperationRequest) AsValidateIaasVMRestoreOperationRequest() (*ValidateIaasVMRestoreOperationRequest, bool) {
18662 return nil, false
18663 }
18664
18665
18666 func (vor ValidateOperationRequest) AsValidateRestoreOperationRequest() (*ValidateRestoreOperationRequest, bool) {
18667 return nil, false
18668 }
18669
18670
18671 func (vor ValidateOperationRequest) AsBasicValidateRestoreOperationRequest() (BasicValidateRestoreOperationRequest, bool) {
18672 return nil, false
18673 }
18674
18675
18676 func (vor ValidateOperationRequest) AsValidateOperationRequest() (*ValidateOperationRequest, bool) {
18677 return &vor, true
18678 }
18679
18680
18681 func (vor ValidateOperationRequest) AsBasicValidateOperationRequest() (BasicValidateOperationRequest, bool) {
18682 return &vor, true
18683 }
18684
18685
18686 type ValidateOperationResponse struct {
18687
18688 ValidationResults *[]ErrorDetail `json:"validationResults,omitempty"`
18689 }
18690
18691
18692 type ValidateOperationsResponse struct {
18693 autorest.Response `json:"-"`
18694 ValidateOperationResponse *ValidateOperationResponse `json:"validateOperationResponse,omitempty"`
18695 }
18696
18697
18698 type BasicValidateRestoreOperationRequest interface {
18699 AsValidateIaasVMRestoreOperationRequest() (*ValidateIaasVMRestoreOperationRequest, bool)
18700 AsValidateRestoreOperationRequest() (*ValidateRestoreOperationRequest, bool)
18701 }
18702
18703
18704 type ValidateRestoreOperationRequest struct {
18705
18706 RestoreRequest BasicRestoreRequest `json:"restoreRequest,omitempty"`
18707
18708 ObjectType ObjectTypeBasicValidateOperationRequest `json:"objectType,omitempty"`
18709 }
18710
18711 func unmarshalBasicValidateRestoreOperationRequest(body []byte) (BasicValidateRestoreOperationRequest, error) {
18712 var m map[string]interface{}
18713 err := json.Unmarshal(body, &m)
18714 if err != nil {
18715 return nil, err
18716 }
18717
18718 switch m["objectType"] {
18719 case string(ObjectTypeValidateIaasVMRestoreOperationRequest):
18720 var vivror ValidateIaasVMRestoreOperationRequest
18721 err := json.Unmarshal(body, &vivror)
18722 return vivror, err
18723 default:
18724 var vror ValidateRestoreOperationRequest
18725 err := json.Unmarshal(body, &vror)
18726 return vror, err
18727 }
18728 }
18729 func unmarshalBasicValidateRestoreOperationRequestArray(body []byte) ([]BasicValidateRestoreOperationRequest, error) {
18730 var rawMessages []*json.RawMessage
18731 err := json.Unmarshal(body, &rawMessages)
18732 if err != nil {
18733 return nil, err
18734 }
18735
18736 vrorArray := make([]BasicValidateRestoreOperationRequest, len(rawMessages))
18737
18738 for index, rawMessage := range rawMessages {
18739 vror, err := unmarshalBasicValidateRestoreOperationRequest(*rawMessage)
18740 if err != nil {
18741 return nil, err
18742 }
18743 vrorArray[index] = vror
18744 }
18745 return vrorArray, nil
18746 }
18747
18748
18749 func (vror ValidateRestoreOperationRequest) MarshalJSON() ([]byte, error) {
18750 vror.ObjectType = ObjectTypeValidateRestoreOperationRequest
18751 objectMap := make(map[string]interface{})
18752 objectMap["restoreRequest"] = vror.RestoreRequest
18753 if vror.ObjectType != "" {
18754 objectMap["objectType"] = vror.ObjectType
18755 }
18756 return json.Marshal(objectMap)
18757 }
18758
18759
18760 func (vror ValidateRestoreOperationRequest) AsValidateIaasVMRestoreOperationRequest() (*ValidateIaasVMRestoreOperationRequest, bool) {
18761 return nil, false
18762 }
18763
18764
18765 func (vror ValidateRestoreOperationRequest) AsValidateRestoreOperationRequest() (*ValidateRestoreOperationRequest, bool) {
18766 return &vror, true
18767 }
18768
18769
18770 func (vror ValidateRestoreOperationRequest) AsBasicValidateRestoreOperationRequest() (BasicValidateRestoreOperationRequest, bool) {
18771 return &vror, true
18772 }
18773
18774
18775 func (vror ValidateRestoreOperationRequest) AsValidateOperationRequest() (*ValidateOperationRequest, bool) {
18776 return nil, false
18777 }
18778
18779
18780 func (vror ValidateRestoreOperationRequest) AsBasicValidateOperationRequest() (BasicValidateOperationRequest, bool) {
18781 return &vror, true
18782 }
18783
18784
18785 func (vror *ValidateRestoreOperationRequest) UnmarshalJSON(body []byte) error {
18786 var m map[string]*json.RawMessage
18787 err := json.Unmarshal(body, &m)
18788 if err != nil {
18789 return err
18790 }
18791 for k, v := range m {
18792 switch k {
18793 case "restoreRequest":
18794 if v != nil {
18795 restoreRequest, err := unmarshalBasicRestoreRequest(*v)
18796 if err != nil {
18797 return err
18798 }
18799 vror.RestoreRequest = restoreRequest
18800 }
18801 case "objectType":
18802 if v != nil {
18803 var objectType ObjectTypeBasicValidateOperationRequest
18804 err = json.Unmarshal(*v, &objectType)
18805 if err != nil {
18806 return err
18807 }
18808 vror.ObjectType = objectType
18809 }
18810 }
18811 }
18812
18813 return nil
18814 }
18815
18816
18817 type WeeklyRetentionFormat struct {
18818
18819 DaysOfTheWeek *[]DayOfWeek `json:"daysOfTheWeek,omitempty"`
18820
18821 WeeksOfTheMonth *[]WeekOfMonth `json:"weeksOfTheMonth,omitempty"`
18822 }
18823
18824
18825 type WeeklyRetentionSchedule struct {
18826
18827 DaysOfTheWeek *[]DayOfWeek `json:"daysOfTheWeek,omitempty"`
18828
18829 RetentionTimes *[]date.Time `json:"retentionTimes,omitempty"`
18830
18831 RetentionDuration *RetentionDuration `json:"retentionDuration,omitempty"`
18832 }
18833
18834
18835 type WorkloadInquiryDetails struct {
18836
18837 Type *string `json:"type,omitempty"`
18838
18839 ItemCount *int64 `json:"itemCount,omitempty"`
18840
18841 InquiryValidation *InquiryValidation `json:"inquiryValidation,omitempty"`
18842 }
18843
18844
18845 type BasicWorkloadItem interface {
18846 AsAzureVMWorkloadItem() (*AzureVMWorkloadItem, bool)
18847 AsBasicAzureVMWorkloadItem() (BasicAzureVMWorkloadItem, bool)
18848 AsAzureVMWorkloadSAPAseDatabaseWorkloadItem() (*AzureVMWorkloadSAPAseDatabaseWorkloadItem, bool)
18849 AsAzureVMWorkloadSAPAseSystemWorkloadItem() (*AzureVMWorkloadSAPAseSystemWorkloadItem, bool)
18850 AsAzureVMWorkloadSAPHanaDatabaseWorkloadItem() (*AzureVMWorkloadSAPHanaDatabaseWorkloadItem, bool)
18851 AsAzureVMWorkloadSAPHanaSystemWorkloadItem() (*AzureVMWorkloadSAPHanaSystemWorkloadItem, bool)
18852 AsAzureVMWorkloadSQLDatabaseWorkloadItem() (*AzureVMWorkloadSQLDatabaseWorkloadItem, bool)
18853 AsAzureVMWorkloadSQLInstanceWorkloadItem() (*AzureVMWorkloadSQLInstanceWorkloadItem, bool)
18854 AsWorkloadItem() (*WorkloadItem, bool)
18855 }
18856
18857
18858 type WorkloadItem struct {
18859
18860 BackupManagementType *string `json:"backupManagementType,omitempty"`
18861
18862 WorkloadType *string `json:"workloadType,omitempty"`
18863
18864 FriendlyName *string `json:"friendlyName,omitempty"`
18865
18866 ProtectionState ProtectionStatus `json:"protectionState,omitempty"`
18867
18868 WorkloadItemType WorkloadItemTypeBasicWorkloadItem `json:"workloadItemType,omitempty"`
18869 }
18870
18871 func unmarshalBasicWorkloadItem(body []byte) (BasicWorkloadItem, error) {
18872 var m map[string]interface{}
18873 err := json.Unmarshal(body, &m)
18874 if err != nil {
18875 return nil, err
18876 }
18877
18878 switch m["workloadItemType"] {
18879 case string(WorkloadItemTypeAzureVMWorkloadItem):
18880 var avwi AzureVMWorkloadItem
18881 err := json.Unmarshal(body, &avwi)
18882 return avwi, err
18883 case string(WorkloadItemTypeSAPAseDatabase1):
18884 var avwsadwi AzureVMWorkloadSAPAseDatabaseWorkloadItem
18885 err := json.Unmarshal(body, &avwsadwi)
18886 return avwsadwi, err
18887 case string(WorkloadItemTypeSAPAseSystem1):
18888 var avwsaswi AzureVMWorkloadSAPAseSystemWorkloadItem
18889 err := json.Unmarshal(body, &avwsaswi)
18890 return avwsaswi, err
18891 case string(WorkloadItemTypeSAPHanaDatabase1):
18892 var avwshdwi AzureVMWorkloadSAPHanaDatabaseWorkloadItem
18893 err := json.Unmarshal(body, &avwshdwi)
18894 return avwshdwi, err
18895 case string(WorkloadItemTypeSAPHanaSystem1):
18896 var avwshswi AzureVMWorkloadSAPHanaSystemWorkloadItem
18897 err := json.Unmarshal(body, &avwshswi)
18898 return avwshswi, err
18899 case string(WorkloadItemTypeSQLDataBase1):
18900 var avwsdwi AzureVMWorkloadSQLDatabaseWorkloadItem
18901 err := json.Unmarshal(body, &avwsdwi)
18902 return avwsdwi, err
18903 case string(WorkloadItemTypeSQLInstance1):
18904 var avwsiwi AzureVMWorkloadSQLInstanceWorkloadItem
18905 err := json.Unmarshal(body, &avwsiwi)
18906 return avwsiwi, err
18907 default:
18908 var wi WorkloadItem
18909 err := json.Unmarshal(body, &wi)
18910 return wi, err
18911 }
18912 }
18913 func unmarshalBasicWorkloadItemArray(body []byte) ([]BasicWorkloadItem, error) {
18914 var rawMessages []*json.RawMessage
18915 err := json.Unmarshal(body, &rawMessages)
18916 if err != nil {
18917 return nil, err
18918 }
18919
18920 wiArray := make([]BasicWorkloadItem, len(rawMessages))
18921
18922 for index, rawMessage := range rawMessages {
18923 wi, err := unmarshalBasicWorkloadItem(*rawMessage)
18924 if err != nil {
18925 return nil, err
18926 }
18927 wiArray[index] = wi
18928 }
18929 return wiArray, nil
18930 }
18931
18932
18933 func (wi WorkloadItem) MarshalJSON() ([]byte, error) {
18934 wi.WorkloadItemType = WorkloadItemTypeWorkloadItem
18935 objectMap := make(map[string]interface{})
18936 if wi.BackupManagementType != nil {
18937 objectMap["backupManagementType"] = wi.BackupManagementType
18938 }
18939 if wi.WorkloadType != nil {
18940 objectMap["workloadType"] = wi.WorkloadType
18941 }
18942 if wi.FriendlyName != nil {
18943 objectMap["friendlyName"] = wi.FriendlyName
18944 }
18945 if wi.ProtectionState != "" {
18946 objectMap["protectionState"] = wi.ProtectionState
18947 }
18948 if wi.WorkloadItemType != "" {
18949 objectMap["workloadItemType"] = wi.WorkloadItemType
18950 }
18951 return json.Marshal(objectMap)
18952 }
18953
18954
18955 func (wi WorkloadItem) AsAzureVMWorkloadItem() (*AzureVMWorkloadItem, bool) {
18956 return nil, false
18957 }
18958
18959
18960 func (wi WorkloadItem) AsBasicAzureVMWorkloadItem() (BasicAzureVMWorkloadItem, bool) {
18961 return nil, false
18962 }
18963
18964
18965 func (wi WorkloadItem) AsAzureVMWorkloadSAPAseDatabaseWorkloadItem() (*AzureVMWorkloadSAPAseDatabaseWorkloadItem, bool) {
18966 return nil, false
18967 }
18968
18969
18970 func (wi WorkloadItem) AsAzureVMWorkloadSAPAseSystemWorkloadItem() (*AzureVMWorkloadSAPAseSystemWorkloadItem, bool) {
18971 return nil, false
18972 }
18973
18974
18975 func (wi WorkloadItem) AsAzureVMWorkloadSAPHanaDatabaseWorkloadItem() (*AzureVMWorkloadSAPHanaDatabaseWorkloadItem, bool) {
18976 return nil, false
18977 }
18978
18979
18980 func (wi WorkloadItem) AsAzureVMWorkloadSAPHanaSystemWorkloadItem() (*AzureVMWorkloadSAPHanaSystemWorkloadItem, bool) {
18981 return nil, false
18982 }
18983
18984
18985 func (wi WorkloadItem) AsAzureVMWorkloadSQLDatabaseWorkloadItem() (*AzureVMWorkloadSQLDatabaseWorkloadItem, bool) {
18986 return nil, false
18987 }
18988
18989
18990 func (wi WorkloadItem) AsAzureVMWorkloadSQLInstanceWorkloadItem() (*AzureVMWorkloadSQLInstanceWorkloadItem, bool) {
18991 return nil, false
18992 }
18993
18994
18995 func (wi WorkloadItem) AsWorkloadItem() (*WorkloadItem, bool) {
18996 return &wi, true
18997 }
18998
18999
19000 func (wi WorkloadItem) AsBasicWorkloadItem() (BasicWorkloadItem, bool) {
19001 return &wi, true
19002 }
19003
19004
19005
19006 type WorkloadItemResource struct {
19007
19008 Properties BasicWorkloadItem `json:"properties,omitempty"`
19009
19010 ID *string `json:"id,omitempty"`
19011
19012 Name *string `json:"name,omitempty"`
19013
19014 Type *string `json:"type,omitempty"`
19015
19016 Location *string `json:"location,omitempty"`
19017
19018 Tags map[string]*string `json:"tags"`
19019
19020 ETag *string `json:"eTag,omitempty"`
19021 }
19022
19023
19024 func (wir WorkloadItemResource) MarshalJSON() ([]byte, error) {
19025 objectMap := make(map[string]interface{})
19026 objectMap["properties"] = wir.Properties
19027 if wir.Location != nil {
19028 objectMap["location"] = wir.Location
19029 }
19030 if wir.Tags != nil {
19031 objectMap["tags"] = wir.Tags
19032 }
19033 if wir.ETag != nil {
19034 objectMap["eTag"] = wir.ETag
19035 }
19036 return json.Marshal(objectMap)
19037 }
19038
19039
19040 func (wir *WorkloadItemResource) UnmarshalJSON(body []byte) error {
19041 var m map[string]*json.RawMessage
19042 err := json.Unmarshal(body, &m)
19043 if err != nil {
19044 return err
19045 }
19046 for k, v := range m {
19047 switch k {
19048 case "properties":
19049 if v != nil {
19050 properties, err := unmarshalBasicWorkloadItem(*v)
19051 if err != nil {
19052 return err
19053 }
19054 wir.Properties = properties
19055 }
19056 case "id":
19057 if v != nil {
19058 var ID string
19059 err = json.Unmarshal(*v, &ID)
19060 if err != nil {
19061 return err
19062 }
19063 wir.ID = &ID
19064 }
19065 case "name":
19066 if v != nil {
19067 var name string
19068 err = json.Unmarshal(*v, &name)
19069 if err != nil {
19070 return err
19071 }
19072 wir.Name = &name
19073 }
19074 case "type":
19075 if v != nil {
19076 var typeVar string
19077 err = json.Unmarshal(*v, &typeVar)
19078 if err != nil {
19079 return err
19080 }
19081 wir.Type = &typeVar
19082 }
19083 case "location":
19084 if v != nil {
19085 var location string
19086 err = json.Unmarshal(*v, &location)
19087 if err != nil {
19088 return err
19089 }
19090 wir.Location = &location
19091 }
19092 case "tags":
19093 if v != nil {
19094 var tags map[string]*string
19095 err = json.Unmarshal(*v, &tags)
19096 if err != nil {
19097 return err
19098 }
19099 wir.Tags = tags
19100 }
19101 case "eTag":
19102 if v != nil {
19103 var eTag string
19104 err = json.Unmarshal(*v, &eTag)
19105 if err != nil {
19106 return err
19107 }
19108 wir.ETag = &eTag
19109 }
19110 }
19111 }
19112
19113 return nil
19114 }
19115
19116
19117 type WorkloadItemResourceList struct {
19118 autorest.Response `json:"-"`
19119
19120 Value *[]WorkloadItemResource `json:"value,omitempty"`
19121
19122 NextLink *string `json:"nextLink,omitempty"`
19123 }
19124
19125
19126 type WorkloadItemResourceListIterator struct {
19127 i int
19128 page WorkloadItemResourceListPage
19129 }
19130
19131
19132
19133 func (iter *WorkloadItemResourceListIterator) NextWithContext(ctx context.Context) (err error) {
19134 if tracing.IsEnabled() {
19135 ctx = tracing.StartSpan(ctx, fqdn+"/WorkloadItemResourceListIterator.NextWithContext")
19136 defer func() {
19137 sc := -1
19138 if iter.Response().Response.Response != nil {
19139 sc = iter.Response().Response.Response.StatusCode
19140 }
19141 tracing.EndSpan(ctx, sc, err)
19142 }()
19143 }
19144 iter.i++
19145 if iter.i < len(iter.page.Values()) {
19146 return nil
19147 }
19148 err = iter.page.NextWithContext(ctx)
19149 if err != nil {
19150 iter.i--
19151 return err
19152 }
19153 iter.i = 0
19154 return nil
19155 }
19156
19157
19158
19159
19160 func (iter *WorkloadItemResourceListIterator) Next() error {
19161 return iter.NextWithContext(context.Background())
19162 }
19163
19164
19165 func (iter WorkloadItemResourceListIterator) NotDone() bool {
19166 return iter.page.NotDone() && iter.i < len(iter.page.Values())
19167 }
19168
19169
19170 func (iter WorkloadItemResourceListIterator) Response() WorkloadItemResourceList {
19171 return iter.page.Response()
19172 }
19173
19174
19175
19176 func (iter WorkloadItemResourceListIterator) Value() WorkloadItemResource {
19177 if !iter.page.NotDone() {
19178 return WorkloadItemResource{}
19179 }
19180 return iter.page.Values()[iter.i]
19181 }
19182
19183
19184 func NewWorkloadItemResourceListIterator(page WorkloadItemResourceListPage) WorkloadItemResourceListIterator {
19185 return WorkloadItemResourceListIterator{page: page}
19186 }
19187
19188
19189 func (wirl WorkloadItemResourceList) IsEmpty() bool {
19190 return wirl.Value == nil || len(*wirl.Value) == 0
19191 }
19192
19193
19194 func (wirl WorkloadItemResourceList) hasNextLink() bool {
19195 return wirl.NextLink != nil && len(*wirl.NextLink) != 0
19196 }
19197
19198
19199
19200 func (wirl WorkloadItemResourceList) workloadItemResourceListPreparer(ctx context.Context) (*http.Request, error) {
19201 if !wirl.hasNextLink() {
19202 return nil, nil
19203 }
19204 return autorest.Prepare((&http.Request{}).WithContext(ctx),
19205 autorest.AsJSON(),
19206 autorest.AsGet(),
19207 autorest.WithBaseURL(to.String(wirl.NextLink)))
19208 }
19209
19210
19211 type WorkloadItemResourceListPage struct {
19212 fn func(context.Context, WorkloadItemResourceList) (WorkloadItemResourceList, error)
19213 wirl WorkloadItemResourceList
19214 }
19215
19216
19217
19218 func (page *WorkloadItemResourceListPage) NextWithContext(ctx context.Context) (err error) {
19219 if tracing.IsEnabled() {
19220 ctx = tracing.StartSpan(ctx, fqdn+"/WorkloadItemResourceListPage.NextWithContext")
19221 defer func() {
19222 sc := -1
19223 if page.Response().Response.Response != nil {
19224 sc = page.Response().Response.Response.StatusCode
19225 }
19226 tracing.EndSpan(ctx, sc, err)
19227 }()
19228 }
19229 for {
19230 next, err := page.fn(ctx, page.wirl)
19231 if err != nil {
19232 return err
19233 }
19234 page.wirl = next
19235 if !next.hasNextLink() || !next.IsEmpty() {
19236 break
19237 }
19238 }
19239 return nil
19240 }
19241
19242
19243
19244
19245 func (page *WorkloadItemResourceListPage) Next() error {
19246 return page.NextWithContext(context.Background())
19247 }
19248
19249
19250 func (page WorkloadItemResourceListPage) NotDone() bool {
19251 return !page.wirl.IsEmpty()
19252 }
19253
19254
19255 func (page WorkloadItemResourceListPage) Response() WorkloadItemResourceList {
19256 return page.wirl
19257 }
19258
19259
19260 func (page WorkloadItemResourceListPage) Values() []WorkloadItemResource {
19261 if page.wirl.IsEmpty() {
19262 return nil
19263 }
19264 return *page.wirl.Value
19265 }
19266
19267
19268 func NewWorkloadItemResourceListPage(cur WorkloadItemResourceList, getNextPage func(context.Context, WorkloadItemResourceList) (WorkloadItemResourceList, error)) WorkloadItemResourceListPage {
19269 return WorkloadItemResourceListPage{
19270 fn: getNextPage,
19271 wirl: cur,
19272 }
19273 }
19274
19275
19276 type BasicWorkloadProtectableItem interface {
19277 AsAzureFileShareProtectableItem() (*AzureFileShareProtectableItem, bool)
19278 AsAzureIaaSClassicComputeVMProtectableItem() (*AzureIaaSClassicComputeVMProtectableItem, bool)
19279 AsAzureIaaSComputeVMProtectableItem() (*AzureIaaSComputeVMProtectableItem, bool)
19280 AsAzureVMWorkloadProtectableItem() (*AzureVMWorkloadProtectableItem, bool)
19281 AsBasicAzureVMWorkloadProtectableItem() (BasicAzureVMWorkloadProtectableItem, bool)
19282 AsAzureVMWorkloadSAPAseSystemProtectableItem() (*AzureVMWorkloadSAPAseSystemProtectableItem, bool)
19283 AsAzureVMWorkloadSAPHanaDatabaseProtectableItem() (*AzureVMWorkloadSAPHanaDatabaseProtectableItem, bool)
19284 AsAzureVMWorkloadSAPHanaSystemProtectableItem() (*AzureVMWorkloadSAPHanaSystemProtectableItem, bool)
19285 AsAzureVMWorkloadSQLAvailabilityGroupProtectableItem() (*AzureVMWorkloadSQLAvailabilityGroupProtectableItem, bool)
19286 AsAzureVMWorkloadSQLDatabaseProtectableItem() (*AzureVMWorkloadSQLDatabaseProtectableItem, bool)
19287 AsAzureVMWorkloadSQLInstanceProtectableItem() (*AzureVMWorkloadSQLInstanceProtectableItem, bool)
19288 AsIaaSVMProtectableItem() (*IaaSVMProtectableItem, bool)
19289 AsBasicIaaSVMProtectableItem() (BasicIaaSVMProtectableItem, bool)
19290 AsWorkloadProtectableItem() (*WorkloadProtectableItem, bool)
19291 }
19292
19293
19294
19295 type WorkloadProtectableItem struct {
19296
19297 BackupManagementType *string `json:"backupManagementType,omitempty"`
19298
19299 WorkloadType *string `json:"workloadType,omitempty"`
19300
19301 FriendlyName *string `json:"friendlyName,omitempty"`
19302
19303 ProtectionState ProtectionStatus `json:"protectionState,omitempty"`
19304
19305 ProtectableItemType ProtectableItemType `json:"protectableItemType,omitempty"`
19306 }
19307
19308 func unmarshalBasicWorkloadProtectableItem(body []byte) (BasicWorkloadProtectableItem, error) {
19309 var m map[string]interface{}
19310 err := json.Unmarshal(body, &m)
19311 if err != nil {
19312 return nil, err
19313 }
19314
19315 switch m["protectableItemType"] {
19316 case string(ProtectableItemTypeAzureFileShare):
19317 var afspi AzureFileShareProtectableItem
19318 err := json.Unmarshal(body, &afspi)
19319 return afspi, err
19320 case string(ProtectableItemTypeMicrosoftClassicComputevirtualMachines):
19321 var aisccvpi AzureIaaSClassicComputeVMProtectableItem
19322 err := json.Unmarshal(body, &aisccvpi)
19323 return aisccvpi, err
19324 case string(ProtectableItemTypeMicrosoftComputevirtualMachines):
19325 var aiscvpi AzureIaaSComputeVMProtectableItem
19326 err := json.Unmarshal(body, &aiscvpi)
19327 return aiscvpi, err
19328 case string(ProtectableItemTypeAzureVMWorkloadProtectableItem):
19329 var avwpi AzureVMWorkloadProtectableItem
19330 err := json.Unmarshal(body, &avwpi)
19331 return avwpi, err
19332 case string(ProtectableItemTypeSAPAseSystem):
19333 var avwsaspi AzureVMWorkloadSAPAseSystemProtectableItem
19334 err := json.Unmarshal(body, &avwsaspi)
19335 return avwsaspi, err
19336 case string(ProtectableItemTypeSAPHanaDatabase):
19337 var avwshdpi AzureVMWorkloadSAPHanaDatabaseProtectableItem
19338 err := json.Unmarshal(body, &avwshdpi)
19339 return avwshdpi, err
19340 case string(ProtectableItemTypeSAPHanaSystem):
19341 var avwshspi AzureVMWorkloadSAPHanaSystemProtectableItem
19342 err := json.Unmarshal(body, &avwshspi)
19343 return avwshspi, err
19344 case string(ProtectableItemTypeSQLAvailabilityGroupContainer):
19345 var avwsagpi AzureVMWorkloadSQLAvailabilityGroupProtectableItem
19346 err := json.Unmarshal(body, &avwsagpi)
19347 return avwsagpi, err
19348 case string(ProtectableItemTypeSQLDataBase):
19349 var avwsdpi AzureVMWorkloadSQLDatabaseProtectableItem
19350 err := json.Unmarshal(body, &avwsdpi)
19351 return avwsdpi, err
19352 case string(ProtectableItemTypeSQLInstance):
19353 var avwsipi AzureVMWorkloadSQLInstanceProtectableItem
19354 err := json.Unmarshal(body, &avwsipi)
19355 return avwsipi, err
19356 case string(ProtectableItemTypeIaaSVMProtectableItem):
19357 var ispi IaaSVMProtectableItem
19358 err := json.Unmarshal(body, &ispi)
19359 return ispi, err
19360 default:
19361 var wpi WorkloadProtectableItem
19362 err := json.Unmarshal(body, &wpi)
19363 return wpi, err
19364 }
19365 }
19366 func unmarshalBasicWorkloadProtectableItemArray(body []byte) ([]BasicWorkloadProtectableItem, error) {
19367 var rawMessages []*json.RawMessage
19368 err := json.Unmarshal(body, &rawMessages)
19369 if err != nil {
19370 return nil, err
19371 }
19372
19373 wpiArray := make([]BasicWorkloadProtectableItem, len(rawMessages))
19374
19375 for index, rawMessage := range rawMessages {
19376 wpi, err := unmarshalBasicWorkloadProtectableItem(*rawMessage)
19377 if err != nil {
19378 return nil, err
19379 }
19380 wpiArray[index] = wpi
19381 }
19382 return wpiArray, nil
19383 }
19384
19385
19386 func (wpi WorkloadProtectableItem) MarshalJSON() ([]byte, error) {
19387 wpi.ProtectableItemType = ProtectableItemTypeWorkloadProtectableItem
19388 objectMap := make(map[string]interface{})
19389 if wpi.BackupManagementType != nil {
19390 objectMap["backupManagementType"] = wpi.BackupManagementType
19391 }
19392 if wpi.WorkloadType != nil {
19393 objectMap["workloadType"] = wpi.WorkloadType
19394 }
19395 if wpi.FriendlyName != nil {
19396 objectMap["friendlyName"] = wpi.FriendlyName
19397 }
19398 if wpi.ProtectionState != "" {
19399 objectMap["protectionState"] = wpi.ProtectionState
19400 }
19401 if wpi.ProtectableItemType != "" {
19402 objectMap["protectableItemType"] = wpi.ProtectableItemType
19403 }
19404 return json.Marshal(objectMap)
19405 }
19406
19407
19408 func (wpi WorkloadProtectableItem) AsAzureFileShareProtectableItem() (*AzureFileShareProtectableItem, bool) {
19409 return nil, false
19410 }
19411
19412
19413 func (wpi WorkloadProtectableItem) AsAzureIaaSClassicComputeVMProtectableItem() (*AzureIaaSClassicComputeVMProtectableItem, bool) {
19414 return nil, false
19415 }
19416
19417
19418 func (wpi WorkloadProtectableItem) AsAzureIaaSComputeVMProtectableItem() (*AzureIaaSComputeVMProtectableItem, bool) {
19419 return nil, false
19420 }
19421
19422
19423 func (wpi WorkloadProtectableItem) AsAzureVMWorkloadProtectableItem() (*AzureVMWorkloadProtectableItem, bool) {
19424 return nil, false
19425 }
19426
19427
19428 func (wpi WorkloadProtectableItem) AsBasicAzureVMWorkloadProtectableItem() (BasicAzureVMWorkloadProtectableItem, bool) {
19429 return nil, false
19430 }
19431
19432
19433 func (wpi WorkloadProtectableItem) AsAzureVMWorkloadSAPAseSystemProtectableItem() (*AzureVMWorkloadSAPAseSystemProtectableItem, bool) {
19434 return nil, false
19435 }
19436
19437
19438 func (wpi WorkloadProtectableItem) AsAzureVMWorkloadSAPHanaDatabaseProtectableItem() (*AzureVMWorkloadSAPHanaDatabaseProtectableItem, bool) {
19439 return nil, false
19440 }
19441
19442
19443 func (wpi WorkloadProtectableItem) AsAzureVMWorkloadSAPHanaSystemProtectableItem() (*AzureVMWorkloadSAPHanaSystemProtectableItem, bool) {
19444 return nil, false
19445 }
19446
19447
19448 func (wpi WorkloadProtectableItem) AsAzureVMWorkloadSQLAvailabilityGroupProtectableItem() (*AzureVMWorkloadSQLAvailabilityGroupProtectableItem, bool) {
19449 return nil, false
19450 }
19451
19452
19453 func (wpi WorkloadProtectableItem) AsAzureVMWorkloadSQLDatabaseProtectableItem() (*AzureVMWorkloadSQLDatabaseProtectableItem, bool) {
19454 return nil, false
19455 }
19456
19457
19458 func (wpi WorkloadProtectableItem) AsAzureVMWorkloadSQLInstanceProtectableItem() (*AzureVMWorkloadSQLInstanceProtectableItem, bool) {
19459 return nil, false
19460 }
19461
19462
19463 func (wpi WorkloadProtectableItem) AsIaaSVMProtectableItem() (*IaaSVMProtectableItem, bool) {
19464 return nil, false
19465 }
19466
19467
19468 func (wpi WorkloadProtectableItem) AsBasicIaaSVMProtectableItem() (BasicIaaSVMProtectableItem, bool) {
19469 return nil, false
19470 }
19471
19472
19473 func (wpi WorkloadProtectableItem) AsWorkloadProtectableItem() (*WorkloadProtectableItem, bool) {
19474 return &wpi, true
19475 }
19476
19477
19478 func (wpi WorkloadProtectableItem) AsBasicWorkloadProtectableItem() (BasicWorkloadProtectableItem, bool) {
19479 return &wpi, true
19480 }
19481
19482
19483
19484 type WorkloadProtectableItemResource struct {
19485
19486 Properties BasicWorkloadProtectableItem `json:"properties,omitempty"`
19487
19488 ID *string `json:"id,omitempty"`
19489
19490 Name *string `json:"name,omitempty"`
19491
19492 Type *string `json:"type,omitempty"`
19493
19494 Location *string `json:"location,omitempty"`
19495
19496 Tags map[string]*string `json:"tags"`
19497
19498 ETag *string `json:"eTag,omitempty"`
19499 }
19500
19501
19502 func (wpir WorkloadProtectableItemResource) MarshalJSON() ([]byte, error) {
19503 objectMap := make(map[string]interface{})
19504 objectMap["properties"] = wpir.Properties
19505 if wpir.Location != nil {
19506 objectMap["location"] = wpir.Location
19507 }
19508 if wpir.Tags != nil {
19509 objectMap["tags"] = wpir.Tags
19510 }
19511 if wpir.ETag != nil {
19512 objectMap["eTag"] = wpir.ETag
19513 }
19514 return json.Marshal(objectMap)
19515 }
19516
19517
19518 func (wpir *WorkloadProtectableItemResource) UnmarshalJSON(body []byte) error {
19519 var m map[string]*json.RawMessage
19520 err := json.Unmarshal(body, &m)
19521 if err != nil {
19522 return err
19523 }
19524 for k, v := range m {
19525 switch k {
19526 case "properties":
19527 if v != nil {
19528 properties, err := unmarshalBasicWorkloadProtectableItem(*v)
19529 if err != nil {
19530 return err
19531 }
19532 wpir.Properties = properties
19533 }
19534 case "id":
19535 if v != nil {
19536 var ID string
19537 err = json.Unmarshal(*v, &ID)
19538 if err != nil {
19539 return err
19540 }
19541 wpir.ID = &ID
19542 }
19543 case "name":
19544 if v != nil {
19545 var name string
19546 err = json.Unmarshal(*v, &name)
19547 if err != nil {
19548 return err
19549 }
19550 wpir.Name = &name
19551 }
19552 case "type":
19553 if v != nil {
19554 var typeVar string
19555 err = json.Unmarshal(*v, &typeVar)
19556 if err != nil {
19557 return err
19558 }
19559 wpir.Type = &typeVar
19560 }
19561 case "location":
19562 if v != nil {
19563 var location string
19564 err = json.Unmarshal(*v, &location)
19565 if err != nil {
19566 return err
19567 }
19568 wpir.Location = &location
19569 }
19570 case "tags":
19571 if v != nil {
19572 var tags map[string]*string
19573 err = json.Unmarshal(*v, &tags)
19574 if err != nil {
19575 return err
19576 }
19577 wpir.Tags = tags
19578 }
19579 case "eTag":
19580 if v != nil {
19581 var eTag string
19582 err = json.Unmarshal(*v, &eTag)
19583 if err != nil {
19584 return err
19585 }
19586 wpir.ETag = &eTag
19587 }
19588 }
19589 }
19590
19591 return nil
19592 }
19593
19594
19595 type WorkloadProtectableItemResourceList struct {
19596 autorest.Response `json:"-"`
19597
19598 Value *[]WorkloadProtectableItemResource `json:"value,omitempty"`
19599
19600 NextLink *string `json:"nextLink,omitempty"`
19601 }
19602
19603
19604
19605 type WorkloadProtectableItemResourceListIterator struct {
19606 i int
19607 page WorkloadProtectableItemResourceListPage
19608 }
19609
19610
19611
19612 func (iter *WorkloadProtectableItemResourceListIterator) NextWithContext(ctx context.Context) (err error) {
19613 if tracing.IsEnabled() {
19614 ctx = tracing.StartSpan(ctx, fqdn+"/WorkloadProtectableItemResourceListIterator.NextWithContext")
19615 defer func() {
19616 sc := -1
19617 if iter.Response().Response.Response != nil {
19618 sc = iter.Response().Response.Response.StatusCode
19619 }
19620 tracing.EndSpan(ctx, sc, err)
19621 }()
19622 }
19623 iter.i++
19624 if iter.i < len(iter.page.Values()) {
19625 return nil
19626 }
19627 err = iter.page.NextWithContext(ctx)
19628 if err != nil {
19629 iter.i--
19630 return err
19631 }
19632 iter.i = 0
19633 return nil
19634 }
19635
19636
19637
19638
19639 func (iter *WorkloadProtectableItemResourceListIterator) Next() error {
19640 return iter.NextWithContext(context.Background())
19641 }
19642
19643
19644 func (iter WorkloadProtectableItemResourceListIterator) NotDone() bool {
19645 return iter.page.NotDone() && iter.i < len(iter.page.Values())
19646 }
19647
19648
19649 func (iter WorkloadProtectableItemResourceListIterator) Response() WorkloadProtectableItemResourceList {
19650 return iter.page.Response()
19651 }
19652
19653
19654
19655 func (iter WorkloadProtectableItemResourceListIterator) Value() WorkloadProtectableItemResource {
19656 if !iter.page.NotDone() {
19657 return WorkloadProtectableItemResource{}
19658 }
19659 return iter.page.Values()[iter.i]
19660 }
19661
19662
19663 func NewWorkloadProtectableItemResourceListIterator(page WorkloadProtectableItemResourceListPage) WorkloadProtectableItemResourceListIterator {
19664 return WorkloadProtectableItemResourceListIterator{page: page}
19665 }
19666
19667
19668 func (wpirl WorkloadProtectableItemResourceList) IsEmpty() bool {
19669 return wpirl.Value == nil || len(*wpirl.Value) == 0
19670 }
19671
19672
19673 func (wpirl WorkloadProtectableItemResourceList) hasNextLink() bool {
19674 return wpirl.NextLink != nil && len(*wpirl.NextLink) != 0
19675 }
19676
19677
19678
19679 func (wpirl WorkloadProtectableItemResourceList) workloadProtectableItemResourceListPreparer(ctx context.Context) (*http.Request, error) {
19680 if !wpirl.hasNextLink() {
19681 return nil, nil
19682 }
19683 return autorest.Prepare((&http.Request{}).WithContext(ctx),
19684 autorest.AsJSON(),
19685 autorest.AsGet(),
19686 autorest.WithBaseURL(to.String(wpirl.NextLink)))
19687 }
19688
19689
19690 type WorkloadProtectableItemResourceListPage struct {
19691 fn func(context.Context, WorkloadProtectableItemResourceList) (WorkloadProtectableItemResourceList, error)
19692 wpirl WorkloadProtectableItemResourceList
19693 }
19694
19695
19696
19697 func (page *WorkloadProtectableItemResourceListPage) NextWithContext(ctx context.Context) (err error) {
19698 if tracing.IsEnabled() {
19699 ctx = tracing.StartSpan(ctx, fqdn+"/WorkloadProtectableItemResourceListPage.NextWithContext")
19700 defer func() {
19701 sc := -1
19702 if page.Response().Response.Response != nil {
19703 sc = page.Response().Response.Response.StatusCode
19704 }
19705 tracing.EndSpan(ctx, sc, err)
19706 }()
19707 }
19708 for {
19709 next, err := page.fn(ctx, page.wpirl)
19710 if err != nil {
19711 return err
19712 }
19713 page.wpirl = next
19714 if !next.hasNextLink() || !next.IsEmpty() {
19715 break
19716 }
19717 }
19718 return nil
19719 }
19720
19721
19722
19723
19724 func (page *WorkloadProtectableItemResourceListPage) Next() error {
19725 return page.NextWithContext(context.Background())
19726 }
19727
19728
19729 func (page WorkloadProtectableItemResourceListPage) NotDone() bool {
19730 return !page.wpirl.IsEmpty()
19731 }
19732
19733
19734 func (page WorkloadProtectableItemResourceListPage) Response() WorkloadProtectableItemResourceList {
19735 return page.wpirl
19736 }
19737
19738
19739 func (page WorkloadProtectableItemResourceListPage) Values() []WorkloadProtectableItemResource {
19740 if page.wpirl.IsEmpty() {
19741 return nil
19742 }
19743 return *page.wpirl.Value
19744 }
19745
19746
19747 func NewWorkloadProtectableItemResourceListPage(cur WorkloadProtectableItemResourceList, getNextPage func(context.Context, WorkloadProtectableItemResourceList) (WorkloadProtectableItemResourceList, error)) WorkloadProtectableItemResourceListPage {
19748 return WorkloadProtectableItemResourceListPage{
19749 fn: getNextPage,
19750 wpirl: cur,
19751 }
19752 }
19753
19754
19755 type YearlyRetentionSchedule struct {
19756
19757 RetentionScheduleFormatType RetentionScheduleFormat `json:"retentionScheduleFormatType,omitempty"`
19758
19759 MonthsOfYear *[]MonthOfYear `json:"monthsOfYear,omitempty"`
19760
19761 RetentionScheduleDaily *DailyRetentionFormat `json:"retentionScheduleDaily,omitempty"`
19762
19763 RetentionScheduleWeekly *WeeklyRetentionFormat `json:"retentionScheduleWeekly,omitempty"`
19764
19765 RetentionTimes *[]date.Time `json:"retentionTimes,omitempty"`
19766
19767 RetentionDuration *RetentionDuration `json:"retentionDuration,omitempty"`
19768 }
19769
View as plain text