1package backup 2 3// Copyright (c) Microsoft Corporation. All rights reserved. 4// Licensed under the MIT License. See License.txt in the project root for license information. 5// 6// Code generated by Microsoft (R) AutoRest Code Generator. 7// Changes may cause incorrect behavior and will be lost if the code is regenerated. 8 9import ( 10 "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// The package's fully qualified name. 21const fqdn = "github.com/Azure/azure-sdk-for-go/services/recoveryservices/mgmt/2020-02-02/backup" 22 23// AzureBackupGoalFeatureSupportRequest azure backup goal feature specific request. 24type AzureBackupGoalFeatureSupportRequest struct { 25 // FeatureType - Possible values include: 'FeatureTypeFeatureSupportRequest', 'FeatureTypeAzureBackupGoals', 'FeatureTypeAzureVMResourceBackup' 26 FeatureType FeatureType `json:"featureType,omitempty"` 27} 28 29// MarshalJSON is the custom marshaler for AzureBackupGoalFeatureSupportRequest. 30func (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// AsAzureBackupGoalFeatureSupportRequest is the BasicFeatureSupportRequest implementation for AzureBackupGoalFeatureSupportRequest. 40func (abgfsr AzureBackupGoalFeatureSupportRequest) AsAzureBackupGoalFeatureSupportRequest() (*AzureBackupGoalFeatureSupportRequest, bool) { 41 return &abgfsr, true 42} 43 44// AsAzureVMResourceFeatureSupportRequest is the BasicFeatureSupportRequest implementation for AzureBackupGoalFeatureSupportRequest. 45func (abgfsr AzureBackupGoalFeatureSupportRequest) AsAzureVMResourceFeatureSupportRequest() (*AzureVMResourceFeatureSupportRequest, bool) { 46 return nil, false 47} 48 49// AsFeatureSupportRequest is the BasicFeatureSupportRequest implementation for AzureBackupGoalFeatureSupportRequest. 50func (abgfsr AzureBackupGoalFeatureSupportRequest) AsFeatureSupportRequest() (*FeatureSupportRequest, bool) { 51 return nil, false 52} 53 54// AsBasicFeatureSupportRequest is the BasicFeatureSupportRequest implementation for AzureBackupGoalFeatureSupportRequest. 55func (abgfsr AzureBackupGoalFeatureSupportRequest) AsBasicFeatureSupportRequest() (BasicFeatureSupportRequest, bool) { 56 return &abgfsr, true 57} 58 59// AzureBackupServerContainer azureBackupServer (DPMVenus) workload-specific protection container. 60type AzureBackupServerContainer struct { 61 // CanReRegister - Specifies whether the container is re-registrable. 62 CanReRegister *bool `json:"canReRegister,omitempty"` 63 // ContainerID - ID of container. 64 ContainerID *string `json:"containerId,omitempty"` 65 // ProtectedItemCount - Number of protected items in the BackupEngine 66 ProtectedItemCount *int64 `json:"protectedItemCount,omitempty"` 67 // DpmAgentVersion - Backup engine Agent version 68 DpmAgentVersion *string `json:"dpmAgentVersion,omitempty"` 69 // DpmServers - List of BackupEngines protecting the container 70 DpmServers *[]string `json:"dpmServers,omitempty"` 71 // UpgradeAvailable - To check if upgrade available 72 UpgradeAvailable *bool `json:"upgradeAvailable,omitempty"` 73 // ProtectionStatus - Protection status of the container. 74 ProtectionStatus *string `json:"protectionStatus,omitempty"` 75 // ExtendedInfo - Extended Info of the container. 76 ExtendedInfo *DPMContainerExtendedInfo `json:"extendedInfo,omitempty"` 77 // FriendlyName - Friendly name of the container. 78 FriendlyName *string `json:"friendlyName,omitempty"` 79 // BackupManagementType - Type of backup management for the container. Possible values include: 'ManagementTypeInvalid', 'ManagementTypeAzureIaasVM', 'ManagementTypeMAB', 'ManagementTypeDPM', 'ManagementTypeAzureBackupServer', 'ManagementTypeAzureSQL', 'ManagementTypeAzureStorage', 'ManagementTypeAzureWorkload', 'ManagementTypeDefaultBackup' 80 BackupManagementType ManagementType `json:"backupManagementType,omitempty"` 81 // RegistrationStatus - Status of registration of the container with the Recovery Services Vault. 82 RegistrationStatus *string `json:"registrationStatus,omitempty"` 83 // HealthStatus - Status of health of the container. 84 HealthStatus *string `json:"healthStatus,omitempty"` 85 // ContainerType - Possible values include: 'ContainerTypeProtectionContainer', 'ContainerTypeAzureBackupServerContainer1', 'ContainerTypeMicrosoftClassicComputevirtualMachines', 'ContainerTypeMicrosoftComputevirtualMachines', 'ContainerTypeSQLAGWorkLoadContainer1', 'ContainerTypeAzureSQLContainer1', 'ContainerTypeStorageContainer1', 'ContainerTypeVMAppContainer1', 'ContainerTypeAzureWorkloadContainer', 'ContainerTypeDPMContainer1', 'ContainerTypeGenericContainer1', 'ContainerTypeIaaSVMContainer', 'ContainerTypeWindows1' 86 ContainerType ContainerTypeBasicProtectionContainer `json:"containerType,omitempty"` 87} 88 89// MarshalJSON is the custom marshaler for AzureBackupServerContainer. 90func (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// AsAzureBackupServerContainer is the BasicProtectionContainer implementation for AzureBackupServerContainer. 136func (absc AzureBackupServerContainer) AsAzureBackupServerContainer() (*AzureBackupServerContainer, bool) { 137 return &absc, true 138} 139 140// AsAzureIaaSClassicComputeVMContainer is the BasicProtectionContainer implementation for AzureBackupServerContainer. 141func (absc AzureBackupServerContainer) AsAzureIaaSClassicComputeVMContainer() (*AzureIaaSClassicComputeVMContainer, bool) { 142 return nil, false 143} 144 145// AsAzureIaaSComputeVMContainer is the BasicProtectionContainer implementation for AzureBackupServerContainer. 146func (absc AzureBackupServerContainer) AsAzureIaaSComputeVMContainer() (*AzureIaaSComputeVMContainer, bool) { 147 return nil, false 148} 149 150// AsAzureSQLAGWorkloadContainerProtectionContainer is the BasicProtectionContainer implementation for AzureBackupServerContainer. 151func (absc AzureBackupServerContainer) AsAzureSQLAGWorkloadContainerProtectionContainer() (*AzureSQLAGWorkloadContainerProtectionContainer, bool) { 152 return nil, false 153} 154 155// AsAzureSQLContainer is the BasicProtectionContainer implementation for AzureBackupServerContainer. 156func (absc AzureBackupServerContainer) AsAzureSQLContainer() (*AzureSQLContainer, bool) { 157 return nil, false 158} 159 160// AsAzureStorageContainer is the BasicProtectionContainer implementation for AzureBackupServerContainer. 161func (absc AzureBackupServerContainer) AsAzureStorageContainer() (*AzureStorageContainer, bool) { 162 return nil, false 163} 164 165// AsAzureVMAppContainerProtectionContainer is the BasicProtectionContainer implementation for AzureBackupServerContainer. 166func (absc AzureBackupServerContainer) AsAzureVMAppContainerProtectionContainer() (*AzureVMAppContainerProtectionContainer, bool) { 167 return nil, false 168} 169 170// AsAzureWorkloadContainer is the BasicProtectionContainer implementation for AzureBackupServerContainer. 171func (absc AzureBackupServerContainer) AsAzureWorkloadContainer() (*AzureWorkloadContainer, bool) { 172 return nil, false 173} 174 175// AsBasicAzureWorkloadContainer is the BasicProtectionContainer implementation for AzureBackupServerContainer. 176func (absc AzureBackupServerContainer) AsBasicAzureWorkloadContainer() (BasicAzureWorkloadContainer, bool) { 177 return nil, false 178} 179 180// AsDpmContainer is the BasicProtectionContainer implementation for AzureBackupServerContainer. 181func (absc AzureBackupServerContainer) AsDpmContainer() (*DpmContainer, bool) { 182 return nil, false 183} 184 185// AsBasicDpmContainer is the BasicProtectionContainer implementation for AzureBackupServerContainer. 186func (absc AzureBackupServerContainer) AsBasicDpmContainer() (BasicDpmContainer, bool) { 187 return &absc, true 188} 189 190// AsGenericContainer is the BasicProtectionContainer implementation for AzureBackupServerContainer. 191func (absc AzureBackupServerContainer) AsGenericContainer() (*GenericContainer, bool) { 192 return nil, false 193} 194 195// AsIaaSVMContainer is the BasicProtectionContainer implementation for AzureBackupServerContainer. 196func (absc AzureBackupServerContainer) AsIaaSVMContainer() (*IaaSVMContainer, bool) { 197 return nil, false 198} 199 200// AsBasicIaaSVMContainer is the BasicProtectionContainer implementation for AzureBackupServerContainer. 201func (absc AzureBackupServerContainer) AsBasicIaaSVMContainer() (BasicIaaSVMContainer, bool) { 202 return nil, false 203} 204 205// AsMabContainer is the BasicProtectionContainer implementation for AzureBackupServerContainer. 206func (absc AzureBackupServerContainer) AsMabContainer() (*MabContainer, bool) { 207 return nil, false 208} 209 210// AsProtectionContainer is the BasicProtectionContainer implementation for AzureBackupServerContainer. 211func (absc AzureBackupServerContainer) AsProtectionContainer() (*ProtectionContainer, bool) { 212 return nil, false 213} 214 215// AsBasicProtectionContainer is the BasicProtectionContainer implementation for AzureBackupServerContainer. 216func (absc AzureBackupServerContainer) AsBasicProtectionContainer() (BasicProtectionContainer, bool) { 217 return &absc, true 218} 219 220// AzureBackupServerEngine backup engine type when Azure Backup Server is used to manage the backups. 221type AzureBackupServerEngine struct { 222 // FriendlyName - Friendly name of the backup engine. 223 FriendlyName *string `json:"friendlyName,omitempty"` 224 // BackupManagementType - Type of backup management for the backup engine. Possible values include: 'ManagementTypeInvalid', 'ManagementTypeAzureIaasVM', 'ManagementTypeMAB', 'ManagementTypeDPM', 'ManagementTypeAzureBackupServer', 'ManagementTypeAzureSQL', 'ManagementTypeAzureStorage', 'ManagementTypeAzureWorkload', 'ManagementTypeDefaultBackup' 225 BackupManagementType ManagementType `json:"backupManagementType,omitempty"` 226 // RegistrationStatus - Registration status of the backup engine with the Recovery Services Vault. 227 RegistrationStatus *string `json:"registrationStatus,omitempty"` 228 // BackupEngineState - Status of the backup engine with the Recovery Services Vault. = {Active/Deleting/DeleteFailed} 229 BackupEngineState *string `json:"backupEngineState,omitempty"` 230 // HealthStatus - Backup status of the backup engine. 231 HealthStatus *string `json:"healthStatus,omitempty"` 232 // CanReRegister - Flag indicating if the backup engine be registered, once already registered. 233 CanReRegister *bool `json:"canReRegister,omitempty"` 234 // BackupEngineID - ID of the backup engine. 235 BackupEngineID *string `json:"backupEngineId,omitempty"` 236 // DpmVersion - Backup engine version 237 DpmVersion *string `json:"dpmVersion,omitempty"` 238 // AzureBackupAgentVersion - Backup agent version 239 AzureBackupAgentVersion *string `json:"azureBackupAgentVersion,omitempty"` 240 // IsAzureBackupAgentUpgradeAvailable - To check if backup agent upgrade available 241 IsAzureBackupAgentUpgradeAvailable *bool `json:"isAzureBackupAgentUpgradeAvailable,omitempty"` 242 // IsDpmUpgradeAvailable - To check if backup engine upgrade available 243 IsDpmUpgradeAvailable *bool `json:"isDpmUpgradeAvailable,omitempty"` 244 // ExtendedInfo - Extended info of the backupengine 245 ExtendedInfo *EngineExtendedInfo `json:"extendedInfo,omitempty"` 246 // BackupEngineType - Possible values include: 'BackupEngineTypeBackupEngineBase', 'BackupEngineTypeAzureBackupServerEngine', 'BackupEngineTypeDpmBackupEngine' 247 BackupEngineType EngineType `json:"backupEngineType,omitempty"` 248} 249 250// MarshalJSON is the custom marshaler for AzureBackupServerEngine. 251func (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// AsAzureBackupServerEngine is the BasicEngineBase implementation for AzureBackupServerEngine. 297func (abse AzureBackupServerEngine) AsAzureBackupServerEngine() (*AzureBackupServerEngine, bool) { 298 return &abse, true 299} 300 301// AsDpmBackupEngine is the BasicEngineBase implementation for AzureBackupServerEngine. 302func (abse AzureBackupServerEngine) AsDpmBackupEngine() (*DpmBackupEngine, bool) { 303 return nil, false 304} 305 306// AsEngineBase is the BasicEngineBase implementation for AzureBackupServerEngine. 307func (abse AzureBackupServerEngine) AsEngineBase() (*EngineBase, bool) { 308 return nil, false 309} 310 311// AsBasicEngineBase is the BasicEngineBase implementation for AzureBackupServerEngine. 312func (abse AzureBackupServerEngine) AsBasicEngineBase() (BasicEngineBase, bool) { 313 return &abse, true 314} 315 316// AzureFileShareBackupRequest azureFileShare workload-specific backup request. 317type AzureFileShareBackupRequest struct { 318 // RecoveryPointExpiryTimeInUTC - Backup copy will expire after the time specified (UTC). 319 RecoveryPointExpiryTimeInUTC *date.Time `json:"recoveryPointExpiryTimeInUTC,omitempty"` 320 // ObjectType - Possible values include: 'ObjectTypeBackupRequest', 'ObjectTypeAzureFileShareBackupRequest', 'ObjectTypeAzureWorkloadBackupRequest', 'ObjectTypeIaasVMBackupRequest' 321 ObjectType ObjectTypeBasicRequest `json:"objectType,omitempty"` 322} 323 324// MarshalJSON is the custom marshaler for AzureFileShareBackupRequest. 325func (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// AsAzureFileShareBackupRequest is the BasicRequest implementation for AzureFileShareBackupRequest. 338func (afsbr AzureFileShareBackupRequest) AsAzureFileShareBackupRequest() (*AzureFileShareBackupRequest, bool) { 339 return &afsbr, true 340} 341 342// AsAzureWorkloadBackupRequest is the BasicRequest implementation for AzureFileShareBackupRequest. 343func (afsbr AzureFileShareBackupRequest) AsAzureWorkloadBackupRequest() (*AzureWorkloadBackupRequest, bool) { 344 return nil, false 345} 346 347// AsIaasVMBackupRequest is the BasicRequest implementation for AzureFileShareBackupRequest. 348func (afsbr AzureFileShareBackupRequest) AsIaasVMBackupRequest() (*IaasVMBackupRequest, bool) { 349 return nil, false 350} 351 352// AsRequest is the BasicRequest implementation for AzureFileShareBackupRequest. 353func (afsbr AzureFileShareBackupRequest) AsRequest() (*Request, bool) { 354 return nil, false 355} 356 357// AsBasicRequest is the BasicRequest implementation for AzureFileShareBackupRequest. 358func (afsbr AzureFileShareBackupRequest) AsBasicRequest() (BasicRequest, bool) { 359 return &afsbr, true 360} 361 362// AzureFileShareProtectableItem protectable item for Azure Fileshare workloads. 363type AzureFileShareProtectableItem struct { 364 // ParentContainerFabricID - Full Fabric ID of container to which this protectable item belongs. For example, ARM ID. 365 ParentContainerFabricID *string `json:"parentContainerFabricId,omitempty"` 366 // ParentContainerFriendlyName - Friendly name of container to which this protectable item belongs. 367 ParentContainerFriendlyName *string `json:"parentContainerFriendlyName,omitempty"` 368 // AzureFileShareType - File Share type XSync or XSMB. Possible values include: 'Invalid', 'XSMB', 'XSync' 369 AzureFileShareType AzureFileShareType `json:"azureFileShareType,omitempty"` 370 // BackupManagementType - Type of backup management to backup an item. 371 BackupManagementType *string `json:"backupManagementType,omitempty"` 372 // WorkloadType - Type of workload for the backup management 373 WorkloadType *string `json:"workloadType,omitempty"` 374 // FriendlyName - Friendly name of the backup item. 375 FriendlyName *string `json:"friendlyName,omitempty"` 376 // ProtectionState - State of the back up item. Possible values include: 'ProtectionStatusInvalid', 'ProtectionStatusNotProtected', 'ProtectionStatusProtecting', 'ProtectionStatusProtected', 'ProtectionStatusProtectionFailed' 377 ProtectionState ProtectionStatus `json:"protectionState,omitempty"` 378 // ProtectableItemType - Possible values include: 'ProtectableItemTypeWorkloadProtectableItem', 'ProtectableItemTypeAzureFileShare', 'ProtectableItemTypeMicrosoftClassicComputevirtualMachines', 'ProtectableItemTypeMicrosoftComputevirtualMachines', 'ProtectableItemTypeAzureVMWorkloadProtectableItem', 'ProtectableItemTypeSAPAseSystem', 'ProtectableItemTypeSAPHanaDatabase', 'ProtectableItemTypeSAPHanaSystem', 'ProtectableItemTypeSQLAvailabilityGroupContainer', 'ProtectableItemTypeSQLDataBase', 'ProtectableItemTypeSQLInstance', 'ProtectableItemTypeIaaSVMProtectableItem' 379 ProtectableItemType ProtectableItemType `json:"protectableItemType,omitempty"` 380} 381 382// MarshalJSON is the custom marshaler for AzureFileShareProtectableItem. 383func (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// AsAzureFileShareProtectableItem is the BasicWorkloadProtectableItem implementation for AzureFileShareProtectableItem. 414func (afspi AzureFileShareProtectableItem) AsAzureFileShareProtectableItem() (*AzureFileShareProtectableItem, bool) { 415 return &afspi, true 416} 417 418// AsAzureIaaSClassicComputeVMProtectableItem is the BasicWorkloadProtectableItem implementation for AzureFileShareProtectableItem. 419func (afspi AzureFileShareProtectableItem) AsAzureIaaSClassicComputeVMProtectableItem() (*AzureIaaSClassicComputeVMProtectableItem, bool) { 420 return nil, false 421} 422 423// AsAzureIaaSComputeVMProtectableItem is the BasicWorkloadProtectableItem implementation for AzureFileShareProtectableItem. 424func (afspi AzureFileShareProtectableItem) AsAzureIaaSComputeVMProtectableItem() (*AzureIaaSComputeVMProtectableItem, bool) { 425 return nil, false 426} 427 428// AsAzureVMWorkloadProtectableItem is the BasicWorkloadProtectableItem implementation for AzureFileShareProtectableItem. 429func (afspi AzureFileShareProtectableItem) AsAzureVMWorkloadProtectableItem() (*AzureVMWorkloadProtectableItem, bool) { 430 return nil, false 431} 432 433// AsBasicAzureVMWorkloadProtectableItem is the BasicWorkloadProtectableItem implementation for AzureFileShareProtectableItem. 434func (afspi AzureFileShareProtectableItem) AsBasicAzureVMWorkloadProtectableItem() (BasicAzureVMWorkloadProtectableItem, bool) { 435 return nil, false 436} 437 438// AsAzureVMWorkloadSAPAseSystemProtectableItem is the BasicWorkloadProtectableItem implementation for AzureFileShareProtectableItem. 439func (afspi AzureFileShareProtectableItem) AsAzureVMWorkloadSAPAseSystemProtectableItem() (*AzureVMWorkloadSAPAseSystemProtectableItem, bool) { 440 return nil, false 441} 442 443// AsAzureVMWorkloadSAPHanaDatabaseProtectableItem is the BasicWorkloadProtectableItem implementation for AzureFileShareProtectableItem. 444func (afspi AzureFileShareProtectableItem) AsAzureVMWorkloadSAPHanaDatabaseProtectableItem() (*AzureVMWorkloadSAPHanaDatabaseProtectableItem, bool) { 445 return nil, false 446} 447 448// AsAzureVMWorkloadSAPHanaSystemProtectableItem is the BasicWorkloadProtectableItem implementation for AzureFileShareProtectableItem. 449func (afspi AzureFileShareProtectableItem) AsAzureVMWorkloadSAPHanaSystemProtectableItem() (*AzureVMWorkloadSAPHanaSystemProtectableItem, bool) { 450 return nil, false 451} 452 453// AsAzureVMWorkloadSQLAvailabilityGroupProtectableItem is the BasicWorkloadProtectableItem implementation for AzureFileShareProtectableItem. 454func (afspi AzureFileShareProtectableItem) AsAzureVMWorkloadSQLAvailabilityGroupProtectableItem() (*AzureVMWorkloadSQLAvailabilityGroupProtectableItem, bool) { 455 return nil, false 456} 457 458// AsAzureVMWorkloadSQLDatabaseProtectableItem is the BasicWorkloadProtectableItem implementation for AzureFileShareProtectableItem. 459func (afspi AzureFileShareProtectableItem) AsAzureVMWorkloadSQLDatabaseProtectableItem() (*AzureVMWorkloadSQLDatabaseProtectableItem, bool) { 460 return nil, false 461} 462 463// AsAzureVMWorkloadSQLInstanceProtectableItem is the BasicWorkloadProtectableItem implementation for AzureFileShareProtectableItem. 464func (afspi AzureFileShareProtectableItem) AsAzureVMWorkloadSQLInstanceProtectableItem() (*AzureVMWorkloadSQLInstanceProtectableItem, bool) { 465 return nil, false 466} 467 468// AsIaaSVMProtectableItem is the BasicWorkloadProtectableItem implementation for AzureFileShareProtectableItem. 469func (afspi AzureFileShareProtectableItem) AsIaaSVMProtectableItem() (*IaaSVMProtectableItem, bool) { 470 return nil, false 471} 472 473// AsBasicIaaSVMProtectableItem is the BasicWorkloadProtectableItem implementation for AzureFileShareProtectableItem. 474func (afspi AzureFileShareProtectableItem) AsBasicIaaSVMProtectableItem() (BasicIaaSVMProtectableItem, bool) { 475 return nil, false 476} 477 478// AsWorkloadProtectableItem is the BasicWorkloadProtectableItem implementation for AzureFileShareProtectableItem. 479func (afspi AzureFileShareProtectableItem) AsWorkloadProtectableItem() (*WorkloadProtectableItem, bool) { 480 return nil, false 481} 482 483// AsBasicWorkloadProtectableItem is the BasicWorkloadProtectableItem implementation for AzureFileShareProtectableItem. 484func (afspi AzureFileShareProtectableItem) AsBasicWorkloadProtectableItem() (BasicWorkloadProtectableItem, bool) { 485 return &afspi, true 486} 487 488// AzureFileshareProtectedItem azure File Share workload-specific backup item. 489type AzureFileshareProtectedItem struct { 490 // FriendlyName - Friendly name of the fileshare represented by this backup item. 491 FriendlyName *string `json:"friendlyName,omitempty"` 492 // ProtectionStatus - Backup status of this backup item. 493 ProtectionStatus *string `json:"protectionStatus,omitempty"` 494 // ProtectionState - Backup state of this backup item. Possible values include: 'ProtectionStateInvalid', 'ProtectionStateIRPending', 'ProtectionStateProtected', 'ProtectionStateProtectionError', 'ProtectionStateProtectionStopped', 'ProtectionStateProtectionPaused' 495 ProtectionState ProtectionState `json:"protectionState,omitempty"` 496 // LastBackupStatus - Last backup operation status. Possible values: Healthy, Unhealthy. 497 LastBackupStatus *string `json:"lastBackupStatus,omitempty"` 498 // LastBackupTime - Timestamp of the last backup operation on this backup item. 499 LastBackupTime *date.Time `json:"lastBackupTime,omitempty"` 500 // KpisHealths - Health details of different KPIs 501 KpisHealths map[string]*KPIResourceHealthDetails `json:"kpisHealths"` 502 // ExtendedInfo - Additional information with this backup item. 503 ExtendedInfo *AzureFileshareProtectedItemExtendedInfo `json:"extendedInfo,omitempty"` 504 // BackupManagementType - Type of backup management for the backed up item. Possible values include: 'ManagementTypeInvalid', 'ManagementTypeAzureIaasVM', 'ManagementTypeMAB', 'ManagementTypeDPM', 'ManagementTypeAzureBackupServer', 'ManagementTypeAzureSQL', 'ManagementTypeAzureStorage', 'ManagementTypeAzureWorkload', 'ManagementTypeDefaultBackup' 505 BackupManagementType ManagementType `json:"backupManagementType,omitempty"` 506 // WorkloadType - Type of workload this item represents. Possible values include: 'DataSourceTypeInvalid', 'DataSourceTypeVM', 'DataSourceTypeFileFolder', 'DataSourceTypeAzureSQLDb', 'DataSourceTypeSQLDB', 'DataSourceTypeExchange', 'DataSourceTypeSharepoint', 'DataSourceTypeVMwareVM', 'DataSourceTypeSystemState', 'DataSourceTypeClient', 'DataSourceTypeGenericDataSource', 'DataSourceTypeSQLDataBase', 'DataSourceTypeAzureFileShare', 'DataSourceTypeSAPHanaDatabase', 'DataSourceTypeSAPAseDatabase' 507 WorkloadType DataSourceType `json:"workloadType,omitempty"` 508 // ContainerName - Unique name of container 509 ContainerName *string `json:"containerName,omitempty"` 510 // SourceResourceID - ARM ID of the resource to be backed up. 511 SourceResourceID *string `json:"sourceResourceId,omitempty"` 512 // PolicyID - ID of the backup policy with which this item is backed up. 513 PolicyID *string `json:"policyId,omitempty"` 514 // LastRecoveryPoint - Timestamp when the last (latest) backup copy was created for this backup item. 515 LastRecoveryPoint *date.Time `json:"lastRecoveryPoint,omitempty"` 516 // BackupSetName - Name of the backup set the backup item belongs to 517 BackupSetName *string `json:"backupSetName,omitempty"` 518 // CreateMode - Create mode to indicate recovery of existing soft deleted data source or creation of new data source. Possible values include: 'CreateModeInvalid', 'CreateModeDefault', 'CreateModeRecover' 519 CreateMode CreateMode `json:"createMode,omitempty"` 520 // DeferredDeleteTimeInUTC - Time for deferred deletion in UTC 521 DeferredDeleteTimeInUTC *date.Time `json:"deferredDeleteTimeInUTC,omitempty"` 522 // IsScheduledForDeferredDelete - Flag to identify whether the DS is scheduled for deferred delete 523 IsScheduledForDeferredDelete *bool `json:"isScheduledForDeferredDelete,omitempty"` 524 // DeferredDeleteTimeRemaining - Time remaining before the DS marked for deferred delete is permanently deleted 525 DeferredDeleteTimeRemaining *string `json:"deferredDeleteTimeRemaining,omitempty"` 526 // IsDeferredDeleteScheduleUpcoming - Flag to identify whether the deferred deleted DS is to be purged soon 527 IsDeferredDeleteScheduleUpcoming *bool `json:"isDeferredDeleteScheduleUpcoming,omitempty"` 528 // IsRehydrate - Flag to identify that deferred deleted DS is to be moved into Pause state 529 IsRehydrate *bool `json:"isRehydrate,omitempty"` 530 // ProtectedItemType - Possible values include: 'ProtectedItemTypeProtectedItem', 'ProtectedItemTypeAzureFileShareProtectedItem', 'ProtectedItemTypeMicrosoftClassicComputevirtualMachines', 'ProtectedItemTypeMicrosoftComputevirtualMachines', 'ProtectedItemTypeAzureIaaSVMProtectedItem', 'ProtectedItemTypeMicrosoftSqlserversdatabases', 'ProtectedItemTypeAzureVMWorkloadProtectedItem', 'ProtectedItemTypeAzureVMWorkloadSAPAseDatabase', 'ProtectedItemTypeAzureVMWorkloadSAPHanaDatabase', 'ProtectedItemTypeAzureVMWorkloadSQLDatabase', 'ProtectedItemTypeDPMProtectedItem', 'ProtectedItemTypeGenericProtectedItem', 'ProtectedItemTypeMabFileFolderProtectedItem' 531 ProtectedItemType ProtectedItemType `json:"protectedItemType,omitempty"` 532} 533 534// MarshalJSON is the custom marshaler for AzureFileshareProtectedItem. 535func (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// AsAzureFileshareProtectedItem is the BasicProtectedItem implementation for AzureFileshareProtectedItem. 605func (afpi AzureFileshareProtectedItem) AsAzureFileshareProtectedItem() (*AzureFileshareProtectedItem, bool) { 606 return &afpi, true 607} 608 609// AsAzureIaaSClassicComputeVMProtectedItem is the BasicProtectedItem implementation for AzureFileshareProtectedItem. 610func (afpi AzureFileshareProtectedItem) AsAzureIaaSClassicComputeVMProtectedItem() (*AzureIaaSClassicComputeVMProtectedItem, bool) { 611 return nil, false 612} 613 614// AsAzureIaaSComputeVMProtectedItem is the BasicProtectedItem implementation for AzureFileshareProtectedItem. 615func (afpi AzureFileshareProtectedItem) AsAzureIaaSComputeVMProtectedItem() (*AzureIaaSComputeVMProtectedItem, bool) { 616 return nil, false 617} 618 619// AsAzureIaaSVMProtectedItem is the BasicProtectedItem implementation for AzureFileshareProtectedItem. 620func (afpi AzureFileshareProtectedItem) AsAzureIaaSVMProtectedItem() (*AzureIaaSVMProtectedItem, bool) { 621 return nil, false 622} 623 624// AsBasicAzureIaaSVMProtectedItem is the BasicProtectedItem implementation for AzureFileshareProtectedItem. 625func (afpi AzureFileshareProtectedItem) AsBasicAzureIaaSVMProtectedItem() (BasicAzureIaaSVMProtectedItem, bool) { 626 return nil, false 627} 628 629// AsAzureSQLProtectedItem is the BasicProtectedItem implementation for AzureFileshareProtectedItem. 630func (afpi AzureFileshareProtectedItem) AsAzureSQLProtectedItem() (*AzureSQLProtectedItem, bool) { 631 return nil, false 632} 633 634// AsAzureVMWorkloadProtectedItem is the BasicProtectedItem implementation for AzureFileshareProtectedItem. 635func (afpi AzureFileshareProtectedItem) AsAzureVMWorkloadProtectedItem() (*AzureVMWorkloadProtectedItem, bool) { 636 return nil, false 637} 638 639// AsBasicAzureVMWorkloadProtectedItem is the BasicProtectedItem implementation for AzureFileshareProtectedItem. 640func (afpi AzureFileshareProtectedItem) AsBasicAzureVMWorkloadProtectedItem() (BasicAzureVMWorkloadProtectedItem, bool) { 641 return nil, false 642} 643 644// AsAzureVMWorkloadSAPAseDatabaseProtectedItem is the BasicProtectedItem implementation for AzureFileshareProtectedItem. 645func (afpi AzureFileshareProtectedItem) AsAzureVMWorkloadSAPAseDatabaseProtectedItem() (*AzureVMWorkloadSAPAseDatabaseProtectedItem, bool) { 646 return nil, false 647} 648 649// AsAzureVMWorkloadSAPHanaDatabaseProtectedItem is the BasicProtectedItem implementation for AzureFileshareProtectedItem. 650func (afpi AzureFileshareProtectedItem) AsAzureVMWorkloadSAPHanaDatabaseProtectedItem() (*AzureVMWorkloadSAPHanaDatabaseProtectedItem, bool) { 651 return nil, false 652} 653 654// AsAzureVMWorkloadSQLDatabaseProtectedItem is the BasicProtectedItem implementation for AzureFileshareProtectedItem. 655func (afpi AzureFileshareProtectedItem) AsAzureVMWorkloadSQLDatabaseProtectedItem() (*AzureVMWorkloadSQLDatabaseProtectedItem, bool) { 656 return nil, false 657} 658 659// AsDPMProtectedItem is the BasicProtectedItem implementation for AzureFileshareProtectedItem. 660func (afpi AzureFileshareProtectedItem) AsDPMProtectedItem() (*DPMProtectedItem, bool) { 661 return nil, false 662} 663 664// AsGenericProtectedItem is the BasicProtectedItem implementation for AzureFileshareProtectedItem. 665func (afpi AzureFileshareProtectedItem) AsGenericProtectedItem() (*GenericProtectedItem, bool) { 666 return nil, false 667} 668 669// AsMabFileFolderProtectedItem is the BasicProtectedItem implementation for AzureFileshareProtectedItem. 670func (afpi AzureFileshareProtectedItem) AsMabFileFolderProtectedItem() (*MabFileFolderProtectedItem, bool) { 671 return nil, false 672} 673 674// AsProtectedItem is the BasicProtectedItem implementation for AzureFileshareProtectedItem. 675func (afpi AzureFileshareProtectedItem) AsProtectedItem() (*ProtectedItem, bool) { 676 return nil, false 677} 678 679// AsBasicProtectedItem is the BasicProtectedItem implementation for AzureFileshareProtectedItem. 680func (afpi AzureFileshareProtectedItem) AsBasicProtectedItem() (BasicProtectedItem, bool) { 681 return &afpi, true 682} 683 684// AzureFileshareProtectedItemExtendedInfo additional information about Azure File Share backup item. 685type AzureFileshareProtectedItemExtendedInfo struct { 686 // OldestRecoveryPoint - The oldest backup copy available for this item in the service. 687 OldestRecoveryPoint *date.Time `json:"oldestRecoveryPoint,omitempty"` 688 // RecoveryPointCount - Number of available backup copies associated with this backup item. 689 RecoveryPointCount *int32 `json:"recoveryPointCount,omitempty"` 690 // PolicyState - Indicates consistency of policy object and policy applied to this backup item. 691 PolicyState *string `json:"policyState,omitempty"` 692 // ResourceState - READ-ONLY; Indicates the state of this resource. Possible values are from enum ResourceState {Invalid, Active, SoftDeleted, Deleted} 693 ResourceState *string `json:"resourceState,omitempty"` 694 // ResourceStateSyncTime - READ-ONLY; The resource state sync time for this backup item. 695 ResourceStateSyncTime *date.Time `json:"resourceStateSyncTime,omitempty"` 696} 697 698// MarshalJSON is the custom marshaler for AzureFileshareProtectedItemExtendedInfo. 699func (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// AzureFileShareProtectionPolicy azureStorage backup policy. 714type AzureFileShareProtectionPolicy struct { 715 // WorkLoadType - Type of workload for the backup management. Possible values include: 'WorkloadTypeInvalid', 'WorkloadTypeVM', 'WorkloadTypeFileFolder', 'WorkloadTypeAzureSQLDb', 'WorkloadTypeSQLDB', 'WorkloadTypeExchange', 'WorkloadTypeSharepoint', 'WorkloadTypeVMwareVM', 'WorkloadTypeSystemState', 'WorkloadTypeClient', 'WorkloadTypeGenericDataSource', 'WorkloadTypeSQLDataBase', 'WorkloadTypeAzureFileShare', 'WorkloadTypeSAPHanaDatabase', 'WorkloadTypeSAPAseDatabase' 716 WorkLoadType WorkloadType `json:"workLoadType,omitempty"` 717 // SchedulePolicy - Backup schedule specified as part of backup policy. 718 SchedulePolicy BasicSchedulePolicy `json:"schedulePolicy,omitempty"` 719 // RetentionPolicy - Retention policy with the details on backup copy retention ranges. 720 RetentionPolicy BasicRetentionPolicy `json:"retentionPolicy,omitempty"` 721 // TimeZone - TimeZone optional input as string. For example: TimeZone = "Pacific Standard Time". 722 TimeZone *string `json:"timeZone,omitempty"` 723 // ProtectedItemsCount - Number of items associated with this policy. 724 ProtectedItemsCount *int32 `json:"protectedItemsCount,omitempty"` 725 // BackupManagementType - Possible values include: 'BackupManagementTypeProtectionPolicy', 'BackupManagementTypeAzureWorkload', 'BackupManagementTypeAzureStorage', 'BackupManagementTypeAzureIaasVM', 'BackupManagementTypeAzureSQL', 'BackupManagementTypeGenericProtectionPolicy', 'BackupManagementTypeMAB' 726 BackupManagementType ManagementTypeBasicProtectionPolicy `json:"backupManagementType,omitempty"` 727} 728 729// MarshalJSON is the custom marshaler for AzureFileShareProtectionPolicy. 730func (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// AsAzureVMWorkloadProtectionPolicy is the BasicProtectionPolicy implementation for AzureFileShareProtectionPolicy. 751func (afspp AzureFileShareProtectionPolicy) AsAzureVMWorkloadProtectionPolicy() (*AzureVMWorkloadProtectionPolicy, bool) { 752 return nil, false 753} 754 755// AsAzureFileShareProtectionPolicy is the BasicProtectionPolicy implementation for AzureFileShareProtectionPolicy. 756func (afspp AzureFileShareProtectionPolicy) AsAzureFileShareProtectionPolicy() (*AzureFileShareProtectionPolicy, bool) { 757 return &afspp, true 758} 759 760// AsAzureIaaSVMProtectionPolicy is the BasicProtectionPolicy implementation for AzureFileShareProtectionPolicy. 761func (afspp AzureFileShareProtectionPolicy) AsAzureIaaSVMProtectionPolicy() (*AzureIaaSVMProtectionPolicy, bool) { 762 return nil, false 763} 764 765// AsAzureSQLProtectionPolicy is the BasicProtectionPolicy implementation for AzureFileShareProtectionPolicy. 766func (afspp AzureFileShareProtectionPolicy) AsAzureSQLProtectionPolicy() (*AzureSQLProtectionPolicy, bool) { 767 return nil, false 768} 769 770// AsGenericProtectionPolicy is the BasicProtectionPolicy implementation for AzureFileShareProtectionPolicy. 771func (afspp AzureFileShareProtectionPolicy) AsGenericProtectionPolicy() (*GenericProtectionPolicy, bool) { 772 return nil, false 773} 774 775// AsMabProtectionPolicy is the BasicProtectionPolicy implementation for AzureFileShareProtectionPolicy. 776func (afspp AzureFileShareProtectionPolicy) AsMabProtectionPolicy() (*MabProtectionPolicy, bool) { 777 return nil, false 778} 779 780// AsProtectionPolicy is the BasicProtectionPolicy implementation for AzureFileShareProtectionPolicy. 781func (afspp AzureFileShareProtectionPolicy) AsProtectionPolicy() (*ProtectionPolicy, bool) { 782 return nil, false 783} 784 785// AsBasicProtectionPolicy is the BasicProtectionPolicy implementation for AzureFileShareProtectionPolicy. 786func (afspp AzureFileShareProtectionPolicy) AsBasicProtectionPolicy() (BasicProtectionPolicy, bool) { 787 return &afspp, true 788} 789 790// UnmarshalJSON is the custom unmarshaler for AzureFileShareProtectionPolicy struct. 791func (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// AzureFileShareProvisionILRRequest update snapshot Uri with the correct friendly Name of the source Azure 858// file share. 859type AzureFileShareProvisionILRRequest struct { 860 // RecoveryPointID - Recovery point ID. 861 RecoveryPointID *string `json:"recoveryPointId,omitempty"` 862 // SourceResourceID - Source Storage account ARM Id 863 SourceResourceID *string `json:"sourceResourceId,omitempty"` 864 // ObjectType - Possible values include: 'ObjectTypeILRRequest', 'ObjectTypeAzureFileShareProvisionILRRequest', 'ObjectTypeIaasVMILRRegistrationRequest' 865 ObjectType ObjectTypeBasicILRRequest `json:"objectType,omitempty"` 866} 867 868// MarshalJSON is the custom marshaler for AzureFileShareProvisionILRRequest. 869func (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// AsAzureFileShareProvisionILRRequest is the BasicILRRequest implementation for AzureFileShareProvisionILRRequest. 885func (afspir AzureFileShareProvisionILRRequest) AsAzureFileShareProvisionILRRequest() (*AzureFileShareProvisionILRRequest, bool) { 886 return &afspir, true 887} 888 889// AsIaasVMILRRegistrationRequest is the BasicILRRequest implementation for AzureFileShareProvisionILRRequest. 890func (afspir AzureFileShareProvisionILRRequest) AsIaasVMILRRegistrationRequest() (*IaasVMILRRegistrationRequest, bool) { 891 return nil, false 892} 893 894// AsILRRequest is the BasicILRRequest implementation for AzureFileShareProvisionILRRequest. 895func (afspir AzureFileShareProvisionILRRequest) AsILRRequest() (*ILRRequest, bool) { 896 return nil, false 897} 898 899// AsBasicILRRequest is the BasicILRRequest implementation for AzureFileShareProvisionILRRequest. 900func (afspir AzureFileShareProvisionILRRequest) AsBasicILRRequest() (BasicILRRequest, bool) { 901 return &afspir, true 902} 903 904// AzureFileShareRecoveryPoint azure File Share workload specific backup copy. 905type AzureFileShareRecoveryPoint struct { 906 // RecoveryPointType - READ-ONLY; Type of the backup copy. Specifies whether it is a crash consistent backup or app consistent. 907 RecoveryPointType *string `json:"recoveryPointType,omitempty"` 908 // RecoveryPointTime - READ-ONLY; Time at which this backup copy was created. 909 RecoveryPointTime *date.Time `json:"recoveryPointTime,omitempty"` 910 // FileShareSnapshotURI - READ-ONLY; Contains Url to the snapshot of fileshare, if applicable 911 FileShareSnapshotURI *string `json:"fileShareSnapshotUri,omitempty"` 912 // RecoveryPointSizeInGB - READ-ONLY; Contains recovery point size 913 RecoveryPointSizeInGB *int32 `json:"recoveryPointSizeInGB,omitempty"` 914 // ObjectType - Possible values include: 'ObjectTypeRecoveryPoint', 'ObjectTypeAzureFileShareRecoveryPoint', 'ObjectTypeAzureWorkloadPointInTimeRecoveryPoint', 'ObjectTypeAzureWorkloadRecoveryPoint', 'ObjectTypeAzureWorkloadSAPHanaPointInTimeRecoveryPoint', 'ObjectTypeAzureWorkloadSAPHanaRecoveryPoint', 'ObjectTypeAzureWorkloadSQLPointInTimeRecoveryPoint', 'ObjectTypeAzureWorkloadSQLRecoveryPoint', 'ObjectTypeGenericRecoveryPoint', 'ObjectTypeIaasVMRecoveryPoint' 915 ObjectType ObjectTypeBasicRecoveryPoint `json:"objectType,omitempty"` 916} 917 918// MarshalJSON is the custom marshaler for AzureFileShareRecoveryPoint. 919func (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// AsAzureFileShareRecoveryPoint is the BasicRecoveryPoint implementation for AzureFileShareRecoveryPoint. 929func (afsrp AzureFileShareRecoveryPoint) AsAzureFileShareRecoveryPoint() (*AzureFileShareRecoveryPoint, bool) { 930 return &afsrp, true 931} 932 933// AsAzureWorkloadPointInTimeRecoveryPoint is the BasicRecoveryPoint implementation for AzureFileShareRecoveryPoint. 934func (afsrp AzureFileShareRecoveryPoint) AsAzureWorkloadPointInTimeRecoveryPoint() (*AzureWorkloadPointInTimeRecoveryPoint, bool) { 935 return nil, false 936} 937 938// AsBasicAzureWorkloadPointInTimeRecoveryPoint is the BasicRecoveryPoint implementation for AzureFileShareRecoveryPoint. 939func (afsrp AzureFileShareRecoveryPoint) AsBasicAzureWorkloadPointInTimeRecoveryPoint() (BasicAzureWorkloadPointInTimeRecoveryPoint, bool) { 940 return nil, false 941} 942 943// AsAzureWorkloadRecoveryPoint is the BasicRecoveryPoint implementation for AzureFileShareRecoveryPoint. 944func (afsrp AzureFileShareRecoveryPoint) AsAzureWorkloadRecoveryPoint() (*AzureWorkloadRecoveryPoint, bool) { 945 return nil, false 946} 947 948// AsBasicAzureWorkloadRecoveryPoint is the BasicRecoveryPoint implementation for AzureFileShareRecoveryPoint. 949func (afsrp AzureFileShareRecoveryPoint) AsBasicAzureWorkloadRecoveryPoint() (BasicAzureWorkloadRecoveryPoint, bool) { 950 return nil, false 951} 952 953// AsAzureWorkloadSAPHanaPointInTimeRecoveryPoint is the BasicRecoveryPoint implementation for AzureFileShareRecoveryPoint. 954func (afsrp AzureFileShareRecoveryPoint) AsAzureWorkloadSAPHanaPointInTimeRecoveryPoint() (*AzureWorkloadSAPHanaPointInTimeRecoveryPoint, bool) { 955 return nil, false 956} 957 958// AsAzureWorkloadSAPHanaRecoveryPoint is the BasicRecoveryPoint implementation for AzureFileShareRecoveryPoint. 959func (afsrp AzureFileShareRecoveryPoint) AsAzureWorkloadSAPHanaRecoveryPoint() (*AzureWorkloadSAPHanaRecoveryPoint, bool) { 960 return nil, false 961} 962 963// AsAzureWorkloadSQLPointInTimeRecoveryPoint is the BasicRecoveryPoint implementation for AzureFileShareRecoveryPoint. 964func (afsrp AzureFileShareRecoveryPoint) AsAzureWorkloadSQLPointInTimeRecoveryPoint() (*AzureWorkloadSQLPointInTimeRecoveryPoint, bool) { 965 return nil, false 966} 967 968// AsAzureWorkloadSQLRecoveryPoint is the BasicRecoveryPoint implementation for AzureFileShareRecoveryPoint. 969func (afsrp AzureFileShareRecoveryPoint) AsAzureWorkloadSQLRecoveryPoint() (*AzureWorkloadSQLRecoveryPoint, bool) { 970 return nil, false 971} 972 973// AsBasicAzureWorkloadSQLRecoveryPoint is the BasicRecoveryPoint implementation for AzureFileShareRecoveryPoint. 974func (afsrp AzureFileShareRecoveryPoint) AsBasicAzureWorkloadSQLRecoveryPoint() (BasicAzureWorkloadSQLRecoveryPoint, bool) { 975 return nil, false 976} 977 978// AsGenericRecoveryPoint is the BasicRecoveryPoint implementation for AzureFileShareRecoveryPoint. 979func (afsrp AzureFileShareRecoveryPoint) AsGenericRecoveryPoint() (*GenericRecoveryPoint, bool) { 980 return nil, false 981} 982 983// AsIaasVMRecoveryPoint is the BasicRecoveryPoint implementation for AzureFileShareRecoveryPoint. 984func (afsrp AzureFileShareRecoveryPoint) AsIaasVMRecoveryPoint() (*IaasVMRecoveryPoint, bool) { 985 return nil, false 986} 987 988// AsRecoveryPoint is the BasicRecoveryPoint implementation for AzureFileShareRecoveryPoint. 989func (afsrp AzureFileShareRecoveryPoint) AsRecoveryPoint() (*RecoveryPoint, bool) { 990 return nil, false 991} 992 993// AsBasicRecoveryPoint is the BasicRecoveryPoint implementation for AzureFileShareRecoveryPoint. 994func (afsrp AzureFileShareRecoveryPoint) AsBasicRecoveryPoint() (BasicRecoveryPoint, bool) { 995 return &afsrp, true 996} 997 998// AzureFileShareRestoreRequest azureFileShare Restore Request 999type AzureFileShareRestoreRequest struct { 1000 // RecoveryType - Type of this recovery. Possible values include: 'RecoveryTypeInvalid', 'RecoveryTypeOriginalLocation', 'RecoveryTypeAlternateLocation', 'RecoveryTypeRestoreDisks', 'RecoveryTypeOffline' 1001 RecoveryType RecoveryType `json:"recoveryType,omitempty"` 1002 // SourceResourceID - Source storage account ARM Id 1003 SourceResourceID *string `json:"sourceResourceId,omitempty"` 1004 // CopyOptions - Options to resolve copy conflicts. Possible values include: 'CopyOptionsInvalid', 'CopyOptionsCreateCopy', 'CopyOptionsSkip', 'CopyOptionsOverwrite', 'CopyOptionsFailOnConflict' 1005 CopyOptions CopyOptions `json:"copyOptions,omitempty"` 1006 // RestoreRequestType - Restore Type (FullShareRestore or ItemLevelRestore). Possible values include: 'RestoreRequestTypeInvalid', 'RestoreRequestTypeFullShareRestore', 'RestoreRequestTypeItemLevelRestore' 1007 RestoreRequestType RestoreRequestType `json:"restoreRequestType,omitempty"` 1008 // RestoreFileSpecs - List of Source Files/Folders(which need to recover) and TargetFolderPath details 1009 RestoreFileSpecs *[]RestoreFileSpecs `json:"restoreFileSpecs,omitempty"` 1010 // TargetDetails - Target File Share Details 1011 TargetDetails *TargetAFSRestoreInfo `json:"targetDetails,omitempty"` 1012 // ObjectType - Possible values include: 'ObjectTypeRestoreRequest', 'ObjectTypeAzureFileShareRestoreRequest', 'ObjectTypeAzureWorkloadPointInTimeRestoreRequest', 'ObjectTypeAzureWorkloadRestoreRequest', 'ObjectTypeAzureWorkloadSAPHanaPointInTimeRestoreRequest', 'ObjectTypeAzureWorkloadSAPHanaRestoreRequest', 'ObjectTypeAzureWorkloadSQLPointInTimeRestoreRequest', 'ObjectTypeAzureWorkloadSQLRestoreRequest', 'ObjectTypeIaasVMRestoreRequest' 1013 ObjectType ObjectTypeBasicRestoreRequest `json:"objectType,omitempty"` 1014} 1015 1016// MarshalJSON is the custom marshaler for AzureFileShareRestoreRequest. 1017func (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// AsAzureFileShareRestoreRequest is the BasicRestoreRequest implementation for AzureFileShareRestoreRequest. 1045func (afsrr AzureFileShareRestoreRequest) AsAzureFileShareRestoreRequest() (*AzureFileShareRestoreRequest, bool) { 1046 return &afsrr, true 1047} 1048 1049// AsAzureWorkloadPointInTimeRestoreRequest is the BasicRestoreRequest implementation for AzureFileShareRestoreRequest. 1050func (afsrr AzureFileShareRestoreRequest) AsAzureWorkloadPointInTimeRestoreRequest() (*AzureWorkloadPointInTimeRestoreRequest, bool) { 1051 return nil, false 1052} 1053 1054// AsAzureWorkloadRestoreRequest is the BasicRestoreRequest implementation for AzureFileShareRestoreRequest. 1055func (afsrr AzureFileShareRestoreRequest) AsAzureWorkloadRestoreRequest() (*AzureWorkloadRestoreRequest, bool) { 1056 return nil, false 1057} 1058 1059// AsBasicAzureWorkloadRestoreRequest is the BasicRestoreRequest implementation for AzureFileShareRestoreRequest. 1060func (afsrr AzureFileShareRestoreRequest) AsBasicAzureWorkloadRestoreRequest() (BasicAzureWorkloadRestoreRequest, bool) { 1061 return nil, false 1062} 1063 1064// AsAzureWorkloadSAPHanaPointInTimeRestoreRequest is the BasicRestoreRequest implementation for AzureFileShareRestoreRequest. 1065func (afsrr AzureFileShareRestoreRequest) AsAzureWorkloadSAPHanaPointInTimeRestoreRequest() (*AzureWorkloadSAPHanaPointInTimeRestoreRequest, bool) { 1066 return nil, false 1067} 1068 1069// AsAzureWorkloadSAPHanaRestoreRequest is the BasicRestoreRequest implementation for AzureFileShareRestoreRequest. 1070func (afsrr AzureFileShareRestoreRequest) AsAzureWorkloadSAPHanaRestoreRequest() (*AzureWorkloadSAPHanaRestoreRequest, bool) { 1071 return nil, false 1072} 1073 1074// AsBasicAzureWorkloadSAPHanaRestoreRequest is the BasicRestoreRequest implementation for AzureFileShareRestoreRequest. 1075func (afsrr AzureFileShareRestoreRequest) AsBasicAzureWorkloadSAPHanaRestoreRequest() (BasicAzureWorkloadSAPHanaRestoreRequest, bool) { 1076 return nil, false 1077} 1078 1079// AsAzureWorkloadSQLPointInTimeRestoreRequest is the BasicRestoreRequest implementation for AzureFileShareRestoreRequest. 1080func (afsrr AzureFileShareRestoreRequest) AsAzureWorkloadSQLPointInTimeRestoreRequest() (*AzureWorkloadSQLPointInTimeRestoreRequest, bool) { 1081 return nil, false 1082} 1083 1084// AsAzureWorkloadSQLRestoreRequest is the BasicRestoreRequest implementation for AzureFileShareRestoreRequest. 1085func (afsrr AzureFileShareRestoreRequest) AsAzureWorkloadSQLRestoreRequest() (*AzureWorkloadSQLRestoreRequest, bool) { 1086 return nil, false 1087} 1088 1089// AsBasicAzureWorkloadSQLRestoreRequest is the BasicRestoreRequest implementation for AzureFileShareRestoreRequest. 1090func (afsrr AzureFileShareRestoreRequest) AsBasicAzureWorkloadSQLRestoreRequest() (BasicAzureWorkloadSQLRestoreRequest, bool) { 1091 return nil, false 1092} 1093 1094// AsIaasVMRestoreRequest is the BasicRestoreRequest implementation for AzureFileShareRestoreRequest. 1095func (afsrr AzureFileShareRestoreRequest) AsIaasVMRestoreRequest() (*IaasVMRestoreRequest, bool) { 1096 return nil, false 1097} 1098 1099// AsRestoreRequest is the BasicRestoreRequest implementation for AzureFileShareRestoreRequest. 1100func (afsrr AzureFileShareRestoreRequest) AsRestoreRequest() (*RestoreRequest, bool) { 1101 return nil, false 1102} 1103 1104// AsBasicRestoreRequest is the BasicRestoreRequest implementation for AzureFileShareRestoreRequest. 1105func (afsrr AzureFileShareRestoreRequest) AsBasicRestoreRequest() (BasicRestoreRequest, bool) { 1106 return &afsrr, true 1107} 1108 1109// AzureIaaSClassicComputeVMContainer iaaS VM workload-specific backup item representing a classic virtual 1110// machine. 1111type AzureIaaSClassicComputeVMContainer struct { 1112 // VirtualMachineID - Fully qualified ARM url of the virtual machine represented by this Azure IaaS VM container. 1113 VirtualMachineID *string `json:"virtualMachineId,omitempty"` 1114 // VirtualMachineVersion - Specifies whether the container represents a Classic or an Azure Resource Manager VM. 1115 VirtualMachineVersion *string `json:"virtualMachineVersion,omitempty"` 1116 // ResourceGroup - Resource group name of Recovery Services Vault. 1117 ResourceGroup *string `json:"resourceGroup,omitempty"` 1118 // FriendlyName - Friendly name of the container. 1119 FriendlyName *string `json:"friendlyName,omitempty"` 1120 // BackupManagementType - Type of backup management for the container. Possible values include: 'ManagementTypeInvalid', 'ManagementTypeAzureIaasVM', 'ManagementTypeMAB', 'ManagementTypeDPM', 'ManagementTypeAzureBackupServer', 'ManagementTypeAzureSQL', 'ManagementTypeAzureStorage', 'ManagementTypeAzureWorkload', 'ManagementTypeDefaultBackup' 1121 BackupManagementType ManagementType `json:"backupManagementType,omitempty"` 1122 // RegistrationStatus - Status of registration of the container with the Recovery Services Vault. 1123 RegistrationStatus *string `json:"registrationStatus,omitempty"` 1124 // HealthStatus - Status of health of the container. 1125 HealthStatus *string `json:"healthStatus,omitempty"` 1126 // ContainerType - Possible values include: 'ContainerTypeProtectionContainer', 'ContainerTypeAzureBackupServerContainer1', 'ContainerTypeMicrosoftClassicComputevirtualMachines', 'ContainerTypeMicrosoftComputevirtualMachines', 'ContainerTypeSQLAGWorkLoadContainer1', 'ContainerTypeAzureSQLContainer1', 'ContainerTypeStorageContainer1', 'ContainerTypeVMAppContainer1', 'ContainerTypeAzureWorkloadContainer', 'ContainerTypeDPMContainer1', 'ContainerTypeGenericContainer1', 'ContainerTypeIaaSVMContainer', 'ContainerTypeWindows1' 1127 ContainerType ContainerTypeBasicProtectionContainer `json:"containerType,omitempty"` 1128} 1129 1130// MarshalJSON is the custom marshaler for AzureIaaSClassicComputeVMContainer. 1131func (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// AsAzureBackupServerContainer is the BasicProtectionContainer implementation for AzureIaaSClassicComputeVMContainer. 1162func (aisccvc AzureIaaSClassicComputeVMContainer) AsAzureBackupServerContainer() (*AzureBackupServerContainer, bool) { 1163 return nil, false 1164} 1165 1166// AsAzureIaaSClassicComputeVMContainer is the BasicProtectionContainer implementation for AzureIaaSClassicComputeVMContainer. 1167func (aisccvc AzureIaaSClassicComputeVMContainer) AsAzureIaaSClassicComputeVMContainer() (*AzureIaaSClassicComputeVMContainer, bool) { 1168 return &aisccvc, true 1169} 1170 1171// AsAzureIaaSComputeVMContainer is the BasicProtectionContainer implementation for AzureIaaSClassicComputeVMContainer. 1172func (aisccvc AzureIaaSClassicComputeVMContainer) AsAzureIaaSComputeVMContainer() (*AzureIaaSComputeVMContainer, bool) { 1173 return nil, false 1174} 1175 1176// AsAzureSQLAGWorkloadContainerProtectionContainer is the BasicProtectionContainer implementation for AzureIaaSClassicComputeVMContainer. 1177func (aisccvc AzureIaaSClassicComputeVMContainer) AsAzureSQLAGWorkloadContainerProtectionContainer() (*AzureSQLAGWorkloadContainerProtectionContainer, bool) { 1178 return nil, false 1179} 1180 1181// AsAzureSQLContainer is the BasicProtectionContainer implementation for AzureIaaSClassicComputeVMContainer. 1182func (aisccvc AzureIaaSClassicComputeVMContainer) AsAzureSQLContainer() (*AzureSQLContainer, bool) { 1183 return nil, false 1184} 1185 1186// AsAzureStorageContainer is the BasicProtectionContainer implementation for AzureIaaSClassicComputeVMContainer. 1187func (aisccvc AzureIaaSClassicComputeVMContainer) AsAzureStorageContainer() (*AzureStorageContainer, bool) { 1188 return nil, false 1189} 1190 1191// AsAzureVMAppContainerProtectionContainer is the BasicProtectionContainer implementation for AzureIaaSClassicComputeVMContainer. 1192func (aisccvc AzureIaaSClassicComputeVMContainer) AsAzureVMAppContainerProtectionContainer() (*AzureVMAppContainerProtectionContainer, bool) { 1193 return nil, false 1194} 1195 1196// AsAzureWorkloadContainer is the BasicProtectionContainer implementation for AzureIaaSClassicComputeVMContainer. 1197func (aisccvc AzureIaaSClassicComputeVMContainer) AsAzureWorkloadContainer() (*AzureWorkloadContainer, bool) { 1198 return nil, false 1199} 1200 1201// AsBasicAzureWorkloadContainer is the BasicProtectionContainer implementation for AzureIaaSClassicComputeVMContainer. 1202func (aisccvc AzureIaaSClassicComputeVMContainer) AsBasicAzureWorkloadContainer() (BasicAzureWorkloadContainer, bool) { 1203 return nil, false 1204} 1205 1206// AsDpmContainer is the BasicProtectionContainer implementation for AzureIaaSClassicComputeVMContainer. 1207func (aisccvc AzureIaaSClassicComputeVMContainer) AsDpmContainer() (*DpmContainer, bool) { 1208 return nil, false 1209} 1210 1211// AsBasicDpmContainer is the BasicProtectionContainer implementation for AzureIaaSClassicComputeVMContainer. 1212func (aisccvc AzureIaaSClassicComputeVMContainer) AsBasicDpmContainer() (BasicDpmContainer, bool) { 1213 return nil, false 1214} 1215 1216// AsGenericContainer is the BasicProtectionContainer implementation for AzureIaaSClassicComputeVMContainer. 1217func (aisccvc AzureIaaSClassicComputeVMContainer) AsGenericContainer() (*GenericContainer, bool) { 1218 return nil, false 1219} 1220 1221// AsIaaSVMContainer is the BasicProtectionContainer implementation for AzureIaaSClassicComputeVMContainer. 1222func (aisccvc AzureIaaSClassicComputeVMContainer) AsIaaSVMContainer() (*IaaSVMContainer, bool) { 1223 return nil, false 1224} 1225 1226// AsBasicIaaSVMContainer is the BasicProtectionContainer implementation for AzureIaaSClassicComputeVMContainer. 1227func (aisccvc AzureIaaSClassicComputeVMContainer) AsBasicIaaSVMContainer() (BasicIaaSVMContainer, bool) { 1228 return &aisccvc, true 1229} 1230 1231// AsMabContainer is the BasicProtectionContainer implementation for AzureIaaSClassicComputeVMContainer. 1232func (aisccvc AzureIaaSClassicComputeVMContainer) AsMabContainer() (*MabContainer, bool) { 1233 return nil, false 1234} 1235 1236// AsProtectionContainer is the BasicProtectionContainer implementation for AzureIaaSClassicComputeVMContainer. 1237func (aisccvc AzureIaaSClassicComputeVMContainer) AsProtectionContainer() (*ProtectionContainer, bool) { 1238 return nil, false 1239} 1240 1241// AsBasicProtectionContainer is the BasicProtectionContainer implementation for AzureIaaSClassicComputeVMContainer. 1242func (aisccvc AzureIaaSClassicComputeVMContainer) AsBasicProtectionContainer() (BasicProtectionContainer, bool) { 1243 return &aisccvc, true 1244} 1245 1246// AzureIaaSClassicComputeVMProtectableItem iaaS VM workload-specific backup item representing the Classic 1247// Compute VM. 1248type AzureIaaSClassicComputeVMProtectableItem struct { 1249 // VirtualMachineID - Fully qualified ARM ID of the virtual machine. 1250 VirtualMachineID *string `json:"virtualMachineId,omitempty"` 1251 // BackupManagementType - Type of backup management to backup an item. 1252 BackupManagementType *string `json:"backupManagementType,omitempty"` 1253 // WorkloadType - Type of workload for the backup management 1254 WorkloadType *string `json:"workloadType,omitempty"` 1255 // FriendlyName - Friendly name of the backup item. 1256 FriendlyName *string `json:"friendlyName,omitempty"` 1257 // ProtectionState - State of the back up item. Possible values include: 'ProtectionStatusInvalid', 'ProtectionStatusNotProtected', 'ProtectionStatusProtecting', 'ProtectionStatusProtected', 'ProtectionStatusProtectionFailed' 1258 ProtectionState ProtectionStatus `json:"protectionState,omitempty"` 1259 // ProtectableItemType - Possible values include: 'ProtectableItemTypeWorkloadProtectableItem', 'ProtectableItemTypeAzureFileShare', 'ProtectableItemTypeMicrosoftClassicComputevirtualMachines', 'ProtectableItemTypeMicrosoftComputevirtualMachines', 'ProtectableItemTypeAzureVMWorkloadProtectableItem', 'ProtectableItemTypeSAPAseSystem', 'ProtectableItemTypeSAPHanaDatabase', 'ProtectableItemTypeSAPHanaSystem', 'ProtectableItemTypeSQLAvailabilityGroupContainer', 'ProtectableItemTypeSQLDataBase', 'ProtectableItemTypeSQLInstance', 'ProtectableItemTypeIaaSVMProtectableItem' 1260 ProtectableItemType ProtectableItemType `json:"protectableItemType,omitempty"` 1261} 1262 1263// MarshalJSON is the custom marshaler for AzureIaaSClassicComputeVMProtectableItem. 1264func (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// AsAzureFileShareProtectableItem is the BasicWorkloadProtectableItem implementation for AzureIaaSClassicComputeVMProtectableItem. 1289func (aisccvpi AzureIaaSClassicComputeVMProtectableItem) AsAzureFileShareProtectableItem() (*AzureFileShareProtectableItem, bool) { 1290 return nil, false 1291} 1292 1293// AsAzureIaaSClassicComputeVMProtectableItem is the BasicWorkloadProtectableItem implementation for AzureIaaSClassicComputeVMProtectableItem. 1294func (aisccvpi AzureIaaSClassicComputeVMProtectableItem) AsAzureIaaSClassicComputeVMProtectableItem() (*AzureIaaSClassicComputeVMProtectableItem, bool) { 1295 return &aisccvpi, true 1296} 1297 1298// AsAzureIaaSComputeVMProtectableItem is the BasicWorkloadProtectableItem implementation for AzureIaaSClassicComputeVMProtectableItem. 1299func (aisccvpi AzureIaaSClassicComputeVMProtectableItem) AsAzureIaaSComputeVMProtectableItem() (*AzureIaaSComputeVMProtectableItem, bool) { 1300 return nil, false 1301} 1302 1303// AsAzureVMWorkloadProtectableItem is the BasicWorkloadProtectableItem implementation for AzureIaaSClassicComputeVMProtectableItem. 1304func (aisccvpi AzureIaaSClassicComputeVMProtectableItem) AsAzureVMWorkloadProtectableItem() (*AzureVMWorkloadProtectableItem, bool) { 1305 return nil, false 1306} 1307 1308// AsBasicAzureVMWorkloadProtectableItem is the BasicWorkloadProtectableItem implementation for AzureIaaSClassicComputeVMProtectableItem. 1309func (aisccvpi AzureIaaSClassicComputeVMProtectableItem) AsBasicAzureVMWorkloadProtectableItem() (BasicAzureVMWorkloadProtectableItem, bool) { 1310 return nil, false 1311} 1312 1313// AsAzureVMWorkloadSAPAseSystemProtectableItem is the BasicWorkloadProtectableItem implementation for AzureIaaSClassicComputeVMProtectableItem. 1314func (aisccvpi AzureIaaSClassicComputeVMProtectableItem) AsAzureVMWorkloadSAPAseSystemProtectableItem() (*AzureVMWorkloadSAPAseSystemProtectableItem, bool) { 1315 return nil, false 1316} 1317 1318// AsAzureVMWorkloadSAPHanaDatabaseProtectableItem is the BasicWorkloadProtectableItem implementation for AzureIaaSClassicComputeVMProtectableItem. 1319func (aisccvpi AzureIaaSClassicComputeVMProtectableItem) AsAzureVMWorkloadSAPHanaDatabaseProtectableItem() (*AzureVMWorkloadSAPHanaDatabaseProtectableItem, bool) { 1320 return nil, false 1321} 1322 1323// AsAzureVMWorkloadSAPHanaSystemProtectableItem is the BasicWorkloadProtectableItem implementation for AzureIaaSClassicComputeVMProtectableItem. 1324func (aisccvpi AzureIaaSClassicComputeVMProtectableItem) AsAzureVMWorkloadSAPHanaSystemProtectableItem() (*AzureVMWorkloadSAPHanaSystemProtectableItem, bool) { 1325 return nil, false 1326} 1327 1328// AsAzureVMWorkloadSQLAvailabilityGroupProtectableItem is the BasicWorkloadProtectableItem implementation for AzureIaaSClassicComputeVMProtectableItem. 1329func (aisccvpi AzureIaaSClassicComputeVMProtectableItem) AsAzureVMWorkloadSQLAvailabilityGroupProtectableItem() (*AzureVMWorkloadSQLAvailabilityGroupProtectableItem, bool) { 1330 return nil, false 1331} 1332 1333// AsAzureVMWorkloadSQLDatabaseProtectableItem is the BasicWorkloadProtectableItem implementation for AzureIaaSClassicComputeVMProtectableItem. 1334func (aisccvpi AzureIaaSClassicComputeVMProtectableItem) AsAzureVMWorkloadSQLDatabaseProtectableItem() (*AzureVMWorkloadSQLDatabaseProtectableItem, bool) { 1335 return nil, false 1336} 1337 1338// AsAzureVMWorkloadSQLInstanceProtectableItem is the BasicWorkloadProtectableItem implementation for AzureIaaSClassicComputeVMProtectableItem. 1339func (aisccvpi AzureIaaSClassicComputeVMProtectableItem) AsAzureVMWorkloadSQLInstanceProtectableItem() (*AzureVMWorkloadSQLInstanceProtectableItem, bool) { 1340 return nil, false 1341} 1342 1343// AsIaaSVMProtectableItem is the BasicWorkloadProtectableItem implementation for AzureIaaSClassicComputeVMProtectableItem. 1344func (aisccvpi AzureIaaSClassicComputeVMProtectableItem) AsIaaSVMProtectableItem() (*IaaSVMProtectableItem, bool) { 1345 return nil, false 1346} 1347 1348// AsBasicIaaSVMProtectableItem is the BasicWorkloadProtectableItem implementation for AzureIaaSClassicComputeVMProtectableItem. 1349func (aisccvpi AzureIaaSClassicComputeVMProtectableItem) AsBasicIaaSVMProtectableItem() (BasicIaaSVMProtectableItem, bool) { 1350 return &aisccvpi, true 1351} 1352 1353// AsWorkloadProtectableItem is the BasicWorkloadProtectableItem implementation for AzureIaaSClassicComputeVMProtectableItem. 1354func (aisccvpi AzureIaaSClassicComputeVMProtectableItem) AsWorkloadProtectableItem() (*WorkloadProtectableItem, bool) { 1355 return nil, false 1356} 1357 1358// AsBasicWorkloadProtectableItem is the BasicWorkloadProtectableItem implementation for AzureIaaSClassicComputeVMProtectableItem. 1359func (aisccvpi AzureIaaSClassicComputeVMProtectableItem) AsBasicWorkloadProtectableItem() (BasicWorkloadProtectableItem, bool) { 1360 return &aisccvpi, true 1361} 1362 1363// AzureIaaSClassicComputeVMProtectedItem iaaS VM workload-specific backup item representing the Classic 1364// Compute VM. 1365type AzureIaaSClassicComputeVMProtectedItem struct { 1366 // FriendlyName - Friendly name of the VM represented by this backup item. 1367 FriendlyName *string `json:"friendlyName,omitempty"` 1368 // VirtualMachineID - Fully qualified ARM ID of the virtual machine represented by this item. 1369 VirtualMachineID *string `json:"virtualMachineId,omitempty"` 1370 // ProtectionStatus - Backup status of this backup item. 1371 ProtectionStatus *string `json:"protectionStatus,omitempty"` 1372 // ProtectionState - Backup state of this backup item. Possible values include: 'ProtectionStateInvalid', 'ProtectionStateIRPending', 'ProtectionStateProtected', 'ProtectionStateProtectionError', 'ProtectionStateProtectionStopped', 'ProtectionStateProtectionPaused' 1373 ProtectionState ProtectionState `json:"protectionState,omitempty"` 1374 // HealthStatus - Health status of protected item. Possible values include: 'HealthStatusPassed', 'HealthStatusActionRequired', 'HealthStatusActionSuggested', 'HealthStatusInvalid' 1375 HealthStatus HealthStatus `json:"healthStatus,omitempty"` 1376 // HealthDetails - Health details on this backup item. 1377 HealthDetails *[]AzureIaaSVMHealthDetails `json:"healthDetails,omitempty"` 1378 // KpisHealths - Health details of different KPIs 1379 KpisHealths map[string]*KPIResourceHealthDetails `json:"kpisHealths"` 1380 // LastBackupStatus - Last backup operation status. 1381 LastBackupStatus *string `json:"lastBackupStatus,omitempty"` 1382 // LastBackupTime - Timestamp of the last backup operation on this backup item. 1383 LastBackupTime *date.Time `json:"lastBackupTime,omitempty"` 1384 // ProtectedItemDataID - Data ID of the protected item. 1385 ProtectedItemDataID *string `json:"protectedItemDataId,omitempty"` 1386 // ExtendedInfo - Additional information for this backup item. 1387 ExtendedInfo *AzureIaaSVMProtectedItemExtendedInfo `json:"extendedInfo,omitempty"` 1388 ExtendedProperties *ExtendedProperties `json:"extendedProperties,omitempty"` 1389 // BackupManagementType - Type of backup management for the backed up item. Possible values include: 'ManagementTypeInvalid', 'ManagementTypeAzureIaasVM', 'ManagementTypeMAB', 'ManagementTypeDPM', 'ManagementTypeAzureBackupServer', 'ManagementTypeAzureSQL', 'ManagementTypeAzureStorage', 'ManagementTypeAzureWorkload', 'ManagementTypeDefaultBackup' 1390 BackupManagementType ManagementType `json:"backupManagementType,omitempty"` 1391 // WorkloadType - Type of workload this item represents. Possible values include: 'DataSourceTypeInvalid', 'DataSourceTypeVM', 'DataSourceTypeFileFolder', 'DataSourceTypeAzureSQLDb', 'DataSourceTypeSQLDB', 'DataSourceTypeExchange', 'DataSourceTypeSharepoint', 'DataSourceTypeVMwareVM', 'DataSourceTypeSystemState', 'DataSourceTypeClient', 'DataSourceTypeGenericDataSource', 'DataSourceTypeSQLDataBase', 'DataSourceTypeAzureFileShare', 'DataSourceTypeSAPHanaDatabase', 'DataSourceTypeSAPAseDatabase' 1392 WorkloadType DataSourceType `json:"workloadType,omitempty"` 1393 // ContainerName - Unique name of container 1394 ContainerName *string `json:"containerName,omitempty"` 1395 // SourceResourceID - ARM ID of the resource to be backed up. 1396 SourceResourceID *string `json:"sourceResourceId,omitempty"` 1397 // PolicyID - ID of the backup policy with which this item is backed up. 1398 PolicyID *string `json:"policyId,omitempty"` 1399 // LastRecoveryPoint - Timestamp when the last (latest) backup copy was created for this backup item. 1400 LastRecoveryPoint *date.Time `json:"lastRecoveryPoint,omitempty"` 1401 // BackupSetName - Name of the backup set the backup item belongs to 1402 BackupSetName *string `json:"backupSetName,omitempty"` 1403 // CreateMode - Create mode to indicate recovery of existing soft deleted data source or creation of new data source. Possible values include: 'CreateModeInvalid', 'CreateModeDefault', 'CreateModeRecover' 1404 CreateMode CreateMode `json:"createMode,omitempty"` 1405 // DeferredDeleteTimeInUTC - Time for deferred deletion in UTC 1406 DeferredDeleteTimeInUTC *date.Time `json:"deferredDeleteTimeInUTC,omitempty"` 1407 // IsScheduledForDeferredDelete - Flag to identify whether the DS is scheduled for deferred delete 1408 IsScheduledForDeferredDelete *bool `json:"isScheduledForDeferredDelete,omitempty"` 1409 // DeferredDeleteTimeRemaining - Time remaining before the DS marked for deferred delete is permanently deleted 1410 DeferredDeleteTimeRemaining *string `json:"deferredDeleteTimeRemaining,omitempty"` 1411 // IsDeferredDeleteScheduleUpcoming - Flag to identify whether the deferred deleted DS is to be purged soon 1412 IsDeferredDeleteScheduleUpcoming *bool `json:"isDeferredDeleteScheduleUpcoming,omitempty"` 1413 // IsRehydrate - Flag to identify that deferred deleted DS is to be moved into Pause state 1414 IsRehydrate *bool `json:"isRehydrate,omitempty"` 1415 // ProtectedItemType - Possible values include: 'ProtectedItemTypeProtectedItem', 'ProtectedItemTypeAzureFileShareProtectedItem', 'ProtectedItemTypeMicrosoftClassicComputevirtualMachines', 'ProtectedItemTypeMicrosoftComputevirtualMachines', 'ProtectedItemTypeAzureIaaSVMProtectedItem', 'ProtectedItemTypeMicrosoftSqlserversdatabases', 'ProtectedItemTypeAzureVMWorkloadProtectedItem', 'ProtectedItemTypeAzureVMWorkloadSAPAseDatabase', 'ProtectedItemTypeAzureVMWorkloadSAPHanaDatabase', 'ProtectedItemTypeAzureVMWorkloadSQLDatabase', 'ProtectedItemTypeDPMProtectedItem', 'ProtectedItemTypeGenericProtectedItem', 'ProtectedItemTypeMabFileFolderProtectedItem' 1416 ProtectedItemType ProtectedItemType `json:"protectedItemType,omitempty"` 1417} 1418 1419// MarshalJSON is the custom marshaler for AzureIaaSClassicComputeVMProtectedItem. 1420func (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// AsAzureFileshareProtectedItem is the BasicProtectedItem implementation for AzureIaaSClassicComputeVMProtectedItem. 1505func (aisccvpi AzureIaaSClassicComputeVMProtectedItem) AsAzureFileshareProtectedItem() (*AzureFileshareProtectedItem, bool) { 1506 return nil, false 1507} 1508 1509// AsAzureIaaSClassicComputeVMProtectedItem is the BasicProtectedItem implementation for AzureIaaSClassicComputeVMProtectedItem. 1510func (aisccvpi AzureIaaSClassicComputeVMProtectedItem) AsAzureIaaSClassicComputeVMProtectedItem() (*AzureIaaSClassicComputeVMProtectedItem, bool) { 1511 return &aisccvpi, true 1512} 1513 1514// AsAzureIaaSComputeVMProtectedItem is the BasicProtectedItem implementation for AzureIaaSClassicComputeVMProtectedItem. 1515func (aisccvpi AzureIaaSClassicComputeVMProtectedItem) AsAzureIaaSComputeVMProtectedItem() (*AzureIaaSComputeVMProtectedItem, bool) { 1516 return nil, false 1517} 1518 1519// AsAzureIaaSVMProtectedItem is the BasicProtectedItem implementation for AzureIaaSClassicComputeVMProtectedItem. 1520func (aisccvpi AzureIaaSClassicComputeVMProtectedItem) AsAzureIaaSVMProtectedItem() (*AzureIaaSVMProtectedItem, bool) { 1521 return nil, false 1522} 1523 1524// AsBasicAzureIaaSVMProtectedItem is the BasicProtectedItem implementation for AzureIaaSClassicComputeVMProtectedItem. 1525func (aisccvpi AzureIaaSClassicComputeVMProtectedItem) AsBasicAzureIaaSVMProtectedItem() (BasicAzureIaaSVMProtectedItem, bool) { 1526 return &aisccvpi, true 1527} 1528 1529// AsAzureSQLProtectedItem is the BasicProtectedItem implementation for AzureIaaSClassicComputeVMProtectedItem. 1530func (aisccvpi AzureIaaSClassicComputeVMProtectedItem) AsAzureSQLProtectedItem() (*AzureSQLProtectedItem, bool) { 1531 return nil, false 1532} 1533 1534// AsAzureVMWorkloadProtectedItem is the BasicProtectedItem implementation for AzureIaaSClassicComputeVMProtectedItem. 1535func (aisccvpi AzureIaaSClassicComputeVMProtectedItem) AsAzureVMWorkloadProtectedItem() (*AzureVMWorkloadProtectedItem, bool) { 1536 return nil, false 1537} 1538 1539// AsBasicAzureVMWorkloadProtectedItem is the BasicProtectedItem implementation for AzureIaaSClassicComputeVMProtectedItem. 1540func (aisccvpi AzureIaaSClassicComputeVMProtectedItem) AsBasicAzureVMWorkloadProtectedItem() (BasicAzureVMWorkloadProtectedItem, bool) { 1541 return nil, false 1542} 1543 1544// AsAzureVMWorkloadSAPAseDatabaseProtectedItem is the BasicProtectedItem implementation for AzureIaaSClassicComputeVMProtectedItem. 1545func (aisccvpi AzureIaaSClassicComputeVMProtectedItem) AsAzureVMWorkloadSAPAseDatabaseProtectedItem() (*AzureVMWorkloadSAPAseDatabaseProtectedItem, bool) { 1546 return nil, false 1547} 1548 1549// AsAzureVMWorkloadSAPHanaDatabaseProtectedItem is the BasicProtectedItem implementation for AzureIaaSClassicComputeVMProtectedItem. 1550func (aisccvpi AzureIaaSClassicComputeVMProtectedItem) AsAzureVMWorkloadSAPHanaDatabaseProtectedItem() (*AzureVMWorkloadSAPHanaDatabaseProtectedItem, bool) { 1551 return nil, false 1552} 1553 1554// AsAzureVMWorkloadSQLDatabaseProtectedItem is the BasicProtectedItem implementation for AzureIaaSClassicComputeVMProtectedItem. 1555func (aisccvpi AzureIaaSClassicComputeVMProtectedItem) AsAzureVMWorkloadSQLDatabaseProtectedItem() (*AzureVMWorkloadSQLDatabaseProtectedItem, bool) { 1556 return nil, false 1557} 1558 1559// AsDPMProtectedItem is the BasicProtectedItem implementation for AzureIaaSClassicComputeVMProtectedItem. 1560func (aisccvpi AzureIaaSClassicComputeVMProtectedItem) AsDPMProtectedItem() (*DPMProtectedItem, bool) { 1561 return nil, false 1562} 1563 1564// AsGenericProtectedItem is the BasicProtectedItem implementation for AzureIaaSClassicComputeVMProtectedItem. 1565func (aisccvpi AzureIaaSClassicComputeVMProtectedItem) AsGenericProtectedItem() (*GenericProtectedItem, bool) { 1566 return nil, false 1567} 1568 1569// AsMabFileFolderProtectedItem is the BasicProtectedItem implementation for AzureIaaSClassicComputeVMProtectedItem. 1570func (aisccvpi AzureIaaSClassicComputeVMProtectedItem) AsMabFileFolderProtectedItem() (*MabFileFolderProtectedItem, bool) { 1571 return nil, false 1572} 1573 1574// AsProtectedItem is the BasicProtectedItem implementation for AzureIaaSClassicComputeVMProtectedItem. 1575func (aisccvpi AzureIaaSClassicComputeVMProtectedItem) AsProtectedItem() (*ProtectedItem, bool) { 1576 return nil, false 1577} 1578 1579// AsBasicProtectedItem is the BasicProtectedItem implementation for AzureIaaSClassicComputeVMProtectedItem. 1580func (aisccvpi AzureIaaSClassicComputeVMProtectedItem) AsBasicProtectedItem() (BasicProtectedItem, bool) { 1581 return &aisccvpi, true 1582} 1583 1584// AzureIaaSComputeVMContainer iaaS VM workload-specific backup item representing an Azure Resource Manager 1585// virtual machine. 1586type AzureIaaSComputeVMContainer struct { 1587 // VirtualMachineID - Fully qualified ARM url of the virtual machine represented by this Azure IaaS VM container. 1588 VirtualMachineID *string `json:"virtualMachineId,omitempty"` 1589 // VirtualMachineVersion - Specifies whether the container represents a Classic or an Azure Resource Manager VM. 1590 VirtualMachineVersion *string `json:"virtualMachineVersion,omitempty"` 1591 // ResourceGroup - Resource group name of Recovery Services Vault. 1592 ResourceGroup *string `json:"resourceGroup,omitempty"` 1593 // FriendlyName - Friendly name of the container. 1594 FriendlyName *string `json:"friendlyName,omitempty"` 1595 // BackupManagementType - Type of backup management for the container. Possible values include: 'ManagementTypeInvalid', 'ManagementTypeAzureIaasVM', 'ManagementTypeMAB', 'ManagementTypeDPM', 'ManagementTypeAzureBackupServer', 'ManagementTypeAzureSQL', 'ManagementTypeAzureStorage', 'ManagementTypeAzureWorkload', 'ManagementTypeDefaultBackup' 1596 BackupManagementType ManagementType `json:"backupManagementType,omitempty"` 1597 // RegistrationStatus - Status of registration of the container with the Recovery Services Vault. 1598 RegistrationStatus *string `json:"registrationStatus,omitempty"` 1599 // HealthStatus - Status of health of the container. 1600 HealthStatus *string `json:"healthStatus,omitempty"` 1601 // ContainerType - Possible values include: 'ContainerTypeProtectionContainer', 'ContainerTypeAzureBackupServerContainer1', 'ContainerTypeMicrosoftClassicComputevirtualMachines', 'ContainerTypeMicrosoftComputevirtualMachines', 'ContainerTypeSQLAGWorkLoadContainer1', 'ContainerTypeAzureSQLContainer1', 'ContainerTypeStorageContainer1', 'ContainerTypeVMAppContainer1', 'ContainerTypeAzureWorkloadContainer', 'ContainerTypeDPMContainer1', 'ContainerTypeGenericContainer1', 'ContainerTypeIaaSVMContainer', 'ContainerTypeWindows1' 1602 ContainerType ContainerTypeBasicProtectionContainer `json:"containerType,omitempty"` 1603} 1604 1605// MarshalJSON is the custom marshaler for AzureIaaSComputeVMContainer. 1606func (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// AsAzureBackupServerContainer is the BasicProtectionContainer implementation for AzureIaaSComputeVMContainer. 1637func (aiscvc AzureIaaSComputeVMContainer) AsAzureBackupServerContainer() (*AzureBackupServerContainer, bool) { 1638 return nil, false 1639} 1640 1641// AsAzureIaaSClassicComputeVMContainer is the BasicProtectionContainer implementation for AzureIaaSComputeVMContainer. 1642func (aiscvc AzureIaaSComputeVMContainer) AsAzureIaaSClassicComputeVMContainer() (*AzureIaaSClassicComputeVMContainer, bool) { 1643 return nil, false 1644} 1645 1646// AsAzureIaaSComputeVMContainer is the BasicProtectionContainer implementation for AzureIaaSComputeVMContainer. 1647func (aiscvc AzureIaaSComputeVMContainer) AsAzureIaaSComputeVMContainer() (*AzureIaaSComputeVMContainer, bool) { 1648 return &aiscvc, true 1649} 1650 1651// AsAzureSQLAGWorkloadContainerProtectionContainer is the BasicProtectionContainer implementation for AzureIaaSComputeVMContainer. 1652func (aiscvc AzureIaaSComputeVMContainer) AsAzureSQLAGWorkloadContainerProtectionContainer() (*AzureSQLAGWorkloadContainerProtectionContainer, bool) { 1653 return nil, false 1654} 1655 1656// AsAzureSQLContainer is the BasicProtectionContainer implementation for AzureIaaSComputeVMContainer. 1657func (aiscvc AzureIaaSComputeVMContainer) AsAzureSQLContainer() (*AzureSQLContainer, bool) { 1658 return nil, false 1659} 1660 1661// AsAzureStorageContainer is the BasicProtectionContainer implementation for AzureIaaSComputeVMContainer. 1662func (aiscvc AzureIaaSComputeVMContainer) AsAzureStorageContainer() (*AzureStorageContainer, bool) { 1663 return nil, false 1664} 1665 1666// AsAzureVMAppContainerProtectionContainer is the BasicProtectionContainer implementation for AzureIaaSComputeVMContainer. 1667func (aiscvc AzureIaaSComputeVMContainer) AsAzureVMAppContainerProtectionContainer() (*AzureVMAppContainerProtectionContainer, bool) { 1668 return nil, false 1669} 1670 1671// AsAzureWorkloadContainer is the BasicProtectionContainer implementation for AzureIaaSComputeVMContainer. 1672func (aiscvc AzureIaaSComputeVMContainer) AsAzureWorkloadContainer() (*AzureWorkloadContainer, bool) { 1673 return nil, false 1674} 1675 1676// AsBasicAzureWorkloadContainer is the BasicProtectionContainer implementation for AzureIaaSComputeVMContainer. 1677func (aiscvc AzureIaaSComputeVMContainer) AsBasicAzureWorkloadContainer() (BasicAzureWorkloadContainer, bool) { 1678 return nil, false 1679} 1680 1681// AsDpmContainer is the BasicProtectionContainer implementation for AzureIaaSComputeVMContainer. 1682func (aiscvc AzureIaaSComputeVMContainer) AsDpmContainer() (*DpmContainer, bool) { 1683 return nil, false 1684} 1685 1686// AsBasicDpmContainer is the BasicProtectionContainer implementation for AzureIaaSComputeVMContainer. 1687func (aiscvc AzureIaaSComputeVMContainer) AsBasicDpmContainer() (BasicDpmContainer, bool) { 1688 return nil, false 1689} 1690 1691// AsGenericContainer is the BasicProtectionContainer implementation for AzureIaaSComputeVMContainer. 1692func (aiscvc AzureIaaSComputeVMContainer) AsGenericContainer() (*GenericContainer, bool) { 1693 return nil, false 1694} 1695 1696// AsIaaSVMContainer is the BasicProtectionContainer implementation for AzureIaaSComputeVMContainer. 1697func (aiscvc AzureIaaSComputeVMContainer) AsIaaSVMContainer() (*IaaSVMContainer, bool) { 1698 return nil, false 1699} 1700 1701// AsBasicIaaSVMContainer is the BasicProtectionContainer implementation for AzureIaaSComputeVMContainer. 1702func (aiscvc AzureIaaSComputeVMContainer) AsBasicIaaSVMContainer() (BasicIaaSVMContainer, bool) { 1703 return &aiscvc, true 1704} 1705 1706// AsMabContainer is the BasicProtectionContainer implementation for AzureIaaSComputeVMContainer. 1707func (aiscvc AzureIaaSComputeVMContainer) AsMabContainer() (*MabContainer, bool) { 1708 return nil, false 1709} 1710 1711// AsProtectionContainer is the BasicProtectionContainer implementation for AzureIaaSComputeVMContainer. 1712func (aiscvc AzureIaaSComputeVMContainer) AsProtectionContainer() (*ProtectionContainer, bool) { 1713 return nil, false 1714} 1715 1716// AsBasicProtectionContainer is the BasicProtectionContainer implementation for AzureIaaSComputeVMContainer. 1717func (aiscvc AzureIaaSComputeVMContainer) AsBasicProtectionContainer() (BasicProtectionContainer, bool) { 1718 return &aiscvc, true 1719} 1720 1721// AzureIaaSComputeVMProtectableItem iaaS VM workload-specific backup item representing the Azure Resource 1722// Manager VM. 1723type AzureIaaSComputeVMProtectableItem struct { 1724 // VirtualMachineID - Fully qualified ARM ID of the virtual machine. 1725 VirtualMachineID *string `json:"virtualMachineId,omitempty"` 1726 // BackupManagementType - Type of backup management to backup an item. 1727 BackupManagementType *string `json:"backupManagementType,omitempty"` 1728 // WorkloadType - Type of workload for the backup management 1729 WorkloadType *string `json:"workloadType,omitempty"` 1730 // FriendlyName - Friendly name of the backup item. 1731 FriendlyName *string `json:"friendlyName,omitempty"` 1732 // ProtectionState - State of the back up item. Possible values include: 'ProtectionStatusInvalid', 'ProtectionStatusNotProtected', 'ProtectionStatusProtecting', 'ProtectionStatusProtected', 'ProtectionStatusProtectionFailed' 1733 ProtectionState ProtectionStatus `json:"protectionState,omitempty"` 1734 // ProtectableItemType - Possible values include: 'ProtectableItemTypeWorkloadProtectableItem', 'ProtectableItemTypeAzureFileShare', 'ProtectableItemTypeMicrosoftClassicComputevirtualMachines', 'ProtectableItemTypeMicrosoftComputevirtualMachines', 'ProtectableItemTypeAzureVMWorkloadProtectableItem', 'ProtectableItemTypeSAPAseSystem', 'ProtectableItemTypeSAPHanaDatabase', 'ProtectableItemTypeSAPHanaSystem', 'ProtectableItemTypeSQLAvailabilityGroupContainer', 'ProtectableItemTypeSQLDataBase', 'ProtectableItemTypeSQLInstance', 'ProtectableItemTypeIaaSVMProtectableItem' 1735 ProtectableItemType ProtectableItemType `json:"protectableItemType,omitempty"` 1736} 1737 1738// MarshalJSON is the custom marshaler for AzureIaaSComputeVMProtectableItem. 1739func (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// AsAzureFileShareProtectableItem is the BasicWorkloadProtectableItem implementation for AzureIaaSComputeVMProtectableItem. 1764func (aiscvpi AzureIaaSComputeVMProtectableItem) AsAzureFileShareProtectableItem() (*AzureFileShareProtectableItem, bool) { 1765 return nil, false 1766} 1767 1768// AsAzureIaaSClassicComputeVMProtectableItem is the BasicWorkloadProtectableItem implementation for AzureIaaSComputeVMProtectableItem. 1769func (aiscvpi AzureIaaSComputeVMProtectableItem) AsAzureIaaSClassicComputeVMProtectableItem() (*AzureIaaSClassicComputeVMProtectableItem, bool) { 1770 return nil, false 1771} 1772 1773// AsAzureIaaSComputeVMProtectableItem is the BasicWorkloadProtectableItem implementation for AzureIaaSComputeVMProtectableItem. 1774func (aiscvpi AzureIaaSComputeVMProtectableItem) AsAzureIaaSComputeVMProtectableItem() (*AzureIaaSComputeVMProtectableItem, bool) { 1775 return &aiscvpi, true 1776} 1777 1778// AsAzureVMWorkloadProtectableItem is the BasicWorkloadProtectableItem implementation for AzureIaaSComputeVMProtectableItem. 1779func (aiscvpi AzureIaaSComputeVMProtectableItem) AsAzureVMWorkloadProtectableItem() (*AzureVMWorkloadProtectableItem, bool) { 1780 return nil, false 1781} 1782 1783// AsBasicAzureVMWorkloadProtectableItem is the BasicWorkloadProtectableItem implementation for AzureIaaSComputeVMProtectableItem. 1784func (aiscvpi AzureIaaSComputeVMProtectableItem) AsBasicAzureVMWorkloadProtectableItem() (BasicAzureVMWorkloadProtectableItem, bool) { 1785 return nil, false 1786} 1787 1788// AsAzureVMWorkloadSAPAseSystemProtectableItem is the BasicWorkloadProtectableItem implementation for AzureIaaSComputeVMProtectableItem. 1789func (aiscvpi AzureIaaSComputeVMProtectableItem) AsAzureVMWorkloadSAPAseSystemProtectableItem() (*AzureVMWorkloadSAPAseSystemProtectableItem, bool) { 1790 return nil, false 1791} 1792 1793// AsAzureVMWorkloadSAPHanaDatabaseProtectableItem is the BasicWorkloadProtectableItem implementation for AzureIaaSComputeVMProtectableItem. 1794func (aiscvpi AzureIaaSComputeVMProtectableItem) AsAzureVMWorkloadSAPHanaDatabaseProtectableItem() (*AzureVMWorkloadSAPHanaDatabaseProtectableItem, bool) { 1795 return nil, false 1796} 1797 1798// AsAzureVMWorkloadSAPHanaSystemProtectableItem is the BasicWorkloadProtectableItem implementation for AzureIaaSComputeVMProtectableItem. 1799func (aiscvpi AzureIaaSComputeVMProtectableItem) AsAzureVMWorkloadSAPHanaSystemProtectableItem() (*AzureVMWorkloadSAPHanaSystemProtectableItem, bool) { 1800 return nil, false 1801} 1802 1803// AsAzureVMWorkloadSQLAvailabilityGroupProtectableItem is the BasicWorkloadProtectableItem implementation for AzureIaaSComputeVMProtectableItem. 1804func (aiscvpi AzureIaaSComputeVMProtectableItem) AsAzureVMWorkloadSQLAvailabilityGroupProtectableItem() (*AzureVMWorkloadSQLAvailabilityGroupProtectableItem, bool) { 1805 return nil, false 1806} 1807 1808// AsAzureVMWorkloadSQLDatabaseProtectableItem is the BasicWorkloadProtectableItem implementation for AzureIaaSComputeVMProtectableItem. 1809func (aiscvpi AzureIaaSComputeVMProtectableItem) AsAzureVMWorkloadSQLDatabaseProtectableItem() (*AzureVMWorkloadSQLDatabaseProtectableItem, bool) { 1810 return nil, false 1811} 1812 1813// AsAzureVMWorkloadSQLInstanceProtectableItem is the BasicWorkloadProtectableItem implementation for AzureIaaSComputeVMProtectableItem. 1814func (aiscvpi AzureIaaSComputeVMProtectableItem) AsAzureVMWorkloadSQLInstanceProtectableItem() (*AzureVMWorkloadSQLInstanceProtectableItem, bool) { 1815 return nil, false 1816} 1817 1818// AsIaaSVMProtectableItem is the BasicWorkloadProtectableItem implementation for AzureIaaSComputeVMProtectableItem. 1819func (aiscvpi AzureIaaSComputeVMProtectableItem) AsIaaSVMProtectableItem() (*IaaSVMProtectableItem, bool) { 1820 return nil, false 1821} 1822 1823// AsBasicIaaSVMProtectableItem is the BasicWorkloadProtectableItem implementation for AzureIaaSComputeVMProtectableItem. 1824func (aiscvpi AzureIaaSComputeVMProtectableItem) AsBasicIaaSVMProtectableItem() (BasicIaaSVMProtectableItem, bool) { 1825 return &aiscvpi, true 1826} 1827 1828// AsWorkloadProtectableItem is the BasicWorkloadProtectableItem implementation for AzureIaaSComputeVMProtectableItem. 1829func (aiscvpi AzureIaaSComputeVMProtectableItem) AsWorkloadProtectableItem() (*WorkloadProtectableItem, bool) { 1830 return nil, false 1831} 1832 1833// AsBasicWorkloadProtectableItem is the BasicWorkloadProtectableItem implementation for AzureIaaSComputeVMProtectableItem. 1834func (aiscvpi AzureIaaSComputeVMProtectableItem) AsBasicWorkloadProtectableItem() (BasicWorkloadProtectableItem, bool) { 1835 return &aiscvpi, true 1836} 1837 1838// AzureIaaSComputeVMProtectedItem iaaS VM workload-specific backup item representing the Azure Resource 1839// Manager VM. 1840type AzureIaaSComputeVMProtectedItem struct { 1841 // FriendlyName - Friendly name of the VM represented by this backup item. 1842 FriendlyName *string `json:"friendlyName,omitempty"` 1843 // VirtualMachineID - Fully qualified ARM ID of the virtual machine represented by this item. 1844 VirtualMachineID *string `json:"virtualMachineId,omitempty"` 1845 // ProtectionStatus - Backup status of this backup item. 1846 ProtectionStatus *string `json:"protectionStatus,omitempty"` 1847 // ProtectionState - Backup state of this backup item. Possible values include: 'ProtectionStateInvalid', 'ProtectionStateIRPending', 'ProtectionStateProtected', 'ProtectionStateProtectionError', 'ProtectionStateProtectionStopped', 'ProtectionStateProtectionPaused' 1848 ProtectionState ProtectionState `json:"protectionState,omitempty"` 1849 // HealthStatus - Health status of protected item. Possible values include: 'HealthStatusPassed', 'HealthStatusActionRequired', 'HealthStatusActionSuggested', 'HealthStatusInvalid' 1850 HealthStatus HealthStatus `json:"healthStatus,omitempty"` 1851 // HealthDetails - Health details on this backup item. 1852 HealthDetails *[]AzureIaaSVMHealthDetails `json:"healthDetails,omitempty"` 1853 // KpisHealths - Health details of different KPIs 1854 KpisHealths map[string]*KPIResourceHealthDetails `json:"kpisHealths"` 1855 // LastBackupStatus - Last backup operation status. 1856 LastBackupStatus *string `json:"lastBackupStatus,omitempty"` 1857 // LastBackupTime - Timestamp of the last backup operation on this backup item. 1858 LastBackupTime *date.Time `json:"lastBackupTime,omitempty"` 1859 // ProtectedItemDataID - Data ID of the protected item. 1860 ProtectedItemDataID *string `json:"protectedItemDataId,omitempty"` 1861 // ExtendedInfo - Additional information for this backup item. 1862 ExtendedInfo *AzureIaaSVMProtectedItemExtendedInfo `json:"extendedInfo,omitempty"` 1863 ExtendedProperties *ExtendedProperties `json:"extendedProperties,omitempty"` 1864 // BackupManagementType - Type of backup management for the backed up item. Possible values include: 'ManagementTypeInvalid', 'ManagementTypeAzureIaasVM', 'ManagementTypeMAB', 'ManagementTypeDPM', 'ManagementTypeAzureBackupServer', 'ManagementTypeAzureSQL', 'ManagementTypeAzureStorage', 'ManagementTypeAzureWorkload', 'ManagementTypeDefaultBackup' 1865 BackupManagementType ManagementType `json:"backupManagementType,omitempty"` 1866 // WorkloadType - Type of workload this item represents. Possible values include: 'DataSourceTypeInvalid', 'DataSourceTypeVM', 'DataSourceTypeFileFolder', 'DataSourceTypeAzureSQLDb', 'DataSourceTypeSQLDB', 'DataSourceTypeExchange', 'DataSourceTypeSharepoint', 'DataSourceTypeVMwareVM', 'DataSourceTypeSystemState', 'DataSourceTypeClient', 'DataSourceTypeGenericDataSource', 'DataSourceTypeSQLDataBase', 'DataSourceTypeAzureFileShare', 'DataSourceTypeSAPHanaDatabase', 'DataSourceTypeSAPAseDatabase' 1867 WorkloadType DataSourceType `json:"workloadType,omitempty"` 1868 // ContainerName - Unique name of container 1869 ContainerName *string `json:"containerName,omitempty"` 1870 // SourceResourceID - ARM ID of the resource to be backed up. 1871 SourceResourceID *string `json:"sourceResourceId,omitempty"` 1872 // PolicyID - ID of the backup policy with which this item is backed up. 1873 PolicyID *string `json:"policyId,omitempty"` 1874 // LastRecoveryPoint - Timestamp when the last (latest) backup copy was created for this backup item. 1875 LastRecoveryPoint *date.Time `json:"lastRecoveryPoint,omitempty"` 1876 // BackupSetName - Name of the backup set the backup item belongs to 1877 BackupSetName *string `json:"backupSetName,omitempty"` 1878 // CreateMode - Create mode to indicate recovery of existing soft deleted data source or creation of new data source. Possible values include: 'CreateModeInvalid', 'CreateModeDefault', 'CreateModeRecover' 1879 CreateMode CreateMode `json:"createMode,omitempty"` 1880 // DeferredDeleteTimeInUTC - Time for deferred deletion in UTC 1881 DeferredDeleteTimeInUTC *date.Time `json:"deferredDeleteTimeInUTC,omitempty"` 1882 // IsScheduledForDeferredDelete - Flag to identify whether the DS is scheduled for deferred delete 1883 IsScheduledForDeferredDelete *bool `json:"isScheduledForDeferredDelete,omitempty"` 1884 // DeferredDeleteTimeRemaining - Time remaining before the DS marked for deferred delete is permanently deleted 1885 DeferredDeleteTimeRemaining *string `json:"deferredDeleteTimeRemaining,omitempty"` 1886 // IsDeferredDeleteScheduleUpcoming - Flag to identify whether the deferred deleted DS is to be purged soon 1887 IsDeferredDeleteScheduleUpcoming *bool `json:"isDeferredDeleteScheduleUpcoming,omitempty"` 1888 // IsRehydrate - Flag to identify that deferred deleted DS is to be moved into Pause state 1889 IsRehydrate *bool `json:"isRehydrate,omitempty"` 1890 // ProtectedItemType - Possible values include: 'ProtectedItemTypeProtectedItem', 'ProtectedItemTypeAzureFileShareProtectedItem', 'ProtectedItemTypeMicrosoftClassicComputevirtualMachines', 'ProtectedItemTypeMicrosoftComputevirtualMachines', 'ProtectedItemTypeAzureIaaSVMProtectedItem', 'ProtectedItemTypeMicrosoftSqlserversdatabases', 'ProtectedItemTypeAzureVMWorkloadProtectedItem', 'ProtectedItemTypeAzureVMWorkloadSAPAseDatabase', 'ProtectedItemTypeAzureVMWorkloadSAPHanaDatabase', 'ProtectedItemTypeAzureVMWorkloadSQLDatabase', 'ProtectedItemTypeDPMProtectedItem', 'ProtectedItemTypeGenericProtectedItem', 'ProtectedItemTypeMabFileFolderProtectedItem' 1891 ProtectedItemType ProtectedItemType `json:"protectedItemType,omitempty"` 1892} 1893 1894// MarshalJSON is the custom marshaler for AzureIaaSComputeVMProtectedItem. 1895func (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// AsAzureFileshareProtectedItem is the BasicProtectedItem implementation for AzureIaaSComputeVMProtectedItem. 1980func (aiscvpi AzureIaaSComputeVMProtectedItem) AsAzureFileshareProtectedItem() (*AzureFileshareProtectedItem, bool) { 1981 return nil, false 1982} 1983 1984// AsAzureIaaSClassicComputeVMProtectedItem is the BasicProtectedItem implementation for AzureIaaSComputeVMProtectedItem. 1985func (aiscvpi AzureIaaSComputeVMProtectedItem) AsAzureIaaSClassicComputeVMProtectedItem() (*AzureIaaSClassicComputeVMProtectedItem, bool) { 1986 return nil, false 1987} 1988 1989// AsAzureIaaSComputeVMProtectedItem is the BasicProtectedItem implementation for AzureIaaSComputeVMProtectedItem. 1990func (aiscvpi AzureIaaSComputeVMProtectedItem) AsAzureIaaSComputeVMProtectedItem() (*AzureIaaSComputeVMProtectedItem, bool) { 1991 return &aiscvpi, true 1992} 1993 1994// AsAzureIaaSVMProtectedItem is the BasicProtectedItem implementation for AzureIaaSComputeVMProtectedItem. 1995func (aiscvpi AzureIaaSComputeVMProtectedItem) AsAzureIaaSVMProtectedItem() (*AzureIaaSVMProtectedItem, bool) { 1996 return nil, false 1997} 1998 1999// AsBasicAzureIaaSVMProtectedItem is the BasicProtectedItem implementation for AzureIaaSComputeVMProtectedItem. 2000func (aiscvpi AzureIaaSComputeVMProtectedItem) AsBasicAzureIaaSVMProtectedItem() (BasicAzureIaaSVMProtectedItem, bool) { 2001 return &aiscvpi, true 2002} 2003 2004// AsAzureSQLProtectedItem is the BasicProtectedItem implementation for AzureIaaSComputeVMProtectedItem. 2005func (aiscvpi AzureIaaSComputeVMProtectedItem) AsAzureSQLProtectedItem() (*AzureSQLProtectedItem, bool) { 2006 return nil, false 2007} 2008 2009// AsAzureVMWorkloadProtectedItem is the BasicProtectedItem implementation for AzureIaaSComputeVMProtectedItem. 2010func (aiscvpi AzureIaaSComputeVMProtectedItem) AsAzureVMWorkloadProtectedItem() (*AzureVMWorkloadProtectedItem, bool) { 2011 return nil, false 2012} 2013 2014// AsBasicAzureVMWorkloadProtectedItem is the BasicProtectedItem implementation for AzureIaaSComputeVMProtectedItem. 2015func (aiscvpi AzureIaaSComputeVMProtectedItem) AsBasicAzureVMWorkloadProtectedItem() (BasicAzureVMWorkloadProtectedItem, bool) { 2016 return nil, false 2017} 2018 2019// AsAzureVMWorkloadSAPAseDatabaseProtectedItem is the BasicProtectedItem implementation for AzureIaaSComputeVMProtectedItem. 2020func (aiscvpi AzureIaaSComputeVMProtectedItem) AsAzureVMWorkloadSAPAseDatabaseProtectedItem() (*AzureVMWorkloadSAPAseDatabaseProtectedItem, bool) { 2021 return nil, false 2022} 2023 2024// AsAzureVMWorkloadSAPHanaDatabaseProtectedItem is the BasicProtectedItem implementation for AzureIaaSComputeVMProtectedItem. 2025func (aiscvpi AzureIaaSComputeVMProtectedItem) AsAzureVMWorkloadSAPHanaDatabaseProtectedItem() (*AzureVMWorkloadSAPHanaDatabaseProtectedItem, bool) { 2026 return nil, false 2027} 2028 2029// AsAzureVMWorkloadSQLDatabaseProtectedItem is the BasicProtectedItem implementation for AzureIaaSComputeVMProtectedItem. 2030func (aiscvpi AzureIaaSComputeVMProtectedItem) AsAzureVMWorkloadSQLDatabaseProtectedItem() (*AzureVMWorkloadSQLDatabaseProtectedItem, bool) { 2031 return nil, false 2032} 2033 2034// AsDPMProtectedItem is the BasicProtectedItem implementation for AzureIaaSComputeVMProtectedItem. 2035func (aiscvpi AzureIaaSComputeVMProtectedItem) AsDPMProtectedItem() (*DPMProtectedItem, bool) { 2036 return nil, false 2037} 2038 2039// AsGenericProtectedItem is the BasicProtectedItem implementation for AzureIaaSComputeVMProtectedItem. 2040func (aiscvpi AzureIaaSComputeVMProtectedItem) AsGenericProtectedItem() (*GenericProtectedItem, bool) { 2041 return nil, false 2042} 2043 2044// AsMabFileFolderProtectedItem is the BasicProtectedItem implementation for AzureIaaSComputeVMProtectedItem. 2045func (aiscvpi AzureIaaSComputeVMProtectedItem) AsMabFileFolderProtectedItem() (*MabFileFolderProtectedItem, bool) { 2046 return nil, false 2047} 2048 2049// AsProtectedItem is the BasicProtectedItem implementation for AzureIaaSComputeVMProtectedItem. 2050func (aiscvpi AzureIaaSComputeVMProtectedItem) AsProtectedItem() (*ProtectedItem, bool) { 2051 return nil, false 2052} 2053 2054// AsBasicProtectedItem is the BasicProtectedItem implementation for AzureIaaSComputeVMProtectedItem. 2055func (aiscvpi AzureIaaSComputeVMProtectedItem) AsBasicProtectedItem() (BasicProtectedItem, bool) { 2056 return &aiscvpi, true 2057} 2058 2059// AzureIaaSVMErrorInfo azure IaaS VM workload-specific error information. 2060type AzureIaaSVMErrorInfo struct { 2061 // ErrorCode - READ-ONLY; Error code. 2062 ErrorCode *int32 `json:"errorCode,omitempty"` 2063 // ErrorTitle - READ-ONLY; Title: Typically, the entity that the error pertains to. 2064 ErrorTitle *string `json:"errorTitle,omitempty"` 2065 // ErrorString - READ-ONLY; Localized error string. 2066 ErrorString *string `json:"errorString,omitempty"` 2067 // Recommendations - READ-ONLY; List of localized recommendations for above error code. 2068 Recommendations *[]string `json:"recommendations,omitempty"` 2069} 2070 2071// MarshalJSON is the custom marshaler for AzureIaaSVMErrorInfo. 2072func (aisei AzureIaaSVMErrorInfo) MarshalJSON() ([]byte, error) { 2073 objectMap := make(map[string]interface{}) 2074 return json.Marshal(objectMap) 2075} 2076 2077// AzureIaaSVMHealthDetails azure IaaS VM workload-specific Health Details. 2078type AzureIaaSVMHealthDetails struct { 2079 // Code - READ-ONLY; Health Code 2080 Code *int32 `json:"code,omitempty"` 2081 // Title - READ-ONLY; Health Title 2082 Title *string `json:"title,omitempty"` 2083 // Message - READ-ONLY; Health Message 2084 Message *string `json:"message,omitempty"` 2085 // Recommendations - READ-ONLY; Health Recommended Actions 2086 Recommendations *[]string `json:"recommendations,omitempty"` 2087} 2088 2089// MarshalJSON is the custom marshaler for AzureIaaSVMHealthDetails. 2090func (aishd AzureIaaSVMHealthDetails) MarshalJSON() ([]byte, error) { 2091 objectMap := make(map[string]interface{}) 2092 return json.Marshal(objectMap) 2093} 2094 2095// AzureIaaSVMJob azure IaaS VM workload-specific job object. 2096type AzureIaaSVMJob struct { 2097 // Duration - Time elapsed during the execution of this job. 2098 Duration *string `json:"duration,omitempty"` 2099 // ActionsInfo - Gets or sets the state/actions applicable on this job like cancel/retry. 2100 ActionsInfo *[]JobSupportedAction `json:"actionsInfo,omitempty"` 2101 // ErrorDetails - Error details on execution of this job. 2102 ErrorDetails *[]AzureIaaSVMErrorInfo `json:"errorDetails,omitempty"` 2103 // VirtualMachineVersion - Specifies whether the backup item is a Classic or an Azure Resource Manager VM. 2104 VirtualMachineVersion *string `json:"virtualMachineVersion,omitempty"` 2105 // ExtendedInfo - Additional information for this job. 2106 ExtendedInfo *AzureIaaSVMJobExtendedInfo `json:"extendedInfo,omitempty"` 2107 // EntityFriendlyName - Friendly name of the entity on which the current job is executing. 2108 EntityFriendlyName *string `json:"entityFriendlyName,omitempty"` 2109 // BackupManagementType - Backup management type to execute the current job. Possible values include: 'ManagementTypeInvalid', 'ManagementTypeAzureIaasVM', 'ManagementTypeMAB', 'ManagementTypeDPM', 'ManagementTypeAzureBackupServer', 'ManagementTypeAzureSQL', 'ManagementTypeAzureStorage', 'ManagementTypeAzureWorkload', 'ManagementTypeDefaultBackup' 2110 BackupManagementType ManagementType `json:"backupManagementType,omitempty"` 2111 // Operation - The operation name. 2112 Operation *string `json:"operation,omitempty"` 2113 // Status - Job status. 2114 Status *string `json:"status,omitempty"` 2115 // StartTime - The start time. 2116 StartTime *date.Time `json:"startTime,omitempty"` 2117 // EndTime - The end time. 2118 EndTime *date.Time `json:"endTime,omitempty"` 2119 // ActivityID - ActivityId of job. 2120 ActivityID *string `json:"activityId,omitempty"` 2121 // JobType - Possible values include: 'JobTypeJob', 'JobTypeAzureIaaSVMJob', 'JobTypeAzureStorageJob', 'JobTypeAzureWorkloadJob', 'JobTypeDpmJob', 'JobTypeMabJob' 2122 JobType JobType `json:"jobType,omitempty"` 2123} 2124 2125// MarshalJSON is the custom marshaler for AzureIaaSVMJob. 2126func (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// AsAzureIaaSVMJob is the BasicJob implementation for AzureIaaSVMJob. 2172func (aisj AzureIaaSVMJob) AsAzureIaaSVMJob() (*AzureIaaSVMJob, bool) { 2173 return &aisj, true 2174} 2175 2176// AsAzureStorageJob is the BasicJob implementation for AzureIaaSVMJob. 2177func (aisj AzureIaaSVMJob) AsAzureStorageJob() (*AzureStorageJob, bool) { 2178 return nil, false 2179} 2180 2181// AsAzureWorkloadJob is the BasicJob implementation for AzureIaaSVMJob. 2182func (aisj AzureIaaSVMJob) AsAzureWorkloadJob() (*AzureWorkloadJob, bool) { 2183 return nil, false 2184} 2185 2186// AsDpmJob is the BasicJob implementation for AzureIaaSVMJob. 2187func (aisj AzureIaaSVMJob) AsDpmJob() (*DpmJob, bool) { 2188 return nil, false 2189} 2190 2191// AsMabJob is the BasicJob implementation for AzureIaaSVMJob. 2192func (aisj AzureIaaSVMJob) AsMabJob() (*MabJob, bool) { 2193 return nil, false 2194} 2195 2196// AsJob is the BasicJob implementation for AzureIaaSVMJob. 2197func (aisj AzureIaaSVMJob) AsJob() (*Job, bool) { 2198 return nil, false 2199} 2200 2201// AsBasicJob is the BasicJob implementation for AzureIaaSVMJob. 2202func (aisj AzureIaaSVMJob) AsBasicJob() (BasicJob, bool) { 2203 return &aisj, true 2204} 2205 2206// AzureIaaSVMJobExtendedInfo azure IaaS VM workload-specific additional information for job. 2207type AzureIaaSVMJobExtendedInfo struct { 2208 // TasksList - List of tasks associated with this job. 2209 TasksList *[]AzureIaaSVMJobTaskDetails `json:"tasksList,omitempty"` 2210 // PropertyBag - Job properties. 2211 PropertyBag map[string]*string `json:"propertyBag"` 2212 // InternalPropertyBag - Job internal properties. 2213 InternalPropertyBag map[string]*string `json:"internalPropertyBag"` 2214 // ProgressPercentage - Indicates progress of the job. Null if it has not started or completed. 2215 ProgressPercentage *float64 `json:"progressPercentage,omitempty"` 2216 // EstimatedRemainingDuration - Time remaining for execution of this job. 2217 EstimatedRemainingDuration *string `json:"estimatedRemainingDuration,omitempty"` 2218 // DynamicErrorMessage - Non localized error message on job execution. 2219 DynamicErrorMessage *string `json:"dynamicErrorMessage,omitempty"` 2220} 2221 2222// MarshalJSON is the custom marshaler for AzureIaaSVMJobExtendedInfo. 2223func (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// AzureIaaSVMJobTaskDetails azure IaaS VM workload-specific job task details. 2247type AzureIaaSVMJobTaskDetails struct { 2248 // TaskID - The task display name. 2249 TaskID *string `json:"taskId,omitempty"` 2250 // StartTime - The start time. 2251 StartTime *date.Time `json:"startTime,omitempty"` 2252 // EndTime - The end time. 2253 EndTime *date.Time `json:"endTime,omitempty"` 2254 // InstanceID - The instanceId. 2255 InstanceID *string `json:"instanceId,omitempty"` 2256 // Duration - Time elapsed for task. 2257 Duration *string `json:"duration,omitempty"` 2258 // Status - The status. 2259 Status *string `json:"status,omitempty"` 2260 // ProgressPercentage - Progress of the task. 2261 ProgressPercentage *float64 `json:"progressPercentage,omitempty"` 2262 // TaskExecutionDetails - Details about execution of the task. 2263 // eg: number of bytes transferred etc 2264 TaskExecutionDetails *string `json:"taskExecutionDetails,omitempty"` 2265} 2266 2267// BasicAzureIaaSVMProtectedItem iaaS VM workload-specific backup item. 2268type BasicAzureIaaSVMProtectedItem interface { 2269 AsAzureIaaSClassicComputeVMProtectedItem() (*AzureIaaSClassicComputeVMProtectedItem, bool) 2270 AsAzureIaaSComputeVMProtectedItem() (*AzureIaaSComputeVMProtectedItem, bool) 2271 AsAzureIaaSVMProtectedItem() (*AzureIaaSVMProtectedItem, bool) 2272} 2273 2274// AzureIaaSVMProtectedItem iaaS VM workload-specific backup item. 2275type AzureIaaSVMProtectedItem struct { 2276 // FriendlyName - Friendly name of the VM represented by this backup item. 2277 FriendlyName *string `json:"friendlyName,omitempty"` 2278 // VirtualMachineID - Fully qualified ARM ID of the virtual machine represented by this item. 2279 VirtualMachineID *string `json:"virtualMachineId,omitempty"` 2280 // ProtectionStatus - Backup status of this backup item. 2281 ProtectionStatus *string `json:"protectionStatus,omitempty"` 2282 // ProtectionState - Backup state of this backup item. Possible values include: 'ProtectionStateInvalid', 'ProtectionStateIRPending', 'ProtectionStateProtected', 'ProtectionStateProtectionError', 'ProtectionStateProtectionStopped', 'ProtectionStateProtectionPaused' 2283 ProtectionState ProtectionState `json:"protectionState,omitempty"` 2284 // HealthStatus - Health status of protected item. Possible values include: 'HealthStatusPassed', 'HealthStatusActionRequired', 'HealthStatusActionSuggested', 'HealthStatusInvalid' 2285 HealthStatus HealthStatus `json:"healthStatus,omitempty"` 2286 // HealthDetails - Health details on this backup item. 2287 HealthDetails *[]AzureIaaSVMHealthDetails `json:"healthDetails,omitempty"` 2288 // KpisHealths - Health details of different KPIs 2289 KpisHealths map[string]*KPIResourceHealthDetails `json:"kpisHealths"` 2290 // LastBackupStatus - Last backup operation status. 2291 LastBackupStatus *string `json:"lastBackupStatus,omitempty"` 2292 // LastBackupTime - Timestamp of the last backup operation on this backup item. 2293 LastBackupTime *date.Time `json:"lastBackupTime,omitempty"` 2294 // ProtectedItemDataID - Data ID of the protected item. 2295 ProtectedItemDataID *string `json:"protectedItemDataId,omitempty"` 2296 // ExtendedInfo - Additional information for this backup item. 2297 ExtendedInfo *AzureIaaSVMProtectedItemExtendedInfo `json:"extendedInfo,omitempty"` 2298 ExtendedProperties *ExtendedProperties `json:"extendedProperties,omitempty"` 2299 // BackupManagementType - Type of backup management for the backed up item. Possible values include: 'ManagementTypeInvalid', 'ManagementTypeAzureIaasVM', 'ManagementTypeMAB', 'ManagementTypeDPM', 'ManagementTypeAzureBackupServer', 'ManagementTypeAzureSQL', 'ManagementTypeAzureStorage', 'ManagementTypeAzureWorkload', 'ManagementTypeDefaultBackup' 2300 BackupManagementType ManagementType `json:"backupManagementType,omitempty"` 2301 // WorkloadType - Type of workload this item represents. Possible values include: 'DataSourceTypeInvalid', 'DataSourceTypeVM', 'DataSourceTypeFileFolder', 'DataSourceTypeAzureSQLDb', 'DataSourceTypeSQLDB', 'DataSourceTypeExchange', 'DataSourceTypeSharepoint', 'DataSourceTypeVMwareVM', 'DataSourceTypeSystemState', 'DataSourceTypeClient', 'DataSourceTypeGenericDataSource', 'DataSourceTypeSQLDataBase', 'DataSourceTypeAzureFileShare', 'DataSourceTypeSAPHanaDatabase', 'DataSourceTypeSAPAseDatabase' 2302 WorkloadType DataSourceType `json:"workloadType,omitempty"` 2303 // ContainerName - Unique name of container 2304 ContainerName *string `json:"containerName,omitempty"` 2305 // SourceResourceID - ARM ID of the resource to be backed up. 2306 SourceResourceID *string `json:"sourceResourceId,omitempty"` 2307 // PolicyID - ID of the backup policy with which this item is backed up. 2308 PolicyID *string `json:"policyId,omitempty"` 2309 // LastRecoveryPoint - Timestamp when the last (latest) backup copy was created for this backup item. 2310 LastRecoveryPoint *date.Time `json:"lastRecoveryPoint,omitempty"` 2311 // BackupSetName - Name of the backup set the backup item belongs to 2312 BackupSetName *string `json:"backupSetName,omitempty"` 2313 // CreateMode - Create mode to indicate recovery of existing soft deleted data source or creation of new data source. Possible values include: 'CreateModeInvalid', 'CreateModeDefault', 'CreateModeRecover' 2314 CreateMode CreateMode `json:"createMode,omitempty"` 2315 // DeferredDeleteTimeInUTC - Time for deferred deletion in UTC 2316 DeferredDeleteTimeInUTC *date.Time `json:"deferredDeleteTimeInUTC,omitempty"` 2317 // IsScheduledForDeferredDelete - Flag to identify whether the DS is scheduled for deferred delete 2318 IsScheduledForDeferredDelete *bool `json:"isScheduledForDeferredDelete,omitempty"` 2319 // DeferredDeleteTimeRemaining - Time remaining before the DS marked for deferred delete is permanently deleted 2320 DeferredDeleteTimeRemaining *string `json:"deferredDeleteTimeRemaining,omitempty"` 2321 // IsDeferredDeleteScheduleUpcoming - Flag to identify whether the deferred deleted DS is to be purged soon 2322 IsDeferredDeleteScheduleUpcoming *bool `json:"isDeferredDeleteScheduleUpcoming,omitempty"` 2323 // IsRehydrate - Flag to identify that deferred deleted DS is to be moved into Pause state 2324 IsRehydrate *bool `json:"isRehydrate,omitempty"` 2325 // ProtectedItemType - Possible values include: 'ProtectedItemTypeProtectedItem', 'ProtectedItemTypeAzureFileShareProtectedItem', 'ProtectedItemTypeMicrosoftClassicComputevirtualMachines', 'ProtectedItemTypeMicrosoftComputevirtualMachines', 'ProtectedItemTypeAzureIaaSVMProtectedItem', 'ProtectedItemTypeMicrosoftSqlserversdatabases', 'ProtectedItemTypeAzureVMWorkloadProtectedItem', 'ProtectedItemTypeAzureVMWorkloadSAPAseDatabase', 'ProtectedItemTypeAzureVMWorkloadSAPHanaDatabase', 'ProtectedItemTypeAzureVMWorkloadSQLDatabase', 'ProtectedItemTypeDPMProtectedItem', 'ProtectedItemTypeGenericProtectedItem', 'ProtectedItemTypeMabFileFolderProtectedItem' 2326 ProtectedItemType ProtectedItemType `json:"protectedItemType,omitempty"` 2327} 2328 2329func 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} 2351func 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// MarshalJSON is the custom marshaler for AzureIaaSVMProtectedItem. 2371func (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// AsAzureFileshareProtectedItem is the BasicProtectedItem implementation for AzureIaaSVMProtectedItem. 2456func (aispi AzureIaaSVMProtectedItem) AsAzureFileshareProtectedItem() (*AzureFileshareProtectedItem, bool) { 2457 return nil, false 2458} 2459 2460// AsAzureIaaSClassicComputeVMProtectedItem is the BasicProtectedItem implementation for AzureIaaSVMProtectedItem. 2461func (aispi AzureIaaSVMProtectedItem) AsAzureIaaSClassicComputeVMProtectedItem() (*AzureIaaSClassicComputeVMProtectedItem, bool) { 2462 return nil, false 2463} 2464 2465// AsAzureIaaSComputeVMProtectedItem is the BasicProtectedItem implementation for AzureIaaSVMProtectedItem. 2466func (aispi AzureIaaSVMProtectedItem) AsAzureIaaSComputeVMProtectedItem() (*AzureIaaSComputeVMProtectedItem, bool) { 2467 return nil, false 2468} 2469 2470// AsAzureIaaSVMProtectedItem is the BasicProtectedItem implementation for AzureIaaSVMProtectedItem. 2471func (aispi AzureIaaSVMProtectedItem) AsAzureIaaSVMProtectedItem() (*AzureIaaSVMProtectedItem, bool) { 2472 return &aispi, true 2473} 2474 2475// AsBasicAzureIaaSVMProtectedItem is the BasicProtectedItem implementation for AzureIaaSVMProtectedItem. 2476func (aispi AzureIaaSVMProtectedItem) AsBasicAzureIaaSVMProtectedItem() (BasicAzureIaaSVMProtectedItem, bool) { 2477 return &aispi, true 2478} 2479 2480// AsAzureSQLProtectedItem is the BasicProtectedItem implementation for AzureIaaSVMProtectedItem. 2481func (aispi AzureIaaSVMProtectedItem) AsAzureSQLProtectedItem() (*AzureSQLProtectedItem, bool) { 2482 return nil, false 2483} 2484 2485// AsAzureVMWorkloadProtectedItem is the BasicProtectedItem implementation for AzureIaaSVMProtectedItem. 2486func (aispi AzureIaaSVMProtectedItem) AsAzureVMWorkloadProtectedItem() (*AzureVMWorkloadProtectedItem, bool) { 2487 return nil, false 2488} 2489 2490// AsBasicAzureVMWorkloadProtectedItem is the BasicProtectedItem implementation for AzureIaaSVMProtectedItem. 2491func (aispi AzureIaaSVMProtectedItem) AsBasicAzureVMWorkloadProtectedItem() (BasicAzureVMWorkloadProtectedItem, bool) { 2492 return nil, false 2493} 2494 2495// AsAzureVMWorkloadSAPAseDatabaseProtectedItem is the BasicProtectedItem implementation for AzureIaaSVMProtectedItem. 2496func (aispi AzureIaaSVMProtectedItem) AsAzureVMWorkloadSAPAseDatabaseProtectedItem() (*AzureVMWorkloadSAPAseDatabaseProtectedItem, bool) { 2497 return nil, false 2498} 2499 2500// AsAzureVMWorkloadSAPHanaDatabaseProtectedItem is the BasicProtectedItem implementation for AzureIaaSVMProtectedItem. 2501func (aispi AzureIaaSVMProtectedItem) AsAzureVMWorkloadSAPHanaDatabaseProtectedItem() (*AzureVMWorkloadSAPHanaDatabaseProtectedItem, bool) { 2502 return nil, false 2503} 2504 2505// AsAzureVMWorkloadSQLDatabaseProtectedItem is the BasicProtectedItem implementation for AzureIaaSVMProtectedItem. 2506func (aispi AzureIaaSVMProtectedItem) AsAzureVMWorkloadSQLDatabaseProtectedItem() (*AzureVMWorkloadSQLDatabaseProtectedItem, bool) { 2507 return nil, false 2508} 2509 2510// AsDPMProtectedItem is the BasicProtectedItem implementation for AzureIaaSVMProtectedItem. 2511func (aispi AzureIaaSVMProtectedItem) AsDPMProtectedItem() (*DPMProtectedItem, bool) { 2512 return nil, false 2513} 2514 2515// AsGenericProtectedItem is the BasicProtectedItem implementation for AzureIaaSVMProtectedItem. 2516func (aispi AzureIaaSVMProtectedItem) AsGenericProtectedItem() (*GenericProtectedItem, bool) { 2517 return nil, false 2518} 2519 2520// AsMabFileFolderProtectedItem is the BasicProtectedItem implementation for AzureIaaSVMProtectedItem. 2521func (aispi AzureIaaSVMProtectedItem) AsMabFileFolderProtectedItem() (*MabFileFolderProtectedItem, bool) { 2522 return nil, false 2523} 2524 2525// AsProtectedItem is the BasicProtectedItem implementation for AzureIaaSVMProtectedItem. 2526func (aispi AzureIaaSVMProtectedItem) AsProtectedItem() (*ProtectedItem, bool) { 2527 return nil, false 2528} 2529 2530// AsBasicProtectedItem is the BasicProtectedItem implementation for AzureIaaSVMProtectedItem. 2531func (aispi AzureIaaSVMProtectedItem) AsBasicProtectedItem() (BasicProtectedItem, bool) { 2532 return &aispi, true 2533} 2534 2535// AzureIaaSVMProtectedItemExtendedInfo additional information on Azure IaaS VM specific backup item. 2536type AzureIaaSVMProtectedItemExtendedInfo struct { 2537 // OldestRecoveryPoint - The oldest backup copy available for this backup item. 2538 OldestRecoveryPoint *date.Time `json:"oldestRecoveryPoint,omitempty"` 2539 // RecoveryPointCount - Number of backup copies available for this backup item. 2540 RecoveryPointCount *int32 `json:"recoveryPointCount,omitempty"` 2541 // PolicyInconsistent - Specifies if backup policy associated with the backup item is inconsistent. 2542 PolicyInconsistent *bool `json:"policyInconsistent,omitempty"` 2543} 2544 2545// AzureIaaSVMProtectionPolicy iaaS VM workload-specific backup policy. 2546type AzureIaaSVMProtectionPolicy struct { 2547 InstantRPDetails *InstantRPAdditionalDetails `json:"instantRPDetails,omitempty"` 2548 // SchedulePolicy - Backup schedule specified as part of backup policy. 2549 SchedulePolicy BasicSchedulePolicy `json:"schedulePolicy,omitempty"` 2550 // RetentionPolicy - Retention policy with the details on backup copy retention ranges. 2551 RetentionPolicy BasicRetentionPolicy `json:"retentionPolicy,omitempty"` 2552 // InstantRpRetentionRangeInDays - Instant RP retention policy range in days 2553 InstantRpRetentionRangeInDays *int32 `json:"instantRpRetentionRangeInDays,omitempty"` 2554 // TimeZone - TimeZone optional input as string. For example: TimeZone = "Pacific Standard Time". 2555 TimeZone *string `json:"timeZone,omitempty"` 2556 // ProtectedItemsCount - Number of items associated with this policy. 2557 ProtectedItemsCount *int32 `json:"protectedItemsCount,omitempty"` 2558 // BackupManagementType - Possible values include: 'BackupManagementTypeProtectionPolicy', 'BackupManagementTypeAzureWorkload', 'BackupManagementTypeAzureStorage', 'BackupManagementTypeAzureIaasVM', 'BackupManagementTypeAzureSQL', 'BackupManagementTypeGenericProtectionPolicy', 'BackupManagementTypeMAB' 2559 BackupManagementType ManagementTypeBasicProtectionPolicy `json:"backupManagementType,omitempty"` 2560} 2561 2562// MarshalJSON is the custom marshaler for AzureIaaSVMProtectionPolicy. 2563func (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// AsAzureVMWorkloadProtectionPolicy is the BasicProtectionPolicy implementation for AzureIaaSVMProtectionPolicy. 2587func (aispp AzureIaaSVMProtectionPolicy) AsAzureVMWorkloadProtectionPolicy() (*AzureVMWorkloadProtectionPolicy, bool) { 2588 return nil, false 2589} 2590 2591// AsAzureFileShareProtectionPolicy is the BasicProtectionPolicy implementation for AzureIaaSVMProtectionPolicy. 2592func (aispp AzureIaaSVMProtectionPolicy) AsAzureFileShareProtectionPolicy() (*AzureFileShareProtectionPolicy, bool) { 2593 return nil, false 2594} 2595 2596// AsAzureIaaSVMProtectionPolicy is the BasicProtectionPolicy implementation for AzureIaaSVMProtectionPolicy. 2597func (aispp AzureIaaSVMProtectionPolicy) AsAzureIaaSVMProtectionPolicy() (*AzureIaaSVMProtectionPolicy, bool) { 2598 return &aispp, true 2599} 2600 2601// AsAzureSQLProtectionPolicy is the BasicProtectionPolicy implementation for AzureIaaSVMProtectionPolicy. 2602func (aispp AzureIaaSVMProtectionPolicy) AsAzureSQLProtectionPolicy() (*AzureSQLProtectionPolicy, bool) { 2603 return nil, false 2604} 2605 2606// AsGenericProtectionPolicy is the BasicProtectionPolicy implementation for AzureIaaSVMProtectionPolicy. 2607func (aispp AzureIaaSVMProtectionPolicy) AsGenericProtectionPolicy() (*GenericProtectionPolicy, bool) { 2608 return nil, false 2609} 2610 2611// AsMabProtectionPolicy is the BasicProtectionPolicy implementation for AzureIaaSVMProtectionPolicy. 2612func (aispp AzureIaaSVMProtectionPolicy) AsMabProtectionPolicy() (*MabProtectionPolicy, bool) { 2613 return nil, false 2614} 2615 2616// AsProtectionPolicy is the BasicProtectionPolicy implementation for AzureIaaSVMProtectionPolicy. 2617func (aispp AzureIaaSVMProtectionPolicy) AsProtectionPolicy() (*ProtectionPolicy, bool) { 2618 return nil, false 2619} 2620 2621// AsBasicProtectionPolicy is the BasicProtectionPolicy implementation for AzureIaaSVMProtectionPolicy. 2622func (aispp AzureIaaSVMProtectionPolicy) AsBasicProtectionPolicy() (BasicProtectionPolicy, bool) { 2623 return &aispp, true 2624} 2625 2626// UnmarshalJSON is the custom unmarshaler for AzureIaaSVMProtectionPolicy struct. 2627func (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// BasicAzureRecoveryServiceVaultProtectionIntent azure Recovery Services Vault specific protection intent item. 2703type BasicAzureRecoveryServiceVaultProtectionIntent interface { 2704 AsAzureWorkloadAutoProtectionIntent() (*AzureWorkloadAutoProtectionIntent, bool) 2705 AsBasicAzureWorkloadAutoProtectionIntent() (BasicAzureWorkloadAutoProtectionIntent, bool) 2706 AsAzureWorkloadSQLAutoProtectionIntent() (*AzureWorkloadSQLAutoProtectionIntent, bool) 2707 AsAzureRecoveryServiceVaultProtectionIntent() (*AzureRecoveryServiceVaultProtectionIntent, bool) 2708} 2709 2710// AzureRecoveryServiceVaultProtectionIntent azure Recovery Services Vault specific protection intent item. 2711type AzureRecoveryServiceVaultProtectionIntent struct { 2712 // BackupManagementType - Type of backup management for the backed up item. Possible values include: 'ManagementTypeInvalid', 'ManagementTypeAzureIaasVM', 'ManagementTypeMAB', 'ManagementTypeDPM', 'ManagementTypeAzureBackupServer', 'ManagementTypeAzureSQL', 'ManagementTypeAzureStorage', 'ManagementTypeAzureWorkload', 'ManagementTypeDefaultBackup' 2713 BackupManagementType ManagementType `json:"backupManagementType,omitempty"` 2714 // SourceResourceID - ARM ID of the resource to be backed up. 2715 SourceResourceID *string `json:"sourceResourceId,omitempty"` 2716 // ItemID - ID of the item which is getting protected, In case of Azure Vm , it is ProtectedItemId 2717 ItemID *string `json:"itemId,omitempty"` 2718 // PolicyID - ID of the backup policy with which this item is backed up. 2719 PolicyID *string `json:"policyId,omitempty"` 2720 // ProtectionState - Backup state of this backup item. Possible values include: 'ProtectionStatusInvalid', 'ProtectionStatusNotProtected', 'ProtectionStatusProtecting', 'ProtectionStatusProtected', 'ProtectionStatusProtectionFailed' 2721 ProtectionState ProtectionStatus `json:"protectionState,omitempty"` 2722 // ProtectionIntentItemType - Possible values include: 'ProtectionIntentItemTypeProtectionIntent', 'ProtectionIntentItemTypeRecoveryServiceVaultItem', 'ProtectionIntentItemTypeAzureResourceItem', 'ProtectionIntentItemTypeAzureWorkloadAutoProtectionIntent', 'ProtectionIntentItemTypeAzureWorkloadSQLAutoProtectionIntent' 2723 ProtectionIntentItemType ProtectionIntentItemType `json:"protectionIntentItemType,omitempty"` 2724} 2725 2726func 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} 2748func 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// MarshalJSON is the custom marshaler for AzureRecoveryServiceVaultProtectionIntent. 2768func (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// AsAzureRecoveryServiceVaultProtectionIntent is the BasicProtectionIntent implementation for AzureRecoveryServiceVaultProtectionIntent. 2793func (arsvpi AzureRecoveryServiceVaultProtectionIntent) AsAzureRecoveryServiceVaultProtectionIntent() (*AzureRecoveryServiceVaultProtectionIntent, bool) { 2794 return &arsvpi, true 2795} 2796 2797// AsBasicAzureRecoveryServiceVaultProtectionIntent is the BasicProtectionIntent implementation for AzureRecoveryServiceVaultProtectionIntent. 2798func (arsvpi AzureRecoveryServiceVaultProtectionIntent) AsBasicAzureRecoveryServiceVaultProtectionIntent() (BasicAzureRecoveryServiceVaultProtectionIntent, bool) { 2799 return &arsvpi, true 2800} 2801 2802// AsAzureResourceProtectionIntent is the BasicProtectionIntent implementation for AzureRecoveryServiceVaultProtectionIntent. 2803func (arsvpi AzureRecoveryServiceVaultProtectionIntent) AsAzureResourceProtectionIntent() (*AzureResourceProtectionIntent, bool) { 2804 return nil, false 2805} 2806 2807// AsAzureWorkloadAutoProtectionIntent is the BasicProtectionIntent implementation for AzureRecoveryServiceVaultProtectionIntent. 2808func (arsvpi AzureRecoveryServiceVaultProtectionIntent) AsAzureWorkloadAutoProtectionIntent() (*AzureWorkloadAutoProtectionIntent, bool) { 2809 return nil, false 2810} 2811 2812// AsBasicAzureWorkloadAutoProtectionIntent is the BasicProtectionIntent implementation for AzureRecoveryServiceVaultProtectionIntent. 2813func (arsvpi AzureRecoveryServiceVaultProtectionIntent) AsBasicAzureWorkloadAutoProtectionIntent() (BasicAzureWorkloadAutoProtectionIntent, bool) { 2814 return nil, false 2815} 2816 2817// AsAzureWorkloadSQLAutoProtectionIntent is the BasicProtectionIntent implementation for AzureRecoveryServiceVaultProtectionIntent. 2818func (arsvpi AzureRecoveryServiceVaultProtectionIntent) AsAzureWorkloadSQLAutoProtectionIntent() (*AzureWorkloadSQLAutoProtectionIntent, bool) { 2819 return nil, false 2820} 2821 2822// AsProtectionIntent is the BasicProtectionIntent implementation for AzureRecoveryServiceVaultProtectionIntent. 2823func (arsvpi AzureRecoveryServiceVaultProtectionIntent) AsProtectionIntent() (*ProtectionIntent, bool) { 2824 return nil, false 2825} 2826 2827// AsBasicProtectionIntent is the BasicProtectionIntent implementation for AzureRecoveryServiceVaultProtectionIntent. 2828func (arsvpi AzureRecoveryServiceVaultProtectionIntent) AsBasicProtectionIntent() (BasicProtectionIntent, bool) { 2829 return &arsvpi, true 2830} 2831 2832// AzureResourceProtectionIntent iaaS VM specific backup protection intent item. 2833type AzureResourceProtectionIntent struct { 2834 // FriendlyName - Friendly name of the VM represented by this backup item. 2835 FriendlyName *string `json:"friendlyName,omitempty"` 2836 // BackupManagementType - Type of backup management for the backed up item. Possible values include: 'ManagementTypeInvalid', 'ManagementTypeAzureIaasVM', 'ManagementTypeMAB', 'ManagementTypeDPM', 'ManagementTypeAzureBackupServer', 'ManagementTypeAzureSQL', 'ManagementTypeAzureStorage', 'ManagementTypeAzureWorkload', 'ManagementTypeDefaultBackup' 2837 BackupManagementType ManagementType `json:"backupManagementType,omitempty"` 2838 // SourceResourceID - ARM ID of the resource to be backed up. 2839 SourceResourceID *string `json:"sourceResourceId,omitempty"` 2840 // ItemID - ID of the item which is getting protected, In case of Azure Vm , it is ProtectedItemId 2841 ItemID *string `json:"itemId,omitempty"` 2842 // PolicyID - ID of the backup policy with which this item is backed up. 2843 PolicyID *string `json:"policyId,omitempty"` 2844 // ProtectionState - Backup state of this backup item. Possible values include: 'ProtectionStatusInvalid', 'ProtectionStatusNotProtected', 'ProtectionStatusProtecting', 'ProtectionStatusProtected', 'ProtectionStatusProtectionFailed' 2845 ProtectionState ProtectionStatus `json:"protectionState,omitempty"` 2846 // ProtectionIntentItemType - Possible values include: 'ProtectionIntentItemTypeProtectionIntent', 'ProtectionIntentItemTypeRecoveryServiceVaultItem', 'ProtectionIntentItemTypeAzureResourceItem', 'ProtectionIntentItemTypeAzureWorkloadAutoProtectionIntent', 'ProtectionIntentItemTypeAzureWorkloadSQLAutoProtectionIntent' 2847 ProtectionIntentItemType ProtectionIntentItemType `json:"protectionIntentItemType,omitempty"` 2848} 2849 2850// MarshalJSON is the custom marshaler for AzureResourceProtectionIntent. 2851func (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// AsAzureRecoveryServiceVaultProtectionIntent is the BasicProtectionIntent implementation for AzureResourceProtectionIntent. 2879func (arpi AzureResourceProtectionIntent) AsAzureRecoveryServiceVaultProtectionIntent() (*AzureRecoveryServiceVaultProtectionIntent, bool) { 2880 return nil, false 2881} 2882 2883// AsBasicAzureRecoveryServiceVaultProtectionIntent is the BasicProtectionIntent implementation for AzureResourceProtectionIntent. 2884func (arpi AzureResourceProtectionIntent) AsBasicAzureRecoveryServiceVaultProtectionIntent() (BasicAzureRecoveryServiceVaultProtectionIntent, bool) { 2885 return nil, false 2886} 2887 2888// AsAzureResourceProtectionIntent is the BasicProtectionIntent implementation for AzureResourceProtectionIntent. 2889func (arpi AzureResourceProtectionIntent) AsAzureResourceProtectionIntent() (*AzureResourceProtectionIntent, bool) { 2890 return &arpi, true 2891} 2892 2893// AsAzureWorkloadAutoProtectionIntent is the BasicProtectionIntent implementation for AzureResourceProtectionIntent. 2894func (arpi AzureResourceProtectionIntent) AsAzureWorkloadAutoProtectionIntent() (*AzureWorkloadAutoProtectionIntent, bool) { 2895 return nil, false 2896} 2897 2898// AsBasicAzureWorkloadAutoProtectionIntent is the BasicProtectionIntent implementation for AzureResourceProtectionIntent. 2899func (arpi AzureResourceProtectionIntent) AsBasicAzureWorkloadAutoProtectionIntent() (BasicAzureWorkloadAutoProtectionIntent, bool) { 2900 return nil, false 2901} 2902 2903// AsAzureWorkloadSQLAutoProtectionIntent is the BasicProtectionIntent implementation for AzureResourceProtectionIntent. 2904func (arpi AzureResourceProtectionIntent) AsAzureWorkloadSQLAutoProtectionIntent() (*AzureWorkloadSQLAutoProtectionIntent, bool) { 2905 return nil, false 2906} 2907 2908// AsProtectionIntent is the BasicProtectionIntent implementation for AzureResourceProtectionIntent. 2909func (arpi AzureResourceProtectionIntent) AsProtectionIntent() (*ProtectionIntent, bool) { 2910 return nil, false 2911} 2912 2913// AsBasicProtectionIntent is the BasicProtectionIntent implementation for AzureResourceProtectionIntent. 2914func (arpi AzureResourceProtectionIntent) AsBasicProtectionIntent() (BasicProtectionIntent, bool) { 2915 return &arpi, true 2916} 2917 2918// AzureSQLAGWorkloadContainerProtectionContainer container for SQL workloads under SQL Availability Group. 2919type AzureSQLAGWorkloadContainerProtectionContainer struct { 2920 // SourceResourceID - ARM ID of the virtual machine represented by this Azure Workload Container 2921 SourceResourceID *string `json:"sourceResourceId,omitempty"` 2922 // LastUpdatedTime - Time stamp when this container was updated. 2923 LastUpdatedTime *date.Time `json:"lastUpdatedTime,omitempty"` 2924 // ExtendedInfo - Additional details of a workload container. 2925 ExtendedInfo *AzureWorkloadContainerExtendedInfo `json:"extendedInfo,omitempty"` 2926 // WorkloadType - Workload type for which registration was sent. Possible values include: 'WorkloadTypeInvalid', 'WorkloadTypeVM', 'WorkloadTypeFileFolder', 'WorkloadTypeAzureSQLDb', 'WorkloadTypeSQLDB', 'WorkloadTypeExchange', 'WorkloadTypeSharepoint', 'WorkloadTypeVMwareVM', 'WorkloadTypeSystemState', 'WorkloadTypeClient', 'WorkloadTypeGenericDataSource', 'WorkloadTypeSQLDataBase', 'WorkloadTypeAzureFileShare', 'WorkloadTypeSAPHanaDatabase', 'WorkloadTypeSAPAseDatabase' 2927 WorkloadType WorkloadType `json:"workloadType,omitempty"` 2928 // OperationType - Re-Do Operation. Possible values include: 'OperationTypeInvalid', 'OperationTypeRegister', 'OperationTypeReregister' 2929 OperationType OperationType `json:"operationType,omitempty"` 2930 // FriendlyName - Friendly name of the container. 2931 FriendlyName *string `json:"friendlyName,omitempty"` 2932 // BackupManagementType - Type of backup management for the container. Possible values include: 'ManagementTypeInvalid', 'ManagementTypeAzureIaasVM', 'ManagementTypeMAB', 'ManagementTypeDPM', 'ManagementTypeAzureBackupServer', 'ManagementTypeAzureSQL', 'ManagementTypeAzureStorage', 'ManagementTypeAzureWorkload', 'ManagementTypeDefaultBackup' 2933 BackupManagementType ManagementType `json:"backupManagementType,omitempty"` 2934 // RegistrationStatus - Status of registration of the container with the Recovery Services Vault. 2935 RegistrationStatus *string `json:"registrationStatus,omitempty"` 2936 // HealthStatus - Status of health of the container. 2937 HealthStatus *string `json:"healthStatus,omitempty"` 2938 // ContainerType - Possible values include: 'ContainerTypeProtectionContainer', 'ContainerTypeAzureBackupServerContainer1', 'ContainerTypeMicrosoftClassicComputevirtualMachines', 'ContainerTypeMicrosoftComputevirtualMachines', 'ContainerTypeSQLAGWorkLoadContainer1', 'ContainerTypeAzureSQLContainer1', 'ContainerTypeStorageContainer1', 'ContainerTypeVMAppContainer1', 'ContainerTypeAzureWorkloadContainer', 'ContainerTypeDPMContainer1', 'ContainerTypeGenericContainer1', 'ContainerTypeIaaSVMContainer', 'ContainerTypeWindows1' 2939 ContainerType ContainerTypeBasicProtectionContainer `json:"containerType,omitempty"` 2940} 2941 2942// MarshalJSON is the custom marshaler for AzureSQLAGWorkloadContainerProtectionContainer. 2943func (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// AsAzureBackupServerContainer is the BasicProtectionContainer implementation for AzureSQLAGWorkloadContainerProtectionContainer. 2980func (aswcpc AzureSQLAGWorkloadContainerProtectionContainer) AsAzureBackupServerContainer() (*AzureBackupServerContainer, bool) { 2981 return nil, false 2982} 2983 2984// AsAzureIaaSClassicComputeVMContainer is the BasicProtectionContainer implementation for AzureSQLAGWorkloadContainerProtectionContainer. 2985func (aswcpc AzureSQLAGWorkloadContainerProtectionContainer) AsAzureIaaSClassicComputeVMContainer() (*AzureIaaSClassicComputeVMContainer, bool) { 2986 return nil, false 2987} 2988 2989// AsAzureIaaSComputeVMContainer is the BasicProtectionContainer implementation for AzureSQLAGWorkloadContainerProtectionContainer. 2990func (aswcpc AzureSQLAGWorkloadContainerProtectionContainer) AsAzureIaaSComputeVMContainer() (*AzureIaaSComputeVMContainer, bool) { 2991 return nil, false 2992} 2993 2994// AsAzureSQLAGWorkloadContainerProtectionContainer is the BasicProtectionContainer implementation for AzureSQLAGWorkloadContainerProtectionContainer. 2995func (aswcpc AzureSQLAGWorkloadContainerProtectionContainer) AsAzureSQLAGWorkloadContainerProtectionContainer() (*AzureSQLAGWorkloadContainerProtectionContainer, bool) { 2996 return &aswcpc, true 2997} 2998 2999// AsAzureSQLContainer is the BasicProtectionContainer implementation for AzureSQLAGWorkloadContainerProtectionContainer. 3000func (aswcpc AzureSQLAGWorkloadContainerProtectionContainer) AsAzureSQLContainer() (*AzureSQLContainer, bool) { 3001 return nil, false 3002} 3003 3004// AsAzureStorageContainer is the BasicProtectionContainer implementation for AzureSQLAGWorkloadContainerProtectionContainer. 3005func (aswcpc AzureSQLAGWorkloadContainerProtectionContainer) AsAzureStorageContainer() (*AzureStorageContainer, bool) { 3006 return nil, false 3007} 3008 3009// AsAzureVMAppContainerProtectionContainer is the BasicProtectionContainer implementation for AzureSQLAGWorkloadContainerProtectionContainer. 3010func (aswcpc AzureSQLAGWorkloadContainerProtectionContainer) AsAzureVMAppContainerProtectionContainer() (*AzureVMAppContainerProtectionContainer, bool) { 3011 return nil, false 3012} 3013 3014// AsAzureWorkloadContainer is the BasicProtectionContainer implementation for AzureSQLAGWorkloadContainerProtectionContainer. 3015func (aswcpc AzureSQLAGWorkloadContainerProtectionContainer) AsAzureWorkloadContainer() (*AzureWorkloadContainer, bool) { 3016 return nil, false 3017} 3018 3019// AsBasicAzureWorkloadContainer is the BasicProtectionContainer implementation for AzureSQLAGWorkloadContainerProtectionContainer. 3020func (aswcpc AzureSQLAGWorkloadContainerProtectionContainer) AsBasicAzureWorkloadContainer() (BasicAzureWorkloadContainer, bool) { 3021 return &aswcpc, true 3022} 3023 3024// AsDpmContainer is the BasicProtectionContainer implementation for AzureSQLAGWorkloadContainerProtectionContainer. 3025func (aswcpc AzureSQLAGWorkloadContainerProtectionContainer) AsDpmContainer() (*DpmContainer, bool) { 3026 return nil, false 3027} 3028 3029// AsBasicDpmContainer is the BasicProtectionContainer implementation for AzureSQLAGWorkloadContainerProtectionContainer. 3030func (aswcpc AzureSQLAGWorkloadContainerProtectionContainer) AsBasicDpmContainer() (BasicDpmContainer, bool) { 3031 return nil, false 3032} 3033 3034// AsGenericContainer is the BasicProtectionContainer implementation for AzureSQLAGWorkloadContainerProtectionContainer. 3035func (aswcpc AzureSQLAGWorkloadContainerProtectionContainer) AsGenericContainer() (*GenericContainer, bool) { 3036 return nil, false 3037} 3038 3039// AsIaaSVMContainer is the BasicProtectionContainer implementation for AzureSQLAGWorkloadContainerProtectionContainer. 3040func (aswcpc AzureSQLAGWorkloadContainerProtectionContainer) AsIaaSVMContainer() (*IaaSVMContainer, bool) { 3041 return nil, false 3042} 3043 3044// AsBasicIaaSVMContainer is the BasicProtectionContainer implementation for AzureSQLAGWorkloadContainerProtectionContainer. 3045func (aswcpc AzureSQLAGWorkloadContainerProtectionContainer) AsBasicIaaSVMContainer() (BasicIaaSVMContainer, bool) { 3046 return nil, false 3047} 3048 3049// AsMabContainer is the BasicProtectionContainer implementation for AzureSQLAGWorkloadContainerProtectionContainer. 3050func (aswcpc AzureSQLAGWorkloadContainerProtectionContainer) AsMabContainer() (*MabContainer, bool) { 3051 return nil, false 3052} 3053 3054// AsProtectionContainer is the BasicProtectionContainer implementation for AzureSQLAGWorkloadContainerProtectionContainer. 3055func (aswcpc AzureSQLAGWorkloadContainerProtectionContainer) AsProtectionContainer() (*ProtectionContainer, bool) { 3056 return nil, false 3057} 3058 3059// AsBasicProtectionContainer is the BasicProtectionContainer implementation for AzureSQLAGWorkloadContainerProtectionContainer. 3060func (aswcpc AzureSQLAGWorkloadContainerProtectionContainer) AsBasicProtectionContainer() (BasicProtectionContainer, bool) { 3061 return &aswcpc, true 3062} 3063 3064// AzureSQLContainer azure Sql workload-specific container. 3065type AzureSQLContainer struct { 3066 // FriendlyName - Friendly name of the container. 3067 FriendlyName *string `json:"friendlyName,omitempty"` 3068 // BackupManagementType - Type of backup management for the container. Possible values include: 'ManagementTypeInvalid', 'ManagementTypeAzureIaasVM', 'ManagementTypeMAB', 'ManagementTypeDPM', 'ManagementTypeAzureBackupServer', 'ManagementTypeAzureSQL', 'ManagementTypeAzureStorage', 'ManagementTypeAzureWorkload', 'ManagementTypeDefaultBackup' 3069 BackupManagementType ManagementType `json:"backupManagementType,omitempty"` 3070 // RegistrationStatus - Status of registration of the container with the Recovery Services Vault. 3071 RegistrationStatus *string `json:"registrationStatus,omitempty"` 3072 // HealthStatus - Status of health of the container. 3073 HealthStatus *string `json:"healthStatus,omitempty"` 3074 // ContainerType - Possible values include: 'ContainerTypeProtectionContainer', 'ContainerTypeAzureBackupServerContainer1', 'ContainerTypeMicrosoftClassicComputevirtualMachines', 'ContainerTypeMicrosoftComputevirtualMachines', 'ContainerTypeSQLAGWorkLoadContainer1', 'ContainerTypeAzureSQLContainer1', 'ContainerTypeStorageContainer1', 'ContainerTypeVMAppContainer1', 'ContainerTypeAzureWorkloadContainer', 'ContainerTypeDPMContainer1', 'ContainerTypeGenericContainer1', 'ContainerTypeIaaSVMContainer', 'ContainerTypeWindows1' 3075 ContainerType ContainerTypeBasicProtectionContainer `json:"containerType,omitempty"` 3076} 3077 3078// MarshalJSON is the custom marshaler for AzureSQLContainer. 3079func (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// AsAzureBackupServerContainer is the BasicProtectionContainer implementation for AzureSQLContainer. 3101func (asc AzureSQLContainer) AsAzureBackupServerContainer() (*AzureBackupServerContainer, bool) { 3102 return nil, false 3103} 3104 3105// AsAzureIaaSClassicComputeVMContainer is the BasicProtectionContainer implementation for AzureSQLContainer. 3106func (asc AzureSQLContainer) AsAzureIaaSClassicComputeVMContainer() (*AzureIaaSClassicComputeVMContainer, bool) { 3107 return nil, false 3108} 3109 3110// AsAzureIaaSComputeVMContainer is the BasicProtectionContainer implementation for AzureSQLContainer. 3111func (asc AzureSQLContainer) AsAzureIaaSComputeVMContainer() (*AzureIaaSComputeVMContainer, bool) { 3112 return nil, false 3113} 3114 3115// AsAzureSQLAGWorkloadContainerProtectionContainer is the BasicProtectionContainer implementation for AzureSQLContainer. 3116func (asc AzureSQLContainer) AsAzureSQLAGWorkloadContainerProtectionContainer() (*AzureSQLAGWorkloadContainerProtectionContainer, bool) { 3117 return nil, false 3118} 3119 3120// AsAzureSQLContainer is the BasicProtectionContainer implementation for AzureSQLContainer. 3121func (asc AzureSQLContainer) AsAzureSQLContainer() (*AzureSQLContainer, bool) { 3122 return &asc, true 3123} 3124 3125// AsAzureStorageContainer is the BasicProtectionContainer implementation for AzureSQLContainer. 3126func (asc AzureSQLContainer) AsAzureStorageContainer() (*AzureStorageContainer, bool) { 3127 return nil, false 3128} 3129 3130// AsAzureVMAppContainerProtectionContainer is the BasicProtectionContainer implementation for AzureSQLContainer. 3131func (asc AzureSQLContainer) AsAzureVMAppContainerProtectionContainer() (*AzureVMAppContainerProtectionContainer, bool) { 3132 return nil, false 3133} 3134 3135// AsAzureWorkloadContainer is the BasicProtectionContainer implementation for AzureSQLContainer. 3136func (asc AzureSQLContainer) AsAzureWorkloadContainer() (*AzureWorkloadContainer, bool) { 3137 return nil, false 3138} 3139 3140// AsBasicAzureWorkloadContainer is the BasicProtectionContainer implementation for AzureSQLContainer. 3141func (asc AzureSQLContainer) AsBasicAzureWorkloadContainer() (BasicAzureWorkloadContainer, bool) { 3142 return nil, false 3143} 3144 3145// AsDpmContainer is the BasicProtectionContainer implementation for AzureSQLContainer. 3146func (asc AzureSQLContainer) AsDpmContainer() (*DpmContainer, bool) { 3147 return nil, false 3148} 3149 3150// AsBasicDpmContainer is the BasicProtectionContainer implementation for AzureSQLContainer. 3151func (asc AzureSQLContainer) AsBasicDpmContainer() (BasicDpmContainer, bool) { 3152 return nil, false 3153} 3154 3155// AsGenericContainer is the BasicProtectionContainer implementation for AzureSQLContainer. 3156func (asc AzureSQLContainer) AsGenericContainer() (*GenericContainer, bool) { 3157 return nil, false 3158} 3159 3160// AsIaaSVMContainer is the BasicProtectionContainer implementation for AzureSQLContainer. 3161func (asc AzureSQLContainer) AsIaaSVMContainer() (*IaaSVMContainer, bool) { 3162 return nil, false 3163} 3164 3165// AsBasicIaaSVMContainer is the BasicProtectionContainer implementation for AzureSQLContainer. 3166func (asc AzureSQLContainer) AsBasicIaaSVMContainer() (BasicIaaSVMContainer, bool) { 3167 return nil, false 3168} 3169 3170// AsMabContainer is the BasicProtectionContainer implementation for AzureSQLContainer. 3171func (asc AzureSQLContainer) AsMabContainer() (*MabContainer, bool) { 3172 return nil, false 3173} 3174 3175// AsProtectionContainer is the BasicProtectionContainer implementation for AzureSQLContainer. 3176func (asc AzureSQLContainer) AsProtectionContainer() (*ProtectionContainer, bool) { 3177 return nil, false 3178} 3179 3180// AsBasicProtectionContainer is the BasicProtectionContainer implementation for AzureSQLContainer. 3181func (asc AzureSQLContainer) AsBasicProtectionContainer() (BasicProtectionContainer, bool) { 3182 return &asc, true 3183} 3184 3185// AzureSQLProtectedItem azure SQL workload-specific backup item. 3186type AzureSQLProtectedItem struct { 3187 // ProtectedItemDataID - Internal ID of a backup item. Used by Azure SQL Backup engine to contact Recovery Services. 3188 ProtectedItemDataID *string `json:"protectedItemDataId,omitempty"` 3189 // ProtectionState - Backup state of the backed up item. Possible values include: 'ProtectedItemStateInvalid', 'ProtectedItemStateIRPending', 'ProtectedItemStateProtected', 'ProtectedItemStateProtectionError', 'ProtectedItemStateProtectionStopped', 'ProtectedItemStateProtectionPaused' 3190 ProtectionState ProtectedItemState `json:"protectionState,omitempty"` 3191 // ExtendedInfo - Additional information for this backup item. 3192 ExtendedInfo *AzureSQLProtectedItemExtendedInfo `json:"extendedInfo,omitempty"` 3193 // BackupManagementType - Type of backup management for the backed up item. Possible values include: 'ManagementTypeInvalid', 'ManagementTypeAzureIaasVM', 'ManagementTypeMAB', 'ManagementTypeDPM', 'ManagementTypeAzureBackupServer', 'ManagementTypeAzureSQL', 'ManagementTypeAzureStorage', 'ManagementTypeAzureWorkload', 'ManagementTypeDefaultBackup' 3194 BackupManagementType ManagementType `json:"backupManagementType,omitempty"` 3195 // WorkloadType - Type of workload this item represents. Possible values include: 'DataSourceTypeInvalid', 'DataSourceTypeVM', 'DataSourceTypeFileFolder', 'DataSourceTypeAzureSQLDb', 'DataSourceTypeSQLDB', 'DataSourceTypeExchange', 'DataSourceTypeSharepoint', 'DataSourceTypeVMwareVM', 'DataSourceTypeSystemState', 'DataSourceTypeClient', 'DataSourceTypeGenericDataSource', 'DataSourceTypeSQLDataBase', 'DataSourceTypeAzureFileShare', 'DataSourceTypeSAPHanaDatabase', 'DataSourceTypeSAPAseDatabase' 3196 WorkloadType DataSourceType `json:"workloadType,omitempty"` 3197 // ContainerName - Unique name of container 3198 ContainerName *string `json:"containerName,omitempty"` 3199 // SourceResourceID - ARM ID of the resource to be backed up. 3200 SourceResourceID *string `json:"sourceResourceId,omitempty"` 3201 // PolicyID - ID of the backup policy with which this item is backed up. 3202 PolicyID *string `json:"policyId,omitempty"` 3203 // LastRecoveryPoint - Timestamp when the last (latest) backup copy was created for this backup item. 3204 LastRecoveryPoint *date.Time `json:"lastRecoveryPoint,omitempty"` 3205 // BackupSetName - Name of the backup set the backup item belongs to 3206 BackupSetName *string `json:"backupSetName,omitempty"` 3207 // CreateMode - Create mode to indicate recovery of existing soft deleted data source or creation of new data source. Possible values include: 'CreateModeInvalid', 'CreateModeDefault', 'CreateModeRecover' 3208 CreateMode CreateMode `json:"createMode,omitempty"` 3209 // DeferredDeleteTimeInUTC - Time for deferred deletion in UTC 3210 DeferredDeleteTimeInUTC *date.Time `json:"deferredDeleteTimeInUTC,omitempty"` 3211 // IsScheduledForDeferredDelete - Flag to identify whether the DS is scheduled for deferred delete 3212 IsScheduledForDeferredDelete *bool `json:"isScheduledForDeferredDelete,omitempty"` 3213 // DeferredDeleteTimeRemaining - Time remaining before the DS marked for deferred delete is permanently deleted 3214 DeferredDeleteTimeRemaining *string `json:"deferredDeleteTimeRemaining,omitempty"` 3215 // IsDeferredDeleteScheduleUpcoming - Flag to identify whether the deferred deleted DS is to be purged soon 3216 IsDeferredDeleteScheduleUpcoming *bool `json:"isDeferredDeleteScheduleUpcoming,omitempty"` 3217 // IsRehydrate - Flag to identify that deferred deleted DS is to be moved into Pause state 3218 IsRehydrate *bool `json:"isRehydrate,omitempty"` 3219 // ProtectedItemType - Possible values include: 'ProtectedItemTypeProtectedItem', 'ProtectedItemTypeAzureFileShareProtectedItem', 'ProtectedItemTypeMicrosoftClassicComputevirtualMachines', 'ProtectedItemTypeMicrosoftComputevirtualMachines', 'ProtectedItemTypeAzureIaaSVMProtectedItem', 'ProtectedItemTypeMicrosoftSqlserversdatabases', 'ProtectedItemTypeAzureVMWorkloadProtectedItem', 'ProtectedItemTypeAzureVMWorkloadSAPAseDatabase', 'ProtectedItemTypeAzureVMWorkloadSAPHanaDatabase', 'ProtectedItemTypeAzureVMWorkloadSQLDatabase', 'ProtectedItemTypeDPMProtectedItem', 'ProtectedItemTypeGenericProtectedItem', 'ProtectedItemTypeMabFileFolderProtectedItem' 3220 ProtectedItemType ProtectedItemType `json:"protectedItemType,omitempty"` 3221} 3222 3223// MarshalJSON is the custom marshaler for AzureSQLProtectedItem. 3224func (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// AsAzureFileshareProtectedItem is the BasicProtectedItem implementation for AzureSQLProtectedItem. 3282func (aspi AzureSQLProtectedItem) AsAzureFileshareProtectedItem() (*AzureFileshareProtectedItem, bool) { 3283 return nil, false 3284} 3285 3286// AsAzureIaaSClassicComputeVMProtectedItem is the BasicProtectedItem implementation for AzureSQLProtectedItem. 3287func (aspi AzureSQLProtectedItem) AsAzureIaaSClassicComputeVMProtectedItem() (*AzureIaaSClassicComputeVMProtectedItem, bool) { 3288 return nil, false 3289} 3290 3291// AsAzureIaaSComputeVMProtectedItem is the BasicProtectedItem implementation for AzureSQLProtectedItem. 3292func (aspi AzureSQLProtectedItem) AsAzureIaaSComputeVMProtectedItem() (*AzureIaaSComputeVMProtectedItem, bool) { 3293 return nil, false 3294} 3295 3296// AsAzureIaaSVMProtectedItem is the BasicProtectedItem implementation for AzureSQLProtectedItem. 3297func (aspi AzureSQLProtectedItem) AsAzureIaaSVMProtectedItem() (*AzureIaaSVMProtectedItem, bool) { 3298 return nil, false 3299} 3300 3301// AsBasicAzureIaaSVMProtectedItem is the BasicProtectedItem implementation for AzureSQLProtectedItem. 3302func (aspi AzureSQLProtectedItem) AsBasicAzureIaaSVMProtectedItem() (BasicAzureIaaSVMProtectedItem, bool) { 3303 return nil, false 3304} 3305 3306// AsAzureSQLProtectedItem is the BasicProtectedItem implementation for AzureSQLProtectedItem. 3307func (aspi AzureSQLProtectedItem) AsAzureSQLProtectedItem() (*AzureSQLProtectedItem, bool) { 3308 return &aspi, true 3309} 3310 3311// AsAzureVMWorkloadProtectedItem is the BasicProtectedItem implementation for AzureSQLProtectedItem. 3312func (aspi AzureSQLProtectedItem) AsAzureVMWorkloadProtectedItem() (*AzureVMWorkloadProtectedItem, bool) { 3313 return nil, false 3314} 3315 3316// AsBasicAzureVMWorkloadProtectedItem is the BasicProtectedItem implementation for AzureSQLProtectedItem. 3317func (aspi AzureSQLProtectedItem) AsBasicAzureVMWorkloadProtectedItem() (BasicAzureVMWorkloadProtectedItem, bool) { 3318 return nil, false 3319} 3320 3321// AsAzureVMWorkloadSAPAseDatabaseProtectedItem is the BasicProtectedItem implementation for AzureSQLProtectedItem. 3322func (aspi AzureSQLProtectedItem) AsAzureVMWorkloadSAPAseDatabaseProtectedItem() (*AzureVMWorkloadSAPAseDatabaseProtectedItem, bool) { 3323 return nil, false 3324} 3325 3326// AsAzureVMWorkloadSAPHanaDatabaseProtectedItem is the BasicProtectedItem implementation for AzureSQLProtectedItem. 3327func (aspi AzureSQLProtectedItem) AsAzureVMWorkloadSAPHanaDatabaseProtectedItem() (*AzureVMWorkloadSAPHanaDatabaseProtectedItem, bool) { 3328 return nil, false 3329} 3330 3331// AsAzureVMWorkloadSQLDatabaseProtectedItem is the BasicProtectedItem implementation for AzureSQLProtectedItem. 3332func (aspi AzureSQLProtectedItem) AsAzureVMWorkloadSQLDatabaseProtectedItem() (*AzureVMWorkloadSQLDatabaseProtectedItem, bool) { 3333 return nil, false 3334} 3335 3336// AsDPMProtectedItem is the BasicProtectedItem implementation for AzureSQLProtectedItem. 3337func (aspi AzureSQLProtectedItem) AsDPMProtectedItem() (*DPMProtectedItem, bool) { 3338 return nil, false 3339} 3340 3341// AsGenericProtectedItem is the BasicProtectedItem implementation for AzureSQLProtectedItem. 3342func (aspi AzureSQLProtectedItem) AsGenericProtectedItem() (*GenericProtectedItem, bool) { 3343 return nil, false 3344} 3345 3346// AsMabFileFolderProtectedItem is the BasicProtectedItem implementation for AzureSQLProtectedItem. 3347func (aspi AzureSQLProtectedItem) AsMabFileFolderProtectedItem() (*MabFileFolderProtectedItem, bool) { 3348 return nil, false 3349} 3350 3351// AsProtectedItem is the BasicProtectedItem implementation for AzureSQLProtectedItem. 3352func (aspi AzureSQLProtectedItem) AsProtectedItem() (*ProtectedItem, bool) { 3353 return nil, false 3354} 3355 3356// AsBasicProtectedItem is the BasicProtectedItem implementation for AzureSQLProtectedItem. 3357func (aspi AzureSQLProtectedItem) AsBasicProtectedItem() (BasicProtectedItem, bool) { 3358 return &aspi, true 3359} 3360 3361// AzureSQLProtectedItemExtendedInfo additional information on Azure Sql specific protected item. 3362type AzureSQLProtectedItemExtendedInfo struct { 3363 // OldestRecoveryPoint - The oldest backup copy available for this item in the service. 3364 OldestRecoveryPoint *date.Time `json:"oldestRecoveryPoint,omitempty"` 3365 // RecoveryPointCount - Number of available backup copies associated with this backup item. 3366 RecoveryPointCount *int32 `json:"recoveryPointCount,omitempty"` 3367 // PolicyState - State of the backup policy associated with this backup item. 3368 PolicyState *string `json:"policyState,omitempty"` 3369} 3370 3371// AzureSQLProtectionPolicy azure SQL workload-specific backup policy. 3372type AzureSQLProtectionPolicy struct { 3373 // RetentionPolicy - Retention policy details. 3374 RetentionPolicy BasicRetentionPolicy `json:"retentionPolicy,omitempty"` 3375 // ProtectedItemsCount - Number of items associated with this policy. 3376 ProtectedItemsCount *int32 `json:"protectedItemsCount,omitempty"` 3377 // BackupManagementType - Possible values include: 'BackupManagementTypeProtectionPolicy', 'BackupManagementTypeAzureWorkload', 'BackupManagementTypeAzureStorage', 'BackupManagementTypeAzureIaasVM', 'BackupManagementTypeAzureSQL', 'BackupManagementTypeGenericProtectionPolicy', 'BackupManagementTypeMAB' 3378 BackupManagementType ManagementTypeBasicProtectionPolicy `json:"backupManagementType,omitempty"` 3379} 3380 3381// MarshalJSON is the custom marshaler for AzureSQLProtectionPolicy. 3382func (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// AsAzureVMWorkloadProtectionPolicy is the BasicProtectionPolicy implementation for AzureSQLProtectionPolicy. 3396func (aspp AzureSQLProtectionPolicy) AsAzureVMWorkloadProtectionPolicy() (*AzureVMWorkloadProtectionPolicy, bool) { 3397 return nil, false 3398} 3399 3400// AsAzureFileShareProtectionPolicy is the BasicProtectionPolicy implementation for AzureSQLProtectionPolicy. 3401func (aspp AzureSQLProtectionPolicy) AsAzureFileShareProtectionPolicy() (*AzureFileShareProtectionPolicy, bool) { 3402 return nil, false 3403} 3404 3405// AsAzureIaaSVMProtectionPolicy is the BasicProtectionPolicy implementation for AzureSQLProtectionPolicy. 3406func (aspp AzureSQLProtectionPolicy) AsAzureIaaSVMProtectionPolicy() (*AzureIaaSVMProtectionPolicy, bool) { 3407 return nil, false 3408} 3409 3410// AsAzureSQLProtectionPolicy is the BasicProtectionPolicy implementation for AzureSQLProtectionPolicy. 3411func (aspp AzureSQLProtectionPolicy) AsAzureSQLProtectionPolicy() (*AzureSQLProtectionPolicy, bool) { 3412 return &aspp, true 3413} 3414 3415// AsGenericProtectionPolicy is the BasicProtectionPolicy implementation for AzureSQLProtectionPolicy. 3416func (aspp AzureSQLProtectionPolicy) AsGenericProtectionPolicy() (*GenericProtectionPolicy, bool) { 3417 return nil, false 3418} 3419 3420// AsMabProtectionPolicy is the BasicProtectionPolicy implementation for AzureSQLProtectionPolicy. 3421func (aspp AzureSQLProtectionPolicy) AsMabProtectionPolicy() (*MabProtectionPolicy, bool) { 3422 return nil, false 3423} 3424 3425// AsProtectionPolicy is the BasicProtectionPolicy implementation for AzureSQLProtectionPolicy. 3426func (aspp AzureSQLProtectionPolicy) AsProtectionPolicy() (*ProtectionPolicy, bool) { 3427 return nil, false 3428} 3429 3430// AsBasicProtectionPolicy is the BasicProtectionPolicy implementation for AzureSQLProtectionPolicy. 3431func (aspp AzureSQLProtectionPolicy) AsBasicProtectionPolicy() (BasicProtectionPolicy, bool) { 3432 return &aspp, true 3433} 3434 3435// UnmarshalJSON is the custom unmarshaler for AzureSQLProtectionPolicy struct. 3436func (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// AzureStorageContainer azure Storage Account workload-specific container. 3477type AzureStorageContainer struct { 3478 // SourceResourceID - Fully qualified ARM url. 3479 SourceResourceID *string `json:"sourceResourceId,omitempty"` 3480 // StorageAccountVersion - Storage account version. 3481 StorageAccountVersion *string `json:"storageAccountVersion,omitempty"` 3482 // ResourceGroup - Resource group name of Recovery Services Vault. 3483 ResourceGroup *string `json:"resourceGroup,omitempty"` 3484 // ProtectedItemCount - Number of items backed up in this container. 3485 ProtectedItemCount *int64 `json:"protectedItemCount,omitempty"` 3486 // FriendlyName - Friendly name of the container. 3487 FriendlyName *string `json:"friendlyName,omitempty"` 3488 // BackupManagementType - Type of backup management for the container. Possible values include: 'ManagementTypeInvalid', 'ManagementTypeAzureIaasVM', 'ManagementTypeMAB', 'ManagementTypeDPM', 'ManagementTypeAzureBackupServer', 'ManagementTypeAzureSQL', 'ManagementTypeAzureStorage', 'ManagementTypeAzureWorkload', 'ManagementTypeDefaultBackup' 3489 BackupManagementType ManagementType `json:"backupManagementType,omitempty"` 3490 // RegistrationStatus - Status of registration of the container with the Recovery Services Vault. 3491 RegistrationStatus *string `json:"registrationStatus,omitempty"` 3492 // HealthStatus - Status of health of the container. 3493 HealthStatus *string `json:"healthStatus,omitempty"` 3494 // ContainerType - Possible values include: 'ContainerTypeProtectionContainer', 'ContainerTypeAzureBackupServerContainer1', 'ContainerTypeMicrosoftClassicComputevirtualMachines', 'ContainerTypeMicrosoftComputevirtualMachines', 'ContainerTypeSQLAGWorkLoadContainer1', 'ContainerTypeAzureSQLContainer1', 'ContainerTypeStorageContainer1', 'ContainerTypeVMAppContainer1', 'ContainerTypeAzureWorkloadContainer', 'ContainerTypeDPMContainer1', 'ContainerTypeGenericContainer1', 'ContainerTypeIaaSVMContainer', 'ContainerTypeWindows1' 3495 ContainerType ContainerTypeBasicProtectionContainer `json:"containerType,omitempty"` 3496} 3497 3498// MarshalJSON is the custom marshaler for AzureStorageContainer. 3499func (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// AsAzureBackupServerContainer is the BasicProtectionContainer implementation for AzureStorageContainer. 3533func (asc AzureStorageContainer) AsAzureBackupServerContainer() (*AzureBackupServerContainer, bool) { 3534 return nil, false 3535} 3536 3537// AsAzureIaaSClassicComputeVMContainer is the BasicProtectionContainer implementation for AzureStorageContainer. 3538func (asc AzureStorageContainer) AsAzureIaaSClassicComputeVMContainer() (*AzureIaaSClassicComputeVMContainer, bool) { 3539 return nil, false 3540} 3541 3542// AsAzureIaaSComputeVMContainer is the BasicProtectionContainer implementation for AzureStorageContainer. 3543func (asc AzureStorageContainer) AsAzureIaaSComputeVMContainer() (*AzureIaaSComputeVMContainer, bool) { 3544 return nil, false 3545} 3546 3547// AsAzureSQLAGWorkloadContainerProtectionContainer is the BasicProtectionContainer implementation for AzureStorageContainer. 3548func (asc AzureStorageContainer) AsAzureSQLAGWorkloadContainerProtectionContainer() (*AzureSQLAGWorkloadContainerProtectionContainer, bool) { 3549 return nil, false 3550} 3551 3552// AsAzureSQLContainer is the BasicProtectionContainer implementation for AzureStorageContainer. 3553func (asc AzureStorageContainer) AsAzureSQLContainer() (*AzureSQLContainer, bool) { 3554 return nil, false 3555} 3556 3557// AsAzureStorageContainer is the BasicProtectionContainer implementation for AzureStorageContainer. 3558func (asc AzureStorageContainer) AsAzureStorageContainer() (*AzureStorageContainer, bool) { 3559 return &asc, true 3560} 3561 3562// AsAzureVMAppContainerProtectionContainer is the BasicProtectionContainer implementation for AzureStorageContainer. 3563func (asc AzureStorageContainer) AsAzureVMAppContainerProtectionContainer() (*AzureVMAppContainerProtectionContainer, bool) { 3564 return nil, false 3565} 3566 3567// AsAzureWorkloadContainer is the BasicProtectionContainer implementation for AzureStorageContainer. 3568func (asc AzureStorageContainer) AsAzureWorkloadContainer() (*AzureWorkloadContainer, bool) { 3569 return nil, false 3570} 3571 3572// AsBasicAzureWorkloadContainer is the BasicProtectionContainer implementation for AzureStorageContainer. 3573func (asc AzureStorageContainer) AsBasicAzureWorkloadContainer() (BasicAzureWorkloadContainer, bool) { 3574 return nil, false 3575} 3576 3577// AsDpmContainer is the BasicProtectionContainer implementation for AzureStorageContainer. 3578func (asc AzureStorageContainer) AsDpmContainer() (*DpmContainer, bool) { 3579 return nil, false 3580} 3581 3582// AsBasicDpmContainer is the BasicProtectionContainer implementation for AzureStorageContainer. 3583func (asc AzureStorageContainer) AsBasicDpmContainer() (BasicDpmContainer, bool) { 3584 return nil, false 3585} 3586 3587// AsGenericContainer is the BasicProtectionContainer implementation for AzureStorageContainer. 3588func (asc AzureStorageContainer) AsGenericContainer() (*GenericContainer, bool) { 3589 return nil, false 3590} 3591 3592// AsIaaSVMContainer is the BasicProtectionContainer implementation for AzureStorageContainer. 3593func (asc AzureStorageContainer) AsIaaSVMContainer() (*IaaSVMContainer, bool) { 3594 return nil, false 3595} 3596 3597// AsBasicIaaSVMContainer is the BasicProtectionContainer implementation for AzureStorageContainer. 3598func (asc AzureStorageContainer) AsBasicIaaSVMContainer() (BasicIaaSVMContainer, bool) { 3599 return nil, false 3600} 3601 3602// AsMabContainer is the BasicProtectionContainer implementation for AzureStorageContainer. 3603func (asc AzureStorageContainer) AsMabContainer() (*MabContainer, bool) { 3604 return nil, false 3605} 3606 3607// AsProtectionContainer is the BasicProtectionContainer implementation for AzureStorageContainer. 3608func (asc AzureStorageContainer) AsProtectionContainer() (*ProtectionContainer, bool) { 3609 return nil, false 3610} 3611 3612// AsBasicProtectionContainer is the BasicProtectionContainer implementation for AzureStorageContainer. 3613func (asc AzureStorageContainer) AsBasicProtectionContainer() (BasicProtectionContainer, bool) { 3614 return &asc, true 3615} 3616 3617// AzureStorageErrorInfo azure storage specific error information 3618type AzureStorageErrorInfo struct { 3619 // ErrorCode - Error code. 3620 ErrorCode *int32 `json:"errorCode,omitempty"` 3621 // ErrorString - Localized error string. 3622 ErrorString *string `json:"errorString,omitempty"` 3623 // Recommendations - List of localized recommendations for above error code. 3624 Recommendations *[]string `json:"recommendations,omitempty"` 3625} 3626 3627// AzureStorageJob azure storage specific job. 3628type AzureStorageJob struct { 3629 // Duration - Time elapsed during the execution of this job. 3630 Duration *string `json:"duration,omitempty"` 3631 // ActionsInfo - Gets or sets the state/actions applicable on this job like cancel/retry. 3632 ActionsInfo *[]JobSupportedAction `json:"actionsInfo,omitempty"` 3633 // ErrorDetails - Error details on execution of this job. 3634 ErrorDetails *[]AzureStorageErrorInfo `json:"errorDetails,omitempty"` 3635 // StorageAccountName - Specifies friendly name of the storage account. 3636 StorageAccountName *string `json:"storageAccountName,omitempty"` 3637 // StorageAccountVersion - Specifies whether the Storage account is a Classic or an Azure Resource Manager Storage account. 3638 StorageAccountVersion *string `json:"storageAccountVersion,omitempty"` 3639 // ExtendedInfo - Additional information about the job. 3640 ExtendedInfo *AzureStorageJobExtendedInfo `json:"extendedInfo,omitempty"` 3641 // EntityFriendlyName - Friendly name of the entity on which the current job is executing. 3642 EntityFriendlyName *string `json:"entityFriendlyName,omitempty"` 3643 // BackupManagementType - Backup management type to execute the current job. Possible values include: 'ManagementTypeInvalid', 'ManagementTypeAzureIaasVM', 'ManagementTypeMAB', 'ManagementTypeDPM', 'ManagementTypeAzureBackupServer', 'ManagementTypeAzureSQL', 'ManagementTypeAzureStorage', 'ManagementTypeAzureWorkload', 'ManagementTypeDefaultBackup' 3644 BackupManagementType ManagementType `json:"backupManagementType,omitempty"` 3645 // Operation - The operation name. 3646 Operation *string `json:"operation,omitempty"` 3647 // Status - Job status. 3648 Status *string `json:"status,omitempty"` 3649 // StartTime - The start time. 3650 StartTime *date.Time `json:"startTime,omitempty"` 3651 // EndTime - The end time. 3652 EndTime *date.Time `json:"endTime,omitempty"` 3653 // ActivityID - ActivityId of job. 3654 ActivityID *string `json:"activityId,omitempty"` 3655 // JobType - Possible values include: 'JobTypeJob', 'JobTypeAzureIaaSVMJob', 'JobTypeAzureStorageJob', 'JobTypeAzureWorkloadJob', 'JobTypeDpmJob', 'JobTypeMabJob' 3656 JobType JobType `json:"jobType,omitempty"` 3657} 3658 3659// MarshalJSON is the custom marshaler for AzureStorageJob. 3660func (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// AsAzureIaaSVMJob is the BasicJob implementation for AzureStorageJob. 3709func (asj AzureStorageJob) AsAzureIaaSVMJob() (*AzureIaaSVMJob, bool) { 3710 return nil, false 3711} 3712 3713// AsAzureStorageJob is the BasicJob implementation for AzureStorageJob. 3714func (asj AzureStorageJob) AsAzureStorageJob() (*AzureStorageJob, bool) { 3715 return &asj, true 3716} 3717 3718// AsAzureWorkloadJob is the BasicJob implementation for AzureStorageJob. 3719func (asj AzureStorageJob) AsAzureWorkloadJob() (*AzureWorkloadJob, bool) { 3720 return nil, false 3721} 3722 3723// AsDpmJob is the BasicJob implementation for AzureStorageJob. 3724func (asj AzureStorageJob) AsDpmJob() (*DpmJob, bool) { 3725 return nil, false 3726} 3727 3728// AsMabJob is the BasicJob implementation for AzureStorageJob. 3729func (asj AzureStorageJob) AsMabJob() (*MabJob, bool) { 3730 return nil, false 3731} 3732 3733// AsJob is the BasicJob implementation for AzureStorageJob. 3734func (asj AzureStorageJob) AsJob() (*Job, bool) { 3735 return nil, false 3736} 3737 3738// AsBasicJob is the BasicJob implementation for AzureStorageJob. 3739func (asj AzureStorageJob) AsBasicJob() (BasicJob, bool) { 3740 return &asj, true 3741} 3742 3743// AzureStorageJobExtendedInfo azure Storage workload-specific additional information for job. 3744type AzureStorageJobExtendedInfo struct { 3745 // TasksList - List of tasks for this job 3746 TasksList *[]AzureStorageJobTaskDetails `json:"tasksList,omitempty"` 3747 // PropertyBag - Job properties. 3748 PropertyBag map[string]*string `json:"propertyBag"` 3749 // DynamicErrorMessage - Non localized error message on job execution. 3750 DynamicErrorMessage *string `json:"dynamicErrorMessage,omitempty"` 3751} 3752 3753// MarshalJSON is the custom marshaler for AzureStorageJobExtendedInfo. 3754func (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// AzureStorageJobTaskDetails azure storage workload specific job task details. 3769type AzureStorageJobTaskDetails struct { 3770 // TaskID - The task display name. 3771 TaskID *string `json:"taskId,omitempty"` 3772 // Status - The status. 3773 Status *string `json:"status,omitempty"` 3774} 3775 3776// AzureStorageProtectableContainer azure Storage-specific protectable containers 3777type AzureStorageProtectableContainer struct { 3778 // FriendlyName - Friendly name of the container. 3779 FriendlyName *string `json:"friendlyName,omitempty"` 3780 // BackupManagementType - Type of backup management for the container. Possible values include: 'ManagementTypeInvalid', 'ManagementTypeAzureIaasVM', 'ManagementTypeMAB', 'ManagementTypeDPM', 'ManagementTypeAzureBackupServer', 'ManagementTypeAzureSQL', 'ManagementTypeAzureStorage', 'ManagementTypeAzureWorkload', 'ManagementTypeDefaultBackup' 3781 BackupManagementType ManagementType `json:"backupManagementType,omitempty"` 3782 // HealthStatus - Status of health of the container. 3783 HealthStatus *string `json:"healthStatus,omitempty"` 3784 // ContainerID - Fabric Id of the container such as ARM Id. 3785 ContainerID *string `json:"containerId,omitempty"` 3786 // ProtectableContainerType - Possible values include: 'ProtectableContainerTypeProtectableContainer', 'ProtectableContainerTypeStorageContainer', 'ProtectableContainerTypeVMAppContainer' 3787 ProtectableContainerType ProtectableContainerType `json:"protectableContainerType,omitempty"` 3788} 3789 3790// MarshalJSON is the custom marshaler for AzureStorageProtectableContainer. 3791func (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// AsAzureStorageProtectableContainer is the BasicProtectableContainer implementation for AzureStorageProtectableContainer. 3813func (aspc AzureStorageProtectableContainer) AsAzureStorageProtectableContainer() (*AzureStorageProtectableContainer, bool) { 3814 return &aspc, true 3815} 3816 3817// AsAzureVMAppContainerProtectableContainer is the BasicProtectableContainer implementation for AzureStorageProtectableContainer. 3818func (aspc AzureStorageProtectableContainer) AsAzureVMAppContainerProtectableContainer() (*AzureVMAppContainerProtectableContainer, bool) { 3819 return nil, false 3820} 3821 3822// AsProtectableContainer is the BasicProtectableContainer implementation for AzureStorageProtectableContainer. 3823func (aspc AzureStorageProtectableContainer) AsProtectableContainer() (*ProtectableContainer, bool) { 3824 return nil, false 3825} 3826 3827// AsBasicProtectableContainer is the BasicProtectableContainer implementation for AzureStorageProtectableContainer. 3828func (aspc AzureStorageProtectableContainer) AsBasicProtectableContainer() (BasicProtectableContainer, bool) { 3829 return &aspc, true 3830} 3831 3832// AzureVMAppContainerProtectableContainer azure workload-specific container 3833type AzureVMAppContainerProtectableContainer struct { 3834 // FriendlyName - Friendly name of the container. 3835 FriendlyName *string `json:"friendlyName,omitempty"` 3836 // BackupManagementType - Type of backup management for the container. Possible values include: 'ManagementTypeInvalid', 'ManagementTypeAzureIaasVM', 'ManagementTypeMAB', 'ManagementTypeDPM', 'ManagementTypeAzureBackupServer', 'ManagementTypeAzureSQL', 'ManagementTypeAzureStorage', 'ManagementTypeAzureWorkload', 'ManagementTypeDefaultBackup' 3837 BackupManagementType ManagementType `json:"backupManagementType,omitempty"` 3838 // HealthStatus - Status of health of the container. 3839 HealthStatus *string `json:"healthStatus,omitempty"` 3840 // ContainerID - Fabric Id of the container such as ARM Id. 3841 ContainerID *string `json:"containerId,omitempty"` 3842 // ProtectableContainerType - Possible values include: 'ProtectableContainerTypeProtectableContainer', 'ProtectableContainerTypeStorageContainer', 'ProtectableContainerTypeVMAppContainer' 3843 ProtectableContainerType ProtectableContainerType `json:"protectableContainerType,omitempty"` 3844} 3845 3846// MarshalJSON is the custom marshaler for AzureVMAppContainerProtectableContainer. 3847func (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// AsAzureStorageProtectableContainer is the BasicProtectableContainer implementation for AzureVMAppContainerProtectableContainer. 3869func (avacpc AzureVMAppContainerProtectableContainer) AsAzureStorageProtectableContainer() (*AzureStorageProtectableContainer, bool) { 3870 return nil, false 3871} 3872 3873// AsAzureVMAppContainerProtectableContainer is the BasicProtectableContainer implementation for AzureVMAppContainerProtectableContainer. 3874func (avacpc AzureVMAppContainerProtectableContainer) AsAzureVMAppContainerProtectableContainer() (*AzureVMAppContainerProtectableContainer, bool) { 3875 return &avacpc, true 3876} 3877 3878// AsProtectableContainer is the BasicProtectableContainer implementation for AzureVMAppContainerProtectableContainer. 3879func (avacpc AzureVMAppContainerProtectableContainer) AsProtectableContainer() (*ProtectableContainer, bool) { 3880 return nil, false 3881} 3882 3883// AsBasicProtectableContainer is the BasicProtectableContainer implementation for AzureVMAppContainerProtectableContainer. 3884func (avacpc AzureVMAppContainerProtectableContainer) AsBasicProtectableContainer() (BasicProtectableContainer, bool) { 3885 return &avacpc, true 3886} 3887 3888// AzureVMAppContainerProtectionContainer container for SQL workloads under Azure Virtual Machines. 3889type AzureVMAppContainerProtectionContainer struct { 3890 // SourceResourceID - ARM ID of the virtual machine represented by this Azure Workload Container 3891 SourceResourceID *string `json:"sourceResourceId,omitempty"` 3892 // LastUpdatedTime - Time stamp when this container was updated. 3893 LastUpdatedTime *date.Time `json:"lastUpdatedTime,omitempty"` 3894 // ExtendedInfo - Additional details of a workload container. 3895 ExtendedInfo *AzureWorkloadContainerExtendedInfo `json:"extendedInfo,omitempty"` 3896 // WorkloadType - Workload type for which registration was sent. Possible values include: 'WorkloadTypeInvalid', 'WorkloadTypeVM', 'WorkloadTypeFileFolder', 'WorkloadTypeAzureSQLDb', 'WorkloadTypeSQLDB', 'WorkloadTypeExchange', 'WorkloadTypeSharepoint', 'WorkloadTypeVMwareVM', 'WorkloadTypeSystemState', 'WorkloadTypeClient', 'WorkloadTypeGenericDataSource', 'WorkloadTypeSQLDataBase', 'WorkloadTypeAzureFileShare', 'WorkloadTypeSAPHanaDatabase', 'WorkloadTypeSAPAseDatabase' 3897 WorkloadType WorkloadType `json:"workloadType,omitempty"` 3898 // OperationType - Re-Do Operation. Possible values include: 'OperationTypeInvalid', 'OperationTypeRegister', 'OperationTypeReregister' 3899 OperationType OperationType `json:"operationType,omitempty"` 3900 // FriendlyName - Friendly name of the container. 3901 FriendlyName *string `json:"friendlyName,omitempty"` 3902 // BackupManagementType - Type of backup management for the container. Possible values include: 'ManagementTypeInvalid', 'ManagementTypeAzureIaasVM', 'ManagementTypeMAB', 'ManagementTypeDPM', 'ManagementTypeAzureBackupServer', 'ManagementTypeAzureSQL', 'ManagementTypeAzureStorage', 'ManagementTypeAzureWorkload', 'ManagementTypeDefaultBackup' 3903 BackupManagementType ManagementType `json:"backupManagementType,omitempty"` 3904 // RegistrationStatus - Status of registration of the container with the Recovery Services Vault. 3905 RegistrationStatus *string `json:"registrationStatus,omitempty"` 3906 // HealthStatus - Status of health of the container. 3907 HealthStatus *string `json:"healthStatus,omitempty"` 3908 // ContainerType - Possible values include: 'ContainerTypeProtectionContainer', 'ContainerTypeAzureBackupServerContainer1', 'ContainerTypeMicrosoftClassicComputevirtualMachines', 'ContainerTypeMicrosoftComputevirtualMachines', 'ContainerTypeSQLAGWorkLoadContainer1', 'ContainerTypeAzureSQLContainer1', 'ContainerTypeStorageContainer1', 'ContainerTypeVMAppContainer1', 'ContainerTypeAzureWorkloadContainer', 'ContainerTypeDPMContainer1', 'ContainerTypeGenericContainer1', 'ContainerTypeIaaSVMContainer', 'ContainerTypeWindows1' 3909 ContainerType ContainerTypeBasicProtectionContainer `json:"containerType,omitempty"` 3910} 3911 3912// MarshalJSON is the custom marshaler for AzureVMAppContainerProtectionContainer. 3913func (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// AsAzureBackupServerContainer is the BasicProtectionContainer implementation for AzureVMAppContainerProtectionContainer. 3950func (avacpc AzureVMAppContainerProtectionContainer) AsAzureBackupServerContainer() (*AzureBackupServerContainer, bool) { 3951 return nil, false 3952} 3953 3954// AsAzureIaaSClassicComputeVMContainer is the BasicProtectionContainer implementation for AzureVMAppContainerProtectionContainer. 3955func (avacpc AzureVMAppContainerProtectionContainer) AsAzureIaaSClassicComputeVMContainer() (*AzureIaaSClassicComputeVMContainer, bool) { 3956 return nil, false 3957} 3958 3959// AsAzureIaaSComputeVMContainer is the BasicProtectionContainer implementation for AzureVMAppContainerProtectionContainer. 3960func (avacpc AzureVMAppContainerProtectionContainer) AsAzureIaaSComputeVMContainer() (*AzureIaaSComputeVMContainer, bool) { 3961 return nil, false 3962} 3963 3964// AsAzureSQLAGWorkloadContainerProtectionContainer is the BasicProtectionContainer implementation for AzureVMAppContainerProtectionContainer. 3965func (avacpc AzureVMAppContainerProtectionContainer) AsAzureSQLAGWorkloadContainerProtectionContainer() (*AzureSQLAGWorkloadContainerProtectionContainer, bool) { 3966 return nil, false 3967} 3968 3969// AsAzureSQLContainer is the BasicProtectionContainer implementation for AzureVMAppContainerProtectionContainer. 3970func (avacpc AzureVMAppContainerProtectionContainer) AsAzureSQLContainer() (*AzureSQLContainer, bool) { 3971 return nil, false 3972} 3973 3974// AsAzureStorageContainer is the BasicProtectionContainer implementation for AzureVMAppContainerProtectionContainer. 3975func (avacpc AzureVMAppContainerProtectionContainer) AsAzureStorageContainer() (*AzureStorageContainer, bool) { 3976 return nil, false 3977} 3978 3979// AsAzureVMAppContainerProtectionContainer is the BasicProtectionContainer implementation for AzureVMAppContainerProtectionContainer. 3980func (avacpc AzureVMAppContainerProtectionContainer) AsAzureVMAppContainerProtectionContainer() (*AzureVMAppContainerProtectionContainer, bool) { 3981 return &avacpc, true 3982} 3983 3984// AsAzureWorkloadContainer is the BasicProtectionContainer implementation for AzureVMAppContainerProtectionContainer. 3985func (avacpc AzureVMAppContainerProtectionContainer) AsAzureWorkloadContainer() (*AzureWorkloadContainer, bool) { 3986 return nil, false 3987} 3988 3989// AsBasicAzureWorkloadContainer is the BasicProtectionContainer implementation for AzureVMAppContainerProtectionContainer. 3990func (avacpc AzureVMAppContainerProtectionContainer) AsBasicAzureWorkloadContainer() (BasicAzureWorkloadContainer, bool) { 3991 return &avacpc, true 3992} 3993 3994// AsDpmContainer is the BasicProtectionContainer implementation for AzureVMAppContainerProtectionContainer. 3995func (avacpc AzureVMAppContainerProtectionContainer) AsDpmContainer() (*DpmContainer, bool) { 3996 return nil, false 3997} 3998 3999// AsBasicDpmContainer is the BasicProtectionContainer implementation for AzureVMAppContainerProtectionContainer. 4000func (avacpc AzureVMAppContainerProtectionContainer) AsBasicDpmContainer() (BasicDpmContainer, bool) { 4001 return nil, false 4002} 4003 4004// AsGenericContainer is the BasicProtectionContainer implementation for AzureVMAppContainerProtectionContainer. 4005func (avacpc AzureVMAppContainerProtectionContainer) AsGenericContainer() (*GenericContainer, bool) { 4006 return nil, false 4007} 4008 4009// AsIaaSVMContainer is the BasicProtectionContainer implementation for AzureVMAppContainerProtectionContainer. 4010func (avacpc AzureVMAppContainerProtectionContainer) AsIaaSVMContainer() (*IaaSVMContainer, bool) { 4011 return nil, false 4012} 4013 4014// AsBasicIaaSVMContainer is the BasicProtectionContainer implementation for AzureVMAppContainerProtectionContainer. 4015func (avacpc AzureVMAppContainerProtectionContainer) AsBasicIaaSVMContainer() (BasicIaaSVMContainer, bool) { 4016 return nil, false 4017} 4018 4019// AsMabContainer is the BasicProtectionContainer implementation for AzureVMAppContainerProtectionContainer. 4020func (avacpc AzureVMAppContainerProtectionContainer) AsMabContainer() (*MabContainer, bool) { 4021 return nil, false 4022} 4023 4024// AsProtectionContainer is the BasicProtectionContainer implementation for AzureVMAppContainerProtectionContainer. 4025func (avacpc AzureVMAppContainerProtectionContainer) AsProtectionContainer() (*ProtectionContainer, bool) { 4026 return nil, false 4027} 4028 4029// AsBasicProtectionContainer is the BasicProtectionContainer implementation for AzureVMAppContainerProtectionContainer. 4030func (avacpc AzureVMAppContainerProtectionContainer) AsBasicProtectionContainer() (BasicProtectionContainer, bool) { 4031 return &avacpc, true 4032} 4033 4034// AzureVMResourceFeatureSupportRequest azureResource(IaaS VM) Specific feature support request 4035type AzureVMResourceFeatureSupportRequest struct { 4036 // VMSize - Size of the resource: VM size(A/D series etc) in case of IaasVM 4037 VMSize *string `json:"vmSize,omitempty"` 4038 // VMSku - SKUs (Premium/Managed etc) in case of IaasVM 4039 VMSku *string `json:"vmSku,omitempty"` 4040 // FeatureType - Possible values include: 'FeatureTypeFeatureSupportRequest', 'FeatureTypeAzureBackupGoals', 'FeatureTypeAzureVMResourceBackup' 4041 FeatureType FeatureType `json:"featureType,omitempty"` 4042} 4043 4044// MarshalJSON is the custom marshaler for AzureVMResourceFeatureSupportRequest. 4045func (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// AsAzureBackupGoalFeatureSupportRequest is the BasicFeatureSupportRequest implementation for AzureVMResourceFeatureSupportRequest. 4061func (avrfsr AzureVMResourceFeatureSupportRequest) AsAzureBackupGoalFeatureSupportRequest() (*AzureBackupGoalFeatureSupportRequest, bool) { 4062 return nil, false 4063} 4064 4065// AsAzureVMResourceFeatureSupportRequest is the BasicFeatureSupportRequest implementation for AzureVMResourceFeatureSupportRequest. 4066func (avrfsr AzureVMResourceFeatureSupportRequest) AsAzureVMResourceFeatureSupportRequest() (*AzureVMResourceFeatureSupportRequest, bool) { 4067 return &avrfsr, true 4068} 4069 4070// AsFeatureSupportRequest is the BasicFeatureSupportRequest implementation for AzureVMResourceFeatureSupportRequest. 4071func (avrfsr AzureVMResourceFeatureSupportRequest) AsFeatureSupportRequest() (*FeatureSupportRequest, bool) { 4072 return nil, false 4073} 4074 4075// AsBasicFeatureSupportRequest is the BasicFeatureSupportRequest implementation for AzureVMResourceFeatureSupportRequest. 4076func (avrfsr AzureVMResourceFeatureSupportRequest) AsBasicFeatureSupportRequest() (BasicFeatureSupportRequest, bool) { 4077 return &avrfsr, true 4078} 4079 4080// AzureVMResourceFeatureSupportResponse response for feature support requests for Azure IaasVm 4081type AzureVMResourceFeatureSupportResponse struct { 4082 autorest.Response `json:"-"` 4083 // SupportStatus - Support status of feature. Possible values include: 'SupportStatusInvalid', 'SupportStatusSupported', 'SupportStatusDefaultOFF', 'SupportStatusDefaultON', 'SupportStatusNotSupported' 4084 SupportStatus SupportStatus `json:"supportStatus,omitempty"` 4085} 4086 4087// BasicAzureVMWorkloadItem azure VM workload-specific workload item. 4088type 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// AzureVMWorkloadItem azure VM workload-specific workload item. 4099type AzureVMWorkloadItem struct { 4100 // ParentName - Name for instance or AG 4101 ParentName *string `json:"parentName,omitempty"` 4102 // ServerName - Host/Cluster Name for instance or AG 4103 ServerName *string `json:"serverName,omitempty"` 4104 // IsAutoProtectable - Indicates if workload item is auto-protectable 4105 IsAutoProtectable *bool `json:"isAutoProtectable,omitempty"` 4106 // Subinquireditemcount - For instance or AG, indicates number of DB's present 4107 Subinquireditemcount *int32 `json:"subinquireditemcount,omitempty"` 4108 // SubWorkloadItemCount - For instance or AG, indicates number of DB's to be protected 4109 SubWorkloadItemCount *int32 `json:"subWorkloadItemCount,omitempty"` 4110 // BackupManagementType - Type of backup management to backup an item. 4111 BackupManagementType *string `json:"backupManagementType,omitempty"` 4112 // WorkloadType - Type of workload for the backup management 4113 WorkloadType *string `json:"workloadType,omitempty"` 4114 // FriendlyName - Friendly name of the backup item. 4115 FriendlyName *string `json:"friendlyName,omitempty"` 4116 // ProtectionState - State of the back up item. Possible values include: 'ProtectionStatusInvalid', 'ProtectionStatusNotProtected', 'ProtectionStatusProtecting', 'ProtectionStatusProtected', 'ProtectionStatusProtectionFailed' 4117 ProtectionState ProtectionStatus `json:"protectionState,omitempty"` 4118 // WorkloadItemType - Possible values include: 'WorkloadItemTypeWorkloadItem', 'WorkloadItemTypeAzureVMWorkloadItem', 'WorkloadItemTypeSAPAseDatabase1', 'WorkloadItemTypeSAPAseSystem1', 'WorkloadItemTypeSAPHanaDatabase1', 'WorkloadItemTypeSAPHanaSystem1', 'WorkloadItemTypeSQLDataBase1', 'WorkloadItemTypeSQLInstance1' 4119 WorkloadItemType WorkloadItemTypeBasicWorkloadItem `json:"workloadItemType,omitempty"` 4120} 4121 4122func 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} 4160func 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// MarshalJSON is the custom marshaler for AzureVMWorkloadItem. 4180func (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// AsAzureVMWorkloadItem is the BasicWorkloadItem implementation for AzureVMWorkloadItem. 4217func (avwi AzureVMWorkloadItem) AsAzureVMWorkloadItem() (*AzureVMWorkloadItem, bool) { 4218 return &avwi, true 4219} 4220 4221// AsBasicAzureVMWorkloadItem is the BasicWorkloadItem implementation for AzureVMWorkloadItem. 4222func (avwi AzureVMWorkloadItem) AsBasicAzureVMWorkloadItem() (BasicAzureVMWorkloadItem, bool) { 4223 return &avwi, true 4224} 4225 4226// AsAzureVMWorkloadSAPAseDatabaseWorkloadItem is the BasicWorkloadItem implementation for AzureVMWorkloadItem. 4227func (avwi AzureVMWorkloadItem) AsAzureVMWorkloadSAPAseDatabaseWorkloadItem() (*AzureVMWorkloadSAPAseDatabaseWorkloadItem, bool) { 4228 return nil, false 4229} 4230 4231// AsAzureVMWorkloadSAPAseSystemWorkloadItem is the BasicWorkloadItem implementation for AzureVMWorkloadItem. 4232func (avwi AzureVMWorkloadItem) AsAzureVMWorkloadSAPAseSystemWorkloadItem() (*AzureVMWorkloadSAPAseSystemWorkloadItem, bool) { 4233 return nil, false 4234} 4235 4236// AsAzureVMWorkloadSAPHanaDatabaseWorkloadItem is the BasicWorkloadItem implementation for AzureVMWorkloadItem. 4237func (avwi AzureVMWorkloadItem) AsAzureVMWorkloadSAPHanaDatabaseWorkloadItem() (*AzureVMWorkloadSAPHanaDatabaseWorkloadItem, bool) { 4238 return nil, false 4239} 4240 4241// AsAzureVMWorkloadSAPHanaSystemWorkloadItem is the BasicWorkloadItem implementation for AzureVMWorkloadItem. 4242func (avwi AzureVMWorkloadItem) AsAzureVMWorkloadSAPHanaSystemWorkloadItem() (*AzureVMWorkloadSAPHanaSystemWorkloadItem, bool) { 4243 return nil, false 4244} 4245 4246// AsAzureVMWorkloadSQLDatabaseWorkloadItem is the BasicWorkloadItem implementation for AzureVMWorkloadItem. 4247func (avwi AzureVMWorkloadItem) AsAzureVMWorkloadSQLDatabaseWorkloadItem() (*AzureVMWorkloadSQLDatabaseWorkloadItem, bool) { 4248 return nil, false 4249} 4250 4251// AsAzureVMWorkloadSQLInstanceWorkloadItem is the BasicWorkloadItem implementation for AzureVMWorkloadItem. 4252func (avwi AzureVMWorkloadItem) AsAzureVMWorkloadSQLInstanceWorkloadItem() (*AzureVMWorkloadSQLInstanceWorkloadItem, bool) { 4253 return nil, false 4254} 4255 4256// AsWorkloadItem is the BasicWorkloadItem implementation for AzureVMWorkloadItem. 4257func (avwi AzureVMWorkloadItem) AsWorkloadItem() (*WorkloadItem, bool) { 4258 return nil, false 4259} 4260 4261// AsBasicWorkloadItem is the BasicWorkloadItem implementation for AzureVMWorkloadItem. 4262func (avwi AzureVMWorkloadItem) AsBasicWorkloadItem() (BasicWorkloadItem, bool) { 4263 return &avwi, true 4264} 4265 4266// BasicAzureVMWorkloadProtectableItem azure VM workload-specific protectable item. 4267type 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// AzureVMWorkloadProtectableItem azure VM workload-specific protectable item. 4278type AzureVMWorkloadProtectableItem struct { 4279 // ParentName - Name for instance or AG 4280 ParentName *string `json:"parentName,omitempty"` 4281 // ParentUniqueName - Parent Unique Name is added to provide the service formatted URI Name of the Parent 4282 // Only Applicable for data bases where the parent would be either Instance or a SQL AG. 4283 ParentUniqueName *string `json:"parentUniqueName,omitempty"` 4284 // ServerName - Host/Cluster Name for instance or AG 4285 ServerName *string `json:"serverName,omitempty"` 4286 // IsAutoProtectable - Indicates if protectable item is auto-protectable 4287 IsAutoProtectable *bool `json:"isAutoProtectable,omitempty"` 4288 // IsAutoProtected - Indicates if protectable item is auto-protected 4289 IsAutoProtected *bool `json:"isAutoProtected,omitempty"` 4290 // Subinquireditemcount - For instance or AG, indicates number of DB's present 4291 Subinquireditemcount *int32 `json:"subinquireditemcount,omitempty"` 4292 // Subprotectableitemcount - For instance or AG, indicates number of DB's to be protected 4293 Subprotectableitemcount *int32 `json:"subprotectableitemcount,omitempty"` 4294 // Prebackupvalidation - Pre-backup validation for protectable objects 4295 Prebackupvalidation *PreBackupValidation `json:"prebackupvalidation,omitempty"` 4296 // BackupManagementType - Type of backup management to backup an item. 4297 BackupManagementType *string `json:"backupManagementType,omitempty"` 4298 // WorkloadType - Type of workload for the backup management 4299 WorkloadType *string `json:"workloadType,omitempty"` 4300 // FriendlyName - Friendly name of the backup item. 4301 FriendlyName *string `json:"friendlyName,omitempty"` 4302 // ProtectionState - State of the back up item. Possible values include: 'ProtectionStatusInvalid', 'ProtectionStatusNotProtected', 'ProtectionStatusProtecting', 'ProtectionStatusProtected', 'ProtectionStatusProtectionFailed' 4303 ProtectionState ProtectionStatus `json:"protectionState,omitempty"` 4304 // ProtectableItemType - Possible values include: 'ProtectableItemTypeWorkloadProtectableItem', 'ProtectableItemTypeAzureFileShare', 'ProtectableItemTypeMicrosoftClassicComputevirtualMachines', 'ProtectableItemTypeMicrosoftComputevirtualMachines', 'ProtectableItemTypeAzureVMWorkloadProtectableItem', 'ProtectableItemTypeSAPAseSystem', 'ProtectableItemTypeSAPHanaDatabase', 'ProtectableItemTypeSAPHanaSystem', 'ProtectableItemTypeSQLAvailabilityGroupContainer', 'ProtectableItemTypeSQLDataBase', 'ProtectableItemTypeSQLInstance', 'ProtectableItemTypeIaaSVMProtectableItem' 4305 ProtectableItemType ProtectableItemType `json:"protectableItemType,omitempty"` 4306} 4307 4308func 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} 4346func 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// MarshalJSON is the custom marshaler for AzureVMWorkloadProtectableItem. 4366func (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// AsAzureFileShareProtectableItem is the BasicWorkloadProtectableItem implementation for AzureVMWorkloadProtectableItem. 4412func (avwpi AzureVMWorkloadProtectableItem) AsAzureFileShareProtectableItem() (*AzureFileShareProtectableItem, bool) { 4413 return nil, false 4414} 4415 4416// AsAzureIaaSClassicComputeVMProtectableItem is the BasicWorkloadProtectableItem implementation for AzureVMWorkloadProtectableItem. 4417func (avwpi AzureVMWorkloadProtectableItem) AsAzureIaaSClassicComputeVMProtectableItem() (*AzureIaaSClassicComputeVMProtectableItem, bool) { 4418 return nil, false 4419} 4420 4421// AsAzureIaaSComputeVMProtectableItem is the BasicWorkloadProtectableItem implementation for AzureVMWorkloadProtectableItem. 4422func (avwpi AzureVMWorkloadProtectableItem) AsAzureIaaSComputeVMProtectableItem() (*AzureIaaSComputeVMProtectableItem, bool) { 4423 return nil, false 4424} 4425 4426// AsAzureVMWorkloadProtectableItem is the BasicWorkloadProtectableItem implementation for AzureVMWorkloadProtectableItem. 4427func (avwpi AzureVMWorkloadProtectableItem) AsAzureVMWorkloadProtectableItem() (*AzureVMWorkloadProtectableItem, bool) { 4428 return &avwpi, true 4429} 4430 4431// AsBasicAzureVMWorkloadProtectableItem is the BasicWorkloadProtectableItem implementation for AzureVMWorkloadProtectableItem. 4432func (avwpi AzureVMWorkloadProtectableItem) AsBasicAzureVMWorkloadProtectableItem() (BasicAzureVMWorkloadProtectableItem, bool) { 4433 return &avwpi, true 4434} 4435 4436// AsAzureVMWorkloadSAPAseSystemProtectableItem is the BasicWorkloadProtectableItem implementation for AzureVMWorkloadProtectableItem. 4437func (avwpi AzureVMWorkloadProtectableItem) AsAzureVMWorkloadSAPAseSystemProtectableItem() (*AzureVMWorkloadSAPAseSystemProtectableItem, bool) { 4438 return nil, false 4439} 4440 4441// AsAzureVMWorkloadSAPHanaDatabaseProtectableItem is the BasicWorkloadProtectableItem implementation for AzureVMWorkloadProtectableItem. 4442func (avwpi AzureVMWorkloadProtectableItem) AsAzureVMWorkloadSAPHanaDatabaseProtectableItem() (*AzureVMWorkloadSAPHanaDatabaseProtectableItem, bool) { 4443 return nil, false 4444} 4445 4446// AsAzureVMWorkloadSAPHanaSystemProtectableItem is the BasicWorkloadProtectableItem implementation for AzureVMWorkloadProtectableItem. 4447func (avwpi AzureVMWorkloadProtectableItem) AsAzureVMWorkloadSAPHanaSystemProtectableItem() (*AzureVMWorkloadSAPHanaSystemProtectableItem, bool) { 4448 return nil, false 4449} 4450 4451// AsAzureVMWorkloadSQLAvailabilityGroupProtectableItem is the BasicWorkloadProtectableItem implementation for AzureVMWorkloadProtectableItem. 4452func (avwpi AzureVMWorkloadProtectableItem) AsAzureVMWorkloadSQLAvailabilityGroupProtectableItem() (*AzureVMWorkloadSQLAvailabilityGroupProtectableItem, bool) { 4453 return nil, false 4454} 4455 4456// AsAzureVMWorkloadSQLDatabaseProtectableItem is the BasicWorkloadProtectableItem implementation for AzureVMWorkloadProtectableItem. 4457func (avwpi AzureVMWorkloadProtectableItem) AsAzureVMWorkloadSQLDatabaseProtectableItem() (*AzureVMWorkloadSQLDatabaseProtectableItem, bool) { 4458 return nil, false 4459} 4460 4461// AsAzureVMWorkloadSQLInstanceProtectableItem is the BasicWorkloadProtectableItem implementation for AzureVMWorkloadProtectableItem. 4462func (avwpi AzureVMWorkloadProtectableItem) AsAzureVMWorkloadSQLInstanceProtectableItem() (*AzureVMWorkloadSQLInstanceProtectableItem, bool) { 4463 return nil, false 4464} 4465 4466// AsIaaSVMProtectableItem is the BasicWorkloadProtectableItem implementation for AzureVMWorkloadProtectableItem. 4467func (avwpi AzureVMWorkloadProtectableItem) AsIaaSVMProtectableItem() (*IaaSVMProtectableItem, bool) { 4468 return nil, false 4469} 4470 4471// AsBasicIaaSVMProtectableItem is the BasicWorkloadProtectableItem implementation for AzureVMWorkloadProtectableItem. 4472func (avwpi AzureVMWorkloadProtectableItem) AsBasicIaaSVMProtectableItem() (BasicIaaSVMProtectableItem, bool) { 4473 return nil, false 4474} 4475 4476// AsWorkloadProtectableItem is the BasicWorkloadProtectableItem implementation for AzureVMWorkloadProtectableItem. 4477func (avwpi AzureVMWorkloadProtectableItem) AsWorkloadProtectableItem() (*WorkloadProtectableItem, bool) { 4478 return nil, false 4479} 4480 4481// AsBasicWorkloadProtectableItem is the BasicWorkloadProtectableItem implementation for AzureVMWorkloadProtectableItem. 4482func (avwpi AzureVMWorkloadProtectableItem) AsBasicWorkloadProtectableItem() (BasicWorkloadProtectableItem, bool) { 4483 return &avwpi, true 4484} 4485 4486// BasicAzureVMWorkloadProtectedItem azure VM workload-specific protected item. 4487type BasicAzureVMWorkloadProtectedItem interface { 4488 AsAzureVMWorkloadSAPAseDatabaseProtectedItem() (*AzureVMWorkloadSAPAseDatabaseProtectedItem, bool) 4489 AsAzureVMWorkloadSAPHanaDatabaseProtectedItem() (*AzureVMWorkloadSAPHanaDatabaseProtectedItem, bool) 4490 AsAzureVMWorkloadSQLDatabaseProtectedItem() (*AzureVMWorkloadSQLDatabaseProtectedItem, bool) 4491 AsAzureVMWorkloadProtectedItem() (*AzureVMWorkloadProtectedItem, bool) 4492} 4493 4494// AzureVMWorkloadProtectedItem azure VM workload-specific protected item. 4495type AzureVMWorkloadProtectedItem struct { 4496 // FriendlyName - Friendly name of the DB represented by this backup item. 4497 FriendlyName *string `json:"friendlyName,omitempty"` 4498 // ServerName - Host/Cluster Name for instance or AG 4499 ServerName *string `json:"serverName,omitempty"` 4500 // ParentName - Parent name of the DB such as Instance or Availability Group. 4501 ParentName *string `json:"parentName,omitempty"` 4502 // ParentType - Parent type of protected item, example: for a DB, standalone server or distributed 4503 ParentType *string `json:"parentType,omitempty"` 4504 // ProtectionStatus - Backup status of this backup item. 4505 ProtectionStatus *string `json:"protectionStatus,omitempty"` 4506 // ProtectionState - Backup state of this backup item. Possible values include: 'ProtectionStateInvalid', 'ProtectionStateIRPending', 'ProtectionStateProtected', 'ProtectionStateProtectionError', 'ProtectionStateProtectionStopped', 'ProtectionStateProtectionPaused' 4507 ProtectionState ProtectionState `json:"protectionState,omitempty"` 4508 // LastBackupStatus - Last backup operation status. Possible values: Healthy, Unhealthy. Possible values include: 'LastBackupStatusInvalid', 'LastBackupStatusHealthy', 'LastBackupStatusUnhealthy', 'LastBackupStatusIRPending' 4509 LastBackupStatus LastBackupStatus `json:"lastBackupStatus,omitempty"` 4510 // LastBackupTime - Timestamp of the last backup operation on this backup item. 4511 LastBackupTime *date.Time `json:"lastBackupTime,omitempty"` 4512 // LastBackupErrorDetail - Error details in last backup 4513 LastBackupErrorDetail *ErrorDetail `json:"lastBackupErrorDetail,omitempty"` 4514 // ProtectedItemDataSourceID - Data ID of the protected item. 4515 ProtectedItemDataSourceID *string `json:"protectedItemDataSourceId,omitempty"` 4516 // ProtectedItemHealthStatus - Health status of the backup item, evaluated based on last heartbeat received. Possible values include: 'ProtectedItemHealthStatusInvalid', 'ProtectedItemHealthStatusHealthy', 'ProtectedItemHealthStatusUnhealthy', 'ProtectedItemHealthStatusNotReachable', 'ProtectedItemHealthStatusIRPending' 4517 ProtectedItemHealthStatus ProtectedItemHealthStatus `json:"protectedItemHealthStatus,omitempty"` 4518 // ExtendedInfo - Additional information for this backup item. 4519 ExtendedInfo *AzureVMWorkloadProtectedItemExtendedInfo `json:"extendedInfo,omitempty"` 4520 // KpisHealths - Health details of different KPIs 4521 KpisHealths map[string]*KPIResourceHealthDetails `json:"kpisHealths"` 4522 // BackupManagementType - Type of backup management for the backed up item. Possible values include: 'ManagementTypeInvalid', 'ManagementTypeAzureIaasVM', 'ManagementTypeMAB', 'ManagementTypeDPM', 'ManagementTypeAzureBackupServer', 'ManagementTypeAzureSQL', 'ManagementTypeAzureStorage', 'ManagementTypeAzureWorkload', 'ManagementTypeDefaultBackup' 4523 BackupManagementType ManagementType `json:"backupManagementType,omitempty"` 4524 // WorkloadType - Type of workload this item represents. Possible values include: 'DataSourceTypeInvalid', 'DataSourceTypeVM', 'DataSourceTypeFileFolder', 'DataSourceTypeAzureSQLDb', 'DataSourceTypeSQLDB', 'DataSourceTypeExchange', 'DataSourceTypeSharepoint', 'DataSourceTypeVMwareVM', 'DataSourceTypeSystemState', 'DataSourceTypeClient', 'DataSourceTypeGenericDataSource', 'DataSourceTypeSQLDataBase', 'DataSourceTypeAzureFileShare', 'DataSourceTypeSAPHanaDatabase', 'DataSourceTypeSAPAseDatabase' 4525 WorkloadType DataSourceType `json:"workloadType,omitempty"` 4526 // ContainerName - Unique name of container 4527 ContainerName *string `json:"containerName,omitempty"` 4528 // SourceResourceID - ARM ID of the resource to be backed up. 4529 SourceResourceID *string `json:"sourceResourceId,omitempty"` 4530 // PolicyID - ID of the backup policy with which this item is backed up. 4531 PolicyID *string `json:"policyId,omitempty"` 4532 // LastRecoveryPoint - Timestamp when the last (latest) backup copy was created for this backup item. 4533 LastRecoveryPoint *date.Time `json:"lastRecoveryPoint,omitempty"` 4534 // BackupSetName - Name of the backup set the backup item belongs to 4535 BackupSetName *string `json:"backupSetName,omitempty"` 4536 // CreateMode - Create mode to indicate recovery of existing soft deleted data source or creation of new data source. Possible values include: 'CreateModeInvalid', 'CreateModeDefault', 'CreateModeRecover' 4537 CreateMode CreateMode `json:"createMode,omitempty"` 4538 // DeferredDeleteTimeInUTC - Time for deferred deletion in UTC 4539 DeferredDeleteTimeInUTC *date.Time `json:"deferredDeleteTimeInUTC,omitempty"` 4540 // IsScheduledForDeferredDelete - Flag to identify whether the DS is scheduled for deferred delete 4541 IsScheduledForDeferredDelete *bool `json:"isScheduledForDeferredDelete,omitempty"` 4542 // DeferredDeleteTimeRemaining - Time remaining before the DS marked for deferred delete is permanently deleted 4543 DeferredDeleteTimeRemaining *string `json:"deferredDeleteTimeRemaining,omitempty"` 4544 // IsDeferredDeleteScheduleUpcoming - Flag to identify whether the deferred deleted DS is to be purged soon 4545 IsDeferredDeleteScheduleUpcoming *bool `json:"isDeferredDeleteScheduleUpcoming,omitempty"` 4546 // IsRehydrate - Flag to identify that deferred deleted DS is to be moved into Pause state 4547 IsRehydrate *bool `json:"isRehydrate,omitempty"` 4548 // ProtectedItemType - Possible values include: 'ProtectedItemTypeProtectedItem', 'ProtectedItemTypeAzureFileShareProtectedItem', 'ProtectedItemTypeMicrosoftClassicComputevirtualMachines', 'ProtectedItemTypeMicrosoftComputevirtualMachines', 'ProtectedItemTypeAzureIaaSVMProtectedItem', 'ProtectedItemTypeMicrosoftSqlserversdatabases', 'ProtectedItemTypeAzureVMWorkloadProtectedItem', 'ProtectedItemTypeAzureVMWorkloadSAPAseDatabase', 'ProtectedItemTypeAzureVMWorkloadSAPHanaDatabase', 'ProtectedItemTypeAzureVMWorkloadSQLDatabase', 'ProtectedItemTypeDPMProtectedItem', 'ProtectedItemTypeGenericProtectedItem', 'ProtectedItemTypeMabFileFolderProtectedItem' 4549 ProtectedItemType ProtectedItemType `json:"protectedItemType,omitempty"` 4550} 4551 4552func 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} 4578func 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// MarshalJSON is the custom marshaler for AzureVMWorkloadProtectedItem. 4598func (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// AsAzureFileshareProtectedItem is the BasicProtectedItem implementation for AzureVMWorkloadProtectedItem. 4686func (avwpi AzureVMWorkloadProtectedItem) AsAzureFileshareProtectedItem() (*AzureFileshareProtectedItem, bool) { 4687 return nil, false 4688} 4689 4690// AsAzureIaaSClassicComputeVMProtectedItem is the BasicProtectedItem implementation for AzureVMWorkloadProtectedItem. 4691func (avwpi AzureVMWorkloadProtectedItem) AsAzureIaaSClassicComputeVMProtectedItem() (*AzureIaaSClassicComputeVMProtectedItem, bool) { 4692 return nil, false 4693} 4694 4695// AsAzureIaaSComputeVMProtectedItem is the BasicProtectedItem implementation for AzureVMWorkloadProtectedItem. 4696func (avwpi AzureVMWorkloadProtectedItem) AsAzureIaaSComputeVMProtectedItem() (*AzureIaaSComputeVMProtectedItem, bool) { 4697 return nil, false 4698} 4699 4700// AsAzureIaaSVMProtectedItem is the BasicProtectedItem implementation for AzureVMWorkloadProtectedItem. 4701func (avwpi AzureVMWorkloadProtectedItem) AsAzureIaaSVMProtectedItem() (*AzureIaaSVMProtectedItem, bool) { 4702 return nil, false 4703} 4704 4705// AsBasicAzureIaaSVMProtectedItem is the BasicProtectedItem implementation for AzureVMWorkloadProtectedItem. 4706func (avwpi AzureVMWorkloadProtectedItem) AsBasicAzureIaaSVMProtectedItem() (BasicAzureIaaSVMProtectedItem, bool) { 4707 return nil, false 4708} 4709 4710// AsAzureSQLProtectedItem is the BasicProtectedItem implementation for AzureVMWorkloadProtectedItem. 4711func (avwpi AzureVMWorkloadProtectedItem) AsAzureSQLProtectedItem() (*AzureSQLProtectedItem, bool) { 4712 return nil, false 4713} 4714 4715// AsAzureVMWorkloadProtectedItem is the BasicProtectedItem implementation for AzureVMWorkloadProtectedItem. 4716func (avwpi AzureVMWorkloadProtectedItem) AsAzureVMWorkloadProtectedItem() (*AzureVMWorkloadProtectedItem, bool) { 4717 return &avwpi, true 4718} 4719 4720// AsBasicAzureVMWorkloadProtectedItem is the BasicProtectedItem implementation for AzureVMWorkloadProtectedItem. 4721func (avwpi AzureVMWorkloadProtectedItem) AsBasicAzureVMWorkloadProtectedItem() (BasicAzureVMWorkloadProtectedItem, bool) { 4722 return &avwpi, true 4723} 4724 4725// AsAzureVMWorkloadSAPAseDatabaseProtectedItem is the BasicProtectedItem implementation for AzureVMWorkloadProtectedItem. 4726func (avwpi AzureVMWorkloadProtectedItem) AsAzureVMWorkloadSAPAseDatabaseProtectedItem() (*AzureVMWorkloadSAPAseDatabaseProtectedItem, bool) { 4727 return nil, false 4728} 4729 4730// AsAzureVMWorkloadSAPHanaDatabaseProtectedItem is the BasicProtectedItem implementation for AzureVMWorkloadProtectedItem. 4731func (avwpi AzureVMWorkloadProtectedItem) AsAzureVMWorkloadSAPHanaDatabaseProtectedItem() (*AzureVMWorkloadSAPHanaDatabaseProtectedItem, bool) { 4732 return nil, false 4733} 4734 4735// AsAzureVMWorkloadSQLDatabaseProtectedItem is the BasicProtectedItem implementation for AzureVMWorkloadProtectedItem. 4736func (avwpi AzureVMWorkloadProtectedItem) AsAzureVMWorkloadSQLDatabaseProtectedItem() (*AzureVMWorkloadSQLDatabaseProtectedItem, bool) { 4737 return nil, false 4738} 4739 4740// AsDPMProtectedItem is the BasicProtectedItem implementation for AzureVMWorkloadProtectedItem. 4741func (avwpi AzureVMWorkloadProtectedItem) AsDPMProtectedItem() (*DPMProtectedItem, bool) { 4742 return nil, false 4743} 4744 4745// AsGenericProtectedItem is the BasicProtectedItem implementation for AzureVMWorkloadProtectedItem. 4746func (avwpi AzureVMWorkloadProtectedItem) AsGenericProtectedItem() (*GenericProtectedItem, bool) { 4747 return nil, false 4748} 4749 4750// AsMabFileFolderProtectedItem is the BasicProtectedItem implementation for AzureVMWorkloadProtectedItem. 4751func (avwpi AzureVMWorkloadProtectedItem) AsMabFileFolderProtectedItem() (*MabFileFolderProtectedItem, bool) { 4752 return nil, false 4753} 4754 4755// AsProtectedItem is the BasicProtectedItem implementation for AzureVMWorkloadProtectedItem. 4756func (avwpi AzureVMWorkloadProtectedItem) AsProtectedItem() (*ProtectedItem, bool) { 4757 return nil, false 4758} 4759 4760// AsBasicProtectedItem is the BasicProtectedItem implementation for AzureVMWorkloadProtectedItem. 4761func (avwpi AzureVMWorkloadProtectedItem) AsBasicProtectedItem() (BasicProtectedItem, bool) { 4762 return &avwpi, true 4763} 4764 4765// AzureVMWorkloadProtectedItemExtendedInfo additional information on Azure Workload for SQL specific 4766// backup item. 4767type AzureVMWorkloadProtectedItemExtendedInfo struct { 4768 // OldestRecoveryPoint - The oldest backup copy available for this backup item. 4769 OldestRecoveryPoint *date.Time `json:"oldestRecoveryPoint,omitempty"` 4770 // RecoveryPointCount - Number of backup copies available for this backup item. 4771 RecoveryPointCount *int32 `json:"recoveryPointCount,omitempty"` 4772 // PolicyState - Indicates consistency of policy object and policy applied to this backup item. 4773 PolicyState *string `json:"policyState,omitempty"` 4774} 4775 4776// AzureVMWorkloadProtectionPolicy azure VM (Mercury) workload-specific backup policy. 4777type AzureVMWorkloadProtectionPolicy struct { 4778 // WorkLoadType - Type of workload for the backup management. Possible values include: 'WorkloadTypeInvalid', 'WorkloadTypeVM', 'WorkloadTypeFileFolder', 'WorkloadTypeAzureSQLDb', 'WorkloadTypeSQLDB', 'WorkloadTypeExchange', 'WorkloadTypeSharepoint', 'WorkloadTypeVMwareVM', 'WorkloadTypeSystemState', 'WorkloadTypeClient', 'WorkloadTypeGenericDataSource', 'WorkloadTypeSQLDataBase', 'WorkloadTypeAzureFileShare', 'WorkloadTypeSAPHanaDatabase', 'WorkloadTypeSAPAseDatabase' 4779 WorkLoadType WorkloadType `json:"workLoadType,omitempty"` 4780 // Settings - Common settings for the backup management 4781 Settings *Settings `json:"settings,omitempty"` 4782 // SubProtectionPolicy - List of sub-protection policies which includes schedule and retention 4783 SubProtectionPolicy *[]SubProtectionPolicy `json:"subProtectionPolicy,omitempty"` 4784 // MakePolicyConsistent - Fix the policy inconsistency 4785 MakePolicyConsistent *bool `json:"makePolicyConsistent,omitempty"` 4786 // ProtectedItemsCount - Number of items associated with this policy. 4787 ProtectedItemsCount *int32 `json:"protectedItemsCount,omitempty"` 4788 // BackupManagementType - Possible values include: 'BackupManagementTypeProtectionPolicy', 'BackupManagementTypeAzureWorkload', 'BackupManagementTypeAzureStorage', 'BackupManagementTypeAzureIaasVM', 'BackupManagementTypeAzureSQL', 'BackupManagementTypeGenericProtectionPolicy', 'BackupManagementTypeMAB' 4789 BackupManagementType ManagementTypeBasicProtectionPolicy `json:"backupManagementType,omitempty"` 4790} 4791 4792// MarshalJSON is the custom marshaler for AzureVMWorkloadProtectionPolicy. 4793func (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// AsAzureVMWorkloadProtectionPolicy is the BasicProtectionPolicy implementation for AzureVMWorkloadProtectionPolicy. 4818func (avwpp AzureVMWorkloadProtectionPolicy) AsAzureVMWorkloadProtectionPolicy() (*AzureVMWorkloadProtectionPolicy, bool) { 4819 return &avwpp, true 4820} 4821 4822// AsAzureFileShareProtectionPolicy is the BasicProtectionPolicy implementation for AzureVMWorkloadProtectionPolicy. 4823func (avwpp AzureVMWorkloadProtectionPolicy) AsAzureFileShareProtectionPolicy() (*AzureFileShareProtectionPolicy, bool) { 4824 return nil, false 4825} 4826 4827// AsAzureIaaSVMProtectionPolicy is the BasicProtectionPolicy implementation for AzureVMWorkloadProtectionPolicy. 4828func (avwpp AzureVMWorkloadProtectionPolicy) AsAzureIaaSVMProtectionPolicy() (*AzureIaaSVMProtectionPolicy, bool) { 4829 return nil, false 4830} 4831 4832// AsAzureSQLProtectionPolicy is the BasicProtectionPolicy implementation for AzureVMWorkloadProtectionPolicy. 4833func (avwpp AzureVMWorkloadProtectionPolicy) AsAzureSQLProtectionPolicy() (*AzureSQLProtectionPolicy, bool) { 4834 return nil, false 4835} 4836 4837// AsGenericProtectionPolicy is the BasicProtectionPolicy implementation for AzureVMWorkloadProtectionPolicy. 4838func (avwpp AzureVMWorkloadProtectionPolicy) AsGenericProtectionPolicy() (*GenericProtectionPolicy, bool) { 4839 return nil, false 4840} 4841 4842// AsMabProtectionPolicy is the BasicProtectionPolicy implementation for AzureVMWorkloadProtectionPolicy. 4843func (avwpp AzureVMWorkloadProtectionPolicy) AsMabProtectionPolicy() (*MabProtectionPolicy, bool) { 4844 return nil, false 4845} 4846 4847// AsProtectionPolicy is the BasicProtectionPolicy implementation for AzureVMWorkloadProtectionPolicy. 4848func (avwpp AzureVMWorkloadProtectionPolicy) AsProtectionPolicy() (*ProtectionPolicy, bool) { 4849 return nil, false 4850} 4851 4852// AsBasicProtectionPolicy is the BasicProtectionPolicy implementation for AzureVMWorkloadProtectionPolicy. 4853func (avwpp AzureVMWorkloadProtectionPolicy) AsBasicProtectionPolicy() (BasicProtectionPolicy, bool) { 4854 return &avwpp, true 4855} 4856 4857// AzureVMWorkloadSAPAseDatabaseProtectedItem azure VM workload-specific protected item representing SAP 4858// ASE Database. 4859type AzureVMWorkloadSAPAseDatabaseProtectedItem struct { 4860 // FriendlyName - Friendly name of the DB represented by this backup item. 4861 FriendlyName *string `json:"friendlyName,omitempty"` 4862 // ServerName - Host/Cluster Name for instance or AG 4863 ServerName *string `json:"serverName,omitempty"` 4864 // ParentName - Parent name of the DB such as Instance or Availability Group. 4865 ParentName *string `json:"parentName,omitempty"` 4866 // ParentType - Parent type of protected item, example: for a DB, standalone server or distributed 4867 ParentType *string `json:"parentType,omitempty"` 4868 // ProtectionStatus - Backup status of this backup item. 4869 ProtectionStatus *string `json:"protectionStatus,omitempty"` 4870 // ProtectionState - Backup state of this backup item. Possible values include: 'ProtectionStateInvalid', 'ProtectionStateIRPending', 'ProtectionStateProtected', 'ProtectionStateProtectionError', 'ProtectionStateProtectionStopped', 'ProtectionStateProtectionPaused' 4871 ProtectionState ProtectionState `json:"protectionState,omitempty"` 4872 // LastBackupStatus - Last backup operation status. Possible values: Healthy, Unhealthy. Possible values include: 'LastBackupStatusInvalid', 'LastBackupStatusHealthy', 'LastBackupStatusUnhealthy', 'LastBackupStatusIRPending' 4873 LastBackupStatus LastBackupStatus `json:"lastBackupStatus,omitempty"` 4874 // LastBackupTime - Timestamp of the last backup operation on this backup item. 4875 LastBackupTime *date.Time `json:"lastBackupTime,omitempty"` 4876 // LastBackupErrorDetail - Error details in last backup 4877 LastBackupErrorDetail *ErrorDetail `json:"lastBackupErrorDetail,omitempty"` 4878 // ProtectedItemDataSourceID - Data ID of the protected item. 4879 ProtectedItemDataSourceID *string `json:"protectedItemDataSourceId,omitempty"` 4880 // ProtectedItemHealthStatus - Health status of the backup item, evaluated based on last heartbeat received. Possible values include: 'ProtectedItemHealthStatusInvalid', 'ProtectedItemHealthStatusHealthy', 'ProtectedItemHealthStatusUnhealthy', 'ProtectedItemHealthStatusNotReachable', 'ProtectedItemHealthStatusIRPending' 4881 ProtectedItemHealthStatus ProtectedItemHealthStatus `json:"protectedItemHealthStatus,omitempty"` 4882 // ExtendedInfo - Additional information for this backup item. 4883 ExtendedInfo *AzureVMWorkloadProtectedItemExtendedInfo `json:"extendedInfo,omitempty"` 4884 // KpisHealths - Health details of different KPIs 4885 KpisHealths map[string]*KPIResourceHealthDetails `json:"kpisHealths"` 4886 // BackupManagementType - Type of backup management for the backed up item. Possible values include: 'ManagementTypeInvalid', 'ManagementTypeAzureIaasVM', 'ManagementTypeMAB', 'ManagementTypeDPM', 'ManagementTypeAzureBackupServer', 'ManagementTypeAzureSQL', 'ManagementTypeAzureStorage', 'ManagementTypeAzureWorkload', 'ManagementTypeDefaultBackup' 4887 BackupManagementType ManagementType `json:"backupManagementType,omitempty"` 4888 // WorkloadType - Type of workload this item represents. Possible values include: 'DataSourceTypeInvalid', 'DataSourceTypeVM', 'DataSourceTypeFileFolder', 'DataSourceTypeAzureSQLDb', 'DataSourceTypeSQLDB', 'DataSourceTypeExchange', 'DataSourceTypeSharepoint', 'DataSourceTypeVMwareVM', 'DataSourceTypeSystemState', 'DataSourceTypeClient', 'DataSourceTypeGenericDataSource', 'DataSourceTypeSQLDataBase', 'DataSourceTypeAzureFileShare', 'DataSourceTypeSAPHanaDatabase', 'DataSourceTypeSAPAseDatabase' 4889 WorkloadType DataSourceType `json:"workloadType,omitempty"` 4890 // ContainerName - Unique name of container 4891 ContainerName *string `json:"containerName,omitempty"` 4892 // SourceResourceID - ARM ID of the resource to be backed up. 4893 SourceResourceID *string `json:"sourceResourceId,omitempty"` 4894 // PolicyID - ID of the backup policy with which this item is backed up. 4895 PolicyID *string `json:"policyId,omitempty"` 4896 // LastRecoveryPoint - Timestamp when the last (latest) backup copy was created for this backup item. 4897 LastRecoveryPoint *date.Time `json:"lastRecoveryPoint,omitempty"` 4898 // BackupSetName - Name of the backup set the backup item belongs to 4899 BackupSetName *string `json:"backupSetName,omitempty"` 4900 // CreateMode - Create mode to indicate recovery of existing soft deleted data source or creation of new data source. Possible values include: 'CreateModeInvalid', 'CreateModeDefault', 'CreateModeRecover' 4901 CreateMode CreateMode `json:"createMode,omitempty"` 4902 // DeferredDeleteTimeInUTC - Time for deferred deletion in UTC 4903 DeferredDeleteTimeInUTC *date.Time `json:"deferredDeleteTimeInUTC,omitempty"` 4904 // IsScheduledForDeferredDelete - Flag to identify whether the DS is scheduled for deferred delete 4905 IsScheduledForDeferredDelete *bool `json:"isScheduledForDeferredDelete,omitempty"` 4906 // DeferredDeleteTimeRemaining - Time remaining before the DS marked for deferred delete is permanently deleted 4907 DeferredDeleteTimeRemaining *string `json:"deferredDeleteTimeRemaining,omitempty"` 4908 // IsDeferredDeleteScheduleUpcoming - Flag to identify whether the deferred deleted DS is to be purged soon 4909 IsDeferredDeleteScheduleUpcoming *bool `json:"isDeferredDeleteScheduleUpcoming,omitempty"` 4910 // IsRehydrate - Flag to identify that deferred deleted DS is to be moved into Pause state 4911 IsRehydrate *bool `json:"isRehydrate,omitempty"` 4912 // ProtectedItemType - Possible values include: 'ProtectedItemTypeProtectedItem', 'ProtectedItemTypeAzureFileShareProtectedItem', 'ProtectedItemTypeMicrosoftClassicComputevirtualMachines', 'ProtectedItemTypeMicrosoftComputevirtualMachines', 'ProtectedItemTypeAzureIaaSVMProtectedItem', 'ProtectedItemTypeMicrosoftSqlserversdatabases', 'ProtectedItemTypeAzureVMWorkloadProtectedItem', 'ProtectedItemTypeAzureVMWorkloadSAPAseDatabase', 'ProtectedItemTypeAzureVMWorkloadSAPHanaDatabase', 'ProtectedItemTypeAzureVMWorkloadSQLDatabase', 'ProtectedItemTypeDPMProtectedItem', 'ProtectedItemTypeGenericProtectedItem', 'ProtectedItemTypeMabFileFolderProtectedItem' 4913 ProtectedItemType ProtectedItemType `json:"protectedItemType,omitempty"` 4914} 4915 4916// MarshalJSON is the custom marshaler for AzureVMWorkloadSAPAseDatabaseProtectedItem. 4917func (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// AsAzureFileshareProtectedItem is the BasicProtectedItem implementation for AzureVMWorkloadSAPAseDatabaseProtectedItem. 5005func (avwsadpi AzureVMWorkloadSAPAseDatabaseProtectedItem) AsAzureFileshareProtectedItem() (*AzureFileshareProtectedItem, bool) { 5006 return nil, false 5007} 5008 5009// AsAzureIaaSClassicComputeVMProtectedItem is the BasicProtectedItem implementation for AzureVMWorkloadSAPAseDatabaseProtectedItem. 5010func (avwsadpi AzureVMWorkloadSAPAseDatabaseProtectedItem) AsAzureIaaSClassicComputeVMProtectedItem() (*AzureIaaSClassicComputeVMProtectedItem, bool) { 5011 return nil, false 5012} 5013 5014// AsAzureIaaSComputeVMProtectedItem is the BasicProtectedItem implementation for AzureVMWorkloadSAPAseDatabaseProtectedItem. 5015func (avwsadpi AzureVMWorkloadSAPAseDatabaseProtectedItem) AsAzureIaaSComputeVMProtectedItem() (*AzureIaaSComputeVMProtectedItem, bool) { 5016 return nil, false 5017} 5018 5019// AsAzureIaaSVMProtectedItem is the BasicProtectedItem implementation for AzureVMWorkloadSAPAseDatabaseProtectedItem. 5020func (avwsadpi AzureVMWorkloadSAPAseDatabaseProtectedItem) AsAzureIaaSVMProtectedItem() (*AzureIaaSVMProtectedItem, bool) { 5021 return nil, false 5022} 5023 5024// AsBasicAzureIaaSVMProtectedItem is the BasicProtectedItem implementation for AzureVMWorkloadSAPAseDatabaseProtectedItem. 5025func (avwsadpi AzureVMWorkloadSAPAseDatabaseProtectedItem) AsBasicAzureIaaSVMProtectedItem() (BasicAzureIaaSVMProtectedItem, bool) { 5026 return nil, false 5027} 5028 5029// AsAzureSQLProtectedItem is the BasicProtectedItem implementation for AzureVMWorkloadSAPAseDatabaseProtectedItem. 5030func (avwsadpi AzureVMWorkloadSAPAseDatabaseProtectedItem) AsAzureSQLProtectedItem() (*AzureSQLProtectedItem, bool) { 5031 return nil, false 5032} 5033 5034// AsAzureVMWorkloadProtectedItem is the BasicProtectedItem implementation for AzureVMWorkloadSAPAseDatabaseProtectedItem. 5035func (avwsadpi AzureVMWorkloadSAPAseDatabaseProtectedItem) AsAzureVMWorkloadProtectedItem() (*AzureVMWorkloadProtectedItem, bool) { 5036 return nil, false 5037} 5038 5039// AsBasicAzureVMWorkloadProtectedItem is the BasicProtectedItem implementation for AzureVMWorkloadSAPAseDatabaseProtectedItem. 5040func (avwsadpi AzureVMWorkloadSAPAseDatabaseProtectedItem) AsBasicAzureVMWorkloadProtectedItem() (BasicAzureVMWorkloadProtectedItem, bool) { 5041 return &avwsadpi, true 5042} 5043 5044// AsAzureVMWorkloadSAPAseDatabaseProtectedItem is the BasicProtectedItem implementation for AzureVMWorkloadSAPAseDatabaseProtectedItem. 5045func (avwsadpi AzureVMWorkloadSAPAseDatabaseProtectedItem) AsAzureVMWorkloadSAPAseDatabaseProtectedItem() (*AzureVMWorkloadSAPAseDatabaseProtectedItem, bool) { 5046 return &avwsadpi, true 5047} 5048 5049// AsAzureVMWorkloadSAPHanaDatabaseProtectedItem is the BasicProtectedItem implementation for AzureVMWorkloadSAPAseDatabaseProtectedItem. 5050func (avwsadpi AzureVMWorkloadSAPAseDatabaseProtectedItem) AsAzureVMWorkloadSAPHanaDatabaseProtectedItem() (*AzureVMWorkloadSAPHanaDatabaseProtectedItem, bool) { 5051 return nil, false 5052} 5053 5054// AsAzureVMWorkloadSQLDatabaseProtectedItem is the BasicProtectedItem implementation for AzureVMWorkloadSAPAseDatabaseProtectedItem. 5055func (avwsadpi AzureVMWorkloadSAPAseDatabaseProtectedItem) AsAzureVMWorkloadSQLDatabaseProtectedItem() (*AzureVMWorkloadSQLDatabaseProtectedItem, bool) { 5056 return nil, false 5057} 5058 5059// AsDPMProtectedItem is the BasicProtectedItem implementation for AzureVMWorkloadSAPAseDatabaseProtectedItem. 5060func (avwsadpi AzureVMWorkloadSAPAseDatabaseProtectedItem) AsDPMProtectedItem() (*DPMProtectedItem, bool) { 5061 return nil, false 5062} 5063 5064// AsGenericProtectedItem is the BasicProtectedItem implementation for AzureVMWorkloadSAPAseDatabaseProtectedItem. 5065func (avwsadpi AzureVMWorkloadSAPAseDatabaseProtectedItem) AsGenericProtectedItem() (*GenericProtectedItem, bool) { 5066 return nil, false 5067} 5068 5069// AsMabFileFolderProtectedItem is the BasicProtectedItem implementation for AzureVMWorkloadSAPAseDatabaseProtectedItem. 5070func (avwsadpi AzureVMWorkloadSAPAseDatabaseProtectedItem) AsMabFileFolderProtectedItem() (*MabFileFolderProtectedItem, bool) { 5071 return nil, false 5072} 5073 5074// AsProtectedItem is the BasicProtectedItem implementation for AzureVMWorkloadSAPAseDatabaseProtectedItem. 5075func (avwsadpi AzureVMWorkloadSAPAseDatabaseProtectedItem) AsProtectedItem() (*ProtectedItem, bool) { 5076 return nil, false 5077} 5078 5079// AsBasicProtectedItem is the BasicProtectedItem implementation for AzureVMWorkloadSAPAseDatabaseProtectedItem. 5080func (avwsadpi AzureVMWorkloadSAPAseDatabaseProtectedItem) AsBasicProtectedItem() (BasicProtectedItem, bool) { 5081 return &avwsadpi, true 5082} 5083 5084// AzureVMWorkloadSAPAseDatabaseWorkloadItem azure VM workload-specific workload item representing SAP ASE 5085// Database. 5086type AzureVMWorkloadSAPAseDatabaseWorkloadItem struct { 5087 // ParentName - Name for instance or AG 5088 ParentName *string `json:"parentName,omitempty"` 5089 // ServerName - Host/Cluster Name for instance or AG 5090 ServerName *string `json:"serverName,omitempty"` 5091 // IsAutoProtectable - Indicates if workload item is auto-protectable 5092 IsAutoProtectable *bool `json:"isAutoProtectable,omitempty"` 5093 // Subinquireditemcount - For instance or AG, indicates number of DB's present 5094 Subinquireditemcount *int32 `json:"subinquireditemcount,omitempty"` 5095 // SubWorkloadItemCount - For instance or AG, indicates number of DB's to be protected 5096 SubWorkloadItemCount *int32 `json:"subWorkloadItemCount,omitempty"` 5097 // BackupManagementType - Type of backup management to backup an item. 5098 BackupManagementType *string `json:"backupManagementType,omitempty"` 5099 // WorkloadType - Type of workload for the backup management 5100 WorkloadType *string `json:"workloadType,omitempty"` 5101 // FriendlyName - Friendly name of the backup item. 5102 FriendlyName *string `json:"friendlyName,omitempty"` 5103 // ProtectionState - State of the back up item. Possible values include: 'ProtectionStatusInvalid', 'ProtectionStatusNotProtected', 'ProtectionStatusProtecting', 'ProtectionStatusProtected', 'ProtectionStatusProtectionFailed' 5104 ProtectionState ProtectionStatus `json:"protectionState,omitempty"` 5105 // WorkloadItemType - Possible values include: 'WorkloadItemTypeWorkloadItem', 'WorkloadItemTypeAzureVMWorkloadItem', 'WorkloadItemTypeSAPAseDatabase1', 'WorkloadItemTypeSAPAseSystem1', 'WorkloadItemTypeSAPHanaDatabase1', 'WorkloadItemTypeSAPHanaSystem1', 'WorkloadItemTypeSQLDataBase1', 'WorkloadItemTypeSQLInstance1' 5106 WorkloadItemType WorkloadItemTypeBasicWorkloadItem `json:"workloadItemType,omitempty"` 5107} 5108 5109// MarshalJSON is the custom marshaler for AzureVMWorkloadSAPAseDatabaseWorkloadItem. 5110func (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// AsAzureVMWorkloadItem is the BasicWorkloadItem implementation for AzureVMWorkloadSAPAseDatabaseWorkloadItem. 5147func (avwsadwi AzureVMWorkloadSAPAseDatabaseWorkloadItem) AsAzureVMWorkloadItem() (*AzureVMWorkloadItem, bool) { 5148 return nil, false 5149} 5150 5151// AsBasicAzureVMWorkloadItem is the BasicWorkloadItem implementation for AzureVMWorkloadSAPAseDatabaseWorkloadItem. 5152func (avwsadwi AzureVMWorkloadSAPAseDatabaseWorkloadItem) AsBasicAzureVMWorkloadItem() (BasicAzureVMWorkloadItem, bool) { 5153 return &avwsadwi, true 5154} 5155 5156// AsAzureVMWorkloadSAPAseDatabaseWorkloadItem is the BasicWorkloadItem implementation for AzureVMWorkloadSAPAseDatabaseWorkloadItem. 5157func (avwsadwi AzureVMWorkloadSAPAseDatabaseWorkloadItem) AsAzureVMWorkloadSAPAseDatabaseWorkloadItem() (*AzureVMWorkloadSAPAseDatabaseWorkloadItem, bool) { 5158 return &avwsadwi, true 5159} 5160 5161// AsAzureVMWorkloadSAPAseSystemWorkloadItem is the BasicWorkloadItem implementation for AzureVMWorkloadSAPAseDatabaseWorkloadItem. 5162func (avwsadwi AzureVMWorkloadSAPAseDatabaseWorkloadItem) AsAzureVMWorkloadSAPAseSystemWorkloadItem() (*AzureVMWorkloadSAPAseSystemWorkloadItem, bool) { 5163 return nil, false 5164} 5165 5166// AsAzureVMWorkloadSAPHanaDatabaseWorkloadItem is the BasicWorkloadItem implementation for AzureVMWorkloadSAPAseDatabaseWorkloadItem. 5167func (avwsadwi AzureVMWorkloadSAPAseDatabaseWorkloadItem) AsAzureVMWorkloadSAPHanaDatabaseWorkloadItem() (*AzureVMWorkloadSAPHanaDatabaseWorkloadItem, bool) { 5168 return nil, false 5169} 5170 5171// AsAzureVMWorkloadSAPHanaSystemWorkloadItem is the BasicWorkloadItem implementation for AzureVMWorkloadSAPAseDatabaseWorkloadItem. 5172func (avwsadwi AzureVMWorkloadSAPAseDatabaseWorkloadItem) AsAzureVMWorkloadSAPHanaSystemWorkloadItem() (*AzureVMWorkloadSAPHanaSystemWorkloadItem, bool) { 5173 return nil, false 5174} 5175 5176// AsAzureVMWorkloadSQLDatabaseWorkloadItem is the BasicWorkloadItem implementation for AzureVMWorkloadSAPAseDatabaseWorkloadItem. 5177func (avwsadwi AzureVMWorkloadSAPAseDatabaseWorkloadItem) AsAzureVMWorkloadSQLDatabaseWorkloadItem() (*AzureVMWorkloadSQLDatabaseWorkloadItem, bool) { 5178 return nil, false 5179} 5180 5181// AsAzureVMWorkloadSQLInstanceWorkloadItem is the BasicWorkloadItem implementation for AzureVMWorkloadSAPAseDatabaseWorkloadItem. 5182func (avwsadwi AzureVMWorkloadSAPAseDatabaseWorkloadItem) AsAzureVMWorkloadSQLInstanceWorkloadItem() (*AzureVMWorkloadSQLInstanceWorkloadItem, bool) { 5183 return nil, false 5184} 5185 5186// AsWorkloadItem is the BasicWorkloadItem implementation for AzureVMWorkloadSAPAseDatabaseWorkloadItem. 5187func (avwsadwi AzureVMWorkloadSAPAseDatabaseWorkloadItem) AsWorkloadItem() (*WorkloadItem, bool) { 5188 return nil, false 5189} 5190 5191// AsBasicWorkloadItem is the BasicWorkloadItem implementation for AzureVMWorkloadSAPAseDatabaseWorkloadItem. 5192func (avwsadwi AzureVMWorkloadSAPAseDatabaseWorkloadItem) AsBasicWorkloadItem() (BasicWorkloadItem, bool) { 5193 return &avwsadwi, true 5194} 5195 5196// AzureVMWorkloadSAPAseSystemProtectableItem azure VM workload-specific protectable item representing SAP 5197// ASE System. 5198type AzureVMWorkloadSAPAseSystemProtectableItem struct { 5199 // ParentName - Name for instance or AG 5200 ParentName *string `json:"parentName,omitempty"` 5201 // ParentUniqueName - Parent Unique Name is added to provide the service formatted URI Name of the Parent 5202 // Only Applicable for data bases where the parent would be either Instance or a SQL AG. 5203 ParentUniqueName *string `json:"parentUniqueName,omitempty"` 5204 // ServerName - Host/Cluster Name for instance or AG 5205 ServerName *string `json:"serverName,omitempty"` 5206 // IsAutoProtectable - Indicates if protectable item is auto-protectable 5207 IsAutoProtectable *bool `json:"isAutoProtectable,omitempty"` 5208 // IsAutoProtected - Indicates if protectable item is auto-protected 5209 IsAutoProtected *bool `json:"isAutoProtected,omitempty"` 5210 // Subinquireditemcount - For instance or AG, indicates number of DB's present 5211 Subinquireditemcount *int32 `json:"subinquireditemcount,omitempty"` 5212 // Subprotectableitemcount - For instance or AG, indicates number of DB's to be protected 5213 Subprotectableitemcount *int32 `json:"subprotectableitemcount,omitempty"` 5214 // Prebackupvalidation - Pre-backup validation for protectable objects 5215 Prebackupvalidation *PreBackupValidation `json:"prebackupvalidation,omitempty"` 5216 // BackupManagementType - Type of backup management to backup an item. 5217 BackupManagementType *string `json:"backupManagementType,omitempty"` 5218 // WorkloadType - Type of workload for the backup management 5219 WorkloadType *string `json:"workloadType,omitempty"` 5220 // FriendlyName - Friendly name of the backup item. 5221 FriendlyName *string `json:"friendlyName,omitempty"` 5222 // ProtectionState - State of the back up item. Possible values include: 'ProtectionStatusInvalid', 'ProtectionStatusNotProtected', 'ProtectionStatusProtecting', 'ProtectionStatusProtected', 'ProtectionStatusProtectionFailed' 5223 ProtectionState ProtectionStatus `json:"protectionState,omitempty"` 5224 // ProtectableItemType - Possible values include: 'ProtectableItemTypeWorkloadProtectableItem', 'ProtectableItemTypeAzureFileShare', 'ProtectableItemTypeMicrosoftClassicComputevirtualMachines', 'ProtectableItemTypeMicrosoftComputevirtualMachines', 'ProtectableItemTypeAzureVMWorkloadProtectableItem', 'ProtectableItemTypeSAPAseSystem', 'ProtectableItemTypeSAPHanaDatabase', 'ProtectableItemTypeSAPHanaSystem', 'ProtectableItemTypeSQLAvailabilityGroupContainer', 'ProtectableItemTypeSQLDataBase', 'ProtectableItemTypeSQLInstance', 'ProtectableItemTypeIaaSVMProtectableItem' 5225 ProtectableItemType ProtectableItemType `json:"protectableItemType,omitempty"` 5226} 5227 5228// MarshalJSON is the custom marshaler for AzureVMWorkloadSAPAseSystemProtectableItem. 5229func (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// AsAzureFileShareProtectableItem is the BasicWorkloadProtectableItem implementation for AzureVMWorkloadSAPAseSystemProtectableItem. 5275func (avwsaspi AzureVMWorkloadSAPAseSystemProtectableItem) AsAzureFileShareProtectableItem() (*AzureFileShareProtectableItem, bool) { 5276 return nil, false 5277} 5278 5279// AsAzureIaaSClassicComputeVMProtectableItem is the BasicWorkloadProtectableItem implementation for AzureVMWorkloadSAPAseSystemProtectableItem. 5280func (avwsaspi AzureVMWorkloadSAPAseSystemProtectableItem) AsAzureIaaSClassicComputeVMProtectableItem() (*AzureIaaSClassicComputeVMProtectableItem, bool) { 5281 return nil, false 5282} 5283 5284// AsAzureIaaSComputeVMProtectableItem is the BasicWorkloadProtectableItem implementation for AzureVMWorkloadSAPAseSystemProtectableItem. 5285func (avwsaspi AzureVMWorkloadSAPAseSystemProtectableItem) AsAzureIaaSComputeVMProtectableItem() (*AzureIaaSComputeVMProtectableItem, bool) { 5286 return nil, false 5287} 5288 5289// AsAzureVMWorkloadProtectableItem is the BasicWorkloadProtectableItem implementation for AzureVMWorkloadSAPAseSystemProtectableItem. 5290func (avwsaspi AzureVMWorkloadSAPAseSystemProtectableItem) AsAzureVMWorkloadProtectableItem() (*AzureVMWorkloadProtectableItem, bool) { 5291 return nil, false 5292} 5293 5294// AsBasicAzureVMWorkloadProtectableItem is the BasicWorkloadProtectableItem implementation for AzureVMWorkloadSAPAseSystemProtectableItem. 5295func (avwsaspi AzureVMWorkloadSAPAseSystemProtectableItem) AsBasicAzureVMWorkloadProtectableItem() (BasicAzureVMWorkloadProtectableItem, bool) { 5296 return &avwsaspi, true 5297} 5298 5299// AsAzureVMWorkloadSAPAseSystemProtectableItem is the BasicWorkloadProtectableItem implementation for AzureVMWorkloadSAPAseSystemProtectableItem. 5300func (avwsaspi AzureVMWorkloadSAPAseSystemProtectableItem) AsAzureVMWorkloadSAPAseSystemProtectableItem() (*AzureVMWorkloadSAPAseSystemProtectableItem, bool) { 5301 return &avwsaspi, true 5302} 5303 5304// AsAzureVMWorkloadSAPHanaDatabaseProtectableItem is the BasicWorkloadProtectableItem implementation for AzureVMWorkloadSAPAseSystemProtectableItem. 5305func (avwsaspi AzureVMWorkloadSAPAseSystemProtectableItem) AsAzureVMWorkloadSAPHanaDatabaseProtectableItem() (*AzureVMWorkloadSAPHanaDatabaseProtectableItem, bool) { 5306 return nil, false 5307} 5308 5309// AsAzureVMWorkloadSAPHanaSystemProtectableItem is the BasicWorkloadProtectableItem implementation for AzureVMWorkloadSAPAseSystemProtectableItem. 5310func (avwsaspi AzureVMWorkloadSAPAseSystemProtectableItem) AsAzureVMWorkloadSAPHanaSystemProtectableItem() (*AzureVMWorkloadSAPHanaSystemProtectableItem, bool) { 5311 return nil, false 5312} 5313 5314// AsAzureVMWorkloadSQLAvailabilityGroupProtectableItem is the BasicWorkloadProtectableItem implementation for AzureVMWorkloadSAPAseSystemProtectableItem. 5315func (avwsaspi AzureVMWorkloadSAPAseSystemProtectableItem) AsAzureVMWorkloadSQLAvailabilityGroupProtectableItem() (*AzureVMWorkloadSQLAvailabilityGroupProtectableItem, bool) { 5316 return nil, false 5317} 5318 5319// AsAzureVMWorkloadSQLDatabaseProtectableItem is the BasicWorkloadProtectableItem implementation for AzureVMWorkloadSAPAseSystemProtectableItem. 5320func (avwsaspi AzureVMWorkloadSAPAseSystemProtectableItem) AsAzureVMWorkloadSQLDatabaseProtectableItem() (*AzureVMWorkloadSQLDatabaseProtectableItem, bool) { 5321 return nil, false 5322} 5323 5324// AsAzureVMWorkloadSQLInstanceProtectableItem is the BasicWorkloadProtectableItem implementation for AzureVMWorkloadSAPAseSystemProtectableItem. 5325func (avwsaspi AzureVMWorkloadSAPAseSystemProtectableItem) AsAzureVMWorkloadSQLInstanceProtectableItem() (*AzureVMWorkloadSQLInstanceProtectableItem, bool) { 5326 return nil, false 5327} 5328 5329// AsIaaSVMProtectableItem is the BasicWorkloadProtectableItem implementation for AzureVMWorkloadSAPAseSystemProtectableItem. 5330func (avwsaspi AzureVMWorkloadSAPAseSystemProtectableItem) AsIaaSVMProtectableItem() (*IaaSVMProtectableItem, bool) { 5331 return nil, false 5332} 5333 5334// AsBasicIaaSVMProtectableItem is the BasicWorkloadProtectableItem implementation for AzureVMWorkloadSAPAseSystemProtectableItem. 5335func (avwsaspi AzureVMWorkloadSAPAseSystemProtectableItem) AsBasicIaaSVMProtectableItem() (BasicIaaSVMProtectableItem, bool) { 5336 return nil, false 5337} 5338 5339// AsWorkloadProtectableItem is the BasicWorkloadProtectableItem implementation for AzureVMWorkloadSAPAseSystemProtectableItem. 5340func (avwsaspi AzureVMWorkloadSAPAseSystemProtectableItem) AsWorkloadProtectableItem() (*WorkloadProtectableItem, bool) { 5341 return nil, false 5342} 5343 5344// AsBasicWorkloadProtectableItem is the BasicWorkloadProtectableItem implementation for AzureVMWorkloadSAPAseSystemProtectableItem. 5345func (avwsaspi AzureVMWorkloadSAPAseSystemProtectableItem) AsBasicWorkloadProtectableItem() (BasicWorkloadProtectableItem, bool) { 5346 return &avwsaspi, true 5347} 5348 5349// AzureVMWorkloadSAPAseSystemWorkloadItem azure VM workload-specific workload item representing SAP ASE 5350// System. 5351type AzureVMWorkloadSAPAseSystemWorkloadItem struct { 5352 // ParentName - Name for instance or AG 5353 ParentName *string `json:"parentName,omitempty"` 5354 // ServerName - Host/Cluster Name for instance or AG 5355 ServerName *string `json:"serverName,omitempty"` 5356 // IsAutoProtectable - Indicates if workload item is auto-protectable 5357 IsAutoProtectable *bool `json:"isAutoProtectable,omitempty"` 5358 // Subinquireditemcount - For instance or AG, indicates number of DB's present 5359 Subinquireditemcount *int32 `json:"subinquireditemcount,omitempty"` 5360 // SubWorkloadItemCount - For instance or AG, indicates number of DB's to be protected 5361 SubWorkloadItemCount *int32 `json:"subWorkloadItemCount,omitempty"` 5362 // BackupManagementType - Type of backup management to backup an item. 5363 BackupManagementType *string `json:"backupManagementType,omitempty"` 5364 // WorkloadType - Type of workload for the backup management 5365 WorkloadType *string `json:"workloadType,omitempty"` 5366 // FriendlyName - Friendly name of the backup item. 5367 FriendlyName *string `json:"friendlyName,omitempty"` 5368 // ProtectionState - State of the back up item. Possible values include: 'ProtectionStatusInvalid', 'ProtectionStatusNotProtected', 'ProtectionStatusProtecting', 'ProtectionStatusProtected', 'ProtectionStatusProtectionFailed' 5369 ProtectionState ProtectionStatus `json:"protectionState,omitempty"` 5370 // WorkloadItemType - Possible values include: 'WorkloadItemTypeWorkloadItem', 'WorkloadItemTypeAzureVMWorkloadItem', 'WorkloadItemTypeSAPAseDatabase1', 'WorkloadItemTypeSAPAseSystem1', 'WorkloadItemTypeSAPHanaDatabase1', 'WorkloadItemTypeSAPHanaSystem1', 'WorkloadItemTypeSQLDataBase1', 'WorkloadItemTypeSQLInstance1' 5371 WorkloadItemType WorkloadItemTypeBasicWorkloadItem `json:"workloadItemType,omitempty"` 5372} 5373 5374// MarshalJSON is the custom marshaler for AzureVMWorkloadSAPAseSystemWorkloadItem. 5375func (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// AsAzureVMWorkloadItem is the BasicWorkloadItem implementation for AzureVMWorkloadSAPAseSystemWorkloadItem. 5412func (avwsaswi AzureVMWorkloadSAPAseSystemWorkloadItem) AsAzureVMWorkloadItem() (*AzureVMWorkloadItem, bool) { 5413 return nil, false 5414} 5415 5416// AsBasicAzureVMWorkloadItem is the BasicWorkloadItem implementation for AzureVMWorkloadSAPAseSystemWorkloadItem. 5417func (avwsaswi AzureVMWorkloadSAPAseSystemWorkloadItem) AsBasicAzureVMWorkloadItem() (BasicAzureVMWorkloadItem, bool) { 5418 return &avwsaswi, true 5419} 5420 5421// AsAzureVMWorkloadSAPAseDatabaseWorkloadItem is the BasicWorkloadItem implementation for AzureVMWorkloadSAPAseSystemWorkloadItem. 5422func (avwsaswi AzureVMWorkloadSAPAseSystemWorkloadItem) AsAzureVMWorkloadSAPAseDatabaseWorkloadItem() (*AzureVMWorkloadSAPAseDatabaseWorkloadItem, bool) { 5423 return nil, false 5424} 5425 5426// AsAzureVMWorkloadSAPAseSystemWorkloadItem is the BasicWorkloadItem implementation for AzureVMWorkloadSAPAseSystemWorkloadItem. 5427func (avwsaswi AzureVMWorkloadSAPAseSystemWorkloadItem) AsAzureVMWorkloadSAPAseSystemWorkloadItem() (*AzureVMWorkloadSAPAseSystemWorkloadItem, bool) { 5428 return &avwsaswi, true 5429} 5430 5431// AsAzureVMWorkloadSAPHanaDatabaseWorkloadItem is the BasicWorkloadItem implementation for AzureVMWorkloadSAPAseSystemWorkloadItem. 5432func (avwsaswi AzureVMWorkloadSAPAseSystemWorkloadItem) AsAzureVMWorkloadSAPHanaDatabaseWorkloadItem() (*AzureVMWorkloadSAPHanaDatabaseWorkloadItem, bool) { 5433 return nil, false 5434} 5435 5436// AsAzureVMWorkloadSAPHanaSystemWorkloadItem is the BasicWorkloadItem implementation for AzureVMWorkloadSAPAseSystemWorkloadItem. 5437func (avwsaswi AzureVMWorkloadSAPAseSystemWorkloadItem) AsAzureVMWorkloadSAPHanaSystemWorkloadItem() (*AzureVMWorkloadSAPHanaSystemWorkloadItem, bool) { 5438 return nil, false 5439} 5440 5441// AsAzureVMWorkloadSQLDatabaseWorkloadItem is the BasicWorkloadItem implementation for AzureVMWorkloadSAPAseSystemWorkloadItem. 5442func (avwsaswi AzureVMWorkloadSAPAseSystemWorkloadItem) AsAzureVMWorkloadSQLDatabaseWorkloadItem() (*AzureVMWorkloadSQLDatabaseWorkloadItem, bool) { 5443 return nil, false 5444} 5445 5446// AsAzureVMWorkloadSQLInstanceWorkloadItem is the BasicWorkloadItem implementation for AzureVMWorkloadSAPAseSystemWorkloadItem. 5447func (avwsaswi AzureVMWorkloadSAPAseSystemWorkloadItem) AsAzureVMWorkloadSQLInstanceWorkloadItem() (*AzureVMWorkloadSQLInstanceWorkloadItem, bool) { 5448 return nil, false 5449} 5450 5451// AsWorkloadItem is the BasicWorkloadItem implementation for AzureVMWorkloadSAPAseSystemWorkloadItem. 5452func (avwsaswi AzureVMWorkloadSAPAseSystemWorkloadItem) AsWorkloadItem() (*WorkloadItem, bool) { 5453 return nil, false 5454} 5455 5456// AsBasicWorkloadItem is the BasicWorkloadItem implementation for AzureVMWorkloadSAPAseSystemWorkloadItem. 5457func (avwsaswi AzureVMWorkloadSAPAseSystemWorkloadItem) AsBasicWorkloadItem() (BasicWorkloadItem, bool) { 5458 return &avwsaswi, true 5459} 5460 5461// AzureVMWorkloadSAPHanaDatabaseProtectableItem azure VM workload-specific protectable item representing 5462// SAP HANA Database. 5463type AzureVMWorkloadSAPHanaDatabaseProtectableItem struct { 5464 // ParentName - Name for instance or AG 5465 ParentName *string `json:"parentName,omitempty"` 5466 // ParentUniqueName - Parent Unique Name is added to provide the service formatted URI Name of the Parent 5467 // Only Applicable for data bases where the parent would be either Instance or a SQL AG. 5468 ParentUniqueName *string `json:"parentUniqueName,omitempty"` 5469 // ServerName - Host/Cluster Name for instance or AG 5470 ServerName *string `json:"serverName,omitempty"` 5471 // IsAutoProtectable - Indicates if protectable item is auto-protectable 5472 IsAutoProtectable *bool `json:"isAutoProtectable,omitempty"` 5473 // IsAutoProtected - Indicates if protectable item is auto-protected 5474 IsAutoProtected *bool `json:"isAutoProtected,omitempty"` 5475 // Subinquireditemcount - For instance or AG, indicates number of DB's present 5476 Subinquireditemcount *int32 `json:"subinquireditemcount,omitempty"` 5477 // Subprotectableitemcount - For instance or AG, indicates number of DB's to be protected 5478 Subprotectableitemcount *int32 `json:"subprotectableitemcount,omitempty"` 5479 // Prebackupvalidation - Pre-backup validation for protectable objects 5480 Prebackupvalidation *PreBackupValidation `json:"prebackupvalidation,omitempty"` 5481 // BackupManagementType - Type of backup management to backup an item. 5482 BackupManagementType *string `json:"backupManagementType,omitempty"` 5483 // WorkloadType - Type of workload for the backup management 5484 WorkloadType *string `json:"workloadType,omitempty"` 5485 // FriendlyName - Friendly name of the backup item. 5486 FriendlyName *string `json:"friendlyName,omitempty"` 5487 // ProtectionState - State of the back up item. Possible values include: 'ProtectionStatusInvalid', 'ProtectionStatusNotProtected', 'ProtectionStatusProtecting', 'ProtectionStatusProtected', 'ProtectionStatusProtectionFailed' 5488 ProtectionState ProtectionStatus `json:"protectionState,omitempty"` 5489 // ProtectableItemType - Possible values include: 'ProtectableItemTypeWorkloadProtectableItem', 'ProtectableItemTypeAzureFileShare', 'ProtectableItemTypeMicrosoftClassicComputevirtualMachines', 'ProtectableItemTypeMicrosoftComputevirtualMachines', 'ProtectableItemTypeAzureVMWorkloadProtectableItem', 'ProtectableItemTypeSAPAseSystem', 'ProtectableItemTypeSAPHanaDatabase', 'ProtectableItemTypeSAPHanaSystem', 'ProtectableItemTypeSQLAvailabilityGroupContainer', 'ProtectableItemTypeSQLDataBase', 'ProtectableItemTypeSQLInstance', 'ProtectableItemTypeIaaSVMProtectableItem' 5490 ProtectableItemType ProtectableItemType `json:"protectableItemType,omitempty"` 5491} 5492 5493// MarshalJSON is the custom marshaler for AzureVMWorkloadSAPHanaDatabaseProtectableItem. 5494func (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// AsAzureFileShareProtectableItem is the BasicWorkloadProtectableItem implementation for AzureVMWorkloadSAPHanaDatabaseProtectableItem. 5540func (avwshdpi AzureVMWorkloadSAPHanaDatabaseProtectableItem) AsAzureFileShareProtectableItem() (*AzureFileShareProtectableItem, bool) { 5541 return nil, false 5542} 5543 5544// AsAzureIaaSClassicComputeVMProtectableItem is the BasicWorkloadProtectableItem implementation for AzureVMWorkloadSAPHanaDatabaseProtectableItem. 5545func (avwshdpi AzureVMWorkloadSAPHanaDatabaseProtectableItem) AsAzureIaaSClassicComputeVMProtectableItem() (*AzureIaaSClassicComputeVMProtectableItem, bool) { 5546 return nil, false 5547} 5548 5549// AsAzureIaaSComputeVMProtectableItem is the BasicWorkloadProtectableItem implementation for AzureVMWorkloadSAPHanaDatabaseProtectableItem. 5550func (avwshdpi AzureVMWorkloadSAPHanaDatabaseProtectableItem) AsAzureIaaSComputeVMProtectableItem() (*AzureIaaSComputeVMProtectableItem, bool) { 5551 return nil, false 5552} 5553 5554// AsAzureVMWorkloadProtectableItem is the BasicWorkloadProtectableItem implementation for AzureVMWorkloadSAPHanaDatabaseProtectableItem. 5555func (avwshdpi AzureVMWorkloadSAPHanaDatabaseProtectableItem) AsAzureVMWorkloadProtectableItem() (*AzureVMWorkloadProtectableItem, bool) { 5556 return nil, false 5557} 5558 5559// AsBasicAzureVMWorkloadProtectableItem is the BasicWorkloadProtectableItem implementation for AzureVMWorkloadSAPHanaDatabaseProtectableItem. 5560func (avwshdpi AzureVMWorkloadSAPHanaDatabaseProtectableItem) AsBasicAzureVMWorkloadProtectableItem() (BasicAzureVMWorkloadProtectableItem, bool) { 5561 return &avwshdpi, true 5562} 5563 5564// AsAzureVMWorkloadSAPAseSystemProtectableItem is the BasicWorkloadProtectableItem implementation for AzureVMWorkloadSAPHanaDatabaseProtectableItem. 5565func (avwshdpi AzureVMWorkloadSAPHanaDatabaseProtectableItem) AsAzureVMWorkloadSAPAseSystemProtectableItem() (*AzureVMWorkloadSAPAseSystemProtectableItem, bool) { 5566 return nil, false 5567} 5568 5569// AsAzureVMWorkloadSAPHanaDatabaseProtectableItem is the BasicWorkloadProtectableItem implementation for AzureVMWorkloadSAPHanaDatabaseProtectableItem. 5570func (avwshdpi AzureVMWorkloadSAPHanaDatabaseProtectableItem) AsAzureVMWorkloadSAPHanaDatabaseProtectableItem() (*AzureVMWorkloadSAPHanaDatabaseProtectableItem, bool) { 5571 return &avwshdpi, true 5572} 5573 5574// AsAzureVMWorkloadSAPHanaSystemProtectableItem is the BasicWorkloadProtectableItem implementation for AzureVMWorkloadSAPHanaDatabaseProtectableItem. 5575func (avwshdpi AzureVMWorkloadSAPHanaDatabaseProtectableItem) AsAzureVMWorkloadSAPHanaSystemProtectableItem() (*AzureVMWorkloadSAPHanaSystemProtectableItem, bool) { 5576 return nil, false 5577} 5578 5579// AsAzureVMWorkloadSQLAvailabilityGroupProtectableItem is the BasicWorkloadProtectableItem implementation for AzureVMWorkloadSAPHanaDatabaseProtectableItem. 5580func (avwshdpi AzureVMWorkloadSAPHanaDatabaseProtectableItem) AsAzureVMWorkloadSQLAvailabilityGroupProtectableItem() (*AzureVMWorkloadSQLAvailabilityGroupProtectableItem, bool) { 5581 return nil, false 5582} 5583 5584// AsAzureVMWorkloadSQLDatabaseProtectableItem is the BasicWorkloadProtectableItem implementation for AzureVMWorkloadSAPHanaDatabaseProtectableItem. 5585func (avwshdpi AzureVMWorkloadSAPHanaDatabaseProtectableItem) AsAzureVMWorkloadSQLDatabaseProtectableItem() (*AzureVMWorkloadSQLDatabaseProtectableItem, bool) { 5586 return nil, false 5587} 5588 5589// AsAzureVMWorkloadSQLInstanceProtectableItem is the BasicWorkloadProtectableItem implementation for AzureVMWorkloadSAPHanaDatabaseProtectableItem. 5590func (avwshdpi AzureVMWorkloadSAPHanaDatabaseProtectableItem) AsAzureVMWorkloadSQLInstanceProtectableItem() (*AzureVMWorkloadSQLInstanceProtectableItem, bool) { 5591 return nil, false 5592} 5593 5594// AsIaaSVMProtectableItem is the BasicWorkloadProtectableItem implementation for AzureVMWorkloadSAPHanaDatabaseProtectableItem. 5595func (avwshdpi AzureVMWorkloadSAPHanaDatabaseProtectableItem) AsIaaSVMProtectableItem() (*IaaSVMProtectableItem, bool) { 5596 return nil, false 5597} 5598 5599// AsBasicIaaSVMProtectableItem is the BasicWorkloadProtectableItem implementation for AzureVMWorkloadSAPHanaDatabaseProtectableItem. 5600func (avwshdpi AzureVMWorkloadSAPHanaDatabaseProtectableItem) AsBasicIaaSVMProtectableItem() (BasicIaaSVMProtectableItem, bool) { 5601 return nil, false 5602} 5603 5604// AsWorkloadProtectableItem is the BasicWorkloadProtectableItem implementation for AzureVMWorkloadSAPHanaDatabaseProtectableItem. 5605func (avwshdpi AzureVMWorkloadSAPHanaDatabaseProtectableItem) AsWorkloadProtectableItem() (*WorkloadProtectableItem, bool) { 5606 return nil, false 5607} 5608 5609// AsBasicWorkloadProtectableItem is the BasicWorkloadProtectableItem implementation for AzureVMWorkloadSAPHanaDatabaseProtectableItem. 5610func (avwshdpi AzureVMWorkloadSAPHanaDatabaseProtectableItem) AsBasicWorkloadProtectableItem() (BasicWorkloadProtectableItem, bool) { 5611 return &avwshdpi, true 5612} 5613 5614// AzureVMWorkloadSAPHanaDatabaseProtectedItem azure VM workload-specific protected item representing SAP 5615// HANA Database. 5616type AzureVMWorkloadSAPHanaDatabaseProtectedItem struct { 5617 // FriendlyName - Friendly name of the DB represented by this backup item. 5618 FriendlyName *string `json:"friendlyName,omitempty"` 5619 // ServerName - Host/Cluster Name for instance or AG 5620 ServerName *string `json:"serverName,omitempty"` 5621 // ParentName - Parent name of the DB such as Instance or Availability Group. 5622 ParentName *string `json:"parentName,omitempty"` 5623 // ParentType - Parent type of protected item, example: for a DB, standalone server or distributed 5624 ParentType *string `json:"parentType,omitempty"` 5625 // ProtectionStatus - Backup status of this backup item. 5626 ProtectionStatus *string `json:"protectionStatus,omitempty"` 5627 // ProtectionState - Backup state of this backup item. Possible values include: 'ProtectionStateInvalid', 'ProtectionStateIRPending', 'ProtectionStateProtected', 'ProtectionStateProtectionError', 'ProtectionStateProtectionStopped', 'ProtectionStateProtectionPaused' 5628 ProtectionState ProtectionState `json:"protectionState,omitempty"` 5629 // LastBackupStatus - Last backup operation status. Possible values: Healthy, Unhealthy. Possible values include: 'LastBackupStatusInvalid', 'LastBackupStatusHealthy', 'LastBackupStatusUnhealthy', 'LastBackupStatusIRPending' 5630 LastBackupStatus LastBackupStatus `json:"lastBackupStatus,omitempty"` 5631 // LastBackupTime - Timestamp of the last backup operation on this backup item. 5632 LastBackupTime *date.Time `json:"lastBackupTime,omitempty"` 5633 // LastBackupErrorDetail - Error details in last backup 5634 LastBackupErrorDetail *ErrorDetail `json:"lastBackupErrorDetail,omitempty"` 5635 // ProtectedItemDataSourceID - Data ID of the protected item. 5636 ProtectedItemDataSourceID *string `json:"protectedItemDataSourceId,omitempty"` 5637 // ProtectedItemHealthStatus - Health status of the backup item, evaluated based on last heartbeat received. Possible values include: 'ProtectedItemHealthStatusInvalid', 'ProtectedItemHealthStatusHealthy', 'ProtectedItemHealthStatusUnhealthy', 'ProtectedItemHealthStatusNotReachable', 'ProtectedItemHealthStatusIRPending' 5638 ProtectedItemHealthStatus ProtectedItemHealthStatus `json:"protectedItemHealthStatus,omitempty"` 5639 // ExtendedInfo - Additional information for this backup item. 5640 ExtendedInfo *AzureVMWorkloadProtectedItemExtendedInfo `json:"extendedInfo,omitempty"` 5641 // KpisHealths - Health details of different KPIs 5642 KpisHealths map[string]*KPIResourceHealthDetails `json:"kpisHealths"` 5643 // BackupManagementType - Type of backup management for the backed up item. Possible values include: 'ManagementTypeInvalid', 'ManagementTypeAzureIaasVM', 'ManagementTypeMAB', 'ManagementTypeDPM', 'ManagementTypeAzureBackupServer', 'ManagementTypeAzureSQL', 'ManagementTypeAzureStorage', 'ManagementTypeAzureWorkload', 'ManagementTypeDefaultBackup' 5644 BackupManagementType ManagementType `json:"backupManagementType,omitempty"` 5645 // WorkloadType - Type of workload this item represents. Possible values include: 'DataSourceTypeInvalid', 'DataSourceTypeVM', 'DataSourceTypeFileFolder', 'DataSourceTypeAzureSQLDb', 'DataSourceTypeSQLDB', 'DataSourceTypeExchange', 'DataSourceTypeSharepoint', 'DataSourceTypeVMwareVM', 'DataSourceTypeSystemState', 'DataSourceTypeClient', 'DataSourceTypeGenericDataSource', 'DataSourceTypeSQLDataBase', 'DataSourceTypeAzureFileShare', 'DataSourceTypeSAPHanaDatabase', 'DataSourceTypeSAPAseDatabase' 5646 WorkloadType DataSourceType `json:"workloadType,omitempty"` 5647 // ContainerName - Unique name of container 5648 ContainerName *string `json:"containerName,omitempty"` 5649 // SourceResourceID - ARM ID of the resource to be backed up. 5650 SourceResourceID *string `json:"sourceResourceId,omitempty"` 5651 // PolicyID - ID of the backup policy with which this item is backed up. 5652 PolicyID *string `json:"policyId,omitempty"` 5653 // LastRecoveryPoint - Timestamp when the last (latest) backup copy was created for this backup item. 5654 LastRecoveryPoint *date.Time `json:"lastRecoveryPoint,omitempty"` 5655 // BackupSetName - Name of the backup set the backup item belongs to 5656 BackupSetName *string `json:"backupSetName,omitempty"` 5657 // CreateMode - Create mode to indicate recovery of existing soft deleted data source or creation of new data source. Possible values include: 'CreateModeInvalid', 'CreateModeDefault', 'CreateModeRecover' 5658 CreateMode CreateMode `json:"createMode,omitempty"` 5659 // DeferredDeleteTimeInUTC - Time for deferred deletion in UTC 5660 DeferredDeleteTimeInUTC *date.Time `json:"deferredDeleteTimeInUTC,omitempty"` 5661 // IsScheduledForDeferredDelete - Flag to identify whether the DS is scheduled for deferred delete 5662 IsScheduledForDeferredDelete *bool `json:"isScheduledForDeferredDelete,omitempty"` 5663 // DeferredDeleteTimeRemaining - Time remaining before the DS marked for deferred delete is permanently deleted 5664 DeferredDeleteTimeRemaining *string `json:"deferredDeleteTimeRemaining,omitempty"` 5665 // IsDeferredDeleteScheduleUpcoming - Flag to identify whether the deferred deleted DS is to be purged soon 5666 IsDeferredDeleteScheduleUpcoming *bool `json:"isDeferredDeleteScheduleUpcoming,omitempty"` 5667 // IsRehydrate - Flag to identify that deferred deleted DS is to be moved into Pause state 5668 IsRehydrate *bool `json:"isRehydrate,omitempty"` 5669 // ProtectedItemType - Possible values include: 'ProtectedItemTypeProtectedItem', 'ProtectedItemTypeAzureFileShareProtectedItem', 'ProtectedItemTypeMicrosoftClassicComputevirtualMachines', 'ProtectedItemTypeMicrosoftComputevirtualMachines', 'ProtectedItemTypeAzureIaaSVMProtectedItem', 'ProtectedItemTypeMicrosoftSqlserversdatabases', 'ProtectedItemTypeAzureVMWorkloadProtectedItem', 'ProtectedItemTypeAzureVMWorkloadSAPAseDatabase', 'ProtectedItemTypeAzureVMWorkloadSAPHanaDatabase', 'ProtectedItemTypeAzureVMWorkloadSQLDatabase', 'ProtectedItemTypeDPMProtectedItem', 'ProtectedItemTypeGenericProtectedItem', 'ProtectedItemTypeMabFileFolderProtectedItem' 5670 ProtectedItemType ProtectedItemType `json:"protectedItemType,omitempty"` 5671} 5672 5673// MarshalJSON is the custom marshaler for AzureVMWorkloadSAPHanaDatabaseProtectedItem. 5674func (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// AsAzureFileshareProtectedItem is the BasicProtectedItem implementation for AzureVMWorkloadSAPHanaDatabaseProtectedItem. 5762func (avwshdpi AzureVMWorkloadSAPHanaDatabaseProtectedItem) AsAzureFileshareProtectedItem() (*AzureFileshareProtectedItem, bool) { 5763 return nil, false 5764} 5765 5766// AsAzureIaaSClassicComputeVMProtectedItem is the BasicProtectedItem implementation for AzureVMWorkloadSAPHanaDatabaseProtectedItem. 5767func (avwshdpi AzureVMWorkloadSAPHanaDatabaseProtectedItem) AsAzureIaaSClassicComputeVMProtectedItem() (*AzureIaaSClassicComputeVMProtectedItem, bool) { 5768 return nil, false 5769} 5770 5771// AsAzureIaaSComputeVMProtectedItem is the BasicProtectedItem implementation for AzureVMWorkloadSAPHanaDatabaseProtectedItem. 5772func (avwshdpi AzureVMWorkloadSAPHanaDatabaseProtectedItem) AsAzureIaaSComputeVMProtectedItem() (*AzureIaaSComputeVMProtectedItem, bool) { 5773 return nil, false 5774} 5775 5776// AsAzureIaaSVMProtectedItem is the BasicProtectedItem implementation for AzureVMWorkloadSAPHanaDatabaseProtectedItem. 5777func (avwshdpi AzureVMWorkloadSAPHanaDatabaseProtectedItem) AsAzureIaaSVMProtectedItem() (*AzureIaaSVMProtectedItem, bool) { 5778 return nil, false 5779} 5780 5781// AsBasicAzureIaaSVMProtectedItem is the BasicProtectedItem implementation for AzureVMWorkloadSAPHanaDatabaseProtectedItem. 5782func (avwshdpi AzureVMWorkloadSAPHanaDatabaseProtectedItem) AsBasicAzureIaaSVMProtectedItem() (BasicAzureIaaSVMProtectedItem, bool) { 5783 return nil, false 5784} 5785 5786// AsAzureSQLProtectedItem is the BasicProtectedItem implementation for AzureVMWorkloadSAPHanaDatabaseProtectedItem. 5787func (avwshdpi AzureVMWorkloadSAPHanaDatabaseProtectedItem) AsAzureSQLProtectedItem() (*AzureSQLProtectedItem, bool) { 5788 return nil, false 5789} 5790 5791// AsAzureVMWorkloadProtectedItem is the BasicProtectedItem implementation for AzureVMWorkloadSAPHanaDatabaseProtectedItem. 5792func (avwshdpi AzureVMWorkloadSAPHanaDatabaseProtectedItem) AsAzureVMWorkloadProtectedItem() (*AzureVMWorkloadProtectedItem, bool) { 5793 return nil, false 5794} 5795 5796// AsBasicAzureVMWorkloadProtectedItem is the BasicProtectedItem implementation for AzureVMWorkloadSAPHanaDatabaseProtectedItem. 5797func (avwshdpi AzureVMWorkloadSAPHanaDatabaseProtectedItem) AsBasicAzureVMWorkloadProtectedItem() (BasicAzureVMWorkloadProtectedItem, bool) { 5798 return &avwshdpi, true 5799} 5800 5801// AsAzureVMWorkloadSAPAseDatabaseProtectedItem is the BasicProtectedItem implementation for AzureVMWorkloadSAPHanaDatabaseProtectedItem. 5802func (avwshdpi AzureVMWorkloadSAPHanaDatabaseProtectedItem) AsAzureVMWorkloadSAPAseDatabaseProtectedItem() (*AzureVMWorkloadSAPAseDatabaseProtectedItem, bool) { 5803 return nil, false 5804} 5805 5806// AsAzureVMWorkloadSAPHanaDatabaseProtectedItem is the BasicProtectedItem implementation for AzureVMWorkloadSAPHanaDatabaseProtectedItem. 5807func (avwshdpi AzureVMWorkloadSAPHanaDatabaseProtectedItem) AsAzureVMWorkloadSAPHanaDatabaseProtectedItem() (*AzureVMWorkloadSAPHanaDatabaseProtectedItem, bool) { 5808 return &avwshdpi, true 5809} 5810 5811// AsAzureVMWorkloadSQLDatabaseProtectedItem is the BasicProtectedItem implementation for AzureVMWorkloadSAPHanaDatabaseProtectedItem. 5812func (avwshdpi AzureVMWorkloadSAPHanaDatabaseProtectedItem) AsAzureVMWorkloadSQLDatabaseProtectedItem() (*AzureVMWorkloadSQLDatabaseProtectedItem, bool) { 5813 return nil, false 5814} 5815 5816// AsDPMProtectedItem is the BasicProtectedItem implementation for AzureVMWorkloadSAPHanaDatabaseProtectedItem. 5817func (avwshdpi AzureVMWorkloadSAPHanaDatabaseProtectedItem) AsDPMProtectedItem() (*DPMProtectedItem, bool) { 5818 return nil, false 5819} 5820 5821// AsGenericProtectedItem is the BasicProtectedItem implementation for AzureVMWorkloadSAPHanaDatabaseProtectedItem. 5822func (avwshdpi AzureVMWorkloadSAPHanaDatabaseProtectedItem) AsGenericProtectedItem() (*GenericProtectedItem, bool) { 5823 return nil, false 5824} 5825 5826// AsMabFileFolderProtectedItem is the BasicProtectedItem implementation for AzureVMWorkloadSAPHanaDatabaseProtectedItem. 5827func (avwshdpi AzureVMWorkloadSAPHanaDatabaseProtectedItem) AsMabFileFolderProtectedItem() (*MabFileFolderProtectedItem, bool) { 5828 return nil, false 5829} 5830 5831// AsProtectedItem is the BasicProtectedItem implementation for AzureVMWorkloadSAPHanaDatabaseProtectedItem. 5832func (avwshdpi AzureVMWorkloadSAPHanaDatabaseProtectedItem) AsProtectedItem() (*ProtectedItem, bool) { 5833 return nil, false 5834} 5835 5836// AsBasicProtectedItem is the BasicProtectedItem implementation for AzureVMWorkloadSAPHanaDatabaseProtectedItem. 5837func (avwshdpi AzureVMWorkloadSAPHanaDatabaseProtectedItem) AsBasicProtectedItem() (BasicProtectedItem, bool) { 5838 return &avwshdpi, true 5839} 5840 5841// AzureVMWorkloadSAPHanaDatabaseWorkloadItem azure VM workload-specific workload item representing SAP 5842// HANA Database. 5843type AzureVMWorkloadSAPHanaDatabaseWorkloadItem struct { 5844 // ParentName - Name for instance or AG 5845 ParentName *string `json:"parentName,omitempty"` 5846 // ServerName - Host/Cluster Name for instance or AG 5847 ServerName *string `json:"serverName,omitempty"` 5848 // IsAutoProtectable - Indicates if workload item is auto-protectable 5849 IsAutoProtectable *bool `json:"isAutoProtectable,omitempty"` 5850 // Subinquireditemcount - For instance or AG, indicates number of DB's present 5851 Subinquireditemcount *int32 `json:"subinquireditemcount,omitempty"` 5852 // SubWorkloadItemCount - For instance or AG, indicates number of DB's to be protected 5853 SubWorkloadItemCount *int32 `json:"subWorkloadItemCount,omitempty"` 5854 // BackupManagementType - Type of backup management to backup an item. 5855 BackupManagementType *string `json:"backupManagementType,omitempty"` 5856 // WorkloadType - Type of workload for the backup management 5857 WorkloadType *string `json:"workloadType,omitempty"` 5858 // FriendlyName - Friendly name of the backup item. 5859 FriendlyName *string `json:"friendlyName,omitempty"` 5860 // ProtectionState - State of the back up item. Possible values include: 'ProtectionStatusInvalid', 'ProtectionStatusNotProtected', 'ProtectionStatusProtecting', 'ProtectionStatusProtected', 'ProtectionStatusProtectionFailed' 5861 ProtectionState ProtectionStatus `json:"protectionState,omitempty"` 5862 // WorkloadItemType - Possible values include: 'WorkloadItemTypeWorkloadItem', 'WorkloadItemTypeAzureVMWorkloadItem', 'WorkloadItemTypeSAPAseDatabase1', 'WorkloadItemTypeSAPAseSystem1', 'WorkloadItemTypeSAPHanaDatabase1', 'WorkloadItemTypeSAPHanaSystem1', 'WorkloadItemTypeSQLDataBase1', 'WorkloadItemTypeSQLInstance1' 5863 WorkloadItemType WorkloadItemTypeBasicWorkloadItem `json:"workloadItemType,omitempty"` 5864} 5865 5866// MarshalJSON is the custom marshaler for AzureVMWorkloadSAPHanaDatabaseWorkloadItem. 5867func (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// AsAzureVMWorkloadItem is the BasicWorkloadItem implementation for AzureVMWorkloadSAPHanaDatabaseWorkloadItem. 5904func (avwshdwi AzureVMWorkloadSAPHanaDatabaseWorkloadItem) AsAzureVMWorkloadItem() (*AzureVMWorkloadItem, bool) { 5905 return nil, false 5906} 5907 5908// AsBasicAzureVMWorkloadItem is the BasicWorkloadItem implementation for AzureVMWorkloadSAPHanaDatabaseWorkloadItem. 5909func (avwshdwi AzureVMWorkloadSAPHanaDatabaseWorkloadItem) AsBasicAzureVMWorkloadItem() (BasicAzureVMWorkloadItem, bool) { 5910 return &avwshdwi, true 5911} 5912 5913// AsAzureVMWorkloadSAPAseDatabaseWorkloadItem is the BasicWorkloadItem implementation for AzureVMWorkloadSAPHanaDatabaseWorkloadItem. 5914func (avwshdwi AzureVMWorkloadSAPHanaDatabaseWorkloadItem) AsAzureVMWorkloadSAPAseDatabaseWorkloadItem() (*AzureVMWorkloadSAPAseDatabaseWorkloadItem, bool) { 5915 return nil, false 5916} 5917 5918// AsAzureVMWorkloadSAPAseSystemWorkloadItem is the BasicWorkloadItem implementation for AzureVMWorkloadSAPHanaDatabaseWorkloadItem. 5919func (avwshdwi AzureVMWorkloadSAPHanaDatabaseWorkloadItem) AsAzureVMWorkloadSAPAseSystemWorkloadItem() (*AzureVMWorkloadSAPAseSystemWorkloadItem, bool) { 5920 return nil, false 5921} 5922 5923// AsAzureVMWorkloadSAPHanaDatabaseWorkloadItem is the BasicWorkloadItem implementation for AzureVMWorkloadSAPHanaDatabaseWorkloadItem. 5924func (avwshdwi AzureVMWorkloadSAPHanaDatabaseWorkloadItem) AsAzureVMWorkloadSAPHanaDatabaseWorkloadItem() (*AzureVMWorkloadSAPHanaDatabaseWorkloadItem, bool) { 5925 return &avwshdwi, true 5926} 5927 5928// AsAzureVMWorkloadSAPHanaSystemWorkloadItem is the BasicWorkloadItem implementation for AzureVMWorkloadSAPHanaDatabaseWorkloadItem. 5929func (avwshdwi AzureVMWorkloadSAPHanaDatabaseWorkloadItem) AsAzureVMWorkloadSAPHanaSystemWorkloadItem() (*AzureVMWorkloadSAPHanaSystemWorkloadItem, bool) { 5930 return nil, false 5931} 5932 5933// AsAzureVMWorkloadSQLDatabaseWorkloadItem is the BasicWorkloadItem implementation for AzureVMWorkloadSAPHanaDatabaseWorkloadItem. 5934func (avwshdwi AzureVMWorkloadSAPHanaDatabaseWorkloadItem) AsAzureVMWorkloadSQLDatabaseWorkloadItem() (*AzureVMWorkloadSQLDatabaseWorkloadItem, bool) { 5935 return nil, false 5936} 5937 5938// AsAzureVMWorkloadSQLInstanceWorkloadItem is the BasicWorkloadItem implementation for AzureVMWorkloadSAPHanaDatabaseWorkloadItem. 5939func (avwshdwi AzureVMWorkloadSAPHanaDatabaseWorkloadItem) AsAzureVMWorkloadSQLInstanceWorkloadItem() (*AzureVMWorkloadSQLInstanceWorkloadItem, bool) { 5940 return nil, false 5941} 5942 5943// AsWorkloadItem is the BasicWorkloadItem implementation for AzureVMWorkloadSAPHanaDatabaseWorkloadItem. 5944func (avwshdwi AzureVMWorkloadSAPHanaDatabaseWorkloadItem) AsWorkloadItem() (*WorkloadItem, bool) { 5945 return nil, false 5946} 5947 5948// AsBasicWorkloadItem is the BasicWorkloadItem implementation for AzureVMWorkloadSAPHanaDatabaseWorkloadItem. 5949func (avwshdwi AzureVMWorkloadSAPHanaDatabaseWorkloadItem) AsBasicWorkloadItem() (BasicWorkloadItem, bool) { 5950 return &avwshdwi, true 5951} 5952 5953// AzureVMWorkloadSAPHanaSystemProtectableItem azure VM workload-specific protectable item representing SAP 5954// HANA System. 5955type AzureVMWorkloadSAPHanaSystemProtectableItem struct { 5956 // ParentName - Name for instance or AG 5957 ParentName *string `json:"parentName,omitempty"` 5958 // ParentUniqueName - Parent Unique Name is added to provide the service formatted URI Name of the Parent 5959 // Only Applicable for data bases where the parent would be either Instance or a SQL AG. 5960 ParentUniqueName *string `json:"parentUniqueName,omitempty"` 5961 // ServerName - Host/Cluster Name for instance or AG 5962 ServerName *string `json:"serverName,omitempty"` 5963 // IsAutoProtectable - Indicates if protectable item is auto-protectable 5964 IsAutoProtectable *bool `json:"isAutoProtectable,omitempty"` 5965 // IsAutoProtected - Indicates if protectable item is auto-protected 5966 IsAutoProtected *bool `json:"isAutoProtected,omitempty"` 5967 // Subinquireditemcount - For instance or AG, indicates number of DB's present 5968 Subinquireditemcount *int32 `json:"subinquireditemcount,omitempty"` 5969 // Subprotectableitemcount - For instance or AG, indicates number of DB's to be protected 5970 Subprotectableitemcount *int32 `json:"subprotectableitemcount,omitempty"` 5971 // Prebackupvalidation - Pre-backup validation for protectable objects 5972 Prebackupvalidation *PreBackupValidation `json:"prebackupvalidation,omitempty"` 5973 // BackupManagementType - Type of backup management to backup an item. 5974 BackupManagementType *string `json:"backupManagementType,omitempty"` 5975 // WorkloadType - Type of workload for the backup management 5976 WorkloadType *string `json:"workloadType,omitempty"` 5977 // FriendlyName - Friendly name of the backup item. 5978 FriendlyName *string `json:"friendlyName,omitempty"` 5979 // ProtectionState - State of the back up item. Possible values include: 'ProtectionStatusInvalid', 'ProtectionStatusNotProtected', 'ProtectionStatusProtecting', 'ProtectionStatusProtected', 'ProtectionStatusProtectionFailed' 5980 ProtectionState ProtectionStatus `json:"protectionState,omitempty"` 5981 // ProtectableItemType - Possible values include: 'ProtectableItemTypeWorkloadProtectableItem', 'ProtectableItemTypeAzureFileShare', 'ProtectableItemTypeMicrosoftClassicComputevirtualMachines', 'ProtectableItemTypeMicrosoftComputevirtualMachines', 'ProtectableItemTypeAzureVMWorkloadProtectableItem', 'ProtectableItemTypeSAPAseSystem', 'ProtectableItemTypeSAPHanaDatabase', 'ProtectableItemTypeSAPHanaSystem', 'ProtectableItemTypeSQLAvailabilityGroupContainer', 'ProtectableItemTypeSQLDataBase', 'ProtectableItemTypeSQLInstance', 'ProtectableItemTypeIaaSVMProtectableItem' 5982 ProtectableItemType ProtectableItemType `json:"protectableItemType,omitempty"` 5983} 5984 5985// MarshalJSON is the custom marshaler for AzureVMWorkloadSAPHanaSystemProtectableItem. 5986func (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// AsAzureFileShareProtectableItem is the BasicWorkloadProtectableItem implementation for AzureVMWorkloadSAPHanaSystemProtectableItem. 6032func (avwshspi AzureVMWorkloadSAPHanaSystemProtectableItem) AsAzureFileShareProtectableItem() (*AzureFileShareProtectableItem, bool) { 6033 return nil, false 6034} 6035 6036// AsAzureIaaSClassicComputeVMProtectableItem is the BasicWorkloadProtectableItem implementation for AzureVMWorkloadSAPHanaSystemProtectableItem. 6037func (avwshspi AzureVMWorkloadSAPHanaSystemProtectableItem) AsAzureIaaSClassicComputeVMProtectableItem() (*AzureIaaSClassicComputeVMProtectableItem, bool) { 6038 return nil, false 6039} 6040 6041// AsAzureIaaSComputeVMProtectableItem is the BasicWorkloadProtectableItem implementation for AzureVMWorkloadSAPHanaSystemProtectableItem. 6042func (avwshspi AzureVMWorkloadSAPHanaSystemProtectableItem) AsAzureIaaSComputeVMProtectableItem() (*AzureIaaSComputeVMProtectableItem, bool) { 6043 return nil, false 6044} 6045 6046// AsAzureVMWorkloadProtectableItem is the BasicWorkloadProtectableItem implementation for AzureVMWorkloadSAPHanaSystemProtectableItem. 6047func (avwshspi AzureVMWorkloadSAPHanaSystemProtectableItem) AsAzureVMWorkloadProtectableItem() (*AzureVMWorkloadProtectableItem, bool) { 6048 return nil, false 6049} 6050 6051// AsBasicAzureVMWorkloadProtectableItem is the BasicWorkloadProtectableItem implementation for AzureVMWorkloadSAPHanaSystemProtectableItem. 6052func (avwshspi AzureVMWorkloadSAPHanaSystemProtectableItem) AsBasicAzureVMWorkloadProtectableItem() (BasicAzureVMWorkloadProtectableItem, bool) { 6053 return &avwshspi, true 6054} 6055 6056// AsAzureVMWorkloadSAPAseSystemProtectableItem is the BasicWorkloadProtectableItem implementation for AzureVMWorkloadSAPHanaSystemProtectableItem. 6057func (avwshspi AzureVMWorkloadSAPHanaSystemProtectableItem) AsAzureVMWorkloadSAPAseSystemProtectableItem() (*AzureVMWorkloadSAPAseSystemProtectableItem, bool) { 6058 return nil, false 6059} 6060 6061// AsAzureVMWorkloadSAPHanaDatabaseProtectableItem is the BasicWorkloadProtectableItem implementation for AzureVMWorkloadSAPHanaSystemProtectableItem. 6062func (avwshspi AzureVMWorkloadSAPHanaSystemProtectableItem) AsAzureVMWorkloadSAPHanaDatabaseProtectableItem() (*AzureVMWorkloadSAPHanaDatabaseProtectableItem, bool) { 6063 return nil, false 6064} 6065 6066// AsAzureVMWorkloadSAPHanaSystemProtectableItem is the BasicWorkloadProtectableItem implementation for AzureVMWorkloadSAPHanaSystemProtectableItem. 6067func (avwshspi AzureVMWorkloadSAPHanaSystemProtectableItem) AsAzureVMWorkloadSAPHanaSystemProtectableItem() (*AzureVMWorkloadSAPHanaSystemProtectableItem, bool) { 6068 return &avwshspi, true 6069} 6070 6071// AsAzureVMWorkloadSQLAvailabilityGroupProtectableItem is the BasicWorkloadProtectableItem implementation for AzureVMWorkloadSAPHanaSystemProtectableItem. 6072func (avwshspi AzureVMWorkloadSAPHanaSystemProtectableItem) AsAzureVMWorkloadSQLAvailabilityGroupProtectableItem() (*AzureVMWorkloadSQLAvailabilityGroupProtectableItem, bool) { 6073 return nil, false 6074} 6075 6076// AsAzureVMWorkloadSQLDatabaseProtectableItem is the BasicWorkloadProtectableItem implementation for AzureVMWorkloadSAPHanaSystemProtectableItem. 6077func (avwshspi AzureVMWorkloadSAPHanaSystemProtectableItem) AsAzureVMWorkloadSQLDatabaseProtectableItem() (*AzureVMWorkloadSQLDatabaseProtectableItem, bool) { 6078 return nil, false 6079} 6080 6081// AsAzureVMWorkloadSQLInstanceProtectableItem is the BasicWorkloadProtectableItem implementation for AzureVMWorkloadSAPHanaSystemProtectableItem. 6082func (avwshspi AzureVMWorkloadSAPHanaSystemProtectableItem) AsAzureVMWorkloadSQLInstanceProtectableItem() (*AzureVMWorkloadSQLInstanceProtectableItem, bool) { 6083 return nil, false 6084} 6085 6086// AsIaaSVMProtectableItem is the BasicWorkloadProtectableItem implementation for AzureVMWorkloadSAPHanaSystemProtectableItem. 6087func (avwshspi AzureVMWorkloadSAPHanaSystemProtectableItem) AsIaaSVMProtectableItem() (*IaaSVMProtectableItem, bool) { 6088 return nil, false 6089} 6090 6091// AsBasicIaaSVMProtectableItem is the BasicWorkloadProtectableItem implementation for AzureVMWorkloadSAPHanaSystemProtectableItem. 6092func (avwshspi AzureVMWorkloadSAPHanaSystemProtectableItem) AsBasicIaaSVMProtectableItem() (BasicIaaSVMProtectableItem, bool) { 6093 return nil, false 6094} 6095 6096// AsWorkloadProtectableItem is the BasicWorkloadProtectableItem implementation for AzureVMWorkloadSAPHanaSystemProtectableItem. 6097func (avwshspi AzureVMWorkloadSAPHanaSystemProtectableItem) AsWorkloadProtectableItem() (*WorkloadProtectableItem, bool) { 6098 return nil, false 6099} 6100 6101// AsBasicWorkloadProtectableItem is the BasicWorkloadProtectableItem implementation for AzureVMWorkloadSAPHanaSystemProtectableItem. 6102func (avwshspi AzureVMWorkloadSAPHanaSystemProtectableItem) AsBasicWorkloadProtectableItem() (BasicWorkloadProtectableItem, bool) { 6103 return &avwshspi, true 6104} 6105 6106// AzureVMWorkloadSAPHanaSystemWorkloadItem azure VM workload-specific workload item representing SAP HANA 6107// System. 6108type AzureVMWorkloadSAPHanaSystemWorkloadItem struct { 6109 // ParentName - Name for instance or AG 6110 ParentName *string `json:"parentName,omitempty"` 6111 // ServerName - Host/Cluster Name for instance or AG 6112 ServerName *string `json:"serverName,omitempty"` 6113 // IsAutoProtectable - Indicates if workload item is auto-protectable 6114 IsAutoProtectable *bool `json:"isAutoProtectable,omitempty"` 6115 // Subinquireditemcount - For instance or AG, indicates number of DB's present 6116 Subinquireditemcount *int32 `json:"subinquireditemcount,omitempty"` 6117 // SubWorkloadItemCount - For instance or AG, indicates number of DB's to be protected 6118 SubWorkloadItemCount *int32 `json:"subWorkloadItemCount,omitempty"` 6119 // BackupManagementType - Type of backup management to backup an item. 6120 BackupManagementType *string `json:"backupManagementType,omitempty"` 6121 // WorkloadType - Type of workload for the backup management 6122 WorkloadType *string `json:"workloadType,omitempty"` 6123 // FriendlyName - Friendly name of the backup item. 6124 FriendlyName *string `json:"friendlyName,omitempty"` 6125 // ProtectionState - State of the back up item. Possible values include: 'ProtectionStatusInvalid', 'ProtectionStatusNotProtected', 'ProtectionStatusProtecting', 'ProtectionStatusProtected', 'ProtectionStatusProtectionFailed' 6126 ProtectionState ProtectionStatus `json:"protectionState,omitempty"` 6127 // WorkloadItemType - Possible values include: 'WorkloadItemTypeWorkloadItem', 'WorkloadItemTypeAzureVMWorkloadItem', 'WorkloadItemTypeSAPAseDatabase1', 'WorkloadItemTypeSAPAseSystem1', 'WorkloadItemTypeSAPHanaDatabase1', 'WorkloadItemTypeSAPHanaSystem1', 'WorkloadItemTypeSQLDataBase1', 'WorkloadItemTypeSQLInstance1' 6128 WorkloadItemType WorkloadItemTypeBasicWorkloadItem `json:"workloadItemType,omitempty"` 6129} 6130 6131// MarshalJSON is the custom marshaler for AzureVMWorkloadSAPHanaSystemWorkloadItem. 6132func (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// AsAzureVMWorkloadItem is the BasicWorkloadItem implementation for AzureVMWorkloadSAPHanaSystemWorkloadItem. 6169func (avwshswi AzureVMWorkloadSAPHanaSystemWorkloadItem) AsAzureVMWorkloadItem() (*AzureVMWorkloadItem, bool) { 6170 return nil, false 6171} 6172 6173// AsBasicAzureVMWorkloadItem is the BasicWorkloadItem implementation for AzureVMWorkloadSAPHanaSystemWorkloadItem. 6174func (avwshswi AzureVMWorkloadSAPHanaSystemWorkloadItem) AsBasicAzureVMWorkloadItem() (BasicAzureVMWorkloadItem, bool) { 6175 return &avwshswi, true 6176} 6177 6178// AsAzureVMWorkloadSAPAseDatabaseWorkloadItem is the BasicWorkloadItem implementation for AzureVMWorkloadSAPHanaSystemWorkloadItem. 6179func (avwshswi AzureVMWorkloadSAPHanaSystemWorkloadItem) AsAzureVMWorkloadSAPAseDatabaseWorkloadItem() (*AzureVMWorkloadSAPAseDatabaseWorkloadItem, bool) { 6180 return nil, false 6181} 6182 6183// AsAzureVMWorkloadSAPAseSystemWorkloadItem is the BasicWorkloadItem implementation for AzureVMWorkloadSAPHanaSystemWorkloadItem. 6184func (avwshswi AzureVMWorkloadSAPHanaSystemWorkloadItem) AsAzureVMWorkloadSAPAseSystemWorkloadItem() (*AzureVMWorkloadSAPAseSystemWorkloadItem, bool) { 6185 return nil, false 6186} 6187 6188// AsAzureVMWorkloadSAPHanaDatabaseWorkloadItem is the BasicWorkloadItem implementation for AzureVMWorkloadSAPHanaSystemWorkloadItem. 6189func (avwshswi AzureVMWorkloadSAPHanaSystemWorkloadItem) AsAzureVMWorkloadSAPHanaDatabaseWorkloadItem() (*AzureVMWorkloadSAPHanaDatabaseWorkloadItem, bool) { 6190 return nil, false 6191} 6192 6193// AsAzureVMWorkloadSAPHanaSystemWorkloadItem is the BasicWorkloadItem implementation for AzureVMWorkloadSAPHanaSystemWorkloadItem. 6194func (avwshswi AzureVMWorkloadSAPHanaSystemWorkloadItem) AsAzureVMWorkloadSAPHanaSystemWorkloadItem() (*AzureVMWorkloadSAPHanaSystemWorkloadItem, bool) { 6195 return &avwshswi, true 6196} 6197 6198// AsAzureVMWorkloadSQLDatabaseWorkloadItem is the BasicWorkloadItem implementation for AzureVMWorkloadSAPHanaSystemWorkloadItem. 6199func (avwshswi AzureVMWorkloadSAPHanaSystemWorkloadItem) AsAzureVMWorkloadSQLDatabaseWorkloadItem() (*AzureVMWorkloadSQLDatabaseWorkloadItem, bool) { 6200 return nil, false 6201} 6202 6203// AsAzureVMWorkloadSQLInstanceWorkloadItem is the BasicWorkloadItem implementation for AzureVMWorkloadSAPHanaSystemWorkloadItem. 6204func (avwshswi AzureVMWorkloadSAPHanaSystemWorkloadItem) AsAzureVMWorkloadSQLInstanceWorkloadItem() (*AzureVMWorkloadSQLInstanceWorkloadItem, bool) { 6205 return nil, false 6206} 6207 6208// AsWorkloadItem is the BasicWorkloadItem implementation for AzureVMWorkloadSAPHanaSystemWorkloadItem. 6209func (avwshswi AzureVMWorkloadSAPHanaSystemWorkloadItem) AsWorkloadItem() (*WorkloadItem, bool) { 6210 return nil, false 6211} 6212 6213// AsBasicWorkloadItem is the BasicWorkloadItem implementation for AzureVMWorkloadSAPHanaSystemWorkloadItem. 6214func (avwshswi AzureVMWorkloadSAPHanaSystemWorkloadItem) AsBasicWorkloadItem() (BasicWorkloadItem, bool) { 6215 return &avwshswi, true 6216} 6217 6218// AzureVMWorkloadSQLAvailabilityGroupProtectableItem azure VM workload-specific protectable item 6219// representing SQL Availability Group. 6220type AzureVMWorkloadSQLAvailabilityGroupProtectableItem struct { 6221 // ParentName - Name for instance or AG 6222 ParentName *string `json:"parentName,omitempty"` 6223 // ParentUniqueName - Parent Unique Name is added to provide the service formatted URI Name of the Parent 6224 // Only Applicable for data bases where the parent would be either Instance or a SQL AG. 6225 ParentUniqueName *string `json:"parentUniqueName,omitempty"` 6226 // ServerName - Host/Cluster Name for instance or AG 6227 ServerName *string `json:"serverName,omitempty"` 6228 // IsAutoProtectable - Indicates if protectable item is auto-protectable 6229 IsAutoProtectable *bool `json:"isAutoProtectable,omitempty"` 6230 // IsAutoProtected - Indicates if protectable item is auto-protected 6231 IsAutoProtected *bool `json:"isAutoProtected,omitempty"` 6232 // Subinquireditemcount - For instance or AG, indicates number of DB's present 6233 Subinquireditemcount *int32 `json:"subinquireditemcount,omitempty"` 6234 // Subprotectableitemcount - For instance or AG, indicates number of DB's to be protected 6235 Subprotectableitemcount *int32 `json:"subprotectableitemcount,omitempty"` 6236 // Prebackupvalidation - Pre-backup validation for protectable objects 6237 Prebackupvalidation *PreBackupValidation `json:"prebackupvalidation,omitempty"` 6238 // BackupManagementType - Type of backup management to backup an item. 6239 BackupManagementType *string `json:"backupManagementType,omitempty"` 6240 // WorkloadType - Type of workload for the backup management 6241 WorkloadType *string `json:"workloadType,omitempty"` 6242 // FriendlyName - Friendly name of the backup item. 6243 FriendlyName *string `json:"friendlyName,omitempty"` 6244 // ProtectionState - State of the back up item. Possible values include: 'ProtectionStatusInvalid', 'ProtectionStatusNotProtected', 'ProtectionStatusProtecting', 'ProtectionStatusProtected', 'ProtectionStatusProtectionFailed' 6245 ProtectionState ProtectionStatus `json:"protectionState,omitempty"` 6246 // ProtectableItemType - Possible values include: 'ProtectableItemTypeWorkloadProtectableItem', 'ProtectableItemTypeAzureFileShare', 'ProtectableItemTypeMicrosoftClassicComputevirtualMachines', 'ProtectableItemTypeMicrosoftComputevirtualMachines', 'ProtectableItemTypeAzureVMWorkloadProtectableItem', 'ProtectableItemTypeSAPAseSystem', 'ProtectableItemTypeSAPHanaDatabase', 'ProtectableItemTypeSAPHanaSystem', 'ProtectableItemTypeSQLAvailabilityGroupContainer', 'ProtectableItemTypeSQLDataBase', 'ProtectableItemTypeSQLInstance', 'ProtectableItemTypeIaaSVMProtectableItem' 6247 ProtectableItemType ProtectableItemType `json:"protectableItemType,omitempty"` 6248} 6249 6250// MarshalJSON is the custom marshaler for AzureVMWorkloadSQLAvailabilityGroupProtectableItem. 6251func (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// AsAzureFileShareProtectableItem is the BasicWorkloadProtectableItem implementation for AzureVMWorkloadSQLAvailabilityGroupProtectableItem. 6297func (avwsagpi AzureVMWorkloadSQLAvailabilityGroupProtectableItem) AsAzureFileShareProtectableItem() (*AzureFileShareProtectableItem, bool) { 6298 return nil, false 6299} 6300 6301// AsAzureIaaSClassicComputeVMProtectableItem is the BasicWorkloadProtectableItem implementation for AzureVMWorkloadSQLAvailabilityGroupProtectableItem. 6302func (avwsagpi AzureVMWorkloadSQLAvailabilityGroupProtectableItem) AsAzureIaaSClassicComputeVMProtectableItem() (*AzureIaaSClassicComputeVMProtectableItem, bool) { 6303 return nil, false 6304} 6305 6306// AsAzureIaaSComputeVMProtectableItem is the BasicWorkloadProtectableItem implementation for AzureVMWorkloadSQLAvailabilityGroupProtectableItem. 6307func (avwsagpi AzureVMWorkloadSQLAvailabilityGroupProtectableItem) AsAzureIaaSComputeVMProtectableItem() (*AzureIaaSComputeVMProtectableItem, bool) { 6308 return nil, false 6309} 6310 6311// AsAzureVMWorkloadProtectableItem is the BasicWorkloadProtectableItem implementation for AzureVMWorkloadSQLAvailabilityGroupProtectableItem. 6312func (avwsagpi AzureVMWorkloadSQLAvailabilityGroupProtectableItem) AsAzureVMWorkloadProtectableItem() (*AzureVMWorkloadProtectableItem, bool) { 6313 return nil, false 6314} 6315 6316// AsBasicAzureVMWorkloadProtectableItem is the BasicWorkloadProtectableItem implementation for AzureVMWorkloadSQLAvailabilityGroupProtectableItem. 6317func (avwsagpi AzureVMWorkloadSQLAvailabilityGroupProtectableItem) AsBasicAzureVMWorkloadProtectableItem() (BasicAzureVMWorkloadProtectableItem, bool) { 6318 return &avwsagpi, true 6319} 6320 6321// AsAzureVMWorkloadSAPAseSystemProtectableItem is the BasicWorkloadProtectableItem implementation for AzureVMWorkloadSQLAvailabilityGroupProtectableItem. 6322func (avwsagpi AzureVMWorkloadSQLAvailabilityGroupProtectableItem) AsAzureVMWorkloadSAPAseSystemProtectableItem() (*AzureVMWorkloadSAPAseSystemProtectableItem, bool) { 6323 return nil, false 6324} 6325 6326// AsAzureVMWorkloadSAPHanaDatabaseProtectableItem is the BasicWorkloadProtectableItem implementation for AzureVMWorkloadSQLAvailabilityGroupProtectableItem. 6327func (avwsagpi AzureVMWorkloadSQLAvailabilityGroupProtectableItem) AsAzureVMWorkloadSAPHanaDatabaseProtectableItem() (*AzureVMWorkloadSAPHanaDatabaseProtectableItem, bool) { 6328 return nil, false 6329} 6330 6331// AsAzureVMWorkloadSAPHanaSystemProtectableItem is the BasicWorkloadProtectableItem implementation for AzureVMWorkloadSQLAvailabilityGroupProtectableItem. 6332func (avwsagpi AzureVMWorkloadSQLAvailabilityGroupProtectableItem) AsAzureVMWorkloadSAPHanaSystemProtectableItem() (*AzureVMWorkloadSAPHanaSystemProtectableItem, bool) { 6333 return nil, false 6334} 6335 6336// AsAzureVMWorkloadSQLAvailabilityGroupProtectableItem is the BasicWorkloadProtectableItem implementation for AzureVMWorkloadSQLAvailabilityGroupProtectableItem. 6337func (avwsagpi AzureVMWorkloadSQLAvailabilityGroupProtectableItem) AsAzureVMWorkloadSQLAvailabilityGroupProtectableItem() (*AzureVMWorkloadSQLAvailabilityGroupProtectableItem, bool) { 6338 return &avwsagpi, true 6339} 6340 6341// AsAzureVMWorkloadSQLDatabaseProtectableItem is the BasicWorkloadProtectableItem implementation for AzureVMWorkloadSQLAvailabilityGroupProtectableItem. 6342func (avwsagpi AzureVMWorkloadSQLAvailabilityGroupProtectableItem) AsAzureVMWorkloadSQLDatabaseProtectableItem() (*AzureVMWorkloadSQLDatabaseProtectableItem, bool) { 6343 return nil, false 6344} 6345 6346// AsAzureVMWorkloadSQLInstanceProtectableItem is the BasicWorkloadProtectableItem implementation for AzureVMWorkloadSQLAvailabilityGroupProtectableItem. 6347func (avwsagpi AzureVMWorkloadSQLAvailabilityGroupProtectableItem) AsAzureVMWorkloadSQLInstanceProtectableItem() (*AzureVMWorkloadSQLInstanceProtectableItem, bool) { 6348 return nil, false 6349} 6350 6351// AsIaaSVMProtectableItem is the BasicWorkloadProtectableItem implementation for AzureVMWorkloadSQLAvailabilityGroupProtectableItem. 6352func (avwsagpi AzureVMWorkloadSQLAvailabilityGroupProtectableItem) AsIaaSVMProtectableItem() (*IaaSVMProtectableItem, bool) { 6353 return nil, false 6354} 6355 6356// AsBasicIaaSVMProtectableItem is the BasicWorkloadProtectableItem implementation for AzureVMWorkloadSQLAvailabilityGroupProtectableItem. 6357func (avwsagpi AzureVMWorkloadSQLAvailabilityGroupProtectableItem) AsBasicIaaSVMProtectableItem() (BasicIaaSVMProtectableItem, bool) { 6358 return nil, false 6359} 6360 6361// AsWorkloadProtectableItem is the BasicWorkloadProtectableItem implementation for AzureVMWorkloadSQLAvailabilityGroupProtectableItem. 6362func (avwsagpi AzureVMWorkloadSQLAvailabilityGroupProtectableItem) AsWorkloadProtectableItem() (*WorkloadProtectableItem, bool) { 6363 return nil, false 6364} 6365 6366// AsBasicWorkloadProtectableItem is the BasicWorkloadProtectableItem implementation for AzureVMWorkloadSQLAvailabilityGroupProtectableItem. 6367func (avwsagpi AzureVMWorkloadSQLAvailabilityGroupProtectableItem) AsBasicWorkloadProtectableItem() (BasicWorkloadProtectableItem, bool) { 6368 return &avwsagpi, true 6369} 6370 6371// AzureVMWorkloadSQLDatabaseProtectableItem azure VM workload-specific protectable item representing SQL 6372// Database. 6373type AzureVMWorkloadSQLDatabaseProtectableItem struct { 6374 // ParentName - Name for instance or AG 6375 ParentName *string `json:"parentName,omitempty"` 6376 // ParentUniqueName - Parent Unique Name is added to provide the service formatted URI Name of the Parent 6377 // Only Applicable for data bases where the parent would be either Instance or a SQL AG. 6378 ParentUniqueName *string `json:"parentUniqueName,omitempty"` 6379 // ServerName - Host/Cluster Name for instance or AG 6380 ServerName *string `json:"serverName,omitempty"` 6381 // IsAutoProtectable - Indicates if protectable item is auto-protectable 6382 IsAutoProtectable *bool `json:"isAutoProtectable,omitempty"` 6383 // IsAutoProtected - Indicates if protectable item is auto-protected 6384 IsAutoProtected *bool `json:"isAutoProtected,omitempty"` 6385 // Subinquireditemcount - For instance or AG, indicates number of DB's present 6386 Subinquireditemcount *int32 `json:"subinquireditemcount,omitempty"` 6387 // Subprotectableitemcount - For instance or AG, indicates number of DB's to be protected 6388 Subprotectableitemcount *int32 `json:"subprotectableitemcount,omitempty"` 6389 // Prebackupvalidation - Pre-backup validation for protectable objects 6390 Prebackupvalidation *PreBackupValidation `json:"prebackupvalidation,omitempty"` 6391 // BackupManagementType - Type of backup management to backup an item. 6392 BackupManagementType *string `json:"backupManagementType,omitempty"` 6393 // WorkloadType - Type of workload for the backup management 6394 WorkloadType *string `json:"workloadType,omitempty"` 6395 // FriendlyName - Friendly name of the backup item. 6396 FriendlyName *string `json:"friendlyName,omitempty"` 6397 // ProtectionState - State of the back up item. Possible values include: 'ProtectionStatusInvalid', 'ProtectionStatusNotProtected', 'ProtectionStatusProtecting', 'ProtectionStatusProtected', 'ProtectionStatusProtectionFailed' 6398 ProtectionState ProtectionStatus `json:"protectionState,omitempty"` 6399 // ProtectableItemType - Possible values include: 'ProtectableItemTypeWorkloadProtectableItem', 'ProtectableItemTypeAzureFileShare', 'ProtectableItemTypeMicrosoftClassicComputevirtualMachines', 'ProtectableItemTypeMicrosoftComputevirtualMachines', 'ProtectableItemTypeAzureVMWorkloadProtectableItem', 'ProtectableItemTypeSAPAseSystem', 'ProtectableItemTypeSAPHanaDatabase', 'ProtectableItemTypeSAPHanaSystem', 'ProtectableItemTypeSQLAvailabilityGroupContainer', 'ProtectableItemTypeSQLDataBase', 'ProtectableItemTypeSQLInstance', 'ProtectableItemTypeIaaSVMProtectableItem' 6400 ProtectableItemType ProtectableItemType `json:"protectableItemType,omitempty"` 6401} 6402 6403// MarshalJSON is the custom marshaler for AzureVMWorkloadSQLDatabaseProtectableItem. 6404func (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// AsAzureFileShareProtectableItem is the BasicWorkloadProtectableItem implementation for AzureVMWorkloadSQLDatabaseProtectableItem. 6450func (avwsdpi AzureVMWorkloadSQLDatabaseProtectableItem) AsAzureFileShareProtectableItem() (*AzureFileShareProtectableItem, bool) { 6451 return nil, false 6452} 6453 6454// AsAzureIaaSClassicComputeVMProtectableItem is the BasicWorkloadProtectableItem implementation for AzureVMWorkloadSQLDatabaseProtectableItem. 6455func (avwsdpi AzureVMWorkloadSQLDatabaseProtectableItem) AsAzureIaaSClassicComputeVMProtectableItem() (*AzureIaaSClassicComputeVMProtectableItem, bool) { 6456 return nil, false 6457} 6458 6459// AsAzureIaaSComputeVMProtectableItem is the BasicWorkloadProtectableItem implementation for AzureVMWorkloadSQLDatabaseProtectableItem. 6460func (avwsdpi AzureVMWorkloadSQLDatabaseProtectableItem) AsAzureIaaSComputeVMProtectableItem() (*AzureIaaSComputeVMProtectableItem, bool) { 6461 return nil, false 6462} 6463 6464// AsAzureVMWorkloadProtectableItem is the BasicWorkloadProtectableItem implementation for AzureVMWorkloadSQLDatabaseProtectableItem. 6465func (avwsdpi AzureVMWorkloadSQLDatabaseProtectableItem) AsAzureVMWorkloadProtectableItem() (*AzureVMWorkloadProtectableItem, bool) { 6466 return nil, false 6467} 6468 6469// AsBasicAzureVMWorkloadProtectableItem is the BasicWorkloadProtectableItem implementation for AzureVMWorkloadSQLDatabaseProtectableItem. 6470func (avwsdpi AzureVMWorkloadSQLDatabaseProtectableItem) AsBasicAzureVMWorkloadProtectableItem() (BasicAzureVMWorkloadProtectableItem, bool) { 6471 return &avwsdpi, true 6472} 6473 6474// AsAzureVMWorkloadSAPAseSystemProtectableItem is the BasicWorkloadProtectableItem implementation for AzureVMWorkloadSQLDatabaseProtectableItem. 6475func (avwsdpi AzureVMWorkloadSQLDatabaseProtectableItem) AsAzureVMWorkloadSAPAseSystemProtectableItem() (*AzureVMWorkloadSAPAseSystemProtectableItem, bool) { 6476 return nil, false 6477} 6478 6479// AsAzureVMWorkloadSAPHanaDatabaseProtectableItem is the BasicWorkloadProtectableItem implementation for AzureVMWorkloadSQLDatabaseProtectableItem. 6480func (avwsdpi AzureVMWorkloadSQLDatabaseProtectableItem) AsAzureVMWorkloadSAPHanaDatabaseProtectableItem() (*AzureVMWorkloadSAPHanaDatabaseProtectableItem, bool) { 6481 return nil, false 6482} 6483 6484// AsAzureVMWorkloadSAPHanaSystemProtectableItem is the BasicWorkloadProtectableItem implementation for AzureVMWorkloadSQLDatabaseProtectableItem. 6485func (avwsdpi AzureVMWorkloadSQLDatabaseProtectableItem) AsAzureVMWorkloadSAPHanaSystemProtectableItem() (*AzureVMWorkloadSAPHanaSystemProtectableItem, bool) { 6486 return nil, false 6487} 6488 6489// AsAzureVMWorkloadSQLAvailabilityGroupProtectableItem is the BasicWorkloadProtectableItem implementation for AzureVMWorkloadSQLDatabaseProtectableItem. 6490func (avwsdpi AzureVMWorkloadSQLDatabaseProtectableItem) AsAzureVMWorkloadSQLAvailabilityGroupProtectableItem() (*AzureVMWorkloadSQLAvailabilityGroupProtectableItem, bool) { 6491 return nil, false 6492} 6493 6494// AsAzureVMWorkloadSQLDatabaseProtectableItem is the BasicWorkloadProtectableItem implementation for AzureVMWorkloadSQLDatabaseProtectableItem. 6495func (avwsdpi AzureVMWorkloadSQLDatabaseProtectableItem) AsAzureVMWorkloadSQLDatabaseProtectableItem() (*AzureVMWorkloadSQLDatabaseProtectableItem, bool) { 6496 return &avwsdpi, true 6497} 6498 6499// AsAzureVMWorkloadSQLInstanceProtectableItem is the BasicWorkloadProtectableItem implementation for AzureVMWorkloadSQLDatabaseProtectableItem. 6500func (avwsdpi AzureVMWorkloadSQLDatabaseProtectableItem) AsAzureVMWorkloadSQLInstanceProtectableItem() (*AzureVMWorkloadSQLInstanceProtectableItem, bool) { 6501 return nil, false 6502} 6503 6504// AsIaaSVMProtectableItem is the BasicWorkloadProtectableItem implementation for AzureVMWorkloadSQLDatabaseProtectableItem. 6505func (avwsdpi AzureVMWorkloadSQLDatabaseProtectableItem) AsIaaSVMProtectableItem() (*IaaSVMProtectableItem, bool) { 6506 return nil, false 6507} 6508 6509// AsBasicIaaSVMProtectableItem is the BasicWorkloadProtectableItem implementation for AzureVMWorkloadSQLDatabaseProtectableItem. 6510func (avwsdpi AzureVMWorkloadSQLDatabaseProtectableItem) AsBasicIaaSVMProtectableItem() (BasicIaaSVMProtectableItem, bool) { 6511 return nil, false 6512} 6513 6514// AsWorkloadProtectableItem is the BasicWorkloadProtectableItem implementation for AzureVMWorkloadSQLDatabaseProtectableItem. 6515func (avwsdpi AzureVMWorkloadSQLDatabaseProtectableItem) AsWorkloadProtectableItem() (*WorkloadProtectableItem, bool) { 6516 return nil, false 6517} 6518 6519// AsBasicWorkloadProtectableItem is the BasicWorkloadProtectableItem implementation for AzureVMWorkloadSQLDatabaseProtectableItem. 6520func (avwsdpi AzureVMWorkloadSQLDatabaseProtectableItem) AsBasicWorkloadProtectableItem() (BasicWorkloadProtectableItem, bool) { 6521 return &avwsdpi, true 6522} 6523 6524// AzureVMWorkloadSQLDatabaseProtectedItem azure VM workload-specific protected item representing SQL 6525// Database. 6526type AzureVMWorkloadSQLDatabaseProtectedItem struct { 6527 // FriendlyName - Friendly name of the DB represented by this backup item. 6528 FriendlyName *string `json:"friendlyName,omitempty"` 6529 // ServerName - Host/Cluster Name for instance or AG 6530 ServerName *string `json:"serverName,omitempty"` 6531 // ParentName - Parent name of the DB such as Instance or Availability Group. 6532 ParentName *string `json:"parentName,omitempty"` 6533 // ParentType - Parent type of protected item, example: for a DB, standalone server or distributed 6534 ParentType *string `json:"parentType,omitempty"` 6535 // ProtectionStatus - Backup status of this backup item. 6536 ProtectionStatus *string `json:"protectionStatus,omitempty"` 6537 // ProtectionState - Backup state of this backup item. Possible values include: 'ProtectionStateInvalid', 'ProtectionStateIRPending', 'ProtectionStateProtected', 'ProtectionStateProtectionError', 'ProtectionStateProtectionStopped', 'ProtectionStateProtectionPaused' 6538 ProtectionState ProtectionState `json:"protectionState,omitempty"` 6539 // LastBackupStatus - Last backup operation status. Possible values: Healthy, Unhealthy. Possible values include: 'LastBackupStatusInvalid', 'LastBackupStatusHealthy', 'LastBackupStatusUnhealthy', 'LastBackupStatusIRPending' 6540 LastBackupStatus LastBackupStatus `json:"lastBackupStatus,omitempty"` 6541 // LastBackupTime - Timestamp of the last backup operation on this backup item. 6542 LastBackupTime *date.Time `json:"lastBackupTime,omitempty"` 6543 // LastBackupErrorDetail - Error details in last backup 6544 LastBackupErrorDetail *ErrorDetail `json:"lastBackupErrorDetail,omitempty"` 6545 // ProtectedItemDataSourceID - Data ID of the protected item. 6546 ProtectedItemDataSourceID *string `json:"protectedItemDataSourceId,omitempty"` 6547 // ProtectedItemHealthStatus - Health status of the backup item, evaluated based on last heartbeat received. Possible values include: 'ProtectedItemHealthStatusInvalid', 'ProtectedItemHealthStatusHealthy', 'ProtectedItemHealthStatusUnhealthy', 'ProtectedItemHealthStatusNotReachable', 'ProtectedItemHealthStatusIRPending' 6548 ProtectedItemHealthStatus ProtectedItemHealthStatus `json:"protectedItemHealthStatus,omitempty"` 6549 // ExtendedInfo - Additional information for this backup item. 6550 ExtendedInfo *AzureVMWorkloadProtectedItemExtendedInfo `json:"extendedInfo,omitempty"` 6551 // KpisHealths - Health details of different KPIs 6552 KpisHealths map[string]*KPIResourceHealthDetails `json:"kpisHealths"` 6553 // BackupManagementType - Type of backup management for the backed up item. Possible values include: 'ManagementTypeInvalid', 'ManagementTypeAzureIaasVM', 'ManagementTypeMAB', 'ManagementTypeDPM', 'ManagementTypeAzureBackupServer', 'ManagementTypeAzureSQL', 'ManagementTypeAzureStorage', 'ManagementTypeAzureWorkload', 'ManagementTypeDefaultBackup' 6554 BackupManagementType ManagementType `json:"backupManagementType,omitempty"` 6555 // WorkloadType - Type of workload this item represents. Possible values include: 'DataSourceTypeInvalid', 'DataSourceTypeVM', 'DataSourceTypeFileFolder', 'DataSourceTypeAzureSQLDb', 'DataSourceTypeSQLDB', 'DataSourceTypeExchange', 'DataSourceTypeSharepoint', 'DataSourceTypeVMwareVM', 'DataSourceTypeSystemState', 'DataSourceTypeClient', 'DataSourceTypeGenericDataSource', 'DataSourceTypeSQLDataBase', 'DataSourceTypeAzureFileShare', 'DataSourceTypeSAPHanaDatabase', 'DataSourceTypeSAPAseDatabase' 6556 WorkloadType DataSourceType `json:"workloadType,omitempty"` 6557 // ContainerName - Unique name of container 6558 ContainerName *string `json:"containerName,omitempty"` 6559 // SourceResourceID - ARM ID of the resource to be backed up. 6560 SourceResourceID *string `json:"sourceResourceId,omitempty"` 6561 // PolicyID - ID of the backup policy with which this item is backed up. 6562 PolicyID *string `json:"policyId,omitempty"` 6563 // LastRecoveryPoint - Timestamp when the last (latest) backup copy was created for this backup item. 6564 LastRecoveryPoint *date.Time `json:"lastRecoveryPoint,omitempty"` 6565 // BackupSetName - Name of the backup set the backup item belongs to 6566 BackupSetName *string `json:"backupSetName,omitempty"` 6567 // CreateMode - Create mode to indicate recovery of existing soft deleted data source or creation of new data source. Possible values include: 'CreateModeInvalid', 'CreateModeDefault', 'CreateModeRecover' 6568 CreateMode CreateMode `json:"createMode,omitempty"` 6569 // DeferredDeleteTimeInUTC - Time for deferred deletion in UTC 6570 DeferredDeleteTimeInUTC *date.Time `json:"deferredDeleteTimeInUTC,omitempty"` 6571 // IsScheduledForDeferredDelete - Flag to identify whether the DS is scheduled for deferred delete 6572 IsScheduledForDeferredDelete *bool `json:"isScheduledForDeferredDelete,omitempty"` 6573 // DeferredDeleteTimeRemaining - Time remaining before the DS marked for deferred delete is permanently deleted 6574 DeferredDeleteTimeRemaining *string `json:"deferredDeleteTimeRemaining,omitempty"` 6575 // IsDeferredDeleteScheduleUpcoming - Flag to identify whether the deferred deleted DS is to be purged soon 6576 IsDeferredDeleteScheduleUpcoming *bool `json:"isDeferredDeleteScheduleUpcoming,omitempty"` 6577 // IsRehydrate - Flag to identify that deferred deleted DS is to be moved into Pause state 6578 IsRehydrate *bool `json:"isRehydrate,omitempty"` 6579 // ProtectedItemType - Possible values include: 'ProtectedItemTypeProtectedItem', 'ProtectedItemTypeAzureFileShareProtectedItem', 'ProtectedItemTypeMicrosoftClassicComputevirtualMachines', 'ProtectedItemTypeMicrosoftComputevirtualMachines', 'ProtectedItemTypeAzureIaaSVMProtectedItem', 'ProtectedItemTypeMicrosoftSqlserversdatabases', 'ProtectedItemTypeAzureVMWorkloadProtectedItem', 'ProtectedItemTypeAzureVMWorkloadSAPAseDatabase', 'ProtectedItemTypeAzureVMWorkloadSAPHanaDatabase', 'ProtectedItemTypeAzureVMWorkloadSQLDatabase', 'ProtectedItemTypeDPMProtectedItem', 'ProtectedItemTypeGenericProtectedItem', 'ProtectedItemTypeMabFileFolderProtectedItem' 6580 ProtectedItemType ProtectedItemType `json:"protectedItemType,omitempty"` 6581} 6582 6583// MarshalJSON is the custom marshaler for AzureVMWorkloadSQLDatabaseProtectedItem. 6584func (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// AsAzureFileshareProtectedItem is the BasicProtectedItem implementation for AzureVMWorkloadSQLDatabaseProtectedItem. 6672func (avwsdpi AzureVMWorkloadSQLDatabaseProtectedItem) AsAzureFileshareProtectedItem() (*AzureFileshareProtectedItem, bool) { 6673 return nil, false 6674} 6675 6676// AsAzureIaaSClassicComputeVMProtectedItem is the BasicProtectedItem implementation for AzureVMWorkloadSQLDatabaseProtectedItem. 6677func (avwsdpi AzureVMWorkloadSQLDatabaseProtectedItem) AsAzureIaaSClassicComputeVMProtectedItem() (*AzureIaaSClassicComputeVMProtectedItem, bool) { 6678 return nil, false 6679} 6680 6681// AsAzureIaaSComputeVMProtectedItem is the BasicProtectedItem implementation for AzureVMWorkloadSQLDatabaseProtectedItem. 6682func (avwsdpi AzureVMWorkloadSQLDatabaseProtectedItem) AsAzureIaaSComputeVMProtectedItem() (*AzureIaaSComputeVMProtectedItem, bool) { 6683 return nil, false 6684} 6685 6686// AsAzureIaaSVMProtectedItem is the BasicProtectedItem implementation for AzureVMWorkloadSQLDatabaseProtectedItem. 6687func (avwsdpi AzureVMWorkloadSQLDatabaseProtectedItem) AsAzureIaaSVMProtectedItem() (*AzureIaaSVMProtectedItem, bool) { 6688 return nil, false 6689} 6690 6691// AsBasicAzureIaaSVMProtectedItem is the BasicProtectedItem implementation for AzureVMWorkloadSQLDatabaseProtectedItem. 6692func (avwsdpi AzureVMWorkloadSQLDatabaseProtectedItem) AsBasicAzureIaaSVMProtectedItem() (BasicAzureIaaSVMProtectedItem, bool) { 6693 return nil, false 6694} 6695 6696// AsAzureSQLProtectedItem is the BasicProtectedItem implementation for AzureVMWorkloadSQLDatabaseProtectedItem. 6697func (avwsdpi AzureVMWorkloadSQLDatabaseProtectedItem) AsAzureSQLProtectedItem() (*AzureSQLProtectedItem, bool) { 6698 return nil, false 6699} 6700 6701// AsAzureVMWorkloadProtectedItem is the BasicProtectedItem implementation for AzureVMWorkloadSQLDatabaseProtectedItem. 6702func (avwsdpi AzureVMWorkloadSQLDatabaseProtectedItem) AsAzureVMWorkloadProtectedItem() (*AzureVMWorkloadProtectedItem, bool) { 6703 return nil, false 6704} 6705 6706// AsBasicAzureVMWorkloadProtectedItem is the BasicProtectedItem implementation for AzureVMWorkloadSQLDatabaseProtectedItem. 6707func (avwsdpi AzureVMWorkloadSQLDatabaseProtectedItem) AsBasicAzureVMWorkloadProtectedItem() (BasicAzureVMWorkloadProtectedItem, bool) { 6708 return &avwsdpi, true 6709} 6710 6711// AsAzureVMWorkloadSAPAseDatabaseProtectedItem is the BasicProtectedItem implementation for AzureVMWorkloadSQLDatabaseProtectedItem. 6712func (avwsdpi AzureVMWorkloadSQLDatabaseProtectedItem) AsAzureVMWorkloadSAPAseDatabaseProtectedItem() (*AzureVMWorkloadSAPAseDatabaseProtectedItem, bool) { 6713 return nil, false 6714} 6715 6716// AsAzureVMWorkloadSAPHanaDatabaseProtectedItem is the BasicProtectedItem implementation for AzureVMWorkloadSQLDatabaseProtectedItem. 6717func (avwsdpi AzureVMWorkloadSQLDatabaseProtectedItem) AsAzureVMWorkloadSAPHanaDatabaseProtectedItem() (*AzureVMWorkloadSAPHanaDatabaseProtectedItem, bool) { 6718 return nil, false 6719} 6720 6721// AsAzureVMWorkloadSQLDatabaseProtectedItem is the BasicProtectedItem implementation for AzureVMWorkloadSQLDatabaseProtectedItem. 6722func (avwsdpi AzureVMWorkloadSQLDatabaseProtectedItem) AsAzureVMWorkloadSQLDatabaseProtectedItem() (*AzureVMWorkloadSQLDatabaseProtectedItem, bool) { 6723 return &avwsdpi, true 6724} 6725 6726// AsDPMProtectedItem is the BasicProtectedItem implementation for AzureVMWorkloadSQLDatabaseProtectedItem. 6727func (avwsdpi AzureVMWorkloadSQLDatabaseProtectedItem) AsDPMProtectedItem() (*DPMProtectedItem, bool) { 6728 return nil, false 6729} 6730 6731// AsGenericProtectedItem is the BasicProtectedItem implementation for AzureVMWorkloadSQLDatabaseProtectedItem. 6732func (avwsdpi AzureVMWorkloadSQLDatabaseProtectedItem) AsGenericProtectedItem() (*GenericProtectedItem, bool) { 6733 return nil, false 6734} 6735 6736// AsMabFileFolderProtectedItem is the BasicProtectedItem implementation for AzureVMWorkloadSQLDatabaseProtectedItem. 6737func (avwsdpi AzureVMWorkloadSQLDatabaseProtectedItem) AsMabFileFolderProtectedItem() (*MabFileFolderProtectedItem, bool) { 6738 return nil, false 6739} 6740 6741// AsProtectedItem is the BasicProtectedItem implementation for AzureVMWorkloadSQLDatabaseProtectedItem. 6742func (avwsdpi AzureVMWorkloadSQLDatabaseProtectedItem) AsProtectedItem() (*ProtectedItem, bool) { 6743 return nil, false 6744} 6745 6746// AsBasicProtectedItem is the BasicProtectedItem implementation for AzureVMWorkloadSQLDatabaseProtectedItem. 6747func (avwsdpi AzureVMWorkloadSQLDatabaseProtectedItem) AsBasicProtectedItem() (BasicProtectedItem, bool) { 6748 return &avwsdpi, true 6749} 6750 6751// AzureVMWorkloadSQLDatabaseWorkloadItem azure VM workload-specific workload item representing SQL 6752// Database. 6753type AzureVMWorkloadSQLDatabaseWorkloadItem struct { 6754 // ParentName - Name for instance or AG 6755 ParentName *string `json:"parentName,omitempty"` 6756 // ServerName - Host/Cluster Name for instance or AG 6757 ServerName *string `json:"serverName,omitempty"` 6758 // IsAutoProtectable - Indicates if workload item is auto-protectable 6759 IsAutoProtectable *bool `json:"isAutoProtectable,omitempty"` 6760 // Subinquireditemcount - For instance or AG, indicates number of DB's present 6761 Subinquireditemcount *int32 `json:"subinquireditemcount,omitempty"` 6762 // SubWorkloadItemCount - For instance or AG, indicates number of DB's to be protected 6763 SubWorkloadItemCount *int32 `json:"subWorkloadItemCount,omitempty"` 6764 // BackupManagementType - Type of backup management to backup an item. 6765 BackupManagementType *string `json:"backupManagementType,omitempty"` 6766 // WorkloadType - Type of workload for the backup management 6767 WorkloadType *string `json:"workloadType,omitempty"` 6768 // FriendlyName - Friendly name of the backup item. 6769 FriendlyName *string `json:"friendlyName,omitempty"` 6770 // ProtectionState - State of the back up item. Possible values include: 'ProtectionStatusInvalid', 'ProtectionStatusNotProtected', 'ProtectionStatusProtecting', 'ProtectionStatusProtected', 'ProtectionStatusProtectionFailed' 6771 ProtectionState ProtectionStatus `json:"protectionState,omitempty"` 6772 // WorkloadItemType - Possible values include: 'WorkloadItemTypeWorkloadItem', 'WorkloadItemTypeAzureVMWorkloadItem', 'WorkloadItemTypeSAPAseDatabase1', 'WorkloadItemTypeSAPAseSystem1', 'WorkloadItemTypeSAPHanaDatabase1', 'WorkloadItemTypeSAPHanaSystem1', 'WorkloadItemTypeSQLDataBase1', 'WorkloadItemTypeSQLInstance1' 6773 WorkloadItemType WorkloadItemTypeBasicWorkloadItem `json:"workloadItemType,omitempty"` 6774} 6775 6776// MarshalJSON is the custom marshaler for AzureVMWorkloadSQLDatabaseWorkloadItem. 6777func (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// AsAzureVMWorkloadItem is the BasicWorkloadItem implementation for AzureVMWorkloadSQLDatabaseWorkloadItem. 6814func (avwsdwi AzureVMWorkloadSQLDatabaseWorkloadItem) AsAzureVMWorkloadItem() (*AzureVMWorkloadItem, bool) { 6815 return nil, false 6816} 6817 6818// AsBasicAzureVMWorkloadItem is the BasicWorkloadItem implementation for AzureVMWorkloadSQLDatabaseWorkloadItem. 6819func (avwsdwi AzureVMWorkloadSQLDatabaseWorkloadItem) AsBasicAzureVMWorkloadItem() (BasicAzureVMWorkloadItem, bool) { 6820 return &avwsdwi, true 6821} 6822 6823// AsAzureVMWorkloadSAPAseDatabaseWorkloadItem is the BasicWorkloadItem implementation for AzureVMWorkloadSQLDatabaseWorkloadItem. 6824func (avwsdwi AzureVMWorkloadSQLDatabaseWorkloadItem) AsAzureVMWorkloadSAPAseDatabaseWorkloadItem() (*AzureVMWorkloadSAPAseDatabaseWorkloadItem, bool) { 6825 return nil, false 6826} 6827 6828// AsAzureVMWorkloadSAPAseSystemWorkloadItem is the BasicWorkloadItem implementation for AzureVMWorkloadSQLDatabaseWorkloadItem. 6829func (avwsdwi AzureVMWorkloadSQLDatabaseWorkloadItem) AsAzureVMWorkloadSAPAseSystemWorkloadItem() (*AzureVMWorkloadSAPAseSystemWorkloadItem, bool) { 6830 return nil, false 6831} 6832 6833// AsAzureVMWorkloadSAPHanaDatabaseWorkloadItem is the BasicWorkloadItem implementation for AzureVMWorkloadSQLDatabaseWorkloadItem. 6834func (avwsdwi AzureVMWorkloadSQLDatabaseWorkloadItem) AsAzureVMWorkloadSAPHanaDatabaseWorkloadItem() (*AzureVMWorkloadSAPHanaDatabaseWorkloadItem, bool) { 6835 return nil, false 6836} 6837 6838// AsAzureVMWorkloadSAPHanaSystemWorkloadItem is the BasicWorkloadItem implementation for AzureVMWorkloadSQLDatabaseWorkloadItem. 6839func (avwsdwi AzureVMWorkloadSQLDatabaseWorkloadItem) AsAzureVMWorkloadSAPHanaSystemWorkloadItem() (*AzureVMWorkloadSAPHanaSystemWorkloadItem, bool) { 6840 return nil, false 6841} 6842 6843// AsAzureVMWorkloadSQLDatabaseWorkloadItem is the BasicWorkloadItem implementation for AzureVMWorkloadSQLDatabaseWorkloadItem. 6844func (avwsdwi AzureVMWorkloadSQLDatabaseWorkloadItem) AsAzureVMWorkloadSQLDatabaseWorkloadItem() (*AzureVMWorkloadSQLDatabaseWorkloadItem, bool) { 6845 return &avwsdwi, true 6846} 6847 6848// AsAzureVMWorkloadSQLInstanceWorkloadItem is the BasicWorkloadItem implementation for AzureVMWorkloadSQLDatabaseWorkloadItem. 6849func (avwsdwi AzureVMWorkloadSQLDatabaseWorkloadItem) AsAzureVMWorkloadSQLInstanceWorkloadItem() (*AzureVMWorkloadSQLInstanceWorkloadItem, bool) { 6850 return nil, false 6851} 6852 6853// AsWorkloadItem is the BasicWorkloadItem implementation for AzureVMWorkloadSQLDatabaseWorkloadItem. 6854func (avwsdwi AzureVMWorkloadSQLDatabaseWorkloadItem) AsWorkloadItem() (*WorkloadItem, bool) { 6855 return nil, false 6856} 6857 6858// AsBasicWorkloadItem is the BasicWorkloadItem implementation for AzureVMWorkloadSQLDatabaseWorkloadItem. 6859func (avwsdwi AzureVMWorkloadSQLDatabaseWorkloadItem) AsBasicWorkloadItem() (BasicWorkloadItem, bool) { 6860 return &avwsdwi, true 6861} 6862 6863// AzureVMWorkloadSQLInstanceProtectableItem azure VM workload-specific protectable item representing SQL 6864// Instance. 6865type AzureVMWorkloadSQLInstanceProtectableItem struct { 6866 // ParentName - Name for instance or AG 6867 ParentName *string `json:"parentName,omitempty"` 6868 // ParentUniqueName - Parent Unique Name is added to provide the service formatted URI Name of the Parent 6869 // Only Applicable for data bases where the parent would be either Instance or a SQL AG. 6870 ParentUniqueName *string `json:"parentUniqueName,omitempty"` 6871 // ServerName - Host/Cluster Name for instance or AG 6872 ServerName *string `json:"serverName,omitempty"` 6873 // IsAutoProtectable - Indicates if protectable item is auto-protectable 6874 IsAutoProtectable *bool `json:"isAutoProtectable,omitempty"` 6875 // IsAutoProtected - Indicates if protectable item is auto-protected 6876 IsAutoProtected *bool `json:"isAutoProtected,omitempty"` 6877 // Subinquireditemcount - For instance or AG, indicates number of DB's present 6878 Subinquireditemcount *int32 `json:"subinquireditemcount,omitempty"` 6879 // Subprotectableitemcount - For instance or AG, indicates number of DB's to be protected 6880 Subprotectableitemcount *int32 `json:"subprotectableitemcount,omitempty"` 6881 // Prebackupvalidation - Pre-backup validation for protectable objects 6882 Prebackupvalidation *PreBackupValidation `json:"prebackupvalidation,omitempty"` 6883 // BackupManagementType - Type of backup management to backup an item. 6884 BackupManagementType *string `json:"backupManagementType,omitempty"` 6885 // WorkloadType - Type of workload for the backup management 6886 WorkloadType *string `json:"workloadType,omitempty"` 6887 // FriendlyName - Friendly name of the backup item. 6888 FriendlyName *string `json:"friendlyName,omitempty"` 6889 // ProtectionState - State of the back up item. Possible values include: 'ProtectionStatusInvalid', 'ProtectionStatusNotProtected', 'ProtectionStatusProtecting', 'ProtectionStatusProtected', 'ProtectionStatusProtectionFailed' 6890 ProtectionState ProtectionStatus `json:"protectionState,omitempty"` 6891 // ProtectableItemType - Possible values include: 'ProtectableItemTypeWorkloadProtectableItem', 'ProtectableItemTypeAzureFileShare', 'ProtectableItemTypeMicrosoftClassicComputevirtualMachines', 'ProtectableItemTypeMicrosoftComputevirtualMachines', 'ProtectableItemTypeAzureVMWorkloadProtectableItem', 'ProtectableItemTypeSAPAseSystem', 'ProtectableItemTypeSAPHanaDatabase', 'ProtectableItemTypeSAPHanaSystem', 'ProtectableItemTypeSQLAvailabilityGroupContainer', 'ProtectableItemTypeSQLDataBase', 'ProtectableItemTypeSQLInstance', 'ProtectableItemTypeIaaSVMProtectableItem' 6892 ProtectableItemType ProtectableItemType `json:"protectableItemType,omitempty"` 6893} 6894 6895// MarshalJSON is the custom marshaler for AzureVMWorkloadSQLInstanceProtectableItem. 6896func (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// AsAzureFileShareProtectableItem is the BasicWorkloadProtectableItem implementation for AzureVMWorkloadSQLInstanceProtectableItem. 6942func (avwsipi AzureVMWorkloadSQLInstanceProtectableItem) AsAzureFileShareProtectableItem() (*AzureFileShareProtectableItem, bool) { 6943 return nil, false 6944} 6945 6946// AsAzureIaaSClassicComputeVMProtectableItem is the BasicWorkloadProtectableItem implementation for AzureVMWorkloadSQLInstanceProtectableItem. 6947func (avwsipi AzureVMWorkloadSQLInstanceProtectableItem) AsAzureIaaSClassicComputeVMProtectableItem() (*AzureIaaSClassicComputeVMProtectableItem, bool) { 6948 return nil, false 6949} 6950 6951// AsAzureIaaSComputeVMProtectableItem is the BasicWorkloadProtectableItem implementation for AzureVMWorkloadSQLInstanceProtectableItem. 6952func (avwsipi AzureVMWorkloadSQLInstanceProtectableItem) AsAzureIaaSComputeVMProtectableItem() (*AzureIaaSComputeVMProtectableItem, bool) { 6953 return nil, false 6954} 6955 6956// AsAzureVMWorkloadProtectableItem is the BasicWorkloadProtectableItem implementation for AzureVMWorkloadSQLInstanceProtectableItem. 6957func (avwsipi AzureVMWorkloadSQLInstanceProtectableItem) AsAzureVMWorkloadProtectableItem() (*AzureVMWorkloadProtectableItem, bool) { 6958 return nil, false 6959} 6960 6961// AsBasicAzureVMWorkloadProtectableItem is the BasicWorkloadProtectableItem implementation for AzureVMWorkloadSQLInstanceProtectableItem. 6962func (avwsipi AzureVMWorkloadSQLInstanceProtectableItem) AsBasicAzureVMWorkloadProtectableItem() (BasicAzureVMWorkloadProtectableItem, bool) { 6963 return &avwsipi, true 6964} 6965 6966// AsAzureVMWorkloadSAPAseSystemProtectableItem is the BasicWorkloadProtectableItem implementation for AzureVMWorkloadSQLInstanceProtectableItem. 6967func (avwsipi AzureVMWorkloadSQLInstanceProtectableItem) AsAzureVMWorkloadSAPAseSystemProtectableItem() (*AzureVMWorkloadSAPAseSystemProtectableItem, bool) { 6968 return nil, false 6969} 6970 6971// AsAzureVMWorkloadSAPHanaDatabaseProtectableItem is the BasicWorkloadProtectableItem implementation for AzureVMWorkloadSQLInstanceProtectableItem. 6972func (avwsipi AzureVMWorkloadSQLInstanceProtectableItem) AsAzureVMWorkloadSAPHanaDatabaseProtectableItem() (*AzureVMWorkloadSAPHanaDatabaseProtectableItem, bool) { 6973 return nil, false 6974} 6975 6976// AsAzureVMWorkloadSAPHanaSystemProtectableItem is the BasicWorkloadProtectableItem implementation for AzureVMWorkloadSQLInstanceProtectableItem. 6977func (avwsipi AzureVMWorkloadSQLInstanceProtectableItem) AsAzureVMWorkloadSAPHanaSystemProtectableItem() (*AzureVMWorkloadSAPHanaSystemProtectableItem, bool) { 6978 return nil, false 6979} 6980 6981// AsAzureVMWorkloadSQLAvailabilityGroupProtectableItem is the BasicWorkloadProtectableItem implementation for AzureVMWorkloadSQLInstanceProtectableItem. 6982func (avwsipi AzureVMWorkloadSQLInstanceProtectableItem) AsAzureVMWorkloadSQLAvailabilityGroupProtectableItem() (*AzureVMWorkloadSQLAvailabilityGroupProtectableItem, bool) { 6983 return nil, false 6984} 6985 6986// AsAzureVMWorkloadSQLDatabaseProtectableItem is the BasicWorkloadProtectableItem implementation for AzureVMWorkloadSQLInstanceProtectableItem. 6987func (avwsipi AzureVMWorkloadSQLInstanceProtectableItem) AsAzureVMWorkloadSQLDatabaseProtectableItem() (*AzureVMWorkloadSQLDatabaseProtectableItem, bool) { 6988 return nil, false 6989} 6990 6991// AsAzureVMWorkloadSQLInstanceProtectableItem is the BasicWorkloadProtectableItem implementation for AzureVMWorkloadSQLInstanceProtectableItem. 6992func (avwsipi AzureVMWorkloadSQLInstanceProtectableItem) AsAzureVMWorkloadSQLInstanceProtectableItem() (*AzureVMWorkloadSQLInstanceProtectableItem, bool) { 6993 return &avwsipi, true 6994} 6995 6996// AsIaaSVMProtectableItem is the BasicWorkloadProtectableItem implementation for AzureVMWorkloadSQLInstanceProtectableItem. 6997func (avwsipi AzureVMWorkloadSQLInstanceProtectableItem) AsIaaSVMProtectableItem() (*IaaSVMProtectableItem, bool) { 6998 return nil, false 6999} 7000 7001// AsBasicIaaSVMProtectableItem is the BasicWorkloadProtectableItem implementation for AzureVMWorkloadSQLInstanceProtectableItem. 7002func (avwsipi AzureVMWorkloadSQLInstanceProtectableItem) AsBasicIaaSVMProtectableItem() (BasicIaaSVMProtectableItem, bool) { 7003 return nil, false 7004} 7005 7006// AsWorkloadProtectableItem is the BasicWorkloadProtectableItem implementation for AzureVMWorkloadSQLInstanceProtectableItem. 7007func (avwsipi AzureVMWorkloadSQLInstanceProtectableItem) AsWorkloadProtectableItem() (*WorkloadProtectableItem, bool) { 7008 return nil, false 7009} 7010 7011// AsBasicWorkloadProtectableItem is the BasicWorkloadProtectableItem implementation for AzureVMWorkloadSQLInstanceProtectableItem. 7012func (avwsipi AzureVMWorkloadSQLInstanceProtectableItem) AsBasicWorkloadProtectableItem() (BasicWorkloadProtectableItem, bool) { 7013 return &avwsipi, true 7014} 7015 7016// AzureVMWorkloadSQLInstanceWorkloadItem azure VM workload-specific workload item representing SQL 7017// Instance. 7018type AzureVMWorkloadSQLInstanceWorkloadItem struct { 7019 // DataDirectoryPaths - Data Directory Paths for default directories 7020 DataDirectoryPaths *[]SQLDataDirectory `json:"dataDirectoryPaths,omitempty"` 7021 // ParentName - Name for instance or AG 7022 ParentName *string `json:"parentName,omitempty"` 7023 // ServerName - Host/Cluster Name for instance or AG 7024 ServerName *string `json:"serverName,omitempty"` 7025 // IsAutoProtectable - Indicates if workload item is auto-protectable 7026 IsAutoProtectable *bool `json:"isAutoProtectable,omitempty"` 7027 // Subinquireditemcount - For instance or AG, indicates number of DB's present 7028 Subinquireditemcount *int32 `json:"subinquireditemcount,omitempty"` 7029 // SubWorkloadItemCount - For instance or AG, indicates number of DB's to be protected 7030 SubWorkloadItemCount *int32 `json:"subWorkloadItemCount,omitempty"` 7031 // BackupManagementType - Type of backup management to backup an item. 7032 BackupManagementType *string `json:"backupManagementType,omitempty"` 7033 // WorkloadType - Type of workload for the backup management 7034 WorkloadType *string `json:"workloadType,omitempty"` 7035 // FriendlyName - Friendly name of the backup item. 7036 FriendlyName *string `json:"friendlyName,omitempty"` 7037 // ProtectionState - State of the back up item. Possible values include: 'ProtectionStatusInvalid', 'ProtectionStatusNotProtected', 'ProtectionStatusProtecting', 'ProtectionStatusProtected', 'ProtectionStatusProtectionFailed' 7038 ProtectionState ProtectionStatus `json:"protectionState,omitempty"` 7039 // WorkloadItemType - Possible values include: 'WorkloadItemTypeWorkloadItem', 'WorkloadItemTypeAzureVMWorkloadItem', 'WorkloadItemTypeSAPAseDatabase1', 'WorkloadItemTypeSAPAseSystem1', 'WorkloadItemTypeSAPHanaDatabase1', 'WorkloadItemTypeSAPHanaSystem1', 'WorkloadItemTypeSQLDataBase1', 'WorkloadItemTypeSQLInstance1' 7040 WorkloadItemType WorkloadItemTypeBasicWorkloadItem `json:"workloadItemType,omitempty"` 7041} 7042 7043// MarshalJSON is the custom marshaler for AzureVMWorkloadSQLInstanceWorkloadItem. 7044func (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// AsAzureVMWorkloadItem is the BasicWorkloadItem implementation for AzureVMWorkloadSQLInstanceWorkloadItem. 7084func (avwsiwi AzureVMWorkloadSQLInstanceWorkloadItem) AsAzureVMWorkloadItem() (*AzureVMWorkloadItem, bool) { 7085 return nil, false 7086} 7087 7088// AsBasicAzureVMWorkloadItem is the BasicWorkloadItem implementation for AzureVMWorkloadSQLInstanceWorkloadItem. 7089func (avwsiwi AzureVMWorkloadSQLInstanceWorkloadItem) AsBasicAzureVMWorkloadItem() (BasicAzureVMWorkloadItem, bool) { 7090 return &avwsiwi, true 7091} 7092 7093// AsAzureVMWorkloadSAPAseDatabaseWorkloadItem is the BasicWorkloadItem implementation for AzureVMWorkloadSQLInstanceWorkloadItem. 7094func (avwsiwi AzureVMWorkloadSQLInstanceWorkloadItem) AsAzureVMWorkloadSAPAseDatabaseWorkloadItem() (*AzureVMWorkloadSAPAseDatabaseWorkloadItem, bool) { 7095 return nil, false 7096} 7097 7098// AsAzureVMWorkloadSAPAseSystemWorkloadItem is the BasicWorkloadItem implementation for AzureVMWorkloadSQLInstanceWorkloadItem. 7099func (avwsiwi AzureVMWorkloadSQLInstanceWorkloadItem) AsAzureVMWorkloadSAPAseSystemWorkloadItem() (*AzureVMWorkloadSAPAseSystemWorkloadItem, bool) { 7100 return nil, false 7101} 7102 7103// AsAzureVMWorkloadSAPHanaDatabaseWorkloadItem is the BasicWorkloadItem implementation for AzureVMWorkloadSQLInstanceWorkloadItem. 7104func (avwsiwi AzureVMWorkloadSQLInstanceWorkloadItem) AsAzureVMWorkloadSAPHanaDatabaseWorkloadItem() (*AzureVMWorkloadSAPHanaDatabaseWorkloadItem, bool) { 7105 return nil, false 7106} 7107 7108// AsAzureVMWorkloadSAPHanaSystemWorkloadItem is the BasicWorkloadItem implementation for AzureVMWorkloadSQLInstanceWorkloadItem. 7109func (avwsiwi AzureVMWorkloadSQLInstanceWorkloadItem) AsAzureVMWorkloadSAPHanaSystemWorkloadItem() (*AzureVMWorkloadSAPHanaSystemWorkloadItem, bool) { 7110 return nil, false 7111} 7112 7113// AsAzureVMWorkloadSQLDatabaseWorkloadItem is the BasicWorkloadItem implementation for AzureVMWorkloadSQLInstanceWorkloadItem. 7114func (avwsiwi AzureVMWorkloadSQLInstanceWorkloadItem) AsAzureVMWorkloadSQLDatabaseWorkloadItem() (*AzureVMWorkloadSQLDatabaseWorkloadItem, bool) { 7115 return nil, false 7116} 7117 7118// AsAzureVMWorkloadSQLInstanceWorkloadItem is the BasicWorkloadItem implementation for AzureVMWorkloadSQLInstanceWorkloadItem. 7119func (avwsiwi AzureVMWorkloadSQLInstanceWorkloadItem) AsAzureVMWorkloadSQLInstanceWorkloadItem() (*AzureVMWorkloadSQLInstanceWorkloadItem, bool) { 7120 return &avwsiwi, true 7121} 7122 7123// AsWorkloadItem is the BasicWorkloadItem implementation for AzureVMWorkloadSQLInstanceWorkloadItem. 7124func (avwsiwi AzureVMWorkloadSQLInstanceWorkloadItem) AsWorkloadItem() (*WorkloadItem, bool) { 7125 return nil, false 7126} 7127 7128// AsBasicWorkloadItem is the BasicWorkloadItem implementation for AzureVMWorkloadSQLInstanceWorkloadItem. 7129func (avwsiwi AzureVMWorkloadSQLInstanceWorkloadItem) AsBasicWorkloadItem() (BasicWorkloadItem, bool) { 7130 return &avwsiwi, true 7131} 7132 7133// BasicAzureWorkloadAutoProtectionIntent azure Recovery Services Vault specific protection intent item. 7134type BasicAzureWorkloadAutoProtectionIntent interface { 7135 AsAzureWorkloadSQLAutoProtectionIntent() (*AzureWorkloadSQLAutoProtectionIntent, bool) 7136 AsAzureWorkloadAutoProtectionIntent() (*AzureWorkloadAutoProtectionIntent, bool) 7137} 7138 7139// AzureWorkloadAutoProtectionIntent azure Recovery Services Vault specific protection intent item. 7140type AzureWorkloadAutoProtectionIntent struct { 7141 // BackupManagementType - Type of backup management for the backed up item. Possible values include: 'ManagementTypeInvalid', 'ManagementTypeAzureIaasVM', 'ManagementTypeMAB', 'ManagementTypeDPM', 'ManagementTypeAzureBackupServer', 'ManagementTypeAzureSQL', 'ManagementTypeAzureStorage', 'ManagementTypeAzureWorkload', 'ManagementTypeDefaultBackup' 7142 BackupManagementType ManagementType `json:"backupManagementType,omitempty"` 7143 // SourceResourceID - ARM ID of the resource to be backed up. 7144 SourceResourceID *string `json:"sourceResourceId,omitempty"` 7145 // ItemID - ID of the item which is getting protected, In case of Azure Vm , it is ProtectedItemId 7146 ItemID *string `json:"itemId,omitempty"` 7147 // PolicyID - ID of the backup policy with which this item is backed up. 7148 PolicyID *string `json:"policyId,omitempty"` 7149 // ProtectionState - Backup state of this backup item. Possible values include: 'ProtectionStatusInvalid', 'ProtectionStatusNotProtected', 'ProtectionStatusProtecting', 'ProtectionStatusProtected', 'ProtectionStatusProtectionFailed' 7150 ProtectionState ProtectionStatus `json:"protectionState,omitempty"` 7151 // ProtectionIntentItemType - Possible values include: 'ProtectionIntentItemTypeProtectionIntent', 'ProtectionIntentItemTypeRecoveryServiceVaultItem', 'ProtectionIntentItemTypeAzureResourceItem', 'ProtectionIntentItemTypeAzureWorkloadAutoProtectionIntent', 'ProtectionIntentItemTypeAzureWorkloadSQLAutoProtectionIntent' 7152 ProtectionIntentItemType ProtectionIntentItemType `json:"protectionIntentItemType,omitempty"` 7153} 7154 7155func 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} 7173func 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// MarshalJSON is the custom marshaler for AzureWorkloadAutoProtectionIntent. 7193func (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// AsAzureRecoveryServiceVaultProtectionIntent is the BasicProtectionIntent implementation for AzureWorkloadAutoProtectionIntent. 7218func (awapi AzureWorkloadAutoProtectionIntent) AsAzureRecoveryServiceVaultProtectionIntent() (*AzureRecoveryServiceVaultProtectionIntent, bool) { 7219 return nil, false 7220} 7221 7222// AsBasicAzureRecoveryServiceVaultProtectionIntent is the BasicProtectionIntent implementation for AzureWorkloadAutoProtectionIntent. 7223func (awapi AzureWorkloadAutoProtectionIntent) AsBasicAzureRecoveryServiceVaultProtectionIntent() (BasicAzureRecoveryServiceVaultProtectionIntent, bool) { 7224 return &awapi, true 7225} 7226 7227// AsAzureResourceProtectionIntent is the BasicProtectionIntent implementation for AzureWorkloadAutoProtectionIntent. 7228func (awapi AzureWorkloadAutoProtectionIntent) AsAzureResourceProtectionIntent() (*AzureResourceProtectionIntent, bool) { 7229 return nil, false 7230} 7231 7232// AsAzureWorkloadAutoProtectionIntent is the BasicProtectionIntent implementation for AzureWorkloadAutoProtectionIntent. 7233func (awapi AzureWorkloadAutoProtectionIntent) AsAzureWorkloadAutoProtectionIntent() (*AzureWorkloadAutoProtectionIntent, bool) { 7234 return &awapi, true 7235} 7236 7237// AsBasicAzureWorkloadAutoProtectionIntent is the BasicProtectionIntent implementation for AzureWorkloadAutoProtectionIntent. 7238func (awapi AzureWorkloadAutoProtectionIntent) AsBasicAzureWorkloadAutoProtectionIntent() (BasicAzureWorkloadAutoProtectionIntent, bool) { 7239 return &awapi, true 7240} 7241 7242// AsAzureWorkloadSQLAutoProtectionIntent is the BasicProtectionIntent implementation for AzureWorkloadAutoProtectionIntent. 7243func (awapi AzureWorkloadAutoProtectionIntent) AsAzureWorkloadSQLAutoProtectionIntent() (*AzureWorkloadSQLAutoProtectionIntent, bool) { 7244 return nil, false 7245} 7246 7247// AsProtectionIntent is the BasicProtectionIntent implementation for AzureWorkloadAutoProtectionIntent. 7248func (awapi AzureWorkloadAutoProtectionIntent) AsProtectionIntent() (*ProtectionIntent, bool) { 7249 return nil, false 7250} 7251 7252// AsBasicProtectionIntent is the BasicProtectionIntent implementation for AzureWorkloadAutoProtectionIntent. 7253func (awapi AzureWorkloadAutoProtectionIntent) AsBasicProtectionIntent() (BasicProtectionIntent, bool) { 7254 return &awapi, true 7255} 7256 7257// AzureWorkloadBackupRequest azureWorkload workload-specific backup request. 7258type AzureWorkloadBackupRequest struct { 7259 // BackupType - Type of backup, viz. Full, Differential, Log or CopyOnlyFull. Possible values include: 'TypeEnumInvalid', 'TypeEnumFull', 'TypeEnumDifferential', 'TypeEnumLog', 'TypeEnumCopyOnlyFull' 7260 BackupType TypeEnum `json:"backupType,omitempty"` 7261 // EnableCompression - Bool for Compression setting 7262 EnableCompression *bool `json:"enableCompression,omitempty"` 7263 // RecoveryPointExpiryTimeInUTC - Backup copy will expire after the time specified (UTC). 7264 RecoveryPointExpiryTimeInUTC *date.Time `json:"recoveryPointExpiryTimeInUTC,omitempty"` 7265 // ObjectType - Possible values include: 'ObjectTypeBackupRequest', 'ObjectTypeAzureFileShareBackupRequest', 'ObjectTypeAzureWorkloadBackupRequest', 'ObjectTypeIaasVMBackupRequest' 7266 ObjectType ObjectTypeBasicRequest `json:"objectType,omitempty"` 7267} 7268 7269// MarshalJSON is the custom marshaler for AzureWorkloadBackupRequest. 7270func (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// AsAzureFileShareBackupRequest is the BasicRequest implementation for AzureWorkloadBackupRequest. 7289func (awbr AzureWorkloadBackupRequest) AsAzureFileShareBackupRequest() (*AzureFileShareBackupRequest, bool) { 7290 return nil, false 7291} 7292 7293// AsAzureWorkloadBackupRequest is the BasicRequest implementation for AzureWorkloadBackupRequest. 7294func (awbr AzureWorkloadBackupRequest) AsAzureWorkloadBackupRequest() (*AzureWorkloadBackupRequest, bool) { 7295 return &awbr, true 7296} 7297 7298// AsIaasVMBackupRequest is the BasicRequest implementation for AzureWorkloadBackupRequest. 7299func (awbr AzureWorkloadBackupRequest) AsIaasVMBackupRequest() (*IaasVMBackupRequest, bool) { 7300 return nil, false 7301} 7302 7303// AsRequest is the BasicRequest implementation for AzureWorkloadBackupRequest. 7304func (awbr AzureWorkloadBackupRequest) AsRequest() (*Request, bool) { 7305 return nil, false 7306} 7307 7308// AsBasicRequest is the BasicRequest implementation for AzureWorkloadBackupRequest. 7309func (awbr AzureWorkloadBackupRequest) AsBasicRequest() (BasicRequest, bool) { 7310 return &awbr, true 7311} 7312 7313// BasicAzureWorkloadContainer container for the workloads running inside Azure Compute or Classic Compute. 7314type BasicAzureWorkloadContainer interface { 7315 AsAzureSQLAGWorkloadContainerProtectionContainer() (*AzureSQLAGWorkloadContainerProtectionContainer, bool) 7316 AsAzureVMAppContainerProtectionContainer() (*AzureVMAppContainerProtectionContainer, bool) 7317 AsAzureWorkloadContainer() (*AzureWorkloadContainer, bool) 7318} 7319 7320// AzureWorkloadContainer container for the workloads running inside Azure Compute or Classic Compute. 7321type AzureWorkloadContainer struct { 7322 // SourceResourceID - ARM ID of the virtual machine represented by this Azure Workload Container 7323 SourceResourceID *string `json:"sourceResourceId,omitempty"` 7324 // LastUpdatedTime - Time stamp when this container was updated. 7325 LastUpdatedTime *date.Time `json:"lastUpdatedTime,omitempty"` 7326 // ExtendedInfo - Additional details of a workload container. 7327 ExtendedInfo *AzureWorkloadContainerExtendedInfo `json:"extendedInfo,omitempty"` 7328 // WorkloadType - Workload type for which registration was sent. Possible values include: 'WorkloadTypeInvalid', 'WorkloadTypeVM', 'WorkloadTypeFileFolder', 'WorkloadTypeAzureSQLDb', 'WorkloadTypeSQLDB', 'WorkloadTypeExchange', 'WorkloadTypeSharepoint', 'WorkloadTypeVMwareVM', 'WorkloadTypeSystemState', 'WorkloadTypeClient', 'WorkloadTypeGenericDataSource', 'WorkloadTypeSQLDataBase', 'WorkloadTypeAzureFileShare', 'WorkloadTypeSAPHanaDatabase', 'WorkloadTypeSAPAseDatabase' 7329 WorkloadType WorkloadType `json:"workloadType,omitempty"` 7330 // OperationType - Re-Do Operation. Possible values include: 'OperationTypeInvalid', 'OperationTypeRegister', 'OperationTypeReregister' 7331 OperationType OperationType `json:"operationType,omitempty"` 7332 // FriendlyName - Friendly name of the container. 7333 FriendlyName *string `json:"friendlyName,omitempty"` 7334 // BackupManagementType - Type of backup management for the container. Possible values include: 'ManagementTypeInvalid', 'ManagementTypeAzureIaasVM', 'ManagementTypeMAB', 'ManagementTypeDPM', 'ManagementTypeAzureBackupServer', 'ManagementTypeAzureSQL', 'ManagementTypeAzureStorage', 'ManagementTypeAzureWorkload', 'ManagementTypeDefaultBackup' 7335 BackupManagementType ManagementType `json:"backupManagementType,omitempty"` 7336 // RegistrationStatus - Status of registration of the container with the Recovery Services Vault. 7337 RegistrationStatus *string `json:"registrationStatus,omitempty"` 7338 // HealthStatus - Status of health of the container. 7339 HealthStatus *string `json:"healthStatus,omitempty"` 7340 // ContainerType - Possible values include: 'ContainerTypeProtectionContainer', 'ContainerTypeAzureBackupServerContainer1', 'ContainerTypeMicrosoftClassicComputevirtualMachines', 'ContainerTypeMicrosoftComputevirtualMachines', 'ContainerTypeSQLAGWorkLoadContainer1', 'ContainerTypeAzureSQLContainer1', 'ContainerTypeStorageContainer1', 'ContainerTypeVMAppContainer1', 'ContainerTypeAzureWorkloadContainer', 'ContainerTypeDPMContainer1', 'ContainerTypeGenericContainer1', 'ContainerTypeIaaSVMContainer', 'ContainerTypeWindows1' 7341 ContainerType ContainerTypeBasicProtectionContainer `json:"containerType,omitempty"` 7342} 7343 7344func 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} 7366func 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// MarshalJSON is the custom marshaler for AzureWorkloadContainer. 7386func (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// AsAzureBackupServerContainer is the BasicProtectionContainer implementation for AzureWorkloadContainer. 7423func (awc AzureWorkloadContainer) AsAzureBackupServerContainer() (*AzureBackupServerContainer, bool) { 7424 return nil, false 7425} 7426 7427// AsAzureIaaSClassicComputeVMContainer is the BasicProtectionContainer implementation for AzureWorkloadContainer. 7428func (awc AzureWorkloadContainer) AsAzureIaaSClassicComputeVMContainer() (*AzureIaaSClassicComputeVMContainer, bool) { 7429 return nil, false 7430} 7431 7432// AsAzureIaaSComputeVMContainer is the BasicProtectionContainer implementation for AzureWorkloadContainer. 7433func (awc AzureWorkloadContainer) AsAzureIaaSComputeVMContainer() (*AzureIaaSComputeVMContainer, bool) { 7434 return nil, false 7435} 7436 7437// AsAzureSQLAGWorkloadContainerProtectionContainer is the BasicProtectionContainer implementation for AzureWorkloadContainer. 7438func (awc AzureWorkloadContainer) AsAzureSQLAGWorkloadContainerProtectionContainer() (*AzureSQLAGWorkloadContainerProtectionContainer, bool) { 7439 return nil, false 7440} 7441 7442// AsAzureSQLContainer is the BasicProtectionContainer implementation for AzureWorkloadContainer. 7443func (awc AzureWorkloadContainer) AsAzureSQLContainer() (*AzureSQLContainer, bool) { 7444 return nil, false 7445} 7446 7447// AsAzureStorageContainer is the BasicProtectionContainer implementation for AzureWorkloadContainer. 7448func (awc AzureWorkloadContainer) AsAzureStorageContainer() (*AzureStorageContainer, bool) { 7449 return nil, false 7450} 7451 7452// AsAzureVMAppContainerProtectionContainer is the BasicProtectionContainer implementation for AzureWorkloadContainer. 7453func (awc AzureWorkloadContainer) AsAzureVMAppContainerProtectionContainer() (*AzureVMAppContainerProtectionContainer, bool) { 7454 return nil, false 7455} 7456 7457// AsAzureWorkloadContainer is the BasicProtectionContainer implementation for AzureWorkloadContainer. 7458func (awc AzureWorkloadContainer) AsAzureWorkloadContainer() (*AzureWorkloadContainer, bool) { 7459 return &awc, true 7460} 7461 7462// AsBasicAzureWorkloadContainer is the BasicProtectionContainer implementation for AzureWorkloadContainer. 7463func (awc AzureWorkloadContainer) AsBasicAzureWorkloadContainer() (BasicAzureWorkloadContainer, bool) { 7464 return &awc, true 7465} 7466 7467// AsDpmContainer is the BasicProtectionContainer implementation for AzureWorkloadContainer. 7468func (awc AzureWorkloadContainer) AsDpmContainer() (*DpmContainer, bool) { 7469 return nil, false 7470} 7471 7472// AsBasicDpmContainer is the BasicProtectionContainer implementation for AzureWorkloadContainer. 7473func (awc AzureWorkloadContainer) AsBasicDpmContainer() (BasicDpmContainer, bool) { 7474 return nil, false 7475} 7476 7477// AsGenericContainer is the BasicProtectionContainer implementation for AzureWorkloadContainer. 7478func (awc AzureWorkloadContainer) AsGenericContainer() (*GenericContainer, bool) { 7479 return nil, false 7480} 7481 7482// AsIaaSVMContainer is the BasicProtectionContainer implementation for AzureWorkloadContainer. 7483func (awc AzureWorkloadContainer) AsIaaSVMContainer() (*IaaSVMContainer, bool) { 7484 return nil, false 7485} 7486 7487// AsBasicIaaSVMContainer is the BasicProtectionContainer implementation for AzureWorkloadContainer. 7488func (awc AzureWorkloadContainer) AsBasicIaaSVMContainer() (BasicIaaSVMContainer, bool) { 7489 return nil, false 7490} 7491 7492// AsMabContainer is the BasicProtectionContainer implementation for AzureWorkloadContainer. 7493func (awc AzureWorkloadContainer) AsMabContainer() (*MabContainer, bool) { 7494 return nil, false 7495} 7496 7497// AsProtectionContainer is the BasicProtectionContainer implementation for AzureWorkloadContainer. 7498func (awc AzureWorkloadContainer) AsProtectionContainer() (*ProtectionContainer, bool) { 7499 return nil, false 7500} 7501 7502// AsBasicProtectionContainer is the BasicProtectionContainer implementation for AzureWorkloadContainer. 7503func (awc AzureWorkloadContainer) AsBasicProtectionContainer() (BasicProtectionContainer, bool) { 7504 return &awc, true 7505} 7506 7507// AzureWorkloadContainerExtendedInfo extended information of the container. 7508type AzureWorkloadContainerExtendedInfo struct { 7509 // HostServerName - Host Os Name in case of Stand Alone and Cluster Name in case of distributed container. 7510 HostServerName *string `json:"hostServerName,omitempty"` 7511 // InquiryInfo - Inquiry Status for the container. 7512 InquiryInfo *InquiryInfo `json:"inquiryInfo,omitempty"` 7513 // NodesList - List of the nodes in case of distributed container. 7514 NodesList *[]DistributedNodesInfo `json:"nodesList,omitempty"` 7515} 7516 7517// AzureWorkloadErrorInfo azure storage specific error information 7518type AzureWorkloadErrorInfo struct { 7519 // ErrorCode - Error code. 7520 ErrorCode *int32 `json:"errorCode,omitempty"` 7521 // ErrorString - Localized error string. 7522 ErrorString *string `json:"errorString,omitempty"` 7523 // ErrorTitle - Title: Typically, the entity that the error pertains to. 7524 ErrorTitle *string `json:"errorTitle,omitempty"` 7525 // Recommendations - List of localized recommendations for above error code. 7526 Recommendations *[]string `json:"recommendations,omitempty"` 7527 // AdditionalDetails - Additional details for above error code. 7528 AdditionalDetails *string `json:"additionalDetails,omitempty"` 7529} 7530 7531// AzureWorkloadJob azure storage specific job. 7532type AzureWorkloadJob struct { 7533 // WorkloadType - Workload type of the job 7534 WorkloadType *string `json:"workloadType,omitempty"` 7535 // Duration - Time elapsed during the execution of this job. 7536 Duration *string `json:"duration,omitempty"` 7537 // ActionsInfo - Gets or sets the state/actions applicable on this job like cancel/retry. 7538 ActionsInfo *[]JobSupportedAction `json:"actionsInfo,omitempty"` 7539 // ErrorDetails - Error details on execution of this job. 7540 ErrorDetails *[]AzureWorkloadErrorInfo `json:"errorDetails,omitempty"` 7541 // ExtendedInfo - Additional information about the job. 7542 ExtendedInfo *AzureWorkloadJobExtendedInfo `json:"extendedInfo,omitempty"` 7543 // EntityFriendlyName - Friendly name of the entity on which the current job is executing. 7544 EntityFriendlyName *string `json:"entityFriendlyName,omitempty"` 7545 // BackupManagementType - Backup management type to execute the current job. Possible values include: 'ManagementTypeInvalid', 'ManagementTypeAzureIaasVM', 'ManagementTypeMAB', 'ManagementTypeDPM', 'ManagementTypeAzureBackupServer', 'ManagementTypeAzureSQL', 'ManagementTypeAzureStorage', 'ManagementTypeAzureWorkload', 'ManagementTypeDefaultBackup' 7546 BackupManagementType ManagementType `json:"backupManagementType,omitempty"` 7547 // Operation - The operation name. 7548 Operation *string `json:"operation,omitempty"` 7549 // Status - Job status. 7550 Status *string `json:"status,omitempty"` 7551 // StartTime - The start time. 7552 StartTime *date.Time `json:"startTime,omitempty"` 7553 // EndTime - The end time. 7554 EndTime *date.Time `json:"endTime,omitempty"` 7555 // ActivityID - ActivityId of job. 7556 ActivityID *string `json:"activityId,omitempty"` 7557 // JobType - Possible values include: 'JobTypeJob', 'JobTypeAzureIaaSVMJob', 'JobTypeAzureStorageJob', 'JobTypeAzureWorkloadJob', 'JobTypeDpmJob', 'JobTypeMabJob' 7558 JobType JobType `json:"jobType,omitempty"` 7559} 7560 7561// MarshalJSON is the custom marshaler for AzureWorkloadJob. 7562func (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// AsAzureIaaSVMJob is the BasicJob implementation for AzureWorkloadJob. 7608func (awj AzureWorkloadJob) AsAzureIaaSVMJob() (*AzureIaaSVMJob, bool) { 7609 return nil, false 7610} 7611 7612// AsAzureStorageJob is the BasicJob implementation for AzureWorkloadJob. 7613func (awj AzureWorkloadJob) AsAzureStorageJob() (*AzureStorageJob, bool) { 7614 return nil, false 7615} 7616 7617// AsAzureWorkloadJob is the BasicJob implementation for AzureWorkloadJob. 7618func (awj AzureWorkloadJob) AsAzureWorkloadJob() (*AzureWorkloadJob, bool) { 7619 return &awj, true 7620} 7621 7622// AsDpmJob is the BasicJob implementation for AzureWorkloadJob. 7623func (awj AzureWorkloadJob) AsDpmJob() (*DpmJob, bool) { 7624 return nil, false 7625} 7626 7627// AsMabJob is the BasicJob implementation for AzureWorkloadJob. 7628func (awj AzureWorkloadJob) AsMabJob() (*MabJob, bool) { 7629 return nil, false 7630} 7631 7632// AsJob is the BasicJob implementation for AzureWorkloadJob. 7633func (awj AzureWorkloadJob) AsJob() (*Job, bool) { 7634 return nil, false 7635} 7636 7637// AsBasicJob is the BasicJob implementation for AzureWorkloadJob. 7638func (awj AzureWorkloadJob) AsBasicJob() (BasicJob, bool) { 7639 return &awj, true 7640} 7641 7642// AzureWorkloadJobExtendedInfo azure VM workload-specific additional information for job. 7643type AzureWorkloadJobExtendedInfo struct { 7644 // TasksList - List of tasks for this job 7645 TasksList *[]AzureWorkloadJobTaskDetails `json:"tasksList,omitempty"` 7646 // PropertyBag - Job properties. 7647 PropertyBag map[string]*string `json:"propertyBag"` 7648 // DynamicErrorMessage - Non localized error message on job execution. 7649 DynamicErrorMessage *string `json:"dynamicErrorMessage,omitempty"` 7650} 7651 7652// MarshalJSON is the custom marshaler for AzureWorkloadJobExtendedInfo. 7653func (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// AzureWorkloadJobTaskDetails azure VM workload specific job task details. 7668type AzureWorkloadJobTaskDetails struct { 7669 // TaskID - The task display name. 7670 TaskID *string `json:"taskId,omitempty"` 7671 // Status - The status. 7672 Status *string `json:"status,omitempty"` 7673} 7674 7675// BasicAzureWorkloadPointInTimeRecoveryPoint recovery point specific to PointInTime 7676type BasicAzureWorkloadPointInTimeRecoveryPoint interface { 7677 AsAzureWorkloadSAPHanaPointInTimeRecoveryPoint() (*AzureWorkloadSAPHanaPointInTimeRecoveryPoint, bool) 7678 AsAzureWorkloadPointInTimeRecoveryPoint() (*AzureWorkloadPointInTimeRecoveryPoint, bool) 7679} 7680 7681// AzureWorkloadPointInTimeRecoveryPoint recovery point specific to PointInTime 7682type AzureWorkloadPointInTimeRecoveryPoint struct { 7683 // TimeRanges - List of log ranges 7684 TimeRanges *[]PointInTimeRange `json:"timeRanges,omitempty"` 7685 // RecoveryPointTimeInUTC - READ-ONLY; UTC time at which recovery point was created 7686 RecoveryPointTimeInUTC *date.Time `json:"recoveryPointTimeInUTC,omitempty"` 7687 // Type - READ-ONLY; Type of restore point. Possible values include: 'RestorePointTypeInvalid', 'RestorePointTypeFull', 'RestorePointTypeLog', 'RestorePointTypeDifferential' 7688 Type RestorePointType `json:"type,omitempty"` 7689 // ObjectType - Possible values include: 'ObjectTypeRecoveryPoint', 'ObjectTypeAzureFileShareRecoveryPoint', 'ObjectTypeAzureWorkloadPointInTimeRecoveryPoint', 'ObjectTypeAzureWorkloadRecoveryPoint', 'ObjectTypeAzureWorkloadSAPHanaPointInTimeRecoveryPoint', 'ObjectTypeAzureWorkloadSAPHanaRecoveryPoint', 'ObjectTypeAzureWorkloadSQLPointInTimeRecoveryPoint', 'ObjectTypeAzureWorkloadSQLRecoveryPoint', 'ObjectTypeGenericRecoveryPoint', 'ObjectTypeIaasVMRecoveryPoint' 7690 ObjectType ObjectTypeBasicRecoveryPoint `json:"objectType,omitempty"` 7691} 7692 7693func 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} 7711func 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// MarshalJSON is the custom marshaler for AzureWorkloadPointInTimeRecoveryPoint. 7731func (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// AsAzureFileShareRecoveryPoint is the BasicRecoveryPoint implementation for AzureWorkloadPointInTimeRecoveryPoint. 7744func (awpitrp AzureWorkloadPointInTimeRecoveryPoint) AsAzureFileShareRecoveryPoint() (*AzureFileShareRecoveryPoint, bool) { 7745 return nil, false 7746} 7747 7748// AsAzureWorkloadPointInTimeRecoveryPoint is the BasicRecoveryPoint implementation for AzureWorkloadPointInTimeRecoveryPoint. 7749func (awpitrp AzureWorkloadPointInTimeRecoveryPoint) AsAzureWorkloadPointInTimeRecoveryPoint() (*AzureWorkloadPointInTimeRecoveryPoint, bool) { 7750 return &awpitrp, true 7751} 7752 7753// AsBasicAzureWorkloadPointInTimeRecoveryPoint is the BasicRecoveryPoint implementation for AzureWorkloadPointInTimeRecoveryPoint. 7754func (awpitrp AzureWorkloadPointInTimeRecoveryPoint) AsBasicAzureWorkloadPointInTimeRecoveryPoint() (BasicAzureWorkloadPointInTimeRecoveryPoint, bool) { 7755 return &awpitrp, true 7756} 7757 7758// AsAzureWorkloadRecoveryPoint is the BasicRecoveryPoint implementation for AzureWorkloadPointInTimeRecoveryPoint. 7759func (awpitrp AzureWorkloadPointInTimeRecoveryPoint) AsAzureWorkloadRecoveryPoint() (*AzureWorkloadRecoveryPoint, bool) { 7760 return nil, false 7761} 7762 7763// AsBasicAzureWorkloadRecoveryPoint is the BasicRecoveryPoint implementation for AzureWorkloadPointInTimeRecoveryPoint. 7764func (awpitrp AzureWorkloadPointInTimeRecoveryPoint) AsBasicAzureWorkloadRecoveryPoint() (BasicAzureWorkloadRecoveryPoint, bool) { 7765 return &awpitrp, true 7766} 7767 7768// AsAzureWorkloadSAPHanaPointInTimeRecoveryPoint is the BasicRecoveryPoint implementation for AzureWorkloadPointInTimeRecoveryPoint. 7769func (awpitrp AzureWorkloadPointInTimeRecoveryPoint) AsAzureWorkloadSAPHanaPointInTimeRecoveryPoint() (*AzureWorkloadSAPHanaPointInTimeRecoveryPoint, bool) { 7770 return nil, false 7771} 7772 7773// AsAzureWorkloadSAPHanaRecoveryPoint is the BasicRecoveryPoint implementation for AzureWorkloadPointInTimeRecoveryPoint. 7774func (awpitrp AzureWorkloadPointInTimeRecoveryPoint) AsAzureWorkloadSAPHanaRecoveryPoint() (*AzureWorkloadSAPHanaRecoveryPoint, bool) { 7775 return nil, false 7776} 7777 7778// AsAzureWorkloadSQLPointInTimeRecoveryPoint is the BasicRecoveryPoint implementation for AzureWorkloadPointInTimeRecoveryPoint. 7779func (awpitrp AzureWorkloadPointInTimeRecoveryPoint) AsAzureWorkloadSQLPointInTimeRecoveryPoint() (*AzureWorkloadSQLPointInTimeRecoveryPoint, bool) { 7780 return nil, false 7781} 7782 7783// AsAzureWorkloadSQLRecoveryPoint is the BasicRecoveryPoint implementation for AzureWorkloadPointInTimeRecoveryPoint. 7784func (awpitrp AzureWorkloadPointInTimeRecoveryPoint) AsAzureWorkloadSQLRecoveryPoint() (*AzureWorkloadSQLRecoveryPoint, bool) { 7785 return nil, false 7786} 7787 7788// AsBasicAzureWorkloadSQLRecoveryPoint is the BasicRecoveryPoint implementation for AzureWorkloadPointInTimeRecoveryPoint. 7789func (awpitrp AzureWorkloadPointInTimeRecoveryPoint) AsBasicAzureWorkloadSQLRecoveryPoint() (BasicAzureWorkloadSQLRecoveryPoint, bool) { 7790 return nil, false 7791} 7792 7793// AsGenericRecoveryPoint is the BasicRecoveryPoint implementation for AzureWorkloadPointInTimeRecoveryPoint. 7794func (awpitrp AzureWorkloadPointInTimeRecoveryPoint) AsGenericRecoveryPoint() (*GenericRecoveryPoint, bool) { 7795 return nil, false 7796} 7797 7798// AsIaasVMRecoveryPoint is the BasicRecoveryPoint implementation for AzureWorkloadPointInTimeRecoveryPoint. 7799func (awpitrp AzureWorkloadPointInTimeRecoveryPoint) AsIaasVMRecoveryPoint() (*IaasVMRecoveryPoint, bool) { 7800 return nil, false 7801} 7802 7803// AsRecoveryPoint is the BasicRecoveryPoint implementation for AzureWorkloadPointInTimeRecoveryPoint. 7804func (awpitrp AzureWorkloadPointInTimeRecoveryPoint) AsRecoveryPoint() (*RecoveryPoint, bool) { 7805 return nil, false 7806} 7807 7808// AsBasicRecoveryPoint is the BasicRecoveryPoint implementation for AzureWorkloadPointInTimeRecoveryPoint. 7809func (awpitrp AzureWorkloadPointInTimeRecoveryPoint) AsBasicRecoveryPoint() (BasicRecoveryPoint, bool) { 7810 return &awpitrp, true 7811} 7812 7813// AzureWorkloadPointInTimeRestoreRequest azureWorkload SAP Hana -specific restore. Specifically for 7814// PointInTime/Log restore 7815type AzureWorkloadPointInTimeRestoreRequest struct { 7816 // PointInTime - PointInTime value 7817 PointInTime *date.Time `json:"pointInTime,omitempty"` 7818 // RecoveryType - Type of this recovery. Possible values include: 'RecoveryTypeInvalid', 'RecoveryTypeOriginalLocation', 'RecoveryTypeAlternateLocation', 'RecoveryTypeRestoreDisks', 'RecoveryTypeOffline' 7819 RecoveryType RecoveryType `json:"recoveryType,omitempty"` 7820 // SourceResourceID - Fully qualified ARM ID of the VM on which workload that was running is being recovered. 7821 SourceResourceID *string `json:"sourceResourceId,omitempty"` 7822 // PropertyBag - Workload specific property bag. 7823 PropertyBag map[string]*string `json:"propertyBag"` 7824 // TargetInfo - Details of target database 7825 TargetInfo *TargetRestoreInfo `json:"targetInfo,omitempty"` 7826 // RecoveryMode - Defines whether the current recovery mode is file restore or database restore. Possible values include: 'RecoveryModeInvalid', 'RecoveryModeFileRecovery', 'RecoveryModeWorkloadRecovery' 7827 RecoveryMode RecoveryMode `json:"recoveryMode,omitempty"` 7828 // ObjectType - Possible values include: 'ObjectTypeRestoreRequest', 'ObjectTypeAzureFileShareRestoreRequest', 'ObjectTypeAzureWorkloadPointInTimeRestoreRequest', 'ObjectTypeAzureWorkloadRestoreRequest', 'ObjectTypeAzureWorkloadSAPHanaPointInTimeRestoreRequest', 'ObjectTypeAzureWorkloadSAPHanaRestoreRequest', 'ObjectTypeAzureWorkloadSQLPointInTimeRestoreRequest', 'ObjectTypeAzureWorkloadSQLRestoreRequest', 'ObjectTypeIaasVMRestoreRequest' 7829 ObjectType ObjectTypeBasicRestoreRequest `json:"objectType,omitempty"` 7830} 7831 7832// MarshalJSON is the custom marshaler for AzureWorkloadPointInTimeRestoreRequest. 7833func (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// AsAzureFileShareRestoreRequest is the BasicRestoreRequest implementation for AzureWorkloadPointInTimeRestoreRequest. 7861func (awpitrr AzureWorkloadPointInTimeRestoreRequest) AsAzureFileShareRestoreRequest() (*AzureFileShareRestoreRequest, bool) { 7862 return nil, false 7863} 7864 7865// AsAzureWorkloadPointInTimeRestoreRequest is the BasicRestoreRequest implementation for AzureWorkloadPointInTimeRestoreRequest. 7866func (awpitrr AzureWorkloadPointInTimeRestoreRequest) AsAzureWorkloadPointInTimeRestoreRequest() (*AzureWorkloadPointInTimeRestoreRequest, bool) { 7867 return &awpitrr, true 7868} 7869 7870// AsAzureWorkloadRestoreRequest is the BasicRestoreRequest implementation for AzureWorkloadPointInTimeRestoreRequest. 7871func (awpitrr AzureWorkloadPointInTimeRestoreRequest) AsAzureWorkloadRestoreRequest() (*AzureWorkloadRestoreRequest, bool) { 7872 return nil, false 7873} 7874 7875// AsBasicAzureWorkloadRestoreRequest is the BasicRestoreRequest implementation for AzureWorkloadPointInTimeRestoreRequest. 7876func (awpitrr AzureWorkloadPointInTimeRestoreRequest) AsBasicAzureWorkloadRestoreRequest() (BasicAzureWorkloadRestoreRequest, bool) { 7877 return &awpitrr, true 7878} 7879 7880// AsAzureWorkloadSAPHanaPointInTimeRestoreRequest is the BasicRestoreRequest implementation for AzureWorkloadPointInTimeRestoreRequest. 7881func (awpitrr AzureWorkloadPointInTimeRestoreRequest) AsAzureWorkloadSAPHanaPointInTimeRestoreRequest() (*AzureWorkloadSAPHanaPointInTimeRestoreRequest, bool) { 7882 return nil, false 7883} 7884 7885// AsAzureWorkloadSAPHanaRestoreRequest is the BasicRestoreRequest implementation for AzureWorkloadPointInTimeRestoreRequest. 7886func (awpitrr AzureWorkloadPointInTimeRestoreRequest) AsAzureWorkloadSAPHanaRestoreRequest() (*AzureWorkloadSAPHanaRestoreRequest, bool) { 7887 return nil, false 7888} 7889 7890// AsBasicAzureWorkloadSAPHanaRestoreRequest is the BasicRestoreRequest implementation for AzureWorkloadPointInTimeRestoreRequest. 7891func (awpitrr AzureWorkloadPointInTimeRestoreRequest) AsBasicAzureWorkloadSAPHanaRestoreRequest() (BasicAzureWorkloadSAPHanaRestoreRequest, bool) { 7892 return nil, false 7893} 7894 7895// AsAzureWorkloadSQLPointInTimeRestoreRequest is the BasicRestoreRequest implementation for AzureWorkloadPointInTimeRestoreRequest. 7896func (awpitrr AzureWorkloadPointInTimeRestoreRequest) AsAzureWorkloadSQLPointInTimeRestoreRequest() (*AzureWorkloadSQLPointInTimeRestoreRequest, bool) { 7897 return nil, false 7898} 7899 7900// AsAzureWorkloadSQLRestoreRequest is the BasicRestoreRequest implementation for AzureWorkloadPointInTimeRestoreRequest. 7901func (awpitrr AzureWorkloadPointInTimeRestoreRequest) AsAzureWorkloadSQLRestoreRequest() (*AzureWorkloadSQLRestoreRequest, bool) { 7902 return nil, false 7903} 7904 7905// AsBasicAzureWorkloadSQLRestoreRequest is the BasicRestoreRequest implementation for AzureWorkloadPointInTimeRestoreRequest. 7906func (awpitrr AzureWorkloadPointInTimeRestoreRequest) AsBasicAzureWorkloadSQLRestoreRequest() (BasicAzureWorkloadSQLRestoreRequest, bool) { 7907 return nil, false 7908} 7909 7910// AsIaasVMRestoreRequest is the BasicRestoreRequest implementation for AzureWorkloadPointInTimeRestoreRequest. 7911func (awpitrr AzureWorkloadPointInTimeRestoreRequest) AsIaasVMRestoreRequest() (*IaasVMRestoreRequest, bool) { 7912 return nil, false 7913} 7914 7915// AsRestoreRequest is the BasicRestoreRequest implementation for AzureWorkloadPointInTimeRestoreRequest. 7916func (awpitrr AzureWorkloadPointInTimeRestoreRequest) AsRestoreRequest() (*RestoreRequest, bool) { 7917 return nil, false 7918} 7919 7920// AsBasicRestoreRequest is the BasicRestoreRequest implementation for AzureWorkloadPointInTimeRestoreRequest. 7921func (awpitrr AzureWorkloadPointInTimeRestoreRequest) AsBasicRestoreRequest() (BasicRestoreRequest, bool) { 7922 return &awpitrr, true 7923} 7924 7925// BasicAzureWorkloadRecoveryPoint workload specific recovery point, specifically encapsulates full/diff recovery point 7926type 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// AzureWorkloadRecoveryPoint workload specific recovery point, specifically encapsulates full/diff recovery 7938// point 7939type AzureWorkloadRecoveryPoint struct { 7940 // RecoveryPointTimeInUTC - READ-ONLY; UTC time at which recovery point was created 7941 RecoveryPointTimeInUTC *date.Time `json:"recoveryPointTimeInUTC,omitempty"` 7942 // Type - READ-ONLY; Type of restore point. Possible values include: 'RestorePointTypeInvalid', 'RestorePointTypeFull', 'RestorePointTypeLog', 'RestorePointTypeDifferential' 7943 Type RestorePointType `json:"type,omitempty"` 7944 // ObjectType - Possible values include: 'ObjectTypeRecoveryPoint', 'ObjectTypeAzureFileShareRecoveryPoint', 'ObjectTypeAzureWorkloadPointInTimeRecoveryPoint', 'ObjectTypeAzureWorkloadRecoveryPoint', 'ObjectTypeAzureWorkloadSAPHanaPointInTimeRecoveryPoint', 'ObjectTypeAzureWorkloadSAPHanaRecoveryPoint', 'ObjectTypeAzureWorkloadSQLPointInTimeRecoveryPoint', 'ObjectTypeAzureWorkloadSQLRecoveryPoint', 'ObjectTypeGenericRecoveryPoint', 'ObjectTypeIaasVMRecoveryPoint' 7945 ObjectType ObjectTypeBasicRecoveryPoint `json:"objectType,omitempty"` 7946} 7947 7948func 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} 7982func 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// MarshalJSON is the custom marshaler for AzureWorkloadRecoveryPoint. 8002func (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// AsAzureFileShareRecoveryPoint is the BasicRecoveryPoint implementation for AzureWorkloadRecoveryPoint. 8012func (awrp AzureWorkloadRecoveryPoint) AsAzureFileShareRecoveryPoint() (*AzureFileShareRecoveryPoint, bool) { 8013 return nil, false 8014} 8015 8016// AsAzureWorkloadPointInTimeRecoveryPoint is the BasicRecoveryPoint implementation for AzureWorkloadRecoveryPoint. 8017func (awrp AzureWorkloadRecoveryPoint) AsAzureWorkloadPointInTimeRecoveryPoint() (*AzureWorkloadPointInTimeRecoveryPoint, bool) { 8018 return nil, false 8019} 8020 8021// AsBasicAzureWorkloadPointInTimeRecoveryPoint is the BasicRecoveryPoint implementation for AzureWorkloadRecoveryPoint. 8022func (awrp AzureWorkloadRecoveryPoint) AsBasicAzureWorkloadPointInTimeRecoveryPoint() (BasicAzureWorkloadPointInTimeRecoveryPoint, bool) { 8023 return nil, false 8024} 8025 8026// AsAzureWorkloadRecoveryPoint is the BasicRecoveryPoint implementation for AzureWorkloadRecoveryPoint. 8027func (awrp AzureWorkloadRecoveryPoint) AsAzureWorkloadRecoveryPoint() (*AzureWorkloadRecoveryPoint, bool) { 8028 return &awrp, true 8029} 8030 8031// AsBasicAzureWorkloadRecoveryPoint is the BasicRecoveryPoint implementation for AzureWorkloadRecoveryPoint. 8032func (awrp AzureWorkloadRecoveryPoint) AsBasicAzureWorkloadRecoveryPoint() (BasicAzureWorkloadRecoveryPoint, bool) { 8033 return &awrp, true 8034} 8035 8036// AsAzureWorkloadSAPHanaPointInTimeRecoveryPoint is the BasicRecoveryPoint implementation for AzureWorkloadRecoveryPoint. 8037func (awrp AzureWorkloadRecoveryPoint) AsAzureWorkloadSAPHanaPointInTimeRecoveryPoint() (*AzureWorkloadSAPHanaPointInTimeRecoveryPoint, bool) { 8038 return nil, false 8039} 8040 8041// AsAzureWorkloadSAPHanaRecoveryPoint is the BasicRecoveryPoint implementation for AzureWorkloadRecoveryPoint. 8042func (awrp AzureWorkloadRecoveryPoint) AsAzureWorkloadSAPHanaRecoveryPoint() (*AzureWorkloadSAPHanaRecoveryPoint, bool) { 8043 return nil, false 8044} 8045 8046// AsAzureWorkloadSQLPointInTimeRecoveryPoint is the BasicRecoveryPoint implementation for AzureWorkloadRecoveryPoint. 8047func (awrp AzureWorkloadRecoveryPoint) AsAzureWorkloadSQLPointInTimeRecoveryPoint() (*AzureWorkloadSQLPointInTimeRecoveryPoint, bool) { 8048 return nil, false 8049} 8050 8051// AsAzureWorkloadSQLRecoveryPoint is the BasicRecoveryPoint implementation for AzureWorkloadRecoveryPoint. 8052func (awrp AzureWorkloadRecoveryPoint) AsAzureWorkloadSQLRecoveryPoint() (*AzureWorkloadSQLRecoveryPoint, bool) { 8053 return nil, false 8054} 8055 8056// AsBasicAzureWorkloadSQLRecoveryPoint is the BasicRecoveryPoint implementation for AzureWorkloadRecoveryPoint. 8057func (awrp AzureWorkloadRecoveryPoint) AsBasicAzureWorkloadSQLRecoveryPoint() (BasicAzureWorkloadSQLRecoveryPoint, bool) { 8058 return nil, false 8059} 8060 8061// AsGenericRecoveryPoint is the BasicRecoveryPoint implementation for AzureWorkloadRecoveryPoint. 8062func (awrp AzureWorkloadRecoveryPoint) AsGenericRecoveryPoint() (*GenericRecoveryPoint, bool) { 8063 return nil, false 8064} 8065 8066// AsIaasVMRecoveryPoint is the BasicRecoveryPoint implementation for AzureWorkloadRecoveryPoint. 8067func (awrp AzureWorkloadRecoveryPoint) AsIaasVMRecoveryPoint() (*IaasVMRecoveryPoint, bool) { 8068 return nil, false 8069} 8070 8071// AsRecoveryPoint is the BasicRecoveryPoint implementation for AzureWorkloadRecoveryPoint. 8072func (awrp AzureWorkloadRecoveryPoint) AsRecoveryPoint() (*RecoveryPoint, bool) { 8073 return nil, false 8074} 8075 8076// AsBasicRecoveryPoint is the BasicRecoveryPoint implementation for AzureWorkloadRecoveryPoint. 8077func (awrp AzureWorkloadRecoveryPoint) AsBasicRecoveryPoint() (BasicRecoveryPoint, bool) { 8078 return &awrp, true 8079} 8080 8081// BasicAzureWorkloadRestoreRequest azureWorkload-specific restore. 8082type 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// AzureWorkloadRestoreRequest azureWorkload-specific restore. 8094type AzureWorkloadRestoreRequest struct { 8095 // RecoveryType - Type of this recovery. Possible values include: 'RecoveryTypeInvalid', 'RecoveryTypeOriginalLocation', 'RecoveryTypeAlternateLocation', 'RecoveryTypeRestoreDisks', 'RecoveryTypeOffline' 8096 RecoveryType RecoveryType `json:"recoveryType,omitempty"` 8097 // SourceResourceID - Fully qualified ARM ID of the VM on which workload that was running is being recovered. 8098 SourceResourceID *string `json:"sourceResourceId,omitempty"` 8099 // PropertyBag - Workload specific property bag. 8100 PropertyBag map[string]*string `json:"propertyBag"` 8101 // TargetInfo - Details of target database 8102 TargetInfo *TargetRestoreInfo `json:"targetInfo,omitempty"` 8103 // RecoveryMode - Defines whether the current recovery mode is file restore or database restore. Possible values include: 'RecoveryModeInvalid', 'RecoveryModeFileRecovery', 'RecoveryModeWorkloadRecovery' 8104 RecoveryMode RecoveryMode `json:"recoveryMode,omitempty"` 8105 // ObjectType - Possible values include: 'ObjectTypeRestoreRequest', 'ObjectTypeAzureFileShareRestoreRequest', 'ObjectTypeAzureWorkloadPointInTimeRestoreRequest', 'ObjectTypeAzureWorkloadRestoreRequest', 'ObjectTypeAzureWorkloadSAPHanaPointInTimeRestoreRequest', 'ObjectTypeAzureWorkloadSAPHanaRestoreRequest', 'ObjectTypeAzureWorkloadSQLPointInTimeRestoreRequest', 'ObjectTypeAzureWorkloadSQLRestoreRequest', 'ObjectTypeIaasVMRestoreRequest' 8106 ObjectType ObjectTypeBasicRestoreRequest `json:"objectType,omitempty"` 8107} 8108 8109func 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} 8143func 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// MarshalJSON is the custom marshaler for AzureWorkloadRestoreRequest. 8163func (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// AsAzureFileShareRestoreRequest is the BasicRestoreRequest implementation for AzureWorkloadRestoreRequest. 8188func (awrr AzureWorkloadRestoreRequest) AsAzureFileShareRestoreRequest() (*AzureFileShareRestoreRequest, bool) { 8189 return nil, false 8190} 8191 8192// AsAzureWorkloadPointInTimeRestoreRequest is the BasicRestoreRequest implementation for AzureWorkloadRestoreRequest. 8193func (awrr AzureWorkloadRestoreRequest) AsAzureWorkloadPointInTimeRestoreRequest() (*AzureWorkloadPointInTimeRestoreRequest, bool) { 8194 return nil, false 8195} 8196 8197// AsAzureWorkloadRestoreRequest is the BasicRestoreRequest implementation for AzureWorkloadRestoreRequest. 8198func (awrr AzureWorkloadRestoreRequest) AsAzureWorkloadRestoreRequest() (*AzureWorkloadRestoreRequest, bool) { 8199 return &awrr, true 8200} 8201 8202// AsBasicAzureWorkloadRestoreRequest is the BasicRestoreRequest implementation for AzureWorkloadRestoreRequest. 8203func (awrr AzureWorkloadRestoreRequest) AsBasicAzureWorkloadRestoreRequest() (BasicAzureWorkloadRestoreRequest, bool) { 8204 return &awrr, true 8205} 8206 8207// AsAzureWorkloadSAPHanaPointInTimeRestoreRequest is the BasicRestoreRequest implementation for AzureWorkloadRestoreRequest. 8208func (awrr AzureWorkloadRestoreRequest) AsAzureWorkloadSAPHanaPointInTimeRestoreRequest() (*AzureWorkloadSAPHanaPointInTimeRestoreRequest, bool) { 8209 return nil, false 8210} 8211 8212// AsAzureWorkloadSAPHanaRestoreRequest is the BasicRestoreRequest implementation for AzureWorkloadRestoreRequest. 8213func (awrr AzureWorkloadRestoreRequest) AsAzureWorkloadSAPHanaRestoreRequest() (*AzureWorkloadSAPHanaRestoreRequest, bool) { 8214 return nil, false 8215} 8216 8217// AsBasicAzureWorkloadSAPHanaRestoreRequest is the BasicRestoreRequest implementation for AzureWorkloadRestoreRequest. 8218func (awrr AzureWorkloadRestoreRequest) AsBasicAzureWorkloadSAPHanaRestoreRequest() (BasicAzureWorkloadSAPHanaRestoreRequest, bool) { 8219 return nil, false 8220} 8221 8222// AsAzureWorkloadSQLPointInTimeRestoreRequest is the BasicRestoreRequest implementation for AzureWorkloadRestoreRequest. 8223func (awrr AzureWorkloadRestoreRequest) AsAzureWorkloadSQLPointInTimeRestoreRequest() (*AzureWorkloadSQLPointInTimeRestoreRequest, bool) { 8224 return nil, false 8225} 8226 8227// AsAzureWorkloadSQLRestoreRequest is the BasicRestoreRequest implementation for AzureWorkloadRestoreRequest. 8228func (awrr AzureWorkloadRestoreRequest) AsAzureWorkloadSQLRestoreRequest() (*AzureWorkloadSQLRestoreRequest, bool) { 8229 return nil, false 8230} 8231 8232// AsBasicAzureWorkloadSQLRestoreRequest is the BasicRestoreRequest implementation for AzureWorkloadRestoreRequest. 8233func (awrr AzureWorkloadRestoreRequest) AsBasicAzureWorkloadSQLRestoreRequest() (BasicAzureWorkloadSQLRestoreRequest, bool) { 8234 return nil, false 8235} 8236 8237// AsIaasVMRestoreRequest is the BasicRestoreRequest implementation for AzureWorkloadRestoreRequest. 8238func (awrr AzureWorkloadRestoreRequest) AsIaasVMRestoreRequest() (*IaasVMRestoreRequest, bool) { 8239 return nil, false 8240} 8241 8242// AsRestoreRequest is the BasicRestoreRequest implementation for AzureWorkloadRestoreRequest. 8243func (awrr AzureWorkloadRestoreRequest) AsRestoreRequest() (*RestoreRequest, bool) { 8244 return nil, false 8245} 8246 8247// AsBasicRestoreRequest is the BasicRestoreRequest implementation for AzureWorkloadRestoreRequest. 8248func (awrr AzureWorkloadRestoreRequest) AsBasicRestoreRequest() (BasicRestoreRequest, bool) { 8249 return &awrr, true 8250} 8251 8252// AzureWorkloadSAPHanaPointInTimeRecoveryPoint recovery point specific to PointInTime in SAPHana 8253type AzureWorkloadSAPHanaPointInTimeRecoveryPoint struct { 8254 // TimeRanges - List of log ranges 8255 TimeRanges *[]PointInTimeRange `json:"timeRanges,omitempty"` 8256 // RecoveryPointTimeInUTC - READ-ONLY; UTC time at which recovery point was created 8257 RecoveryPointTimeInUTC *date.Time `json:"recoveryPointTimeInUTC,omitempty"` 8258 // Type - READ-ONLY; Type of restore point. Possible values include: 'RestorePointTypeInvalid', 'RestorePointTypeFull', 'RestorePointTypeLog', 'RestorePointTypeDifferential' 8259 Type RestorePointType `json:"type,omitempty"` 8260 // ObjectType - Possible values include: 'ObjectTypeRecoveryPoint', 'ObjectTypeAzureFileShareRecoveryPoint', 'ObjectTypeAzureWorkloadPointInTimeRecoveryPoint', 'ObjectTypeAzureWorkloadRecoveryPoint', 'ObjectTypeAzureWorkloadSAPHanaPointInTimeRecoveryPoint', 'ObjectTypeAzureWorkloadSAPHanaRecoveryPoint', 'ObjectTypeAzureWorkloadSQLPointInTimeRecoveryPoint', 'ObjectTypeAzureWorkloadSQLRecoveryPoint', 'ObjectTypeGenericRecoveryPoint', 'ObjectTypeIaasVMRecoveryPoint' 8261 ObjectType ObjectTypeBasicRecoveryPoint `json:"objectType,omitempty"` 8262} 8263 8264// MarshalJSON is the custom marshaler for AzureWorkloadSAPHanaPointInTimeRecoveryPoint. 8265func (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// AsAzureFileShareRecoveryPoint is the BasicRecoveryPoint implementation for AzureWorkloadSAPHanaPointInTimeRecoveryPoint. 8278func (awshpitrp AzureWorkloadSAPHanaPointInTimeRecoveryPoint) AsAzureFileShareRecoveryPoint() (*AzureFileShareRecoveryPoint, bool) { 8279 return nil, false 8280} 8281 8282// AsAzureWorkloadPointInTimeRecoveryPoint is the BasicRecoveryPoint implementation for AzureWorkloadSAPHanaPointInTimeRecoveryPoint. 8283func (awshpitrp AzureWorkloadSAPHanaPointInTimeRecoveryPoint) AsAzureWorkloadPointInTimeRecoveryPoint() (*AzureWorkloadPointInTimeRecoveryPoint, bool) { 8284 return nil, false 8285} 8286 8287// AsBasicAzureWorkloadPointInTimeRecoveryPoint is the BasicRecoveryPoint implementation for AzureWorkloadSAPHanaPointInTimeRecoveryPoint. 8288func (awshpitrp AzureWorkloadSAPHanaPointInTimeRecoveryPoint) AsBasicAzureWorkloadPointInTimeRecoveryPoint() (BasicAzureWorkloadPointInTimeRecoveryPoint, bool) { 8289 return &awshpitrp, true 8290} 8291 8292// AsAzureWorkloadRecoveryPoint is the BasicRecoveryPoint implementation for AzureWorkloadSAPHanaPointInTimeRecoveryPoint. 8293func (awshpitrp AzureWorkloadSAPHanaPointInTimeRecoveryPoint) AsAzureWorkloadRecoveryPoint() (*AzureWorkloadRecoveryPoint, bool) { 8294 return nil, false 8295} 8296 8297// AsBasicAzureWorkloadRecoveryPoint is the BasicRecoveryPoint implementation for AzureWorkloadSAPHanaPointInTimeRecoveryPoint. 8298func (awshpitrp AzureWorkloadSAPHanaPointInTimeRecoveryPoint) AsBasicAzureWorkloadRecoveryPoint() (BasicAzureWorkloadRecoveryPoint, bool) { 8299 return &awshpitrp, true 8300} 8301 8302// AsAzureWorkloadSAPHanaPointInTimeRecoveryPoint is the BasicRecoveryPoint implementation for AzureWorkloadSAPHanaPointInTimeRecoveryPoint. 8303func (awshpitrp AzureWorkloadSAPHanaPointInTimeRecoveryPoint) AsAzureWorkloadSAPHanaPointInTimeRecoveryPoint() (*AzureWorkloadSAPHanaPointInTimeRecoveryPoint, bool) { 8304 return &awshpitrp, true 8305} 8306 8307// AsAzureWorkloadSAPHanaRecoveryPoint is the BasicRecoveryPoint implementation for AzureWorkloadSAPHanaPointInTimeRecoveryPoint. 8308func (awshpitrp AzureWorkloadSAPHanaPointInTimeRecoveryPoint) AsAzureWorkloadSAPHanaRecoveryPoint() (*AzureWorkloadSAPHanaRecoveryPoint, bool) { 8309 return nil, false 8310} 8311 8312// AsAzureWorkloadSQLPointInTimeRecoveryPoint is the BasicRecoveryPoint implementation for AzureWorkloadSAPHanaPointInTimeRecoveryPoint. 8313func (awshpitrp AzureWorkloadSAPHanaPointInTimeRecoveryPoint) AsAzureWorkloadSQLPointInTimeRecoveryPoint() (*AzureWorkloadSQLPointInTimeRecoveryPoint, bool) { 8314 return nil, false 8315} 8316 8317// AsAzureWorkloadSQLRecoveryPoint is the BasicRecoveryPoint implementation for AzureWorkloadSAPHanaPointInTimeRecoveryPoint. 8318func (awshpitrp AzureWorkloadSAPHanaPointInTimeRecoveryPoint) AsAzureWorkloadSQLRecoveryPoint() (*AzureWorkloadSQLRecoveryPoint, bool) { 8319 return nil, false 8320} 8321 8322// AsBasicAzureWorkloadSQLRecoveryPoint is the BasicRecoveryPoint implementation for AzureWorkloadSAPHanaPointInTimeRecoveryPoint. 8323func (awshpitrp AzureWorkloadSAPHanaPointInTimeRecoveryPoint) AsBasicAzureWorkloadSQLRecoveryPoint() (BasicAzureWorkloadSQLRecoveryPoint, bool) { 8324 return nil, false 8325} 8326 8327// AsGenericRecoveryPoint is the BasicRecoveryPoint implementation for AzureWorkloadSAPHanaPointInTimeRecoveryPoint. 8328func (awshpitrp AzureWorkloadSAPHanaPointInTimeRecoveryPoint) AsGenericRecoveryPoint() (*GenericRecoveryPoint, bool) { 8329 return nil, false 8330} 8331 8332// AsIaasVMRecoveryPoint is the BasicRecoveryPoint implementation for AzureWorkloadSAPHanaPointInTimeRecoveryPoint. 8333func (awshpitrp AzureWorkloadSAPHanaPointInTimeRecoveryPoint) AsIaasVMRecoveryPoint() (*IaasVMRecoveryPoint, bool) { 8334 return nil, false 8335} 8336 8337// AsRecoveryPoint is the BasicRecoveryPoint implementation for AzureWorkloadSAPHanaPointInTimeRecoveryPoint. 8338func (awshpitrp AzureWorkloadSAPHanaPointInTimeRecoveryPoint) AsRecoveryPoint() (*RecoveryPoint, bool) { 8339 return nil, false 8340} 8341 8342// AsBasicRecoveryPoint is the BasicRecoveryPoint implementation for AzureWorkloadSAPHanaPointInTimeRecoveryPoint. 8343func (awshpitrp AzureWorkloadSAPHanaPointInTimeRecoveryPoint) AsBasicRecoveryPoint() (BasicRecoveryPoint, bool) { 8344 return &awshpitrp, true 8345} 8346 8347// AzureWorkloadSAPHanaPointInTimeRestoreRequest azureWorkload SAP Hana -specific restore. Specifically for 8348// PointInTime/Log restore 8349type AzureWorkloadSAPHanaPointInTimeRestoreRequest struct { 8350 // PointInTime - PointInTime value 8351 PointInTime *date.Time `json:"pointInTime,omitempty"` 8352 // RecoveryType - Type of this recovery. Possible values include: 'RecoveryTypeInvalid', 'RecoveryTypeOriginalLocation', 'RecoveryTypeAlternateLocation', 'RecoveryTypeRestoreDisks', 'RecoveryTypeOffline' 8353 RecoveryType RecoveryType `json:"recoveryType,omitempty"` 8354 // SourceResourceID - Fully qualified ARM ID of the VM on which workload that was running is being recovered. 8355 SourceResourceID *string `json:"sourceResourceId,omitempty"` 8356 // PropertyBag - Workload specific property bag. 8357 PropertyBag map[string]*string `json:"propertyBag"` 8358 // TargetInfo - Details of target database 8359 TargetInfo *TargetRestoreInfo `json:"targetInfo,omitempty"` 8360 // RecoveryMode - Defines whether the current recovery mode is file restore or database restore. Possible values include: 'RecoveryModeInvalid', 'RecoveryModeFileRecovery', 'RecoveryModeWorkloadRecovery' 8361 RecoveryMode RecoveryMode `json:"recoveryMode,omitempty"` 8362 // ObjectType - Possible values include: 'ObjectTypeRestoreRequest', 'ObjectTypeAzureFileShareRestoreRequest', 'ObjectTypeAzureWorkloadPointInTimeRestoreRequest', 'ObjectTypeAzureWorkloadRestoreRequest', 'ObjectTypeAzureWorkloadSAPHanaPointInTimeRestoreRequest', 'ObjectTypeAzureWorkloadSAPHanaRestoreRequest', 'ObjectTypeAzureWorkloadSQLPointInTimeRestoreRequest', 'ObjectTypeAzureWorkloadSQLRestoreRequest', 'ObjectTypeIaasVMRestoreRequest' 8363 ObjectType ObjectTypeBasicRestoreRequest `json:"objectType,omitempty"` 8364} 8365 8366// MarshalJSON is the custom marshaler for AzureWorkloadSAPHanaPointInTimeRestoreRequest. 8367func (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// AsAzureFileShareRestoreRequest is the BasicRestoreRequest implementation for AzureWorkloadSAPHanaPointInTimeRestoreRequest. 8395func (awshpitrr AzureWorkloadSAPHanaPointInTimeRestoreRequest) AsAzureFileShareRestoreRequest() (*AzureFileShareRestoreRequest, bool) { 8396 return nil, false 8397} 8398 8399// AsAzureWorkloadPointInTimeRestoreRequest is the BasicRestoreRequest implementation for AzureWorkloadSAPHanaPointInTimeRestoreRequest. 8400func (awshpitrr AzureWorkloadSAPHanaPointInTimeRestoreRequest) AsAzureWorkloadPointInTimeRestoreRequest() (*AzureWorkloadPointInTimeRestoreRequest, bool) { 8401 return nil, false 8402} 8403 8404// AsAzureWorkloadRestoreRequest is the BasicRestoreRequest implementation for AzureWorkloadSAPHanaPointInTimeRestoreRequest. 8405func (awshpitrr AzureWorkloadSAPHanaPointInTimeRestoreRequest) AsAzureWorkloadRestoreRequest() (*AzureWorkloadRestoreRequest, bool) { 8406 return nil, false 8407} 8408 8409// AsBasicAzureWorkloadRestoreRequest is the BasicRestoreRequest implementation for AzureWorkloadSAPHanaPointInTimeRestoreRequest. 8410func (awshpitrr AzureWorkloadSAPHanaPointInTimeRestoreRequest) AsBasicAzureWorkloadRestoreRequest() (BasicAzureWorkloadRestoreRequest, bool) { 8411 return &awshpitrr, true 8412} 8413 8414// AsAzureWorkloadSAPHanaPointInTimeRestoreRequest is the BasicRestoreRequest implementation for AzureWorkloadSAPHanaPointInTimeRestoreRequest. 8415func (awshpitrr AzureWorkloadSAPHanaPointInTimeRestoreRequest) AsAzureWorkloadSAPHanaPointInTimeRestoreRequest() (*AzureWorkloadSAPHanaPointInTimeRestoreRequest, bool) { 8416 return &awshpitrr, true 8417} 8418 8419// AsAzureWorkloadSAPHanaRestoreRequest is the BasicRestoreRequest implementation for AzureWorkloadSAPHanaPointInTimeRestoreRequest. 8420func (awshpitrr AzureWorkloadSAPHanaPointInTimeRestoreRequest) AsAzureWorkloadSAPHanaRestoreRequest() (*AzureWorkloadSAPHanaRestoreRequest, bool) { 8421 return nil, false 8422} 8423 8424// AsBasicAzureWorkloadSAPHanaRestoreRequest is the BasicRestoreRequest implementation for AzureWorkloadSAPHanaPointInTimeRestoreRequest. 8425func (awshpitrr AzureWorkloadSAPHanaPointInTimeRestoreRequest) AsBasicAzureWorkloadSAPHanaRestoreRequest() (BasicAzureWorkloadSAPHanaRestoreRequest, bool) { 8426 return &awshpitrr, true 8427} 8428 8429// AsAzureWorkloadSQLPointInTimeRestoreRequest is the BasicRestoreRequest implementation for AzureWorkloadSAPHanaPointInTimeRestoreRequest. 8430func (awshpitrr AzureWorkloadSAPHanaPointInTimeRestoreRequest) AsAzureWorkloadSQLPointInTimeRestoreRequest() (*AzureWorkloadSQLPointInTimeRestoreRequest, bool) { 8431 return nil, false 8432} 8433 8434// AsAzureWorkloadSQLRestoreRequest is the BasicRestoreRequest implementation for AzureWorkloadSAPHanaPointInTimeRestoreRequest. 8435func (awshpitrr AzureWorkloadSAPHanaPointInTimeRestoreRequest) AsAzureWorkloadSQLRestoreRequest() (*AzureWorkloadSQLRestoreRequest, bool) { 8436 return nil, false 8437} 8438 8439// AsBasicAzureWorkloadSQLRestoreRequest is the BasicRestoreRequest implementation for AzureWorkloadSAPHanaPointInTimeRestoreRequest. 8440func (awshpitrr AzureWorkloadSAPHanaPointInTimeRestoreRequest) AsBasicAzureWorkloadSQLRestoreRequest() (BasicAzureWorkloadSQLRestoreRequest, bool) { 8441 return nil, false 8442} 8443 8444// AsIaasVMRestoreRequest is the BasicRestoreRequest implementation for AzureWorkloadSAPHanaPointInTimeRestoreRequest. 8445func (awshpitrr AzureWorkloadSAPHanaPointInTimeRestoreRequest) AsIaasVMRestoreRequest() (*IaasVMRestoreRequest, bool) { 8446 return nil, false 8447} 8448 8449// AsRestoreRequest is the BasicRestoreRequest implementation for AzureWorkloadSAPHanaPointInTimeRestoreRequest. 8450func (awshpitrr AzureWorkloadSAPHanaPointInTimeRestoreRequest) AsRestoreRequest() (*RestoreRequest, bool) { 8451 return nil, false 8452} 8453 8454// AsBasicRestoreRequest is the BasicRestoreRequest implementation for AzureWorkloadSAPHanaPointInTimeRestoreRequest. 8455func (awshpitrr AzureWorkloadSAPHanaPointInTimeRestoreRequest) AsBasicRestoreRequest() (BasicRestoreRequest, bool) { 8456 return &awshpitrr, true 8457} 8458 8459// AzureWorkloadSAPHanaRecoveryPoint sAPHana specific recoverypoint, specifically encapsulates full/diff 8460// recoverypoints 8461type AzureWorkloadSAPHanaRecoveryPoint struct { 8462 // RecoveryPointTimeInUTC - READ-ONLY; UTC time at which recovery point was created 8463 RecoveryPointTimeInUTC *date.Time `json:"recoveryPointTimeInUTC,omitempty"` 8464 // Type - READ-ONLY; Type of restore point. Possible values include: 'RestorePointTypeInvalid', 'RestorePointTypeFull', 'RestorePointTypeLog', 'RestorePointTypeDifferential' 8465 Type RestorePointType `json:"type,omitempty"` 8466 // ObjectType - Possible values include: 'ObjectTypeRecoveryPoint', 'ObjectTypeAzureFileShareRecoveryPoint', 'ObjectTypeAzureWorkloadPointInTimeRecoveryPoint', 'ObjectTypeAzureWorkloadRecoveryPoint', 'ObjectTypeAzureWorkloadSAPHanaPointInTimeRecoveryPoint', 'ObjectTypeAzureWorkloadSAPHanaRecoveryPoint', 'ObjectTypeAzureWorkloadSQLPointInTimeRecoveryPoint', 'ObjectTypeAzureWorkloadSQLRecoveryPoint', 'ObjectTypeGenericRecoveryPoint', 'ObjectTypeIaasVMRecoveryPoint' 8467 ObjectType ObjectTypeBasicRecoveryPoint `json:"objectType,omitempty"` 8468} 8469 8470// MarshalJSON is the custom marshaler for AzureWorkloadSAPHanaRecoveryPoint. 8471func (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// AsAzureFileShareRecoveryPoint is the BasicRecoveryPoint implementation for AzureWorkloadSAPHanaRecoveryPoint. 8481func (awshrp AzureWorkloadSAPHanaRecoveryPoint) AsAzureFileShareRecoveryPoint() (*AzureFileShareRecoveryPoint, bool) { 8482 return nil, false 8483} 8484 8485// AsAzureWorkloadPointInTimeRecoveryPoint is the BasicRecoveryPoint implementation for AzureWorkloadSAPHanaRecoveryPoint. 8486func (awshrp AzureWorkloadSAPHanaRecoveryPoint) AsAzureWorkloadPointInTimeRecoveryPoint() (*AzureWorkloadPointInTimeRecoveryPoint, bool) { 8487 return nil, false 8488} 8489 8490// AsBasicAzureWorkloadPointInTimeRecoveryPoint is the BasicRecoveryPoint implementation for AzureWorkloadSAPHanaRecoveryPoint. 8491func (awshrp AzureWorkloadSAPHanaRecoveryPoint) AsBasicAzureWorkloadPointInTimeRecoveryPoint() (BasicAzureWorkloadPointInTimeRecoveryPoint, bool) { 8492 return nil, false 8493} 8494 8495// AsAzureWorkloadRecoveryPoint is the BasicRecoveryPoint implementation for AzureWorkloadSAPHanaRecoveryPoint. 8496func (awshrp AzureWorkloadSAPHanaRecoveryPoint) AsAzureWorkloadRecoveryPoint() (*AzureWorkloadRecoveryPoint, bool) { 8497 return nil, false 8498} 8499 8500// AsBasicAzureWorkloadRecoveryPoint is the BasicRecoveryPoint implementation for AzureWorkloadSAPHanaRecoveryPoint. 8501func (awshrp AzureWorkloadSAPHanaRecoveryPoint) AsBasicAzureWorkloadRecoveryPoint() (BasicAzureWorkloadRecoveryPoint, bool) { 8502 return &awshrp, true 8503} 8504 8505// AsAzureWorkloadSAPHanaPointInTimeRecoveryPoint is the BasicRecoveryPoint implementation for AzureWorkloadSAPHanaRecoveryPoint. 8506func (awshrp AzureWorkloadSAPHanaRecoveryPoint) AsAzureWorkloadSAPHanaPointInTimeRecoveryPoint() (*AzureWorkloadSAPHanaPointInTimeRecoveryPoint, bool) { 8507 return nil, false 8508} 8509 8510// AsAzureWorkloadSAPHanaRecoveryPoint is the BasicRecoveryPoint implementation for AzureWorkloadSAPHanaRecoveryPoint. 8511func (awshrp AzureWorkloadSAPHanaRecoveryPoint) AsAzureWorkloadSAPHanaRecoveryPoint() (*AzureWorkloadSAPHanaRecoveryPoint, bool) { 8512 return &awshrp, true 8513} 8514 8515// AsAzureWorkloadSQLPointInTimeRecoveryPoint is the BasicRecoveryPoint implementation for AzureWorkloadSAPHanaRecoveryPoint. 8516func (awshrp AzureWorkloadSAPHanaRecoveryPoint) AsAzureWorkloadSQLPointInTimeRecoveryPoint() (*AzureWorkloadSQLPointInTimeRecoveryPoint, bool) { 8517 return nil, false 8518} 8519 8520// AsAzureWorkloadSQLRecoveryPoint is the BasicRecoveryPoint implementation for AzureWorkloadSAPHanaRecoveryPoint. 8521func (awshrp AzureWorkloadSAPHanaRecoveryPoint) AsAzureWorkloadSQLRecoveryPoint() (*AzureWorkloadSQLRecoveryPoint, bool) { 8522 return nil, false 8523} 8524 8525// AsBasicAzureWorkloadSQLRecoveryPoint is the BasicRecoveryPoint implementation for AzureWorkloadSAPHanaRecoveryPoint. 8526func (awshrp AzureWorkloadSAPHanaRecoveryPoint) AsBasicAzureWorkloadSQLRecoveryPoint() (BasicAzureWorkloadSQLRecoveryPoint, bool) { 8527 return nil, false 8528} 8529 8530// AsGenericRecoveryPoint is the BasicRecoveryPoint implementation for AzureWorkloadSAPHanaRecoveryPoint. 8531func (awshrp AzureWorkloadSAPHanaRecoveryPoint) AsGenericRecoveryPoint() (*GenericRecoveryPoint, bool) { 8532 return nil, false 8533} 8534 8535// AsIaasVMRecoveryPoint is the BasicRecoveryPoint implementation for AzureWorkloadSAPHanaRecoveryPoint. 8536func (awshrp AzureWorkloadSAPHanaRecoveryPoint) AsIaasVMRecoveryPoint() (*IaasVMRecoveryPoint, bool) { 8537 return nil, false 8538} 8539 8540// AsRecoveryPoint is the BasicRecoveryPoint implementation for AzureWorkloadSAPHanaRecoveryPoint. 8541func (awshrp AzureWorkloadSAPHanaRecoveryPoint) AsRecoveryPoint() (*RecoveryPoint, bool) { 8542 return nil, false 8543} 8544 8545// AsBasicRecoveryPoint is the BasicRecoveryPoint implementation for AzureWorkloadSAPHanaRecoveryPoint. 8546func (awshrp AzureWorkloadSAPHanaRecoveryPoint) AsBasicRecoveryPoint() (BasicRecoveryPoint, bool) { 8547 return &awshrp, true 8548} 8549 8550// BasicAzureWorkloadSAPHanaRestoreRequest azureWorkload SAP Hana-specific restore. 8551type BasicAzureWorkloadSAPHanaRestoreRequest interface { 8552 AsAzureWorkloadSAPHanaPointInTimeRestoreRequest() (*AzureWorkloadSAPHanaPointInTimeRestoreRequest, bool) 8553 AsAzureWorkloadSAPHanaRestoreRequest() (*AzureWorkloadSAPHanaRestoreRequest, bool) 8554} 8555 8556// AzureWorkloadSAPHanaRestoreRequest azureWorkload SAP Hana-specific restore. 8557type AzureWorkloadSAPHanaRestoreRequest struct { 8558 // RecoveryType - Type of this recovery. Possible values include: 'RecoveryTypeInvalid', 'RecoveryTypeOriginalLocation', 'RecoveryTypeAlternateLocation', 'RecoveryTypeRestoreDisks', 'RecoveryTypeOffline' 8559 RecoveryType RecoveryType `json:"recoveryType,omitempty"` 8560 // SourceResourceID - Fully qualified ARM ID of the VM on which workload that was running is being recovered. 8561 SourceResourceID *string `json:"sourceResourceId,omitempty"` 8562 // PropertyBag - Workload specific property bag. 8563 PropertyBag map[string]*string `json:"propertyBag"` 8564 // TargetInfo - Details of target database 8565 TargetInfo *TargetRestoreInfo `json:"targetInfo,omitempty"` 8566 // RecoveryMode - Defines whether the current recovery mode is file restore or database restore. Possible values include: 'RecoveryModeInvalid', 'RecoveryModeFileRecovery', 'RecoveryModeWorkloadRecovery' 8567 RecoveryMode RecoveryMode `json:"recoveryMode,omitempty"` 8568 // ObjectType - Possible values include: 'ObjectTypeRestoreRequest', 'ObjectTypeAzureFileShareRestoreRequest', 'ObjectTypeAzureWorkloadPointInTimeRestoreRequest', 'ObjectTypeAzureWorkloadRestoreRequest', 'ObjectTypeAzureWorkloadSAPHanaPointInTimeRestoreRequest', 'ObjectTypeAzureWorkloadSAPHanaRestoreRequest', 'ObjectTypeAzureWorkloadSQLPointInTimeRestoreRequest', 'ObjectTypeAzureWorkloadSQLRestoreRequest', 'ObjectTypeIaasVMRestoreRequest' 8569 ObjectType ObjectTypeBasicRestoreRequest `json:"objectType,omitempty"` 8570} 8571 8572func 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} 8590func 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// MarshalJSON is the custom marshaler for AzureWorkloadSAPHanaRestoreRequest. 8610func (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// AsAzureFileShareRestoreRequest is the BasicRestoreRequest implementation for AzureWorkloadSAPHanaRestoreRequest. 8635func (awshrr AzureWorkloadSAPHanaRestoreRequest) AsAzureFileShareRestoreRequest() (*AzureFileShareRestoreRequest, bool) { 8636 return nil, false 8637} 8638 8639// AsAzureWorkloadPointInTimeRestoreRequest is the BasicRestoreRequest implementation for AzureWorkloadSAPHanaRestoreRequest. 8640func (awshrr AzureWorkloadSAPHanaRestoreRequest) AsAzureWorkloadPointInTimeRestoreRequest() (*AzureWorkloadPointInTimeRestoreRequest, bool) { 8641 return nil, false 8642} 8643 8644// AsAzureWorkloadRestoreRequest is the BasicRestoreRequest implementation for AzureWorkloadSAPHanaRestoreRequest. 8645func (awshrr AzureWorkloadSAPHanaRestoreRequest) AsAzureWorkloadRestoreRequest() (*AzureWorkloadRestoreRequest, bool) { 8646 return nil, false 8647} 8648 8649// AsBasicAzureWorkloadRestoreRequest is the BasicRestoreRequest implementation for AzureWorkloadSAPHanaRestoreRequest. 8650func (awshrr AzureWorkloadSAPHanaRestoreRequest) AsBasicAzureWorkloadRestoreRequest() (BasicAzureWorkloadRestoreRequest, bool) { 8651 return &awshrr, true 8652} 8653 8654// AsAzureWorkloadSAPHanaPointInTimeRestoreRequest is the BasicRestoreRequest implementation for AzureWorkloadSAPHanaRestoreRequest. 8655func (awshrr AzureWorkloadSAPHanaRestoreRequest) AsAzureWorkloadSAPHanaPointInTimeRestoreRequest() (*AzureWorkloadSAPHanaPointInTimeRestoreRequest, bool) { 8656 return nil, false 8657} 8658 8659// AsAzureWorkloadSAPHanaRestoreRequest is the BasicRestoreRequest implementation for AzureWorkloadSAPHanaRestoreRequest. 8660func (awshrr AzureWorkloadSAPHanaRestoreRequest) AsAzureWorkloadSAPHanaRestoreRequest() (*AzureWorkloadSAPHanaRestoreRequest, bool) { 8661 return &awshrr, true 8662} 8663 8664// AsBasicAzureWorkloadSAPHanaRestoreRequest is the BasicRestoreRequest implementation for AzureWorkloadSAPHanaRestoreRequest. 8665func (awshrr AzureWorkloadSAPHanaRestoreRequest) AsBasicAzureWorkloadSAPHanaRestoreRequest() (BasicAzureWorkloadSAPHanaRestoreRequest, bool) { 8666 return &awshrr, true 8667} 8668 8669// AsAzureWorkloadSQLPointInTimeRestoreRequest is the BasicRestoreRequest implementation for AzureWorkloadSAPHanaRestoreRequest. 8670func (awshrr AzureWorkloadSAPHanaRestoreRequest) AsAzureWorkloadSQLPointInTimeRestoreRequest() (*AzureWorkloadSQLPointInTimeRestoreRequest, bool) { 8671 return nil, false 8672} 8673 8674// AsAzureWorkloadSQLRestoreRequest is the BasicRestoreRequest implementation for AzureWorkloadSAPHanaRestoreRequest. 8675func (awshrr AzureWorkloadSAPHanaRestoreRequest) AsAzureWorkloadSQLRestoreRequest() (*AzureWorkloadSQLRestoreRequest, bool) { 8676 return nil, false 8677} 8678 8679// AsBasicAzureWorkloadSQLRestoreRequest is the BasicRestoreRequest implementation for AzureWorkloadSAPHanaRestoreRequest. 8680func (awshrr AzureWorkloadSAPHanaRestoreRequest) AsBasicAzureWorkloadSQLRestoreRequest() (BasicAzureWorkloadSQLRestoreRequest, bool) { 8681 return nil, false 8682} 8683 8684// AsIaasVMRestoreRequest is the BasicRestoreRequest implementation for AzureWorkloadSAPHanaRestoreRequest. 8685func (awshrr AzureWorkloadSAPHanaRestoreRequest) AsIaasVMRestoreRequest() (*IaasVMRestoreRequest, bool) { 8686 return nil, false 8687} 8688 8689// AsRestoreRequest is the BasicRestoreRequest implementation for AzureWorkloadSAPHanaRestoreRequest. 8690func (awshrr AzureWorkloadSAPHanaRestoreRequest) AsRestoreRequest() (*RestoreRequest, bool) { 8691 return nil, false 8692} 8693 8694// AsBasicRestoreRequest is the BasicRestoreRequest implementation for AzureWorkloadSAPHanaRestoreRequest. 8695func (awshrr AzureWorkloadSAPHanaRestoreRequest) AsBasicRestoreRequest() (BasicRestoreRequest, bool) { 8696 return &awshrr, true 8697} 8698 8699// AzureWorkloadSQLAutoProtectionIntent azure Workload SQL Auto Protection intent item. 8700type AzureWorkloadSQLAutoProtectionIntent struct { 8701 // WorkloadItemType - Workload item type of the item for which intent is to be set. Possible values include: 'WorkloadItemTypeInvalid', 'WorkloadItemTypeSQLInstance', 'WorkloadItemTypeSQLDataBase', 'WorkloadItemTypeSAPHanaSystem', 'WorkloadItemTypeSAPHanaDatabase', 'WorkloadItemTypeSAPAseSystem', 'WorkloadItemTypeSAPAseDatabase' 8702 WorkloadItemType WorkloadItemType `json:"workloadItemType,omitempty"` 8703 // BackupManagementType - Type of backup management for the backed up item. Possible values include: 'ManagementTypeInvalid', 'ManagementTypeAzureIaasVM', 'ManagementTypeMAB', 'ManagementTypeDPM', 'ManagementTypeAzureBackupServer', 'ManagementTypeAzureSQL', 'ManagementTypeAzureStorage', 'ManagementTypeAzureWorkload', 'ManagementTypeDefaultBackup' 8704 BackupManagementType ManagementType `json:"backupManagementType,omitempty"` 8705 // SourceResourceID - ARM ID of the resource to be backed up. 8706 SourceResourceID *string `json:"sourceResourceId,omitempty"` 8707 // ItemID - ID of the item which is getting protected, In case of Azure Vm , it is ProtectedItemId 8708 ItemID *string `json:"itemId,omitempty"` 8709 // PolicyID - ID of the backup policy with which this item is backed up. 8710 PolicyID *string `json:"policyId,omitempty"` 8711 // ProtectionState - Backup state of this backup item. Possible values include: 'ProtectionStatusInvalid', 'ProtectionStatusNotProtected', 'ProtectionStatusProtecting', 'ProtectionStatusProtected', 'ProtectionStatusProtectionFailed' 8712 ProtectionState ProtectionStatus `json:"protectionState,omitempty"` 8713 // ProtectionIntentItemType - Possible values include: 'ProtectionIntentItemTypeProtectionIntent', 'ProtectionIntentItemTypeRecoveryServiceVaultItem', 'ProtectionIntentItemTypeAzureResourceItem', 'ProtectionIntentItemTypeAzureWorkloadAutoProtectionIntent', 'ProtectionIntentItemTypeAzureWorkloadSQLAutoProtectionIntent' 8714 ProtectionIntentItemType ProtectionIntentItemType `json:"protectionIntentItemType,omitempty"` 8715} 8716 8717// MarshalJSON is the custom marshaler for AzureWorkloadSQLAutoProtectionIntent. 8718func (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// AsAzureRecoveryServiceVaultProtectionIntent is the BasicProtectionIntent implementation for AzureWorkloadSQLAutoProtectionIntent. 8746func (awsapi AzureWorkloadSQLAutoProtectionIntent) AsAzureRecoveryServiceVaultProtectionIntent() (*AzureRecoveryServiceVaultProtectionIntent, bool) { 8747 return nil, false 8748} 8749 8750// AsBasicAzureRecoveryServiceVaultProtectionIntent is the BasicProtectionIntent implementation for AzureWorkloadSQLAutoProtectionIntent. 8751func (awsapi AzureWorkloadSQLAutoProtectionIntent) AsBasicAzureRecoveryServiceVaultProtectionIntent() (BasicAzureRecoveryServiceVaultProtectionIntent, bool) { 8752 return &awsapi, true 8753} 8754 8755// AsAzureResourceProtectionIntent is the BasicProtectionIntent implementation for AzureWorkloadSQLAutoProtectionIntent. 8756func (awsapi AzureWorkloadSQLAutoProtectionIntent) AsAzureResourceProtectionIntent() (*AzureResourceProtectionIntent, bool) { 8757 return nil, false 8758} 8759 8760// AsAzureWorkloadAutoProtectionIntent is the BasicProtectionIntent implementation for AzureWorkloadSQLAutoProtectionIntent. 8761func (awsapi AzureWorkloadSQLAutoProtectionIntent) AsAzureWorkloadAutoProtectionIntent() (*AzureWorkloadAutoProtectionIntent, bool) { 8762 return nil, false 8763} 8764 8765// AsBasicAzureWorkloadAutoProtectionIntent is the BasicProtectionIntent implementation for AzureWorkloadSQLAutoProtectionIntent. 8766func (awsapi AzureWorkloadSQLAutoProtectionIntent) AsBasicAzureWorkloadAutoProtectionIntent() (BasicAzureWorkloadAutoProtectionIntent, bool) { 8767 return &awsapi, true 8768} 8769 8770// AsAzureWorkloadSQLAutoProtectionIntent is the BasicProtectionIntent implementation for AzureWorkloadSQLAutoProtectionIntent. 8771func (awsapi AzureWorkloadSQLAutoProtectionIntent) AsAzureWorkloadSQLAutoProtectionIntent() (*AzureWorkloadSQLAutoProtectionIntent, bool) { 8772 return &awsapi, true 8773} 8774 8775// AsProtectionIntent is the BasicProtectionIntent implementation for AzureWorkloadSQLAutoProtectionIntent. 8776func (awsapi AzureWorkloadSQLAutoProtectionIntent) AsProtectionIntent() (*ProtectionIntent, bool) { 8777 return nil, false 8778} 8779 8780// AsBasicProtectionIntent is the BasicProtectionIntent implementation for AzureWorkloadSQLAutoProtectionIntent. 8781func (awsapi AzureWorkloadSQLAutoProtectionIntent) AsBasicProtectionIntent() (BasicProtectionIntent, bool) { 8782 return &awsapi, true 8783} 8784 8785// AzureWorkloadSQLPointInTimeRecoveryPoint recovery point specific to PointInTime 8786type AzureWorkloadSQLPointInTimeRecoveryPoint struct { 8787 // TimeRanges - List of log ranges 8788 TimeRanges *[]PointInTimeRange `json:"timeRanges,omitempty"` 8789 // ExtendedInfo - Extended Info that provides data directory details. Will be populated in two cases: 8790 // When a specific recovery point is accessed using GetRecoveryPoint 8791 // Or when ListRecoveryPoints is called for Log RP only with ExtendedInfo query filter 8792 ExtendedInfo *AzureWorkloadSQLRecoveryPointExtendedInfo `json:"extendedInfo,omitempty"` 8793 // RecoveryPointTimeInUTC - READ-ONLY; UTC time at which recovery point was created 8794 RecoveryPointTimeInUTC *date.Time `json:"recoveryPointTimeInUTC,omitempty"` 8795 // Type - READ-ONLY; Type of restore point. Possible values include: 'RestorePointTypeInvalid', 'RestorePointTypeFull', 'RestorePointTypeLog', 'RestorePointTypeDifferential' 8796 Type RestorePointType `json:"type,omitempty"` 8797 // ObjectType - Possible values include: 'ObjectTypeRecoveryPoint', 'ObjectTypeAzureFileShareRecoveryPoint', 'ObjectTypeAzureWorkloadPointInTimeRecoveryPoint', 'ObjectTypeAzureWorkloadRecoveryPoint', 'ObjectTypeAzureWorkloadSAPHanaPointInTimeRecoveryPoint', 'ObjectTypeAzureWorkloadSAPHanaRecoveryPoint', 'ObjectTypeAzureWorkloadSQLPointInTimeRecoveryPoint', 'ObjectTypeAzureWorkloadSQLRecoveryPoint', 'ObjectTypeGenericRecoveryPoint', 'ObjectTypeIaasVMRecoveryPoint' 8798 ObjectType ObjectTypeBasicRecoveryPoint `json:"objectType,omitempty"` 8799} 8800 8801// MarshalJSON is the custom marshaler for AzureWorkloadSQLPointInTimeRecoveryPoint. 8802func (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// AsAzureFileShareRecoveryPoint is the BasicRecoveryPoint implementation for AzureWorkloadSQLPointInTimeRecoveryPoint. 8818func (awspitrp AzureWorkloadSQLPointInTimeRecoveryPoint) AsAzureFileShareRecoveryPoint() (*AzureFileShareRecoveryPoint, bool) { 8819 return nil, false 8820} 8821 8822// AsAzureWorkloadPointInTimeRecoveryPoint is the BasicRecoveryPoint implementation for AzureWorkloadSQLPointInTimeRecoveryPoint. 8823func (awspitrp AzureWorkloadSQLPointInTimeRecoveryPoint) AsAzureWorkloadPointInTimeRecoveryPoint() (*AzureWorkloadPointInTimeRecoveryPoint, bool) { 8824 return nil, false 8825} 8826 8827// AsBasicAzureWorkloadPointInTimeRecoveryPoint is the BasicRecoveryPoint implementation for AzureWorkloadSQLPointInTimeRecoveryPoint. 8828func (awspitrp AzureWorkloadSQLPointInTimeRecoveryPoint) AsBasicAzureWorkloadPointInTimeRecoveryPoint() (BasicAzureWorkloadPointInTimeRecoveryPoint, bool) { 8829 return nil, false 8830} 8831 8832// AsAzureWorkloadRecoveryPoint is the BasicRecoveryPoint implementation for AzureWorkloadSQLPointInTimeRecoveryPoint. 8833func (awspitrp AzureWorkloadSQLPointInTimeRecoveryPoint) AsAzureWorkloadRecoveryPoint() (*AzureWorkloadRecoveryPoint, bool) { 8834 return nil, false 8835} 8836 8837// AsBasicAzureWorkloadRecoveryPoint is the BasicRecoveryPoint implementation for AzureWorkloadSQLPointInTimeRecoveryPoint. 8838func (awspitrp AzureWorkloadSQLPointInTimeRecoveryPoint) AsBasicAzureWorkloadRecoveryPoint() (BasicAzureWorkloadRecoveryPoint, bool) { 8839 return &awspitrp, true 8840} 8841 8842// AsAzureWorkloadSAPHanaPointInTimeRecoveryPoint is the BasicRecoveryPoint implementation for AzureWorkloadSQLPointInTimeRecoveryPoint. 8843func (awspitrp AzureWorkloadSQLPointInTimeRecoveryPoint) AsAzureWorkloadSAPHanaPointInTimeRecoveryPoint() (*AzureWorkloadSAPHanaPointInTimeRecoveryPoint, bool) { 8844 return nil, false 8845} 8846 8847// AsAzureWorkloadSAPHanaRecoveryPoint is the BasicRecoveryPoint implementation for AzureWorkloadSQLPointInTimeRecoveryPoint. 8848func (awspitrp AzureWorkloadSQLPointInTimeRecoveryPoint) AsAzureWorkloadSAPHanaRecoveryPoint() (*AzureWorkloadSAPHanaRecoveryPoint, bool) { 8849 return nil, false 8850} 8851 8852// AsAzureWorkloadSQLPointInTimeRecoveryPoint is the BasicRecoveryPoint implementation for AzureWorkloadSQLPointInTimeRecoveryPoint. 8853func (awspitrp AzureWorkloadSQLPointInTimeRecoveryPoint) AsAzureWorkloadSQLPointInTimeRecoveryPoint() (*AzureWorkloadSQLPointInTimeRecoveryPoint, bool) { 8854 return &awspitrp, true 8855} 8856 8857// AsAzureWorkloadSQLRecoveryPoint is the BasicRecoveryPoint implementation for AzureWorkloadSQLPointInTimeRecoveryPoint. 8858func (awspitrp AzureWorkloadSQLPointInTimeRecoveryPoint) AsAzureWorkloadSQLRecoveryPoint() (*AzureWorkloadSQLRecoveryPoint, bool) { 8859 return nil, false 8860} 8861 8862// AsBasicAzureWorkloadSQLRecoveryPoint is the BasicRecoveryPoint implementation for AzureWorkloadSQLPointInTimeRecoveryPoint. 8863func (awspitrp AzureWorkloadSQLPointInTimeRecoveryPoint) AsBasicAzureWorkloadSQLRecoveryPoint() (BasicAzureWorkloadSQLRecoveryPoint, bool) { 8864 return &awspitrp, true 8865} 8866 8867// AsGenericRecoveryPoint is the BasicRecoveryPoint implementation for AzureWorkloadSQLPointInTimeRecoveryPoint. 8868func (awspitrp AzureWorkloadSQLPointInTimeRecoveryPoint) AsGenericRecoveryPoint() (*GenericRecoveryPoint, bool) { 8869 return nil, false 8870} 8871 8872// AsIaasVMRecoveryPoint is the BasicRecoveryPoint implementation for AzureWorkloadSQLPointInTimeRecoveryPoint. 8873func (awspitrp AzureWorkloadSQLPointInTimeRecoveryPoint) AsIaasVMRecoveryPoint() (*IaasVMRecoveryPoint, bool) { 8874 return nil, false 8875} 8876 8877// AsRecoveryPoint is the BasicRecoveryPoint implementation for AzureWorkloadSQLPointInTimeRecoveryPoint. 8878func (awspitrp AzureWorkloadSQLPointInTimeRecoveryPoint) AsRecoveryPoint() (*RecoveryPoint, bool) { 8879 return nil, false 8880} 8881 8882// AsBasicRecoveryPoint is the BasicRecoveryPoint implementation for AzureWorkloadSQLPointInTimeRecoveryPoint. 8883func (awspitrp AzureWorkloadSQLPointInTimeRecoveryPoint) AsBasicRecoveryPoint() (BasicRecoveryPoint, bool) { 8884 return &awspitrp, true 8885} 8886 8887// AzureWorkloadSQLPointInTimeRestoreRequest azureWorkload SQL -specific restore. Specifically for 8888// PointInTime/Log restore 8889type AzureWorkloadSQLPointInTimeRestoreRequest struct { 8890 // PointInTime - PointInTime value 8891 PointInTime *date.Time `json:"pointInTime,omitempty"` 8892 // ShouldUseAlternateTargetLocation - Default option set to true. If this is set to false, alternate data directory must be provided 8893 ShouldUseAlternateTargetLocation *bool `json:"shouldUseAlternateTargetLocation,omitempty"` 8894 // IsNonRecoverable - SQL specific property where user can chose to set no-recovery when restore operation is tried 8895 IsNonRecoverable *bool `json:"isNonRecoverable,omitempty"` 8896 // AlternateDirectoryPaths - Data directory details 8897 AlternateDirectoryPaths *[]SQLDataDirectoryMapping `json:"alternateDirectoryPaths,omitempty"` 8898 // RecoveryType - Type of this recovery. Possible values include: 'RecoveryTypeInvalid', 'RecoveryTypeOriginalLocation', 'RecoveryTypeAlternateLocation', 'RecoveryTypeRestoreDisks', 'RecoveryTypeOffline' 8899 RecoveryType RecoveryType `json:"recoveryType,omitempty"` 8900 // SourceResourceID - Fully qualified ARM ID of the VM on which workload that was running is being recovered. 8901 SourceResourceID *string `json:"sourceResourceId,omitempty"` 8902 // PropertyBag - Workload specific property bag. 8903 PropertyBag map[string]*string `json:"propertyBag"` 8904 // TargetInfo - Details of target database 8905 TargetInfo *TargetRestoreInfo `json:"targetInfo,omitempty"` 8906 // RecoveryMode - Defines whether the current recovery mode is file restore or database restore. Possible values include: 'RecoveryModeInvalid', 'RecoveryModeFileRecovery', 'RecoveryModeWorkloadRecovery' 8907 RecoveryMode RecoveryMode `json:"recoveryMode,omitempty"` 8908 // ObjectType - Possible values include: 'ObjectTypeRestoreRequest', 'ObjectTypeAzureFileShareRestoreRequest', 'ObjectTypeAzureWorkloadPointInTimeRestoreRequest', 'ObjectTypeAzureWorkloadRestoreRequest', 'ObjectTypeAzureWorkloadSAPHanaPointInTimeRestoreRequest', 'ObjectTypeAzureWorkloadSAPHanaRestoreRequest', 'ObjectTypeAzureWorkloadSQLPointInTimeRestoreRequest', 'ObjectTypeAzureWorkloadSQLRestoreRequest', 'ObjectTypeIaasVMRestoreRequest' 8909 ObjectType ObjectTypeBasicRestoreRequest `json:"objectType,omitempty"` 8910} 8911 8912// MarshalJSON is the custom marshaler for AzureWorkloadSQLPointInTimeRestoreRequest. 8913func (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// AsAzureFileShareRestoreRequest is the BasicRestoreRequest implementation for AzureWorkloadSQLPointInTimeRestoreRequest. 8950func (awspitrr AzureWorkloadSQLPointInTimeRestoreRequest) AsAzureFileShareRestoreRequest() (*AzureFileShareRestoreRequest, bool) { 8951 return nil, false 8952} 8953 8954// AsAzureWorkloadPointInTimeRestoreRequest is the BasicRestoreRequest implementation for AzureWorkloadSQLPointInTimeRestoreRequest. 8955func (awspitrr AzureWorkloadSQLPointInTimeRestoreRequest) AsAzureWorkloadPointInTimeRestoreRequest() (*AzureWorkloadPointInTimeRestoreRequest, bool) { 8956 return nil, false 8957} 8958 8959// AsAzureWorkloadRestoreRequest is the BasicRestoreRequest implementation for AzureWorkloadSQLPointInTimeRestoreRequest. 8960func (awspitrr AzureWorkloadSQLPointInTimeRestoreRequest) AsAzureWorkloadRestoreRequest() (*AzureWorkloadRestoreRequest, bool) { 8961 return nil, false 8962} 8963 8964// AsBasicAzureWorkloadRestoreRequest is the BasicRestoreRequest implementation for AzureWorkloadSQLPointInTimeRestoreRequest. 8965func (awspitrr AzureWorkloadSQLPointInTimeRestoreRequest) AsBasicAzureWorkloadRestoreRequest() (BasicAzureWorkloadRestoreRequest, bool) { 8966 return &awspitrr, true 8967} 8968 8969// AsAzureWorkloadSAPHanaPointInTimeRestoreRequest is the BasicRestoreRequest implementation for AzureWorkloadSQLPointInTimeRestoreRequest. 8970func (awspitrr AzureWorkloadSQLPointInTimeRestoreRequest) AsAzureWorkloadSAPHanaPointInTimeRestoreRequest() (*AzureWorkloadSAPHanaPointInTimeRestoreRequest, bool) { 8971 return nil, false 8972} 8973 8974// AsAzureWorkloadSAPHanaRestoreRequest is the BasicRestoreRequest implementation for AzureWorkloadSQLPointInTimeRestoreRequest. 8975func (awspitrr AzureWorkloadSQLPointInTimeRestoreRequest) AsAzureWorkloadSAPHanaRestoreRequest() (*AzureWorkloadSAPHanaRestoreRequest, bool) { 8976 return nil, false 8977} 8978 8979// AsBasicAzureWorkloadSAPHanaRestoreRequest is the BasicRestoreRequest implementation for AzureWorkloadSQLPointInTimeRestoreRequest. 8980func (awspitrr AzureWorkloadSQLPointInTimeRestoreRequest) AsBasicAzureWorkloadSAPHanaRestoreRequest() (BasicAzureWorkloadSAPHanaRestoreRequest, bool) { 8981 return nil, false 8982} 8983 8984// AsAzureWorkloadSQLPointInTimeRestoreRequest is the BasicRestoreRequest implementation for AzureWorkloadSQLPointInTimeRestoreRequest. 8985func (awspitrr AzureWorkloadSQLPointInTimeRestoreRequest) AsAzureWorkloadSQLPointInTimeRestoreRequest() (*AzureWorkloadSQLPointInTimeRestoreRequest, bool) { 8986 return &awspitrr, true 8987} 8988 8989// AsAzureWorkloadSQLRestoreRequest is the BasicRestoreRequest implementation for AzureWorkloadSQLPointInTimeRestoreRequest. 8990func (awspitrr AzureWorkloadSQLPointInTimeRestoreRequest) AsAzureWorkloadSQLRestoreRequest() (*AzureWorkloadSQLRestoreRequest, bool) { 8991 return nil, false 8992} 8993 8994// AsBasicAzureWorkloadSQLRestoreRequest is the BasicRestoreRequest implementation for AzureWorkloadSQLPointInTimeRestoreRequest. 8995func (awspitrr AzureWorkloadSQLPointInTimeRestoreRequest) AsBasicAzureWorkloadSQLRestoreRequest() (BasicAzureWorkloadSQLRestoreRequest, bool) { 8996 return &awspitrr, true 8997} 8998 8999// AsIaasVMRestoreRequest is the BasicRestoreRequest implementation for AzureWorkloadSQLPointInTimeRestoreRequest. 9000func (awspitrr AzureWorkloadSQLPointInTimeRestoreRequest) AsIaasVMRestoreRequest() (*IaasVMRestoreRequest, bool) { 9001 return nil, false 9002} 9003 9004// AsRestoreRequest is the BasicRestoreRequest implementation for AzureWorkloadSQLPointInTimeRestoreRequest. 9005func (awspitrr AzureWorkloadSQLPointInTimeRestoreRequest) AsRestoreRequest() (*RestoreRequest, bool) { 9006 return nil, false 9007} 9008 9009// AsBasicRestoreRequest is the BasicRestoreRequest implementation for AzureWorkloadSQLPointInTimeRestoreRequest. 9010func (awspitrr AzureWorkloadSQLPointInTimeRestoreRequest) AsBasicRestoreRequest() (BasicRestoreRequest, bool) { 9011 return &awspitrr, true 9012} 9013 9014// BasicAzureWorkloadSQLRecoveryPoint SQL specific recoverypoint, specifically encapsulates full/diff recoverypoint 9015// along with extended info 9016type BasicAzureWorkloadSQLRecoveryPoint interface { 9017 AsAzureWorkloadSQLPointInTimeRecoveryPoint() (*AzureWorkloadSQLPointInTimeRecoveryPoint, bool) 9018 AsAzureWorkloadSQLRecoveryPoint() (*AzureWorkloadSQLRecoveryPoint, bool) 9019} 9020 9021// AzureWorkloadSQLRecoveryPoint SQL specific recoverypoint, specifically encapsulates full/diff recoverypoint 9022// along with extended info 9023type AzureWorkloadSQLRecoveryPoint struct { 9024 // ExtendedInfo - Extended Info that provides data directory details. Will be populated in two cases: 9025 // When a specific recovery point is accessed using GetRecoveryPoint 9026 // Or when ListRecoveryPoints is called for Log RP only with ExtendedInfo query filter 9027 ExtendedInfo *AzureWorkloadSQLRecoveryPointExtendedInfo `json:"extendedInfo,omitempty"` 9028 // RecoveryPointTimeInUTC - READ-ONLY; UTC time at which recovery point was created 9029 RecoveryPointTimeInUTC *date.Time `json:"recoveryPointTimeInUTC,omitempty"` 9030 // Type - READ-ONLY; Type of restore point. Possible values include: 'RestorePointTypeInvalid', 'RestorePointTypeFull', 'RestorePointTypeLog', 'RestorePointTypeDifferential' 9031 Type RestorePointType `json:"type,omitempty"` 9032 // ObjectType - Possible values include: 'ObjectTypeRecoveryPoint', 'ObjectTypeAzureFileShareRecoveryPoint', 'ObjectTypeAzureWorkloadPointInTimeRecoveryPoint', 'ObjectTypeAzureWorkloadRecoveryPoint', 'ObjectTypeAzureWorkloadSAPHanaPointInTimeRecoveryPoint', 'ObjectTypeAzureWorkloadSAPHanaRecoveryPoint', 'ObjectTypeAzureWorkloadSQLPointInTimeRecoveryPoint', 'ObjectTypeAzureWorkloadSQLRecoveryPoint', 'ObjectTypeGenericRecoveryPoint', 'ObjectTypeIaasVMRecoveryPoint' 9033 ObjectType ObjectTypeBasicRecoveryPoint `json:"objectType,omitempty"` 9034} 9035 9036func 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} 9054func 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// MarshalJSON is the custom marshaler for AzureWorkloadSQLRecoveryPoint. 9074func (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// AsAzureFileShareRecoveryPoint is the BasicRecoveryPoint implementation for AzureWorkloadSQLRecoveryPoint. 9087func (awsrp AzureWorkloadSQLRecoveryPoint) AsAzureFileShareRecoveryPoint() (*AzureFileShareRecoveryPoint, bool) { 9088 return nil, false 9089} 9090 9091// AsAzureWorkloadPointInTimeRecoveryPoint is the BasicRecoveryPoint implementation for AzureWorkloadSQLRecoveryPoint. 9092func (awsrp AzureWorkloadSQLRecoveryPoint) AsAzureWorkloadPointInTimeRecoveryPoint() (*AzureWorkloadPointInTimeRecoveryPoint, bool) { 9093 return nil, false 9094} 9095 9096// AsBasicAzureWorkloadPointInTimeRecoveryPoint is the BasicRecoveryPoint implementation for AzureWorkloadSQLRecoveryPoint. 9097func (awsrp AzureWorkloadSQLRecoveryPoint) AsBasicAzureWorkloadPointInTimeRecoveryPoint() (BasicAzureWorkloadPointInTimeRecoveryPoint, bool) { 9098 return nil, false 9099} 9100 9101// AsAzureWorkloadRecoveryPoint is the BasicRecoveryPoint implementation for AzureWorkloadSQLRecoveryPoint. 9102func (awsrp AzureWorkloadSQLRecoveryPoint) AsAzureWorkloadRecoveryPoint() (*AzureWorkloadRecoveryPoint, bool) { 9103 return nil, false 9104} 9105 9106// AsBasicAzureWorkloadRecoveryPoint is the BasicRecoveryPoint implementation for AzureWorkloadSQLRecoveryPoint. 9107func (awsrp AzureWorkloadSQLRecoveryPoint) AsBasicAzureWorkloadRecoveryPoint() (BasicAzureWorkloadRecoveryPoint, bool) { 9108 return &awsrp, true 9109} 9110 9111// AsAzureWorkloadSAPHanaPointInTimeRecoveryPoint is the BasicRecoveryPoint implementation for AzureWorkloadSQLRecoveryPoint. 9112func (awsrp AzureWorkloadSQLRecoveryPoint) AsAzureWorkloadSAPHanaPointInTimeRecoveryPoint() (*AzureWorkloadSAPHanaPointInTimeRecoveryPoint, bool) { 9113 return nil, false 9114} 9115 9116// AsAzureWorkloadSAPHanaRecoveryPoint is the BasicRecoveryPoint implementation for AzureWorkloadSQLRecoveryPoint. 9117func (awsrp AzureWorkloadSQLRecoveryPoint) AsAzureWorkloadSAPHanaRecoveryPoint() (*AzureWorkloadSAPHanaRecoveryPoint, bool) { 9118 return nil, false 9119} 9120 9121// AsAzureWorkloadSQLPointInTimeRecoveryPoint is the BasicRecoveryPoint implementation for AzureWorkloadSQLRecoveryPoint. 9122func (awsrp AzureWorkloadSQLRecoveryPoint) AsAzureWorkloadSQLPointInTimeRecoveryPoint() (*AzureWorkloadSQLPointInTimeRecoveryPoint, bool) { 9123 return nil, false 9124} 9125 9126// AsAzureWorkloadSQLRecoveryPoint is the BasicRecoveryPoint implementation for AzureWorkloadSQLRecoveryPoint. 9127func (awsrp AzureWorkloadSQLRecoveryPoint) AsAzureWorkloadSQLRecoveryPoint() (*AzureWorkloadSQLRecoveryPoint, bool) { 9128 return &awsrp, true 9129} 9130 9131// AsBasicAzureWorkloadSQLRecoveryPoint is the BasicRecoveryPoint implementation for AzureWorkloadSQLRecoveryPoint. 9132func (awsrp AzureWorkloadSQLRecoveryPoint) AsBasicAzureWorkloadSQLRecoveryPoint() (BasicAzureWorkloadSQLRecoveryPoint, bool) { 9133 return &awsrp, true 9134} 9135 9136// AsGenericRecoveryPoint is the BasicRecoveryPoint implementation for AzureWorkloadSQLRecoveryPoint. 9137func (awsrp AzureWorkloadSQLRecoveryPoint) AsGenericRecoveryPoint() (*GenericRecoveryPoint, bool) { 9138 return nil, false 9139} 9140 9141// AsIaasVMRecoveryPoint is the BasicRecoveryPoint implementation for AzureWorkloadSQLRecoveryPoint. 9142func (awsrp AzureWorkloadSQLRecoveryPoint) AsIaasVMRecoveryPoint() (*IaasVMRecoveryPoint, bool) { 9143 return nil, false 9144} 9145 9146// AsRecoveryPoint is the BasicRecoveryPoint implementation for AzureWorkloadSQLRecoveryPoint. 9147func (awsrp AzureWorkloadSQLRecoveryPoint) AsRecoveryPoint() (*RecoveryPoint, bool) { 9148 return nil, false 9149} 9150 9151// AsBasicRecoveryPoint is the BasicRecoveryPoint implementation for AzureWorkloadSQLRecoveryPoint. 9152func (awsrp AzureWorkloadSQLRecoveryPoint) AsBasicRecoveryPoint() (BasicRecoveryPoint, bool) { 9153 return &awsrp, true 9154} 9155 9156// AzureWorkloadSQLRecoveryPointExtendedInfo extended info class details 9157type AzureWorkloadSQLRecoveryPointExtendedInfo struct { 9158 // DataDirectoryTimeInUTC - READ-ONLY; UTC time at which data directory info was captured 9159 DataDirectoryTimeInUTC *date.Time `json:"dataDirectoryTimeInUTC,omitempty"` 9160 // DataDirectoryPaths - READ-ONLY; List of data directory paths during restore operation. 9161 DataDirectoryPaths *[]SQLDataDirectory `json:"dataDirectoryPaths,omitempty"` 9162} 9163 9164// MarshalJSON is the custom marshaler for AzureWorkloadSQLRecoveryPointExtendedInfo. 9165func (awsrpei AzureWorkloadSQLRecoveryPointExtendedInfo) MarshalJSON() ([]byte, error) { 9166 objectMap := make(map[string]interface{}) 9167 return json.Marshal(objectMap) 9168} 9169 9170// BasicAzureWorkloadSQLRestoreRequest azureWorkload SQL -specific restore. Specifically for full/diff restore 9171type BasicAzureWorkloadSQLRestoreRequest interface { 9172 AsAzureWorkloadSQLPointInTimeRestoreRequest() (*AzureWorkloadSQLPointInTimeRestoreRequest, bool) 9173 AsAzureWorkloadSQLRestoreRequest() (*AzureWorkloadSQLRestoreRequest, bool) 9174} 9175 9176// AzureWorkloadSQLRestoreRequest azureWorkload SQL -specific restore. Specifically for full/diff restore 9177type AzureWorkloadSQLRestoreRequest struct { 9178 // ShouldUseAlternateTargetLocation - Default option set to true. If this is set to false, alternate data directory must be provided 9179 ShouldUseAlternateTargetLocation *bool `json:"shouldUseAlternateTargetLocation,omitempty"` 9180 // IsNonRecoverable - SQL specific property where user can chose to set no-recovery when restore operation is tried 9181 IsNonRecoverable *bool `json:"isNonRecoverable,omitempty"` 9182 // AlternateDirectoryPaths - Data directory details 9183 AlternateDirectoryPaths *[]SQLDataDirectoryMapping `json:"alternateDirectoryPaths,omitempty"` 9184 // RecoveryType - Type of this recovery. Possible values include: 'RecoveryTypeInvalid', 'RecoveryTypeOriginalLocation', 'RecoveryTypeAlternateLocation', 'RecoveryTypeRestoreDisks', 'RecoveryTypeOffline' 9185 RecoveryType RecoveryType `json:"recoveryType,omitempty"` 9186 // SourceResourceID - Fully qualified ARM ID of the VM on which workload that was running is being recovered. 9187 SourceResourceID *string `json:"sourceResourceId,omitempty"` 9188 // PropertyBag - Workload specific property bag. 9189 PropertyBag map[string]*string `json:"propertyBag"` 9190 // TargetInfo - Details of target database 9191 TargetInfo *TargetRestoreInfo `json:"targetInfo,omitempty"` 9192 // RecoveryMode - Defines whether the current recovery mode is file restore or database restore. Possible values include: 'RecoveryModeInvalid', 'RecoveryModeFileRecovery', 'RecoveryModeWorkloadRecovery' 9193 RecoveryMode RecoveryMode `json:"recoveryMode,omitempty"` 9194 // ObjectType - Possible values include: 'ObjectTypeRestoreRequest', 'ObjectTypeAzureFileShareRestoreRequest', 'ObjectTypeAzureWorkloadPointInTimeRestoreRequest', 'ObjectTypeAzureWorkloadRestoreRequest', 'ObjectTypeAzureWorkloadSAPHanaPointInTimeRestoreRequest', 'ObjectTypeAzureWorkloadSAPHanaRestoreRequest', 'ObjectTypeAzureWorkloadSQLPointInTimeRestoreRequest', 'ObjectTypeAzureWorkloadSQLRestoreRequest', 'ObjectTypeIaasVMRestoreRequest' 9195 ObjectType ObjectTypeBasicRestoreRequest `json:"objectType,omitempty"` 9196} 9197 9198func 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} 9216func 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// MarshalJSON is the custom marshaler for AzureWorkloadSQLRestoreRequest. 9236func (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// AsAzureFileShareRestoreRequest is the BasicRestoreRequest implementation for AzureWorkloadSQLRestoreRequest. 9270func (awsrr AzureWorkloadSQLRestoreRequest) AsAzureFileShareRestoreRequest() (*AzureFileShareRestoreRequest, bool) { 9271 return nil, false 9272} 9273 9274// AsAzureWorkloadPointInTimeRestoreRequest is the BasicRestoreRequest implementation for AzureWorkloadSQLRestoreRequest. 9275func (awsrr AzureWorkloadSQLRestoreRequest) AsAzureWorkloadPointInTimeRestoreRequest() (*AzureWorkloadPointInTimeRestoreRequest, bool) { 9276 return nil, false 9277} 9278 9279// AsAzureWorkloadRestoreRequest is the BasicRestoreRequest implementation for AzureWorkloadSQLRestoreRequest. 9280func (awsrr AzureWorkloadSQLRestoreRequest) AsAzureWorkloadRestoreRequest() (*AzureWorkloadRestoreRequest, bool) { 9281 return nil, false 9282} 9283 9284// AsBasicAzureWorkloadRestoreRequest is the BasicRestoreRequest implementation for AzureWorkloadSQLRestoreRequest. 9285func (awsrr AzureWorkloadSQLRestoreRequest) AsBasicAzureWorkloadRestoreRequest() (BasicAzureWorkloadRestoreRequest, bool) { 9286 return &awsrr, true 9287} 9288 9289// AsAzureWorkloadSAPHanaPointInTimeRestoreRequest is the BasicRestoreRequest implementation for AzureWorkloadSQLRestoreRequest. 9290func (awsrr AzureWorkloadSQLRestoreRequest) AsAzureWorkloadSAPHanaPointInTimeRestoreRequest() (*AzureWorkloadSAPHanaPointInTimeRestoreRequest, bool) { 9291 return nil, false 9292} 9293 9294// AsAzureWorkloadSAPHanaRestoreRequest is the BasicRestoreRequest implementation for AzureWorkloadSQLRestoreRequest. 9295func (awsrr AzureWorkloadSQLRestoreRequest) AsAzureWorkloadSAPHanaRestoreRequest() (*AzureWorkloadSAPHanaRestoreRequest, bool) { 9296 return nil, false 9297} 9298 9299// AsBasicAzureWorkloadSAPHanaRestoreRequest is the BasicRestoreRequest implementation for AzureWorkloadSQLRestoreRequest. 9300func (awsrr AzureWorkloadSQLRestoreRequest) AsBasicAzureWorkloadSAPHanaRestoreRequest() (BasicAzureWorkloadSAPHanaRestoreRequest, bool) { 9301 return nil, false 9302} 9303 9304// AsAzureWorkloadSQLPointInTimeRestoreRequest is the BasicRestoreRequest implementation for AzureWorkloadSQLRestoreRequest. 9305func (awsrr AzureWorkloadSQLRestoreRequest) AsAzureWorkloadSQLPointInTimeRestoreRequest() (*AzureWorkloadSQLPointInTimeRestoreRequest, bool) { 9306 return nil, false 9307} 9308 9309// AsAzureWorkloadSQLRestoreRequest is the BasicRestoreRequest implementation for AzureWorkloadSQLRestoreRequest. 9310func (awsrr AzureWorkloadSQLRestoreRequest) AsAzureWorkloadSQLRestoreRequest() (*AzureWorkloadSQLRestoreRequest, bool) { 9311 return &awsrr, true 9312} 9313 9314// AsBasicAzureWorkloadSQLRestoreRequest is the BasicRestoreRequest implementation for AzureWorkloadSQLRestoreRequest. 9315func (awsrr AzureWorkloadSQLRestoreRequest) AsBasicAzureWorkloadSQLRestoreRequest() (BasicAzureWorkloadSQLRestoreRequest, bool) { 9316 return &awsrr, true 9317} 9318 9319// AsIaasVMRestoreRequest is the BasicRestoreRequest implementation for AzureWorkloadSQLRestoreRequest. 9320func (awsrr AzureWorkloadSQLRestoreRequest) AsIaasVMRestoreRequest() (*IaasVMRestoreRequest, bool) { 9321 return nil, false 9322} 9323 9324// AsRestoreRequest is the BasicRestoreRequest implementation for AzureWorkloadSQLRestoreRequest. 9325func (awsrr AzureWorkloadSQLRestoreRequest) AsRestoreRequest() (*RestoreRequest, bool) { 9326 return nil, false 9327} 9328 9329// AsBasicRestoreRequest is the BasicRestoreRequest implementation for AzureWorkloadSQLRestoreRequest. 9330func (awsrr AzureWorkloadSQLRestoreRequest) AsBasicRestoreRequest() (BasicRestoreRequest, bool) { 9331 return &awsrr, true 9332} 9333 9334// BEKDetails BEK is bitlocker encryption key. 9335type BEKDetails struct { 9336 // SecretURL - Secret is BEK. 9337 SecretURL *string `json:"secretUrl,omitempty"` 9338 // SecretVaultID - ID of the Key Vault where this Secret is stored. 9339 SecretVaultID *string `json:"secretVaultId,omitempty"` 9340 // SecretData - BEK data. 9341 SecretData *string `json:"secretData,omitempty"` 9342} 9343 9344// BMSBackupEngineQueryObject query parameters to fetch list of backup engines. 9345type BMSBackupEngineQueryObject struct { 9346 // Expand - attribute to add extended info 9347 Expand *string `json:"expand,omitempty"` 9348} 9349 9350// BMSBackupEnginesQueryObject query parameters to fetch list of backup engines. 9351type BMSBackupEnginesQueryObject struct { 9352 // BackupManagementType - Backup management type for the backup engine. Possible values include: 'ManagementTypeInvalid', 'ManagementTypeAzureIaasVM', 'ManagementTypeMAB', 'ManagementTypeDPM', 'ManagementTypeAzureBackupServer', 'ManagementTypeAzureSQL', 'ManagementTypeAzureStorage', 'ManagementTypeAzureWorkload', 'ManagementTypeDefaultBackup' 9353 BackupManagementType ManagementType `json:"backupManagementType,omitempty"` 9354 // FriendlyName - Friendly name of the backup engine. 9355 FriendlyName *string `json:"friendlyName,omitempty"` 9356 // Expand - Attribute to add extended info. 9357 Expand *string `json:"expand,omitempty"` 9358} 9359 9360// BMSBackupSummariesQueryObject query parameters to fetch backup summaries. 9361type BMSBackupSummariesQueryObject struct { 9362 // Type - Backup management type for this container. Possible values include: 'TypeInvalid', 'TypeBackupProtectedItemCountSummary', 'TypeBackupProtectionContainerCountSummary' 9363 Type Type `json:"type,omitempty"` 9364} 9365 9366// BMSContainerQueryObject the query filters that can be used with the list containers API. 9367type BMSContainerQueryObject struct { 9368 // BackupManagementType - Backup management type for this container. Possible values include: 'ManagementTypeInvalid', 'ManagementTypeAzureIaasVM', 'ManagementTypeMAB', 'ManagementTypeDPM', 'ManagementTypeAzureBackupServer', 'ManagementTypeAzureSQL', 'ManagementTypeAzureStorage', 'ManagementTypeAzureWorkload', 'ManagementTypeDefaultBackup' 9369 BackupManagementType ManagementType `json:"backupManagementType,omitempty"` 9370 // ContainerType - Type of container for filter. Possible values include: 'ContainerTypeInvalid', 'ContainerTypeUnknown', 'ContainerTypeIaasVMContainer', 'ContainerTypeIaasVMServiceContainer', 'ContainerTypeDPMContainer', 'ContainerTypeAzureBackupServerContainer', 'ContainerTypeMABContainer', 'ContainerTypeCluster', 'ContainerTypeAzureSQLContainer', 'ContainerTypeWindows', 'ContainerTypeVCenter', 'ContainerTypeVMAppContainer', 'ContainerTypeSQLAGWorkLoadContainer', 'ContainerTypeStorageContainer', 'ContainerTypeGenericContainer' 9371 ContainerType ContainerType `json:"containerType,omitempty"` 9372 // BackupEngineName - Backup engine name 9373 BackupEngineName *string `json:"backupEngineName,omitempty"` 9374 // FabricName - Fabric name for filter 9375 FabricName *string `json:"fabricName,omitempty"` 9376 // Status - Status of registration of this container with the Recovery Services Vault. 9377 Status *string `json:"status,omitempty"` 9378 // FriendlyName - Friendly name of this container. 9379 FriendlyName *string `json:"friendlyName,omitempty"` 9380} 9381 9382// BMSContainersInquiryQueryObject the query filters that can be used with the inquire container API. 9383type BMSContainersInquiryQueryObject struct { 9384 // BackupManagementType - Backup management type for this container. Possible values include: 'ManagementTypeInvalid', 'ManagementTypeAzureIaasVM', 'ManagementTypeMAB', 'ManagementTypeDPM', 'ManagementTypeAzureBackupServer', 'ManagementTypeAzureSQL', 'ManagementTypeAzureStorage', 'ManagementTypeAzureWorkload', 'ManagementTypeDefaultBackup' 9385 BackupManagementType ManagementType `json:"backupManagementType,omitempty"` 9386 // WorkloadType - Workload type for this container. Possible values include: 'WorkloadTypeInvalid', 'WorkloadTypeVM', 'WorkloadTypeFileFolder', 'WorkloadTypeAzureSQLDb', 'WorkloadTypeSQLDB', 'WorkloadTypeExchange', 'WorkloadTypeSharepoint', 'WorkloadTypeVMwareVM', 'WorkloadTypeSystemState', 'WorkloadTypeClient', 'WorkloadTypeGenericDataSource', 'WorkloadTypeSQLDataBase', 'WorkloadTypeAzureFileShare', 'WorkloadTypeSAPHanaDatabase', 'WorkloadTypeSAPAseDatabase' 9387 WorkloadType WorkloadType `json:"workloadType,omitempty"` 9388} 9389 9390// BMSPOQueryObject filters to list items that can be backed up. 9391type BMSPOQueryObject struct { 9392 // BackupManagementType - Backup management type. Possible values include: 'ManagementTypeInvalid', 'ManagementTypeAzureIaasVM', 'ManagementTypeMAB', 'ManagementTypeDPM', 'ManagementTypeAzureBackupServer', 'ManagementTypeAzureSQL', 'ManagementTypeAzureStorage', 'ManagementTypeAzureWorkload', 'ManagementTypeDefaultBackup' 9393 BackupManagementType ManagementType `json:"backupManagementType,omitempty"` 9394 // WorkloadType - Workload type. Possible values include: 'WorkloadTypeInvalid', 'WorkloadTypeVM', 'WorkloadTypeFileFolder', 'WorkloadTypeAzureSQLDb', 'WorkloadTypeSQLDB', 'WorkloadTypeExchange', 'WorkloadTypeSharepoint', 'WorkloadTypeVMwareVM', 'WorkloadTypeSystemState', 'WorkloadTypeClient', 'WorkloadTypeGenericDataSource', 'WorkloadTypeSQLDataBase', 'WorkloadTypeAzureFileShare', 'WorkloadTypeSAPHanaDatabase', 'WorkloadTypeSAPAseDatabase' 9395 WorkloadType WorkloadType `json:"workloadType,omitempty"` 9396 // ContainerName - Full name of the container whose Protectable Objects should be returned. 9397 ContainerName *string `json:"containerName,omitempty"` 9398 // Status - Backup status query parameter. 9399 Status *string `json:"status,omitempty"` 9400 // FriendlyName - Friendly name. 9401 FriendlyName *string `json:"friendlyName,omitempty"` 9402} 9403 9404// BMSRefreshContainersQueryObject the query filters that can be used with the refresh container API. 9405type BMSRefreshContainersQueryObject struct { 9406 // BackupManagementType - Backup management type for this container. Possible values include: 'ManagementTypeInvalid', 'ManagementTypeAzureIaasVM', 'ManagementTypeMAB', 'ManagementTypeDPM', 'ManagementTypeAzureBackupServer', 'ManagementTypeAzureSQL', 'ManagementTypeAzureStorage', 'ManagementTypeAzureWorkload', 'ManagementTypeDefaultBackup' 9407 BackupManagementType ManagementType `json:"backupManagementType,omitempty"` 9408} 9409 9410// BMSRPQueryObject filters to list backup copies. 9411type BMSRPQueryObject struct { 9412 // StartDate - Backup copies created after this time. 9413 StartDate *date.Time `json:"startDate,omitempty"` 9414 // EndDate - Backup copies created before this time. 9415 EndDate *date.Time `json:"endDate,omitempty"` 9416 // RestorePointQueryType - RestorePoint type. Possible values include: 'RestorePointQueryTypeInvalid', 'RestorePointQueryTypeFull', 'RestorePointQueryTypeLog', 'RestorePointQueryTypeDifferential', 'RestorePointQueryTypeFullAndDifferential', 'RestorePointQueryTypeAll' 9417 RestorePointQueryType RestorePointQueryType `json:"restorePointQueryType,omitempty"` 9418 // ExtendedInfo - In Get Recovery Point, it tells whether extended information about recovery point is asked. 9419 ExtendedInfo *bool `json:"extendedInfo,omitempty"` 9420} 9421 9422// BMSWorkloadItemQueryObject filters to list items that can be backed up. 9423type BMSWorkloadItemQueryObject struct { 9424 // BackupManagementType - Backup management type. Possible values include: 'ManagementTypeInvalid', 'ManagementTypeAzureIaasVM', 'ManagementTypeMAB', 'ManagementTypeDPM', 'ManagementTypeAzureBackupServer', 'ManagementTypeAzureSQL', 'ManagementTypeAzureStorage', 'ManagementTypeAzureWorkload', 'ManagementTypeDefaultBackup' 9425 BackupManagementType ManagementType `json:"backupManagementType,omitempty"` 9426 // WorkloadItemType - Workload Item type. Possible values include: 'WorkloadItemTypeInvalid', 'WorkloadItemTypeSQLInstance', 'WorkloadItemTypeSQLDataBase', 'WorkloadItemTypeSAPHanaSystem', 'WorkloadItemTypeSAPHanaDatabase', 'WorkloadItemTypeSAPAseSystem', 'WorkloadItemTypeSAPAseDatabase' 9427 WorkloadItemType WorkloadItemType `json:"workloadItemType,omitempty"` 9428 // WorkloadType - Workload type. Possible values include: 'WorkloadTypeInvalid', 'WorkloadTypeVM', 'WorkloadTypeFileFolder', 'WorkloadTypeAzureSQLDb', 'WorkloadTypeSQLDB', 'WorkloadTypeExchange', 'WorkloadTypeSharepoint', 'WorkloadTypeVMwareVM', 'WorkloadTypeSystemState', 'WorkloadTypeClient', 'WorkloadTypeGenericDataSource', 'WorkloadTypeSQLDataBase', 'WorkloadTypeAzureFileShare', 'WorkloadTypeSAPHanaDatabase', 'WorkloadTypeSAPAseDatabase' 9429 WorkloadType WorkloadType `json:"workloadType,omitempty"` 9430 // ProtectionStatus - Backup status query parameter. Possible values include: 'ProtectionStatusInvalid', 'ProtectionStatusNotProtected', 'ProtectionStatusProtecting', 'ProtectionStatusProtected', 'ProtectionStatusProtectionFailed' 9431 ProtectionStatus ProtectionStatus `json:"protectionStatus,omitempty"` 9432} 9433 9434// ClientDiscoveryDisplay localized display information of an operation. 9435type ClientDiscoveryDisplay struct { 9436 // Provider - Name of the provider for display purposes 9437 Provider *string `json:"provider,omitempty"` 9438 // Resource - ResourceType for which this Operation can be performed. 9439 Resource *string `json:"resource,omitempty"` 9440 // Operation - Operations Name itself. 9441 Operation *string `json:"operation,omitempty"` 9442 // Description - Description of the operation having details of what operation is about. 9443 Description *string `json:"description,omitempty"` 9444} 9445 9446// ClientDiscoveryForLogSpecification class to represent shoebox log specification in json client 9447// discovery. 9448type ClientDiscoveryForLogSpecification struct { 9449 // Name - Name for shoebox log specification. 9450 Name *string `json:"name,omitempty"` 9451 // DisplayName - Localized display name 9452 DisplayName *string `json:"displayName,omitempty"` 9453 // BlobDuration - blob duration of shoebox log specification 9454 BlobDuration *string `json:"blobDuration,omitempty"` 9455} 9456 9457// ClientDiscoveryForProperties class to represent shoebox properties in json client discovery. 9458type ClientDiscoveryForProperties struct { 9459 // ServiceSpecification - Operation properties. 9460 ServiceSpecification *ClientDiscoveryForServiceSpecification `json:"serviceSpecification,omitempty"` 9461} 9462 9463// ClientDiscoveryForServiceSpecification class to represent shoebox service specification in json client 9464// discovery. 9465type ClientDiscoveryForServiceSpecification struct { 9466 // LogSpecifications - List of log specifications of this operation. 9467 LogSpecifications *[]ClientDiscoveryForLogSpecification `json:"logSpecifications,omitempty"` 9468} 9469 9470// ClientDiscoveryResponse operations List response which contains list of available APIs. 9471type ClientDiscoveryResponse struct { 9472 autorest.Response `json:"-"` 9473 // Value - List of available operations. 9474 Value *[]ClientDiscoveryValueForSingleAPI `json:"value,omitempty"` 9475 // NextLink - Link to the next chunk of Response. 9476 NextLink *string `json:"nextLink,omitempty"` 9477} 9478 9479// ClientDiscoveryResponseIterator provides access to a complete listing of 9480// ClientDiscoveryValueForSingleAPI values. 9481type ClientDiscoveryResponseIterator struct { 9482 i int 9483 page ClientDiscoveryResponsePage 9484} 9485 9486// NextWithContext advances to the next value. If there was an error making 9487// the request the iterator does not advance and the error is returned. 9488func (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// Next advances to the next value. If there was an error making 9513// the request the iterator does not advance and the error is returned. 9514// Deprecated: Use NextWithContext() instead. 9515func (iter *ClientDiscoveryResponseIterator) Next() error { 9516 return iter.NextWithContext(context.Background()) 9517} 9518 9519// NotDone returns true if the enumeration should be started or is not yet complete. 9520func (iter ClientDiscoveryResponseIterator) NotDone() bool { 9521 return iter.page.NotDone() && iter.i < len(iter.page.Values()) 9522} 9523 9524// Response returns the raw server response from the last page request. 9525func (iter ClientDiscoveryResponseIterator) Response() ClientDiscoveryResponse { 9526 return iter.page.Response() 9527} 9528 9529// Value returns the current value or a zero-initialized value if the 9530// iterator has advanced beyond the end of the collection. 9531func (iter ClientDiscoveryResponseIterator) Value() ClientDiscoveryValueForSingleAPI { 9532 if !iter.page.NotDone() { 9533 return ClientDiscoveryValueForSingleAPI{} 9534 } 9535 return iter.page.Values()[iter.i] 9536} 9537 9538// Creates a new instance of the ClientDiscoveryResponseIterator type. 9539func NewClientDiscoveryResponseIterator(page ClientDiscoveryResponsePage) ClientDiscoveryResponseIterator { 9540 return ClientDiscoveryResponseIterator{page: page} 9541} 9542 9543// IsEmpty returns true if the ListResult contains no values. 9544func (cdr ClientDiscoveryResponse) IsEmpty() bool { 9545 return cdr.Value == nil || len(*cdr.Value) == 0 9546} 9547 9548// hasNextLink returns true if the NextLink is not empty. 9549func (cdr ClientDiscoveryResponse) hasNextLink() bool { 9550 return cdr.NextLink != nil && len(*cdr.NextLink) != 0 9551} 9552 9553// clientDiscoveryResponsePreparer prepares a request to retrieve the next set of results. 9554// It returns nil if no more results exist. 9555func (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// ClientDiscoveryResponsePage contains a page of ClientDiscoveryValueForSingleAPI values. 9566type ClientDiscoveryResponsePage struct { 9567 fn func(context.Context, ClientDiscoveryResponse) (ClientDiscoveryResponse, error) 9568 cdr ClientDiscoveryResponse 9569} 9570 9571// NextWithContext advances to the next page of values. If there was an error making 9572// the request the page does not advance and the error is returned. 9573func (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// Next advances to the next page of values. If there was an error making 9598// the request the page does not advance and the error is returned. 9599// Deprecated: Use NextWithContext() instead. 9600func (page *ClientDiscoveryResponsePage) Next() error { 9601 return page.NextWithContext(context.Background()) 9602} 9603 9604// NotDone returns true if the page enumeration should be started or is not yet complete. 9605func (page ClientDiscoveryResponsePage) NotDone() bool { 9606 return !page.cdr.IsEmpty() 9607} 9608 9609// Response returns the raw server response from the last page request. 9610func (page ClientDiscoveryResponsePage) Response() ClientDiscoveryResponse { 9611 return page.cdr 9612} 9613 9614// Values returns the slice of values for the current page or nil if there are no values. 9615func (page ClientDiscoveryResponsePage) Values() []ClientDiscoveryValueForSingleAPI { 9616 if page.cdr.IsEmpty() { 9617 return nil 9618 } 9619 return *page.cdr.Value 9620} 9621 9622// Creates a new instance of the ClientDiscoveryResponsePage type. 9623func NewClientDiscoveryResponsePage(cur ClientDiscoveryResponse, getNextPage func(context.Context, ClientDiscoveryResponse) (ClientDiscoveryResponse, error)) ClientDiscoveryResponsePage { 9624 return ClientDiscoveryResponsePage{ 9625 fn: getNextPage, 9626 cdr: cur, 9627 } 9628} 9629 9630// ClientDiscoveryValueForSingleAPI available operation details. 9631type ClientDiscoveryValueForSingleAPI struct { 9632 // Name - Name of the Operation. 9633 Name *string `json:"name,omitempty"` 9634 // Display - Contains the localized display information for this particular operation 9635 Display *ClientDiscoveryDisplay `json:"display,omitempty"` 9636 // Origin - The intended executor of the operation;governs the display of the operation in the RBAC UX and the audit logs UX 9637 Origin *string `json:"origin,omitempty"` 9638 // Properties - ShoeBox properties for the given operation. 9639 Properties *ClientDiscoveryForProperties `json:"properties,omitempty"` 9640} 9641 9642// ClientScriptForConnect client script details for file / folder restore. 9643type ClientScriptForConnect struct { 9644 // ScriptContent - File content of the client script for file / folder restore. 9645 ScriptContent *string `json:"scriptContent,omitempty"` 9646 // ScriptExtension - File extension of the client script for file / folder restore - .ps1 , .sh , etc. 9647 ScriptExtension *string `json:"scriptExtension,omitempty"` 9648 // OsType - OS type - Windows, Linux etc. for which this file / folder restore client script works. 9649 OsType *string `json:"osType,omitempty"` 9650 // URL - URL of Executable from where to source the content. If this is not null then ScriptContent should not be used 9651 URL *string `json:"url,omitempty"` 9652 // ScriptNameSuffix - Mandatory suffix that should be added to the name of script that is given for download to user. 9653 // If its null or empty then , ignore it. 9654 ScriptNameSuffix *string `json:"scriptNameSuffix,omitempty"` 9655} 9656 9657// ContainerIdentityInfo container identity information 9658type ContainerIdentityInfo struct { 9659 // UniqueName - Unique name of the container 9660 UniqueName *string `json:"uniqueName,omitempty"` 9661 // AadTenantID - Protection container identity - AAD Tenant 9662 AadTenantID *string `json:"aadTenantId,omitempty"` 9663 // ServicePrincipalClientID - Protection container identity - AAD Service Principal 9664 ServicePrincipalClientID *string `json:"servicePrincipalClientId,omitempty"` 9665 // Audience - Protection container identity - Audience 9666 Audience *string `json:"audience,omitempty"` 9667} 9668 9669// DailyRetentionFormat daily retention format. 9670type DailyRetentionFormat struct { 9671 // DaysOfTheMonth - List of days of the month. 9672 DaysOfTheMonth *[]Day `json:"daysOfTheMonth,omitempty"` 9673} 9674 9675// DailyRetentionSchedule daily retention schedule. 9676type DailyRetentionSchedule struct { 9677 // RetentionTimes - Retention times of retention policy. 9678 RetentionTimes *[]date.Time `json:"retentionTimes,omitempty"` 9679 // RetentionDuration - Retention duration of retention Policy. 9680 RetentionDuration *RetentionDuration `json:"retentionDuration,omitempty"` 9681} 9682 9683// Day day of the week. 9684type Day struct { 9685 // Date - Date of the month 9686 Date *int32 `json:"date,omitempty"` 9687 // IsLast - Whether Date is last date of month 9688 IsLast *bool `json:"isLast,omitempty"` 9689} 9690 9691// DiskExclusionProperties ... 9692type DiskExclusionProperties struct { 9693 // DiskLunList - List of Disks' Logical Unit Numbers (LUN) to be used for VM Protection. 9694 DiskLunList *[]int32 `json:"diskLunList,omitempty"` 9695 // IsInclusionList - Flag to indicate whether DiskLunList is to be included/ excluded from backup. 9696 IsInclusionList *bool `json:"isInclusionList,omitempty"` 9697} 9698 9699// DiskInformation disk information 9700type DiskInformation struct { 9701 Lun *int32 `json:"lun,omitempty"` 9702 Name *string `json:"name,omitempty"` 9703} 9704 9705// DistributedNodesInfo this is used to represent the various nodes of the distributed container. 9706type DistributedNodesInfo struct { 9707 // NodeName - Name of the node under a distributed container. 9708 NodeName *string `json:"nodeName,omitempty"` 9709 // Status - Status of this Node. 9710 // Failed | Succeeded 9711 Status *string `json:"status,omitempty"` 9712 // ErrorDetail - Error Details if the Status is non-success. 9713 ErrorDetail *ErrorDetail `json:"errorDetail,omitempty"` 9714} 9715 9716// DpmBackupEngine data Protection Manager (DPM) specific backup engine. 9717type DpmBackupEngine struct { 9718 // FriendlyName - Friendly name of the backup engine. 9719 FriendlyName *string `json:"friendlyName,omitempty"` 9720 // BackupManagementType - Type of backup management for the backup engine. Possible values include: 'ManagementTypeInvalid', 'ManagementTypeAzureIaasVM', 'ManagementTypeMAB', 'ManagementTypeDPM', 'ManagementTypeAzureBackupServer', 'ManagementTypeAzureSQL', 'ManagementTypeAzureStorage', 'ManagementTypeAzureWorkload', 'ManagementTypeDefaultBackup' 9721 BackupManagementType ManagementType `json:"backupManagementType,omitempty"` 9722 // RegistrationStatus - Registration status of the backup engine with the Recovery Services Vault. 9723 RegistrationStatus *string `json:"registrationStatus,omitempty"` 9724 // BackupEngineState - Status of the backup engine with the Recovery Services Vault. = {Active/Deleting/DeleteFailed} 9725 BackupEngineState *string `json:"backupEngineState,omitempty"` 9726 // HealthStatus - Backup status of the backup engine. 9727 HealthStatus *string `json:"healthStatus,omitempty"` 9728 // CanReRegister - Flag indicating if the backup engine be registered, once already registered. 9729 CanReRegister *bool `json:"canReRegister,omitempty"` 9730 // BackupEngineID - ID of the backup engine. 9731 BackupEngineID *string `json:"backupEngineId,omitempty"` 9732 // DpmVersion - Backup engine version 9733 DpmVersion *string `json:"dpmVersion,omitempty"` 9734 // AzureBackupAgentVersion - Backup agent version 9735 AzureBackupAgentVersion *string `json:"azureBackupAgentVersion,omitempty"` 9736 // IsAzureBackupAgentUpgradeAvailable - To check if backup agent upgrade available 9737 IsAzureBackupAgentUpgradeAvailable *bool `json:"isAzureBackupAgentUpgradeAvailable,omitempty"` 9738 // IsDpmUpgradeAvailable - To check if backup engine upgrade available 9739 IsDpmUpgradeAvailable *bool `json:"isDpmUpgradeAvailable,omitempty"` 9740 // ExtendedInfo - Extended info of the backupengine 9741 ExtendedInfo *EngineExtendedInfo `json:"extendedInfo,omitempty"` 9742 // BackupEngineType - Possible values include: 'BackupEngineTypeBackupEngineBase', 'BackupEngineTypeAzureBackupServerEngine', 'BackupEngineTypeDpmBackupEngine' 9743 BackupEngineType EngineType `json:"backupEngineType,omitempty"` 9744} 9745 9746// MarshalJSON is the custom marshaler for DpmBackupEngine. 9747func (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// AsAzureBackupServerEngine is the BasicEngineBase implementation for DpmBackupEngine. 9793func (dbe DpmBackupEngine) AsAzureBackupServerEngine() (*AzureBackupServerEngine, bool) { 9794 return nil, false 9795} 9796 9797// AsDpmBackupEngine is the BasicEngineBase implementation for DpmBackupEngine. 9798func (dbe DpmBackupEngine) AsDpmBackupEngine() (*DpmBackupEngine, bool) { 9799 return &dbe, true 9800} 9801 9802// AsEngineBase is the BasicEngineBase implementation for DpmBackupEngine. 9803func (dbe DpmBackupEngine) AsEngineBase() (*EngineBase, bool) { 9804 return nil, false 9805} 9806 9807// AsBasicEngineBase is the BasicEngineBase implementation for DpmBackupEngine. 9808func (dbe DpmBackupEngine) AsBasicEngineBase() (BasicEngineBase, bool) { 9809 return &dbe, true 9810} 9811 9812// BasicDpmContainer DPM workload-specific protection container. 9813type BasicDpmContainer interface { 9814 AsAzureBackupServerContainer() (*AzureBackupServerContainer, bool) 9815 AsDpmContainer() (*DpmContainer, bool) 9816} 9817 9818// DpmContainer DPM workload-specific protection container. 9819type DpmContainer struct { 9820 // CanReRegister - Specifies whether the container is re-registrable. 9821 CanReRegister *bool `json:"canReRegister,omitempty"` 9822 // ContainerID - ID of container. 9823 ContainerID *string `json:"containerId,omitempty"` 9824 // ProtectedItemCount - Number of protected items in the BackupEngine 9825 ProtectedItemCount *int64 `json:"protectedItemCount,omitempty"` 9826 // DpmAgentVersion - Backup engine Agent version 9827 DpmAgentVersion *string `json:"dpmAgentVersion,omitempty"` 9828 // DpmServers - List of BackupEngines protecting the container 9829 DpmServers *[]string `json:"dpmServers,omitempty"` 9830 // UpgradeAvailable - To check if upgrade available 9831 UpgradeAvailable *bool `json:"upgradeAvailable,omitempty"` 9832 // ProtectionStatus - Protection status of the container. 9833 ProtectionStatus *string `json:"protectionStatus,omitempty"` 9834 // ExtendedInfo - Extended Info of the container. 9835 ExtendedInfo *DPMContainerExtendedInfo `json:"extendedInfo,omitempty"` 9836 // FriendlyName - Friendly name of the container. 9837 FriendlyName *string `json:"friendlyName,omitempty"` 9838 // BackupManagementType - Type of backup management for the container. Possible values include: 'ManagementTypeInvalid', 'ManagementTypeAzureIaasVM', 'ManagementTypeMAB', 'ManagementTypeDPM', 'ManagementTypeAzureBackupServer', 'ManagementTypeAzureSQL', 'ManagementTypeAzureStorage', 'ManagementTypeAzureWorkload', 'ManagementTypeDefaultBackup' 9839 BackupManagementType ManagementType `json:"backupManagementType,omitempty"` 9840 // RegistrationStatus - Status of registration of the container with the Recovery Services Vault. 9841 RegistrationStatus *string `json:"registrationStatus,omitempty"` 9842 // HealthStatus - Status of health of the container. 9843 HealthStatus *string `json:"healthStatus,omitempty"` 9844 // ContainerType - Possible values include: 'ContainerTypeProtectionContainer', 'ContainerTypeAzureBackupServerContainer1', 'ContainerTypeMicrosoftClassicComputevirtualMachines', 'ContainerTypeMicrosoftComputevirtualMachines', 'ContainerTypeSQLAGWorkLoadContainer1', 'ContainerTypeAzureSQLContainer1', 'ContainerTypeStorageContainer1', 'ContainerTypeVMAppContainer1', 'ContainerTypeAzureWorkloadContainer', 'ContainerTypeDPMContainer1', 'ContainerTypeGenericContainer1', 'ContainerTypeIaaSVMContainer', 'ContainerTypeWindows1' 9845 ContainerType ContainerTypeBasicProtectionContainer `json:"containerType,omitempty"` 9846} 9847 9848func 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} 9866func 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// MarshalJSON is the custom marshaler for DpmContainer. 9886func (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// AsAzureBackupServerContainer is the BasicProtectionContainer implementation for DpmContainer. 9932func (dc DpmContainer) AsAzureBackupServerContainer() (*AzureBackupServerContainer, bool) { 9933 return nil, false 9934} 9935 9936// AsAzureIaaSClassicComputeVMContainer is the BasicProtectionContainer implementation for DpmContainer. 9937func (dc DpmContainer) AsAzureIaaSClassicComputeVMContainer() (*AzureIaaSClassicComputeVMContainer, bool) { 9938 return nil, false 9939} 9940 9941// AsAzureIaaSComputeVMContainer is the BasicProtectionContainer implementation for DpmContainer. 9942func (dc DpmContainer) AsAzureIaaSComputeVMContainer() (*AzureIaaSComputeVMContainer, bool) { 9943 return nil, false 9944} 9945 9946// AsAzureSQLAGWorkloadContainerProtectionContainer is the BasicProtectionContainer implementation for DpmContainer. 9947func (dc DpmContainer) AsAzureSQLAGWorkloadContainerProtectionContainer() (*AzureSQLAGWorkloadContainerProtectionContainer, bool) { 9948 return nil, false 9949} 9950 9951// AsAzureSQLContainer is the BasicProtectionContainer implementation for DpmContainer. 9952func (dc DpmContainer) AsAzureSQLContainer() (*AzureSQLContainer, bool) { 9953 return nil, false 9954} 9955 9956// AsAzureStorageContainer is the BasicProtectionContainer implementation for DpmContainer. 9957func (dc DpmContainer) AsAzureStorageContainer() (*AzureStorageContainer, bool) { 9958 return nil, false 9959} 9960 9961// AsAzureVMAppContainerProtectionContainer is the BasicProtectionContainer implementation for DpmContainer. 9962func (dc DpmContainer) AsAzureVMAppContainerProtectionContainer() (*AzureVMAppContainerProtectionContainer, bool) { 9963 return nil, false 9964} 9965 9966// AsAzureWorkloadContainer is the BasicProtectionContainer implementation for DpmContainer. 9967func (dc DpmContainer) AsAzureWorkloadContainer() (*AzureWorkloadContainer, bool) { 9968 return nil, false 9969} 9970 9971// AsBasicAzureWorkloadContainer is the BasicProtectionContainer implementation for DpmContainer. 9972func (dc DpmContainer) AsBasicAzureWorkloadContainer() (BasicAzureWorkloadContainer, bool) { 9973 return nil, false 9974} 9975 9976// AsDpmContainer is the BasicProtectionContainer implementation for DpmContainer. 9977func (dc DpmContainer) AsDpmContainer() (*DpmContainer, bool) { 9978 return &dc, true 9979} 9980 9981// AsBasicDpmContainer is the BasicProtectionContainer implementation for DpmContainer. 9982func (dc DpmContainer) AsBasicDpmContainer() (BasicDpmContainer, bool) { 9983 return &dc, true 9984} 9985 9986// AsGenericContainer is the BasicProtectionContainer implementation for DpmContainer. 9987func (dc DpmContainer) AsGenericContainer() (*GenericContainer, bool) { 9988 return nil, false 9989} 9990 9991// AsIaaSVMContainer is the BasicProtectionContainer implementation for DpmContainer. 9992func (dc DpmContainer) AsIaaSVMContainer() (*IaaSVMContainer, bool) { 9993 return nil, false 9994} 9995 9996// AsBasicIaaSVMContainer is the BasicProtectionContainer implementation for DpmContainer. 9997func (dc DpmContainer) AsBasicIaaSVMContainer() (BasicIaaSVMContainer, bool) { 9998 return nil, false 9999} 10000 10001// AsMabContainer is the BasicProtectionContainer implementation for DpmContainer. 10002func (dc DpmContainer) AsMabContainer() (*MabContainer, bool) { 10003 return nil, false 10004} 10005 10006// AsProtectionContainer is the BasicProtectionContainer implementation for DpmContainer. 10007func (dc DpmContainer) AsProtectionContainer() (*ProtectionContainer, bool) { 10008 return nil, false 10009} 10010 10011// AsBasicProtectionContainer is the BasicProtectionContainer implementation for DpmContainer. 10012func (dc DpmContainer) AsBasicProtectionContainer() (BasicProtectionContainer, bool) { 10013 return &dc, true 10014} 10015 10016// DPMContainerExtendedInfo additional information of the DPMContainer. 10017type DPMContainerExtendedInfo struct { 10018 // LastRefreshedAt - Last refresh time of the DPMContainer. 10019 LastRefreshedAt *date.Time `json:"lastRefreshedAt,omitempty"` 10020} 10021 10022// DpmErrorInfo DPM workload-specific error information. 10023type DpmErrorInfo struct { 10024 // ErrorString - Localized error string. 10025 ErrorString *string `json:"errorString,omitempty"` 10026 // Recommendations - List of localized recommendations for above error code. 10027 Recommendations *[]string `json:"recommendations,omitempty"` 10028} 10029 10030// DpmJob DPM workload-specific job object. 10031type DpmJob struct { 10032 // Duration - Time elapsed for job. 10033 Duration *string `json:"duration,omitempty"` 10034 // DpmServerName - DPM server name managing the backup item or backup job. 10035 DpmServerName *string `json:"dpmServerName,omitempty"` 10036 // ContainerName - Name of cluster/server protecting current backup item, if any. 10037 ContainerName *string `json:"containerName,omitempty"` 10038 // ContainerType - Type of container. 10039 ContainerType *string `json:"containerType,omitempty"` 10040 // WorkloadType - Type of backup item. 10041 WorkloadType *string `json:"workloadType,omitempty"` 10042 // ActionsInfo - The state/actions applicable on this job like cancel/retry. 10043 ActionsInfo *[]JobSupportedAction `json:"actionsInfo,omitempty"` 10044 // ErrorDetails - The errors. 10045 ErrorDetails *[]DpmErrorInfo `json:"errorDetails,omitempty"` 10046 // ExtendedInfo - Additional information for this job. 10047 ExtendedInfo *DpmJobExtendedInfo `json:"extendedInfo,omitempty"` 10048 // EntityFriendlyName - Friendly name of the entity on which the current job is executing. 10049 EntityFriendlyName *string `json:"entityFriendlyName,omitempty"` 10050 // BackupManagementType - Backup management type to execute the current job. Possible values include: 'ManagementTypeInvalid', 'ManagementTypeAzureIaasVM', 'ManagementTypeMAB', 'ManagementTypeDPM', 'ManagementTypeAzureBackupServer', 'ManagementTypeAzureSQL', 'ManagementTypeAzureStorage', 'ManagementTypeAzureWorkload', 'ManagementTypeDefaultBackup' 10051 BackupManagementType ManagementType `json:"backupManagementType,omitempty"` 10052 // Operation - The operation name. 10053 Operation *string `json:"operation,omitempty"` 10054 // Status - Job status. 10055 Status *string `json:"status,omitempty"` 10056 // StartTime - The start time. 10057 StartTime *date.Time `json:"startTime,omitempty"` 10058 // EndTime - The end time. 10059 EndTime *date.Time `json:"endTime,omitempty"` 10060 // ActivityID - ActivityId of job. 10061 ActivityID *string `json:"activityId,omitempty"` 10062 // JobType - Possible values include: 'JobTypeJob', 'JobTypeAzureIaaSVMJob', 'JobTypeAzureStorageJob', 'JobTypeAzureWorkloadJob', 'JobTypeDpmJob', 'JobTypeMabJob' 10063 JobType JobType `json:"jobType,omitempty"` 10064} 10065 10066// MarshalJSON is the custom marshaler for DpmJob. 10067func (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// AsAzureIaaSVMJob is the BasicJob implementation for DpmJob. 10122func (dj DpmJob) AsAzureIaaSVMJob() (*AzureIaaSVMJob, bool) { 10123 return nil, false 10124} 10125 10126// AsAzureStorageJob is the BasicJob implementation for DpmJob. 10127func (dj DpmJob) AsAzureStorageJob() (*AzureStorageJob, bool) { 10128 return nil, false 10129} 10130 10131// AsAzureWorkloadJob is the BasicJob implementation for DpmJob. 10132func (dj DpmJob) AsAzureWorkloadJob() (*AzureWorkloadJob, bool) { 10133 return nil, false 10134} 10135 10136// AsDpmJob is the BasicJob implementation for DpmJob. 10137func (dj DpmJob) AsDpmJob() (*DpmJob, bool) { 10138 return &dj, true 10139} 10140 10141// AsMabJob is the BasicJob implementation for DpmJob. 10142func (dj DpmJob) AsMabJob() (*MabJob, bool) { 10143 return nil, false 10144} 10145 10146// AsJob is the BasicJob implementation for DpmJob. 10147func (dj DpmJob) AsJob() (*Job, bool) { 10148 return nil, false 10149} 10150 10151// AsBasicJob is the BasicJob implementation for DpmJob. 10152func (dj DpmJob) AsBasicJob() (BasicJob, bool) { 10153 return &dj, true 10154} 10155 10156// DpmJobExtendedInfo additional information on the DPM workload-specific job. 10157type DpmJobExtendedInfo struct { 10158 // TasksList - List of tasks associated with this job. 10159 TasksList *[]DpmJobTaskDetails `json:"tasksList,omitempty"` 10160 // PropertyBag - The job properties. 10161 PropertyBag map[string]*string `json:"propertyBag"` 10162 // DynamicErrorMessage - Non localized error message on job execution. 10163 DynamicErrorMessage *string `json:"dynamicErrorMessage,omitempty"` 10164} 10165 10166// MarshalJSON is the custom marshaler for DpmJobExtendedInfo. 10167func (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// DpmJobTaskDetails DPM workload-specific job task details. 10182type DpmJobTaskDetails struct { 10183 // TaskID - The task display name. 10184 TaskID *string `json:"taskId,omitempty"` 10185 // StartTime - The start time. 10186 StartTime *date.Time `json:"startTime,omitempty"` 10187 // EndTime - The end time. 10188 EndTime *date.Time `json:"endTime,omitempty"` 10189 // Duration - Time elapsed for task. 10190 Duration *string `json:"duration,omitempty"` 10191 // Status - The status. 10192 Status *string `json:"status,omitempty"` 10193} 10194 10195// DPMProtectedItem additional information on Backup engine specific backup item. 10196type DPMProtectedItem struct { 10197 // FriendlyName - Friendly name of the managed item 10198 FriendlyName *string `json:"friendlyName,omitempty"` 10199 // BackupEngineName - Backup Management server protecting this backup item 10200 BackupEngineName *string `json:"backupEngineName,omitempty"` 10201 // ProtectionState - Protection state of the backup engine. Possible values include: 'ProtectedItemStateInvalid', 'ProtectedItemStateIRPending', 'ProtectedItemStateProtected', 'ProtectedItemStateProtectionError', 'ProtectedItemStateProtectionStopped', 'ProtectedItemStateProtectionPaused' 10202 ProtectionState ProtectedItemState `json:"protectionState,omitempty"` 10203 // ExtendedInfo - Extended info of the backup item. 10204 ExtendedInfo *DPMProtectedItemExtendedInfo `json:"extendedInfo,omitempty"` 10205 // BackupManagementType - Type of backup management for the backed up item. Possible values include: 'ManagementTypeInvalid', 'ManagementTypeAzureIaasVM', 'ManagementTypeMAB', 'ManagementTypeDPM', 'ManagementTypeAzureBackupServer', 'ManagementTypeAzureSQL', 'ManagementTypeAzureStorage', 'ManagementTypeAzureWorkload', 'ManagementTypeDefaultBackup' 10206 BackupManagementType ManagementType `json:"backupManagementType,omitempty"` 10207 // WorkloadType - Type of workload this item represents. Possible values include: 'DataSourceTypeInvalid', 'DataSourceTypeVM', 'DataSourceTypeFileFolder', 'DataSourceTypeAzureSQLDb', 'DataSourceTypeSQLDB', 'DataSourceTypeExchange', 'DataSourceTypeSharepoint', 'DataSourceTypeVMwareVM', 'DataSourceTypeSystemState', 'DataSourceTypeClient', 'DataSourceTypeGenericDataSource', 'DataSourceTypeSQLDataBase', 'DataSourceTypeAzureFileShare', 'DataSourceTypeSAPHanaDatabase', 'DataSourceTypeSAPAseDatabase' 10208 WorkloadType DataSourceType `json:"workloadType,omitempty"` 10209 // ContainerName - Unique name of container 10210 ContainerName *string `json:"containerName,omitempty"` 10211 // SourceResourceID - ARM ID of the resource to be backed up. 10212 SourceResourceID *string `json:"sourceResourceId,omitempty"` 10213 // PolicyID - ID of the backup policy with which this item is backed up. 10214 PolicyID *string `json:"policyId,omitempty"` 10215 // LastRecoveryPoint - Timestamp when the last (latest) backup copy was created for this backup item. 10216 LastRecoveryPoint *date.Time `json:"lastRecoveryPoint,omitempty"` 10217 // BackupSetName - Name of the backup set the backup item belongs to 10218 BackupSetName *string `json:"backupSetName,omitempty"` 10219 // CreateMode - Create mode to indicate recovery of existing soft deleted data source or creation of new data source. Possible values include: 'CreateModeInvalid', 'CreateModeDefault', 'CreateModeRecover' 10220 CreateMode CreateMode `json:"createMode,omitempty"` 10221 // DeferredDeleteTimeInUTC - Time for deferred deletion in UTC 10222 DeferredDeleteTimeInUTC *date.Time `json:"deferredDeleteTimeInUTC,omitempty"` 10223 // IsScheduledForDeferredDelete - Flag to identify whether the DS is scheduled for deferred delete 10224 IsScheduledForDeferredDelete *bool `json:"isScheduledForDeferredDelete,omitempty"` 10225 // DeferredDeleteTimeRemaining - Time remaining before the DS marked for deferred delete is permanently deleted 10226 DeferredDeleteTimeRemaining *string `json:"deferredDeleteTimeRemaining,omitempty"` 10227 // IsDeferredDeleteScheduleUpcoming - Flag to identify whether the deferred deleted DS is to be purged soon 10228 IsDeferredDeleteScheduleUpcoming *bool `json:"isDeferredDeleteScheduleUpcoming,omitempty"` 10229 // IsRehydrate - Flag to identify that deferred deleted DS is to be moved into Pause state 10230 IsRehydrate *bool `json:"isRehydrate,omitempty"` 10231 // ProtectedItemType - Possible values include: 'ProtectedItemTypeProtectedItem', 'ProtectedItemTypeAzureFileShareProtectedItem', 'ProtectedItemTypeMicrosoftClassicComputevirtualMachines', 'ProtectedItemTypeMicrosoftComputevirtualMachines', 'ProtectedItemTypeAzureIaaSVMProtectedItem', 'ProtectedItemTypeMicrosoftSqlserversdatabases', 'ProtectedItemTypeAzureVMWorkloadProtectedItem', 'ProtectedItemTypeAzureVMWorkloadSAPAseDatabase', 'ProtectedItemTypeAzureVMWorkloadSAPHanaDatabase', 'ProtectedItemTypeAzureVMWorkloadSQLDatabase', 'ProtectedItemTypeDPMProtectedItem', 'ProtectedItemTypeGenericProtectedItem', 'ProtectedItemTypeMabFileFolderProtectedItem' 10232 ProtectedItemType ProtectedItemType `json:"protectedItemType,omitempty"` 10233} 10234 10235// MarshalJSON is the custom marshaler for DPMProtectedItem. 10236func (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// AsAzureFileshareProtectedItem is the BasicProtectedItem implementation for DPMProtectedItem. 10297func (dpi DPMProtectedItem) AsAzureFileshareProtectedItem() (*AzureFileshareProtectedItem, bool) { 10298 return nil, false 10299} 10300 10301// AsAzureIaaSClassicComputeVMProtectedItem is the BasicProtectedItem implementation for DPMProtectedItem. 10302func (dpi DPMProtectedItem) AsAzureIaaSClassicComputeVMProtectedItem() (*AzureIaaSClassicComputeVMProtectedItem, bool) { 10303 return nil, false 10304} 10305 10306// AsAzureIaaSComputeVMProtectedItem is the BasicProtectedItem implementation for DPMProtectedItem. 10307func (dpi DPMProtectedItem) AsAzureIaaSComputeVMProtectedItem() (*AzureIaaSComputeVMProtectedItem, bool) { 10308 return nil, false 10309} 10310 10311// AsAzureIaaSVMProtectedItem is the BasicProtectedItem implementation for DPMProtectedItem. 10312func (dpi DPMProtectedItem) AsAzureIaaSVMProtectedItem() (*AzureIaaSVMProtectedItem, bool) { 10313 return nil, false 10314} 10315 10316// AsBasicAzureIaaSVMProtectedItem is the BasicProtectedItem implementation for DPMProtectedItem. 10317func (dpi DPMProtectedItem) AsBasicAzureIaaSVMProtectedItem() (BasicAzureIaaSVMProtectedItem, bool) { 10318 return nil, false 10319} 10320 10321// AsAzureSQLProtectedItem is the BasicProtectedItem implementation for DPMProtectedItem. 10322func (dpi DPMProtectedItem) AsAzureSQLProtectedItem() (*AzureSQLProtectedItem, bool) { 10323 return nil, false 10324} 10325 10326// AsAzureVMWorkloadProtectedItem is the BasicProtectedItem implementation for DPMProtectedItem. 10327func (dpi DPMProtectedItem) AsAzureVMWorkloadProtectedItem() (*AzureVMWorkloadProtectedItem, bool) { 10328 return nil, false 10329} 10330 10331// AsBasicAzureVMWorkloadProtectedItem is the BasicProtectedItem implementation for DPMProtectedItem. 10332func (dpi DPMProtectedItem) AsBasicAzureVMWorkloadProtectedItem() (BasicAzureVMWorkloadProtectedItem, bool) { 10333 return nil, false 10334} 10335 10336// AsAzureVMWorkloadSAPAseDatabaseProtectedItem is the BasicProtectedItem implementation for DPMProtectedItem. 10337func (dpi DPMProtectedItem) AsAzureVMWorkloadSAPAseDatabaseProtectedItem() (*AzureVMWorkloadSAPAseDatabaseProtectedItem, bool) { 10338 return nil, false 10339} 10340 10341// AsAzureVMWorkloadSAPHanaDatabaseProtectedItem is the BasicProtectedItem implementation for DPMProtectedItem. 10342func (dpi DPMProtectedItem) AsAzureVMWorkloadSAPHanaDatabaseProtectedItem() (*AzureVMWorkloadSAPHanaDatabaseProtectedItem, bool) { 10343 return nil, false 10344} 10345 10346// AsAzureVMWorkloadSQLDatabaseProtectedItem is the BasicProtectedItem implementation for DPMProtectedItem. 10347func (dpi DPMProtectedItem) AsAzureVMWorkloadSQLDatabaseProtectedItem() (*AzureVMWorkloadSQLDatabaseProtectedItem, bool) { 10348 return nil, false 10349} 10350 10351// AsDPMProtectedItem is the BasicProtectedItem implementation for DPMProtectedItem. 10352func (dpi DPMProtectedItem) AsDPMProtectedItem() (*DPMProtectedItem, bool) { 10353 return &dpi, true 10354} 10355 10356// AsGenericProtectedItem is the BasicProtectedItem implementation for DPMProtectedItem. 10357func (dpi DPMProtectedItem) AsGenericProtectedItem() (*GenericProtectedItem, bool) { 10358 return nil, false 10359} 10360 10361// AsMabFileFolderProtectedItem is the BasicProtectedItem implementation for DPMProtectedItem. 10362func (dpi DPMProtectedItem) AsMabFileFolderProtectedItem() (*MabFileFolderProtectedItem, bool) { 10363 return nil, false 10364} 10365 10366// AsProtectedItem is the BasicProtectedItem implementation for DPMProtectedItem. 10367func (dpi DPMProtectedItem) AsProtectedItem() (*ProtectedItem, bool) { 10368 return nil, false 10369} 10370 10371// AsBasicProtectedItem is the BasicProtectedItem implementation for DPMProtectedItem. 10372func (dpi DPMProtectedItem) AsBasicProtectedItem() (BasicProtectedItem, bool) { 10373 return &dpi, true 10374} 10375 10376// DPMProtectedItemExtendedInfo additional information of DPM Protected item. 10377type DPMProtectedItemExtendedInfo struct { 10378 // ProtectableObjectLoadPath - Attribute to provide information on various DBs. 10379 ProtectableObjectLoadPath map[string]*string `json:"protectableObjectLoadPath"` 10380 // Protected - To check if backup item is disk protected. 10381 Protected *bool `json:"protected,omitempty"` 10382 // IsPresentOnCloud - To check if backup item is cloud protected. 10383 IsPresentOnCloud *bool `json:"isPresentOnCloud,omitempty"` 10384 // LastBackupStatus - Last backup status information on backup item. 10385 LastBackupStatus *string `json:"lastBackupStatus,omitempty"` 10386 // LastRefreshedAt - Last refresh time on backup item. 10387 LastRefreshedAt *date.Time `json:"lastRefreshedAt,omitempty"` 10388 // OldestRecoveryPoint - Oldest cloud recovery point time. 10389 OldestRecoveryPoint *date.Time `json:"oldestRecoveryPoint,omitempty"` 10390 // RecoveryPointCount - cloud recovery point count. 10391 RecoveryPointCount *int32 `json:"recoveryPointCount,omitempty"` 10392 // OnPremiseOldestRecoveryPoint - Oldest disk recovery point time. 10393 OnPremiseOldestRecoveryPoint *date.Time `json:"onPremiseOldestRecoveryPoint,omitempty"` 10394 // OnPremiseLatestRecoveryPoint - latest disk recovery point time. 10395 OnPremiseLatestRecoveryPoint *date.Time `json:"onPremiseLatestRecoveryPoint,omitempty"` 10396 // OnPremiseRecoveryPointCount - disk recovery point count. 10397 OnPremiseRecoveryPointCount *int32 `json:"onPremiseRecoveryPointCount,omitempty"` 10398 // IsCollocated - To check if backup item is collocated. 10399 IsCollocated *bool `json:"isCollocated,omitempty"` 10400 // ProtectionGroupName - Protection group name of the backup item. 10401 ProtectionGroupName *string `json:"protectionGroupName,omitempty"` 10402 // DiskStorageUsedInBytes - Used Disk storage in bytes. 10403 DiskStorageUsedInBytes *string `json:"diskStorageUsedInBytes,omitempty"` 10404 // TotalDiskStorageSizeInBytes - total Disk storage in bytes. 10405 TotalDiskStorageSizeInBytes *string `json:"totalDiskStorageSizeInBytes,omitempty"` 10406} 10407 10408// MarshalJSON is the custom marshaler for DPMProtectedItemExtendedInfo. 10409func (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// EncryptionDetails details needed if the VM was encrypted at the time of backup. 10457type EncryptionDetails struct { 10458 // EncryptionEnabled - Identifies whether this backup copy represents an encrypted VM at the time of backup. 10459 EncryptionEnabled *bool `json:"encryptionEnabled,omitempty"` 10460 // KekURL - Key Url. 10461 KekURL *string `json:"kekUrl,omitempty"` 10462 // SecretKeyURL - Secret Url. 10463 SecretKeyURL *string `json:"secretKeyUrl,omitempty"` 10464 // KekVaultID - ID of Key Vault where KEK is stored. 10465 KekVaultID *string `json:"kekVaultId,omitempty"` 10466 // SecretKeyVaultID - ID of Key Vault where Secret is stored. 10467 SecretKeyVaultID *string `json:"secretKeyVaultId,omitempty"` 10468} 10469 10470// BasicEngineBase the base backup engine class. All workload specific backup engines derive from this class. 10471type BasicEngineBase interface { 10472 AsAzureBackupServerEngine() (*AzureBackupServerEngine, bool) 10473 AsDpmBackupEngine() (*DpmBackupEngine, bool) 10474 AsEngineBase() (*EngineBase, bool) 10475} 10476 10477// EngineBase the base backup engine class. All workload specific backup engines derive from this class. 10478type EngineBase struct { 10479 // FriendlyName - Friendly name of the backup engine. 10480 FriendlyName *string `json:"friendlyName,omitempty"` 10481 // BackupManagementType - Type of backup management for the backup engine. Possible values include: 'ManagementTypeInvalid', 'ManagementTypeAzureIaasVM', 'ManagementTypeMAB', 'ManagementTypeDPM', 'ManagementTypeAzureBackupServer', 'ManagementTypeAzureSQL', 'ManagementTypeAzureStorage', 'ManagementTypeAzureWorkload', 'ManagementTypeDefaultBackup' 10482 BackupManagementType ManagementType `json:"backupManagementType,omitempty"` 10483 // RegistrationStatus - Registration status of the backup engine with the Recovery Services Vault. 10484 RegistrationStatus *string `json:"registrationStatus,omitempty"` 10485 // BackupEngineState - Status of the backup engine with the Recovery Services Vault. = {Active/Deleting/DeleteFailed} 10486 BackupEngineState *string `json:"backupEngineState,omitempty"` 10487 // HealthStatus - Backup status of the backup engine. 10488 HealthStatus *string `json:"healthStatus,omitempty"` 10489 // CanReRegister - Flag indicating if the backup engine be registered, once already registered. 10490 CanReRegister *bool `json:"canReRegister,omitempty"` 10491 // BackupEngineID - ID of the backup engine. 10492 BackupEngineID *string `json:"backupEngineId,omitempty"` 10493 // DpmVersion - Backup engine version 10494 DpmVersion *string `json:"dpmVersion,omitempty"` 10495 // AzureBackupAgentVersion - Backup agent version 10496 AzureBackupAgentVersion *string `json:"azureBackupAgentVersion,omitempty"` 10497 // IsAzureBackupAgentUpgradeAvailable - To check if backup agent upgrade available 10498 IsAzureBackupAgentUpgradeAvailable *bool `json:"isAzureBackupAgentUpgradeAvailable,omitempty"` 10499 // IsDpmUpgradeAvailable - To check if backup engine upgrade available 10500 IsDpmUpgradeAvailable *bool `json:"isDpmUpgradeAvailable,omitempty"` 10501 // ExtendedInfo - Extended info of the backupengine 10502 ExtendedInfo *EngineExtendedInfo `json:"extendedInfo,omitempty"` 10503 // BackupEngineType - Possible values include: 'BackupEngineTypeBackupEngineBase', 'BackupEngineTypeAzureBackupServerEngine', 'BackupEngineTypeDpmBackupEngine' 10504 BackupEngineType EngineType `json:"backupEngineType,omitempty"` 10505} 10506 10507func 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} 10529func 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// MarshalJSON is the custom marshaler for EngineBase. 10549func (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// AsAzureBackupServerEngine is the BasicEngineBase implementation for EngineBase. 10595func (eb EngineBase) AsAzureBackupServerEngine() (*AzureBackupServerEngine, bool) { 10596 return nil, false 10597} 10598 10599// AsDpmBackupEngine is the BasicEngineBase implementation for EngineBase. 10600func (eb EngineBase) AsDpmBackupEngine() (*DpmBackupEngine, bool) { 10601 return nil, false 10602} 10603 10604// AsEngineBase is the BasicEngineBase implementation for EngineBase. 10605func (eb EngineBase) AsEngineBase() (*EngineBase, bool) { 10606 return &eb, true 10607} 10608 10609// AsBasicEngineBase is the BasicEngineBase implementation for EngineBase. 10610func (eb EngineBase) AsBasicEngineBase() (BasicEngineBase, bool) { 10611 return &eb, true 10612} 10613 10614// EngineBaseResource the base backup engine class. All workload specific backup engines derive from this 10615// class. 10616type EngineBaseResource struct { 10617 autorest.Response `json:"-"` 10618 // Properties - BackupEngineBaseResource properties 10619 Properties BasicEngineBase `json:"properties,omitempty"` 10620 // ID - READ-ONLY; Resource Id represents the complete path to the resource. 10621 ID *string `json:"id,omitempty"` 10622 // Name - READ-ONLY; Resource name associated with the resource. 10623 Name *string `json:"name,omitempty"` 10624 // Type - READ-ONLY; Resource type represents the complete path of the form Namespace/ResourceType/ResourceType/... 10625 Type *string `json:"type,omitempty"` 10626 // Location - Resource location. 10627 Location *string `json:"location,omitempty"` 10628 // Tags - Resource tags. 10629 Tags map[string]*string `json:"tags"` 10630 // ETag - Optional ETag. 10631 ETag *string `json:"eTag,omitempty"` 10632} 10633 10634// MarshalJSON is the custom marshaler for EngineBaseResource. 10635func (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// UnmarshalJSON is the custom unmarshaler for EngineBaseResource struct. 10651func (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// EngineBaseResourceList list of BackupEngineBase resources 10728type EngineBaseResourceList struct { 10729 autorest.Response `json:"-"` 10730 // Value - List of resources. 10731 Value *[]EngineBaseResource `json:"value,omitempty"` 10732 // NextLink - The uri to fetch the next page of resources. Call ListNext() fetches next page of resources. 10733 NextLink *string `json:"nextLink,omitempty"` 10734} 10735 10736// EngineBaseResourceListIterator provides access to a complete listing of EngineBaseResource values. 10737type EngineBaseResourceListIterator struct { 10738 i int 10739 page EngineBaseResourceListPage 10740} 10741 10742// NextWithContext advances to the next value. If there was an error making 10743// the request the iterator does not advance and the error is returned. 10744func (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// Next advances to the next value. If there was an error making 10769// the request the iterator does not advance and the error is returned. 10770// Deprecated: Use NextWithContext() instead. 10771func (iter *EngineBaseResourceListIterator) Next() error { 10772 return iter.NextWithContext(context.Background()) 10773} 10774 10775// NotDone returns true if the enumeration should be started or is not yet complete. 10776func (iter EngineBaseResourceListIterator) NotDone() bool { 10777 return iter.page.NotDone() && iter.i < len(iter.page.Values()) 10778} 10779 10780// Response returns the raw server response from the last page request. 10781func (iter EngineBaseResourceListIterator) Response() EngineBaseResourceList { 10782 return iter.page.Response() 10783} 10784 10785// Value returns the current value or a zero-initialized value if the 10786// iterator has advanced beyond the end of the collection. 10787func (iter EngineBaseResourceListIterator) Value() EngineBaseResource { 10788 if !iter.page.NotDone() { 10789 return EngineBaseResource{} 10790 } 10791 return iter.page.Values()[iter.i] 10792} 10793 10794// Creates a new instance of the EngineBaseResourceListIterator type. 10795func NewEngineBaseResourceListIterator(page EngineBaseResourceListPage) EngineBaseResourceListIterator { 10796 return EngineBaseResourceListIterator{page: page} 10797} 10798 10799// IsEmpty returns true if the ListResult contains no values. 10800func (ebrl EngineBaseResourceList) IsEmpty() bool { 10801 return ebrl.Value == nil || len(*ebrl.Value) == 0 10802} 10803 10804// hasNextLink returns true if the NextLink is not empty. 10805func (ebrl EngineBaseResourceList) hasNextLink() bool { 10806 return ebrl.NextLink != nil && len(*ebrl.NextLink) != 0 10807} 10808 10809// engineBaseResourceListPreparer prepares a request to retrieve the next set of results. 10810// It returns nil if no more results exist. 10811func (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// EngineBaseResourceListPage contains a page of EngineBaseResource values. 10822type EngineBaseResourceListPage struct { 10823 fn func(context.Context, EngineBaseResourceList) (EngineBaseResourceList, error) 10824 ebrl EngineBaseResourceList 10825} 10826 10827// NextWithContext advances to the next page of values. If there was an error making 10828// the request the page does not advance and the error is returned. 10829func (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// Next advances to the next page of values. If there was an error making 10854// the request the page does not advance and the error is returned. 10855// Deprecated: Use NextWithContext() instead. 10856func (page *EngineBaseResourceListPage) Next() error { 10857 return page.NextWithContext(context.Background()) 10858} 10859 10860// NotDone returns true if the page enumeration should be started or is not yet complete. 10861func (page EngineBaseResourceListPage) NotDone() bool { 10862 return !page.ebrl.IsEmpty() 10863} 10864 10865// Response returns the raw server response from the last page request. 10866func (page EngineBaseResourceListPage) Response() EngineBaseResourceList { 10867 return page.ebrl 10868} 10869 10870// Values returns the slice of values for the current page or nil if there are no values. 10871func (page EngineBaseResourceListPage) Values() []EngineBaseResource { 10872 if page.ebrl.IsEmpty() { 10873 return nil 10874 } 10875 return *page.ebrl.Value 10876} 10877 10878// Creates a new instance of the EngineBaseResourceListPage type. 10879func NewEngineBaseResourceListPage(cur EngineBaseResourceList, getNextPage func(context.Context, EngineBaseResourceList) (EngineBaseResourceList, error)) EngineBaseResourceListPage { 10880 return EngineBaseResourceListPage{ 10881 fn: getNextPage, 10882 ebrl: cur, 10883 } 10884} 10885 10886// EngineExtendedInfo additional information on backup engine. 10887type EngineExtendedInfo struct { 10888 // DatabaseName - Database name of backup engine. 10889 DatabaseName *string `json:"databaseName,omitempty"` 10890 // ProtectedItemsCount - Number of protected items in the backup engine. 10891 ProtectedItemsCount *int32 `json:"protectedItemsCount,omitempty"` 10892 // ProtectedServersCount - Number of protected servers in the backup engine. 10893 ProtectedServersCount *int32 `json:"protectedServersCount,omitempty"` 10894 // DiskCount - Number of disks in the backup engine. 10895 DiskCount *int32 `json:"diskCount,omitempty"` 10896 // UsedDiskSpace - Disk space used in the backup engine. 10897 UsedDiskSpace *float64 `json:"usedDiskSpace,omitempty"` 10898 // AvailableDiskSpace - Disk space currently available in the backup engine. 10899 AvailableDiskSpace *float64 `json:"availableDiskSpace,omitempty"` 10900 // RefreshedAt - Last refresh time in the backup engine. 10901 RefreshedAt *date.Time `json:"refreshedAt,omitempty"` 10902 // AzureProtectedInstances - Protected instances in the backup engine. 10903 AzureProtectedInstances *int32 `json:"azureProtectedInstances,omitempty"` 10904} 10905 10906// ErrorAdditionalInfo the resource management error additional info. 10907type ErrorAdditionalInfo struct { 10908 // Type - READ-ONLY; The additional info type. 10909 Type *string `json:"type,omitempty"` 10910 // Info - READ-ONLY; The additional info. 10911 Info interface{} `json:"info,omitempty"` 10912} 10913 10914// MarshalJSON is the custom marshaler for ErrorAdditionalInfo. 10915func (eai ErrorAdditionalInfo) MarshalJSON() ([]byte, error) { 10916 objectMap := make(map[string]interface{}) 10917 return json.Marshal(objectMap) 10918} 10919 10920// ErrorDetail error Detail class which encapsulates Code, Message and Recommendations. 10921type ErrorDetail struct { 10922 // Code - READ-ONLY; Error code. 10923 Code *string `json:"code,omitempty"` 10924 // Message - READ-ONLY; Error Message related to the Code. 10925 Message *string `json:"message,omitempty"` 10926 // Recommendations - READ-ONLY; List of recommendation strings. 10927 Recommendations *[]string `json:"recommendations,omitempty"` 10928} 10929 10930// MarshalJSON is the custom marshaler for ErrorDetail. 10931func (ed ErrorDetail) MarshalJSON() ([]byte, error) { 10932 objectMap := make(map[string]interface{}) 10933 return json.Marshal(objectMap) 10934} 10935 10936// ErrorResponse common error response for all Azure Resource Manager APIs to return error details for 10937// failed operations. (This also follows the OData error response format.) 10938type ErrorResponse struct { 10939 // Code - READ-ONLY; The error code. 10940 Code *string `json:"code,omitempty"` 10941 // Message - READ-ONLY; The error message. 10942 Message *string `json:"message,omitempty"` 10943 // Target - READ-ONLY; The error target. 10944 Target *string `json:"target,omitempty"` 10945 // Details - READ-ONLY; The error details. 10946 Details *[]ErrorResponse `json:"details,omitempty"` 10947 // AdditionalInfo - READ-ONLY; The error additional info. 10948 AdditionalInfo *[]ErrorAdditionalInfo `json:"additionalInfo,omitempty"` 10949} 10950 10951// MarshalJSON is the custom marshaler for ErrorResponse. 10952func (er ErrorResponse) MarshalJSON() ([]byte, error) { 10953 objectMap := make(map[string]interface{}) 10954 return json.Marshal(objectMap) 10955} 10956 10957// ExportJobsOperationResultInfo this class is used to send blob details after exporting jobs. 10958type ExportJobsOperationResultInfo struct { 10959 // BlobURL - URL of the blob into which the serialized string of list of jobs is exported. 10960 BlobURL *string `json:"blobUrl,omitempty"` 10961 // BlobSasKey - SAS key to access the blob. It expires in 15 mins. 10962 BlobSasKey *string `json:"blobSasKey,omitempty"` 10963 // ExcelFileBlobURL - URL of the blob into which the ExcelFile is uploaded. 10964 ExcelFileBlobURL *string `json:"excelFileBlobUrl,omitempty"` 10965 // ExcelFileBlobSasKey - SAS key to access the blob. It expires in 15 mins. 10966 ExcelFileBlobSasKey *string `json:"excelFileBlobSasKey,omitempty"` 10967 // ObjectType - Possible values include: 'ObjectTypeOperationResultInfoBase', 'ObjectTypeExportJobsOperationResultInfo', 'ObjectTypeOperationResultInfo' 10968 ObjectType ObjectTypeBasicOperationResultInfoBase `json:"objectType,omitempty"` 10969} 10970 10971// MarshalJSON is the custom marshaler for ExportJobsOperationResultInfo. 10972func (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// AsExportJobsOperationResultInfo is the BasicOperationResultInfoBase implementation for ExportJobsOperationResultInfo. 10994func (ejori ExportJobsOperationResultInfo) AsExportJobsOperationResultInfo() (*ExportJobsOperationResultInfo, bool) { 10995 return &ejori, true 10996} 10997 10998// AsOperationResultInfo is the BasicOperationResultInfoBase implementation for ExportJobsOperationResultInfo. 10999func (ejori ExportJobsOperationResultInfo) AsOperationResultInfo() (*OperationResultInfo, bool) { 11000 return nil, false 11001} 11002 11003// AsOperationResultInfoBase is the BasicOperationResultInfoBase implementation for ExportJobsOperationResultInfo. 11004func (ejori ExportJobsOperationResultInfo) AsOperationResultInfoBase() (*OperationResultInfoBase, bool) { 11005 return nil, false 11006} 11007 11008// AsBasicOperationResultInfoBase is the BasicOperationResultInfoBase implementation for ExportJobsOperationResultInfo. 11009func (ejori ExportJobsOperationResultInfo) AsBasicOperationResultInfoBase() (BasicOperationResultInfoBase, bool) { 11010 return &ejori, true 11011} 11012 11013// ExtendedProperties extended Properties for Azure IaasVM Backup. 11014type ExtendedProperties struct { 11015 // DiskExclusionProperties - Extended Properties for Disk Exclusion. 11016 DiskExclusionProperties *DiskExclusionProperties `json:"diskExclusionProperties,omitempty"` 11017} 11018 11019// BasicFeatureSupportRequest base class for feature request 11020type BasicFeatureSupportRequest interface { 11021 AsAzureBackupGoalFeatureSupportRequest() (*AzureBackupGoalFeatureSupportRequest, bool) 11022 AsAzureVMResourceFeatureSupportRequest() (*AzureVMResourceFeatureSupportRequest, bool) 11023 AsFeatureSupportRequest() (*FeatureSupportRequest, bool) 11024} 11025 11026// FeatureSupportRequest base class for feature request 11027type FeatureSupportRequest struct { 11028 // FeatureType - Possible values include: 'FeatureTypeFeatureSupportRequest', 'FeatureTypeAzureBackupGoals', 'FeatureTypeAzureVMResourceBackup' 11029 FeatureType FeatureType `json:"featureType,omitempty"` 11030} 11031 11032func 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} 11054func 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// MarshalJSON is the custom marshaler for FeatureSupportRequest. 11074func (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// AsAzureBackupGoalFeatureSupportRequest is the BasicFeatureSupportRequest implementation for FeatureSupportRequest. 11084func (fsr FeatureSupportRequest) AsAzureBackupGoalFeatureSupportRequest() (*AzureBackupGoalFeatureSupportRequest, bool) { 11085 return nil, false 11086} 11087 11088// AsAzureVMResourceFeatureSupportRequest is the BasicFeatureSupportRequest implementation for FeatureSupportRequest. 11089func (fsr FeatureSupportRequest) AsAzureVMResourceFeatureSupportRequest() (*AzureVMResourceFeatureSupportRequest, bool) { 11090 return nil, false 11091} 11092 11093// AsFeatureSupportRequest is the BasicFeatureSupportRequest implementation for FeatureSupportRequest. 11094func (fsr FeatureSupportRequest) AsFeatureSupportRequest() (*FeatureSupportRequest, bool) { 11095 return &fsr, true 11096} 11097 11098// AsBasicFeatureSupportRequest is the BasicFeatureSupportRequest implementation for FeatureSupportRequest. 11099func (fsr FeatureSupportRequest) AsBasicFeatureSupportRequest() (BasicFeatureSupportRequest, bool) { 11100 return &fsr, true 11101} 11102 11103// GenericContainer base class for generic container of backup items 11104type GenericContainer struct { 11105 // FabricName - Name of the container's fabric 11106 FabricName *string `json:"fabricName,omitempty"` 11107 // ExtendedInformation - Extended information (not returned in List container API calls) 11108 ExtendedInformation *GenericContainerExtendedInfo `json:"extendedInformation,omitempty"` 11109 // FriendlyName - Friendly name of the container. 11110 FriendlyName *string `json:"friendlyName,omitempty"` 11111 // BackupManagementType - Type of backup management for the container. Possible values include: 'ManagementTypeInvalid', 'ManagementTypeAzureIaasVM', 'ManagementTypeMAB', 'ManagementTypeDPM', 'ManagementTypeAzureBackupServer', 'ManagementTypeAzureSQL', 'ManagementTypeAzureStorage', 'ManagementTypeAzureWorkload', 'ManagementTypeDefaultBackup' 11112 BackupManagementType ManagementType `json:"backupManagementType,omitempty"` 11113 // RegistrationStatus - Status of registration of the container with the Recovery Services Vault. 11114 RegistrationStatus *string `json:"registrationStatus,omitempty"` 11115 // HealthStatus - Status of health of the container. 11116 HealthStatus *string `json:"healthStatus,omitempty"` 11117 // ContainerType - Possible values include: 'ContainerTypeProtectionContainer', 'ContainerTypeAzureBackupServerContainer1', 'ContainerTypeMicrosoftClassicComputevirtualMachines', 'ContainerTypeMicrosoftComputevirtualMachines', 'ContainerTypeSQLAGWorkLoadContainer1', 'ContainerTypeAzureSQLContainer1', 'ContainerTypeStorageContainer1', 'ContainerTypeVMAppContainer1', 'ContainerTypeAzureWorkloadContainer', 'ContainerTypeDPMContainer1', 'ContainerTypeGenericContainer1', 'ContainerTypeIaaSVMContainer', 'ContainerTypeWindows1' 11118 ContainerType ContainerTypeBasicProtectionContainer `json:"containerType,omitempty"` 11119} 11120 11121// MarshalJSON is the custom marshaler for GenericContainer. 11122func (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// AsAzureBackupServerContainer is the BasicProtectionContainer implementation for GenericContainer. 11150func (gc GenericContainer) AsAzureBackupServerContainer() (*AzureBackupServerContainer, bool) { 11151 return nil, false 11152} 11153 11154// AsAzureIaaSClassicComputeVMContainer is the BasicProtectionContainer implementation for GenericContainer. 11155func (gc GenericContainer) AsAzureIaaSClassicComputeVMContainer() (*AzureIaaSClassicComputeVMContainer, bool) { 11156 return nil, false 11157} 11158 11159// AsAzureIaaSComputeVMContainer is the BasicProtectionContainer implementation for GenericContainer. 11160func (gc GenericContainer) AsAzureIaaSComputeVMContainer() (*AzureIaaSComputeVMContainer, bool) { 11161 return nil, false 11162} 11163 11164// AsAzureSQLAGWorkloadContainerProtectionContainer is the BasicProtectionContainer implementation for GenericContainer. 11165func (gc GenericContainer) AsAzureSQLAGWorkloadContainerProtectionContainer() (*AzureSQLAGWorkloadContainerProtectionContainer, bool) { 11166 return nil, false 11167} 11168 11169// AsAzureSQLContainer is the BasicProtectionContainer implementation for GenericContainer. 11170func (gc GenericContainer) AsAzureSQLContainer() (*AzureSQLContainer, bool) { 11171 return nil, false 11172} 11173 11174// AsAzureStorageContainer is the BasicProtectionContainer implementation for GenericContainer. 11175func (gc GenericContainer) AsAzureStorageContainer() (*AzureStorageContainer, bool) { 11176 return nil, false 11177} 11178 11179// AsAzureVMAppContainerProtectionContainer is the BasicProtectionContainer implementation for GenericContainer. 11180func (gc GenericContainer) AsAzureVMAppContainerProtectionContainer() (*AzureVMAppContainerProtectionContainer, bool) { 11181 return nil, false 11182} 11183 11184// AsAzureWorkloadContainer is the BasicProtectionContainer implementation for GenericContainer. 11185func (gc GenericContainer) AsAzureWorkloadContainer() (*AzureWorkloadContainer, bool) { 11186 return nil, false 11187} 11188 11189// AsBasicAzureWorkloadContainer is the BasicProtectionContainer implementation for GenericContainer. 11190func (gc GenericContainer) AsBasicAzureWorkloadContainer() (BasicAzureWorkloadContainer, bool) { 11191 return nil, false 11192} 11193 11194// AsDpmContainer is the BasicProtectionContainer implementation for GenericContainer. 11195func (gc GenericContainer) AsDpmContainer() (*DpmContainer, bool) { 11196 return nil, false 11197} 11198 11199// AsBasicDpmContainer is the BasicProtectionContainer implementation for GenericContainer. 11200func (gc GenericContainer) AsBasicDpmContainer() (BasicDpmContainer, bool) { 11201 return nil, false 11202} 11203 11204// AsGenericContainer is the BasicProtectionContainer implementation for GenericContainer. 11205func (gc GenericContainer) AsGenericContainer() (*GenericContainer, bool) { 11206 return &gc, true 11207} 11208 11209// AsIaaSVMContainer is the BasicProtectionContainer implementation for GenericContainer. 11210func (gc GenericContainer) AsIaaSVMContainer() (*IaaSVMContainer, bool) { 11211 return nil, false 11212} 11213 11214// AsBasicIaaSVMContainer is the BasicProtectionContainer implementation for GenericContainer. 11215func (gc GenericContainer) AsBasicIaaSVMContainer() (BasicIaaSVMContainer, bool) { 11216 return nil, false 11217} 11218 11219// AsMabContainer is the BasicProtectionContainer implementation for GenericContainer. 11220func (gc GenericContainer) AsMabContainer() (*MabContainer, bool) { 11221 return nil, false 11222} 11223 11224// AsProtectionContainer is the BasicProtectionContainer implementation for GenericContainer. 11225func (gc GenericContainer) AsProtectionContainer() (*ProtectionContainer, bool) { 11226 return nil, false 11227} 11228 11229// AsBasicProtectionContainer is the BasicProtectionContainer implementation for GenericContainer. 11230func (gc GenericContainer) AsBasicProtectionContainer() (BasicProtectionContainer, bool) { 11231 return &gc, true 11232} 11233 11234// GenericContainerExtendedInfo container extended information 11235type GenericContainerExtendedInfo struct { 11236 // RawCertData - Public key of container cert 11237 RawCertData *string `json:"rawCertData,omitempty"` 11238 // ContainerIdentityInfo - Container identity information 11239 ContainerIdentityInfo *ContainerIdentityInfo `json:"containerIdentityInfo,omitempty"` 11240 // ServiceEndpoints - Azure Backup Service Endpoints for the container 11241 ServiceEndpoints map[string]*string `json:"serviceEndpoints"` 11242} 11243 11244// MarshalJSON is the custom marshaler for GenericContainerExtendedInfo. 11245func (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// GenericProtectedItem base class for backup items. 11260type GenericProtectedItem struct { 11261 // FriendlyName - Friendly name of the container. 11262 FriendlyName *string `json:"friendlyName,omitempty"` 11263 // PolicyState - Indicates consistency of policy object and policy applied to this backup item. 11264 PolicyState *string `json:"policyState,omitempty"` 11265 // ProtectionState - Backup state of this backup item. Possible values include: 'ProtectionStateInvalid', 'ProtectionStateIRPending', 'ProtectionStateProtected', 'ProtectionStateProtectionError', 'ProtectionStateProtectionStopped', 'ProtectionStateProtectionPaused' 11266 ProtectionState ProtectionState `json:"protectionState,omitempty"` 11267 // ProtectedItemID - Data Plane Service ID of the protected item. 11268 ProtectedItemID *int64 `json:"protectedItemId,omitempty"` 11269 // SourceAssociations - Loosely coupled (type, value) associations (example - parent of a protected item) 11270 SourceAssociations map[string]*string `json:"sourceAssociations"` 11271 // FabricName - Name of this backup item's fabric. 11272 FabricName *string `json:"fabricName,omitempty"` 11273 // BackupManagementType - Type of backup management for the backed up item. Possible values include: 'ManagementTypeInvalid', 'ManagementTypeAzureIaasVM', 'ManagementTypeMAB', 'ManagementTypeDPM', 'ManagementTypeAzureBackupServer', 'ManagementTypeAzureSQL', 'ManagementTypeAzureStorage', 'ManagementTypeAzureWorkload', 'ManagementTypeDefaultBackup' 11274 BackupManagementType ManagementType `json:"backupManagementType,omitempty"` 11275 // WorkloadType - Type of workload this item represents. Possible values include: 'DataSourceTypeInvalid', 'DataSourceTypeVM', 'DataSourceTypeFileFolder', 'DataSourceTypeAzureSQLDb', 'DataSourceTypeSQLDB', 'DataSourceTypeExchange', 'DataSourceTypeSharepoint', 'DataSourceTypeVMwareVM', 'DataSourceTypeSystemState', 'DataSourceTypeClient', 'DataSourceTypeGenericDataSource', 'DataSourceTypeSQLDataBase', 'DataSourceTypeAzureFileShare', 'DataSourceTypeSAPHanaDatabase', 'DataSourceTypeSAPAseDatabase' 11276 WorkloadType DataSourceType `json:"workloadType,omitempty"` 11277 // ContainerName - Unique name of container 11278 ContainerName *string `json:"containerName,omitempty"` 11279 // SourceResourceID - ARM ID of the resource to be backed up. 11280 SourceResourceID *string `json:"sourceResourceId,omitempty"` 11281 // PolicyID - ID of the backup policy with which this item is backed up. 11282 PolicyID *string `json:"policyId,omitempty"` 11283 // LastRecoveryPoint - Timestamp when the last (latest) backup copy was created for this backup item. 11284 LastRecoveryPoint *date.Time `json:"lastRecoveryPoint,omitempty"` 11285 // BackupSetName - Name of the backup set the backup item belongs to 11286 BackupSetName *string `json:"backupSetName,omitempty"` 11287 // CreateMode - Create mode to indicate recovery of existing soft deleted data source or creation of new data source. Possible values include: 'CreateModeInvalid', 'CreateModeDefault', 'CreateModeRecover' 11288 CreateMode CreateMode `json:"createMode,omitempty"` 11289 // DeferredDeleteTimeInUTC - Time for deferred deletion in UTC 11290 DeferredDeleteTimeInUTC *date.Time `json:"deferredDeleteTimeInUTC,omitempty"` 11291 // IsScheduledForDeferredDelete - Flag to identify whether the DS is scheduled for deferred delete 11292 IsScheduledForDeferredDelete *bool `json:"isScheduledForDeferredDelete,omitempty"` 11293 // DeferredDeleteTimeRemaining - Time remaining before the DS marked for deferred delete is permanently deleted 11294 DeferredDeleteTimeRemaining *string `json:"deferredDeleteTimeRemaining,omitempty"` 11295 // IsDeferredDeleteScheduleUpcoming - Flag to identify whether the deferred deleted DS is to be purged soon 11296 IsDeferredDeleteScheduleUpcoming *bool `json:"isDeferredDeleteScheduleUpcoming,omitempty"` 11297 // IsRehydrate - Flag to identify that deferred deleted DS is to be moved into Pause state 11298 IsRehydrate *bool `json:"isRehydrate,omitempty"` 11299 // ProtectedItemType - Possible values include: 'ProtectedItemTypeProtectedItem', 'ProtectedItemTypeAzureFileShareProtectedItem', 'ProtectedItemTypeMicrosoftClassicComputevirtualMachines', 'ProtectedItemTypeMicrosoftComputevirtualMachines', 'ProtectedItemTypeAzureIaaSVMProtectedItem', 'ProtectedItemTypeMicrosoftSqlserversdatabases', 'ProtectedItemTypeAzureVMWorkloadProtectedItem', 'ProtectedItemTypeAzureVMWorkloadSAPAseDatabase', 'ProtectedItemTypeAzureVMWorkloadSAPHanaDatabase', 'ProtectedItemTypeAzureVMWorkloadSQLDatabase', 'ProtectedItemTypeDPMProtectedItem', 'ProtectedItemTypeGenericProtectedItem', 'ProtectedItemTypeMabFileFolderProtectedItem' 11300 ProtectedItemType ProtectedItemType `json:"protectedItemType,omitempty"` 11301} 11302 11303// MarshalJSON is the custom marshaler for GenericProtectedItem. 11304func (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// AsAzureFileshareProtectedItem is the BasicProtectedItem implementation for GenericProtectedItem. 11371func (gpi GenericProtectedItem) AsAzureFileshareProtectedItem() (*AzureFileshareProtectedItem, bool) { 11372 return nil, false 11373} 11374 11375// AsAzureIaaSClassicComputeVMProtectedItem is the BasicProtectedItem implementation for GenericProtectedItem. 11376func (gpi GenericProtectedItem) AsAzureIaaSClassicComputeVMProtectedItem() (*AzureIaaSClassicComputeVMProtectedItem, bool) { 11377 return nil, false 11378} 11379 11380// AsAzureIaaSComputeVMProtectedItem is the BasicProtectedItem implementation for GenericProtectedItem. 11381func (gpi GenericProtectedItem) AsAzureIaaSComputeVMProtectedItem() (*AzureIaaSComputeVMProtectedItem, bool) { 11382 return nil, false 11383} 11384 11385// AsAzureIaaSVMProtectedItem is the BasicProtectedItem implementation for GenericProtectedItem. 11386func (gpi GenericProtectedItem) AsAzureIaaSVMProtectedItem() (*AzureIaaSVMProtectedItem, bool) { 11387 return nil, false 11388} 11389 11390// AsBasicAzureIaaSVMProtectedItem is the BasicProtectedItem implementation for GenericProtectedItem. 11391func (gpi GenericProtectedItem) AsBasicAzureIaaSVMProtectedItem() (BasicAzureIaaSVMProtectedItem, bool) { 11392 return nil, false 11393} 11394 11395// AsAzureSQLProtectedItem is the BasicProtectedItem implementation for GenericProtectedItem. 11396func (gpi GenericProtectedItem) AsAzureSQLProtectedItem() (*AzureSQLProtectedItem, bool) { 11397 return nil, false 11398} 11399 11400// AsAzureVMWorkloadProtectedItem is the BasicProtectedItem implementation for GenericProtectedItem. 11401func (gpi GenericProtectedItem) AsAzureVMWorkloadProtectedItem() (*AzureVMWorkloadProtectedItem, bool) { 11402 return nil, false 11403} 11404 11405// AsBasicAzureVMWorkloadProtectedItem is the BasicProtectedItem implementation for GenericProtectedItem. 11406func (gpi GenericProtectedItem) AsBasicAzureVMWorkloadProtectedItem() (BasicAzureVMWorkloadProtectedItem, bool) { 11407 return nil, false 11408} 11409 11410// AsAzureVMWorkloadSAPAseDatabaseProtectedItem is the BasicProtectedItem implementation for GenericProtectedItem. 11411func (gpi GenericProtectedItem) AsAzureVMWorkloadSAPAseDatabaseProtectedItem() (*AzureVMWorkloadSAPAseDatabaseProtectedItem, bool) { 11412 return nil, false 11413} 11414 11415// AsAzureVMWorkloadSAPHanaDatabaseProtectedItem is the BasicProtectedItem implementation for GenericProtectedItem. 11416func (gpi GenericProtectedItem) AsAzureVMWorkloadSAPHanaDatabaseProtectedItem() (*AzureVMWorkloadSAPHanaDatabaseProtectedItem, bool) { 11417 return nil, false 11418} 11419 11420// AsAzureVMWorkloadSQLDatabaseProtectedItem is the BasicProtectedItem implementation for GenericProtectedItem. 11421func (gpi GenericProtectedItem) AsAzureVMWorkloadSQLDatabaseProtectedItem() (*AzureVMWorkloadSQLDatabaseProtectedItem, bool) { 11422 return nil, false 11423} 11424 11425// AsDPMProtectedItem is the BasicProtectedItem implementation for GenericProtectedItem. 11426func (gpi GenericProtectedItem) AsDPMProtectedItem() (*DPMProtectedItem, bool) { 11427 return nil, false 11428} 11429 11430// AsGenericProtectedItem is the BasicProtectedItem implementation for GenericProtectedItem. 11431func (gpi GenericProtectedItem) AsGenericProtectedItem() (*GenericProtectedItem, bool) { 11432 return &gpi, true 11433} 11434 11435// AsMabFileFolderProtectedItem is the BasicProtectedItem implementation for GenericProtectedItem. 11436func (gpi GenericProtectedItem) AsMabFileFolderProtectedItem() (*MabFileFolderProtectedItem, bool) { 11437 return nil, false 11438} 11439 11440// AsProtectedItem is the BasicProtectedItem implementation for GenericProtectedItem. 11441func (gpi GenericProtectedItem) AsProtectedItem() (*ProtectedItem, bool) { 11442 return nil, false 11443} 11444 11445// AsBasicProtectedItem is the BasicProtectedItem implementation for GenericProtectedItem. 11446func (gpi GenericProtectedItem) AsBasicProtectedItem() (BasicProtectedItem, bool) { 11447 return &gpi, true 11448} 11449 11450// GenericProtectionPolicy azure VM (Mercury) workload-specific backup policy. 11451type GenericProtectionPolicy struct { 11452 // SubProtectionPolicy - List of sub-protection policies which includes schedule and retention 11453 SubProtectionPolicy *[]SubProtectionPolicy `json:"subProtectionPolicy,omitempty"` 11454 // TimeZone - TimeZone optional input as string. For example: TimeZone = "Pacific Standard Time". 11455 TimeZone *string `json:"timeZone,omitempty"` 11456 // FabricName - Name of this policy's fabric. 11457 FabricName *string `json:"fabricName,omitempty"` 11458 // ProtectedItemsCount - Number of items associated with this policy. 11459 ProtectedItemsCount *int32 `json:"protectedItemsCount,omitempty"` 11460 // BackupManagementType - Possible values include: 'BackupManagementTypeProtectionPolicy', 'BackupManagementTypeAzureWorkload', 'BackupManagementTypeAzureStorage', 'BackupManagementTypeAzureIaasVM', 'BackupManagementTypeAzureSQL', 'BackupManagementTypeGenericProtectionPolicy', 'BackupManagementTypeMAB' 11461 BackupManagementType ManagementTypeBasicProtectionPolicy `json:"backupManagementType,omitempty"` 11462} 11463 11464// MarshalJSON is the custom marshaler for GenericProtectionPolicy. 11465func (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// AsAzureVMWorkloadProtectionPolicy is the BasicProtectionPolicy implementation for GenericProtectionPolicy. 11487func (gpp GenericProtectionPolicy) AsAzureVMWorkloadProtectionPolicy() (*AzureVMWorkloadProtectionPolicy, bool) { 11488 return nil, false 11489} 11490 11491// AsAzureFileShareProtectionPolicy is the BasicProtectionPolicy implementation for GenericProtectionPolicy. 11492func (gpp GenericProtectionPolicy) AsAzureFileShareProtectionPolicy() (*AzureFileShareProtectionPolicy, bool) { 11493 return nil, false 11494} 11495 11496// AsAzureIaaSVMProtectionPolicy is the BasicProtectionPolicy implementation for GenericProtectionPolicy. 11497func (gpp GenericProtectionPolicy) AsAzureIaaSVMProtectionPolicy() (*AzureIaaSVMProtectionPolicy, bool) { 11498 return nil, false 11499} 11500 11501// AsAzureSQLProtectionPolicy is the BasicProtectionPolicy implementation for GenericProtectionPolicy. 11502func (gpp GenericProtectionPolicy) AsAzureSQLProtectionPolicy() (*AzureSQLProtectionPolicy, bool) { 11503 return nil, false 11504} 11505 11506// AsGenericProtectionPolicy is the BasicProtectionPolicy implementation for GenericProtectionPolicy. 11507func (gpp GenericProtectionPolicy) AsGenericProtectionPolicy() (*GenericProtectionPolicy, bool) { 11508 return &gpp, true 11509} 11510 11511// AsMabProtectionPolicy is the BasicProtectionPolicy implementation for GenericProtectionPolicy. 11512func (gpp GenericProtectionPolicy) AsMabProtectionPolicy() (*MabProtectionPolicy, bool) { 11513 return nil, false 11514} 11515 11516// AsProtectionPolicy is the BasicProtectionPolicy implementation for GenericProtectionPolicy. 11517func (gpp GenericProtectionPolicy) AsProtectionPolicy() (*ProtectionPolicy, bool) { 11518 return nil, false 11519} 11520 11521// AsBasicProtectionPolicy is the BasicProtectionPolicy implementation for GenericProtectionPolicy. 11522func (gpp GenericProtectionPolicy) AsBasicProtectionPolicy() (BasicProtectionPolicy, bool) { 11523 return &gpp, true 11524} 11525 11526// GenericRecoveryPoint generic backup copy. 11527type GenericRecoveryPoint struct { 11528 // FriendlyName - Friendly name of the backup copy. 11529 FriendlyName *string `json:"friendlyName,omitempty"` 11530 // RecoveryPointType - Type of the backup copy. 11531 RecoveryPointType *string `json:"recoveryPointType,omitempty"` 11532 // RecoveryPointTime - Time at which this backup copy was created. 11533 RecoveryPointTime *date.Time `json:"recoveryPointTime,omitempty"` 11534 // RecoveryPointAdditionalInfo - Additional information associated with this backup copy. 11535 RecoveryPointAdditionalInfo *string `json:"recoveryPointAdditionalInfo,omitempty"` 11536 // ObjectType - Possible values include: 'ObjectTypeRecoveryPoint', 'ObjectTypeAzureFileShareRecoveryPoint', 'ObjectTypeAzureWorkloadPointInTimeRecoveryPoint', 'ObjectTypeAzureWorkloadRecoveryPoint', 'ObjectTypeAzureWorkloadSAPHanaPointInTimeRecoveryPoint', 'ObjectTypeAzureWorkloadSAPHanaRecoveryPoint', 'ObjectTypeAzureWorkloadSQLPointInTimeRecoveryPoint', 'ObjectTypeAzureWorkloadSQLRecoveryPoint', 'ObjectTypeGenericRecoveryPoint', 'ObjectTypeIaasVMRecoveryPoint' 11537 ObjectType ObjectTypeBasicRecoveryPoint `json:"objectType,omitempty"` 11538} 11539 11540// MarshalJSON is the custom marshaler for GenericRecoveryPoint. 11541func (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// AsAzureFileShareRecoveryPoint is the BasicRecoveryPoint implementation for GenericRecoveryPoint. 11563func (grp GenericRecoveryPoint) AsAzureFileShareRecoveryPoint() (*AzureFileShareRecoveryPoint, bool) { 11564 return nil, false 11565} 11566 11567// AsAzureWorkloadPointInTimeRecoveryPoint is the BasicRecoveryPoint implementation for GenericRecoveryPoint. 11568func (grp GenericRecoveryPoint) AsAzureWorkloadPointInTimeRecoveryPoint() (*AzureWorkloadPointInTimeRecoveryPoint, bool) { 11569 return nil, false 11570} 11571 11572// AsBasicAzureWorkloadPointInTimeRecoveryPoint is the BasicRecoveryPoint implementation for GenericRecoveryPoint. 11573func (grp GenericRecoveryPoint) AsBasicAzureWorkloadPointInTimeRecoveryPoint() (BasicAzureWorkloadPointInTimeRecoveryPoint, bool) { 11574 return nil, false 11575} 11576 11577// AsAzureWorkloadRecoveryPoint is the BasicRecoveryPoint implementation for GenericRecoveryPoint. 11578func (grp GenericRecoveryPoint) AsAzureWorkloadRecoveryPoint() (*AzureWorkloadRecoveryPoint, bool) { 11579 return nil, false 11580} 11581 11582// AsBasicAzureWorkloadRecoveryPoint is the BasicRecoveryPoint implementation for GenericRecoveryPoint. 11583func (grp GenericRecoveryPoint) AsBasicAzureWorkloadRecoveryPoint() (BasicAzureWorkloadRecoveryPoint, bool) { 11584 return nil, false 11585} 11586 11587// AsAzureWorkloadSAPHanaPointInTimeRecoveryPoint is the BasicRecoveryPoint implementation for GenericRecoveryPoint. 11588func (grp GenericRecoveryPoint) AsAzureWorkloadSAPHanaPointInTimeRecoveryPoint() (*AzureWorkloadSAPHanaPointInTimeRecoveryPoint, bool) { 11589 return nil, false 11590} 11591 11592// AsAzureWorkloadSAPHanaRecoveryPoint is the BasicRecoveryPoint implementation for GenericRecoveryPoint. 11593func (grp GenericRecoveryPoint) AsAzureWorkloadSAPHanaRecoveryPoint() (*AzureWorkloadSAPHanaRecoveryPoint, bool) { 11594 return nil, false 11595} 11596 11597// AsAzureWorkloadSQLPointInTimeRecoveryPoint is the BasicRecoveryPoint implementation for GenericRecoveryPoint. 11598func (grp GenericRecoveryPoint) AsAzureWorkloadSQLPointInTimeRecoveryPoint() (*AzureWorkloadSQLPointInTimeRecoveryPoint, bool) { 11599 return nil, false 11600} 11601 11602// AsAzureWorkloadSQLRecoveryPoint is the BasicRecoveryPoint implementation for GenericRecoveryPoint. 11603func (grp GenericRecoveryPoint) AsAzureWorkloadSQLRecoveryPoint() (*AzureWorkloadSQLRecoveryPoint, bool) { 11604 return nil, false 11605} 11606 11607// AsBasicAzureWorkloadSQLRecoveryPoint is the BasicRecoveryPoint implementation for GenericRecoveryPoint. 11608func (grp GenericRecoveryPoint) AsBasicAzureWorkloadSQLRecoveryPoint() (BasicAzureWorkloadSQLRecoveryPoint, bool) { 11609 return nil, false 11610} 11611 11612// AsGenericRecoveryPoint is the BasicRecoveryPoint implementation for GenericRecoveryPoint. 11613func (grp GenericRecoveryPoint) AsGenericRecoveryPoint() (*GenericRecoveryPoint, bool) { 11614 return &grp, true 11615} 11616 11617// AsIaasVMRecoveryPoint is the BasicRecoveryPoint implementation for GenericRecoveryPoint. 11618func (grp GenericRecoveryPoint) AsIaasVMRecoveryPoint() (*IaasVMRecoveryPoint, bool) { 11619 return nil, false 11620} 11621 11622// AsRecoveryPoint is the BasicRecoveryPoint implementation for GenericRecoveryPoint. 11623func (grp GenericRecoveryPoint) AsRecoveryPoint() (*RecoveryPoint, bool) { 11624 return nil, false 11625} 11626 11627// AsBasicRecoveryPoint is the BasicRecoveryPoint implementation for GenericRecoveryPoint. 11628func (grp GenericRecoveryPoint) AsBasicRecoveryPoint() (BasicRecoveryPoint, bool) { 11629 return &grp, true 11630} 11631 11632// GetProtectedItemQueryObject filters to list backup items. 11633type GetProtectedItemQueryObject struct { 11634 // Expand - Specifies if the additional information should be provided for this item. 11635 Expand *string `json:"expand,omitempty"` 11636} 11637 11638// IaasVMBackupRequest iaaS VM workload-specific backup request. 11639type IaasVMBackupRequest struct { 11640 // RecoveryPointExpiryTimeInUTC - Backup copy will expire after the time specified (UTC). 11641 RecoveryPointExpiryTimeInUTC *date.Time `json:"recoveryPointExpiryTimeInUTC,omitempty"` 11642 // ObjectType - Possible values include: 'ObjectTypeBackupRequest', 'ObjectTypeAzureFileShareBackupRequest', 'ObjectTypeAzureWorkloadBackupRequest', 'ObjectTypeIaasVMBackupRequest' 11643 ObjectType ObjectTypeBasicRequest `json:"objectType,omitempty"` 11644} 11645 11646// MarshalJSON is the custom marshaler for IaasVMBackupRequest. 11647func (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// AsAzureFileShareBackupRequest is the BasicRequest implementation for IaasVMBackupRequest. 11660func (ivbr IaasVMBackupRequest) AsAzureFileShareBackupRequest() (*AzureFileShareBackupRequest, bool) { 11661 return nil, false 11662} 11663 11664// AsAzureWorkloadBackupRequest is the BasicRequest implementation for IaasVMBackupRequest. 11665func (ivbr IaasVMBackupRequest) AsAzureWorkloadBackupRequest() (*AzureWorkloadBackupRequest, bool) { 11666 return nil, false 11667} 11668 11669// AsIaasVMBackupRequest is the BasicRequest implementation for IaasVMBackupRequest. 11670func (ivbr IaasVMBackupRequest) AsIaasVMBackupRequest() (*IaasVMBackupRequest, bool) { 11671 return &ivbr, true 11672} 11673 11674// AsRequest is the BasicRequest implementation for IaasVMBackupRequest. 11675func (ivbr IaasVMBackupRequest) AsRequest() (*Request, bool) { 11676 return nil, false 11677} 11678 11679// AsBasicRequest is the BasicRequest implementation for IaasVMBackupRequest. 11680func (ivbr IaasVMBackupRequest) AsBasicRequest() (BasicRequest, bool) { 11681 return &ivbr, true 11682} 11683 11684// BasicIaaSVMContainer iaaS VM workload-specific container. 11685type BasicIaaSVMContainer interface { 11686 AsAzureIaaSClassicComputeVMContainer() (*AzureIaaSClassicComputeVMContainer, bool) 11687 AsAzureIaaSComputeVMContainer() (*AzureIaaSComputeVMContainer, bool) 11688 AsIaaSVMContainer() (*IaaSVMContainer, bool) 11689} 11690 11691// IaaSVMContainer iaaS VM workload-specific container. 11692type IaaSVMContainer struct { 11693 // VirtualMachineID - Fully qualified ARM url of the virtual machine represented by this Azure IaaS VM container. 11694 VirtualMachineID *string `json:"virtualMachineId,omitempty"` 11695 // VirtualMachineVersion - Specifies whether the container represents a Classic or an Azure Resource Manager VM. 11696 VirtualMachineVersion *string `json:"virtualMachineVersion,omitempty"` 11697 // ResourceGroup - Resource group name of Recovery Services Vault. 11698 ResourceGroup *string `json:"resourceGroup,omitempty"` 11699 // FriendlyName - Friendly name of the container. 11700 FriendlyName *string `json:"friendlyName,omitempty"` 11701 // BackupManagementType - Type of backup management for the container. Possible values include: 'ManagementTypeInvalid', 'ManagementTypeAzureIaasVM', 'ManagementTypeMAB', 'ManagementTypeDPM', 'ManagementTypeAzureBackupServer', 'ManagementTypeAzureSQL', 'ManagementTypeAzureStorage', 'ManagementTypeAzureWorkload', 'ManagementTypeDefaultBackup' 11702 BackupManagementType ManagementType `json:"backupManagementType,omitempty"` 11703 // RegistrationStatus - Status of registration of the container with the Recovery Services Vault. 11704 RegistrationStatus *string `json:"registrationStatus,omitempty"` 11705 // HealthStatus - Status of health of the container. 11706 HealthStatus *string `json:"healthStatus,omitempty"` 11707 // ContainerType - Possible values include: 'ContainerTypeProtectionContainer', 'ContainerTypeAzureBackupServerContainer1', 'ContainerTypeMicrosoftClassicComputevirtualMachines', 'ContainerTypeMicrosoftComputevirtualMachines', 'ContainerTypeSQLAGWorkLoadContainer1', 'ContainerTypeAzureSQLContainer1', 'ContainerTypeStorageContainer1', 'ContainerTypeVMAppContainer1', 'ContainerTypeAzureWorkloadContainer', 'ContainerTypeDPMContainer1', 'ContainerTypeGenericContainer1', 'ContainerTypeIaaSVMContainer', 'ContainerTypeWindows1' 11708 ContainerType ContainerTypeBasicProtectionContainer `json:"containerType,omitempty"` 11709} 11710 11711func 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} 11733func 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// MarshalJSON is the custom marshaler for IaaSVMContainer. 11753func (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// AsAzureBackupServerContainer is the BasicProtectionContainer implementation for IaaSVMContainer. 11784func (isc IaaSVMContainer) AsAzureBackupServerContainer() (*AzureBackupServerContainer, bool) { 11785 return nil, false 11786} 11787 11788// AsAzureIaaSClassicComputeVMContainer is the BasicProtectionContainer implementation for IaaSVMContainer. 11789func (isc IaaSVMContainer) AsAzureIaaSClassicComputeVMContainer() (*AzureIaaSClassicComputeVMContainer, bool) { 11790 return nil, false 11791} 11792 11793// AsAzureIaaSComputeVMContainer is the BasicProtectionContainer implementation for IaaSVMContainer. 11794func (isc IaaSVMContainer) AsAzureIaaSComputeVMContainer() (*AzureIaaSComputeVMContainer, bool) { 11795 return nil, false 11796} 11797 11798// AsAzureSQLAGWorkloadContainerProtectionContainer is the BasicProtectionContainer implementation for IaaSVMContainer. 11799func (isc IaaSVMContainer) AsAzureSQLAGWorkloadContainerProtectionContainer() (*AzureSQLAGWorkloadContainerProtectionContainer, bool) { 11800 return nil, false 11801} 11802 11803// AsAzureSQLContainer is the BasicProtectionContainer implementation for IaaSVMContainer. 11804func (isc IaaSVMContainer) AsAzureSQLContainer() (*AzureSQLContainer, bool) { 11805 return nil, false 11806} 11807 11808// AsAzureStorageContainer is the BasicProtectionContainer implementation for IaaSVMContainer. 11809func (isc IaaSVMContainer) AsAzureStorageContainer() (*AzureStorageContainer, bool) { 11810 return nil, false 11811} 11812 11813// AsAzureVMAppContainerProtectionContainer is the BasicProtectionContainer implementation for IaaSVMContainer. 11814func (isc IaaSVMContainer) AsAzureVMAppContainerProtectionContainer() (*AzureVMAppContainerProtectionContainer, bool) { 11815 return nil, false 11816} 11817 11818// AsAzureWorkloadContainer is the BasicProtectionContainer implementation for IaaSVMContainer. 11819func (isc IaaSVMContainer) AsAzureWorkloadContainer() (*AzureWorkloadContainer, bool) { 11820 return nil, false 11821} 11822 11823// AsBasicAzureWorkloadContainer is the BasicProtectionContainer implementation for IaaSVMContainer. 11824func (isc IaaSVMContainer) AsBasicAzureWorkloadContainer() (BasicAzureWorkloadContainer, bool) { 11825 return nil, false 11826} 11827 11828// AsDpmContainer is the BasicProtectionContainer implementation for IaaSVMContainer. 11829func (isc IaaSVMContainer) AsDpmContainer() (*DpmContainer, bool) { 11830 return nil, false 11831} 11832 11833// AsBasicDpmContainer is the BasicProtectionContainer implementation for IaaSVMContainer. 11834func (isc IaaSVMContainer) AsBasicDpmContainer() (BasicDpmContainer, bool) { 11835 return nil, false 11836} 11837 11838// AsGenericContainer is the BasicProtectionContainer implementation for IaaSVMContainer. 11839func (isc IaaSVMContainer) AsGenericContainer() (*GenericContainer, bool) { 11840 return nil, false 11841} 11842 11843// AsIaaSVMContainer is the BasicProtectionContainer implementation for IaaSVMContainer. 11844func (isc IaaSVMContainer) AsIaaSVMContainer() (*IaaSVMContainer, bool) { 11845 return &isc, true 11846} 11847 11848// AsBasicIaaSVMContainer is the BasicProtectionContainer implementation for IaaSVMContainer. 11849func (isc IaaSVMContainer) AsBasicIaaSVMContainer() (BasicIaaSVMContainer, bool) { 11850 return &isc, true 11851} 11852 11853// AsMabContainer is the BasicProtectionContainer implementation for IaaSVMContainer. 11854func (isc IaaSVMContainer) AsMabContainer() (*MabContainer, bool) { 11855 return nil, false 11856} 11857 11858// AsProtectionContainer is the BasicProtectionContainer implementation for IaaSVMContainer. 11859func (isc IaaSVMContainer) AsProtectionContainer() (*ProtectionContainer, bool) { 11860 return nil, false 11861} 11862 11863// AsBasicProtectionContainer is the BasicProtectionContainer implementation for IaaSVMContainer. 11864func (isc IaaSVMContainer) AsBasicProtectionContainer() (BasicProtectionContainer, bool) { 11865 return &isc, true 11866} 11867 11868// IaasVMILRRegistrationRequest restore files/folders from a backup copy of IaaS VM. 11869type IaasVMILRRegistrationRequest struct { 11870 // RecoveryPointID - ID of the IaaS VM backup copy from where the files/folders have to be restored. 11871 RecoveryPointID *string `json:"recoveryPointId,omitempty"` 11872 // VirtualMachineID - Fully qualified ARM ID of the virtual machine whose the files / folders have to be restored. 11873 VirtualMachineID *string `json:"virtualMachineId,omitempty"` 11874 // InitiatorName - iSCSI initiator name. 11875 InitiatorName *string `json:"initiatorName,omitempty"` 11876 // RenewExistingRegistration - Whether to renew existing registration with the iSCSI server. 11877 RenewExistingRegistration *bool `json:"renewExistingRegistration,omitempty"` 11878 // ObjectType - Possible values include: 'ObjectTypeILRRequest', 'ObjectTypeAzureFileShareProvisionILRRequest', 'ObjectTypeIaasVMILRRegistrationRequest' 11879 ObjectType ObjectTypeBasicILRRequest `json:"objectType,omitempty"` 11880} 11881 11882// MarshalJSON is the custom marshaler for IaasVMILRRegistrationRequest. 11883func (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// AsAzureFileShareProvisionILRRequest is the BasicILRRequest implementation for IaasVMILRRegistrationRequest. 11905func (ivrr IaasVMILRRegistrationRequest) AsAzureFileShareProvisionILRRequest() (*AzureFileShareProvisionILRRequest, bool) { 11906 return nil, false 11907} 11908 11909// AsIaasVMILRRegistrationRequest is the BasicILRRequest implementation for IaasVMILRRegistrationRequest. 11910func (ivrr IaasVMILRRegistrationRequest) AsIaasVMILRRegistrationRequest() (*IaasVMILRRegistrationRequest, bool) { 11911 return &ivrr, true 11912} 11913 11914// AsILRRequest is the BasicILRRequest implementation for IaasVMILRRegistrationRequest. 11915func (ivrr IaasVMILRRegistrationRequest) AsILRRequest() (*ILRRequest, bool) { 11916 return nil, false 11917} 11918 11919// AsBasicILRRequest is the BasicILRRequest implementation for IaasVMILRRegistrationRequest. 11920func (ivrr IaasVMILRRegistrationRequest) AsBasicILRRequest() (BasicILRRequest, bool) { 11921 return &ivrr, true 11922} 11923 11924// BasicIaaSVMProtectableItem iaaS VM workload-specific backup item. 11925type BasicIaaSVMProtectableItem interface { 11926 AsAzureIaaSClassicComputeVMProtectableItem() (*AzureIaaSClassicComputeVMProtectableItem, bool) 11927 AsAzureIaaSComputeVMProtectableItem() (*AzureIaaSComputeVMProtectableItem, bool) 11928 AsIaaSVMProtectableItem() (*IaaSVMProtectableItem, bool) 11929} 11930 11931// IaaSVMProtectableItem iaaS VM workload-specific backup item. 11932type IaaSVMProtectableItem struct { 11933 // VirtualMachineID - Fully qualified ARM ID of the virtual machine. 11934 VirtualMachineID *string `json:"virtualMachineId,omitempty"` 11935 // BackupManagementType - Type of backup management to backup an item. 11936 BackupManagementType *string `json:"backupManagementType,omitempty"` 11937 // WorkloadType - Type of workload for the backup management 11938 WorkloadType *string `json:"workloadType,omitempty"` 11939 // FriendlyName - Friendly name of the backup item. 11940 FriendlyName *string `json:"friendlyName,omitempty"` 11941 // ProtectionState - State of the back up item. Possible values include: 'ProtectionStatusInvalid', 'ProtectionStatusNotProtected', 'ProtectionStatusProtecting', 'ProtectionStatusProtected', 'ProtectionStatusProtectionFailed' 11942 ProtectionState ProtectionStatus `json:"protectionState,omitempty"` 11943 // ProtectableItemType - Possible values include: 'ProtectableItemTypeWorkloadProtectableItem', 'ProtectableItemTypeAzureFileShare', 'ProtectableItemTypeMicrosoftClassicComputevirtualMachines', 'ProtectableItemTypeMicrosoftComputevirtualMachines', 'ProtectableItemTypeAzureVMWorkloadProtectableItem', 'ProtectableItemTypeSAPAseSystem', 'ProtectableItemTypeSAPHanaDatabase', 'ProtectableItemTypeSAPHanaSystem', 'ProtectableItemTypeSQLAvailabilityGroupContainer', 'ProtectableItemTypeSQLDataBase', 'ProtectableItemTypeSQLInstance', 'ProtectableItemTypeIaaSVMProtectableItem' 11944 ProtectableItemType ProtectableItemType `json:"protectableItemType,omitempty"` 11945} 11946 11947func 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} 11969func 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// MarshalJSON is the custom marshaler for IaaSVMProtectableItem. 11989func (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// AsAzureFileShareProtectableItem is the BasicWorkloadProtectableItem implementation for IaaSVMProtectableItem. 12014func (ispi IaaSVMProtectableItem) AsAzureFileShareProtectableItem() (*AzureFileShareProtectableItem, bool) { 12015 return nil, false 12016} 12017 12018// AsAzureIaaSClassicComputeVMProtectableItem is the BasicWorkloadProtectableItem implementation for IaaSVMProtectableItem. 12019func (ispi IaaSVMProtectableItem) AsAzureIaaSClassicComputeVMProtectableItem() (*AzureIaaSClassicComputeVMProtectableItem, bool) { 12020 return nil, false 12021} 12022 12023// AsAzureIaaSComputeVMProtectableItem is the BasicWorkloadProtectableItem implementation for IaaSVMProtectableItem. 12024func (ispi IaaSVMProtectableItem) AsAzureIaaSComputeVMProtectableItem() (*AzureIaaSComputeVMProtectableItem, bool) { 12025 return nil, false 12026} 12027 12028// AsAzureVMWorkloadProtectableItem is the BasicWorkloadProtectableItem implementation for IaaSVMProtectableItem. 12029func (ispi IaaSVMProtectableItem) AsAzureVMWorkloadProtectableItem() (*AzureVMWorkloadProtectableItem, bool) { 12030 return nil, false 12031} 12032 12033// AsBasicAzureVMWorkloadProtectableItem is the BasicWorkloadProtectableItem implementation for IaaSVMProtectableItem. 12034func (ispi IaaSVMProtectableItem) AsBasicAzureVMWorkloadProtectableItem() (BasicAzureVMWorkloadProtectableItem, bool) { 12035 return nil, false 12036} 12037 12038// AsAzureVMWorkloadSAPAseSystemProtectableItem is the BasicWorkloadProtectableItem implementation for IaaSVMProtectableItem. 12039func (ispi IaaSVMProtectableItem) AsAzureVMWorkloadSAPAseSystemProtectableItem() (*AzureVMWorkloadSAPAseSystemProtectableItem, bool) { 12040 return nil, false 12041} 12042 12043// AsAzureVMWorkloadSAPHanaDatabaseProtectableItem is the BasicWorkloadProtectableItem implementation for IaaSVMProtectableItem. 12044func (ispi IaaSVMProtectableItem) AsAzureVMWorkloadSAPHanaDatabaseProtectableItem() (*AzureVMWorkloadSAPHanaDatabaseProtectableItem, bool) { 12045 return nil, false 12046} 12047 12048// AsAzureVMWorkloadSAPHanaSystemProtectableItem is the BasicWorkloadProtectableItem implementation for IaaSVMProtectableItem. 12049func (ispi IaaSVMProtectableItem) AsAzureVMWorkloadSAPHanaSystemProtectableItem() (*AzureVMWorkloadSAPHanaSystemProtectableItem, bool) { 12050 return nil, false 12051} 12052 12053// AsAzureVMWorkloadSQLAvailabilityGroupProtectableItem is the BasicWorkloadProtectableItem implementation for IaaSVMProtectableItem. 12054func (ispi IaaSVMProtectableItem) AsAzureVMWorkloadSQLAvailabilityGroupProtectableItem() (*AzureVMWorkloadSQLAvailabilityGroupProtectableItem, bool) { 12055 return nil, false 12056} 12057 12058// AsAzureVMWorkloadSQLDatabaseProtectableItem is the BasicWorkloadProtectableItem implementation for IaaSVMProtectableItem. 12059func (ispi IaaSVMProtectableItem) AsAzureVMWorkloadSQLDatabaseProtectableItem() (*AzureVMWorkloadSQLDatabaseProtectableItem, bool) { 12060 return nil, false 12061} 12062 12063// AsAzureVMWorkloadSQLInstanceProtectableItem is the BasicWorkloadProtectableItem implementation for IaaSVMProtectableItem. 12064func (ispi IaaSVMProtectableItem) AsAzureVMWorkloadSQLInstanceProtectableItem() (*AzureVMWorkloadSQLInstanceProtectableItem, bool) { 12065 return nil, false 12066} 12067 12068// AsIaaSVMProtectableItem is the BasicWorkloadProtectableItem implementation for IaaSVMProtectableItem. 12069func (ispi IaaSVMProtectableItem) AsIaaSVMProtectableItem() (*IaaSVMProtectableItem, bool) { 12070 return &ispi, true 12071} 12072 12073// AsBasicIaaSVMProtectableItem is the BasicWorkloadProtectableItem implementation for IaaSVMProtectableItem. 12074func (ispi IaaSVMProtectableItem) AsBasicIaaSVMProtectableItem() (BasicIaaSVMProtectableItem, bool) { 12075 return &ispi, true 12076} 12077 12078// AsWorkloadProtectableItem is the BasicWorkloadProtectableItem implementation for IaaSVMProtectableItem. 12079func (ispi IaaSVMProtectableItem) AsWorkloadProtectableItem() (*WorkloadProtectableItem, bool) { 12080 return nil, false 12081} 12082 12083// AsBasicWorkloadProtectableItem is the BasicWorkloadProtectableItem implementation for IaaSVMProtectableItem. 12084func (ispi IaaSVMProtectableItem) AsBasicWorkloadProtectableItem() (BasicWorkloadProtectableItem, bool) { 12085 return &ispi, true 12086} 12087 12088// IaasVMRecoveryPoint iaaS VM workload specific backup copy. 12089type IaasVMRecoveryPoint struct { 12090 // RecoveryPointType - READ-ONLY; Type of the backup copy. 12091 RecoveryPointType *string `json:"recoveryPointType,omitempty"` 12092 // RecoveryPointTime - READ-ONLY; Time at which this backup copy was created. 12093 RecoveryPointTime *date.Time `json:"recoveryPointTime,omitempty"` 12094 // RecoveryPointAdditionalInfo - READ-ONLY; Additional information associated with this backup copy. 12095 RecoveryPointAdditionalInfo *string `json:"recoveryPointAdditionalInfo,omitempty"` 12096 // SourceVMStorageType - READ-ONLY; Storage type of the VM whose backup copy is created. 12097 SourceVMStorageType *string `json:"sourceVMStorageType,omitempty"` 12098 // IsSourceVMEncrypted - READ-ONLY; Identifies whether the VM was encrypted when the backup copy is created. 12099 IsSourceVMEncrypted *bool `json:"isSourceVMEncrypted,omitempty"` 12100 // KeyAndSecret - Required details for recovering an encrypted VM. Applicable only when IsSourceVMEncrypted is true. 12101 KeyAndSecret *KeyAndSecretDetails `json:"keyAndSecret,omitempty"` 12102 // IsInstantIlrSessionActive - Is the session to recover items from this backup copy still active. 12103 IsInstantIlrSessionActive *bool `json:"isInstantIlrSessionActive,omitempty"` 12104 // RecoveryPointTierDetails - Recovery point tier information. 12105 RecoveryPointTierDetails *[]RecoveryPointTierInformation `json:"recoveryPointTierDetails,omitempty"` 12106 // IsManagedVirtualMachine - Whether VM is with Managed Disks 12107 IsManagedVirtualMachine *bool `json:"isManagedVirtualMachine,omitempty"` 12108 // VirtualMachineSize - Virtual Machine Size 12109 VirtualMachineSize *string `json:"virtualMachineSize,omitempty"` 12110 // OriginalStorageAccountOption - Original Storage Account Option 12111 OriginalStorageAccountOption *bool `json:"originalStorageAccountOption,omitempty"` 12112 // OsType - OS type 12113 OsType *string `json:"osType,omitempty"` 12114 // RecoveryPointDiskConfiguration - Disk configuration 12115 RecoveryPointDiskConfiguration *RecoveryPointDiskConfiguration `json:"recoveryPointDiskConfiguration,omitempty"` 12116 // ObjectType - Possible values include: 'ObjectTypeRecoveryPoint', 'ObjectTypeAzureFileShareRecoveryPoint', 'ObjectTypeAzureWorkloadPointInTimeRecoveryPoint', 'ObjectTypeAzureWorkloadRecoveryPoint', 'ObjectTypeAzureWorkloadSAPHanaPointInTimeRecoveryPoint', 'ObjectTypeAzureWorkloadSAPHanaRecoveryPoint', 'ObjectTypeAzureWorkloadSQLPointInTimeRecoveryPoint', 'ObjectTypeAzureWorkloadSQLRecoveryPoint', 'ObjectTypeGenericRecoveryPoint', 'ObjectTypeIaasVMRecoveryPoint' 12117 ObjectType ObjectTypeBasicRecoveryPoint `json:"objectType,omitempty"` 12118} 12119 12120// MarshalJSON is the custom marshaler for IaasVMRecoveryPoint. 12121func (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// AsAzureFileShareRecoveryPoint is the BasicRecoveryPoint implementation for IaasVMRecoveryPoint. 12155func (ivrp IaasVMRecoveryPoint) AsAzureFileShareRecoveryPoint() (*AzureFileShareRecoveryPoint, bool) { 12156 return nil, false 12157} 12158 12159// AsAzureWorkloadPointInTimeRecoveryPoint is the BasicRecoveryPoint implementation for IaasVMRecoveryPoint. 12160func (ivrp IaasVMRecoveryPoint) AsAzureWorkloadPointInTimeRecoveryPoint() (*AzureWorkloadPointInTimeRecoveryPoint, bool) { 12161 return nil, false 12162} 12163 12164// AsBasicAzureWorkloadPointInTimeRecoveryPoint is the BasicRecoveryPoint implementation for IaasVMRecoveryPoint. 12165func (ivrp IaasVMRecoveryPoint) AsBasicAzureWorkloadPointInTimeRecoveryPoint() (BasicAzureWorkloadPointInTimeRecoveryPoint, bool) { 12166 return nil, false 12167} 12168 12169// AsAzureWorkloadRecoveryPoint is the BasicRecoveryPoint implementation for IaasVMRecoveryPoint. 12170func (ivrp IaasVMRecoveryPoint) AsAzureWorkloadRecoveryPoint() (*AzureWorkloadRecoveryPoint, bool) { 12171 return nil, false 12172} 12173 12174// AsBasicAzureWorkloadRecoveryPoint is the BasicRecoveryPoint implementation for IaasVMRecoveryPoint. 12175func (ivrp IaasVMRecoveryPoint) AsBasicAzureWorkloadRecoveryPoint() (BasicAzureWorkloadRecoveryPoint, bool) { 12176 return nil, false 12177} 12178 12179// AsAzureWorkloadSAPHanaPointInTimeRecoveryPoint is the BasicRecoveryPoint implementation for IaasVMRecoveryPoint. 12180func (ivrp IaasVMRecoveryPoint) AsAzureWorkloadSAPHanaPointInTimeRecoveryPoint() (*AzureWorkloadSAPHanaPointInTimeRecoveryPoint, bool) { 12181 return nil, false 12182} 12183 12184// AsAzureWorkloadSAPHanaRecoveryPoint is the BasicRecoveryPoint implementation for IaasVMRecoveryPoint. 12185func (ivrp IaasVMRecoveryPoint) AsAzureWorkloadSAPHanaRecoveryPoint() (*AzureWorkloadSAPHanaRecoveryPoint, bool) { 12186 return nil, false 12187} 12188 12189// AsAzureWorkloadSQLPointInTimeRecoveryPoint is the BasicRecoveryPoint implementation for IaasVMRecoveryPoint. 12190func (ivrp IaasVMRecoveryPoint) AsAzureWorkloadSQLPointInTimeRecoveryPoint() (*AzureWorkloadSQLPointInTimeRecoveryPoint, bool) { 12191 return nil, false 12192} 12193 12194// AsAzureWorkloadSQLRecoveryPoint is the BasicRecoveryPoint implementation for IaasVMRecoveryPoint. 12195func (ivrp IaasVMRecoveryPoint) AsAzureWorkloadSQLRecoveryPoint() (*AzureWorkloadSQLRecoveryPoint, bool) { 12196 return nil, false 12197} 12198 12199// AsBasicAzureWorkloadSQLRecoveryPoint is the BasicRecoveryPoint implementation for IaasVMRecoveryPoint. 12200func (ivrp IaasVMRecoveryPoint) AsBasicAzureWorkloadSQLRecoveryPoint() (BasicAzureWorkloadSQLRecoveryPoint, bool) { 12201 return nil, false 12202} 12203 12204// AsGenericRecoveryPoint is the BasicRecoveryPoint implementation for IaasVMRecoveryPoint. 12205func (ivrp IaasVMRecoveryPoint) AsGenericRecoveryPoint() (*GenericRecoveryPoint, bool) { 12206 return nil, false 12207} 12208 12209// AsIaasVMRecoveryPoint is the BasicRecoveryPoint implementation for IaasVMRecoveryPoint. 12210func (ivrp IaasVMRecoveryPoint) AsIaasVMRecoveryPoint() (*IaasVMRecoveryPoint, bool) { 12211 return &ivrp, true 12212} 12213 12214// AsRecoveryPoint is the BasicRecoveryPoint implementation for IaasVMRecoveryPoint. 12215func (ivrp IaasVMRecoveryPoint) AsRecoveryPoint() (*RecoveryPoint, bool) { 12216 return nil, false 12217} 12218 12219// AsBasicRecoveryPoint is the BasicRecoveryPoint implementation for IaasVMRecoveryPoint. 12220func (ivrp IaasVMRecoveryPoint) AsBasicRecoveryPoint() (BasicRecoveryPoint, bool) { 12221 return &ivrp, true 12222} 12223 12224// IaasVMRestoreRequest iaaS VM workload-specific restore. 12225type IaasVMRestoreRequest struct { 12226 // RecoveryPointID - ID of the backup copy to be recovered. 12227 RecoveryPointID *string `json:"recoveryPointId,omitempty"` 12228 // RecoveryType - Type of this recovery. Possible values include: 'RecoveryTypeInvalid', 'RecoveryTypeOriginalLocation', 'RecoveryTypeAlternateLocation', 'RecoveryTypeRestoreDisks', 'RecoveryTypeOffline' 12229 RecoveryType RecoveryType `json:"recoveryType,omitempty"` 12230 // SourceResourceID - Fully qualified ARM ID of the VM which is being recovered. 12231 SourceResourceID *string `json:"sourceResourceId,omitempty"` 12232 // TargetVirtualMachineID - This is the complete ARM Id of the VM that will be created. 12233 // For e.g. /subscriptions/{subId}/resourcegroups/{rg}/provider/Microsoft.Compute/virtualmachines/{vm} 12234 TargetVirtualMachineID *string `json:"targetVirtualMachineId,omitempty"` 12235 // TargetResourceGroupID - This is the ARM Id of the resource group that you want to create for this Virtual machine and other artifacts. 12236 // For e.g. /subscriptions/{subId}/resourcegroups/{rg} 12237 TargetResourceGroupID *string `json:"targetResourceGroupId,omitempty"` 12238 // StorageAccountID - Fully qualified ARM ID of the storage account to which the VM has to be restored. 12239 StorageAccountID *string `json:"storageAccountId,omitempty"` 12240 // VirtualNetworkID - This is the virtual network Id of the vnet that will be attached to the virtual machine. 12241 // User will be validated for join action permissions in the linked access. 12242 VirtualNetworkID *string `json:"virtualNetworkId,omitempty"` 12243 // SubnetID - Subnet ID, is the subnet ID associated with the to be restored VM. For Classic VMs it would be 12244 // {VnetID}/Subnet/{SubnetName} and, for the Azure Resource Manager VMs it would be ARM resource ID used to represent 12245 // the subnet. 12246 SubnetID *string `json:"subnetId,omitempty"` 12247 // TargetDomainNameID - Fully qualified ARM ID of the domain name to be associated to the VM being restored. This applies only to Classic 12248 // Virtual Machines. 12249 TargetDomainNameID *string `json:"targetDomainNameId,omitempty"` 12250 // Region - Region in which the virtual machine is restored. 12251 Region *string `json:"region,omitempty"` 12252 // AffinityGroup - Affinity group associated to VM to be restored. Used only for Classic Compute Virtual Machines. 12253 AffinityGroup *string `json:"affinityGroup,omitempty"` 12254 // CreateNewCloudService - Should a new cloud service be created while restoring the VM. If this is false, VM will be restored to the same 12255 // cloud service as it was at the time of backup. 12256 CreateNewCloudService *bool `json:"createNewCloudService,omitempty"` 12257 // OriginalStorageAccountOption - Original Storage Account Option 12258 OriginalStorageAccountOption *bool `json:"originalStorageAccountOption,omitempty"` 12259 // EncryptionDetails - Details needed if the VM was encrypted at the time of backup. 12260 EncryptionDetails *EncryptionDetails `json:"encryptionDetails,omitempty"` 12261 // RestoreDiskLunList - List of Disk LUNs for partial restore 12262 RestoreDiskLunList *[]int32 `json:"restoreDiskLunList,omitempty"` 12263 // ObjectType - Possible values include: 'ObjectTypeRestoreRequest', 'ObjectTypeAzureFileShareRestoreRequest', 'ObjectTypeAzureWorkloadPointInTimeRestoreRequest', 'ObjectTypeAzureWorkloadRestoreRequest', 'ObjectTypeAzureWorkloadSAPHanaPointInTimeRestoreRequest', 'ObjectTypeAzureWorkloadSAPHanaRestoreRequest', 'ObjectTypeAzureWorkloadSQLPointInTimeRestoreRequest', 'ObjectTypeAzureWorkloadSQLRestoreRequest', 'ObjectTypeIaasVMRestoreRequest' 12264 ObjectType ObjectTypeBasicRestoreRequest `json:"objectType,omitempty"` 12265} 12266 12267// MarshalJSON is the custom marshaler for IaasVMRestoreRequest. 12268func (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// AsAzureFileShareRestoreRequest is the BasicRestoreRequest implementation for IaasVMRestoreRequest. 12323func (ivrr IaasVMRestoreRequest) AsAzureFileShareRestoreRequest() (*AzureFileShareRestoreRequest, bool) { 12324 return nil, false 12325} 12326 12327// AsAzureWorkloadPointInTimeRestoreRequest is the BasicRestoreRequest implementation for IaasVMRestoreRequest. 12328func (ivrr IaasVMRestoreRequest) AsAzureWorkloadPointInTimeRestoreRequest() (*AzureWorkloadPointInTimeRestoreRequest, bool) { 12329 return nil, false 12330} 12331 12332// AsAzureWorkloadRestoreRequest is the BasicRestoreRequest implementation for IaasVMRestoreRequest. 12333func (ivrr IaasVMRestoreRequest) AsAzureWorkloadRestoreRequest() (*AzureWorkloadRestoreRequest, bool) { 12334 return nil, false 12335} 12336 12337// AsBasicAzureWorkloadRestoreRequest is the BasicRestoreRequest implementation for IaasVMRestoreRequest. 12338func (ivrr IaasVMRestoreRequest) AsBasicAzureWorkloadRestoreRequest() (BasicAzureWorkloadRestoreRequest, bool) { 12339 return nil, false 12340} 12341 12342// AsAzureWorkloadSAPHanaPointInTimeRestoreRequest is the BasicRestoreRequest implementation for IaasVMRestoreRequest. 12343func (ivrr IaasVMRestoreRequest) AsAzureWorkloadSAPHanaPointInTimeRestoreRequest() (*AzureWorkloadSAPHanaPointInTimeRestoreRequest, bool) { 12344 return nil, false 12345} 12346 12347// AsAzureWorkloadSAPHanaRestoreRequest is the BasicRestoreRequest implementation for IaasVMRestoreRequest. 12348func (ivrr IaasVMRestoreRequest) AsAzureWorkloadSAPHanaRestoreRequest() (*AzureWorkloadSAPHanaRestoreRequest, bool) { 12349 return nil, false 12350} 12351 12352// AsBasicAzureWorkloadSAPHanaRestoreRequest is the BasicRestoreRequest implementation for IaasVMRestoreRequest. 12353func (ivrr IaasVMRestoreRequest) AsBasicAzureWorkloadSAPHanaRestoreRequest() (BasicAzureWorkloadSAPHanaRestoreRequest, bool) { 12354 return nil, false 12355} 12356 12357// AsAzureWorkloadSQLPointInTimeRestoreRequest is the BasicRestoreRequest implementation for IaasVMRestoreRequest. 12358func (ivrr IaasVMRestoreRequest) AsAzureWorkloadSQLPointInTimeRestoreRequest() (*AzureWorkloadSQLPointInTimeRestoreRequest, bool) { 12359 return nil, false 12360} 12361 12362// AsAzureWorkloadSQLRestoreRequest is the BasicRestoreRequest implementation for IaasVMRestoreRequest. 12363func (ivrr IaasVMRestoreRequest) AsAzureWorkloadSQLRestoreRequest() (*AzureWorkloadSQLRestoreRequest, bool) { 12364 return nil, false 12365} 12366 12367// AsBasicAzureWorkloadSQLRestoreRequest is the BasicRestoreRequest implementation for IaasVMRestoreRequest. 12368func (ivrr IaasVMRestoreRequest) AsBasicAzureWorkloadSQLRestoreRequest() (BasicAzureWorkloadSQLRestoreRequest, bool) { 12369 return nil, false 12370} 12371 12372// AsIaasVMRestoreRequest is the BasicRestoreRequest implementation for IaasVMRestoreRequest. 12373func (ivrr IaasVMRestoreRequest) AsIaasVMRestoreRequest() (*IaasVMRestoreRequest, bool) { 12374 return &ivrr, true 12375} 12376 12377// AsRestoreRequest is the BasicRestoreRequest implementation for IaasVMRestoreRequest. 12378func (ivrr IaasVMRestoreRequest) AsRestoreRequest() (*RestoreRequest, bool) { 12379 return nil, false 12380} 12381 12382// AsBasicRestoreRequest is the BasicRestoreRequest implementation for IaasVMRestoreRequest. 12383func (ivrr IaasVMRestoreRequest) AsBasicRestoreRequest() (BasicRestoreRequest, bool) { 12384 return &ivrr, true 12385} 12386 12387// BasicILRRequest parameters to Provision ILR API. 12388type BasicILRRequest interface { 12389 AsAzureFileShareProvisionILRRequest() (*AzureFileShareProvisionILRRequest, bool) 12390 AsIaasVMILRRegistrationRequest() (*IaasVMILRRegistrationRequest, bool) 12391 AsILRRequest() (*ILRRequest, bool) 12392} 12393 12394// ILRRequest parameters to Provision ILR API. 12395type ILRRequest struct { 12396 // ObjectType - Possible values include: 'ObjectTypeILRRequest', 'ObjectTypeAzureFileShareProvisionILRRequest', 'ObjectTypeIaasVMILRRegistrationRequest' 12397 ObjectType ObjectTypeBasicILRRequest `json:"objectType,omitempty"` 12398} 12399 12400func 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} 12422func 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// MarshalJSON is the custom marshaler for ILRRequest. 12442func (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// AsAzureFileShareProvisionILRRequest is the BasicILRRequest implementation for ILRRequest. 12452func (ir ILRRequest) AsAzureFileShareProvisionILRRequest() (*AzureFileShareProvisionILRRequest, bool) { 12453 return nil, false 12454} 12455 12456// AsIaasVMILRRegistrationRequest is the BasicILRRequest implementation for ILRRequest. 12457func (ir ILRRequest) AsIaasVMILRRegistrationRequest() (*IaasVMILRRegistrationRequest, bool) { 12458 return nil, false 12459} 12460 12461// AsILRRequest is the BasicILRRequest implementation for ILRRequest. 12462func (ir ILRRequest) AsILRRequest() (*ILRRequest, bool) { 12463 return &ir, true 12464} 12465 12466// AsBasicILRRequest is the BasicILRRequest implementation for ILRRequest. 12467func (ir ILRRequest) AsBasicILRRequest() (BasicILRRequest, bool) { 12468 return &ir, true 12469} 12470 12471// ILRRequestResource parameters to Provision ILR API. 12472type ILRRequestResource struct { 12473 // Properties - ILRRequestResource properties 12474 Properties BasicILRRequest `json:"properties,omitempty"` 12475 // ID - READ-ONLY; Resource Id represents the complete path to the resource. 12476 ID *string `json:"id,omitempty"` 12477 // Name - READ-ONLY; Resource name associated with the resource. 12478 Name *string `json:"name,omitempty"` 12479 // Type - READ-ONLY; Resource type represents the complete path of the form Namespace/ResourceType/ResourceType/... 12480 Type *string `json:"type,omitempty"` 12481 // Location - Resource location. 12482 Location *string `json:"location,omitempty"` 12483 // Tags - Resource tags. 12484 Tags map[string]*string `json:"tags"` 12485 // ETag - Optional ETag. 12486 ETag *string `json:"eTag,omitempty"` 12487} 12488 12489// MarshalJSON is the custom marshaler for ILRRequestResource. 12490func (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// UnmarshalJSON is the custom unmarshaler for ILRRequestResource struct. 12506func (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// InquiryInfo details about inquired protectable items under a given container. 12583type InquiryInfo struct { 12584 // Status - Inquiry Status for this container such as 12585 // InProgress | Failed | Succeeded 12586 Status *string `json:"status,omitempty"` 12587 // ErrorDetail - Error Details if the Status is non-success. 12588 ErrorDetail *ErrorDetail `json:"errorDetail,omitempty"` 12589 // InquiryDetails - Inquiry Details which will have workload specific details. 12590 // For e.g. - For SQL and oracle this will contain different details. 12591 InquiryDetails *[]WorkloadInquiryDetails `json:"inquiryDetails,omitempty"` 12592} 12593 12594// InquiryValidation validation for inquired protectable items under a given container. 12595type InquiryValidation struct { 12596 // Status - Status for the Inquiry Validation. 12597 Status *string `json:"status,omitempty"` 12598 // ErrorDetail - Error Detail in case the status is non-success. 12599 ErrorDetail *ErrorDetail `json:"errorDetail,omitempty"` 12600 // AdditionalDetail - READ-ONLY; Error Additional Detail in case the status is non-success. 12601 AdditionalDetail *string `json:"additionalDetail,omitempty"` 12602} 12603 12604// MarshalJSON is the custom marshaler for InquiryValidation. 12605func (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// InstantItemRecoveryTarget target details for file / folder restore. 12617type InstantItemRecoveryTarget struct { 12618 // ClientScripts - List of client scripts. 12619 ClientScripts *[]ClientScriptForConnect `json:"clientScripts,omitempty"` 12620} 12621 12622// InstantRPAdditionalDetails ... 12623type InstantRPAdditionalDetails struct { 12624 AzureBackupRGNamePrefix *string `json:"azureBackupRGNamePrefix,omitempty"` 12625 AzureBackupRGNameSuffix *string `json:"azureBackupRGNameSuffix,omitempty"` 12626} 12627 12628// BasicJob defines workload agnostic properties for a job. 12629type 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// Job defines workload agnostic properties for a job. 12639type Job struct { 12640 // EntityFriendlyName - Friendly name of the entity on which the current job is executing. 12641 EntityFriendlyName *string `json:"entityFriendlyName,omitempty"` 12642 // BackupManagementType - Backup management type to execute the current job. Possible values include: 'ManagementTypeInvalid', 'ManagementTypeAzureIaasVM', 'ManagementTypeMAB', 'ManagementTypeDPM', 'ManagementTypeAzureBackupServer', 'ManagementTypeAzureSQL', 'ManagementTypeAzureStorage', 'ManagementTypeAzureWorkload', 'ManagementTypeDefaultBackup' 12643 BackupManagementType ManagementType `json:"backupManagementType,omitempty"` 12644 // Operation - The operation name. 12645 Operation *string `json:"operation,omitempty"` 12646 // Status - Job status. 12647 Status *string `json:"status,omitempty"` 12648 // StartTime - The start time. 12649 StartTime *date.Time `json:"startTime,omitempty"` 12650 // EndTime - The end time. 12651 EndTime *date.Time `json:"endTime,omitempty"` 12652 // ActivityID - ActivityId of job. 12653 ActivityID *string `json:"activityId,omitempty"` 12654 // JobType - Possible values include: 'JobTypeJob', 'JobTypeAzureIaaSVMJob', 'JobTypeAzureStorageJob', 'JobTypeAzureWorkloadJob', 'JobTypeDpmJob', 'JobTypeMabJob' 12655 JobType JobType `json:"jobType,omitempty"` 12656} 12657 12658func 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} 12692func 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// MarshalJSON is the custom marshaler for Job. 12712func (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// AsAzureIaaSVMJob is the BasicJob implementation for Job. 12743func (j Job) AsAzureIaaSVMJob() (*AzureIaaSVMJob, bool) { 12744 return nil, false 12745} 12746 12747// AsAzureStorageJob is the BasicJob implementation for Job. 12748func (j Job) AsAzureStorageJob() (*AzureStorageJob, bool) { 12749 return nil, false 12750} 12751 12752// AsAzureWorkloadJob is the BasicJob implementation for Job. 12753func (j Job) AsAzureWorkloadJob() (*AzureWorkloadJob, bool) { 12754 return nil, false 12755} 12756 12757// AsDpmJob is the BasicJob implementation for Job. 12758func (j Job) AsDpmJob() (*DpmJob, bool) { 12759 return nil, false 12760} 12761 12762// AsMabJob is the BasicJob implementation for Job. 12763func (j Job) AsMabJob() (*MabJob, bool) { 12764 return nil, false 12765} 12766 12767// AsJob is the BasicJob implementation for Job. 12768func (j Job) AsJob() (*Job, bool) { 12769 return &j, true 12770} 12771 12772// AsBasicJob is the BasicJob implementation for Job. 12773func (j Job) AsBasicJob() (BasicJob, bool) { 12774 return &j, true 12775} 12776 12777// JobQueryObject filters to list the jobs. 12778type JobQueryObject struct { 12779 // Status - Status of the job. Possible values include: 'JobStatusInvalid', 'JobStatusInProgress', 'JobStatusCompleted', 'JobStatusFailed', 'JobStatusCompletedWithWarnings', 'JobStatusCancelled', 'JobStatusCancelling' 12780 Status JobStatus `json:"status,omitempty"` 12781 // BackupManagementType - Type of backup management for the job. Possible values include: 'ManagementTypeInvalid', 'ManagementTypeAzureIaasVM', 'ManagementTypeMAB', 'ManagementTypeDPM', 'ManagementTypeAzureBackupServer', 'ManagementTypeAzureSQL', 'ManagementTypeAzureStorage', 'ManagementTypeAzureWorkload', 'ManagementTypeDefaultBackup' 12782 BackupManagementType ManagementType `json:"backupManagementType,omitempty"` 12783 // Operation - Type of operation. Possible values include: 'JobOperationTypeInvalid', 'JobOperationTypeRegister', 'JobOperationTypeUnRegister', 'JobOperationTypeConfigureBackup', 'JobOperationTypeBackup', 'JobOperationTypeRestore', 'JobOperationTypeDisableBackup', 'JobOperationTypeDeleteBackupData', 'JobOperationTypeCrossRegionRestore', 'JobOperationTypeUndelete' 12784 Operation JobOperationType `json:"operation,omitempty"` 12785 // JobID - JobID represents the job uniquely. 12786 JobID *string `json:"jobId,omitempty"` 12787 // StartTime - Job has started at this time. Value is in UTC. 12788 StartTime *date.Time `json:"startTime,omitempty"` 12789 // EndTime - Job has ended at this time. Value is in UTC. 12790 EndTime *date.Time `json:"endTime,omitempty"` 12791} 12792 12793// JobResource defines workload agnostic properties for a job. 12794type JobResource struct { 12795 autorest.Response `json:"-"` 12796 // Properties - JobResource properties 12797 Properties BasicJob `json:"properties,omitempty"` 12798 // ID - READ-ONLY; Resource Id represents the complete path to the resource. 12799 ID *string `json:"id,omitempty"` 12800 // Name - READ-ONLY; Resource name associated with the resource. 12801 Name *string `json:"name,omitempty"` 12802 // Type - READ-ONLY; Resource type represents the complete path of the form Namespace/ResourceType/ResourceType/... 12803 Type *string `json:"type,omitempty"` 12804 // Location - Resource location. 12805 Location *string `json:"location,omitempty"` 12806 // Tags - Resource tags. 12807 Tags map[string]*string `json:"tags"` 12808 // ETag - Optional ETag. 12809 ETag *string `json:"eTag,omitempty"` 12810} 12811 12812// MarshalJSON is the custom marshaler for JobResource. 12813func (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// UnmarshalJSON is the custom unmarshaler for JobResource struct. 12829func (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// JobResourceList list of Job resources 12906type JobResourceList struct { 12907 autorest.Response `json:"-"` 12908 // Value - List of resources. 12909 Value *[]JobResource `json:"value,omitempty"` 12910 // NextLink - The uri to fetch the next page of resources. Call ListNext() fetches next page of resources. 12911 NextLink *string `json:"nextLink,omitempty"` 12912} 12913 12914// JobResourceListIterator provides access to a complete listing of JobResource values. 12915type JobResourceListIterator struct { 12916 i int 12917 page JobResourceListPage 12918} 12919 12920// NextWithContext advances to the next value. If there was an error making 12921// the request the iterator does not advance and the error is returned. 12922func (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// Next advances to the next value. If there was an error making 12947// the request the iterator does not advance and the error is returned. 12948// Deprecated: Use NextWithContext() instead. 12949func (iter *JobResourceListIterator) Next() error { 12950 return iter.NextWithContext(context.Background()) 12951} 12952 12953// NotDone returns true if the enumeration should be started or is not yet complete. 12954func (iter JobResourceListIterator) NotDone() bool { 12955 return iter.page.NotDone() && iter.i < len(iter.page.Values()) 12956} 12957 12958// Response returns the raw server response from the last page request. 12959func (iter JobResourceListIterator) Response() JobResourceList { 12960 return iter.page.Response() 12961} 12962 12963// Value returns the current value or a zero-initialized value if the 12964// iterator has advanced beyond the end of the collection. 12965func (iter JobResourceListIterator) Value() JobResource { 12966 if !iter.page.NotDone() { 12967 return JobResource{} 12968 } 12969 return iter.page.Values()[iter.i] 12970} 12971 12972// Creates a new instance of the JobResourceListIterator type. 12973func NewJobResourceListIterator(page JobResourceListPage) JobResourceListIterator { 12974 return JobResourceListIterator{page: page} 12975} 12976 12977// IsEmpty returns true if the ListResult contains no values. 12978func (jrl JobResourceList) IsEmpty() bool { 12979 return jrl.Value == nil || len(*jrl.Value) == 0 12980} 12981 12982// hasNextLink returns true if the NextLink is not empty. 12983func (jrl JobResourceList) hasNextLink() bool { 12984 return jrl.NextLink != nil && len(*jrl.NextLink) != 0 12985} 12986 12987// jobResourceListPreparer prepares a request to retrieve the next set of results. 12988// It returns nil if no more results exist. 12989func (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// JobResourceListPage contains a page of JobResource values. 13000type JobResourceListPage struct { 13001 fn func(context.Context, JobResourceList) (JobResourceList, error) 13002 jrl JobResourceList 13003} 13004 13005// NextWithContext advances to the next page of values. If there was an error making 13006// the request the page does not advance and the error is returned. 13007func (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// Next advances to the next page of values. If there was an error making 13032// the request the page does not advance and the error is returned. 13033// Deprecated: Use NextWithContext() instead. 13034func (page *JobResourceListPage) Next() error { 13035 return page.NextWithContext(context.Background()) 13036} 13037 13038// NotDone returns true if the page enumeration should be started or is not yet complete. 13039func (page JobResourceListPage) NotDone() bool { 13040 return !page.jrl.IsEmpty() 13041} 13042 13043// Response returns the raw server response from the last page request. 13044func (page JobResourceListPage) Response() JobResourceList { 13045 return page.jrl 13046} 13047 13048// Values returns the slice of values for the current page or nil if there are no values. 13049func (page JobResourceListPage) Values() []JobResource { 13050 if page.jrl.IsEmpty() { 13051 return nil 13052 } 13053 return *page.jrl.Value 13054} 13055 13056// Creates a new instance of the JobResourceListPage type. 13057func NewJobResourceListPage(cur JobResourceList, getNextPage func(context.Context, JobResourceList) (JobResourceList, error)) JobResourceListPage { 13058 return JobResourceListPage{ 13059 fn: getNextPage, 13060 jrl: cur, 13061 } 13062} 13063 13064// KEKDetails KEK is encryption key for BEK. 13065type KEKDetails struct { 13066 // KeyURL - Key is KEK. 13067 KeyURL *string `json:"keyUrl,omitempty"` 13068 // KeyVaultID - Key Vault ID where this Key is stored. 13069 KeyVaultID *string `json:"keyVaultId,omitempty"` 13070 // KeyBackupData - KEK data. 13071 KeyBackupData *string `json:"keyBackupData,omitempty"` 13072} 13073 13074// KeyAndSecretDetails BEK is bitlocker key. 13075// KEK is encryption key for BEK 13076// If the VM was encrypted then we will store following details : 13077// 1. Secret(BEK) - Url + Backup Data + vaultId. 13078// 2. Key(KEK) - Url + Backup Data + vaultId. 13079// 3. EncryptionMechanism 13080// BEK and KEK can potentially have different vault ids. 13081type KeyAndSecretDetails struct { 13082 // KekDetails - KEK is encryption key for BEK. 13083 KekDetails *KEKDetails `json:"kekDetails,omitempty"` 13084 // BekDetails - BEK is bitlocker encryption key. 13085 BekDetails *BEKDetails `json:"bekDetails,omitempty"` 13086 // EncryptionMechanism - Encryption mechanism: None/ SinglePass/ DoublePass 13087 EncryptionMechanism *string `json:"encryptionMechanism,omitempty"` 13088} 13089 13090// KPIResourceHealthDetails KPI Resource Health Details 13091type KPIResourceHealthDetails struct { 13092 // ResourceHealthStatus - Resource Health Status. Possible values include: 'ResourceHealthStatusHealthy', 'ResourceHealthStatusTransientDegraded', 'ResourceHealthStatusPersistentDegraded', 'ResourceHealthStatusTransientUnhealthy', 'ResourceHealthStatusPersistentUnhealthy', 'ResourceHealthStatusInvalid' 13093 ResourceHealthStatus ResourceHealthStatus `json:"resourceHealthStatus,omitempty"` 13094 // ResourceHealthDetails - Resource Health Status 13095 ResourceHealthDetails *[]ResourceHealthDetails `json:"resourceHealthDetails,omitempty"` 13096} 13097 13098// LogSchedulePolicy log policy schedule. 13099type LogSchedulePolicy struct { 13100 // ScheduleFrequencyInMins - Frequency of the log schedule operation of this policy in minutes. 13101 ScheduleFrequencyInMins *int32 `json:"scheduleFrequencyInMins,omitempty"` 13102 // SchedulePolicyType - Possible values include: 'SchedulePolicyTypeSchedulePolicy', 'SchedulePolicyTypeLogSchedulePolicy', 'SchedulePolicyTypeLongTermSchedulePolicy', 'SchedulePolicyTypeSimpleSchedulePolicy' 13103 SchedulePolicyType SchedulePolicyType `json:"schedulePolicyType,omitempty"` 13104} 13105 13106// MarshalJSON is the custom marshaler for LogSchedulePolicy. 13107func (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// AsLogSchedulePolicy is the BasicSchedulePolicy implementation for LogSchedulePolicy. 13120func (lsp LogSchedulePolicy) AsLogSchedulePolicy() (*LogSchedulePolicy, bool) { 13121 return &lsp, true 13122} 13123 13124// AsLongTermSchedulePolicy is the BasicSchedulePolicy implementation for LogSchedulePolicy. 13125func (lsp LogSchedulePolicy) AsLongTermSchedulePolicy() (*LongTermSchedulePolicy, bool) { 13126 return nil, false 13127} 13128 13129// AsSimpleSchedulePolicy is the BasicSchedulePolicy implementation for LogSchedulePolicy. 13130func (lsp LogSchedulePolicy) AsSimpleSchedulePolicy() (*SimpleSchedulePolicy, bool) { 13131 return nil, false 13132} 13133 13134// AsSchedulePolicy is the BasicSchedulePolicy implementation for LogSchedulePolicy. 13135func (lsp LogSchedulePolicy) AsSchedulePolicy() (*SchedulePolicy, bool) { 13136 return nil, false 13137} 13138 13139// AsBasicSchedulePolicy is the BasicSchedulePolicy implementation for LogSchedulePolicy. 13140func (lsp LogSchedulePolicy) AsBasicSchedulePolicy() (BasicSchedulePolicy, bool) { 13141 return &lsp, true 13142} 13143 13144// LongTermRetentionPolicy long term retention policy. 13145type LongTermRetentionPolicy struct { 13146 // DailySchedule - Daily retention schedule of the protection policy. 13147 DailySchedule *DailyRetentionSchedule `json:"dailySchedule,omitempty"` 13148 // WeeklySchedule - Weekly retention schedule of the protection policy. 13149 WeeklySchedule *WeeklyRetentionSchedule `json:"weeklySchedule,omitempty"` 13150 // MonthlySchedule - Monthly retention schedule of the protection policy. 13151 MonthlySchedule *MonthlyRetentionSchedule `json:"monthlySchedule,omitempty"` 13152 // YearlySchedule - Yearly retention schedule of the protection policy. 13153 YearlySchedule *YearlyRetentionSchedule `json:"yearlySchedule,omitempty"` 13154 // RetentionPolicyType - Possible values include: 'RetentionPolicyTypeRetentionPolicy', 'RetentionPolicyTypeLongTermRetentionPolicy', 'RetentionPolicyTypeSimpleRetentionPolicy' 13155 RetentionPolicyType RetentionPolicyType `json:"retentionPolicyType,omitempty"` 13156} 13157 13158// MarshalJSON is the custom marshaler for LongTermRetentionPolicy. 13159func (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// AsLongTermRetentionPolicy is the BasicRetentionPolicy implementation for LongTermRetentionPolicy. 13181func (ltrp LongTermRetentionPolicy) AsLongTermRetentionPolicy() (*LongTermRetentionPolicy, bool) { 13182 return <rp, true 13183} 13184 13185// AsSimpleRetentionPolicy is the BasicRetentionPolicy implementation for LongTermRetentionPolicy. 13186func (ltrp LongTermRetentionPolicy) AsSimpleRetentionPolicy() (*SimpleRetentionPolicy, bool) { 13187 return nil, false 13188} 13189 13190// AsRetentionPolicy is the BasicRetentionPolicy implementation for LongTermRetentionPolicy. 13191func (ltrp LongTermRetentionPolicy) AsRetentionPolicy() (*RetentionPolicy, bool) { 13192 return nil, false 13193} 13194 13195// AsBasicRetentionPolicy is the BasicRetentionPolicy implementation for LongTermRetentionPolicy. 13196func (ltrp LongTermRetentionPolicy) AsBasicRetentionPolicy() (BasicRetentionPolicy, bool) { 13197 return <rp, true 13198} 13199 13200// LongTermSchedulePolicy long term policy schedule. 13201type LongTermSchedulePolicy struct { 13202 // SchedulePolicyType - Possible values include: 'SchedulePolicyTypeSchedulePolicy', 'SchedulePolicyTypeLogSchedulePolicy', 'SchedulePolicyTypeLongTermSchedulePolicy', 'SchedulePolicyTypeSimpleSchedulePolicy' 13203 SchedulePolicyType SchedulePolicyType `json:"schedulePolicyType,omitempty"` 13204} 13205 13206// MarshalJSON is the custom marshaler for LongTermSchedulePolicy. 13207func (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// AsLogSchedulePolicy is the BasicSchedulePolicy implementation for LongTermSchedulePolicy. 13217func (ltsp LongTermSchedulePolicy) AsLogSchedulePolicy() (*LogSchedulePolicy, bool) { 13218 return nil, false 13219} 13220 13221// AsLongTermSchedulePolicy is the BasicSchedulePolicy implementation for LongTermSchedulePolicy. 13222func (ltsp LongTermSchedulePolicy) AsLongTermSchedulePolicy() (*LongTermSchedulePolicy, bool) { 13223 return <sp, true 13224} 13225 13226// AsSimpleSchedulePolicy is the BasicSchedulePolicy implementation for LongTermSchedulePolicy. 13227func (ltsp LongTermSchedulePolicy) AsSimpleSchedulePolicy() (*SimpleSchedulePolicy, bool) { 13228 return nil, false 13229} 13230 13231// AsSchedulePolicy is the BasicSchedulePolicy implementation for LongTermSchedulePolicy. 13232func (ltsp LongTermSchedulePolicy) AsSchedulePolicy() (*SchedulePolicy, bool) { 13233 return nil, false 13234} 13235 13236// AsBasicSchedulePolicy is the BasicSchedulePolicy implementation for LongTermSchedulePolicy. 13237func (ltsp LongTermSchedulePolicy) AsBasicSchedulePolicy() (BasicSchedulePolicy, bool) { 13238 return <sp, true 13239} 13240 13241// MabContainer container with items backed up using MAB backup engine. 13242type MabContainer struct { 13243 // CanReRegister - Can the container be registered one more time. 13244 CanReRegister *bool `json:"canReRegister,omitempty"` 13245 // ContainerID - ContainerID represents the container. 13246 ContainerID *int64 `json:"containerId,omitempty"` 13247 // ProtectedItemCount - Number of items backed up in this container. 13248 ProtectedItemCount *int64 `json:"protectedItemCount,omitempty"` 13249 // AgentVersion - Agent version of this container. 13250 AgentVersion *string `json:"agentVersion,omitempty"` 13251 // ExtendedInfo - Additional information for this container 13252 ExtendedInfo *MabContainerExtendedInfo `json:"extendedInfo,omitempty"` 13253 // MabContainerHealthDetails - Health details on this mab container. 13254 MabContainerHealthDetails *[]MABContainerHealthDetails `json:"mabContainerHealthDetails,omitempty"` 13255 // ContainerHealthState - Health state of mab container. 13256 ContainerHealthState *string `json:"containerHealthState,omitempty"` 13257 // FriendlyName - Friendly name of the container. 13258 FriendlyName *string `json:"friendlyName,omitempty"` 13259 // BackupManagementType - Type of backup management for the container. Possible values include: 'ManagementTypeInvalid', 'ManagementTypeAzureIaasVM', 'ManagementTypeMAB', 'ManagementTypeDPM', 'ManagementTypeAzureBackupServer', 'ManagementTypeAzureSQL', 'ManagementTypeAzureStorage', 'ManagementTypeAzureWorkload', 'ManagementTypeDefaultBackup' 13260 BackupManagementType ManagementType `json:"backupManagementType,omitempty"` 13261 // RegistrationStatus - Status of registration of the container with the Recovery Services Vault. 13262 RegistrationStatus *string `json:"registrationStatus,omitempty"` 13263 // HealthStatus - Status of health of the container. 13264 HealthStatus *string `json:"healthStatus,omitempty"` 13265 // ContainerType - Possible values include: 'ContainerTypeProtectionContainer', 'ContainerTypeAzureBackupServerContainer1', 'ContainerTypeMicrosoftClassicComputevirtualMachines', 'ContainerTypeMicrosoftComputevirtualMachines', 'ContainerTypeSQLAGWorkLoadContainer1', 'ContainerTypeAzureSQLContainer1', 'ContainerTypeStorageContainer1', 'ContainerTypeVMAppContainer1', 'ContainerTypeAzureWorkloadContainer', 'ContainerTypeDPMContainer1', 'ContainerTypeGenericContainer1', 'ContainerTypeIaaSVMContainer', 'ContainerTypeWindows1' 13266 ContainerType ContainerTypeBasicProtectionContainer `json:"containerType,omitempty"` 13267} 13268 13269// MarshalJSON is the custom marshaler for MabContainer. 13270func (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// AsAzureBackupServerContainer is the BasicProtectionContainer implementation for MabContainer. 13313func (mc MabContainer) AsAzureBackupServerContainer() (*AzureBackupServerContainer, bool) { 13314 return nil, false 13315} 13316 13317// AsAzureIaaSClassicComputeVMContainer is the BasicProtectionContainer implementation for MabContainer. 13318func (mc MabContainer) AsAzureIaaSClassicComputeVMContainer() (*AzureIaaSClassicComputeVMContainer, bool) { 13319 return nil, false 13320} 13321 13322// AsAzureIaaSComputeVMContainer is the BasicProtectionContainer implementation for MabContainer. 13323func (mc MabContainer) AsAzureIaaSComputeVMContainer() (*AzureIaaSComputeVMContainer, bool) { 13324 return nil, false 13325} 13326 13327// AsAzureSQLAGWorkloadContainerProtectionContainer is the BasicProtectionContainer implementation for MabContainer. 13328func (mc MabContainer) AsAzureSQLAGWorkloadContainerProtectionContainer() (*AzureSQLAGWorkloadContainerProtectionContainer, bool) { 13329 return nil, false 13330} 13331 13332// AsAzureSQLContainer is the BasicProtectionContainer implementation for MabContainer. 13333func (mc MabContainer) AsAzureSQLContainer() (*AzureSQLContainer, bool) { 13334 return nil, false 13335} 13336 13337// AsAzureStorageContainer is the BasicProtectionContainer implementation for MabContainer. 13338func (mc MabContainer) AsAzureStorageContainer() (*AzureStorageContainer, bool) { 13339 return nil, false 13340} 13341 13342// AsAzureVMAppContainerProtectionContainer is the BasicProtectionContainer implementation for MabContainer. 13343func (mc MabContainer) AsAzureVMAppContainerProtectionContainer() (*AzureVMAppContainerProtectionContainer, bool) { 13344 return nil, false 13345} 13346 13347// AsAzureWorkloadContainer is the BasicProtectionContainer implementation for MabContainer. 13348func (mc MabContainer) AsAzureWorkloadContainer() (*AzureWorkloadContainer, bool) { 13349 return nil, false 13350} 13351 13352// AsBasicAzureWorkloadContainer is the BasicProtectionContainer implementation for MabContainer. 13353func (mc MabContainer) AsBasicAzureWorkloadContainer() (BasicAzureWorkloadContainer, bool) { 13354 return nil, false 13355} 13356 13357// AsDpmContainer is the BasicProtectionContainer implementation for MabContainer. 13358func (mc MabContainer) AsDpmContainer() (*DpmContainer, bool) { 13359 return nil, false 13360} 13361 13362// AsBasicDpmContainer is the BasicProtectionContainer implementation for MabContainer. 13363func (mc MabContainer) AsBasicDpmContainer() (BasicDpmContainer, bool) { 13364 return nil, false 13365} 13366 13367// AsGenericContainer is the BasicProtectionContainer implementation for MabContainer. 13368func (mc MabContainer) AsGenericContainer() (*GenericContainer, bool) { 13369 return nil, false 13370} 13371 13372// AsIaaSVMContainer is the BasicProtectionContainer implementation for MabContainer. 13373func (mc MabContainer) AsIaaSVMContainer() (*IaaSVMContainer, bool) { 13374 return nil, false 13375} 13376 13377// AsBasicIaaSVMContainer is the BasicProtectionContainer implementation for MabContainer. 13378func (mc MabContainer) AsBasicIaaSVMContainer() (BasicIaaSVMContainer, bool) { 13379 return nil, false 13380} 13381 13382// AsMabContainer is the BasicProtectionContainer implementation for MabContainer. 13383func (mc MabContainer) AsMabContainer() (*MabContainer, bool) { 13384 return &mc, true 13385} 13386 13387// AsProtectionContainer is the BasicProtectionContainer implementation for MabContainer. 13388func (mc MabContainer) AsProtectionContainer() (*ProtectionContainer, bool) { 13389 return nil, false 13390} 13391 13392// AsBasicProtectionContainer is the BasicProtectionContainer implementation for MabContainer. 13393func (mc MabContainer) AsBasicProtectionContainer() (BasicProtectionContainer, bool) { 13394 return &mc, true 13395} 13396 13397// MabContainerExtendedInfo additional information of the container. 13398type MabContainerExtendedInfo struct { 13399 // LastRefreshedAt - Time stamp when this container was refreshed. 13400 LastRefreshedAt *date.Time `json:"lastRefreshedAt,omitempty"` 13401 // BackupItemType - Type of backup items associated with this container. Possible values include: 'ItemTypeInvalid', 'ItemTypeVM', 'ItemTypeFileFolder', 'ItemTypeAzureSQLDb', 'ItemTypeSQLDB', 'ItemTypeExchange', 'ItemTypeSharepoint', 'ItemTypeVMwareVM', 'ItemTypeSystemState', 'ItemTypeClient', 'ItemTypeGenericDataSource', 'ItemTypeSQLDataBase', 'ItemTypeAzureFileShare', 'ItemTypeSAPHanaDatabase', 'ItemTypeSAPAseDatabase' 13402 BackupItemType ItemType `json:"backupItemType,omitempty"` 13403 // BackupItems - List of backup items associated with this container. 13404 BackupItems *[]string `json:"backupItems,omitempty"` 13405 // PolicyName - Backup policy associated with this container. 13406 PolicyName *string `json:"policyName,omitempty"` 13407 // LastBackupStatus - Latest backup status of this container. 13408 LastBackupStatus *string `json:"lastBackupStatus,omitempty"` 13409} 13410 13411// MABContainerHealthDetails MAB workload-specific Health Details. 13412type MABContainerHealthDetails struct { 13413 // Code - Health Code 13414 Code *int32 `json:"code,omitempty"` 13415 // Title - Health Title 13416 Title *string `json:"title,omitempty"` 13417 // Message - Health Message 13418 Message *string `json:"message,omitempty"` 13419 // Recommendations - Health Recommended Actions 13420 Recommendations *[]string `json:"recommendations,omitempty"` 13421} 13422 13423// MabErrorInfo MAB workload-specific error information. 13424type MabErrorInfo struct { 13425 // ErrorString - READ-ONLY; Localized error string. 13426 ErrorString *string `json:"errorString,omitempty"` 13427 // Recommendations - READ-ONLY; List of localized recommendations. 13428 Recommendations *[]string `json:"recommendations,omitempty"` 13429} 13430 13431// MarshalJSON is the custom marshaler for MabErrorInfo. 13432func (mei MabErrorInfo) MarshalJSON() ([]byte, error) { 13433 objectMap := make(map[string]interface{}) 13434 return json.Marshal(objectMap) 13435} 13436 13437// MabFileFolderProtectedItem MAB workload-specific backup item. 13438type MabFileFolderProtectedItem struct { 13439 // FriendlyName - Friendly name of this backup item. 13440 FriendlyName *string `json:"friendlyName,omitempty"` 13441 // ComputerName - Name of the computer associated with this backup item. 13442 ComputerName *string `json:"computerName,omitempty"` 13443 // LastBackupStatus - Status of last backup operation. 13444 LastBackupStatus *string `json:"lastBackupStatus,omitempty"` 13445 // LastBackupTime - Timestamp of the last backup operation on this backup item. 13446 LastBackupTime *date.Time `json:"lastBackupTime,omitempty"` 13447 // ProtectionState - Protected, ProtectionStopped, IRPending or ProtectionError 13448 ProtectionState *string `json:"protectionState,omitempty"` 13449 // DeferredDeleteSyncTimeInUTC - Sync time for deferred deletion in UTC 13450 DeferredDeleteSyncTimeInUTC *int64 `json:"deferredDeleteSyncTimeInUTC,omitempty"` 13451 // ExtendedInfo - Additional information with this backup item. 13452 ExtendedInfo *MabFileFolderProtectedItemExtendedInfo `json:"extendedInfo,omitempty"` 13453 // BackupManagementType - Type of backup management for the backed up item. Possible values include: 'ManagementTypeInvalid', 'ManagementTypeAzureIaasVM', 'ManagementTypeMAB', 'ManagementTypeDPM', 'ManagementTypeAzureBackupServer', 'ManagementTypeAzureSQL', 'ManagementTypeAzureStorage', 'ManagementTypeAzureWorkload', 'ManagementTypeDefaultBackup' 13454 BackupManagementType ManagementType `json:"backupManagementType,omitempty"` 13455 // WorkloadType - Type of workload this item represents. Possible values include: 'DataSourceTypeInvalid', 'DataSourceTypeVM', 'DataSourceTypeFileFolder', 'DataSourceTypeAzureSQLDb', 'DataSourceTypeSQLDB', 'DataSourceTypeExchange', 'DataSourceTypeSharepoint', 'DataSourceTypeVMwareVM', 'DataSourceTypeSystemState', 'DataSourceTypeClient', 'DataSourceTypeGenericDataSource', 'DataSourceTypeSQLDataBase', 'DataSourceTypeAzureFileShare', 'DataSourceTypeSAPHanaDatabase', 'DataSourceTypeSAPAseDatabase' 13456 WorkloadType DataSourceType `json:"workloadType,omitempty"` 13457 // ContainerName - Unique name of container 13458 ContainerName *string `json:"containerName,omitempty"` 13459 // SourceResourceID - ARM ID of the resource to be backed up. 13460 SourceResourceID *string `json:"sourceResourceId,omitempty"` 13461 // PolicyID - ID of the backup policy with which this item is backed up. 13462 PolicyID *string `json:"policyId,omitempty"` 13463 // LastRecoveryPoint - Timestamp when the last (latest) backup copy was created for this backup item. 13464 LastRecoveryPoint *date.Time `json:"lastRecoveryPoint,omitempty"` 13465 // BackupSetName - Name of the backup set the backup item belongs to 13466 BackupSetName *string `json:"backupSetName,omitempty"` 13467 // CreateMode - Create mode to indicate recovery of existing soft deleted data source or creation of new data source. Possible values include: 'CreateModeInvalid', 'CreateModeDefault', 'CreateModeRecover' 13468 CreateMode CreateMode `json:"createMode,omitempty"` 13469 // DeferredDeleteTimeInUTC - Time for deferred deletion in UTC 13470 DeferredDeleteTimeInUTC *date.Time `json:"deferredDeleteTimeInUTC,omitempty"` 13471 // IsScheduledForDeferredDelete - Flag to identify whether the DS is scheduled for deferred delete 13472 IsScheduledForDeferredDelete *bool `json:"isScheduledForDeferredDelete,omitempty"` 13473 // DeferredDeleteTimeRemaining - Time remaining before the DS marked for deferred delete is permanently deleted 13474 DeferredDeleteTimeRemaining *string `json:"deferredDeleteTimeRemaining,omitempty"` 13475 // IsDeferredDeleteScheduleUpcoming - Flag to identify whether the deferred deleted DS is to be purged soon 13476 IsDeferredDeleteScheduleUpcoming *bool `json:"isDeferredDeleteScheduleUpcoming,omitempty"` 13477 // IsRehydrate - Flag to identify that deferred deleted DS is to be moved into Pause state 13478 IsRehydrate *bool `json:"isRehydrate,omitempty"` 13479 // ProtectedItemType - Possible values include: 'ProtectedItemTypeProtectedItem', 'ProtectedItemTypeAzureFileShareProtectedItem', 'ProtectedItemTypeMicrosoftClassicComputevirtualMachines', 'ProtectedItemTypeMicrosoftComputevirtualMachines', 'ProtectedItemTypeAzureIaaSVMProtectedItem', 'ProtectedItemTypeMicrosoftSqlserversdatabases', 'ProtectedItemTypeAzureVMWorkloadProtectedItem', 'ProtectedItemTypeAzureVMWorkloadSAPAseDatabase', 'ProtectedItemTypeAzureVMWorkloadSAPHanaDatabase', 'ProtectedItemTypeAzureVMWorkloadSQLDatabase', 'ProtectedItemTypeDPMProtectedItem', 'ProtectedItemTypeGenericProtectedItem', 'ProtectedItemTypeMabFileFolderProtectedItem' 13480 ProtectedItemType ProtectedItemType `json:"protectedItemType,omitempty"` 13481} 13482 13483// MarshalJSON is the custom marshaler for MabFileFolderProtectedItem. 13484func (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// AsAzureFileshareProtectedItem is the BasicProtectedItem implementation for MabFileFolderProtectedItem. 13554func (mffpi MabFileFolderProtectedItem) AsAzureFileshareProtectedItem() (*AzureFileshareProtectedItem, bool) { 13555 return nil, false 13556} 13557 13558// AsAzureIaaSClassicComputeVMProtectedItem is the BasicProtectedItem implementation for MabFileFolderProtectedItem. 13559func (mffpi MabFileFolderProtectedItem) AsAzureIaaSClassicComputeVMProtectedItem() (*AzureIaaSClassicComputeVMProtectedItem, bool) { 13560 return nil, false 13561} 13562 13563// AsAzureIaaSComputeVMProtectedItem is the BasicProtectedItem implementation for MabFileFolderProtectedItem. 13564func (mffpi MabFileFolderProtectedItem) AsAzureIaaSComputeVMProtectedItem() (*AzureIaaSComputeVMProtectedItem, bool) { 13565 return nil, false 13566} 13567 13568// AsAzureIaaSVMProtectedItem is the BasicProtectedItem implementation for MabFileFolderProtectedItem. 13569func (mffpi MabFileFolderProtectedItem) AsAzureIaaSVMProtectedItem() (*AzureIaaSVMProtectedItem, bool) { 13570 return nil, false 13571} 13572 13573// AsBasicAzureIaaSVMProtectedItem is the BasicProtectedItem implementation for MabFileFolderProtectedItem. 13574func (mffpi MabFileFolderProtectedItem) AsBasicAzureIaaSVMProtectedItem() (BasicAzureIaaSVMProtectedItem, bool) { 13575 return nil, false 13576} 13577 13578// AsAzureSQLProtectedItem is the BasicProtectedItem implementation for MabFileFolderProtectedItem. 13579func (mffpi MabFileFolderProtectedItem) AsAzureSQLProtectedItem() (*AzureSQLProtectedItem, bool) { 13580 return nil, false 13581} 13582 13583// AsAzureVMWorkloadProtectedItem is the BasicProtectedItem implementation for MabFileFolderProtectedItem. 13584func (mffpi MabFileFolderProtectedItem) AsAzureVMWorkloadProtectedItem() (*AzureVMWorkloadProtectedItem, bool) { 13585 return nil, false 13586} 13587 13588// AsBasicAzureVMWorkloadProtectedItem is the BasicProtectedItem implementation for MabFileFolderProtectedItem. 13589func (mffpi MabFileFolderProtectedItem) AsBasicAzureVMWorkloadProtectedItem() (BasicAzureVMWorkloadProtectedItem, bool) { 13590 return nil, false 13591} 13592 13593// AsAzureVMWorkloadSAPAseDatabaseProtectedItem is the BasicProtectedItem implementation for MabFileFolderProtectedItem. 13594func (mffpi MabFileFolderProtectedItem) AsAzureVMWorkloadSAPAseDatabaseProtectedItem() (*AzureVMWorkloadSAPAseDatabaseProtectedItem, bool) { 13595 return nil, false 13596} 13597 13598// AsAzureVMWorkloadSAPHanaDatabaseProtectedItem is the BasicProtectedItem implementation for MabFileFolderProtectedItem. 13599func (mffpi MabFileFolderProtectedItem) AsAzureVMWorkloadSAPHanaDatabaseProtectedItem() (*AzureVMWorkloadSAPHanaDatabaseProtectedItem, bool) { 13600 return nil, false 13601} 13602 13603// AsAzureVMWorkloadSQLDatabaseProtectedItem is the BasicProtectedItem implementation for MabFileFolderProtectedItem. 13604func (mffpi MabFileFolderProtectedItem) AsAzureVMWorkloadSQLDatabaseProtectedItem() (*AzureVMWorkloadSQLDatabaseProtectedItem, bool) { 13605 return nil, false 13606} 13607 13608// AsDPMProtectedItem is the BasicProtectedItem implementation for MabFileFolderProtectedItem. 13609func (mffpi MabFileFolderProtectedItem) AsDPMProtectedItem() (*DPMProtectedItem, bool) { 13610 return nil, false 13611} 13612 13613// AsGenericProtectedItem is the BasicProtectedItem implementation for MabFileFolderProtectedItem. 13614func (mffpi MabFileFolderProtectedItem) AsGenericProtectedItem() (*GenericProtectedItem, bool) { 13615 return nil, false 13616} 13617 13618// AsMabFileFolderProtectedItem is the BasicProtectedItem implementation for MabFileFolderProtectedItem. 13619func (mffpi MabFileFolderProtectedItem) AsMabFileFolderProtectedItem() (*MabFileFolderProtectedItem, bool) { 13620 return &mffpi, true 13621} 13622 13623// AsProtectedItem is the BasicProtectedItem implementation for MabFileFolderProtectedItem. 13624func (mffpi MabFileFolderProtectedItem) AsProtectedItem() (*ProtectedItem, bool) { 13625 return nil, false 13626} 13627 13628// AsBasicProtectedItem is the BasicProtectedItem implementation for MabFileFolderProtectedItem. 13629func (mffpi MabFileFolderProtectedItem) AsBasicProtectedItem() (BasicProtectedItem, bool) { 13630 return &mffpi, true 13631} 13632 13633// MabFileFolderProtectedItemExtendedInfo additional information on the backed up item. 13634type MabFileFolderProtectedItemExtendedInfo struct { 13635 // LastRefreshedAt - Last time when the agent data synced to service. 13636 LastRefreshedAt *date.Time `json:"lastRefreshedAt,omitempty"` 13637 // OldestRecoveryPoint - The oldest backup copy available. 13638 OldestRecoveryPoint *date.Time `json:"oldestRecoveryPoint,omitempty"` 13639 // RecoveryPointCount - Number of backup copies associated with the backup item. 13640 RecoveryPointCount *int32 `json:"recoveryPointCount,omitempty"` 13641} 13642 13643// MabJob MAB workload-specific job. 13644type MabJob struct { 13645 // Duration - Time taken by job to run. 13646 Duration *string `json:"duration,omitempty"` 13647 // ActionsInfo - The state/actions applicable on jobs like cancel/retry. 13648 ActionsInfo *[]JobSupportedAction `json:"actionsInfo,omitempty"` 13649 // MabServerName - Name of server protecting the DS. 13650 MabServerName *string `json:"mabServerName,omitempty"` 13651 // MabServerType - Server type of MAB container. Possible values include: 'MabServerTypeInvalid', 'MabServerTypeUnknown', 'MabServerTypeIaasVMContainer', 'MabServerTypeIaasVMServiceContainer', 'MabServerTypeDPMContainer', 'MabServerTypeAzureBackupServerContainer', 'MabServerTypeMABContainer', 'MabServerTypeCluster', 'MabServerTypeAzureSQLContainer', 'MabServerTypeWindows', 'MabServerTypeVCenter', 'MabServerTypeVMAppContainer', 'MabServerTypeSQLAGWorkLoadContainer', 'MabServerTypeStorageContainer', 'MabServerTypeGenericContainer' 13652 MabServerType MabServerType `json:"mabServerType,omitempty"` 13653 // WorkloadType - Workload type of backup item. Possible values include: 'WorkloadTypeInvalid', 'WorkloadTypeVM', 'WorkloadTypeFileFolder', 'WorkloadTypeAzureSQLDb', 'WorkloadTypeSQLDB', 'WorkloadTypeExchange', 'WorkloadTypeSharepoint', 'WorkloadTypeVMwareVM', 'WorkloadTypeSystemState', 'WorkloadTypeClient', 'WorkloadTypeGenericDataSource', 'WorkloadTypeSQLDataBase', 'WorkloadTypeAzureFileShare', 'WorkloadTypeSAPHanaDatabase', 'WorkloadTypeSAPAseDatabase' 13654 WorkloadType WorkloadType `json:"workloadType,omitempty"` 13655 // ErrorDetails - The errors. 13656 ErrorDetails *[]MabErrorInfo `json:"errorDetails,omitempty"` 13657 // ExtendedInfo - Additional information on the job. 13658 ExtendedInfo *MabJobExtendedInfo `json:"extendedInfo,omitempty"` 13659 // EntityFriendlyName - Friendly name of the entity on which the current job is executing. 13660 EntityFriendlyName *string `json:"entityFriendlyName,omitempty"` 13661 // BackupManagementType - Backup management type to execute the current job. Possible values include: 'ManagementTypeInvalid', 'ManagementTypeAzureIaasVM', 'ManagementTypeMAB', 'ManagementTypeDPM', 'ManagementTypeAzureBackupServer', 'ManagementTypeAzureSQL', 'ManagementTypeAzureStorage', 'ManagementTypeAzureWorkload', 'ManagementTypeDefaultBackup' 13662 BackupManagementType ManagementType `json:"backupManagementType,omitempty"` 13663 // Operation - The operation name. 13664 Operation *string `json:"operation,omitempty"` 13665 // Status - Job status. 13666 Status *string `json:"status,omitempty"` 13667 // StartTime - The start time. 13668 StartTime *date.Time `json:"startTime,omitempty"` 13669 // EndTime - The end time. 13670 EndTime *date.Time `json:"endTime,omitempty"` 13671 // ActivityID - ActivityId of job. 13672 ActivityID *string `json:"activityId,omitempty"` 13673 // JobType - Possible values include: 'JobTypeJob', 'JobTypeAzureIaaSVMJob', 'JobTypeAzureStorageJob', 'JobTypeAzureWorkloadJob', 'JobTypeDpmJob', 'JobTypeMabJob' 13674 JobType JobType `json:"jobType,omitempty"` 13675} 13676 13677// MarshalJSON is the custom marshaler for MabJob. 13678func (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// AsAzureIaaSVMJob is the BasicJob implementation for MabJob. 13730func (mj MabJob) AsAzureIaaSVMJob() (*AzureIaaSVMJob, bool) { 13731 return nil, false 13732} 13733 13734// AsAzureStorageJob is the BasicJob implementation for MabJob. 13735func (mj MabJob) AsAzureStorageJob() (*AzureStorageJob, bool) { 13736 return nil, false 13737} 13738 13739// AsAzureWorkloadJob is the BasicJob implementation for MabJob. 13740func (mj MabJob) AsAzureWorkloadJob() (*AzureWorkloadJob, bool) { 13741 return nil, false 13742} 13743 13744// AsDpmJob is the BasicJob implementation for MabJob. 13745func (mj MabJob) AsDpmJob() (*DpmJob, bool) { 13746 return nil, false 13747} 13748 13749// AsMabJob is the BasicJob implementation for MabJob. 13750func (mj MabJob) AsMabJob() (*MabJob, bool) { 13751 return &mj, true 13752} 13753 13754// AsJob is the BasicJob implementation for MabJob. 13755func (mj MabJob) AsJob() (*Job, bool) { 13756 return nil, false 13757} 13758 13759// AsBasicJob is the BasicJob implementation for MabJob. 13760func (mj MabJob) AsBasicJob() (BasicJob, bool) { 13761 return &mj, true 13762} 13763 13764// MabJobExtendedInfo additional information for the MAB workload-specific job. 13765type MabJobExtendedInfo struct { 13766 // TasksList - List of tasks for this job. 13767 TasksList *[]MabJobTaskDetails `json:"tasksList,omitempty"` 13768 // PropertyBag - The job properties. 13769 PropertyBag map[string]*string `json:"propertyBag"` 13770 // DynamicErrorMessage - Non localized error message specific to this job. 13771 DynamicErrorMessage *string `json:"dynamicErrorMessage,omitempty"` 13772} 13773 13774// MarshalJSON is the custom marshaler for MabJobExtendedInfo. 13775func (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// MabJobTaskDetails MAB workload-specific job task details. 13790type MabJobTaskDetails struct { 13791 // TaskID - The task display name. 13792 TaskID *string `json:"taskId,omitempty"` 13793 // StartTime - The start time. 13794 StartTime *date.Time `json:"startTime,omitempty"` 13795 // EndTime - The end time. 13796 EndTime *date.Time `json:"endTime,omitempty"` 13797 // Duration - Time elapsed for task. 13798 Duration *string `json:"duration,omitempty"` 13799 // Status - The status. 13800 Status *string `json:"status,omitempty"` 13801} 13802 13803// MabProtectionPolicy mab container-specific backup policy. 13804type MabProtectionPolicy struct { 13805 // SchedulePolicy - Backup schedule of backup policy. 13806 SchedulePolicy BasicSchedulePolicy `json:"schedulePolicy,omitempty"` 13807 // RetentionPolicy - Retention policy details. 13808 RetentionPolicy BasicRetentionPolicy `json:"retentionPolicy,omitempty"` 13809 // ProtectedItemsCount - Number of items associated with this policy. 13810 ProtectedItemsCount *int32 `json:"protectedItemsCount,omitempty"` 13811 // BackupManagementType - Possible values include: 'BackupManagementTypeProtectionPolicy', 'BackupManagementTypeAzureWorkload', 'BackupManagementTypeAzureStorage', 'BackupManagementTypeAzureIaasVM', 'BackupManagementTypeAzureSQL', 'BackupManagementTypeGenericProtectionPolicy', 'BackupManagementTypeMAB' 13812 BackupManagementType ManagementTypeBasicProtectionPolicy `json:"backupManagementType,omitempty"` 13813} 13814 13815// MarshalJSON is the custom marshaler for MabProtectionPolicy. 13816func (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// AsAzureVMWorkloadProtectionPolicy is the BasicProtectionPolicy implementation for MabProtectionPolicy. 13831func (mpp MabProtectionPolicy) AsAzureVMWorkloadProtectionPolicy() (*AzureVMWorkloadProtectionPolicy, bool) { 13832 return nil, false 13833} 13834 13835// AsAzureFileShareProtectionPolicy is the BasicProtectionPolicy implementation for MabProtectionPolicy. 13836func (mpp MabProtectionPolicy) AsAzureFileShareProtectionPolicy() (*AzureFileShareProtectionPolicy, bool) { 13837 return nil, false 13838} 13839 13840// AsAzureIaaSVMProtectionPolicy is the BasicProtectionPolicy implementation for MabProtectionPolicy. 13841func (mpp MabProtectionPolicy) AsAzureIaaSVMProtectionPolicy() (*AzureIaaSVMProtectionPolicy, bool) { 13842 return nil, false 13843} 13844 13845// AsAzureSQLProtectionPolicy is the BasicProtectionPolicy implementation for MabProtectionPolicy. 13846func (mpp MabProtectionPolicy) AsAzureSQLProtectionPolicy() (*AzureSQLProtectionPolicy, bool) { 13847 return nil, false 13848} 13849 13850// AsGenericProtectionPolicy is the BasicProtectionPolicy implementation for MabProtectionPolicy. 13851func (mpp MabProtectionPolicy) AsGenericProtectionPolicy() (*GenericProtectionPolicy, bool) { 13852 return nil, false 13853} 13854 13855// AsMabProtectionPolicy is the BasicProtectionPolicy implementation for MabProtectionPolicy. 13856func (mpp MabProtectionPolicy) AsMabProtectionPolicy() (*MabProtectionPolicy, bool) { 13857 return &mpp, true 13858} 13859 13860// AsProtectionPolicy is the BasicProtectionPolicy implementation for MabProtectionPolicy. 13861func (mpp MabProtectionPolicy) AsProtectionPolicy() (*ProtectionPolicy, bool) { 13862 return nil, false 13863} 13864 13865// AsBasicProtectionPolicy is the BasicProtectionPolicy implementation for MabProtectionPolicy. 13866func (mpp MabProtectionPolicy) AsBasicProtectionPolicy() (BasicProtectionPolicy, bool) { 13867 return &mpp, true 13868} 13869 13870// UnmarshalJSON is the custom unmarshaler for MabProtectionPolicy struct. 13871func (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// ManagementUsage backup management usages of a vault. 13920type ManagementUsage struct { 13921 // Unit - Unit of the usage. Possible values include: 'Count', 'Bytes', 'Seconds', 'Percent', 'CountPerSecond', 'BytesPerSecond' 13922 Unit UsagesUnit `json:"unit,omitempty"` 13923 // QuotaPeriod - Quota period of usage. 13924 QuotaPeriod *string `json:"quotaPeriod,omitempty"` 13925 // NextResetTime - Next reset time of usage. 13926 NextResetTime *date.Time `json:"nextResetTime,omitempty"` 13927 // CurrentValue - Current value of usage. 13928 CurrentValue *int64 `json:"currentValue,omitempty"` 13929 // Limit - Limit of usage. 13930 Limit *int64 `json:"limit,omitempty"` 13931 // Name - Name of usage. 13932 Name *NameInfo `json:"name,omitempty"` 13933} 13934 13935// ManagementUsageList backup management usage for vault. 13936type ManagementUsageList struct { 13937 autorest.Response `json:"-"` 13938 // Value - The list of backup management usages for the given vault. 13939 Value *[]ManagementUsage `json:"value,omitempty"` 13940} 13941 13942// MonthlyRetentionSchedule monthly retention schedule. 13943type MonthlyRetentionSchedule struct { 13944 // RetentionScheduleFormatType - Retention schedule format type for monthly retention policy. Possible values include: 'RetentionScheduleFormatInvalid', 'RetentionScheduleFormatDaily', 'RetentionScheduleFormatWeekly' 13945 RetentionScheduleFormatType RetentionScheduleFormat `json:"retentionScheduleFormatType,omitempty"` 13946 // RetentionScheduleDaily - Daily retention format for monthly retention policy. 13947 RetentionScheduleDaily *DailyRetentionFormat `json:"retentionScheduleDaily,omitempty"` 13948 // RetentionScheduleWeekly - Weekly retention format for monthly retention policy. 13949 RetentionScheduleWeekly *WeeklyRetentionFormat `json:"retentionScheduleWeekly,omitempty"` 13950 // RetentionTimes - Retention times of retention policy. 13951 RetentionTimes *[]date.Time `json:"retentionTimes,omitempty"` 13952 // RetentionDuration - Retention duration of retention Policy. 13953 RetentionDuration *RetentionDuration `json:"retentionDuration,omitempty"` 13954} 13955 13956// NameInfo the name of usage. 13957type NameInfo struct { 13958 // Value - Value of usage. 13959 Value *string `json:"value,omitempty"` 13960 // LocalizedValue - Localized value of usage. 13961 LocalizedValue *string `json:"localizedValue,omitempty"` 13962} 13963 13964// OperationResultInfo operation result info. 13965type OperationResultInfo struct { 13966 // JobList - List of jobs created by this operation. 13967 JobList *[]string `json:"jobList,omitempty"` 13968 // ObjectType - Possible values include: 'ObjectTypeOperationResultInfoBase', 'ObjectTypeExportJobsOperationResultInfo', 'ObjectTypeOperationResultInfo' 13969 ObjectType ObjectTypeBasicOperationResultInfoBase `json:"objectType,omitempty"` 13970} 13971 13972// MarshalJSON is the custom marshaler for OperationResultInfo. 13973func (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// AsExportJobsOperationResultInfo is the BasicOperationResultInfoBase implementation for OperationResultInfo. 13986func (ori OperationResultInfo) AsExportJobsOperationResultInfo() (*ExportJobsOperationResultInfo, bool) { 13987 return nil, false 13988} 13989 13990// AsOperationResultInfo is the BasicOperationResultInfoBase implementation for OperationResultInfo. 13991func (ori OperationResultInfo) AsOperationResultInfo() (*OperationResultInfo, bool) { 13992 return &ori, true 13993} 13994 13995// AsOperationResultInfoBase is the BasicOperationResultInfoBase implementation for OperationResultInfo. 13996func (ori OperationResultInfo) AsOperationResultInfoBase() (*OperationResultInfoBase, bool) { 13997 return nil, false 13998} 13999 14000// AsBasicOperationResultInfoBase is the BasicOperationResultInfoBase implementation for OperationResultInfo. 14001func (ori OperationResultInfo) AsBasicOperationResultInfoBase() (BasicOperationResultInfoBase, bool) { 14002 return &ori, true 14003} 14004 14005// BasicOperationResultInfoBase base class for operation result info. 14006type BasicOperationResultInfoBase interface { 14007 AsExportJobsOperationResultInfo() (*ExportJobsOperationResultInfo, bool) 14008 AsOperationResultInfo() (*OperationResultInfo, bool) 14009 AsOperationResultInfoBase() (*OperationResultInfoBase, bool) 14010} 14011 14012// OperationResultInfoBase base class for operation result info. 14013type OperationResultInfoBase struct { 14014 // ObjectType - Possible values include: 'ObjectTypeOperationResultInfoBase', 'ObjectTypeExportJobsOperationResultInfo', 'ObjectTypeOperationResultInfo' 14015 ObjectType ObjectTypeBasicOperationResultInfoBase `json:"objectType,omitempty"` 14016} 14017 14018func 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} 14040func 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// MarshalJSON is the custom marshaler for OperationResultInfoBase. 14060func (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// AsExportJobsOperationResultInfo is the BasicOperationResultInfoBase implementation for OperationResultInfoBase. 14070func (orib OperationResultInfoBase) AsExportJobsOperationResultInfo() (*ExportJobsOperationResultInfo, bool) { 14071 return nil, false 14072} 14073 14074// AsOperationResultInfo is the BasicOperationResultInfoBase implementation for OperationResultInfoBase. 14075func (orib OperationResultInfoBase) AsOperationResultInfo() (*OperationResultInfo, bool) { 14076 return nil, false 14077} 14078 14079// AsOperationResultInfoBase is the BasicOperationResultInfoBase implementation for OperationResultInfoBase. 14080func (orib OperationResultInfoBase) AsOperationResultInfoBase() (*OperationResultInfoBase, bool) { 14081 return &orib, true 14082} 14083 14084// AsBasicOperationResultInfoBase is the BasicOperationResultInfoBase implementation for OperationResultInfoBase. 14085func (orib OperationResultInfoBase) AsBasicOperationResultInfoBase() (BasicOperationResultInfoBase, bool) { 14086 return &orib, true 14087} 14088 14089// OperationResultInfoBaseResource base class for operation result info. 14090type OperationResultInfoBaseResource struct { 14091 autorest.Response `json:"-"` 14092 // Operation - OperationResultInfoBaseResource operation 14093 Operation BasicOperationResultInfoBase `json:"operation,omitempty"` 14094 // StatusCode - HTTP Status Code of the operation. Possible values include: 'Continue', 'SwitchingProtocols', 'OK', 'Created', 'Accepted', 'NonAuthoritativeInformation', 'NoContent', 'ResetContent', 'PartialContent', 'MultipleChoices', 'Ambiguous', 'MovedPermanently', 'Moved', 'Found', 'Redirect', 'SeeOther', 'RedirectMethod', 'NotModified', 'UseProxy', 'Unused', 'TemporaryRedirect', 'RedirectKeepVerb', 'BadRequest', 'Unauthorized', 'PaymentRequired', 'Forbidden', 'NotFound', 'MethodNotAllowed', 'NotAcceptable', 'ProxyAuthenticationRequired', 'RequestTimeout', 'Conflict', 'Gone', 'LengthRequired', 'PreconditionFailed', 'RequestEntityTooLarge', 'RequestURITooLong', 'UnsupportedMediaType', 'RequestedRangeNotSatisfiable', 'ExpectationFailed', 'UpgradeRequired', 'InternalServerError', 'NotImplemented', 'BadGateway', 'ServiceUnavailable', 'GatewayTimeout', 'HTTPVersionNotSupported' 14095 StatusCode HTTPStatusCode `json:"statusCode,omitempty"` 14096 // Headers - HTTP headers associated with this operation. 14097 Headers map[string][]string `json:"headers"` 14098} 14099 14100// MarshalJSON is the custom marshaler for OperationResultInfoBaseResource. 14101func (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// UnmarshalJSON is the custom unmarshaler for OperationResultInfoBaseResource struct. 14114func (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// OperationStatus operation status. 14155type OperationStatus struct { 14156 autorest.Response `json:"-"` 14157 // ID - ID of the operation. 14158 ID *string `json:"id,omitempty"` 14159 // Name - Name of the operation. 14160 Name *string `json:"name,omitempty"` 14161 // Status - Operation status. Possible values include: 'OperationStatusValuesInvalid', 'OperationStatusValuesInProgress', 'OperationStatusValuesSucceeded', 'OperationStatusValuesFailed', 'OperationStatusValuesCanceled' 14162 Status OperationStatusValues `json:"status,omitempty"` 14163 // StartTime - Operation start time. Format: ISO-8601. 14164 StartTime *date.Time `json:"startTime,omitempty"` 14165 // EndTime - Operation end time. Format: ISO-8601. 14166 EndTime *date.Time `json:"endTime,omitempty"` 14167 // Error - Error information related to this operation. 14168 Error *OperationStatusError `json:"error,omitempty"` 14169 // Properties - Additional information associated with this operation. 14170 Properties BasicOperationStatusExtendedInfo `json:"properties,omitempty"` 14171} 14172 14173// UnmarshalJSON is the custom unmarshaler for OperationStatus struct. 14174func (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// OperationStatusError error information associated with operation status call. 14251type OperationStatusError struct { 14252 // Code - Error code of the operation failure. 14253 Code *string `json:"code,omitempty"` 14254 // Message - Error message displayed if the operation failure. 14255 Message *string `json:"message,omitempty"` 14256} 14257 14258// BasicOperationStatusExtendedInfo base class for additional information of operation status. 14259type BasicOperationStatusExtendedInfo interface { 14260 AsOperationStatusJobExtendedInfo() (*OperationStatusJobExtendedInfo, bool) 14261 AsOperationStatusJobsExtendedInfo() (*OperationStatusJobsExtendedInfo, bool) 14262 AsOperationStatusProvisionILRExtendedInfo() (*OperationStatusProvisionILRExtendedInfo, bool) 14263 AsOperationStatusExtendedInfo() (*OperationStatusExtendedInfo, bool) 14264} 14265 14266// OperationStatusExtendedInfo base class for additional information of operation status. 14267type OperationStatusExtendedInfo struct { 14268 // ObjectType - Possible values include: 'ObjectTypeOperationStatusExtendedInfo', 'ObjectTypeOperationStatusJobExtendedInfo', 'ObjectTypeOperationStatusJobsExtendedInfo', 'ObjectTypeOperationStatusProvisionILRExtendedInfo' 14269 ObjectType ObjectType `json:"objectType,omitempty"` 14270} 14271 14272func 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} 14298func 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// MarshalJSON is the custom marshaler for OperationStatusExtendedInfo. 14318func (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// AsOperationStatusJobExtendedInfo is the BasicOperationStatusExtendedInfo implementation for OperationStatusExtendedInfo. 14328func (osei OperationStatusExtendedInfo) AsOperationStatusJobExtendedInfo() (*OperationStatusJobExtendedInfo, bool) { 14329 return nil, false 14330} 14331 14332// AsOperationStatusJobsExtendedInfo is the BasicOperationStatusExtendedInfo implementation for OperationStatusExtendedInfo. 14333func (osei OperationStatusExtendedInfo) AsOperationStatusJobsExtendedInfo() (*OperationStatusJobsExtendedInfo, bool) { 14334 return nil, false 14335} 14336 14337// AsOperationStatusProvisionILRExtendedInfo is the BasicOperationStatusExtendedInfo implementation for OperationStatusExtendedInfo. 14338func (osei OperationStatusExtendedInfo) AsOperationStatusProvisionILRExtendedInfo() (*OperationStatusProvisionILRExtendedInfo, bool) { 14339 return nil, false 14340} 14341 14342// AsOperationStatusExtendedInfo is the BasicOperationStatusExtendedInfo implementation for OperationStatusExtendedInfo. 14343func (osei OperationStatusExtendedInfo) AsOperationStatusExtendedInfo() (*OperationStatusExtendedInfo, bool) { 14344 return &osei, true 14345} 14346 14347// AsBasicOperationStatusExtendedInfo is the BasicOperationStatusExtendedInfo implementation for OperationStatusExtendedInfo. 14348func (osei OperationStatusExtendedInfo) AsBasicOperationStatusExtendedInfo() (BasicOperationStatusExtendedInfo, bool) { 14349 return &osei, true 14350} 14351 14352// OperationStatusJobExtendedInfo operation status job extended info. 14353type OperationStatusJobExtendedInfo struct { 14354 // JobID - ID of the job created for this protected item. 14355 JobID *string `json:"jobId,omitempty"` 14356 // ObjectType - Possible values include: 'ObjectTypeOperationStatusExtendedInfo', 'ObjectTypeOperationStatusJobExtendedInfo', 'ObjectTypeOperationStatusJobsExtendedInfo', 'ObjectTypeOperationStatusProvisionILRExtendedInfo' 14357 ObjectType ObjectType `json:"objectType,omitempty"` 14358} 14359 14360// MarshalJSON is the custom marshaler for OperationStatusJobExtendedInfo. 14361func (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// AsOperationStatusJobExtendedInfo is the BasicOperationStatusExtendedInfo implementation for OperationStatusJobExtendedInfo. 14374func (osjei OperationStatusJobExtendedInfo) AsOperationStatusJobExtendedInfo() (*OperationStatusJobExtendedInfo, bool) { 14375 return &osjei, true 14376} 14377 14378// AsOperationStatusJobsExtendedInfo is the BasicOperationStatusExtendedInfo implementation for OperationStatusJobExtendedInfo. 14379func (osjei OperationStatusJobExtendedInfo) AsOperationStatusJobsExtendedInfo() (*OperationStatusJobsExtendedInfo, bool) { 14380 return nil, false 14381} 14382 14383// AsOperationStatusProvisionILRExtendedInfo is the BasicOperationStatusExtendedInfo implementation for OperationStatusJobExtendedInfo. 14384func (osjei OperationStatusJobExtendedInfo) AsOperationStatusProvisionILRExtendedInfo() (*OperationStatusProvisionILRExtendedInfo, bool) { 14385 return nil, false 14386} 14387 14388// AsOperationStatusExtendedInfo is the BasicOperationStatusExtendedInfo implementation for OperationStatusJobExtendedInfo. 14389func (osjei OperationStatusJobExtendedInfo) AsOperationStatusExtendedInfo() (*OperationStatusExtendedInfo, bool) { 14390 return nil, false 14391} 14392 14393// AsBasicOperationStatusExtendedInfo is the BasicOperationStatusExtendedInfo implementation for OperationStatusJobExtendedInfo. 14394func (osjei OperationStatusJobExtendedInfo) AsBasicOperationStatusExtendedInfo() (BasicOperationStatusExtendedInfo, bool) { 14395 return &osjei, true 14396} 14397 14398// OperationStatusJobsExtendedInfo operation status extended info for list of jobs. 14399type OperationStatusJobsExtendedInfo struct { 14400 // JobIds - IDs of the jobs created for the protected item. 14401 JobIds *[]string `json:"jobIds,omitempty"` 14402 // FailedJobsError - Stores all the failed jobs along with the corresponding error codes. 14403 FailedJobsError map[string]*string `json:"failedJobsError"` 14404 // ObjectType - Possible values include: 'ObjectTypeOperationStatusExtendedInfo', 'ObjectTypeOperationStatusJobExtendedInfo', 'ObjectTypeOperationStatusJobsExtendedInfo', 'ObjectTypeOperationStatusProvisionILRExtendedInfo' 14405 ObjectType ObjectType `json:"objectType,omitempty"` 14406} 14407 14408// MarshalJSON is the custom marshaler for OperationStatusJobsExtendedInfo. 14409func (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// AsOperationStatusJobExtendedInfo is the BasicOperationStatusExtendedInfo implementation for OperationStatusJobsExtendedInfo. 14425func (osjei OperationStatusJobsExtendedInfo) AsOperationStatusJobExtendedInfo() (*OperationStatusJobExtendedInfo, bool) { 14426 return nil, false 14427} 14428 14429// AsOperationStatusJobsExtendedInfo is the BasicOperationStatusExtendedInfo implementation for OperationStatusJobsExtendedInfo. 14430func (osjei OperationStatusJobsExtendedInfo) AsOperationStatusJobsExtendedInfo() (*OperationStatusJobsExtendedInfo, bool) { 14431 return &osjei, true 14432} 14433 14434// AsOperationStatusProvisionILRExtendedInfo is the BasicOperationStatusExtendedInfo implementation for OperationStatusJobsExtendedInfo. 14435func (osjei OperationStatusJobsExtendedInfo) AsOperationStatusProvisionILRExtendedInfo() (*OperationStatusProvisionILRExtendedInfo, bool) { 14436 return nil, false 14437} 14438 14439// AsOperationStatusExtendedInfo is the BasicOperationStatusExtendedInfo implementation for OperationStatusJobsExtendedInfo. 14440func (osjei OperationStatusJobsExtendedInfo) AsOperationStatusExtendedInfo() (*OperationStatusExtendedInfo, bool) { 14441 return nil, false 14442} 14443 14444// AsBasicOperationStatusExtendedInfo is the BasicOperationStatusExtendedInfo implementation for OperationStatusJobsExtendedInfo. 14445func (osjei OperationStatusJobsExtendedInfo) AsBasicOperationStatusExtendedInfo() (BasicOperationStatusExtendedInfo, bool) { 14446 return &osjei, true 14447} 14448 14449// OperationStatusProvisionILRExtendedInfo operation status extended info for ILR provision action. 14450type OperationStatusProvisionILRExtendedInfo struct { 14451 // RecoveryTarget - Target details for file / folder restore. 14452 RecoveryTarget *InstantItemRecoveryTarget `json:"recoveryTarget,omitempty"` 14453 // ObjectType - Possible values include: 'ObjectTypeOperationStatusExtendedInfo', 'ObjectTypeOperationStatusJobExtendedInfo', 'ObjectTypeOperationStatusJobsExtendedInfo', 'ObjectTypeOperationStatusProvisionILRExtendedInfo' 14454 ObjectType ObjectType `json:"objectType,omitempty"` 14455} 14456 14457// MarshalJSON is the custom marshaler for OperationStatusProvisionILRExtendedInfo. 14458func (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// AsOperationStatusJobExtendedInfo is the BasicOperationStatusExtendedInfo implementation for OperationStatusProvisionILRExtendedInfo. 14471func (ospiei OperationStatusProvisionILRExtendedInfo) AsOperationStatusJobExtendedInfo() (*OperationStatusJobExtendedInfo, bool) { 14472 return nil, false 14473} 14474 14475// AsOperationStatusJobsExtendedInfo is the BasicOperationStatusExtendedInfo implementation for OperationStatusProvisionILRExtendedInfo. 14476func (ospiei OperationStatusProvisionILRExtendedInfo) AsOperationStatusJobsExtendedInfo() (*OperationStatusJobsExtendedInfo, bool) { 14477 return nil, false 14478} 14479 14480// AsOperationStatusProvisionILRExtendedInfo is the BasicOperationStatusExtendedInfo implementation for OperationStatusProvisionILRExtendedInfo. 14481func (ospiei OperationStatusProvisionILRExtendedInfo) AsOperationStatusProvisionILRExtendedInfo() (*OperationStatusProvisionILRExtendedInfo, bool) { 14482 return &ospiei, true 14483} 14484 14485// AsOperationStatusExtendedInfo is the BasicOperationStatusExtendedInfo implementation for OperationStatusProvisionILRExtendedInfo. 14486func (ospiei OperationStatusProvisionILRExtendedInfo) AsOperationStatusExtendedInfo() (*OperationStatusExtendedInfo, bool) { 14487 return nil, false 14488} 14489 14490// AsBasicOperationStatusExtendedInfo is the BasicOperationStatusExtendedInfo implementation for OperationStatusProvisionILRExtendedInfo. 14491func (ospiei OperationStatusProvisionILRExtendedInfo) AsBasicOperationStatusExtendedInfo() (BasicOperationStatusExtendedInfo, bool) { 14492 return &ospiei, true 14493} 14494 14495// OperationWorkerResponse this is the base class for operation result responses. 14496type OperationWorkerResponse struct { 14497 // StatusCode - HTTP Status Code of the operation. Possible values include: 'Continue', 'SwitchingProtocols', 'OK', 'Created', 'Accepted', 'NonAuthoritativeInformation', 'NoContent', 'ResetContent', 'PartialContent', 'MultipleChoices', 'Ambiguous', 'MovedPermanently', 'Moved', 'Found', 'Redirect', 'SeeOther', 'RedirectMethod', 'NotModified', 'UseProxy', 'Unused', 'TemporaryRedirect', 'RedirectKeepVerb', 'BadRequest', 'Unauthorized', 'PaymentRequired', 'Forbidden', 'NotFound', 'MethodNotAllowed', 'NotAcceptable', 'ProxyAuthenticationRequired', 'RequestTimeout', 'Conflict', 'Gone', 'LengthRequired', 'PreconditionFailed', 'RequestEntityTooLarge', 'RequestURITooLong', 'UnsupportedMediaType', 'RequestedRangeNotSatisfiable', 'ExpectationFailed', 'UpgradeRequired', 'InternalServerError', 'NotImplemented', 'BadGateway', 'ServiceUnavailable', 'GatewayTimeout', 'HTTPVersionNotSupported' 14498 StatusCode HTTPStatusCode `json:"statusCode,omitempty"` 14499 // Headers - HTTP headers associated with this operation. 14500 Headers map[string][]string `json:"headers"` 14501} 14502 14503// MarshalJSON is the custom marshaler for OperationWorkerResponse. 14504func (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// PointInTimeRange provides details for log ranges 14516type PointInTimeRange struct { 14517 // StartTime - Start time of the time range for log recovery. 14518 StartTime *date.Time `json:"startTime,omitempty"` 14519 // EndTime - End time of the time range for log recovery. 14520 EndTime *date.Time `json:"endTime,omitempty"` 14521} 14522 14523// PreBackupValidation pre-backup validation for Azure VM Workload provider. 14524type PreBackupValidation struct { 14525 // Status - Status of protectable item, i.e. InProgress,Succeeded,Failed. Possible values include: 'InquiryStatusInvalid', 'InquiryStatusSuccess', 'InquiryStatusFailed' 14526 Status InquiryStatus `json:"status,omitempty"` 14527 // Code - Error code of protectable item 14528 Code *string `json:"code,omitempty"` 14529 // Message - Message corresponding to the error code for the protectable item 14530 Message *string `json:"message,omitempty"` 14531} 14532 14533// PreValidateEnableBackupRequest contract to validate if backup can be enabled on the given resource in a 14534// given vault and given configuration. 14535// It will validate followings 14536// 1. Vault capacity 14537// 2. VM is already protected 14538// 3. Any VM related configuration passed in properties. 14539type PreValidateEnableBackupRequest struct { 14540 // ResourceType - ProtectedItem Type- VM, SqlDataBase, AzureFileShare etc. Possible values include: 'DataSourceTypeInvalid', 'DataSourceTypeVM', 'DataSourceTypeFileFolder', 'DataSourceTypeAzureSQLDb', 'DataSourceTypeSQLDB', 'DataSourceTypeExchange', 'DataSourceTypeSharepoint', 'DataSourceTypeVMwareVM', 'DataSourceTypeSystemState', 'DataSourceTypeClient', 'DataSourceTypeGenericDataSource', 'DataSourceTypeSQLDataBase', 'DataSourceTypeAzureFileShare', 'DataSourceTypeSAPHanaDatabase', 'DataSourceTypeSAPAseDatabase' 14541 ResourceType DataSourceType `json:"resourceType,omitempty"` 14542 // ResourceID - ARM Virtual Machine Id 14543 ResourceID *string `json:"resourceId,omitempty"` 14544 // VaultID - ARM id of the Recovery Services Vault 14545 VaultID *string `json:"vaultId,omitempty"` 14546 // Properties - Configuration of VM if any needs to be validated like OS type etc 14547 Properties *string `json:"properties,omitempty"` 14548} 14549 14550// PreValidateEnableBackupResponse response contract for enable backup validation request 14551type PreValidateEnableBackupResponse struct { 14552 autorest.Response `json:"-"` 14553 // Status - Validation Status. Possible values include: 'ValidationStatusInvalid', 'ValidationStatusSucceeded', 'ValidationStatusFailed' 14554 Status ValidationStatus `json:"status,omitempty"` 14555 // ErrorCode - Response error code 14556 ErrorCode *string `json:"errorCode,omitempty"` 14557 // ErrorMessage - Response error message 14558 ErrorMessage *string `json:"errorMessage,omitempty"` 14559 // Recommendation - Recommended action for user 14560 Recommendation *string `json:"recommendation,omitempty"` 14561 // ContainerName - Specifies the product specific container name. E.g. iaasvmcontainer;iaasvmcontainer;rgname;vmname. This is required 14562 // for portal 14563 ContainerName *string `json:"containerName,omitempty"` 14564 // ProtectedItemName - Specifies the product specific ds name. E.g. vm;iaasvmcontainer;rgname;vmname. This is required for portal 14565 ProtectedItemName *string `json:"protectedItemName,omitempty"` 14566} 14567 14568// PrivateEndpoint the Private Endpoint network resource that is linked to the Private Endpoint connection 14569type PrivateEndpoint struct { 14570 // ID - Gets or sets id 14571 ID *string `json:"id,omitempty"` 14572} 14573 14574// PrivateEndpointConnection private Endpoint Connection Response Properties 14575type PrivateEndpointConnection struct { 14576 // ProvisioningState - Gets or sets provisioning state of the private endpoint connection. Possible values include: 'ProvisioningStateSucceeded', 'ProvisioningStateDeleting', 'ProvisioningStateFailed', 'ProvisioningStatePending' 14577 ProvisioningState ProvisioningState `json:"provisioningState,omitempty"` 14578 // PrivateEndpoint - Gets or sets private endpoint associated with the private endpoint connection 14579 PrivateEndpoint *PrivateEndpoint `json:"privateEndpoint,omitempty"` 14580 // PrivateLinkServiceConnectionState - Gets or sets private link service connection state 14581 PrivateLinkServiceConnectionState *PrivateLinkServiceConnectionState `json:"privateLinkServiceConnectionState,omitempty"` 14582} 14583 14584// PrivateEndpointConnectionDeleteFuture an abstraction for monitoring and retrieving the results of a 14585// long-running operation. 14586type PrivateEndpointConnectionDeleteFuture struct { 14587 azure.FutureAPI 14588 // Result returns the result of the asynchronous operation. 14589 // If the operation has not completed it will return an error. 14590 Result func(PrivateEndpointConnectionClient) (autorest.Response, error) 14591} 14592 14593// UnmarshalJSON is the custom unmarshaller for CreateFuture. 14594func (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// result is the default implementation for PrivateEndpointConnectionDeleteFuture.Result. 14605func (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// PrivateEndpointConnectionPutFuture an abstraction for monitoring and retrieving the results of a 14622// long-running operation. 14623type PrivateEndpointConnectionPutFuture struct { 14624 azure.FutureAPI 14625 // Result returns the result of the asynchronous operation. 14626 // If the operation has not completed it will return an error. 14627 Result func(PrivateEndpointConnectionClient) (PrivateEndpointConnectionResource, error) 14628} 14629 14630// UnmarshalJSON is the custom unmarshaller for CreateFuture. 14631func (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// result is the default implementation for PrivateEndpointConnectionPutFuture.Result. 14642func (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// PrivateEndpointConnectionResource private Endpoint Connection Response Properties 14665type PrivateEndpointConnectionResource struct { 14666 autorest.Response `json:"-"` 14667 // Properties - PrivateEndpointConnectionResource properties 14668 Properties *PrivateEndpointConnection `json:"properties,omitempty"` 14669 // ID - READ-ONLY; Resource Id represents the complete path to the resource. 14670 ID *string `json:"id,omitempty"` 14671 // Name - READ-ONLY; Resource name associated with the resource. 14672 Name *string `json:"name,omitempty"` 14673 // Type - READ-ONLY; Resource type represents the complete path of the form Namespace/ResourceType/ResourceType/... 14674 Type *string `json:"type,omitempty"` 14675 // Location - Resource location. 14676 Location *string `json:"location,omitempty"` 14677 // Tags - Resource tags. 14678 Tags map[string]*string `json:"tags"` 14679 // ETag - Optional ETag. 14680 ETag *string `json:"eTag,omitempty"` 14681} 14682 14683// MarshalJSON is the custom marshaler for PrivateEndpointConnectionResource. 14684func (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// PrivateLinkServiceConnectionState private Link Service Connection State 14702type PrivateLinkServiceConnectionState struct { 14703 // Status - Gets or sets the status. Possible values include: 'Pending', 'Approved', 'Rejected', 'Disconnected' 14704 Status PrivateEndpointConnectionStatus `json:"status,omitempty"` 14705 // Description - Gets or sets description 14706 Description *string `json:"description,omitempty"` 14707 // ActionRequired - Gets or sets actions required 14708 ActionRequired *string `json:"actionRequired,omitempty"` 14709} 14710 14711// BasicProtectableContainer protectable Container Class. 14712type BasicProtectableContainer interface { 14713 AsAzureStorageProtectableContainer() (*AzureStorageProtectableContainer, bool) 14714 AsAzureVMAppContainerProtectableContainer() (*AzureVMAppContainerProtectableContainer, bool) 14715 AsProtectableContainer() (*ProtectableContainer, bool) 14716} 14717 14718// ProtectableContainer protectable Container Class. 14719type ProtectableContainer struct { 14720 // FriendlyName - Friendly name of the container. 14721 FriendlyName *string `json:"friendlyName,omitempty"` 14722 // BackupManagementType - Type of backup management for the container. Possible values include: 'ManagementTypeInvalid', 'ManagementTypeAzureIaasVM', 'ManagementTypeMAB', 'ManagementTypeDPM', 'ManagementTypeAzureBackupServer', 'ManagementTypeAzureSQL', 'ManagementTypeAzureStorage', 'ManagementTypeAzureWorkload', 'ManagementTypeDefaultBackup' 14723 BackupManagementType ManagementType `json:"backupManagementType,omitempty"` 14724 // HealthStatus - Status of health of the container. 14725 HealthStatus *string `json:"healthStatus,omitempty"` 14726 // ContainerID - Fabric Id of the container such as ARM Id. 14727 ContainerID *string `json:"containerId,omitempty"` 14728 // ProtectableContainerType - Possible values include: 'ProtectableContainerTypeProtectableContainer', 'ProtectableContainerTypeStorageContainer', 'ProtectableContainerTypeVMAppContainer' 14729 ProtectableContainerType ProtectableContainerType `json:"protectableContainerType,omitempty"` 14730} 14731 14732func 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} 14754func 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// MarshalJSON is the custom marshaler for ProtectableContainer. 14774func (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// AsAzureStorageProtectableContainer is the BasicProtectableContainer implementation for ProtectableContainer. 14796func (pc ProtectableContainer) AsAzureStorageProtectableContainer() (*AzureStorageProtectableContainer, bool) { 14797 return nil, false 14798} 14799 14800// AsAzureVMAppContainerProtectableContainer is the BasicProtectableContainer implementation for ProtectableContainer. 14801func (pc ProtectableContainer) AsAzureVMAppContainerProtectableContainer() (*AzureVMAppContainerProtectableContainer, bool) { 14802 return nil, false 14803} 14804 14805// AsProtectableContainer is the BasicProtectableContainer implementation for ProtectableContainer. 14806func (pc ProtectableContainer) AsProtectableContainer() (*ProtectableContainer, bool) { 14807 return &pc, true 14808} 14809 14810// AsBasicProtectableContainer is the BasicProtectableContainer implementation for ProtectableContainer. 14811func (pc ProtectableContainer) AsBasicProtectableContainer() (BasicProtectableContainer, bool) { 14812 return &pc, true 14813} 14814 14815// ProtectableContainerResource protectable Container Class. 14816type ProtectableContainerResource struct { 14817 // Properties - ProtectableContainerResource properties 14818 Properties BasicProtectableContainer `json:"properties,omitempty"` 14819 // ID - READ-ONLY; Resource Id represents the complete path to the resource. 14820 ID *string `json:"id,omitempty"` 14821 // Name - READ-ONLY; Resource name associated with the resource. 14822 Name *string `json:"name,omitempty"` 14823 // Type - READ-ONLY; Resource type represents the complete path of the form Namespace/ResourceType/ResourceType/... 14824 Type *string `json:"type,omitempty"` 14825 // Location - Resource location. 14826 Location *string `json:"location,omitempty"` 14827 // Tags - Resource tags. 14828 Tags map[string]*string `json:"tags"` 14829 // ETag - Optional ETag. 14830 ETag *string `json:"eTag,omitempty"` 14831} 14832 14833// MarshalJSON is the custom marshaler for ProtectableContainerResource. 14834func (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// UnmarshalJSON is the custom unmarshaler for ProtectableContainerResource struct. 14850func (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// ProtectableContainerResourceList list of ProtectableContainer resources 14927type ProtectableContainerResourceList struct { 14928 autorest.Response `json:"-"` 14929 // Value - List of resources. 14930 Value *[]ProtectableContainerResource `json:"value,omitempty"` 14931 // NextLink - The uri to fetch the next page of resources. Call ListNext() fetches next page of resources. 14932 NextLink *string `json:"nextLink,omitempty"` 14933} 14934 14935// ProtectableContainerResourceListIterator provides access to a complete listing of 14936// ProtectableContainerResource values. 14937type ProtectableContainerResourceListIterator struct { 14938 i int 14939 page ProtectableContainerResourceListPage 14940} 14941 14942// NextWithContext advances to the next value. If there was an error making 14943// the request the iterator does not advance and the error is returned. 14944func (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// Next advances to the next value. If there was an error making 14969// the request the iterator does not advance and the error is returned. 14970// Deprecated: Use NextWithContext() instead. 14971func (iter *ProtectableContainerResourceListIterator) Next() error { 14972 return iter.NextWithContext(context.Background()) 14973} 14974 14975// NotDone returns true if the enumeration should be started or is not yet complete. 14976func (iter ProtectableContainerResourceListIterator) NotDone() bool { 14977 return iter.page.NotDone() && iter.i < len(iter.page.Values()) 14978} 14979 14980// Response returns the raw server response from the last page request. 14981func (iter ProtectableContainerResourceListIterator) Response() ProtectableContainerResourceList { 14982 return iter.page.Response() 14983} 14984 14985// Value returns the current value or a zero-initialized value if the 14986// iterator has advanced beyond the end of the collection. 14987func (iter ProtectableContainerResourceListIterator) Value() ProtectableContainerResource { 14988 if !iter.page.NotDone() { 14989 return ProtectableContainerResource{} 14990 } 14991 return iter.page.Values()[iter.i] 14992} 14993 14994// Creates a new instance of the ProtectableContainerResourceListIterator type. 14995func NewProtectableContainerResourceListIterator(page ProtectableContainerResourceListPage) ProtectableContainerResourceListIterator { 14996 return ProtectableContainerResourceListIterator{page: page} 14997} 14998 14999// IsEmpty returns true if the ListResult contains no values. 15000func (pcrl ProtectableContainerResourceList) IsEmpty() bool { 15001 return pcrl.Value == nil || len(*pcrl.Value) == 0 15002} 15003 15004// hasNextLink returns true if the NextLink is not empty. 15005func (pcrl ProtectableContainerResourceList) hasNextLink() bool { 15006 return pcrl.NextLink != nil && len(*pcrl.NextLink) != 0 15007} 15008 15009// protectableContainerResourceListPreparer prepares a request to retrieve the next set of results. 15010// It returns nil if no more results exist. 15011func (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// ProtectableContainerResourceListPage contains a page of ProtectableContainerResource values. 15022type ProtectableContainerResourceListPage struct { 15023 fn func(context.Context, ProtectableContainerResourceList) (ProtectableContainerResourceList, error) 15024 pcrl ProtectableContainerResourceList 15025} 15026 15027// NextWithContext advances to the next page of values. If there was an error making 15028// the request the page does not advance and the error is returned. 15029func (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// Next advances to the next page of values. If there was an error making 15054// the request the page does not advance and the error is returned. 15055// Deprecated: Use NextWithContext() instead. 15056func (page *ProtectableContainerResourceListPage) Next() error { 15057 return page.NextWithContext(context.Background()) 15058} 15059 15060// NotDone returns true if the page enumeration should be started or is not yet complete. 15061func (page ProtectableContainerResourceListPage) NotDone() bool { 15062 return !page.pcrl.IsEmpty() 15063} 15064 15065// Response returns the raw server response from the last page request. 15066func (page ProtectableContainerResourceListPage) Response() ProtectableContainerResourceList { 15067 return page.pcrl 15068} 15069 15070// Values returns the slice of values for the current page or nil if there are no values. 15071func (page ProtectableContainerResourceListPage) Values() []ProtectableContainerResource { 15072 if page.pcrl.IsEmpty() { 15073 return nil 15074 } 15075 return *page.pcrl.Value 15076} 15077 15078// Creates a new instance of the ProtectableContainerResourceListPage type. 15079func NewProtectableContainerResourceListPage(cur ProtectableContainerResourceList, getNextPage func(context.Context, ProtectableContainerResourceList) (ProtectableContainerResourceList, error)) ProtectableContainerResourceListPage { 15080 return ProtectableContainerResourceListPage{ 15081 fn: getNextPage, 15082 pcrl: cur, 15083 } 15084} 15085 15086// BasicProtectedItem base class for backup items. 15087type 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// ProtectedItem base class for backup items. 15106type ProtectedItem struct { 15107 // BackupManagementType - Type of backup management for the backed up item. Possible values include: 'ManagementTypeInvalid', 'ManagementTypeAzureIaasVM', 'ManagementTypeMAB', 'ManagementTypeDPM', 'ManagementTypeAzureBackupServer', 'ManagementTypeAzureSQL', 'ManagementTypeAzureStorage', 'ManagementTypeAzureWorkload', 'ManagementTypeDefaultBackup' 15108 BackupManagementType ManagementType `json:"backupManagementType,omitempty"` 15109 // WorkloadType - Type of workload this item represents. Possible values include: 'DataSourceTypeInvalid', 'DataSourceTypeVM', 'DataSourceTypeFileFolder', 'DataSourceTypeAzureSQLDb', 'DataSourceTypeSQLDB', 'DataSourceTypeExchange', 'DataSourceTypeSharepoint', 'DataSourceTypeVMwareVM', 'DataSourceTypeSystemState', 'DataSourceTypeClient', 'DataSourceTypeGenericDataSource', 'DataSourceTypeSQLDataBase', 'DataSourceTypeAzureFileShare', 'DataSourceTypeSAPHanaDatabase', 'DataSourceTypeSAPAseDatabase' 15110 WorkloadType DataSourceType `json:"workloadType,omitempty"` 15111 // ContainerName - Unique name of container 15112 ContainerName *string `json:"containerName,omitempty"` 15113 // SourceResourceID - ARM ID of the resource to be backed up. 15114 SourceResourceID *string `json:"sourceResourceId,omitempty"` 15115 // PolicyID - ID of the backup policy with which this item is backed up. 15116 PolicyID *string `json:"policyId,omitempty"` 15117 // LastRecoveryPoint - Timestamp when the last (latest) backup copy was created for this backup item. 15118 LastRecoveryPoint *date.Time `json:"lastRecoveryPoint,omitempty"` 15119 // BackupSetName - Name of the backup set the backup item belongs to 15120 BackupSetName *string `json:"backupSetName,omitempty"` 15121 // CreateMode - Create mode to indicate recovery of existing soft deleted data source or creation of new data source. Possible values include: 'CreateModeInvalid', 'CreateModeDefault', 'CreateModeRecover' 15122 CreateMode CreateMode `json:"createMode,omitempty"` 15123 // DeferredDeleteTimeInUTC - Time for deferred deletion in UTC 15124 DeferredDeleteTimeInUTC *date.Time `json:"deferredDeleteTimeInUTC,omitempty"` 15125 // IsScheduledForDeferredDelete - Flag to identify whether the DS is scheduled for deferred delete 15126 IsScheduledForDeferredDelete *bool `json:"isScheduledForDeferredDelete,omitempty"` 15127 // DeferredDeleteTimeRemaining - Time remaining before the DS marked for deferred delete is permanently deleted 15128 DeferredDeleteTimeRemaining *string `json:"deferredDeleteTimeRemaining,omitempty"` 15129 // IsDeferredDeleteScheduleUpcoming - Flag to identify whether the deferred deleted DS is to be purged soon 15130 IsDeferredDeleteScheduleUpcoming *bool `json:"isDeferredDeleteScheduleUpcoming,omitempty"` 15131 // IsRehydrate - Flag to identify that deferred deleted DS is to be moved into Pause state 15132 IsRehydrate *bool `json:"isRehydrate,omitempty"` 15133 // ProtectedItemType - Possible values include: 'ProtectedItemTypeProtectedItem', 'ProtectedItemTypeAzureFileShareProtectedItem', 'ProtectedItemTypeMicrosoftClassicComputevirtualMachines', 'ProtectedItemTypeMicrosoftComputevirtualMachines', 'ProtectedItemTypeAzureIaaSVMProtectedItem', 'ProtectedItemTypeMicrosoftSqlserversdatabases', 'ProtectedItemTypeAzureVMWorkloadProtectedItem', 'ProtectedItemTypeAzureVMWorkloadSAPAseDatabase', 'ProtectedItemTypeAzureVMWorkloadSAPHanaDatabase', 'ProtectedItemTypeAzureVMWorkloadSQLDatabase', 'ProtectedItemTypeDPMProtectedItem', 'ProtectedItemTypeGenericProtectedItem', 'ProtectedItemTypeMabFileFolderProtectedItem' 15134 ProtectedItemType ProtectedItemType `json:"protectedItemType,omitempty"` 15135} 15136 15137func 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} 15199func 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// MarshalJSON is the custom marshaler for ProtectedItem. 15219func (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// AsAzureFileshareProtectedItem is the BasicProtectedItem implementation for ProtectedItem. 15268func (pi ProtectedItem) AsAzureFileshareProtectedItem() (*AzureFileshareProtectedItem, bool) { 15269 return nil, false 15270} 15271 15272// AsAzureIaaSClassicComputeVMProtectedItem is the BasicProtectedItem implementation for ProtectedItem. 15273func (pi ProtectedItem) AsAzureIaaSClassicComputeVMProtectedItem() (*AzureIaaSClassicComputeVMProtectedItem, bool) { 15274 return nil, false 15275} 15276 15277// AsAzureIaaSComputeVMProtectedItem is the BasicProtectedItem implementation for ProtectedItem. 15278func (pi ProtectedItem) AsAzureIaaSComputeVMProtectedItem() (*AzureIaaSComputeVMProtectedItem, bool) { 15279 return nil, false 15280} 15281 15282// AsAzureIaaSVMProtectedItem is the BasicProtectedItem implementation for ProtectedItem. 15283func (pi ProtectedItem) AsAzureIaaSVMProtectedItem() (*AzureIaaSVMProtectedItem, bool) { 15284 return nil, false 15285} 15286 15287// AsBasicAzureIaaSVMProtectedItem is the BasicProtectedItem implementation for ProtectedItem. 15288func (pi ProtectedItem) AsBasicAzureIaaSVMProtectedItem() (BasicAzureIaaSVMProtectedItem, bool) { 15289 return nil, false 15290} 15291 15292// AsAzureSQLProtectedItem is the BasicProtectedItem implementation for ProtectedItem. 15293func (pi ProtectedItem) AsAzureSQLProtectedItem() (*AzureSQLProtectedItem, bool) { 15294 return nil, false 15295} 15296 15297// AsAzureVMWorkloadProtectedItem is the BasicProtectedItem implementation for ProtectedItem. 15298func (pi ProtectedItem) AsAzureVMWorkloadProtectedItem() (*AzureVMWorkloadProtectedItem, bool) { 15299 return nil, false 15300} 15301 15302// AsBasicAzureVMWorkloadProtectedItem is the BasicProtectedItem implementation for ProtectedItem. 15303func (pi ProtectedItem) AsBasicAzureVMWorkloadProtectedItem() (BasicAzureVMWorkloadProtectedItem, bool) { 15304 return nil, false 15305} 15306 15307// AsAzureVMWorkloadSAPAseDatabaseProtectedItem is the BasicProtectedItem implementation for ProtectedItem. 15308func (pi ProtectedItem) AsAzureVMWorkloadSAPAseDatabaseProtectedItem() (*AzureVMWorkloadSAPAseDatabaseProtectedItem, bool) { 15309 return nil, false 15310} 15311 15312// AsAzureVMWorkloadSAPHanaDatabaseProtectedItem is the BasicProtectedItem implementation for ProtectedItem. 15313func (pi ProtectedItem) AsAzureVMWorkloadSAPHanaDatabaseProtectedItem() (*AzureVMWorkloadSAPHanaDatabaseProtectedItem, bool) { 15314 return nil, false 15315} 15316 15317// AsAzureVMWorkloadSQLDatabaseProtectedItem is the BasicProtectedItem implementation for ProtectedItem. 15318func (pi ProtectedItem) AsAzureVMWorkloadSQLDatabaseProtectedItem() (*AzureVMWorkloadSQLDatabaseProtectedItem, bool) { 15319 return nil, false 15320} 15321 15322// AsDPMProtectedItem is the BasicProtectedItem implementation for ProtectedItem. 15323func (pi ProtectedItem) AsDPMProtectedItem() (*DPMProtectedItem, bool) { 15324 return nil, false 15325} 15326 15327// AsGenericProtectedItem is the BasicProtectedItem implementation for ProtectedItem. 15328func (pi ProtectedItem) AsGenericProtectedItem() (*GenericProtectedItem, bool) { 15329 return nil, false 15330} 15331 15332// AsMabFileFolderProtectedItem is the BasicProtectedItem implementation for ProtectedItem. 15333func (pi ProtectedItem) AsMabFileFolderProtectedItem() (*MabFileFolderProtectedItem, bool) { 15334 return nil, false 15335} 15336 15337// AsProtectedItem is the BasicProtectedItem implementation for ProtectedItem. 15338func (pi ProtectedItem) AsProtectedItem() (*ProtectedItem, bool) { 15339 return &pi, true 15340} 15341 15342// AsBasicProtectedItem is the BasicProtectedItem implementation for ProtectedItem. 15343func (pi ProtectedItem) AsBasicProtectedItem() (BasicProtectedItem, bool) { 15344 return &pi, true 15345} 15346 15347// ProtectedItemQueryObject filters to list backup items. 15348type ProtectedItemQueryObject struct { 15349 // HealthState - Health State for the backed up item. Possible values include: 'HealthStatePassed', 'HealthStateActionRequired', 'HealthStateActionSuggested', 'HealthStateInvalid' 15350 HealthState HealthState `json:"healthState,omitempty"` 15351 // BackupManagementType - Backup management type for the backed up item. Possible values include: 'ManagementTypeInvalid', 'ManagementTypeAzureIaasVM', 'ManagementTypeMAB', 'ManagementTypeDPM', 'ManagementTypeAzureBackupServer', 'ManagementTypeAzureSQL', 'ManagementTypeAzureStorage', 'ManagementTypeAzureWorkload', 'ManagementTypeDefaultBackup' 15352 BackupManagementType ManagementType `json:"backupManagementType,omitempty"` 15353 // ItemType - Type of workload this item represents. Possible values include: 'DataSourceTypeInvalid', 'DataSourceTypeVM', 'DataSourceTypeFileFolder', 'DataSourceTypeAzureSQLDb', 'DataSourceTypeSQLDB', 'DataSourceTypeExchange', 'DataSourceTypeSharepoint', 'DataSourceTypeVMwareVM', 'DataSourceTypeSystemState', 'DataSourceTypeClient', 'DataSourceTypeGenericDataSource', 'DataSourceTypeSQLDataBase', 'DataSourceTypeAzureFileShare', 'DataSourceTypeSAPHanaDatabase', 'DataSourceTypeSAPAseDatabase' 15354 ItemType DataSourceType `json:"itemType,omitempty"` 15355 // PolicyName - Backup policy name associated with the backup item. 15356 PolicyName *string `json:"policyName,omitempty"` 15357 // ContainerName - Name of the container. 15358 ContainerName *string `json:"containerName,omitempty"` 15359 // BackupEngineName - Backup Engine name 15360 BackupEngineName *string `json:"backupEngineName,omitempty"` 15361 // FriendlyName - Friendly name of protected item 15362 FriendlyName *string `json:"friendlyName,omitempty"` 15363 // FabricName - Name of the fabric. 15364 FabricName *string `json:"fabricName,omitempty"` 15365 // BackupSetName - Name of the backup set. 15366 BackupSetName *string `json:"backupSetName,omitempty"` 15367} 15368 15369// ProtectedItemResource base class for backup items. 15370type ProtectedItemResource struct { 15371 autorest.Response `json:"-"` 15372 // Properties - ProtectedItemResource properties 15373 Properties BasicProtectedItem `json:"properties,omitempty"` 15374 // ID - READ-ONLY; Resource Id represents the complete path to the resource. 15375 ID *string `json:"id,omitempty"` 15376 // Name - READ-ONLY; Resource name associated with the resource. 15377 Name *string `json:"name,omitempty"` 15378 // Type - READ-ONLY; Resource type represents the complete path of the form Namespace/ResourceType/ResourceType/... 15379 Type *string `json:"type,omitempty"` 15380 // Location - Resource location. 15381 Location *string `json:"location,omitempty"` 15382 // Tags - Resource tags. 15383 Tags map[string]*string `json:"tags"` 15384 // ETag - Optional ETag. 15385 ETag *string `json:"eTag,omitempty"` 15386} 15387 15388// MarshalJSON is the custom marshaler for ProtectedItemResource. 15389func (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// UnmarshalJSON is the custom unmarshaler for ProtectedItemResource struct. 15405func (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// ProtectedItemResourceList list of ProtectedItem resources 15482type ProtectedItemResourceList struct { 15483 autorest.Response `json:"-"` 15484 // Value - List of resources. 15485 Value *[]ProtectedItemResource `json:"value,omitempty"` 15486 // NextLink - The uri to fetch the next page of resources. Call ListNext() fetches next page of resources. 15487 NextLink *string `json:"nextLink,omitempty"` 15488} 15489 15490// ProtectedItemResourceListIterator provides access to a complete listing of ProtectedItemResource values. 15491type ProtectedItemResourceListIterator struct { 15492 i int 15493 page ProtectedItemResourceListPage 15494} 15495 15496// NextWithContext advances to the next value. If there was an error making 15497// the request the iterator does not advance and the error is returned. 15498func (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// Next advances to the next value. If there was an error making 15523// the request the iterator does not advance and the error is returned. 15524// Deprecated: Use NextWithContext() instead. 15525func (iter *ProtectedItemResourceListIterator) Next() error { 15526 return iter.NextWithContext(context.Background()) 15527} 15528 15529// NotDone returns true if the enumeration should be started or is not yet complete. 15530func (iter ProtectedItemResourceListIterator) NotDone() bool { 15531 return iter.page.NotDone() && iter.i < len(iter.page.Values()) 15532} 15533 15534// Response returns the raw server response from the last page request. 15535func (iter ProtectedItemResourceListIterator) Response() ProtectedItemResourceList { 15536 return iter.page.Response() 15537} 15538 15539// Value returns the current value or a zero-initialized value if the 15540// iterator has advanced beyond the end of the collection. 15541func (iter ProtectedItemResourceListIterator) Value() ProtectedItemResource { 15542 if !iter.page.NotDone() { 15543 return ProtectedItemResource{} 15544 } 15545 return iter.page.Values()[iter.i] 15546} 15547 15548// Creates a new instance of the ProtectedItemResourceListIterator type. 15549func NewProtectedItemResourceListIterator(page ProtectedItemResourceListPage) ProtectedItemResourceListIterator { 15550 return ProtectedItemResourceListIterator{page: page} 15551} 15552 15553// IsEmpty returns true if the ListResult contains no values. 15554func (pirl ProtectedItemResourceList) IsEmpty() bool { 15555 return pirl.Value == nil || len(*pirl.Value) == 0 15556} 15557 15558// hasNextLink returns true if the NextLink is not empty. 15559func (pirl ProtectedItemResourceList) hasNextLink() bool { 15560 return pirl.NextLink != nil && len(*pirl.NextLink) != 0 15561} 15562 15563// protectedItemResourceListPreparer prepares a request to retrieve the next set of results. 15564// It returns nil if no more results exist. 15565func (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// ProtectedItemResourceListPage contains a page of ProtectedItemResource values. 15576type ProtectedItemResourceListPage struct { 15577 fn func(context.Context, ProtectedItemResourceList) (ProtectedItemResourceList, error) 15578 pirl ProtectedItemResourceList 15579} 15580 15581// NextWithContext advances to the next page of values. If there was an error making 15582// the request the page does not advance and the error is returned. 15583func (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// Next advances to the next page of values. If there was an error making 15608// the request the page does not advance and the error is returned. 15609// Deprecated: Use NextWithContext() instead. 15610func (page *ProtectedItemResourceListPage) Next() error { 15611 return page.NextWithContext(context.Background()) 15612} 15613 15614// NotDone returns true if the page enumeration should be started or is not yet complete. 15615func (page ProtectedItemResourceListPage) NotDone() bool { 15616 return !page.pirl.IsEmpty() 15617} 15618 15619// Response returns the raw server response from the last page request. 15620func (page ProtectedItemResourceListPage) Response() ProtectedItemResourceList { 15621 return page.pirl 15622} 15623 15624// Values returns the slice of values for the current page or nil if there are no values. 15625func (page ProtectedItemResourceListPage) Values() []ProtectedItemResource { 15626 if page.pirl.IsEmpty() { 15627 return nil 15628 } 15629 return *page.pirl.Value 15630} 15631 15632// Creates a new instance of the ProtectedItemResourceListPage type. 15633func NewProtectedItemResourceListPage(cur ProtectedItemResourceList, getNextPage func(context.Context, ProtectedItemResourceList) (ProtectedItemResourceList, error)) ProtectedItemResourceListPage { 15634 return ProtectedItemResourceListPage{ 15635 fn: getNextPage, 15636 pirl: cur, 15637 } 15638} 15639 15640// BasicProtectionContainer base class for container with backup items. Containers with specific workloads are derived 15641// from this class. 15642type 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// ProtectionContainer base class for container with backup items. Containers with specific workloads are 15662// derived from this class. 15663type ProtectionContainer struct { 15664 // FriendlyName - Friendly name of the container. 15665 FriendlyName *string `json:"friendlyName,omitempty"` 15666 // BackupManagementType - Type of backup management for the container. Possible values include: 'ManagementTypeInvalid', 'ManagementTypeAzureIaasVM', 'ManagementTypeMAB', 'ManagementTypeDPM', 'ManagementTypeAzureBackupServer', 'ManagementTypeAzureSQL', 'ManagementTypeAzureStorage', 'ManagementTypeAzureWorkload', 'ManagementTypeDefaultBackup' 15667 BackupManagementType ManagementType `json:"backupManagementType,omitempty"` 15668 // RegistrationStatus - Status of registration of the container with the Recovery Services Vault. 15669 RegistrationStatus *string `json:"registrationStatus,omitempty"` 15670 // HealthStatus - Status of health of the container. 15671 HealthStatus *string `json:"healthStatus,omitempty"` 15672 // ContainerType - Possible values include: 'ContainerTypeProtectionContainer', 'ContainerTypeAzureBackupServerContainer1', 'ContainerTypeMicrosoftClassicComputevirtualMachines', 'ContainerTypeMicrosoftComputevirtualMachines', 'ContainerTypeSQLAGWorkLoadContainer1', 'ContainerTypeAzureSQLContainer1', 'ContainerTypeStorageContainer1', 'ContainerTypeVMAppContainer1', 'ContainerTypeAzureWorkloadContainer', 'ContainerTypeDPMContainer1', 'ContainerTypeGenericContainer1', 'ContainerTypeIaaSVMContainer', 'ContainerTypeWindows1' 15673 ContainerType ContainerTypeBasicProtectionContainer `json:"containerType,omitempty"` 15674} 15675 15676func 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} 15738func 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// MarshalJSON is the custom marshaler for ProtectionContainer. 15758func (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// AsAzureBackupServerContainer is the BasicProtectionContainer implementation for ProtectionContainer. 15780func (pc ProtectionContainer) AsAzureBackupServerContainer() (*AzureBackupServerContainer, bool) { 15781 return nil, false 15782} 15783 15784// AsAzureIaaSClassicComputeVMContainer is the BasicProtectionContainer implementation for ProtectionContainer. 15785func (pc ProtectionContainer) AsAzureIaaSClassicComputeVMContainer() (*AzureIaaSClassicComputeVMContainer, bool) { 15786 return nil, false 15787} 15788 15789// AsAzureIaaSComputeVMContainer is the BasicProtectionContainer implementation for ProtectionContainer. 15790func (pc ProtectionContainer) AsAzureIaaSComputeVMContainer() (*AzureIaaSComputeVMContainer, bool) { 15791 return nil, false 15792} 15793 15794// AsAzureSQLAGWorkloadContainerProtectionContainer is the BasicProtectionContainer implementation for ProtectionContainer. 15795func (pc ProtectionContainer) AsAzureSQLAGWorkloadContainerProtectionContainer() (*AzureSQLAGWorkloadContainerProtectionContainer, bool) { 15796 return nil, false 15797} 15798 15799// AsAzureSQLContainer is the BasicProtectionContainer implementation for ProtectionContainer. 15800func (pc ProtectionContainer) AsAzureSQLContainer() (*AzureSQLContainer, bool) { 15801 return nil, false 15802} 15803 15804// AsAzureStorageContainer is the BasicProtectionContainer implementation for ProtectionContainer. 15805func (pc ProtectionContainer) AsAzureStorageContainer() (*AzureStorageContainer, bool) { 15806 return nil, false 15807} 15808 15809// AsAzureVMAppContainerProtectionContainer is the BasicProtectionContainer implementation for ProtectionContainer. 15810func (pc ProtectionContainer) AsAzureVMAppContainerProtectionContainer() (*AzureVMAppContainerProtectionContainer, bool) { 15811 return nil, false 15812} 15813 15814// AsAzureWorkloadContainer is the BasicProtectionContainer implementation for ProtectionContainer. 15815func (pc ProtectionContainer) AsAzureWorkloadContainer() (*AzureWorkloadContainer, bool) { 15816 return nil, false 15817} 15818 15819// AsBasicAzureWorkloadContainer is the BasicProtectionContainer implementation for ProtectionContainer. 15820func (pc ProtectionContainer) AsBasicAzureWorkloadContainer() (BasicAzureWorkloadContainer, bool) { 15821 return nil, false 15822} 15823 15824// AsDpmContainer is the BasicProtectionContainer implementation for ProtectionContainer. 15825func (pc ProtectionContainer) AsDpmContainer() (*DpmContainer, bool) { 15826 return nil, false 15827} 15828 15829// AsBasicDpmContainer is the BasicProtectionContainer implementation for ProtectionContainer. 15830func (pc ProtectionContainer) AsBasicDpmContainer() (BasicDpmContainer, bool) { 15831 return nil, false 15832} 15833 15834// AsGenericContainer is the BasicProtectionContainer implementation for ProtectionContainer. 15835func (pc ProtectionContainer) AsGenericContainer() (*GenericContainer, bool) { 15836 return nil, false 15837} 15838 15839// AsIaaSVMContainer is the BasicProtectionContainer implementation for ProtectionContainer. 15840func (pc ProtectionContainer) AsIaaSVMContainer() (*IaaSVMContainer, bool) { 15841 return nil, false 15842} 15843 15844// AsBasicIaaSVMContainer is the BasicProtectionContainer implementation for ProtectionContainer. 15845func (pc ProtectionContainer) AsBasicIaaSVMContainer() (BasicIaaSVMContainer, bool) { 15846 return nil, false 15847} 15848 15849// AsMabContainer is the BasicProtectionContainer implementation for ProtectionContainer. 15850func (pc ProtectionContainer) AsMabContainer() (*MabContainer, bool) { 15851 return nil, false 15852} 15853 15854// AsProtectionContainer is the BasicProtectionContainer implementation for ProtectionContainer. 15855func (pc ProtectionContainer) AsProtectionContainer() (*ProtectionContainer, bool) { 15856 return &pc, true 15857} 15858 15859// AsBasicProtectionContainer is the BasicProtectionContainer implementation for ProtectionContainer. 15860func (pc ProtectionContainer) AsBasicProtectionContainer() (BasicProtectionContainer, bool) { 15861 return &pc, true 15862} 15863 15864// ProtectionContainerResource base class for container with backup items. Containers with specific 15865// workloads are derived from this class. 15866type ProtectionContainerResource struct { 15867 autorest.Response `json:"-"` 15868 // Properties - ProtectionContainerResource properties 15869 Properties BasicProtectionContainer `json:"properties,omitempty"` 15870 // ID - READ-ONLY; Resource Id represents the complete path to the resource. 15871 ID *string `json:"id,omitempty"` 15872 // Name - READ-ONLY; Resource name associated with the resource. 15873 Name *string `json:"name,omitempty"` 15874 // Type - READ-ONLY; Resource type represents the complete path of the form Namespace/ResourceType/ResourceType/... 15875 Type *string `json:"type,omitempty"` 15876 // Location - Resource location. 15877 Location *string `json:"location,omitempty"` 15878 // Tags - Resource tags. 15879 Tags map[string]*string `json:"tags"` 15880 // ETag - Optional ETag. 15881 ETag *string `json:"eTag,omitempty"` 15882} 15883 15884// MarshalJSON is the custom marshaler for ProtectionContainerResource. 15885func (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// UnmarshalJSON is the custom unmarshaler for ProtectionContainerResource struct. 15901func (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// ProtectionContainerResourceList list of ProtectionContainer resources 15978type ProtectionContainerResourceList struct { 15979 autorest.Response `json:"-"` 15980 // Value - List of resources. 15981 Value *[]ProtectionContainerResource `json:"value,omitempty"` 15982 // NextLink - The uri to fetch the next page of resources. Call ListNext() fetches next page of resources. 15983 NextLink *string `json:"nextLink,omitempty"` 15984} 15985 15986// ProtectionContainerResourceListIterator provides access to a complete listing of 15987// ProtectionContainerResource values. 15988type ProtectionContainerResourceListIterator struct { 15989 i int 15990 page ProtectionContainerResourceListPage 15991} 15992 15993// NextWithContext advances to the next value. If there was an error making 15994// the request the iterator does not advance and the error is returned. 15995func (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// Next advances to the next value. If there was an error making 16020// the request the iterator does not advance and the error is returned. 16021// Deprecated: Use NextWithContext() instead. 16022func (iter *ProtectionContainerResourceListIterator) Next() error { 16023 return iter.NextWithContext(context.Background()) 16024} 16025 16026// NotDone returns true if the enumeration should be started or is not yet complete. 16027func (iter ProtectionContainerResourceListIterator) NotDone() bool { 16028 return iter.page.NotDone() && iter.i < len(iter.page.Values()) 16029} 16030 16031// Response returns the raw server response from the last page request. 16032func (iter ProtectionContainerResourceListIterator) Response() ProtectionContainerResourceList { 16033 return iter.page.Response() 16034} 16035 16036// Value returns the current value or a zero-initialized value if the 16037// iterator has advanced beyond the end of the collection. 16038func (iter ProtectionContainerResourceListIterator) Value() ProtectionContainerResource { 16039 if !iter.page.NotDone() { 16040 return ProtectionContainerResource{} 16041 } 16042 return iter.page.Values()[iter.i] 16043} 16044 16045// Creates a new instance of the ProtectionContainerResourceListIterator type. 16046func NewProtectionContainerResourceListIterator(page ProtectionContainerResourceListPage) ProtectionContainerResourceListIterator { 16047 return ProtectionContainerResourceListIterator{page: page} 16048} 16049 16050// IsEmpty returns true if the ListResult contains no values. 16051func (pcrl ProtectionContainerResourceList) IsEmpty() bool { 16052 return pcrl.Value == nil || len(*pcrl.Value) == 0 16053} 16054 16055// hasNextLink returns true if the NextLink is not empty. 16056func (pcrl ProtectionContainerResourceList) hasNextLink() bool { 16057 return pcrl.NextLink != nil && len(*pcrl.NextLink) != 0 16058} 16059 16060// protectionContainerResourceListPreparer prepares a request to retrieve the next set of results. 16061// It returns nil if no more results exist. 16062func (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// ProtectionContainerResourceListPage contains a page of ProtectionContainerResource values. 16073type ProtectionContainerResourceListPage struct { 16074 fn func(context.Context, ProtectionContainerResourceList) (ProtectionContainerResourceList, error) 16075 pcrl ProtectionContainerResourceList 16076} 16077 16078// NextWithContext advances to the next page of values. If there was an error making 16079// the request the page does not advance and the error is returned. 16080func (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// Next advances to the next page of values. If there was an error making 16105// the request the page does not advance and the error is returned. 16106// Deprecated: Use NextWithContext() instead. 16107func (page *ProtectionContainerResourceListPage) Next() error { 16108 return page.NextWithContext(context.Background()) 16109} 16110 16111// NotDone returns true if the page enumeration should be started or is not yet complete. 16112func (page ProtectionContainerResourceListPage) NotDone() bool { 16113 return !page.pcrl.IsEmpty() 16114} 16115 16116// Response returns the raw server response from the last page request. 16117func (page ProtectionContainerResourceListPage) Response() ProtectionContainerResourceList { 16118 return page.pcrl 16119} 16120 16121// Values returns the slice of values for the current page or nil if there are no values. 16122func (page ProtectionContainerResourceListPage) Values() []ProtectionContainerResource { 16123 if page.pcrl.IsEmpty() { 16124 return nil 16125 } 16126 return *page.pcrl.Value 16127} 16128 16129// Creates a new instance of the ProtectionContainerResourceListPage type. 16130func NewProtectionContainerResourceListPage(cur ProtectionContainerResourceList, getNextPage func(context.Context, ProtectionContainerResourceList) (ProtectionContainerResourceList, error)) ProtectionContainerResourceListPage { 16131 return ProtectionContainerResourceListPage{ 16132 fn: getNextPage, 16133 pcrl: cur, 16134 } 16135} 16136 16137// BasicProtectionIntent base class for backup ProtectionIntent. 16138type 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// ProtectionIntent base class for backup ProtectionIntent. 16149type ProtectionIntent struct { 16150 // BackupManagementType - Type of backup management for the backed up item. Possible values include: 'ManagementTypeInvalid', 'ManagementTypeAzureIaasVM', 'ManagementTypeMAB', 'ManagementTypeDPM', 'ManagementTypeAzureBackupServer', 'ManagementTypeAzureSQL', 'ManagementTypeAzureStorage', 'ManagementTypeAzureWorkload', 'ManagementTypeDefaultBackup' 16151 BackupManagementType ManagementType `json:"backupManagementType,omitempty"` 16152 // SourceResourceID - ARM ID of the resource to be backed up. 16153 SourceResourceID *string `json:"sourceResourceId,omitempty"` 16154 // ItemID - ID of the item which is getting protected, In case of Azure Vm , it is ProtectedItemId 16155 ItemID *string `json:"itemId,omitempty"` 16156 // PolicyID - ID of the backup policy with which this item is backed up. 16157 PolicyID *string `json:"policyId,omitempty"` 16158 // ProtectionState - Backup state of this backup item. Possible values include: 'ProtectionStatusInvalid', 'ProtectionStatusNotProtected', 'ProtectionStatusProtecting', 'ProtectionStatusProtected', 'ProtectionStatusProtectionFailed' 16159 ProtectionState ProtectionStatus `json:"protectionState,omitempty"` 16160 // ProtectionIntentItemType - Possible values include: 'ProtectionIntentItemTypeProtectionIntent', 'ProtectionIntentItemTypeRecoveryServiceVaultItem', 'ProtectionIntentItemTypeAzureResourceItem', 'ProtectionIntentItemTypeAzureWorkloadAutoProtectionIntent', 'ProtectionIntentItemTypeAzureWorkloadSQLAutoProtectionIntent' 16161 ProtectionIntentItemType ProtectionIntentItemType `json:"protectionIntentItemType,omitempty"` 16162} 16163 16164func 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} 16194func 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// MarshalJSON is the custom marshaler for ProtectionIntent. 16214func (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// AsAzureRecoveryServiceVaultProtectionIntent is the BasicProtectionIntent implementation for ProtectionIntent. 16239func (pi ProtectionIntent) AsAzureRecoveryServiceVaultProtectionIntent() (*AzureRecoveryServiceVaultProtectionIntent, bool) { 16240 return nil, false 16241} 16242 16243// AsBasicAzureRecoveryServiceVaultProtectionIntent is the BasicProtectionIntent implementation for ProtectionIntent. 16244func (pi ProtectionIntent) AsBasicAzureRecoveryServiceVaultProtectionIntent() (BasicAzureRecoveryServiceVaultProtectionIntent, bool) { 16245 return nil, false 16246} 16247 16248// AsAzureResourceProtectionIntent is the BasicProtectionIntent implementation for ProtectionIntent. 16249func (pi ProtectionIntent) AsAzureResourceProtectionIntent() (*AzureResourceProtectionIntent, bool) { 16250 return nil, false 16251} 16252 16253// AsAzureWorkloadAutoProtectionIntent is the BasicProtectionIntent implementation for ProtectionIntent. 16254func (pi ProtectionIntent) AsAzureWorkloadAutoProtectionIntent() (*AzureWorkloadAutoProtectionIntent, bool) { 16255 return nil, false 16256} 16257 16258// AsBasicAzureWorkloadAutoProtectionIntent is the BasicProtectionIntent implementation for ProtectionIntent. 16259func (pi ProtectionIntent) AsBasicAzureWorkloadAutoProtectionIntent() (BasicAzureWorkloadAutoProtectionIntent, bool) { 16260 return nil, false 16261} 16262 16263// AsAzureWorkloadSQLAutoProtectionIntent is the BasicProtectionIntent implementation for ProtectionIntent. 16264func (pi ProtectionIntent) AsAzureWorkloadSQLAutoProtectionIntent() (*AzureWorkloadSQLAutoProtectionIntent, bool) { 16265 return nil, false 16266} 16267 16268// AsProtectionIntent is the BasicProtectionIntent implementation for ProtectionIntent. 16269func (pi ProtectionIntent) AsProtectionIntent() (*ProtectionIntent, bool) { 16270 return &pi, true 16271} 16272 16273// AsBasicProtectionIntent is the BasicProtectionIntent implementation for ProtectionIntent. 16274func (pi ProtectionIntent) AsBasicProtectionIntent() (BasicProtectionIntent, bool) { 16275 return &pi, true 16276} 16277 16278// ProtectionIntentQueryObject filters to list protection intent. 16279type ProtectionIntentQueryObject struct { 16280 // BackupManagementType - Backup management type for the backed up item. Possible values include: 'ManagementTypeInvalid', 'ManagementTypeAzureIaasVM', 'ManagementTypeMAB', 'ManagementTypeDPM', 'ManagementTypeAzureBackupServer', 'ManagementTypeAzureSQL', 'ManagementTypeAzureStorage', 'ManagementTypeAzureWorkload', 'ManagementTypeDefaultBackup' 16281 BackupManagementType ManagementType `json:"backupManagementType,omitempty"` 16282 // ItemType - Type of workload this item represents. Possible values include: 'IntentItemTypeInvalid', 'IntentItemTypeSQLInstance', 'IntentItemTypeSQLAvailabilityGroupContainer' 16283 ItemType IntentItemType `json:"itemType,omitempty"` 16284 // ParentName - Parent name of the intent 16285 ParentName *string `json:"parentName,omitempty"` 16286 // ItemName - Item name of the intent 16287 ItemName *string `json:"itemName,omitempty"` 16288} 16289 16290// ProtectionIntentResource base class for backup ProtectionIntent. 16291type ProtectionIntentResource struct { 16292 autorest.Response `json:"-"` 16293 // Properties - ProtectionIntentResource properties 16294 Properties BasicProtectionIntent `json:"properties,omitempty"` 16295 // ID - READ-ONLY; Resource Id represents the complete path to the resource. 16296 ID *string `json:"id,omitempty"` 16297 // Name - READ-ONLY; Resource name associated with the resource. 16298 Name *string `json:"name,omitempty"` 16299 // Type - READ-ONLY; Resource type represents the complete path of the form Namespace/ResourceType/ResourceType/... 16300 Type *string `json:"type,omitempty"` 16301 // Location - Resource location. 16302 Location *string `json:"location,omitempty"` 16303 // Tags - Resource tags. 16304 Tags map[string]*string `json:"tags"` 16305 // ETag - Optional ETag. 16306 ETag *string `json:"eTag,omitempty"` 16307} 16308 16309// MarshalJSON is the custom marshaler for ProtectionIntentResource. 16310func (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// UnmarshalJSON is the custom unmarshaler for ProtectionIntentResource struct. 16326func (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// ProtectionIntentResourceList list of ProtectionIntent resources 16403type ProtectionIntentResourceList struct { 16404 autorest.Response `json:"-"` 16405 // Value - List of resources. 16406 Value *[]ProtectionIntentResource `json:"value,omitempty"` 16407 // NextLink - The uri to fetch the next page of resources. Call ListNext() fetches next page of resources. 16408 NextLink *string `json:"nextLink,omitempty"` 16409} 16410 16411// ProtectionIntentResourceListIterator provides access to a complete listing of ProtectionIntentResource 16412// values. 16413type ProtectionIntentResourceListIterator struct { 16414 i int 16415 page ProtectionIntentResourceListPage 16416} 16417 16418// NextWithContext advances to the next value. If there was an error making 16419// the request the iterator does not advance and the error is returned. 16420func (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// Next advances to the next value. If there was an error making 16445// the request the iterator does not advance and the error is returned. 16446// Deprecated: Use NextWithContext() instead. 16447func (iter *ProtectionIntentResourceListIterator) Next() error { 16448 return iter.NextWithContext(context.Background()) 16449} 16450 16451// NotDone returns true if the enumeration should be started or is not yet complete. 16452func (iter ProtectionIntentResourceListIterator) NotDone() bool { 16453 return iter.page.NotDone() && iter.i < len(iter.page.Values()) 16454} 16455 16456// Response returns the raw server response from the last page request. 16457func (iter ProtectionIntentResourceListIterator) Response() ProtectionIntentResourceList { 16458 return iter.page.Response() 16459} 16460 16461// Value returns the current value or a zero-initialized value if the 16462// iterator has advanced beyond the end of the collection. 16463func (iter ProtectionIntentResourceListIterator) Value() ProtectionIntentResource { 16464 if !iter.page.NotDone() { 16465 return ProtectionIntentResource{} 16466 } 16467 return iter.page.Values()[iter.i] 16468} 16469 16470// Creates a new instance of the ProtectionIntentResourceListIterator type. 16471func NewProtectionIntentResourceListIterator(page ProtectionIntentResourceListPage) ProtectionIntentResourceListIterator { 16472 return ProtectionIntentResourceListIterator{page: page} 16473} 16474 16475// IsEmpty returns true if the ListResult contains no values. 16476func (pirl ProtectionIntentResourceList) IsEmpty() bool { 16477 return pirl.Value == nil || len(*pirl.Value) == 0 16478} 16479 16480// hasNextLink returns true if the NextLink is not empty. 16481func (pirl ProtectionIntentResourceList) hasNextLink() bool { 16482 return pirl.NextLink != nil && len(*pirl.NextLink) != 0 16483} 16484 16485// protectionIntentResourceListPreparer prepares a request to retrieve the next set of results. 16486// It returns nil if no more results exist. 16487func (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// ProtectionIntentResourceListPage contains a page of ProtectionIntentResource values. 16498type ProtectionIntentResourceListPage struct { 16499 fn func(context.Context, ProtectionIntentResourceList) (ProtectionIntentResourceList, error) 16500 pirl ProtectionIntentResourceList 16501} 16502 16503// NextWithContext advances to the next page of values. If there was an error making 16504// the request the page does not advance and the error is returned. 16505func (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// Next advances to the next page of values. If there was an error making 16530// the request the page does not advance and the error is returned. 16531// Deprecated: Use NextWithContext() instead. 16532func (page *ProtectionIntentResourceListPage) Next() error { 16533 return page.NextWithContext(context.Background()) 16534} 16535 16536// NotDone returns true if the page enumeration should be started or is not yet complete. 16537func (page ProtectionIntentResourceListPage) NotDone() bool { 16538 return !page.pirl.IsEmpty() 16539} 16540 16541// Response returns the raw server response from the last page request. 16542func (page ProtectionIntentResourceListPage) Response() ProtectionIntentResourceList { 16543 return page.pirl 16544} 16545 16546// Values returns the slice of values for the current page or nil if there are no values. 16547func (page ProtectionIntentResourceListPage) Values() []ProtectionIntentResource { 16548 if page.pirl.IsEmpty() { 16549 return nil 16550 } 16551 return *page.pirl.Value 16552} 16553 16554// Creates a new instance of the ProtectionIntentResourceListPage type. 16555func NewProtectionIntentResourceListPage(cur ProtectionIntentResourceList, getNextPage func(context.Context, ProtectionIntentResourceList) (ProtectionIntentResourceList, error)) ProtectionIntentResourceListPage { 16556 return ProtectionIntentResourceListPage{ 16557 fn: getNextPage, 16558 pirl: cur, 16559 } 16560} 16561 16562// BasicProtectionPolicy base class for backup policy. Workload-specific backup policies are derived from this class. 16563type 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// ProtectionPolicy base class for backup policy. Workload-specific backup policies are derived from this 16574// class. 16575type ProtectionPolicy struct { 16576 // ProtectedItemsCount - Number of items associated with this policy. 16577 ProtectedItemsCount *int32 `json:"protectedItemsCount,omitempty"` 16578 // BackupManagementType - Possible values include: 'BackupManagementTypeProtectionPolicy', 'BackupManagementTypeAzureWorkload', 'BackupManagementTypeAzureStorage', 'BackupManagementTypeAzureIaasVM', 'BackupManagementTypeAzureSQL', 'BackupManagementTypeGenericProtectionPolicy', 'BackupManagementTypeMAB' 16579 BackupManagementType ManagementTypeBasicProtectionPolicy `json:"backupManagementType,omitempty"` 16580} 16581 16582func 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} 16620func 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// MarshalJSON is the custom marshaler for ProtectionPolicy. 16640func (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// AsAzureVMWorkloadProtectionPolicy is the BasicProtectionPolicy implementation for ProtectionPolicy. 16653func (pp ProtectionPolicy) AsAzureVMWorkloadProtectionPolicy() (*AzureVMWorkloadProtectionPolicy, bool) { 16654 return nil, false 16655} 16656 16657// AsAzureFileShareProtectionPolicy is the BasicProtectionPolicy implementation for ProtectionPolicy. 16658func (pp ProtectionPolicy) AsAzureFileShareProtectionPolicy() (*AzureFileShareProtectionPolicy, bool) { 16659 return nil, false 16660} 16661 16662// AsAzureIaaSVMProtectionPolicy is the BasicProtectionPolicy implementation for ProtectionPolicy. 16663func (pp ProtectionPolicy) AsAzureIaaSVMProtectionPolicy() (*AzureIaaSVMProtectionPolicy, bool) { 16664 return nil, false 16665} 16666 16667// AsAzureSQLProtectionPolicy is the BasicProtectionPolicy implementation for ProtectionPolicy. 16668func (pp ProtectionPolicy) AsAzureSQLProtectionPolicy() (*AzureSQLProtectionPolicy, bool) { 16669 return nil, false 16670} 16671 16672// AsGenericProtectionPolicy is the BasicProtectionPolicy implementation for ProtectionPolicy. 16673func (pp ProtectionPolicy) AsGenericProtectionPolicy() (*GenericProtectionPolicy, bool) { 16674 return nil, false 16675} 16676 16677// AsMabProtectionPolicy is the BasicProtectionPolicy implementation for ProtectionPolicy. 16678func (pp ProtectionPolicy) AsMabProtectionPolicy() (*MabProtectionPolicy, bool) { 16679 return nil, false 16680} 16681 16682// AsProtectionPolicy is the BasicProtectionPolicy implementation for ProtectionPolicy. 16683func (pp ProtectionPolicy) AsProtectionPolicy() (*ProtectionPolicy, bool) { 16684 return &pp, true 16685} 16686 16687// AsBasicProtectionPolicy is the BasicProtectionPolicy implementation for ProtectionPolicy. 16688func (pp ProtectionPolicy) AsBasicProtectionPolicy() (BasicProtectionPolicy, bool) { 16689 return &pp, true 16690} 16691 16692// ProtectionPolicyQueryObject filters the list backup policies API. 16693type ProtectionPolicyQueryObject struct { 16694 // BackupManagementType - Backup management type for the backup policy. Possible values include: 'ManagementTypeInvalid', 'ManagementTypeAzureIaasVM', 'ManagementTypeMAB', 'ManagementTypeDPM', 'ManagementTypeAzureBackupServer', 'ManagementTypeAzureSQL', 'ManagementTypeAzureStorage', 'ManagementTypeAzureWorkload', 'ManagementTypeDefaultBackup' 16695 BackupManagementType ManagementType `json:"backupManagementType,omitempty"` 16696 // FabricName - Fabric name for filter 16697 FabricName *string `json:"fabricName,omitempty"` 16698 // WorkloadType - Workload type for the backup policy. Possible values include: 'WorkloadTypeInvalid', 'WorkloadTypeVM', 'WorkloadTypeFileFolder', 'WorkloadTypeAzureSQLDb', 'WorkloadTypeSQLDB', 'WorkloadTypeExchange', 'WorkloadTypeSharepoint', 'WorkloadTypeVMwareVM', 'WorkloadTypeSystemState', 'WorkloadTypeClient', 'WorkloadTypeGenericDataSource', 'WorkloadTypeSQLDataBase', 'WorkloadTypeAzureFileShare', 'WorkloadTypeSAPHanaDatabase', 'WorkloadTypeSAPAseDatabase' 16699 WorkloadType WorkloadType `json:"workloadType,omitempty"` 16700} 16701 16702// ProtectionPolicyResource base class for backup policy. Workload-specific backup policies are derived 16703// from this class. 16704type ProtectionPolicyResource struct { 16705 autorest.Response `json:"-"` 16706 // Properties - ProtectionPolicyResource properties 16707 Properties BasicProtectionPolicy `json:"properties,omitempty"` 16708 // ID - READ-ONLY; Resource Id represents the complete path to the resource. 16709 ID *string `json:"id,omitempty"` 16710 // Name - READ-ONLY; Resource name associated with the resource. 16711 Name *string `json:"name,omitempty"` 16712 // Type - READ-ONLY; Resource type represents the complete path of the form Namespace/ResourceType/ResourceType/... 16713 Type *string `json:"type,omitempty"` 16714 // Location - Resource location. 16715 Location *string `json:"location,omitempty"` 16716 // Tags - Resource tags. 16717 Tags map[string]*string `json:"tags"` 16718 // ETag - Optional ETag. 16719 ETag *string `json:"eTag,omitempty"` 16720} 16721 16722// MarshalJSON is the custom marshaler for ProtectionPolicyResource. 16723func (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// UnmarshalJSON is the custom unmarshaler for ProtectionPolicyResource struct. 16739func (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// ProtectionPolicyResourceList list of ProtectionPolicy resources 16816type ProtectionPolicyResourceList struct { 16817 autorest.Response `json:"-"` 16818 // Value - List of resources. 16819 Value *[]ProtectionPolicyResource `json:"value,omitempty"` 16820 // NextLink - The uri to fetch the next page of resources. Call ListNext() fetches next page of resources. 16821 NextLink *string `json:"nextLink,omitempty"` 16822} 16823 16824// ProtectionPolicyResourceListIterator provides access to a complete listing of ProtectionPolicyResource 16825// values. 16826type ProtectionPolicyResourceListIterator struct { 16827 i int 16828 page ProtectionPolicyResourceListPage 16829} 16830 16831// NextWithContext advances to the next value. If there was an error making 16832// the request the iterator does not advance and the error is returned. 16833func (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// Next advances to the next value. If there was an error making 16858// the request the iterator does not advance and the error is returned. 16859// Deprecated: Use NextWithContext() instead. 16860func (iter *ProtectionPolicyResourceListIterator) Next() error { 16861 return iter.NextWithContext(context.Background()) 16862} 16863 16864// NotDone returns true if the enumeration should be started or is not yet complete. 16865func (iter ProtectionPolicyResourceListIterator) NotDone() bool { 16866 return iter.page.NotDone() && iter.i < len(iter.page.Values()) 16867} 16868 16869// Response returns the raw server response from the last page request. 16870func (iter ProtectionPolicyResourceListIterator) Response() ProtectionPolicyResourceList { 16871 return iter.page.Response() 16872} 16873 16874// Value returns the current value or a zero-initialized value if the 16875// iterator has advanced beyond the end of the collection. 16876func (iter ProtectionPolicyResourceListIterator) Value() ProtectionPolicyResource { 16877 if !iter.page.NotDone() { 16878 return ProtectionPolicyResource{} 16879 } 16880 return iter.page.Values()[iter.i] 16881} 16882 16883// Creates a new instance of the ProtectionPolicyResourceListIterator type. 16884func NewProtectionPolicyResourceListIterator(page ProtectionPolicyResourceListPage) ProtectionPolicyResourceListIterator { 16885 return ProtectionPolicyResourceListIterator{page: page} 16886} 16887 16888// IsEmpty returns true if the ListResult contains no values. 16889func (pprl ProtectionPolicyResourceList) IsEmpty() bool { 16890 return pprl.Value == nil || len(*pprl.Value) == 0 16891} 16892 16893// hasNextLink returns true if the NextLink is not empty. 16894func (pprl ProtectionPolicyResourceList) hasNextLink() bool { 16895 return pprl.NextLink != nil && len(*pprl.NextLink) != 0 16896} 16897 16898// protectionPolicyResourceListPreparer prepares a request to retrieve the next set of results. 16899// It returns nil if no more results exist. 16900func (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// ProtectionPolicyResourceListPage contains a page of ProtectionPolicyResource values. 16911type ProtectionPolicyResourceListPage struct { 16912 fn func(context.Context, ProtectionPolicyResourceList) (ProtectionPolicyResourceList, error) 16913 pprl ProtectionPolicyResourceList 16914} 16915 16916// NextWithContext advances to the next page of values. If there was an error making 16917// the request the page does not advance and the error is returned. 16918func (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// Next advances to the next page of values. If there was an error making 16943// the request the page does not advance and the error is returned. 16944// Deprecated: Use NextWithContext() instead. 16945func (page *ProtectionPolicyResourceListPage) Next() error { 16946 return page.NextWithContext(context.Background()) 16947} 16948 16949// NotDone returns true if the page enumeration should be started or is not yet complete. 16950func (page ProtectionPolicyResourceListPage) NotDone() bool { 16951 return !page.pprl.IsEmpty() 16952} 16953 16954// Response returns the raw server response from the last page request. 16955func (page ProtectionPolicyResourceListPage) Response() ProtectionPolicyResourceList { 16956 return page.pprl 16957} 16958 16959// Values returns the slice of values for the current page or nil if there are no values. 16960func (page ProtectionPolicyResourceListPage) Values() []ProtectionPolicyResource { 16961 if page.pprl.IsEmpty() { 16962 return nil 16963 } 16964 return *page.pprl.Value 16965} 16966 16967// Creates a new instance of the ProtectionPolicyResourceListPage type. 16968func NewProtectionPolicyResourceListPage(cur ProtectionPolicyResourceList, getNextPage func(context.Context, ProtectionPolicyResourceList) (ProtectionPolicyResourceList, error)) ProtectionPolicyResourceListPage { 16969 return ProtectionPolicyResourceListPage{ 16970 fn: getNextPage, 16971 pprl: cur, 16972 } 16973} 16974 16975// BasicRecoveryPoint base class for backup copies. Workload-specific backup copies are derived from this class. 16976type 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// RecoveryPoint base class for backup copies. Workload-specific backup copies are derived from this class. 16993type RecoveryPoint struct { 16994 // ObjectType - Possible values include: 'ObjectTypeRecoveryPoint', 'ObjectTypeAzureFileShareRecoveryPoint', 'ObjectTypeAzureWorkloadPointInTimeRecoveryPoint', 'ObjectTypeAzureWorkloadRecoveryPoint', 'ObjectTypeAzureWorkloadSAPHanaPointInTimeRecoveryPoint', 'ObjectTypeAzureWorkloadSAPHanaRecoveryPoint', 'ObjectTypeAzureWorkloadSQLPointInTimeRecoveryPoint', 'ObjectTypeAzureWorkloadSQLRecoveryPoint', 'ObjectTypeGenericRecoveryPoint', 'ObjectTypeIaasVMRecoveryPoint' 16995 ObjectType ObjectTypeBasicRecoveryPoint `json:"objectType,omitempty"` 16996} 16997 16998func 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} 17048func 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// MarshalJSON is the custom marshaler for RecoveryPoint. 17068func (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// AsAzureFileShareRecoveryPoint is the BasicRecoveryPoint implementation for RecoveryPoint. 17078func (rp RecoveryPoint) AsAzureFileShareRecoveryPoint() (*AzureFileShareRecoveryPoint, bool) { 17079 return nil, false 17080} 17081 17082// AsAzureWorkloadPointInTimeRecoveryPoint is the BasicRecoveryPoint implementation for RecoveryPoint. 17083func (rp RecoveryPoint) AsAzureWorkloadPointInTimeRecoveryPoint() (*AzureWorkloadPointInTimeRecoveryPoint, bool) { 17084 return nil, false 17085} 17086 17087// AsBasicAzureWorkloadPointInTimeRecoveryPoint is the BasicRecoveryPoint implementation for RecoveryPoint. 17088func (rp RecoveryPoint) AsBasicAzureWorkloadPointInTimeRecoveryPoint() (BasicAzureWorkloadPointInTimeRecoveryPoint, bool) { 17089 return nil, false 17090} 17091 17092// AsAzureWorkloadRecoveryPoint is the BasicRecoveryPoint implementation for RecoveryPoint. 17093func (rp RecoveryPoint) AsAzureWorkloadRecoveryPoint() (*AzureWorkloadRecoveryPoint, bool) { 17094 return nil, false 17095} 17096 17097// AsBasicAzureWorkloadRecoveryPoint is the BasicRecoveryPoint implementation for RecoveryPoint. 17098func (rp RecoveryPoint) AsBasicAzureWorkloadRecoveryPoint() (BasicAzureWorkloadRecoveryPoint, bool) { 17099 return nil, false 17100} 17101 17102// AsAzureWorkloadSAPHanaPointInTimeRecoveryPoint is the BasicRecoveryPoint implementation for RecoveryPoint. 17103func (rp RecoveryPoint) AsAzureWorkloadSAPHanaPointInTimeRecoveryPoint() (*AzureWorkloadSAPHanaPointInTimeRecoveryPoint, bool) { 17104 return nil, false 17105} 17106 17107// AsAzureWorkloadSAPHanaRecoveryPoint is the BasicRecoveryPoint implementation for RecoveryPoint. 17108func (rp RecoveryPoint) AsAzureWorkloadSAPHanaRecoveryPoint() (*AzureWorkloadSAPHanaRecoveryPoint, bool) { 17109 return nil, false 17110} 17111 17112// AsAzureWorkloadSQLPointInTimeRecoveryPoint is the BasicRecoveryPoint implementation for RecoveryPoint. 17113func (rp RecoveryPoint) AsAzureWorkloadSQLPointInTimeRecoveryPoint() (*AzureWorkloadSQLPointInTimeRecoveryPoint, bool) { 17114 return nil, false 17115} 17116 17117// AsAzureWorkloadSQLRecoveryPoint is the BasicRecoveryPoint implementation for RecoveryPoint. 17118func (rp RecoveryPoint) AsAzureWorkloadSQLRecoveryPoint() (*AzureWorkloadSQLRecoveryPoint, bool) { 17119 return nil, false 17120} 17121 17122// AsBasicAzureWorkloadSQLRecoveryPoint is the BasicRecoveryPoint implementation for RecoveryPoint. 17123func (rp RecoveryPoint) AsBasicAzureWorkloadSQLRecoveryPoint() (BasicAzureWorkloadSQLRecoveryPoint, bool) { 17124 return nil, false 17125} 17126 17127// AsGenericRecoveryPoint is the BasicRecoveryPoint implementation for RecoveryPoint. 17128func (rp RecoveryPoint) AsGenericRecoveryPoint() (*GenericRecoveryPoint, bool) { 17129 return nil, false 17130} 17131 17132// AsIaasVMRecoveryPoint is the BasicRecoveryPoint implementation for RecoveryPoint. 17133func (rp RecoveryPoint) AsIaasVMRecoveryPoint() (*IaasVMRecoveryPoint, bool) { 17134 return nil, false 17135} 17136 17137// AsRecoveryPoint is the BasicRecoveryPoint implementation for RecoveryPoint. 17138func (rp RecoveryPoint) AsRecoveryPoint() (*RecoveryPoint, bool) { 17139 return &rp, true 17140} 17141 17142// AsBasicRecoveryPoint is the BasicRecoveryPoint implementation for RecoveryPoint. 17143func (rp RecoveryPoint) AsBasicRecoveryPoint() (BasicRecoveryPoint, bool) { 17144 return &rp, true 17145} 17146 17147// RecoveryPointDiskConfiguration disk configuration 17148type RecoveryPointDiskConfiguration struct { 17149 // NumberOfDisksIncludedInBackup - Number of disks included in backup 17150 NumberOfDisksIncludedInBackup *int32 `json:"numberOfDisksIncludedInBackup,omitempty"` 17151 // NumberOfDisksAttachedToVM - Number of disks attached to the VM 17152 NumberOfDisksAttachedToVM *int32 `json:"numberOfDisksAttachedToVm,omitempty"` 17153 // IncludedDiskList - Information of disks included in backup 17154 IncludedDiskList *[]DiskInformation `json:"includedDiskList,omitempty"` 17155 // ExcludedDiskList - Information of disks excluded from backup 17156 ExcludedDiskList *[]DiskInformation `json:"excludedDiskList,omitempty"` 17157} 17158 17159// RecoveryPointResource base class for backup copies. Workload-specific backup copies are derived from 17160// this class. 17161type RecoveryPointResource struct { 17162 autorest.Response `json:"-"` 17163 // Properties - RecoveryPointResource properties 17164 Properties BasicRecoveryPoint `json:"properties,omitempty"` 17165 // ID - READ-ONLY; Resource Id represents the complete path to the resource. 17166 ID *string `json:"id,omitempty"` 17167 // Name - READ-ONLY; Resource name associated with the resource. 17168 Name *string `json:"name,omitempty"` 17169 // Type - READ-ONLY; Resource type represents the complete path of the form Namespace/ResourceType/ResourceType/... 17170 Type *string `json:"type,omitempty"` 17171 // Location - Resource location. 17172 Location *string `json:"location,omitempty"` 17173 // Tags - Resource tags. 17174 Tags map[string]*string `json:"tags"` 17175 // ETag - Optional ETag. 17176 ETag *string `json:"eTag,omitempty"` 17177} 17178 17179// MarshalJSON is the custom marshaler for RecoveryPointResource. 17180func (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// UnmarshalJSON is the custom unmarshaler for RecoveryPointResource struct. 17196func (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// RecoveryPointResourceList list of RecoveryPoint resources 17273type RecoveryPointResourceList struct { 17274 autorest.Response `json:"-"` 17275 // Value - List of resources. 17276 Value *[]RecoveryPointResource `json:"value,omitempty"` 17277 // NextLink - The uri to fetch the next page of resources. Call ListNext() fetches next page of resources. 17278 NextLink *string `json:"nextLink,omitempty"` 17279} 17280 17281// RecoveryPointResourceListIterator provides access to a complete listing of RecoveryPointResource values. 17282type RecoveryPointResourceListIterator struct { 17283 i int 17284 page RecoveryPointResourceListPage 17285} 17286 17287// NextWithContext advances to the next value. If there was an error making 17288// the request the iterator does not advance and the error is returned. 17289func (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// Next advances to the next value. If there was an error making 17314// the request the iterator does not advance and the error is returned. 17315// Deprecated: Use NextWithContext() instead. 17316func (iter *RecoveryPointResourceListIterator) Next() error { 17317 return iter.NextWithContext(context.Background()) 17318} 17319 17320// NotDone returns true if the enumeration should be started or is not yet complete. 17321func (iter RecoveryPointResourceListIterator) NotDone() bool { 17322 return iter.page.NotDone() && iter.i < len(iter.page.Values()) 17323} 17324 17325// Response returns the raw server response from the last page request. 17326func (iter RecoveryPointResourceListIterator) Response() RecoveryPointResourceList { 17327 return iter.page.Response() 17328} 17329 17330// Value returns the current value or a zero-initialized value if the 17331// iterator has advanced beyond the end of the collection. 17332func (iter RecoveryPointResourceListIterator) Value() RecoveryPointResource { 17333 if !iter.page.NotDone() { 17334 return RecoveryPointResource{} 17335 } 17336 return iter.page.Values()[iter.i] 17337} 17338 17339// Creates a new instance of the RecoveryPointResourceListIterator type. 17340func NewRecoveryPointResourceListIterator(page RecoveryPointResourceListPage) RecoveryPointResourceListIterator { 17341 return RecoveryPointResourceListIterator{page: page} 17342} 17343 17344// IsEmpty returns true if the ListResult contains no values. 17345func (rprl RecoveryPointResourceList) IsEmpty() bool { 17346 return rprl.Value == nil || len(*rprl.Value) == 0 17347} 17348 17349// hasNextLink returns true if the NextLink is not empty. 17350func (rprl RecoveryPointResourceList) hasNextLink() bool { 17351 return rprl.NextLink != nil && len(*rprl.NextLink) != 0 17352} 17353 17354// recoveryPointResourceListPreparer prepares a request to retrieve the next set of results. 17355// It returns nil if no more results exist. 17356func (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// RecoveryPointResourceListPage contains a page of RecoveryPointResource values. 17367type RecoveryPointResourceListPage struct { 17368 fn func(context.Context, RecoveryPointResourceList) (RecoveryPointResourceList, error) 17369 rprl RecoveryPointResourceList 17370} 17371 17372// NextWithContext advances to the next page of values. If there was an error making 17373// the request the page does not advance and the error is returned. 17374func (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// Next advances to the next page of values. If there was an error making 17399// the request the page does not advance and the error is returned. 17400// Deprecated: Use NextWithContext() instead. 17401func (page *RecoveryPointResourceListPage) Next() error { 17402 return page.NextWithContext(context.Background()) 17403} 17404 17405// NotDone returns true if the page enumeration should be started or is not yet complete. 17406func (page RecoveryPointResourceListPage) NotDone() bool { 17407 return !page.rprl.IsEmpty() 17408} 17409 17410// Response returns the raw server response from the last page request. 17411func (page RecoveryPointResourceListPage) Response() RecoveryPointResourceList { 17412 return page.rprl 17413} 17414 17415// Values returns the slice of values for the current page or nil if there are no values. 17416func (page RecoveryPointResourceListPage) Values() []RecoveryPointResource { 17417 if page.rprl.IsEmpty() { 17418 return nil 17419 } 17420 return *page.rprl.Value 17421} 17422 17423// Creates a new instance of the RecoveryPointResourceListPage type. 17424func NewRecoveryPointResourceListPage(cur RecoveryPointResourceList, getNextPage func(context.Context, RecoveryPointResourceList) (RecoveryPointResourceList, error)) RecoveryPointResourceListPage { 17425 return RecoveryPointResourceListPage{ 17426 fn: getNextPage, 17427 rprl: cur, 17428 } 17429} 17430 17431// RecoveryPointTierInformation recovery point tier information. 17432type RecoveryPointTierInformation struct { 17433 // Type - Recovery point tier type. Possible values include: 'RecoveryPointTierTypeInvalid', 'RecoveryPointTierTypeInstantRP', 'RecoveryPointTierTypeHardenedRP' 17434 Type RecoveryPointTierType `json:"type,omitempty"` 17435 // Status - Recovery point tier status. Possible values include: 'RecoveryPointTierStatusInvalid', 'RecoveryPointTierStatusValid', 'RecoveryPointTierStatusDisabled', 'RecoveryPointTierStatusDeleted' 17436 Status RecoveryPointTierStatus `json:"status,omitempty"` 17437} 17438 17439// BasicRequest base class for backup request. Workload-specific backup requests are derived from this class. 17440type BasicRequest interface { 17441 AsAzureFileShareBackupRequest() (*AzureFileShareBackupRequest, bool) 17442 AsAzureWorkloadBackupRequest() (*AzureWorkloadBackupRequest, bool) 17443 AsIaasVMBackupRequest() (*IaasVMBackupRequest, bool) 17444 AsRequest() (*Request, bool) 17445} 17446 17447// Request base class for backup request. Workload-specific backup requests are derived from this class. 17448type Request struct { 17449 // ObjectType - Possible values include: 'ObjectTypeBackupRequest', 'ObjectTypeAzureFileShareBackupRequest', 'ObjectTypeAzureWorkloadBackupRequest', 'ObjectTypeIaasVMBackupRequest' 17450 ObjectType ObjectTypeBasicRequest `json:"objectType,omitempty"` 17451} 17452 17453func 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} 17479func 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// MarshalJSON is the custom marshaler for Request. 17499func (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// AsAzureFileShareBackupRequest is the BasicRequest implementation for Request. 17509func (r Request) AsAzureFileShareBackupRequest() (*AzureFileShareBackupRequest, bool) { 17510 return nil, false 17511} 17512 17513// AsAzureWorkloadBackupRequest is the BasicRequest implementation for Request. 17514func (r Request) AsAzureWorkloadBackupRequest() (*AzureWorkloadBackupRequest, bool) { 17515 return nil, false 17516} 17517 17518// AsIaasVMBackupRequest is the BasicRequest implementation for Request. 17519func (r Request) AsIaasVMBackupRequest() (*IaasVMBackupRequest, bool) { 17520 return nil, false 17521} 17522 17523// AsRequest is the BasicRequest implementation for Request. 17524func (r Request) AsRequest() (*Request, bool) { 17525 return &r, true 17526} 17527 17528// AsBasicRequest is the BasicRequest implementation for Request. 17529func (r Request) AsBasicRequest() (BasicRequest, bool) { 17530 return &r, true 17531} 17532 17533// RequestResource base class for backup request. Workload-specific backup requests are derived from this 17534// class. 17535type RequestResource struct { 17536 // Properties - BackupRequestResource properties 17537 Properties BasicRequest `json:"properties,omitempty"` 17538 // ID - READ-ONLY; Resource Id represents the complete path to the resource. 17539 ID *string `json:"id,omitempty"` 17540 // Name - READ-ONLY; Resource name associated with the resource. 17541 Name *string `json:"name,omitempty"` 17542 // Type - READ-ONLY; Resource type represents the complete path of the form Namespace/ResourceType/ResourceType/... 17543 Type *string `json:"type,omitempty"` 17544 // Location - Resource location. 17545 Location *string `json:"location,omitempty"` 17546 // Tags - Resource tags. 17547 Tags map[string]*string `json:"tags"` 17548 // ETag - Optional ETag. 17549 ETag *string `json:"eTag,omitempty"` 17550} 17551 17552// MarshalJSON is the custom marshaler for RequestResource. 17553func (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// UnmarshalJSON is the custom unmarshaler for RequestResource struct. 17569func (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// Resource ARM Resource. 17646type Resource struct { 17647 // ID - READ-ONLY; Resource Id represents the complete path to the resource. 17648 ID *string `json:"id,omitempty"` 17649 // Name - READ-ONLY; Resource name associated with the resource. 17650 Name *string `json:"name,omitempty"` 17651 // Type - READ-ONLY; Resource type represents the complete path of the form Namespace/ResourceType/ResourceType/... 17652 Type *string `json:"type,omitempty"` 17653 // Location - Resource location. 17654 Location *string `json:"location,omitempty"` 17655 // Tags - Resource tags. 17656 Tags map[string]*string `json:"tags"` 17657 // ETag - Optional ETag. 17658 ETag *string `json:"eTag,omitempty"` 17659} 17660 17661// MarshalJSON is the custom marshaler for Resource. 17662func (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// ResourceConfig the resource storage details. 17677type ResourceConfig struct { 17678 // StorageModelType - Storage type. Possible values include: 'StorageTypeInvalid', 'StorageTypeGeoRedundant', 'StorageTypeLocallyRedundant' 17679 StorageModelType StorageType `json:"storageModelType,omitempty"` 17680 // StorageType - Storage type. Possible values include: 'StorageTypeInvalid', 'StorageTypeGeoRedundant', 'StorageTypeLocallyRedundant' 17681 StorageType StorageType `json:"storageType,omitempty"` 17682 // StorageTypeState - Locked or Unlocked. Once a machine is registered against a resource, the storageTypeState is always Locked. Possible values include: 'StorageTypeStateInvalid', 'StorageTypeStateLocked', 'StorageTypeStateUnlocked' 17683 StorageTypeState StorageTypeState `json:"storageTypeState,omitempty"` 17684} 17685 17686// ResourceConfigResource the resource storage details. 17687type ResourceConfigResource struct { 17688 autorest.Response `json:"-"` 17689 // Properties - BackupResourceConfigResource properties 17690 Properties *ResourceConfig `json:"properties,omitempty"` 17691 // ID - READ-ONLY; Resource Id represents the complete path to the resource. 17692 ID *string `json:"id,omitempty"` 17693 // Name - READ-ONLY; Resource name associated with the resource. 17694 Name *string `json:"name,omitempty"` 17695 // Type - READ-ONLY; Resource type represents the complete path of the form Namespace/ResourceType/ResourceType/... 17696 Type *string `json:"type,omitempty"` 17697 // Location - Resource location. 17698 Location *string `json:"location,omitempty"` 17699 // Tags - Resource tags. 17700 Tags map[string]*string `json:"tags"` 17701 // ETag - Optional ETag. 17702 ETag *string `json:"eTag,omitempty"` 17703} 17704 17705// MarshalJSON is the custom marshaler for ResourceConfigResource. 17706func (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// ResourceHealthDetails health Details for backup items. 17724type ResourceHealthDetails struct { 17725 // Code - READ-ONLY; Health Code 17726 Code *int32 `json:"code,omitempty"` 17727 // Title - READ-ONLY; Health Title 17728 Title *string `json:"title,omitempty"` 17729 // Message - READ-ONLY; Health Message 17730 Message *string `json:"message,omitempty"` 17731 // Recommendations - READ-ONLY; Health Recommended Actions 17732 Recommendations *[]string `json:"recommendations,omitempty"` 17733} 17734 17735// MarshalJSON is the custom marshaler for ResourceHealthDetails. 17736func (rhd ResourceHealthDetails) MarshalJSON() ([]byte, error) { 17737 objectMap := make(map[string]interface{}) 17738 return json.Marshal(objectMap) 17739} 17740 17741// ResourceList base for all lists of resources. 17742type ResourceList struct { 17743 // NextLink - The uri to fetch the next page of resources. Call ListNext() fetches next page of resources. 17744 NextLink *string `json:"nextLink,omitempty"` 17745} 17746 17747// ResourceVaultConfig backup resource vault config details. 17748type ResourceVaultConfig struct { 17749 // StorageModelType - Storage type. Possible values include: 'StorageTypeInvalid', 'StorageTypeGeoRedundant', 'StorageTypeLocallyRedundant' 17750 StorageModelType StorageType `json:"storageModelType,omitempty"` 17751 // StorageType - Storage type. Possible values include: 'StorageTypeInvalid', 'StorageTypeGeoRedundant', 'StorageTypeLocallyRedundant' 17752 StorageType StorageType `json:"storageType,omitempty"` 17753 // StorageTypeState - Locked or Unlocked. Once a machine is registered against a resource, the storageTypeState is always Locked. Possible values include: 'StorageTypeStateInvalid', 'StorageTypeStateLocked', 'StorageTypeStateUnlocked' 17754 StorageTypeState StorageTypeState `json:"storageTypeState,omitempty"` 17755 // EnhancedSecurityState - Enabled or Disabled. Possible values include: 'EnhancedSecurityStateInvalid', 'EnhancedSecurityStateEnabled', 'EnhancedSecurityStateDisabled' 17756 EnhancedSecurityState EnhancedSecurityState `json:"enhancedSecurityState,omitempty"` 17757 // SoftDeleteFeatureState - Soft Delete feature state. Possible values include: 'SoftDeleteFeatureStateInvalid', 'SoftDeleteFeatureStateEnabled', 'SoftDeleteFeatureStateDisabled' 17758 SoftDeleteFeatureState SoftDeleteFeatureState `json:"softDeleteFeatureState,omitempty"` 17759} 17760 17761// ResourceVaultConfigResource backup resource vault config details. 17762type ResourceVaultConfigResource struct { 17763 autorest.Response `json:"-"` 17764 // Properties - BackupResourceVaultConfigResource properties 17765 Properties *ResourceVaultConfig `json:"properties,omitempty"` 17766 // ID - READ-ONLY; Resource Id represents the complete path to the resource. 17767 ID *string `json:"id,omitempty"` 17768 // Name - READ-ONLY; Resource name associated with the resource. 17769 Name *string `json:"name,omitempty"` 17770 // Type - READ-ONLY; Resource type represents the complete path of the form Namespace/ResourceType/ResourceType/... 17771 Type *string `json:"type,omitempty"` 17772 // Location - Resource location. 17773 Location *string `json:"location,omitempty"` 17774 // Tags - Resource tags. 17775 Tags map[string]*string `json:"tags"` 17776 // ETag - Optional ETag. 17777 ETag *string `json:"eTag,omitempty"` 17778} 17779 17780// MarshalJSON is the custom marshaler for ResourceVaultConfigResource. 17781func (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// RestoreFileSpecs restore file specs like file path, type and target folder path info. 17799type RestoreFileSpecs struct { 17800 // Path - Source File/Folder path 17801 Path *string `json:"path,omitempty"` 17802 // FileSpecType - Indicates what the Path variable stands for 17803 FileSpecType *string `json:"fileSpecType,omitempty"` 17804 // TargetFolderPath - Destination folder path in target FileShare 17805 TargetFolderPath *string `json:"targetFolderPath,omitempty"` 17806} 17807 17808// BasicRestoreRequest base class for restore request. Workload-specific restore requests are derived from this class. 17809type 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// RestoreRequest base class for restore request. Workload-specific restore requests are derived from this 17825// class. 17826type RestoreRequest struct { 17827 // ObjectType - Possible values include: 'ObjectTypeRestoreRequest', 'ObjectTypeAzureFileShareRestoreRequest', 'ObjectTypeAzureWorkloadPointInTimeRestoreRequest', 'ObjectTypeAzureWorkloadRestoreRequest', 'ObjectTypeAzureWorkloadSAPHanaPointInTimeRestoreRequest', 'ObjectTypeAzureWorkloadSAPHanaRestoreRequest', 'ObjectTypeAzureWorkloadSQLPointInTimeRestoreRequest', 'ObjectTypeAzureWorkloadSQLRestoreRequest', 'ObjectTypeIaasVMRestoreRequest' 17828 ObjectType ObjectTypeBasicRestoreRequest `json:"objectType,omitempty"` 17829} 17830 17831func 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} 17877func 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// MarshalJSON is the custom marshaler for RestoreRequest. 17897func (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// AsAzureFileShareRestoreRequest is the BasicRestoreRequest implementation for RestoreRequest. 17907func (rr RestoreRequest) AsAzureFileShareRestoreRequest() (*AzureFileShareRestoreRequest, bool) { 17908 return nil, false 17909} 17910 17911// AsAzureWorkloadPointInTimeRestoreRequest is the BasicRestoreRequest implementation for RestoreRequest. 17912func (rr RestoreRequest) AsAzureWorkloadPointInTimeRestoreRequest() (*AzureWorkloadPointInTimeRestoreRequest, bool) { 17913 return nil, false 17914} 17915 17916// AsAzureWorkloadRestoreRequest is the BasicRestoreRequest implementation for RestoreRequest. 17917func (rr RestoreRequest) AsAzureWorkloadRestoreRequest() (*AzureWorkloadRestoreRequest, bool) { 17918 return nil, false 17919} 17920 17921// AsBasicAzureWorkloadRestoreRequest is the BasicRestoreRequest implementation for RestoreRequest. 17922func (rr RestoreRequest) AsBasicAzureWorkloadRestoreRequest() (BasicAzureWorkloadRestoreRequest, bool) { 17923 return nil, false 17924} 17925 17926// AsAzureWorkloadSAPHanaPointInTimeRestoreRequest is the BasicRestoreRequest implementation for RestoreRequest. 17927func (rr RestoreRequest) AsAzureWorkloadSAPHanaPointInTimeRestoreRequest() (*AzureWorkloadSAPHanaPointInTimeRestoreRequest, bool) { 17928 return nil, false 17929} 17930 17931// AsAzureWorkloadSAPHanaRestoreRequest is the BasicRestoreRequest implementation for RestoreRequest. 17932func (rr RestoreRequest) AsAzureWorkloadSAPHanaRestoreRequest() (*AzureWorkloadSAPHanaRestoreRequest, bool) { 17933 return nil, false 17934} 17935 17936// AsBasicAzureWorkloadSAPHanaRestoreRequest is the BasicRestoreRequest implementation for RestoreRequest. 17937func (rr RestoreRequest) AsBasicAzureWorkloadSAPHanaRestoreRequest() (BasicAzureWorkloadSAPHanaRestoreRequest, bool) { 17938 return nil, false 17939} 17940 17941// AsAzureWorkloadSQLPointInTimeRestoreRequest is the BasicRestoreRequest implementation for RestoreRequest. 17942func (rr RestoreRequest) AsAzureWorkloadSQLPointInTimeRestoreRequest() (*AzureWorkloadSQLPointInTimeRestoreRequest, bool) { 17943 return nil, false 17944} 17945 17946// AsAzureWorkloadSQLRestoreRequest is the BasicRestoreRequest implementation for RestoreRequest. 17947func (rr RestoreRequest) AsAzureWorkloadSQLRestoreRequest() (*AzureWorkloadSQLRestoreRequest, bool) { 17948 return nil, false 17949} 17950 17951// AsBasicAzureWorkloadSQLRestoreRequest is the BasicRestoreRequest implementation for RestoreRequest. 17952func (rr RestoreRequest) AsBasicAzureWorkloadSQLRestoreRequest() (BasicAzureWorkloadSQLRestoreRequest, bool) { 17953 return nil, false 17954} 17955 17956// AsIaasVMRestoreRequest is the BasicRestoreRequest implementation for RestoreRequest. 17957func (rr RestoreRequest) AsIaasVMRestoreRequest() (*IaasVMRestoreRequest, bool) { 17958 return nil, false 17959} 17960 17961// AsRestoreRequest is the BasicRestoreRequest implementation for RestoreRequest. 17962func (rr RestoreRequest) AsRestoreRequest() (*RestoreRequest, bool) { 17963 return &rr, true 17964} 17965 17966// AsBasicRestoreRequest is the BasicRestoreRequest implementation for RestoreRequest. 17967func (rr RestoreRequest) AsBasicRestoreRequest() (BasicRestoreRequest, bool) { 17968 return &rr, true 17969} 17970 17971// RestoreRequestResource base class for restore request. Workload-specific restore requests are derived 17972// from this class. 17973type RestoreRequestResource struct { 17974 // Properties - RestoreRequestResource properties 17975 Properties BasicRestoreRequest `json:"properties,omitempty"` 17976 // ID - READ-ONLY; Resource Id represents the complete path to the resource. 17977 ID *string `json:"id,omitempty"` 17978 // Name - READ-ONLY; Resource name associated with the resource. 17979 Name *string `json:"name,omitempty"` 17980 // Type - READ-ONLY; Resource type represents the complete path of the form Namespace/ResourceType/ResourceType/... 17981 Type *string `json:"type,omitempty"` 17982 // Location - Resource location. 17983 Location *string `json:"location,omitempty"` 17984 // Tags - Resource tags. 17985 Tags map[string]*string `json:"tags"` 17986 // ETag - Optional ETag. 17987 ETag *string `json:"eTag,omitempty"` 17988} 17989 17990// MarshalJSON is the custom marshaler for RestoreRequestResource. 17991func (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// UnmarshalJSON is the custom unmarshaler for RestoreRequestResource struct. 18007func (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// RetentionDuration retention duration. 18084type RetentionDuration struct { 18085 // Count - Count of duration types. Retention duration is obtained by the counting the duration type Count times. 18086 // For example, when Count = 3 and DurationType = Weeks, retention duration will be three weeks. 18087 Count *int32 `json:"count,omitempty"` 18088 // DurationType - Retention duration type of retention policy. Possible values include: 'RetentionDurationTypeInvalid', 'RetentionDurationTypeDays', 'RetentionDurationTypeWeeks', 'RetentionDurationTypeMonths', 'RetentionDurationTypeYears' 18089 DurationType RetentionDurationType `json:"durationType,omitempty"` 18090} 18091 18092// BasicRetentionPolicy base class for retention policy. 18093type BasicRetentionPolicy interface { 18094 AsLongTermRetentionPolicy() (*LongTermRetentionPolicy, bool) 18095 AsSimpleRetentionPolicy() (*SimpleRetentionPolicy, bool) 18096 AsRetentionPolicy() (*RetentionPolicy, bool) 18097} 18098 18099// RetentionPolicy base class for retention policy. 18100type RetentionPolicy struct { 18101 // RetentionPolicyType - Possible values include: 'RetentionPolicyTypeRetentionPolicy', 'RetentionPolicyTypeLongTermRetentionPolicy', 'RetentionPolicyTypeSimpleRetentionPolicy' 18102 RetentionPolicyType RetentionPolicyType `json:"retentionPolicyType,omitempty"` 18103} 18104 18105func 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} 18127func 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// MarshalJSON is the custom marshaler for RetentionPolicy. 18147func (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// AsLongTermRetentionPolicy is the BasicRetentionPolicy implementation for RetentionPolicy. 18157func (rp RetentionPolicy) AsLongTermRetentionPolicy() (*LongTermRetentionPolicy, bool) { 18158 return nil, false 18159} 18160 18161// AsSimpleRetentionPolicy is the BasicRetentionPolicy implementation for RetentionPolicy. 18162func (rp RetentionPolicy) AsSimpleRetentionPolicy() (*SimpleRetentionPolicy, bool) { 18163 return nil, false 18164} 18165 18166// AsRetentionPolicy is the BasicRetentionPolicy implementation for RetentionPolicy. 18167func (rp RetentionPolicy) AsRetentionPolicy() (*RetentionPolicy, bool) { 18168 return &rp, true 18169} 18170 18171// AsBasicRetentionPolicy is the BasicRetentionPolicy implementation for RetentionPolicy. 18172func (rp RetentionPolicy) AsBasicRetentionPolicy() (BasicRetentionPolicy, bool) { 18173 return &rp, true 18174} 18175 18176// BasicSchedulePolicy base class for backup schedule. 18177type BasicSchedulePolicy interface { 18178 AsLogSchedulePolicy() (*LogSchedulePolicy, bool) 18179 AsLongTermSchedulePolicy() (*LongTermSchedulePolicy, bool) 18180 AsSimpleSchedulePolicy() (*SimpleSchedulePolicy, bool) 18181 AsSchedulePolicy() (*SchedulePolicy, bool) 18182} 18183 18184// SchedulePolicy base class for backup schedule. 18185type SchedulePolicy struct { 18186 // SchedulePolicyType - Possible values include: 'SchedulePolicyTypeSchedulePolicy', 'SchedulePolicyTypeLogSchedulePolicy', 'SchedulePolicyTypeLongTermSchedulePolicy', 'SchedulePolicyTypeSimpleSchedulePolicy' 18187 SchedulePolicyType SchedulePolicyType `json:"schedulePolicyType,omitempty"` 18188} 18189 18190func 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} 18216func 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// MarshalJSON is the custom marshaler for SchedulePolicy. 18236func (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// AsLogSchedulePolicy is the BasicSchedulePolicy implementation for SchedulePolicy. 18246func (sp SchedulePolicy) AsLogSchedulePolicy() (*LogSchedulePolicy, bool) { 18247 return nil, false 18248} 18249 18250// AsLongTermSchedulePolicy is the BasicSchedulePolicy implementation for SchedulePolicy. 18251func (sp SchedulePolicy) AsLongTermSchedulePolicy() (*LongTermSchedulePolicy, bool) { 18252 return nil, false 18253} 18254 18255// AsSimpleSchedulePolicy is the BasicSchedulePolicy implementation for SchedulePolicy. 18256func (sp SchedulePolicy) AsSimpleSchedulePolicy() (*SimpleSchedulePolicy, bool) { 18257 return nil, false 18258} 18259 18260// AsSchedulePolicy is the BasicSchedulePolicy implementation for SchedulePolicy. 18261func (sp SchedulePolicy) AsSchedulePolicy() (*SchedulePolicy, bool) { 18262 return &sp, true 18263} 18264 18265// AsBasicSchedulePolicy is the BasicSchedulePolicy implementation for SchedulePolicy. 18266func (sp SchedulePolicy) AsBasicSchedulePolicy() (BasicSchedulePolicy, bool) { 18267 return &sp, true 18268} 18269 18270// Settings common settings field for backup management 18271type Settings struct { 18272 // TimeZone - TimeZone optional input as string. For example: TimeZone = "Pacific Standard Time". 18273 TimeZone *string `json:"timeZone,omitempty"` 18274 // Issqlcompression - SQL compression flag 18275 Issqlcompression *bool `json:"issqlcompression,omitempty"` 18276 // IsCompression - Workload compression flag. This has been added so that 'isSqlCompression' 18277 // will be deprecated once clients upgrade to consider this flag. 18278 IsCompression *bool `json:"isCompression,omitempty"` 18279} 18280 18281// SimpleRetentionPolicy simple policy retention. 18282type SimpleRetentionPolicy struct { 18283 // RetentionDuration - Retention duration of the protection policy. 18284 RetentionDuration *RetentionDuration `json:"retentionDuration,omitempty"` 18285 // RetentionPolicyType - Possible values include: 'RetentionPolicyTypeRetentionPolicy', 'RetentionPolicyTypeLongTermRetentionPolicy', 'RetentionPolicyTypeSimpleRetentionPolicy' 18286 RetentionPolicyType RetentionPolicyType `json:"retentionPolicyType,omitempty"` 18287} 18288 18289// MarshalJSON is the custom marshaler for SimpleRetentionPolicy. 18290func (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// AsLongTermRetentionPolicy is the BasicRetentionPolicy implementation for SimpleRetentionPolicy. 18303func (srp SimpleRetentionPolicy) AsLongTermRetentionPolicy() (*LongTermRetentionPolicy, bool) { 18304 return nil, false 18305} 18306 18307// AsSimpleRetentionPolicy is the BasicRetentionPolicy implementation for SimpleRetentionPolicy. 18308func (srp SimpleRetentionPolicy) AsSimpleRetentionPolicy() (*SimpleRetentionPolicy, bool) { 18309 return &srp, true 18310} 18311 18312// AsRetentionPolicy is the BasicRetentionPolicy implementation for SimpleRetentionPolicy. 18313func (srp SimpleRetentionPolicy) AsRetentionPolicy() (*RetentionPolicy, bool) { 18314 return nil, false 18315} 18316 18317// AsBasicRetentionPolicy is the BasicRetentionPolicy implementation for SimpleRetentionPolicy. 18318func (srp SimpleRetentionPolicy) AsBasicRetentionPolicy() (BasicRetentionPolicy, bool) { 18319 return &srp, true 18320} 18321 18322// SimpleSchedulePolicy simple policy schedule. 18323type SimpleSchedulePolicy struct { 18324 // ScheduleRunFrequency - Frequency of the schedule operation of this policy. Possible values include: 'ScheduleRunTypeInvalid', 'ScheduleRunTypeDaily', 'ScheduleRunTypeWeekly' 18325 ScheduleRunFrequency ScheduleRunType `json:"scheduleRunFrequency,omitempty"` 18326 // ScheduleRunDays - List of days of week this schedule has to be run. 18327 ScheduleRunDays *[]DayOfWeek `json:"scheduleRunDays,omitempty"` 18328 // ScheduleRunTimes - List of times of day this schedule has to be run. 18329 ScheduleRunTimes *[]date.Time `json:"scheduleRunTimes,omitempty"` 18330 // ScheduleWeeklyFrequency - At every number weeks this schedule has to be run. 18331 ScheduleWeeklyFrequency *int32 `json:"scheduleWeeklyFrequency,omitempty"` 18332 // SchedulePolicyType - Possible values include: 'SchedulePolicyTypeSchedulePolicy', 'SchedulePolicyTypeLogSchedulePolicy', 'SchedulePolicyTypeLongTermSchedulePolicy', 'SchedulePolicyTypeSimpleSchedulePolicy' 18333 SchedulePolicyType SchedulePolicyType `json:"schedulePolicyType,omitempty"` 18334} 18335 18336// MarshalJSON is the custom marshaler for SimpleSchedulePolicy. 18337func (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// AsLogSchedulePolicy is the BasicSchedulePolicy implementation for SimpleSchedulePolicy. 18359func (ssp SimpleSchedulePolicy) AsLogSchedulePolicy() (*LogSchedulePolicy, bool) { 18360 return nil, false 18361} 18362 18363// AsLongTermSchedulePolicy is the BasicSchedulePolicy implementation for SimpleSchedulePolicy. 18364func (ssp SimpleSchedulePolicy) AsLongTermSchedulePolicy() (*LongTermSchedulePolicy, bool) { 18365 return nil, false 18366} 18367 18368// AsSimpleSchedulePolicy is the BasicSchedulePolicy implementation for SimpleSchedulePolicy. 18369func (ssp SimpleSchedulePolicy) AsSimpleSchedulePolicy() (*SimpleSchedulePolicy, bool) { 18370 return &ssp, true 18371} 18372 18373// AsSchedulePolicy is the BasicSchedulePolicy implementation for SimpleSchedulePolicy. 18374func (ssp SimpleSchedulePolicy) AsSchedulePolicy() (*SchedulePolicy, bool) { 18375 return nil, false 18376} 18377 18378// AsBasicSchedulePolicy is the BasicSchedulePolicy implementation for SimpleSchedulePolicy. 18379func (ssp SimpleSchedulePolicy) AsBasicSchedulePolicy() (BasicSchedulePolicy, bool) { 18380 return &ssp, true 18381} 18382 18383// SQLDataDirectory sQLDataDirectory info 18384type SQLDataDirectory struct { 18385 // Type - Type of data directory mapping. Possible values include: 'SQLDataDirectoryTypeInvalid', 'SQLDataDirectoryTypeData', 'SQLDataDirectoryTypeLog' 18386 Type SQLDataDirectoryType `json:"type,omitempty"` 18387 // Path - File path 18388 Path *string `json:"path,omitempty"` 18389 // LogicalName - Logical name of the file 18390 LogicalName *string `json:"logicalName,omitempty"` 18391} 18392 18393// SQLDataDirectoryMapping encapsulates information regarding data directory 18394type SQLDataDirectoryMapping struct { 18395 // MappingType - Type of data directory mapping. Possible values include: 'SQLDataDirectoryTypeInvalid', 'SQLDataDirectoryTypeData', 'SQLDataDirectoryTypeLog' 18396 MappingType SQLDataDirectoryType `json:"mappingType,omitempty"` 18397 // SourceLogicalName - Restore source logical name path 18398 SourceLogicalName *string `json:"sourceLogicalName,omitempty"` 18399 // SourcePath - Restore source path 18400 SourcePath *string `json:"sourcePath,omitempty"` 18401 // TargetPath - Target path 18402 TargetPath *string `json:"targetPath,omitempty"` 18403} 18404 18405// StatusRequest backupStatus request. 18406type StatusRequest struct { 18407 // ResourceType - Container Type - VM, SQLPaaS, DPM, AzureFileShare. Possible values include: 'DataSourceTypeInvalid', 'DataSourceTypeVM', 'DataSourceTypeFileFolder', 'DataSourceTypeAzureSQLDb', 'DataSourceTypeSQLDB', 'DataSourceTypeExchange', 'DataSourceTypeSharepoint', 'DataSourceTypeVMwareVM', 'DataSourceTypeSystemState', 'DataSourceTypeClient', 'DataSourceTypeGenericDataSource', 'DataSourceTypeSQLDataBase', 'DataSourceTypeAzureFileShare', 'DataSourceTypeSAPHanaDatabase', 'DataSourceTypeSAPAseDatabase' 18408 ResourceType DataSourceType `json:"resourceType,omitempty"` 18409 // ResourceID - Entire ARM resource id of the resource 18410 ResourceID *string `json:"resourceId,omitempty"` 18411 // PoLogicalName - Protectable Item Logical Name 18412 PoLogicalName *string `json:"poLogicalName,omitempty"` 18413} 18414 18415// StatusResponse backupStatus response. 18416type StatusResponse struct { 18417 autorest.Response `json:"-"` 18418 // ProtectionStatus - Specifies whether the container is registered or not. Possible values include: 'ProtectionStatusInvalid', 'ProtectionStatusNotProtected', 'ProtectionStatusProtecting', 'ProtectionStatusProtected', 'ProtectionStatusProtectionFailed' 18419 ProtectionStatus ProtectionStatus `json:"protectionStatus,omitempty"` 18420 // VaultID - Specifies the arm resource id of the vault 18421 VaultID *string `json:"vaultId,omitempty"` 18422 // FabricName - Specifies the fabric name - Azure or AD. Possible values include: 'FabricNameInvalid', 'FabricNameAzure' 18423 FabricName FabricName `json:"fabricName,omitempty"` 18424 // ContainerName - Specifies the product specific container name. E.g. iaasvmcontainer;iaasvmcontainer;csname;vmname. 18425 ContainerName *string `json:"containerName,omitempty"` 18426 // ProtectedItemName - Specifies the product specific ds name. E.g. vm;iaasvmcontainer;csname;vmname. 18427 ProtectedItemName *string `json:"protectedItemName,omitempty"` 18428 // ErrorCode - ErrorCode in case of intent failed 18429 ErrorCode *string `json:"errorCode,omitempty"` 18430 // ErrorMessage - ErrorMessage in case of intent failed. 18431 ErrorMessage *string `json:"errorMessage,omitempty"` 18432 // PolicyName - Specifies the policy name which is used for protection 18433 PolicyName *string `json:"policyName,omitempty"` 18434 // RegistrationStatus - Container registration status 18435 RegistrationStatus *string `json:"registrationStatus,omitempty"` 18436} 18437 18438// SubProtectionPolicy sub-protection policy which includes schedule and retention 18439type SubProtectionPolicy struct { 18440 // PolicyType - Type of backup policy type. Possible values include: 'PolicyTypeInvalid', 'PolicyTypeFull', 'PolicyTypeDifferential', 'PolicyTypeLog', 'PolicyTypeCopyOnlyFull' 18441 PolicyType PolicyType `json:"policyType,omitempty"` 18442 // SchedulePolicy - Backup schedule specified as part of backup policy. 18443 SchedulePolicy BasicSchedulePolicy `json:"schedulePolicy,omitempty"` 18444 // RetentionPolicy - Retention policy with the details on backup copy retention ranges. 18445 RetentionPolicy BasicRetentionPolicy `json:"retentionPolicy,omitempty"` 18446} 18447 18448// UnmarshalJSON is the custom unmarshaler for SubProtectionPolicy struct. 18449func (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// TargetAFSRestoreInfo target Azure File Share Info. 18489type TargetAFSRestoreInfo struct { 18490 // Name - File share name 18491 Name *string `json:"name,omitempty"` 18492 // TargetResourceID - Target file share resource ARM ID 18493 TargetResourceID *string `json:"targetResourceId,omitempty"` 18494} 18495 18496// TargetRestoreInfo details about target workload during restore operation. 18497type TargetRestoreInfo struct { 18498 // OverwriteOption - Can Overwrite if Target DataBase already exists. Possible values include: 'OverwriteOptionsInvalid', 'OverwriteOptionsFailOnConflict', 'OverwriteOptionsOverwrite' 18499 OverwriteOption OverwriteOptions `json:"overwriteOption,omitempty"` 18500 // ContainerID - Resource Id name of the container in which Target DataBase resides 18501 ContainerID *string `json:"containerId,omitempty"` 18502 // DatabaseName - Database name InstanceName/DataBaseName for SQL or System/DbName for SAP Hana 18503 DatabaseName *string `json:"databaseName,omitempty"` 18504 // TargetDirectoryForFileRestore - Target directory location for restore as files. 18505 TargetDirectoryForFileRestore *string `json:"targetDirectoryForFileRestore,omitempty"` 18506} 18507 18508// TokenInformation the token information details. 18509type TokenInformation struct { 18510 autorest.Response `json:"-"` 18511 // Token - Token value. 18512 Token *string `json:"token,omitempty"` 18513 // ExpiryTimeInUtcTicks - Expiry time of token. 18514 ExpiryTimeInUtcTicks *int64 `json:"expiryTimeInUtcTicks,omitempty"` 18515 // SecurityPIN - Security PIN 18516 SecurityPIN *string `json:"securityPIN,omitempty"` 18517} 18518 18519// ValidateIaasVMRestoreOperationRequest azureRestoreValidation request. 18520type ValidateIaasVMRestoreOperationRequest struct { 18521 // RestoreRequest - Sets restore request to be validated 18522 RestoreRequest BasicRestoreRequest `json:"restoreRequest,omitempty"` 18523 // ObjectType - Possible values include: 'ObjectTypeValidateOperationRequest', 'ObjectTypeValidateIaasVMRestoreOperationRequest', 'ObjectTypeValidateRestoreOperationRequest' 18524 ObjectType ObjectTypeBasicValidateOperationRequest `json:"objectType,omitempty"` 18525} 18526 18527// MarshalJSON is the custom marshaler for ValidateIaasVMRestoreOperationRequest. 18528func (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// AsValidateIaasVMRestoreOperationRequest is the BasicValidateOperationRequest implementation for ValidateIaasVMRestoreOperationRequest. 18539func (vivror ValidateIaasVMRestoreOperationRequest) AsValidateIaasVMRestoreOperationRequest() (*ValidateIaasVMRestoreOperationRequest, bool) { 18540 return &vivror, true 18541} 18542 18543// AsValidateRestoreOperationRequest is the BasicValidateOperationRequest implementation for ValidateIaasVMRestoreOperationRequest. 18544func (vivror ValidateIaasVMRestoreOperationRequest) AsValidateRestoreOperationRequest() (*ValidateRestoreOperationRequest, bool) { 18545 return nil, false 18546} 18547 18548// AsBasicValidateRestoreOperationRequest is the BasicValidateOperationRequest implementation for ValidateIaasVMRestoreOperationRequest. 18549func (vivror ValidateIaasVMRestoreOperationRequest) AsBasicValidateRestoreOperationRequest() (BasicValidateRestoreOperationRequest, bool) { 18550 return &vivror, true 18551} 18552 18553// AsValidateOperationRequest is the BasicValidateOperationRequest implementation for ValidateIaasVMRestoreOperationRequest. 18554func (vivror ValidateIaasVMRestoreOperationRequest) AsValidateOperationRequest() (*ValidateOperationRequest, bool) { 18555 return nil, false 18556} 18557 18558// AsBasicValidateOperationRequest is the BasicValidateOperationRequest implementation for ValidateIaasVMRestoreOperationRequest. 18559func (vivror ValidateIaasVMRestoreOperationRequest) AsBasicValidateOperationRequest() (BasicValidateOperationRequest, bool) { 18560 return &vivror, true 18561} 18562 18563// UnmarshalJSON is the custom unmarshaler for ValidateIaasVMRestoreOperationRequest struct. 18564func (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// BasicValidateOperationRequest base class for validate operation request. 18596type BasicValidateOperationRequest interface { 18597 AsValidateIaasVMRestoreOperationRequest() (*ValidateIaasVMRestoreOperationRequest, bool) 18598 AsValidateRestoreOperationRequest() (*ValidateRestoreOperationRequest, bool) 18599 AsBasicValidateRestoreOperationRequest() (BasicValidateRestoreOperationRequest, bool) 18600 AsValidateOperationRequest() (*ValidateOperationRequest, bool) 18601} 18602 18603// ValidateOperationRequest base class for validate operation request. 18604type ValidateOperationRequest struct { 18605 // ObjectType - Possible values include: 'ObjectTypeValidateOperationRequest', 'ObjectTypeValidateIaasVMRestoreOperationRequest', 'ObjectTypeValidateRestoreOperationRequest' 18606 ObjectType ObjectTypeBasicValidateOperationRequest `json:"objectType,omitempty"` 18607} 18608 18609func 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} 18631func 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// MarshalJSON is the custom marshaler for ValidateOperationRequest. 18651func (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// AsValidateIaasVMRestoreOperationRequest is the BasicValidateOperationRequest implementation for ValidateOperationRequest. 18661func (vor ValidateOperationRequest) AsValidateIaasVMRestoreOperationRequest() (*ValidateIaasVMRestoreOperationRequest, bool) { 18662 return nil, false 18663} 18664 18665// AsValidateRestoreOperationRequest is the BasicValidateOperationRequest implementation for ValidateOperationRequest. 18666func (vor ValidateOperationRequest) AsValidateRestoreOperationRequest() (*ValidateRestoreOperationRequest, bool) { 18667 return nil, false 18668} 18669 18670// AsBasicValidateRestoreOperationRequest is the BasicValidateOperationRequest implementation for ValidateOperationRequest. 18671func (vor ValidateOperationRequest) AsBasicValidateRestoreOperationRequest() (BasicValidateRestoreOperationRequest, bool) { 18672 return nil, false 18673} 18674 18675// AsValidateOperationRequest is the BasicValidateOperationRequest implementation for ValidateOperationRequest. 18676func (vor ValidateOperationRequest) AsValidateOperationRequest() (*ValidateOperationRequest, bool) { 18677 return &vor, true 18678} 18679 18680// AsBasicValidateOperationRequest is the BasicValidateOperationRequest implementation for ValidateOperationRequest. 18681func (vor ValidateOperationRequest) AsBasicValidateOperationRequest() (BasicValidateOperationRequest, bool) { 18682 return &vor, true 18683} 18684 18685// ValidateOperationResponse base class for validate operation response. 18686type ValidateOperationResponse struct { 18687 // ValidationResults - Gets the validation result 18688 ValidationResults *[]ErrorDetail `json:"validationResults,omitempty"` 18689} 18690 18691// ValidateOperationsResponse ... 18692type ValidateOperationsResponse struct { 18693 autorest.Response `json:"-"` 18694 ValidateOperationResponse *ValidateOperationResponse `json:"validateOperationResponse,omitempty"` 18695} 18696 18697// BasicValidateRestoreOperationRequest azureRestoreValidation request. 18698type BasicValidateRestoreOperationRequest interface { 18699 AsValidateIaasVMRestoreOperationRequest() (*ValidateIaasVMRestoreOperationRequest, bool) 18700 AsValidateRestoreOperationRequest() (*ValidateRestoreOperationRequest, bool) 18701} 18702 18703// ValidateRestoreOperationRequest azureRestoreValidation request. 18704type ValidateRestoreOperationRequest struct { 18705 // RestoreRequest - Sets restore request to be validated 18706 RestoreRequest BasicRestoreRequest `json:"restoreRequest,omitempty"` 18707 // ObjectType - Possible values include: 'ObjectTypeValidateOperationRequest', 'ObjectTypeValidateIaasVMRestoreOperationRequest', 'ObjectTypeValidateRestoreOperationRequest' 18708 ObjectType ObjectTypeBasicValidateOperationRequest `json:"objectType,omitempty"` 18709} 18710 18711func 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} 18729func 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// MarshalJSON is the custom marshaler for ValidateRestoreOperationRequest. 18749func (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// AsValidateIaasVMRestoreOperationRequest is the BasicValidateOperationRequest implementation for ValidateRestoreOperationRequest. 18760func (vror ValidateRestoreOperationRequest) AsValidateIaasVMRestoreOperationRequest() (*ValidateIaasVMRestoreOperationRequest, bool) { 18761 return nil, false 18762} 18763 18764// AsValidateRestoreOperationRequest is the BasicValidateOperationRequest implementation for ValidateRestoreOperationRequest. 18765func (vror ValidateRestoreOperationRequest) AsValidateRestoreOperationRequest() (*ValidateRestoreOperationRequest, bool) { 18766 return &vror, true 18767} 18768 18769// AsBasicValidateRestoreOperationRequest is the BasicValidateOperationRequest implementation for ValidateRestoreOperationRequest. 18770func (vror ValidateRestoreOperationRequest) AsBasicValidateRestoreOperationRequest() (BasicValidateRestoreOperationRequest, bool) { 18771 return &vror, true 18772} 18773 18774// AsValidateOperationRequest is the BasicValidateOperationRequest implementation for ValidateRestoreOperationRequest. 18775func (vror ValidateRestoreOperationRequest) AsValidateOperationRequest() (*ValidateOperationRequest, bool) { 18776 return nil, false 18777} 18778 18779// AsBasicValidateOperationRequest is the BasicValidateOperationRequest implementation for ValidateRestoreOperationRequest. 18780func (vror ValidateRestoreOperationRequest) AsBasicValidateOperationRequest() (BasicValidateOperationRequest, bool) { 18781 return &vror, true 18782} 18783 18784// UnmarshalJSON is the custom unmarshaler for ValidateRestoreOperationRequest struct. 18785func (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// WeeklyRetentionFormat weekly retention format. 18817type WeeklyRetentionFormat struct { 18818 // DaysOfTheWeek - List of days of the week. 18819 DaysOfTheWeek *[]DayOfWeek `json:"daysOfTheWeek,omitempty"` 18820 // WeeksOfTheMonth - List of weeks of month. 18821 WeeksOfTheMonth *[]WeekOfMonth `json:"weeksOfTheMonth,omitempty"` 18822} 18823 18824// WeeklyRetentionSchedule weekly retention schedule. 18825type WeeklyRetentionSchedule struct { 18826 // DaysOfTheWeek - List of days of week for weekly retention policy. 18827 DaysOfTheWeek *[]DayOfWeek `json:"daysOfTheWeek,omitempty"` 18828 // RetentionTimes - Retention times of retention policy. 18829 RetentionTimes *[]date.Time `json:"retentionTimes,omitempty"` 18830 // RetentionDuration - Retention duration of retention Policy. 18831 RetentionDuration *RetentionDuration `json:"retentionDuration,omitempty"` 18832} 18833 18834// WorkloadInquiryDetails details of an inquired protectable item. 18835type WorkloadInquiryDetails struct { 18836 // Type - Type of the Workload such as SQL, Oracle etc. 18837 Type *string `json:"type,omitempty"` 18838 // ItemCount - Contains the protectable item Count inside this Container. 18839 ItemCount *int64 `json:"itemCount,omitempty"` 18840 // InquiryValidation - Inquiry validation such as permissions and other backup validations. 18841 InquiryValidation *InquiryValidation `json:"inquiryValidation,omitempty"` 18842} 18843 18844// BasicWorkloadItem base class for backup item. Workload-specific backup items are derived from this class. 18845type 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// WorkloadItem base class for backup item. Workload-specific backup items are derived from this class. 18858type WorkloadItem struct { 18859 // BackupManagementType - Type of backup management to backup an item. 18860 BackupManagementType *string `json:"backupManagementType,omitempty"` 18861 // WorkloadType - Type of workload for the backup management 18862 WorkloadType *string `json:"workloadType,omitempty"` 18863 // FriendlyName - Friendly name of the backup item. 18864 FriendlyName *string `json:"friendlyName,omitempty"` 18865 // ProtectionState - State of the back up item. Possible values include: 'ProtectionStatusInvalid', 'ProtectionStatusNotProtected', 'ProtectionStatusProtecting', 'ProtectionStatusProtected', 'ProtectionStatusProtectionFailed' 18866 ProtectionState ProtectionStatus `json:"protectionState,omitempty"` 18867 // WorkloadItemType - Possible values include: 'WorkloadItemTypeWorkloadItem', 'WorkloadItemTypeAzureVMWorkloadItem', 'WorkloadItemTypeSAPAseDatabase1', 'WorkloadItemTypeSAPAseSystem1', 'WorkloadItemTypeSAPHanaDatabase1', 'WorkloadItemTypeSAPHanaSystem1', 'WorkloadItemTypeSQLDataBase1', 'WorkloadItemTypeSQLInstance1' 18868 WorkloadItemType WorkloadItemTypeBasicWorkloadItem `json:"workloadItemType,omitempty"` 18869} 18870 18871func 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} 18913func 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// MarshalJSON is the custom marshaler for WorkloadItem. 18933func (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// AsAzureVMWorkloadItem is the BasicWorkloadItem implementation for WorkloadItem. 18955func (wi WorkloadItem) AsAzureVMWorkloadItem() (*AzureVMWorkloadItem, bool) { 18956 return nil, false 18957} 18958 18959// AsBasicAzureVMWorkloadItem is the BasicWorkloadItem implementation for WorkloadItem. 18960func (wi WorkloadItem) AsBasicAzureVMWorkloadItem() (BasicAzureVMWorkloadItem, bool) { 18961 return nil, false 18962} 18963 18964// AsAzureVMWorkloadSAPAseDatabaseWorkloadItem is the BasicWorkloadItem implementation for WorkloadItem. 18965func (wi WorkloadItem) AsAzureVMWorkloadSAPAseDatabaseWorkloadItem() (*AzureVMWorkloadSAPAseDatabaseWorkloadItem, bool) { 18966 return nil, false 18967} 18968 18969// AsAzureVMWorkloadSAPAseSystemWorkloadItem is the BasicWorkloadItem implementation for WorkloadItem. 18970func (wi WorkloadItem) AsAzureVMWorkloadSAPAseSystemWorkloadItem() (*AzureVMWorkloadSAPAseSystemWorkloadItem, bool) { 18971 return nil, false 18972} 18973 18974// AsAzureVMWorkloadSAPHanaDatabaseWorkloadItem is the BasicWorkloadItem implementation for WorkloadItem. 18975func (wi WorkloadItem) AsAzureVMWorkloadSAPHanaDatabaseWorkloadItem() (*AzureVMWorkloadSAPHanaDatabaseWorkloadItem, bool) { 18976 return nil, false 18977} 18978 18979// AsAzureVMWorkloadSAPHanaSystemWorkloadItem is the BasicWorkloadItem implementation for WorkloadItem. 18980func (wi WorkloadItem) AsAzureVMWorkloadSAPHanaSystemWorkloadItem() (*AzureVMWorkloadSAPHanaSystemWorkloadItem, bool) { 18981 return nil, false 18982} 18983 18984// AsAzureVMWorkloadSQLDatabaseWorkloadItem is the BasicWorkloadItem implementation for WorkloadItem. 18985func (wi WorkloadItem) AsAzureVMWorkloadSQLDatabaseWorkloadItem() (*AzureVMWorkloadSQLDatabaseWorkloadItem, bool) { 18986 return nil, false 18987} 18988 18989// AsAzureVMWorkloadSQLInstanceWorkloadItem is the BasicWorkloadItem implementation for WorkloadItem. 18990func (wi WorkloadItem) AsAzureVMWorkloadSQLInstanceWorkloadItem() (*AzureVMWorkloadSQLInstanceWorkloadItem, bool) { 18991 return nil, false 18992} 18993 18994// AsWorkloadItem is the BasicWorkloadItem implementation for WorkloadItem. 18995func (wi WorkloadItem) AsWorkloadItem() (*WorkloadItem, bool) { 18996 return &wi, true 18997} 18998 18999// AsBasicWorkloadItem is the BasicWorkloadItem implementation for WorkloadItem. 19000func (wi WorkloadItem) AsBasicWorkloadItem() (BasicWorkloadItem, bool) { 19001 return &wi, true 19002} 19003 19004// WorkloadItemResource base class for backup item. Workload-specific backup items are derived from this 19005// class. 19006type WorkloadItemResource struct { 19007 // Properties - WorkloadItemResource properties 19008 Properties BasicWorkloadItem `json:"properties,omitempty"` 19009 // ID - READ-ONLY; Resource Id represents the complete path to the resource. 19010 ID *string `json:"id,omitempty"` 19011 // Name - READ-ONLY; Resource name associated with the resource. 19012 Name *string `json:"name,omitempty"` 19013 // Type - READ-ONLY; Resource type represents the complete path of the form Namespace/ResourceType/ResourceType/... 19014 Type *string `json:"type,omitempty"` 19015 // Location - Resource location. 19016 Location *string `json:"location,omitempty"` 19017 // Tags - Resource tags. 19018 Tags map[string]*string `json:"tags"` 19019 // ETag - Optional ETag. 19020 ETag *string `json:"eTag,omitempty"` 19021} 19022 19023// MarshalJSON is the custom marshaler for WorkloadItemResource. 19024func (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// UnmarshalJSON is the custom unmarshaler for WorkloadItemResource struct. 19040func (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// WorkloadItemResourceList list of WorkloadItem resources 19117type WorkloadItemResourceList struct { 19118 autorest.Response `json:"-"` 19119 // Value - List of resources. 19120 Value *[]WorkloadItemResource `json:"value,omitempty"` 19121 // NextLink - The uri to fetch the next page of resources. Call ListNext() fetches next page of resources. 19122 NextLink *string `json:"nextLink,omitempty"` 19123} 19124 19125// WorkloadItemResourceListIterator provides access to a complete listing of WorkloadItemResource values. 19126type WorkloadItemResourceListIterator struct { 19127 i int 19128 page WorkloadItemResourceListPage 19129} 19130 19131// NextWithContext advances to the next value. If there was an error making 19132// the request the iterator does not advance and the error is returned. 19133func (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// Next advances to the next value. If there was an error making 19158// the request the iterator does not advance and the error is returned. 19159// Deprecated: Use NextWithContext() instead. 19160func (iter *WorkloadItemResourceListIterator) Next() error { 19161 return iter.NextWithContext(context.Background()) 19162} 19163 19164// NotDone returns true if the enumeration should be started or is not yet complete. 19165func (iter WorkloadItemResourceListIterator) NotDone() bool { 19166 return iter.page.NotDone() && iter.i < len(iter.page.Values()) 19167} 19168 19169// Response returns the raw server response from the last page request. 19170func (iter WorkloadItemResourceListIterator) Response() WorkloadItemResourceList { 19171 return iter.page.Response() 19172} 19173 19174// Value returns the current value or a zero-initialized value if the 19175// iterator has advanced beyond the end of the collection. 19176func (iter WorkloadItemResourceListIterator) Value() WorkloadItemResource { 19177 if !iter.page.NotDone() { 19178 return WorkloadItemResource{} 19179 } 19180 return iter.page.Values()[iter.i] 19181} 19182 19183// Creates a new instance of the WorkloadItemResourceListIterator type. 19184func NewWorkloadItemResourceListIterator(page WorkloadItemResourceListPage) WorkloadItemResourceListIterator { 19185 return WorkloadItemResourceListIterator{page: page} 19186} 19187 19188// IsEmpty returns true if the ListResult contains no values. 19189func (wirl WorkloadItemResourceList) IsEmpty() bool { 19190 return wirl.Value == nil || len(*wirl.Value) == 0 19191} 19192 19193// hasNextLink returns true if the NextLink is not empty. 19194func (wirl WorkloadItemResourceList) hasNextLink() bool { 19195 return wirl.NextLink != nil && len(*wirl.NextLink) != 0 19196} 19197 19198// workloadItemResourceListPreparer prepares a request to retrieve the next set of results. 19199// It returns nil if no more results exist. 19200func (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// WorkloadItemResourceListPage contains a page of WorkloadItemResource values. 19211type WorkloadItemResourceListPage struct { 19212 fn func(context.Context, WorkloadItemResourceList) (WorkloadItemResourceList, error) 19213 wirl WorkloadItemResourceList 19214} 19215 19216// NextWithContext advances to the next page of values. If there was an error making 19217// the request the page does not advance and the error is returned. 19218func (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// Next advances to the next page of values. If there was an error making 19243// the request the page does not advance and the error is returned. 19244// Deprecated: Use NextWithContext() instead. 19245func (page *WorkloadItemResourceListPage) Next() error { 19246 return page.NextWithContext(context.Background()) 19247} 19248 19249// NotDone returns true if the page enumeration should be started or is not yet complete. 19250func (page WorkloadItemResourceListPage) NotDone() bool { 19251 return !page.wirl.IsEmpty() 19252} 19253 19254// Response returns the raw server response from the last page request. 19255func (page WorkloadItemResourceListPage) Response() WorkloadItemResourceList { 19256 return page.wirl 19257} 19258 19259// Values returns the slice of values for the current page or nil if there are no values. 19260func (page WorkloadItemResourceListPage) Values() []WorkloadItemResource { 19261 if page.wirl.IsEmpty() { 19262 return nil 19263 } 19264 return *page.wirl.Value 19265} 19266 19267// Creates a new instance of the WorkloadItemResourceListPage type. 19268func NewWorkloadItemResourceListPage(cur WorkloadItemResourceList, getNextPage func(context.Context, WorkloadItemResourceList) (WorkloadItemResourceList, error)) WorkloadItemResourceListPage { 19269 return WorkloadItemResourceListPage{ 19270 fn: getNextPage, 19271 wirl: cur, 19272 } 19273} 19274 19275// BasicWorkloadProtectableItem base class for backup item. Workload-specific backup items are derived from this class. 19276type 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// WorkloadProtectableItem base class for backup item. Workload-specific backup items are derived from this 19294// class. 19295type WorkloadProtectableItem struct { 19296 // BackupManagementType - Type of backup management to backup an item. 19297 BackupManagementType *string `json:"backupManagementType,omitempty"` 19298 // WorkloadType - Type of workload for the backup management 19299 WorkloadType *string `json:"workloadType,omitempty"` 19300 // FriendlyName - Friendly name of the backup item. 19301 FriendlyName *string `json:"friendlyName,omitempty"` 19302 // ProtectionState - State of the back up item. Possible values include: 'ProtectionStatusInvalid', 'ProtectionStatusNotProtected', 'ProtectionStatusProtecting', 'ProtectionStatusProtected', 'ProtectionStatusProtectionFailed' 19303 ProtectionState ProtectionStatus `json:"protectionState,omitempty"` 19304 // ProtectableItemType - Possible values include: 'ProtectableItemTypeWorkloadProtectableItem', 'ProtectableItemTypeAzureFileShare', 'ProtectableItemTypeMicrosoftClassicComputevirtualMachines', 'ProtectableItemTypeMicrosoftComputevirtualMachines', 'ProtectableItemTypeAzureVMWorkloadProtectableItem', 'ProtectableItemTypeSAPAseSystem', 'ProtectableItemTypeSAPHanaDatabase', 'ProtectableItemTypeSAPHanaSystem', 'ProtectableItemTypeSQLAvailabilityGroupContainer', 'ProtectableItemTypeSQLDataBase', 'ProtectableItemTypeSQLInstance', 'ProtectableItemTypeIaaSVMProtectableItem' 19305 ProtectableItemType ProtectableItemType `json:"protectableItemType,omitempty"` 19306} 19307 19308func 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} 19366func 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// MarshalJSON is the custom marshaler for WorkloadProtectableItem. 19386func (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// AsAzureFileShareProtectableItem is the BasicWorkloadProtectableItem implementation for WorkloadProtectableItem. 19408func (wpi WorkloadProtectableItem) AsAzureFileShareProtectableItem() (*AzureFileShareProtectableItem, bool) { 19409 return nil, false 19410} 19411 19412// AsAzureIaaSClassicComputeVMProtectableItem is the BasicWorkloadProtectableItem implementation for WorkloadProtectableItem. 19413func (wpi WorkloadProtectableItem) AsAzureIaaSClassicComputeVMProtectableItem() (*AzureIaaSClassicComputeVMProtectableItem, bool) { 19414 return nil, false 19415} 19416 19417// AsAzureIaaSComputeVMProtectableItem is the BasicWorkloadProtectableItem implementation for WorkloadProtectableItem. 19418func (wpi WorkloadProtectableItem) AsAzureIaaSComputeVMProtectableItem() (*AzureIaaSComputeVMProtectableItem, bool) { 19419 return nil, false 19420} 19421 19422// AsAzureVMWorkloadProtectableItem is the BasicWorkloadProtectableItem implementation for WorkloadProtectableItem. 19423func (wpi WorkloadProtectableItem) AsAzureVMWorkloadProtectableItem() (*AzureVMWorkloadProtectableItem, bool) { 19424 return nil, false 19425} 19426 19427// AsBasicAzureVMWorkloadProtectableItem is the BasicWorkloadProtectableItem implementation for WorkloadProtectableItem. 19428func (wpi WorkloadProtectableItem) AsBasicAzureVMWorkloadProtectableItem() (BasicAzureVMWorkloadProtectableItem, bool) { 19429 return nil, false 19430} 19431 19432// AsAzureVMWorkloadSAPAseSystemProtectableItem is the BasicWorkloadProtectableItem implementation for WorkloadProtectableItem. 19433func (wpi WorkloadProtectableItem) AsAzureVMWorkloadSAPAseSystemProtectableItem() (*AzureVMWorkloadSAPAseSystemProtectableItem, bool) { 19434 return nil, false 19435} 19436 19437// AsAzureVMWorkloadSAPHanaDatabaseProtectableItem is the BasicWorkloadProtectableItem implementation for WorkloadProtectableItem. 19438func (wpi WorkloadProtectableItem) AsAzureVMWorkloadSAPHanaDatabaseProtectableItem() (*AzureVMWorkloadSAPHanaDatabaseProtectableItem, bool) { 19439 return nil, false 19440} 19441 19442// AsAzureVMWorkloadSAPHanaSystemProtectableItem is the BasicWorkloadProtectableItem implementation for WorkloadProtectableItem. 19443func (wpi WorkloadProtectableItem) AsAzureVMWorkloadSAPHanaSystemProtectableItem() (*AzureVMWorkloadSAPHanaSystemProtectableItem, bool) { 19444 return nil, false 19445} 19446 19447// AsAzureVMWorkloadSQLAvailabilityGroupProtectableItem is the BasicWorkloadProtectableItem implementation for WorkloadProtectableItem. 19448func (wpi WorkloadProtectableItem) AsAzureVMWorkloadSQLAvailabilityGroupProtectableItem() (*AzureVMWorkloadSQLAvailabilityGroupProtectableItem, bool) { 19449 return nil, false 19450} 19451 19452// AsAzureVMWorkloadSQLDatabaseProtectableItem is the BasicWorkloadProtectableItem implementation for WorkloadProtectableItem. 19453func (wpi WorkloadProtectableItem) AsAzureVMWorkloadSQLDatabaseProtectableItem() (*AzureVMWorkloadSQLDatabaseProtectableItem, bool) { 19454 return nil, false 19455} 19456 19457// AsAzureVMWorkloadSQLInstanceProtectableItem is the BasicWorkloadProtectableItem implementation for WorkloadProtectableItem. 19458func (wpi WorkloadProtectableItem) AsAzureVMWorkloadSQLInstanceProtectableItem() (*AzureVMWorkloadSQLInstanceProtectableItem, bool) { 19459 return nil, false 19460} 19461 19462// AsIaaSVMProtectableItem is the BasicWorkloadProtectableItem implementation for WorkloadProtectableItem. 19463func (wpi WorkloadProtectableItem) AsIaaSVMProtectableItem() (*IaaSVMProtectableItem, bool) { 19464 return nil, false 19465} 19466 19467// AsBasicIaaSVMProtectableItem is the BasicWorkloadProtectableItem implementation for WorkloadProtectableItem. 19468func (wpi WorkloadProtectableItem) AsBasicIaaSVMProtectableItem() (BasicIaaSVMProtectableItem, bool) { 19469 return nil, false 19470} 19471 19472// AsWorkloadProtectableItem is the BasicWorkloadProtectableItem implementation for WorkloadProtectableItem. 19473func (wpi WorkloadProtectableItem) AsWorkloadProtectableItem() (*WorkloadProtectableItem, bool) { 19474 return &wpi, true 19475} 19476 19477// AsBasicWorkloadProtectableItem is the BasicWorkloadProtectableItem implementation for WorkloadProtectableItem. 19478func (wpi WorkloadProtectableItem) AsBasicWorkloadProtectableItem() (BasicWorkloadProtectableItem, bool) { 19479 return &wpi, true 19480} 19481 19482// WorkloadProtectableItemResource base class for backup item. Workload-specific backup items are derived 19483// from this class. 19484type WorkloadProtectableItemResource struct { 19485 // Properties - WorkloadProtectableItemResource properties 19486 Properties BasicWorkloadProtectableItem `json:"properties,omitempty"` 19487 // ID - READ-ONLY; Resource Id represents the complete path to the resource. 19488 ID *string `json:"id,omitempty"` 19489 // Name - READ-ONLY; Resource name associated with the resource. 19490 Name *string `json:"name,omitempty"` 19491 // Type - READ-ONLY; Resource type represents the complete path of the form Namespace/ResourceType/ResourceType/... 19492 Type *string `json:"type,omitempty"` 19493 // Location - Resource location. 19494 Location *string `json:"location,omitempty"` 19495 // Tags - Resource tags. 19496 Tags map[string]*string `json:"tags"` 19497 // ETag - Optional ETag. 19498 ETag *string `json:"eTag,omitempty"` 19499} 19500 19501// MarshalJSON is the custom marshaler for WorkloadProtectableItemResource. 19502func (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// UnmarshalJSON is the custom unmarshaler for WorkloadProtectableItemResource struct. 19518func (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// WorkloadProtectableItemResourceList list of WorkloadProtectableItem resources 19595type WorkloadProtectableItemResourceList struct { 19596 autorest.Response `json:"-"` 19597 // Value - List of resources. 19598 Value *[]WorkloadProtectableItemResource `json:"value,omitempty"` 19599 // NextLink - The uri to fetch the next page of resources. Call ListNext() fetches next page of resources. 19600 NextLink *string `json:"nextLink,omitempty"` 19601} 19602 19603// WorkloadProtectableItemResourceListIterator provides access to a complete listing of 19604// WorkloadProtectableItemResource values. 19605type WorkloadProtectableItemResourceListIterator struct { 19606 i int 19607 page WorkloadProtectableItemResourceListPage 19608} 19609 19610// NextWithContext advances to the next value. If there was an error making 19611// the request the iterator does not advance and the error is returned. 19612func (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// Next advances to the next value. If there was an error making 19637// the request the iterator does not advance and the error is returned. 19638// Deprecated: Use NextWithContext() instead. 19639func (iter *WorkloadProtectableItemResourceListIterator) Next() error { 19640 return iter.NextWithContext(context.Background()) 19641} 19642 19643// NotDone returns true if the enumeration should be started or is not yet complete. 19644func (iter WorkloadProtectableItemResourceListIterator) NotDone() bool { 19645 return iter.page.NotDone() && iter.i < len(iter.page.Values()) 19646} 19647 19648// Response returns the raw server response from the last page request. 19649func (iter WorkloadProtectableItemResourceListIterator) Response() WorkloadProtectableItemResourceList { 19650 return iter.page.Response() 19651} 19652 19653// Value returns the current value or a zero-initialized value if the 19654// iterator has advanced beyond the end of the collection. 19655func (iter WorkloadProtectableItemResourceListIterator) Value() WorkloadProtectableItemResource { 19656 if !iter.page.NotDone() { 19657 return WorkloadProtectableItemResource{} 19658 } 19659 return iter.page.Values()[iter.i] 19660} 19661 19662// Creates a new instance of the WorkloadProtectableItemResourceListIterator type. 19663func NewWorkloadProtectableItemResourceListIterator(page WorkloadProtectableItemResourceListPage) WorkloadProtectableItemResourceListIterator { 19664 return WorkloadProtectableItemResourceListIterator{page: page} 19665} 19666 19667// IsEmpty returns true if the ListResult contains no values. 19668func (wpirl WorkloadProtectableItemResourceList) IsEmpty() bool { 19669 return wpirl.Value == nil || len(*wpirl.Value) == 0 19670} 19671 19672// hasNextLink returns true if the NextLink is not empty. 19673func (wpirl WorkloadProtectableItemResourceList) hasNextLink() bool { 19674 return wpirl.NextLink != nil && len(*wpirl.NextLink) != 0 19675} 19676 19677// workloadProtectableItemResourceListPreparer prepares a request to retrieve the next set of results. 19678// It returns nil if no more results exist. 19679func (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// WorkloadProtectableItemResourceListPage contains a page of WorkloadProtectableItemResource values. 19690type WorkloadProtectableItemResourceListPage struct { 19691 fn func(context.Context, WorkloadProtectableItemResourceList) (WorkloadProtectableItemResourceList, error) 19692 wpirl WorkloadProtectableItemResourceList 19693} 19694 19695// NextWithContext advances to the next page of values. If there was an error making 19696// the request the page does not advance and the error is returned. 19697func (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// Next advances to the next page of values. If there was an error making 19722// the request the page does not advance and the error is returned. 19723// Deprecated: Use NextWithContext() instead. 19724func (page *WorkloadProtectableItemResourceListPage) Next() error { 19725 return page.NextWithContext(context.Background()) 19726} 19727 19728// NotDone returns true if the page enumeration should be started or is not yet complete. 19729func (page WorkloadProtectableItemResourceListPage) NotDone() bool { 19730 return !page.wpirl.IsEmpty() 19731} 19732 19733// Response returns the raw server response from the last page request. 19734func (page WorkloadProtectableItemResourceListPage) Response() WorkloadProtectableItemResourceList { 19735 return page.wpirl 19736} 19737 19738// Values returns the slice of values for the current page or nil if there are no values. 19739func (page WorkloadProtectableItemResourceListPage) Values() []WorkloadProtectableItemResource { 19740 if page.wpirl.IsEmpty() { 19741 return nil 19742 } 19743 return *page.wpirl.Value 19744} 19745 19746// Creates a new instance of the WorkloadProtectableItemResourceListPage type. 19747func NewWorkloadProtectableItemResourceListPage(cur WorkloadProtectableItemResourceList, getNextPage func(context.Context, WorkloadProtectableItemResourceList) (WorkloadProtectableItemResourceList, error)) WorkloadProtectableItemResourceListPage { 19748 return WorkloadProtectableItemResourceListPage{ 19749 fn: getNextPage, 19750 wpirl: cur, 19751 } 19752} 19753 19754// YearlyRetentionSchedule yearly retention schedule. 19755type YearlyRetentionSchedule struct { 19756 // RetentionScheduleFormatType - Retention schedule format for yearly retention policy. Possible values include: 'RetentionScheduleFormatInvalid', 'RetentionScheduleFormatDaily', 'RetentionScheduleFormatWeekly' 19757 RetentionScheduleFormatType RetentionScheduleFormat `json:"retentionScheduleFormatType,omitempty"` 19758 // MonthsOfYear - List of months of year of yearly retention policy. 19759 MonthsOfYear *[]MonthOfYear `json:"monthsOfYear,omitempty"` 19760 // RetentionScheduleDaily - Daily retention format for yearly retention policy. 19761 RetentionScheduleDaily *DailyRetentionFormat `json:"retentionScheduleDaily,omitempty"` 19762 // RetentionScheduleWeekly - Weekly retention format for yearly retention policy. 19763 RetentionScheduleWeekly *WeeklyRetentionFormat `json:"retentionScheduleWeekly,omitempty"` 19764 // RetentionTimes - Retention times of retention policy. 19765 RetentionTimes *[]date.Time `json:"retentionTimes,omitempty"` 19766 // RetentionDuration - Retention duration of retention Policy. 19767 RetentionDuration *RetentionDuration `json:"retentionDuration,omitempty"` 19768} 19769