restic/vendor/github.com/Azure/azure-sdk-for-go/services/recoveryservices/mgmt/2017-07-01/backup/models.go

15778 lines
671 KiB
Go

package backup
// Copyright (c) Microsoft and contributors. All rights reserved.
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
//
// See the License for the specific language governing permissions and
// limitations under the License.
//
// Code generated by Microsoft (R) AutoRest Code Generator.
// Changes may cause incorrect behavior and will be lost if the code is regenerated.
import (
"encoding/json"
"github.com/Azure/go-autorest/autorest"
"github.com/Azure/go-autorest/autorest/date"
"github.com/Azure/go-autorest/autorest/to"
"net/http"
)
// AzureFileShareType enumerates the values for azure file share type.
type AzureFileShareType string
const (
// Invalid ...
Invalid AzureFileShareType = "Invalid"
// XSMB ...
XSMB AzureFileShareType = "XSMB"
// XSync ...
XSync AzureFileShareType = "XSync"
)
// PossibleAzureFileShareTypeValues returns an array of possible values for the AzureFileShareType const type.
func PossibleAzureFileShareTypeValues() []AzureFileShareType {
return []AzureFileShareType{Invalid, XSMB, XSync}
}
// ContainerType enumerates the values for container type.
type ContainerType string
const (
// ContainerTypeAzureBackupServerContainer ...
ContainerTypeAzureBackupServerContainer ContainerType = "AzureBackupServerContainer"
// ContainerTypeAzureSQLContainer ...
ContainerTypeAzureSQLContainer ContainerType = "AzureSqlContainer"
// ContainerTypeCluster ...
ContainerTypeCluster ContainerType = "Cluster"
// ContainerTypeDPMContainer ...
ContainerTypeDPMContainer ContainerType = "DPMContainer"
// ContainerTypeGenericContainer ...
ContainerTypeGenericContainer ContainerType = "GenericContainer"
// ContainerTypeIaasVMContainer ...
ContainerTypeIaasVMContainer ContainerType = "IaasVMContainer"
// ContainerTypeIaasVMServiceContainer ...
ContainerTypeIaasVMServiceContainer ContainerType = "IaasVMServiceContainer"
// ContainerTypeInvalid ...
ContainerTypeInvalid ContainerType = "Invalid"
// ContainerTypeMABContainer ...
ContainerTypeMABContainer ContainerType = "MABContainer"
// ContainerTypeSQLAGWorkLoadContainer ...
ContainerTypeSQLAGWorkLoadContainer ContainerType = "SQLAGWorkLoadContainer"
// ContainerTypeStorageContainer ...
ContainerTypeStorageContainer ContainerType = "StorageContainer"
// ContainerTypeUnknown ...
ContainerTypeUnknown ContainerType = "Unknown"
// ContainerTypeVCenter ...
ContainerTypeVCenter ContainerType = "VCenter"
// ContainerTypeVMAppContainer ...
ContainerTypeVMAppContainer ContainerType = "VMAppContainer"
// ContainerTypeWindows ...
ContainerTypeWindows ContainerType = "Windows"
)
// PossibleContainerTypeValues returns an array of possible values for the ContainerType const type.
func PossibleContainerTypeValues() []ContainerType {
return []ContainerType{ContainerTypeAzureBackupServerContainer, ContainerTypeAzureSQLContainer, ContainerTypeCluster, ContainerTypeDPMContainer, ContainerTypeGenericContainer, ContainerTypeIaasVMContainer, ContainerTypeIaasVMServiceContainer, ContainerTypeInvalid, ContainerTypeMABContainer, ContainerTypeSQLAGWorkLoadContainer, ContainerTypeStorageContainer, ContainerTypeUnknown, ContainerTypeVCenter, ContainerTypeVMAppContainer, ContainerTypeWindows}
}
// ContainerTypeBasicProtectionContainer enumerates the values for container type basic protection container.
type ContainerTypeBasicProtectionContainer string
const (
// ContainerTypeAzureBackupServerContainer1 ...
ContainerTypeAzureBackupServerContainer1 ContainerTypeBasicProtectionContainer = "AzureBackupServerContainer"
// ContainerTypeAzureSQLContainer1 ...
ContainerTypeAzureSQLContainer1 ContainerTypeBasicProtectionContainer = "AzureSqlContainer"
// ContainerTypeAzureWorkloadContainer ...
ContainerTypeAzureWorkloadContainer ContainerTypeBasicProtectionContainer = "AzureWorkloadContainer"
// ContainerTypeDPMContainer1 ...
ContainerTypeDPMContainer1 ContainerTypeBasicProtectionContainer = "DPMContainer"
// ContainerTypeGenericContainer1 ...
ContainerTypeGenericContainer1 ContainerTypeBasicProtectionContainer = "GenericContainer"
// ContainerTypeIaaSVMContainer ...
ContainerTypeIaaSVMContainer ContainerTypeBasicProtectionContainer = "IaaSVMContainer"
// ContainerTypeMABWindowsContainer ...
ContainerTypeMABWindowsContainer ContainerTypeBasicProtectionContainer = "MABWindowsContainer"
// ContainerTypeMicrosoftClassicComputevirtualMachines ...
ContainerTypeMicrosoftClassicComputevirtualMachines ContainerTypeBasicProtectionContainer = "Microsoft.ClassicCompute/virtualMachines"
// ContainerTypeMicrosoftComputevirtualMachines ...
ContainerTypeMicrosoftComputevirtualMachines ContainerTypeBasicProtectionContainer = "Microsoft.Compute/virtualMachines"
// ContainerTypeProtectionContainer ...
ContainerTypeProtectionContainer ContainerTypeBasicProtectionContainer = "ProtectionContainer"
// ContainerTypeSQLAGWorkLoadContainer1 ...
ContainerTypeSQLAGWorkLoadContainer1 ContainerTypeBasicProtectionContainer = "SQLAGWorkLoadContainer"
// ContainerTypeStorageContainer1 ...
ContainerTypeStorageContainer1 ContainerTypeBasicProtectionContainer = "StorageContainer"
// ContainerTypeVMAppContainer1 ...
ContainerTypeVMAppContainer1 ContainerTypeBasicProtectionContainer = "VMAppContainer"
)
// PossibleContainerTypeBasicProtectionContainerValues returns an array of possible values for the ContainerTypeBasicProtectionContainer const type.
func PossibleContainerTypeBasicProtectionContainerValues() []ContainerTypeBasicProtectionContainer {
return []ContainerTypeBasicProtectionContainer{ContainerTypeAzureBackupServerContainer1, ContainerTypeAzureSQLContainer1, ContainerTypeAzureWorkloadContainer, ContainerTypeDPMContainer1, ContainerTypeGenericContainer1, ContainerTypeIaaSVMContainer, ContainerTypeMABWindowsContainer, ContainerTypeMicrosoftClassicComputevirtualMachines, ContainerTypeMicrosoftComputevirtualMachines, ContainerTypeProtectionContainer, ContainerTypeSQLAGWorkLoadContainer1, ContainerTypeStorageContainer1, ContainerTypeVMAppContainer1}
}
// CopyOptions enumerates the values for copy options.
type CopyOptions string
const (
// CopyOptionsCreateCopy ...
CopyOptionsCreateCopy CopyOptions = "CreateCopy"
// CopyOptionsFailOnConflict ...
CopyOptionsFailOnConflict CopyOptions = "FailOnConflict"
// CopyOptionsInvalid ...
CopyOptionsInvalid CopyOptions = "Invalid"
// CopyOptionsOverwrite ...
CopyOptionsOverwrite CopyOptions = "Overwrite"
// CopyOptionsSkip ...
CopyOptionsSkip CopyOptions = "Skip"
)
// PossibleCopyOptionsValues returns an array of possible values for the CopyOptions const type.
func PossibleCopyOptionsValues() []CopyOptions {
return []CopyOptions{CopyOptionsCreateCopy, CopyOptionsFailOnConflict, CopyOptionsInvalid, CopyOptionsOverwrite, CopyOptionsSkip}
}
// DataSourceType enumerates the values for data source type.
type DataSourceType string
const (
// DataSourceTypeAzureFileShare ...
DataSourceTypeAzureFileShare DataSourceType = "AzureFileShare"
// DataSourceTypeAzureSQLDb ...
DataSourceTypeAzureSQLDb DataSourceType = "AzureSqlDb"
// DataSourceTypeClient ...
DataSourceTypeClient DataSourceType = "Client"
// DataSourceTypeExchange ...
DataSourceTypeExchange DataSourceType = "Exchange"
// DataSourceTypeFileFolder ...
DataSourceTypeFileFolder DataSourceType = "FileFolder"
// DataSourceTypeGenericDataSource ...
DataSourceTypeGenericDataSource DataSourceType = "GenericDataSource"
// DataSourceTypeInvalid ...
DataSourceTypeInvalid DataSourceType = "Invalid"
// DataSourceTypeSharepoint ...
DataSourceTypeSharepoint DataSourceType = "Sharepoint"
// DataSourceTypeSQLDataBase ...
DataSourceTypeSQLDataBase DataSourceType = "SQLDataBase"
// DataSourceTypeSQLDB ...
DataSourceTypeSQLDB DataSourceType = "SQLDB"
// DataSourceTypeSystemState ...
DataSourceTypeSystemState DataSourceType = "SystemState"
// DataSourceTypeVM ...
DataSourceTypeVM DataSourceType = "VM"
// DataSourceTypeVMwareVM ...
DataSourceTypeVMwareVM DataSourceType = "VMwareVM"
)
// PossibleDataSourceTypeValues returns an array of possible values for the DataSourceType const type.
func PossibleDataSourceTypeValues() []DataSourceType {
return []DataSourceType{DataSourceTypeAzureFileShare, DataSourceTypeAzureSQLDb, DataSourceTypeClient, DataSourceTypeExchange, DataSourceTypeFileFolder, DataSourceTypeGenericDataSource, DataSourceTypeInvalid, DataSourceTypeSharepoint, DataSourceTypeSQLDataBase, DataSourceTypeSQLDB, DataSourceTypeSystemState, DataSourceTypeVM, DataSourceTypeVMwareVM}
}
// DayOfWeek enumerates the values for day of week.
type DayOfWeek string
const (
// Friday ...
Friday DayOfWeek = "Friday"
// Monday ...
Monday DayOfWeek = "Monday"
// Saturday ...
Saturday DayOfWeek = "Saturday"
// Sunday ...
Sunday DayOfWeek = "Sunday"
// Thursday ...
Thursday DayOfWeek = "Thursday"
// Tuesday ...
Tuesday DayOfWeek = "Tuesday"
// Wednesday ...
Wednesday DayOfWeek = "Wednesday"
)
// PossibleDayOfWeekValues returns an array of possible values for the DayOfWeek const type.
func PossibleDayOfWeekValues() []DayOfWeek {
return []DayOfWeek{Friday, Monday, Saturday, Sunday, Thursday, Tuesday, Wednesday}
}
// EngineType enumerates the values for engine type.
type EngineType string
const (
// BackupEngineTypeAzureBackupServerEngine ...
BackupEngineTypeAzureBackupServerEngine EngineType = "AzureBackupServerEngine"
// BackupEngineTypeBackupEngineBase ...
BackupEngineTypeBackupEngineBase EngineType = "BackupEngineBase"
// BackupEngineTypeDpmBackupEngine ...
BackupEngineTypeDpmBackupEngine EngineType = "DpmBackupEngine"
)
// PossibleEngineTypeValues returns an array of possible values for the EngineType const type.
func PossibleEngineTypeValues() []EngineType {
return []EngineType{BackupEngineTypeAzureBackupServerEngine, BackupEngineTypeBackupEngineBase, BackupEngineTypeDpmBackupEngine}
}
// EnhancedSecurityState enumerates the values for enhanced security state.
type EnhancedSecurityState string
const (
// EnhancedSecurityStateDisabled ...
EnhancedSecurityStateDisabled EnhancedSecurityState = "Disabled"
// EnhancedSecurityStateEnabled ...
EnhancedSecurityStateEnabled EnhancedSecurityState = "Enabled"
// EnhancedSecurityStateInvalid ...
EnhancedSecurityStateInvalid EnhancedSecurityState = "Invalid"
)
// PossibleEnhancedSecurityStateValues returns an array of possible values for the EnhancedSecurityState const type.
func PossibleEnhancedSecurityStateValues() []EnhancedSecurityState {
return []EnhancedSecurityState{EnhancedSecurityStateDisabled, EnhancedSecurityStateEnabled, EnhancedSecurityStateInvalid}
}
// FabricName enumerates the values for fabric name.
type FabricName string
const (
// FabricNameAzure ...
FabricNameAzure FabricName = "Azure"
// FabricNameInvalid ...
FabricNameInvalid FabricName = "Invalid"
)
// PossibleFabricNameValues returns an array of possible values for the FabricName const type.
func PossibleFabricNameValues() []FabricName {
return []FabricName{FabricNameAzure, FabricNameInvalid}
}
// FeatureType enumerates the values for feature type.
type FeatureType string
const (
// FeatureTypeAzureVMResourceBackup ...
FeatureTypeAzureVMResourceBackup FeatureType = "AzureVMResourceBackup"
// FeatureTypeFeatureSupportRequest ...
FeatureTypeFeatureSupportRequest FeatureType = "FeatureSupportRequest"
)
// PossibleFeatureTypeValues returns an array of possible values for the FeatureType const type.
func PossibleFeatureTypeValues() []FeatureType {
return []FeatureType{FeatureTypeAzureVMResourceBackup, FeatureTypeFeatureSupportRequest}
}
// HealthState enumerates the values for health state.
type HealthState string
const (
// HealthStateActionRequired ...
HealthStateActionRequired HealthState = "ActionRequired"
// HealthStateActionSuggested ...
HealthStateActionSuggested HealthState = "ActionSuggested"
// HealthStateInvalid ...
HealthStateInvalid HealthState = "Invalid"
// HealthStatePassed ...
HealthStatePassed HealthState = "Passed"
)
// PossibleHealthStateValues returns an array of possible values for the HealthState const type.
func PossibleHealthStateValues() []HealthState {
return []HealthState{HealthStateActionRequired, HealthStateActionSuggested, HealthStateInvalid, HealthStatePassed}
}
// HealthStatus enumerates the values for health status.
type HealthStatus string
const (
// HealthStatusActionRequired ...
HealthStatusActionRequired HealthStatus = "ActionRequired"
// HealthStatusActionSuggested ...
HealthStatusActionSuggested HealthStatus = "ActionSuggested"
// HealthStatusInvalid ...
HealthStatusInvalid HealthStatus = "Invalid"
// HealthStatusPassed ...
HealthStatusPassed HealthStatus = "Passed"
)
// PossibleHealthStatusValues returns an array of possible values for the HealthStatus const type.
func PossibleHealthStatusValues() []HealthStatus {
return []HealthStatus{HealthStatusActionRequired, HealthStatusActionSuggested, HealthStatusInvalid, HealthStatusPassed}
}
// HTTPStatusCode enumerates the values for http status code.
type HTTPStatusCode string
const (
// Accepted ...
Accepted HTTPStatusCode = "Accepted"
// Ambiguous ...
Ambiguous HTTPStatusCode = "Ambiguous"
// BadGateway ...
BadGateway HTTPStatusCode = "BadGateway"
// BadRequest ...
BadRequest HTTPStatusCode = "BadRequest"
// Conflict ...
Conflict HTTPStatusCode = "Conflict"
// Continue ...
Continue HTTPStatusCode = "Continue"
// Created ...
Created HTTPStatusCode = "Created"
// ExpectationFailed ...
ExpectationFailed HTTPStatusCode = "ExpectationFailed"
// Forbidden ...
Forbidden HTTPStatusCode = "Forbidden"
// Found ...
Found HTTPStatusCode = "Found"
// GatewayTimeout ...
GatewayTimeout HTTPStatusCode = "GatewayTimeout"
// Gone ...
Gone HTTPStatusCode = "Gone"
// HTTPVersionNotSupported ...
HTTPVersionNotSupported HTTPStatusCode = "HttpVersionNotSupported"
// InternalServerError ...
InternalServerError HTTPStatusCode = "InternalServerError"
// LengthRequired ...
LengthRequired HTTPStatusCode = "LengthRequired"
// MethodNotAllowed ...
MethodNotAllowed HTTPStatusCode = "MethodNotAllowed"
// Moved ...
Moved HTTPStatusCode = "Moved"
// MovedPermanently ...
MovedPermanently HTTPStatusCode = "MovedPermanently"
// MultipleChoices ...
MultipleChoices HTTPStatusCode = "MultipleChoices"
// NoContent ...
NoContent HTTPStatusCode = "NoContent"
// NonAuthoritativeInformation ...
NonAuthoritativeInformation HTTPStatusCode = "NonAuthoritativeInformation"
// NotAcceptable ...
NotAcceptable HTTPStatusCode = "NotAcceptable"
// NotFound ...
NotFound HTTPStatusCode = "NotFound"
// NotImplemented ...
NotImplemented HTTPStatusCode = "NotImplemented"
// NotModified ...
NotModified HTTPStatusCode = "NotModified"
// OK ...
OK HTTPStatusCode = "OK"
// PartialContent ...
PartialContent HTTPStatusCode = "PartialContent"
// PaymentRequired ...
PaymentRequired HTTPStatusCode = "PaymentRequired"
// PreconditionFailed ...
PreconditionFailed HTTPStatusCode = "PreconditionFailed"
// ProxyAuthenticationRequired ...
ProxyAuthenticationRequired HTTPStatusCode = "ProxyAuthenticationRequired"
// Redirect ...
Redirect HTTPStatusCode = "Redirect"
// RedirectKeepVerb ...
RedirectKeepVerb HTTPStatusCode = "RedirectKeepVerb"
// RedirectMethod ...
RedirectMethod HTTPStatusCode = "RedirectMethod"
// RequestedRangeNotSatisfiable ...
RequestedRangeNotSatisfiable HTTPStatusCode = "RequestedRangeNotSatisfiable"
// RequestEntityTooLarge ...
RequestEntityTooLarge HTTPStatusCode = "RequestEntityTooLarge"
// RequestTimeout ...
RequestTimeout HTTPStatusCode = "RequestTimeout"
// RequestURITooLong ...
RequestURITooLong HTTPStatusCode = "RequestUriTooLong"
// ResetContent ...
ResetContent HTTPStatusCode = "ResetContent"
// SeeOther ...
SeeOther HTTPStatusCode = "SeeOther"
// ServiceUnavailable ...
ServiceUnavailable HTTPStatusCode = "ServiceUnavailable"
// SwitchingProtocols ...
SwitchingProtocols HTTPStatusCode = "SwitchingProtocols"
// TemporaryRedirect ...
TemporaryRedirect HTTPStatusCode = "TemporaryRedirect"
// Unauthorized ...
Unauthorized HTTPStatusCode = "Unauthorized"
// UnsupportedMediaType ...
UnsupportedMediaType HTTPStatusCode = "UnsupportedMediaType"
// Unused ...
Unused HTTPStatusCode = "Unused"
// UpgradeRequired ...
UpgradeRequired HTTPStatusCode = "UpgradeRequired"
// UseProxy ...
UseProxy HTTPStatusCode = "UseProxy"
)
// PossibleHTTPStatusCodeValues returns an array of possible values for the HTTPStatusCode const type.
func PossibleHTTPStatusCodeValues() []HTTPStatusCode {
return []HTTPStatusCode{Accepted, Ambiguous, BadGateway, BadRequest, Conflict, Continue, Created, ExpectationFailed, Forbidden, Found, GatewayTimeout, Gone, HTTPVersionNotSupported, InternalServerError, LengthRequired, MethodNotAllowed, Moved, MovedPermanently, MultipleChoices, NoContent, NonAuthoritativeInformation, NotAcceptable, NotFound, NotImplemented, NotModified, OK, PartialContent, PaymentRequired, PreconditionFailed, ProxyAuthenticationRequired, Redirect, RedirectKeepVerb, RedirectMethod, RequestedRangeNotSatisfiable, RequestEntityTooLarge, RequestTimeout, RequestURITooLong, ResetContent, SeeOther, ServiceUnavailable, SwitchingProtocols, TemporaryRedirect, Unauthorized, UnsupportedMediaType, Unused, UpgradeRequired, UseProxy}
}
// InquiryStatus enumerates the values for inquiry status.
type InquiryStatus string
const (
// InquiryStatusFailed ...
InquiryStatusFailed InquiryStatus = "Failed"
// InquiryStatusInvalid ...
InquiryStatusInvalid InquiryStatus = "Invalid"
// InquiryStatusSuccess ...
InquiryStatusSuccess InquiryStatus = "Success"
)
// PossibleInquiryStatusValues returns an array of possible values for the InquiryStatus const type.
func PossibleInquiryStatusValues() []InquiryStatus {
return []InquiryStatus{InquiryStatusFailed, InquiryStatusInvalid, InquiryStatusSuccess}
}
// ItemType enumerates the values for item type.
type ItemType string
const (
// ItemTypeAzureFileShare ...
ItemTypeAzureFileShare ItemType = "AzureFileShare"
// ItemTypeAzureSQLDb ...
ItemTypeAzureSQLDb ItemType = "AzureSqlDb"
// ItemTypeClient ...
ItemTypeClient ItemType = "Client"
// ItemTypeExchange ...
ItemTypeExchange ItemType = "Exchange"
// ItemTypeFileFolder ...
ItemTypeFileFolder ItemType = "FileFolder"
// ItemTypeGenericDataSource ...
ItemTypeGenericDataSource ItemType = "GenericDataSource"
// ItemTypeInvalid ...
ItemTypeInvalid ItemType = "Invalid"
// ItemTypeSharepoint ...
ItemTypeSharepoint ItemType = "Sharepoint"
// ItemTypeSQLDataBase ...
ItemTypeSQLDataBase ItemType = "SQLDataBase"
// ItemTypeSQLDB ...
ItemTypeSQLDB ItemType = "SQLDB"
// ItemTypeSystemState ...
ItemTypeSystemState ItemType = "SystemState"
// ItemTypeVM ...
ItemTypeVM ItemType = "VM"
// ItemTypeVMwareVM ...
ItemTypeVMwareVM ItemType = "VMwareVM"
)
// PossibleItemTypeValues returns an array of possible values for the ItemType const type.
func PossibleItemTypeValues() []ItemType {
return []ItemType{ItemTypeAzureFileShare, ItemTypeAzureSQLDb, ItemTypeClient, ItemTypeExchange, ItemTypeFileFolder, ItemTypeGenericDataSource, ItemTypeInvalid, ItemTypeSharepoint, ItemTypeSQLDataBase, ItemTypeSQLDB, ItemTypeSystemState, ItemTypeVM, ItemTypeVMwareVM}
}
// JobOperationType enumerates the values for job operation type.
type JobOperationType string
const (
// JobOperationTypeBackup ...
JobOperationTypeBackup JobOperationType = "Backup"
// JobOperationTypeConfigureBackup ...
JobOperationTypeConfigureBackup JobOperationType = "ConfigureBackup"
// JobOperationTypeDeleteBackupData ...
JobOperationTypeDeleteBackupData JobOperationType = "DeleteBackupData"
// JobOperationTypeDisableBackup ...
JobOperationTypeDisableBackup JobOperationType = "DisableBackup"
// JobOperationTypeInvalid ...
JobOperationTypeInvalid JobOperationType = "Invalid"
// JobOperationTypeRegister ...
JobOperationTypeRegister JobOperationType = "Register"
// JobOperationTypeRestore ...
JobOperationTypeRestore JobOperationType = "Restore"
// JobOperationTypeUnRegister ...
JobOperationTypeUnRegister JobOperationType = "UnRegister"
)
// PossibleJobOperationTypeValues returns an array of possible values for the JobOperationType const type.
func PossibleJobOperationTypeValues() []JobOperationType {
return []JobOperationType{JobOperationTypeBackup, JobOperationTypeConfigureBackup, JobOperationTypeDeleteBackupData, JobOperationTypeDisableBackup, JobOperationTypeInvalid, JobOperationTypeRegister, JobOperationTypeRestore, JobOperationTypeUnRegister}
}
// JobStatus enumerates the values for job status.
type JobStatus string
const (
// JobStatusCancelled ...
JobStatusCancelled JobStatus = "Cancelled"
// JobStatusCancelling ...
JobStatusCancelling JobStatus = "Cancelling"
// JobStatusCompleted ...
JobStatusCompleted JobStatus = "Completed"
// JobStatusCompletedWithWarnings ...
JobStatusCompletedWithWarnings JobStatus = "CompletedWithWarnings"
// JobStatusFailed ...
JobStatusFailed JobStatus = "Failed"
// JobStatusInProgress ...
JobStatusInProgress JobStatus = "InProgress"
// JobStatusInvalid ...
JobStatusInvalid JobStatus = "Invalid"
)
// PossibleJobStatusValues returns an array of possible values for the JobStatus const type.
func PossibleJobStatusValues() []JobStatus {
return []JobStatus{JobStatusCancelled, JobStatusCancelling, JobStatusCompleted, JobStatusCompletedWithWarnings, JobStatusFailed, JobStatusInProgress, JobStatusInvalid}
}
// JobSupportedAction enumerates the values for job supported action.
type JobSupportedAction string
const (
// JobSupportedActionCancellable ...
JobSupportedActionCancellable JobSupportedAction = "Cancellable"
// JobSupportedActionInvalid ...
JobSupportedActionInvalid JobSupportedAction = "Invalid"
// JobSupportedActionRetriable ...
JobSupportedActionRetriable JobSupportedAction = "Retriable"
)
// PossibleJobSupportedActionValues returns an array of possible values for the JobSupportedAction const type.
func PossibleJobSupportedActionValues() []JobSupportedAction {
return []JobSupportedAction{JobSupportedActionCancellable, JobSupportedActionInvalid, JobSupportedActionRetriable}
}
// JobType enumerates the values for job type.
type JobType string
const (
// JobTypeAzureIaaSVMJob ...
JobTypeAzureIaaSVMJob JobType = "AzureIaaSVMJob"
// JobTypeAzureStorageJob ...
JobTypeAzureStorageJob JobType = "AzureStorageJob"
// JobTypeAzureWorkloadJob ...
JobTypeAzureWorkloadJob JobType = "AzureWorkloadJob"
// JobTypeDpmJob ...
JobTypeDpmJob JobType = "DpmJob"
// JobTypeJob ...
JobTypeJob JobType = "Job"
// JobTypeMabJob ...
JobTypeMabJob JobType = "MabJob"
)
// PossibleJobTypeValues returns an array of possible values for the JobType const type.
func PossibleJobTypeValues() []JobType {
return []JobType{JobTypeAzureIaaSVMJob, JobTypeAzureStorageJob, JobTypeAzureWorkloadJob, JobTypeDpmJob, JobTypeJob, JobTypeMabJob}
}
// LastBackupStatus enumerates the values for last backup status.
type LastBackupStatus string
const (
// LastBackupStatusHealthy ...
LastBackupStatusHealthy LastBackupStatus = "Healthy"
// LastBackupStatusInvalid ...
LastBackupStatusInvalid LastBackupStatus = "Invalid"
// LastBackupStatusIRPending ...
LastBackupStatusIRPending LastBackupStatus = "IRPending"
// LastBackupStatusUnhealthy ...
LastBackupStatusUnhealthy LastBackupStatus = "Unhealthy"
)
// PossibleLastBackupStatusValues returns an array of possible values for the LastBackupStatus const type.
func PossibleLastBackupStatusValues() []LastBackupStatus {
return []LastBackupStatus{LastBackupStatusHealthy, LastBackupStatusInvalid, LastBackupStatusIRPending, LastBackupStatusUnhealthy}
}
// MabServerType enumerates the values for mab server type.
type MabServerType string
const (
// MabServerTypeAzureBackupServerContainer ...
MabServerTypeAzureBackupServerContainer MabServerType = "AzureBackupServerContainer"
// MabServerTypeAzureSQLContainer ...
MabServerTypeAzureSQLContainer MabServerType = "AzureSqlContainer"
// MabServerTypeCluster ...
MabServerTypeCluster MabServerType = "Cluster"
// MabServerTypeDPMContainer ...
MabServerTypeDPMContainer MabServerType = "DPMContainer"
// MabServerTypeGenericContainer ...
MabServerTypeGenericContainer MabServerType = "GenericContainer"
// MabServerTypeIaasVMContainer ...
MabServerTypeIaasVMContainer MabServerType = "IaasVMContainer"
// MabServerTypeIaasVMServiceContainer ...
MabServerTypeIaasVMServiceContainer MabServerType = "IaasVMServiceContainer"
// MabServerTypeInvalid ...
MabServerTypeInvalid MabServerType = "Invalid"
// MabServerTypeMABContainer ...
MabServerTypeMABContainer MabServerType = "MABContainer"
// MabServerTypeSQLAGWorkLoadContainer ...
MabServerTypeSQLAGWorkLoadContainer MabServerType = "SQLAGWorkLoadContainer"
// MabServerTypeStorageContainer ...
MabServerTypeStorageContainer MabServerType = "StorageContainer"
// MabServerTypeUnknown ...
MabServerTypeUnknown MabServerType = "Unknown"
// MabServerTypeVCenter ...
MabServerTypeVCenter MabServerType = "VCenter"
// MabServerTypeVMAppContainer ...
MabServerTypeVMAppContainer MabServerType = "VMAppContainer"
// MabServerTypeWindows ...
MabServerTypeWindows MabServerType = "Windows"
)
// PossibleMabServerTypeValues returns an array of possible values for the MabServerType const type.
func PossibleMabServerTypeValues() []MabServerType {
return []MabServerType{MabServerTypeAzureBackupServerContainer, MabServerTypeAzureSQLContainer, MabServerTypeCluster, MabServerTypeDPMContainer, MabServerTypeGenericContainer, MabServerTypeIaasVMContainer, MabServerTypeIaasVMServiceContainer, MabServerTypeInvalid, MabServerTypeMABContainer, MabServerTypeSQLAGWorkLoadContainer, MabServerTypeStorageContainer, MabServerTypeUnknown, MabServerTypeVCenter, MabServerTypeVMAppContainer, MabServerTypeWindows}
}
// ManagementType enumerates the values for management type.
type ManagementType string
const (
// ManagementTypeAzureBackupServer ...
ManagementTypeAzureBackupServer ManagementType = "AzureBackupServer"
// ManagementTypeAzureIaasVM ...
ManagementTypeAzureIaasVM ManagementType = "AzureIaasVM"
// ManagementTypeAzureSQL ...
ManagementTypeAzureSQL ManagementType = "AzureSql"
// ManagementTypeAzureStorage ...
ManagementTypeAzureStorage ManagementType = "AzureStorage"
// ManagementTypeAzureWorkload ...
ManagementTypeAzureWorkload ManagementType = "AzureWorkload"
// ManagementTypeDefaultBackup ...
ManagementTypeDefaultBackup ManagementType = "DefaultBackup"
// ManagementTypeDPM ...
ManagementTypeDPM ManagementType = "DPM"
// ManagementTypeInvalid ...
ManagementTypeInvalid ManagementType = "Invalid"
// ManagementTypeMAB ...
ManagementTypeMAB ManagementType = "MAB"
)
// PossibleManagementTypeValues returns an array of possible values for the ManagementType const type.
func PossibleManagementTypeValues() []ManagementType {
return []ManagementType{ManagementTypeAzureBackupServer, ManagementTypeAzureIaasVM, ManagementTypeAzureSQL, ManagementTypeAzureStorage, ManagementTypeAzureWorkload, ManagementTypeDefaultBackup, ManagementTypeDPM, ManagementTypeInvalid, ManagementTypeMAB}
}
// ManagementTypeBasicProtectionPolicy enumerates the values for management type basic protection policy.
type ManagementTypeBasicProtectionPolicy string
const (
// BackupManagementTypeAzureIaasVM ...
BackupManagementTypeAzureIaasVM ManagementTypeBasicProtectionPolicy = "AzureIaasVM"
// BackupManagementTypeAzureSQL ...
BackupManagementTypeAzureSQL ManagementTypeBasicProtectionPolicy = "AzureSql"
// BackupManagementTypeAzureStorage ...
BackupManagementTypeAzureStorage ManagementTypeBasicProtectionPolicy = "AzureStorage"
// BackupManagementTypeAzureWorkload ...
BackupManagementTypeAzureWorkload ManagementTypeBasicProtectionPolicy = "AzureWorkload"
// BackupManagementTypeGenericProtectionPolicy ...
BackupManagementTypeGenericProtectionPolicy ManagementTypeBasicProtectionPolicy = "GenericProtectionPolicy"
// BackupManagementTypeMAB ...
BackupManagementTypeMAB ManagementTypeBasicProtectionPolicy = "MAB"
// BackupManagementTypeProtectionPolicy ...
BackupManagementTypeProtectionPolicy ManagementTypeBasicProtectionPolicy = "ProtectionPolicy"
)
// PossibleManagementTypeBasicProtectionPolicyValues returns an array of possible values for the ManagementTypeBasicProtectionPolicy const type.
func PossibleManagementTypeBasicProtectionPolicyValues() []ManagementTypeBasicProtectionPolicy {
return []ManagementTypeBasicProtectionPolicy{BackupManagementTypeAzureIaasVM, BackupManagementTypeAzureSQL, BackupManagementTypeAzureStorage, BackupManagementTypeAzureWorkload, BackupManagementTypeGenericProtectionPolicy, BackupManagementTypeMAB, BackupManagementTypeProtectionPolicy}
}
// MonthOfYear enumerates the values for month of year.
type MonthOfYear string
const (
// MonthOfYearApril ...
MonthOfYearApril MonthOfYear = "April"
// MonthOfYearAugust ...
MonthOfYearAugust MonthOfYear = "August"
// MonthOfYearDecember ...
MonthOfYearDecember MonthOfYear = "December"
// MonthOfYearFebruary ...
MonthOfYearFebruary MonthOfYear = "February"
// MonthOfYearInvalid ...
MonthOfYearInvalid MonthOfYear = "Invalid"
// MonthOfYearJanuary ...
MonthOfYearJanuary MonthOfYear = "January"
// MonthOfYearJuly ...
MonthOfYearJuly MonthOfYear = "July"
// MonthOfYearJune ...
MonthOfYearJune MonthOfYear = "June"
// MonthOfYearMarch ...
MonthOfYearMarch MonthOfYear = "March"
// MonthOfYearMay ...
MonthOfYearMay MonthOfYear = "May"
// MonthOfYearNovember ...
MonthOfYearNovember MonthOfYear = "November"
// MonthOfYearOctober ...
MonthOfYearOctober MonthOfYear = "October"
// MonthOfYearSeptember ...
MonthOfYearSeptember MonthOfYear = "September"
)
// PossibleMonthOfYearValues returns an array of possible values for the MonthOfYear const type.
func PossibleMonthOfYearValues() []MonthOfYear {
return []MonthOfYear{MonthOfYearApril, MonthOfYearAugust, MonthOfYearDecember, MonthOfYearFebruary, MonthOfYearInvalid, MonthOfYearJanuary, MonthOfYearJuly, MonthOfYearJune, MonthOfYearMarch, MonthOfYearMay, MonthOfYearNovember, MonthOfYearOctober, MonthOfYearSeptember}
}
// ObjectType enumerates the values for object type.
type ObjectType string
const (
// ObjectTypeExportJobsOperationResultInfo ...
ObjectTypeExportJobsOperationResultInfo ObjectType = "ExportJobsOperationResultInfo"
// ObjectTypeOperationResultInfo ...
ObjectTypeOperationResultInfo ObjectType = "OperationResultInfo"
// ObjectTypeOperationResultInfoBase ...
ObjectTypeOperationResultInfoBase ObjectType = "OperationResultInfoBase"
)
// PossibleObjectTypeValues returns an array of possible values for the ObjectType const type.
func PossibleObjectTypeValues() []ObjectType {
return []ObjectType{ObjectTypeExportJobsOperationResultInfo, ObjectTypeOperationResultInfo, ObjectTypeOperationResultInfoBase}
}
// ObjectTypeBasicBackupRequest enumerates the values for object type basic backup request.
type ObjectTypeBasicBackupRequest string
const (
// ObjectTypeAzureFileShareBackupRequest ...
ObjectTypeAzureFileShareBackupRequest ObjectTypeBasicBackupRequest = "AzureFileShareBackupRequest"
// ObjectTypeAzureWorkloadBackupRequest ...
ObjectTypeAzureWorkloadBackupRequest ObjectTypeBasicBackupRequest = "AzureWorkloadBackupRequest"
// ObjectTypeBackupRequest ...
ObjectTypeBackupRequest ObjectTypeBasicBackupRequest = "BackupRequest"
// ObjectTypeIaasVMBackupRequest ...
ObjectTypeIaasVMBackupRequest ObjectTypeBasicBackupRequest = "IaasVMBackupRequest"
)
// PossibleObjectTypeBasicBackupRequestValues returns an array of possible values for the ObjectTypeBasicBackupRequest const type.
func PossibleObjectTypeBasicBackupRequestValues() []ObjectTypeBasicBackupRequest {
return []ObjectTypeBasicBackupRequest{ObjectTypeAzureFileShareBackupRequest, ObjectTypeAzureWorkloadBackupRequest, ObjectTypeBackupRequest, ObjectTypeIaasVMBackupRequest}
}
// ObjectTypeBasicILRRequest enumerates the values for object type basic ilr request.
type ObjectTypeBasicILRRequest string
const (
// ObjectTypeIaasVMILRRegistrationRequest ...
ObjectTypeIaasVMILRRegistrationRequest ObjectTypeBasicILRRequest = "IaasVMILRRegistrationRequest"
// ObjectTypeILRRequest ...
ObjectTypeILRRequest ObjectTypeBasicILRRequest = "ILRRequest"
)
// PossibleObjectTypeBasicILRRequestValues returns an array of possible values for the ObjectTypeBasicILRRequest const type.
func PossibleObjectTypeBasicILRRequestValues() []ObjectTypeBasicILRRequest {
return []ObjectTypeBasicILRRequest{ObjectTypeIaasVMILRRegistrationRequest, ObjectTypeILRRequest}
}
// ObjectTypeBasicOperationStatusExtendedInfo enumerates the values for object type basic operation status
// extended info.
type ObjectTypeBasicOperationStatusExtendedInfo string
const (
// ObjectTypeOperationStatusExtendedInfo ...
ObjectTypeOperationStatusExtendedInfo ObjectTypeBasicOperationStatusExtendedInfo = "OperationStatusExtendedInfo"
// ObjectTypeOperationStatusJobExtendedInfo ...
ObjectTypeOperationStatusJobExtendedInfo ObjectTypeBasicOperationStatusExtendedInfo = "OperationStatusJobExtendedInfo"
// ObjectTypeOperationStatusJobsExtendedInfo ...
ObjectTypeOperationStatusJobsExtendedInfo ObjectTypeBasicOperationStatusExtendedInfo = "OperationStatusJobsExtendedInfo"
// ObjectTypeOperationStatusProvisionILRExtendedInfo ...
ObjectTypeOperationStatusProvisionILRExtendedInfo ObjectTypeBasicOperationStatusExtendedInfo = "OperationStatusProvisionILRExtendedInfo"
)
// PossibleObjectTypeBasicOperationStatusExtendedInfoValues returns an array of possible values for the ObjectTypeBasicOperationStatusExtendedInfo const type.
func PossibleObjectTypeBasicOperationStatusExtendedInfoValues() []ObjectTypeBasicOperationStatusExtendedInfo {
return []ObjectTypeBasicOperationStatusExtendedInfo{ObjectTypeOperationStatusExtendedInfo, ObjectTypeOperationStatusJobExtendedInfo, ObjectTypeOperationStatusJobsExtendedInfo, ObjectTypeOperationStatusProvisionILRExtendedInfo}
}
// ObjectTypeBasicRecoveryPoint enumerates the values for object type basic recovery point.
type ObjectTypeBasicRecoveryPoint string
const (
// ObjectTypeAzureFileShareRecoveryPoint ...
ObjectTypeAzureFileShareRecoveryPoint ObjectTypeBasicRecoveryPoint = "AzureFileShareRecoveryPoint"
// ObjectTypeAzureWorkloadRecoveryPoint ...
ObjectTypeAzureWorkloadRecoveryPoint ObjectTypeBasicRecoveryPoint = "AzureWorkloadRecoveryPoint"
// ObjectTypeAzureWorkloadSQLPointInTimeRecoveryPoint ...
ObjectTypeAzureWorkloadSQLPointInTimeRecoveryPoint ObjectTypeBasicRecoveryPoint = "AzureWorkloadSQLPointInTimeRecoveryPoint"
// ObjectTypeAzureWorkloadSQLRecoveryPoint ...
ObjectTypeAzureWorkloadSQLRecoveryPoint ObjectTypeBasicRecoveryPoint = "AzureWorkloadSQLRecoveryPoint"
// ObjectTypeGenericRecoveryPoint ...
ObjectTypeGenericRecoveryPoint ObjectTypeBasicRecoveryPoint = "GenericRecoveryPoint"
// ObjectTypeIaasVMRecoveryPoint ...
ObjectTypeIaasVMRecoveryPoint ObjectTypeBasicRecoveryPoint = "IaasVMRecoveryPoint"
// ObjectTypeRecoveryPoint ...
ObjectTypeRecoveryPoint ObjectTypeBasicRecoveryPoint = "RecoveryPoint"
)
// PossibleObjectTypeBasicRecoveryPointValues returns an array of possible values for the ObjectTypeBasicRecoveryPoint const type.
func PossibleObjectTypeBasicRecoveryPointValues() []ObjectTypeBasicRecoveryPoint {
return []ObjectTypeBasicRecoveryPoint{ObjectTypeAzureFileShareRecoveryPoint, ObjectTypeAzureWorkloadRecoveryPoint, ObjectTypeAzureWorkloadSQLPointInTimeRecoveryPoint, ObjectTypeAzureWorkloadSQLRecoveryPoint, ObjectTypeGenericRecoveryPoint, ObjectTypeIaasVMRecoveryPoint, ObjectTypeRecoveryPoint}
}
// ObjectTypeBasicRestoreRequest enumerates the values for object type basic restore request.
type ObjectTypeBasicRestoreRequest string
const (
// ObjectTypeAzureFileShareRestoreRequest ...
ObjectTypeAzureFileShareRestoreRequest ObjectTypeBasicRestoreRequest = "AzureFileShareRestoreRequest"
// ObjectTypeAzureWorkloadRestoreRequest ...
ObjectTypeAzureWorkloadRestoreRequest ObjectTypeBasicRestoreRequest = "AzureWorkloadRestoreRequest"
// ObjectTypeAzureWorkloadSQLPointInTimeRestoreRequest ...
ObjectTypeAzureWorkloadSQLPointInTimeRestoreRequest ObjectTypeBasicRestoreRequest = "AzureWorkloadSQLPointInTimeRestoreRequest"
// ObjectTypeAzureWorkloadSQLRestoreRequest ...
ObjectTypeAzureWorkloadSQLRestoreRequest ObjectTypeBasicRestoreRequest = "AzureWorkloadSQLRestoreRequest"
// ObjectTypeIaasVMRestoreRequest ...
ObjectTypeIaasVMRestoreRequest ObjectTypeBasicRestoreRequest = "IaasVMRestoreRequest"
// ObjectTypeRestoreRequest ...
ObjectTypeRestoreRequest ObjectTypeBasicRestoreRequest = "RestoreRequest"
)
// PossibleObjectTypeBasicRestoreRequestValues returns an array of possible values for the ObjectTypeBasicRestoreRequest const type.
func PossibleObjectTypeBasicRestoreRequestValues() []ObjectTypeBasicRestoreRequest {
return []ObjectTypeBasicRestoreRequest{ObjectTypeAzureFileShareRestoreRequest, ObjectTypeAzureWorkloadRestoreRequest, ObjectTypeAzureWorkloadSQLPointInTimeRestoreRequest, ObjectTypeAzureWorkloadSQLRestoreRequest, ObjectTypeIaasVMRestoreRequest, ObjectTypeRestoreRequest}
}
// OperationStatusValues enumerates the values for operation status values.
type OperationStatusValues string
const (
// OperationStatusValuesCanceled ...
OperationStatusValuesCanceled OperationStatusValues = "Canceled"
// OperationStatusValuesFailed ...
OperationStatusValuesFailed OperationStatusValues = "Failed"
// OperationStatusValuesInProgress ...
OperationStatusValuesInProgress OperationStatusValues = "InProgress"
// OperationStatusValuesInvalid ...
OperationStatusValuesInvalid OperationStatusValues = "Invalid"
// OperationStatusValuesSucceeded ...
OperationStatusValuesSucceeded OperationStatusValues = "Succeeded"
)
// PossibleOperationStatusValuesValues returns an array of possible values for the OperationStatusValues const type.
func PossibleOperationStatusValuesValues() []OperationStatusValues {
return []OperationStatusValues{OperationStatusValuesCanceled, OperationStatusValuesFailed, OperationStatusValuesInProgress, OperationStatusValuesInvalid, OperationStatusValuesSucceeded}
}
// OverwriteOptions enumerates the values for overwrite options.
type OverwriteOptions string
const (
// OverwriteOptionsFailOnConflict ...
OverwriteOptionsFailOnConflict OverwriteOptions = "FailOnConflict"
// OverwriteOptionsInvalid ...
OverwriteOptionsInvalid OverwriteOptions = "Invalid"
// OverwriteOptionsOverwrite ...
OverwriteOptionsOverwrite OverwriteOptions = "Overwrite"
)
// PossibleOverwriteOptionsValues returns an array of possible values for the OverwriteOptions const type.
func PossibleOverwriteOptionsValues() []OverwriteOptions {
return []OverwriteOptions{OverwriteOptionsFailOnConflict, OverwriteOptionsInvalid, OverwriteOptionsOverwrite}
}
// ProtectableContainerType enumerates the values for protectable container type.
type ProtectableContainerType string
const (
// ProtectableContainerTypeProtectableContainer ...
ProtectableContainerTypeProtectableContainer ProtectableContainerType = "ProtectableContainer"
// ProtectableContainerTypeStorageContainer ...
ProtectableContainerTypeStorageContainer ProtectableContainerType = "StorageContainer"
// ProtectableContainerTypeVMAppContainer ...
ProtectableContainerTypeVMAppContainer ProtectableContainerType = "VMAppContainer"
)
// PossibleProtectableContainerTypeValues returns an array of possible values for the ProtectableContainerType const type.
func PossibleProtectableContainerTypeValues() []ProtectableContainerType {
return []ProtectableContainerType{ProtectableContainerTypeProtectableContainer, ProtectableContainerTypeStorageContainer, ProtectableContainerTypeVMAppContainer}
}
// ProtectableItemType enumerates the values for protectable item type.
type ProtectableItemType string
const (
// ProtectableItemTypeAzureFileShare ...
ProtectableItemTypeAzureFileShare ProtectableItemType = "AzureFileShare"
// ProtectableItemTypeAzureVMWorkloadProtectableItem ...
ProtectableItemTypeAzureVMWorkloadProtectableItem ProtectableItemType = "AzureVmWorkloadProtectableItem"
// ProtectableItemTypeIaaSVMProtectableItem ...
ProtectableItemTypeIaaSVMProtectableItem ProtectableItemType = "IaaSVMProtectableItem"
// ProtectableItemTypeMicrosoftClassicComputevirtualMachines ...
ProtectableItemTypeMicrosoftClassicComputevirtualMachines ProtectableItemType = "Microsoft.ClassicCompute/virtualMachines"
// ProtectableItemTypeMicrosoftComputevirtualMachines ...
ProtectableItemTypeMicrosoftComputevirtualMachines ProtectableItemType = "Microsoft.Compute/virtualMachines"
// ProtectableItemTypeSQLAvailabilityGroupContainer ...
ProtectableItemTypeSQLAvailabilityGroupContainer ProtectableItemType = "SQLAvailabilityGroupContainer"
// ProtectableItemTypeSQLDataBase ...
ProtectableItemTypeSQLDataBase ProtectableItemType = "SQLDataBase"
// ProtectableItemTypeSQLInstance ...
ProtectableItemTypeSQLInstance ProtectableItemType = "SQLInstance"
// ProtectableItemTypeWorkloadProtectableItem ...
ProtectableItemTypeWorkloadProtectableItem ProtectableItemType = "WorkloadProtectableItem"
)
// PossibleProtectableItemTypeValues returns an array of possible values for the ProtectableItemType const type.
func PossibleProtectableItemTypeValues() []ProtectableItemType {
return []ProtectableItemType{ProtectableItemTypeAzureFileShare, ProtectableItemTypeAzureVMWorkloadProtectableItem, ProtectableItemTypeIaaSVMProtectableItem, ProtectableItemTypeMicrosoftClassicComputevirtualMachines, ProtectableItemTypeMicrosoftComputevirtualMachines, ProtectableItemTypeSQLAvailabilityGroupContainer, ProtectableItemTypeSQLDataBase, ProtectableItemTypeSQLInstance, ProtectableItemTypeWorkloadProtectableItem}
}
// ProtectedItemHealthStatus enumerates the values for protected item health status.
type ProtectedItemHealthStatus string
const (
// ProtectedItemHealthStatusHealthy ...
ProtectedItemHealthStatusHealthy ProtectedItemHealthStatus = "Healthy"
// ProtectedItemHealthStatusInvalid ...
ProtectedItemHealthStatusInvalid ProtectedItemHealthStatus = "Invalid"
// ProtectedItemHealthStatusIRPending ...
ProtectedItemHealthStatusIRPending ProtectedItemHealthStatus = "IRPending"
// ProtectedItemHealthStatusNotReachable ...
ProtectedItemHealthStatusNotReachable ProtectedItemHealthStatus = "NotReachable"
// ProtectedItemHealthStatusUnhealthy ...
ProtectedItemHealthStatusUnhealthy ProtectedItemHealthStatus = "Unhealthy"
)
// PossibleProtectedItemHealthStatusValues returns an array of possible values for the ProtectedItemHealthStatus const type.
func PossibleProtectedItemHealthStatusValues() []ProtectedItemHealthStatus {
return []ProtectedItemHealthStatus{ProtectedItemHealthStatusHealthy, ProtectedItemHealthStatusInvalid, ProtectedItemHealthStatusIRPending, ProtectedItemHealthStatusNotReachable, ProtectedItemHealthStatusUnhealthy}
}
// ProtectedItemState enumerates the values for protected item state.
type ProtectedItemState string
const (
// ProtectedItemStateInvalid ...
ProtectedItemStateInvalid ProtectedItemState = "Invalid"
// ProtectedItemStateIRPending ...
ProtectedItemStateIRPending ProtectedItemState = "IRPending"
// ProtectedItemStateProtected ...
ProtectedItemStateProtected ProtectedItemState = "Protected"
// ProtectedItemStateProtectionError ...
ProtectedItemStateProtectionError ProtectedItemState = "ProtectionError"
// ProtectedItemStateProtectionPaused ...
ProtectedItemStateProtectionPaused ProtectedItemState = "ProtectionPaused"
// ProtectedItemStateProtectionStopped ...
ProtectedItemStateProtectionStopped ProtectedItemState = "ProtectionStopped"
)
// PossibleProtectedItemStateValues returns an array of possible values for the ProtectedItemState const type.
func PossibleProtectedItemStateValues() []ProtectedItemState {
return []ProtectedItemState{ProtectedItemStateInvalid, ProtectedItemStateIRPending, ProtectedItemStateProtected, ProtectedItemStateProtectionError, ProtectedItemStateProtectionPaused, ProtectedItemStateProtectionStopped}
}
// ProtectedItemType enumerates the values for protected item type.
type ProtectedItemType string
const (
// ProtectedItemTypeAzureFileShareProtectedItem ...
ProtectedItemTypeAzureFileShareProtectedItem ProtectedItemType = "AzureFileShareProtectedItem"
// ProtectedItemTypeAzureIaaSVMProtectedItem ...
ProtectedItemTypeAzureIaaSVMProtectedItem ProtectedItemType = "AzureIaaSVMProtectedItem"
// ProtectedItemTypeAzureVMWorkloadSQLDatabase ...
ProtectedItemTypeAzureVMWorkloadSQLDatabase ProtectedItemType = "AzureVmWorkloadSQLDatabase"
// ProtectedItemTypeDPMProtectedItem ...
ProtectedItemTypeDPMProtectedItem ProtectedItemType = "DPMProtectedItem"
// ProtectedItemTypeGenericProtectedItem ...
ProtectedItemTypeGenericProtectedItem ProtectedItemType = "GenericProtectedItem"
// ProtectedItemTypeMabFileFolderProtectedItem ...
ProtectedItemTypeMabFileFolderProtectedItem ProtectedItemType = "MabFileFolderProtectedItem"
// ProtectedItemTypeMicrosoftClassicComputevirtualMachines ...
ProtectedItemTypeMicrosoftClassicComputevirtualMachines ProtectedItemType = "Microsoft.ClassicCompute/virtualMachines"
// ProtectedItemTypeMicrosoftComputevirtualMachines ...
ProtectedItemTypeMicrosoftComputevirtualMachines ProtectedItemType = "Microsoft.Compute/virtualMachines"
// ProtectedItemTypeMicrosoftSqlserversdatabases ...
ProtectedItemTypeMicrosoftSqlserversdatabases ProtectedItemType = "Microsoft.Sql/servers/databases"
// ProtectedItemTypeProtectedItem ...
ProtectedItemTypeProtectedItem ProtectedItemType = "ProtectedItem"
)
// PossibleProtectedItemTypeValues returns an array of possible values for the ProtectedItemType const type.
func PossibleProtectedItemTypeValues() []ProtectedItemType {
return []ProtectedItemType{ProtectedItemTypeAzureFileShareProtectedItem, ProtectedItemTypeAzureIaaSVMProtectedItem, ProtectedItemTypeAzureVMWorkloadSQLDatabase, ProtectedItemTypeDPMProtectedItem, ProtectedItemTypeGenericProtectedItem, ProtectedItemTypeMabFileFolderProtectedItem, ProtectedItemTypeMicrosoftClassicComputevirtualMachines, ProtectedItemTypeMicrosoftComputevirtualMachines, ProtectedItemTypeMicrosoftSqlserversdatabases, ProtectedItemTypeProtectedItem}
}
// ProtectionIntentItemType enumerates the values for protection intent item type.
type ProtectionIntentItemType string
const (
// ProtectionIntentItemTypeAzureResourceItem ...
ProtectionIntentItemTypeAzureResourceItem ProtectionIntentItemType = "AzureResourceItem"
// ProtectionIntentItemTypeProtectionIntent ...
ProtectionIntentItemTypeProtectionIntent ProtectionIntentItemType = "ProtectionIntent"
)
// PossibleProtectionIntentItemTypeValues returns an array of possible values for the ProtectionIntentItemType const type.
func PossibleProtectionIntentItemTypeValues() []ProtectionIntentItemType {
return []ProtectionIntentItemType{ProtectionIntentItemTypeAzureResourceItem, ProtectionIntentItemTypeProtectionIntent}
}
// ProtectionState enumerates the values for protection state.
type ProtectionState string
const (
// ProtectionStateInvalid ...
ProtectionStateInvalid ProtectionState = "Invalid"
// ProtectionStateIRPending ...
ProtectionStateIRPending ProtectionState = "IRPending"
// ProtectionStateProtected ...
ProtectionStateProtected ProtectionState = "Protected"
// ProtectionStateProtectionError ...
ProtectionStateProtectionError ProtectionState = "ProtectionError"
// ProtectionStateProtectionPaused ...
ProtectionStateProtectionPaused ProtectionState = "ProtectionPaused"
// ProtectionStateProtectionStopped ...
ProtectionStateProtectionStopped ProtectionState = "ProtectionStopped"
)
// PossibleProtectionStateValues returns an array of possible values for the ProtectionState const type.
func PossibleProtectionStateValues() []ProtectionState {
return []ProtectionState{ProtectionStateInvalid, ProtectionStateIRPending, ProtectionStateProtected, ProtectionStateProtectionError, ProtectionStateProtectionPaused, ProtectionStateProtectionStopped}
}
// ProtectionStatus enumerates the values for protection status.
type ProtectionStatus string
const (
// ProtectionStatusInvalid ...
ProtectionStatusInvalid ProtectionStatus = "Invalid"
// ProtectionStatusNotProtected ...
ProtectionStatusNotProtected ProtectionStatus = "NotProtected"
// ProtectionStatusProtected ...
ProtectionStatusProtected ProtectionStatus = "Protected"
// ProtectionStatusProtecting ...
ProtectionStatusProtecting ProtectionStatus = "Protecting"
// ProtectionStatusProtectionFailed ...
ProtectionStatusProtectionFailed ProtectionStatus = "ProtectionFailed"
)
// PossibleProtectionStatusValues returns an array of possible values for the ProtectionStatus const type.
func PossibleProtectionStatusValues() []ProtectionStatus {
return []ProtectionStatus{ProtectionStatusInvalid, ProtectionStatusNotProtected, ProtectionStatusProtected, ProtectionStatusProtecting, ProtectionStatusProtectionFailed}
}
// RecoveryPointTierStatus enumerates the values for recovery point tier status.
type RecoveryPointTierStatus string
const (
// RecoveryPointTierStatusDeleted ...
RecoveryPointTierStatusDeleted RecoveryPointTierStatus = "Deleted"
// RecoveryPointTierStatusDisabled ...
RecoveryPointTierStatusDisabled RecoveryPointTierStatus = "Disabled"
// RecoveryPointTierStatusInvalid ...
RecoveryPointTierStatusInvalid RecoveryPointTierStatus = "Invalid"
// RecoveryPointTierStatusValid ...
RecoveryPointTierStatusValid RecoveryPointTierStatus = "Valid"
)
// PossibleRecoveryPointTierStatusValues returns an array of possible values for the RecoveryPointTierStatus const type.
func PossibleRecoveryPointTierStatusValues() []RecoveryPointTierStatus {
return []RecoveryPointTierStatus{RecoveryPointTierStatusDeleted, RecoveryPointTierStatusDisabled, RecoveryPointTierStatusInvalid, RecoveryPointTierStatusValid}
}
// RecoveryPointTierType enumerates the values for recovery point tier type.
type RecoveryPointTierType string
const (
// RecoveryPointTierTypeHardenedRP ...
RecoveryPointTierTypeHardenedRP RecoveryPointTierType = "HardenedRP"
// RecoveryPointTierTypeInstantRP ...
RecoveryPointTierTypeInstantRP RecoveryPointTierType = "InstantRP"
// RecoveryPointTierTypeInvalid ...
RecoveryPointTierTypeInvalid RecoveryPointTierType = "Invalid"
)
// PossibleRecoveryPointTierTypeValues returns an array of possible values for the RecoveryPointTierType const type.
func PossibleRecoveryPointTierTypeValues() []RecoveryPointTierType {
return []RecoveryPointTierType{RecoveryPointTierTypeHardenedRP, RecoveryPointTierTypeInstantRP, RecoveryPointTierTypeInvalid}
}
// RecoveryType enumerates the values for recovery type.
type RecoveryType string
const (
// RecoveryTypeAlternateLocation ...
RecoveryTypeAlternateLocation RecoveryType = "AlternateLocation"
// RecoveryTypeInvalid ...
RecoveryTypeInvalid RecoveryType = "Invalid"
// RecoveryTypeOriginalLocation ...
RecoveryTypeOriginalLocation RecoveryType = "OriginalLocation"
// RecoveryTypeRestoreDisks ...
RecoveryTypeRestoreDisks RecoveryType = "RestoreDisks"
)
// PossibleRecoveryTypeValues returns an array of possible values for the RecoveryType const type.
func PossibleRecoveryTypeValues() []RecoveryType {
return []RecoveryType{RecoveryTypeAlternateLocation, RecoveryTypeInvalid, RecoveryTypeOriginalLocation, RecoveryTypeRestoreDisks}
}
// RestorePointQueryType enumerates the values for restore point query type.
type RestorePointQueryType string
const (
// RestorePointQueryTypeAll ...
RestorePointQueryTypeAll RestorePointQueryType = "All"
// RestorePointQueryTypeDifferential ...
RestorePointQueryTypeDifferential RestorePointQueryType = "Differential"
// RestorePointQueryTypeFull ...
RestorePointQueryTypeFull RestorePointQueryType = "Full"
// RestorePointQueryTypeFullAndDifferential ...
RestorePointQueryTypeFullAndDifferential RestorePointQueryType = "FullAndDifferential"
// RestorePointQueryTypeInvalid ...
RestorePointQueryTypeInvalid RestorePointQueryType = "Invalid"
// RestorePointQueryTypeLog ...
RestorePointQueryTypeLog RestorePointQueryType = "Log"
)
// PossibleRestorePointQueryTypeValues returns an array of possible values for the RestorePointQueryType const type.
func PossibleRestorePointQueryTypeValues() []RestorePointQueryType {
return []RestorePointQueryType{RestorePointQueryTypeAll, RestorePointQueryTypeDifferential, RestorePointQueryTypeFull, RestorePointQueryTypeFullAndDifferential, RestorePointQueryTypeInvalid, RestorePointQueryTypeLog}
}
// RestorePointType enumerates the values for restore point type.
type RestorePointType string
const (
// RestorePointTypeDifferential ...
RestorePointTypeDifferential RestorePointType = "Differential"
// RestorePointTypeFull ...
RestorePointTypeFull RestorePointType = "Full"
// RestorePointTypeInvalid ...
RestorePointTypeInvalid RestorePointType = "Invalid"
// RestorePointTypeLog ...
RestorePointTypeLog RestorePointType = "Log"
)
// PossibleRestorePointTypeValues returns an array of possible values for the RestorePointType const type.
func PossibleRestorePointTypeValues() []RestorePointType {
return []RestorePointType{RestorePointTypeDifferential, RestorePointTypeFull, RestorePointTypeInvalid, RestorePointTypeLog}
}
// RestoreRequestType enumerates the values for restore request type.
type RestoreRequestType string
const (
// RestoreRequestTypeFullShareRestore ...
RestoreRequestTypeFullShareRestore RestoreRequestType = "FullShareRestore"
// RestoreRequestTypeInvalid ...
RestoreRequestTypeInvalid RestoreRequestType = "Invalid"
// RestoreRequestTypeItemLevelRestore ...
RestoreRequestTypeItemLevelRestore RestoreRequestType = "ItemLevelRestore"
)
// PossibleRestoreRequestTypeValues returns an array of possible values for the RestoreRequestType const type.
func PossibleRestoreRequestTypeValues() []RestoreRequestType {
return []RestoreRequestType{RestoreRequestTypeFullShareRestore, RestoreRequestTypeInvalid, RestoreRequestTypeItemLevelRestore}
}
// RetentionDurationType enumerates the values for retention duration type.
type RetentionDurationType string
const (
// RetentionDurationTypeDays ...
RetentionDurationTypeDays RetentionDurationType = "Days"
// RetentionDurationTypeInvalid ...
RetentionDurationTypeInvalid RetentionDurationType = "Invalid"
// RetentionDurationTypeMonths ...
RetentionDurationTypeMonths RetentionDurationType = "Months"
// RetentionDurationTypeWeeks ...
RetentionDurationTypeWeeks RetentionDurationType = "Weeks"
// RetentionDurationTypeYears ...
RetentionDurationTypeYears RetentionDurationType = "Years"
)
// PossibleRetentionDurationTypeValues returns an array of possible values for the RetentionDurationType const type.
func PossibleRetentionDurationTypeValues() []RetentionDurationType {
return []RetentionDurationType{RetentionDurationTypeDays, RetentionDurationTypeInvalid, RetentionDurationTypeMonths, RetentionDurationTypeWeeks, RetentionDurationTypeYears}
}
// RetentionPolicyType enumerates the values for retention policy type.
type RetentionPolicyType string
const (
// RetentionPolicyTypeLongTermRetentionPolicy ...
RetentionPolicyTypeLongTermRetentionPolicy RetentionPolicyType = "LongTermRetentionPolicy"
// RetentionPolicyTypeRetentionPolicy ...
RetentionPolicyTypeRetentionPolicy RetentionPolicyType = "RetentionPolicy"
// RetentionPolicyTypeSimpleRetentionPolicy ...
RetentionPolicyTypeSimpleRetentionPolicy RetentionPolicyType = "SimpleRetentionPolicy"
)
// PossibleRetentionPolicyTypeValues returns an array of possible values for the RetentionPolicyType const type.
func PossibleRetentionPolicyTypeValues() []RetentionPolicyType {
return []RetentionPolicyType{RetentionPolicyTypeLongTermRetentionPolicy, RetentionPolicyTypeRetentionPolicy, RetentionPolicyTypeSimpleRetentionPolicy}
}
// RetentionScheduleFormat enumerates the values for retention schedule format.
type RetentionScheduleFormat string
const (
// RetentionScheduleFormatDaily ...
RetentionScheduleFormatDaily RetentionScheduleFormat = "Daily"
// RetentionScheduleFormatInvalid ...
RetentionScheduleFormatInvalid RetentionScheduleFormat = "Invalid"
// RetentionScheduleFormatWeekly ...
RetentionScheduleFormatWeekly RetentionScheduleFormat = "Weekly"
)
// PossibleRetentionScheduleFormatValues returns an array of possible values for the RetentionScheduleFormat const type.
func PossibleRetentionScheduleFormatValues() []RetentionScheduleFormat {
return []RetentionScheduleFormat{RetentionScheduleFormatDaily, RetentionScheduleFormatInvalid, RetentionScheduleFormatWeekly}
}
// SchedulePolicyType enumerates the values for schedule policy type.
type SchedulePolicyType string
const (
// SchedulePolicyTypeLogSchedulePolicy ...
SchedulePolicyTypeLogSchedulePolicy SchedulePolicyType = "LogSchedulePolicy"
// SchedulePolicyTypeLongTermSchedulePolicy ...
SchedulePolicyTypeLongTermSchedulePolicy SchedulePolicyType = "LongTermSchedulePolicy"
// SchedulePolicyTypeSchedulePolicy ...
SchedulePolicyTypeSchedulePolicy SchedulePolicyType = "SchedulePolicy"
// SchedulePolicyTypeSimpleSchedulePolicy ...
SchedulePolicyTypeSimpleSchedulePolicy SchedulePolicyType = "SimpleSchedulePolicy"
)
// PossibleSchedulePolicyTypeValues returns an array of possible values for the SchedulePolicyType const type.
func PossibleSchedulePolicyTypeValues() []SchedulePolicyType {
return []SchedulePolicyType{SchedulePolicyTypeLogSchedulePolicy, SchedulePolicyTypeLongTermSchedulePolicy, SchedulePolicyTypeSchedulePolicy, SchedulePolicyTypeSimpleSchedulePolicy}
}
// ScheduleRunType enumerates the values for schedule run type.
type ScheduleRunType string
const (
// ScheduleRunTypeDaily ...
ScheduleRunTypeDaily ScheduleRunType = "Daily"
// ScheduleRunTypeInvalid ...
ScheduleRunTypeInvalid ScheduleRunType = "Invalid"
// ScheduleRunTypeWeekly ...
ScheduleRunTypeWeekly ScheduleRunType = "Weekly"
)
// PossibleScheduleRunTypeValues returns an array of possible values for the ScheduleRunType const type.
func PossibleScheduleRunTypeValues() []ScheduleRunType {
return []ScheduleRunType{ScheduleRunTypeDaily, ScheduleRunTypeInvalid, ScheduleRunTypeWeekly}
}
// SQLDataDirectoryType enumerates the values for sql data directory type.
type SQLDataDirectoryType string
const (
// SQLDataDirectoryTypeData ...
SQLDataDirectoryTypeData SQLDataDirectoryType = "Data"
// SQLDataDirectoryTypeInvalid ...
SQLDataDirectoryTypeInvalid SQLDataDirectoryType = "Invalid"
// SQLDataDirectoryTypeLog ...
SQLDataDirectoryTypeLog SQLDataDirectoryType = "Log"
)
// PossibleSQLDataDirectoryTypeValues returns an array of possible values for the SQLDataDirectoryType const type.
func PossibleSQLDataDirectoryTypeValues() []SQLDataDirectoryType {
return []SQLDataDirectoryType{SQLDataDirectoryTypeData, SQLDataDirectoryTypeInvalid, SQLDataDirectoryTypeLog}
}
// StorageType enumerates the values for storage type.
type StorageType string
const (
// StorageTypeGeoRedundant ...
StorageTypeGeoRedundant StorageType = "GeoRedundant"
// StorageTypeInvalid ...
StorageTypeInvalid StorageType = "Invalid"
// StorageTypeLocallyRedundant ...
StorageTypeLocallyRedundant StorageType = "LocallyRedundant"
)
// PossibleStorageTypeValues returns an array of possible values for the StorageType const type.
func PossibleStorageTypeValues() []StorageType {
return []StorageType{StorageTypeGeoRedundant, StorageTypeInvalid, StorageTypeLocallyRedundant}
}
// StorageTypeState enumerates the values for storage type state.
type StorageTypeState string
const (
// StorageTypeStateInvalid ...
StorageTypeStateInvalid StorageTypeState = "Invalid"
// StorageTypeStateLocked ...
StorageTypeStateLocked StorageTypeState = "Locked"
// StorageTypeStateUnlocked ...
StorageTypeStateUnlocked StorageTypeState = "Unlocked"
)
// PossibleStorageTypeStateValues returns an array of possible values for the StorageTypeState const type.
func PossibleStorageTypeStateValues() []StorageTypeState {
return []StorageTypeState{StorageTypeStateInvalid, StorageTypeStateLocked, StorageTypeStateUnlocked}
}
// SupportStatus enumerates the values for support status.
type SupportStatus string
const (
// SupportStatusDefaultOFF ...
SupportStatusDefaultOFF SupportStatus = "DefaultOFF"
// SupportStatusDefaultON ...
SupportStatusDefaultON SupportStatus = "DefaultON"
// SupportStatusInvalid ...
SupportStatusInvalid SupportStatus = "Invalid"
// SupportStatusNotSupported ...
SupportStatusNotSupported SupportStatus = "NotSupported"
// SupportStatusSupported ...
SupportStatusSupported SupportStatus = "Supported"
)
// PossibleSupportStatusValues returns an array of possible values for the SupportStatus const type.
func PossibleSupportStatusValues() []SupportStatus {
return []SupportStatus{SupportStatusDefaultOFF, SupportStatusDefaultON, SupportStatusInvalid, SupportStatusNotSupported, SupportStatusSupported}
}
// Type enumerates the values for type.
type Type string
const (
// TypeBackupProtectedItemCountSummary ...
TypeBackupProtectedItemCountSummary Type = "BackupProtectedItemCountSummary"
// TypeBackupProtectionContainerCountSummary ...
TypeBackupProtectionContainerCountSummary Type = "BackupProtectionContainerCountSummary"
// TypeInvalid ...
TypeInvalid Type = "Invalid"
)
// PossibleTypeValues returns an array of possible values for the Type const type.
func PossibleTypeValues() []Type {
return []Type{TypeBackupProtectedItemCountSummary, TypeBackupProtectionContainerCountSummary, TypeInvalid}
}
// TypeEnum enumerates the values for type enum.
type TypeEnum string
const (
// TypeEnumCopyOnlyFull ...
TypeEnumCopyOnlyFull TypeEnum = "CopyOnlyFull"
// TypeEnumDifferential ...
TypeEnumDifferential TypeEnum = "Differential"
// TypeEnumFull ...
TypeEnumFull TypeEnum = "Full"
// TypeEnumInvalid ...
TypeEnumInvalid TypeEnum = "Invalid"
// TypeEnumLog ...
TypeEnumLog TypeEnum = "Log"
)
// PossibleTypeEnumValues returns an array of possible values for the TypeEnum const type.
func PossibleTypeEnumValues() []TypeEnum {
return []TypeEnum{TypeEnumCopyOnlyFull, TypeEnumDifferential, TypeEnumFull, TypeEnumInvalid, TypeEnumLog}
}
// UsagesUnit enumerates the values for usages unit.
type UsagesUnit string
const (
// Bytes ...
Bytes UsagesUnit = "Bytes"
// BytesPerSecond ...
BytesPerSecond UsagesUnit = "BytesPerSecond"
// Count ...
Count UsagesUnit = "Count"
// CountPerSecond ...
CountPerSecond UsagesUnit = "CountPerSecond"
// Percent ...
Percent UsagesUnit = "Percent"
// Seconds ...
Seconds UsagesUnit = "Seconds"
)
// PossibleUsagesUnitValues returns an array of possible values for the UsagesUnit const type.
func PossibleUsagesUnitValues() []UsagesUnit {
return []UsagesUnit{Bytes, BytesPerSecond, Count, CountPerSecond, Percent, Seconds}
}
// ValidationStatus enumerates the values for validation status.
type ValidationStatus string
const (
// ValidationStatusFailed ...
ValidationStatusFailed ValidationStatus = "Failed"
// ValidationStatusInvalid ...
ValidationStatusInvalid ValidationStatus = "Invalid"
// ValidationStatusSucceeded ...
ValidationStatusSucceeded ValidationStatus = "Succeeded"
)
// PossibleValidationStatusValues returns an array of possible values for the ValidationStatus const type.
func PossibleValidationStatusValues() []ValidationStatus {
return []ValidationStatus{ValidationStatusFailed, ValidationStatusInvalid, ValidationStatusSucceeded}
}
// WeekOfMonth enumerates the values for week of month.
type WeekOfMonth string
const (
// First ...
First WeekOfMonth = "First"
// Fourth ...
Fourth WeekOfMonth = "Fourth"
// Last ...
Last WeekOfMonth = "Last"
// Second ...
Second WeekOfMonth = "Second"
// Third ...
Third WeekOfMonth = "Third"
)
// PossibleWeekOfMonthValues returns an array of possible values for the WeekOfMonth const type.
func PossibleWeekOfMonthValues() []WeekOfMonth {
return []WeekOfMonth{First, Fourth, Last, Second, Third}
}
// WorkloadItemType enumerates the values for workload item type.
type WorkloadItemType string
const (
// WorkloadItemTypeInvalid ...
WorkloadItemTypeInvalid WorkloadItemType = "Invalid"
// WorkloadItemTypeSQLDataBase ...
WorkloadItemTypeSQLDataBase WorkloadItemType = "SQLDataBase"
// WorkloadItemTypeSQLInstance ...
WorkloadItemTypeSQLInstance WorkloadItemType = "SQLInstance"
)
// PossibleWorkloadItemTypeValues returns an array of possible values for the WorkloadItemType const type.
func PossibleWorkloadItemTypeValues() []WorkloadItemType {
return []WorkloadItemType{WorkloadItemTypeInvalid, WorkloadItemTypeSQLDataBase, WorkloadItemTypeSQLInstance}
}
// WorkloadItemTypeBasicWorkloadItem enumerates the values for workload item type basic workload item.
type WorkloadItemTypeBasicWorkloadItem string
const (
// WorkloadItemTypeAzureVMWorkloadItem ...
WorkloadItemTypeAzureVMWorkloadItem WorkloadItemTypeBasicWorkloadItem = "AzureVmWorkloadItem"
// WorkloadItemTypeSQLDataBase1 ...
WorkloadItemTypeSQLDataBase1 WorkloadItemTypeBasicWorkloadItem = "SQLDataBase"
// WorkloadItemTypeSQLInstance1 ...
WorkloadItemTypeSQLInstance1 WorkloadItemTypeBasicWorkloadItem = "SQLInstance"
// WorkloadItemTypeWorkloadItem ...
WorkloadItemTypeWorkloadItem WorkloadItemTypeBasicWorkloadItem = "WorkloadItem"
)
// PossibleWorkloadItemTypeBasicWorkloadItemValues returns an array of possible values for the WorkloadItemTypeBasicWorkloadItem const type.
func PossibleWorkloadItemTypeBasicWorkloadItemValues() []WorkloadItemTypeBasicWorkloadItem {
return []WorkloadItemTypeBasicWorkloadItem{WorkloadItemTypeAzureVMWorkloadItem, WorkloadItemTypeSQLDataBase1, WorkloadItemTypeSQLInstance1, WorkloadItemTypeWorkloadItem}
}
// WorkloadType enumerates the values for workload type.
type WorkloadType string
const (
// WorkloadTypeAzureFileShare ...
WorkloadTypeAzureFileShare WorkloadType = "AzureFileShare"
// WorkloadTypeAzureSQLDb ...
WorkloadTypeAzureSQLDb WorkloadType = "AzureSqlDb"
// WorkloadTypeClient ...
WorkloadTypeClient WorkloadType = "Client"
// WorkloadTypeExchange ...
WorkloadTypeExchange WorkloadType = "Exchange"
// WorkloadTypeFileFolder ...
WorkloadTypeFileFolder WorkloadType = "FileFolder"
// WorkloadTypeGenericDataSource ...
WorkloadTypeGenericDataSource WorkloadType = "GenericDataSource"
// WorkloadTypeInvalid ...
WorkloadTypeInvalid WorkloadType = "Invalid"
// WorkloadTypeSharepoint ...
WorkloadTypeSharepoint WorkloadType = "Sharepoint"
// WorkloadTypeSQLDataBase ...
WorkloadTypeSQLDataBase WorkloadType = "SQLDataBase"
// WorkloadTypeSQLDB ...
WorkloadTypeSQLDB WorkloadType = "SQLDB"
// WorkloadTypeSystemState ...
WorkloadTypeSystemState WorkloadType = "SystemState"
// WorkloadTypeVM ...
WorkloadTypeVM WorkloadType = "VM"
// WorkloadTypeVMwareVM ...
WorkloadTypeVMwareVM WorkloadType = "VMwareVM"
)
// PossibleWorkloadTypeValues returns an array of possible values for the WorkloadType const type.
func PossibleWorkloadTypeValues() []WorkloadType {
return []WorkloadType{WorkloadTypeAzureFileShare, WorkloadTypeAzureSQLDb, WorkloadTypeClient, WorkloadTypeExchange, WorkloadTypeFileFolder, WorkloadTypeGenericDataSource, WorkloadTypeInvalid, WorkloadTypeSharepoint, WorkloadTypeSQLDataBase, WorkloadTypeSQLDB, WorkloadTypeSystemState, WorkloadTypeVM, WorkloadTypeVMwareVM}
}
// AzureBackupServerContainer azureBackupServer (DPMVenus) workload-specific protection container.
type AzureBackupServerContainer struct {
// CanReRegister - Specifies whether the container is re-registrable.
CanReRegister *bool `json:"canReRegister,omitempty"`
// ContainerID - ID of container.
ContainerID *string `json:"containerId,omitempty"`
// ProtectedItemCount - Number of protected items in the BackupEngine
ProtectedItemCount *int64 `json:"protectedItemCount,omitempty"`
// DpmAgentVersion - Backup engine Agent version
DpmAgentVersion *string `json:"dpmAgentVersion,omitempty"`
// DpmServers - List of BackupEngines protecting the container
DpmServers *[]string `json:"dpmServers,omitempty"`
// UpgradeAvailable - To check if upgrade available
UpgradeAvailable *bool `json:"upgradeAvailable,omitempty"`
// ProtectionStatus - Protection status of the container.
ProtectionStatus *string `json:"protectionStatus,omitempty"`
// ExtendedInfo - Extended Info of the container.
ExtendedInfo *DPMContainerExtendedInfo `json:"extendedInfo,omitempty"`
// FriendlyName - Friendly name of the container.
FriendlyName *string `json:"friendlyName,omitempty"`
// BackupManagementType - Type of backup managemenent for the container. Possible values include: 'ManagementTypeInvalid', 'ManagementTypeAzureIaasVM', 'ManagementTypeMAB', 'ManagementTypeDPM', 'ManagementTypeAzureBackupServer', 'ManagementTypeAzureSQL', 'ManagementTypeAzureStorage', 'ManagementTypeAzureWorkload', 'ManagementTypeDefaultBackup'
BackupManagementType ManagementType `json:"backupManagementType,omitempty"`
// RegistrationStatus - Status of registration of the container with the Recovery Services Vault.
RegistrationStatus *string `json:"registrationStatus,omitempty"`
// HealthStatus - Status of health of the container.
HealthStatus *string `json:"healthStatus,omitempty"`
// ContainerType - Possible values include: 'ContainerTypeProtectionContainer', 'ContainerTypeAzureBackupServerContainer1', 'ContainerTypeMicrosoftClassicComputevirtualMachines', 'ContainerTypeMicrosoftComputevirtualMachines', 'ContainerTypeSQLAGWorkLoadContainer1', 'ContainerTypeAzureSQLContainer1', 'ContainerTypeStorageContainer1', 'ContainerTypeVMAppContainer1', 'ContainerTypeAzureWorkloadContainer', 'ContainerTypeDPMContainer1', 'ContainerTypeGenericContainer1', 'ContainerTypeIaaSVMContainer', 'ContainerTypeMABWindowsContainer'
ContainerType ContainerTypeBasicProtectionContainer `json:"containerType,omitempty"`
}
// MarshalJSON is the custom marshaler for AzureBackupServerContainer.
func (absc AzureBackupServerContainer) MarshalJSON() ([]byte, error) {
absc.ContainerType = ContainerTypeAzureBackupServerContainer1
objectMap := make(map[string]interface{})
if absc.CanReRegister != nil {
objectMap["canReRegister"] = absc.CanReRegister
}
if absc.ContainerID != nil {
objectMap["containerId"] = absc.ContainerID
}
if absc.ProtectedItemCount != nil {
objectMap["protectedItemCount"] = absc.ProtectedItemCount
}
if absc.DpmAgentVersion != nil {
objectMap["dpmAgentVersion"] = absc.DpmAgentVersion
}
if absc.DpmServers != nil {
objectMap["dpmServers"] = absc.DpmServers
}
if absc.UpgradeAvailable != nil {
objectMap["upgradeAvailable"] = absc.UpgradeAvailable
}
if absc.ProtectionStatus != nil {
objectMap["protectionStatus"] = absc.ProtectionStatus
}
if absc.ExtendedInfo != nil {
objectMap["extendedInfo"] = absc.ExtendedInfo
}
if absc.FriendlyName != nil {
objectMap["friendlyName"] = absc.FriendlyName
}
if absc.BackupManagementType != "" {
objectMap["backupManagementType"] = absc.BackupManagementType
}
if absc.RegistrationStatus != nil {
objectMap["registrationStatus"] = absc.RegistrationStatus
}
if absc.HealthStatus != nil {
objectMap["healthStatus"] = absc.HealthStatus
}
if absc.ContainerType != "" {
objectMap["containerType"] = absc.ContainerType
}
return json.Marshal(objectMap)
}
// AsAzureBackupServerContainer is the BasicProtectionContainer implementation for AzureBackupServerContainer.
func (absc AzureBackupServerContainer) AsAzureBackupServerContainer() (*AzureBackupServerContainer, bool) {
return &absc, true
}
// AsAzureIaaSClassicComputeVMContainer is the BasicProtectionContainer implementation for AzureBackupServerContainer.
func (absc AzureBackupServerContainer) AsAzureIaaSClassicComputeVMContainer() (*AzureIaaSClassicComputeVMContainer, bool) {
return nil, false
}
// AsAzureIaaSComputeVMContainer is the BasicProtectionContainer implementation for AzureBackupServerContainer.
func (absc AzureBackupServerContainer) AsAzureIaaSComputeVMContainer() (*AzureIaaSComputeVMContainer, bool) {
return nil, false
}
// AsAzureSQLAGWorkloadContainerProtectionContainer is the BasicProtectionContainer implementation for AzureBackupServerContainer.
func (absc AzureBackupServerContainer) AsAzureSQLAGWorkloadContainerProtectionContainer() (*AzureSQLAGWorkloadContainerProtectionContainer, bool) {
return nil, false
}
// AsAzureSQLContainer is the BasicProtectionContainer implementation for AzureBackupServerContainer.
func (absc AzureBackupServerContainer) AsAzureSQLContainer() (*AzureSQLContainer, bool) {
return nil, false
}
// AsAzureStorageContainer is the BasicProtectionContainer implementation for AzureBackupServerContainer.
func (absc AzureBackupServerContainer) AsAzureStorageContainer() (*AzureStorageContainer, bool) {
return nil, false
}
// AsAzureVMAppContainerProtectionContainer is the BasicProtectionContainer implementation for AzureBackupServerContainer.
func (absc AzureBackupServerContainer) AsAzureVMAppContainerProtectionContainer() (*AzureVMAppContainerProtectionContainer, bool) {
return nil, false
}
// AsAzureWorkloadContainer is the BasicProtectionContainer implementation for AzureBackupServerContainer.
func (absc AzureBackupServerContainer) AsAzureWorkloadContainer() (*AzureWorkloadContainer, bool) {
return nil, false
}
// AsBasicAzureWorkloadContainer is the BasicProtectionContainer implementation for AzureBackupServerContainer.
func (absc AzureBackupServerContainer) AsBasicAzureWorkloadContainer() (BasicAzureWorkloadContainer, bool) {
return nil, false
}
// AsDpmContainer is the BasicProtectionContainer implementation for AzureBackupServerContainer.
func (absc AzureBackupServerContainer) AsDpmContainer() (*DpmContainer, bool) {
return nil, false
}
// AsGenericContainer is the BasicProtectionContainer implementation for AzureBackupServerContainer.
func (absc AzureBackupServerContainer) AsGenericContainer() (*GenericContainer, bool) {
return nil, false
}
// AsIaaSVMContainer is the BasicProtectionContainer implementation for AzureBackupServerContainer.
func (absc AzureBackupServerContainer) AsIaaSVMContainer() (*IaaSVMContainer, bool) {
return nil, false
}
// AsBasicIaaSVMContainer is the BasicProtectionContainer implementation for AzureBackupServerContainer.
func (absc AzureBackupServerContainer) AsBasicIaaSVMContainer() (BasicIaaSVMContainer, bool) {
return nil, false
}
// AsMabContainer is the BasicProtectionContainer implementation for AzureBackupServerContainer.
func (absc AzureBackupServerContainer) AsMabContainer() (*MabContainer, bool) {
return nil, false
}
// AsProtectionContainer is the BasicProtectionContainer implementation for AzureBackupServerContainer.
func (absc AzureBackupServerContainer) AsProtectionContainer() (*ProtectionContainer, bool) {
return nil, false
}
// AsBasicProtectionContainer is the BasicProtectionContainer implementation for AzureBackupServerContainer.
func (absc AzureBackupServerContainer) AsBasicProtectionContainer() (BasicProtectionContainer, bool) {
return &absc, true
}
// AzureBackupServerEngine backup engine type when Azure Backup Server is used to manage the backups.
type AzureBackupServerEngine struct {
// FriendlyName - Friendly name of the backup engine.
FriendlyName *string `json:"friendlyName,omitempty"`
// BackupManagementType - Type of backup management for the backup engine. Possible values include: 'ManagementTypeInvalid', 'ManagementTypeAzureIaasVM', 'ManagementTypeMAB', 'ManagementTypeDPM', 'ManagementTypeAzureBackupServer', 'ManagementTypeAzureSQL', 'ManagementTypeAzureStorage', 'ManagementTypeAzureWorkload', 'ManagementTypeDefaultBackup'
BackupManagementType ManagementType `json:"backupManagementType,omitempty"`
// RegistrationStatus - Registration status of the backup engine with the Recovery Services Vault.
RegistrationStatus *string `json:"registrationStatus,omitempty"`
// BackupEngineState - Status of the backup engine with the Recovery Services Vault. = {Active/Deleting/DeleteFailed}
BackupEngineState *string `json:"backupEngineState,omitempty"`
// HealthStatus - Backup status of the backup engine.
HealthStatus *string `json:"healthStatus,omitempty"`
// CanReRegister - Flag indicating if the backup engine be registered, once already registered.
CanReRegister *bool `json:"canReRegister,omitempty"`
// BackupEngineID - ID of the backup engine.
BackupEngineID *string `json:"backupEngineId,omitempty"`
// DpmVersion - Backup engine version
DpmVersion *string `json:"dpmVersion,omitempty"`
// AzureBackupAgentVersion - Backup agent version
AzureBackupAgentVersion *string `json:"azureBackupAgentVersion,omitempty"`
// IsAzureBackupAgentUpgradeAvailable - To check if backup agent upgrade available
IsAzureBackupAgentUpgradeAvailable *bool `json:"isAzureBackupAgentUpgradeAvailable,omitempty"`
// IsDpmUpgradeAvailable - To check if backup engine upgrade available
IsDpmUpgradeAvailable *bool `json:"isDpmUpgradeAvailable,omitempty"`
// ExtendedInfo - Extended info of the backupengine
ExtendedInfo *EngineExtendedInfo `json:"extendedInfo,omitempty"`
// BackupEngineType - Possible values include: 'BackupEngineTypeBackupEngineBase', 'BackupEngineTypeAzureBackupServerEngine', 'BackupEngineTypeDpmBackupEngine'
BackupEngineType EngineType `json:"backupEngineType,omitempty"`
}
// MarshalJSON is the custom marshaler for AzureBackupServerEngine.
func (abse AzureBackupServerEngine) MarshalJSON() ([]byte, error) {
abse.BackupEngineType = BackupEngineTypeAzureBackupServerEngine
objectMap := make(map[string]interface{})
if abse.FriendlyName != nil {
objectMap["friendlyName"] = abse.FriendlyName
}
if abse.BackupManagementType != "" {
objectMap["backupManagementType"] = abse.BackupManagementType
}
if abse.RegistrationStatus != nil {
objectMap["registrationStatus"] = abse.RegistrationStatus
}
if abse.BackupEngineState != nil {
objectMap["backupEngineState"] = abse.BackupEngineState
}
if abse.HealthStatus != nil {
objectMap["healthStatus"] = abse.HealthStatus
}
if abse.CanReRegister != nil {
objectMap["canReRegister"] = abse.CanReRegister
}
if abse.BackupEngineID != nil {
objectMap["backupEngineId"] = abse.BackupEngineID
}
if abse.DpmVersion != nil {
objectMap["dpmVersion"] = abse.DpmVersion
}
if abse.AzureBackupAgentVersion != nil {
objectMap["azureBackupAgentVersion"] = abse.AzureBackupAgentVersion
}
if abse.IsAzureBackupAgentUpgradeAvailable != nil {
objectMap["isAzureBackupAgentUpgradeAvailable"] = abse.IsAzureBackupAgentUpgradeAvailable
}
if abse.IsDpmUpgradeAvailable != nil {
objectMap["isDpmUpgradeAvailable"] = abse.IsDpmUpgradeAvailable
}
if abse.ExtendedInfo != nil {
objectMap["extendedInfo"] = abse.ExtendedInfo
}
if abse.BackupEngineType != "" {
objectMap["backupEngineType"] = abse.BackupEngineType
}
return json.Marshal(objectMap)
}
// AsAzureBackupServerEngine is the BasicEngineBase implementation for AzureBackupServerEngine.
func (abse AzureBackupServerEngine) AsAzureBackupServerEngine() (*AzureBackupServerEngine, bool) {
return &abse, true
}
// AsDpmBackupEngine is the BasicEngineBase implementation for AzureBackupServerEngine.
func (abse AzureBackupServerEngine) AsDpmBackupEngine() (*DpmBackupEngine, bool) {
return nil, false
}
// AsEngineBase is the BasicEngineBase implementation for AzureBackupServerEngine.
func (abse AzureBackupServerEngine) AsEngineBase() (*EngineBase, bool) {
return nil, false
}
// AsBasicEngineBase is the BasicEngineBase implementation for AzureBackupServerEngine.
func (abse AzureBackupServerEngine) AsBasicEngineBase() (BasicEngineBase, bool) {
return &abse, true
}
// AzureFileShareBackupRequest azureFileShare workload-specific backup request.
type AzureFileShareBackupRequest struct {
// RecoveryPointExpiryTimeInUTC - Backup copy will expire after the time specified (UTC).
RecoveryPointExpiryTimeInUTC *date.Time `json:"recoveryPointExpiryTimeInUTC,omitempty"`
// ObjectType - Possible values include: 'ObjectTypeBackupRequest', 'ObjectTypeAzureFileShareBackupRequest', 'ObjectTypeAzureWorkloadBackupRequest', 'ObjectTypeIaasVMBackupRequest'
ObjectType ObjectTypeBasicBackupRequest `json:"objectType,omitempty"`
}
// MarshalJSON is the custom marshaler for AzureFileShareBackupRequest.
func (afsbr AzureFileShareBackupRequest) MarshalJSON() ([]byte, error) {
afsbr.ObjectType = ObjectTypeAzureFileShareBackupRequest
objectMap := make(map[string]interface{})
if afsbr.RecoveryPointExpiryTimeInUTC != nil {
objectMap["recoveryPointExpiryTimeInUTC"] = afsbr.RecoveryPointExpiryTimeInUTC
}
if afsbr.ObjectType != "" {
objectMap["objectType"] = afsbr.ObjectType
}
return json.Marshal(objectMap)
}
// AsAzureFileShareBackupRequest is the BasicRequest implementation for AzureFileShareBackupRequest.
func (afsbr AzureFileShareBackupRequest) AsAzureFileShareBackupRequest() (*AzureFileShareBackupRequest, bool) {
return &afsbr, true
}
// AsAzureWorkloadBackupRequest is the BasicRequest implementation for AzureFileShareBackupRequest.
func (afsbr AzureFileShareBackupRequest) AsAzureWorkloadBackupRequest() (*AzureWorkloadBackupRequest, bool) {
return nil, false
}
// AsIaasVMBackupRequest is the BasicRequest implementation for AzureFileShareBackupRequest.
func (afsbr AzureFileShareBackupRequest) AsIaasVMBackupRequest() (*IaasVMBackupRequest, bool) {
return nil, false
}
// AsRequest is the BasicRequest implementation for AzureFileShareBackupRequest.
func (afsbr AzureFileShareBackupRequest) AsRequest() (*Request, bool) {
return nil, false
}
// AsBasicRequest is the BasicRequest implementation for AzureFileShareBackupRequest.
func (afsbr AzureFileShareBackupRequest) AsBasicRequest() (BasicRequest, bool) {
return &afsbr, true
}
// AzureFileShareProtectableItem protectable item for Azure Fileshare workloads.
type AzureFileShareProtectableItem struct {
// ParentContainerFabricID - Full Fabric ID of container to which this protectable item belongs. For example, ARM ID.
ParentContainerFabricID *string `json:"parentContainerFabricId,omitempty"`
// ParentContainerFriendlyName - Friendly name of container to which this protectable item belongs.
ParentContainerFriendlyName *string `json:"parentContainerFriendlyName,omitempty"`
// AzureFileShareType - File Share type XSync or XSMB. Possible values include: 'Invalid', 'XSMB', 'XSync'
AzureFileShareType AzureFileShareType `json:"azureFileShareType,omitempty"`
// BackupManagementType - Type of backup managemenent to backup an item.
BackupManagementType *string `json:"backupManagementType,omitempty"`
// WorkloadType - Type of workload for the backup management
WorkloadType *string `json:"workloadType,omitempty"`
// FriendlyName - Friendly name of the backup item.
FriendlyName *string `json:"friendlyName,omitempty"`
// ProtectionState - State of the back up item. Possible values include: 'ProtectionStatusInvalid', 'ProtectionStatusNotProtected', 'ProtectionStatusProtecting', 'ProtectionStatusProtected', 'ProtectionStatusProtectionFailed'
ProtectionState ProtectionStatus `json:"protectionState,omitempty"`
// ProtectableItemType - Possible values include: 'ProtectableItemTypeWorkloadProtectableItem', 'ProtectableItemTypeAzureFileShare', 'ProtectableItemTypeMicrosoftClassicComputevirtualMachines', 'ProtectableItemTypeMicrosoftComputevirtualMachines', 'ProtectableItemTypeAzureVMWorkloadProtectableItem', 'ProtectableItemTypeSQLAvailabilityGroupContainer', 'ProtectableItemTypeSQLDataBase', 'ProtectableItemTypeSQLInstance', 'ProtectableItemTypeIaaSVMProtectableItem'
ProtectableItemType ProtectableItemType `json:"protectableItemType,omitempty"`
}
// MarshalJSON is the custom marshaler for AzureFileShareProtectableItem.
func (afspi AzureFileShareProtectableItem) MarshalJSON() ([]byte, error) {
afspi.ProtectableItemType = ProtectableItemTypeAzureFileShare
objectMap := make(map[string]interface{})
if afspi.ParentContainerFabricID != nil {
objectMap["parentContainerFabricId"] = afspi.ParentContainerFabricID
}
if afspi.ParentContainerFriendlyName != nil {
objectMap["parentContainerFriendlyName"] = afspi.ParentContainerFriendlyName
}
if afspi.AzureFileShareType != "" {
objectMap["azureFileShareType"] = afspi.AzureFileShareType
}
if afspi.BackupManagementType != nil {
objectMap["backupManagementType"] = afspi.BackupManagementType
}
if afspi.WorkloadType != nil {
objectMap["workloadType"] = afspi.WorkloadType
}
if afspi.FriendlyName != nil {
objectMap["friendlyName"] = afspi.FriendlyName
}
if afspi.ProtectionState != "" {
objectMap["protectionState"] = afspi.ProtectionState
}
if afspi.ProtectableItemType != "" {
objectMap["protectableItemType"] = afspi.ProtectableItemType
}
return json.Marshal(objectMap)
}
// AsAzureFileShareProtectableItem is the BasicWorkloadProtectableItem implementation for AzureFileShareProtectableItem.
func (afspi AzureFileShareProtectableItem) AsAzureFileShareProtectableItem() (*AzureFileShareProtectableItem, bool) {
return &afspi, true
}
// AsAzureIaaSClassicComputeVMProtectableItem is the BasicWorkloadProtectableItem implementation for AzureFileShareProtectableItem.
func (afspi AzureFileShareProtectableItem) AsAzureIaaSClassicComputeVMProtectableItem() (*AzureIaaSClassicComputeVMProtectableItem, bool) {
return nil, false
}
// AsAzureIaaSComputeVMProtectableItem is the BasicWorkloadProtectableItem implementation for AzureFileShareProtectableItem.
func (afspi AzureFileShareProtectableItem) AsAzureIaaSComputeVMProtectableItem() (*AzureIaaSComputeVMProtectableItem, bool) {
return nil, false
}
// AsAzureVMWorkloadProtectableItem is the BasicWorkloadProtectableItem implementation for AzureFileShareProtectableItem.
func (afspi AzureFileShareProtectableItem) AsAzureVMWorkloadProtectableItem() (*AzureVMWorkloadProtectableItem, bool) {
return nil, false
}
// AsBasicAzureVMWorkloadProtectableItem is the BasicWorkloadProtectableItem implementation for AzureFileShareProtectableItem.
func (afspi AzureFileShareProtectableItem) AsBasicAzureVMWorkloadProtectableItem() (BasicAzureVMWorkloadProtectableItem, bool) {
return nil, false
}
// AsAzureVMWorkloadSQLAvailabilityGroupProtectableItem is the BasicWorkloadProtectableItem implementation for AzureFileShareProtectableItem.
func (afspi AzureFileShareProtectableItem) AsAzureVMWorkloadSQLAvailabilityGroupProtectableItem() (*AzureVMWorkloadSQLAvailabilityGroupProtectableItem, bool) {
return nil, false
}
// AsAzureVMWorkloadSQLDatabaseProtectableItem is the BasicWorkloadProtectableItem implementation for AzureFileShareProtectableItem.
func (afspi AzureFileShareProtectableItem) AsAzureVMWorkloadSQLDatabaseProtectableItem() (*AzureVMWorkloadSQLDatabaseProtectableItem, bool) {
return nil, false
}
// AsAzureVMWorkloadSQLInstanceProtectableItem is the BasicWorkloadProtectableItem implementation for AzureFileShareProtectableItem.
func (afspi AzureFileShareProtectableItem) AsAzureVMWorkloadSQLInstanceProtectableItem() (*AzureVMWorkloadSQLInstanceProtectableItem, bool) {
return nil, false
}
// AsIaaSVMProtectableItem is the BasicWorkloadProtectableItem implementation for AzureFileShareProtectableItem.
func (afspi AzureFileShareProtectableItem) AsIaaSVMProtectableItem() (*IaaSVMProtectableItem, bool) {
return nil, false
}
// AsBasicIaaSVMProtectableItem is the BasicWorkloadProtectableItem implementation for AzureFileShareProtectableItem.
func (afspi AzureFileShareProtectableItem) AsBasicIaaSVMProtectableItem() (BasicIaaSVMProtectableItem, bool) {
return nil, false
}
// AsWorkloadProtectableItem is the BasicWorkloadProtectableItem implementation for AzureFileShareProtectableItem.
func (afspi AzureFileShareProtectableItem) AsWorkloadProtectableItem() (*WorkloadProtectableItem, bool) {
return nil, false
}
// AsBasicWorkloadProtectableItem is the BasicWorkloadProtectableItem implementation for AzureFileShareProtectableItem.
func (afspi AzureFileShareProtectableItem) AsBasicWorkloadProtectableItem() (BasicWorkloadProtectableItem, bool) {
return &afspi, true
}
// AzureFileshareProtectedItem azure File Share workload-specific backup item.
type AzureFileshareProtectedItem struct {
// FriendlyName - Friendly name of the fileshare represented by this backup item.
FriendlyName *string `json:"friendlyName,omitempty"`
// ProtectionStatus - Backup status of this backup item.
ProtectionStatus *string `json:"protectionStatus,omitempty"`
// ProtectionState - Backup state of this backup item. Possible values include: 'ProtectionStateInvalid', 'ProtectionStateIRPending', 'ProtectionStateProtected', 'ProtectionStateProtectionError', 'ProtectionStateProtectionStopped', 'ProtectionStateProtectionPaused'
ProtectionState ProtectionState `json:"protectionState,omitempty"`
// HealthStatus - backups running status for this backup item. Possible values include: 'HealthStatusPassed', 'HealthStatusActionRequired', 'HealthStatusActionSuggested', 'HealthStatusInvalid'
HealthStatus HealthStatus `json:"healthStatus,omitempty"`
// LastBackupStatus - Last backup operation status. Possible values: Healthy, Unhealthy.
LastBackupStatus *string `json:"lastBackupStatus,omitempty"`
// LastBackupTime - Timestamp of the last backup operation on this backup item.
LastBackupTime *date.Time `json:"lastBackupTime,omitempty"`
// ExtendedInfo - Additional information with this backup item.
ExtendedInfo *AzureFileshareProtectedItemExtendedInfo `json:"extendedInfo,omitempty"`
// BackupManagementType - Type of backup managemenent for the backed up item. Possible values include: 'ManagementTypeInvalid', 'ManagementTypeAzureIaasVM', 'ManagementTypeMAB', 'ManagementTypeDPM', 'ManagementTypeAzureBackupServer', 'ManagementTypeAzureSQL', 'ManagementTypeAzureStorage', 'ManagementTypeAzureWorkload', 'ManagementTypeDefaultBackup'
BackupManagementType ManagementType `json:"backupManagementType,omitempty"`
// WorkloadType - Type of workload this item represents. Possible values include: 'DataSourceTypeInvalid', 'DataSourceTypeVM', 'DataSourceTypeFileFolder', 'DataSourceTypeAzureSQLDb', 'DataSourceTypeSQLDB', 'DataSourceTypeExchange', 'DataSourceTypeSharepoint', 'DataSourceTypeVMwareVM', 'DataSourceTypeSystemState', 'DataSourceTypeClient', 'DataSourceTypeGenericDataSource', 'DataSourceTypeSQLDataBase', 'DataSourceTypeAzureFileShare'
WorkloadType DataSourceType `json:"workloadType,omitempty"`
// ContainerName - Unique name of container
ContainerName *string `json:"containerName,omitempty"`
// SourceResourceID - ARM ID of the resource to be backed up.
SourceResourceID *string `json:"sourceResourceId,omitempty"`
// PolicyID - ID of the backup policy with which this item is backed up.
PolicyID *string `json:"policyId,omitempty"`
// LastRecoveryPoint - Timestamp when the last (latest) backup copy was created for this backup item.
LastRecoveryPoint *date.Time `json:"lastRecoveryPoint,omitempty"`
// BackupSetName - Name of the backup set the backup item belongs to
BackupSetName *string `json:"backupSetName,omitempty"`
// ProtectedItemType - Possible values include: 'ProtectedItemTypeProtectedItem', 'ProtectedItemTypeAzureFileShareProtectedItem', 'ProtectedItemTypeMicrosoftClassicComputevirtualMachines', 'ProtectedItemTypeMicrosoftComputevirtualMachines', 'ProtectedItemTypeAzureIaaSVMProtectedItem', 'ProtectedItemTypeMicrosoftSqlserversdatabases', 'ProtectedItemTypeAzureVMWorkloadSQLDatabase', 'ProtectedItemTypeDPMProtectedItem', 'ProtectedItemTypeGenericProtectedItem', 'ProtectedItemTypeMabFileFolderProtectedItem'
ProtectedItemType ProtectedItemType `json:"protectedItemType,omitempty"`
}
// MarshalJSON is the custom marshaler for AzureFileshareProtectedItem.
func (afpi AzureFileshareProtectedItem) MarshalJSON() ([]byte, error) {
afpi.ProtectedItemType = ProtectedItemTypeAzureFileShareProtectedItem
objectMap := make(map[string]interface{})
if afpi.FriendlyName != nil {
objectMap["friendlyName"] = afpi.FriendlyName
}
if afpi.ProtectionStatus != nil {
objectMap["protectionStatus"] = afpi.ProtectionStatus
}
if afpi.ProtectionState != "" {
objectMap["protectionState"] = afpi.ProtectionState
}
if afpi.HealthStatus != "" {
objectMap["healthStatus"] = afpi.HealthStatus
}
if afpi.LastBackupStatus != nil {
objectMap["lastBackupStatus"] = afpi.LastBackupStatus
}
if afpi.LastBackupTime != nil {
objectMap["lastBackupTime"] = afpi.LastBackupTime
}
if afpi.ExtendedInfo != nil {
objectMap["extendedInfo"] = afpi.ExtendedInfo
}
if afpi.BackupManagementType != "" {
objectMap["backupManagementType"] = afpi.BackupManagementType
}
if afpi.WorkloadType != "" {
objectMap["workloadType"] = afpi.WorkloadType
}
if afpi.ContainerName != nil {
objectMap["containerName"] = afpi.ContainerName
}
if afpi.SourceResourceID != nil {
objectMap["sourceResourceId"] = afpi.SourceResourceID
}
if afpi.PolicyID != nil {
objectMap["policyId"] = afpi.PolicyID
}
if afpi.LastRecoveryPoint != nil {
objectMap["lastRecoveryPoint"] = afpi.LastRecoveryPoint
}
if afpi.BackupSetName != nil {
objectMap["backupSetName"] = afpi.BackupSetName
}
if afpi.ProtectedItemType != "" {
objectMap["protectedItemType"] = afpi.ProtectedItemType
}
return json.Marshal(objectMap)
}
// AsAzureFileshareProtectedItem is the BasicProtectedItem implementation for AzureFileshareProtectedItem.
func (afpi AzureFileshareProtectedItem) AsAzureFileshareProtectedItem() (*AzureFileshareProtectedItem, bool) {
return &afpi, true
}
// AsAzureIaaSClassicComputeVMProtectedItem is the BasicProtectedItem implementation for AzureFileshareProtectedItem.
func (afpi AzureFileshareProtectedItem) AsAzureIaaSClassicComputeVMProtectedItem() (*AzureIaaSClassicComputeVMProtectedItem, bool) {
return nil, false
}
// AsAzureIaaSComputeVMProtectedItem is the BasicProtectedItem implementation for AzureFileshareProtectedItem.
func (afpi AzureFileshareProtectedItem) AsAzureIaaSComputeVMProtectedItem() (*AzureIaaSComputeVMProtectedItem, bool) {
return nil, false
}
// AsAzureIaaSVMProtectedItem is the BasicProtectedItem implementation for AzureFileshareProtectedItem.
func (afpi AzureFileshareProtectedItem) AsAzureIaaSVMProtectedItem() (*AzureIaaSVMProtectedItem, bool) {
return nil, false
}
// AsBasicAzureIaaSVMProtectedItem is the BasicProtectedItem implementation for AzureFileshareProtectedItem.
func (afpi AzureFileshareProtectedItem) AsBasicAzureIaaSVMProtectedItem() (BasicAzureIaaSVMProtectedItem, bool) {
return nil, false
}
// AsAzureSQLProtectedItem is the BasicProtectedItem implementation for AzureFileshareProtectedItem.
func (afpi AzureFileshareProtectedItem) AsAzureSQLProtectedItem() (*AzureSQLProtectedItem, bool) {
return nil, false
}
// AsAzureVMWorkloadSQLDatabaseProtectedItem is the BasicProtectedItem implementation for AzureFileshareProtectedItem.
func (afpi AzureFileshareProtectedItem) AsAzureVMWorkloadSQLDatabaseProtectedItem() (*AzureVMWorkloadSQLDatabaseProtectedItem, bool) {
return nil, false
}
// AsDPMProtectedItem is the BasicProtectedItem implementation for AzureFileshareProtectedItem.
func (afpi AzureFileshareProtectedItem) AsDPMProtectedItem() (*DPMProtectedItem, bool) {
return nil, false
}
// AsGenericProtectedItem is the BasicProtectedItem implementation for AzureFileshareProtectedItem.
func (afpi AzureFileshareProtectedItem) AsGenericProtectedItem() (*GenericProtectedItem, bool) {
return nil, false
}
// AsMabFileFolderProtectedItem is the BasicProtectedItem implementation for AzureFileshareProtectedItem.
func (afpi AzureFileshareProtectedItem) AsMabFileFolderProtectedItem() (*MabFileFolderProtectedItem, bool) {
return nil, false
}
// AsProtectedItem is the BasicProtectedItem implementation for AzureFileshareProtectedItem.
func (afpi AzureFileshareProtectedItem) AsProtectedItem() (*ProtectedItem, bool) {
return nil, false
}
// AsBasicProtectedItem is the BasicProtectedItem implementation for AzureFileshareProtectedItem.
func (afpi AzureFileshareProtectedItem) AsBasicProtectedItem() (BasicProtectedItem, bool) {
return &afpi, true
}
// AzureFileshareProtectedItemExtendedInfo additional information about Azure File Share backup item.
type AzureFileshareProtectedItemExtendedInfo struct {
// OldestRecoveryPoint - The oldest backup copy available for this item in the service.
OldestRecoveryPoint *date.Time `json:"oldestRecoveryPoint,omitempty"`
// RecoveryPointCount - Number of available backup copies associated with this backup item.
RecoveryPointCount *int32 `json:"recoveryPointCount,omitempty"`
// PolicyState - Indicates consistency of policy object and policy applied to this backup item.
PolicyState *string `json:"policyState,omitempty"`
}
// AzureFileShareProtectionPolicy azureStorage backup policy.
type AzureFileShareProtectionPolicy struct {
// WorkLoadType - Type of workload for the backup management
WorkLoadType *string `json:"workLoadType,omitempty"`
// SchedulePolicy - Backup schedule specified as part of backup policy.
SchedulePolicy BasicSchedulePolicy `json:"schedulePolicy,omitempty"`
// RetentionPolicy - Retention policy with the details on backup copy retention ranges.
RetentionPolicy BasicRetentionPolicy `json:"retentionPolicy,omitempty"`
// TimeZone - TimeZone optional input as string. For example: TimeZone = "Pacific Standard Time".
TimeZone *string `json:"timeZone,omitempty"`
// ProtectedItemsCount - Number of items associated with this policy.
ProtectedItemsCount *int32 `json:"protectedItemsCount,omitempty"`
// BackupManagementType - Possible values include: 'BackupManagementTypeProtectionPolicy', 'BackupManagementTypeAzureStorage', 'BackupManagementTypeAzureIaasVM', 'BackupManagementTypeAzureSQL', 'BackupManagementTypeAzureWorkload', 'BackupManagementTypeGenericProtectionPolicy', 'BackupManagementTypeMAB'
BackupManagementType ManagementTypeBasicProtectionPolicy `json:"backupManagementType,omitempty"`
}
// MarshalJSON is the custom marshaler for AzureFileShareProtectionPolicy.
func (afspp AzureFileShareProtectionPolicy) MarshalJSON() ([]byte, error) {
afspp.BackupManagementType = BackupManagementTypeAzureStorage
objectMap := make(map[string]interface{})
if afspp.WorkLoadType != nil {
objectMap["workLoadType"] = afspp.WorkLoadType
}
objectMap["schedulePolicy"] = afspp.SchedulePolicy
objectMap["retentionPolicy"] = afspp.RetentionPolicy
if afspp.TimeZone != nil {
objectMap["timeZone"] = afspp.TimeZone
}
if afspp.ProtectedItemsCount != nil {
objectMap["protectedItemsCount"] = afspp.ProtectedItemsCount
}
if afspp.BackupManagementType != "" {
objectMap["backupManagementType"] = afspp.BackupManagementType
}
return json.Marshal(objectMap)
}
// AsAzureFileShareProtectionPolicy is the BasicProtectionPolicy implementation for AzureFileShareProtectionPolicy.
func (afspp AzureFileShareProtectionPolicy) AsAzureFileShareProtectionPolicy() (*AzureFileShareProtectionPolicy, bool) {
return &afspp, true
}
// AsAzureIaaSVMProtectionPolicy is the BasicProtectionPolicy implementation for AzureFileShareProtectionPolicy.
func (afspp AzureFileShareProtectionPolicy) AsAzureIaaSVMProtectionPolicy() (*AzureIaaSVMProtectionPolicy, bool) {
return nil, false
}
// AsAzureSQLProtectionPolicy is the BasicProtectionPolicy implementation for AzureFileShareProtectionPolicy.
func (afspp AzureFileShareProtectionPolicy) AsAzureSQLProtectionPolicy() (*AzureSQLProtectionPolicy, bool) {
return nil, false
}
// AsAzureVMWorkloadProtectionPolicy is the BasicProtectionPolicy implementation for AzureFileShareProtectionPolicy.
func (afspp AzureFileShareProtectionPolicy) AsAzureVMWorkloadProtectionPolicy() (*AzureVMWorkloadProtectionPolicy, bool) {
return nil, false
}
// AsGenericProtectionPolicy is the BasicProtectionPolicy implementation for AzureFileShareProtectionPolicy.
func (afspp AzureFileShareProtectionPolicy) AsGenericProtectionPolicy() (*GenericProtectionPolicy, bool) {
return nil, false
}
// AsMabProtectionPolicy is the BasicProtectionPolicy implementation for AzureFileShareProtectionPolicy.
func (afspp AzureFileShareProtectionPolicy) AsMabProtectionPolicy() (*MabProtectionPolicy, bool) {
return nil, false
}
// AsProtectionPolicy is the BasicProtectionPolicy implementation for AzureFileShareProtectionPolicy.
func (afspp AzureFileShareProtectionPolicy) AsProtectionPolicy() (*ProtectionPolicy, bool) {
return nil, false
}
// AsBasicProtectionPolicy is the BasicProtectionPolicy implementation for AzureFileShareProtectionPolicy.
func (afspp AzureFileShareProtectionPolicy) AsBasicProtectionPolicy() (BasicProtectionPolicy, bool) {
return &afspp, true
}
// UnmarshalJSON is the custom unmarshaler for AzureFileShareProtectionPolicy struct.
func (afspp *AzureFileShareProtectionPolicy) UnmarshalJSON(body []byte) error {
var m map[string]*json.RawMessage
err := json.Unmarshal(body, &m)
if err != nil {
return err
}
for k, v := range m {
switch k {
case "workLoadType":
if v != nil {
var workLoadType string
err = json.Unmarshal(*v, &workLoadType)
if err != nil {
return err
}
afspp.WorkLoadType = &workLoadType
}
case "schedulePolicy":
if v != nil {
schedulePolicy, err := unmarshalBasicSchedulePolicy(*v)
if err != nil {
return err
}
afspp.SchedulePolicy = schedulePolicy
}
case "retentionPolicy":
if v != nil {
retentionPolicy, err := unmarshalBasicRetentionPolicy(*v)
if err != nil {
return err
}
afspp.RetentionPolicy = retentionPolicy
}
case "timeZone":
if v != nil {
var timeZone string
err = json.Unmarshal(*v, &timeZone)
if err != nil {
return err
}
afspp.TimeZone = &timeZone
}
case "protectedItemsCount":
if v != nil {
var protectedItemsCount int32
err = json.Unmarshal(*v, &protectedItemsCount)
if err != nil {
return err
}
afspp.ProtectedItemsCount = &protectedItemsCount
}
case "backupManagementType":
if v != nil {
var backupManagementType ManagementTypeBasicProtectionPolicy
err = json.Unmarshal(*v, &backupManagementType)
if err != nil {
return err
}
afspp.BackupManagementType = backupManagementType
}
}
}
return nil
}
// AzureFileShareRecoveryPoint azure File Share workload specific backup copy.
type AzureFileShareRecoveryPoint struct {
// RecoveryPointType - Type of the backup copy. Specifies whether it is a crash consistent backup or app consistent.
RecoveryPointType *string `json:"recoveryPointType,omitempty"`
// RecoveryPointTime - Time at which this backup copy was created.
RecoveryPointTime *date.Time `json:"recoveryPointTime,omitempty"`
// FileShareSnapshotURI - Contains Url to the snapshot of fileshare, if applicable
FileShareSnapshotURI *string `json:"fileShareSnapshotUri,omitempty"`
// ObjectType - Possible values include: 'ObjectTypeRecoveryPoint', 'ObjectTypeAzureFileShareRecoveryPoint', 'ObjectTypeAzureWorkloadRecoveryPoint', 'ObjectTypeAzureWorkloadSQLPointInTimeRecoveryPoint', 'ObjectTypeAzureWorkloadSQLRecoveryPoint', 'ObjectTypeGenericRecoveryPoint', 'ObjectTypeIaasVMRecoveryPoint'
ObjectType ObjectTypeBasicRecoveryPoint `json:"objectType,omitempty"`
}
// MarshalJSON is the custom marshaler for AzureFileShareRecoveryPoint.
func (afsrp AzureFileShareRecoveryPoint) MarshalJSON() ([]byte, error) {
afsrp.ObjectType = ObjectTypeAzureFileShareRecoveryPoint
objectMap := make(map[string]interface{})
if afsrp.RecoveryPointType != nil {
objectMap["recoveryPointType"] = afsrp.RecoveryPointType
}
if afsrp.RecoveryPointTime != nil {
objectMap["recoveryPointTime"] = afsrp.RecoveryPointTime
}
if afsrp.FileShareSnapshotURI != nil {
objectMap["fileShareSnapshotUri"] = afsrp.FileShareSnapshotURI
}
if afsrp.ObjectType != "" {
objectMap["objectType"] = afsrp.ObjectType
}
return json.Marshal(objectMap)
}
// AsAzureFileShareRecoveryPoint is the BasicRecoveryPoint implementation for AzureFileShareRecoveryPoint.
func (afsrp AzureFileShareRecoveryPoint) AsAzureFileShareRecoveryPoint() (*AzureFileShareRecoveryPoint, bool) {
return &afsrp, true
}
// AsAzureWorkloadRecoveryPoint is the BasicRecoveryPoint implementation for AzureFileShareRecoveryPoint.
func (afsrp AzureFileShareRecoveryPoint) AsAzureWorkloadRecoveryPoint() (*AzureWorkloadRecoveryPoint, bool) {
return nil, false
}
// AsBasicAzureWorkloadRecoveryPoint is the BasicRecoveryPoint implementation for AzureFileShareRecoveryPoint.
func (afsrp AzureFileShareRecoveryPoint) AsBasicAzureWorkloadRecoveryPoint() (BasicAzureWorkloadRecoveryPoint, bool) {
return nil, false
}
// AsAzureWorkloadSQLPointInTimeRecoveryPoint is the BasicRecoveryPoint implementation for AzureFileShareRecoveryPoint.
func (afsrp AzureFileShareRecoveryPoint) AsAzureWorkloadSQLPointInTimeRecoveryPoint() (*AzureWorkloadSQLPointInTimeRecoveryPoint, bool) {
return nil, false
}
// AsAzureWorkloadSQLRecoveryPoint is the BasicRecoveryPoint implementation for AzureFileShareRecoveryPoint.
func (afsrp AzureFileShareRecoveryPoint) AsAzureWorkloadSQLRecoveryPoint() (*AzureWorkloadSQLRecoveryPoint, bool) {
return nil, false
}
// AsBasicAzureWorkloadSQLRecoveryPoint is the BasicRecoveryPoint implementation for AzureFileShareRecoveryPoint.
func (afsrp AzureFileShareRecoveryPoint) AsBasicAzureWorkloadSQLRecoveryPoint() (BasicAzureWorkloadSQLRecoveryPoint, bool) {
return nil, false
}
// AsGenericRecoveryPoint is the BasicRecoveryPoint implementation for AzureFileShareRecoveryPoint.
func (afsrp AzureFileShareRecoveryPoint) AsGenericRecoveryPoint() (*GenericRecoveryPoint, bool) {
return nil, false
}
// AsIaasVMRecoveryPoint is the BasicRecoveryPoint implementation for AzureFileShareRecoveryPoint.
func (afsrp AzureFileShareRecoveryPoint) AsIaasVMRecoveryPoint() (*IaasVMRecoveryPoint, bool) {
return nil, false
}
// AsRecoveryPoint is the BasicRecoveryPoint implementation for AzureFileShareRecoveryPoint.
func (afsrp AzureFileShareRecoveryPoint) AsRecoveryPoint() (*RecoveryPoint, bool) {
return nil, false
}
// AsBasicRecoveryPoint is the BasicRecoveryPoint implementation for AzureFileShareRecoveryPoint.
func (afsrp AzureFileShareRecoveryPoint) AsBasicRecoveryPoint() (BasicRecoveryPoint, bool) {
return &afsrp, true
}
// AzureFileShareRestoreRequest azureFileShare Restore Request
type AzureFileShareRestoreRequest struct {
// RecoveryType - Type of this recovery. Possible values include: 'RecoveryTypeInvalid', 'RecoveryTypeOriginalLocation', 'RecoveryTypeAlternateLocation', 'RecoveryTypeRestoreDisks'
RecoveryType RecoveryType `json:"recoveryType,omitempty"`
// SourceResourceID - Source storage account ARM Id
SourceResourceID *string `json:"sourceResourceId,omitempty"`
// CopyOptions - Options to resolve copy conflicts. Possible values include: 'CopyOptionsInvalid', 'CopyOptionsCreateCopy', 'CopyOptionsSkip', 'CopyOptionsOverwrite', 'CopyOptionsFailOnConflict'
CopyOptions CopyOptions `json:"copyOptions,omitempty"`
// RestoreRequestType - Restore Type (FullShareRestore or ItemLevelRestore). Possible values include: 'RestoreRequestTypeInvalid', 'RestoreRequestTypeFullShareRestore', 'RestoreRequestTypeItemLevelRestore'
RestoreRequestType RestoreRequestType `json:"restoreRequestType,omitempty"`
// RestoreFileSpecs - List of Source Files/Folders(which need to recover) and TargetFolderPath details
RestoreFileSpecs *[]RestoreFileSpecs `json:"restoreFileSpecs,omitempty"`
// TargetDetails - Target File Share Details
TargetDetails *TargetAFSRestoreInfo `json:"targetDetails,omitempty"`
// ObjectType - Possible values include: 'ObjectTypeRestoreRequest', 'ObjectTypeAzureFileShareRestoreRequest', 'ObjectTypeAzureWorkloadRestoreRequest', 'ObjectTypeAzureWorkloadSQLPointInTimeRestoreRequest', 'ObjectTypeAzureWorkloadSQLRestoreRequest', 'ObjectTypeIaasVMRestoreRequest'
ObjectType ObjectTypeBasicRestoreRequest `json:"objectType,omitempty"`
}
// MarshalJSON is the custom marshaler for AzureFileShareRestoreRequest.
func (afsrr AzureFileShareRestoreRequest) MarshalJSON() ([]byte, error) {
afsrr.ObjectType = ObjectTypeAzureFileShareRestoreRequest
objectMap := make(map[string]interface{})
if afsrr.RecoveryType != "" {
objectMap["recoveryType"] = afsrr.RecoveryType
}
if afsrr.SourceResourceID != nil {
objectMap["sourceResourceId"] = afsrr.SourceResourceID
}
if afsrr.CopyOptions != "" {
objectMap["copyOptions"] = afsrr.CopyOptions
}
if afsrr.RestoreRequestType != "" {
objectMap["restoreRequestType"] = afsrr.RestoreRequestType
}
if afsrr.RestoreFileSpecs != nil {
objectMap["restoreFileSpecs"] = afsrr.RestoreFileSpecs
}
if afsrr.TargetDetails != nil {
objectMap["targetDetails"] = afsrr.TargetDetails
}
if afsrr.ObjectType != "" {
objectMap["objectType"] = afsrr.ObjectType
}
return json.Marshal(objectMap)
}
// AsAzureFileShareRestoreRequest is the BasicRestoreRequest implementation for AzureFileShareRestoreRequest.
func (afsrr AzureFileShareRestoreRequest) AsAzureFileShareRestoreRequest() (*AzureFileShareRestoreRequest, bool) {
return &afsrr, true
}
// AsAzureWorkloadRestoreRequest is the BasicRestoreRequest implementation for AzureFileShareRestoreRequest.
func (afsrr AzureFileShareRestoreRequest) AsAzureWorkloadRestoreRequest() (*AzureWorkloadRestoreRequest, bool) {
return nil, false
}
// AsBasicAzureWorkloadRestoreRequest is the BasicRestoreRequest implementation for AzureFileShareRestoreRequest.
func (afsrr AzureFileShareRestoreRequest) AsBasicAzureWorkloadRestoreRequest() (BasicAzureWorkloadRestoreRequest, bool) {
return nil, false
}
// AsAzureWorkloadSQLPointInTimeRestoreRequest is the BasicRestoreRequest implementation for AzureFileShareRestoreRequest.
func (afsrr AzureFileShareRestoreRequest) AsAzureWorkloadSQLPointInTimeRestoreRequest() (*AzureWorkloadSQLPointInTimeRestoreRequest, bool) {
return nil, false
}
// AsAzureWorkloadSQLRestoreRequest is the BasicRestoreRequest implementation for AzureFileShareRestoreRequest.
func (afsrr AzureFileShareRestoreRequest) AsAzureWorkloadSQLRestoreRequest() (*AzureWorkloadSQLRestoreRequest, bool) {
return nil, false
}
// AsBasicAzureWorkloadSQLRestoreRequest is the BasicRestoreRequest implementation for AzureFileShareRestoreRequest.
func (afsrr AzureFileShareRestoreRequest) AsBasicAzureWorkloadSQLRestoreRequest() (BasicAzureWorkloadSQLRestoreRequest, bool) {
return nil, false
}
// AsIaasVMRestoreRequest is the BasicRestoreRequest implementation for AzureFileShareRestoreRequest.
func (afsrr AzureFileShareRestoreRequest) AsIaasVMRestoreRequest() (*IaasVMRestoreRequest, bool) {
return nil, false
}
// AsRestoreRequest is the BasicRestoreRequest implementation for AzureFileShareRestoreRequest.
func (afsrr AzureFileShareRestoreRequest) AsRestoreRequest() (*RestoreRequest, bool) {
return nil, false
}
// AsBasicRestoreRequest is the BasicRestoreRequest implementation for AzureFileShareRestoreRequest.
func (afsrr AzureFileShareRestoreRequest) AsBasicRestoreRequest() (BasicRestoreRequest, bool) {
return &afsrr, true
}
// AzureIaaSClassicComputeVMContainer iaaS VM workload-specific backup item representing a classic virtual machine.
type AzureIaaSClassicComputeVMContainer struct {
// VirtualMachineID - Fully qualified ARM url of the virtual machine represented by this Azure IaaS VM container.
VirtualMachineID *string `json:"virtualMachineId,omitempty"`
// VirtualMachineVersion - Specifies whether the container represents a Classic or an Azure Resource Manager VM.
VirtualMachineVersion *string `json:"virtualMachineVersion,omitempty"`
// ResourceGroup - Resource group name of Recovery Services Vault.
ResourceGroup *string `json:"resourceGroup,omitempty"`
// FriendlyName - Friendly name of the container.
FriendlyName *string `json:"friendlyName,omitempty"`
// BackupManagementType - Type of backup managemenent for the container. Possible values include: 'ManagementTypeInvalid', 'ManagementTypeAzureIaasVM', 'ManagementTypeMAB', 'ManagementTypeDPM', 'ManagementTypeAzureBackupServer', 'ManagementTypeAzureSQL', 'ManagementTypeAzureStorage', 'ManagementTypeAzureWorkload', 'ManagementTypeDefaultBackup'
BackupManagementType ManagementType `json:"backupManagementType,omitempty"`
// RegistrationStatus - Status of registration of the container with the Recovery Services Vault.
RegistrationStatus *string `json:"registrationStatus,omitempty"`
// HealthStatus - Status of health of the container.
HealthStatus *string `json:"healthStatus,omitempty"`
// ContainerType - Possible values include: 'ContainerTypeProtectionContainer', 'ContainerTypeAzureBackupServerContainer1', 'ContainerTypeMicrosoftClassicComputevirtualMachines', 'ContainerTypeMicrosoftComputevirtualMachines', 'ContainerTypeSQLAGWorkLoadContainer1', 'ContainerTypeAzureSQLContainer1', 'ContainerTypeStorageContainer1', 'ContainerTypeVMAppContainer1', 'ContainerTypeAzureWorkloadContainer', 'ContainerTypeDPMContainer1', 'ContainerTypeGenericContainer1', 'ContainerTypeIaaSVMContainer', 'ContainerTypeMABWindowsContainer'
ContainerType ContainerTypeBasicProtectionContainer `json:"containerType,omitempty"`
}
// MarshalJSON is the custom marshaler for AzureIaaSClassicComputeVMContainer.
func (aisccvc AzureIaaSClassicComputeVMContainer) MarshalJSON() ([]byte, error) {
aisccvc.ContainerType = ContainerTypeMicrosoftClassicComputevirtualMachines
objectMap := make(map[string]interface{})
if aisccvc.VirtualMachineID != nil {
objectMap["virtualMachineId"] = aisccvc.VirtualMachineID
}
if aisccvc.VirtualMachineVersion != nil {
objectMap["virtualMachineVersion"] = aisccvc.VirtualMachineVersion
}
if aisccvc.ResourceGroup != nil {
objectMap["resourceGroup"] = aisccvc.ResourceGroup
}
if aisccvc.FriendlyName != nil {
objectMap["friendlyName"] = aisccvc.FriendlyName
}
if aisccvc.BackupManagementType != "" {
objectMap["backupManagementType"] = aisccvc.BackupManagementType
}
if aisccvc.RegistrationStatus != nil {
objectMap["registrationStatus"] = aisccvc.RegistrationStatus
}
if aisccvc.HealthStatus != nil {
objectMap["healthStatus"] = aisccvc.HealthStatus
}
if aisccvc.ContainerType != "" {
objectMap["containerType"] = aisccvc.ContainerType
}
return json.Marshal(objectMap)
}
// AsAzureBackupServerContainer is the BasicProtectionContainer implementation for AzureIaaSClassicComputeVMContainer.
func (aisccvc AzureIaaSClassicComputeVMContainer) AsAzureBackupServerContainer() (*AzureBackupServerContainer, bool) {
return nil, false
}
// AsAzureIaaSClassicComputeVMContainer is the BasicProtectionContainer implementation for AzureIaaSClassicComputeVMContainer.
func (aisccvc AzureIaaSClassicComputeVMContainer) AsAzureIaaSClassicComputeVMContainer() (*AzureIaaSClassicComputeVMContainer, bool) {
return &aisccvc, true
}
// AsAzureIaaSComputeVMContainer is the BasicProtectionContainer implementation for AzureIaaSClassicComputeVMContainer.
func (aisccvc AzureIaaSClassicComputeVMContainer) AsAzureIaaSComputeVMContainer() (*AzureIaaSComputeVMContainer, bool) {
return nil, false
}
// AsAzureSQLAGWorkloadContainerProtectionContainer is the BasicProtectionContainer implementation for AzureIaaSClassicComputeVMContainer.
func (aisccvc AzureIaaSClassicComputeVMContainer) AsAzureSQLAGWorkloadContainerProtectionContainer() (*AzureSQLAGWorkloadContainerProtectionContainer, bool) {
return nil, false
}
// AsAzureSQLContainer is the BasicProtectionContainer implementation for AzureIaaSClassicComputeVMContainer.
func (aisccvc AzureIaaSClassicComputeVMContainer) AsAzureSQLContainer() (*AzureSQLContainer, bool) {
return nil, false
}
// AsAzureStorageContainer is the BasicProtectionContainer implementation for AzureIaaSClassicComputeVMContainer.
func (aisccvc AzureIaaSClassicComputeVMContainer) AsAzureStorageContainer() (*AzureStorageContainer, bool) {
return nil, false
}
// AsAzureVMAppContainerProtectionContainer is the BasicProtectionContainer implementation for AzureIaaSClassicComputeVMContainer.
func (aisccvc AzureIaaSClassicComputeVMContainer) AsAzureVMAppContainerProtectionContainer() (*AzureVMAppContainerProtectionContainer, bool) {
return nil, false
}
// AsAzureWorkloadContainer is the BasicProtectionContainer implementation for AzureIaaSClassicComputeVMContainer.
func (aisccvc AzureIaaSClassicComputeVMContainer) AsAzureWorkloadContainer() (*AzureWorkloadContainer, bool) {
return nil, false
}
// AsBasicAzureWorkloadContainer is the BasicProtectionContainer implementation for AzureIaaSClassicComputeVMContainer.
func (aisccvc AzureIaaSClassicComputeVMContainer) AsBasicAzureWorkloadContainer() (BasicAzureWorkloadContainer, bool) {
return nil, false
}
// AsDpmContainer is the BasicProtectionContainer implementation for AzureIaaSClassicComputeVMContainer.
func (aisccvc AzureIaaSClassicComputeVMContainer) AsDpmContainer() (*DpmContainer, bool) {
return nil, false
}
// AsGenericContainer is the BasicProtectionContainer implementation for AzureIaaSClassicComputeVMContainer.
func (aisccvc AzureIaaSClassicComputeVMContainer) AsGenericContainer() (*GenericContainer, bool) {
return nil, false
}
// AsIaaSVMContainer is the BasicProtectionContainer implementation for AzureIaaSClassicComputeVMContainer.
func (aisccvc AzureIaaSClassicComputeVMContainer) AsIaaSVMContainer() (*IaaSVMContainer, bool) {
return nil, false
}
// AsBasicIaaSVMContainer is the BasicProtectionContainer implementation for AzureIaaSClassicComputeVMContainer.
func (aisccvc AzureIaaSClassicComputeVMContainer) AsBasicIaaSVMContainer() (BasicIaaSVMContainer, bool) {
return &aisccvc, true
}
// AsMabContainer is the BasicProtectionContainer implementation for AzureIaaSClassicComputeVMContainer.
func (aisccvc AzureIaaSClassicComputeVMContainer) AsMabContainer() (*MabContainer, bool) {
return nil, false
}
// AsProtectionContainer is the BasicProtectionContainer implementation for AzureIaaSClassicComputeVMContainer.
func (aisccvc AzureIaaSClassicComputeVMContainer) AsProtectionContainer() (*ProtectionContainer, bool) {
return nil, false
}
// AsBasicProtectionContainer is the BasicProtectionContainer implementation for AzureIaaSClassicComputeVMContainer.
func (aisccvc AzureIaaSClassicComputeVMContainer) AsBasicProtectionContainer() (BasicProtectionContainer, bool) {
return &aisccvc, true
}
// AzureIaaSClassicComputeVMProtectableItem iaaS VM workload-specific backup item representing the Classic Compute
// VM.
type AzureIaaSClassicComputeVMProtectableItem struct {
// VirtualMachineID - Fully qualified ARM ID of the virtual machine.
VirtualMachineID *string `json:"virtualMachineId,omitempty"`
// BackupManagementType - Type of backup managemenent to backup an item.
BackupManagementType *string `json:"backupManagementType,omitempty"`
// WorkloadType - Type of workload for the backup management
WorkloadType *string `json:"workloadType,omitempty"`
// FriendlyName - Friendly name of the backup item.
FriendlyName *string `json:"friendlyName,omitempty"`
// ProtectionState - State of the back up item. Possible values include: 'ProtectionStatusInvalid', 'ProtectionStatusNotProtected', 'ProtectionStatusProtecting', 'ProtectionStatusProtected', 'ProtectionStatusProtectionFailed'
ProtectionState ProtectionStatus `json:"protectionState,omitempty"`
// ProtectableItemType - Possible values include: 'ProtectableItemTypeWorkloadProtectableItem', 'ProtectableItemTypeAzureFileShare', 'ProtectableItemTypeMicrosoftClassicComputevirtualMachines', 'ProtectableItemTypeMicrosoftComputevirtualMachines', 'ProtectableItemTypeAzureVMWorkloadProtectableItem', 'ProtectableItemTypeSQLAvailabilityGroupContainer', 'ProtectableItemTypeSQLDataBase', 'ProtectableItemTypeSQLInstance', 'ProtectableItemTypeIaaSVMProtectableItem'
ProtectableItemType ProtectableItemType `json:"protectableItemType,omitempty"`
}
// MarshalJSON is the custom marshaler for AzureIaaSClassicComputeVMProtectableItem.
func (aisccvpi AzureIaaSClassicComputeVMProtectableItem) MarshalJSON() ([]byte, error) {
aisccvpi.ProtectableItemType = ProtectableItemTypeMicrosoftClassicComputevirtualMachines
objectMap := make(map[string]interface{})
if aisccvpi.VirtualMachineID != nil {
objectMap["virtualMachineId"] = aisccvpi.VirtualMachineID
}
if aisccvpi.BackupManagementType != nil {
objectMap["backupManagementType"] = aisccvpi.BackupManagementType
}
if aisccvpi.WorkloadType != nil {
objectMap["workloadType"] = aisccvpi.WorkloadType
}
if aisccvpi.FriendlyName != nil {
objectMap["friendlyName"] = aisccvpi.FriendlyName
}
if aisccvpi.ProtectionState != "" {
objectMap["protectionState"] = aisccvpi.ProtectionState
}
if aisccvpi.ProtectableItemType != "" {
objectMap["protectableItemType"] = aisccvpi.ProtectableItemType
}
return json.Marshal(objectMap)
}
// AsAzureFileShareProtectableItem is the BasicWorkloadProtectableItem implementation for AzureIaaSClassicComputeVMProtectableItem.
func (aisccvpi AzureIaaSClassicComputeVMProtectableItem) AsAzureFileShareProtectableItem() (*AzureFileShareProtectableItem, bool) {
return nil, false
}
// AsAzureIaaSClassicComputeVMProtectableItem is the BasicWorkloadProtectableItem implementation for AzureIaaSClassicComputeVMProtectableItem.
func (aisccvpi AzureIaaSClassicComputeVMProtectableItem) AsAzureIaaSClassicComputeVMProtectableItem() (*AzureIaaSClassicComputeVMProtectableItem, bool) {
return &aisccvpi, true
}
// AsAzureIaaSComputeVMProtectableItem is the BasicWorkloadProtectableItem implementation for AzureIaaSClassicComputeVMProtectableItem.
func (aisccvpi AzureIaaSClassicComputeVMProtectableItem) AsAzureIaaSComputeVMProtectableItem() (*AzureIaaSComputeVMProtectableItem, bool) {
return nil, false
}
// AsAzureVMWorkloadProtectableItem is the BasicWorkloadProtectableItem implementation for AzureIaaSClassicComputeVMProtectableItem.
func (aisccvpi AzureIaaSClassicComputeVMProtectableItem) AsAzureVMWorkloadProtectableItem() (*AzureVMWorkloadProtectableItem, bool) {
return nil, false
}
// AsBasicAzureVMWorkloadProtectableItem is the BasicWorkloadProtectableItem implementation for AzureIaaSClassicComputeVMProtectableItem.
func (aisccvpi AzureIaaSClassicComputeVMProtectableItem) AsBasicAzureVMWorkloadProtectableItem() (BasicAzureVMWorkloadProtectableItem, bool) {
return nil, false
}
// AsAzureVMWorkloadSQLAvailabilityGroupProtectableItem is the BasicWorkloadProtectableItem implementation for AzureIaaSClassicComputeVMProtectableItem.
func (aisccvpi AzureIaaSClassicComputeVMProtectableItem) AsAzureVMWorkloadSQLAvailabilityGroupProtectableItem() (*AzureVMWorkloadSQLAvailabilityGroupProtectableItem, bool) {
return nil, false
}
// AsAzureVMWorkloadSQLDatabaseProtectableItem is the BasicWorkloadProtectableItem implementation for AzureIaaSClassicComputeVMProtectableItem.
func (aisccvpi AzureIaaSClassicComputeVMProtectableItem) AsAzureVMWorkloadSQLDatabaseProtectableItem() (*AzureVMWorkloadSQLDatabaseProtectableItem, bool) {
return nil, false
}
// AsAzureVMWorkloadSQLInstanceProtectableItem is the BasicWorkloadProtectableItem implementation for AzureIaaSClassicComputeVMProtectableItem.
func (aisccvpi AzureIaaSClassicComputeVMProtectableItem) AsAzureVMWorkloadSQLInstanceProtectableItem() (*AzureVMWorkloadSQLInstanceProtectableItem, bool) {
return nil, false
}
// AsIaaSVMProtectableItem is the BasicWorkloadProtectableItem implementation for AzureIaaSClassicComputeVMProtectableItem.
func (aisccvpi AzureIaaSClassicComputeVMProtectableItem) AsIaaSVMProtectableItem() (*IaaSVMProtectableItem, bool) {
return nil, false
}
// AsBasicIaaSVMProtectableItem is the BasicWorkloadProtectableItem implementation for AzureIaaSClassicComputeVMProtectableItem.
func (aisccvpi AzureIaaSClassicComputeVMProtectableItem) AsBasicIaaSVMProtectableItem() (BasicIaaSVMProtectableItem, bool) {
return &aisccvpi, true
}
// AsWorkloadProtectableItem is the BasicWorkloadProtectableItem implementation for AzureIaaSClassicComputeVMProtectableItem.
func (aisccvpi AzureIaaSClassicComputeVMProtectableItem) AsWorkloadProtectableItem() (*WorkloadProtectableItem, bool) {
return nil, false
}
// AsBasicWorkloadProtectableItem is the BasicWorkloadProtectableItem implementation for AzureIaaSClassicComputeVMProtectableItem.
func (aisccvpi AzureIaaSClassicComputeVMProtectableItem) AsBasicWorkloadProtectableItem() (BasicWorkloadProtectableItem, bool) {
return &aisccvpi, true
}
// AzureIaaSClassicComputeVMProtectedItem iaaS VM workload-specific backup item representing the Classic Compute
// VM.
type AzureIaaSClassicComputeVMProtectedItem struct {
// FriendlyName - Friendly name of the VM represented by this backup item.
FriendlyName *string `json:"friendlyName,omitempty"`
// VirtualMachineID - Fully qualified ARM ID of the virtual machine represented by this item.
VirtualMachineID *string `json:"virtualMachineId,omitempty"`
// ProtectionStatus - Backup status of this backup item.
ProtectionStatus *string `json:"protectionStatus,omitempty"`
// ProtectionState - Backup state of this backup item. Possible values include: 'ProtectionStateInvalid', 'ProtectionStateIRPending', 'ProtectionStateProtected', 'ProtectionStateProtectionError', 'ProtectionStateProtectionStopped', 'ProtectionStateProtectionPaused'
ProtectionState ProtectionState `json:"protectionState,omitempty"`
// HealthStatus - Health status of protected item. Possible values include: 'HealthStatusPassed', 'HealthStatusActionRequired', 'HealthStatusActionSuggested', 'HealthStatusInvalid'
HealthStatus HealthStatus `json:"healthStatus,omitempty"`
// HealthDetails - Health details on this backup item.
HealthDetails *[]AzureIaaSVMHealthDetails `json:"healthDetails,omitempty"`
// LastBackupStatus - Last backup operation status.
LastBackupStatus *string `json:"lastBackupStatus,omitempty"`
// LastBackupTime - Timestamp of the last backup operation on this backup item.
LastBackupTime *date.Time `json:"lastBackupTime,omitempty"`
// ProtectedItemDataID - Data ID of the protected item.
ProtectedItemDataID *string `json:"protectedItemDataId,omitempty"`
// ExtendedInfo - Additional information for this backup item.
ExtendedInfo *AzureIaaSVMProtectedItemExtendedInfo `json:"extendedInfo,omitempty"`
// BackupManagementType - Type of backup managemenent for the backed up item. Possible values include: 'ManagementTypeInvalid', 'ManagementTypeAzureIaasVM', 'ManagementTypeMAB', 'ManagementTypeDPM', 'ManagementTypeAzureBackupServer', 'ManagementTypeAzureSQL', 'ManagementTypeAzureStorage', 'ManagementTypeAzureWorkload', 'ManagementTypeDefaultBackup'
BackupManagementType ManagementType `json:"backupManagementType,omitempty"`
// WorkloadType - Type of workload this item represents. Possible values include: 'DataSourceTypeInvalid', 'DataSourceTypeVM', 'DataSourceTypeFileFolder', 'DataSourceTypeAzureSQLDb', 'DataSourceTypeSQLDB', 'DataSourceTypeExchange', 'DataSourceTypeSharepoint', 'DataSourceTypeVMwareVM', 'DataSourceTypeSystemState', 'DataSourceTypeClient', 'DataSourceTypeGenericDataSource', 'DataSourceTypeSQLDataBase', 'DataSourceTypeAzureFileShare'
WorkloadType DataSourceType `json:"workloadType,omitempty"`
// ContainerName - Unique name of container
ContainerName *string `json:"containerName,omitempty"`
// SourceResourceID - ARM ID of the resource to be backed up.
SourceResourceID *string `json:"sourceResourceId,omitempty"`
// PolicyID - ID of the backup policy with which this item is backed up.
PolicyID *string `json:"policyId,omitempty"`
// LastRecoveryPoint - Timestamp when the last (latest) backup copy was created for this backup item.
LastRecoveryPoint *date.Time `json:"lastRecoveryPoint,omitempty"`
// BackupSetName - Name of the backup set the backup item belongs to
BackupSetName *string `json:"backupSetName,omitempty"`
// ProtectedItemType - Possible values include: 'ProtectedItemTypeProtectedItem', 'ProtectedItemTypeAzureFileShareProtectedItem', 'ProtectedItemTypeMicrosoftClassicComputevirtualMachines', 'ProtectedItemTypeMicrosoftComputevirtualMachines', 'ProtectedItemTypeAzureIaaSVMProtectedItem', 'ProtectedItemTypeMicrosoftSqlserversdatabases', 'ProtectedItemTypeAzureVMWorkloadSQLDatabase', 'ProtectedItemTypeDPMProtectedItem', 'ProtectedItemTypeGenericProtectedItem', 'ProtectedItemTypeMabFileFolderProtectedItem'
ProtectedItemType ProtectedItemType `json:"protectedItemType,omitempty"`
}
// MarshalJSON is the custom marshaler for AzureIaaSClassicComputeVMProtectedItem.
func (aisccvpi AzureIaaSClassicComputeVMProtectedItem) MarshalJSON() ([]byte, error) {
aisccvpi.ProtectedItemType = ProtectedItemTypeMicrosoftClassicComputevirtualMachines
objectMap := make(map[string]interface{})
if aisccvpi.FriendlyName != nil {
objectMap["friendlyName"] = aisccvpi.FriendlyName
}
if aisccvpi.VirtualMachineID != nil {
objectMap["virtualMachineId"] = aisccvpi.VirtualMachineID
}
if aisccvpi.ProtectionStatus != nil {
objectMap["protectionStatus"] = aisccvpi.ProtectionStatus
}
if aisccvpi.ProtectionState != "" {
objectMap["protectionState"] = aisccvpi.ProtectionState
}
if aisccvpi.HealthStatus != "" {
objectMap["healthStatus"] = aisccvpi.HealthStatus
}
if aisccvpi.HealthDetails != nil {
objectMap["healthDetails"] = aisccvpi.HealthDetails
}
if aisccvpi.LastBackupStatus != nil {
objectMap["lastBackupStatus"] = aisccvpi.LastBackupStatus
}
if aisccvpi.LastBackupTime != nil {
objectMap["lastBackupTime"] = aisccvpi.LastBackupTime
}
if aisccvpi.ProtectedItemDataID != nil {
objectMap["protectedItemDataId"] = aisccvpi.ProtectedItemDataID
}
if aisccvpi.ExtendedInfo != nil {
objectMap["extendedInfo"] = aisccvpi.ExtendedInfo
}
if aisccvpi.BackupManagementType != "" {
objectMap["backupManagementType"] = aisccvpi.BackupManagementType
}
if aisccvpi.WorkloadType != "" {
objectMap["workloadType"] = aisccvpi.WorkloadType
}
if aisccvpi.ContainerName != nil {
objectMap["containerName"] = aisccvpi.ContainerName
}
if aisccvpi.SourceResourceID != nil {
objectMap["sourceResourceId"] = aisccvpi.SourceResourceID
}
if aisccvpi.PolicyID != nil {
objectMap["policyId"] = aisccvpi.PolicyID
}
if aisccvpi.LastRecoveryPoint != nil {
objectMap["lastRecoveryPoint"] = aisccvpi.LastRecoveryPoint
}
if aisccvpi.BackupSetName != nil {
objectMap["backupSetName"] = aisccvpi.BackupSetName
}
if aisccvpi.ProtectedItemType != "" {
objectMap["protectedItemType"] = aisccvpi.ProtectedItemType
}
return json.Marshal(objectMap)
}
// AsAzureFileshareProtectedItem is the BasicProtectedItem implementation for AzureIaaSClassicComputeVMProtectedItem.
func (aisccvpi AzureIaaSClassicComputeVMProtectedItem) AsAzureFileshareProtectedItem() (*AzureFileshareProtectedItem, bool) {
return nil, false
}
// AsAzureIaaSClassicComputeVMProtectedItem is the BasicProtectedItem implementation for AzureIaaSClassicComputeVMProtectedItem.
func (aisccvpi AzureIaaSClassicComputeVMProtectedItem) AsAzureIaaSClassicComputeVMProtectedItem() (*AzureIaaSClassicComputeVMProtectedItem, bool) {
return &aisccvpi, true
}
// AsAzureIaaSComputeVMProtectedItem is the BasicProtectedItem implementation for AzureIaaSClassicComputeVMProtectedItem.
func (aisccvpi AzureIaaSClassicComputeVMProtectedItem) AsAzureIaaSComputeVMProtectedItem() (*AzureIaaSComputeVMProtectedItem, bool) {
return nil, false
}
// AsAzureIaaSVMProtectedItem is the BasicProtectedItem implementation for AzureIaaSClassicComputeVMProtectedItem.
func (aisccvpi AzureIaaSClassicComputeVMProtectedItem) AsAzureIaaSVMProtectedItem() (*AzureIaaSVMProtectedItem, bool) {
return nil, false
}
// AsBasicAzureIaaSVMProtectedItem is the BasicProtectedItem implementation for AzureIaaSClassicComputeVMProtectedItem.
func (aisccvpi AzureIaaSClassicComputeVMProtectedItem) AsBasicAzureIaaSVMProtectedItem() (BasicAzureIaaSVMProtectedItem, bool) {
return &aisccvpi, true
}
// AsAzureSQLProtectedItem is the BasicProtectedItem implementation for AzureIaaSClassicComputeVMProtectedItem.
func (aisccvpi AzureIaaSClassicComputeVMProtectedItem) AsAzureSQLProtectedItem() (*AzureSQLProtectedItem, bool) {
return nil, false
}
// AsAzureVMWorkloadSQLDatabaseProtectedItem is the BasicProtectedItem implementation for AzureIaaSClassicComputeVMProtectedItem.
func (aisccvpi AzureIaaSClassicComputeVMProtectedItem) AsAzureVMWorkloadSQLDatabaseProtectedItem() (*AzureVMWorkloadSQLDatabaseProtectedItem, bool) {
return nil, false
}
// AsDPMProtectedItem is the BasicProtectedItem implementation for AzureIaaSClassicComputeVMProtectedItem.
func (aisccvpi AzureIaaSClassicComputeVMProtectedItem) AsDPMProtectedItem() (*DPMProtectedItem, bool) {
return nil, false
}
// AsGenericProtectedItem is the BasicProtectedItem implementation for AzureIaaSClassicComputeVMProtectedItem.
func (aisccvpi AzureIaaSClassicComputeVMProtectedItem) AsGenericProtectedItem() (*GenericProtectedItem, bool) {
return nil, false
}
// AsMabFileFolderProtectedItem is the BasicProtectedItem implementation for AzureIaaSClassicComputeVMProtectedItem.
func (aisccvpi AzureIaaSClassicComputeVMProtectedItem) AsMabFileFolderProtectedItem() (*MabFileFolderProtectedItem, bool) {
return nil, false
}
// AsProtectedItem is the BasicProtectedItem implementation for AzureIaaSClassicComputeVMProtectedItem.
func (aisccvpi AzureIaaSClassicComputeVMProtectedItem) AsProtectedItem() (*ProtectedItem, bool) {
return nil, false
}
// AsBasicProtectedItem is the BasicProtectedItem implementation for AzureIaaSClassicComputeVMProtectedItem.
func (aisccvpi AzureIaaSClassicComputeVMProtectedItem) AsBasicProtectedItem() (BasicProtectedItem, bool) {
return &aisccvpi, true
}
// AzureIaaSComputeVMContainer iaaS VM workload-specific backup item representing an Azure Resource Manager virtual
// machine.
type AzureIaaSComputeVMContainer struct {
// VirtualMachineID - Fully qualified ARM url of the virtual machine represented by this Azure IaaS VM container.
VirtualMachineID *string `json:"virtualMachineId,omitempty"`
// VirtualMachineVersion - Specifies whether the container represents a Classic or an Azure Resource Manager VM.
VirtualMachineVersion *string `json:"virtualMachineVersion,omitempty"`
// ResourceGroup - Resource group name of Recovery Services Vault.
ResourceGroup *string `json:"resourceGroup,omitempty"`
// FriendlyName - Friendly name of the container.
FriendlyName *string `json:"friendlyName,omitempty"`
// BackupManagementType - Type of backup managemenent for the container. Possible values include: 'ManagementTypeInvalid', 'ManagementTypeAzureIaasVM', 'ManagementTypeMAB', 'ManagementTypeDPM', 'ManagementTypeAzureBackupServer', 'ManagementTypeAzureSQL', 'ManagementTypeAzureStorage', 'ManagementTypeAzureWorkload', 'ManagementTypeDefaultBackup'
BackupManagementType ManagementType `json:"backupManagementType,omitempty"`
// RegistrationStatus - Status of registration of the container with the Recovery Services Vault.
RegistrationStatus *string `json:"registrationStatus,omitempty"`
// HealthStatus - Status of health of the container.
HealthStatus *string `json:"healthStatus,omitempty"`
// ContainerType - Possible values include: 'ContainerTypeProtectionContainer', 'ContainerTypeAzureBackupServerContainer1', 'ContainerTypeMicrosoftClassicComputevirtualMachines', 'ContainerTypeMicrosoftComputevirtualMachines', 'ContainerTypeSQLAGWorkLoadContainer1', 'ContainerTypeAzureSQLContainer1', 'ContainerTypeStorageContainer1', 'ContainerTypeVMAppContainer1', 'ContainerTypeAzureWorkloadContainer', 'ContainerTypeDPMContainer1', 'ContainerTypeGenericContainer1', 'ContainerTypeIaaSVMContainer', 'ContainerTypeMABWindowsContainer'
ContainerType ContainerTypeBasicProtectionContainer `json:"containerType,omitempty"`
}
// MarshalJSON is the custom marshaler for AzureIaaSComputeVMContainer.
func (aiscvc AzureIaaSComputeVMContainer) MarshalJSON() ([]byte, error) {
aiscvc.ContainerType = ContainerTypeMicrosoftComputevirtualMachines
objectMap := make(map[string]interface{})
if aiscvc.VirtualMachineID != nil {
objectMap["virtualMachineId"] = aiscvc.VirtualMachineID
}
if aiscvc.VirtualMachineVersion != nil {
objectMap["virtualMachineVersion"] = aiscvc.VirtualMachineVersion
}
if aiscvc.ResourceGroup != nil {
objectMap["resourceGroup"] = aiscvc.ResourceGroup
}
if aiscvc.FriendlyName != nil {
objectMap["friendlyName"] = aiscvc.FriendlyName
}
if aiscvc.BackupManagementType != "" {
objectMap["backupManagementType"] = aiscvc.BackupManagementType
}
if aiscvc.RegistrationStatus != nil {
objectMap["registrationStatus"] = aiscvc.RegistrationStatus
}
if aiscvc.HealthStatus != nil {
objectMap["healthStatus"] = aiscvc.HealthStatus
}
if aiscvc.ContainerType != "" {
objectMap["containerType"] = aiscvc.ContainerType
}
return json.Marshal(objectMap)
}
// AsAzureBackupServerContainer is the BasicProtectionContainer implementation for AzureIaaSComputeVMContainer.
func (aiscvc AzureIaaSComputeVMContainer) AsAzureBackupServerContainer() (*AzureBackupServerContainer, bool) {
return nil, false
}
// AsAzureIaaSClassicComputeVMContainer is the BasicProtectionContainer implementation for AzureIaaSComputeVMContainer.
func (aiscvc AzureIaaSComputeVMContainer) AsAzureIaaSClassicComputeVMContainer() (*AzureIaaSClassicComputeVMContainer, bool) {
return nil, false
}
// AsAzureIaaSComputeVMContainer is the BasicProtectionContainer implementation for AzureIaaSComputeVMContainer.
func (aiscvc AzureIaaSComputeVMContainer) AsAzureIaaSComputeVMContainer() (*AzureIaaSComputeVMContainer, bool) {
return &aiscvc, true
}
// AsAzureSQLAGWorkloadContainerProtectionContainer is the BasicProtectionContainer implementation for AzureIaaSComputeVMContainer.
func (aiscvc AzureIaaSComputeVMContainer) AsAzureSQLAGWorkloadContainerProtectionContainer() (*AzureSQLAGWorkloadContainerProtectionContainer, bool) {
return nil, false
}
// AsAzureSQLContainer is the BasicProtectionContainer implementation for AzureIaaSComputeVMContainer.
func (aiscvc AzureIaaSComputeVMContainer) AsAzureSQLContainer() (*AzureSQLContainer, bool) {
return nil, false
}
// AsAzureStorageContainer is the BasicProtectionContainer implementation for AzureIaaSComputeVMContainer.
func (aiscvc AzureIaaSComputeVMContainer) AsAzureStorageContainer() (*AzureStorageContainer, bool) {
return nil, false
}
// AsAzureVMAppContainerProtectionContainer is the BasicProtectionContainer implementation for AzureIaaSComputeVMContainer.
func (aiscvc AzureIaaSComputeVMContainer) AsAzureVMAppContainerProtectionContainer() (*AzureVMAppContainerProtectionContainer, bool) {
return nil, false
}
// AsAzureWorkloadContainer is the BasicProtectionContainer implementation for AzureIaaSComputeVMContainer.
func (aiscvc AzureIaaSComputeVMContainer) AsAzureWorkloadContainer() (*AzureWorkloadContainer, bool) {
return nil, false
}
// AsBasicAzureWorkloadContainer is the BasicProtectionContainer implementation for AzureIaaSComputeVMContainer.
func (aiscvc AzureIaaSComputeVMContainer) AsBasicAzureWorkloadContainer() (BasicAzureWorkloadContainer, bool) {
return nil, false
}
// AsDpmContainer is the BasicProtectionContainer implementation for AzureIaaSComputeVMContainer.
func (aiscvc AzureIaaSComputeVMContainer) AsDpmContainer() (*DpmContainer, bool) {
return nil, false
}
// AsGenericContainer is the BasicProtectionContainer implementation for AzureIaaSComputeVMContainer.
func (aiscvc AzureIaaSComputeVMContainer) AsGenericContainer() (*GenericContainer, bool) {
return nil, false
}
// AsIaaSVMContainer is the BasicProtectionContainer implementation for AzureIaaSComputeVMContainer.
func (aiscvc AzureIaaSComputeVMContainer) AsIaaSVMContainer() (*IaaSVMContainer, bool) {
return nil, false
}
// AsBasicIaaSVMContainer is the BasicProtectionContainer implementation for AzureIaaSComputeVMContainer.
func (aiscvc AzureIaaSComputeVMContainer) AsBasicIaaSVMContainer() (BasicIaaSVMContainer, bool) {
return &aiscvc, true
}
// AsMabContainer is the BasicProtectionContainer implementation for AzureIaaSComputeVMContainer.
func (aiscvc AzureIaaSComputeVMContainer) AsMabContainer() (*MabContainer, bool) {
return nil, false
}
// AsProtectionContainer is the BasicProtectionContainer implementation for AzureIaaSComputeVMContainer.
func (aiscvc AzureIaaSComputeVMContainer) AsProtectionContainer() (*ProtectionContainer, bool) {
return nil, false
}
// AsBasicProtectionContainer is the BasicProtectionContainer implementation for AzureIaaSComputeVMContainer.
func (aiscvc AzureIaaSComputeVMContainer) AsBasicProtectionContainer() (BasicProtectionContainer, bool) {
return &aiscvc, true
}
// AzureIaaSComputeVMProtectableItem iaaS VM workload-specific backup item representing the Azure Resource Manager
// VM.
type AzureIaaSComputeVMProtectableItem struct {
// VirtualMachineID - Fully qualified ARM ID of the virtual machine.
VirtualMachineID *string `json:"virtualMachineId,omitempty"`
// BackupManagementType - Type of backup managemenent to backup an item.
BackupManagementType *string `json:"backupManagementType,omitempty"`
// WorkloadType - Type of workload for the backup management
WorkloadType *string `json:"workloadType,omitempty"`
// FriendlyName - Friendly name of the backup item.
FriendlyName *string `json:"friendlyName,omitempty"`
// ProtectionState - State of the back up item. Possible values include: 'ProtectionStatusInvalid', 'ProtectionStatusNotProtected', 'ProtectionStatusProtecting', 'ProtectionStatusProtected', 'ProtectionStatusProtectionFailed'
ProtectionState ProtectionStatus `json:"protectionState,omitempty"`
// ProtectableItemType - Possible values include: 'ProtectableItemTypeWorkloadProtectableItem', 'ProtectableItemTypeAzureFileShare', 'ProtectableItemTypeMicrosoftClassicComputevirtualMachines', 'ProtectableItemTypeMicrosoftComputevirtualMachines', 'ProtectableItemTypeAzureVMWorkloadProtectableItem', 'ProtectableItemTypeSQLAvailabilityGroupContainer', 'ProtectableItemTypeSQLDataBase', 'ProtectableItemTypeSQLInstance', 'ProtectableItemTypeIaaSVMProtectableItem'
ProtectableItemType ProtectableItemType `json:"protectableItemType,omitempty"`
}
// MarshalJSON is the custom marshaler for AzureIaaSComputeVMProtectableItem.
func (aiscvpi AzureIaaSComputeVMProtectableItem) MarshalJSON() ([]byte, error) {
aiscvpi.ProtectableItemType = ProtectableItemTypeMicrosoftComputevirtualMachines
objectMap := make(map[string]interface{})
if aiscvpi.VirtualMachineID != nil {
objectMap["virtualMachineId"] = aiscvpi.VirtualMachineID
}
if aiscvpi.BackupManagementType != nil {
objectMap["backupManagementType"] = aiscvpi.BackupManagementType
}
if aiscvpi.WorkloadType != nil {
objectMap["workloadType"] = aiscvpi.WorkloadType
}
if aiscvpi.FriendlyName != nil {
objectMap["friendlyName"] = aiscvpi.FriendlyName
}
if aiscvpi.ProtectionState != "" {
objectMap["protectionState"] = aiscvpi.ProtectionState
}
if aiscvpi.ProtectableItemType != "" {
objectMap["protectableItemType"] = aiscvpi.ProtectableItemType
}
return json.Marshal(objectMap)
}
// AsAzureFileShareProtectableItem is the BasicWorkloadProtectableItem implementation for AzureIaaSComputeVMProtectableItem.
func (aiscvpi AzureIaaSComputeVMProtectableItem) AsAzureFileShareProtectableItem() (*AzureFileShareProtectableItem, bool) {
return nil, false
}
// AsAzureIaaSClassicComputeVMProtectableItem is the BasicWorkloadProtectableItem implementation for AzureIaaSComputeVMProtectableItem.
func (aiscvpi AzureIaaSComputeVMProtectableItem) AsAzureIaaSClassicComputeVMProtectableItem() (*AzureIaaSClassicComputeVMProtectableItem, bool) {
return nil, false
}
// AsAzureIaaSComputeVMProtectableItem is the BasicWorkloadProtectableItem implementation for AzureIaaSComputeVMProtectableItem.
func (aiscvpi AzureIaaSComputeVMProtectableItem) AsAzureIaaSComputeVMProtectableItem() (*AzureIaaSComputeVMProtectableItem, bool) {
return &aiscvpi, true
}
// AsAzureVMWorkloadProtectableItem is the BasicWorkloadProtectableItem implementation for AzureIaaSComputeVMProtectableItem.
func (aiscvpi AzureIaaSComputeVMProtectableItem) AsAzureVMWorkloadProtectableItem() (*AzureVMWorkloadProtectableItem, bool) {
return nil, false
}
// AsBasicAzureVMWorkloadProtectableItem is the BasicWorkloadProtectableItem implementation for AzureIaaSComputeVMProtectableItem.
func (aiscvpi AzureIaaSComputeVMProtectableItem) AsBasicAzureVMWorkloadProtectableItem() (BasicAzureVMWorkloadProtectableItem, bool) {
return nil, false
}
// AsAzureVMWorkloadSQLAvailabilityGroupProtectableItem is the BasicWorkloadProtectableItem implementation for AzureIaaSComputeVMProtectableItem.
func (aiscvpi AzureIaaSComputeVMProtectableItem) AsAzureVMWorkloadSQLAvailabilityGroupProtectableItem() (*AzureVMWorkloadSQLAvailabilityGroupProtectableItem, bool) {
return nil, false
}
// AsAzureVMWorkloadSQLDatabaseProtectableItem is the BasicWorkloadProtectableItem implementation for AzureIaaSComputeVMProtectableItem.
func (aiscvpi AzureIaaSComputeVMProtectableItem) AsAzureVMWorkloadSQLDatabaseProtectableItem() (*AzureVMWorkloadSQLDatabaseProtectableItem, bool) {
return nil, false
}
// AsAzureVMWorkloadSQLInstanceProtectableItem is the BasicWorkloadProtectableItem implementation for AzureIaaSComputeVMProtectableItem.
func (aiscvpi AzureIaaSComputeVMProtectableItem) AsAzureVMWorkloadSQLInstanceProtectableItem() (*AzureVMWorkloadSQLInstanceProtectableItem, bool) {
return nil, false
}
// AsIaaSVMProtectableItem is the BasicWorkloadProtectableItem implementation for AzureIaaSComputeVMProtectableItem.
func (aiscvpi AzureIaaSComputeVMProtectableItem) AsIaaSVMProtectableItem() (*IaaSVMProtectableItem, bool) {
return nil, false
}
// AsBasicIaaSVMProtectableItem is the BasicWorkloadProtectableItem implementation for AzureIaaSComputeVMProtectableItem.
func (aiscvpi AzureIaaSComputeVMProtectableItem) AsBasicIaaSVMProtectableItem() (BasicIaaSVMProtectableItem, bool) {
return &aiscvpi, true
}
// AsWorkloadProtectableItem is the BasicWorkloadProtectableItem implementation for AzureIaaSComputeVMProtectableItem.
func (aiscvpi AzureIaaSComputeVMProtectableItem) AsWorkloadProtectableItem() (*WorkloadProtectableItem, bool) {
return nil, false
}
// AsBasicWorkloadProtectableItem is the BasicWorkloadProtectableItem implementation for AzureIaaSComputeVMProtectableItem.
func (aiscvpi AzureIaaSComputeVMProtectableItem) AsBasicWorkloadProtectableItem() (BasicWorkloadProtectableItem, bool) {
return &aiscvpi, true
}
// AzureIaaSComputeVMProtectedItem iaaS VM workload-specific backup item representing the Azure Resource Manager
// VM.
type AzureIaaSComputeVMProtectedItem struct {
// FriendlyName - Friendly name of the VM represented by this backup item.
FriendlyName *string `json:"friendlyName,omitempty"`
// VirtualMachineID - Fully qualified ARM ID of the virtual machine represented by this item.
VirtualMachineID *string `json:"virtualMachineId,omitempty"`
// ProtectionStatus - Backup status of this backup item.
ProtectionStatus *string `json:"protectionStatus,omitempty"`
// ProtectionState - Backup state of this backup item. Possible values include: 'ProtectionStateInvalid', 'ProtectionStateIRPending', 'ProtectionStateProtected', 'ProtectionStateProtectionError', 'ProtectionStateProtectionStopped', 'ProtectionStateProtectionPaused'
ProtectionState ProtectionState `json:"protectionState,omitempty"`
// HealthStatus - Health status of protected item. Possible values include: 'HealthStatusPassed', 'HealthStatusActionRequired', 'HealthStatusActionSuggested', 'HealthStatusInvalid'
HealthStatus HealthStatus `json:"healthStatus,omitempty"`
// HealthDetails - Health details on this backup item.
HealthDetails *[]AzureIaaSVMHealthDetails `json:"healthDetails,omitempty"`
// LastBackupStatus - Last backup operation status.
LastBackupStatus *string `json:"lastBackupStatus,omitempty"`
// LastBackupTime - Timestamp of the last backup operation on this backup item.
LastBackupTime *date.Time `json:"lastBackupTime,omitempty"`
// ProtectedItemDataID - Data ID of the protected item.
ProtectedItemDataID *string `json:"protectedItemDataId,omitempty"`
// ExtendedInfo - Additional information for this backup item.
ExtendedInfo *AzureIaaSVMProtectedItemExtendedInfo `json:"extendedInfo,omitempty"`
// BackupManagementType - Type of backup managemenent for the backed up item. Possible values include: 'ManagementTypeInvalid', 'ManagementTypeAzureIaasVM', 'ManagementTypeMAB', 'ManagementTypeDPM', 'ManagementTypeAzureBackupServer', 'ManagementTypeAzureSQL', 'ManagementTypeAzureStorage', 'ManagementTypeAzureWorkload', 'ManagementTypeDefaultBackup'
BackupManagementType ManagementType `json:"backupManagementType,omitempty"`
// WorkloadType - Type of workload this item represents. Possible values include: 'DataSourceTypeInvalid', 'DataSourceTypeVM', 'DataSourceTypeFileFolder', 'DataSourceTypeAzureSQLDb', 'DataSourceTypeSQLDB', 'DataSourceTypeExchange', 'DataSourceTypeSharepoint', 'DataSourceTypeVMwareVM', 'DataSourceTypeSystemState', 'DataSourceTypeClient', 'DataSourceTypeGenericDataSource', 'DataSourceTypeSQLDataBase', 'DataSourceTypeAzureFileShare'
WorkloadType DataSourceType `json:"workloadType,omitempty"`
// ContainerName - Unique name of container
ContainerName *string `json:"containerName,omitempty"`
// SourceResourceID - ARM ID of the resource to be backed up.
SourceResourceID *string `json:"sourceResourceId,omitempty"`
// PolicyID - ID of the backup policy with which this item is backed up.
PolicyID *string `json:"policyId,omitempty"`
// LastRecoveryPoint - Timestamp when the last (latest) backup copy was created for this backup item.
LastRecoveryPoint *date.Time `json:"lastRecoveryPoint,omitempty"`
// BackupSetName - Name of the backup set the backup item belongs to
BackupSetName *string `json:"backupSetName,omitempty"`
// ProtectedItemType - Possible values include: 'ProtectedItemTypeProtectedItem', 'ProtectedItemTypeAzureFileShareProtectedItem', 'ProtectedItemTypeMicrosoftClassicComputevirtualMachines', 'ProtectedItemTypeMicrosoftComputevirtualMachines', 'ProtectedItemTypeAzureIaaSVMProtectedItem', 'ProtectedItemTypeMicrosoftSqlserversdatabases', 'ProtectedItemTypeAzureVMWorkloadSQLDatabase', 'ProtectedItemTypeDPMProtectedItem', 'ProtectedItemTypeGenericProtectedItem', 'ProtectedItemTypeMabFileFolderProtectedItem'
ProtectedItemType ProtectedItemType `json:"protectedItemType,omitempty"`
}
// MarshalJSON is the custom marshaler for AzureIaaSComputeVMProtectedItem.
func (aiscvpi AzureIaaSComputeVMProtectedItem) MarshalJSON() ([]byte, error) {
aiscvpi.ProtectedItemType = ProtectedItemTypeMicrosoftComputevirtualMachines
objectMap := make(map[string]interface{})
if aiscvpi.FriendlyName != nil {
objectMap["friendlyName"] = aiscvpi.FriendlyName
}
if aiscvpi.VirtualMachineID != nil {
objectMap["virtualMachineId"] = aiscvpi.VirtualMachineID
}
if aiscvpi.ProtectionStatus != nil {
objectMap["protectionStatus"] = aiscvpi.ProtectionStatus
}
if aiscvpi.ProtectionState != "" {
objectMap["protectionState"] = aiscvpi.ProtectionState
}
if aiscvpi.HealthStatus != "" {
objectMap["healthStatus"] = aiscvpi.HealthStatus
}
if aiscvpi.HealthDetails != nil {
objectMap["healthDetails"] = aiscvpi.HealthDetails
}
if aiscvpi.LastBackupStatus != nil {
objectMap["lastBackupStatus"] = aiscvpi.LastBackupStatus
}
if aiscvpi.LastBackupTime != nil {
objectMap["lastBackupTime"] = aiscvpi.LastBackupTime
}
if aiscvpi.ProtectedItemDataID != nil {
objectMap["protectedItemDataId"] = aiscvpi.ProtectedItemDataID
}
if aiscvpi.ExtendedInfo != nil {
objectMap["extendedInfo"] = aiscvpi.ExtendedInfo
}
if aiscvpi.BackupManagementType != "" {
objectMap["backupManagementType"] = aiscvpi.BackupManagementType
}
if aiscvpi.WorkloadType != "" {
objectMap["workloadType"] = aiscvpi.WorkloadType
}
if aiscvpi.ContainerName != nil {
objectMap["containerName"] = aiscvpi.ContainerName
}
if aiscvpi.SourceResourceID != nil {
objectMap["sourceResourceId"] = aiscvpi.SourceResourceID
}
if aiscvpi.PolicyID != nil {
objectMap["policyId"] = aiscvpi.PolicyID
}
if aiscvpi.LastRecoveryPoint != nil {
objectMap["lastRecoveryPoint"] = aiscvpi.LastRecoveryPoint
}
if aiscvpi.BackupSetName != nil {
objectMap["backupSetName"] = aiscvpi.BackupSetName
}
if aiscvpi.ProtectedItemType != "" {
objectMap["protectedItemType"] = aiscvpi.ProtectedItemType
}
return json.Marshal(objectMap)
}
// AsAzureFileshareProtectedItem is the BasicProtectedItem implementation for AzureIaaSComputeVMProtectedItem.
func (aiscvpi AzureIaaSComputeVMProtectedItem) AsAzureFileshareProtectedItem() (*AzureFileshareProtectedItem, bool) {
return nil, false
}
// AsAzureIaaSClassicComputeVMProtectedItem is the BasicProtectedItem implementation for AzureIaaSComputeVMProtectedItem.
func (aiscvpi AzureIaaSComputeVMProtectedItem) AsAzureIaaSClassicComputeVMProtectedItem() (*AzureIaaSClassicComputeVMProtectedItem, bool) {
return nil, false
}
// AsAzureIaaSComputeVMProtectedItem is the BasicProtectedItem implementation for AzureIaaSComputeVMProtectedItem.
func (aiscvpi AzureIaaSComputeVMProtectedItem) AsAzureIaaSComputeVMProtectedItem() (*AzureIaaSComputeVMProtectedItem, bool) {
return &aiscvpi, true
}
// AsAzureIaaSVMProtectedItem is the BasicProtectedItem implementation for AzureIaaSComputeVMProtectedItem.
func (aiscvpi AzureIaaSComputeVMProtectedItem) AsAzureIaaSVMProtectedItem() (*AzureIaaSVMProtectedItem, bool) {
return nil, false
}
// AsBasicAzureIaaSVMProtectedItem is the BasicProtectedItem implementation for AzureIaaSComputeVMProtectedItem.
func (aiscvpi AzureIaaSComputeVMProtectedItem) AsBasicAzureIaaSVMProtectedItem() (BasicAzureIaaSVMProtectedItem, bool) {
return &aiscvpi, true
}
// AsAzureSQLProtectedItem is the BasicProtectedItem implementation for AzureIaaSComputeVMProtectedItem.
func (aiscvpi AzureIaaSComputeVMProtectedItem) AsAzureSQLProtectedItem() (*AzureSQLProtectedItem, bool) {
return nil, false
}
// AsAzureVMWorkloadSQLDatabaseProtectedItem is the BasicProtectedItem implementation for AzureIaaSComputeVMProtectedItem.
func (aiscvpi AzureIaaSComputeVMProtectedItem) AsAzureVMWorkloadSQLDatabaseProtectedItem() (*AzureVMWorkloadSQLDatabaseProtectedItem, bool) {
return nil, false
}
// AsDPMProtectedItem is the BasicProtectedItem implementation for AzureIaaSComputeVMProtectedItem.
func (aiscvpi AzureIaaSComputeVMProtectedItem) AsDPMProtectedItem() (*DPMProtectedItem, bool) {
return nil, false
}
// AsGenericProtectedItem is the BasicProtectedItem implementation for AzureIaaSComputeVMProtectedItem.
func (aiscvpi AzureIaaSComputeVMProtectedItem) AsGenericProtectedItem() (*GenericProtectedItem, bool) {
return nil, false
}
// AsMabFileFolderProtectedItem is the BasicProtectedItem implementation for AzureIaaSComputeVMProtectedItem.
func (aiscvpi AzureIaaSComputeVMProtectedItem) AsMabFileFolderProtectedItem() (*MabFileFolderProtectedItem, bool) {
return nil, false
}
// AsProtectedItem is the BasicProtectedItem implementation for AzureIaaSComputeVMProtectedItem.
func (aiscvpi AzureIaaSComputeVMProtectedItem) AsProtectedItem() (*ProtectedItem, bool) {
return nil, false
}
// AsBasicProtectedItem is the BasicProtectedItem implementation for AzureIaaSComputeVMProtectedItem.
func (aiscvpi AzureIaaSComputeVMProtectedItem) AsBasicProtectedItem() (BasicProtectedItem, bool) {
return &aiscvpi, true
}
// AzureIaaSVMErrorInfo azure IaaS VM workload-specific error information.
type AzureIaaSVMErrorInfo struct {
// ErrorCode - Error code.
ErrorCode *int32 `json:"errorCode,omitempty"`
// ErrorTitle - Title: Typically, the entity that the error pertains to.
ErrorTitle *string `json:"errorTitle,omitempty"`
// ErrorString - Localized error string.
ErrorString *string `json:"errorString,omitempty"`
// Recommendations - List of localized recommendations for above error code.
Recommendations *[]string `json:"recommendations,omitempty"`
}
// AzureIaaSVMHealthDetails azure IaaS VM workload-specific Health Details.
type AzureIaaSVMHealthDetails struct {
// Code - Health Code
Code *int32 `json:"code,omitempty"`
// Title - Health Title
Title *string `json:"title,omitempty"`
// Message - Health Message
Message *string `json:"message,omitempty"`
// Recommendations - Health Recommended Actions
Recommendations *[]string `json:"recommendations,omitempty"`
}
// AzureIaaSVMJob azure IaaS VM workload-specifc job object.
type AzureIaaSVMJob struct {
// Duration - Time elapsed during the execution of this job.
Duration *string `json:"duration,omitempty"`
// ActionsInfo - Gets or sets the state/actions applicable on this job like cancel/retry.
ActionsInfo *[]JobSupportedAction `json:"actionsInfo,omitempty"`
// ErrorDetails - Error details on execution of this job.
ErrorDetails *[]AzureIaaSVMErrorInfo `json:"errorDetails,omitempty"`
// VirtualMachineVersion - Specifies whether the backup item is a Classic or an Azure Resource Manager VM.
VirtualMachineVersion *string `json:"virtualMachineVersion,omitempty"`
// ExtendedInfo - Additional information for this job.
ExtendedInfo *AzureIaaSVMJobExtendedInfo `json:"extendedInfo,omitempty"`
// EntityFriendlyName - Friendly name of the entity on which the current job is executing.
EntityFriendlyName *string `json:"entityFriendlyName,omitempty"`
// BackupManagementType - Backup management type to execute the current job. Possible values include: 'ManagementTypeInvalid', 'ManagementTypeAzureIaasVM', 'ManagementTypeMAB', 'ManagementTypeDPM', 'ManagementTypeAzureBackupServer', 'ManagementTypeAzureSQL', 'ManagementTypeAzureStorage', 'ManagementTypeAzureWorkload', 'ManagementTypeDefaultBackup'
BackupManagementType ManagementType `json:"backupManagementType,omitempty"`
// Operation - The operation name.
Operation *string `json:"operation,omitempty"`
// Status - Job status.
Status *string `json:"status,omitempty"`
// StartTime - The start time.
StartTime *date.Time `json:"startTime,omitempty"`
// EndTime - The end time.
EndTime *date.Time `json:"endTime,omitempty"`
// ActivityID - ActivityId of job.
ActivityID *string `json:"activityId,omitempty"`
// JobType - Possible values include: 'JobTypeJob', 'JobTypeAzureIaaSVMJob', 'JobTypeAzureStorageJob', 'JobTypeAzureWorkloadJob', 'JobTypeDpmJob', 'JobTypeMabJob'
JobType JobType `json:"jobType,omitempty"`
}
// MarshalJSON is the custom marshaler for AzureIaaSVMJob.
func (aisj AzureIaaSVMJob) MarshalJSON() ([]byte, error) {
aisj.JobType = JobTypeAzureIaaSVMJob
objectMap := make(map[string]interface{})
if aisj.Duration != nil {
objectMap["duration"] = aisj.Duration
}
if aisj.ActionsInfo != nil {
objectMap["actionsInfo"] = aisj.ActionsInfo
}
if aisj.ErrorDetails != nil {
objectMap["errorDetails"] = aisj.ErrorDetails
}
if aisj.VirtualMachineVersion != nil {
objectMap["virtualMachineVersion"] = aisj.VirtualMachineVersion
}
if aisj.ExtendedInfo != nil {
objectMap["extendedInfo"] = aisj.ExtendedInfo
}
if aisj.EntityFriendlyName != nil {
objectMap["entityFriendlyName"] = aisj.EntityFriendlyName
}
if aisj.BackupManagementType != "" {
objectMap["backupManagementType"] = aisj.BackupManagementType
}
if aisj.Operation != nil {
objectMap["operation"] = aisj.Operation
}
if aisj.Status != nil {
objectMap["status"] = aisj.Status
}
if aisj.StartTime != nil {
objectMap["startTime"] = aisj.StartTime
}
if aisj.EndTime != nil {
objectMap["endTime"] = aisj.EndTime
}
if aisj.ActivityID != nil {
objectMap["activityId"] = aisj.ActivityID
}
if aisj.JobType != "" {
objectMap["jobType"] = aisj.JobType
}
return json.Marshal(objectMap)
}
// AsAzureIaaSVMJob is the BasicJob implementation for AzureIaaSVMJob.
func (aisj AzureIaaSVMJob) AsAzureIaaSVMJob() (*AzureIaaSVMJob, bool) {
return &aisj, true
}
// AsAzureStorageJob is the BasicJob implementation for AzureIaaSVMJob.
func (aisj AzureIaaSVMJob) AsAzureStorageJob() (*AzureStorageJob, bool) {
return nil, false
}
// AsAzureWorkloadJob is the BasicJob implementation for AzureIaaSVMJob.
func (aisj AzureIaaSVMJob) AsAzureWorkloadJob() (*AzureWorkloadJob, bool) {
return nil, false
}
// AsDpmJob is the BasicJob implementation for AzureIaaSVMJob.
func (aisj AzureIaaSVMJob) AsDpmJob() (*DpmJob, bool) {
return nil, false
}
// AsMabJob is the BasicJob implementation for AzureIaaSVMJob.
func (aisj AzureIaaSVMJob) AsMabJob() (*MabJob, bool) {
return nil, false
}
// AsJob is the BasicJob implementation for AzureIaaSVMJob.
func (aisj AzureIaaSVMJob) AsJob() (*Job, bool) {
return nil, false
}
// AsBasicJob is the BasicJob implementation for AzureIaaSVMJob.
func (aisj AzureIaaSVMJob) AsBasicJob() (BasicJob, bool) {
return &aisj, true
}
// AzureIaaSVMJobExtendedInfo azure IaaS VM workload-specific additional information for job.
type AzureIaaSVMJobExtendedInfo struct {
// TasksList - List of tasks associated with this job.
TasksList *[]AzureIaaSVMJobTaskDetails `json:"tasksList,omitempty"`
// PropertyBag - Job properties.
PropertyBag map[string]*string `json:"propertyBag"`
// ProgressPercentage - Indicates progress of the job. Null if it has not started or completed.
ProgressPercentage *float64 `json:"progressPercentage,omitempty"`
// DynamicErrorMessage - Non localized error message on job execution.
DynamicErrorMessage *string `json:"dynamicErrorMessage,omitempty"`
}
// MarshalJSON is the custom marshaler for AzureIaaSVMJobExtendedInfo.
func (aisjei AzureIaaSVMJobExtendedInfo) MarshalJSON() ([]byte, error) {
objectMap := make(map[string]interface{})
if aisjei.TasksList != nil {
objectMap["tasksList"] = aisjei.TasksList
}
if aisjei.PropertyBag != nil {
objectMap["propertyBag"] = aisjei.PropertyBag
}
if aisjei.ProgressPercentage != nil {
objectMap["progressPercentage"] = aisjei.ProgressPercentage
}
if aisjei.DynamicErrorMessage != nil {
objectMap["dynamicErrorMessage"] = aisjei.DynamicErrorMessage
}
return json.Marshal(objectMap)
}
// AzureIaaSVMJobTaskDetails azure IaaS VM workload-specific job task details.
type AzureIaaSVMJobTaskDetails struct {
// TaskID - The task display name.
TaskID *string `json:"taskId,omitempty"`
// StartTime - The start time.
StartTime *date.Time `json:"startTime,omitempty"`
// EndTime - The end time.
EndTime *date.Time `json:"endTime,omitempty"`
// InstanceID - The instanceId.
InstanceID *string `json:"instanceId,omitempty"`
// Duration - Time elapsed for task.
Duration *string `json:"duration,omitempty"`
// Status - The status.
Status *string `json:"status,omitempty"`
// ProgressPercentage - Progress of the task.
ProgressPercentage *float64 `json:"progressPercentage,omitempty"`
}
// BasicAzureIaaSVMProtectedItem iaaS VM workload-specific backup item.
type BasicAzureIaaSVMProtectedItem interface {
AsAzureIaaSClassicComputeVMProtectedItem() (*AzureIaaSClassicComputeVMProtectedItem, bool)
AsAzureIaaSComputeVMProtectedItem() (*AzureIaaSComputeVMProtectedItem, bool)
AsAzureIaaSVMProtectedItem() (*AzureIaaSVMProtectedItem, bool)
}
// AzureIaaSVMProtectedItem iaaS VM workload-specific backup item.
type AzureIaaSVMProtectedItem struct {
// FriendlyName - Friendly name of the VM represented by this backup item.
FriendlyName *string `json:"friendlyName,omitempty"`
// VirtualMachineID - Fully qualified ARM ID of the virtual machine represented by this item.
VirtualMachineID *string `json:"virtualMachineId,omitempty"`
// ProtectionStatus - Backup status of this backup item.
ProtectionStatus *string `json:"protectionStatus,omitempty"`
// ProtectionState - Backup state of this backup item. Possible values include: 'ProtectionStateInvalid', 'ProtectionStateIRPending', 'ProtectionStateProtected', 'ProtectionStateProtectionError', 'ProtectionStateProtectionStopped', 'ProtectionStateProtectionPaused'
ProtectionState ProtectionState `json:"protectionState,omitempty"`
// HealthStatus - Health status of protected item. Possible values include: 'HealthStatusPassed', 'HealthStatusActionRequired', 'HealthStatusActionSuggested', 'HealthStatusInvalid'
HealthStatus HealthStatus `json:"healthStatus,omitempty"`
// HealthDetails - Health details on this backup item.
HealthDetails *[]AzureIaaSVMHealthDetails `json:"healthDetails,omitempty"`
// LastBackupStatus - Last backup operation status.
LastBackupStatus *string `json:"lastBackupStatus,omitempty"`
// LastBackupTime - Timestamp of the last backup operation on this backup item.
LastBackupTime *date.Time `json:"lastBackupTime,omitempty"`
// ProtectedItemDataID - Data ID of the protected item.
ProtectedItemDataID *string `json:"protectedItemDataId,omitempty"`
// ExtendedInfo - Additional information for this backup item.
ExtendedInfo *AzureIaaSVMProtectedItemExtendedInfo `json:"extendedInfo,omitempty"`
// BackupManagementType - Type of backup managemenent for the backed up item. Possible values include: 'ManagementTypeInvalid', 'ManagementTypeAzureIaasVM', 'ManagementTypeMAB', 'ManagementTypeDPM', 'ManagementTypeAzureBackupServer', 'ManagementTypeAzureSQL', 'ManagementTypeAzureStorage', 'ManagementTypeAzureWorkload', 'ManagementTypeDefaultBackup'
BackupManagementType ManagementType `json:"backupManagementType,omitempty"`
// WorkloadType - Type of workload this item represents. Possible values include: 'DataSourceTypeInvalid', 'DataSourceTypeVM', 'DataSourceTypeFileFolder', 'DataSourceTypeAzureSQLDb', 'DataSourceTypeSQLDB', 'DataSourceTypeExchange', 'DataSourceTypeSharepoint', 'DataSourceTypeVMwareVM', 'DataSourceTypeSystemState', 'DataSourceTypeClient', 'DataSourceTypeGenericDataSource', 'DataSourceTypeSQLDataBase', 'DataSourceTypeAzureFileShare'
WorkloadType DataSourceType `json:"workloadType,omitempty"`
// ContainerName - Unique name of container
ContainerName *string `json:"containerName,omitempty"`
// SourceResourceID - ARM ID of the resource to be backed up.
SourceResourceID *string `json:"sourceResourceId,omitempty"`
// PolicyID - ID of the backup policy with which this item is backed up.
PolicyID *string `json:"policyId,omitempty"`
// LastRecoveryPoint - Timestamp when the last (latest) backup copy was created for this backup item.
LastRecoveryPoint *date.Time `json:"lastRecoveryPoint,omitempty"`
// BackupSetName - Name of the backup set the backup item belongs to
BackupSetName *string `json:"backupSetName,omitempty"`
// ProtectedItemType - Possible values include: 'ProtectedItemTypeProtectedItem', 'ProtectedItemTypeAzureFileShareProtectedItem', 'ProtectedItemTypeMicrosoftClassicComputevirtualMachines', 'ProtectedItemTypeMicrosoftComputevirtualMachines', 'ProtectedItemTypeAzureIaaSVMProtectedItem', 'ProtectedItemTypeMicrosoftSqlserversdatabases', 'ProtectedItemTypeAzureVMWorkloadSQLDatabase', 'ProtectedItemTypeDPMProtectedItem', 'ProtectedItemTypeGenericProtectedItem', 'ProtectedItemTypeMabFileFolderProtectedItem'
ProtectedItemType ProtectedItemType `json:"protectedItemType,omitempty"`
}
func unmarshalBasicAzureIaaSVMProtectedItem(body []byte) (BasicAzureIaaSVMProtectedItem, error) {
var m map[string]interface{}
err := json.Unmarshal(body, &m)
if err != nil {
return nil, err
}
switch m["protectedItemType"] {
case string(ProtectedItemTypeMicrosoftClassicComputevirtualMachines):
var aisccvpi AzureIaaSClassicComputeVMProtectedItem
err := json.Unmarshal(body, &aisccvpi)
return aisccvpi, err
case string(ProtectedItemTypeMicrosoftComputevirtualMachines):
var aiscvpi AzureIaaSComputeVMProtectedItem
err := json.Unmarshal(body, &aiscvpi)
return aiscvpi, err
default:
var aispi AzureIaaSVMProtectedItem
err := json.Unmarshal(body, &aispi)
return aispi, err
}
}
func unmarshalBasicAzureIaaSVMProtectedItemArray(body []byte) ([]BasicAzureIaaSVMProtectedItem, error) {
var rawMessages []*json.RawMessage
err := json.Unmarshal(body, &rawMessages)
if err != nil {
return nil, err
}
aispiArray := make([]BasicAzureIaaSVMProtectedItem, len(rawMessages))
for index, rawMessage := range rawMessages {
aispi, err := unmarshalBasicAzureIaaSVMProtectedItem(*rawMessage)
if err != nil {
return nil, err
}
aispiArray[index] = aispi
}
return aispiArray, nil
}
// MarshalJSON is the custom marshaler for AzureIaaSVMProtectedItem.
func (aispi AzureIaaSVMProtectedItem) MarshalJSON() ([]byte, error) {
aispi.ProtectedItemType = ProtectedItemTypeAzureIaaSVMProtectedItem
objectMap := make(map[string]interface{})
if aispi.FriendlyName != nil {
objectMap["friendlyName"] = aispi.FriendlyName
}
if aispi.VirtualMachineID != nil {
objectMap["virtualMachineId"] = aispi.VirtualMachineID
}
if aispi.ProtectionStatus != nil {
objectMap["protectionStatus"] = aispi.ProtectionStatus
}
if aispi.ProtectionState != "" {
objectMap["protectionState"] = aispi.ProtectionState
}
if aispi.HealthStatus != "" {
objectMap["healthStatus"] = aispi.HealthStatus
}
if aispi.HealthDetails != nil {
objectMap["healthDetails"] = aispi.HealthDetails
}
if aispi.LastBackupStatus != nil {
objectMap["lastBackupStatus"] = aispi.LastBackupStatus
}
if aispi.LastBackupTime != nil {
objectMap["lastBackupTime"] = aispi.LastBackupTime
}
if aispi.ProtectedItemDataID != nil {
objectMap["protectedItemDataId"] = aispi.ProtectedItemDataID
}
if aispi.ExtendedInfo != nil {
objectMap["extendedInfo"] = aispi.ExtendedInfo
}
if aispi.BackupManagementType != "" {
objectMap["backupManagementType"] = aispi.BackupManagementType
}
if aispi.WorkloadType != "" {
objectMap["workloadType"] = aispi.WorkloadType
}
if aispi.ContainerName != nil {
objectMap["containerName"] = aispi.ContainerName
}
if aispi.SourceResourceID != nil {
objectMap["sourceResourceId"] = aispi.SourceResourceID
}
if aispi.PolicyID != nil {
objectMap["policyId"] = aispi.PolicyID
}
if aispi.LastRecoveryPoint != nil {
objectMap["lastRecoveryPoint"] = aispi.LastRecoveryPoint
}
if aispi.BackupSetName != nil {
objectMap["backupSetName"] = aispi.BackupSetName
}
if aispi.ProtectedItemType != "" {
objectMap["protectedItemType"] = aispi.ProtectedItemType
}
return json.Marshal(objectMap)
}
// AsAzureFileshareProtectedItem is the BasicProtectedItem implementation for AzureIaaSVMProtectedItem.
func (aispi AzureIaaSVMProtectedItem) AsAzureFileshareProtectedItem() (*AzureFileshareProtectedItem, bool) {
return nil, false
}
// AsAzureIaaSClassicComputeVMProtectedItem is the BasicProtectedItem implementation for AzureIaaSVMProtectedItem.
func (aispi AzureIaaSVMProtectedItem) AsAzureIaaSClassicComputeVMProtectedItem() (*AzureIaaSClassicComputeVMProtectedItem, bool) {
return nil, false
}
// AsAzureIaaSComputeVMProtectedItem is the BasicProtectedItem implementation for AzureIaaSVMProtectedItem.
func (aispi AzureIaaSVMProtectedItem) AsAzureIaaSComputeVMProtectedItem() (*AzureIaaSComputeVMProtectedItem, bool) {
return nil, false
}
// AsAzureIaaSVMProtectedItem is the BasicProtectedItem implementation for AzureIaaSVMProtectedItem.
func (aispi AzureIaaSVMProtectedItem) AsAzureIaaSVMProtectedItem() (*AzureIaaSVMProtectedItem, bool) {
return &aispi, true
}
// AsBasicAzureIaaSVMProtectedItem is the BasicProtectedItem implementation for AzureIaaSVMProtectedItem.
func (aispi AzureIaaSVMProtectedItem) AsBasicAzureIaaSVMProtectedItem() (BasicAzureIaaSVMProtectedItem, bool) {
return &aispi, true
}
// AsAzureSQLProtectedItem is the BasicProtectedItem implementation for AzureIaaSVMProtectedItem.
func (aispi AzureIaaSVMProtectedItem) AsAzureSQLProtectedItem() (*AzureSQLProtectedItem, bool) {
return nil, false
}
// AsAzureVMWorkloadSQLDatabaseProtectedItem is the BasicProtectedItem implementation for AzureIaaSVMProtectedItem.
func (aispi AzureIaaSVMProtectedItem) AsAzureVMWorkloadSQLDatabaseProtectedItem() (*AzureVMWorkloadSQLDatabaseProtectedItem, bool) {
return nil, false
}
// AsDPMProtectedItem is the BasicProtectedItem implementation for AzureIaaSVMProtectedItem.
func (aispi AzureIaaSVMProtectedItem) AsDPMProtectedItem() (*DPMProtectedItem, bool) {
return nil, false
}
// AsGenericProtectedItem is the BasicProtectedItem implementation for AzureIaaSVMProtectedItem.
func (aispi AzureIaaSVMProtectedItem) AsGenericProtectedItem() (*GenericProtectedItem, bool) {
return nil, false
}
// AsMabFileFolderProtectedItem is the BasicProtectedItem implementation for AzureIaaSVMProtectedItem.
func (aispi AzureIaaSVMProtectedItem) AsMabFileFolderProtectedItem() (*MabFileFolderProtectedItem, bool) {
return nil, false
}
// AsProtectedItem is the BasicProtectedItem implementation for AzureIaaSVMProtectedItem.
func (aispi AzureIaaSVMProtectedItem) AsProtectedItem() (*ProtectedItem, bool) {
return nil, false
}
// AsBasicProtectedItem is the BasicProtectedItem implementation for AzureIaaSVMProtectedItem.
func (aispi AzureIaaSVMProtectedItem) AsBasicProtectedItem() (BasicProtectedItem, bool) {
return &aispi, true
}
// AzureIaaSVMProtectedItemExtendedInfo additional information on Azure IaaS VM specific backup item.
type AzureIaaSVMProtectedItemExtendedInfo struct {
// OldestRecoveryPoint - The oldest backup copy available for this backup item.
OldestRecoveryPoint *date.Time `json:"oldestRecoveryPoint,omitempty"`
// RecoveryPointCount - Number of backup copies available for this backup item.
RecoveryPointCount *int32 `json:"recoveryPointCount,omitempty"`
// PolicyInconsistent - Specifies if backup policy associated with the backup item is inconsistent.
PolicyInconsistent *bool `json:"policyInconsistent,omitempty"`
}
// AzureIaaSVMProtectionPolicy iaaS VM workload-specific backup policy.
type AzureIaaSVMProtectionPolicy struct {
// SchedulePolicy - Backup schedule specified as part of backup policy.
SchedulePolicy BasicSchedulePolicy `json:"schedulePolicy,omitempty"`
// RetentionPolicy - Retention policy with the details on backup copy retention ranges.
RetentionPolicy BasicRetentionPolicy `json:"retentionPolicy,omitempty"`
// TimeZone - TimeZone optional input as string. For example: TimeZone = "Pacific Standard Time".
TimeZone *string `json:"timeZone,omitempty"`
// ProtectedItemsCount - Number of items associated with this policy.
ProtectedItemsCount *int32 `json:"protectedItemsCount,omitempty"`
// BackupManagementType - Possible values include: 'BackupManagementTypeProtectionPolicy', 'BackupManagementTypeAzureStorage', 'BackupManagementTypeAzureIaasVM', 'BackupManagementTypeAzureSQL', 'BackupManagementTypeAzureWorkload', 'BackupManagementTypeGenericProtectionPolicy', 'BackupManagementTypeMAB'
BackupManagementType ManagementTypeBasicProtectionPolicy `json:"backupManagementType,omitempty"`
}
// MarshalJSON is the custom marshaler for AzureIaaSVMProtectionPolicy.
func (aispp AzureIaaSVMProtectionPolicy) MarshalJSON() ([]byte, error) {
aispp.BackupManagementType = BackupManagementTypeAzureIaasVM
objectMap := make(map[string]interface{})
objectMap["schedulePolicy"] = aispp.SchedulePolicy
objectMap["retentionPolicy"] = aispp.RetentionPolicy
if aispp.TimeZone != nil {
objectMap["timeZone"] = aispp.TimeZone
}
if aispp.ProtectedItemsCount != nil {
objectMap["protectedItemsCount"] = aispp.ProtectedItemsCount
}
if aispp.BackupManagementType != "" {
objectMap["backupManagementType"] = aispp.BackupManagementType
}
return json.Marshal(objectMap)
}
// AsAzureFileShareProtectionPolicy is the BasicProtectionPolicy implementation for AzureIaaSVMProtectionPolicy.
func (aispp AzureIaaSVMProtectionPolicy) AsAzureFileShareProtectionPolicy() (*AzureFileShareProtectionPolicy, bool) {
return nil, false
}
// AsAzureIaaSVMProtectionPolicy is the BasicProtectionPolicy implementation for AzureIaaSVMProtectionPolicy.
func (aispp AzureIaaSVMProtectionPolicy) AsAzureIaaSVMProtectionPolicy() (*AzureIaaSVMProtectionPolicy, bool) {
return &aispp, true
}
// AsAzureSQLProtectionPolicy is the BasicProtectionPolicy implementation for AzureIaaSVMProtectionPolicy.
func (aispp AzureIaaSVMProtectionPolicy) AsAzureSQLProtectionPolicy() (*AzureSQLProtectionPolicy, bool) {
return nil, false
}
// AsAzureVMWorkloadProtectionPolicy is the BasicProtectionPolicy implementation for AzureIaaSVMProtectionPolicy.
func (aispp AzureIaaSVMProtectionPolicy) AsAzureVMWorkloadProtectionPolicy() (*AzureVMWorkloadProtectionPolicy, bool) {
return nil, false
}
// AsGenericProtectionPolicy is the BasicProtectionPolicy implementation for AzureIaaSVMProtectionPolicy.
func (aispp AzureIaaSVMProtectionPolicy) AsGenericProtectionPolicy() (*GenericProtectionPolicy, bool) {
return nil, false
}
// AsMabProtectionPolicy is the BasicProtectionPolicy implementation for AzureIaaSVMProtectionPolicy.
func (aispp AzureIaaSVMProtectionPolicy) AsMabProtectionPolicy() (*MabProtectionPolicy, bool) {
return nil, false
}
// AsProtectionPolicy is the BasicProtectionPolicy implementation for AzureIaaSVMProtectionPolicy.
func (aispp AzureIaaSVMProtectionPolicy) AsProtectionPolicy() (*ProtectionPolicy, bool) {
return nil, false
}
// AsBasicProtectionPolicy is the BasicProtectionPolicy implementation for AzureIaaSVMProtectionPolicy.
func (aispp AzureIaaSVMProtectionPolicy) AsBasicProtectionPolicy() (BasicProtectionPolicy, bool) {
return &aispp, true
}
// UnmarshalJSON is the custom unmarshaler for AzureIaaSVMProtectionPolicy struct.
func (aispp *AzureIaaSVMProtectionPolicy) UnmarshalJSON(body []byte) error {
var m map[string]*json.RawMessage
err := json.Unmarshal(body, &m)
if err != nil {
return err
}
for k, v := range m {
switch k {
case "schedulePolicy":
if v != nil {
schedulePolicy, err := unmarshalBasicSchedulePolicy(*v)
if err != nil {
return err
}
aispp.SchedulePolicy = schedulePolicy
}
case "retentionPolicy":
if v != nil {
retentionPolicy, err := unmarshalBasicRetentionPolicy(*v)
if err != nil {
return err
}
aispp.RetentionPolicy = retentionPolicy
}
case "timeZone":
if v != nil {
var timeZone string
err = json.Unmarshal(*v, &timeZone)
if err != nil {
return err
}
aispp.TimeZone = &timeZone
}
case "protectedItemsCount":
if v != nil {
var protectedItemsCount int32
err = json.Unmarshal(*v, &protectedItemsCount)
if err != nil {
return err
}
aispp.ProtectedItemsCount = &protectedItemsCount
}
case "backupManagementType":
if v != nil {
var backupManagementType ManagementTypeBasicProtectionPolicy
err = json.Unmarshal(*v, &backupManagementType)
if err != nil {
return err
}
aispp.BackupManagementType = backupManagementType
}
}
}
return nil
}
// AzureResourceProtectionIntent iaaS VM specific backup protection intent item.
type AzureResourceProtectionIntent struct {
// FriendlyName - Friendly name of the VM represented by this backup item.
FriendlyName *string `json:"friendlyName,omitempty"`
// BackupManagementType - Type of backup managemenent for the backed up item. Possible values include: 'ManagementTypeInvalid', 'ManagementTypeAzureIaasVM', 'ManagementTypeMAB', 'ManagementTypeDPM', 'ManagementTypeAzureBackupServer', 'ManagementTypeAzureSQL', 'ManagementTypeAzureStorage', 'ManagementTypeAzureWorkload', 'ManagementTypeDefaultBackup'
BackupManagementType ManagementType `json:"backupManagementType,omitempty"`
// SourceResourceID - ARM ID of the resource to be backed up.
SourceResourceID *string `json:"sourceResourceId,omitempty"`
// ItemID - ID of the item which is getting protected, In case of Azure Vm , it is ProtectedItemId
ItemID *string `json:"itemId,omitempty"`
// PolicyID - ID of the backup policy with which this item is backed up.
PolicyID *string `json:"policyId,omitempty"`
// ProtectionState - Backup state of this backup item. Possible values include: 'ProtectionStatusInvalid', 'ProtectionStatusNotProtected', 'ProtectionStatusProtecting', 'ProtectionStatusProtected', 'ProtectionStatusProtectionFailed'
ProtectionState ProtectionStatus `json:"protectionState,omitempty"`
// ProtectionIntentItemType - Possible values include: 'ProtectionIntentItemTypeProtectionIntent', 'ProtectionIntentItemTypeAzureResourceItem'
ProtectionIntentItemType ProtectionIntentItemType `json:"protectionIntentItemType,omitempty"`
}
// MarshalJSON is the custom marshaler for AzureResourceProtectionIntent.
func (arpi AzureResourceProtectionIntent) MarshalJSON() ([]byte, error) {
arpi.ProtectionIntentItemType = ProtectionIntentItemTypeAzureResourceItem
objectMap := make(map[string]interface{})
if arpi.FriendlyName != nil {
objectMap["friendlyName"] = arpi.FriendlyName
}
if arpi.BackupManagementType != "" {
objectMap["backupManagementType"] = arpi.BackupManagementType
}
if arpi.SourceResourceID != nil {
objectMap["sourceResourceId"] = arpi.SourceResourceID
}
if arpi.ItemID != nil {
objectMap["itemId"] = arpi.ItemID
}
if arpi.PolicyID != nil {
objectMap["policyId"] = arpi.PolicyID
}
if arpi.ProtectionState != "" {
objectMap["protectionState"] = arpi.ProtectionState
}
if arpi.ProtectionIntentItemType != "" {
objectMap["protectionIntentItemType"] = arpi.ProtectionIntentItemType
}
return json.Marshal(objectMap)
}
// AsAzureResourceProtectionIntent is the BasicProtectionIntent implementation for AzureResourceProtectionIntent.
func (arpi AzureResourceProtectionIntent) AsAzureResourceProtectionIntent() (*AzureResourceProtectionIntent, bool) {
return &arpi, true
}
// AsProtectionIntent is the BasicProtectionIntent implementation for AzureResourceProtectionIntent.
func (arpi AzureResourceProtectionIntent) AsProtectionIntent() (*ProtectionIntent, bool) {
return nil, false
}
// AsBasicProtectionIntent is the BasicProtectionIntent implementation for AzureResourceProtectionIntent.
func (arpi AzureResourceProtectionIntent) AsBasicProtectionIntent() (BasicProtectionIntent, bool) {
return &arpi, true
}
// AzureSQLAGWorkloadContainerProtectionContainer container for SQL workloads under SQL Availability Group.
type AzureSQLAGWorkloadContainerProtectionContainer struct {
// SourceResourceID - ARM ID of the virtual machine represented by this Azure Workload Container
SourceResourceID *string `json:"sourceResourceId,omitempty"`
// LastUpdatedTime - Time stamp when this container was updated.
LastUpdatedTime *date.Time `json:"lastUpdatedTime,omitempty"`
// ExtendedInfo - Additional details of a workload container.
ExtendedInfo *AzureWorkloadContainerExtendedInfo `json:"extendedInfo,omitempty"`
// FriendlyName - Friendly name of the container.
FriendlyName *string `json:"friendlyName,omitempty"`
// BackupManagementType - Type of backup managemenent for the container. Possible values include: 'ManagementTypeInvalid', 'ManagementTypeAzureIaasVM', 'ManagementTypeMAB', 'ManagementTypeDPM', 'ManagementTypeAzureBackupServer', 'ManagementTypeAzureSQL', 'ManagementTypeAzureStorage', 'ManagementTypeAzureWorkload', 'ManagementTypeDefaultBackup'
BackupManagementType ManagementType `json:"backupManagementType,omitempty"`
// RegistrationStatus - Status of registration of the container with the Recovery Services Vault.
RegistrationStatus *string `json:"registrationStatus,omitempty"`
// HealthStatus - Status of health of the container.
HealthStatus *string `json:"healthStatus,omitempty"`
// ContainerType - Possible values include: 'ContainerTypeProtectionContainer', 'ContainerTypeAzureBackupServerContainer1', 'ContainerTypeMicrosoftClassicComputevirtualMachines', 'ContainerTypeMicrosoftComputevirtualMachines', 'ContainerTypeSQLAGWorkLoadContainer1', 'ContainerTypeAzureSQLContainer1', 'ContainerTypeStorageContainer1', 'ContainerTypeVMAppContainer1', 'ContainerTypeAzureWorkloadContainer', 'ContainerTypeDPMContainer1', 'ContainerTypeGenericContainer1', 'ContainerTypeIaaSVMContainer', 'ContainerTypeMABWindowsContainer'
ContainerType ContainerTypeBasicProtectionContainer `json:"containerType,omitempty"`
}
// MarshalJSON is the custom marshaler for AzureSQLAGWorkloadContainerProtectionContainer.
func (aswcpc AzureSQLAGWorkloadContainerProtectionContainer) MarshalJSON() ([]byte, error) {
aswcpc.ContainerType = ContainerTypeSQLAGWorkLoadContainer1
objectMap := make(map[string]interface{})
if aswcpc.SourceResourceID != nil {
objectMap["sourceResourceId"] = aswcpc.SourceResourceID
}
if aswcpc.LastUpdatedTime != nil {
objectMap["lastUpdatedTime"] = aswcpc.LastUpdatedTime
}
if aswcpc.ExtendedInfo != nil {
objectMap["extendedInfo"] = aswcpc.ExtendedInfo
}
if aswcpc.FriendlyName != nil {
objectMap["friendlyName"] = aswcpc.FriendlyName
}
if aswcpc.BackupManagementType != "" {
objectMap["backupManagementType"] = aswcpc.BackupManagementType
}
if aswcpc.RegistrationStatus != nil {
objectMap["registrationStatus"] = aswcpc.RegistrationStatus
}
if aswcpc.HealthStatus != nil {
objectMap["healthStatus"] = aswcpc.HealthStatus
}
if aswcpc.ContainerType != "" {
objectMap["containerType"] = aswcpc.ContainerType
}
return json.Marshal(objectMap)
}
// AsAzureBackupServerContainer is the BasicProtectionContainer implementation for AzureSQLAGWorkloadContainerProtectionContainer.
func (aswcpc AzureSQLAGWorkloadContainerProtectionContainer) AsAzureBackupServerContainer() (*AzureBackupServerContainer, bool) {
return nil, false
}
// AsAzureIaaSClassicComputeVMContainer is the BasicProtectionContainer implementation for AzureSQLAGWorkloadContainerProtectionContainer.
func (aswcpc AzureSQLAGWorkloadContainerProtectionContainer) AsAzureIaaSClassicComputeVMContainer() (*AzureIaaSClassicComputeVMContainer, bool) {
return nil, false
}
// AsAzureIaaSComputeVMContainer is the BasicProtectionContainer implementation for AzureSQLAGWorkloadContainerProtectionContainer.
func (aswcpc AzureSQLAGWorkloadContainerProtectionContainer) AsAzureIaaSComputeVMContainer() (*AzureIaaSComputeVMContainer, bool) {
return nil, false
}
// AsAzureSQLAGWorkloadContainerProtectionContainer is the BasicProtectionContainer implementation for AzureSQLAGWorkloadContainerProtectionContainer.
func (aswcpc AzureSQLAGWorkloadContainerProtectionContainer) AsAzureSQLAGWorkloadContainerProtectionContainer() (*AzureSQLAGWorkloadContainerProtectionContainer, bool) {
return &aswcpc, true
}
// AsAzureSQLContainer is the BasicProtectionContainer implementation for AzureSQLAGWorkloadContainerProtectionContainer.
func (aswcpc AzureSQLAGWorkloadContainerProtectionContainer) AsAzureSQLContainer() (*AzureSQLContainer, bool) {
return nil, false
}
// AsAzureStorageContainer is the BasicProtectionContainer implementation for AzureSQLAGWorkloadContainerProtectionContainer.
func (aswcpc AzureSQLAGWorkloadContainerProtectionContainer) AsAzureStorageContainer() (*AzureStorageContainer, bool) {
return nil, false
}
// AsAzureVMAppContainerProtectionContainer is the BasicProtectionContainer implementation for AzureSQLAGWorkloadContainerProtectionContainer.
func (aswcpc AzureSQLAGWorkloadContainerProtectionContainer) AsAzureVMAppContainerProtectionContainer() (*AzureVMAppContainerProtectionContainer, bool) {
return nil, false
}
// AsAzureWorkloadContainer is the BasicProtectionContainer implementation for AzureSQLAGWorkloadContainerProtectionContainer.
func (aswcpc AzureSQLAGWorkloadContainerProtectionContainer) AsAzureWorkloadContainer() (*AzureWorkloadContainer, bool) {
return nil, false
}
// AsBasicAzureWorkloadContainer is the BasicProtectionContainer implementation for AzureSQLAGWorkloadContainerProtectionContainer.
func (aswcpc AzureSQLAGWorkloadContainerProtectionContainer) AsBasicAzureWorkloadContainer() (BasicAzureWorkloadContainer, bool) {
return &aswcpc, true
}
// AsDpmContainer is the BasicProtectionContainer implementation for AzureSQLAGWorkloadContainerProtectionContainer.
func (aswcpc AzureSQLAGWorkloadContainerProtectionContainer) AsDpmContainer() (*DpmContainer, bool) {
return nil, false
}
// AsGenericContainer is the BasicProtectionContainer implementation for AzureSQLAGWorkloadContainerProtectionContainer.
func (aswcpc AzureSQLAGWorkloadContainerProtectionContainer) AsGenericContainer() (*GenericContainer, bool) {
return nil, false
}
// AsIaaSVMContainer is the BasicProtectionContainer implementation for AzureSQLAGWorkloadContainerProtectionContainer.
func (aswcpc AzureSQLAGWorkloadContainerProtectionContainer) AsIaaSVMContainer() (*IaaSVMContainer, bool) {
return nil, false
}
// AsBasicIaaSVMContainer is the BasicProtectionContainer implementation for AzureSQLAGWorkloadContainerProtectionContainer.
func (aswcpc AzureSQLAGWorkloadContainerProtectionContainer) AsBasicIaaSVMContainer() (BasicIaaSVMContainer, bool) {
return nil, false
}
// AsMabContainer is the BasicProtectionContainer implementation for AzureSQLAGWorkloadContainerProtectionContainer.
func (aswcpc AzureSQLAGWorkloadContainerProtectionContainer) AsMabContainer() (*MabContainer, bool) {
return nil, false
}
// AsProtectionContainer is the BasicProtectionContainer implementation for AzureSQLAGWorkloadContainerProtectionContainer.
func (aswcpc AzureSQLAGWorkloadContainerProtectionContainer) AsProtectionContainer() (*ProtectionContainer, bool) {
return nil, false
}
// AsBasicProtectionContainer is the BasicProtectionContainer implementation for AzureSQLAGWorkloadContainerProtectionContainer.
func (aswcpc AzureSQLAGWorkloadContainerProtectionContainer) AsBasicProtectionContainer() (BasicProtectionContainer, bool) {
return &aswcpc, true
}
// AzureSQLContainer azure Sql workload-specific container.
type AzureSQLContainer struct {
// FriendlyName - Friendly name of the container.
FriendlyName *string `json:"friendlyName,omitempty"`
// BackupManagementType - Type of backup managemenent for the container. Possible values include: 'ManagementTypeInvalid', 'ManagementTypeAzureIaasVM', 'ManagementTypeMAB', 'ManagementTypeDPM', 'ManagementTypeAzureBackupServer', 'ManagementTypeAzureSQL', 'ManagementTypeAzureStorage', 'ManagementTypeAzureWorkload', 'ManagementTypeDefaultBackup'
BackupManagementType ManagementType `json:"backupManagementType,omitempty"`
// RegistrationStatus - Status of registration of the container with the Recovery Services Vault.
RegistrationStatus *string `json:"registrationStatus,omitempty"`
// HealthStatus - Status of health of the container.
HealthStatus *string `json:"healthStatus,omitempty"`
// ContainerType - Possible values include: 'ContainerTypeProtectionContainer', 'ContainerTypeAzureBackupServerContainer1', 'ContainerTypeMicrosoftClassicComputevirtualMachines', 'ContainerTypeMicrosoftComputevirtualMachines', 'ContainerTypeSQLAGWorkLoadContainer1', 'ContainerTypeAzureSQLContainer1', 'ContainerTypeStorageContainer1', 'ContainerTypeVMAppContainer1', 'ContainerTypeAzureWorkloadContainer', 'ContainerTypeDPMContainer1', 'ContainerTypeGenericContainer1', 'ContainerTypeIaaSVMContainer', 'ContainerTypeMABWindowsContainer'
ContainerType ContainerTypeBasicProtectionContainer `json:"containerType,omitempty"`
}
// MarshalJSON is the custom marshaler for AzureSQLContainer.
func (asc AzureSQLContainer) MarshalJSON() ([]byte, error) {
asc.ContainerType = ContainerTypeAzureSQLContainer1
objectMap := make(map[string]interface{})
if asc.FriendlyName != nil {
objectMap["friendlyName"] = asc.FriendlyName
}
if asc.BackupManagementType != "" {
objectMap["backupManagementType"] = asc.BackupManagementType
}
if asc.RegistrationStatus != nil {
objectMap["registrationStatus"] = asc.RegistrationStatus
}
if asc.HealthStatus != nil {
objectMap["healthStatus"] = asc.HealthStatus
}
if asc.ContainerType != "" {
objectMap["containerType"] = asc.ContainerType
}
return json.Marshal(objectMap)
}
// AsAzureBackupServerContainer is the BasicProtectionContainer implementation for AzureSQLContainer.
func (asc AzureSQLContainer) AsAzureBackupServerContainer() (*AzureBackupServerContainer, bool) {
return nil, false
}
// AsAzureIaaSClassicComputeVMContainer is the BasicProtectionContainer implementation for AzureSQLContainer.
func (asc AzureSQLContainer) AsAzureIaaSClassicComputeVMContainer() (*AzureIaaSClassicComputeVMContainer, bool) {
return nil, false
}
// AsAzureIaaSComputeVMContainer is the BasicProtectionContainer implementation for AzureSQLContainer.
func (asc AzureSQLContainer) AsAzureIaaSComputeVMContainer() (*AzureIaaSComputeVMContainer, bool) {
return nil, false
}
// AsAzureSQLAGWorkloadContainerProtectionContainer is the BasicProtectionContainer implementation for AzureSQLContainer.
func (asc AzureSQLContainer) AsAzureSQLAGWorkloadContainerProtectionContainer() (*AzureSQLAGWorkloadContainerProtectionContainer, bool) {
return nil, false
}
// AsAzureSQLContainer is the BasicProtectionContainer implementation for AzureSQLContainer.
func (asc AzureSQLContainer) AsAzureSQLContainer() (*AzureSQLContainer, bool) {
return &asc, true
}
// AsAzureStorageContainer is the BasicProtectionContainer implementation for AzureSQLContainer.
func (asc AzureSQLContainer) AsAzureStorageContainer() (*AzureStorageContainer, bool) {
return nil, false
}
// AsAzureVMAppContainerProtectionContainer is the BasicProtectionContainer implementation for AzureSQLContainer.
func (asc AzureSQLContainer) AsAzureVMAppContainerProtectionContainer() (*AzureVMAppContainerProtectionContainer, bool) {
return nil, false
}
// AsAzureWorkloadContainer is the BasicProtectionContainer implementation for AzureSQLContainer.
func (asc AzureSQLContainer) AsAzureWorkloadContainer() (*AzureWorkloadContainer, bool) {
return nil, false
}
// AsBasicAzureWorkloadContainer is the BasicProtectionContainer implementation for AzureSQLContainer.
func (asc AzureSQLContainer) AsBasicAzureWorkloadContainer() (BasicAzureWorkloadContainer, bool) {
return nil, false
}
// AsDpmContainer is the BasicProtectionContainer implementation for AzureSQLContainer.
func (asc AzureSQLContainer) AsDpmContainer() (*DpmContainer, bool) {
return nil, false
}
// AsGenericContainer is the BasicProtectionContainer implementation for AzureSQLContainer.
func (asc AzureSQLContainer) AsGenericContainer() (*GenericContainer, bool) {
return nil, false
}
// AsIaaSVMContainer is the BasicProtectionContainer implementation for AzureSQLContainer.
func (asc AzureSQLContainer) AsIaaSVMContainer() (*IaaSVMContainer, bool) {
return nil, false
}
// AsBasicIaaSVMContainer is the BasicProtectionContainer implementation for AzureSQLContainer.
func (asc AzureSQLContainer) AsBasicIaaSVMContainer() (BasicIaaSVMContainer, bool) {
return nil, false
}
// AsMabContainer is the BasicProtectionContainer implementation for AzureSQLContainer.
func (asc AzureSQLContainer) AsMabContainer() (*MabContainer, bool) {
return nil, false
}
// AsProtectionContainer is the BasicProtectionContainer implementation for AzureSQLContainer.
func (asc AzureSQLContainer) AsProtectionContainer() (*ProtectionContainer, bool) {
return nil, false
}
// AsBasicProtectionContainer is the BasicProtectionContainer implementation for AzureSQLContainer.
func (asc AzureSQLContainer) AsBasicProtectionContainer() (BasicProtectionContainer, bool) {
return &asc, true
}
// AzureSQLProtectedItem azure SQL workload-specific backup item.
type AzureSQLProtectedItem struct {
// ProtectedItemDataID - Internal ID of a backup item. Used by Azure SQL Backup engine to contact Recovery Services.
ProtectedItemDataID *string `json:"protectedItemDataId,omitempty"`
// ProtectionState - Backup state of the backed up item. Possible values include: 'ProtectedItemStateInvalid', 'ProtectedItemStateIRPending', 'ProtectedItemStateProtected', 'ProtectedItemStateProtectionError', 'ProtectedItemStateProtectionStopped', 'ProtectedItemStateProtectionPaused'
ProtectionState ProtectedItemState `json:"protectionState,omitempty"`
// ExtendedInfo - Additional information for this backup item.
ExtendedInfo *AzureSQLProtectedItemExtendedInfo `json:"extendedInfo,omitempty"`
// BackupManagementType - Type of backup managemenent for the backed up item. Possible values include: 'ManagementTypeInvalid', 'ManagementTypeAzureIaasVM', 'ManagementTypeMAB', 'ManagementTypeDPM', 'ManagementTypeAzureBackupServer', 'ManagementTypeAzureSQL', 'ManagementTypeAzureStorage', 'ManagementTypeAzureWorkload', 'ManagementTypeDefaultBackup'
BackupManagementType ManagementType `json:"backupManagementType,omitempty"`
// WorkloadType - Type of workload this item represents. Possible values include: 'DataSourceTypeInvalid', 'DataSourceTypeVM', 'DataSourceTypeFileFolder', 'DataSourceTypeAzureSQLDb', 'DataSourceTypeSQLDB', 'DataSourceTypeExchange', 'DataSourceTypeSharepoint', 'DataSourceTypeVMwareVM', 'DataSourceTypeSystemState', 'DataSourceTypeClient', 'DataSourceTypeGenericDataSource', 'DataSourceTypeSQLDataBase', 'DataSourceTypeAzureFileShare'
WorkloadType DataSourceType `json:"workloadType,omitempty"`
// ContainerName - Unique name of container
ContainerName *string `json:"containerName,omitempty"`
// SourceResourceID - ARM ID of the resource to be backed up.
SourceResourceID *string `json:"sourceResourceId,omitempty"`
// PolicyID - ID of the backup policy with which this item is backed up.
PolicyID *string `json:"policyId,omitempty"`
// LastRecoveryPoint - Timestamp when the last (latest) backup copy was created for this backup item.
LastRecoveryPoint *date.Time `json:"lastRecoveryPoint,omitempty"`
// BackupSetName - Name of the backup set the backup item belongs to
BackupSetName *string `json:"backupSetName,omitempty"`
// ProtectedItemType - Possible values include: 'ProtectedItemTypeProtectedItem', 'ProtectedItemTypeAzureFileShareProtectedItem', 'ProtectedItemTypeMicrosoftClassicComputevirtualMachines', 'ProtectedItemTypeMicrosoftComputevirtualMachines', 'ProtectedItemTypeAzureIaaSVMProtectedItem', 'ProtectedItemTypeMicrosoftSqlserversdatabases', 'ProtectedItemTypeAzureVMWorkloadSQLDatabase', 'ProtectedItemTypeDPMProtectedItem', 'ProtectedItemTypeGenericProtectedItem', 'ProtectedItemTypeMabFileFolderProtectedItem'
ProtectedItemType ProtectedItemType `json:"protectedItemType,omitempty"`
}
// MarshalJSON is the custom marshaler for AzureSQLProtectedItem.
func (aspi AzureSQLProtectedItem) MarshalJSON() ([]byte, error) {
aspi.ProtectedItemType = ProtectedItemTypeMicrosoftSqlserversdatabases
objectMap := make(map[string]interface{})
if aspi.ProtectedItemDataID != nil {
objectMap["protectedItemDataId"] = aspi.ProtectedItemDataID
}
if aspi.ProtectionState != "" {
objectMap["protectionState"] = aspi.ProtectionState
}
if aspi.ExtendedInfo != nil {
objectMap["extendedInfo"] = aspi.ExtendedInfo
}
if aspi.BackupManagementType != "" {
objectMap["backupManagementType"] = aspi.BackupManagementType
}
if aspi.WorkloadType != "" {
objectMap["workloadType"] = aspi.WorkloadType
}
if aspi.ContainerName != nil {
objectMap["containerName"] = aspi.ContainerName
}
if aspi.SourceResourceID != nil {
objectMap["sourceResourceId"] = aspi.SourceResourceID
}
if aspi.PolicyID != nil {
objectMap["policyId"] = aspi.PolicyID
}
if aspi.LastRecoveryPoint != nil {
objectMap["lastRecoveryPoint"] = aspi.LastRecoveryPoint
}
if aspi.BackupSetName != nil {
objectMap["backupSetName"] = aspi.BackupSetName
}
if aspi.ProtectedItemType != "" {
objectMap["protectedItemType"] = aspi.ProtectedItemType
}
return json.Marshal(objectMap)
}
// AsAzureFileshareProtectedItem is the BasicProtectedItem implementation for AzureSQLProtectedItem.
func (aspi AzureSQLProtectedItem) AsAzureFileshareProtectedItem() (*AzureFileshareProtectedItem, bool) {
return nil, false
}
// AsAzureIaaSClassicComputeVMProtectedItem is the BasicProtectedItem implementation for AzureSQLProtectedItem.
func (aspi AzureSQLProtectedItem) AsAzureIaaSClassicComputeVMProtectedItem() (*AzureIaaSClassicComputeVMProtectedItem, bool) {
return nil, false
}
// AsAzureIaaSComputeVMProtectedItem is the BasicProtectedItem implementation for AzureSQLProtectedItem.
func (aspi AzureSQLProtectedItem) AsAzureIaaSComputeVMProtectedItem() (*AzureIaaSComputeVMProtectedItem, bool) {
return nil, false
}
// AsAzureIaaSVMProtectedItem is the BasicProtectedItem implementation for AzureSQLProtectedItem.
func (aspi AzureSQLProtectedItem) AsAzureIaaSVMProtectedItem() (*AzureIaaSVMProtectedItem, bool) {
return nil, false
}
// AsBasicAzureIaaSVMProtectedItem is the BasicProtectedItem implementation for AzureSQLProtectedItem.
func (aspi AzureSQLProtectedItem) AsBasicAzureIaaSVMProtectedItem() (BasicAzureIaaSVMProtectedItem, bool) {
return nil, false
}
// AsAzureSQLProtectedItem is the BasicProtectedItem implementation for AzureSQLProtectedItem.
func (aspi AzureSQLProtectedItem) AsAzureSQLProtectedItem() (*AzureSQLProtectedItem, bool) {
return &aspi, true
}
// AsAzureVMWorkloadSQLDatabaseProtectedItem is the BasicProtectedItem implementation for AzureSQLProtectedItem.
func (aspi AzureSQLProtectedItem) AsAzureVMWorkloadSQLDatabaseProtectedItem() (*AzureVMWorkloadSQLDatabaseProtectedItem, bool) {
return nil, false
}
// AsDPMProtectedItem is the BasicProtectedItem implementation for AzureSQLProtectedItem.
func (aspi AzureSQLProtectedItem) AsDPMProtectedItem() (*DPMProtectedItem, bool) {
return nil, false
}
// AsGenericProtectedItem is the BasicProtectedItem implementation for AzureSQLProtectedItem.
func (aspi AzureSQLProtectedItem) AsGenericProtectedItem() (*GenericProtectedItem, bool) {
return nil, false
}
// AsMabFileFolderProtectedItem is the BasicProtectedItem implementation for AzureSQLProtectedItem.
func (aspi AzureSQLProtectedItem) AsMabFileFolderProtectedItem() (*MabFileFolderProtectedItem, bool) {
return nil, false
}
// AsProtectedItem is the BasicProtectedItem implementation for AzureSQLProtectedItem.
func (aspi AzureSQLProtectedItem) AsProtectedItem() (*ProtectedItem, bool) {
return nil, false
}
// AsBasicProtectedItem is the BasicProtectedItem implementation for AzureSQLProtectedItem.
func (aspi AzureSQLProtectedItem) AsBasicProtectedItem() (BasicProtectedItem, bool) {
return &aspi, true
}
// AzureSQLProtectedItemExtendedInfo additional information on Azure Sql specific protected item.
type AzureSQLProtectedItemExtendedInfo struct {
// OldestRecoveryPoint - The oldest backup copy available for this item in the service.
OldestRecoveryPoint *date.Time `json:"oldestRecoveryPoint,omitempty"`
// RecoveryPointCount - Number of available backup copies associated with this backup item.
RecoveryPointCount *int32 `json:"recoveryPointCount,omitempty"`
// PolicyState - State of the backup policy associated with this backup item.
PolicyState *string `json:"policyState,omitempty"`
}
// AzureSQLProtectionPolicy azure SQL workload-specific backup policy.
type AzureSQLProtectionPolicy struct {
// RetentionPolicy - Retention policy details.
RetentionPolicy BasicRetentionPolicy `json:"retentionPolicy,omitempty"`
// ProtectedItemsCount - Number of items associated with this policy.
ProtectedItemsCount *int32 `json:"protectedItemsCount,omitempty"`
// BackupManagementType - Possible values include: 'BackupManagementTypeProtectionPolicy', 'BackupManagementTypeAzureStorage', 'BackupManagementTypeAzureIaasVM', 'BackupManagementTypeAzureSQL', 'BackupManagementTypeAzureWorkload', 'BackupManagementTypeGenericProtectionPolicy', 'BackupManagementTypeMAB'
BackupManagementType ManagementTypeBasicProtectionPolicy `json:"backupManagementType,omitempty"`
}
// MarshalJSON is the custom marshaler for AzureSQLProtectionPolicy.
func (aspp AzureSQLProtectionPolicy) MarshalJSON() ([]byte, error) {
aspp.BackupManagementType = BackupManagementTypeAzureSQL
objectMap := make(map[string]interface{})
objectMap["retentionPolicy"] = aspp.RetentionPolicy
if aspp.ProtectedItemsCount != nil {
objectMap["protectedItemsCount"] = aspp.ProtectedItemsCount
}
if aspp.BackupManagementType != "" {
objectMap["backupManagementType"] = aspp.BackupManagementType
}
return json.Marshal(objectMap)
}
// AsAzureFileShareProtectionPolicy is the BasicProtectionPolicy implementation for AzureSQLProtectionPolicy.
func (aspp AzureSQLProtectionPolicy) AsAzureFileShareProtectionPolicy() (*AzureFileShareProtectionPolicy, bool) {
return nil, false
}
// AsAzureIaaSVMProtectionPolicy is the BasicProtectionPolicy implementation for AzureSQLProtectionPolicy.
func (aspp AzureSQLProtectionPolicy) AsAzureIaaSVMProtectionPolicy() (*AzureIaaSVMProtectionPolicy, bool) {
return nil, false
}
// AsAzureSQLProtectionPolicy is the BasicProtectionPolicy implementation for AzureSQLProtectionPolicy.
func (aspp AzureSQLProtectionPolicy) AsAzureSQLProtectionPolicy() (*AzureSQLProtectionPolicy, bool) {
return &aspp, true
}
// AsAzureVMWorkloadProtectionPolicy is the BasicProtectionPolicy implementation for AzureSQLProtectionPolicy.
func (aspp AzureSQLProtectionPolicy) AsAzureVMWorkloadProtectionPolicy() (*AzureVMWorkloadProtectionPolicy, bool) {
return nil, false
}
// AsGenericProtectionPolicy is the BasicProtectionPolicy implementation for AzureSQLProtectionPolicy.
func (aspp AzureSQLProtectionPolicy) AsGenericProtectionPolicy() (*GenericProtectionPolicy, bool) {
return nil, false
}
// AsMabProtectionPolicy is the BasicProtectionPolicy implementation for AzureSQLProtectionPolicy.
func (aspp AzureSQLProtectionPolicy) AsMabProtectionPolicy() (*MabProtectionPolicy, bool) {
return nil, false
}
// AsProtectionPolicy is the BasicProtectionPolicy implementation for AzureSQLProtectionPolicy.
func (aspp AzureSQLProtectionPolicy) AsProtectionPolicy() (*ProtectionPolicy, bool) {
return nil, false
}
// AsBasicProtectionPolicy is the BasicProtectionPolicy implementation for AzureSQLProtectionPolicy.
func (aspp AzureSQLProtectionPolicy) AsBasicProtectionPolicy() (BasicProtectionPolicy, bool) {
return &aspp, true
}
// UnmarshalJSON is the custom unmarshaler for AzureSQLProtectionPolicy struct.
func (aspp *AzureSQLProtectionPolicy) UnmarshalJSON(body []byte) error {
var m map[string]*json.RawMessage
err := json.Unmarshal(body, &m)
if err != nil {
return err
}
for k, v := range m {
switch k {
case "retentionPolicy":
if v != nil {
retentionPolicy, err := unmarshalBasicRetentionPolicy(*v)
if err != nil {
return err
}
aspp.RetentionPolicy = retentionPolicy
}
case "protectedItemsCount":
if v != nil {
var protectedItemsCount int32
err = json.Unmarshal(*v, &protectedItemsCount)
if err != nil {
return err
}
aspp.ProtectedItemsCount = &protectedItemsCount
}
case "backupManagementType":
if v != nil {
var backupManagementType ManagementTypeBasicProtectionPolicy
err = json.Unmarshal(*v, &backupManagementType)
if err != nil {
return err
}
aspp.BackupManagementType = backupManagementType
}
}
}
return nil
}
// AzureStorageContainer azure Storage Account workload-specific container.
type AzureStorageContainer struct {
// SourceResourceID - Fully qualified ARM url.
SourceResourceID *string `json:"sourceResourceId,omitempty"`
// StorageAccountVersion - Storage account version.
StorageAccountVersion *string `json:"storageAccountVersion,omitempty"`
// ResourceGroup - Resource group name of Recovery Services Vault.
ResourceGroup *string `json:"resourceGroup,omitempty"`
// ProtectedItemCount - Number of items backed up in this container.
ProtectedItemCount *int64 `json:"protectedItemCount,omitempty"`
// FriendlyName - Friendly name of the container.
FriendlyName *string `json:"friendlyName,omitempty"`
// BackupManagementType - Type of backup managemenent for the container. Possible values include: 'ManagementTypeInvalid', 'ManagementTypeAzureIaasVM', 'ManagementTypeMAB', 'ManagementTypeDPM', 'ManagementTypeAzureBackupServer', 'ManagementTypeAzureSQL', 'ManagementTypeAzureStorage', 'ManagementTypeAzureWorkload', 'ManagementTypeDefaultBackup'
BackupManagementType ManagementType `json:"backupManagementType,omitempty"`
// RegistrationStatus - Status of registration of the container with the Recovery Services Vault.
RegistrationStatus *string `json:"registrationStatus,omitempty"`
// HealthStatus - Status of health of the container.
HealthStatus *string `json:"healthStatus,omitempty"`
// ContainerType - Possible values include: 'ContainerTypeProtectionContainer', 'ContainerTypeAzureBackupServerContainer1', 'ContainerTypeMicrosoftClassicComputevirtualMachines', 'ContainerTypeMicrosoftComputevirtualMachines', 'ContainerTypeSQLAGWorkLoadContainer1', 'ContainerTypeAzureSQLContainer1', 'ContainerTypeStorageContainer1', 'ContainerTypeVMAppContainer1', 'ContainerTypeAzureWorkloadContainer', 'ContainerTypeDPMContainer1', 'ContainerTypeGenericContainer1', 'ContainerTypeIaaSVMContainer', 'ContainerTypeMABWindowsContainer'
ContainerType ContainerTypeBasicProtectionContainer `json:"containerType,omitempty"`
}
// MarshalJSON is the custom marshaler for AzureStorageContainer.
func (asc AzureStorageContainer) MarshalJSON() ([]byte, error) {
asc.ContainerType = ContainerTypeStorageContainer1
objectMap := make(map[string]interface{})
if asc.SourceResourceID != nil {
objectMap["sourceResourceId"] = asc.SourceResourceID
}
if asc.StorageAccountVersion != nil {
objectMap["storageAccountVersion"] = asc.StorageAccountVersion
}
if asc.ResourceGroup != nil {
objectMap["resourceGroup"] = asc.ResourceGroup
}
if asc.ProtectedItemCount != nil {
objectMap["protectedItemCount"] = asc.ProtectedItemCount
}
if asc.FriendlyName != nil {
objectMap["friendlyName"] = asc.FriendlyName
}
if asc.BackupManagementType != "" {
objectMap["backupManagementType"] = asc.BackupManagementType
}
if asc.RegistrationStatus != nil {
objectMap["registrationStatus"] = asc.RegistrationStatus
}
if asc.HealthStatus != nil {
objectMap["healthStatus"] = asc.HealthStatus
}
if asc.ContainerType != "" {
objectMap["containerType"] = asc.ContainerType
}
return json.Marshal(objectMap)
}
// AsAzureBackupServerContainer is the BasicProtectionContainer implementation for AzureStorageContainer.
func (asc AzureStorageContainer) AsAzureBackupServerContainer() (*AzureBackupServerContainer, bool) {
return nil, false
}
// AsAzureIaaSClassicComputeVMContainer is the BasicProtectionContainer implementation for AzureStorageContainer.
func (asc AzureStorageContainer) AsAzureIaaSClassicComputeVMContainer() (*AzureIaaSClassicComputeVMContainer, bool) {
return nil, false
}
// AsAzureIaaSComputeVMContainer is the BasicProtectionContainer implementation for AzureStorageContainer.
func (asc AzureStorageContainer) AsAzureIaaSComputeVMContainer() (*AzureIaaSComputeVMContainer, bool) {
return nil, false
}
// AsAzureSQLAGWorkloadContainerProtectionContainer is the BasicProtectionContainer implementation for AzureStorageContainer.
func (asc AzureStorageContainer) AsAzureSQLAGWorkloadContainerProtectionContainer() (*AzureSQLAGWorkloadContainerProtectionContainer, bool) {
return nil, false
}
// AsAzureSQLContainer is the BasicProtectionContainer implementation for AzureStorageContainer.
func (asc AzureStorageContainer) AsAzureSQLContainer() (*AzureSQLContainer, bool) {
return nil, false
}
// AsAzureStorageContainer is the BasicProtectionContainer implementation for AzureStorageContainer.
func (asc AzureStorageContainer) AsAzureStorageContainer() (*AzureStorageContainer, bool) {
return &asc, true
}
// AsAzureVMAppContainerProtectionContainer is the BasicProtectionContainer implementation for AzureStorageContainer.
func (asc AzureStorageContainer) AsAzureVMAppContainerProtectionContainer() (*AzureVMAppContainerProtectionContainer, bool) {
return nil, false
}
// AsAzureWorkloadContainer is the BasicProtectionContainer implementation for AzureStorageContainer.
func (asc AzureStorageContainer) AsAzureWorkloadContainer() (*AzureWorkloadContainer, bool) {
return nil, false
}
// AsBasicAzureWorkloadContainer is the BasicProtectionContainer implementation for AzureStorageContainer.
func (asc AzureStorageContainer) AsBasicAzureWorkloadContainer() (BasicAzureWorkloadContainer, bool) {
return nil, false
}
// AsDpmContainer is the BasicProtectionContainer implementation for AzureStorageContainer.
func (asc AzureStorageContainer) AsDpmContainer() (*DpmContainer, bool) {
return nil, false
}
// AsGenericContainer is the BasicProtectionContainer implementation for AzureStorageContainer.
func (asc AzureStorageContainer) AsGenericContainer() (*GenericContainer, bool) {
return nil, false
}
// AsIaaSVMContainer is the BasicProtectionContainer implementation for AzureStorageContainer.
func (asc AzureStorageContainer) AsIaaSVMContainer() (*IaaSVMContainer, bool) {
return nil, false
}
// AsBasicIaaSVMContainer is the BasicProtectionContainer implementation for AzureStorageContainer.
func (asc AzureStorageContainer) AsBasicIaaSVMContainer() (BasicIaaSVMContainer, bool) {
return nil, false
}
// AsMabContainer is the BasicProtectionContainer implementation for AzureStorageContainer.
func (asc AzureStorageContainer) AsMabContainer() (*MabContainer, bool) {
return nil, false
}
// AsProtectionContainer is the BasicProtectionContainer implementation for AzureStorageContainer.
func (asc AzureStorageContainer) AsProtectionContainer() (*ProtectionContainer, bool) {
return nil, false
}
// AsBasicProtectionContainer is the BasicProtectionContainer implementation for AzureStorageContainer.
func (asc AzureStorageContainer) AsBasicProtectionContainer() (BasicProtectionContainer, bool) {
return &asc, true
}
// AzureStorageErrorInfo azure storage specific error information
type AzureStorageErrorInfo struct {
// ErrorCode - Error code.
ErrorCode *int32 `json:"errorCode,omitempty"`
// ErrorString - Localized error string.
ErrorString *string `json:"errorString,omitempty"`
// Recommendations - List of localized recommendations for above error code.
Recommendations *[]string `json:"recommendations,omitempty"`
}
// AzureStorageJob azure storage specific job.
type AzureStorageJob struct {
// Duration - Time elapsed during the execution of this job.
Duration *string `json:"duration,omitempty"`
// ActionsInfo - Gets or sets the state/actions applicable on this job like cancel/retry.
ActionsInfo *[]JobSupportedAction `json:"actionsInfo,omitempty"`
// ErrorDetails - Error details on execution of this job.
ErrorDetails *[]AzureStorageErrorInfo `json:"errorDetails,omitempty"`
// StorageAccountName - Specifies friendly name of the storage account.
StorageAccountName *string `json:"storageAccountName,omitempty"`
// StorageAccountVersion - Specifies whether the Storage account is a Classic or an Azure Resource Manager Storage account.
StorageAccountVersion *string `json:"storageAccountVersion,omitempty"`
// ExtendedInfo - Additional information about the job.
ExtendedInfo *AzureStorageJobExtendedInfo `json:"extendedInfo,omitempty"`
// EntityFriendlyName - Friendly name of the entity on which the current job is executing.
EntityFriendlyName *string `json:"entityFriendlyName,omitempty"`
// BackupManagementType - Backup management type to execute the current job. Possible values include: 'ManagementTypeInvalid', 'ManagementTypeAzureIaasVM', 'ManagementTypeMAB', 'ManagementTypeDPM', 'ManagementTypeAzureBackupServer', 'ManagementTypeAzureSQL', 'ManagementTypeAzureStorage', 'ManagementTypeAzureWorkload', 'ManagementTypeDefaultBackup'
BackupManagementType ManagementType `json:"backupManagementType,omitempty"`
// Operation - The operation name.
Operation *string `json:"operation,omitempty"`
// Status - Job status.
Status *string `json:"status,omitempty"`
// StartTime - The start time.
StartTime *date.Time `json:"startTime,omitempty"`
// EndTime - The end time.
EndTime *date.Time `json:"endTime,omitempty"`
// ActivityID - ActivityId of job.
ActivityID *string `json:"activityId,omitempty"`
// JobType - Possible values include: 'JobTypeJob', 'JobTypeAzureIaaSVMJob', 'JobTypeAzureStorageJob', 'JobTypeAzureWorkloadJob', 'JobTypeDpmJob', 'JobTypeMabJob'
JobType JobType `json:"jobType,omitempty"`
}
// MarshalJSON is the custom marshaler for AzureStorageJob.
func (asj AzureStorageJob) MarshalJSON() ([]byte, error) {
asj.JobType = JobTypeAzureStorageJob
objectMap := make(map[string]interface{})
if asj.Duration != nil {
objectMap["duration"] = asj.Duration
}
if asj.ActionsInfo != nil {
objectMap["actionsInfo"] = asj.ActionsInfo
}
if asj.ErrorDetails != nil {
objectMap["errorDetails"] = asj.ErrorDetails
}
if asj.StorageAccountName != nil {
objectMap["storageAccountName"] = asj.StorageAccountName
}
if asj.StorageAccountVersion != nil {
objectMap["storageAccountVersion"] = asj.StorageAccountVersion
}
if asj.ExtendedInfo != nil {
objectMap["extendedInfo"] = asj.ExtendedInfo
}
if asj.EntityFriendlyName != nil {
objectMap["entityFriendlyName"] = asj.EntityFriendlyName
}
if asj.BackupManagementType != "" {
objectMap["backupManagementType"] = asj.BackupManagementType
}
if asj.Operation != nil {
objectMap["operation"] = asj.Operation
}
if asj.Status != nil {
objectMap["status"] = asj.Status
}
if asj.StartTime != nil {
objectMap["startTime"] = asj.StartTime
}
if asj.EndTime != nil {
objectMap["endTime"] = asj.EndTime
}
if asj.ActivityID != nil {
objectMap["activityId"] = asj.ActivityID
}
if asj.JobType != "" {
objectMap["jobType"] = asj.JobType
}
return json.Marshal(objectMap)
}
// AsAzureIaaSVMJob is the BasicJob implementation for AzureStorageJob.
func (asj AzureStorageJob) AsAzureIaaSVMJob() (*AzureIaaSVMJob, bool) {
return nil, false
}
// AsAzureStorageJob is the BasicJob implementation for AzureStorageJob.
func (asj AzureStorageJob) AsAzureStorageJob() (*AzureStorageJob, bool) {
return &asj, true
}
// AsAzureWorkloadJob is the BasicJob implementation for AzureStorageJob.
func (asj AzureStorageJob) AsAzureWorkloadJob() (*AzureWorkloadJob, bool) {
return nil, false
}
// AsDpmJob is the BasicJob implementation for AzureStorageJob.
func (asj AzureStorageJob) AsDpmJob() (*DpmJob, bool) {
return nil, false
}
// AsMabJob is the BasicJob implementation for AzureStorageJob.
func (asj AzureStorageJob) AsMabJob() (*MabJob, bool) {
return nil, false
}
// AsJob is the BasicJob implementation for AzureStorageJob.
func (asj AzureStorageJob) AsJob() (*Job, bool) {
return nil, false
}
// AsBasicJob is the BasicJob implementation for AzureStorageJob.
func (asj AzureStorageJob) AsBasicJob() (BasicJob, bool) {
return &asj, true
}
// AzureStorageJobExtendedInfo azure Storage workload-specific additional information for job.
type AzureStorageJobExtendedInfo struct {
// TasksList - List of tasks for this job
TasksList *[]AzureStorageJobTaskDetails `json:"tasksList,omitempty"`
// PropertyBag - Job properties.
PropertyBag map[string]*string `json:"propertyBag"`
// DynamicErrorMessage - Non localized error message on job execution.
DynamicErrorMessage *string `json:"dynamicErrorMessage,omitempty"`
}
// MarshalJSON is the custom marshaler for AzureStorageJobExtendedInfo.
func (asjei AzureStorageJobExtendedInfo) MarshalJSON() ([]byte, error) {
objectMap := make(map[string]interface{})
if asjei.TasksList != nil {
objectMap["tasksList"] = asjei.TasksList
}
if asjei.PropertyBag != nil {
objectMap["propertyBag"] = asjei.PropertyBag
}
if asjei.DynamicErrorMessage != nil {
objectMap["dynamicErrorMessage"] = asjei.DynamicErrorMessage
}
return json.Marshal(objectMap)
}
// AzureStorageJobTaskDetails azure storage workload specific job task details.
type AzureStorageJobTaskDetails struct {
// TaskID - The task display name.
TaskID *string `json:"taskId,omitempty"`
// Status - The status.
Status *string `json:"status,omitempty"`
}
// AzureStorageProtectableContainer azure Storage-specific protectable containers
type AzureStorageProtectableContainer struct {
// FriendlyName - Friendly name of the container.
FriendlyName *string `json:"friendlyName,omitempty"`
// BackupManagementType - Type of backup managemenent for the container. Possible values include: 'ManagementTypeInvalid', 'ManagementTypeAzureIaasVM', 'ManagementTypeMAB', 'ManagementTypeDPM', 'ManagementTypeAzureBackupServer', 'ManagementTypeAzureSQL', 'ManagementTypeAzureStorage', 'ManagementTypeAzureWorkload', 'ManagementTypeDefaultBackup'
BackupManagementType ManagementType `json:"backupManagementType,omitempty"`
// HealthStatus - Status of health of the container.
HealthStatus *string `json:"healthStatus,omitempty"`
// ContainerID - Fabric Id of the container such as ARM Id.
ContainerID *string `json:"containerId,omitempty"`
// ProtectableContainerType - Possible values include: 'ProtectableContainerTypeProtectableContainer', 'ProtectableContainerTypeStorageContainer', 'ProtectableContainerTypeVMAppContainer'
ProtectableContainerType ProtectableContainerType `json:"protectableContainerType,omitempty"`
}
// MarshalJSON is the custom marshaler for AzureStorageProtectableContainer.
func (aspc AzureStorageProtectableContainer) MarshalJSON() ([]byte, error) {
aspc.ProtectableContainerType = ProtectableContainerTypeStorageContainer
objectMap := make(map[string]interface{})
if aspc.FriendlyName != nil {
objectMap["friendlyName"] = aspc.FriendlyName
}
if aspc.BackupManagementType != "" {
objectMap["backupManagementType"] = aspc.BackupManagementType
}
if aspc.HealthStatus != nil {
objectMap["healthStatus"] = aspc.HealthStatus
}
if aspc.ContainerID != nil {
objectMap["containerId"] = aspc.ContainerID
}
if aspc.ProtectableContainerType != "" {
objectMap["protectableContainerType"] = aspc.ProtectableContainerType
}
return json.Marshal(objectMap)
}
// AsAzureStorageProtectableContainer is the BasicProtectableContainer implementation for AzureStorageProtectableContainer.
func (aspc AzureStorageProtectableContainer) AsAzureStorageProtectableContainer() (*AzureStorageProtectableContainer, bool) {
return &aspc, true
}
// AsAzureVMAppContainerProtectableContainer is the BasicProtectableContainer implementation for AzureStorageProtectableContainer.
func (aspc AzureStorageProtectableContainer) AsAzureVMAppContainerProtectableContainer() (*AzureVMAppContainerProtectableContainer, bool) {
return nil, false
}
// AsProtectableContainer is the BasicProtectableContainer implementation for AzureStorageProtectableContainer.
func (aspc AzureStorageProtectableContainer) AsProtectableContainer() (*ProtectableContainer, bool) {
return nil, false
}
// AsBasicProtectableContainer is the BasicProtectableContainer implementation for AzureStorageProtectableContainer.
func (aspc AzureStorageProtectableContainer) AsBasicProtectableContainer() (BasicProtectableContainer, bool) {
return &aspc, true
}
// AzureVMAppContainerProtectableContainer azure workload-specific container
type AzureVMAppContainerProtectableContainer struct {
// FriendlyName - Friendly name of the container.
FriendlyName *string `json:"friendlyName,omitempty"`
// BackupManagementType - Type of backup managemenent for the container. Possible values include: 'ManagementTypeInvalid', 'ManagementTypeAzureIaasVM', 'ManagementTypeMAB', 'ManagementTypeDPM', 'ManagementTypeAzureBackupServer', 'ManagementTypeAzureSQL', 'ManagementTypeAzureStorage', 'ManagementTypeAzureWorkload', 'ManagementTypeDefaultBackup'
BackupManagementType ManagementType `json:"backupManagementType,omitempty"`
// HealthStatus - Status of health of the container.
HealthStatus *string `json:"healthStatus,omitempty"`
// ContainerID - Fabric Id of the container such as ARM Id.
ContainerID *string `json:"containerId,omitempty"`
// ProtectableContainerType - Possible values include: 'ProtectableContainerTypeProtectableContainer', 'ProtectableContainerTypeStorageContainer', 'ProtectableContainerTypeVMAppContainer'
ProtectableContainerType ProtectableContainerType `json:"protectableContainerType,omitempty"`
}
// MarshalJSON is the custom marshaler for AzureVMAppContainerProtectableContainer.
func (avacpc AzureVMAppContainerProtectableContainer) MarshalJSON() ([]byte, error) {
avacpc.ProtectableContainerType = ProtectableContainerTypeVMAppContainer
objectMap := make(map[string]interface{})
if avacpc.FriendlyName != nil {
objectMap["friendlyName"] = avacpc.FriendlyName
}
if avacpc.BackupManagementType != "" {
objectMap["backupManagementType"] = avacpc.BackupManagementType
}
if avacpc.HealthStatus != nil {
objectMap["healthStatus"] = avacpc.HealthStatus
}
if avacpc.ContainerID != nil {
objectMap["containerId"] = avacpc.ContainerID
}
if avacpc.ProtectableContainerType != "" {
objectMap["protectableContainerType"] = avacpc.ProtectableContainerType
}
return json.Marshal(objectMap)
}
// AsAzureStorageProtectableContainer is the BasicProtectableContainer implementation for AzureVMAppContainerProtectableContainer.
func (avacpc AzureVMAppContainerProtectableContainer) AsAzureStorageProtectableContainer() (*AzureStorageProtectableContainer, bool) {
return nil, false
}
// AsAzureVMAppContainerProtectableContainer is the BasicProtectableContainer implementation for AzureVMAppContainerProtectableContainer.
func (avacpc AzureVMAppContainerProtectableContainer) AsAzureVMAppContainerProtectableContainer() (*AzureVMAppContainerProtectableContainer, bool) {
return &avacpc, true
}
// AsProtectableContainer is the BasicProtectableContainer implementation for AzureVMAppContainerProtectableContainer.
func (avacpc AzureVMAppContainerProtectableContainer) AsProtectableContainer() (*ProtectableContainer, bool) {
return nil, false
}
// AsBasicProtectableContainer is the BasicProtectableContainer implementation for AzureVMAppContainerProtectableContainer.
func (avacpc AzureVMAppContainerProtectableContainer) AsBasicProtectableContainer() (BasicProtectableContainer, bool) {
return &avacpc, true
}
// AzureVMAppContainerProtectionContainer container for SQL workloads under Azure Virtual Machines.
type AzureVMAppContainerProtectionContainer struct {
// SourceResourceID - ARM ID of the virtual machine represented by this Azure Workload Container
SourceResourceID *string `json:"sourceResourceId,omitempty"`
// LastUpdatedTime - Time stamp when this container was updated.
LastUpdatedTime *date.Time `json:"lastUpdatedTime,omitempty"`
// ExtendedInfo - Additional details of a workload container.
ExtendedInfo *AzureWorkloadContainerExtendedInfo `json:"extendedInfo,omitempty"`
// FriendlyName - Friendly name of the container.
FriendlyName *string `json:"friendlyName,omitempty"`
// BackupManagementType - Type of backup managemenent for the container. Possible values include: 'ManagementTypeInvalid', 'ManagementTypeAzureIaasVM', 'ManagementTypeMAB', 'ManagementTypeDPM', 'ManagementTypeAzureBackupServer', 'ManagementTypeAzureSQL', 'ManagementTypeAzureStorage', 'ManagementTypeAzureWorkload', 'ManagementTypeDefaultBackup'
BackupManagementType ManagementType `json:"backupManagementType,omitempty"`
// RegistrationStatus - Status of registration of the container with the Recovery Services Vault.
RegistrationStatus *string `json:"registrationStatus,omitempty"`
// HealthStatus - Status of health of the container.
HealthStatus *string `json:"healthStatus,omitempty"`
// ContainerType - Possible values include: 'ContainerTypeProtectionContainer', 'ContainerTypeAzureBackupServerContainer1', 'ContainerTypeMicrosoftClassicComputevirtualMachines', 'ContainerTypeMicrosoftComputevirtualMachines', 'ContainerTypeSQLAGWorkLoadContainer1', 'ContainerTypeAzureSQLContainer1', 'ContainerTypeStorageContainer1', 'ContainerTypeVMAppContainer1', 'ContainerTypeAzureWorkloadContainer', 'ContainerTypeDPMContainer1', 'ContainerTypeGenericContainer1', 'ContainerTypeIaaSVMContainer', 'ContainerTypeMABWindowsContainer'
ContainerType ContainerTypeBasicProtectionContainer `json:"containerType,omitempty"`
}
// MarshalJSON is the custom marshaler for AzureVMAppContainerProtectionContainer.
func (avacpc AzureVMAppContainerProtectionContainer) MarshalJSON() ([]byte, error) {
avacpc.ContainerType = ContainerTypeVMAppContainer1
objectMap := make(map[string]interface{})
if avacpc.SourceResourceID != nil {
objectMap["sourceResourceId"] = avacpc.SourceResourceID
}
if avacpc.LastUpdatedTime != nil {
objectMap["lastUpdatedTime"] = avacpc.LastUpdatedTime
}
if avacpc.ExtendedInfo != nil {
objectMap["extendedInfo"] = avacpc.ExtendedInfo
}
if avacpc.FriendlyName != nil {
objectMap["friendlyName"] = avacpc.FriendlyName
}
if avacpc.BackupManagementType != "" {
objectMap["backupManagementType"] = avacpc.BackupManagementType
}
if avacpc.RegistrationStatus != nil {
objectMap["registrationStatus"] = avacpc.RegistrationStatus
}
if avacpc.HealthStatus != nil {
objectMap["healthStatus"] = avacpc.HealthStatus
}
if avacpc.ContainerType != "" {
objectMap["containerType"] = avacpc.ContainerType
}
return json.Marshal(objectMap)
}
// AsAzureBackupServerContainer is the BasicProtectionContainer implementation for AzureVMAppContainerProtectionContainer.
func (avacpc AzureVMAppContainerProtectionContainer) AsAzureBackupServerContainer() (*AzureBackupServerContainer, bool) {
return nil, false
}
// AsAzureIaaSClassicComputeVMContainer is the BasicProtectionContainer implementation for AzureVMAppContainerProtectionContainer.
func (avacpc AzureVMAppContainerProtectionContainer) AsAzureIaaSClassicComputeVMContainer() (*AzureIaaSClassicComputeVMContainer, bool) {
return nil, false
}
// AsAzureIaaSComputeVMContainer is the BasicProtectionContainer implementation for AzureVMAppContainerProtectionContainer.
func (avacpc AzureVMAppContainerProtectionContainer) AsAzureIaaSComputeVMContainer() (*AzureIaaSComputeVMContainer, bool) {
return nil, false
}
// AsAzureSQLAGWorkloadContainerProtectionContainer is the BasicProtectionContainer implementation for AzureVMAppContainerProtectionContainer.
func (avacpc AzureVMAppContainerProtectionContainer) AsAzureSQLAGWorkloadContainerProtectionContainer() (*AzureSQLAGWorkloadContainerProtectionContainer, bool) {
return nil, false
}
// AsAzureSQLContainer is the BasicProtectionContainer implementation for AzureVMAppContainerProtectionContainer.
func (avacpc AzureVMAppContainerProtectionContainer) AsAzureSQLContainer() (*AzureSQLContainer, bool) {
return nil, false
}
// AsAzureStorageContainer is the BasicProtectionContainer implementation for AzureVMAppContainerProtectionContainer.
func (avacpc AzureVMAppContainerProtectionContainer) AsAzureStorageContainer() (*AzureStorageContainer, bool) {
return nil, false
}
// AsAzureVMAppContainerProtectionContainer is the BasicProtectionContainer implementation for AzureVMAppContainerProtectionContainer.
func (avacpc AzureVMAppContainerProtectionContainer) AsAzureVMAppContainerProtectionContainer() (*AzureVMAppContainerProtectionContainer, bool) {
return &avacpc, true
}
// AsAzureWorkloadContainer is the BasicProtectionContainer implementation for AzureVMAppContainerProtectionContainer.
func (avacpc AzureVMAppContainerProtectionContainer) AsAzureWorkloadContainer() (*AzureWorkloadContainer, bool) {
return nil, false
}
// AsBasicAzureWorkloadContainer is the BasicProtectionContainer implementation for AzureVMAppContainerProtectionContainer.
func (avacpc AzureVMAppContainerProtectionContainer) AsBasicAzureWorkloadContainer() (BasicAzureWorkloadContainer, bool) {
return &avacpc, true
}
// AsDpmContainer is the BasicProtectionContainer implementation for AzureVMAppContainerProtectionContainer.
func (avacpc AzureVMAppContainerProtectionContainer) AsDpmContainer() (*DpmContainer, bool) {
return nil, false
}
// AsGenericContainer is the BasicProtectionContainer implementation for AzureVMAppContainerProtectionContainer.
func (avacpc AzureVMAppContainerProtectionContainer) AsGenericContainer() (*GenericContainer, bool) {
return nil, false
}
// AsIaaSVMContainer is the BasicProtectionContainer implementation for AzureVMAppContainerProtectionContainer.
func (avacpc AzureVMAppContainerProtectionContainer) AsIaaSVMContainer() (*IaaSVMContainer, bool) {
return nil, false
}
// AsBasicIaaSVMContainer is the BasicProtectionContainer implementation for AzureVMAppContainerProtectionContainer.
func (avacpc AzureVMAppContainerProtectionContainer) AsBasicIaaSVMContainer() (BasicIaaSVMContainer, bool) {
return nil, false
}
// AsMabContainer is the BasicProtectionContainer implementation for AzureVMAppContainerProtectionContainer.
func (avacpc AzureVMAppContainerProtectionContainer) AsMabContainer() (*MabContainer, bool) {
return nil, false
}
// AsProtectionContainer is the BasicProtectionContainer implementation for AzureVMAppContainerProtectionContainer.
func (avacpc AzureVMAppContainerProtectionContainer) AsProtectionContainer() (*ProtectionContainer, bool) {
return nil, false
}
// AsBasicProtectionContainer is the BasicProtectionContainer implementation for AzureVMAppContainerProtectionContainer.
func (avacpc AzureVMAppContainerProtectionContainer) AsBasicProtectionContainer() (BasicProtectionContainer, bool) {
return &avacpc, true
}
// AzureVMResourceFeatureSupportRequest azureResource(IaaS VM) Specific feature support request
type AzureVMResourceFeatureSupportRequest struct {
// VMSize - Size of the resource: VM size(A/D series etc) in case of IaasVM
VMSize *string `json:"vmSize,omitempty"`
// VMSku - SKUs (Premium/Managed etc) in case of IaasVM
VMSku *string `json:"vmSku,omitempty"`
// FeatureType - Possible values include: 'FeatureTypeFeatureSupportRequest', 'FeatureTypeAzureVMResourceBackup'
FeatureType FeatureType `json:"featureType,omitempty"`
}
// MarshalJSON is the custom marshaler for AzureVMResourceFeatureSupportRequest.
func (avrfsr AzureVMResourceFeatureSupportRequest) MarshalJSON() ([]byte, error) {
avrfsr.FeatureType = FeatureTypeAzureVMResourceBackup
objectMap := make(map[string]interface{})
if avrfsr.VMSize != nil {
objectMap["vmSize"] = avrfsr.VMSize
}
if avrfsr.VMSku != nil {
objectMap["vmSku"] = avrfsr.VMSku
}
if avrfsr.FeatureType != "" {
objectMap["featureType"] = avrfsr.FeatureType
}
return json.Marshal(objectMap)
}
// AsAzureVMResourceFeatureSupportRequest is the BasicFeatureSupportRequest implementation for AzureVMResourceFeatureSupportRequest.
func (avrfsr AzureVMResourceFeatureSupportRequest) AsAzureVMResourceFeatureSupportRequest() (*AzureVMResourceFeatureSupportRequest, bool) {
return &avrfsr, true
}
// AsFeatureSupportRequest is the BasicFeatureSupportRequest implementation for AzureVMResourceFeatureSupportRequest.
func (avrfsr AzureVMResourceFeatureSupportRequest) AsFeatureSupportRequest() (*FeatureSupportRequest, bool) {
return nil, false
}
// AsBasicFeatureSupportRequest is the BasicFeatureSupportRequest implementation for AzureVMResourceFeatureSupportRequest.
func (avrfsr AzureVMResourceFeatureSupportRequest) AsBasicFeatureSupportRequest() (BasicFeatureSupportRequest, bool) {
return &avrfsr, true
}
// AzureVMResourceFeatureSupportResponse response for feature support requests for Azure IaasVm
type AzureVMResourceFeatureSupportResponse struct {
autorest.Response `json:"-"`
// SupportStatus - Support status of feature. Possible values include: 'SupportStatusInvalid', 'SupportStatusSupported', 'SupportStatusDefaultOFF', 'SupportStatusDefaultON', 'SupportStatusNotSupported'
SupportStatus SupportStatus `json:"supportStatus,omitempty"`
}
// BasicAzureVMWorkloadItem azure VM workload-specific workload item.
type BasicAzureVMWorkloadItem interface {
AsAzureVMWorkloadSQLDatabaseWorkloadItem() (*AzureVMWorkloadSQLDatabaseWorkloadItem, bool)
AsAzureVMWorkloadSQLInstanceWorkloadItem() (*AzureVMWorkloadSQLInstanceWorkloadItem, bool)
AsAzureVMWorkloadItem() (*AzureVMWorkloadItem, bool)
}
// AzureVMWorkloadItem azure VM workload-specific workload item.
type AzureVMWorkloadItem struct {
// ParentName - Name for instance or AG
ParentName *string `json:"parentName,omitempty"`
// ServerName - Host/Cluster Name for instance or AG
ServerName *string `json:"serverName,omitempty"`
// IsAutoProtectable - Indicates if workload item is auto-protectable
IsAutoProtectable *bool `json:"isAutoProtectable,omitempty"`
// Subinquireditemcount - For instance or AG, indicates number of DB's present
Subinquireditemcount *int32 `json:"subinquireditemcount,omitempty"`
// SubWorkloadItemCount - For instance or AG, indicates number of DB's to be protected
SubWorkloadItemCount *int32 `json:"subWorkloadItemCount,omitempty"`
// BackupManagementType - Type of backup managemenent to backup an item.
BackupManagementType *string `json:"backupManagementType,omitempty"`
// WorkloadType - Type of workload for the backup management
WorkloadType *string `json:"workloadType,omitempty"`
// FriendlyName - Friendly name of the backup item.
FriendlyName *string `json:"friendlyName,omitempty"`
// ProtectionState - State of the back up item. Possible values include: 'ProtectionStatusInvalid', 'ProtectionStatusNotProtected', 'ProtectionStatusProtecting', 'ProtectionStatusProtected', 'ProtectionStatusProtectionFailed'
ProtectionState ProtectionStatus `json:"protectionState,omitempty"`
// WorkloadItemType - Possible values include: 'WorkloadItemTypeWorkloadItem', 'WorkloadItemTypeAzureVMWorkloadItem', 'WorkloadItemTypeSQLDataBase1', 'WorkloadItemTypeSQLInstance1'
WorkloadItemType WorkloadItemTypeBasicWorkloadItem `json:"workloadItemType,omitempty"`
}
func unmarshalBasicAzureVMWorkloadItem(body []byte) (BasicAzureVMWorkloadItem, error) {
var m map[string]interface{}
err := json.Unmarshal(body, &m)
if err != nil {
return nil, err
}
switch m["workloadItemType"] {
case string(WorkloadItemTypeSQLDataBase1):
var avwsdwi AzureVMWorkloadSQLDatabaseWorkloadItem
err := json.Unmarshal(body, &avwsdwi)
return avwsdwi, err
case string(WorkloadItemTypeSQLInstance1):
var avwsiwi AzureVMWorkloadSQLInstanceWorkloadItem
err := json.Unmarshal(body, &avwsiwi)
return avwsiwi, err
default:
var avwi AzureVMWorkloadItem
err := json.Unmarshal(body, &avwi)
return avwi, err
}
}
func unmarshalBasicAzureVMWorkloadItemArray(body []byte) ([]BasicAzureVMWorkloadItem, error) {
var rawMessages []*json.RawMessage
err := json.Unmarshal(body, &rawMessages)
if err != nil {
return nil, err
}
avwiArray := make([]BasicAzureVMWorkloadItem, len(rawMessages))
for index, rawMessage := range rawMessages {
avwi, err := unmarshalBasicAzureVMWorkloadItem(*rawMessage)
if err != nil {
return nil, err
}
avwiArray[index] = avwi
}
return avwiArray, nil
}
// MarshalJSON is the custom marshaler for AzureVMWorkloadItem.
func (avwi AzureVMWorkloadItem) MarshalJSON() ([]byte, error) {
avwi.WorkloadItemType = WorkloadItemTypeAzureVMWorkloadItem
objectMap := make(map[string]interface{})
if avwi.ParentName != nil {
objectMap["parentName"] = avwi.ParentName
}
if avwi.ServerName != nil {
objectMap["serverName"] = avwi.ServerName
}
if avwi.IsAutoProtectable != nil {
objectMap["isAutoProtectable"] = avwi.IsAutoProtectable
}
if avwi.Subinquireditemcount != nil {
objectMap["subinquireditemcount"] = avwi.Subinquireditemcount
}
if avwi.SubWorkloadItemCount != nil {
objectMap["subWorkloadItemCount"] = avwi.SubWorkloadItemCount
}
if avwi.BackupManagementType != nil {
objectMap["backupManagementType"] = avwi.BackupManagementType
}
if avwi.WorkloadType != nil {
objectMap["workloadType"] = avwi.WorkloadType
}
if avwi.FriendlyName != nil {
objectMap["friendlyName"] = avwi.FriendlyName
}
if avwi.ProtectionState != "" {
objectMap["protectionState"] = avwi.ProtectionState
}
if avwi.WorkloadItemType != "" {
objectMap["workloadItemType"] = avwi.WorkloadItemType
}
return json.Marshal(objectMap)
}
// AsAzureVMWorkloadItem is the BasicWorkloadItem implementation for AzureVMWorkloadItem.
func (avwi AzureVMWorkloadItem) AsAzureVMWorkloadItem() (*AzureVMWorkloadItem, bool) {
return &avwi, true
}
// AsBasicAzureVMWorkloadItem is the BasicWorkloadItem implementation for AzureVMWorkloadItem.
func (avwi AzureVMWorkloadItem) AsBasicAzureVMWorkloadItem() (BasicAzureVMWorkloadItem, bool) {
return &avwi, true
}
// AsAzureVMWorkloadSQLDatabaseWorkloadItem is the BasicWorkloadItem implementation for AzureVMWorkloadItem.
func (avwi AzureVMWorkloadItem) AsAzureVMWorkloadSQLDatabaseWorkloadItem() (*AzureVMWorkloadSQLDatabaseWorkloadItem, bool) {
return nil, false
}
// AsAzureVMWorkloadSQLInstanceWorkloadItem is the BasicWorkloadItem implementation for AzureVMWorkloadItem.
func (avwi AzureVMWorkloadItem) AsAzureVMWorkloadSQLInstanceWorkloadItem() (*AzureVMWorkloadSQLInstanceWorkloadItem, bool) {
return nil, false
}
// AsWorkloadItem is the BasicWorkloadItem implementation for AzureVMWorkloadItem.
func (avwi AzureVMWorkloadItem) AsWorkloadItem() (*WorkloadItem, bool) {
return nil, false
}
// AsBasicWorkloadItem is the BasicWorkloadItem implementation for AzureVMWorkloadItem.
func (avwi AzureVMWorkloadItem) AsBasicWorkloadItem() (BasicWorkloadItem, bool) {
return &avwi, true
}
// BasicAzureVMWorkloadProtectableItem azure VM workload-specific protectable item.
type BasicAzureVMWorkloadProtectableItem interface {
AsAzureVMWorkloadSQLAvailabilityGroupProtectableItem() (*AzureVMWorkloadSQLAvailabilityGroupProtectableItem, bool)
AsAzureVMWorkloadSQLDatabaseProtectableItem() (*AzureVMWorkloadSQLDatabaseProtectableItem, bool)
AsAzureVMWorkloadSQLInstanceProtectableItem() (*AzureVMWorkloadSQLInstanceProtectableItem, bool)
AsAzureVMWorkloadProtectableItem() (*AzureVMWorkloadProtectableItem, bool)
}
// AzureVMWorkloadProtectableItem azure VM workload-specific protectable item.
type AzureVMWorkloadProtectableItem struct {
// ParentName - Name for instance or AG
ParentName *string `json:"parentName,omitempty"`
// ParentUniqueName - Parent Unique Name is added to provide the service formatted URI Name of the Parent
// Only Applicable for data bases where the parent would be either Instance or a SQL AG.
ParentUniqueName *string `json:"parentUniqueName,omitempty"`
// ServerName - Host/Cluster Name for instance or AG
ServerName *string `json:"serverName,omitempty"`
// IsAutoProtectable - Indicates if protectable item is auto-protectable
IsAutoProtectable *bool `json:"isAutoProtectable,omitempty"`
// Subinquireditemcount - For instance or AG, indicates number of DB's present
Subinquireditemcount *int32 `json:"subinquireditemcount,omitempty"`
// Subprotectableitemcount - For instance or AG, indicates number of DB's to be protected
Subprotectableitemcount *int32 `json:"subprotectableitemcount,omitempty"`
// Prebackupvalidation - Pre-backup validation for protectable objects
Prebackupvalidation *PreBackupValidation `json:"prebackupvalidation,omitempty"`
// BackupManagementType - Type of backup managemenent to backup an item.
BackupManagementType *string `json:"backupManagementType,omitempty"`
// WorkloadType - Type of workload for the backup management
WorkloadType *string `json:"workloadType,omitempty"`
// FriendlyName - Friendly name of the backup item.
FriendlyName *string `json:"friendlyName,omitempty"`
// ProtectionState - State of the back up item. Possible values include: 'ProtectionStatusInvalid', 'ProtectionStatusNotProtected', 'ProtectionStatusProtecting', 'ProtectionStatusProtected', 'ProtectionStatusProtectionFailed'
ProtectionState ProtectionStatus `json:"protectionState,omitempty"`
// ProtectableItemType - Possible values include: 'ProtectableItemTypeWorkloadProtectableItem', 'ProtectableItemTypeAzureFileShare', 'ProtectableItemTypeMicrosoftClassicComputevirtualMachines', 'ProtectableItemTypeMicrosoftComputevirtualMachines', 'ProtectableItemTypeAzureVMWorkloadProtectableItem', 'ProtectableItemTypeSQLAvailabilityGroupContainer', 'ProtectableItemTypeSQLDataBase', 'ProtectableItemTypeSQLInstance', 'ProtectableItemTypeIaaSVMProtectableItem'
ProtectableItemType ProtectableItemType `json:"protectableItemType,omitempty"`
}
func unmarshalBasicAzureVMWorkloadProtectableItem(body []byte) (BasicAzureVMWorkloadProtectableItem, error) {
var m map[string]interface{}
err := json.Unmarshal(body, &m)
if err != nil {
return nil, err
}
switch m["protectableItemType"] {
case string(ProtectableItemTypeSQLAvailabilityGroupContainer):
var avwsagpi AzureVMWorkloadSQLAvailabilityGroupProtectableItem
err := json.Unmarshal(body, &avwsagpi)
return avwsagpi, err
case string(ProtectableItemTypeSQLDataBase):
var avwsdpi AzureVMWorkloadSQLDatabaseProtectableItem
err := json.Unmarshal(body, &avwsdpi)
return avwsdpi, err
case string(ProtectableItemTypeSQLInstance):
var avwsipi AzureVMWorkloadSQLInstanceProtectableItem
err := json.Unmarshal(body, &avwsipi)
return avwsipi, err
default:
var avwpi AzureVMWorkloadProtectableItem
err := json.Unmarshal(body, &avwpi)
return avwpi, err
}
}
func unmarshalBasicAzureVMWorkloadProtectableItemArray(body []byte) ([]BasicAzureVMWorkloadProtectableItem, error) {
var rawMessages []*json.RawMessage
err := json.Unmarshal(body, &rawMessages)
if err != nil {
return nil, err
}
avwpiArray := make([]BasicAzureVMWorkloadProtectableItem, len(rawMessages))
for index, rawMessage := range rawMessages {
avwpi, err := unmarshalBasicAzureVMWorkloadProtectableItem(*rawMessage)
if err != nil {
return nil, err
}
avwpiArray[index] = avwpi
}
return avwpiArray, nil
}
// MarshalJSON is the custom marshaler for AzureVMWorkloadProtectableItem.
func (avwpi AzureVMWorkloadProtectableItem) MarshalJSON() ([]byte, error) {
avwpi.ProtectableItemType = ProtectableItemTypeAzureVMWorkloadProtectableItem
objectMap := make(map[string]interface{})
if avwpi.ParentName != nil {
objectMap["parentName"] = avwpi.ParentName
}
if avwpi.ParentUniqueName != nil {
objectMap["parentUniqueName"] = avwpi.ParentUniqueName
}
if avwpi.ServerName != nil {
objectMap["serverName"] = avwpi.ServerName
}
if avwpi.IsAutoProtectable != nil {
objectMap["isAutoProtectable"] = avwpi.IsAutoProtectable
}
if avwpi.Subinquireditemcount != nil {
objectMap["subinquireditemcount"] = avwpi.Subinquireditemcount
}
if avwpi.Subprotectableitemcount != nil {
objectMap["subprotectableitemcount"] = avwpi.Subprotectableitemcount
}
if avwpi.Prebackupvalidation != nil {
objectMap["prebackupvalidation"] = avwpi.Prebackupvalidation
}
if avwpi.BackupManagementType != nil {
objectMap["backupManagementType"] = avwpi.BackupManagementType
}
if avwpi.WorkloadType != nil {
objectMap["workloadType"] = avwpi.WorkloadType
}
if avwpi.FriendlyName != nil {
objectMap["friendlyName"] = avwpi.FriendlyName
}
if avwpi.ProtectionState != "" {
objectMap["protectionState"] = avwpi.ProtectionState
}
if avwpi.ProtectableItemType != "" {
objectMap["protectableItemType"] = avwpi.ProtectableItemType
}
return json.Marshal(objectMap)
}
// AsAzureFileShareProtectableItem is the BasicWorkloadProtectableItem implementation for AzureVMWorkloadProtectableItem.
func (avwpi AzureVMWorkloadProtectableItem) AsAzureFileShareProtectableItem() (*AzureFileShareProtectableItem, bool) {
return nil, false
}
// AsAzureIaaSClassicComputeVMProtectableItem is the BasicWorkloadProtectableItem implementation for AzureVMWorkloadProtectableItem.
func (avwpi AzureVMWorkloadProtectableItem) AsAzureIaaSClassicComputeVMProtectableItem() (*AzureIaaSClassicComputeVMProtectableItem, bool) {
return nil, false
}
// AsAzureIaaSComputeVMProtectableItem is the BasicWorkloadProtectableItem implementation for AzureVMWorkloadProtectableItem.
func (avwpi AzureVMWorkloadProtectableItem) AsAzureIaaSComputeVMProtectableItem() (*AzureIaaSComputeVMProtectableItem, bool) {
return nil, false
}
// AsAzureVMWorkloadProtectableItem is the BasicWorkloadProtectableItem implementation for AzureVMWorkloadProtectableItem.
func (avwpi AzureVMWorkloadProtectableItem) AsAzureVMWorkloadProtectableItem() (*AzureVMWorkloadProtectableItem, bool) {
return &avwpi, true
}
// AsBasicAzureVMWorkloadProtectableItem is the BasicWorkloadProtectableItem implementation for AzureVMWorkloadProtectableItem.
func (avwpi AzureVMWorkloadProtectableItem) AsBasicAzureVMWorkloadProtectableItem() (BasicAzureVMWorkloadProtectableItem, bool) {
return &avwpi, true
}
// AsAzureVMWorkloadSQLAvailabilityGroupProtectableItem is the BasicWorkloadProtectableItem implementation for AzureVMWorkloadProtectableItem.
func (avwpi AzureVMWorkloadProtectableItem) AsAzureVMWorkloadSQLAvailabilityGroupProtectableItem() (*AzureVMWorkloadSQLAvailabilityGroupProtectableItem, bool) {
return nil, false
}
// AsAzureVMWorkloadSQLDatabaseProtectableItem is the BasicWorkloadProtectableItem implementation for AzureVMWorkloadProtectableItem.
func (avwpi AzureVMWorkloadProtectableItem) AsAzureVMWorkloadSQLDatabaseProtectableItem() (*AzureVMWorkloadSQLDatabaseProtectableItem, bool) {
return nil, false
}
// AsAzureVMWorkloadSQLInstanceProtectableItem is the BasicWorkloadProtectableItem implementation for AzureVMWorkloadProtectableItem.
func (avwpi AzureVMWorkloadProtectableItem) AsAzureVMWorkloadSQLInstanceProtectableItem() (*AzureVMWorkloadSQLInstanceProtectableItem, bool) {
return nil, false
}
// AsIaaSVMProtectableItem is the BasicWorkloadProtectableItem implementation for AzureVMWorkloadProtectableItem.
func (avwpi AzureVMWorkloadProtectableItem) AsIaaSVMProtectableItem() (*IaaSVMProtectableItem, bool) {
return nil, false
}
// AsBasicIaaSVMProtectableItem is the BasicWorkloadProtectableItem implementation for AzureVMWorkloadProtectableItem.
func (avwpi AzureVMWorkloadProtectableItem) AsBasicIaaSVMProtectableItem() (BasicIaaSVMProtectableItem, bool) {
return nil, false
}
// AsWorkloadProtectableItem is the BasicWorkloadProtectableItem implementation for AzureVMWorkloadProtectableItem.
func (avwpi AzureVMWorkloadProtectableItem) AsWorkloadProtectableItem() (*WorkloadProtectableItem, bool) {
return nil, false
}
// AsBasicWorkloadProtectableItem is the BasicWorkloadProtectableItem implementation for AzureVMWorkloadProtectableItem.
func (avwpi AzureVMWorkloadProtectableItem) AsBasicWorkloadProtectableItem() (BasicWorkloadProtectableItem, bool) {
return &avwpi, true
}
// AzureVMWorkloadProtectedItemExtendedInfo additional information on Azure Workload for SQL specific backup item.
type AzureVMWorkloadProtectedItemExtendedInfo struct {
// OldestRecoveryPoint - The oldest backup copy available for this backup item.
OldestRecoveryPoint *date.Time `json:"oldestRecoveryPoint,omitempty"`
// RecoveryPointCount - Number of backup copies available for this backup item.
RecoveryPointCount *int32 `json:"recoveryPointCount,omitempty"`
// PolicyState - Indicates consistency of policy object and policy applied to this backup item.
PolicyState *string `json:"policyState,omitempty"`
}
// AzureVMWorkloadProtectionPolicy azure VM (Mercury) workload-specific backup policy.
type AzureVMWorkloadProtectionPolicy struct {
// WorkLoadType - Type of workload for the backup management
WorkLoadType *string `json:"workLoadType,omitempty"`
// Settings - Common settings for the backup management
Settings *Settings `json:"settings,omitempty"`
// SubProtectionPolicy - List of sub-protection policies which includes schedule and retention
SubProtectionPolicy *[]SubProtectionPolicy `json:"subProtectionPolicy,omitempty"`
// ProtectedItemsCount - Number of items associated with this policy.
ProtectedItemsCount *int32 `json:"protectedItemsCount,omitempty"`
// BackupManagementType - Possible values include: 'BackupManagementTypeProtectionPolicy', 'BackupManagementTypeAzureStorage', 'BackupManagementTypeAzureIaasVM', 'BackupManagementTypeAzureSQL', 'BackupManagementTypeAzureWorkload', 'BackupManagementTypeGenericProtectionPolicy', 'BackupManagementTypeMAB'
BackupManagementType ManagementTypeBasicProtectionPolicy `json:"backupManagementType,omitempty"`
}
// MarshalJSON is the custom marshaler for AzureVMWorkloadProtectionPolicy.
func (avwpp AzureVMWorkloadProtectionPolicy) MarshalJSON() ([]byte, error) {
avwpp.BackupManagementType = BackupManagementTypeAzureWorkload
objectMap := make(map[string]interface{})
if avwpp.WorkLoadType != nil {
objectMap["workLoadType"] = avwpp.WorkLoadType
}
if avwpp.Settings != nil {
objectMap["settings"] = avwpp.Settings
}
if avwpp.SubProtectionPolicy != nil {
objectMap["subProtectionPolicy"] = avwpp.SubProtectionPolicy
}
if avwpp.ProtectedItemsCount != nil {
objectMap["protectedItemsCount"] = avwpp.ProtectedItemsCount
}
if avwpp.BackupManagementType != "" {
objectMap["backupManagementType"] = avwpp.BackupManagementType
}
return json.Marshal(objectMap)
}
// AsAzureFileShareProtectionPolicy is the BasicProtectionPolicy implementation for AzureVMWorkloadProtectionPolicy.
func (avwpp AzureVMWorkloadProtectionPolicy) AsAzureFileShareProtectionPolicy() (*AzureFileShareProtectionPolicy, bool) {
return nil, false
}
// AsAzureIaaSVMProtectionPolicy is the BasicProtectionPolicy implementation for AzureVMWorkloadProtectionPolicy.
func (avwpp AzureVMWorkloadProtectionPolicy) AsAzureIaaSVMProtectionPolicy() (*AzureIaaSVMProtectionPolicy, bool) {
return nil, false
}
// AsAzureSQLProtectionPolicy is the BasicProtectionPolicy implementation for AzureVMWorkloadProtectionPolicy.
func (avwpp AzureVMWorkloadProtectionPolicy) AsAzureSQLProtectionPolicy() (*AzureSQLProtectionPolicy, bool) {
return nil, false
}
// AsAzureVMWorkloadProtectionPolicy is the BasicProtectionPolicy implementation for AzureVMWorkloadProtectionPolicy.
func (avwpp AzureVMWorkloadProtectionPolicy) AsAzureVMWorkloadProtectionPolicy() (*AzureVMWorkloadProtectionPolicy, bool) {
return &avwpp, true
}
// AsGenericProtectionPolicy is the BasicProtectionPolicy implementation for AzureVMWorkloadProtectionPolicy.
func (avwpp AzureVMWorkloadProtectionPolicy) AsGenericProtectionPolicy() (*GenericProtectionPolicy, bool) {
return nil, false
}
// AsMabProtectionPolicy is the BasicProtectionPolicy implementation for AzureVMWorkloadProtectionPolicy.
func (avwpp AzureVMWorkloadProtectionPolicy) AsMabProtectionPolicy() (*MabProtectionPolicy, bool) {
return nil, false
}
// AsProtectionPolicy is the BasicProtectionPolicy implementation for AzureVMWorkloadProtectionPolicy.
func (avwpp AzureVMWorkloadProtectionPolicy) AsProtectionPolicy() (*ProtectionPolicy, bool) {
return nil, false
}
// AsBasicProtectionPolicy is the BasicProtectionPolicy implementation for AzureVMWorkloadProtectionPolicy.
func (avwpp AzureVMWorkloadProtectionPolicy) AsBasicProtectionPolicy() (BasicProtectionPolicy, bool) {
return &avwpp, true
}
// AzureVMWorkloadSQLAvailabilityGroupProtectableItem azure VM workload-specific protectable item representing SQL
// Availability Group.
type AzureVMWorkloadSQLAvailabilityGroupProtectableItem struct {
// ParentName - Name for instance or AG
ParentName *string `json:"parentName,omitempty"`
// ParentUniqueName - Parent Unique Name is added to provide the service formatted URI Name of the Parent
// Only Applicable for data bases where the parent would be either Instance or a SQL AG.
ParentUniqueName *string `json:"parentUniqueName,omitempty"`
// ServerName - Host/Cluster Name for instance or AG
ServerName *string `json:"serverName,omitempty"`
// IsAutoProtectable - Indicates if protectable item is auto-protectable
IsAutoProtectable *bool `json:"isAutoProtectable,omitempty"`
// Subinquireditemcount - For instance or AG, indicates number of DB's present
Subinquireditemcount *int32 `json:"subinquireditemcount,omitempty"`
// Subprotectableitemcount - For instance or AG, indicates number of DB's to be protected
Subprotectableitemcount *int32 `json:"subprotectableitemcount,omitempty"`
// Prebackupvalidation - Pre-backup validation for protectable objects
Prebackupvalidation *PreBackupValidation `json:"prebackupvalidation,omitempty"`
// BackupManagementType - Type of backup managemenent to backup an item.
BackupManagementType *string `json:"backupManagementType,omitempty"`
// WorkloadType - Type of workload for the backup management
WorkloadType *string `json:"workloadType,omitempty"`
// FriendlyName - Friendly name of the backup item.
FriendlyName *string `json:"friendlyName,omitempty"`
// ProtectionState - State of the back up item. Possible values include: 'ProtectionStatusInvalid', 'ProtectionStatusNotProtected', 'ProtectionStatusProtecting', 'ProtectionStatusProtected', 'ProtectionStatusProtectionFailed'
ProtectionState ProtectionStatus `json:"protectionState,omitempty"`
// ProtectableItemType - Possible values include: 'ProtectableItemTypeWorkloadProtectableItem', 'ProtectableItemTypeAzureFileShare', 'ProtectableItemTypeMicrosoftClassicComputevirtualMachines', 'ProtectableItemTypeMicrosoftComputevirtualMachines', 'ProtectableItemTypeAzureVMWorkloadProtectableItem', 'ProtectableItemTypeSQLAvailabilityGroupContainer', 'ProtectableItemTypeSQLDataBase', 'ProtectableItemTypeSQLInstance', 'ProtectableItemTypeIaaSVMProtectableItem'
ProtectableItemType ProtectableItemType `json:"protectableItemType,omitempty"`
}
// MarshalJSON is the custom marshaler for AzureVMWorkloadSQLAvailabilityGroupProtectableItem.
func (avwsagpi AzureVMWorkloadSQLAvailabilityGroupProtectableItem) MarshalJSON() ([]byte, error) {
avwsagpi.ProtectableItemType = ProtectableItemTypeSQLAvailabilityGroupContainer
objectMap := make(map[string]interface{})
if avwsagpi.ParentName != nil {
objectMap["parentName"] = avwsagpi.ParentName
}
if avwsagpi.ParentUniqueName != nil {
objectMap["parentUniqueName"] = avwsagpi.ParentUniqueName
}
if avwsagpi.ServerName != nil {
objectMap["serverName"] = avwsagpi.ServerName
}
if avwsagpi.IsAutoProtectable != nil {
objectMap["isAutoProtectable"] = avwsagpi.IsAutoProtectable
}
if avwsagpi.Subinquireditemcount != nil {
objectMap["subinquireditemcount"] = avwsagpi.Subinquireditemcount
}
if avwsagpi.Subprotectableitemcount != nil {
objectMap["subprotectableitemcount"] = avwsagpi.Subprotectableitemcount
}
if avwsagpi.Prebackupvalidation != nil {
objectMap["prebackupvalidation"] = avwsagpi.Prebackupvalidation
}
if avwsagpi.BackupManagementType != nil {
objectMap["backupManagementType"] = avwsagpi.BackupManagementType
}
if avwsagpi.WorkloadType != nil {
objectMap["workloadType"] = avwsagpi.WorkloadType
}
if avwsagpi.FriendlyName != nil {
objectMap["friendlyName"] = avwsagpi.FriendlyName
}
if avwsagpi.ProtectionState != "" {
objectMap["protectionState"] = avwsagpi.ProtectionState
}
if avwsagpi.ProtectableItemType != "" {
objectMap["protectableItemType"] = avwsagpi.ProtectableItemType
}
return json.Marshal(objectMap)
}
// AsAzureFileShareProtectableItem is the BasicWorkloadProtectableItem implementation for AzureVMWorkloadSQLAvailabilityGroupProtectableItem.
func (avwsagpi AzureVMWorkloadSQLAvailabilityGroupProtectableItem) AsAzureFileShareProtectableItem() (*AzureFileShareProtectableItem, bool) {
return nil, false
}
// AsAzureIaaSClassicComputeVMProtectableItem is the BasicWorkloadProtectableItem implementation for AzureVMWorkloadSQLAvailabilityGroupProtectableItem.
func (avwsagpi AzureVMWorkloadSQLAvailabilityGroupProtectableItem) AsAzureIaaSClassicComputeVMProtectableItem() (*AzureIaaSClassicComputeVMProtectableItem, bool) {
return nil, false
}
// AsAzureIaaSComputeVMProtectableItem is the BasicWorkloadProtectableItem implementation for AzureVMWorkloadSQLAvailabilityGroupProtectableItem.
func (avwsagpi AzureVMWorkloadSQLAvailabilityGroupProtectableItem) AsAzureIaaSComputeVMProtectableItem() (*AzureIaaSComputeVMProtectableItem, bool) {
return nil, false
}
// AsAzureVMWorkloadProtectableItem is the BasicWorkloadProtectableItem implementation for AzureVMWorkloadSQLAvailabilityGroupProtectableItem.
func (avwsagpi AzureVMWorkloadSQLAvailabilityGroupProtectableItem) AsAzureVMWorkloadProtectableItem() (*AzureVMWorkloadProtectableItem, bool) {
return nil, false
}
// AsBasicAzureVMWorkloadProtectableItem is the BasicWorkloadProtectableItem implementation for AzureVMWorkloadSQLAvailabilityGroupProtectableItem.
func (avwsagpi AzureVMWorkloadSQLAvailabilityGroupProtectableItem) AsBasicAzureVMWorkloadProtectableItem() (BasicAzureVMWorkloadProtectableItem, bool) {
return &avwsagpi, true
}
// AsAzureVMWorkloadSQLAvailabilityGroupProtectableItem is the BasicWorkloadProtectableItem implementation for AzureVMWorkloadSQLAvailabilityGroupProtectableItem.
func (avwsagpi AzureVMWorkloadSQLAvailabilityGroupProtectableItem) AsAzureVMWorkloadSQLAvailabilityGroupProtectableItem() (*AzureVMWorkloadSQLAvailabilityGroupProtectableItem, bool) {
return &avwsagpi, true
}
// AsAzureVMWorkloadSQLDatabaseProtectableItem is the BasicWorkloadProtectableItem implementation for AzureVMWorkloadSQLAvailabilityGroupProtectableItem.
func (avwsagpi AzureVMWorkloadSQLAvailabilityGroupProtectableItem) AsAzureVMWorkloadSQLDatabaseProtectableItem() (*AzureVMWorkloadSQLDatabaseProtectableItem, bool) {
return nil, false
}
// AsAzureVMWorkloadSQLInstanceProtectableItem is the BasicWorkloadProtectableItem implementation for AzureVMWorkloadSQLAvailabilityGroupProtectableItem.
func (avwsagpi AzureVMWorkloadSQLAvailabilityGroupProtectableItem) AsAzureVMWorkloadSQLInstanceProtectableItem() (*AzureVMWorkloadSQLInstanceProtectableItem, bool) {
return nil, false
}
// AsIaaSVMProtectableItem is the BasicWorkloadProtectableItem implementation for AzureVMWorkloadSQLAvailabilityGroupProtectableItem.
func (avwsagpi AzureVMWorkloadSQLAvailabilityGroupProtectableItem) AsIaaSVMProtectableItem() (*IaaSVMProtectableItem, bool) {
return nil, false
}
// AsBasicIaaSVMProtectableItem is the BasicWorkloadProtectableItem implementation for AzureVMWorkloadSQLAvailabilityGroupProtectableItem.
func (avwsagpi AzureVMWorkloadSQLAvailabilityGroupProtectableItem) AsBasicIaaSVMProtectableItem() (BasicIaaSVMProtectableItem, bool) {
return nil, false
}
// AsWorkloadProtectableItem is the BasicWorkloadProtectableItem implementation for AzureVMWorkloadSQLAvailabilityGroupProtectableItem.
func (avwsagpi AzureVMWorkloadSQLAvailabilityGroupProtectableItem) AsWorkloadProtectableItem() (*WorkloadProtectableItem, bool) {
return nil, false
}
// AsBasicWorkloadProtectableItem is the BasicWorkloadProtectableItem implementation for AzureVMWorkloadSQLAvailabilityGroupProtectableItem.
func (avwsagpi AzureVMWorkloadSQLAvailabilityGroupProtectableItem) AsBasicWorkloadProtectableItem() (BasicWorkloadProtectableItem, bool) {
return &avwsagpi, true
}
// AzureVMWorkloadSQLDatabaseProtectableItem azure VM workload-specific protectable item representing SQL Database.
type AzureVMWorkloadSQLDatabaseProtectableItem struct {
// ParentName - Name for instance or AG
ParentName *string `json:"parentName,omitempty"`
// ParentUniqueName - Parent Unique Name is added to provide the service formatted URI Name of the Parent
// Only Applicable for data bases where the parent would be either Instance or a SQL AG.
ParentUniqueName *string `json:"parentUniqueName,omitempty"`
// ServerName - Host/Cluster Name for instance or AG
ServerName *string `json:"serverName,omitempty"`
// IsAutoProtectable - Indicates if protectable item is auto-protectable
IsAutoProtectable *bool `json:"isAutoProtectable,omitempty"`
// Subinquireditemcount - For instance or AG, indicates number of DB's present
Subinquireditemcount *int32 `json:"subinquireditemcount,omitempty"`
// Subprotectableitemcount - For instance or AG, indicates number of DB's to be protected
Subprotectableitemcount *int32 `json:"subprotectableitemcount,omitempty"`
// Prebackupvalidation - Pre-backup validation for protectable objects
Prebackupvalidation *PreBackupValidation `json:"prebackupvalidation,omitempty"`
// BackupManagementType - Type of backup managemenent to backup an item.
BackupManagementType *string `json:"backupManagementType,omitempty"`
// WorkloadType - Type of workload for the backup management
WorkloadType *string `json:"workloadType,omitempty"`
// FriendlyName - Friendly name of the backup item.
FriendlyName *string `json:"friendlyName,omitempty"`
// ProtectionState - State of the back up item. Possible values include: 'ProtectionStatusInvalid', 'ProtectionStatusNotProtected', 'ProtectionStatusProtecting', 'ProtectionStatusProtected', 'ProtectionStatusProtectionFailed'
ProtectionState ProtectionStatus `json:"protectionState,omitempty"`
// ProtectableItemType - Possible values include: 'ProtectableItemTypeWorkloadProtectableItem', 'ProtectableItemTypeAzureFileShare', 'ProtectableItemTypeMicrosoftClassicComputevirtualMachines', 'ProtectableItemTypeMicrosoftComputevirtualMachines', 'ProtectableItemTypeAzureVMWorkloadProtectableItem', 'ProtectableItemTypeSQLAvailabilityGroupContainer', 'ProtectableItemTypeSQLDataBase', 'ProtectableItemTypeSQLInstance', 'ProtectableItemTypeIaaSVMProtectableItem'
ProtectableItemType ProtectableItemType `json:"protectableItemType,omitempty"`
}
// MarshalJSON is the custom marshaler for AzureVMWorkloadSQLDatabaseProtectableItem.
func (avwsdpi AzureVMWorkloadSQLDatabaseProtectableItem) MarshalJSON() ([]byte, error) {
avwsdpi.ProtectableItemType = ProtectableItemTypeSQLDataBase
objectMap := make(map[string]interface{})
if avwsdpi.ParentName != nil {
objectMap["parentName"] = avwsdpi.ParentName
}
if avwsdpi.ParentUniqueName != nil {
objectMap["parentUniqueName"] = avwsdpi.ParentUniqueName
}
if avwsdpi.ServerName != nil {
objectMap["serverName"] = avwsdpi.ServerName
}
if avwsdpi.IsAutoProtectable != nil {
objectMap["isAutoProtectable"] = avwsdpi.IsAutoProtectable
}
if avwsdpi.Subinquireditemcount != nil {
objectMap["subinquireditemcount"] = avwsdpi.Subinquireditemcount
}
if avwsdpi.Subprotectableitemcount != nil {
objectMap["subprotectableitemcount"] = avwsdpi.Subprotectableitemcount
}
if avwsdpi.Prebackupvalidation != nil {
objectMap["prebackupvalidation"] = avwsdpi.Prebackupvalidation
}
if avwsdpi.BackupManagementType != nil {
objectMap["backupManagementType"] = avwsdpi.BackupManagementType
}
if avwsdpi.WorkloadType != nil {
objectMap["workloadType"] = avwsdpi.WorkloadType
}
if avwsdpi.FriendlyName != nil {
objectMap["friendlyName"] = avwsdpi.FriendlyName
}
if avwsdpi.ProtectionState != "" {
objectMap["protectionState"] = avwsdpi.ProtectionState
}
if avwsdpi.ProtectableItemType != "" {
objectMap["protectableItemType"] = avwsdpi.ProtectableItemType
}
return json.Marshal(objectMap)
}
// AsAzureFileShareProtectableItem is the BasicWorkloadProtectableItem implementation for AzureVMWorkloadSQLDatabaseProtectableItem.
func (avwsdpi AzureVMWorkloadSQLDatabaseProtectableItem) AsAzureFileShareProtectableItem() (*AzureFileShareProtectableItem, bool) {
return nil, false
}
// AsAzureIaaSClassicComputeVMProtectableItem is the BasicWorkloadProtectableItem implementation for AzureVMWorkloadSQLDatabaseProtectableItem.
func (avwsdpi AzureVMWorkloadSQLDatabaseProtectableItem) AsAzureIaaSClassicComputeVMProtectableItem() (*AzureIaaSClassicComputeVMProtectableItem, bool) {
return nil, false
}
// AsAzureIaaSComputeVMProtectableItem is the BasicWorkloadProtectableItem implementation for AzureVMWorkloadSQLDatabaseProtectableItem.
func (avwsdpi AzureVMWorkloadSQLDatabaseProtectableItem) AsAzureIaaSComputeVMProtectableItem() (*AzureIaaSComputeVMProtectableItem, bool) {
return nil, false
}
// AsAzureVMWorkloadProtectableItem is the BasicWorkloadProtectableItem implementation for AzureVMWorkloadSQLDatabaseProtectableItem.
func (avwsdpi AzureVMWorkloadSQLDatabaseProtectableItem) AsAzureVMWorkloadProtectableItem() (*AzureVMWorkloadProtectableItem, bool) {
return nil, false
}
// AsBasicAzureVMWorkloadProtectableItem is the BasicWorkloadProtectableItem implementation for AzureVMWorkloadSQLDatabaseProtectableItem.
func (avwsdpi AzureVMWorkloadSQLDatabaseProtectableItem) AsBasicAzureVMWorkloadProtectableItem() (BasicAzureVMWorkloadProtectableItem, bool) {
return &avwsdpi, true
}
// AsAzureVMWorkloadSQLAvailabilityGroupProtectableItem is the BasicWorkloadProtectableItem implementation for AzureVMWorkloadSQLDatabaseProtectableItem.
func (avwsdpi AzureVMWorkloadSQLDatabaseProtectableItem) AsAzureVMWorkloadSQLAvailabilityGroupProtectableItem() (*AzureVMWorkloadSQLAvailabilityGroupProtectableItem, bool) {
return nil, false
}
// AsAzureVMWorkloadSQLDatabaseProtectableItem is the BasicWorkloadProtectableItem implementation for AzureVMWorkloadSQLDatabaseProtectableItem.
func (avwsdpi AzureVMWorkloadSQLDatabaseProtectableItem) AsAzureVMWorkloadSQLDatabaseProtectableItem() (*AzureVMWorkloadSQLDatabaseProtectableItem, bool) {
return &avwsdpi, true
}
// AsAzureVMWorkloadSQLInstanceProtectableItem is the BasicWorkloadProtectableItem implementation for AzureVMWorkloadSQLDatabaseProtectableItem.
func (avwsdpi AzureVMWorkloadSQLDatabaseProtectableItem) AsAzureVMWorkloadSQLInstanceProtectableItem() (*AzureVMWorkloadSQLInstanceProtectableItem, bool) {
return nil, false
}
// AsIaaSVMProtectableItem is the BasicWorkloadProtectableItem implementation for AzureVMWorkloadSQLDatabaseProtectableItem.
func (avwsdpi AzureVMWorkloadSQLDatabaseProtectableItem) AsIaaSVMProtectableItem() (*IaaSVMProtectableItem, bool) {
return nil, false
}
// AsBasicIaaSVMProtectableItem is the BasicWorkloadProtectableItem implementation for AzureVMWorkloadSQLDatabaseProtectableItem.
func (avwsdpi AzureVMWorkloadSQLDatabaseProtectableItem) AsBasicIaaSVMProtectableItem() (BasicIaaSVMProtectableItem, bool) {
return nil, false
}
// AsWorkloadProtectableItem is the BasicWorkloadProtectableItem implementation for AzureVMWorkloadSQLDatabaseProtectableItem.
func (avwsdpi AzureVMWorkloadSQLDatabaseProtectableItem) AsWorkloadProtectableItem() (*WorkloadProtectableItem, bool) {
return nil, false
}
// AsBasicWorkloadProtectableItem is the BasicWorkloadProtectableItem implementation for AzureVMWorkloadSQLDatabaseProtectableItem.
func (avwsdpi AzureVMWorkloadSQLDatabaseProtectableItem) AsBasicWorkloadProtectableItem() (BasicWorkloadProtectableItem, bool) {
return &avwsdpi, true
}
// AzureVMWorkloadSQLDatabaseProtectedItem azure VM workload-specific protected item representing SQL Database.
type AzureVMWorkloadSQLDatabaseProtectedItem struct {
// FriendlyName - Friendly name of the DB represented by this backup item.
FriendlyName *string `json:"friendlyName,omitempty"`
// ServerName - Host/Cluster Name for instance or AG
ServerName *string `json:"serverName,omitempty"`
// ParentName - Parent name of the DB such as Instance or Availability Group.
ParentName *string `json:"parentName,omitempty"`
// ParentType - Parent type of DB, SQLAG or StandAlone
ParentType *string `json:"parentType,omitempty"`
// ProtectionStatus - Backup status of this backup item.
ProtectionStatus *string `json:"protectionStatus,omitempty"`
// ProtectionState - Backup state of this backup item. Possible values include: 'ProtectionStateInvalid', 'ProtectionStateIRPending', 'ProtectionStateProtected', 'ProtectionStateProtectionError', 'ProtectionStateProtectionStopped', 'ProtectionStateProtectionPaused'
ProtectionState ProtectionState `json:"protectionState,omitempty"`
// LastBackupStatus - Last backup operation status. Possible values: Healthy, Unhealthy. Possible values include: 'LastBackupStatusInvalid', 'LastBackupStatusHealthy', 'LastBackupStatusUnhealthy', 'LastBackupStatusIRPending'
LastBackupStatus LastBackupStatus `json:"lastBackupStatus,omitempty"`
// LastBackupTime - Timestamp of the last backup operation on this backup item.
LastBackupTime *date.Time `json:"lastBackupTime,omitempty"`
// LastBackupErrorDetail - Error details in last backup
LastBackupErrorDetail *ErrorDetail `json:"lastBackupErrorDetail,omitempty"`
// ProtectedItemDataSourceID - Data ID of the protected item.
ProtectedItemDataSourceID *string `json:"protectedItemDataSourceId,omitempty"`
// ProtectedItemHealthStatus - Health status of the backup item, evaluated based on last heartbeat received. Possible values include: 'ProtectedItemHealthStatusInvalid', 'ProtectedItemHealthStatusHealthy', 'ProtectedItemHealthStatusUnhealthy', 'ProtectedItemHealthStatusNotReachable', 'ProtectedItemHealthStatusIRPending'
ProtectedItemHealthStatus ProtectedItemHealthStatus `json:"protectedItemHealthStatus,omitempty"`
// ExtendedInfo - Additional information for this backup item.
ExtendedInfo *AzureVMWorkloadProtectedItemExtendedInfo `json:"extendedInfo,omitempty"`
// BackupManagementType - Type of backup managemenent for the backed up item. Possible values include: 'ManagementTypeInvalid', 'ManagementTypeAzureIaasVM', 'ManagementTypeMAB', 'ManagementTypeDPM', 'ManagementTypeAzureBackupServer', 'ManagementTypeAzureSQL', 'ManagementTypeAzureStorage', 'ManagementTypeAzureWorkload', 'ManagementTypeDefaultBackup'
BackupManagementType ManagementType `json:"backupManagementType,omitempty"`
// WorkloadType - Type of workload this item represents. Possible values include: 'DataSourceTypeInvalid', 'DataSourceTypeVM', 'DataSourceTypeFileFolder', 'DataSourceTypeAzureSQLDb', 'DataSourceTypeSQLDB', 'DataSourceTypeExchange', 'DataSourceTypeSharepoint', 'DataSourceTypeVMwareVM', 'DataSourceTypeSystemState', 'DataSourceTypeClient', 'DataSourceTypeGenericDataSource', 'DataSourceTypeSQLDataBase', 'DataSourceTypeAzureFileShare'
WorkloadType DataSourceType `json:"workloadType,omitempty"`
// ContainerName - Unique name of container
ContainerName *string `json:"containerName,omitempty"`
// SourceResourceID - ARM ID of the resource to be backed up.
SourceResourceID *string `json:"sourceResourceId,omitempty"`
// PolicyID - ID of the backup policy with which this item is backed up.
PolicyID *string `json:"policyId,omitempty"`
// LastRecoveryPoint - Timestamp when the last (latest) backup copy was created for this backup item.
LastRecoveryPoint *date.Time `json:"lastRecoveryPoint,omitempty"`
// BackupSetName - Name of the backup set the backup item belongs to
BackupSetName *string `json:"backupSetName,omitempty"`
// ProtectedItemType - Possible values include: 'ProtectedItemTypeProtectedItem', 'ProtectedItemTypeAzureFileShareProtectedItem', 'ProtectedItemTypeMicrosoftClassicComputevirtualMachines', 'ProtectedItemTypeMicrosoftComputevirtualMachines', 'ProtectedItemTypeAzureIaaSVMProtectedItem', 'ProtectedItemTypeMicrosoftSqlserversdatabases', 'ProtectedItemTypeAzureVMWorkloadSQLDatabase', 'ProtectedItemTypeDPMProtectedItem', 'ProtectedItemTypeGenericProtectedItem', 'ProtectedItemTypeMabFileFolderProtectedItem'
ProtectedItemType ProtectedItemType `json:"protectedItemType,omitempty"`
}
// MarshalJSON is the custom marshaler for AzureVMWorkloadSQLDatabaseProtectedItem.
func (avwsdpi AzureVMWorkloadSQLDatabaseProtectedItem) MarshalJSON() ([]byte, error) {
avwsdpi.ProtectedItemType = ProtectedItemTypeAzureVMWorkloadSQLDatabase
objectMap := make(map[string]interface{})
if avwsdpi.FriendlyName != nil {
objectMap["friendlyName"] = avwsdpi.FriendlyName
}
if avwsdpi.ServerName != nil {
objectMap["serverName"] = avwsdpi.ServerName
}
if avwsdpi.ParentName != nil {
objectMap["parentName"] = avwsdpi.ParentName
}
if avwsdpi.ParentType != nil {
objectMap["parentType"] = avwsdpi.ParentType
}
if avwsdpi.ProtectionStatus != nil {
objectMap["protectionStatus"] = avwsdpi.ProtectionStatus
}
if avwsdpi.ProtectionState != "" {
objectMap["protectionState"] = avwsdpi.ProtectionState
}
if avwsdpi.LastBackupStatus != "" {
objectMap["lastBackupStatus"] = avwsdpi.LastBackupStatus
}
if avwsdpi.LastBackupTime != nil {
objectMap["lastBackupTime"] = avwsdpi.LastBackupTime
}
if avwsdpi.LastBackupErrorDetail != nil {
objectMap["lastBackupErrorDetail"] = avwsdpi.LastBackupErrorDetail
}
if avwsdpi.ProtectedItemDataSourceID != nil {
objectMap["protectedItemDataSourceId"] = avwsdpi.ProtectedItemDataSourceID
}
if avwsdpi.ProtectedItemHealthStatus != "" {
objectMap["protectedItemHealthStatus"] = avwsdpi.ProtectedItemHealthStatus
}
if avwsdpi.ExtendedInfo != nil {
objectMap["extendedInfo"] = avwsdpi.ExtendedInfo
}
if avwsdpi.BackupManagementType != "" {
objectMap["backupManagementType"] = avwsdpi.BackupManagementType
}
if avwsdpi.WorkloadType != "" {
objectMap["workloadType"] = avwsdpi.WorkloadType
}
if avwsdpi.ContainerName != nil {
objectMap["containerName"] = avwsdpi.ContainerName
}
if avwsdpi.SourceResourceID != nil {
objectMap["sourceResourceId"] = avwsdpi.SourceResourceID
}
if avwsdpi.PolicyID != nil {
objectMap["policyId"] = avwsdpi.PolicyID
}
if avwsdpi.LastRecoveryPoint != nil {
objectMap["lastRecoveryPoint"] = avwsdpi.LastRecoveryPoint
}
if avwsdpi.BackupSetName != nil {
objectMap["backupSetName"] = avwsdpi.BackupSetName
}
if avwsdpi.ProtectedItemType != "" {
objectMap["protectedItemType"] = avwsdpi.ProtectedItemType
}
return json.Marshal(objectMap)
}
// AsAzureFileshareProtectedItem is the BasicProtectedItem implementation for AzureVMWorkloadSQLDatabaseProtectedItem.
func (avwsdpi AzureVMWorkloadSQLDatabaseProtectedItem) AsAzureFileshareProtectedItem() (*AzureFileshareProtectedItem, bool) {
return nil, false
}
// AsAzureIaaSClassicComputeVMProtectedItem is the BasicProtectedItem implementation for AzureVMWorkloadSQLDatabaseProtectedItem.
func (avwsdpi AzureVMWorkloadSQLDatabaseProtectedItem) AsAzureIaaSClassicComputeVMProtectedItem() (*AzureIaaSClassicComputeVMProtectedItem, bool) {
return nil, false
}
// AsAzureIaaSComputeVMProtectedItem is the BasicProtectedItem implementation for AzureVMWorkloadSQLDatabaseProtectedItem.
func (avwsdpi AzureVMWorkloadSQLDatabaseProtectedItem) AsAzureIaaSComputeVMProtectedItem() (*AzureIaaSComputeVMProtectedItem, bool) {
return nil, false
}
// AsAzureIaaSVMProtectedItem is the BasicProtectedItem implementation for AzureVMWorkloadSQLDatabaseProtectedItem.
func (avwsdpi AzureVMWorkloadSQLDatabaseProtectedItem) AsAzureIaaSVMProtectedItem() (*AzureIaaSVMProtectedItem, bool) {
return nil, false
}
// AsBasicAzureIaaSVMProtectedItem is the BasicProtectedItem implementation for AzureVMWorkloadSQLDatabaseProtectedItem.
func (avwsdpi AzureVMWorkloadSQLDatabaseProtectedItem) AsBasicAzureIaaSVMProtectedItem() (BasicAzureIaaSVMProtectedItem, bool) {
return nil, false
}
// AsAzureSQLProtectedItem is the BasicProtectedItem implementation for AzureVMWorkloadSQLDatabaseProtectedItem.
func (avwsdpi AzureVMWorkloadSQLDatabaseProtectedItem) AsAzureSQLProtectedItem() (*AzureSQLProtectedItem, bool) {
return nil, false
}
// AsAzureVMWorkloadSQLDatabaseProtectedItem is the BasicProtectedItem implementation for AzureVMWorkloadSQLDatabaseProtectedItem.
func (avwsdpi AzureVMWorkloadSQLDatabaseProtectedItem) AsAzureVMWorkloadSQLDatabaseProtectedItem() (*AzureVMWorkloadSQLDatabaseProtectedItem, bool) {
return &avwsdpi, true
}
// AsDPMProtectedItem is the BasicProtectedItem implementation for AzureVMWorkloadSQLDatabaseProtectedItem.
func (avwsdpi AzureVMWorkloadSQLDatabaseProtectedItem) AsDPMProtectedItem() (*DPMProtectedItem, bool) {
return nil, false
}
// AsGenericProtectedItem is the BasicProtectedItem implementation for AzureVMWorkloadSQLDatabaseProtectedItem.
func (avwsdpi AzureVMWorkloadSQLDatabaseProtectedItem) AsGenericProtectedItem() (*GenericProtectedItem, bool) {
return nil, false
}
// AsMabFileFolderProtectedItem is the BasicProtectedItem implementation for AzureVMWorkloadSQLDatabaseProtectedItem.
func (avwsdpi AzureVMWorkloadSQLDatabaseProtectedItem) AsMabFileFolderProtectedItem() (*MabFileFolderProtectedItem, bool) {
return nil, false
}
// AsProtectedItem is the BasicProtectedItem implementation for AzureVMWorkloadSQLDatabaseProtectedItem.
func (avwsdpi AzureVMWorkloadSQLDatabaseProtectedItem) AsProtectedItem() (*ProtectedItem, bool) {
return nil, false
}
// AsBasicProtectedItem is the BasicProtectedItem implementation for AzureVMWorkloadSQLDatabaseProtectedItem.
func (avwsdpi AzureVMWorkloadSQLDatabaseProtectedItem) AsBasicProtectedItem() (BasicProtectedItem, bool) {
return &avwsdpi, true
}
// AzureVMWorkloadSQLDatabaseWorkloadItem azure VM workload-specific workload item representing SQL Database.
type AzureVMWorkloadSQLDatabaseWorkloadItem struct {
// ParentName - Name for instance or AG
ParentName *string `json:"parentName,omitempty"`
// ServerName - Host/Cluster Name for instance or AG
ServerName *string `json:"serverName,omitempty"`
// IsAutoProtectable - Indicates if workload item is auto-protectable
IsAutoProtectable *bool `json:"isAutoProtectable,omitempty"`
// Subinquireditemcount - For instance or AG, indicates number of DB's present
Subinquireditemcount *int32 `json:"subinquireditemcount,omitempty"`
// SubWorkloadItemCount - For instance or AG, indicates number of DB's to be protected
SubWorkloadItemCount *int32 `json:"subWorkloadItemCount,omitempty"`
// BackupManagementType - Type of backup managemenent to backup an item.
BackupManagementType *string `json:"backupManagementType,omitempty"`
// WorkloadType - Type of workload for the backup management
WorkloadType *string `json:"workloadType,omitempty"`
// FriendlyName - Friendly name of the backup item.
FriendlyName *string `json:"friendlyName,omitempty"`
// ProtectionState - State of the back up item. Possible values include: 'ProtectionStatusInvalid', 'ProtectionStatusNotProtected', 'ProtectionStatusProtecting', 'ProtectionStatusProtected', 'ProtectionStatusProtectionFailed'
ProtectionState ProtectionStatus `json:"protectionState,omitempty"`
// WorkloadItemType - Possible values include: 'WorkloadItemTypeWorkloadItem', 'WorkloadItemTypeAzureVMWorkloadItem', 'WorkloadItemTypeSQLDataBase1', 'WorkloadItemTypeSQLInstance1'
WorkloadItemType WorkloadItemTypeBasicWorkloadItem `json:"workloadItemType,omitempty"`
}
// MarshalJSON is the custom marshaler for AzureVMWorkloadSQLDatabaseWorkloadItem.
func (avwsdwi AzureVMWorkloadSQLDatabaseWorkloadItem) MarshalJSON() ([]byte, error) {
avwsdwi.WorkloadItemType = WorkloadItemTypeSQLDataBase1
objectMap := make(map[string]interface{})
if avwsdwi.ParentName != nil {
objectMap["parentName"] = avwsdwi.ParentName
}
if avwsdwi.ServerName != nil {
objectMap["serverName"] = avwsdwi.ServerName
}
if avwsdwi.IsAutoProtectable != nil {
objectMap["isAutoProtectable"] = avwsdwi.IsAutoProtectable
}
if avwsdwi.Subinquireditemcount != nil {
objectMap["subinquireditemcount"] = avwsdwi.Subinquireditemcount
}
if avwsdwi.SubWorkloadItemCount != nil {
objectMap["subWorkloadItemCount"] = avwsdwi.SubWorkloadItemCount
}
if avwsdwi.BackupManagementType != nil {
objectMap["backupManagementType"] = avwsdwi.BackupManagementType
}
if avwsdwi.WorkloadType != nil {
objectMap["workloadType"] = avwsdwi.WorkloadType
}
if avwsdwi.FriendlyName != nil {
objectMap["friendlyName"] = avwsdwi.FriendlyName
}
if avwsdwi.ProtectionState != "" {
objectMap["protectionState"] = avwsdwi.ProtectionState
}
if avwsdwi.WorkloadItemType != "" {
objectMap["workloadItemType"] = avwsdwi.WorkloadItemType
}
return json.Marshal(objectMap)
}
// AsAzureVMWorkloadItem is the BasicWorkloadItem implementation for AzureVMWorkloadSQLDatabaseWorkloadItem.
func (avwsdwi AzureVMWorkloadSQLDatabaseWorkloadItem) AsAzureVMWorkloadItem() (*AzureVMWorkloadItem, bool) {
return nil, false
}
// AsBasicAzureVMWorkloadItem is the BasicWorkloadItem implementation for AzureVMWorkloadSQLDatabaseWorkloadItem.
func (avwsdwi AzureVMWorkloadSQLDatabaseWorkloadItem) AsBasicAzureVMWorkloadItem() (BasicAzureVMWorkloadItem, bool) {
return &avwsdwi, true
}
// AsAzureVMWorkloadSQLDatabaseWorkloadItem is the BasicWorkloadItem implementation for AzureVMWorkloadSQLDatabaseWorkloadItem.
func (avwsdwi AzureVMWorkloadSQLDatabaseWorkloadItem) AsAzureVMWorkloadSQLDatabaseWorkloadItem() (*AzureVMWorkloadSQLDatabaseWorkloadItem, bool) {
return &avwsdwi, true
}
// AsAzureVMWorkloadSQLInstanceWorkloadItem is the BasicWorkloadItem implementation for AzureVMWorkloadSQLDatabaseWorkloadItem.
func (avwsdwi AzureVMWorkloadSQLDatabaseWorkloadItem) AsAzureVMWorkloadSQLInstanceWorkloadItem() (*AzureVMWorkloadSQLInstanceWorkloadItem, bool) {
return nil, false
}
// AsWorkloadItem is the BasicWorkloadItem implementation for AzureVMWorkloadSQLDatabaseWorkloadItem.
func (avwsdwi AzureVMWorkloadSQLDatabaseWorkloadItem) AsWorkloadItem() (*WorkloadItem, bool) {
return nil, false
}
// AsBasicWorkloadItem is the BasicWorkloadItem implementation for AzureVMWorkloadSQLDatabaseWorkloadItem.
func (avwsdwi AzureVMWorkloadSQLDatabaseWorkloadItem) AsBasicWorkloadItem() (BasicWorkloadItem, bool) {
return &avwsdwi, true
}
// AzureVMWorkloadSQLInstanceProtectableItem azure VM workload-specific protectable item representing SQL Instance.
type AzureVMWorkloadSQLInstanceProtectableItem struct {
// ParentName - Name for instance or AG
ParentName *string `json:"parentName,omitempty"`
// ParentUniqueName - Parent Unique Name is added to provide the service formatted URI Name of the Parent
// Only Applicable for data bases where the parent would be either Instance or a SQL AG.
ParentUniqueName *string `json:"parentUniqueName,omitempty"`
// ServerName - Host/Cluster Name for instance or AG
ServerName *string `json:"serverName,omitempty"`
// IsAutoProtectable - Indicates if protectable item is auto-protectable
IsAutoProtectable *bool `json:"isAutoProtectable,omitempty"`
// Subinquireditemcount - For instance or AG, indicates number of DB's present
Subinquireditemcount *int32 `json:"subinquireditemcount,omitempty"`
// Subprotectableitemcount - For instance or AG, indicates number of DB's to be protected
Subprotectableitemcount *int32 `json:"subprotectableitemcount,omitempty"`
// Prebackupvalidation - Pre-backup validation for protectable objects
Prebackupvalidation *PreBackupValidation `json:"prebackupvalidation,omitempty"`
// BackupManagementType - Type of backup managemenent to backup an item.
BackupManagementType *string `json:"backupManagementType,omitempty"`
// WorkloadType - Type of workload for the backup management
WorkloadType *string `json:"workloadType,omitempty"`
// FriendlyName - Friendly name of the backup item.
FriendlyName *string `json:"friendlyName,omitempty"`
// ProtectionState - State of the back up item. Possible values include: 'ProtectionStatusInvalid', 'ProtectionStatusNotProtected', 'ProtectionStatusProtecting', 'ProtectionStatusProtected', 'ProtectionStatusProtectionFailed'
ProtectionState ProtectionStatus `json:"protectionState,omitempty"`
// ProtectableItemType - Possible values include: 'ProtectableItemTypeWorkloadProtectableItem', 'ProtectableItemTypeAzureFileShare', 'ProtectableItemTypeMicrosoftClassicComputevirtualMachines', 'ProtectableItemTypeMicrosoftComputevirtualMachines', 'ProtectableItemTypeAzureVMWorkloadProtectableItem', 'ProtectableItemTypeSQLAvailabilityGroupContainer', 'ProtectableItemTypeSQLDataBase', 'ProtectableItemTypeSQLInstance', 'ProtectableItemTypeIaaSVMProtectableItem'
ProtectableItemType ProtectableItemType `json:"protectableItemType,omitempty"`
}
// MarshalJSON is the custom marshaler for AzureVMWorkloadSQLInstanceProtectableItem.
func (avwsipi AzureVMWorkloadSQLInstanceProtectableItem) MarshalJSON() ([]byte, error) {
avwsipi.ProtectableItemType = ProtectableItemTypeSQLInstance
objectMap := make(map[string]interface{})
if avwsipi.ParentName != nil {
objectMap["parentName"] = avwsipi.ParentName
}
if avwsipi.ParentUniqueName != nil {
objectMap["parentUniqueName"] = avwsipi.ParentUniqueName
}
if avwsipi.ServerName != nil {
objectMap["serverName"] = avwsipi.ServerName
}
if avwsipi.IsAutoProtectable != nil {
objectMap["isAutoProtectable"] = avwsipi.IsAutoProtectable
}
if avwsipi.Subinquireditemcount != nil {
objectMap["subinquireditemcount"] = avwsipi.Subinquireditemcount
}
if avwsipi.Subprotectableitemcount != nil {
objectMap["subprotectableitemcount"] = avwsipi.Subprotectableitemcount
}
if avwsipi.Prebackupvalidation != nil {
objectMap["prebackupvalidation"] = avwsipi.Prebackupvalidation
}
if avwsipi.BackupManagementType != nil {
objectMap["backupManagementType"] = avwsipi.BackupManagementType
}
if avwsipi.WorkloadType != nil {
objectMap["workloadType"] = avwsipi.WorkloadType
}
if avwsipi.FriendlyName != nil {
objectMap["friendlyName"] = avwsipi.FriendlyName
}
if avwsipi.ProtectionState != "" {
objectMap["protectionState"] = avwsipi.ProtectionState
}
if avwsipi.ProtectableItemType != "" {
objectMap["protectableItemType"] = avwsipi.ProtectableItemType
}
return json.Marshal(objectMap)
}
// AsAzureFileShareProtectableItem is the BasicWorkloadProtectableItem implementation for AzureVMWorkloadSQLInstanceProtectableItem.
func (avwsipi AzureVMWorkloadSQLInstanceProtectableItem) AsAzureFileShareProtectableItem() (*AzureFileShareProtectableItem, bool) {
return nil, false
}
// AsAzureIaaSClassicComputeVMProtectableItem is the BasicWorkloadProtectableItem implementation for AzureVMWorkloadSQLInstanceProtectableItem.
func (avwsipi AzureVMWorkloadSQLInstanceProtectableItem) AsAzureIaaSClassicComputeVMProtectableItem() (*AzureIaaSClassicComputeVMProtectableItem, bool) {
return nil, false
}
// AsAzureIaaSComputeVMProtectableItem is the BasicWorkloadProtectableItem implementation for AzureVMWorkloadSQLInstanceProtectableItem.
func (avwsipi AzureVMWorkloadSQLInstanceProtectableItem) AsAzureIaaSComputeVMProtectableItem() (*AzureIaaSComputeVMProtectableItem, bool) {
return nil, false
}
// AsAzureVMWorkloadProtectableItem is the BasicWorkloadProtectableItem implementation for AzureVMWorkloadSQLInstanceProtectableItem.
func (avwsipi AzureVMWorkloadSQLInstanceProtectableItem) AsAzureVMWorkloadProtectableItem() (*AzureVMWorkloadProtectableItem, bool) {
return nil, false
}
// AsBasicAzureVMWorkloadProtectableItem is the BasicWorkloadProtectableItem implementation for AzureVMWorkloadSQLInstanceProtectableItem.
func (avwsipi AzureVMWorkloadSQLInstanceProtectableItem) AsBasicAzureVMWorkloadProtectableItem() (BasicAzureVMWorkloadProtectableItem, bool) {
return &avwsipi, true
}
// AsAzureVMWorkloadSQLAvailabilityGroupProtectableItem is the BasicWorkloadProtectableItem implementation for AzureVMWorkloadSQLInstanceProtectableItem.
func (avwsipi AzureVMWorkloadSQLInstanceProtectableItem) AsAzureVMWorkloadSQLAvailabilityGroupProtectableItem() (*AzureVMWorkloadSQLAvailabilityGroupProtectableItem, bool) {
return nil, false
}
// AsAzureVMWorkloadSQLDatabaseProtectableItem is the BasicWorkloadProtectableItem implementation for AzureVMWorkloadSQLInstanceProtectableItem.
func (avwsipi AzureVMWorkloadSQLInstanceProtectableItem) AsAzureVMWorkloadSQLDatabaseProtectableItem() (*AzureVMWorkloadSQLDatabaseProtectableItem, bool) {
return nil, false
}
// AsAzureVMWorkloadSQLInstanceProtectableItem is the BasicWorkloadProtectableItem implementation for AzureVMWorkloadSQLInstanceProtectableItem.
func (avwsipi AzureVMWorkloadSQLInstanceProtectableItem) AsAzureVMWorkloadSQLInstanceProtectableItem() (*AzureVMWorkloadSQLInstanceProtectableItem, bool) {
return &avwsipi, true
}
// AsIaaSVMProtectableItem is the BasicWorkloadProtectableItem implementation for AzureVMWorkloadSQLInstanceProtectableItem.
func (avwsipi AzureVMWorkloadSQLInstanceProtectableItem) AsIaaSVMProtectableItem() (*IaaSVMProtectableItem, bool) {
return nil, false
}
// AsBasicIaaSVMProtectableItem is the BasicWorkloadProtectableItem implementation for AzureVMWorkloadSQLInstanceProtectableItem.
func (avwsipi AzureVMWorkloadSQLInstanceProtectableItem) AsBasicIaaSVMProtectableItem() (BasicIaaSVMProtectableItem, bool) {
return nil, false
}
// AsWorkloadProtectableItem is the BasicWorkloadProtectableItem implementation for AzureVMWorkloadSQLInstanceProtectableItem.
func (avwsipi AzureVMWorkloadSQLInstanceProtectableItem) AsWorkloadProtectableItem() (*WorkloadProtectableItem, bool) {
return nil, false
}
// AsBasicWorkloadProtectableItem is the BasicWorkloadProtectableItem implementation for AzureVMWorkloadSQLInstanceProtectableItem.
func (avwsipi AzureVMWorkloadSQLInstanceProtectableItem) AsBasicWorkloadProtectableItem() (BasicWorkloadProtectableItem, bool) {
return &avwsipi, true
}
// AzureVMWorkloadSQLInstanceWorkloadItem azure VM workload-specific workload item representing SQL Instance.
type AzureVMWorkloadSQLInstanceWorkloadItem struct {
// DataDirectoryPaths - Data Directory Paths for default directories
DataDirectoryPaths *[]SQLDataDirectory `json:"dataDirectoryPaths,omitempty"`
// ParentName - Name for instance or AG
ParentName *string `json:"parentName,omitempty"`
// ServerName - Host/Cluster Name for instance or AG
ServerName *string `json:"serverName,omitempty"`
// IsAutoProtectable - Indicates if workload item is auto-protectable
IsAutoProtectable *bool `json:"isAutoProtectable,omitempty"`
// Subinquireditemcount - For instance or AG, indicates number of DB's present
Subinquireditemcount *int32 `json:"subinquireditemcount,omitempty"`
// SubWorkloadItemCount - For instance or AG, indicates number of DB's to be protected
SubWorkloadItemCount *int32 `json:"subWorkloadItemCount,omitempty"`
// BackupManagementType - Type of backup managemenent to backup an item.
BackupManagementType *string `json:"backupManagementType,omitempty"`
// WorkloadType - Type of workload for the backup management
WorkloadType *string `json:"workloadType,omitempty"`
// FriendlyName - Friendly name of the backup item.
FriendlyName *string `json:"friendlyName,omitempty"`
// ProtectionState - State of the back up item. Possible values include: 'ProtectionStatusInvalid', 'ProtectionStatusNotProtected', 'ProtectionStatusProtecting', 'ProtectionStatusProtected', 'ProtectionStatusProtectionFailed'
ProtectionState ProtectionStatus `json:"protectionState,omitempty"`
// WorkloadItemType - Possible values include: 'WorkloadItemTypeWorkloadItem', 'WorkloadItemTypeAzureVMWorkloadItem', 'WorkloadItemTypeSQLDataBase1', 'WorkloadItemTypeSQLInstance1'
WorkloadItemType WorkloadItemTypeBasicWorkloadItem `json:"workloadItemType,omitempty"`
}
// MarshalJSON is the custom marshaler for AzureVMWorkloadSQLInstanceWorkloadItem.
func (avwsiwi AzureVMWorkloadSQLInstanceWorkloadItem) MarshalJSON() ([]byte, error) {
avwsiwi.WorkloadItemType = WorkloadItemTypeSQLInstance1
objectMap := make(map[string]interface{})
if avwsiwi.DataDirectoryPaths != nil {
objectMap["dataDirectoryPaths"] = avwsiwi.DataDirectoryPaths
}
if avwsiwi.ParentName != nil {
objectMap["parentName"] = avwsiwi.ParentName
}
if avwsiwi.ServerName != nil {
objectMap["serverName"] = avwsiwi.ServerName
}
if avwsiwi.IsAutoProtectable != nil {
objectMap["isAutoProtectable"] = avwsiwi.IsAutoProtectable
}
if avwsiwi.Subinquireditemcount != nil {
objectMap["subinquireditemcount"] = avwsiwi.Subinquireditemcount
}
if avwsiwi.SubWorkloadItemCount != nil {
objectMap["subWorkloadItemCount"] = avwsiwi.SubWorkloadItemCount
}
if avwsiwi.BackupManagementType != nil {
objectMap["backupManagementType"] = avwsiwi.BackupManagementType
}
if avwsiwi.WorkloadType != nil {
objectMap["workloadType"] = avwsiwi.WorkloadType
}
if avwsiwi.FriendlyName != nil {
objectMap["friendlyName"] = avwsiwi.FriendlyName
}
if avwsiwi.ProtectionState != "" {
objectMap["protectionState"] = avwsiwi.ProtectionState
}
if avwsiwi.WorkloadItemType != "" {
objectMap["workloadItemType"] = avwsiwi.WorkloadItemType
}
return json.Marshal(objectMap)
}
// AsAzureVMWorkloadItem is the BasicWorkloadItem implementation for AzureVMWorkloadSQLInstanceWorkloadItem.
func (avwsiwi AzureVMWorkloadSQLInstanceWorkloadItem) AsAzureVMWorkloadItem() (*AzureVMWorkloadItem, bool) {
return nil, false
}
// AsBasicAzureVMWorkloadItem is the BasicWorkloadItem implementation for AzureVMWorkloadSQLInstanceWorkloadItem.
func (avwsiwi AzureVMWorkloadSQLInstanceWorkloadItem) AsBasicAzureVMWorkloadItem() (BasicAzureVMWorkloadItem, bool) {
return &avwsiwi, true
}
// AsAzureVMWorkloadSQLDatabaseWorkloadItem is the BasicWorkloadItem implementation for AzureVMWorkloadSQLInstanceWorkloadItem.
func (avwsiwi AzureVMWorkloadSQLInstanceWorkloadItem) AsAzureVMWorkloadSQLDatabaseWorkloadItem() (*AzureVMWorkloadSQLDatabaseWorkloadItem, bool) {
return nil, false
}
// AsAzureVMWorkloadSQLInstanceWorkloadItem is the BasicWorkloadItem implementation for AzureVMWorkloadSQLInstanceWorkloadItem.
func (avwsiwi AzureVMWorkloadSQLInstanceWorkloadItem) AsAzureVMWorkloadSQLInstanceWorkloadItem() (*AzureVMWorkloadSQLInstanceWorkloadItem, bool) {
return &avwsiwi, true
}
// AsWorkloadItem is the BasicWorkloadItem implementation for AzureVMWorkloadSQLInstanceWorkloadItem.
func (avwsiwi AzureVMWorkloadSQLInstanceWorkloadItem) AsWorkloadItem() (*WorkloadItem, bool) {
return nil, false
}
// AsBasicWorkloadItem is the BasicWorkloadItem implementation for AzureVMWorkloadSQLInstanceWorkloadItem.
func (avwsiwi AzureVMWorkloadSQLInstanceWorkloadItem) AsBasicWorkloadItem() (BasicWorkloadItem, bool) {
return &avwsiwi, true
}
// AzureWorkloadBackupRequest azureWorkload workload-specific backup request.
type AzureWorkloadBackupRequest struct {
// BackupType - Type of backup, viz. Full, Differential, Log or CopyOnlyFull. Possible values include: 'TypeEnumInvalid', 'TypeEnumFull', 'TypeEnumDifferential', 'TypeEnumLog', 'TypeEnumCopyOnlyFull'
BackupType TypeEnum `json:"backupType,omitempty"`
// EnableCompression - Bool for Compression setting
EnableCompression *bool `json:"enableCompression,omitempty"`
// RecoveryPointExpiryTimeInUTC - Backup copy will expire after the time specified (UTC).
RecoveryPointExpiryTimeInUTC *date.Time `json:"recoveryPointExpiryTimeInUTC,omitempty"`
// ObjectType - Possible values include: 'ObjectTypeBackupRequest', 'ObjectTypeAzureFileShareBackupRequest', 'ObjectTypeAzureWorkloadBackupRequest', 'ObjectTypeIaasVMBackupRequest'
ObjectType ObjectTypeBasicBackupRequest `json:"objectType,omitempty"`
}
// MarshalJSON is the custom marshaler for AzureWorkloadBackupRequest.
func (awbr AzureWorkloadBackupRequest) MarshalJSON() ([]byte, error) {
awbr.ObjectType = ObjectTypeAzureWorkloadBackupRequest
objectMap := make(map[string]interface{})
if awbr.BackupType != "" {
objectMap["backupType"] = awbr.BackupType
}
if awbr.EnableCompression != nil {
objectMap["enableCompression"] = awbr.EnableCompression
}
if awbr.RecoveryPointExpiryTimeInUTC != nil {
objectMap["recoveryPointExpiryTimeInUTC"] = awbr.RecoveryPointExpiryTimeInUTC
}
if awbr.ObjectType != "" {
objectMap["objectType"] = awbr.ObjectType
}
return json.Marshal(objectMap)
}
// AsAzureFileShareBackupRequest is the BasicRequest implementation for AzureWorkloadBackupRequest.
func (awbr AzureWorkloadBackupRequest) AsAzureFileShareBackupRequest() (*AzureFileShareBackupRequest, bool) {
return nil, false
}
// AsAzureWorkloadBackupRequest is the BasicRequest implementation for AzureWorkloadBackupRequest.
func (awbr AzureWorkloadBackupRequest) AsAzureWorkloadBackupRequest() (*AzureWorkloadBackupRequest, bool) {
return &awbr, true
}
// AsIaasVMBackupRequest is the BasicRequest implementation for AzureWorkloadBackupRequest.
func (awbr AzureWorkloadBackupRequest) AsIaasVMBackupRequest() (*IaasVMBackupRequest, bool) {
return nil, false
}
// AsRequest is the BasicRequest implementation for AzureWorkloadBackupRequest.
func (awbr AzureWorkloadBackupRequest) AsRequest() (*Request, bool) {
return nil, false
}
// AsBasicRequest is the BasicRequest implementation for AzureWorkloadBackupRequest.
func (awbr AzureWorkloadBackupRequest) AsBasicRequest() (BasicRequest, bool) {
return &awbr, true
}
// BasicAzureWorkloadContainer container for the workloads running inside Azure Compute or Classic Compute.
type BasicAzureWorkloadContainer interface {
AsAzureSQLAGWorkloadContainerProtectionContainer() (*AzureSQLAGWorkloadContainerProtectionContainer, bool)
AsAzureVMAppContainerProtectionContainer() (*AzureVMAppContainerProtectionContainer, bool)
AsAzureWorkloadContainer() (*AzureWorkloadContainer, bool)
}
// AzureWorkloadContainer container for the workloads running inside Azure Compute or Classic Compute.
type AzureWorkloadContainer struct {
// SourceResourceID - ARM ID of the virtual machine represented by this Azure Workload Container
SourceResourceID *string `json:"sourceResourceId,omitempty"`
// LastUpdatedTime - Time stamp when this container was updated.
LastUpdatedTime *date.Time `json:"lastUpdatedTime,omitempty"`
// ExtendedInfo - Additional details of a workload container.
ExtendedInfo *AzureWorkloadContainerExtendedInfo `json:"extendedInfo,omitempty"`
// FriendlyName - Friendly name of the container.
FriendlyName *string `json:"friendlyName,omitempty"`
// BackupManagementType - Type of backup managemenent for the container. Possible values include: 'ManagementTypeInvalid', 'ManagementTypeAzureIaasVM', 'ManagementTypeMAB', 'ManagementTypeDPM', 'ManagementTypeAzureBackupServer', 'ManagementTypeAzureSQL', 'ManagementTypeAzureStorage', 'ManagementTypeAzureWorkload', 'ManagementTypeDefaultBackup'
BackupManagementType ManagementType `json:"backupManagementType,omitempty"`
// RegistrationStatus - Status of registration of the container with the Recovery Services Vault.
RegistrationStatus *string `json:"registrationStatus,omitempty"`
// HealthStatus - Status of health of the container.
HealthStatus *string `json:"healthStatus,omitempty"`
// ContainerType - Possible values include: 'ContainerTypeProtectionContainer', 'ContainerTypeAzureBackupServerContainer1', 'ContainerTypeMicrosoftClassicComputevirtualMachines', 'ContainerTypeMicrosoftComputevirtualMachines', 'ContainerTypeSQLAGWorkLoadContainer1', 'ContainerTypeAzureSQLContainer1', 'ContainerTypeStorageContainer1', 'ContainerTypeVMAppContainer1', 'ContainerTypeAzureWorkloadContainer', 'ContainerTypeDPMContainer1', 'ContainerTypeGenericContainer1', 'ContainerTypeIaaSVMContainer', 'ContainerTypeMABWindowsContainer'
ContainerType ContainerTypeBasicProtectionContainer `json:"containerType,omitempty"`
}
func unmarshalBasicAzureWorkloadContainer(body []byte) (BasicAzureWorkloadContainer, error) {
var m map[string]interface{}
err := json.Unmarshal(body, &m)
if err != nil {
return nil, err
}
switch m["containerType"] {
case string(ContainerTypeSQLAGWorkLoadContainer1):
var aswcpc AzureSQLAGWorkloadContainerProtectionContainer
err := json.Unmarshal(body, &aswcpc)
return aswcpc, err
case string(ContainerTypeVMAppContainer1):
var avacpc AzureVMAppContainerProtectionContainer
err := json.Unmarshal(body, &avacpc)
return avacpc, err
default:
var awc AzureWorkloadContainer
err := json.Unmarshal(body, &awc)
return awc, err
}
}
func unmarshalBasicAzureWorkloadContainerArray(body []byte) ([]BasicAzureWorkloadContainer, error) {
var rawMessages []*json.RawMessage
err := json.Unmarshal(body, &rawMessages)
if err != nil {
return nil, err
}
awcArray := make([]BasicAzureWorkloadContainer, len(rawMessages))
for index, rawMessage := range rawMessages {
awc, err := unmarshalBasicAzureWorkloadContainer(*rawMessage)
if err != nil {
return nil, err
}
awcArray[index] = awc
}
return awcArray, nil
}
// MarshalJSON is the custom marshaler for AzureWorkloadContainer.
func (awc AzureWorkloadContainer) MarshalJSON() ([]byte, error) {
awc.ContainerType = ContainerTypeAzureWorkloadContainer
objectMap := make(map[string]interface{})
if awc.SourceResourceID != nil {
objectMap["sourceResourceId"] = awc.SourceResourceID
}
if awc.LastUpdatedTime != nil {
objectMap["lastUpdatedTime"] = awc.LastUpdatedTime
}
if awc.ExtendedInfo != nil {
objectMap["extendedInfo"] = awc.ExtendedInfo
}
if awc.FriendlyName != nil {
objectMap["friendlyName"] = awc.FriendlyName
}
if awc.BackupManagementType != "" {
objectMap["backupManagementType"] = awc.BackupManagementType
}
if awc.RegistrationStatus != nil {
objectMap["registrationStatus"] = awc.RegistrationStatus
}
if awc.HealthStatus != nil {
objectMap["healthStatus"] = awc.HealthStatus
}
if awc.ContainerType != "" {
objectMap["containerType"] = awc.ContainerType
}
return json.Marshal(objectMap)
}
// AsAzureBackupServerContainer is the BasicProtectionContainer implementation for AzureWorkloadContainer.
func (awc AzureWorkloadContainer) AsAzureBackupServerContainer() (*AzureBackupServerContainer, bool) {
return nil, false
}
// AsAzureIaaSClassicComputeVMContainer is the BasicProtectionContainer implementation for AzureWorkloadContainer.
func (awc AzureWorkloadContainer) AsAzureIaaSClassicComputeVMContainer() (*AzureIaaSClassicComputeVMContainer, bool) {
return nil, false
}
// AsAzureIaaSComputeVMContainer is the BasicProtectionContainer implementation for AzureWorkloadContainer.
func (awc AzureWorkloadContainer) AsAzureIaaSComputeVMContainer() (*AzureIaaSComputeVMContainer, bool) {
return nil, false
}
// AsAzureSQLAGWorkloadContainerProtectionContainer is the BasicProtectionContainer implementation for AzureWorkloadContainer.
func (awc AzureWorkloadContainer) AsAzureSQLAGWorkloadContainerProtectionContainer() (*AzureSQLAGWorkloadContainerProtectionContainer, bool) {
return nil, false
}
// AsAzureSQLContainer is the BasicProtectionContainer implementation for AzureWorkloadContainer.
func (awc AzureWorkloadContainer) AsAzureSQLContainer() (*AzureSQLContainer, bool) {
return nil, false
}
// AsAzureStorageContainer is the BasicProtectionContainer implementation for AzureWorkloadContainer.
func (awc AzureWorkloadContainer) AsAzureStorageContainer() (*AzureStorageContainer, bool) {
return nil, false
}
// AsAzureVMAppContainerProtectionContainer is the BasicProtectionContainer implementation for AzureWorkloadContainer.
func (awc AzureWorkloadContainer) AsAzureVMAppContainerProtectionContainer() (*AzureVMAppContainerProtectionContainer, bool) {
return nil, false
}
// AsAzureWorkloadContainer is the BasicProtectionContainer implementation for AzureWorkloadContainer.
func (awc AzureWorkloadContainer) AsAzureWorkloadContainer() (*AzureWorkloadContainer, bool) {
return &awc, true
}
// AsBasicAzureWorkloadContainer is the BasicProtectionContainer implementation for AzureWorkloadContainer.
func (awc AzureWorkloadContainer) AsBasicAzureWorkloadContainer() (BasicAzureWorkloadContainer, bool) {
return &awc, true
}
// AsDpmContainer is the BasicProtectionContainer implementation for AzureWorkloadContainer.
func (awc AzureWorkloadContainer) AsDpmContainer() (*DpmContainer, bool) {
return nil, false
}
// AsGenericContainer is the BasicProtectionContainer implementation for AzureWorkloadContainer.
func (awc AzureWorkloadContainer) AsGenericContainer() (*GenericContainer, bool) {
return nil, false
}
// AsIaaSVMContainer is the BasicProtectionContainer implementation for AzureWorkloadContainer.
func (awc AzureWorkloadContainer) AsIaaSVMContainer() (*IaaSVMContainer, bool) {
return nil, false
}
// AsBasicIaaSVMContainer is the BasicProtectionContainer implementation for AzureWorkloadContainer.
func (awc AzureWorkloadContainer) AsBasicIaaSVMContainer() (BasicIaaSVMContainer, bool) {
return nil, false
}
// AsMabContainer is the BasicProtectionContainer implementation for AzureWorkloadContainer.
func (awc AzureWorkloadContainer) AsMabContainer() (*MabContainer, bool) {
return nil, false
}
// AsProtectionContainer is the BasicProtectionContainer implementation for AzureWorkloadContainer.
func (awc AzureWorkloadContainer) AsProtectionContainer() (*ProtectionContainer, bool) {
return nil, false
}
// AsBasicProtectionContainer is the BasicProtectionContainer implementation for AzureWorkloadContainer.
func (awc AzureWorkloadContainer) AsBasicProtectionContainer() (BasicProtectionContainer, bool) {
return &awc, true
}
// AzureWorkloadContainerExtendedInfo extended information of the container.
type AzureWorkloadContainerExtendedInfo struct {
// HostServerName - Host Os Name in case of Stand Alone and
// Cluster Name in case of distributed container.
HostServerName *string `json:"hostServerName,omitempty"`
// InquiryInfo - Inquiry Status for the container.
InquiryInfo *InquiryInfo `json:"inquiryInfo,omitempty"`
// NodesList - List of the nodes in case of distributed container.
NodesList *[]DistributedNodesInfo `json:"nodesList,omitempty"`
}
// AzureWorkloadErrorInfo azure storage specific error information
type AzureWorkloadErrorInfo struct {
// ErrorCode - Error code.
ErrorCode *int32 `json:"errorCode,omitempty"`
// ErrorString - Localized error string.
ErrorString *string `json:"errorString,omitempty"`
// ErrorTitle - Title: Typically, the entity that the error pertains to.
ErrorTitle *string `json:"errorTitle,omitempty"`
// Recommendations - List of localized recommendations for above error code.
Recommendations *[]string `json:"recommendations,omitempty"`
// AdditionalDetails - Additional details for above error code.
AdditionalDetails *string `json:"additionalDetails,omitempty"`
}
// AzureWorkloadJob azure storage specific job.
type AzureWorkloadJob struct {
// Duration - Time elapsed during the execution of this job.
Duration *string `json:"duration,omitempty"`
// ActionsInfo - Gets or sets the state/actions applicable on this job like cancel/retry.
ActionsInfo *[]JobSupportedAction `json:"actionsInfo,omitempty"`
// ErrorDetails - Error details on execution of this job.
ErrorDetails *[]AzureWorkloadErrorInfo `json:"errorDetails,omitempty"`
// ExtendedInfo - Additional information about the job.
ExtendedInfo *AzureWorkloadJobExtendedInfo `json:"extendedInfo,omitempty"`
// EntityFriendlyName - Friendly name of the entity on which the current job is executing.
EntityFriendlyName *string `json:"entityFriendlyName,omitempty"`
// BackupManagementType - Backup management type to execute the current job. Possible values include: 'ManagementTypeInvalid', 'ManagementTypeAzureIaasVM', 'ManagementTypeMAB', 'ManagementTypeDPM', 'ManagementTypeAzureBackupServer', 'ManagementTypeAzureSQL', 'ManagementTypeAzureStorage', 'ManagementTypeAzureWorkload', 'ManagementTypeDefaultBackup'
BackupManagementType ManagementType `json:"backupManagementType,omitempty"`
// Operation - The operation name.
Operation *string `json:"operation,omitempty"`
// Status - Job status.
Status *string `json:"status,omitempty"`
// StartTime - The start time.
StartTime *date.Time `json:"startTime,omitempty"`
// EndTime - The end time.
EndTime *date.Time `json:"endTime,omitempty"`
// ActivityID - ActivityId of job.
ActivityID *string `json:"activityId,omitempty"`
// JobType - Possible values include: 'JobTypeJob', 'JobTypeAzureIaaSVMJob', 'JobTypeAzureStorageJob', 'JobTypeAzureWorkloadJob', 'JobTypeDpmJob', 'JobTypeMabJob'
JobType JobType `json:"jobType,omitempty"`
}
// MarshalJSON is the custom marshaler for AzureWorkloadJob.
func (awj AzureWorkloadJob) MarshalJSON() ([]byte, error) {
awj.JobType = JobTypeAzureWorkloadJob
objectMap := make(map[string]interface{})
if awj.Duration != nil {
objectMap["duration"] = awj.Duration
}
if awj.ActionsInfo != nil {
objectMap["actionsInfo"] = awj.ActionsInfo
}
if awj.ErrorDetails != nil {
objectMap["errorDetails"] = awj.ErrorDetails
}
if awj.ExtendedInfo != nil {
objectMap["extendedInfo"] = awj.ExtendedInfo
}
if awj.EntityFriendlyName != nil {
objectMap["entityFriendlyName"] = awj.EntityFriendlyName
}
if awj.BackupManagementType != "" {
objectMap["backupManagementType"] = awj.BackupManagementType
}
if awj.Operation != nil {
objectMap["operation"] = awj.Operation
}
if awj.Status != nil {
objectMap["status"] = awj.Status
}
if awj.StartTime != nil {
objectMap["startTime"] = awj.StartTime
}
if awj.EndTime != nil {
objectMap["endTime"] = awj.EndTime
}
if awj.ActivityID != nil {
objectMap["activityId"] = awj.ActivityID
}
if awj.JobType != "" {
objectMap["jobType"] = awj.JobType
}
return json.Marshal(objectMap)
}
// AsAzureIaaSVMJob is the BasicJob implementation for AzureWorkloadJob.
func (awj AzureWorkloadJob) AsAzureIaaSVMJob() (*AzureIaaSVMJob, bool) {
return nil, false
}
// AsAzureStorageJob is the BasicJob implementation for AzureWorkloadJob.
func (awj AzureWorkloadJob) AsAzureStorageJob() (*AzureStorageJob, bool) {
return nil, false
}
// AsAzureWorkloadJob is the BasicJob implementation for AzureWorkloadJob.
func (awj AzureWorkloadJob) AsAzureWorkloadJob() (*AzureWorkloadJob, bool) {
return &awj, true
}
// AsDpmJob is the BasicJob implementation for AzureWorkloadJob.
func (awj AzureWorkloadJob) AsDpmJob() (*DpmJob, bool) {
return nil, false
}
// AsMabJob is the BasicJob implementation for AzureWorkloadJob.
func (awj AzureWorkloadJob) AsMabJob() (*MabJob, bool) {
return nil, false
}
// AsJob is the BasicJob implementation for AzureWorkloadJob.
func (awj AzureWorkloadJob) AsJob() (*Job, bool) {
return nil, false
}
// AsBasicJob is the BasicJob implementation for AzureWorkloadJob.
func (awj AzureWorkloadJob) AsBasicJob() (BasicJob, bool) {
return &awj, true
}
// AzureWorkloadJobExtendedInfo azure VM workload-specific additional information for job.
type AzureWorkloadJobExtendedInfo struct {
// TasksList - List of tasks for this job
TasksList *[]AzureWorkloadJobTaskDetails `json:"tasksList,omitempty"`
// PropertyBag - Job properties.
PropertyBag map[string]*string `json:"propertyBag"`
// DynamicErrorMessage - Non localized error message on job execution.
DynamicErrorMessage *string `json:"dynamicErrorMessage,omitempty"`
}
// MarshalJSON is the custom marshaler for AzureWorkloadJobExtendedInfo.
func (awjei AzureWorkloadJobExtendedInfo) MarshalJSON() ([]byte, error) {
objectMap := make(map[string]interface{})
if awjei.TasksList != nil {
objectMap["tasksList"] = awjei.TasksList
}
if awjei.PropertyBag != nil {
objectMap["propertyBag"] = awjei.PropertyBag
}
if awjei.DynamicErrorMessage != nil {
objectMap["dynamicErrorMessage"] = awjei.DynamicErrorMessage
}
return json.Marshal(objectMap)
}
// AzureWorkloadJobTaskDetails azure VM workload specific job task details.
type AzureWorkloadJobTaskDetails struct {
// TaskID - The task display name.
TaskID *string `json:"taskId,omitempty"`
// Status - The status.
Status *string `json:"status,omitempty"`
}
// BasicAzureWorkloadRecoveryPoint workload specific recoverypoint, specifcally encaspulates full/diff recoverypoint
type BasicAzureWorkloadRecoveryPoint interface {
AsAzureWorkloadSQLPointInTimeRecoveryPoint() (*AzureWorkloadSQLPointInTimeRecoveryPoint, bool)
AsAzureWorkloadSQLRecoveryPoint() (*AzureWorkloadSQLRecoveryPoint, bool)
AsBasicAzureWorkloadSQLRecoveryPoint() (BasicAzureWorkloadSQLRecoveryPoint, bool)
AsAzureWorkloadRecoveryPoint() (*AzureWorkloadRecoveryPoint, bool)
}
// AzureWorkloadRecoveryPoint workload specific recoverypoint, specifcally encaspulates full/diff recoverypoint
type AzureWorkloadRecoveryPoint struct {
// RecoveryPointTimeInUTC - UTC time at which recoverypoint was created
RecoveryPointTimeInUTC *date.Time `json:"recoveryPointTimeInUTC,omitempty"`
// Type - Type of restore point. Possible values include: 'RestorePointTypeInvalid', 'RestorePointTypeFull', 'RestorePointTypeLog', 'RestorePointTypeDifferential'
Type RestorePointType `json:"type,omitempty"`
// ObjectType - Possible values include: 'ObjectTypeRecoveryPoint', 'ObjectTypeAzureFileShareRecoveryPoint', 'ObjectTypeAzureWorkloadRecoveryPoint', 'ObjectTypeAzureWorkloadSQLPointInTimeRecoveryPoint', 'ObjectTypeAzureWorkloadSQLRecoveryPoint', 'ObjectTypeGenericRecoveryPoint', 'ObjectTypeIaasVMRecoveryPoint'
ObjectType ObjectTypeBasicRecoveryPoint `json:"objectType,omitempty"`
}
func unmarshalBasicAzureWorkloadRecoveryPoint(body []byte) (BasicAzureWorkloadRecoveryPoint, error) {
var m map[string]interface{}
err := json.Unmarshal(body, &m)
if err != nil {
return nil, err
}
switch m["objectType"] {
case string(ObjectTypeAzureWorkloadSQLPointInTimeRecoveryPoint):
var awspitrp AzureWorkloadSQLPointInTimeRecoveryPoint
err := json.Unmarshal(body, &awspitrp)
return awspitrp, err
case string(ObjectTypeAzureWorkloadSQLRecoveryPoint):
var awsrp AzureWorkloadSQLRecoveryPoint
err := json.Unmarshal(body, &awsrp)
return awsrp, err
default:
var awrp AzureWorkloadRecoveryPoint
err := json.Unmarshal(body, &awrp)
return awrp, err
}
}
func unmarshalBasicAzureWorkloadRecoveryPointArray(body []byte) ([]BasicAzureWorkloadRecoveryPoint, error) {
var rawMessages []*json.RawMessage
err := json.Unmarshal(body, &rawMessages)
if err != nil {
return nil, err
}
awrpArray := make([]BasicAzureWorkloadRecoveryPoint, len(rawMessages))
for index, rawMessage := range rawMessages {
awrp, err := unmarshalBasicAzureWorkloadRecoveryPoint(*rawMessage)
if err != nil {
return nil, err
}
awrpArray[index] = awrp
}
return awrpArray, nil
}
// MarshalJSON is the custom marshaler for AzureWorkloadRecoveryPoint.
func (awrp AzureWorkloadRecoveryPoint) MarshalJSON() ([]byte, error) {
awrp.ObjectType = ObjectTypeAzureWorkloadRecoveryPoint
objectMap := make(map[string]interface{})
if awrp.RecoveryPointTimeInUTC != nil {
objectMap["recoveryPointTimeInUTC"] = awrp.RecoveryPointTimeInUTC
}
if awrp.Type != "" {
objectMap["type"] = awrp.Type
}
if awrp.ObjectType != "" {
objectMap["objectType"] = awrp.ObjectType
}
return json.Marshal(objectMap)
}
// AsAzureFileShareRecoveryPoint is the BasicRecoveryPoint implementation for AzureWorkloadRecoveryPoint.
func (awrp AzureWorkloadRecoveryPoint) AsAzureFileShareRecoveryPoint() (*AzureFileShareRecoveryPoint, bool) {
return nil, false
}
// AsAzureWorkloadRecoveryPoint is the BasicRecoveryPoint implementation for AzureWorkloadRecoveryPoint.
func (awrp AzureWorkloadRecoveryPoint) AsAzureWorkloadRecoveryPoint() (*AzureWorkloadRecoveryPoint, bool) {
return &awrp, true
}
// AsBasicAzureWorkloadRecoveryPoint is the BasicRecoveryPoint implementation for AzureWorkloadRecoveryPoint.
func (awrp AzureWorkloadRecoveryPoint) AsBasicAzureWorkloadRecoveryPoint() (BasicAzureWorkloadRecoveryPoint, bool) {
return &awrp, true
}
// AsAzureWorkloadSQLPointInTimeRecoveryPoint is the BasicRecoveryPoint implementation for AzureWorkloadRecoveryPoint.
func (awrp AzureWorkloadRecoveryPoint) AsAzureWorkloadSQLPointInTimeRecoveryPoint() (*AzureWorkloadSQLPointInTimeRecoveryPoint, bool) {
return nil, false
}
// AsAzureWorkloadSQLRecoveryPoint is the BasicRecoveryPoint implementation for AzureWorkloadRecoveryPoint.
func (awrp AzureWorkloadRecoveryPoint) AsAzureWorkloadSQLRecoveryPoint() (*AzureWorkloadSQLRecoveryPoint, bool) {
return nil, false
}
// AsBasicAzureWorkloadSQLRecoveryPoint is the BasicRecoveryPoint implementation for AzureWorkloadRecoveryPoint.
func (awrp AzureWorkloadRecoveryPoint) AsBasicAzureWorkloadSQLRecoveryPoint() (BasicAzureWorkloadSQLRecoveryPoint, bool) {
return nil, false
}
// AsGenericRecoveryPoint is the BasicRecoveryPoint implementation for AzureWorkloadRecoveryPoint.
func (awrp AzureWorkloadRecoveryPoint) AsGenericRecoveryPoint() (*GenericRecoveryPoint, bool) {
return nil, false
}
// AsIaasVMRecoveryPoint is the BasicRecoveryPoint implementation for AzureWorkloadRecoveryPoint.
func (awrp AzureWorkloadRecoveryPoint) AsIaasVMRecoveryPoint() (*IaasVMRecoveryPoint, bool) {
return nil, false
}
// AsRecoveryPoint is the BasicRecoveryPoint implementation for AzureWorkloadRecoveryPoint.
func (awrp AzureWorkloadRecoveryPoint) AsRecoveryPoint() (*RecoveryPoint, bool) {
return nil, false
}
// AsBasicRecoveryPoint is the BasicRecoveryPoint implementation for AzureWorkloadRecoveryPoint.
func (awrp AzureWorkloadRecoveryPoint) AsBasicRecoveryPoint() (BasicRecoveryPoint, bool) {
return &awrp, true
}
// BasicAzureWorkloadRestoreRequest azureWorkload-specific restore.
type BasicAzureWorkloadRestoreRequest interface {
AsAzureWorkloadSQLPointInTimeRestoreRequest() (*AzureWorkloadSQLPointInTimeRestoreRequest, bool)
AsAzureWorkloadSQLRestoreRequest() (*AzureWorkloadSQLRestoreRequest, bool)
AsBasicAzureWorkloadSQLRestoreRequest() (BasicAzureWorkloadSQLRestoreRequest, bool)
AsAzureWorkloadRestoreRequest() (*AzureWorkloadRestoreRequest, bool)
}
// AzureWorkloadRestoreRequest azureWorkload-specific restore.
type AzureWorkloadRestoreRequest struct {
// RecoveryType - OLR/ALR, RestoreDisks is invalid option. Possible values include: 'RecoveryTypeInvalid', 'RecoveryTypeOriginalLocation', 'RecoveryTypeAlternateLocation', 'RecoveryTypeRestoreDisks'
RecoveryType RecoveryType `json:"recoveryType,omitempty"`
// SourceResourceID - Fully qualified ARM ID of the VM on which workload that was running is being recovered.
SourceResourceID *string `json:"sourceResourceId,omitempty"`
// PropertyBag - Workload specific property bag.
PropertyBag map[string]*string `json:"propertyBag"`
// ObjectType - Possible values include: 'ObjectTypeRestoreRequest', 'ObjectTypeAzureFileShareRestoreRequest', 'ObjectTypeAzureWorkloadRestoreRequest', 'ObjectTypeAzureWorkloadSQLPointInTimeRestoreRequest', 'ObjectTypeAzureWorkloadSQLRestoreRequest', 'ObjectTypeIaasVMRestoreRequest'
ObjectType ObjectTypeBasicRestoreRequest `json:"objectType,omitempty"`
}
func unmarshalBasicAzureWorkloadRestoreRequest(body []byte) (BasicAzureWorkloadRestoreRequest, error) {
var m map[string]interface{}
err := json.Unmarshal(body, &m)
if err != nil {
return nil, err
}
switch m["objectType"] {
case string(ObjectTypeAzureWorkloadSQLPointInTimeRestoreRequest):
var awspitrr AzureWorkloadSQLPointInTimeRestoreRequest
err := json.Unmarshal(body, &awspitrr)
return awspitrr, err
case string(ObjectTypeAzureWorkloadSQLRestoreRequest):
var awsrr AzureWorkloadSQLRestoreRequest
err := json.Unmarshal(body, &awsrr)
return awsrr, err
default:
var awrr AzureWorkloadRestoreRequest
err := json.Unmarshal(body, &awrr)
return awrr, err
}
}
func unmarshalBasicAzureWorkloadRestoreRequestArray(body []byte) ([]BasicAzureWorkloadRestoreRequest, error) {
var rawMessages []*json.RawMessage
err := json.Unmarshal(body, &rawMessages)
if err != nil {
return nil, err
}
awrrArray := make([]BasicAzureWorkloadRestoreRequest, len(rawMessages))
for index, rawMessage := range rawMessages {
awrr, err := unmarshalBasicAzureWorkloadRestoreRequest(*rawMessage)
if err != nil {
return nil, err
}
awrrArray[index] = awrr
}
return awrrArray, nil
}
// MarshalJSON is the custom marshaler for AzureWorkloadRestoreRequest.
func (awrr AzureWorkloadRestoreRequest) MarshalJSON() ([]byte, error) {
awrr.ObjectType = ObjectTypeAzureWorkloadRestoreRequest
objectMap := make(map[string]interface{})
if awrr.RecoveryType != "" {
objectMap["recoveryType"] = awrr.RecoveryType
}
if awrr.SourceResourceID != nil {
objectMap["sourceResourceId"] = awrr.SourceResourceID
}
if awrr.PropertyBag != nil {
objectMap["propertyBag"] = awrr.PropertyBag
}
if awrr.ObjectType != "" {
objectMap["objectType"] = awrr.ObjectType
}
return json.Marshal(objectMap)
}
// AsAzureFileShareRestoreRequest is the BasicRestoreRequest implementation for AzureWorkloadRestoreRequest.
func (awrr AzureWorkloadRestoreRequest) AsAzureFileShareRestoreRequest() (*AzureFileShareRestoreRequest, bool) {
return nil, false
}
// AsAzureWorkloadRestoreRequest is the BasicRestoreRequest implementation for AzureWorkloadRestoreRequest.
func (awrr AzureWorkloadRestoreRequest) AsAzureWorkloadRestoreRequest() (*AzureWorkloadRestoreRequest, bool) {
return &awrr, true
}
// AsBasicAzureWorkloadRestoreRequest is the BasicRestoreRequest implementation for AzureWorkloadRestoreRequest.
func (awrr AzureWorkloadRestoreRequest) AsBasicAzureWorkloadRestoreRequest() (BasicAzureWorkloadRestoreRequest, bool) {
return &awrr, true
}
// AsAzureWorkloadSQLPointInTimeRestoreRequest is the BasicRestoreRequest implementation for AzureWorkloadRestoreRequest.
func (awrr AzureWorkloadRestoreRequest) AsAzureWorkloadSQLPointInTimeRestoreRequest() (*AzureWorkloadSQLPointInTimeRestoreRequest, bool) {
return nil, false
}
// AsAzureWorkloadSQLRestoreRequest is the BasicRestoreRequest implementation for AzureWorkloadRestoreRequest.
func (awrr AzureWorkloadRestoreRequest) AsAzureWorkloadSQLRestoreRequest() (*AzureWorkloadSQLRestoreRequest, bool) {
return nil, false
}
// AsBasicAzureWorkloadSQLRestoreRequest is the BasicRestoreRequest implementation for AzureWorkloadRestoreRequest.
func (awrr AzureWorkloadRestoreRequest) AsBasicAzureWorkloadSQLRestoreRequest() (BasicAzureWorkloadSQLRestoreRequest, bool) {
return nil, false
}
// AsIaasVMRestoreRequest is the BasicRestoreRequest implementation for AzureWorkloadRestoreRequest.
func (awrr AzureWorkloadRestoreRequest) AsIaasVMRestoreRequest() (*IaasVMRestoreRequest, bool) {
return nil, false
}
// AsRestoreRequest is the BasicRestoreRequest implementation for AzureWorkloadRestoreRequest.
func (awrr AzureWorkloadRestoreRequest) AsRestoreRequest() (*RestoreRequest, bool) {
return nil, false
}
// AsBasicRestoreRequest is the BasicRestoreRequest implementation for AzureWorkloadRestoreRequest.
func (awrr AzureWorkloadRestoreRequest) AsBasicRestoreRequest() (BasicRestoreRequest, bool) {
return &awrr, true
}
// AzureWorkloadSQLPointInTimeRecoveryPoint recovery point specific to PointInTime
type AzureWorkloadSQLPointInTimeRecoveryPoint struct {
// TimeRanges - List of log ranges
TimeRanges *[]PointInTimeRange `json:"timeRanges,omitempty"`
// ExtendedInfo - Extended Info that provides data directory details. Will be populated in two cases:
// When a specific recovery point is accessed using GetRecoveryPoint
// Or when ListRecoveryPoints is called for Log RP only with ExtendedInfo query filter
ExtendedInfo *AzureWorkloadSQLRecoveryPointExtendedInfo `json:"extendedInfo,omitempty"`
// RecoveryPointTimeInUTC - UTC time at which recoverypoint was created
RecoveryPointTimeInUTC *date.Time `json:"recoveryPointTimeInUTC,omitempty"`
// Type - Type of restore point. Possible values include: 'RestorePointTypeInvalid', 'RestorePointTypeFull', 'RestorePointTypeLog', 'RestorePointTypeDifferential'
Type RestorePointType `json:"type,omitempty"`
// ObjectType - Possible values include: 'ObjectTypeRecoveryPoint', 'ObjectTypeAzureFileShareRecoveryPoint', 'ObjectTypeAzureWorkloadRecoveryPoint', 'ObjectTypeAzureWorkloadSQLPointInTimeRecoveryPoint', 'ObjectTypeAzureWorkloadSQLRecoveryPoint', 'ObjectTypeGenericRecoveryPoint', 'ObjectTypeIaasVMRecoveryPoint'
ObjectType ObjectTypeBasicRecoveryPoint `json:"objectType,omitempty"`
}
// MarshalJSON is the custom marshaler for AzureWorkloadSQLPointInTimeRecoveryPoint.
func (awspitrp AzureWorkloadSQLPointInTimeRecoveryPoint) MarshalJSON() ([]byte, error) {
awspitrp.ObjectType = ObjectTypeAzureWorkloadSQLPointInTimeRecoveryPoint
objectMap := make(map[string]interface{})
if awspitrp.TimeRanges != nil {
objectMap["timeRanges"] = awspitrp.TimeRanges
}
if awspitrp.ExtendedInfo != nil {
objectMap["extendedInfo"] = awspitrp.ExtendedInfo
}
if awspitrp.RecoveryPointTimeInUTC != nil {
objectMap["recoveryPointTimeInUTC"] = awspitrp.RecoveryPointTimeInUTC
}
if awspitrp.Type != "" {
objectMap["type"] = awspitrp.Type
}
if awspitrp.ObjectType != "" {
objectMap["objectType"] = awspitrp.ObjectType
}
return json.Marshal(objectMap)
}
// AsAzureFileShareRecoveryPoint is the BasicRecoveryPoint implementation for AzureWorkloadSQLPointInTimeRecoveryPoint.
func (awspitrp AzureWorkloadSQLPointInTimeRecoveryPoint) AsAzureFileShareRecoveryPoint() (*AzureFileShareRecoveryPoint, bool) {
return nil, false
}
// AsAzureWorkloadRecoveryPoint is the BasicRecoveryPoint implementation for AzureWorkloadSQLPointInTimeRecoveryPoint.
func (awspitrp AzureWorkloadSQLPointInTimeRecoveryPoint) AsAzureWorkloadRecoveryPoint() (*AzureWorkloadRecoveryPoint, bool) {
return nil, false
}
// AsBasicAzureWorkloadRecoveryPoint is the BasicRecoveryPoint implementation for AzureWorkloadSQLPointInTimeRecoveryPoint.
func (awspitrp AzureWorkloadSQLPointInTimeRecoveryPoint) AsBasicAzureWorkloadRecoveryPoint() (BasicAzureWorkloadRecoveryPoint, bool) {
return &awspitrp, true
}
// AsAzureWorkloadSQLPointInTimeRecoveryPoint is the BasicRecoveryPoint implementation for AzureWorkloadSQLPointInTimeRecoveryPoint.
func (awspitrp AzureWorkloadSQLPointInTimeRecoveryPoint) AsAzureWorkloadSQLPointInTimeRecoveryPoint() (*AzureWorkloadSQLPointInTimeRecoveryPoint, bool) {
return &awspitrp, true
}
// AsAzureWorkloadSQLRecoveryPoint is the BasicRecoveryPoint implementation for AzureWorkloadSQLPointInTimeRecoveryPoint.
func (awspitrp AzureWorkloadSQLPointInTimeRecoveryPoint) AsAzureWorkloadSQLRecoveryPoint() (*AzureWorkloadSQLRecoveryPoint, bool) {
return nil, false
}
// AsBasicAzureWorkloadSQLRecoveryPoint is the BasicRecoveryPoint implementation for AzureWorkloadSQLPointInTimeRecoveryPoint.
func (awspitrp AzureWorkloadSQLPointInTimeRecoveryPoint) AsBasicAzureWorkloadSQLRecoveryPoint() (BasicAzureWorkloadSQLRecoveryPoint, bool) {
return &awspitrp, true
}
// AsGenericRecoveryPoint is the BasicRecoveryPoint implementation for AzureWorkloadSQLPointInTimeRecoveryPoint.
func (awspitrp AzureWorkloadSQLPointInTimeRecoveryPoint) AsGenericRecoveryPoint() (*GenericRecoveryPoint, bool) {
return nil, false
}
// AsIaasVMRecoveryPoint is the BasicRecoveryPoint implementation for AzureWorkloadSQLPointInTimeRecoveryPoint.
func (awspitrp AzureWorkloadSQLPointInTimeRecoveryPoint) AsIaasVMRecoveryPoint() (*IaasVMRecoveryPoint, bool) {
return nil, false
}
// AsRecoveryPoint is the BasicRecoveryPoint implementation for AzureWorkloadSQLPointInTimeRecoveryPoint.
func (awspitrp AzureWorkloadSQLPointInTimeRecoveryPoint) AsRecoveryPoint() (*RecoveryPoint, bool) {
return nil, false
}
// AsBasicRecoveryPoint is the BasicRecoveryPoint implementation for AzureWorkloadSQLPointInTimeRecoveryPoint.
func (awspitrp AzureWorkloadSQLPointInTimeRecoveryPoint) AsBasicRecoveryPoint() (BasicRecoveryPoint, bool) {
return &awspitrp, true
}
// AzureWorkloadSQLPointInTimeRestoreRequest azureWorkload SQL -specific restore. Specifically for PointInTime/Log
// restore
type AzureWorkloadSQLPointInTimeRestoreRequest struct {
// PointInTime - PointInTime value
PointInTime *date.Time `json:"pointInTime,omitempty"`
// ShouldUseAlternateTargetLocation - Default option set to true. If this is set to false, alternate data directory must be provided
ShouldUseAlternateTargetLocation *bool `json:"shouldUseAlternateTargetLocation,omitempty"`
// IsNonRecoverable - SQL specific property where user can chose to set no-recovery when restore operation is tried
IsNonRecoverable *bool `json:"isNonRecoverable,omitempty"`
// TargetInfo - Details of target database
TargetInfo *TargetRestoreInfo `json:"targetInfo,omitempty"`
// AlternateDirectoryPaths - Data directory details
AlternateDirectoryPaths *[]SQLDataDirectoryMapping `json:"alternateDirectoryPaths,omitempty"`
// RecoveryType - OLR/ALR, RestoreDisks is invalid option. Possible values include: 'RecoveryTypeInvalid', 'RecoveryTypeOriginalLocation', 'RecoveryTypeAlternateLocation', 'RecoveryTypeRestoreDisks'
RecoveryType RecoveryType `json:"recoveryType,omitempty"`
// SourceResourceID - Fully qualified ARM ID of the VM on which workload that was running is being recovered.
SourceResourceID *string `json:"sourceResourceId,omitempty"`
// PropertyBag - Workload specific property bag.
PropertyBag map[string]*string `json:"propertyBag"`
// ObjectType - Possible values include: 'ObjectTypeRestoreRequest', 'ObjectTypeAzureFileShareRestoreRequest', 'ObjectTypeAzureWorkloadRestoreRequest', 'ObjectTypeAzureWorkloadSQLPointInTimeRestoreRequest', 'ObjectTypeAzureWorkloadSQLRestoreRequest', 'ObjectTypeIaasVMRestoreRequest'
ObjectType ObjectTypeBasicRestoreRequest `json:"objectType,omitempty"`
}
// MarshalJSON is the custom marshaler for AzureWorkloadSQLPointInTimeRestoreRequest.
func (awspitrr AzureWorkloadSQLPointInTimeRestoreRequest) MarshalJSON() ([]byte, error) {
awspitrr.ObjectType = ObjectTypeAzureWorkloadSQLPointInTimeRestoreRequest
objectMap := make(map[string]interface{})
if awspitrr.PointInTime != nil {
objectMap["pointInTime"] = awspitrr.PointInTime
}
if awspitrr.ShouldUseAlternateTargetLocation != nil {
objectMap["shouldUseAlternateTargetLocation"] = awspitrr.ShouldUseAlternateTargetLocation
}
if awspitrr.IsNonRecoverable != nil {
objectMap["isNonRecoverable"] = awspitrr.IsNonRecoverable
}
if awspitrr.TargetInfo != nil {
objectMap["targetInfo"] = awspitrr.TargetInfo
}
if awspitrr.AlternateDirectoryPaths != nil {
objectMap["alternateDirectoryPaths"] = awspitrr.AlternateDirectoryPaths
}
if awspitrr.RecoveryType != "" {
objectMap["recoveryType"] = awspitrr.RecoveryType
}
if awspitrr.SourceResourceID != nil {
objectMap["sourceResourceId"] = awspitrr.SourceResourceID
}
if awspitrr.PropertyBag != nil {
objectMap["propertyBag"] = awspitrr.PropertyBag
}
if awspitrr.ObjectType != "" {
objectMap["objectType"] = awspitrr.ObjectType
}
return json.Marshal(objectMap)
}
// AsAzureFileShareRestoreRequest is the BasicRestoreRequest implementation for AzureWorkloadSQLPointInTimeRestoreRequest.
func (awspitrr AzureWorkloadSQLPointInTimeRestoreRequest) AsAzureFileShareRestoreRequest() (*AzureFileShareRestoreRequest, bool) {
return nil, false
}
// AsAzureWorkloadRestoreRequest is the BasicRestoreRequest implementation for AzureWorkloadSQLPointInTimeRestoreRequest.
func (awspitrr AzureWorkloadSQLPointInTimeRestoreRequest) AsAzureWorkloadRestoreRequest() (*AzureWorkloadRestoreRequest, bool) {
return nil, false
}
// AsBasicAzureWorkloadRestoreRequest is the BasicRestoreRequest implementation for AzureWorkloadSQLPointInTimeRestoreRequest.
func (awspitrr AzureWorkloadSQLPointInTimeRestoreRequest) AsBasicAzureWorkloadRestoreRequest() (BasicAzureWorkloadRestoreRequest, bool) {
return &awspitrr, true
}
// AsAzureWorkloadSQLPointInTimeRestoreRequest is the BasicRestoreRequest implementation for AzureWorkloadSQLPointInTimeRestoreRequest.
func (awspitrr AzureWorkloadSQLPointInTimeRestoreRequest) AsAzureWorkloadSQLPointInTimeRestoreRequest() (*AzureWorkloadSQLPointInTimeRestoreRequest, bool) {
return &awspitrr, true
}
// AsAzureWorkloadSQLRestoreRequest is the BasicRestoreRequest implementation for AzureWorkloadSQLPointInTimeRestoreRequest.
func (awspitrr AzureWorkloadSQLPointInTimeRestoreRequest) AsAzureWorkloadSQLRestoreRequest() (*AzureWorkloadSQLRestoreRequest, bool) {
return nil, false
}
// AsBasicAzureWorkloadSQLRestoreRequest is the BasicRestoreRequest implementation for AzureWorkloadSQLPointInTimeRestoreRequest.
func (awspitrr AzureWorkloadSQLPointInTimeRestoreRequest) AsBasicAzureWorkloadSQLRestoreRequest() (BasicAzureWorkloadSQLRestoreRequest, bool) {
return &awspitrr, true
}
// AsIaasVMRestoreRequest is the BasicRestoreRequest implementation for AzureWorkloadSQLPointInTimeRestoreRequest.
func (awspitrr AzureWorkloadSQLPointInTimeRestoreRequest) AsIaasVMRestoreRequest() (*IaasVMRestoreRequest, bool) {
return nil, false
}
// AsRestoreRequest is the BasicRestoreRequest implementation for AzureWorkloadSQLPointInTimeRestoreRequest.
func (awspitrr AzureWorkloadSQLPointInTimeRestoreRequest) AsRestoreRequest() (*RestoreRequest, bool) {
return nil, false
}
// AsBasicRestoreRequest is the BasicRestoreRequest implementation for AzureWorkloadSQLPointInTimeRestoreRequest.
func (awspitrr AzureWorkloadSQLPointInTimeRestoreRequest) AsBasicRestoreRequest() (BasicRestoreRequest, bool) {
return &awspitrr, true
}
// BasicAzureWorkloadSQLRecoveryPoint SQL specific recoverypoint, specifcally encaspulates full/diff recoverypoint
// alongwith extended info
type BasicAzureWorkloadSQLRecoveryPoint interface {
AsAzureWorkloadSQLPointInTimeRecoveryPoint() (*AzureWorkloadSQLPointInTimeRecoveryPoint, bool)
AsAzureWorkloadSQLRecoveryPoint() (*AzureWorkloadSQLRecoveryPoint, bool)
}
// AzureWorkloadSQLRecoveryPoint SQL specific recoverypoint, specifcally encaspulates full/diff recoverypoint
// alongwith extended info
type AzureWorkloadSQLRecoveryPoint struct {
// ExtendedInfo - Extended Info that provides data directory details. Will be populated in two cases:
// When a specific recovery point is accessed using GetRecoveryPoint
// Or when ListRecoveryPoints is called for Log RP only with ExtendedInfo query filter
ExtendedInfo *AzureWorkloadSQLRecoveryPointExtendedInfo `json:"extendedInfo,omitempty"`
// RecoveryPointTimeInUTC - UTC time at which recoverypoint was created
RecoveryPointTimeInUTC *date.Time `json:"recoveryPointTimeInUTC,omitempty"`
// Type - Type of restore point. Possible values include: 'RestorePointTypeInvalid', 'RestorePointTypeFull', 'RestorePointTypeLog', 'RestorePointTypeDifferential'
Type RestorePointType `json:"type,omitempty"`
// ObjectType - Possible values include: 'ObjectTypeRecoveryPoint', 'ObjectTypeAzureFileShareRecoveryPoint', 'ObjectTypeAzureWorkloadRecoveryPoint', 'ObjectTypeAzureWorkloadSQLPointInTimeRecoveryPoint', 'ObjectTypeAzureWorkloadSQLRecoveryPoint', 'ObjectTypeGenericRecoveryPoint', 'ObjectTypeIaasVMRecoveryPoint'
ObjectType ObjectTypeBasicRecoveryPoint `json:"objectType,omitempty"`
}
func unmarshalBasicAzureWorkloadSQLRecoveryPoint(body []byte) (BasicAzureWorkloadSQLRecoveryPoint, error) {
var m map[string]interface{}
err := json.Unmarshal(body, &m)
if err != nil {
return nil, err
}
switch m["objectType"] {
case string(ObjectTypeAzureWorkloadSQLPointInTimeRecoveryPoint):
var awspitrp AzureWorkloadSQLPointInTimeRecoveryPoint
err := json.Unmarshal(body, &awspitrp)
return awspitrp, err
default:
var awsrp AzureWorkloadSQLRecoveryPoint
err := json.Unmarshal(body, &awsrp)
return awsrp, err
}
}
func unmarshalBasicAzureWorkloadSQLRecoveryPointArray(body []byte) ([]BasicAzureWorkloadSQLRecoveryPoint, error) {
var rawMessages []*json.RawMessage
err := json.Unmarshal(body, &rawMessages)
if err != nil {
return nil, err
}
awsrpArray := make([]BasicAzureWorkloadSQLRecoveryPoint, len(rawMessages))
for index, rawMessage := range rawMessages {
awsrp, err := unmarshalBasicAzureWorkloadSQLRecoveryPoint(*rawMessage)
if err != nil {
return nil, err
}
awsrpArray[index] = awsrp
}
return awsrpArray, nil
}
// MarshalJSON is the custom marshaler for AzureWorkloadSQLRecoveryPoint.
func (awsrp AzureWorkloadSQLRecoveryPoint) MarshalJSON() ([]byte, error) {
awsrp.ObjectType = ObjectTypeAzureWorkloadSQLRecoveryPoint
objectMap := make(map[string]interface{})
if awsrp.ExtendedInfo != nil {
objectMap["extendedInfo"] = awsrp.ExtendedInfo
}
if awsrp.RecoveryPointTimeInUTC != nil {
objectMap["recoveryPointTimeInUTC"] = awsrp.RecoveryPointTimeInUTC
}
if awsrp.Type != "" {
objectMap["type"] = awsrp.Type
}
if awsrp.ObjectType != "" {
objectMap["objectType"] = awsrp.ObjectType
}
return json.Marshal(objectMap)
}
// AsAzureFileShareRecoveryPoint is the BasicRecoveryPoint implementation for AzureWorkloadSQLRecoveryPoint.
func (awsrp AzureWorkloadSQLRecoveryPoint) AsAzureFileShareRecoveryPoint() (*AzureFileShareRecoveryPoint, bool) {
return nil, false
}
// AsAzureWorkloadRecoveryPoint is the BasicRecoveryPoint implementation for AzureWorkloadSQLRecoveryPoint.
func (awsrp AzureWorkloadSQLRecoveryPoint) AsAzureWorkloadRecoveryPoint() (*AzureWorkloadRecoveryPoint, bool) {
return nil, false
}
// AsBasicAzureWorkloadRecoveryPoint is the BasicRecoveryPoint implementation for AzureWorkloadSQLRecoveryPoint.
func (awsrp AzureWorkloadSQLRecoveryPoint) AsBasicAzureWorkloadRecoveryPoint() (BasicAzureWorkloadRecoveryPoint, bool) {
return &awsrp, true
}
// AsAzureWorkloadSQLPointInTimeRecoveryPoint is the BasicRecoveryPoint implementation for AzureWorkloadSQLRecoveryPoint.
func (awsrp AzureWorkloadSQLRecoveryPoint) AsAzureWorkloadSQLPointInTimeRecoveryPoint() (*AzureWorkloadSQLPointInTimeRecoveryPoint, bool) {
return nil, false
}
// AsAzureWorkloadSQLRecoveryPoint is the BasicRecoveryPoint implementation for AzureWorkloadSQLRecoveryPoint.
func (awsrp AzureWorkloadSQLRecoveryPoint) AsAzureWorkloadSQLRecoveryPoint() (*AzureWorkloadSQLRecoveryPoint, bool) {
return &awsrp, true
}
// AsBasicAzureWorkloadSQLRecoveryPoint is the BasicRecoveryPoint implementation for AzureWorkloadSQLRecoveryPoint.
func (awsrp AzureWorkloadSQLRecoveryPoint) AsBasicAzureWorkloadSQLRecoveryPoint() (BasicAzureWorkloadSQLRecoveryPoint, bool) {
return &awsrp, true
}
// AsGenericRecoveryPoint is the BasicRecoveryPoint implementation for AzureWorkloadSQLRecoveryPoint.
func (awsrp AzureWorkloadSQLRecoveryPoint) AsGenericRecoveryPoint() (*GenericRecoveryPoint, bool) {
return nil, false
}
// AsIaasVMRecoveryPoint is the BasicRecoveryPoint implementation for AzureWorkloadSQLRecoveryPoint.
func (awsrp AzureWorkloadSQLRecoveryPoint) AsIaasVMRecoveryPoint() (*IaasVMRecoveryPoint, bool) {
return nil, false
}
// AsRecoveryPoint is the BasicRecoveryPoint implementation for AzureWorkloadSQLRecoveryPoint.
func (awsrp AzureWorkloadSQLRecoveryPoint) AsRecoveryPoint() (*RecoveryPoint, bool) {
return nil, false
}
// AsBasicRecoveryPoint is the BasicRecoveryPoint implementation for AzureWorkloadSQLRecoveryPoint.
func (awsrp AzureWorkloadSQLRecoveryPoint) AsBasicRecoveryPoint() (BasicRecoveryPoint, bool) {
return &awsrp, true
}
// AzureWorkloadSQLRecoveryPointExtendedInfo extended info class details
type AzureWorkloadSQLRecoveryPointExtendedInfo struct {
// DataDirectoryTimeInUTC - UTC time at which data directory info was captured
DataDirectoryTimeInUTC *date.Time `json:"dataDirectoryTimeInUTC,omitempty"`
// DataDirectoryPaths - List of data directory paths during restore operation.
DataDirectoryPaths *[]SQLDataDirectory `json:"dataDirectoryPaths,omitempty"`
}
// BasicAzureWorkloadSQLRestoreRequest azureWorkload SQL -specific restore. Specifically for full/diff restore
type BasicAzureWorkloadSQLRestoreRequest interface {
AsAzureWorkloadSQLPointInTimeRestoreRequest() (*AzureWorkloadSQLPointInTimeRestoreRequest, bool)
AsAzureWorkloadSQLRestoreRequest() (*AzureWorkloadSQLRestoreRequest, bool)
}
// AzureWorkloadSQLRestoreRequest azureWorkload SQL -specific restore. Specifically for full/diff restore
type AzureWorkloadSQLRestoreRequest struct {
// ShouldUseAlternateTargetLocation - Default option set to true. If this is set to false, alternate data directory must be provided
ShouldUseAlternateTargetLocation *bool `json:"shouldUseAlternateTargetLocation,omitempty"`
// IsNonRecoverable - SQL specific property where user can chose to set no-recovery when restore operation is tried
IsNonRecoverable *bool `json:"isNonRecoverable,omitempty"`
// TargetInfo - Details of target database
TargetInfo *TargetRestoreInfo `json:"targetInfo,omitempty"`
// AlternateDirectoryPaths - Data directory details
AlternateDirectoryPaths *[]SQLDataDirectoryMapping `json:"alternateDirectoryPaths,omitempty"`
// RecoveryType - OLR/ALR, RestoreDisks is invalid option. Possible values include: 'RecoveryTypeInvalid', 'RecoveryTypeOriginalLocation', 'RecoveryTypeAlternateLocation', 'RecoveryTypeRestoreDisks'
RecoveryType RecoveryType `json:"recoveryType,omitempty"`
// SourceResourceID - Fully qualified ARM ID of the VM on which workload that was running is being recovered.
SourceResourceID *string `json:"sourceResourceId,omitempty"`
// PropertyBag - Workload specific property bag.
PropertyBag map[string]*string `json:"propertyBag"`
// ObjectType - Possible values include: 'ObjectTypeRestoreRequest', 'ObjectTypeAzureFileShareRestoreRequest', 'ObjectTypeAzureWorkloadRestoreRequest', 'ObjectTypeAzureWorkloadSQLPointInTimeRestoreRequest', 'ObjectTypeAzureWorkloadSQLRestoreRequest', 'ObjectTypeIaasVMRestoreRequest'
ObjectType ObjectTypeBasicRestoreRequest `json:"objectType,omitempty"`
}
func unmarshalBasicAzureWorkloadSQLRestoreRequest(body []byte) (BasicAzureWorkloadSQLRestoreRequest, error) {
var m map[string]interface{}
err := json.Unmarshal(body, &m)
if err != nil {
return nil, err
}
switch m["objectType"] {
case string(ObjectTypeAzureWorkloadSQLPointInTimeRestoreRequest):
var awspitrr AzureWorkloadSQLPointInTimeRestoreRequest
err := json.Unmarshal(body, &awspitrr)
return awspitrr, err
default:
var awsrr AzureWorkloadSQLRestoreRequest
err := json.Unmarshal(body, &awsrr)
return awsrr, err
}
}
func unmarshalBasicAzureWorkloadSQLRestoreRequestArray(body []byte) ([]BasicAzureWorkloadSQLRestoreRequest, error) {
var rawMessages []*json.RawMessage
err := json.Unmarshal(body, &rawMessages)
if err != nil {
return nil, err
}
awsrrArray := make([]BasicAzureWorkloadSQLRestoreRequest, len(rawMessages))
for index, rawMessage := range rawMessages {
awsrr, err := unmarshalBasicAzureWorkloadSQLRestoreRequest(*rawMessage)
if err != nil {
return nil, err
}
awsrrArray[index] = awsrr
}
return awsrrArray, nil
}
// MarshalJSON is the custom marshaler for AzureWorkloadSQLRestoreRequest.
func (awsrr AzureWorkloadSQLRestoreRequest) MarshalJSON() ([]byte, error) {
awsrr.ObjectType = ObjectTypeAzureWorkloadSQLRestoreRequest
objectMap := make(map[string]interface{})
if awsrr.ShouldUseAlternateTargetLocation != nil {
objectMap["shouldUseAlternateTargetLocation"] = awsrr.ShouldUseAlternateTargetLocation
}
if awsrr.IsNonRecoverable != nil {
objectMap["isNonRecoverable"] = awsrr.IsNonRecoverable
}
if awsrr.TargetInfo != nil {
objectMap["targetInfo"] = awsrr.TargetInfo
}
if awsrr.AlternateDirectoryPaths != nil {
objectMap["alternateDirectoryPaths"] = awsrr.AlternateDirectoryPaths
}
if awsrr.RecoveryType != "" {
objectMap["recoveryType"] = awsrr.RecoveryType
}
if awsrr.SourceResourceID != nil {
objectMap["sourceResourceId"] = awsrr.SourceResourceID
}
if awsrr.PropertyBag != nil {
objectMap["propertyBag"] = awsrr.PropertyBag
}
if awsrr.ObjectType != "" {
objectMap["objectType"] = awsrr.ObjectType
}
return json.Marshal(objectMap)
}
// AsAzureFileShareRestoreRequest is the BasicRestoreRequest implementation for AzureWorkloadSQLRestoreRequest.
func (awsrr AzureWorkloadSQLRestoreRequest) AsAzureFileShareRestoreRequest() (*AzureFileShareRestoreRequest, bool) {
return nil, false
}
// AsAzureWorkloadRestoreRequest is the BasicRestoreRequest implementation for AzureWorkloadSQLRestoreRequest.
func (awsrr AzureWorkloadSQLRestoreRequest) AsAzureWorkloadRestoreRequest() (*AzureWorkloadRestoreRequest, bool) {
return nil, false
}
// AsBasicAzureWorkloadRestoreRequest is the BasicRestoreRequest implementation for AzureWorkloadSQLRestoreRequest.
func (awsrr AzureWorkloadSQLRestoreRequest) AsBasicAzureWorkloadRestoreRequest() (BasicAzureWorkloadRestoreRequest, bool) {
return &awsrr, true
}
// AsAzureWorkloadSQLPointInTimeRestoreRequest is the BasicRestoreRequest implementation for AzureWorkloadSQLRestoreRequest.
func (awsrr AzureWorkloadSQLRestoreRequest) AsAzureWorkloadSQLPointInTimeRestoreRequest() (*AzureWorkloadSQLPointInTimeRestoreRequest, bool) {
return nil, false
}
// AsAzureWorkloadSQLRestoreRequest is the BasicRestoreRequest implementation for AzureWorkloadSQLRestoreRequest.
func (awsrr AzureWorkloadSQLRestoreRequest) AsAzureWorkloadSQLRestoreRequest() (*AzureWorkloadSQLRestoreRequest, bool) {
return &awsrr, true
}
// AsBasicAzureWorkloadSQLRestoreRequest is the BasicRestoreRequest implementation for AzureWorkloadSQLRestoreRequest.
func (awsrr AzureWorkloadSQLRestoreRequest) AsBasicAzureWorkloadSQLRestoreRequest() (BasicAzureWorkloadSQLRestoreRequest, bool) {
return &awsrr, true
}
// AsIaasVMRestoreRequest is the BasicRestoreRequest implementation for AzureWorkloadSQLRestoreRequest.
func (awsrr AzureWorkloadSQLRestoreRequest) AsIaasVMRestoreRequest() (*IaasVMRestoreRequest, bool) {
return nil, false
}
// AsRestoreRequest is the BasicRestoreRequest implementation for AzureWorkloadSQLRestoreRequest.
func (awsrr AzureWorkloadSQLRestoreRequest) AsRestoreRequest() (*RestoreRequest, bool) {
return nil, false
}
// AsBasicRestoreRequest is the BasicRestoreRequest implementation for AzureWorkloadSQLRestoreRequest.
func (awsrr AzureWorkloadSQLRestoreRequest) AsBasicRestoreRequest() (BasicRestoreRequest, bool) {
return &awsrr, true
}
// BEKDetails BEK is bitlocker encrpytion key.
type BEKDetails struct {
// SecretURL - Secret is BEK.
SecretURL *string `json:"secretUrl,omitempty"`
// SecretVaultID - ID of the Key Vault where this Secret is stored.
SecretVaultID *string `json:"secretVaultId,omitempty"`
// SecretData - BEK data.
SecretData *string `json:"secretData,omitempty"`
}
// BMSBackupEngineQueryObject query parameters to fetch list of backup engines.
type BMSBackupEngineQueryObject struct {
// Expand - attribute to add extended info
Expand *string `json:"expand,omitempty"`
}
// BMSBackupEnginesQueryObject query parameters to fetch list of backup engines.
type BMSBackupEnginesQueryObject struct {
// BackupManagementType - Backup management type for the backup engine. Possible values include: 'ManagementTypeInvalid', 'ManagementTypeAzureIaasVM', 'ManagementTypeMAB', 'ManagementTypeDPM', 'ManagementTypeAzureBackupServer', 'ManagementTypeAzureSQL', 'ManagementTypeAzureStorage', 'ManagementTypeAzureWorkload', 'ManagementTypeDefaultBackup'
BackupManagementType ManagementType `json:"backupManagementType,omitempty"`
// FriendlyName - Friendly name of the backup engine.
FriendlyName *string `json:"friendlyName,omitempty"`
// Expand - Attribute to add extended info.
Expand *string `json:"expand,omitempty"`
}
// BMSBackupSummariesQueryObject query parameters to fetch backup summaries.
type BMSBackupSummariesQueryObject struct {
// Type - Backup management type for this container. Possible values include: 'TypeInvalid', 'TypeBackupProtectedItemCountSummary', 'TypeBackupProtectionContainerCountSummary'
Type Type `json:"type,omitempty"`
}
// BMSContainerQueryObject the query filters that can be used with the list containers API.
type BMSContainerQueryObject struct {
// BackupManagementType - Backup management type for this container. Possible values include: 'ManagementTypeInvalid', 'ManagementTypeAzureIaasVM', 'ManagementTypeMAB', 'ManagementTypeDPM', 'ManagementTypeAzureBackupServer', 'ManagementTypeAzureSQL', 'ManagementTypeAzureStorage', 'ManagementTypeAzureWorkload', 'ManagementTypeDefaultBackup'
BackupManagementType ManagementType `json:"backupManagementType,omitempty"`
// ContainerType - Type of container for filter. Possible values include: 'ContainerTypeInvalid', 'ContainerTypeUnknown', 'ContainerTypeIaasVMContainer', 'ContainerTypeIaasVMServiceContainer', 'ContainerTypeDPMContainer', 'ContainerTypeAzureBackupServerContainer', 'ContainerTypeMABContainer', 'ContainerTypeCluster', 'ContainerTypeAzureSQLContainer', 'ContainerTypeWindows', 'ContainerTypeVCenter', 'ContainerTypeVMAppContainer', 'ContainerTypeSQLAGWorkLoadContainer', 'ContainerTypeStorageContainer', 'ContainerTypeGenericContainer'
ContainerType ContainerType `json:"containerType,omitempty"`
// BackupEngineName - Backup engine name
BackupEngineName *string `json:"backupEngineName,omitempty"`
// FabricName - Fabric name for filter
FabricName *string `json:"fabricName,omitempty"`
// Status - Status of registration of this container with the Recovery Services Vault.
Status *string `json:"status,omitempty"`
// FriendlyName - Friendly name of this container.
FriendlyName *string `json:"friendlyName,omitempty"`
}
// BMSPOQueryObject filters to list items that can be backed up.
type BMSPOQueryObject struct {
// BackupManagementType - Backup management type. Possible values include: 'ManagementTypeInvalid', 'ManagementTypeAzureIaasVM', 'ManagementTypeMAB', 'ManagementTypeDPM', 'ManagementTypeAzureBackupServer', 'ManagementTypeAzureSQL', 'ManagementTypeAzureStorage', 'ManagementTypeAzureWorkload', 'ManagementTypeDefaultBackup'
BackupManagementType ManagementType `json:"backupManagementType,omitempty"`
// WorkloadType - Workload type. Possible values include: 'WorkloadTypeInvalid', 'WorkloadTypeVM', 'WorkloadTypeFileFolder', 'WorkloadTypeAzureSQLDb', 'WorkloadTypeSQLDB', 'WorkloadTypeExchange', 'WorkloadTypeSharepoint', 'WorkloadTypeVMwareVM', 'WorkloadTypeSystemState', 'WorkloadTypeClient', 'WorkloadTypeGenericDataSource', 'WorkloadTypeSQLDataBase', 'WorkloadTypeAzureFileShare'
WorkloadType WorkloadType `json:"workloadType,omitempty"`
// ContainerName - Full name of the container whose Protectable Objects should be returned.
ContainerName *string `json:"containerName,omitempty"`
// Status - Backup status query parameter.
Status *string `json:"status,omitempty"`
// FriendlyName - Friendly name.
FriendlyName *string `json:"friendlyName,omitempty"`
}
// BMSRefreshContainersQueryObject the query filters that can be used with the list containers API.
type BMSRefreshContainersQueryObject struct {
// BackupManagementType - Backup management type for this container. Possible values include: 'ManagementTypeInvalid', 'ManagementTypeAzureIaasVM', 'ManagementTypeMAB', 'ManagementTypeDPM', 'ManagementTypeAzureBackupServer', 'ManagementTypeAzureSQL', 'ManagementTypeAzureStorage', 'ManagementTypeAzureWorkload', 'ManagementTypeDefaultBackup'
BackupManagementType ManagementType `json:"backupManagementType,omitempty"`
}
// BMSRPQueryObject filters to list backup copies.
type BMSRPQueryObject struct {
// StartDate - Backup copies created after this time.
StartDate *date.Time `json:"startDate,omitempty"`
// EndDate - Backup copies created before this time.
EndDate *date.Time `json:"endDate,omitempty"`
// RestorePointQueryType - RestorePoint type. Possible values include: 'RestorePointQueryTypeInvalid', 'RestorePointQueryTypeFull', 'RestorePointQueryTypeLog', 'RestorePointQueryTypeDifferential', 'RestorePointQueryTypeFullAndDifferential', 'RestorePointQueryTypeAll'
RestorePointQueryType RestorePointQueryType `json:"restorePointQueryType,omitempty"`
// ExtendedInfo - In Get Recovery Point, it tells whether extended information about recovery point is asked.
ExtendedInfo *bool `json:"extendedInfo,omitempty"`
}
// BMSWorkloadItemQueryObject filters to list items that can be backed up.
type BMSWorkloadItemQueryObject struct {
// BackupManagementType - Backup management type. Possible values include: 'ManagementTypeInvalid', 'ManagementTypeAzureIaasVM', 'ManagementTypeMAB', 'ManagementTypeDPM', 'ManagementTypeAzureBackupServer', 'ManagementTypeAzureSQL', 'ManagementTypeAzureStorage', 'ManagementTypeAzureWorkload', 'ManagementTypeDefaultBackup'
BackupManagementType ManagementType `json:"backupManagementType,omitempty"`
// WorkloadItemType - Workload Item type. Possible values include: 'WorkloadItemTypeInvalid', 'WorkloadItemTypeSQLInstance', 'WorkloadItemTypeSQLDataBase'
WorkloadItemType WorkloadItemType `json:"workloadItemType,omitempty"`
// WorkloadType - Workload type. Possible values include: 'WorkloadTypeInvalid', 'WorkloadTypeVM', 'WorkloadTypeFileFolder', 'WorkloadTypeAzureSQLDb', 'WorkloadTypeSQLDB', 'WorkloadTypeExchange', 'WorkloadTypeSharepoint', 'WorkloadTypeVMwareVM', 'WorkloadTypeSystemState', 'WorkloadTypeClient', 'WorkloadTypeGenericDataSource', 'WorkloadTypeSQLDataBase', 'WorkloadTypeAzureFileShare'
WorkloadType WorkloadType `json:"workloadType,omitempty"`
// ProtectionStatus - Backup status query parameter. Possible values include: 'ProtectionStatusInvalid', 'ProtectionStatusNotProtected', 'ProtectionStatusProtecting', 'ProtectionStatusProtected', 'ProtectionStatusProtectionFailed'
ProtectionStatus ProtectionStatus `json:"protectionStatus,omitempty"`
}
// ClientDiscoveryDisplay localized display information of an operation.
type ClientDiscoveryDisplay struct {
// Provider - Name of the provider for display purposes
Provider *string `json:"provider,omitempty"`
// Resource - ResourceType for which this Operation can be performed.
Resource *string `json:"resource,omitempty"`
// Operation - Operations Name itself.
Operation *string `json:"operation,omitempty"`
// Description - Description of the operation having details of what operation is about.
Description *string `json:"description,omitempty"`
}
// ClientDiscoveryForLogSpecification class to represent shoebox log specification in json client discovery.
type ClientDiscoveryForLogSpecification struct {
// Name - Name for shoebox log specification.
Name *string `json:"name,omitempty"`
// DisplayName - Localized display name
DisplayName *string `json:"displayName,omitempty"`
// BlobDuration - blob duration of shoebox log specification
BlobDuration *string `json:"blobDuration,omitempty"`
}
// ClientDiscoveryForProperties class to represent shoebox properties in json client discovery.
type ClientDiscoveryForProperties struct {
// ServiceSpecification - Operation properties.
ServiceSpecification *ClientDiscoveryForServiceSpecification `json:"serviceSpecification,omitempty"`
}
// ClientDiscoveryForServiceSpecification class to represent shoebox service specification in json client
// discovery.
type ClientDiscoveryForServiceSpecification struct {
// LogSpecifications - List of log specifications of this operation.
LogSpecifications *[]ClientDiscoveryForLogSpecification `json:"logSpecifications,omitempty"`
}
// ClientDiscoveryResponse operations List response which contains list of available APIs.
type ClientDiscoveryResponse struct {
autorest.Response `json:"-"`
// Value - List of available operationss.
Value *[]ClientDiscoveryValueForSingleAPI `json:"value,omitempty"`
// NextLink - Link to the next chunk of Response.
NextLink *string `json:"nextLink,omitempty"`
}
// ClientDiscoveryResponseIterator provides access to a complete listing of ClientDiscoveryValueForSingleAPI
// values.
type ClientDiscoveryResponseIterator struct {
i int
page ClientDiscoveryResponsePage
}
// Next advances to the next value. If there was an error making
// the request the iterator does not advance and the error is returned.
func (iter *ClientDiscoveryResponseIterator) Next() error {
iter.i++
if iter.i < len(iter.page.Values()) {
return nil
}
err := iter.page.Next()
if err != nil {
iter.i--
return err
}
iter.i = 0
return nil
}
// NotDone returns true if the enumeration should be started or is not yet complete.
func (iter ClientDiscoveryResponseIterator) NotDone() bool {
return iter.page.NotDone() && iter.i < len(iter.page.Values())
}
// Response returns the raw server response from the last page request.
func (iter ClientDiscoveryResponseIterator) Response() ClientDiscoveryResponse {
return iter.page.Response()
}
// Value returns the current value or a zero-initialized value if the
// iterator has advanced beyond the end of the collection.
func (iter ClientDiscoveryResponseIterator) Value() ClientDiscoveryValueForSingleAPI {
if !iter.page.NotDone() {
return ClientDiscoveryValueForSingleAPI{}
}
return iter.page.Values()[iter.i]
}
// IsEmpty returns true if the ListResult contains no values.
func (cdr ClientDiscoveryResponse) IsEmpty() bool {
return cdr.Value == nil || len(*cdr.Value) == 0
}
// clientDiscoveryResponsePreparer prepares a request to retrieve the next set of results.
// It returns nil if no more results exist.
func (cdr ClientDiscoveryResponse) clientDiscoveryResponsePreparer() (*http.Request, error) {
if cdr.NextLink == nil || len(to.String(cdr.NextLink)) < 1 {
return nil, nil
}
return autorest.Prepare(&http.Request{},
autorest.AsJSON(),
autorest.AsGet(),
autorest.WithBaseURL(to.String(cdr.NextLink)))
}
// ClientDiscoveryResponsePage contains a page of ClientDiscoveryValueForSingleAPI values.
type ClientDiscoveryResponsePage struct {
fn func(ClientDiscoveryResponse) (ClientDiscoveryResponse, error)
cdr ClientDiscoveryResponse
}
// Next advances to the next page of values. If there was an error making
// the request the page does not advance and the error is returned.
func (page *ClientDiscoveryResponsePage) Next() error {
next, err := page.fn(page.cdr)
if err != nil {
return err
}
page.cdr = next
return nil
}
// NotDone returns true if the page enumeration should be started or is not yet complete.
func (page ClientDiscoveryResponsePage) NotDone() bool {
return !page.cdr.IsEmpty()
}
// Response returns the raw server response from the last page request.
func (page ClientDiscoveryResponsePage) Response() ClientDiscoveryResponse {
return page.cdr
}
// Values returns the slice of values for the current page or nil if there are no values.
func (page ClientDiscoveryResponsePage) Values() []ClientDiscoveryValueForSingleAPI {
if page.cdr.IsEmpty() {
return nil
}
return *page.cdr.Value
}
// ClientDiscoveryValueForSingleAPI available operation details.
type ClientDiscoveryValueForSingleAPI struct {
// Name - Name of the Operation.
Name *string `json:"name,omitempty"`
// Display - Contains the localized display information for this particular operation
Display *ClientDiscoveryDisplay `json:"display,omitempty"`
// Origin - The intended executor of the operation;governs the display of the operation in the RBAC UX and the audit logs UX
Origin *string `json:"origin,omitempty"`
// Properties - ShoeBox properties for the given operation.
Properties *ClientDiscoveryForProperties `json:"properties,omitempty"`
}
// ClientScriptForConnect client script details for file / folder restore.
type ClientScriptForConnect struct {
// ScriptContent - File content of the client script for file / folder restore.
ScriptContent *string `json:"scriptContent,omitempty"`
// ScriptExtension - File extension of the client script for file / folder restore - .ps1 , .sh , etc.
ScriptExtension *string `json:"scriptExtension,omitempty"`
// OsType - OS type - Windows, Linux etc. for which this file / folder restore client script works.
OsType *string `json:"osType,omitempty"`
// URL - URL of Executable from where to source the content. If this is not null then ScriptContent should not be used
URL *string `json:"url,omitempty"`
// ScriptNameSuffix - Mandator suffix that should be added to the name of script that is given for download to user.
// If its null or empty then , ignore it.
ScriptNameSuffix *string `json:"scriptNameSuffix,omitempty"`
}
// ContainerIdentityInfo container identity information
type ContainerIdentityInfo struct {
// UniqueName - Unique name of the container
UniqueName *string `json:"uniqueName,omitempty"`
// AadTenantID - Protection container identity - AAD Tenant
AadTenantID *string `json:"aadTenantId,omitempty"`
// ServicePrincipalClientID - Protection container identity - AAD Service Principal
ServicePrincipalClientID *string `json:"servicePrincipalClientId,omitempty"`
// Audience - Protection container identity - Audience
Audience *string `json:"audience,omitempty"`
}
// DailyRetentionFormat daily retention format.
type DailyRetentionFormat struct {
// DaysOfTheMonth - List of days of the month.
DaysOfTheMonth *[]Day `json:"daysOfTheMonth,omitempty"`
}
// DailyRetentionSchedule daily retention schedule.
type DailyRetentionSchedule struct {
// RetentionTimes - Retention times of retention policy.
RetentionTimes *[]date.Time `json:"retentionTimes,omitempty"`
// RetentionDuration - Retention duration of retention Policy.
RetentionDuration *RetentionDuration `json:"retentionDuration,omitempty"`
}
// Day day of the week.
type Day struct {
// Date - Date of the month
Date *int32 `json:"date,omitempty"`
// IsLast - Whether Date is last date of month
IsLast *bool `json:"isLast,omitempty"`
}
// DistributedNodesInfo this is used to represent the various nodes of the distributed container.
type DistributedNodesInfo struct {
// NodeName - Name of the node under a distributed container.
NodeName *string `json:"nodeName,omitempty"`
// Status - Status of this Node.
// Failed | Succeeded
Status *string `json:"status,omitempty"`
// ErrorDetail - Error Details if the Status is non-success.
ErrorDetail *ErrorDetail `json:"errorDetail,omitempty"`
}
// DpmBackupEngine data Protection Manager (DPM) specific backup engine.
type DpmBackupEngine struct {
// FriendlyName - Friendly name of the backup engine.
FriendlyName *string `json:"friendlyName,omitempty"`
// BackupManagementType - Type of backup management for the backup engine. Possible values include: 'ManagementTypeInvalid', 'ManagementTypeAzureIaasVM', 'ManagementTypeMAB', 'ManagementTypeDPM', 'ManagementTypeAzureBackupServer', 'ManagementTypeAzureSQL', 'ManagementTypeAzureStorage', 'ManagementTypeAzureWorkload', 'ManagementTypeDefaultBackup'
BackupManagementType ManagementType `json:"backupManagementType,omitempty"`
// RegistrationStatus - Registration status of the backup engine with the Recovery Services Vault.
RegistrationStatus *string `json:"registrationStatus,omitempty"`
// BackupEngineState - Status of the backup engine with the Recovery Services Vault. = {Active/Deleting/DeleteFailed}
BackupEngineState *string `json:"backupEngineState,omitempty"`
// HealthStatus - Backup status of the backup engine.
HealthStatus *string `json:"healthStatus,omitempty"`
// CanReRegister - Flag indicating if the backup engine be registered, once already registered.
CanReRegister *bool `json:"canReRegister,omitempty"`
// BackupEngineID - ID of the backup engine.
BackupEngineID *string `json:"backupEngineId,omitempty"`
// DpmVersion - Backup engine version
DpmVersion *string `json:"dpmVersion,omitempty"`
// AzureBackupAgentVersion - Backup agent version
AzureBackupAgentVersion *string `json:"azureBackupAgentVersion,omitempty"`
// IsAzureBackupAgentUpgradeAvailable - To check if backup agent upgrade available
IsAzureBackupAgentUpgradeAvailable *bool `json:"isAzureBackupAgentUpgradeAvailable,omitempty"`
// IsDpmUpgradeAvailable - To check if backup engine upgrade available
IsDpmUpgradeAvailable *bool `json:"isDpmUpgradeAvailable,omitempty"`
// ExtendedInfo - Extended info of the backupengine
ExtendedInfo *EngineExtendedInfo `json:"extendedInfo,omitempty"`
// BackupEngineType - Possible values include: 'BackupEngineTypeBackupEngineBase', 'BackupEngineTypeAzureBackupServerEngine', 'BackupEngineTypeDpmBackupEngine'
BackupEngineType EngineType `json:"backupEngineType,omitempty"`
}
// MarshalJSON is the custom marshaler for DpmBackupEngine.
func (dbe DpmBackupEngine) MarshalJSON() ([]byte, error) {
dbe.BackupEngineType = BackupEngineTypeDpmBackupEngine
objectMap := make(map[string]interface{})
if dbe.FriendlyName != nil {
objectMap["friendlyName"] = dbe.FriendlyName
}
if dbe.BackupManagementType != "" {
objectMap["backupManagementType"] = dbe.BackupManagementType
}
if dbe.RegistrationStatus != nil {
objectMap["registrationStatus"] = dbe.RegistrationStatus
}
if dbe.BackupEngineState != nil {
objectMap["backupEngineState"] = dbe.BackupEngineState
}
if dbe.HealthStatus != nil {
objectMap["healthStatus"] = dbe.HealthStatus
}
if dbe.CanReRegister != nil {
objectMap["canReRegister"] = dbe.CanReRegister
}
if dbe.BackupEngineID != nil {
objectMap["backupEngineId"] = dbe.BackupEngineID
}
if dbe.DpmVersion != nil {
objectMap["dpmVersion"] = dbe.DpmVersion
}
if dbe.AzureBackupAgentVersion != nil {
objectMap["azureBackupAgentVersion"] = dbe.AzureBackupAgentVersion
}
if dbe.IsAzureBackupAgentUpgradeAvailable != nil {
objectMap["isAzureBackupAgentUpgradeAvailable"] = dbe.IsAzureBackupAgentUpgradeAvailable
}
if dbe.IsDpmUpgradeAvailable != nil {
objectMap["isDpmUpgradeAvailable"] = dbe.IsDpmUpgradeAvailable
}
if dbe.ExtendedInfo != nil {
objectMap["extendedInfo"] = dbe.ExtendedInfo
}
if dbe.BackupEngineType != "" {
objectMap["backupEngineType"] = dbe.BackupEngineType
}
return json.Marshal(objectMap)
}
// AsAzureBackupServerEngine is the BasicEngineBase implementation for DpmBackupEngine.
func (dbe DpmBackupEngine) AsAzureBackupServerEngine() (*AzureBackupServerEngine, bool) {
return nil, false
}
// AsDpmBackupEngine is the BasicEngineBase implementation for DpmBackupEngine.
func (dbe DpmBackupEngine) AsDpmBackupEngine() (*DpmBackupEngine, bool) {
return &dbe, true
}
// AsEngineBase is the BasicEngineBase implementation for DpmBackupEngine.
func (dbe DpmBackupEngine) AsEngineBase() (*EngineBase, bool) {
return nil, false
}
// AsBasicEngineBase is the BasicEngineBase implementation for DpmBackupEngine.
func (dbe DpmBackupEngine) AsBasicEngineBase() (BasicEngineBase, bool) {
return &dbe, true
}
// DpmContainer DPM workload-specific protection container.
type DpmContainer struct {
// CanReRegister - Specifies whether the container is re-registrable.
CanReRegister *bool `json:"canReRegister,omitempty"`
// ContainerID - ID of container.
ContainerID *string `json:"containerId,omitempty"`
// ProtectedItemCount - Number of protected items in the BackupEngine
ProtectedItemCount *int64 `json:"protectedItemCount,omitempty"`
// DpmAgentVersion - Backup engine Agent version
DpmAgentVersion *string `json:"dpmAgentVersion,omitempty"`
// DpmServers - List of BackupEngines protecting the container
DpmServers *[]string `json:"dpmServers,omitempty"`
// UpgradeAvailable - To check if upgrade available
UpgradeAvailable *bool `json:"upgradeAvailable,omitempty"`
// ProtectionStatus - Protection status of the container.
ProtectionStatus *string `json:"protectionStatus,omitempty"`
// ExtendedInfo - Extended Info of the container.
ExtendedInfo *DPMContainerExtendedInfo `json:"extendedInfo,omitempty"`
// FriendlyName - Friendly name of the container.
FriendlyName *string `json:"friendlyName,omitempty"`
// BackupManagementType - Type of backup managemenent for the container. Possible values include: 'ManagementTypeInvalid', 'ManagementTypeAzureIaasVM', 'ManagementTypeMAB', 'ManagementTypeDPM', 'ManagementTypeAzureBackupServer', 'ManagementTypeAzureSQL', 'ManagementTypeAzureStorage', 'ManagementTypeAzureWorkload', 'ManagementTypeDefaultBackup'
BackupManagementType ManagementType `json:"backupManagementType,omitempty"`
// RegistrationStatus - Status of registration of the container with the Recovery Services Vault.
RegistrationStatus *string `json:"registrationStatus,omitempty"`
// HealthStatus - Status of health of the container.
HealthStatus *string `json:"healthStatus,omitempty"`
// ContainerType - Possible values include: 'ContainerTypeProtectionContainer', 'ContainerTypeAzureBackupServerContainer1', 'ContainerTypeMicrosoftClassicComputevirtualMachines', 'ContainerTypeMicrosoftComputevirtualMachines', 'ContainerTypeSQLAGWorkLoadContainer1', 'ContainerTypeAzureSQLContainer1', 'ContainerTypeStorageContainer1', 'ContainerTypeVMAppContainer1', 'ContainerTypeAzureWorkloadContainer', 'ContainerTypeDPMContainer1', 'ContainerTypeGenericContainer1', 'ContainerTypeIaaSVMContainer', 'ContainerTypeMABWindowsContainer'
ContainerType ContainerTypeBasicProtectionContainer `json:"containerType,omitempty"`
}
// MarshalJSON is the custom marshaler for DpmContainer.
func (dc DpmContainer) MarshalJSON() ([]byte, error) {
dc.ContainerType = ContainerTypeDPMContainer1
objectMap := make(map[string]interface{})
if dc.CanReRegister != nil {
objectMap["canReRegister"] = dc.CanReRegister
}
if dc.ContainerID != nil {
objectMap["containerId"] = dc.ContainerID
}
if dc.ProtectedItemCount != nil {
objectMap["protectedItemCount"] = dc.ProtectedItemCount
}
if dc.DpmAgentVersion != nil {
objectMap["dpmAgentVersion"] = dc.DpmAgentVersion
}
if dc.DpmServers != nil {
objectMap["dpmServers"] = dc.DpmServers
}
if dc.UpgradeAvailable != nil {
objectMap["upgradeAvailable"] = dc.UpgradeAvailable
}
if dc.ProtectionStatus != nil {
objectMap["protectionStatus"] = dc.ProtectionStatus
}
if dc.ExtendedInfo != nil {
objectMap["extendedInfo"] = dc.ExtendedInfo
}
if dc.FriendlyName != nil {
objectMap["friendlyName"] = dc.FriendlyName
}
if dc.BackupManagementType != "" {
objectMap["backupManagementType"] = dc.BackupManagementType
}
if dc.RegistrationStatus != nil {
objectMap["registrationStatus"] = dc.RegistrationStatus
}
if dc.HealthStatus != nil {
objectMap["healthStatus"] = dc.HealthStatus
}
if dc.ContainerType != "" {
objectMap["containerType"] = dc.ContainerType
}
return json.Marshal(objectMap)
}
// AsAzureBackupServerContainer is the BasicProtectionContainer implementation for DpmContainer.
func (dc DpmContainer) AsAzureBackupServerContainer() (*AzureBackupServerContainer, bool) {
return nil, false
}
// AsAzureIaaSClassicComputeVMContainer is the BasicProtectionContainer implementation for DpmContainer.
func (dc DpmContainer) AsAzureIaaSClassicComputeVMContainer() (*AzureIaaSClassicComputeVMContainer, bool) {
return nil, false
}
// AsAzureIaaSComputeVMContainer is the BasicProtectionContainer implementation for DpmContainer.
func (dc DpmContainer) AsAzureIaaSComputeVMContainer() (*AzureIaaSComputeVMContainer, bool) {
return nil, false
}
// AsAzureSQLAGWorkloadContainerProtectionContainer is the BasicProtectionContainer implementation for DpmContainer.
func (dc DpmContainer) AsAzureSQLAGWorkloadContainerProtectionContainer() (*AzureSQLAGWorkloadContainerProtectionContainer, bool) {
return nil, false
}
// AsAzureSQLContainer is the BasicProtectionContainer implementation for DpmContainer.
func (dc DpmContainer) AsAzureSQLContainer() (*AzureSQLContainer, bool) {
return nil, false
}
// AsAzureStorageContainer is the BasicProtectionContainer implementation for DpmContainer.
func (dc DpmContainer) AsAzureStorageContainer() (*AzureStorageContainer, bool) {
return nil, false
}
// AsAzureVMAppContainerProtectionContainer is the BasicProtectionContainer implementation for DpmContainer.
func (dc DpmContainer) AsAzureVMAppContainerProtectionContainer() (*AzureVMAppContainerProtectionContainer, bool) {
return nil, false
}
// AsAzureWorkloadContainer is the BasicProtectionContainer implementation for DpmContainer.
func (dc DpmContainer) AsAzureWorkloadContainer() (*AzureWorkloadContainer, bool) {
return nil, false
}
// AsBasicAzureWorkloadContainer is the BasicProtectionContainer implementation for DpmContainer.
func (dc DpmContainer) AsBasicAzureWorkloadContainer() (BasicAzureWorkloadContainer, bool) {
return nil, false
}
// AsDpmContainer is the BasicProtectionContainer implementation for DpmContainer.
func (dc DpmContainer) AsDpmContainer() (*DpmContainer, bool) {
return &dc, true
}
// AsGenericContainer is the BasicProtectionContainer implementation for DpmContainer.
func (dc DpmContainer) AsGenericContainer() (*GenericContainer, bool) {
return nil, false
}
// AsIaaSVMContainer is the BasicProtectionContainer implementation for DpmContainer.
func (dc DpmContainer) AsIaaSVMContainer() (*IaaSVMContainer, bool) {
return nil, false
}
// AsBasicIaaSVMContainer is the BasicProtectionContainer implementation for DpmContainer.
func (dc DpmContainer) AsBasicIaaSVMContainer() (BasicIaaSVMContainer, bool) {
return nil, false
}
// AsMabContainer is the BasicProtectionContainer implementation for DpmContainer.
func (dc DpmContainer) AsMabContainer() (*MabContainer, bool) {
return nil, false
}
// AsProtectionContainer is the BasicProtectionContainer implementation for DpmContainer.
func (dc DpmContainer) AsProtectionContainer() (*ProtectionContainer, bool) {
return nil, false
}
// AsBasicProtectionContainer is the BasicProtectionContainer implementation for DpmContainer.
func (dc DpmContainer) AsBasicProtectionContainer() (BasicProtectionContainer, bool) {
return &dc, true
}
// DPMContainerExtendedInfo additional information of the DPMContainer.
type DPMContainerExtendedInfo struct {
// LastRefreshedAt - Last refresh time of the DPMContainer.
LastRefreshedAt *date.Time `json:"lastRefreshedAt,omitempty"`
}
// DpmErrorInfo DPM workload-specific error information.
type DpmErrorInfo struct {
// ErrorString - Localized error string.
ErrorString *string `json:"errorString,omitempty"`
// Recommendations - List of localized recommendations for above error code.
Recommendations *[]string `json:"recommendations,omitempty"`
}
// DpmJob DPM workload-specifc job object.
type DpmJob struct {
// Duration - Time elapsed for job.
Duration *string `json:"duration,omitempty"`
// DpmServerName - DPM server name managing the backup item or backup job.
DpmServerName *string `json:"dpmServerName,omitempty"`
// ContainerName - Name of cluster/server protecting current backup item, if any.
ContainerName *string `json:"containerName,omitempty"`
// ContainerType - Type of container.
ContainerType *string `json:"containerType,omitempty"`
// WorkloadType - Type of backup item.
WorkloadType *string `json:"workloadType,omitempty"`
// ActionsInfo - The state/actions applicable on this job like cancel/retry.
ActionsInfo *[]JobSupportedAction `json:"actionsInfo,omitempty"`
// ErrorDetails - The errors.
ErrorDetails *[]DpmErrorInfo `json:"errorDetails,omitempty"`
// ExtendedInfo - Additional information for this job.
ExtendedInfo *DpmJobExtendedInfo `json:"extendedInfo,omitempty"`
// EntityFriendlyName - Friendly name of the entity on which the current job is executing.
EntityFriendlyName *string `json:"entityFriendlyName,omitempty"`
// BackupManagementType - Backup management type to execute the current job. Possible values include: 'ManagementTypeInvalid', 'ManagementTypeAzureIaasVM', 'ManagementTypeMAB', 'ManagementTypeDPM', 'ManagementTypeAzureBackupServer', 'ManagementTypeAzureSQL', 'ManagementTypeAzureStorage', 'ManagementTypeAzureWorkload', 'ManagementTypeDefaultBackup'
BackupManagementType ManagementType `json:"backupManagementType,omitempty"`
// Operation - The operation name.
Operation *string `json:"operation,omitempty"`
// Status - Job status.
Status *string `json:"status,omitempty"`
// StartTime - The start time.
StartTime *date.Time `json:"startTime,omitempty"`
// EndTime - The end time.
EndTime *date.Time `json:"endTime,omitempty"`
// ActivityID - ActivityId of job.
ActivityID *string `json:"activityId,omitempty"`
// JobType - Possible values include: 'JobTypeJob', 'JobTypeAzureIaaSVMJob', 'JobTypeAzureStorageJob', 'JobTypeAzureWorkloadJob', 'JobTypeDpmJob', 'JobTypeMabJob'
JobType JobType `json:"jobType,omitempty"`
}
// MarshalJSON is the custom marshaler for DpmJob.
func (dj DpmJob) MarshalJSON() ([]byte, error) {
dj.JobType = JobTypeDpmJob
objectMap := make(map[string]interface{})
if dj.Duration != nil {
objectMap["duration"] = dj.Duration
}
if dj.DpmServerName != nil {
objectMap["dpmServerName"] = dj.DpmServerName
}
if dj.ContainerName != nil {
objectMap["containerName"] = dj.ContainerName
}
if dj.ContainerType != nil {
objectMap["containerType"] = dj.ContainerType
}
if dj.WorkloadType != nil {
objectMap["workloadType"] = dj.WorkloadType
}
if dj.ActionsInfo != nil {
objectMap["actionsInfo"] = dj.ActionsInfo
}
if dj.ErrorDetails != nil {
objectMap["errorDetails"] = dj.ErrorDetails
}
if dj.ExtendedInfo != nil {
objectMap["extendedInfo"] = dj.ExtendedInfo
}
if dj.EntityFriendlyName != nil {
objectMap["entityFriendlyName"] = dj.EntityFriendlyName
}
if dj.BackupManagementType != "" {
objectMap["backupManagementType"] = dj.BackupManagementType
}
if dj.Operation != nil {
objectMap["operation"] = dj.Operation
}
if dj.Status != nil {
objectMap["status"] = dj.Status
}
if dj.StartTime != nil {
objectMap["startTime"] = dj.StartTime
}
if dj.EndTime != nil {
objectMap["endTime"] = dj.EndTime
}
if dj.ActivityID != nil {
objectMap["activityId"] = dj.ActivityID
}
if dj.JobType != "" {
objectMap["jobType"] = dj.JobType
}
return json.Marshal(objectMap)
}
// AsAzureIaaSVMJob is the BasicJob implementation for DpmJob.
func (dj DpmJob) AsAzureIaaSVMJob() (*AzureIaaSVMJob, bool) {
return nil, false
}
// AsAzureStorageJob is the BasicJob implementation for DpmJob.
func (dj DpmJob) AsAzureStorageJob() (*AzureStorageJob, bool) {
return nil, false
}
// AsAzureWorkloadJob is the BasicJob implementation for DpmJob.
func (dj DpmJob) AsAzureWorkloadJob() (*AzureWorkloadJob, bool) {
return nil, false
}
// AsDpmJob is the BasicJob implementation for DpmJob.
func (dj DpmJob) AsDpmJob() (*DpmJob, bool) {
return &dj, true
}
// AsMabJob is the BasicJob implementation for DpmJob.
func (dj DpmJob) AsMabJob() (*MabJob, bool) {
return nil, false
}
// AsJob is the BasicJob implementation for DpmJob.
func (dj DpmJob) AsJob() (*Job, bool) {
return nil, false
}
// AsBasicJob is the BasicJob implementation for DpmJob.
func (dj DpmJob) AsBasicJob() (BasicJob, bool) {
return &dj, true
}
// DpmJobExtendedInfo additional information on the DPM workload-specific job.
type DpmJobExtendedInfo struct {
// TasksList - List of tasks associated with this job.
TasksList *[]DpmJobTaskDetails `json:"tasksList,omitempty"`
// PropertyBag - The job properties.
PropertyBag map[string]*string `json:"propertyBag"`
// DynamicErrorMessage - Non localized error message on job execution.
DynamicErrorMessage *string `json:"dynamicErrorMessage,omitempty"`
}
// MarshalJSON is the custom marshaler for DpmJobExtendedInfo.
func (djei DpmJobExtendedInfo) MarshalJSON() ([]byte, error) {
objectMap := make(map[string]interface{})
if djei.TasksList != nil {
objectMap["tasksList"] = djei.TasksList
}
if djei.PropertyBag != nil {
objectMap["propertyBag"] = djei.PropertyBag
}
if djei.DynamicErrorMessage != nil {
objectMap["dynamicErrorMessage"] = djei.DynamicErrorMessage
}
return json.Marshal(objectMap)
}
// DpmJobTaskDetails DPM workload-specific job task details.
type DpmJobTaskDetails struct {
// TaskID - The task display name.
TaskID *string `json:"taskId,omitempty"`
// StartTime - The start time.
StartTime *date.Time `json:"startTime,omitempty"`
// EndTime - The end time.
EndTime *date.Time `json:"endTime,omitempty"`
// Duration - Time elapsed for task.
Duration *string `json:"duration,omitempty"`
// Status - The status.
Status *string `json:"status,omitempty"`
}
// DPMProtectedItem additional information on Backup engine specific backup item.
type DPMProtectedItem struct {
// FriendlyName - Friendly name of the managed item
FriendlyName *string `json:"friendlyName,omitempty"`
// BackupEngineName - Backup Management server protecting this backup item
BackupEngineName *string `json:"backupEngineName,omitempty"`
// ProtectionState - Protection state of the backupengine. Possible values include: 'ProtectedItemStateInvalid', 'ProtectedItemStateIRPending', 'ProtectedItemStateProtected', 'ProtectedItemStateProtectionError', 'ProtectedItemStateProtectionStopped', 'ProtectedItemStateProtectionPaused'
ProtectionState ProtectedItemState `json:"protectionState,omitempty"`
// IsScheduledForDeferredDelete - To check if backup item is scheduled for deferred delete
IsScheduledForDeferredDelete *bool `json:"isScheduledForDeferredDelete,omitempty"`
// ExtendedInfo - Extended info of the backup item.
ExtendedInfo *DPMProtectedItemExtendedInfo `json:"extendedInfo,omitempty"`
// BackupManagementType - Type of backup managemenent for the backed up item. Possible values include: 'ManagementTypeInvalid', 'ManagementTypeAzureIaasVM', 'ManagementTypeMAB', 'ManagementTypeDPM', 'ManagementTypeAzureBackupServer', 'ManagementTypeAzureSQL', 'ManagementTypeAzureStorage', 'ManagementTypeAzureWorkload', 'ManagementTypeDefaultBackup'
BackupManagementType ManagementType `json:"backupManagementType,omitempty"`
// WorkloadType - Type of workload this item represents. Possible values include: 'DataSourceTypeInvalid', 'DataSourceTypeVM', 'DataSourceTypeFileFolder', 'DataSourceTypeAzureSQLDb', 'DataSourceTypeSQLDB', 'DataSourceTypeExchange', 'DataSourceTypeSharepoint', 'DataSourceTypeVMwareVM', 'DataSourceTypeSystemState', 'DataSourceTypeClient', 'DataSourceTypeGenericDataSource', 'DataSourceTypeSQLDataBase', 'DataSourceTypeAzureFileShare'
WorkloadType DataSourceType `json:"workloadType,omitempty"`
// ContainerName - Unique name of container
ContainerName *string `json:"containerName,omitempty"`
// SourceResourceID - ARM ID of the resource to be backed up.
SourceResourceID *string `json:"sourceResourceId,omitempty"`
// PolicyID - ID of the backup policy with which this item is backed up.
PolicyID *string `json:"policyId,omitempty"`
// LastRecoveryPoint - Timestamp when the last (latest) backup copy was created for this backup item.
LastRecoveryPoint *date.Time `json:"lastRecoveryPoint,omitempty"`
// BackupSetName - Name of the backup set the backup item belongs to
BackupSetName *string `json:"backupSetName,omitempty"`
// ProtectedItemType - Possible values include: 'ProtectedItemTypeProtectedItem', 'ProtectedItemTypeAzureFileShareProtectedItem', 'ProtectedItemTypeMicrosoftClassicComputevirtualMachines', 'ProtectedItemTypeMicrosoftComputevirtualMachines', 'ProtectedItemTypeAzureIaaSVMProtectedItem', 'ProtectedItemTypeMicrosoftSqlserversdatabases', 'ProtectedItemTypeAzureVMWorkloadSQLDatabase', 'ProtectedItemTypeDPMProtectedItem', 'ProtectedItemTypeGenericProtectedItem', 'ProtectedItemTypeMabFileFolderProtectedItem'
ProtectedItemType ProtectedItemType `json:"protectedItemType,omitempty"`
}
// MarshalJSON is the custom marshaler for DPMProtectedItem.
func (dpi DPMProtectedItem) MarshalJSON() ([]byte, error) {
dpi.ProtectedItemType = ProtectedItemTypeDPMProtectedItem
objectMap := make(map[string]interface{})
if dpi.FriendlyName != nil {
objectMap["friendlyName"] = dpi.FriendlyName
}
if dpi.BackupEngineName != nil {
objectMap["backupEngineName"] = dpi.BackupEngineName
}
if dpi.ProtectionState != "" {
objectMap["protectionState"] = dpi.ProtectionState
}
if dpi.IsScheduledForDeferredDelete != nil {
objectMap["isScheduledForDeferredDelete"] = dpi.IsScheduledForDeferredDelete
}
if dpi.ExtendedInfo != nil {
objectMap["extendedInfo"] = dpi.ExtendedInfo
}
if dpi.BackupManagementType != "" {
objectMap["backupManagementType"] = dpi.BackupManagementType
}
if dpi.WorkloadType != "" {
objectMap["workloadType"] = dpi.WorkloadType
}
if dpi.ContainerName != nil {
objectMap["containerName"] = dpi.ContainerName
}
if dpi.SourceResourceID != nil {
objectMap["sourceResourceId"] = dpi.SourceResourceID
}
if dpi.PolicyID != nil {
objectMap["policyId"] = dpi.PolicyID
}
if dpi.LastRecoveryPoint != nil {
objectMap["lastRecoveryPoint"] = dpi.LastRecoveryPoint
}
if dpi.BackupSetName != nil {
objectMap["backupSetName"] = dpi.BackupSetName
}
if dpi.ProtectedItemType != "" {
objectMap["protectedItemType"] = dpi.ProtectedItemType
}
return json.Marshal(objectMap)
}
// AsAzureFileshareProtectedItem is the BasicProtectedItem implementation for DPMProtectedItem.
func (dpi DPMProtectedItem) AsAzureFileshareProtectedItem() (*AzureFileshareProtectedItem, bool) {
return nil, false
}
// AsAzureIaaSClassicComputeVMProtectedItem is the BasicProtectedItem implementation for DPMProtectedItem.
func (dpi DPMProtectedItem) AsAzureIaaSClassicComputeVMProtectedItem() (*AzureIaaSClassicComputeVMProtectedItem, bool) {
return nil, false
}
// AsAzureIaaSComputeVMProtectedItem is the BasicProtectedItem implementation for DPMProtectedItem.
func (dpi DPMProtectedItem) AsAzureIaaSComputeVMProtectedItem() (*AzureIaaSComputeVMProtectedItem, bool) {
return nil, false
}
// AsAzureIaaSVMProtectedItem is the BasicProtectedItem implementation for DPMProtectedItem.
func (dpi DPMProtectedItem) AsAzureIaaSVMProtectedItem() (*AzureIaaSVMProtectedItem, bool) {
return nil, false
}
// AsBasicAzureIaaSVMProtectedItem is the BasicProtectedItem implementation for DPMProtectedItem.
func (dpi DPMProtectedItem) AsBasicAzureIaaSVMProtectedItem() (BasicAzureIaaSVMProtectedItem, bool) {
return nil, false
}
// AsAzureSQLProtectedItem is the BasicProtectedItem implementation for DPMProtectedItem.
func (dpi DPMProtectedItem) AsAzureSQLProtectedItem() (*AzureSQLProtectedItem, bool) {
return nil, false
}
// AsAzureVMWorkloadSQLDatabaseProtectedItem is the BasicProtectedItem implementation for DPMProtectedItem.
func (dpi DPMProtectedItem) AsAzureVMWorkloadSQLDatabaseProtectedItem() (*AzureVMWorkloadSQLDatabaseProtectedItem, bool) {
return nil, false
}
// AsDPMProtectedItem is the BasicProtectedItem implementation for DPMProtectedItem.
func (dpi DPMProtectedItem) AsDPMProtectedItem() (*DPMProtectedItem, bool) {
return &dpi, true
}
// AsGenericProtectedItem is the BasicProtectedItem implementation for DPMProtectedItem.
func (dpi DPMProtectedItem) AsGenericProtectedItem() (*GenericProtectedItem, bool) {
return nil, false
}
// AsMabFileFolderProtectedItem is the BasicProtectedItem implementation for DPMProtectedItem.
func (dpi DPMProtectedItem) AsMabFileFolderProtectedItem() (*MabFileFolderProtectedItem, bool) {
return nil, false
}
// AsProtectedItem is the BasicProtectedItem implementation for DPMProtectedItem.
func (dpi DPMProtectedItem) AsProtectedItem() (*ProtectedItem, bool) {
return nil, false
}
// AsBasicProtectedItem is the BasicProtectedItem implementation for DPMProtectedItem.
func (dpi DPMProtectedItem) AsBasicProtectedItem() (BasicProtectedItem, bool) {
return &dpi, true
}
// DPMProtectedItemExtendedInfo additional information of DPM Protected item.
type DPMProtectedItemExtendedInfo struct {
// ProtectableObjectLoadPath - Attribute to provide information on various DBs.
ProtectableObjectLoadPath map[string]*string `json:"protectableObjectLoadPath"`
// Protected - To check if backup item is disk protected.
Protected *bool `json:"protected,omitempty"`
// IsPresentOnCloud - To check if backup item is cloud protected.
IsPresentOnCloud *bool `json:"isPresentOnCloud,omitempty"`
// LastBackupStatus - Last backup status information on backup item.
LastBackupStatus *string `json:"lastBackupStatus,omitempty"`
// LastRefreshedAt - Last refresh time on backup item.
LastRefreshedAt *date.Time `json:"lastRefreshedAt,omitempty"`
// OldestRecoveryPoint - Oldest cloud recovery point time.
OldestRecoveryPoint *date.Time `json:"oldestRecoveryPoint,omitempty"`
// RecoveryPointCount - cloud recovery point count.
RecoveryPointCount *int32 `json:"recoveryPointCount,omitempty"`
// OnPremiseOldestRecoveryPoint - Oldest disk recovery point time.
OnPremiseOldestRecoveryPoint *date.Time `json:"onPremiseOldestRecoveryPoint,omitempty"`
// OnPremiseLatestRecoveryPoint - latest disk recovery point time.
OnPremiseLatestRecoveryPoint *date.Time `json:"onPremiseLatestRecoveryPoint,omitempty"`
// OnPremiseRecoveryPointCount - disk recovery point count.
OnPremiseRecoveryPointCount *int32 `json:"onPremiseRecoveryPointCount,omitempty"`
// IsCollocated - To check if backup item is collocated.
IsCollocated *bool `json:"isCollocated,omitempty"`
// ProtectionGroupName - Protection group name of the backup item.
ProtectionGroupName *string `json:"protectionGroupName,omitempty"`
// DiskStorageUsedInBytes - Used Disk storage in bytes.
DiskStorageUsedInBytes *string `json:"diskStorageUsedInBytes,omitempty"`
// TotalDiskStorageSizeInBytes - total Disk storage in bytes.
TotalDiskStorageSizeInBytes *string `json:"totalDiskStorageSizeInBytes,omitempty"`
}
// MarshalJSON is the custom marshaler for DPMProtectedItemExtendedInfo.
func (dpiei DPMProtectedItemExtendedInfo) MarshalJSON() ([]byte, error) {
objectMap := make(map[string]interface{})
if dpiei.ProtectableObjectLoadPath != nil {
objectMap["protectableObjectLoadPath"] = dpiei.ProtectableObjectLoadPath
}
if dpiei.Protected != nil {
objectMap["protected"] = dpiei.Protected
}
if dpiei.IsPresentOnCloud != nil {
objectMap["isPresentOnCloud"] = dpiei.IsPresentOnCloud
}
if dpiei.LastBackupStatus != nil {
objectMap["lastBackupStatus"] = dpiei.LastBackupStatus
}
if dpiei.LastRefreshedAt != nil {
objectMap["lastRefreshedAt"] = dpiei.LastRefreshedAt
}
if dpiei.OldestRecoveryPoint != nil {
objectMap["oldestRecoveryPoint"] = dpiei.OldestRecoveryPoint
}
if dpiei.RecoveryPointCount != nil {
objectMap["recoveryPointCount"] = dpiei.RecoveryPointCount
}
if dpiei.OnPremiseOldestRecoveryPoint != nil {
objectMap["onPremiseOldestRecoveryPoint"] = dpiei.OnPremiseOldestRecoveryPoint
}
if dpiei.OnPremiseLatestRecoveryPoint != nil {
objectMap["onPremiseLatestRecoveryPoint"] = dpiei.OnPremiseLatestRecoveryPoint
}
if dpiei.OnPremiseRecoveryPointCount != nil {
objectMap["onPremiseRecoveryPointCount"] = dpiei.OnPremiseRecoveryPointCount
}
if dpiei.IsCollocated != nil {
objectMap["isCollocated"] = dpiei.IsCollocated
}
if dpiei.ProtectionGroupName != nil {
objectMap["protectionGroupName"] = dpiei.ProtectionGroupName
}
if dpiei.DiskStorageUsedInBytes != nil {
objectMap["diskStorageUsedInBytes"] = dpiei.DiskStorageUsedInBytes
}
if dpiei.TotalDiskStorageSizeInBytes != nil {
objectMap["totalDiskStorageSizeInBytes"] = dpiei.TotalDiskStorageSizeInBytes
}
return json.Marshal(objectMap)
}
// EncryptionDetails details needed if the VM was encrypted at the time of backup.
type EncryptionDetails struct {
// EncryptionEnabled - Identifies whether this backup copy represents an encrypted VM at the time of backup.
EncryptionEnabled *bool `json:"encryptionEnabled,omitempty"`
// KekURL - Key Url.
KekURL *string `json:"kekUrl,omitempty"`
// SecretKeyURL - Secret Url.
SecretKeyURL *string `json:"secretKeyUrl,omitempty"`
// KekVaultID - ID of Key Vault where KEK is stored.
KekVaultID *string `json:"kekVaultId,omitempty"`
// SecretKeyVaultID - ID of Key Vault where Secret is stored.
SecretKeyVaultID *string `json:"secretKeyVaultId,omitempty"`
}
// BasicEngineBase the base backup engine class. All workload specific backup engines derive from this class.
type BasicEngineBase interface {
AsAzureBackupServerEngine() (*AzureBackupServerEngine, bool)
AsDpmBackupEngine() (*DpmBackupEngine, bool)
AsEngineBase() (*EngineBase, bool)
}
// EngineBase the base backup engine class. All workload specific backup engines derive from this class.
type EngineBase struct {
// FriendlyName - Friendly name of the backup engine.
FriendlyName *string `json:"friendlyName,omitempty"`
// BackupManagementType - Type of backup management for the backup engine. Possible values include: 'ManagementTypeInvalid', 'ManagementTypeAzureIaasVM', 'ManagementTypeMAB', 'ManagementTypeDPM', 'ManagementTypeAzureBackupServer', 'ManagementTypeAzureSQL', 'ManagementTypeAzureStorage', 'ManagementTypeAzureWorkload', 'ManagementTypeDefaultBackup'
BackupManagementType ManagementType `json:"backupManagementType,omitempty"`
// RegistrationStatus - Registration status of the backup engine with the Recovery Services Vault.
RegistrationStatus *string `json:"registrationStatus,omitempty"`
// BackupEngineState - Status of the backup engine with the Recovery Services Vault. = {Active/Deleting/DeleteFailed}
BackupEngineState *string `json:"backupEngineState,omitempty"`
// HealthStatus - Backup status of the backup engine.
HealthStatus *string `json:"healthStatus,omitempty"`
// CanReRegister - Flag indicating if the backup engine be registered, once already registered.
CanReRegister *bool `json:"canReRegister,omitempty"`
// BackupEngineID - ID of the backup engine.
BackupEngineID *string `json:"backupEngineId,omitempty"`
// DpmVersion - Backup engine version
DpmVersion *string `json:"dpmVersion,omitempty"`
// AzureBackupAgentVersion - Backup agent version
AzureBackupAgentVersion *string `json:"azureBackupAgentVersion,omitempty"`
// IsAzureBackupAgentUpgradeAvailable - To check if backup agent upgrade available
IsAzureBackupAgentUpgradeAvailable *bool `json:"isAzureBackupAgentUpgradeAvailable,omitempty"`
// IsDpmUpgradeAvailable - To check if backup engine upgrade available
IsDpmUpgradeAvailable *bool `json:"isDpmUpgradeAvailable,omitempty"`
// ExtendedInfo - Extended info of the backupengine
ExtendedInfo *EngineExtendedInfo `json:"extendedInfo,omitempty"`
// BackupEngineType - Possible values include: 'BackupEngineTypeBackupEngineBase', 'BackupEngineTypeAzureBackupServerEngine', 'BackupEngineTypeDpmBackupEngine'
BackupEngineType EngineType `json:"backupEngineType,omitempty"`
}
func unmarshalBasicEngineBase(body []byte) (BasicEngineBase, error) {
var m map[string]interface{}
err := json.Unmarshal(body, &m)
if err != nil {
return nil, err
}
switch m["backupEngineType"] {
case string(BackupEngineTypeAzureBackupServerEngine):
var abse AzureBackupServerEngine
err := json.Unmarshal(body, &abse)
return abse, err
case string(BackupEngineTypeDpmBackupEngine):
var dbe DpmBackupEngine
err := json.Unmarshal(body, &dbe)
return dbe, err
default:
var eb EngineBase
err := json.Unmarshal(body, &eb)
return eb, err
}
}
func unmarshalBasicEngineBaseArray(body []byte) ([]BasicEngineBase, error) {
var rawMessages []*json.RawMessage
err := json.Unmarshal(body, &rawMessages)
if err != nil {
return nil, err
}
ebArray := make([]BasicEngineBase, len(rawMessages))
for index, rawMessage := range rawMessages {
eb, err := unmarshalBasicEngineBase(*rawMessage)
if err != nil {
return nil, err
}
ebArray[index] = eb
}
return ebArray, nil
}
// MarshalJSON is the custom marshaler for EngineBase.
func (eb EngineBase) MarshalJSON() ([]byte, error) {
eb.BackupEngineType = BackupEngineTypeBackupEngineBase
objectMap := make(map[string]interface{})
if eb.FriendlyName != nil {
objectMap["friendlyName"] = eb.FriendlyName
}
if eb.BackupManagementType != "" {
objectMap["backupManagementType"] = eb.BackupManagementType
}
if eb.RegistrationStatus != nil {
objectMap["registrationStatus"] = eb.RegistrationStatus
}
if eb.BackupEngineState != nil {
objectMap["backupEngineState"] = eb.BackupEngineState
}
if eb.HealthStatus != nil {
objectMap["healthStatus"] = eb.HealthStatus
}
if eb.CanReRegister != nil {
objectMap["canReRegister"] = eb.CanReRegister
}
if eb.BackupEngineID != nil {
objectMap["backupEngineId"] = eb.BackupEngineID
}
if eb.DpmVersion != nil {
objectMap["dpmVersion"] = eb.DpmVersion
}
if eb.AzureBackupAgentVersion != nil {
objectMap["azureBackupAgentVersion"] = eb.AzureBackupAgentVersion
}
if eb.IsAzureBackupAgentUpgradeAvailable != nil {
objectMap["isAzureBackupAgentUpgradeAvailable"] = eb.IsAzureBackupAgentUpgradeAvailable
}
if eb.IsDpmUpgradeAvailable != nil {
objectMap["isDpmUpgradeAvailable"] = eb.IsDpmUpgradeAvailable
}
if eb.ExtendedInfo != nil {
objectMap["extendedInfo"] = eb.ExtendedInfo
}
if eb.BackupEngineType != "" {
objectMap["backupEngineType"] = eb.BackupEngineType
}
return json.Marshal(objectMap)
}
// AsAzureBackupServerEngine is the BasicEngineBase implementation for EngineBase.
func (eb EngineBase) AsAzureBackupServerEngine() (*AzureBackupServerEngine, bool) {
return nil, false
}
// AsDpmBackupEngine is the BasicEngineBase implementation for EngineBase.
func (eb EngineBase) AsDpmBackupEngine() (*DpmBackupEngine, bool) {
return nil, false
}
// AsEngineBase is the BasicEngineBase implementation for EngineBase.
func (eb EngineBase) AsEngineBase() (*EngineBase, bool) {
return &eb, true
}
// AsBasicEngineBase is the BasicEngineBase implementation for EngineBase.
func (eb EngineBase) AsBasicEngineBase() (BasicEngineBase, bool) {
return &eb, true
}
// EngineBaseResource the base backup engine class. All workload specific backup engines derive from this class.
type EngineBaseResource struct {
autorest.Response `json:"-"`
// Properties - BackupEngineBaseResource properties
Properties BasicEngineBase `json:"properties,omitempty"`
// ID - Resource Id represents the complete path to the resource.
ID *string `json:"id,omitempty"`
// Name - Resource name associated with the resource.
Name *string `json:"name,omitempty"`
// Type - Resource type represents the complete path of the form Namespace/ResourceType/ResourceType/...
Type *string `json:"type,omitempty"`
// Location - Resource location.
Location *string `json:"location,omitempty"`
// Tags - Resource tags.
Tags map[string]*string `json:"tags"`
// ETag - Optional ETag.
ETag *string `json:"eTag,omitempty"`
}
// MarshalJSON is the custom marshaler for EngineBaseResource.
func (ebr EngineBaseResource) MarshalJSON() ([]byte, error) {
objectMap := make(map[string]interface{})
objectMap["properties"] = ebr.Properties
if ebr.ID != nil {
objectMap["id"] = ebr.ID
}
if ebr.Name != nil {
objectMap["name"] = ebr.Name
}
if ebr.Type != nil {
objectMap["type"] = ebr.Type
}
if ebr.Location != nil {
objectMap["location"] = ebr.Location
}
if ebr.Tags != nil {
objectMap["tags"] = ebr.Tags
}
if ebr.ETag != nil {
objectMap["eTag"] = ebr.ETag
}
return json.Marshal(objectMap)
}
// UnmarshalJSON is the custom unmarshaler for EngineBaseResource struct.
func (ebr *EngineBaseResource) UnmarshalJSON(body []byte) error {
var m map[string]*json.RawMessage
err := json.Unmarshal(body, &m)
if err != nil {
return err
}
for k, v := range m {
switch k {
case "properties":
if v != nil {
properties, err := unmarshalBasicEngineBase(*v)
if err != nil {
return err
}
ebr.Properties = properties
}
case "id":
if v != nil {
var ID string
err = json.Unmarshal(*v, &ID)
if err != nil {
return err
}
ebr.ID = &ID
}
case "name":
if v != nil {
var name string
err = json.Unmarshal(*v, &name)
if err != nil {
return err
}
ebr.Name = &name
}
case "type":
if v != nil {
var typeVar string
err = json.Unmarshal(*v, &typeVar)
if err != nil {
return err
}
ebr.Type = &typeVar
}
case "location":
if v != nil {
var location string
err = json.Unmarshal(*v, &location)
if err != nil {
return err
}
ebr.Location = &location
}
case "tags":
if v != nil {
var tags map[string]*string
err = json.Unmarshal(*v, &tags)
if err != nil {
return err
}
ebr.Tags = tags
}
case "eTag":
if v != nil {
var eTag string
err = json.Unmarshal(*v, &eTag)
if err != nil {
return err
}
ebr.ETag = &eTag
}
}
}
return nil
}
// EngineBaseResourceList list of BackupEngineBase resources
type EngineBaseResourceList struct {
autorest.Response `json:"-"`
// Value - List of resources.
Value *[]EngineBaseResource `json:"value,omitempty"`
// NextLink - The uri to fetch the next page of resources. Call ListNext() fetches next page of resources.
NextLink *string `json:"nextLink,omitempty"`
}
// EngineBaseResourceListIterator provides access to a complete listing of EngineBaseResource values.
type EngineBaseResourceListIterator struct {
i int
page EngineBaseResourceListPage
}
// Next advances to the next value. If there was an error making
// the request the iterator does not advance and the error is returned.
func (iter *EngineBaseResourceListIterator) Next() error {
iter.i++
if iter.i < len(iter.page.Values()) {
return nil
}
err := iter.page.Next()
if err != nil {
iter.i--
return err
}
iter.i = 0
return nil
}
// NotDone returns true if the enumeration should be started or is not yet complete.
func (iter EngineBaseResourceListIterator) NotDone() bool {
return iter.page.NotDone() && iter.i < len(iter.page.Values())
}
// Response returns the raw server response from the last page request.
func (iter EngineBaseResourceListIterator) Response() EngineBaseResourceList {
return iter.page.Response()
}
// Value returns the current value or a zero-initialized value if the
// iterator has advanced beyond the end of the collection.
func (iter EngineBaseResourceListIterator) Value() EngineBaseResource {
if !iter.page.NotDone() {
return EngineBaseResource{}
}
return iter.page.Values()[iter.i]
}
// IsEmpty returns true if the ListResult contains no values.
func (ebrl EngineBaseResourceList) IsEmpty() bool {
return ebrl.Value == nil || len(*ebrl.Value) == 0
}
// engineBaseResourceListPreparer prepares a request to retrieve the next set of results.
// It returns nil if no more results exist.
func (ebrl EngineBaseResourceList) engineBaseResourceListPreparer() (*http.Request, error) {
if ebrl.NextLink == nil || len(to.String(ebrl.NextLink)) < 1 {
return nil, nil
}
return autorest.Prepare(&http.Request{},
autorest.AsJSON(),
autorest.AsGet(),
autorest.WithBaseURL(to.String(ebrl.NextLink)))
}
// EngineBaseResourceListPage contains a page of EngineBaseResource values.
type EngineBaseResourceListPage struct {
fn func(EngineBaseResourceList) (EngineBaseResourceList, error)
ebrl EngineBaseResourceList
}
// Next advances to the next page of values. If there was an error making
// the request the page does not advance and the error is returned.
func (page *EngineBaseResourceListPage) Next() error {
next, err := page.fn(page.ebrl)
if err != nil {
return err
}
page.ebrl = next
return nil
}
// NotDone returns true if the page enumeration should be started or is not yet complete.
func (page EngineBaseResourceListPage) NotDone() bool {
return !page.ebrl.IsEmpty()
}
// Response returns the raw server response from the last page request.
func (page EngineBaseResourceListPage) Response() EngineBaseResourceList {
return page.ebrl
}
// Values returns the slice of values for the current page or nil if there are no values.
func (page EngineBaseResourceListPage) Values() []EngineBaseResource {
if page.ebrl.IsEmpty() {
return nil
}
return *page.ebrl.Value
}
// EngineExtendedInfo additional information on backup engine.
type EngineExtendedInfo struct {
// DatabaseName - Database name of backup engine.
DatabaseName *string `json:"databaseName,omitempty"`
// ProtectedItemsCount - Number of protected items in the backup engine.
ProtectedItemsCount *int32 `json:"protectedItemsCount,omitempty"`
// ProtectedServersCount - Number of protected servers in the backup engine.
ProtectedServersCount *int32 `json:"protectedServersCount,omitempty"`
// DiskCount - Number of disks in the backup engine.
DiskCount *int32 `json:"diskCount,omitempty"`
// UsedDiskSpace - Diskspace used in the backup engine.
UsedDiskSpace *float64 `json:"usedDiskSpace,omitempty"`
// AvailableDiskSpace - Diskspace currently available in the backup engine.
AvailableDiskSpace *float64 `json:"availableDiskSpace,omitempty"`
// RefreshedAt - Last refresh time in the backup engine.
RefreshedAt *date.Time `json:"refreshedAt,omitempty"`
// AzureProtectedInstances - Protected instances in the backup engine.
AzureProtectedInstances *int32 `json:"azureProtectedInstances,omitempty"`
}
// ErrorDetail error Detail class which encapsulates Code, Message and Recommendations.
type ErrorDetail struct {
// Code - Error code.
Code *string `json:"code,omitempty"`
// Message - Error Message related to the Code.
Message *string `json:"message,omitempty"`
// Recommendations - List of recommendation strings.
Recommendations *[]string `json:"recommendations,omitempty"`
}
// ExportJobsOperationResultInfo this class is used to send blob details after exporting jobs.
type ExportJobsOperationResultInfo struct {
// BlobURL - URL of the blob into which the serialized string of list of jobs is exported.
BlobURL *string `json:"blobUrl,omitempty"`
// BlobSasKey - SAS key to access the blob. It expires in 15 mins.
BlobSasKey *string `json:"blobSasKey,omitempty"`
// ObjectType - Possible values include: 'ObjectTypeOperationResultInfoBase', 'ObjectTypeExportJobsOperationResultInfo', 'ObjectTypeOperationResultInfo'
ObjectType ObjectType `json:"objectType,omitempty"`
}
// MarshalJSON is the custom marshaler for ExportJobsOperationResultInfo.
func (ejori ExportJobsOperationResultInfo) MarshalJSON() ([]byte, error) {
ejori.ObjectType = ObjectTypeExportJobsOperationResultInfo
objectMap := make(map[string]interface{})
if ejori.BlobURL != nil {
objectMap["blobUrl"] = ejori.BlobURL
}
if ejori.BlobSasKey != nil {
objectMap["blobSasKey"] = ejori.BlobSasKey
}
if ejori.ObjectType != "" {
objectMap["objectType"] = ejori.ObjectType
}
return json.Marshal(objectMap)
}
// AsExportJobsOperationResultInfo is the BasicOperationResultInfoBase implementation for ExportJobsOperationResultInfo.
func (ejori ExportJobsOperationResultInfo) AsExportJobsOperationResultInfo() (*ExportJobsOperationResultInfo, bool) {
return &ejori, true
}
// AsOperationResultInfo is the BasicOperationResultInfoBase implementation for ExportJobsOperationResultInfo.
func (ejori ExportJobsOperationResultInfo) AsOperationResultInfo() (*OperationResultInfo, bool) {
return nil, false
}
// AsOperationResultInfoBase is the BasicOperationResultInfoBase implementation for ExportJobsOperationResultInfo.
func (ejori ExportJobsOperationResultInfo) AsOperationResultInfoBase() (*OperationResultInfoBase, bool) {
return nil, false
}
// AsBasicOperationResultInfoBase is the BasicOperationResultInfoBase implementation for ExportJobsOperationResultInfo.
func (ejori ExportJobsOperationResultInfo) AsBasicOperationResultInfoBase() (BasicOperationResultInfoBase, bool) {
return &ejori, true
}
// BasicFeatureSupportRequest base class for feature request
type BasicFeatureSupportRequest interface {
AsAzureVMResourceFeatureSupportRequest() (*AzureVMResourceFeatureSupportRequest, bool)
AsFeatureSupportRequest() (*FeatureSupportRequest, bool)
}
// FeatureSupportRequest base class for feature request
type FeatureSupportRequest struct {
// FeatureType - Possible values include: 'FeatureTypeFeatureSupportRequest', 'FeatureTypeAzureVMResourceBackup'
FeatureType FeatureType `json:"featureType,omitempty"`
}
func unmarshalBasicFeatureSupportRequest(body []byte) (BasicFeatureSupportRequest, error) {
var m map[string]interface{}
err := json.Unmarshal(body, &m)
if err != nil {
return nil, err
}
switch m["featureType"] {
case string(FeatureTypeAzureVMResourceBackup):
var avrfsr AzureVMResourceFeatureSupportRequest
err := json.Unmarshal(body, &avrfsr)
return avrfsr, err
default:
var fsr FeatureSupportRequest
err := json.Unmarshal(body, &fsr)
return fsr, err
}
}
func unmarshalBasicFeatureSupportRequestArray(body []byte) ([]BasicFeatureSupportRequest, error) {
var rawMessages []*json.RawMessage
err := json.Unmarshal(body, &rawMessages)
if err != nil {
return nil, err
}
fsrArray := make([]BasicFeatureSupportRequest, len(rawMessages))
for index, rawMessage := range rawMessages {
fsr, err := unmarshalBasicFeatureSupportRequest(*rawMessage)
if err != nil {
return nil, err
}
fsrArray[index] = fsr
}
return fsrArray, nil
}
// MarshalJSON is the custom marshaler for FeatureSupportRequest.
func (fsr FeatureSupportRequest) MarshalJSON() ([]byte, error) {
fsr.FeatureType = FeatureTypeFeatureSupportRequest
objectMap := make(map[string]interface{})
if fsr.FeatureType != "" {
objectMap["featureType"] = fsr.FeatureType
}
return json.Marshal(objectMap)
}
// AsAzureVMResourceFeatureSupportRequest is the BasicFeatureSupportRequest implementation for FeatureSupportRequest.
func (fsr FeatureSupportRequest) AsAzureVMResourceFeatureSupportRequest() (*AzureVMResourceFeatureSupportRequest, bool) {
return nil, false
}
// AsFeatureSupportRequest is the BasicFeatureSupportRequest implementation for FeatureSupportRequest.
func (fsr FeatureSupportRequest) AsFeatureSupportRequest() (*FeatureSupportRequest, bool) {
return &fsr, true
}
// AsBasicFeatureSupportRequest is the BasicFeatureSupportRequest implementation for FeatureSupportRequest.
func (fsr FeatureSupportRequest) AsBasicFeatureSupportRequest() (BasicFeatureSupportRequest, bool) {
return &fsr, true
}
// GenericContainer base class for generic container of backup items
type GenericContainer struct {
// FabricName - Name of the container's fabric
FabricName *string `json:"fabricName,omitempty"`
// ExtendedInformation - Extended information (not returned in List container API calls)
ExtendedInformation *GenericContainerExtendedInfo `json:"extendedInformation,omitempty"`
// FriendlyName - Friendly name of the container.
FriendlyName *string `json:"friendlyName,omitempty"`
// BackupManagementType - Type of backup managemenent for the container. Possible values include: 'ManagementTypeInvalid', 'ManagementTypeAzureIaasVM', 'ManagementTypeMAB', 'ManagementTypeDPM', 'ManagementTypeAzureBackupServer', 'ManagementTypeAzureSQL', 'ManagementTypeAzureStorage', 'ManagementTypeAzureWorkload', 'ManagementTypeDefaultBackup'
BackupManagementType ManagementType `json:"backupManagementType,omitempty"`
// RegistrationStatus - Status of registration of the container with the Recovery Services Vault.
RegistrationStatus *string `json:"registrationStatus,omitempty"`
// HealthStatus - Status of health of the container.
HealthStatus *string `json:"healthStatus,omitempty"`
// ContainerType - Possible values include: 'ContainerTypeProtectionContainer', 'ContainerTypeAzureBackupServerContainer1', 'ContainerTypeMicrosoftClassicComputevirtualMachines', 'ContainerTypeMicrosoftComputevirtualMachines', 'ContainerTypeSQLAGWorkLoadContainer1', 'ContainerTypeAzureSQLContainer1', 'ContainerTypeStorageContainer1', 'ContainerTypeVMAppContainer1', 'ContainerTypeAzureWorkloadContainer', 'ContainerTypeDPMContainer1', 'ContainerTypeGenericContainer1', 'ContainerTypeIaaSVMContainer', 'ContainerTypeMABWindowsContainer'
ContainerType ContainerTypeBasicProtectionContainer `json:"containerType,omitempty"`
}
// MarshalJSON is the custom marshaler for GenericContainer.
func (gc GenericContainer) MarshalJSON() ([]byte, error) {
gc.ContainerType = ContainerTypeGenericContainer1
objectMap := make(map[string]interface{})
if gc.FabricName != nil {
objectMap["fabricName"] = gc.FabricName
}
if gc.ExtendedInformation != nil {
objectMap["extendedInformation"] = gc.ExtendedInformation
}
if gc.FriendlyName != nil {
objectMap["friendlyName"] = gc.FriendlyName
}
if gc.BackupManagementType != "" {
objectMap["backupManagementType"] = gc.BackupManagementType
}
if gc.RegistrationStatus != nil {
objectMap["registrationStatus"] = gc.RegistrationStatus
}
if gc.HealthStatus != nil {
objectMap["healthStatus"] = gc.HealthStatus
}
if gc.ContainerType != "" {
objectMap["containerType"] = gc.ContainerType
}
return json.Marshal(objectMap)
}
// AsAzureBackupServerContainer is the BasicProtectionContainer implementation for GenericContainer.
func (gc GenericContainer) AsAzureBackupServerContainer() (*AzureBackupServerContainer, bool) {
return nil, false
}
// AsAzureIaaSClassicComputeVMContainer is the BasicProtectionContainer implementation for GenericContainer.
func (gc GenericContainer) AsAzureIaaSClassicComputeVMContainer() (*AzureIaaSClassicComputeVMContainer, bool) {
return nil, false
}
// AsAzureIaaSComputeVMContainer is the BasicProtectionContainer implementation for GenericContainer.
func (gc GenericContainer) AsAzureIaaSComputeVMContainer() (*AzureIaaSComputeVMContainer, bool) {
return nil, false
}
// AsAzureSQLAGWorkloadContainerProtectionContainer is the BasicProtectionContainer implementation for GenericContainer.
func (gc GenericContainer) AsAzureSQLAGWorkloadContainerProtectionContainer() (*AzureSQLAGWorkloadContainerProtectionContainer, bool) {
return nil, false
}
// AsAzureSQLContainer is the BasicProtectionContainer implementation for GenericContainer.
func (gc GenericContainer) AsAzureSQLContainer() (*AzureSQLContainer, bool) {
return nil, false
}
// AsAzureStorageContainer is the BasicProtectionContainer implementation for GenericContainer.
func (gc GenericContainer) AsAzureStorageContainer() (*AzureStorageContainer, bool) {
return nil, false
}
// AsAzureVMAppContainerProtectionContainer is the BasicProtectionContainer implementation for GenericContainer.
func (gc GenericContainer) AsAzureVMAppContainerProtectionContainer() (*AzureVMAppContainerProtectionContainer, bool) {
return nil, false
}
// AsAzureWorkloadContainer is the BasicProtectionContainer implementation for GenericContainer.
func (gc GenericContainer) AsAzureWorkloadContainer() (*AzureWorkloadContainer, bool) {
return nil, false
}
// AsBasicAzureWorkloadContainer is the BasicProtectionContainer implementation for GenericContainer.
func (gc GenericContainer) AsBasicAzureWorkloadContainer() (BasicAzureWorkloadContainer, bool) {
return nil, false
}
// AsDpmContainer is the BasicProtectionContainer implementation for GenericContainer.
func (gc GenericContainer) AsDpmContainer() (*DpmContainer, bool) {
return nil, false
}
// AsGenericContainer is the BasicProtectionContainer implementation for GenericContainer.
func (gc GenericContainer) AsGenericContainer() (*GenericContainer, bool) {
return &gc, true
}
// AsIaaSVMContainer is the BasicProtectionContainer implementation for GenericContainer.
func (gc GenericContainer) AsIaaSVMContainer() (*IaaSVMContainer, bool) {
return nil, false
}
// AsBasicIaaSVMContainer is the BasicProtectionContainer implementation for GenericContainer.
func (gc GenericContainer) AsBasicIaaSVMContainer() (BasicIaaSVMContainer, bool) {
return nil, false
}
// AsMabContainer is the BasicProtectionContainer implementation for GenericContainer.
func (gc GenericContainer) AsMabContainer() (*MabContainer, bool) {
return nil, false
}
// AsProtectionContainer is the BasicProtectionContainer implementation for GenericContainer.
func (gc GenericContainer) AsProtectionContainer() (*ProtectionContainer, bool) {
return nil, false
}
// AsBasicProtectionContainer is the BasicProtectionContainer implementation for GenericContainer.
func (gc GenericContainer) AsBasicProtectionContainer() (BasicProtectionContainer, bool) {
return &gc, true
}
// GenericContainerExtendedInfo container extended information
type GenericContainerExtendedInfo struct {
// RawCertData - Public key of container cert
RawCertData *string `json:"rawCertData,omitempty"`
// ContainerIdentityInfo - Container identity information
ContainerIdentityInfo *ContainerIdentityInfo `json:"containerIdentityInfo,omitempty"`
// ServiceEndpoints - Azure Backup Service Endpoints for the container
ServiceEndpoints map[string]*string `json:"serviceEndpoints"`
}
// MarshalJSON is the custom marshaler for GenericContainerExtendedInfo.
func (gcei GenericContainerExtendedInfo) MarshalJSON() ([]byte, error) {
objectMap := make(map[string]interface{})
if gcei.RawCertData != nil {
objectMap["rawCertData"] = gcei.RawCertData
}
if gcei.ContainerIdentityInfo != nil {
objectMap["containerIdentityInfo"] = gcei.ContainerIdentityInfo
}
if gcei.ServiceEndpoints != nil {
objectMap["serviceEndpoints"] = gcei.ServiceEndpoints
}
return json.Marshal(objectMap)
}
// GenericProtectedItem base class for backup items.
type GenericProtectedItem struct {
// FriendlyName - Friendly name of the container.
FriendlyName *string `json:"friendlyName,omitempty"`
// PolicyState - Indicates consistency of policy object and policy applied to this backup item.
PolicyState *string `json:"policyState,omitempty"`
// ProtectionState - Backup state of this backup item. Possible values include: 'ProtectionStateInvalid', 'ProtectionStateIRPending', 'ProtectionStateProtected', 'ProtectionStateProtectionError', 'ProtectionStateProtectionStopped', 'ProtectionStateProtectionPaused'
ProtectionState ProtectionState `json:"protectionState,omitempty"`
// ProtectedItemID - Data Plane Service ID of the protected item.
ProtectedItemID *int64 `json:"protectedItemId,omitempty"`
// SourceAssociations - Loosely coupled (type, value) associations (example - parent of a protected item)
SourceAssociations map[string]*string `json:"sourceAssociations"`
// FabricName - Name of this backup item's fabric.
FabricName *string `json:"fabricName,omitempty"`
// BackupManagementType - Type of backup managemenent for the backed up item. Possible values include: 'ManagementTypeInvalid', 'ManagementTypeAzureIaasVM', 'ManagementTypeMAB', 'ManagementTypeDPM', 'ManagementTypeAzureBackupServer', 'ManagementTypeAzureSQL', 'ManagementTypeAzureStorage', 'ManagementTypeAzureWorkload', 'ManagementTypeDefaultBackup'
BackupManagementType ManagementType `json:"backupManagementType,omitempty"`
// WorkloadType - Type of workload this item represents. Possible values include: 'DataSourceTypeInvalid', 'DataSourceTypeVM', 'DataSourceTypeFileFolder', 'DataSourceTypeAzureSQLDb', 'DataSourceTypeSQLDB', 'DataSourceTypeExchange', 'DataSourceTypeSharepoint', 'DataSourceTypeVMwareVM', 'DataSourceTypeSystemState', 'DataSourceTypeClient', 'DataSourceTypeGenericDataSource', 'DataSourceTypeSQLDataBase', 'DataSourceTypeAzureFileShare'
WorkloadType DataSourceType `json:"workloadType,omitempty"`
// ContainerName - Unique name of container
ContainerName *string `json:"containerName,omitempty"`
// SourceResourceID - ARM ID of the resource to be backed up.
SourceResourceID *string `json:"sourceResourceId,omitempty"`
// PolicyID - ID of the backup policy with which this item is backed up.
PolicyID *string `json:"policyId,omitempty"`
// LastRecoveryPoint - Timestamp when the last (latest) backup copy was created for this backup item.
LastRecoveryPoint *date.Time `json:"lastRecoveryPoint,omitempty"`
// BackupSetName - Name of the backup set the backup item belongs to
BackupSetName *string `json:"backupSetName,omitempty"`
// ProtectedItemType - Possible values include: 'ProtectedItemTypeProtectedItem', 'ProtectedItemTypeAzureFileShareProtectedItem', 'ProtectedItemTypeMicrosoftClassicComputevirtualMachines', 'ProtectedItemTypeMicrosoftComputevirtualMachines', 'ProtectedItemTypeAzureIaaSVMProtectedItem', 'ProtectedItemTypeMicrosoftSqlserversdatabases', 'ProtectedItemTypeAzureVMWorkloadSQLDatabase', 'ProtectedItemTypeDPMProtectedItem', 'ProtectedItemTypeGenericProtectedItem', 'ProtectedItemTypeMabFileFolderProtectedItem'
ProtectedItemType ProtectedItemType `json:"protectedItemType,omitempty"`
}
// MarshalJSON is the custom marshaler for GenericProtectedItem.
func (gpi GenericProtectedItem) MarshalJSON() ([]byte, error) {
gpi.ProtectedItemType = ProtectedItemTypeGenericProtectedItem
objectMap := make(map[string]interface{})
if gpi.FriendlyName != nil {
objectMap["friendlyName"] = gpi.FriendlyName
}
if gpi.PolicyState != nil {
objectMap["policyState"] = gpi.PolicyState
}
if gpi.ProtectionState != "" {
objectMap["protectionState"] = gpi.ProtectionState
}
if gpi.ProtectedItemID != nil {
objectMap["protectedItemId"] = gpi.ProtectedItemID
}
if gpi.SourceAssociations != nil {
objectMap["sourceAssociations"] = gpi.SourceAssociations
}
if gpi.FabricName != nil {
objectMap["fabricName"] = gpi.FabricName
}
if gpi.BackupManagementType != "" {
objectMap["backupManagementType"] = gpi.BackupManagementType
}
if gpi.WorkloadType != "" {
objectMap["workloadType"] = gpi.WorkloadType
}
if gpi.ContainerName != nil {
objectMap["containerName"] = gpi.ContainerName
}
if gpi.SourceResourceID != nil {
objectMap["sourceResourceId"] = gpi.SourceResourceID
}
if gpi.PolicyID != nil {
objectMap["policyId"] = gpi.PolicyID
}
if gpi.LastRecoveryPoint != nil {
objectMap["lastRecoveryPoint"] = gpi.LastRecoveryPoint
}
if gpi.BackupSetName != nil {
objectMap["backupSetName"] = gpi.BackupSetName
}
if gpi.ProtectedItemType != "" {
objectMap["protectedItemType"] = gpi.ProtectedItemType
}
return json.Marshal(objectMap)
}
// AsAzureFileshareProtectedItem is the BasicProtectedItem implementation for GenericProtectedItem.
func (gpi GenericProtectedItem) AsAzureFileshareProtectedItem() (*AzureFileshareProtectedItem, bool) {
return nil, false
}
// AsAzureIaaSClassicComputeVMProtectedItem is the BasicProtectedItem implementation for GenericProtectedItem.
func (gpi GenericProtectedItem) AsAzureIaaSClassicComputeVMProtectedItem() (*AzureIaaSClassicComputeVMProtectedItem, bool) {
return nil, false
}
// AsAzureIaaSComputeVMProtectedItem is the BasicProtectedItem implementation for GenericProtectedItem.
func (gpi GenericProtectedItem) AsAzureIaaSComputeVMProtectedItem() (*AzureIaaSComputeVMProtectedItem, bool) {
return nil, false
}
// AsAzureIaaSVMProtectedItem is the BasicProtectedItem implementation for GenericProtectedItem.
func (gpi GenericProtectedItem) AsAzureIaaSVMProtectedItem() (*AzureIaaSVMProtectedItem, bool) {
return nil, false
}
// AsBasicAzureIaaSVMProtectedItem is the BasicProtectedItem implementation for GenericProtectedItem.
func (gpi GenericProtectedItem) AsBasicAzureIaaSVMProtectedItem() (BasicAzureIaaSVMProtectedItem, bool) {
return nil, false
}
// AsAzureSQLProtectedItem is the BasicProtectedItem implementation for GenericProtectedItem.
func (gpi GenericProtectedItem) AsAzureSQLProtectedItem() (*AzureSQLProtectedItem, bool) {
return nil, false
}
// AsAzureVMWorkloadSQLDatabaseProtectedItem is the BasicProtectedItem implementation for GenericProtectedItem.
func (gpi GenericProtectedItem) AsAzureVMWorkloadSQLDatabaseProtectedItem() (*AzureVMWorkloadSQLDatabaseProtectedItem, bool) {
return nil, false
}
// AsDPMProtectedItem is the BasicProtectedItem implementation for GenericProtectedItem.
func (gpi GenericProtectedItem) AsDPMProtectedItem() (*DPMProtectedItem, bool) {
return nil, false
}
// AsGenericProtectedItem is the BasicProtectedItem implementation for GenericProtectedItem.
func (gpi GenericProtectedItem) AsGenericProtectedItem() (*GenericProtectedItem, bool) {
return &gpi, true
}
// AsMabFileFolderProtectedItem is the BasicProtectedItem implementation for GenericProtectedItem.
func (gpi GenericProtectedItem) AsMabFileFolderProtectedItem() (*MabFileFolderProtectedItem, bool) {
return nil, false
}
// AsProtectedItem is the BasicProtectedItem implementation for GenericProtectedItem.
func (gpi GenericProtectedItem) AsProtectedItem() (*ProtectedItem, bool) {
return nil, false
}
// AsBasicProtectedItem is the BasicProtectedItem implementation for GenericProtectedItem.
func (gpi GenericProtectedItem) AsBasicProtectedItem() (BasicProtectedItem, bool) {
return &gpi, true
}
// GenericProtectionPolicy azure VM (Mercury) workload-specific backup policy.
type GenericProtectionPolicy struct {
// SubProtectionPolicy - List of sub-protection policies which includes schedule and retention
SubProtectionPolicy *[]SubProtectionPolicy `json:"subProtectionPolicy,omitempty"`
// TimeZone - TimeZone optional input as string. For example: TimeZone = "Pacific Standard Time".
TimeZone *string `json:"timeZone,omitempty"`
// FabricName - Name of this policy's fabric.
FabricName *string `json:"fabricName,omitempty"`
// ProtectedItemsCount - Number of items associated with this policy.
ProtectedItemsCount *int32 `json:"protectedItemsCount,omitempty"`
// BackupManagementType - Possible values include: 'BackupManagementTypeProtectionPolicy', 'BackupManagementTypeAzureStorage', 'BackupManagementTypeAzureIaasVM', 'BackupManagementTypeAzureSQL', 'BackupManagementTypeAzureWorkload', 'BackupManagementTypeGenericProtectionPolicy', 'BackupManagementTypeMAB'
BackupManagementType ManagementTypeBasicProtectionPolicy `json:"backupManagementType,omitempty"`
}
// MarshalJSON is the custom marshaler for GenericProtectionPolicy.
func (gpp GenericProtectionPolicy) MarshalJSON() ([]byte, error) {
gpp.BackupManagementType = BackupManagementTypeGenericProtectionPolicy
objectMap := make(map[string]interface{})
if gpp.SubProtectionPolicy != nil {
objectMap["subProtectionPolicy"] = gpp.SubProtectionPolicy
}
if gpp.TimeZone != nil {
objectMap["timeZone"] = gpp.TimeZone
}
if gpp.FabricName != nil {
objectMap["fabricName"] = gpp.FabricName
}
if gpp.ProtectedItemsCount != nil {
objectMap["protectedItemsCount"] = gpp.ProtectedItemsCount
}
if gpp.BackupManagementType != "" {
objectMap["backupManagementType"] = gpp.BackupManagementType
}
return json.Marshal(objectMap)
}
// AsAzureFileShareProtectionPolicy is the BasicProtectionPolicy implementation for GenericProtectionPolicy.
func (gpp GenericProtectionPolicy) AsAzureFileShareProtectionPolicy() (*AzureFileShareProtectionPolicy, bool) {
return nil, false
}
// AsAzureIaaSVMProtectionPolicy is the BasicProtectionPolicy implementation for GenericProtectionPolicy.
func (gpp GenericProtectionPolicy) AsAzureIaaSVMProtectionPolicy() (*AzureIaaSVMProtectionPolicy, bool) {
return nil, false
}
// AsAzureSQLProtectionPolicy is the BasicProtectionPolicy implementation for GenericProtectionPolicy.
func (gpp GenericProtectionPolicy) AsAzureSQLProtectionPolicy() (*AzureSQLProtectionPolicy, bool) {
return nil, false
}
// AsAzureVMWorkloadProtectionPolicy is the BasicProtectionPolicy implementation for GenericProtectionPolicy.
func (gpp GenericProtectionPolicy) AsAzureVMWorkloadProtectionPolicy() (*AzureVMWorkloadProtectionPolicy, bool) {
return nil, false
}
// AsGenericProtectionPolicy is the BasicProtectionPolicy implementation for GenericProtectionPolicy.
func (gpp GenericProtectionPolicy) AsGenericProtectionPolicy() (*GenericProtectionPolicy, bool) {
return &gpp, true
}
// AsMabProtectionPolicy is the BasicProtectionPolicy implementation for GenericProtectionPolicy.
func (gpp GenericProtectionPolicy) AsMabProtectionPolicy() (*MabProtectionPolicy, bool) {
return nil, false
}
// AsProtectionPolicy is the BasicProtectionPolicy implementation for GenericProtectionPolicy.
func (gpp GenericProtectionPolicy) AsProtectionPolicy() (*ProtectionPolicy, bool) {
return nil, false
}
// AsBasicProtectionPolicy is the BasicProtectionPolicy implementation for GenericProtectionPolicy.
func (gpp GenericProtectionPolicy) AsBasicProtectionPolicy() (BasicProtectionPolicy, bool) {
return &gpp, true
}
// GenericRecoveryPoint generic backup copy.
type GenericRecoveryPoint struct {
// FriendlyName - Friendly name of the backup copy.
FriendlyName *string `json:"friendlyName,omitempty"`
// RecoveryPointType - Type of the backup copy.
RecoveryPointType *string `json:"recoveryPointType,omitempty"`
// RecoveryPointTime - Time at which this backup copy was created.
RecoveryPointTime *date.Time `json:"recoveryPointTime,omitempty"`
// RecoveryPointAdditionalInfo - Additional information associated with this backup copy.
RecoveryPointAdditionalInfo *string `json:"recoveryPointAdditionalInfo,omitempty"`
// ObjectType - Possible values include: 'ObjectTypeRecoveryPoint', 'ObjectTypeAzureFileShareRecoveryPoint', 'ObjectTypeAzureWorkloadRecoveryPoint', 'ObjectTypeAzureWorkloadSQLPointInTimeRecoveryPoint', 'ObjectTypeAzureWorkloadSQLRecoveryPoint', 'ObjectTypeGenericRecoveryPoint', 'ObjectTypeIaasVMRecoveryPoint'
ObjectType ObjectTypeBasicRecoveryPoint `json:"objectType,omitempty"`
}
// MarshalJSON is the custom marshaler for GenericRecoveryPoint.
func (grp GenericRecoveryPoint) MarshalJSON() ([]byte, error) {
grp.ObjectType = ObjectTypeGenericRecoveryPoint
objectMap := make(map[string]interface{})
if grp.FriendlyName != nil {
objectMap["friendlyName"] = grp.FriendlyName
}
if grp.RecoveryPointType != nil {
objectMap["recoveryPointType"] = grp.RecoveryPointType
}
if grp.RecoveryPointTime != nil {
objectMap["recoveryPointTime"] = grp.RecoveryPointTime
}
if grp.RecoveryPointAdditionalInfo != nil {
objectMap["recoveryPointAdditionalInfo"] = grp.RecoveryPointAdditionalInfo
}
if grp.ObjectType != "" {
objectMap["objectType"] = grp.ObjectType
}
return json.Marshal(objectMap)
}
// AsAzureFileShareRecoveryPoint is the BasicRecoveryPoint implementation for GenericRecoveryPoint.
func (grp GenericRecoveryPoint) AsAzureFileShareRecoveryPoint() (*AzureFileShareRecoveryPoint, bool) {
return nil, false
}
// AsAzureWorkloadRecoveryPoint is the BasicRecoveryPoint implementation for GenericRecoveryPoint.
func (grp GenericRecoveryPoint) AsAzureWorkloadRecoveryPoint() (*AzureWorkloadRecoveryPoint, bool) {
return nil, false
}
// AsBasicAzureWorkloadRecoveryPoint is the BasicRecoveryPoint implementation for GenericRecoveryPoint.
func (grp GenericRecoveryPoint) AsBasicAzureWorkloadRecoveryPoint() (BasicAzureWorkloadRecoveryPoint, bool) {
return nil, false
}
// AsAzureWorkloadSQLPointInTimeRecoveryPoint is the BasicRecoveryPoint implementation for GenericRecoveryPoint.
func (grp GenericRecoveryPoint) AsAzureWorkloadSQLPointInTimeRecoveryPoint() (*AzureWorkloadSQLPointInTimeRecoveryPoint, bool) {
return nil, false
}
// AsAzureWorkloadSQLRecoveryPoint is the BasicRecoveryPoint implementation for GenericRecoveryPoint.
func (grp GenericRecoveryPoint) AsAzureWorkloadSQLRecoveryPoint() (*AzureWorkloadSQLRecoveryPoint, bool) {
return nil, false
}
// AsBasicAzureWorkloadSQLRecoveryPoint is the BasicRecoveryPoint implementation for GenericRecoveryPoint.
func (grp GenericRecoveryPoint) AsBasicAzureWorkloadSQLRecoveryPoint() (BasicAzureWorkloadSQLRecoveryPoint, bool) {
return nil, false
}
// AsGenericRecoveryPoint is the BasicRecoveryPoint implementation for GenericRecoveryPoint.
func (grp GenericRecoveryPoint) AsGenericRecoveryPoint() (*GenericRecoveryPoint, bool) {
return &grp, true
}
// AsIaasVMRecoveryPoint is the BasicRecoveryPoint implementation for GenericRecoveryPoint.
func (grp GenericRecoveryPoint) AsIaasVMRecoveryPoint() (*IaasVMRecoveryPoint, bool) {
return nil, false
}
// AsRecoveryPoint is the BasicRecoveryPoint implementation for GenericRecoveryPoint.
func (grp GenericRecoveryPoint) AsRecoveryPoint() (*RecoveryPoint, bool) {
return nil, false
}
// AsBasicRecoveryPoint is the BasicRecoveryPoint implementation for GenericRecoveryPoint.
func (grp GenericRecoveryPoint) AsBasicRecoveryPoint() (BasicRecoveryPoint, bool) {
return &grp, true
}
// GetProtectedItemQueryObject filters to list backup items.
type GetProtectedItemQueryObject struct {
// Expand - Specifies if the additional information should be provided for this item.
Expand *string `json:"expand,omitempty"`
}
// IaasVMBackupRequest iaaS VM workload-specific backup request.
type IaasVMBackupRequest struct {
// RecoveryPointExpiryTimeInUTC - Backup copy will expire after the time specified (UTC).
RecoveryPointExpiryTimeInUTC *date.Time `json:"recoveryPointExpiryTimeInUTC,omitempty"`
// ObjectType - Possible values include: 'ObjectTypeBackupRequest', 'ObjectTypeAzureFileShareBackupRequest', 'ObjectTypeAzureWorkloadBackupRequest', 'ObjectTypeIaasVMBackupRequest'
ObjectType ObjectTypeBasicBackupRequest `json:"objectType,omitempty"`
}
// MarshalJSON is the custom marshaler for IaasVMBackupRequest.
func (ivbr IaasVMBackupRequest) MarshalJSON() ([]byte, error) {
ivbr.ObjectType = ObjectTypeIaasVMBackupRequest
objectMap := make(map[string]interface{})
if ivbr.RecoveryPointExpiryTimeInUTC != nil {
objectMap["recoveryPointExpiryTimeInUTC"] = ivbr.RecoveryPointExpiryTimeInUTC
}
if ivbr.ObjectType != "" {
objectMap["objectType"] = ivbr.ObjectType
}
return json.Marshal(objectMap)
}
// AsAzureFileShareBackupRequest is the BasicRequest implementation for IaasVMBackupRequest.
func (ivbr IaasVMBackupRequest) AsAzureFileShareBackupRequest() (*AzureFileShareBackupRequest, bool) {
return nil, false
}
// AsAzureWorkloadBackupRequest is the BasicRequest implementation for IaasVMBackupRequest.
func (ivbr IaasVMBackupRequest) AsAzureWorkloadBackupRequest() (*AzureWorkloadBackupRequest, bool) {
return nil, false
}
// AsIaasVMBackupRequest is the BasicRequest implementation for IaasVMBackupRequest.
func (ivbr IaasVMBackupRequest) AsIaasVMBackupRequest() (*IaasVMBackupRequest, bool) {
return &ivbr, true
}
// AsRequest is the BasicRequest implementation for IaasVMBackupRequest.
func (ivbr IaasVMBackupRequest) AsRequest() (*Request, bool) {
return nil, false
}
// AsBasicRequest is the BasicRequest implementation for IaasVMBackupRequest.
func (ivbr IaasVMBackupRequest) AsBasicRequest() (BasicRequest, bool) {
return &ivbr, true
}
// BasicIaaSVMContainer iaaS VM workload-specific container.
type BasicIaaSVMContainer interface {
AsAzureIaaSClassicComputeVMContainer() (*AzureIaaSClassicComputeVMContainer, bool)
AsAzureIaaSComputeVMContainer() (*AzureIaaSComputeVMContainer, bool)
AsIaaSVMContainer() (*IaaSVMContainer, bool)
}
// IaaSVMContainer iaaS VM workload-specific container.
type IaaSVMContainer struct {
// VirtualMachineID - Fully qualified ARM url of the virtual machine represented by this Azure IaaS VM container.
VirtualMachineID *string `json:"virtualMachineId,omitempty"`
// VirtualMachineVersion - Specifies whether the container represents a Classic or an Azure Resource Manager VM.
VirtualMachineVersion *string `json:"virtualMachineVersion,omitempty"`
// ResourceGroup - Resource group name of Recovery Services Vault.
ResourceGroup *string `json:"resourceGroup,omitempty"`
// FriendlyName - Friendly name of the container.
FriendlyName *string `json:"friendlyName,omitempty"`
// BackupManagementType - Type of backup managemenent for the container. Possible values include: 'ManagementTypeInvalid', 'ManagementTypeAzureIaasVM', 'ManagementTypeMAB', 'ManagementTypeDPM', 'ManagementTypeAzureBackupServer', 'ManagementTypeAzureSQL', 'ManagementTypeAzureStorage', 'ManagementTypeAzureWorkload', 'ManagementTypeDefaultBackup'
BackupManagementType ManagementType `json:"backupManagementType,omitempty"`
// RegistrationStatus - Status of registration of the container with the Recovery Services Vault.
RegistrationStatus *string `json:"registrationStatus,omitempty"`
// HealthStatus - Status of health of the container.
HealthStatus *string `json:"healthStatus,omitempty"`
// ContainerType - Possible values include: 'ContainerTypeProtectionContainer', 'ContainerTypeAzureBackupServerContainer1', 'ContainerTypeMicrosoftClassicComputevirtualMachines', 'ContainerTypeMicrosoftComputevirtualMachines', 'ContainerTypeSQLAGWorkLoadContainer1', 'ContainerTypeAzureSQLContainer1', 'ContainerTypeStorageContainer1', 'ContainerTypeVMAppContainer1', 'ContainerTypeAzureWorkloadContainer', 'ContainerTypeDPMContainer1', 'ContainerTypeGenericContainer1', 'ContainerTypeIaaSVMContainer', 'ContainerTypeMABWindowsContainer'
ContainerType ContainerTypeBasicProtectionContainer `json:"containerType,omitempty"`
}
func unmarshalBasicIaaSVMContainer(body []byte) (BasicIaaSVMContainer, error) {
var m map[string]interface{}
err := json.Unmarshal(body, &m)
if err != nil {
return nil, err
}
switch m["containerType"] {
case string(ContainerTypeMicrosoftClassicComputevirtualMachines):
var aisccvc AzureIaaSClassicComputeVMContainer
err := json.Unmarshal(body, &aisccvc)
return aisccvc, err
case string(ContainerTypeMicrosoftComputevirtualMachines):
var aiscvc AzureIaaSComputeVMContainer
err := json.Unmarshal(body, &aiscvc)
return aiscvc, err
default:
var isc IaaSVMContainer
err := json.Unmarshal(body, &isc)
return isc, err
}
}
func unmarshalBasicIaaSVMContainerArray(body []byte) ([]BasicIaaSVMContainer, error) {
var rawMessages []*json.RawMessage
err := json.Unmarshal(body, &rawMessages)
if err != nil {
return nil, err
}
iscArray := make([]BasicIaaSVMContainer, len(rawMessages))
for index, rawMessage := range rawMessages {
isc, err := unmarshalBasicIaaSVMContainer(*rawMessage)
if err != nil {
return nil, err
}
iscArray[index] = isc
}
return iscArray, nil
}
// MarshalJSON is the custom marshaler for IaaSVMContainer.
func (isc IaaSVMContainer) MarshalJSON() ([]byte, error) {
isc.ContainerType = ContainerTypeIaaSVMContainer
objectMap := make(map[string]interface{})
if isc.VirtualMachineID != nil {
objectMap["virtualMachineId"] = isc.VirtualMachineID
}
if isc.VirtualMachineVersion != nil {
objectMap["virtualMachineVersion"] = isc.VirtualMachineVersion
}
if isc.ResourceGroup != nil {
objectMap["resourceGroup"] = isc.ResourceGroup
}
if isc.FriendlyName != nil {
objectMap["friendlyName"] = isc.FriendlyName
}
if isc.BackupManagementType != "" {
objectMap["backupManagementType"] = isc.BackupManagementType
}
if isc.RegistrationStatus != nil {
objectMap["registrationStatus"] = isc.RegistrationStatus
}
if isc.HealthStatus != nil {
objectMap["healthStatus"] = isc.HealthStatus
}
if isc.ContainerType != "" {
objectMap["containerType"] = isc.ContainerType
}
return json.Marshal(objectMap)
}
// AsAzureBackupServerContainer is the BasicProtectionContainer implementation for IaaSVMContainer.
func (isc IaaSVMContainer) AsAzureBackupServerContainer() (*AzureBackupServerContainer, bool) {
return nil, false
}
// AsAzureIaaSClassicComputeVMContainer is the BasicProtectionContainer implementation for IaaSVMContainer.
func (isc IaaSVMContainer) AsAzureIaaSClassicComputeVMContainer() (*AzureIaaSClassicComputeVMContainer, bool) {
return nil, false
}
// AsAzureIaaSComputeVMContainer is the BasicProtectionContainer implementation for IaaSVMContainer.
func (isc IaaSVMContainer) AsAzureIaaSComputeVMContainer() (*AzureIaaSComputeVMContainer, bool) {
return nil, false
}
// AsAzureSQLAGWorkloadContainerProtectionContainer is the BasicProtectionContainer implementation for IaaSVMContainer.
func (isc IaaSVMContainer) AsAzureSQLAGWorkloadContainerProtectionContainer() (*AzureSQLAGWorkloadContainerProtectionContainer, bool) {
return nil, false
}
// AsAzureSQLContainer is the BasicProtectionContainer implementation for IaaSVMContainer.
func (isc IaaSVMContainer) AsAzureSQLContainer() (*AzureSQLContainer, bool) {
return nil, false
}
// AsAzureStorageContainer is the BasicProtectionContainer implementation for IaaSVMContainer.
func (isc IaaSVMContainer) AsAzureStorageContainer() (*AzureStorageContainer, bool) {
return nil, false
}
// AsAzureVMAppContainerProtectionContainer is the BasicProtectionContainer implementation for IaaSVMContainer.
func (isc IaaSVMContainer) AsAzureVMAppContainerProtectionContainer() (*AzureVMAppContainerProtectionContainer, bool) {
return nil, false
}
// AsAzureWorkloadContainer is the BasicProtectionContainer implementation for IaaSVMContainer.
func (isc IaaSVMContainer) AsAzureWorkloadContainer() (*AzureWorkloadContainer, bool) {
return nil, false
}
// AsBasicAzureWorkloadContainer is the BasicProtectionContainer implementation for IaaSVMContainer.
func (isc IaaSVMContainer) AsBasicAzureWorkloadContainer() (BasicAzureWorkloadContainer, bool) {
return nil, false
}
// AsDpmContainer is the BasicProtectionContainer implementation for IaaSVMContainer.
func (isc IaaSVMContainer) AsDpmContainer() (*DpmContainer, bool) {
return nil, false
}
// AsGenericContainer is the BasicProtectionContainer implementation for IaaSVMContainer.
func (isc IaaSVMContainer) AsGenericContainer() (*GenericContainer, bool) {
return nil, false
}
// AsIaaSVMContainer is the BasicProtectionContainer implementation for IaaSVMContainer.
func (isc IaaSVMContainer) AsIaaSVMContainer() (*IaaSVMContainer, bool) {
return &isc, true
}
// AsBasicIaaSVMContainer is the BasicProtectionContainer implementation for IaaSVMContainer.
func (isc IaaSVMContainer) AsBasicIaaSVMContainer() (BasicIaaSVMContainer, bool) {
return &isc, true
}
// AsMabContainer is the BasicProtectionContainer implementation for IaaSVMContainer.
func (isc IaaSVMContainer) AsMabContainer() (*MabContainer, bool) {
return nil, false
}
// AsProtectionContainer is the BasicProtectionContainer implementation for IaaSVMContainer.
func (isc IaaSVMContainer) AsProtectionContainer() (*ProtectionContainer, bool) {
return nil, false
}
// AsBasicProtectionContainer is the BasicProtectionContainer implementation for IaaSVMContainer.
func (isc IaaSVMContainer) AsBasicProtectionContainer() (BasicProtectionContainer, bool) {
return &isc, true
}
// IaasVMILRRegistrationRequest restore files/folders from a backup copy of IaaS VM.
type IaasVMILRRegistrationRequest struct {
// RecoveryPointID - ID of the IaaS VM backup copy from where the files/folders have to be restored.
RecoveryPointID *string `json:"recoveryPointId,omitempty"`
// VirtualMachineID - Fully qualified ARM ID of the virtual machine whose the files / folders have to be restored.
VirtualMachineID *string `json:"virtualMachineId,omitempty"`
// InitiatorName - iSCSI initiator name.
InitiatorName *string `json:"initiatorName,omitempty"`
// RenewExistingRegistration - Whether to renew existing registration with the iSCSI server.
RenewExistingRegistration *bool `json:"renewExistingRegistration,omitempty"`
// ObjectType - Possible values include: 'ObjectTypeILRRequest', 'ObjectTypeIaasVMILRRegistrationRequest'
ObjectType ObjectTypeBasicILRRequest `json:"objectType,omitempty"`
}
// MarshalJSON is the custom marshaler for IaasVMILRRegistrationRequest.
func (ivrr IaasVMILRRegistrationRequest) MarshalJSON() ([]byte, error) {
ivrr.ObjectType = ObjectTypeIaasVMILRRegistrationRequest
objectMap := make(map[string]interface{})
if ivrr.RecoveryPointID != nil {
objectMap["recoveryPointId"] = ivrr.RecoveryPointID
}
if ivrr.VirtualMachineID != nil {
objectMap["virtualMachineId"] = ivrr.VirtualMachineID
}
if ivrr.InitiatorName != nil {
objectMap["initiatorName"] = ivrr.InitiatorName
}
if ivrr.RenewExistingRegistration != nil {
objectMap["renewExistingRegistration"] = ivrr.RenewExistingRegistration
}
if ivrr.ObjectType != "" {
objectMap["objectType"] = ivrr.ObjectType
}
return json.Marshal(objectMap)
}
// AsIaasVMILRRegistrationRequest is the BasicILRRequest implementation for IaasVMILRRegistrationRequest.
func (ivrr IaasVMILRRegistrationRequest) AsIaasVMILRRegistrationRequest() (*IaasVMILRRegistrationRequest, bool) {
return &ivrr, true
}
// AsILRRequest is the BasicILRRequest implementation for IaasVMILRRegistrationRequest.
func (ivrr IaasVMILRRegistrationRequest) AsILRRequest() (*ILRRequest, bool) {
return nil, false
}
// AsBasicILRRequest is the BasicILRRequest implementation for IaasVMILRRegistrationRequest.
func (ivrr IaasVMILRRegistrationRequest) AsBasicILRRequest() (BasicILRRequest, bool) {
return &ivrr, true
}
// BasicIaaSVMProtectableItem iaaS VM workload-specific backup item.
type BasicIaaSVMProtectableItem interface {
AsAzureIaaSClassicComputeVMProtectableItem() (*AzureIaaSClassicComputeVMProtectableItem, bool)
AsAzureIaaSComputeVMProtectableItem() (*AzureIaaSComputeVMProtectableItem, bool)
AsIaaSVMProtectableItem() (*IaaSVMProtectableItem, bool)
}
// IaaSVMProtectableItem iaaS VM workload-specific backup item.
type IaaSVMProtectableItem struct {
// VirtualMachineID - Fully qualified ARM ID of the virtual machine.
VirtualMachineID *string `json:"virtualMachineId,omitempty"`
// BackupManagementType - Type of backup managemenent to backup an item.
BackupManagementType *string `json:"backupManagementType,omitempty"`
// WorkloadType - Type of workload for the backup management
WorkloadType *string `json:"workloadType,omitempty"`
// FriendlyName - Friendly name of the backup item.
FriendlyName *string `json:"friendlyName,omitempty"`
// ProtectionState - State of the back up item. Possible values include: 'ProtectionStatusInvalid', 'ProtectionStatusNotProtected', 'ProtectionStatusProtecting', 'ProtectionStatusProtected', 'ProtectionStatusProtectionFailed'
ProtectionState ProtectionStatus `json:"protectionState,omitempty"`
// ProtectableItemType - Possible values include: 'ProtectableItemTypeWorkloadProtectableItem', 'ProtectableItemTypeAzureFileShare', 'ProtectableItemTypeMicrosoftClassicComputevirtualMachines', 'ProtectableItemTypeMicrosoftComputevirtualMachines', 'ProtectableItemTypeAzureVMWorkloadProtectableItem', 'ProtectableItemTypeSQLAvailabilityGroupContainer', 'ProtectableItemTypeSQLDataBase', 'ProtectableItemTypeSQLInstance', 'ProtectableItemTypeIaaSVMProtectableItem'
ProtectableItemType ProtectableItemType `json:"protectableItemType,omitempty"`
}
func unmarshalBasicIaaSVMProtectableItem(body []byte) (BasicIaaSVMProtectableItem, error) {
var m map[string]interface{}
err := json.Unmarshal(body, &m)
if err != nil {
return nil, err
}
switch m["protectableItemType"] {
case string(ProtectableItemTypeMicrosoftClassicComputevirtualMachines):
var aisccvpi AzureIaaSClassicComputeVMProtectableItem
err := json.Unmarshal(body, &aisccvpi)
return aisccvpi, err
case string(ProtectableItemTypeMicrosoftComputevirtualMachines):
var aiscvpi AzureIaaSComputeVMProtectableItem
err := json.Unmarshal(body, &aiscvpi)
return aiscvpi, err
default:
var ispi IaaSVMProtectableItem
err := json.Unmarshal(body, &ispi)
return ispi, err
}
}
func unmarshalBasicIaaSVMProtectableItemArray(body []byte) ([]BasicIaaSVMProtectableItem, error) {
var rawMessages []*json.RawMessage
err := json.Unmarshal(body, &rawMessages)
if err != nil {
return nil, err
}
ispiArray := make([]BasicIaaSVMProtectableItem, len(rawMessages))
for index, rawMessage := range rawMessages {
ispi, err := unmarshalBasicIaaSVMProtectableItem(*rawMessage)
if err != nil {
return nil, err
}
ispiArray[index] = ispi
}
return ispiArray, nil
}
// MarshalJSON is the custom marshaler for IaaSVMProtectableItem.
func (ispi IaaSVMProtectableItem) MarshalJSON() ([]byte, error) {
ispi.ProtectableItemType = ProtectableItemTypeIaaSVMProtectableItem
objectMap := make(map[string]interface{})
if ispi.VirtualMachineID != nil {
objectMap["virtualMachineId"] = ispi.VirtualMachineID
}
if ispi.BackupManagementType != nil {
objectMap["backupManagementType"] = ispi.BackupManagementType
}
if ispi.WorkloadType != nil {
objectMap["workloadType"] = ispi.WorkloadType
}
if ispi.FriendlyName != nil {
objectMap["friendlyName"] = ispi.FriendlyName
}
if ispi.ProtectionState != "" {
objectMap["protectionState"] = ispi.ProtectionState
}
if ispi.ProtectableItemType != "" {
objectMap["protectableItemType"] = ispi.ProtectableItemType
}
return json.Marshal(objectMap)
}
// AsAzureFileShareProtectableItem is the BasicWorkloadProtectableItem implementation for IaaSVMProtectableItem.
func (ispi IaaSVMProtectableItem) AsAzureFileShareProtectableItem() (*AzureFileShareProtectableItem, bool) {
return nil, false
}
// AsAzureIaaSClassicComputeVMProtectableItem is the BasicWorkloadProtectableItem implementation for IaaSVMProtectableItem.
func (ispi IaaSVMProtectableItem) AsAzureIaaSClassicComputeVMProtectableItem() (*AzureIaaSClassicComputeVMProtectableItem, bool) {
return nil, false
}
// AsAzureIaaSComputeVMProtectableItem is the BasicWorkloadProtectableItem implementation for IaaSVMProtectableItem.
func (ispi IaaSVMProtectableItem) AsAzureIaaSComputeVMProtectableItem() (*AzureIaaSComputeVMProtectableItem, bool) {
return nil, false
}
// AsAzureVMWorkloadProtectableItem is the BasicWorkloadProtectableItem implementation for IaaSVMProtectableItem.
func (ispi IaaSVMProtectableItem) AsAzureVMWorkloadProtectableItem() (*AzureVMWorkloadProtectableItem, bool) {
return nil, false
}
// AsBasicAzureVMWorkloadProtectableItem is the BasicWorkloadProtectableItem implementation for IaaSVMProtectableItem.
func (ispi IaaSVMProtectableItem) AsBasicAzureVMWorkloadProtectableItem() (BasicAzureVMWorkloadProtectableItem, bool) {
return nil, false
}
// AsAzureVMWorkloadSQLAvailabilityGroupProtectableItem is the BasicWorkloadProtectableItem implementation for IaaSVMProtectableItem.
func (ispi IaaSVMProtectableItem) AsAzureVMWorkloadSQLAvailabilityGroupProtectableItem() (*AzureVMWorkloadSQLAvailabilityGroupProtectableItem, bool) {
return nil, false
}
// AsAzureVMWorkloadSQLDatabaseProtectableItem is the BasicWorkloadProtectableItem implementation for IaaSVMProtectableItem.
func (ispi IaaSVMProtectableItem) AsAzureVMWorkloadSQLDatabaseProtectableItem() (*AzureVMWorkloadSQLDatabaseProtectableItem, bool) {
return nil, false
}
// AsAzureVMWorkloadSQLInstanceProtectableItem is the BasicWorkloadProtectableItem implementation for IaaSVMProtectableItem.
func (ispi IaaSVMProtectableItem) AsAzureVMWorkloadSQLInstanceProtectableItem() (*AzureVMWorkloadSQLInstanceProtectableItem, bool) {
return nil, false
}
// AsIaaSVMProtectableItem is the BasicWorkloadProtectableItem implementation for IaaSVMProtectableItem.
func (ispi IaaSVMProtectableItem) AsIaaSVMProtectableItem() (*IaaSVMProtectableItem, bool) {
return &ispi, true
}
// AsBasicIaaSVMProtectableItem is the BasicWorkloadProtectableItem implementation for IaaSVMProtectableItem.
func (ispi IaaSVMProtectableItem) AsBasicIaaSVMProtectableItem() (BasicIaaSVMProtectableItem, bool) {
return &ispi, true
}
// AsWorkloadProtectableItem is the BasicWorkloadProtectableItem implementation for IaaSVMProtectableItem.
func (ispi IaaSVMProtectableItem) AsWorkloadProtectableItem() (*WorkloadProtectableItem, bool) {
return nil, false
}
// AsBasicWorkloadProtectableItem is the BasicWorkloadProtectableItem implementation for IaaSVMProtectableItem.
func (ispi IaaSVMProtectableItem) AsBasicWorkloadProtectableItem() (BasicWorkloadProtectableItem, bool) {
return &ispi, true
}
// IaasVMRecoveryPoint iaaS VM workload specific backup copy.
type IaasVMRecoveryPoint struct {
// RecoveryPointType - Type of the backup copy.
RecoveryPointType *string `json:"recoveryPointType,omitempty"`
// RecoveryPointTime - Time at which this backup copy was created.
RecoveryPointTime *date.Time `json:"recoveryPointTime,omitempty"`
// RecoveryPointAdditionalInfo - Additional information associated with this backup copy.
RecoveryPointAdditionalInfo *string `json:"recoveryPointAdditionalInfo,omitempty"`
// SourceVMStorageType - Storage type of the VM whose backup copy is created.
SourceVMStorageType *string `json:"sourceVMStorageType,omitempty"`
// IsSourceVMEncrypted - Identifies whether the VM was encrypted when the backup copy is created.
IsSourceVMEncrypted *bool `json:"isSourceVMEncrypted,omitempty"`
// KeyAndSecret - Required details for recovering an encrypted VM. Applicable only when IsSourceVMEncrypted is true.
KeyAndSecret *KeyAndSecretDetails `json:"keyAndSecret,omitempty"`
// IsInstantIlrSessionActive - Is the session to recover items from this backup copy still active.
IsInstantIlrSessionActive *bool `json:"isInstantIlrSessionActive,omitempty"`
// RecoveryPointTierDetails - Recovery point tier information.
RecoveryPointTierDetails *[]RecoveryPointTierInformation `json:"recoveryPointTierDetails,omitempty"`
// IsManagedVirtualMachine - Whether VM is with Managed Disks
IsManagedVirtualMachine *bool `json:"isManagedVirtualMachine,omitempty"`
// VirtualMachineSize - Virtual Machine Size
VirtualMachineSize *string `json:"virtualMachineSize,omitempty"`
// OriginalStorageAccountOption - Original SA Option
OriginalStorageAccountOption *bool `json:"originalStorageAccountOption,omitempty"`
// ObjectType - Possible values include: 'ObjectTypeRecoveryPoint', 'ObjectTypeAzureFileShareRecoveryPoint', 'ObjectTypeAzureWorkloadRecoveryPoint', 'ObjectTypeAzureWorkloadSQLPointInTimeRecoveryPoint', 'ObjectTypeAzureWorkloadSQLRecoveryPoint', 'ObjectTypeGenericRecoveryPoint', 'ObjectTypeIaasVMRecoveryPoint'
ObjectType ObjectTypeBasicRecoveryPoint `json:"objectType,omitempty"`
}
// MarshalJSON is the custom marshaler for IaasVMRecoveryPoint.
func (ivrp IaasVMRecoveryPoint) MarshalJSON() ([]byte, error) {
ivrp.ObjectType = ObjectTypeIaasVMRecoveryPoint
objectMap := make(map[string]interface{})
if ivrp.RecoveryPointType != nil {
objectMap["recoveryPointType"] = ivrp.RecoveryPointType
}
if ivrp.RecoveryPointTime != nil {
objectMap["recoveryPointTime"] = ivrp.RecoveryPointTime
}
if ivrp.RecoveryPointAdditionalInfo != nil {
objectMap["recoveryPointAdditionalInfo"] = ivrp.RecoveryPointAdditionalInfo
}
if ivrp.SourceVMStorageType != nil {
objectMap["sourceVMStorageType"] = ivrp.SourceVMStorageType
}
if ivrp.IsSourceVMEncrypted != nil {
objectMap["isSourceVMEncrypted"] = ivrp.IsSourceVMEncrypted
}
if ivrp.KeyAndSecret != nil {
objectMap["keyAndSecret"] = ivrp.KeyAndSecret
}
if ivrp.IsInstantIlrSessionActive != nil {
objectMap["isInstantIlrSessionActive"] = ivrp.IsInstantIlrSessionActive
}
if ivrp.RecoveryPointTierDetails != nil {
objectMap["recoveryPointTierDetails"] = ivrp.RecoveryPointTierDetails
}
if ivrp.IsManagedVirtualMachine != nil {
objectMap["isManagedVirtualMachine"] = ivrp.IsManagedVirtualMachine
}
if ivrp.VirtualMachineSize != nil {
objectMap["virtualMachineSize"] = ivrp.VirtualMachineSize
}
if ivrp.OriginalStorageAccountOption != nil {
objectMap["originalStorageAccountOption"] = ivrp.OriginalStorageAccountOption
}
if ivrp.ObjectType != "" {
objectMap["objectType"] = ivrp.ObjectType
}
return json.Marshal(objectMap)
}
// AsAzureFileShareRecoveryPoint is the BasicRecoveryPoint implementation for IaasVMRecoveryPoint.
func (ivrp IaasVMRecoveryPoint) AsAzureFileShareRecoveryPoint() (*AzureFileShareRecoveryPoint, bool) {
return nil, false
}
// AsAzureWorkloadRecoveryPoint is the BasicRecoveryPoint implementation for IaasVMRecoveryPoint.
func (ivrp IaasVMRecoveryPoint) AsAzureWorkloadRecoveryPoint() (*AzureWorkloadRecoveryPoint, bool) {
return nil, false
}
// AsBasicAzureWorkloadRecoveryPoint is the BasicRecoveryPoint implementation for IaasVMRecoveryPoint.
func (ivrp IaasVMRecoveryPoint) AsBasicAzureWorkloadRecoveryPoint() (BasicAzureWorkloadRecoveryPoint, bool) {
return nil, false
}
// AsAzureWorkloadSQLPointInTimeRecoveryPoint is the BasicRecoveryPoint implementation for IaasVMRecoveryPoint.
func (ivrp IaasVMRecoveryPoint) AsAzureWorkloadSQLPointInTimeRecoveryPoint() (*AzureWorkloadSQLPointInTimeRecoveryPoint, bool) {
return nil, false
}
// AsAzureWorkloadSQLRecoveryPoint is the BasicRecoveryPoint implementation for IaasVMRecoveryPoint.
func (ivrp IaasVMRecoveryPoint) AsAzureWorkloadSQLRecoveryPoint() (*AzureWorkloadSQLRecoveryPoint, bool) {
return nil, false
}
// AsBasicAzureWorkloadSQLRecoveryPoint is the BasicRecoveryPoint implementation for IaasVMRecoveryPoint.
func (ivrp IaasVMRecoveryPoint) AsBasicAzureWorkloadSQLRecoveryPoint() (BasicAzureWorkloadSQLRecoveryPoint, bool) {
return nil, false
}
// AsGenericRecoveryPoint is the BasicRecoveryPoint implementation for IaasVMRecoveryPoint.
func (ivrp IaasVMRecoveryPoint) AsGenericRecoveryPoint() (*GenericRecoveryPoint, bool) {
return nil, false
}
// AsIaasVMRecoveryPoint is the BasicRecoveryPoint implementation for IaasVMRecoveryPoint.
func (ivrp IaasVMRecoveryPoint) AsIaasVMRecoveryPoint() (*IaasVMRecoveryPoint, bool) {
return &ivrp, true
}
// AsRecoveryPoint is the BasicRecoveryPoint implementation for IaasVMRecoveryPoint.
func (ivrp IaasVMRecoveryPoint) AsRecoveryPoint() (*RecoveryPoint, bool) {
return nil, false
}
// AsBasicRecoveryPoint is the BasicRecoveryPoint implementation for IaasVMRecoveryPoint.
func (ivrp IaasVMRecoveryPoint) AsBasicRecoveryPoint() (BasicRecoveryPoint, bool) {
return &ivrp, true
}
// IaasVMRestoreRequest iaaS VM workload-specific restore.
type IaasVMRestoreRequest struct {
// RecoveryPointID - ID of the backup copy to be recovered.
RecoveryPointID *string `json:"recoveryPointId,omitempty"`
// RecoveryType - Type of this recovery. Possible values include: 'RecoveryTypeInvalid', 'RecoveryTypeOriginalLocation', 'RecoveryTypeAlternateLocation', 'RecoveryTypeRestoreDisks'
RecoveryType RecoveryType `json:"recoveryType,omitempty"`
// SourceResourceID - Fully qualified ARM ID of the VM which is being recovered.
SourceResourceID *string `json:"sourceResourceId,omitempty"`
// TargetVirtualMachineID - This is the complete ARM Id of the VM that will be created.
// For e.g. /subscriptions/{subId}/resourcegroups/{rg}/provider/Microsoft.Compute/virtualmachines/{vm}
TargetVirtualMachineID *string `json:"targetVirtualMachineId,omitempty"`
// TargetResourceGroupID - This is the ARM Id of the resource group that you want to create for this Virtual machine and other artifacts.
// For e.g. /subscriptions/{subId}/resourcegroups/{rg}
TargetResourceGroupID *string `json:"targetResourceGroupId,omitempty"`
// StorageAccountID - Fully qualified ARM ID of the storage account to which the VM has to be restored.
StorageAccountID *string `json:"storageAccountId,omitempty"`
// VirtualNetworkID - This is the virtual network Id of the vnet that will be attached to the virtual machine.
// User will be validated for join action permissions in the linked access.
VirtualNetworkID *string `json:"virtualNetworkId,omitempty"`
// SubnetID - Subnet ID, is the subnet ID associated with the to be restored VM. For Classic VMs it would be {VnetID}/Subnet/{SubnetName} and, for the Azure Resource Manager VMs it would be ARM resource ID used to represent the subnet.
SubnetID *string `json:"subnetId,omitempty"`
// TargetDomainNameID - Fully qualified ARM ID of the domain name to be associated to the VM being restored. This applies only to Classic Virtual Machines.
TargetDomainNameID *string `json:"targetDomainNameId,omitempty"`
// Region - Region in which the virtual machine is restored.
Region *string `json:"region,omitempty"`
// AffinityGroup - Affinity group associated to VM to be restored. Used only for Classic Compute Virtual Machines.
AffinityGroup *string `json:"affinityGroup,omitempty"`
// CreateNewCloudService - Should a new cloud service be created while restoring the VM. If this is false, VM will be restored to the same cloud service as it was at the time of backup.
CreateNewCloudService *bool `json:"createNewCloudService,omitempty"`
// OriginalStorageAccountOption - Original SA Option
OriginalStorageAccountOption *bool `json:"originalStorageAccountOption,omitempty"`
// EncryptionDetails - Details needed if the VM was encrypted at the time of backup.
EncryptionDetails *EncryptionDetails `json:"encryptionDetails,omitempty"`
// ObjectType - Possible values include: 'ObjectTypeRestoreRequest', 'ObjectTypeAzureFileShareRestoreRequest', 'ObjectTypeAzureWorkloadRestoreRequest', 'ObjectTypeAzureWorkloadSQLPointInTimeRestoreRequest', 'ObjectTypeAzureWorkloadSQLRestoreRequest', 'ObjectTypeIaasVMRestoreRequest'
ObjectType ObjectTypeBasicRestoreRequest `json:"objectType,omitempty"`
}
// MarshalJSON is the custom marshaler for IaasVMRestoreRequest.
func (ivrr IaasVMRestoreRequest) MarshalJSON() ([]byte, error) {
ivrr.ObjectType = ObjectTypeIaasVMRestoreRequest
objectMap := make(map[string]interface{})
if ivrr.RecoveryPointID != nil {
objectMap["recoveryPointId"] = ivrr.RecoveryPointID
}
if ivrr.RecoveryType != "" {
objectMap["recoveryType"] = ivrr.RecoveryType
}
if ivrr.SourceResourceID != nil {
objectMap["sourceResourceId"] = ivrr.SourceResourceID
}
if ivrr.TargetVirtualMachineID != nil {
objectMap["targetVirtualMachineId"] = ivrr.TargetVirtualMachineID
}
if ivrr.TargetResourceGroupID != nil {
objectMap["targetResourceGroupId"] = ivrr.TargetResourceGroupID
}
if ivrr.StorageAccountID != nil {
objectMap["storageAccountId"] = ivrr.StorageAccountID
}
if ivrr.VirtualNetworkID != nil {
objectMap["virtualNetworkId"] = ivrr.VirtualNetworkID
}
if ivrr.SubnetID != nil {
objectMap["subnetId"] = ivrr.SubnetID
}
if ivrr.TargetDomainNameID != nil {
objectMap["targetDomainNameId"] = ivrr.TargetDomainNameID
}
if ivrr.Region != nil {
objectMap["region"] = ivrr.Region
}
if ivrr.AffinityGroup != nil {
objectMap["affinityGroup"] = ivrr.AffinityGroup
}
if ivrr.CreateNewCloudService != nil {
objectMap["createNewCloudService"] = ivrr.CreateNewCloudService
}
if ivrr.OriginalStorageAccountOption != nil {
objectMap["originalStorageAccountOption"] = ivrr.OriginalStorageAccountOption
}
if ivrr.EncryptionDetails != nil {
objectMap["encryptionDetails"] = ivrr.EncryptionDetails
}
if ivrr.ObjectType != "" {
objectMap["objectType"] = ivrr.ObjectType
}
return json.Marshal(objectMap)
}
// AsAzureFileShareRestoreRequest is the BasicRestoreRequest implementation for IaasVMRestoreRequest.
func (ivrr IaasVMRestoreRequest) AsAzureFileShareRestoreRequest() (*AzureFileShareRestoreRequest, bool) {
return nil, false
}
// AsAzureWorkloadRestoreRequest is the BasicRestoreRequest implementation for IaasVMRestoreRequest.
func (ivrr IaasVMRestoreRequest) AsAzureWorkloadRestoreRequest() (*AzureWorkloadRestoreRequest, bool) {
return nil, false
}
// AsBasicAzureWorkloadRestoreRequest is the BasicRestoreRequest implementation for IaasVMRestoreRequest.
func (ivrr IaasVMRestoreRequest) AsBasicAzureWorkloadRestoreRequest() (BasicAzureWorkloadRestoreRequest, bool) {
return nil, false
}
// AsAzureWorkloadSQLPointInTimeRestoreRequest is the BasicRestoreRequest implementation for IaasVMRestoreRequest.
func (ivrr IaasVMRestoreRequest) AsAzureWorkloadSQLPointInTimeRestoreRequest() (*AzureWorkloadSQLPointInTimeRestoreRequest, bool) {
return nil, false
}
// AsAzureWorkloadSQLRestoreRequest is the BasicRestoreRequest implementation for IaasVMRestoreRequest.
func (ivrr IaasVMRestoreRequest) AsAzureWorkloadSQLRestoreRequest() (*AzureWorkloadSQLRestoreRequest, bool) {
return nil, false
}
// AsBasicAzureWorkloadSQLRestoreRequest is the BasicRestoreRequest implementation for IaasVMRestoreRequest.
func (ivrr IaasVMRestoreRequest) AsBasicAzureWorkloadSQLRestoreRequest() (BasicAzureWorkloadSQLRestoreRequest, bool) {
return nil, false
}
// AsIaasVMRestoreRequest is the BasicRestoreRequest implementation for IaasVMRestoreRequest.
func (ivrr IaasVMRestoreRequest) AsIaasVMRestoreRequest() (*IaasVMRestoreRequest, bool) {
return &ivrr, true
}
// AsRestoreRequest is the BasicRestoreRequest implementation for IaasVMRestoreRequest.
func (ivrr IaasVMRestoreRequest) AsRestoreRequest() (*RestoreRequest, bool) {
return nil, false
}
// AsBasicRestoreRequest is the BasicRestoreRequest implementation for IaasVMRestoreRequest.
func (ivrr IaasVMRestoreRequest) AsBasicRestoreRequest() (BasicRestoreRequest, bool) {
return &ivrr, true
}
// BasicILRRequest parameters to restore file/folders API.
type BasicILRRequest interface {
AsIaasVMILRRegistrationRequest() (*IaasVMILRRegistrationRequest, bool)
AsILRRequest() (*ILRRequest, bool)
}
// ILRRequest parameters to restore file/folders API.
type ILRRequest struct {
// ObjectType - Possible values include: 'ObjectTypeILRRequest', 'ObjectTypeIaasVMILRRegistrationRequest'
ObjectType ObjectTypeBasicILRRequest `json:"objectType,omitempty"`
}
func unmarshalBasicILRRequest(body []byte) (BasicILRRequest, error) {
var m map[string]interface{}
err := json.Unmarshal(body, &m)
if err != nil {
return nil, err
}
switch m["objectType"] {
case string(ObjectTypeIaasVMILRRegistrationRequest):
var ivrr IaasVMILRRegistrationRequest
err := json.Unmarshal(body, &ivrr)
return ivrr, err
default:
var ir ILRRequest
err := json.Unmarshal(body, &ir)
return ir, err
}
}
func unmarshalBasicILRRequestArray(body []byte) ([]BasicILRRequest, error) {
var rawMessages []*json.RawMessage
err := json.Unmarshal(body, &rawMessages)
if err != nil {
return nil, err
}
irArray := make([]BasicILRRequest, len(rawMessages))
for index, rawMessage := range rawMessages {
ir, err := unmarshalBasicILRRequest(*rawMessage)
if err != nil {
return nil, err
}
irArray[index] = ir
}
return irArray, nil
}
// MarshalJSON is the custom marshaler for ILRRequest.
func (ir ILRRequest) MarshalJSON() ([]byte, error) {
ir.ObjectType = ObjectTypeILRRequest
objectMap := make(map[string]interface{})
if ir.ObjectType != "" {
objectMap["objectType"] = ir.ObjectType
}
return json.Marshal(objectMap)
}
// AsIaasVMILRRegistrationRequest is the BasicILRRequest implementation for ILRRequest.
func (ir ILRRequest) AsIaasVMILRRegistrationRequest() (*IaasVMILRRegistrationRequest, bool) {
return nil, false
}
// AsILRRequest is the BasicILRRequest implementation for ILRRequest.
func (ir ILRRequest) AsILRRequest() (*ILRRequest, bool) {
return &ir, true
}
// AsBasicILRRequest is the BasicILRRequest implementation for ILRRequest.
func (ir ILRRequest) AsBasicILRRequest() (BasicILRRequest, bool) {
return &ir, true
}
// ILRRequestResource parameters to restore file/folders API.
type ILRRequestResource struct {
// Properties - ILRRequestResource properties
Properties BasicILRRequest `json:"properties,omitempty"`
// ID - Resource Id represents the complete path to the resource.
ID *string `json:"id,omitempty"`
// Name - Resource name associated with the resource.
Name *string `json:"name,omitempty"`
// Type - Resource type represents the complete path of the form Namespace/ResourceType/ResourceType/...
Type *string `json:"type,omitempty"`
// Location - Resource location.
Location *string `json:"location,omitempty"`
// Tags - Resource tags.
Tags map[string]*string `json:"tags"`
// ETag - Optional ETag.
ETag *string `json:"eTag,omitempty"`
}
// MarshalJSON is the custom marshaler for ILRRequestResource.
func (irr ILRRequestResource) MarshalJSON() ([]byte, error) {
objectMap := make(map[string]interface{})
objectMap["properties"] = irr.Properties
if irr.ID != nil {
objectMap["id"] = irr.ID
}
if irr.Name != nil {
objectMap["name"] = irr.Name
}
if irr.Type != nil {
objectMap["type"] = irr.Type
}
if irr.Location != nil {
objectMap["location"] = irr.Location
}
if irr.Tags != nil {
objectMap["tags"] = irr.Tags
}
if irr.ETag != nil {
objectMap["eTag"] = irr.ETag
}
return json.Marshal(objectMap)
}
// UnmarshalJSON is the custom unmarshaler for ILRRequestResource struct.
func (irr *ILRRequestResource) UnmarshalJSON(body []byte) error {
var m map[string]*json.RawMessage
err := json.Unmarshal(body, &m)
if err != nil {
return err
}
for k, v := range m {
switch k {
case "properties":
if v != nil {
properties, err := unmarshalBasicILRRequest(*v)
if err != nil {
return err
}
irr.Properties = properties
}
case "id":
if v != nil {
var ID string
err = json.Unmarshal(*v, &ID)
if err != nil {
return err
}
irr.ID = &ID
}
case "name":
if v != nil {
var name string
err = json.Unmarshal(*v, &name)
if err != nil {
return err
}
irr.Name = &name
}
case "type":
if v != nil {
var typeVar string
err = json.Unmarshal(*v, &typeVar)
if err != nil {
return err
}
irr.Type = &typeVar
}
case "location":
if v != nil {
var location string
err = json.Unmarshal(*v, &location)
if err != nil {
return err
}
irr.Location = &location
}
case "tags":
if v != nil {
var tags map[string]*string
err = json.Unmarshal(*v, &tags)
if err != nil {
return err
}
irr.Tags = tags
}
case "eTag":
if v != nil {
var eTag string
err = json.Unmarshal(*v, &eTag)
if err != nil {
return err
}
irr.ETag = &eTag
}
}
}
return nil
}
// InquiryInfo details about inquired protectable items under a given container.
type InquiryInfo struct {
// Status - Inquiry Status for this container such as
// InProgress | Failed | Succeeded
Status *string `json:"status,omitempty"`
// ErrorDetail - Error Details if the Status is non-success.
ErrorDetail *ErrorDetail `json:"errorDetail,omitempty"`
// InquiryDetails - Inquiry Details which will have workload specific details.
// For e.g. - For SQL and oracle this will contain different details.
InquiryDetails *[]WorkloadInquiryDetails `json:"inquiryDetails,omitempty"`
}
// InquiryValidation validation for inquired protectable items under a given container.
type InquiryValidation struct {
// Status - Status for the Inquiry Validation.
Status *string `json:"status,omitempty"`
// ErrorDetail - Error Detail in case the status is non-success.
ErrorDetail *ErrorDetail `json:"errorDetail,omitempty"`
}
// InstantItemRecoveryTarget target details for file / folder restore.
type InstantItemRecoveryTarget struct {
// ClientScripts - List of client scripts.
ClientScripts *[]ClientScriptForConnect `json:"clientScripts,omitempty"`
}
// BasicJob defines workload agnostic properties for a job.
type BasicJob interface {
AsAzureIaaSVMJob() (*AzureIaaSVMJob, bool)
AsAzureStorageJob() (*AzureStorageJob, bool)
AsAzureWorkloadJob() (*AzureWorkloadJob, bool)
AsDpmJob() (*DpmJob, bool)
AsMabJob() (*MabJob, bool)
AsJob() (*Job, bool)
}
// Job defines workload agnostic properties for a job.
type Job struct {
// EntityFriendlyName - Friendly name of the entity on which the current job is executing.
EntityFriendlyName *string `json:"entityFriendlyName,omitempty"`
// BackupManagementType - Backup management type to execute the current job. Possible values include: 'ManagementTypeInvalid', 'ManagementTypeAzureIaasVM', 'ManagementTypeMAB', 'ManagementTypeDPM', 'ManagementTypeAzureBackupServer', 'ManagementTypeAzureSQL', 'ManagementTypeAzureStorage', 'ManagementTypeAzureWorkload', 'ManagementTypeDefaultBackup'
BackupManagementType ManagementType `json:"backupManagementType,omitempty"`
// Operation - The operation name.
Operation *string `json:"operation,omitempty"`
// Status - Job status.
Status *string `json:"status,omitempty"`
// StartTime - The start time.
StartTime *date.Time `json:"startTime,omitempty"`
// EndTime - The end time.
EndTime *date.Time `json:"endTime,omitempty"`
// ActivityID - ActivityId of job.
ActivityID *string `json:"activityId,omitempty"`
// JobType - Possible values include: 'JobTypeJob', 'JobTypeAzureIaaSVMJob', 'JobTypeAzureStorageJob', 'JobTypeAzureWorkloadJob', 'JobTypeDpmJob', 'JobTypeMabJob'
JobType JobType `json:"jobType,omitempty"`
}
func unmarshalBasicJob(body []byte) (BasicJob, error) {
var m map[string]interface{}
err := json.Unmarshal(body, &m)
if err != nil {
return nil, err
}
switch m["jobType"] {
case string(JobTypeAzureIaaSVMJob):
var aisj AzureIaaSVMJob
err := json.Unmarshal(body, &aisj)
return aisj, err
case string(JobTypeAzureStorageJob):
var asj AzureStorageJob
err := json.Unmarshal(body, &asj)
return asj, err
case string(JobTypeAzureWorkloadJob):
var awj AzureWorkloadJob
err := json.Unmarshal(body, &awj)
return awj, err
case string(JobTypeDpmJob):
var dj DpmJob
err := json.Unmarshal(body, &dj)
return dj, err
case string(JobTypeMabJob):
var mj MabJob
err := json.Unmarshal(body, &mj)
return mj, err
default:
var j Job
err := json.Unmarshal(body, &j)
return j, err
}
}
func unmarshalBasicJobArray(body []byte) ([]BasicJob, error) {
var rawMessages []*json.RawMessage
err := json.Unmarshal(body, &rawMessages)
if err != nil {
return nil, err
}
jArray := make([]BasicJob, len(rawMessages))
for index, rawMessage := range rawMessages {
j, err := unmarshalBasicJob(*rawMessage)
if err != nil {
return nil, err
}
jArray[index] = j
}
return jArray, nil
}
// MarshalJSON is the custom marshaler for Job.
func (j Job) MarshalJSON() ([]byte, error) {
j.JobType = JobTypeJob
objectMap := make(map[string]interface{})
if j.EntityFriendlyName != nil {
objectMap["entityFriendlyName"] = j.EntityFriendlyName
}
if j.BackupManagementType != "" {
objectMap["backupManagementType"] = j.BackupManagementType
}
if j.Operation != nil {
objectMap["operation"] = j.Operation
}
if j.Status != nil {
objectMap["status"] = j.Status
}
if j.StartTime != nil {
objectMap["startTime"] = j.StartTime
}
if j.EndTime != nil {
objectMap["endTime"] = j.EndTime
}
if j.ActivityID != nil {
objectMap["activityId"] = j.ActivityID
}
if j.JobType != "" {
objectMap["jobType"] = j.JobType
}
return json.Marshal(objectMap)
}
// AsAzureIaaSVMJob is the BasicJob implementation for Job.
func (j Job) AsAzureIaaSVMJob() (*AzureIaaSVMJob, bool) {
return nil, false
}
// AsAzureStorageJob is the BasicJob implementation for Job.
func (j Job) AsAzureStorageJob() (*AzureStorageJob, bool) {
return nil, false
}
// AsAzureWorkloadJob is the BasicJob implementation for Job.
func (j Job) AsAzureWorkloadJob() (*AzureWorkloadJob, bool) {
return nil, false
}
// AsDpmJob is the BasicJob implementation for Job.
func (j Job) AsDpmJob() (*DpmJob, bool) {
return nil, false
}
// AsMabJob is the BasicJob implementation for Job.
func (j Job) AsMabJob() (*MabJob, bool) {
return nil, false
}
// AsJob is the BasicJob implementation for Job.
func (j Job) AsJob() (*Job, bool) {
return &j, true
}
// AsBasicJob is the BasicJob implementation for Job.
func (j Job) AsBasicJob() (BasicJob, bool) {
return &j, true
}
// JobQueryObject filters to list the jobs.
type JobQueryObject struct {
// Status - Status of the job. Possible values include: 'JobStatusInvalid', 'JobStatusInProgress', 'JobStatusCompleted', 'JobStatusFailed', 'JobStatusCompletedWithWarnings', 'JobStatusCancelled', 'JobStatusCancelling'
Status JobStatus `json:"status,omitempty"`
// BackupManagementType - Type of backup managmenent for the job. Possible values include: 'ManagementTypeInvalid', 'ManagementTypeAzureIaasVM', 'ManagementTypeMAB', 'ManagementTypeDPM', 'ManagementTypeAzureBackupServer', 'ManagementTypeAzureSQL', 'ManagementTypeAzureStorage', 'ManagementTypeAzureWorkload', 'ManagementTypeDefaultBackup'
BackupManagementType ManagementType `json:"backupManagementType,omitempty"`
// Operation - Type of operation. Possible values include: 'JobOperationTypeInvalid', 'JobOperationTypeRegister', 'JobOperationTypeUnRegister', 'JobOperationTypeConfigureBackup', 'JobOperationTypeBackup', 'JobOperationTypeRestore', 'JobOperationTypeDisableBackup', 'JobOperationTypeDeleteBackupData'
Operation JobOperationType `json:"operation,omitempty"`
// JobID - JobID represents the job uniquely.
JobID *string `json:"jobId,omitempty"`
// StartTime - Job has started at this time. Value is in UTC.
StartTime *date.Time `json:"startTime,omitempty"`
// EndTime - Job has ended at this time. Value is in UTC.
EndTime *date.Time `json:"endTime,omitempty"`
}
// JobResource defines workload agnostic properties for a job.
type JobResource struct {
autorest.Response `json:"-"`
// Properties - JobResource properties
Properties BasicJob `json:"properties,omitempty"`
// ID - Resource Id represents the complete path to the resource.
ID *string `json:"id,omitempty"`
// Name - Resource name associated with the resource.
Name *string `json:"name,omitempty"`
// Type - Resource type represents the complete path of the form Namespace/ResourceType/ResourceType/...
Type *string `json:"type,omitempty"`
// Location - Resource location.
Location *string `json:"location,omitempty"`
// Tags - Resource tags.
Tags map[string]*string `json:"tags"`
// ETag - Optional ETag.
ETag *string `json:"eTag,omitempty"`
}
// MarshalJSON is the custom marshaler for JobResource.
func (jr JobResource) MarshalJSON() ([]byte, error) {
objectMap := make(map[string]interface{})
objectMap["properties"] = jr.Properties
if jr.ID != nil {
objectMap["id"] = jr.ID
}
if jr.Name != nil {
objectMap["name"] = jr.Name
}
if jr.Type != nil {
objectMap["type"] = jr.Type
}
if jr.Location != nil {
objectMap["location"] = jr.Location
}
if jr.Tags != nil {
objectMap["tags"] = jr.Tags
}
if jr.ETag != nil {
objectMap["eTag"] = jr.ETag
}
return json.Marshal(objectMap)
}
// UnmarshalJSON is the custom unmarshaler for JobResource struct.
func (jr *JobResource) UnmarshalJSON(body []byte) error {
var m map[string]*json.RawMessage
err := json.Unmarshal(body, &m)
if err != nil {
return err
}
for k, v := range m {
switch k {
case "properties":
if v != nil {
properties, err := unmarshalBasicJob(*v)
if err != nil {
return err
}
jr.Properties = properties
}
case "id":
if v != nil {
var ID string
err = json.Unmarshal(*v, &ID)
if err != nil {
return err
}
jr.ID = &ID
}
case "name":
if v != nil {
var name string
err = json.Unmarshal(*v, &name)
if err != nil {
return err
}
jr.Name = &name
}
case "type":
if v != nil {
var typeVar string
err = json.Unmarshal(*v, &typeVar)
if err != nil {
return err
}
jr.Type = &typeVar
}
case "location":
if v != nil {
var location string
err = json.Unmarshal(*v, &location)
if err != nil {
return err
}
jr.Location = &location
}
case "tags":
if v != nil {
var tags map[string]*string
err = json.Unmarshal(*v, &tags)
if err != nil {
return err
}
jr.Tags = tags
}
case "eTag":
if v != nil {
var eTag string
err = json.Unmarshal(*v, &eTag)
if err != nil {
return err
}
jr.ETag = &eTag
}
}
}
return nil
}
// JobResourceList list of Job resources
type JobResourceList struct {
autorest.Response `json:"-"`
// Value - List of resources.
Value *[]JobResource `json:"value,omitempty"`
// NextLink - The uri to fetch the next page of resources. Call ListNext() fetches next page of resources.
NextLink *string `json:"nextLink,omitempty"`
}
// JobResourceListIterator provides access to a complete listing of JobResource values.
type JobResourceListIterator struct {
i int
page JobResourceListPage
}
// Next advances to the next value. If there was an error making
// the request the iterator does not advance and the error is returned.
func (iter *JobResourceListIterator) Next() error {
iter.i++
if iter.i < len(iter.page.Values()) {
return nil
}
err := iter.page.Next()
if err != nil {
iter.i--
return err
}
iter.i = 0
return nil
}
// NotDone returns true if the enumeration should be started or is not yet complete.
func (iter JobResourceListIterator) NotDone() bool {
return iter.page.NotDone() && iter.i < len(iter.page.Values())
}
// Response returns the raw server response from the last page request.
func (iter JobResourceListIterator) Response() JobResourceList {
return iter.page.Response()
}
// Value returns the current value or a zero-initialized value if the
// iterator has advanced beyond the end of the collection.
func (iter JobResourceListIterator) Value() JobResource {
if !iter.page.NotDone() {
return JobResource{}
}
return iter.page.Values()[iter.i]
}
// IsEmpty returns true if the ListResult contains no values.
func (jrl JobResourceList) IsEmpty() bool {
return jrl.Value == nil || len(*jrl.Value) == 0
}
// jobResourceListPreparer prepares a request to retrieve the next set of results.
// It returns nil if no more results exist.
func (jrl JobResourceList) jobResourceListPreparer() (*http.Request, error) {
if jrl.NextLink == nil || len(to.String(jrl.NextLink)) < 1 {
return nil, nil
}
return autorest.Prepare(&http.Request{},
autorest.AsJSON(),
autorest.AsGet(),
autorest.WithBaseURL(to.String(jrl.NextLink)))
}
// JobResourceListPage contains a page of JobResource values.
type JobResourceListPage struct {
fn func(JobResourceList) (JobResourceList, error)
jrl JobResourceList
}
// Next advances to the next page of values. If there was an error making
// the request the page does not advance and the error is returned.
func (page *JobResourceListPage) Next() error {
next, err := page.fn(page.jrl)
if err != nil {
return err
}
page.jrl = next
return nil
}
// NotDone returns true if the page enumeration should be started or is not yet complete.
func (page JobResourceListPage) NotDone() bool {
return !page.jrl.IsEmpty()
}
// Response returns the raw server response from the last page request.
func (page JobResourceListPage) Response() JobResourceList {
return page.jrl
}
// Values returns the slice of values for the current page or nil if there are no values.
func (page JobResourceListPage) Values() []JobResource {
if page.jrl.IsEmpty() {
return nil
}
return *page.jrl.Value
}
// KEKDetails KEK is encryption key for BEK.
type KEKDetails struct {
// KeyURL - Key is KEK.
KeyURL *string `json:"keyUrl,omitempty"`
// KeyVaultID - Key Vault ID where this Key is stored.
KeyVaultID *string `json:"keyVaultId,omitempty"`
// KeyBackupData - KEK data.
KeyBackupData *string `json:"keyBackupData,omitempty"`
}
// KeyAndSecretDetails BEK is bitlocker key.
// KEK is encryption key for BEK
// If the VM was encrypted then we will store follwing details :
// 1. Secret(BEK) - Url + Backup Data + vaultId.
// 2. Key(KEK) - Url + Backup Data + vaultId.
// BEK and KEK can potentiallty have different vault ids.
type KeyAndSecretDetails struct {
// KekDetails - KEK is encryption key for BEK.
KekDetails *KEKDetails `json:"kekDetails,omitempty"`
// BekDetails - BEK is bitlocker encrpytion key.
BekDetails *BEKDetails `json:"bekDetails,omitempty"`
}
// LogSchedulePolicy log policy schedule.
type LogSchedulePolicy struct {
// ScheduleFrequencyInMins - Frequency of the log schedule operation of this policy in minutes.
ScheduleFrequencyInMins *int32 `json:"scheduleFrequencyInMins,omitempty"`
// SchedulePolicyType - Possible values include: 'SchedulePolicyTypeSchedulePolicy', 'SchedulePolicyTypeLogSchedulePolicy', 'SchedulePolicyTypeLongTermSchedulePolicy', 'SchedulePolicyTypeSimpleSchedulePolicy'
SchedulePolicyType SchedulePolicyType `json:"schedulePolicyType,omitempty"`
}
// MarshalJSON is the custom marshaler for LogSchedulePolicy.
func (lsp LogSchedulePolicy) MarshalJSON() ([]byte, error) {
lsp.SchedulePolicyType = SchedulePolicyTypeLogSchedulePolicy
objectMap := make(map[string]interface{})
if lsp.ScheduleFrequencyInMins != nil {
objectMap["scheduleFrequencyInMins"] = lsp.ScheduleFrequencyInMins
}
if lsp.SchedulePolicyType != "" {
objectMap["schedulePolicyType"] = lsp.SchedulePolicyType
}
return json.Marshal(objectMap)
}
// AsLogSchedulePolicy is the BasicSchedulePolicy implementation for LogSchedulePolicy.
func (lsp LogSchedulePolicy) AsLogSchedulePolicy() (*LogSchedulePolicy, bool) {
return &lsp, true
}
// AsLongTermSchedulePolicy is the BasicSchedulePolicy implementation for LogSchedulePolicy.
func (lsp LogSchedulePolicy) AsLongTermSchedulePolicy() (*LongTermSchedulePolicy, bool) {
return nil, false
}
// AsSimpleSchedulePolicy is the BasicSchedulePolicy implementation for LogSchedulePolicy.
func (lsp LogSchedulePolicy) AsSimpleSchedulePolicy() (*SimpleSchedulePolicy, bool) {
return nil, false
}
// AsSchedulePolicy is the BasicSchedulePolicy implementation for LogSchedulePolicy.
func (lsp LogSchedulePolicy) AsSchedulePolicy() (*SchedulePolicy, bool) {
return nil, false
}
// AsBasicSchedulePolicy is the BasicSchedulePolicy implementation for LogSchedulePolicy.
func (lsp LogSchedulePolicy) AsBasicSchedulePolicy() (BasicSchedulePolicy, bool) {
return &lsp, true
}
// LongTermRetentionPolicy long term retention policy.
type LongTermRetentionPolicy struct {
// DailySchedule - Daily retention schedule of the protection policy.
DailySchedule *DailyRetentionSchedule `json:"dailySchedule,omitempty"`
// WeeklySchedule - Weekly retention schedule of the protection policy.
WeeklySchedule *WeeklyRetentionSchedule `json:"weeklySchedule,omitempty"`
// MonthlySchedule - Monthly retention schedule of the protection policy.
MonthlySchedule *MonthlyRetentionSchedule `json:"monthlySchedule,omitempty"`
// YearlySchedule - Yearly retention schedule of the protection policy.
YearlySchedule *YearlyRetentionSchedule `json:"yearlySchedule,omitempty"`
// RetentionPolicyType - Possible values include: 'RetentionPolicyTypeRetentionPolicy', 'RetentionPolicyTypeLongTermRetentionPolicy', 'RetentionPolicyTypeSimpleRetentionPolicy'
RetentionPolicyType RetentionPolicyType `json:"retentionPolicyType,omitempty"`
}
// MarshalJSON is the custom marshaler for LongTermRetentionPolicy.
func (ltrp LongTermRetentionPolicy) MarshalJSON() ([]byte, error) {
ltrp.RetentionPolicyType = RetentionPolicyTypeLongTermRetentionPolicy
objectMap := make(map[string]interface{})
if ltrp.DailySchedule != nil {
objectMap["dailySchedule"] = ltrp.DailySchedule
}
if ltrp.WeeklySchedule != nil {
objectMap["weeklySchedule"] = ltrp.WeeklySchedule
}
if ltrp.MonthlySchedule != nil {
objectMap["monthlySchedule"] = ltrp.MonthlySchedule
}
if ltrp.YearlySchedule != nil {
objectMap["yearlySchedule"] = ltrp.YearlySchedule
}
if ltrp.RetentionPolicyType != "" {
objectMap["retentionPolicyType"] = ltrp.RetentionPolicyType
}
return json.Marshal(objectMap)
}
// AsLongTermRetentionPolicy is the BasicRetentionPolicy implementation for LongTermRetentionPolicy.
func (ltrp LongTermRetentionPolicy) AsLongTermRetentionPolicy() (*LongTermRetentionPolicy, bool) {
return &ltrp, true
}
// AsSimpleRetentionPolicy is the BasicRetentionPolicy implementation for LongTermRetentionPolicy.
func (ltrp LongTermRetentionPolicy) AsSimpleRetentionPolicy() (*SimpleRetentionPolicy, bool) {
return nil, false
}
// AsRetentionPolicy is the BasicRetentionPolicy implementation for LongTermRetentionPolicy.
func (ltrp LongTermRetentionPolicy) AsRetentionPolicy() (*RetentionPolicy, bool) {
return nil, false
}
// AsBasicRetentionPolicy is the BasicRetentionPolicy implementation for LongTermRetentionPolicy.
func (ltrp LongTermRetentionPolicy) AsBasicRetentionPolicy() (BasicRetentionPolicy, bool) {
return &ltrp, true
}
// LongTermSchedulePolicy long term policy schedule.
type LongTermSchedulePolicy struct {
// SchedulePolicyType - Possible values include: 'SchedulePolicyTypeSchedulePolicy', 'SchedulePolicyTypeLogSchedulePolicy', 'SchedulePolicyTypeLongTermSchedulePolicy', 'SchedulePolicyTypeSimpleSchedulePolicy'
SchedulePolicyType SchedulePolicyType `json:"schedulePolicyType,omitempty"`
}
// MarshalJSON is the custom marshaler for LongTermSchedulePolicy.
func (ltsp LongTermSchedulePolicy) MarshalJSON() ([]byte, error) {
ltsp.SchedulePolicyType = SchedulePolicyTypeLongTermSchedulePolicy
objectMap := make(map[string]interface{})
if ltsp.SchedulePolicyType != "" {
objectMap["schedulePolicyType"] = ltsp.SchedulePolicyType
}
return json.Marshal(objectMap)
}
// AsLogSchedulePolicy is the BasicSchedulePolicy implementation for LongTermSchedulePolicy.
func (ltsp LongTermSchedulePolicy) AsLogSchedulePolicy() (*LogSchedulePolicy, bool) {
return nil, false
}
// AsLongTermSchedulePolicy is the BasicSchedulePolicy implementation for LongTermSchedulePolicy.
func (ltsp LongTermSchedulePolicy) AsLongTermSchedulePolicy() (*LongTermSchedulePolicy, bool) {
return &ltsp, true
}
// AsSimpleSchedulePolicy is the BasicSchedulePolicy implementation for LongTermSchedulePolicy.
func (ltsp LongTermSchedulePolicy) AsSimpleSchedulePolicy() (*SimpleSchedulePolicy, bool) {
return nil, false
}
// AsSchedulePolicy is the BasicSchedulePolicy implementation for LongTermSchedulePolicy.
func (ltsp LongTermSchedulePolicy) AsSchedulePolicy() (*SchedulePolicy, bool) {
return nil, false
}
// AsBasicSchedulePolicy is the BasicSchedulePolicy implementation for LongTermSchedulePolicy.
func (ltsp LongTermSchedulePolicy) AsBasicSchedulePolicy() (BasicSchedulePolicy, bool) {
return &ltsp, true
}
// MabContainer container with items backed up using MAB backup engine.
type MabContainer struct {
// CanReRegister - Can the container be registered one more time.
CanReRegister *bool `json:"canReRegister,omitempty"`
// ContainerID - ContainerID represents the container.
ContainerID *int64 `json:"containerId,omitempty"`
// ProtectedItemCount - Number of items backed up in this container.
ProtectedItemCount *int64 `json:"protectedItemCount,omitempty"`
// AgentVersion - Agent version of this container.
AgentVersion *string `json:"agentVersion,omitempty"`
// ExtendedInfo - Additional information for this container
ExtendedInfo *MabContainerExtendedInfo `json:"extendedInfo,omitempty"`
// MabContainerHealthDetails - Health details on this mab container.
MabContainerHealthDetails *[]MABContainerHealthDetails `json:"mabContainerHealthDetails,omitempty"`
// ContainerHealthState - Health state of mab container.
ContainerHealthState *string `json:"containerHealthState,omitempty"`
// FriendlyName - Friendly name of the container.
FriendlyName *string `json:"friendlyName,omitempty"`
// BackupManagementType - Type of backup managemenent for the container. Possible values include: 'ManagementTypeInvalid', 'ManagementTypeAzureIaasVM', 'ManagementTypeMAB', 'ManagementTypeDPM', 'ManagementTypeAzureBackupServer', 'ManagementTypeAzureSQL', 'ManagementTypeAzureStorage', 'ManagementTypeAzureWorkload', 'ManagementTypeDefaultBackup'
BackupManagementType ManagementType `json:"backupManagementType,omitempty"`
// RegistrationStatus - Status of registration of the container with the Recovery Services Vault.
RegistrationStatus *string `json:"registrationStatus,omitempty"`
// HealthStatus - Status of health of the container.
HealthStatus *string `json:"healthStatus,omitempty"`
// ContainerType - Possible values include: 'ContainerTypeProtectionContainer', 'ContainerTypeAzureBackupServerContainer1', 'ContainerTypeMicrosoftClassicComputevirtualMachines', 'ContainerTypeMicrosoftComputevirtualMachines', 'ContainerTypeSQLAGWorkLoadContainer1', 'ContainerTypeAzureSQLContainer1', 'ContainerTypeStorageContainer1', 'ContainerTypeVMAppContainer1', 'ContainerTypeAzureWorkloadContainer', 'ContainerTypeDPMContainer1', 'ContainerTypeGenericContainer1', 'ContainerTypeIaaSVMContainer', 'ContainerTypeMABWindowsContainer'
ContainerType ContainerTypeBasicProtectionContainer `json:"containerType,omitempty"`
}
// MarshalJSON is the custom marshaler for MabContainer.
func (mc MabContainer) MarshalJSON() ([]byte, error) {
mc.ContainerType = ContainerTypeMABWindowsContainer
objectMap := make(map[string]interface{})
if mc.CanReRegister != nil {
objectMap["canReRegister"] = mc.CanReRegister
}
if mc.ContainerID != nil {
objectMap["containerId"] = mc.ContainerID
}
if mc.ProtectedItemCount != nil {
objectMap["protectedItemCount"] = mc.ProtectedItemCount
}
if mc.AgentVersion != nil {
objectMap["agentVersion"] = mc.AgentVersion
}
if mc.ExtendedInfo != nil {
objectMap["extendedInfo"] = mc.ExtendedInfo
}
if mc.MabContainerHealthDetails != nil {
objectMap["mabContainerHealthDetails"] = mc.MabContainerHealthDetails
}
if mc.ContainerHealthState != nil {
objectMap["containerHealthState"] = mc.ContainerHealthState
}
if mc.FriendlyName != nil {
objectMap["friendlyName"] = mc.FriendlyName
}
if mc.BackupManagementType != "" {
objectMap["backupManagementType"] = mc.BackupManagementType
}
if mc.RegistrationStatus != nil {
objectMap["registrationStatus"] = mc.RegistrationStatus
}
if mc.HealthStatus != nil {
objectMap["healthStatus"] = mc.HealthStatus
}
if mc.ContainerType != "" {
objectMap["containerType"] = mc.ContainerType
}
return json.Marshal(objectMap)
}
// AsAzureBackupServerContainer is the BasicProtectionContainer implementation for MabContainer.
func (mc MabContainer) AsAzureBackupServerContainer() (*AzureBackupServerContainer, bool) {
return nil, false
}
// AsAzureIaaSClassicComputeVMContainer is the BasicProtectionContainer implementation for MabContainer.
func (mc MabContainer) AsAzureIaaSClassicComputeVMContainer() (*AzureIaaSClassicComputeVMContainer, bool) {
return nil, false
}
// AsAzureIaaSComputeVMContainer is the BasicProtectionContainer implementation for MabContainer.
func (mc MabContainer) AsAzureIaaSComputeVMContainer() (*AzureIaaSComputeVMContainer, bool) {
return nil, false
}
// AsAzureSQLAGWorkloadContainerProtectionContainer is the BasicProtectionContainer implementation for MabContainer.
func (mc MabContainer) AsAzureSQLAGWorkloadContainerProtectionContainer() (*AzureSQLAGWorkloadContainerProtectionContainer, bool) {
return nil, false
}
// AsAzureSQLContainer is the BasicProtectionContainer implementation for MabContainer.
func (mc MabContainer) AsAzureSQLContainer() (*AzureSQLContainer, bool) {
return nil, false
}
// AsAzureStorageContainer is the BasicProtectionContainer implementation for MabContainer.
func (mc MabContainer) AsAzureStorageContainer() (*AzureStorageContainer, bool) {
return nil, false
}
// AsAzureVMAppContainerProtectionContainer is the BasicProtectionContainer implementation for MabContainer.
func (mc MabContainer) AsAzureVMAppContainerProtectionContainer() (*AzureVMAppContainerProtectionContainer, bool) {
return nil, false
}
// AsAzureWorkloadContainer is the BasicProtectionContainer implementation for MabContainer.
func (mc MabContainer) AsAzureWorkloadContainer() (*AzureWorkloadContainer, bool) {
return nil, false
}
// AsBasicAzureWorkloadContainer is the BasicProtectionContainer implementation for MabContainer.
func (mc MabContainer) AsBasicAzureWorkloadContainer() (BasicAzureWorkloadContainer, bool) {
return nil, false
}
// AsDpmContainer is the BasicProtectionContainer implementation for MabContainer.
func (mc MabContainer) AsDpmContainer() (*DpmContainer, bool) {
return nil, false
}
// AsGenericContainer is the BasicProtectionContainer implementation for MabContainer.
func (mc MabContainer) AsGenericContainer() (*GenericContainer, bool) {
return nil, false
}
// AsIaaSVMContainer is the BasicProtectionContainer implementation for MabContainer.
func (mc MabContainer) AsIaaSVMContainer() (*IaaSVMContainer, bool) {
return nil, false
}
// AsBasicIaaSVMContainer is the BasicProtectionContainer implementation for MabContainer.
func (mc MabContainer) AsBasicIaaSVMContainer() (BasicIaaSVMContainer, bool) {
return nil, false
}
// AsMabContainer is the BasicProtectionContainer implementation for MabContainer.
func (mc MabContainer) AsMabContainer() (*MabContainer, bool) {
return &mc, true
}
// AsProtectionContainer is the BasicProtectionContainer implementation for MabContainer.
func (mc MabContainer) AsProtectionContainer() (*ProtectionContainer, bool) {
return nil, false
}
// AsBasicProtectionContainer is the BasicProtectionContainer implementation for MabContainer.
func (mc MabContainer) AsBasicProtectionContainer() (BasicProtectionContainer, bool) {
return &mc, true
}
// MabContainerExtendedInfo additional information of the container.
type MabContainerExtendedInfo struct {
// LastRefreshedAt - Time stamp when this container was refreshed.
LastRefreshedAt *date.Time `json:"lastRefreshedAt,omitempty"`
// 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'
BackupItemType ItemType `json:"backupItemType,omitempty"`
// BackupItems - List of backup items associated with this container.
BackupItems *[]string `json:"backupItems,omitempty"`
// PolicyName - Backup policy associated with this container.
PolicyName *string `json:"policyName,omitempty"`
// LastBackupStatus - Latest backup status of this container.
LastBackupStatus *string `json:"lastBackupStatus,omitempty"`
}
// MABContainerHealthDetails MAB workload-specific Health Details.
type MABContainerHealthDetails struct {
// Code - Health Code
Code *int32 `json:"code,omitempty"`
// Title - Health Title
Title *string `json:"title,omitempty"`
// Message - Health Message
Message *string `json:"message,omitempty"`
// Recommendations - Health Recommended Actions
Recommendations *[]string `json:"recommendations,omitempty"`
}
// MabErrorInfo MAB workload-specific error information.
type MabErrorInfo struct {
// ErrorString - Localized error string.
ErrorString *string `json:"errorString,omitempty"`
// Recommendations - List of localized recommendations.
Recommendations *[]string `json:"recommendations,omitempty"`
}
// MabFileFolderProtectedItem MAB workload-specific backup item.
type MabFileFolderProtectedItem struct {
// FriendlyName - Friendly name of this backup item.
FriendlyName *string `json:"friendlyName,omitempty"`
// ComputerName - Name of the computer associated with this backup item.
ComputerName *string `json:"computerName,omitempty"`
// LastBackupStatus - Status of last backup operation.
LastBackupStatus *string `json:"lastBackupStatus,omitempty"`
// ProtectionState - Protected, ProtectionStopped, IRPending or ProtectionError
ProtectionState *string `json:"protectionState,omitempty"`
// IsScheduledForDeferredDelete - Specifies if the item is scheduled for deferred deletion.
IsScheduledForDeferredDelete *bool `json:"isScheduledForDeferredDelete,omitempty"`
// DeferredDeleteSyncTimeInUTC - Sync time for deferred deletion.
DeferredDeleteSyncTimeInUTC *int64 `json:"deferredDeleteSyncTimeInUTC,omitempty"`
// ExtendedInfo - Additional information with this backup item.
ExtendedInfo *MabFileFolderProtectedItemExtendedInfo `json:"extendedInfo,omitempty"`
// BackupManagementType - Type of backup managemenent for the backed up item. Possible values include: 'ManagementTypeInvalid', 'ManagementTypeAzureIaasVM', 'ManagementTypeMAB', 'ManagementTypeDPM', 'ManagementTypeAzureBackupServer', 'ManagementTypeAzureSQL', 'ManagementTypeAzureStorage', 'ManagementTypeAzureWorkload', 'ManagementTypeDefaultBackup'
BackupManagementType ManagementType `json:"backupManagementType,omitempty"`
// WorkloadType - Type of workload this item represents. Possible values include: 'DataSourceTypeInvalid', 'DataSourceTypeVM', 'DataSourceTypeFileFolder', 'DataSourceTypeAzureSQLDb', 'DataSourceTypeSQLDB', 'DataSourceTypeExchange', 'DataSourceTypeSharepoint', 'DataSourceTypeVMwareVM', 'DataSourceTypeSystemState', 'DataSourceTypeClient', 'DataSourceTypeGenericDataSource', 'DataSourceTypeSQLDataBase', 'DataSourceTypeAzureFileShare'
WorkloadType DataSourceType `json:"workloadType,omitempty"`
// ContainerName - Unique name of container
ContainerName *string `json:"containerName,omitempty"`
// SourceResourceID - ARM ID of the resource to be backed up.
SourceResourceID *string `json:"sourceResourceId,omitempty"`
// PolicyID - ID of the backup policy with which this item is backed up.
PolicyID *string `json:"policyId,omitempty"`
// LastRecoveryPoint - Timestamp when the last (latest) backup copy was created for this backup item.
LastRecoveryPoint *date.Time `json:"lastRecoveryPoint,omitempty"`
// BackupSetName - Name of the backup set the backup item belongs to
BackupSetName *string `json:"backupSetName,omitempty"`
// ProtectedItemType - Possible values include: 'ProtectedItemTypeProtectedItem', 'ProtectedItemTypeAzureFileShareProtectedItem', 'ProtectedItemTypeMicrosoftClassicComputevirtualMachines', 'ProtectedItemTypeMicrosoftComputevirtualMachines', 'ProtectedItemTypeAzureIaaSVMProtectedItem', 'ProtectedItemTypeMicrosoftSqlserversdatabases', 'ProtectedItemTypeAzureVMWorkloadSQLDatabase', 'ProtectedItemTypeDPMProtectedItem', 'ProtectedItemTypeGenericProtectedItem', 'ProtectedItemTypeMabFileFolderProtectedItem'
ProtectedItemType ProtectedItemType `json:"protectedItemType,omitempty"`
}
// MarshalJSON is the custom marshaler for MabFileFolderProtectedItem.
func (mffpi MabFileFolderProtectedItem) MarshalJSON() ([]byte, error) {
mffpi.ProtectedItemType = ProtectedItemTypeMabFileFolderProtectedItem
objectMap := make(map[string]interface{})
if mffpi.FriendlyName != nil {
objectMap["friendlyName"] = mffpi.FriendlyName
}
if mffpi.ComputerName != nil {
objectMap["computerName"] = mffpi.ComputerName
}
if mffpi.LastBackupStatus != nil {
objectMap["lastBackupStatus"] = mffpi.LastBackupStatus
}
if mffpi.ProtectionState != nil {
objectMap["protectionState"] = mffpi.ProtectionState
}
if mffpi.IsScheduledForDeferredDelete != nil {
objectMap["isScheduledForDeferredDelete"] = mffpi.IsScheduledForDeferredDelete
}
if mffpi.DeferredDeleteSyncTimeInUTC != nil {
objectMap["deferredDeleteSyncTimeInUTC"] = mffpi.DeferredDeleteSyncTimeInUTC
}
if mffpi.ExtendedInfo != nil {
objectMap["extendedInfo"] = mffpi.ExtendedInfo
}
if mffpi.BackupManagementType != "" {
objectMap["backupManagementType"] = mffpi.BackupManagementType
}
if mffpi.WorkloadType != "" {
objectMap["workloadType"] = mffpi.WorkloadType
}
if mffpi.ContainerName != nil {
objectMap["containerName"] = mffpi.ContainerName
}
if mffpi.SourceResourceID != nil {
objectMap["sourceResourceId"] = mffpi.SourceResourceID
}
if mffpi.PolicyID != nil {
objectMap["policyId"] = mffpi.PolicyID
}
if mffpi.LastRecoveryPoint != nil {
objectMap["lastRecoveryPoint"] = mffpi.LastRecoveryPoint
}
if mffpi.BackupSetName != nil {
objectMap["backupSetName"] = mffpi.BackupSetName
}
if mffpi.ProtectedItemType != "" {
objectMap["protectedItemType"] = mffpi.ProtectedItemType
}
return json.Marshal(objectMap)
}
// AsAzureFileshareProtectedItem is the BasicProtectedItem implementation for MabFileFolderProtectedItem.
func (mffpi MabFileFolderProtectedItem) AsAzureFileshareProtectedItem() (*AzureFileshareProtectedItem, bool) {
return nil, false
}
// AsAzureIaaSClassicComputeVMProtectedItem is the BasicProtectedItem implementation for MabFileFolderProtectedItem.
func (mffpi MabFileFolderProtectedItem) AsAzureIaaSClassicComputeVMProtectedItem() (*AzureIaaSClassicComputeVMProtectedItem, bool) {
return nil, false
}
// AsAzureIaaSComputeVMProtectedItem is the BasicProtectedItem implementation for MabFileFolderProtectedItem.
func (mffpi MabFileFolderProtectedItem) AsAzureIaaSComputeVMProtectedItem() (*AzureIaaSComputeVMProtectedItem, bool) {
return nil, false
}
// AsAzureIaaSVMProtectedItem is the BasicProtectedItem implementation for MabFileFolderProtectedItem.
func (mffpi MabFileFolderProtectedItem) AsAzureIaaSVMProtectedItem() (*AzureIaaSVMProtectedItem, bool) {
return nil, false
}
// AsBasicAzureIaaSVMProtectedItem is the BasicProtectedItem implementation for MabFileFolderProtectedItem.
func (mffpi MabFileFolderProtectedItem) AsBasicAzureIaaSVMProtectedItem() (BasicAzureIaaSVMProtectedItem, bool) {
return nil, false
}
// AsAzureSQLProtectedItem is the BasicProtectedItem implementation for MabFileFolderProtectedItem.
func (mffpi MabFileFolderProtectedItem) AsAzureSQLProtectedItem() (*AzureSQLProtectedItem, bool) {
return nil, false
}
// AsAzureVMWorkloadSQLDatabaseProtectedItem is the BasicProtectedItem implementation for MabFileFolderProtectedItem.
func (mffpi MabFileFolderProtectedItem) AsAzureVMWorkloadSQLDatabaseProtectedItem() (*AzureVMWorkloadSQLDatabaseProtectedItem, bool) {
return nil, false
}
// AsDPMProtectedItem is the BasicProtectedItem implementation for MabFileFolderProtectedItem.
func (mffpi MabFileFolderProtectedItem) AsDPMProtectedItem() (*DPMProtectedItem, bool) {
return nil, false
}
// AsGenericProtectedItem is the BasicProtectedItem implementation for MabFileFolderProtectedItem.
func (mffpi MabFileFolderProtectedItem) AsGenericProtectedItem() (*GenericProtectedItem, bool) {
return nil, false
}
// AsMabFileFolderProtectedItem is the BasicProtectedItem implementation for MabFileFolderProtectedItem.
func (mffpi MabFileFolderProtectedItem) AsMabFileFolderProtectedItem() (*MabFileFolderProtectedItem, bool) {
return &mffpi, true
}
// AsProtectedItem is the BasicProtectedItem implementation for MabFileFolderProtectedItem.
func (mffpi MabFileFolderProtectedItem) AsProtectedItem() (*ProtectedItem, bool) {
return nil, false
}
// AsBasicProtectedItem is the BasicProtectedItem implementation for MabFileFolderProtectedItem.
func (mffpi MabFileFolderProtectedItem) AsBasicProtectedItem() (BasicProtectedItem, bool) {
return &mffpi, true
}
// MabFileFolderProtectedItemExtendedInfo additional information on the backed up item.
type MabFileFolderProtectedItemExtendedInfo struct {
// LastRefreshedAt - Last time when the agent data synced to service.
LastRefreshedAt *date.Time `json:"lastRefreshedAt,omitempty"`
// OldestRecoveryPoint - The oldest backup copy available.
OldestRecoveryPoint *date.Time `json:"oldestRecoveryPoint,omitempty"`
// RecoveryPointCount - Number of backup copies associated with the backup item.
RecoveryPointCount *int32 `json:"recoveryPointCount,omitempty"`
}
// MabJob MAB workload-specific job.
type MabJob struct {
// Duration - Time taken by job to run.
Duration *string `json:"duration,omitempty"`
// ActionsInfo - The state/actions applicable on jobs like cancel/retry.
ActionsInfo *[]JobSupportedAction `json:"actionsInfo,omitempty"`
// MabServerName - Name of server protecting the DS.
MabServerName *string `json:"mabServerName,omitempty"`
// MabServerType - Server type of MAB container. Possible values include: 'MabServerTypeInvalid', 'MabServerTypeUnknown', 'MabServerTypeIaasVMContainer', 'MabServerTypeIaasVMServiceContainer', 'MabServerTypeDPMContainer', 'MabServerTypeAzureBackupServerContainer', 'MabServerTypeMABContainer', 'MabServerTypeCluster', 'MabServerTypeAzureSQLContainer', 'MabServerTypeWindows', 'MabServerTypeVCenter', 'MabServerTypeVMAppContainer', 'MabServerTypeSQLAGWorkLoadContainer', 'MabServerTypeStorageContainer', 'MabServerTypeGenericContainer'
MabServerType MabServerType `json:"mabServerType,omitempty"`
// WorkloadType - Workload type of backup item. Possible values include: 'WorkloadTypeInvalid', 'WorkloadTypeVM', 'WorkloadTypeFileFolder', 'WorkloadTypeAzureSQLDb', 'WorkloadTypeSQLDB', 'WorkloadTypeExchange', 'WorkloadTypeSharepoint', 'WorkloadTypeVMwareVM', 'WorkloadTypeSystemState', 'WorkloadTypeClient', 'WorkloadTypeGenericDataSource', 'WorkloadTypeSQLDataBase', 'WorkloadTypeAzureFileShare'
WorkloadType WorkloadType `json:"workloadType,omitempty"`
// ErrorDetails - The errors.
ErrorDetails *[]MabErrorInfo `json:"errorDetails,omitempty"`
// ExtendedInfo - Additional information on the job.
ExtendedInfo *MabJobExtendedInfo `json:"extendedInfo,omitempty"`
// EntityFriendlyName - Friendly name of the entity on which the current job is executing.
EntityFriendlyName *string `json:"entityFriendlyName,omitempty"`
// BackupManagementType - Backup management type to execute the current job. Possible values include: 'ManagementTypeInvalid', 'ManagementTypeAzureIaasVM', 'ManagementTypeMAB', 'ManagementTypeDPM', 'ManagementTypeAzureBackupServer', 'ManagementTypeAzureSQL', 'ManagementTypeAzureStorage', 'ManagementTypeAzureWorkload', 'ManagementTypeDefaultBackup'
BackupManagementType ManagementType `json:"backupManagementType,omitempty"`
// Operation - The operation name.
Operation *string `json:"operation,omitempty"`
// Status - Job status.
Status *string `json:"status,omitempty"`
// StartTime - The start time.
StartTime *date.Time `json:"startTime,omitempty"`
// EndTime - The end time.
EndTime *date.Time `json:"endTime,omitempty"`
// ActivityID - ActivityId of job.
ActivityID *string `json:"activityId,omitempty"`
// JobType - Possible values include: 'JobTypeJob', 'JobTypeAzureIaaSVMJob', 'JobTypeAzureStorageJob', 'JobTypeAzureWorkloadJob', 'JobTypeDpmJob', 'JobTypeMabJob'
JobType JobType `json:"jobType,omitempty"`
}
// MarshalJSON is the custom marshaler for MabJob.
func (mj MabJob) MarshalJSON() ([]byte, error) {
mj.JobType = JobTypeMabJob
objectMap := make(map[string]interface{})
if mj.Duration != nil {
objectMap["duration"] = mj.Duration
}
if mj.ActionsInfo != nil {
objectMap["actionsInfo"] = mj.ActionsInfo
}
if mj.MabServerName != nil {
objectMap["mabServerName"] = mj.MabServerName
}
if mj.MabServerType != "" {
objectMap["mabServerType"] = mj.MabServerType
}
if mj.WorkloadType != "" {
objectMap["workloadType"] = mj.WorkloadType
}
if mj.ErrorDetails != nil {
objectMap["errorDetails"] = mj.ErrorDetails
}
if mj.ExtendedInfo != nil {
objectMap["extendedInfo"] = mj.ExtendedInfo
}
if mj.EntityFriendlyName != nil {
objectMap["entityFriendlyName"] = mj.EntityFriendlyName
}
if mj.BackupManagementType != "" {
objectMap["backupManagementType"] = mj.BackupManagementType
}
if mj.Operation != nil {
objectMap["operation"] = mj.Operation
}
if mj.Status != nil {
objectMap["status"] = mj.Status
}
if mj.StartTime != nil {
objectMap["startTime"] = mj.StartTime
}
if mj.EndTime != nil {
objectMap["endTime"] = mj.EndTime
}
if mj.ActivityID != nil {
objectMap["activityId"] = mj.ActivityID
}
if mj.JobType != "" {
objectMap["jobType"] = mj.JobType
}
return json.Marshal(objectMap)
}
// AsAzureIaaSVMJob is the BasicJob implementation for MabJob.
func (mj MabJob) AsAzureIaaSVMJob() (*AzureIaaSVMJob, bool) {
return nil, false
}
// AsAzureStorageJob is the BasicJob implementation for MabJob.
func (mj MabJob) AsAzureStorageJob() (*AzureStorageJob, bool) {
return nil, false
}
// AsAzureWorkloadJob is the BasicJob implementation for MabJob.
func (mj MabJob) AsAzureWorkloadJob() (*AzureWorkloadJob, bool) {
return nil, false
}
// AsDpmJob is the BasicJob implementation for MabJob.
func (mj MabJob) AsDpmJob() (*DpmJob, bool) {
return nil, false
}
// AsMabJob is the BasicJob implementation for MabJob.
func (mj MabJob) AsMabJob() (*MabJob, bool) {
return &mj, true
}
// AsJob is the BasicJob implementation for MabJob.
func (mj MabJob) AsJob() (*Job, bool) {
return nil, false
}
// AsBasicJob is the BasicJob implementation for MabJob.
func (mj MabJob) AsBasicJob() (BasicJob, bool) {
return &mj, true
}
// MabJobExtendedInfo additional information for the MAB workload-specific job.
type MabJobExtendedInfo struct {
// TasksList - List of tasks for this job.
TasksList *[]MabJobTaskDetails `json:"tasksList,omitempty"`
// PropertyBag - The job properties.
PropertyBag map[string]*string `json:"propertyBag"`
// DynamicErrorMessage - Non localized error message specific to this job.
DynamicErrorMessage *string `json:"dynamicErrorMessage,omitempty"`
}
// MarshalJSON is the custom marshaler for MabJobExtendedInfo.
func (mjei MabJobExtendedInfo) MarshalJSON() ([]byte, error) {
objectMap := make(map[string]interface{})
if mjei.TasksList != nil {
objectMap["tasksList"] = mjei.TasksList
}
if mjei.PropertyBag != nil {
objectMap["propertyBag"] = mjei.PropertyBag
}
if mjei.DynamicErrorMessage != nil {
objectMap["dynamicErrorMessage"] = mjei.DynamicErrorMessage
}
return json.Marshal(objectMap)
}
// MabJobTaskDetails MAB workload-specific job task details.
type MabJobTaskDetails struct {
// TaskID - The task display name.
TaskID *string `json:"taskId,omitempty"`
// StartTime - The start time.
StartTime *date.Time `json:"startTime,omitempty"`
// EndTime - The end time.
EndTime *date.Time `json:"endTime,omitempty"`
// Duration - Time elapsed for task.
Duration *string `json:"duration,omitempty"`
// Status - The status.
Status *string `json:"status,omitempty"`
}
// MabProtectionPolicy mab container-specific backup policy.
type MabProtectionPolicy struct {
// SchedulePolicy - Backup schedule of backup policy.
SchedulePolicy BasicSchedulePolicy `json:"schedulePolicy,omitempty"`
// RetentionPolicy - Retention policy details.
RetentionPolicy BasicRetentionPolicy `json:"retentionPolicy,omitempty"`
// ProtectedItemsCount - Number of items associated with this policy.
ProtectedItemsCount *int32 `json:"protectedItemsCount,omitempty"`
// BackupManagementType - Possible values include: 'BackupManagementTypeProtectionPolicy', 'BackupManagementTypeAzureStorage', 'BackupManagementTypeAzureIaasVM', 'BackupManagementTypeAzureSQL', 'BackupManagementTypeAzureWorkload', 'BackupManagementTypeGenericProtectionPolicy', 'BackupManagementTypeMAB'
BackupManagementType ManagementTypeBasicProtectionPolicy `json:"backupManagementType,omitempty"`
}
// MarshalJSON is the custom marshaler for MabProtectionPolicy.
func (mpp MabProtectionPolicy) MarshalJSON() ([]byte, error) {
mpp.BackupManagementType = BackupManagementTypeMAB
objectMap := make(map[string]interface{})
objectMap["schedulePolicy"] = mpp.SchedulePolicy
objectMap["retentionPolicy"] = mpp.RetentionPolicy
if mpp.ProtectedItemsCount != nil {
objectMap["protectedItemsCount"] = mpp.ProtectedItemsCount
}
if mpp.BackupManagementType != "" {
objectMap["backupManagementType"] = mpp.BackupManagementType
}
return json.Marshal(objectMap)
}
// AsAzureFileShareProtectionPolicy is the BasicProtectionPolicy implementation for MabProtectionPolicy.
func (mpp MabProtectionPolicy) AsAzureFileShareProtectionPolicy() (*AzureFileShareProtectionPolicy, bool) {
return nil, false
}
// AsAzureIaaSVMProtectionPolicy is the BasicProtectionPolicy implementation for MabProtectionPolicy.
func (mpp MabProtectionPolicy) AsAzureIaaSVMProtectionPolicy() (*AzureIaaSVMProtectionPolicy, bool) {
return nil, false
}
// AsAzureSQLProtectionPolicy is the BasicProtectionPolicy implementation for MabProtectionPolicy.
func (mpp MabProtectionPolicy) AsAzureSQLProtectionPolicy() (*AzureSQLProtectionPolicy, bool) {
return nil, false
}
// AsAzureVMWorkloadProtectionPolicy is the BasicProtectionPolicy implementation for MabProtectionPolicy.
func (mpp MabProtectionPolicy) AsAzureVMWorkloadProtectionPolicy() (*AzureVMWorkloadProtectionPolicy, bool) {
return nil, false
}
// AsGenericProtectionPolicy is the BasicProtectionPolicy implementation for MabProtectionPolicy.
func (mpp MabProtectionPolicy) AsGenericProtectionPolicy() (*GenericProtectionPolicy, bool) {
return nil, false
}
// AsMabProtectionPolicy is the BasicProtectionPolicy implementation for MabProtectionPolicy.
func (mpp MabProtectionPolicy) AsMabProtectionPolicy() (*MabProtectionPolicy, bool) {
return &mpp, true
}
// AsProtectionPolicy is the BasicProtectionPolicy implementation for MabProtectionPolicy.
func (mpp MabProtectionPolicy) AsProtectionPolicy() (*ProtectionPolicy, bool) {
return nil, false
}
// AsBasicProtectionPolicy is the BasicProtectionPolicy implementation for MabProtectionPolicy.
func (mpp MabProtectionPolicy) AsBasicProtectionPolicy() (BasicProtectionPolicy, bool) {
return &mpp, true
}
// UnmarshalJSON is the custom unmarshaler for MabProtectionPolicy struct.
func (mpp *MabProtectionPolicy) UnmarshalJSON(body []byte) error {
var m map[string]*json.RawMessage
err := json.Unmarshal(body, &m)
if err != nil {
return err
}
for k, v := range m {
switch k {
case "schedulePolicy":
if v != nil {
schedulePolicy, err := unmarshalBasicSchedulePolicy(*v)
if err != nil {
return err
}
mpp.SchedulePolicy = schedulePolicy
}
case "retentionPolicy":
if v != nil {
retentionPolicy, err := unmarshalBasicRetentionPolicy(*v)
if err != nil {
return err
}
mpp.RetentionPolicy = retentionPolicy
}
case "protectedItemsCount":
if v != nil {
var protectedItemsCount int32
err = json.Unmarshal(*v, &protectedItemsCount)
if err != nil {
return err
}
mpp.ProtectedItemsCount = &protectedItemsCount
}
case "backupManagementType":
if v != nil {
var backupManagementType ManagementTypeBasicProtectionPolicy
err = json.Unmarshal(*v, &backupManagementType)
if err != nil {
return err
}
mpp.BackupManagementType = backupManagementType
}
}
}
return nil
}
// ManagementUsage backup management usages of a vault.
type ManagementUsage struct {
// Unit - Unit of the usage. Possible values include: 'Count', 'Bytes', 'Seconds', 'Percent', 'CountPerSecond', 'BytesPerSecond'
Unit UsagesUnit `json:"unit,omitempty"`
// QuotaPeriod - Quota period of usage.
QuotaPeriod *string `json:"quotaPeriod,omitempty"`
// NextResetTime - Next reset time of usage.
NextResetTime *date.Time `json:"nextResetTime,omitempty"`
// CurrentValue - Current value of usage.
CurrentValue *int64 `json:"currentValue,omitempty"`
// Limit - Limit of usage.
Limit *int64 `json:"limit,omitempty"`
// Name - Name of usage.
Name *NameInfo `json:"name,omitempty"`
}
// ManagementUsageList backup management usage for vault.
type ManagementUsageList struct {
autorest.Response `json:"-"`
// Value - The list of backup management usages for the given vault.
Value *[]ManagementUsage `json:"value,omitempty"`
}
// MonthlyRetentionSchedule monthly retention schedule.
type MonthlyRetentionSchedule struct {
// RetentionScheduleFormatType - Retention schedule format type for monthly retention policy. Possible values include: 'RetentionScheduleFormatInvalid', 'RetentionScheduleFormatDaily', 'RetentionScheduleFormatWeekly'
RetentionScheduleFormatType RetentionScheduleFormat `json:"retentionScheduleFormatType,omitempty"`
// RetentionScheduleDaily - Daily retention format for monthly retention policy.
RetentionScheduleDaily *DailyRetentionFormat `json:"retentionScheduleDaily,omitempty"`
// RetentionScheduleWeekly - Weekly retention format for monthly retention policy.
RetentionScheduleWeekly *WeeklyRetentionFormat `json:"retentionScheduleWeekly,omitempty"`
// RetentionTimes - Retention times of retention policy.
RetentionTimes *[]date.Time `json:"retentionTimes,omitempty"`
// RetentionDuration - Retention duration of retention Policy.
RetentionDuration *RetentionDuration `json:"retentionDuration,omitempty"`
}
// NameInfo the name of usage.
type NameInfo struct {
// Value - Value of usage.
Value *string `json:"value,omitempty"`
// LocalizedValue - Localized value of usage.
LocalizedValue *string `json:"localizedValue,omitempty"`
}
// OperationResultInfo operation result info.
type OperationResultInfo struct {
// JobList - List of jobs created by this operation.
JobList *[]string `json:"jobList,omitempty"`
// ObjectType - Possible values include: 'ObjectTypeOperationResultInfoBase', 'ObjectTypeExportJobsOperationResultInfo', 'ObjectTypeOperationResultInfo'
ObjectType ObjectType `json:"objectType,omitempty"`
}
// MarshalJSON is the custom marshaler for OperationResultInfo.
func (ori OperationResultInfo) MarshalJSON() ([]byte, error) {
ori.ObjectType = ObjectTypeOperationResultInfo
objectMap := make(map[string]interface{})
if ori.JobList != nil {
objectMap["jobList"] = ori.JobList
}
if ori.ObjectType != "" {
objectMap["objectType"] = ori.ObjectType
}
return json.Marshal(objectMap)
}
// AsExportJobsOperationResultInfo is the BasicOperationResultInfoBase implementation for OperationResultInfo.
func (ori OperationResultInfo) AsExportJobsOperationResultInfo() (*ExportJobsOperationResultInfo, bool) {
return nil, false
}
// AsOperationResultInfo is the BasicOperationResultInfoBase implementation for OperationResultInfo.
func (ori OperationResultInfo) AsOperationResultInfo() (*OperationResultInfo, bool) {
return &ori, true
}
// AsOperationResultInfoBase is the BasicOperationResultInfoBase implementation for OperationResultInfo.
func (ori OperationResultInfo) AsOperationResultInfoBase() (*OperationResultInfoBase, bool) {
return nil, false
}
// AsBasicOperationResultInfoBase is the BasicOperationResultInfoBase implementation for OperationResultInfo.
func (ori OperationResultInfo) AsBasicOperationResultInfoBase() (BasicOperationResultInfoBase, bool) {
return &ori, true
}
// BasicOperationResultInfoBase base class for operation result info.
type BasicOperationResultInfoBase interface {
AsExportJobsOperationResultInfo() (*ExportJobsOperationResultInfo, bool)
AsOperationResultInfo() (*OperationResultInfo, bool)
AsOperationResultInfoBase() (*OperationResultInfoBase, bool)
}
// OperationResultInfoBase base class for operation result info.
type OperationResultInfoBase struct {
// ObjectType - Possible values include: 'ObjectTypeOperationResultInfoBase', 'ObjectTypeExportJobsOperationResultInfo', 'ObjectTypeOperationResultInfo'
ObjectType ObjectType `json:"objectType,omitempty"`
}
func unmarshalBasicOperationResultInfoBase(body []byte) (BasicOperationResultInfoBase, error) {
var m map[string]interface{}
err := json.Unmarshal(body, &m)
if err != nil {
return nil, err
}
switch m["objectType"] {
case string(ObjectTypeExportJobsOperationResultInfo):
var ejori ExportJobsOperationResultInfo
err := json.Unmarshal(body, &ejori)
return ejori, err
case string(ObjectTypeOperationResultInfo):
var ori OperationResultInfo
err := json.Unmarshal(body, &ori)
return ori, err
default:
var orib OperationResultInfoBase
err := json.Unmarshal(body, &orib)
return orib, err
}
}
func unmarshalBasicOperationResultInfoBaseArray(body []byte) ([]BasicOperationResultInfoBase, error) {
var rawMessages []*json.RawMessage
err := json.Unmarshal(body, &rawMessages)
if err != nil {
return nil, err
}
oribArray := make([]BasicOperationResultInfoBase, len(rawMessages))
for index, rawMessage := range rawMessages {
orib, err := unmarshalBasicOperationResultInfoBase(*rawMessage)
if err != nil {
return nil, err
}
oribArray[index] = orib
}
return oribArray, nil
}
// MarshalJSON is the custom marshaler for OperationResultInfoBase.
func (orib OperationResultInfoBase) MarshalJSON() ([]byte, error) {
orib.ObjectType = ObjectTypeOperationResultInfoBase
objectMap := make(map[string]interface{})
if orib.ObjectType != "" {
objectMap["objectType"] = orib.ObjectType
}
return json.Marshal(objectMap)
}
// AsExportJobsOperationResultInfo is the BasicOperationResultInfoBase implementation for OperationResultInfoBase.
func (orib OperationResultInfoBase) AsExportJobsOperationResultInfo() (*ExportJobsOperationResultInfo, bool) {
return nil, false
}
// AsOperationResultInfo is the BasicOperationResultInfoBase implementation for OperationResultInfoBase.
func (orib OperationResultInfoBase) AsOperationResultInfo() (*OperationResultInfo, bool) {
return nil, false
}
// AsOperationResultInfoBase is the BasicOperationResultInfoBase implementation for OperationResultInfoBase.
func (orib OperationResultInfoBase) AsOperationResultInfoBase() (*OperationResultInfoBase, bool) {
return &orib, true
}
// AsBasicOperationResultInfoBase is the BasicOperationResultInfoBase implementation for OperationResultInfoBase.
func (orib OperationResultInfoBase) AsBasicOperationResultInfoBase() (BasicOperationResultInfoBase, bool) {
return &orib, true
}
// OperationResultInfoBaseResource base class for operation result info.
type OperationResultInfoBaseResource struct {
autorest.Response `json:"-"`
// Operation - OperationResultInfoBaseResource operation
Operation BasicOperationResultInfoBase `json:"operation,omitempty"`
// 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'
StatusCode HTTPStatusCode `json:"statusCode,omitempty"`
// Headers - HTTP headers associated with this operation.
Headers map[string][]string `json:"headers"`
}
// MarshalJSON is the custom marshaler for OperationResultInfoBaseResource.
func (oribr OperationResultInfoBaseResource) MarshalJSON() ([]byte, error) {
objectMap := make(map[string]interface{})
objectMap["operation"] = oribr.Operation
if oribr.StatusCode != "" {
objectMap["statusCode"] = oribr.StatusCode
}
if oribr.Headers != nil {
objectMap["headers"] = oribr.Headers
}
return json.Marshal(objectMap)
}
// UnmarshalJSON is the custom unmarshaler for OperationResultInfoBaseResource struct.
func (oribr *OperationResultInfoBaseResource) UnmarshalJSON(body []byte) error {
var m map[string]*json.RawMessage
err := json.Unmarshal(body, &m)
if err != nil {
return err
}
for k, v := range m {
switch k {
case "operation":
if v != nil {
operation, err := unmarshalBasicOperationResultInfoBase(*v)
if err != nil {
return err
}
oribr.Operation = operation
}
case "statusCode":
if v != nil {
var statusCode HTTPStatusCode
err = json.Unmarshal(*v, &statusCode)
if err != nil {
return err
}
oribr.StatusCode = statusCode
}
case "headers":
if v != nil {
var headers map[string][]string
err = json.Unmarshal(*v, &headers)
if err != nil {
return err
}
oribr.Headers = headers
}
}
}
return nil
}
// OperationStatus operation status.
type OperationStatus struct {
autorest.Response `json:"-"`
// ID - ID of the operation.
ID *string `json:"id,omitempty"`
// Name - Name of the operation.
Name *string `json:"name,omitempty"`
// Status - Operation status. Possible values include: 'OperationStatusValuesInvalid', 'OperationStatusValuesInProgress', 'OperationStatusValuesSucceeded', 'OperationStatusValuesFailed', 'OperationStatusValuesCanceled'
Status OperationStatusValues `json:"status,omitempty"`
// StartTime - Operation start time. Format: ISO-8601.
StartTime *date.Time `json:"startTime,omitempty"`
// EndTime - Operation end time. Format: ISO-8601.
EndTime *date.Time `json:"endTime,omitempty"`
// Error - Error information related to this operation.
Error *OperationStatusError `json:"error,omitempty"`
// Properties - Additional information associated with this operation.
Properties BasicOperationStatusExtendedInfo `json:"properties,omitempty"`
}
// UnmarshalJSON is the custom unmarshaler for OperationStatus struct.
func (osVar *OperationStatus) UnmarshalJSON(body []byte) error {
var m map[string]*json.RawMessage
err := json.Unmarshal(body, &m)
if err != nil {
return err
}
for k, v := range m {
switch k {
case "id":
if v != nil {
var ID string
err = json.Unmarshal(*v, &ID)
if err != nil {
return err
}
osVar.ID = &ID
}
case "name":
if v != nil {
var name string
err = json.Unmarshal(*v, &name)
if err != nil {
return err
}
osVar.Name = &name
}
case "status":
if v != nil {
var status OperationStatusValues
err = json.Unmarshal(*v, &status)
if err != nil {
return err
}
osVar.Status = status
}
case "startTime":
if v != nil {
var startTime date.Time
err = json.Unmarshal(*v, &startTime)
if err != nil {
return err
}
osVar.StartTime = &startTime
}
case "endTime":
if v != nil {
var endTime date.Time
err = json.Unmarshal(*v, &endTime)
if err != nil {
return err
}
osVar.EndTime = &endTime
}
case "error":
if v != nil {
var errorVar OperationStatusError
err = json.Unmarshal(*v, &errorVar)
if err != nil {
return err
}
osVar.Error = &errorVar
}
case "properties":
if v != nil {
properties, err := unmarshalBasicOperationStatusExtendedInfo(*v)
if err != nil {
return err
}
osVar.Properties = properties
}
}
}
return nil
}
// OperationStatusError error information associated with operation status call.
type OperationStatusError struct {
// Code - Error code of the operation failure.
Code *string `json:"code,omitempty"`
// Message - Error message displayed if the operation failure.
Message *string `json:"message,omitempty"`
}
// BasicOperationStatusExtendedInfo base class for additional information of operation status.
type BasicOperationStatusExtendedInfo interface {
AsOperationStatusJobExtendedInfo() (*OperationStatusJobExtendedInfo, bool)
AsOperationStatusJobsExtendedInfo() (*OperationStatusJobsExtendedInfo, bool)
AsOperationStatusProvisionILRExtendedInfo() (*OperationStatusProvisionILRExtendedInfo, bool)
AsOperationStatusExtendedInfo() (*OperationStatusExtendedInfo, bool)
}
// OperationStatusExtendedInfo base class for additional information of operation status.
type OperationStatusExtendedInfo struct {
// ObjectType - Possible values include: 'ObjectTypeOperationStatusExtendedInfo', 'ObjectTypeOperationStatusJobExtendedInfo', 'ObjectTypeOperationStatusJobsExtendedInfo', 'ObjectTypeOperationStatusProvisionILRExtendedInfo'
ObjectType ObjectTypeBasicOperationStatusExtendedInfo `json:"objectType,omitempty"`
}
func unmarshalBasicOperationStatusExtendedInfo(body []byte) (BasicOperationStatusExtendedInfo, error) {
var m map[string]interface{}
err := json.Unmarshal(body, &m)
if err != nil {
return nil, err
}
switch m["objectType"] {
case string(ObjectTypeOperationStatusJobExtendedInfo):
var osjei OperationStatusJobExtendedInfo
err := json.Unmarshal(body, &osjei)
return osjei, err
case string(ObjectTypeOperationStatusJobsExtendedInfo):
var osjei OperationStatusJobsExtendedInfo
err := json.Unmarshal(body, &osjei)
return osjei, err
case string(ObjectTypeOperationStatusProvisionILRExtendedInfo):
var ospiei OperationStatusProvisionILRExtendedInfo
err := json.Unmarshal(body, &ospiei)
return ospiei, err
default:
var osei OperationStatusExtendedInfo
err := json.Unmarshal(body, &osei)
return osei, err
}
}
func unmarshalBasicOperationStatusExtendedInfoArray(body []byte) ([]BasicOperationStatusExtendedInfo, error) {
var rawMessages []*json.RawMessage
err := json.Unmarshal(body, &rawMessages)
if err != nil {
return nil, err
}
oseiArray := make([]BasicOperationStatusExtendedInfo, len(rawMessages))
for index, rawMessage := range rawMessages {
osei, err := unmarshalBasicOperationStatusExtendedInfo(*rawMessage)
if err != nil {
return nil, err
}
oseiArray[index] = osei
}
return oseiArray, nil
}
// MarshalJSON is the custom marshaler for OperationStatusExtendedInfo.
func (osei OperationStatusExtendedInfo) MarshalJSON() ([]byte, error) {
osei.ObjectType = ObjectTypeOperationStatusExtendedInfo
objectMap := make(map[string]interface{})
if osei.ObjectType != "" {
objectMap["objectType"] = osei.ObjectType
}
return json.Marshal(objectMap)
}
// AsOperationStatusJobExtendedInfo is the BasicOperationStatusExtendedInfo implementation for OperationStatusExtendedInfo.
func (osei OperationStatusExtendedInfo) AsOperationStatusJobExtendedInfo() (*OperationStatusJobExtendedInfo, bool) {
return nil, false
}
// AsOperationStatusJobsExtendedInfo is the BasicOperationStatusExtendedInfo implementation for OperationStatusExtendedInfo.
func (osei OperationStatusExtendedInfo) AsOperationStatusJobsExtendedInfo() (*OperationStatusJobsExtendedInfo, bool) {
return nil, false
}
// AsOperationStatusProvisionILRExtendedInfo is the BasicOperationStatusExtendedInfo implementation for OperationStatusExtendedInfo.
func (osei OperationStatusExtendedInfo) AsOperationStatusProvisionILRExtendedInfo() (*OperationStatusProvisionILRExtendedInfo, bool) {
return nil, false
}
// AsOperationStatusExtendedInfo is the BasicOperationStatusExtendedInfo implementation for OperationStatusExtendedInfo.
func (osei OperationStatusExtendedInfo) AsOperationStatusExtendedInfo() (*OperationStatusExtendedInfo, bool) {
return &osei, true
}
// AsBasicOperationStatusExtendedInfo is the BasicOperationStatusExtendedInfo implementation for OperationStatusExtendedInfo.
func (osei OperationStatusExtendedInfo) AsBasicOperationStatusExtendedInfo() (BasicOperationStatusExtendedInfo, bool) {
return &osei, true
}
// OperationStatusJobExtendedInfo operation status job extended info.
type OperationStatusJobExtendedInfo struct {
// JobID - ID of the job created for this protected item.
JobID *string `json:"jobId,omitempty"`
// ObjectType - Possible values include: 'ObjectTypeOperationStatusExtendedInfo', 'ObjectTypeOperationStatusJobExtendedInfo', 'ObjectTypeOperationStatusJobsExtendedInfo', 'ObjectTypeOperationStatusProvisionILRExtendedInfo'
ObjectType ObjectTypeBasicOperationStatusExtendedInfo `json:"objectType,omitempty"`
}
// MarshalJSON is the custom marshaler for OperationStatusJobExtendedInfo.
func (osjei OperationStatusJobExtendedInfo) MarshalJSON() ([]byte, error) {
osjei.ObjectType = ObjectTypeOperationStatusJobExtendedInfo
objectMap := make(map[string]interface{})
if osjei.JobID != nil {
objectMap["jobId"] = osjei.JobID
}
if osjei.ObjectType != "" {
objectMap["objectType"] = osjei.ObjectType
}
return json.Marshal(objectMap)
}
// AsOperationStatusJobExtendedInfo is the BasicOperationStatusExtendedInfo implementation for OperationStatusJobExtendedInfo.
func (osjei OperationStatusJobExtendedInfo) AsOperationStatusJobExtendedInfo() (*OperationStatusJobExtendedInfo, bool) {
return &osjei, true
}
// AsOperationStatusJobsExtendedInfo is the BasicOperationStatusExtendedInfo implementation for OperationStatusJobExtendedInfo.
func (osjei OperationStatusJobExtendedInfo) AsOperationStatusJobsExtendedInfo() (*OperationStatusJobsExtendedInfo, bool) {
return nil, false
}
// AsOperationStatusProvisionILRExtendedInfo is the BasicOperationStatusExtendedInfo implementation for OperationStatusJobExtendedInfo.
func (osjei OperationStatusJobExtendedInfo) AsOperationStatusProvisionILRExtendedInfo() (*OperationStatusProvisionILRExtendedInfo, bool) {
return nil, false
}
// AsOperationStatusExtendedInfo is the BasicOperationStatusExtendedInfo implementation for OperationStatusJobExtendedInfo.
func (osjei OperationStatusJobExtendedInfo) AsOperationStatusExtendedInfo() (*OperationStatusExtendedInfo, bool) {
return nil, false
}
// AsBasicOperationStatusExtendedInfo is the BasicOperationStatusExtendedInfo implementation for OperationStatusJobExtendedInfo.
func (osjei OperationStatusJobExtendedInfo) AsBasicOperationStatusExtendedInfo() (BasicOperationStatusExtendedInfo, bool) {
return &osjei, true
}
// OperationStatusJobsExtendedInfo operation status extended info for list of jobs.
type OperationStatusJobsExtendedInfo struct {
// JobIds - IDs of the jobs created for the protected item.
JobIds *[]string `json:"jobIds,omitempty"`
// FailedJobsError - Stores all the failed jobs along with the corresponding error codes.
FailedJobsError map[string]*string `json:"failedJobsError"`
// ObjectType - Possible values include: 'ObjectTypeOperationStatusExtendedInfo', 'ObjectTypeOperationStatusJobExtendedInfo', 'ObjectTypeOperationStatusJobsExtendedInfo', 'ObjectTypeOperationStatusProvisionILRExtendedInfo'
ObjectType ObjectTypeBasicOperationStatusExtendedInfo `json:"objectType,omitempty"`
}
// MarshalJSON is the custom marshaler for OperationStatusJobsExtendedInfo.
func (osjei OperationStatusJobsExtendedInfo) MarshalJSON() ([]byte, error) {
osjei.ObjectType = ObjectTypeOperationStatusJobsExtendedInfo
objectMap := make(map[string]interface{})
if osjei.JobIds != nil {
objectMap["jobIds"] = osjei.JobIds
}
if osjei.FailedJobsError != nil {
objectMap["failedJobsError"] = osjei.FailedJobsError
}
if osjei.ObjectType != "" {
objectMap["objectType"] = osjei.ObjectType
}
return json.Marshal(objectMap)
}
// AsOperationStatusJobExtendedInfo is the BasicOperationStatusExtendedInfo implementation for OperationStatusJobsExtendedInfo.
func (osjei OperationStatusJobsExtendedInfo) AsOperationStatusJobExtendedInfo() (*OperationStatusJobExtendedInfo, bool) {
return nil, false
}
// AsOperationStatusJobsExtendedInfo is the BasicOperationStatusExtendedInfo implementation for OperationStatusJobsExtendedInfo.
func (osjei OperationStatusJobsExtendedInfo) AsOperationStatusJobsExtendedInfo() (*OperationStatusJobsExtendedInfo, bool) {
return &osjei, true
}
// AsOperationStatusProvisionILRExtendedInfo is the BasicOperationStatusExtendedInfo implementation for OperationStatusJobsExtendedInfo.
func (osjei OperationStatusJobsExtendedInfo) AsOperationStatusProvisionILRExtendedInfo() (*OperationStatusProvisionILRExtendedInfo, bool) {
return nil, false
}
// AsOperationStatusExtendedInfo is the BasicOperationStatusExtendedInfo implementation for OperationStatusJobsExtendedInfo.
func (osjei OperationStatusJobsExtendedInfo) AsOperationStatusExtendedInfo() (*OperationStatusExtendedInfo, bool) {
return nil, false
}
// AsBasicOperationStatusExtendedInfo is the BasicOperationStatusExtendedInfo implementation for OperationStatusJobsExtendedInfo.
func (osjei OperationStatusJobsExtendedInfo) AsBasicOperationStatusExtendedInfo() (BasicOperationStatusExtendedInfo, bool) {
return &osjei, true
}
// OperationStatusProvisionILRExtendedInfo operation status extended info for ILR provision action.
type OperationStatusProvisionILRExtendedInfo struct {
// RecoveryTarget - Target details for file / folder restore.
RecoveryTarget *InstantItemRecoveryTarget `json:"recoveryTarget,omitempty"`
// ObjectType - Possible values include: 'ObjectTypeOperationStatusExtendedInfo', 'ObjectTypeOperationStatusJobExtendedInfo', 'ObjectTypeOperationStatusJobsExtendedInfo', 'ObjectTypeOperationStatusProvisionILRExtendedInfo'
ObjectType ObjectTypeBasicOperationStatusExtendedInfo `json:"objectType,omitempty"`
}
// MarshalJSON is the custom marshaler for OperationStatusProvisionILRExtendedInfo.
func (ospiei OperationStatusProvisionILRExtendedInfo) MarshalJSON() ([]byte, error) {
ospiei.ObjectType = ObjectTypeOperationStatusProvisionILRExtendedInfo
objectMap := make(map[string]interface{})
if ospiei.RecoveryTarget != nil {
objectMap["recoveryTarget"] = ospiei.RecoveryTarget
}
if ospiei.ObjectType != "" {
objectMap["objectType"] = ospiei.ObjectType
}
return json.Marshal(objectMap)
}
// AsOperationStatusJobExtendedInfo is the BasicOperationStatusExtendedInfo implementation for OperationStatusProvisionILRExtendedInfo.
func (ospiei OperationStatusProvisionILRExtendedInfo) AsOperationStatusJobExtendedInfo() (*OperationStatusJobExtendedInfo, bool) {
return nil, false
}
// AsOperationStatusJobsExtendedInfo is the BasicOperationStatusExtendedInfo implementation for OperationStatusProvisionILRExtendedInfo.
func (ospiei OperationStatusProvisionILRExtendedInfo) AsOperationStatusJobsExtendedInfo() (*OperationStatusJobsExtendedInfo, bool) {
return nil, false
}
// AsOperationStatusProvisionILRExtendedInfo is the BasicOperationStatusExtendedInfo implementation for OperationStatusProvisionILRExtendedInfo.
func (ospiei OperationStatusProvisionILRExtendedInfo) AsOperationStatusProvisionILRExtendedInfo() (*OperationStatusProvisionILRExtendedInfo, bool) {
return &ospiei, true
}
// AsOperationStatusExtendedInfo is the BasicOperationStatusExtendedInfo implementation for OperationStatusProvisionILRExtendedInfo.
func (ospiei OperationStatusProvisionILRExtendedInfo) AsOperationStatusExtendedInfo() (*OperationStatusExtendedInfo, bool) {
return nil, false
}
// AsBasicOperationStatusExtendedInfo is the BasicOperationStatusExtendedInfo implementation for OperationStatusProvisionILRExtendedInfo.
func (ospiei OperationStatusProvisionILRExtendedInfo) AsBasicOperationStatusExtendedInfo() (BasicOperationStatusExtendedInfo, bool) {
return &ospiei, true
}
// OperationWorkerResponse this is the base class for operation result responses.
type OperationWorkerResponse struct {
// 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'
StatusCode HTTPStatusCode `json:"statusCode,omitempty"`
// Headers - HTTP headers associated with this operation.
Headers map[string][]string `json:"headers"`
}
// MarshalJSON is the custom marshaler for OperationWorkerResponse.
func (owr OperationWorkerResponse) MarshalJSON() ([]byte, error) {
objectMap := make(map[string]interface{})
if owr.StatusCode != "" {
objectMap["statusCode"] = owr.StatusCode
}
if owr.Headers != nil {
objectMap["headers"] = owr.Headers
}
return json.Marshal(objectMap)
}
// PointInTimeRange provides details for log ranges
type PointInTimeRange struct {
// StartTime - Start time of the time range for log recovery.
StartTime *date.Time `json:"startTime,omitempty"`
// EndTime - End time of the time range for log recovery.
EndTime *date.Time `json:"endTime,omitempty"`
}
// PreBackupValidation pre-backup validation for Azure VM Workload provider.
type PreBackupValidation struct {
// Status - Status of protectable item, i.e. InProgress,Succeeded,Failed. Possible values include: 'InquiryStatusInvalid', 'InquiryStatusSuccess', 'InquiryStatusFailed'
Status InquiryStatus `json:"status,omitempty"`
// Code - Error code of protectable item
Code *string `json:"code,omitempty"`
// Message - Message corresponding to the error code for the protectable item
Message *string `json:"message,omitempty"`
}
// PreValidateEnableBackupRequest contract to validate if backup can be enabled on the given resource in a given
// vault and given configuration.
// It will validate followings
// 1. Vault capacity
// 2. VM is already protected
// 3. Any VM related configuration passed in properties.
type PreValidateEnableBackupRequest struct {
// ResourceType - Container Type - VM, SQLPaaS, DPM etc. Possible values include: 'DataSourceTypeInvalid', 'DataSourceTypeVM', 'DataSourceTypeFileFolder', 'DataSourceTypeAzureSQLDb', 'DataSourceTypeSQLDB', 'DataSourceTypeExchange', 'DataSourceTypeSharepoint', 'DataSourceTypeVMwareVM', 'DataSourceTypeSystemState', 'DataSourceTypeClient', 'DataSourceTypeGenericDataSource', 'DataSourceTypeSQLDataBase', 'DataSourceTypeAzureFileShare'
ResourceType DataSourceType `json:"resourceType,omitempty"`
// ResourceID - Entire ARM VM Id
ResourceID *string `json:"resourceId,omitempty"`
// VaultID - Entire vault id of the resource
VaultID *string `json:"vaultId,omitempty"`
// Properties - Configuration of VM if any needs to be validated like OS type etc
Properties *string `json:"properties,omitempty"`
}
// PreValidateEnableBackupResponse response contract for enable backup validation request
type PreValidateEnableBackupResponse struct {
autorest.Response `json:"-"`
// Status - Validation Status. Possible values include: 'ValidationStatusInvalid', 'ValidationStatusSucceeded', 'ValidationStatusFailed'
Status ValidationStatus `json:"status,omitempty"`
// ErrorCode - Response error code
ErrorCode *string `json:"errorCode,omitempty"`
// ErrorMessage - Response error message
ErrorMessage *string `json:"errorMessage,omitempty"`
// Recommendation - Recommended action for user
Recommendation *string `json:"recommendation,omitempty"`
// ContainerName - Specifies the product specific container name. E.g. iaasvmcontainer;iaasvmcontainer;rgname;vmname. This is required for portal
ContainerName *string `json:"containerName,omitempty"`
// ProtectedItemName - Specifies the product specific ds name. E.g. vm;iaasvmcontainer;rgname;vmname. This is required for portal
ProtectedItemName *string `json:"protectedItemName,omitempty"`
}
// BasicProtectableContainer protectable Container Class.
type BasicProtectableContainer interface {
AsAzureStorageProtectableContainer() (*AzureStorageProtectableContainer, bool)
AsAzureVMAppContainerProtectableContainer() (*AzureVMAppContainerProtectableContainer, bool)
AsProtectableContainer() (*ProtectableContainer, bool)
}
// ProtectableContainer protectable Container Class.
type ProtectableContainer struct {
// FriendlyName - Friendly name of the container.
FriendlyName *string `json:"friendlyName,omitempty"`
// BackupManagementType - Type of backup managemenent for the container. Possible values include: 'ManagementTypeInvalid', 'ManagementTypeAzureIaasVM', 'ManagementTypeMAB', 'ManagementTypeDPM', 'ManagementTypeAzureBackupServer', 'ManagementTypeAzureSQL', 'ManagementTypeAzureStorage', 'ManagementTypeAzureWorkload', 'ManagementTypeDefaultBackup'
BackupManagementType ManagementType `json:"backupManagementType,omitempty"`
// HealthStatus - Status of health of the container.
HealthStatus *string `json:"healthStatus,omitempty"`
// ContainerID - Fabric Id of the container such as ARM Id.
ContainerID *string `json:"containerId,omitempty"`
// ProtectableContainerType - Possible values include: 'ProtectableContainerTypeProtectableContainer', 'ProtectableContainerTypeStorageContainer', 'ProtectableContainerTypeVMAppContainer'
ProtectableContainerType ProtectableContainerType `json:"protectableContainerType,omitempty"`
}
func unmarshalBasicProtectableContainer(body []byte) (BasicProtectableContainer, error) {
var m map[string]interface{}
err := json.Unmarshal(body, &m)
if err != nil {
return nil, err
}
switch m["protectableContainerType"] {
case string(ProtectableContainerTypeStorageContainer):
var aspc AzureStorageProtectableContainer
err := json.Unmarshal(body, &aspc)
return aspc, err
case string(ProtectableContainerTypeVMAppContainer):
var avacpc AzureVMAppContainerProtectableContainer
err := json.Unmarshal(body, &avacpc)
return avacpc, err
default:
var pc ProtectableContainer
err := json.Unmarshal(body, &pc)
return pc, err
}
}
func unmarshalBasicProtectableContainerArray(body []byte) ([]BasicProtectableContainer, error) {
var rawMessages []*json.RawMessage
err := json.Unmarshal(body, &rawMessages)
if err != nil {
return nil, err
}
pcArray := make([]BasicProtectableContainer, len(rawMessages))
for index, rawMessage := range rawMessages {
pc, err := unmarshalBasicProtectableContainer(*rawMessage)
if err != nil {
return nil, err
}
pcArray[index] = pc
}
return pcArray, nil
}
// MarshalJSON is the custom marshaler for ProtectableContainer.
func (pc ProtectableContainer) MarshalJSON() ([]byte, error) {
pc.ProtectableContainerType = ProtectableContainerTypeProtectableContainer
objectMap := make(map[string]interface{})
if pc.FriendlyName != nil {
objectMap["friendlyName"] = pc.FriendlyName
}
if pc.BackupManagementType != "" {
objectMap["backupManagementType"] = pc.BackupManagementType
}
if pc.HealthStatus != nil {
objectMap["healthStatus"] = pc.HealthStatus
}
if pc.ContainerID != nil {
objectMap["containerId"] = pc.ContainerID
}
if pc.ProtectableContainerType != "" {
objectMap["protectableContainerType"] = pc.ProtectableContainerType
}
return json.Marshal(objectMap)
}
// AsAzureStorageProtectableContainer is the BasicProtectableContainer implementation for ProtectableContainer.
func (pc ProtectableContainer) AsAzureStorageProtectableContainer() (*AzureStorageProtectableContainer, bool) {
return nil, false
}
// AsAzureVMAppContainerProtectableContainer is the BasicProtectableContainer implementation for ProtectableContainer.
func (pc ProtectableContainer) AsAzureVMAppContainerProtectableContainer() (*AzureVMAppContainerProtectableContainer, bool) {
return nil, false
}
// AsProtectableContainer is the BasicProtectableContainer implementation for ProtectableContainer.
func (pc ProtectableContainer) AsProtectableContainer() (*ProtectableContainer, bool) {
return &pc, true
}
// AsBasicProtectableContainer is the BasicProtectableContainer implementation for ProtectableContainer.
func (pc ProtectableContainer) AsBasicProtectableContainer() (BasicProtectableContainer, bool) {
return &pc, true
}
// ProtectableContainerResource protectable Container Class.
type ProtectableContainerResource struct {
// Properties - ProtectableContainerResource properties
Properties BasicProtectableContainer `json:"properties,omitempty"`
// ID - Resource Id represents the complete path to the resource.
ID *string `json:"id,omitempty"`
// Name - Resource name associated with the resource.
Name *string `json:"name,omitempty"`
// Type - Resource type represents the complete path of the form Namespace/ResourceType/ResourceType/...
Type *string `json:"type,omitempty"`
// Location - Resource location.
Location *string `json:"location,omitempty"`
// Tags - Resource tags.
Tags map[string]*string `json:"tags"`
// ETag - Optional ETag.
ETag *string `json:"eTag,omitempty"`
}
// MarshalJSON is the custom marshaler for ProtectableContainerResource.
func (pcr ProtectableContainerResource) MarshalJSON() ([]byte, error) {
objectMap := make(map[string]interface{})
objectMap["properties"] = pcr.Properties
if pcr.ID != nil {
objectMap["id"] = pcr.ID
}
if pcr.Name != nil {
objectMap["name"] = pcr.Name
}
if pcr.Type != nil {
objectMap["type"] = pcr.Type
}
if pcr.Location != nil {
objectMap["location"] = pcr.Location
}
if pcr.Tags != nil {
objectMap["tags"] = pcr.Tags
}
if pcr.ETag != nil {
objectMap["eTag"] = pcr.ETag
}
return json.Marshal(objectMap)
}
// UnmarshalJSON is the custom unmarshaler for ProtectableContainerResource struct.
func (pcr *ProtectableContainerResource) UnmarshalJSON(body []byte) error {
var m map[string]*json.RawMessage
err := json.Unmarshal(body, &m)
if err != nil {
return err
}
for k, v := range m {
switch k {
case "properties":
if v != nil {
properties, err := unmarshalBasicProtectableContainer(*v)
if err != nil {
return err
}
pcr.Properties = properties
}
case "id":
if v != nil {
var ID string
err = json.Unmarshal(*v, &ID)
if err != nil {
return err
}
pcr.ID = &ID
}
case "name":
if v != nil {
var name string
err = json.Unmarshal(*v, &name)
if err != nil {
return err
}
pcr.Name = &name
}
case "type":
if v != nil {
var typeVar string
err = json.Unmarshal(*v, &typeVar)
if err != nil {
return err
}
pcr.Type = &typeVar
}
case "location":
if v != nil {
var location string
err = json.Unmarshal(*v, &location)
if err != nil {
return err
}
pcr.Location = &location
}
case "tags":
if v != nil {
var tags map[string]*string
err = json.Unmarshal(*v, &tags)
if err != nil {
return err
}
pcr.Tags = tags
}
case "eTag":
if v != nil {
var eTag string
err = json.Unmarshal(*v, &eTag)
if err != nil {
return err
}
pcr.ETag = &eTag
}
}
}
return nil
}
// ProtectableContainerResourceList list of ProtectableContainer resources
type ProtectableContainerResourceList struct {
autorest.Response `json:"-"`
// Value - List of resources.
Value *[]ProtectableContainerResource `json:"value,omitempty"`
// NextLink - The uri to fetch the next page of resources. Call ListNext() fetches next page of resources.
NextLink *string `json:"nextLink,omitempty"`
}
// ProtectableContainerResourceListIterator provides access to a complete listing of ProtectableContainerResource
// values.
type ProtectableContainerResourceListIterator struct {
i int
page ProtectableContainerResourceListPage
}
// Next advances to the next value. If there was an error making
// the request the iterator does not advance and the error is returned.
func (iter *ProtectableContainerResourceListIterator) Next() error {
iter.i++
if iter.i < len(iter.page.Values()) {
return nil
}
err := iter.page.Next()
if err != nil {
iter.i--
return err
}
iter.i = 0
return nil
}
// NotDone returns true if the enumeration should be started or is not yet complete.
func (iter ProtectableContainerResourceListIterator) NotDone() bool {
return iter.page.NotDone() && iter.i < len(iter.page.Values())
}
// Response returns the raw server response from the last page request.
func (iter ProtectableContainerResourceListIterator) Response() ProtectableContainerResourceList {
return iter.page.Response()
}
// Value returns the current value or a zero-initialized value if the
// iterator has advanced beyond the end of the collection.
func (iter ProtectableContainerResourceListIterator) Value() ProtectableContainerResource {
if !iter.page.NotDone() {
return ProtectableContainerResource{}
}
return iter.page.Values()[iter.i]
}
// IsEmpty returns true if the ListResult contains no values.
func (pcrl ProtectableContainerResourceList) IsEmpty() bool {
return pcrl.Value == nil || len(*pcrl.Value) == 0
}
// protectableContainerResourceListPreparer prepares a request to retrieve the next set of results.
// It returns nil if no more results exist.
func (pcrl ProtectableContainerResourceList) protectableContainerResourceListPreparer() (*http.Request, error) {
if pcrl.NextLink == nil || len(to.String(pcrl.NextLink)) < 1 {
return nil, nil
}
return autorest.Prepare(&http.Request{},
autorest.AsJSON(),
autorest.AsGet(),
autorest.WithBaseURL(to.String(pcrl.NextLink)))
}
// ProtectableContainerResourceListPage contains a page of ProtectableContainerResource values.
type ProtectableContainerResourceListPage struct {
fn func(ProtectableContainerResourceList) (ProtectableContainerResourceList, error)
pcrl ProtectableContainerResourceList
}
// Next advances to the next page of values. If there was an error making
// the request the page does not advance and the error is returned.
func (page *ProtectableContainerResourceListPage) Next() error {
next, err := page.fn(page.pcrl)
if err != nil {
return err
}
page.pcrl = next
return nil
}
// NotDone returns true if the page enumeration should be started or is not yet complete.
func (page ProtectableContainerResourceListPage) NotDone() bool {
return !page.pcrl.IsEmpty()
}
// Response returns the raw server response from the last page request.
func (page ProtectableContainerResourceListPage) Response() ProtectableContainerResourceList {
return page.pcrl
}
// Values returns the slice of values for the current page or nil if there are no values.
func (page ProtectableContainerResourceListPage) Values() []ProtectableContainerResource {
if page.pcrl.IsEmpty() {
return nil
}
return *page.pcrl.Value
}
// BasicProtectedItem base class for backup items.
type BasicProtectedItem interface {
AsAzureFileshareProtectedItem() (*AzureFileshareProtectedItem, bool)
AsAzureIaaSClassicComputeVMProtectedItem() (*AzureIaaSClassicComputeVMProtectedItem, bool)
AsAzureIaaSComputeVMProtectedItem() (*AzureIaaSComputeVMProtectedItem, bool)
AsAzureIaaSVMProtectedItem() (*AzureIaaSVMProtectedItem, bool)
AsBasicAzureIaaSVMProtectedItem() (BasicAzureIaaSVMProtectedItem, bool)
AsAzureSQLProtectedItem() (*AzureSQLProtectedItem, bool)
AsAzureVMWorkloadSQLDatabaseProtectedItem() (*AzureVMWorkloadSQLDatabaseProtectedItem, bool)
AsDPMProtectedItem() (*DPMProtectedItem, bool)
AsGenericProtectedItem() (*GenericProtectedItem, bool)
AsMabFileFolderProtectedItem() (*MabFileFolderProtectedItem, bool)
AsProtectedItem() (*ProtectedItem, bool)
}
// ProtectedItem base class for backup items.
type ProtectedItem struct {
// BackupManagementType - Type of backup managemenent for the backed up item. Possible values include: 'ManagementTypeInvalid', 'ManagementTypeAzureIaasVM', 'ManagementTypeMAB', 'ManagementTypeDPM', 'ManagementTypeAzureBackupServer', 'ManagementTypeAzureSQL', 'ManagementTypeAzureStorage', 'ManagementTypeAzureWorkload', 'ManagementTypeDefaultBackup'
BackupManagementType ManagementType `json:"backupManagementType,omitempty"`
// WorkloadType - Type of workload this item represents. Possible values include: 'DataSourceTypeInvalid', 'DataSourceTypeVM', 'DataSourceTypeFileFolder', 'DataSourceTypeAzureSQLDb', 'DataSourceTypeSQLDB', 'DataSourceTypeExchange', 'DataSourceTypeSharepoint', 'DataSourceTypeVMwareVM', 'DataSourceTypeSystemState', 'DataSourceTypeClient', 'DataSourceTypeGenericDataSource', 'DataSourceTypeSQLDataBase', 'DataSourceTypeAzureFileShare'
WorkloadType DataSourceType `json:"workloadType,omitempty"`
// ContainerName - Unique name of container
ContainerName *string `json:"containerName,omitempty"`
// SourceResourceID - ARM ID of the resource to be backed up.
SourceResourceID *string `json:"sourceResourceId,omitempty"`
// PolicyID - ID of the backup policy with which this item is backed up.
PolicyID *string `json:"policyId,omitempty"`
// LastRecoveryPoint - Timestamp when the last (latest) backup copy was created for this backup item.
LastRecoveryPoint *date.Time `json:"lastRecoveryPoint,omitempty"`
// BackupSetName - Name of the backup set the backup item belongs to
BackupSetName *string `json:"backupSetName,omitempty"`
// ProtectedItemType - Possible values include: 'ProtectedItemTypeProtectedItem', 'ProtectedItemTypeAzureFileShareProtectedItem', 'ProtectedItemTypeMicrosoftClassicComputevirtualMachines', 'ProtectedItemTypeMicrosoftComputevirtualMachines', 'ProtectedItemTypeAzureIaaSVMProtectedItem', 'ProtectedItemTypeMicrosoftSqlserversdatabases', 'ProtectedItemTypeAzureVMWorkloadSQLDatabase', 'ProtectedItemTypeDPMProtectedItem', 'ProtectedItemTypeGenericProtectedItem', 'ProtectedItemTypeMabFileFolderProtectedItem'
ProtectedItemType ProtectedItemType `json:"protectedItemType,omitempty"`
}
func unmarshalBasicProtectedItem(body []byte) (BasicProtectedItem, error) {
var m map[string]interface{}
err := json.Unmarshal(body, &m)
if err != nil {
return nil, err
}
switch m["protectedItemType"] {
case string(ProtectedItemTypeAzureFileShareProtectedItem):
var afpi AzureFileshareProtectedItem
err := json.Unmarshal(body, &afpi)
return afpi, err
case string(ProtectedItemTypeMicrosoftClassicComputevirtualMachines):
var aisccvpi AzureIaaSClassicComputeVMProtectedItem
err := json.Unmarshal(body, &aisccvpi)
return aisccvpi, err
case string(ProtectedItemTypeMicrosoftComputevirtualMachines):
var aiscvpi AzureIaaSComputeVMProtectedItem
err := json.Unmarshal(body, &aiscvpi)
return aiscvpi, err
case string(ProtectedItemTypeAzureIaaSVMProtectedItem):
var aispi AzureIaaSVMProtectedItem
err := json.Unmarshal(body, &aispi)
return aispi, err
case string(ProtectedItemTypeMicrosoftSqlserversdatabases):
var aspi AzureSQLProtectedItem
err := json.Unmarshal(body, &aspi)
return aspi, err
case string(ProtectedItemTypeAzureVMWorkloadSQLDatabase):
var avwsdpi AzureVMWorkloadSQLDatabaseProtectedItem
err := json.Unmarshal(body, &avwsdpi)
return avwsdpi, err
case string(ProtectedItemTypeDPMProtectedItem):
var dpi DPMProtectedItem
err := json.Unmarshal(body, &dpi)
return dpi, err
case string(ProtectedItemTypeGenericProtectedItem):
var gpi GenericProtectedItem
err := json.Unmarshal(body, &gpi)
return gpi, err
case string(ProtectedItemTypeMabFileFolderProtectedItem):
var mffpi MabFileFolderProtectedItem
err := json.Unmarshal(body, &mffpi)
return mffpi, err
default:
var pi ProtectedItem
err := json.Unmarshal(body, &pi)
return pi, err
}
}
func unmarshalBasicProtectedItemArray(body []byte) ([]BasicProtectedItem, error) {
var rawMessages []*json.RawMessage
err := json.Unmarshal(body, &rawMessages)
if err != nil {
return nil, err
}
piArray := make([]BasicProtectedItem, len(rawMessages))
for index, rawMessage := range rawMessages {
pi, err := unmarshalBasicProtectedItem(*rawMessage)
if err != nil {
return nil, err
}
piArray[index] = pi
}
return piArray, nil
}
// MarshalJSON is the custom marshaler for ProtectedItem.
func (pi ProtectedItem) MarshalJSON() ([]byte, error) {
pi.ProtectedItemType = ProtectedItemTypeProtectedItem
objectMap := make(map[string]interface{})
if pi.BackupManagementType != "" {
objectMap["backupManagementType"] = pi.BackupManagementType
}
if pi.WorkloadType != "" {
objectMap["workloadType"] = pi.WorkloadType
}
if pi.ContainerName != nil {
objectMap["containerName"] = pi.ContainerName
}
if pi.SourceResourceID != nil {
objectMap["sourceResourceId"] = pi.SourceResourceID
}
if pi.PolicyID != nil {
objectMap["policyId"] = pi.PolicyID
}
if pi.LastRecoveryPoint != nil {
objectMap["lastRecoveryPoint"] = pi.LastRecoveryPoint
}
if pi.BackupSetName != nil {
objectMap["backupSetName"] = pi.BackupSetName
}
if pi.ProtectedItemType != "" {
objectMap["protectedItemType"] = pi.ProtectedItemType
}
return json.Marshal(objectMap)
}
// AsAzureFileshareProtectedItem is the BasicProtectedItem implementation for ProtectedItem.
func (pi ProtectedItem) AsAzureFileshareProtectedItem() (*AzureFileshareProtectedItem, bool) {
return nil, false
}
// AsAzureIaaSClassicComputeVMProtectedItem is the BasicProtectedItem implementation for ProtectedItem.
func (pi ProtectedItem) AsAzureIaaSClassicComputeVMProtectedItem() (*AzureIaaSClassicComputeVMProtectedItem, bool) {
return nil, false
}
// AsAzureIaaSComputeVMProtectedItem is the BasicProtectedItem implementation for ProtectedItem.
func (pi ProtectedItem) AsAzureIaaSComputeVMProtectedItem() (*AzureIaaSComputeVMProtectedItem, bool) {
return nil, false
}
// AsAzureIaaSVMProtectedItem is the BasicProtectedItem implementation for ProtectedItem.
func (pi ProtectedItem) AsAzureIaaSVMProtectedItem() (*AzureIaaSVMProtectedItem, bool) {
return nil, false
}
// AsBasicAzureIaaSVMProtectedItem is the BasicProtectedItem implementation for ProtectedItem.
func (pi ProtectedItem) AsBasicAzureIaaSVMProtectedItem() (BasicAzureIaaSVMProtectedItem, bool) {
return nil, false
}
// AsAzureSQLProtectedItem is the BasicProtectedItem implementation for ProtectedItem.
func (pi ProtectedItem) AsAzureSQLProtectedItem() (*AzureSQLProtectedItem, bool) {
return nil, false
}
// AsAzureVMWorkloadSQLDatabaseProtectedItem is the BasicProtectedItem implementation for ProtectedItem.
func (pi ProtectedItem) AsAzureVMWorkloadSQLDatabaseProtectedItem() (*AzureVMWorkloadSQLDatabaseProtectedItem, bool) {
return nil, false
}
// AsDPMProtectedItem is the BasicProtectedItem implementation for ProtectedItem.
func (pi ProtectedItem) AsDPMProtectedItem() (*DPMProtectedItem, bool) {
return nil, false
}
// AsGenericProtectedItem is the BasicProtectedItem implementation for ProtectedItem.
func (pi ProtectedItem) AsGenericProtectedItem() (*GenericProtectedItem, bool) {
return nil, false
}
// AsMabFileFolderProtectedItem is the BasicProtectedItem implementation for ProtectedItem.
func (pi ProtectedItem) AsMabFileFolderProtectedItem() (*MabFileFolderProtectedItem, bool) {
return nil, false
}
// AsProtectedItem is the BasicProtectedItem implementation for ProtectedItem.
func (pi ProtectedItem) AsProtectedItem() (*ProtectedItem, bool) {
return &pi, true
}
// AsBasicProtectedItem is the BasicProtectedItem implementation for ProtectedItem.
func (pi ProtectedItem) AsBasicProtectedItem() (BasicProtectedItem, bool) {
return &pi, true
}
// ProtectedItemQueryObject filters to list backup items.
type ProtectedItemQueryObject struct {
// HealthState - Health State for the backed up item. Possible values include: 'HealthStatePassed', 'HealthStateActionRequired', 'HealthStateActionSuggested', 'HealthStateInvalid'
HealthState HealthState `json:"healthState,omitempty"`
// BackupManagementType - Backup management type for the backed up item. Possible values include: 'ManagementTypeInvalid', 'ManagementTypeAzureIaasVM', 'ManagementTypeMAB', 'ManagementTypeDPM', 'ManagementTypeAzureBackupServer', 'ManagementTypeAzureSQL', 'ManagementTypeAzureStorage', 'ManagementTypeAzureWorkload', 'ManagementTypeDefaultBackup'
BackupManagementType ManagementType `json:"backupManagementType,omitempty"`
// ItemType - Type of workload this item represents. Possible values include: 'DataSourceTypeInvalid', 'DataSourceTypeVM', 'DataSourceTypeFileFolder', 'DataSourceTypeAzureSQLDb', 'DataSourceTypeSQLDB', 'DataSourceTypeExchange', 'DataSourceTypeSharepoint', 'DataSourceTypeVMwareVM', 'DataSourceTypeSystemState', 'DataSourceTypeClient', 'DataSourceTypeGenericDataSource', 'DataSourceTypeSQLDataBase', 'DataSourceTypeAzureFileShare'
ItemType DataSourceType `json:"itemType,omitempty"`
// PolicyName - Backup policy name associated with the backup item.
PolicyName *string `json:"policyName,omitempty"`
// ContainerName - Name of the container.
ContainerName *string `json:"containerName,omitempty"`
// BackupEngineName - Backup Engine name
BackupEngineName *string `json:"backupEngineName,omitempty"`
// FriendlyName - Friendly name of protected item
FriendlyName *string `json:"friendlyName,omitempty"`
// FabricName - Name of the fabric.
FabricName *string `json:"fabricName,omitempty"`
// BackupSetName - Name of the backup set.
BackupSetName *string `json:"backupSetName,omitempty"`
}
// ProtectedItemResource base class for backup items.
type ProtectedItemResource struct {
autorest.Response `json:"-"`
// Properties - ProtectedItemResource properties
Properties BasicProtectedItem `json:"properties,omitempty"`
// ID - Resource Id represents the complete path to the resource.
ID *string `json:"id,omitempty"`
// Name - Resource name associated with the resource.
Name *string `json:"name,omitempty"`
// Type - Resource type represents the complete path of the form Namespace/ResourceType/ResourceType/...
Type *string `json:"type,omitempty"`
// Location - Resource location.
Location *string `json:"location,omitempty"`
// Tags - Resource tags.
Tags map[string]*string `json:"tags"`
// ETag - Optional ETag.
ETag *string `json:"eTag,omitempty"`
}
// MarshalJSON is the custom marshaler for ProtectedItemResource.
func (pir ProtectedItemResource) MarshalJSON() ([]byte, error) {
objectMap := make(map[string]interface{})
objectMap["properties"] = pir.Properties
if pir.ID != nil {
objectMap["id"] = pir.ID
}
if pir.Name != nil {
objectMap["name"] = pir.Name
}
if pir.Type != nil {
objectMap["type"] = pir.Type
}
if pir.Location != nil {
objectMap["location"] = pir.Location
}
if pir.Tags != nil {
objectMap["tags"] = pir.Tags
}
if pir.ETag != nil {
objectMap["eTag"] = pir.ETag
}
return json.Marshal(objectMap)
}
// UnmarshalJSON is the custom unmarshaler for ProtectedItemResource struct.
func (pir *ProtectedItemResource) UnmarshalJSON(body []byte) error {
var m map[string]*json.RawMessage
err := json.Unmarshal(body, &m)
if err != nil {
return err
}
for k, v := range m {
switch k {
case "properties":
if v != nil {
properties, err := unmarshalBasicProtectedItem(*v)
if err != nil {
return err
}
pir.Properties = properties
}
case "id":
if v != nil {
var ID string
err = json.Unmarshal(*v, &ID)
if err != nil {
return err
}
pir.ID = &ID
}
case "name":
if v != nil {
var name string
err = json.Unmarshal(*v, &name)
if err != nil {
return err
}
pir.Name = &name
}
case "type":
if v != nil {
var typeVar string
err = json.Unmarshal(*v, &typeVar)
if err != nil {
return err
}
pir.Type = &typeVar
}
case "location":
if v != nil {
var location string
err = json.Unmarshal(*v, &location)
if err != nil {
return err
}
pir.Location = &location
}
case "tags":
if v != nil {
var tags map[string]*string
err = json.Unmarshal(*v, &tags)
if err != nil {
return err
}
pir.Tags = tags
}
case "eTag":
if v != nil {
var eTag string
err = json.Unmarshal(*v, &eTag)
if err != nil {
return err
}
pir.ETag = &eTag
}
}
}
return nil
}
// ProtectedItemResourceList list of ProtectedItem resources
type ProtectedItemResourceList struct {
autorest.Response `json:"-"`
// Value - List of resources.
Value *[]ProtectedItemResource `json:"value,omitempty"`
// NextLink - The uri to fetch the next page of resources. Call ListNext() fetches next page of resources.
NextLink *string `json:"nextLink,omitempty"`
}
// ProtectedItemResourceListIterator provides access to a complete listing of ProtectedItemResource values.
type ProtectedItemResourceListIterator struct {
i int
page ProtectedItemResourceListPage
}
// Next advances to the next value. If there was an error making
// the request the iterator does not advance and the error is returned.
func (iter *ProtectedItemResourceListIterator) Next() error {
iter.i++
if iter.i < len(iter.page.Values()) {
return nil
}
err := iter.page.Next()
if err != nil {
iter.i--
return err
}
iter.i = 0
return nil
}
// NotDone returns true if the enumeration should be started or is not yet complete.
func (iter ProtectedItemResourceListIterator) NotDone() bool {
return iter.page.NotDone() && iter.i < len(iter.page.Values())
}
// Response returns the raw server response from the last page request.
func (iter ProtectedItemResourceListIterator) Response() ProtectedItemResourceList {
return iter.page.Response()
}
// Value returns the current value or a zero-initialized value if the
// iterator has advanced beyond the end of the collection.
func (iter ProtectedItemResourceListIterator) Value() ProtectedItemResource {
if !iter.page.NotDone() {
return ProtectedItemResource{}
}
return iter.page.Values()[iter.i]
}
// IsEmpty returns true if the ListResult contains no values.
func (pirl ProtectedItemResourceList) IsEmpty() bool {
return pirl.Value == nil || len(*pirl.Value) == 0
}
// protectedItemResourceListPreparer prepares a request to retrieve the next set of results.
// It returns nil if no more results exist.
func (pirl ProtectedItemResourceList) protectedItemResourceListPreparer() (*http.Request, error) {
if pirl.NextLink == nil || len(to.String(pirl.NextLink)) < 1 {
return nil, nil
}
return autorest.Prepare(&http.Request{},
autorest.AsJSON(),
autorest.AsGet(),
autorest.WithBaseURL(to.String(pirl.NextLink)))
}
// ProtectedItemResourceListPage contains a page of ProtectedItemResource values.
type ProtectedItemResourceListPage struct {
fn func(ProtectedItemResourceList) (ProtectedItemResourceList, error)
pirl ProtectedItemResourceList
}
// Next advances to the next page of values. If there was an error making
// the request the page does not advance and the error is returned.
func (page *ProtectedItemResourceListPage) Next() error {
next, err := page.fn(page.pirl)
if err != nil {
return err
}
page.pirl = next
return nil
}
// NotDone returns true if the page enumeration should be started or is not yet complete.
func (page ProtectedItemResourceListPage) NotDone() bool {
return !page.pirl.IsEmpty()
}
// Response returns the raw server response from the last page request.
func (page ProtectedItemResourceListPage) Response() ProtectedItemResourceList {
return page.pirl
}
// Values returns the slice of values for the current page or nil if there are no values.
func (page ProtectedItemResourceListPage) Values() []ProtectedItemResource {
if page.pirl.IsEmpty() {
return nil
}
return *page.pirl.Value
}
// BasicProtectionContainer base class for container with backup items. Containers with specific workloads are derived
// from this class.
type BasicProtectionContainer interface {
AsAzureBackupServerContainer() (*AzureBackupServerContainer, bool)
AsAzureIaaSClassicComputeVMContainer() (*AzureIaaSClassicComputeVMContainer, bool)
AsAzureIaaSComputeVMContainer() (*AzureIaaSComputeVMContainer, bool)
AsAzureSQLAGWorkloadContainerProtectionContainer() (*AzureSQLAGWorkloadContainerProtectionContainer, bool)
AsAzureSQLContainer() (*AzureSQLContainer, bool)
AsAzureStorageContainer() (*AzureStorageContainer, bool)
AsAzureVMAppContainerProtectionContainer() (*AzureVMAppContainerProtectionContainer, bool)
AsAzureWorkloadContainer() (*AzureWorkloadContainer, bool)
AsBasicAzureWorkloadContainer() (BasicAzureWorkloadContainer, bool)
AsDpmContainer() (*DpmContainer, bool)
AsGenericContainer() (*GenericContainer, bool)
AsIaaSVMContainer() (*IaaSVMContainer, bool)
AsBasicIaaSVMContainer() (BasicIaaSVMContainer, bool)
AsMabContainer() (*MabContainer, bool)
AsProtectionContainer() (*ProtectionContainer, bool)
}
// ProtectionContainer base class for container with backup items. Containers with specific workloads are derived
// from this class.
type ProtectionContainer struct {
// FriendlyName - Friendly name of the container.
FriendlyName *string `json:"friendlyName,omitempty"`
// BackupManagementType - Type of backup managemenent for the container. Possible values include: 'ManagementTypeInvalid', 'ManagementTypeAzureIaasVM', 'ManagementTypeMAB', 'ManagementTypeDPM', 'ManagementTypeAzureBackupServer', 'ManagementTypeAzureSQL', 'ManagementTypeAzureStorage', 'ManagementTypeAzureWorkload', 'ManagementTypeDefaultBackup'
BackupManagementType ManagementType `json:"backupManagementType,omitempty"`
// RegistrationStatus - Status of registration of the container with the Recovery Services Vault.
RegistrationStatus *string `json:"registrationStatus,omitempty"`
// HealthStatus - Status of health of the container.
HealthStatus *string `json:"healthStatus,omitempty"`
// ContainerType - Possible values include: 'ContainerTypeProtectionContainer', 'ContainerTypeAzureBackupServerContainer1', 'ContainerTypeMicrosoftClassicComputevirtualMachines', 'ContainerTypeMicrosoftComputevirtualMachines', 'ContainerTypeSQLAGWorkLoadContainer1', 'ContainerTypeAzureSQLContainer1', 'ContainerTypeStorageContainer1', 'ContainerTypeVMAppContainer1', 'ContainerTypeAzureWorkloadContainer', 'ContainerTypeDPMContainer1', 'ContainerTypeGenericContainer1', 'ContainerTypeIaaSVMContainer', 'ContainerTypeMABWindowsContainer'
ContainerType ContainerTypeBasicProtectionContainer `json:"containerType,omitempty"`
}
func unmarshalBasicProtectionContainer(body []byte) (BasicProtectionContainer, error) {
var m map[string]interface{}
err := json.Unmarshal(body, &m)
if err != nil {
return nil, err
}
switch m["containerType"] {
case string(ContainerTypeAzureBackupServerContainer1):
var absc AzureBackupServerContainer
err := json.Unmarshal(body, &absc)
return absc, err
case string(ContainerTypeMicrosoftClassicComputevirtualMachines):
var aisccvc AzureIaaSClassicComputeVMContainer
err := json.Unmarshal(body, &aisccvc)
return aisccvc, err
case string(ContainerTypeMicrosoftComputevirtualMachines):
var aiscvc AzureIaaSComputeVMContainer
err := json.Unmarshal(body, &aiscvc)
return aiscvc, err
case string(ContainerTypeSQLAGWorkLoadContainer1):
var aswcpc AzureSQLAGWorkloadContainerProtectionContainer
err := json.Unmarshal(body, &aswcpc)
return aswcpc, err
case string(ContainerTypeAzureSQLContainer1):
var asc AzureSQLContainer
err := json.Unmarshal(body, &asc)
return asc, err
case string(ContainerTypeStorageContainer1):
var asc AzureStorageContainer
err := json.Unmarshal(body, &asc)
return asc, err
case string(ContainerTypeVMAppContainer1):
var avacpc AzureVMAppContainerProtectionContainer
err := json.Unmarshal(body, &avacpc)
return avacpc, err
case string(ContainerTypeAzureWorkloadContainer):
var awc AzureWorkloadContainer
err := json.Unmarshal(body, &awc)
return awc, err
case string(ContainerTypeDPMContainer1):
var dc DpmContainer
err := json.Unmarshal(body, &dc)
return dc, err
case string(ContainerTypeGenericContainer1):
var gc GenericContainer
err := json.Unmarshal(body, &gc)
return gc, err
case string(ContainerTypeIaaSVMContainer):
var isc IaaSVMContainer
err := json.Unmarshal(body, &isc)
return isc, err
case string(ContainerTypeMABWindowsContainer):
var mc MabContainer
err := json.Unmarshal(body, &mc)
return mc, err
default:
var pc ProtectionContainer
err := json.Unmarshal(body, &pc)
return pc, err
}
}
func unmarshalBasicProtectionContainerArray(body []byte) ([]BasicProtectionContainer, error) {
var rawMessages []*json.RawMessage
err := json.Unmarshal(body, &rawMessages)
if err != nil {
return nil, err
}
pcArray := make([]BasicProtectionContainer, len(rawMessages))
for index, rawMessage := range rawMessages {
pc, err := unmarshalBasicProtectionContainer(*rawMessage)
if err != nil {
return nil, err
}
pcArray[index] = pc
}
return pcArray, nil
}
// MarshalJSON is the custom marshaler for ProtectionContainer.
func (pc ProtectionContainer) MarshalJSON() ([]byte, error) {
pc.ContainerType = ContainerTypeProtectionContainer
objectMap := make(map[string]interface{})
if pc.FriendlyName != nil {
objectMap["friendlyName"] = pc.FriendlyName
}
if pc.BackupManagementType != "" {
objectMap["backupManagementType"] = pc.BackupManagementType
}
if pc.RegistrationStatus != nil {
objectMap["registrationStatus"] = pc.RegistrationStatus
}
if pc.HealthStatus != nil {
objectMap["healthStatus"] = pc.HealthStatus
}
if pc.ContainerType != "" {
objectMap["containerType"] = pc.ContainerType
}
return json.Marshal(objectMap)
}
// AsAzureBackupServerContainer is the BasicProtectionContainer implementation for ProtectionContainer.
func (pc ProtectionContainer) AsAzureBackupServerContainer() (*AzureBackupServerContainer, bool) {
return nil, false
}
// AsAzureIaaSClassicComputeVMContainer is the BasicProtectionContainer implementation for ProtectionContainer.
func (pc ProtectionContainer) AsAzureIaaSClassicComputeVMContainer() (*AzureIaaSClassicComputeVMContainer, bool) {
return nil, false
}
// AsAzureIaaSComputeVMContainer is the BasicProtectionContainer implementation for ProtectionContainer.
func (pc ProtectionContainer) AsAzureIaaSComputeVMContainer() (*AzureIaaSComputeVMContainer, bool) {
return nil, false
}
// AsAzureSQLAGWorkloadContainerProtectionContainer is the BasicProtectionContainer implementation for ProtectionContainer.
func (pc ProtectionContainer) AsAzureSQLAGWorkloadContainerProtectionContainer() (*AzureSQLAGWorkloadContainerProtectionContainer, bool) {
return nil, false
}
// AsAzureSQLContainer is the BasicProtectionContainer implementation for ProtectionContainer.
func (pc ProtectionContainer) AsAzureSQLContainer() (*AzureSQLContainer, bool) {
return nil, false
}
// AsAzureStorageContainer is the BasicProtectionContainer implementation for ProtectionContainer.
func (pc ProtectionContainer) AsAzureStorageContainer() (*AzureStorageContainer, bool) {
return nil, false
}
// AsAzureVMAppContainerProtectionContainer is the BasicProtectionContainer implementation for ProtectionContainer.
func (pc ProtectionContainer) AsAzureVMAppContainerProtectionContainer() (*AzureVMAppContainerProtectionContainer, bool) {
return nil, false
}
// AsAzureWorkloadContainer is the BasicProtectionContainer implementation for ProtectionContainer.
func (pc ProtectionContainer) AsAzureWorkloadContainer() (*AzureWorkloadContainer, bool) {
return nil, false
}
// AsBasicAzureWorkloadContainer is the BasicProtectionContainer implementation for ProtectionContainer.
func (pc ProtectionContainer) AsBasicAzureWorkloadContainer() (BasicAzureWorkloadContainer, bool) {
return nil, false
}
// AsDpmContainer is the BasicProtectionContainer implementation for ProtectionContainer.
func (pc ProtectionContainer) AsDpmContainer() (*DpmContainer, bool) {
return nil, false
}
// AsGenericContainer is the BasicProtectionContainer implementation for ProtectionContainer.
func (pc ProtectionContainer) AsGenericContainer() (*GenericContainer, bool) {
return nil, false
}
// AsIaaSVMContainer is the BasicProtectionContainer implementation for ProtectionContainer.
func (pc ProtectionContainer) AsIaaSVMContainer() (*IaaSVMContainer, bool) {
return nil, false
}
// AsBasicIaaSVMContainer is the BasicProtectionContainer implementation for ProtectionContainer.
func (pc ProtectionContainer) AsBasicIaaSVMContainer() (BasicIaaSVMContainer, bool) {
return nil, false
}
// AsMabContainer is the BasicProtectionContainer implementation for ProtectionContainer.
func (pc ProtectionContainer) AsMabContainer() (*MabContainer, bool) {
return nil, false
}
// AsProtectionContainer is the BasicProtectionContainer implementation for ProtectionContainer.
func (pc ProtectionContainer) AsProtectionContainer() (*ProtectionContainer, bool) {
return &pc, true
}
// AsBasicProtectionContainer is the BasicProtectionContainer implementation for ProtectionContainer.
func (pc ProtectionContainer) AsBasicProtectionContainer() (BasicProtectionContainer, bool) {
return &pc, true
}
// ProtectionContainerResource base class for container with backup items. Containers with specific workloads are
// derived from this class.
type ProtectionContainerResource struct {
autorest.Response `json:"-"`
// Properties - ProtectionContainerResource properties
Properties BasicProtectionContainer `json:"properties,omitempty"`
// ID - Resource Id represents the complete path to the resource.
ID *string `json:"id,omitempty"`
// Name - Resource name associated with the resource.
Name *string `json:"name,omitempty"`
// Type - Resource type represents the complete path of the form Namespace/ResourceType/ResourceType/...
Type *string `json:"type,omitempty"`
// Location - Resource location.
Location *string `json:"location,omitempty"`
// Tags - Resource tags.
Tags map[string]*string `json:"tags"`
// ETag - Optional ETag.
ETag *string `json:"eTag,omitempty"`
}
// MarshalJSON is the custom marshaler for ProtectionContainerResource.
func (pcr ProtectionContainerResource) MarshalJSON() ([]byte, error) {
objectMap := make(map[string]interface{})
objectMap["properties"] = pcr.Properties
if pcr.ID != nil {
objectMap["id"] = pcr.ID
}
if pcr.Name != nil {
objectMap["name"] = pcr.Name
}
if pcr.Type != nil {
objectMap["type"] = pcr.Type
}
if pcr.Location != nil {
objectMap["location"] = pcr.Location
}
if pcr.Tags != nil {
objectMap["tags"] = pcr.Tags
}
if pcr.ETag != nil {
objectMap["eTag"] = pcr.ETag
}
return json.Marshal(objectMap)
}
// UnmarshalJSON is the custom unmarshaler for ProtectionContainerResource struct.
func (pcr *ProtectionContainerResource) UnmarshalJSON(body []byte) error {
var m map[string]*json.RawMessage
err := json.Unmarshal(body, &m)
if err != nil {
return err
}
for k, v := range m {
switch k {
case "properties":
if v != nil {
properties, err := unmarshalBasicProtectionContainer(*v)
if err != nil {
return err
}
pcr.Properties = properties
}
case "id":
if v != nil {
var ID string
err = json.Unmarshal(*v, &ID)
if err != nil {
return err
}
pcr.ID = &ID
}
case "name":
if v != nil {
var name string
err = json.Unmarshal(*v, &name)
if err != nil {
return err
}
pcr.Name = &name
}
case "type":
if v != nil {
var typeVar string
err = json.Unmarshal(*v, &typeVar)
if err != nil {
return err
}
pcr.Type = &typeVar
}
case "location":
if v != nil {
var location string
err = json.Unmarshal(*v, &location)
if err != nil {
return err
}
pcr.Location = &location
}
case "tags":
if v != nil {
var tags map[string]*string
err = json.Unmarshal(*v, &tags)
if err != nil {
return err
}
pcr.Tags = tags
}
case "eTag":
if v != nil {
var eTag string
err = json.Unmarshal(*v, &eTag)
if err != nil {
return err
}
pcr.ETag = &eTag
}
}
}
return nil
}
// ProtectionContainerResourceList list of ProtectionContainer resources
type ProtectionContainerResourceList struct {
autorest.Response `json:"-"`
// Value - List of resources.
Value *[]ProtectionContainerResource `json:"value,omitempty"`
// NextLink - The uri to fetch the next page of resources. Call ListNext() fetches next page of resources.
NextLink *string `json:"nextLink,omitempty"`
}
// ProtectionContainerResourceListIterator provides access to a complete listing of ProtectionContainerResource
// values.
type ProtectionContainerResourceListIterator struct {
i int
page ProtectionContainerResourceListPage
}
// Next advances to the next value. If there was an error making
// the request the iterator does not advance and the error is returned.
func (iter *ProtectionContainerResourceListIterator) Next() error {
iter.i++
if iter.i < len(iter.page.Values()) {
return nil
}
err := iter.page.Next()
if err != nil {
iter.i--
return err
}
iter.i = 0
return nil
}
// NotDone returns true if the enumeration should be started or is not yet complete.
func (iter ProtectionContainerResourceListIterator) NotDone() bool {
return iter.page.NotDone() && iter.i < len(iter.page.Values())
}
// Response returns the raw server response from the last page request.
func (iter ProtectionContainerResourceListIterator) Response() ProtectionContainerResourceList {
return iter.page.Response()
}
// Value returns the current value or a zero-initialized value if the
// iterator has advanced beyond the end of the collection.
func (iter ProtectionContainerResourceListIterator) Value() ProtectionContainerResource {
if !iter.page.NotDone() {
return ProtectionContainerResource{}
}
return iter.page.Values()[iter.i]
}
// IsEmpty returns true if the ListResult contains no values.
func (pcrl ProtectionContainerResourceList) IsEmpty() bool {
return pcrl.Value == nil || len(*pcrl.Value) == 0
}
// protectionContainerResourceListPreparer prepares a request to retrieve the next set of results.
// It returns nil if no more results exist.
func (pcrl ProtectionContainerResourceList) protectionContainerResourceListPreparer() (*http.Request, error) {
if pcrl.NextLink == nil || len(to.String(pcrl.NextLink)) < 1 {
return nil, nil
}
return autorest.Prepare(&http.Request{},
autorest.AsJSON(),
autorest.AsGet(),
autorest.WithBaseURL(to.String(pcrl.NextLink)))
}
// ProtectionContainerResourceListPage contains a page of ProtectionContainerResource values.
type ProtectionContainerResourceListPage struct {
fn func(ProtectionContainerResourceList) (ProtectionContainerResourceList, error)
pcrl ProtectionContainerResourceList
}
// Next advances to the next page of values. If there was an error making
// the request the page does not advance and the error is returned.
func (page *ProtectionContainerResourceListPage) Next() error {
next, err := page.fn(page.pcrl)
if err != nil {
return err
}
page.pcrl = next
return nil
}
// NotDone returns true if the page enumeration should be started or is not yet complete.
func (page ProtectionContainerResourceListPage) NotDone() bool {
return !page.pcrl.IsEmpty()
}
// Response returns the raw server response from the last page request.
func (page ProtectionContainerResourceListPage) Response() ProtectionContainerResourceList {
return page.pcrl
}
// Values returns the slice of values for the current page or nil if there are no values.
func (page ProtectionContainerResourceListPage) Values() []ProtectionContainerResource {
if page.pcrl.IsEmpty() {
return nil
}
return *page.pcrl.Value
}
// BasicProtectionIntent base class for backup ProtectionIntent.
type BasicProtectionIntent interface {
AsAzureResourceProtectionIntent() (*AzureResourceProtectionIntent, bool)
AsProtectionIntent() (*ProtectionIntent, bool)
}
// ProtectionIntent base class for backup ProtectionIntent.
type ProtectionIntent struct {
// BackupManagementType - Type of backup managemenent for the backed up item. Possible values include: 'ManagementTypeInvalid', 'ManagementTypeAzureIaasVM', 'ManagementTypeMAB', 'ManagementTypeDPM', 'ManagementTypeAzureBackupServer', 'ManagementTypeAzureSQL', 'ManagementTypeAzureStorage', 'ManagementTypeAzureWorkload', 'ManagementTypeDefaultBackup'
BackupManagementType ManagementType `json:"backupManagementType,omitempty"`
// SourceResourceID - ARM ID of the resource to be backed up.
SourceResourceID *string `json:"sourceResourceId,omitempty"`
// ItemID - ID of the item which is getting protected, In case of Azure Vm , it is ProtectedItemId
ItemID *string `json:"itemId,omitempty"`
// PolicyID - ID of the backup policy with which this item is backed up.
PolicyID *string `json:"policyId,omitempty"`
// ProtectionState - Backup state of this backup item. Possible values include: 'ProtectionStatusInvalid', 'ProtectionStatusNotProtected', 'ProtectionStatusProtecting', 'ProtectionStatusProtected', 'ProtectionStatusProtectionFailed'
ProtectionState ProtectionStatus `json:"protectionState,omitempty"`
// ProtectionIntentItemType - Possible values include: 'ProtectionIntentItemTypeProtectionIntent', 'ProtectionIntentItemTypeAzureResourceItem'
ProtectionIntentItemType ProtectionIntentItemType `json:"protectionIntentItemType,omitempty"`
}
func unmarshalBasicProtectionIntent(body []byte) (BasicProtectionIntent, error) {
var m map[string]interface{}
err := json.Unmarshal(body, &m)
if err != nil {
return nil, err
}
switch m["protectionIntentItemType"] {
case string(ProtectionIntentItemTypeAzureResourceItem):
var arpi AzureResourceProtectionIntent
err := json.Unmarshal(body, &arpi)
return arpi, err
default:
var pi ProtectionIntent
err := json.Unmarshal(body, &pi)
return pi, err
}
}
func unmarshalBasicProtectionIntentArray(body []byte) ([]BasicProtectionIntent, error) {
var rawMessages []*json.RawMessage
err := json.Unmarshal(body, &rawMessages)
if err != nil {
return nil, err
}
piArray := make([]BasicProtectionIntent, len(rawMessages))
for index, rawMessage := range rawMessages {
pi, err := unmarshalBasicProtectionIntent(*rawMessage)
if err != nil {
return nil, err
}
piArray[index] = pi
}
return piArray, nil
}
// MarshalJSON is the custom marshaler for ProtectionIntent.
func (pi ProtectionIntent) MarshalJSON() ([]byte, error) {
pi.ProtectionIntentItemType = ProtectionIntentItemTypeProtectionIntent
objectMap := make(map[string]interface{})
if pi.BackupManagementType != "" {
objectMap["backupManagementType"] = pi.BackupManagementType
}
if pi.SourceResourceID != nil {
objectMap["sourceResourceId"] = pi.SourceResourceID
}
if pi.ItemID != nil {
objectMap["itemId"] = pi.ItemID
}
if pi.PolicyID != nil {
objectMap["policyId"] = pi.PolicyID
}
if pi.ProtectionState != "" {
objectMap["protectionState"] = pi.ProtectionState
}
if pi.ProtectionIntentItemType != "" {
objectMap["protectionIntentItemType"] = pi.ProtectionIntentItemType
}
return json.Marshal(objectMap)
}
// AsAzureResourceProtectionIntent is the BasicProtectionIntent implementation for ProtectionIntent.
func (pi ProtectionIntent) AsAzureResourceProtectionIntent() (*AzureResourceProtectionIntent, bool) {
return nil, false
}
// AsProtectionIntent is the BasicProtectionIntent implementation for ProtectionIntent.
func (pi ProtectionIntent) AsProtectionIntent() (*ProtectionIntent, bool) {
return &pi, true
}
// AsBasicProtectionIntent is the BasicProtectionIntent implementation for ProtectionIntent.
func (pi ProtectionIntent) AsBasicProtectionIntent() (BasicProtectionIntent, bool) {
return &pi, true
}
// ProtectionIntentResource base class for backup ProtectionIntent.
type ProtectionIntentResource struct {
autorest.Response `json:"-"`
// Properties - ProtectionIntentResource properties
Properties BasicProtectionIntent `json:"properties,omitempty"`
// ID - Resource Id represents the complete path to the resource.
ID *string `json:"id,omitempty"`
// Name - Resource name associated with the resource.
Name *string `json:"name,omitempty"`
// Type - Resource type represents the complete path of the form Namespace/ResourceType/ResourceType/...
Type *string `json:"type,omitempty"`
// Location - Resource location.
Location *string `json:"location,omitempty"`
// Tags - Resource tags.
Tags map[string]*string `json:"tags"`
// ETag - Optional ETag.
ETag *string `json:"eTag,omitempty"`
}
// MarshalJSON is the custom marshaler for ProtectionIntentResource.
func (pir ProtectionIntentResource) MarshalJSON() ([]byte, error) {
objectMap := make(map[string]interface{})
objectMap["properties"] = pir.Properties
if pir.ID != nil {
objectMap["id"] = pir.ID
}
if pir.Name != nil {
objectMap["name"] = pir.Name
}
if pir.Type != nil {
objectMap["type"] = pir.Type
}
if pir.Location != nil {
objectMap["location"] = pir.Location
}
if pir.Tags != nil {
objectMap["tags"] = pir.Tags
}
if pir.ETag != nil {
objectMap["eTag"] = pir.ETag
}
return json.Marshal(objectMap)
}
// UnmarshalJSON is the custom unmarshaler for ProtectionIntentResource struct.
func (pir *ProtectionIntentResource) UnmarshalJSON(body []byte) error {
var m map[string]*json.RawMessage
err := json.Unmarshal(body, &m)
if err != nil {
return err
}
for k, v := range m {
switch k {
case "properties":
if v != nil {
properties, err := unmarshalBasicProtectionIntent(*v)
if err != nil {
return err
}
pir.Properties = properties
}
case "id":
if v != nil {
var ID string
err = json.Unmarshal(*v, &ID)
if err != nil {
return err
}
pir.ID = &ID
}
case "name":
if v != nil {
var name string
err = json.Unmarshal(*v, &name)
if err != nil {
return err
}
pir.Name = &name
}
case "type":
if v != nil {
var typeVar string
err = json.Unmarshal(*v, &typeVar)
if err != nil {
return err
}
pir.Type = &typeVar
}
case "location":
if v != nil {
var location string
err = json.Unmarshal(*v, &location)
if err != nil {
return err
}
pir.Location = &location
}
case "tags":
if v != nil {
var tags map[string]*string
err = json.Unmarshal(*v, &tags)
if err != nil {
return err
}
pir.Tags = tags
}
case "eTag":
if v != nil {
var eTag string
err = json.Unmarshal(*v, &eTag)
if err != nil {
return err
}
pir.ETag = &eTag
}
}
}
return nil
}
// BasicProtectionPolicy base class for backup policy. Workload-specific backup policies are derived from this class.
type BasicProtectionPolicy interface {
AsAzureFileShareProtectionPolicy() (*AzureFileShareProtectionPolicy, bool)
AsAzureIaaSVMProtectionPolicy() (*AzureIaaSVMProtectionPolicy, bool)
AsAzureSQLProtectionPolicy() (*AzureSQLProtectionPolicy, bool)
AsAzureVMWorkloadProtectionPolicy() (*AzureVMWorkloadProtectionPolicy, bool)
AsGenericProtectionPolicy() (*GenericProtectionPolicy, bool)
AsMabProtectionPolicy() (*MabProtectionPolicy, bool)
AsProtectionPolicy() (*ProtectionPolicy, bool)
}
// ProtectionPolicy base class for backup policy. Workload-specific backup policies are derived from this class.
type ProtectionPolicy struct {
// ProtectedItemsCount - Number of items associated with this policy.
ProtectedItemsCount *int32 `json:"protectedItemsCount,omitempty"`
// BackupManagementType - Possible values include: 'BackupManagementTypeProtectionPolicy', 'BackupManagementTypeAzureStorage', 'BackupManagementTypeAzureIaasVM', 'BackupManagementTypeAzureSQL', 'BackupManagementTypeAzureWorkload', 'BackupManagementTypeGenericProtectionPolicy', 'BackupManagementTypeMAB'
BackupManagementType ManagementTypeBasicProtectionPolicy `json:"backupManagementType,omitempty"`
}
func unmarshalBasicProtectionPolicy(body []byte) (BasicProtectionPolicy, error) {
var m map[string]interface{}
err := json.Unmarshal(body, &m)
if err != nil {
return nil, err
}
switch m["backupManagementType"] {
case string(BackupManagementTypeAzureStorage):
var afspp AzureFileShareProtectionPolicy
err := json.Unmarshal(body, &afspp)
return afspp, err
case string(BackupManagementTypeAzureIaasVM):
var aispp AzureIaaSVMProtectionPolicy
err := json.Unmarshal(body, &aispp)
return aispp, err
case string(BackupManagementTypeAzureSQL):
var aspp AzureSQLProtectionPolicy
err := json.Unmarshal(body, &aspp)
return aspp, err
case string(BackupManagementTypeAzureWorkload):
var avwpp AzureVMWorkloadProtectionPolicy
err := json.Unmarshal(body, &avwpp)
return avwpp, err
case string(BackupManagementTypeGenericProtectionPolicy):
var gpp GenericProtectionPolicy
err := json.Unmarshal(body, &gpp)
return gpp, err
case string(BackupManagementTypeMAB):
var mpp MabProtectionPolicy
err := json.Unmarshal(body, &mpp)
return mpp, err
default:
var pp ProtectionPolicy
err := json.Unmarshal(body, &pp)
return pp, err
}
}
func unmarshalBasicProtectionPolicyArray(body []byte) ([]BasicProtectionPolicy, error) {
var rawMessages []*json.RawMessage
err := json.Unmarshal(body, &rawMessages)
if err != nil {
return nil, err
}
ppArray := make([]BasicProtectionPolicy, len(rawMessages))
for index, rawMessage := range rawMessages {
pp, err := unmarshalBasicProtectionPolicy(*rawMessage)
if err != nil {
return nil, err
}
ppArray[index] = pp
}
return ppArray, nil
}
// MarshalJSON is the custom marshaler for ProtectionPolicy.
func (pp ProtectionPolicy) MarshalJSON() ([]byte, error) {
pp.BackupManagementType = BackupManagementTypeProtectionPolicy
objectMap := make(map[string]interface{})
if pp.ProtectedItemsCount != nil {
objectMap["protectedItemsCount"] = pp.ProtectedItemsCount
}
if pp.BackupManagementType != "" {
objectMap["backupManagementType"] = pp.BackupManagementType
}
return json.Marshal(objectMap)
}
// AsAzureFileShareProtectionPolicy is the BasicProtectionPolicy implementation for ProtectionPolicy.
func (pp ProtectionPolicy) AsAzureFileShareProtectionPolicy() (*AzureFileShareProtectionPolicy, bool) {
return nil, false
}
// AsAzureIaaSVMProtectionPolicy is the BasicProtectionPolicy implementation for ProtectionPolicy.
func (pp ProtectionPolicy) AsAzureIaaSVMProtectionPolicy() (*AzureIaaSVMProtectionPolicy, bool) {
return nil, false
}
// AsAzureSQLProtectionPolicy is the BasicProtectionPolicy implementation for ProtectionPolicy.
func (pp ProtectionPolicy) AsAzureSQLProtectionPolicy() (*AzureSQLProtectionPolicy, bool) {
return nil, false
}
// AsAzureVMWorkloadProtectionPolicy is the BasicProtectionPolicy implementation for ProtectionPolicy.
func (pp ProtectionPolicy) AsAzureVMWorkloadProtectionPolicy() (*AzureVMWorkloadProtectionPolicy, bool) {
return nil, false
}
// AsGenericProtectionPolicy is the BasicProtectionPolicy implementation for ProtectionPolicy.
func (pp ProtectionPolicy) AsGenericProtectionPolicy() (*GenericProtectionPolicy, bool) {
return nil, false
}
// AsMabProtectionPolicy is the BasicProtectionPolicy implementation for ProtectionPolicy.
func (pp ProtectionPolicy) AsMabProtectionPolicy() (*MabProtectionPolicy, bool) {
return nil, false
}
// AsProtectionPolicy is the BasicProtectionPolicy implementation for ProtectionPolicy.
func (pp ProtectionPolicy) AsProtectionPolicy() (*ProtectionPolicy, bool) {
return &pp, true
}
// AsBasicProtectionPolicy is the BasicProtectionPolicy implementation for ProtectionPolicy.
func (pp ProtectionPolicy) AsBasicProtectionPolicy() (BasicProtectionPolicy, bool) {
return &pp, true
}
// ProtectionPolicyQueryObject filters the list backup policies API.
type ProtectionPolicyQueryObject struct {
// BackupManagementType - Backup management type for the backup policy. Possible values include: 'ManagementTypeInvalid', 'ManagementTypeAzureIaasVM', 'ManagementTypeMAB', 'ManagementTypeDPM', 'ManagementTypeAzureBackupServer', 'ManagementTypeAzureSQL', 'ManagementTypeAzureStorage', 'ManagementTypeAzureWorkload', 'ManagementTypeDefaultBackup'
BackupManagementType ManagementType `json:"backupManagementType,omitempty"`
// FabricName - Fabric name for filter
FabricName *string `json:"fabricName,omitempty"`
}
// ProtectionPolicyResource base class for backup policy. Workload-specific backup policies are derived from this
// class.
type ProtectionPolicyResource struct {
autorest.Response `json:"-"`
// Properties - ProtectionPolicyResource properties
Properties BasicProtectionPolicy `json:"properties,omitempty"`
// ID - Resource Id represents the complete path to the resource.
ID *string `json:"id,omitempty"`
// Name - Resource name associated with the resource.
Name *string `json:"name,omitempty"`
// Type - Resource type represents the complete path of the form Namespace/ResourceType/ResourceType/...
Type *string `json:"type,omitempty"`
// Location - Resource location.
Location *string `json:"location,omitempty"`
// Tags - Resource tags.
Tags map[string]*string `json:"tags"`
// ETag - Optional ETag.
ETag *string `json:"eTag,omitempty"`
}
// MarshalJSON is the custom marshaler for ProtectionPolicyResource.
func (ppr ProtectionPolicyResource) MarshalJSON() ([]byte, error) {
objectMap := make(map[string]interface{})
objectMap["properties"] = ppr.Properties
if ppr.ID != nil {
objectMap["id"] = ppr.ID
}
if ppr.Name != nil {
objectMap["name"] = ppr.Name
}
if ppr.Type != nil {
objectMap["type"] = ppr.Type
}
if ppr.Location != nil {
objectMap["location"] = ppr.Location
}
if ppr.Tags != nil {
objectMap["tags"] = ppr.Tags
}
if ppr.ETag != nil {
objectMap["eTag"] = ppr.ETag
}
return json.Marshal(objectMap)
}
// UnmarshalJSON is the custom unmarshaler for ProtectionPolicyResource struct.
func (ppr *ProtectionPolicyResource) UnmarshalJSON(body []byte) error {
var m map[string]*json.RawMessage
err := json.Unmarshal(body, &m)
if err != nil {
return err
}
for k, v := range m {
switch k {
case "properties":
if v != nil {
properties, err := unmarshalBasicProtectionPolicy(*v)
if err != nil {
return err
}
ppr.Properties = properties
}
case "id":
if v != nil {
var ID string
err = json.Unmarshal(*v, &ID)
if err != nil {
return err
}
ppr.ID = &ID
}
case "name":
if v != nil {
var name string
err = json.Unmarshal(*v, &name)
if err != nil {
return err
}
ppr.Name = &name
}
case "type":
if v != nil {
var typeVar string
err = json.Unmarshal(*v, &typeVar)
if err != nil {
return err
}
ppr.Type = &typeVar
}
case "location":
if v != nil {
var location string
err = json.Unmarshal(*v, &location)
if err != nil {
return err
}
ppr.Location = &location
}
case "tags":
if v != nil {
var tags map[string]*string
err = json.Unmarshal(*v, &tags)
if err != nil {
return err
}
ppr.Tags = tags
}
case "eTag":
if v != nil {
var eTag string
err = json.Unmarshal(*v, &eTag)
if err != nil {
return err
}
ppr.ETag = &eTag
}
}
}
return nil
}
// ProtectionPolicyResourceList list of ProtectionPolicy resources
type ProtectionPolicyResourceList struct {
autorest.Response `json:"-"`
// Value - List of resources.
Value *[]ProtectionPolicyResource `json:"value,omitempty"`
// NextLink - The uri to fetch the next page of resources. Call ListNext() fetches next page of resources.
NextLink *string `json:"nextLink,omitempty"`
}
// ProtectionPolicyResourceListIterator provides access to a complete listing of ProtectionPolicyResource values.
type ProtectionPolicyResourceListIterator struct {
i int
page ProtectionPolicyResourceListPage
}
// Next advances to the next value. If there was an error making
// the request the iterator does not advance and the error is returned.
func (iter *ProtectionPolicyResourceListIterator) Next() error {
iter.i++
if iter.i < len(iter.page.Values()) {
return nil
}
err := iter.page.Next()
if err != nil {
iter.i--
return err
}
iter.i = 0
return nil
}
// NotDone returns true if the enumeration should be started or is not yet complete.
func (iter ProtectionPolicyResourceListIterator) NotDone() bool {
return iter.page.NotDone() && iter.i < len(iter.page.Values())
}
// Response returns the raw server response from the last page request.
func (iter ProtectionPolicyResourceListIterator) Response() ProtectionPolicyResourceList {
return iter.page.Response()
}
// Value returns the current value or a zero-initialized value if the
// iterator has advanced beyond the end of the collection.
func (iter ProtectionPolicyResourceListIterator) Value() ProtectionPolicyResource {
if !iter.page.NotDone() {
return ProtectionPolicyResource{}
}
return iter.page.Values()[iter.i]
}
// IsEmpty returns true if the ListResult contains no values.
func (pprl ProtectionPolicyResourceList) IsEmpty() bool {
return pprl.Value == nil || len(*pprl.Value) == 0
}
// protectionPolicyResourceListPreparer prepares a request to retrieve the next set of results.
// It returns nil if no more results exist.
func (pprl ProtectionPolicyResourceList) protectionPolicyResourceListPreparer() (*http.Request, error) {
if pprl.NextLink == nil || len(to.String(pprl.NextLink)) < 1 {
return nil, nil
}
return autorest.Prepare(&http.Request{},
autorest.AsJSON(),
autorest.AsGet(),
autorest.WithBaseURL(to.String(pprl.NextLink)))
}
// ProtectionPolicyResourceListPage contains a page of ProtectionPolicyResource values.
type ProtectionPolicyResourceListPage struct {
fn func(ProtectionPolicyResourceList) (ProtectionPolicyResourceList, error)
pprl ProtectionPolicyResourceList
}
// Next advances to the next page of values. If there was an error making
// the request the page does not advance and the error is returned.
func (page *ProtectionPolicyResourceListPage) Next() error {
next, err := page.fn(page.pprl)
if err != nil {
return err
}
page.pprl = next
return nil
}
// NotDone returns true if the page enumeration should be started or is not yet complete.
func (page ProtectionPolicyResourceListPage) NotDone() bool {
return !page.pprl.IsEmpty()
}
// Response returns the raw server response from the last page request.
func (page ProtectionPolicyResourceListPage) Response() ProtectionPolicyResourceList {
return page.pprl
}
// Values returns the slice of values for the current page or nil if there are no values.
func (page ProtectionPolicyResourceListPage) Values() []ProtectionPolicyResource {
if page.pprl.IsEmpty() {
return nil
}
return *page.pprl.Value
}
// BasicRecoveryPoint base class for backup copies. Workload-specific backup copies are derived from this class.
type BasicRecoveryPoint interface {
AsAzureFileShareRecoveryPoint() (*AzureFileShareRecoveryPoint, bool)
AsAzureWorkloadRecoveryPoint() (*AzureWorkloadRecoveryPoint, bool)
AsBasicAzureWorkloadRecoveryPoint() (BasicAzureWorkloadRecoveryPoint, bool)
AsAzureWorkloadSQLPointInTimeRecoveryPoint() (*AzureWorkloadSQLPointInTimeRecoveryPoint, bool)
AsAzureWorkloadSQLRecoveryPoint() (*AzureWorkloadSQLRecoveryPoint, bool)
AsBasicAzureWorkloadSQLRecoveryPoint() (BasicAzureWorkloadSQLRecoveryPoint, bool)
AsGenericRecoveryPoint() (*GenericRecoveryPoint, bool)
AsIaasVMRecoveryPoint() (*IaasVMRecoveryPoint, bool)
AsRecoveryPoint() (*RecoveryPoint, bool)
}
// RecoveryPoint base class for backup copies. Workload-specific backup copies are derived from this class.
type RecoveryPoint struct {
// ObjectType - Possible values include: 'ObjectTypeRecoveryPoint', 'ObjectTypeAzureFileShareRecoveryPoint', 'ObjectTypeAzureWorkloadRecoveryPoint', 'ObjectTypeAzureWorkloadSQLPointInTimeRecoveryPoint', 'ObjectTypeAzureWorkloadSQLRecoveryPoint', 'ObjectTypeGenericRecoveryPoint', 'ObjectTypeIaasVMRecoveryPoint'
ObjectType ObjectTypeBasicRecoveryPoint `json:"objectType,omitempty"`
}
func unmarshalBasicRecoveryPoint(body []byte) (BasicRecoveryPoint, error) {
var m map[string]interface{}
err := json.Unmarshal(body, &m)
if err != nil {
return nil, err
}
switch m["objectType"] {
case string(ObjectTypeAzureFileShareRecoveryPoint):
var afsrp AzureFileShareRecoveryPoint
err := json.Unmarshal(body, &afsrp)
return afsrp, err
case string(ObjectTypeAzureWorkloadRecoveryPoint):
var awrp AzureWorkloadRecoveryPoint
err := json.Unmarshal(body, &awrp)
return awrp, err
case string(ObjectTypeAzureWorkloadSQLPointInTimeRecoveryPoint):
var awspitrp AzureWorkloadSQLPointInTimeRecoveryPoint
err := json.Unmarshal(body, &awspitrp)
return awspitrp, err
case string(ObjectTypeAzureWorkloadSQLRecoveryPoint):
var awsrp AzureWorkloadSQLRecoveryPoint
err := json.Unmarshal(body, &awsrp)
return awsrp, err
case string(ObjectTypeGenericRecoveryPoint):
var grp GenericRecoveryPoint
err := json.Unmarshal(body, &grp)
return grp, err
case string(ObjectTypeIaasVMRecoveryPoint):
var ivrp IaasVMRecoveryPoint
err := json.Unmarshal(body, &ivrp)
return ivrp, err
default:
var rp RecoveryPoint
err := json.Unmarshal(body, &rp)
return rp, err
}
}
func unmarshalBasicRecoveryPointArray(body []byte) ([]BasicRecoveryPoint, error) {
var rawMessages []*json.RawMessage
err := json.Unmarshal(body, &rawMessages)
if err != nil {
return nil, err
}
rpArray := make([]BasicRecoveryPoint, len(rawMessages))
for index, rawMessage := range rawMessages {
rp, err := unmarshalBasicRecoveryPoint(*rawMessage)
if err != nil {
return nil, err
}
rpArray[index] = rp
}
return rpArray, nil
}
// MarshalJSON is the custom marshaler for RecoveryPoint.
func (rp RecoveryPoint) MarshalJSON() ([]byte, error) {
rp.ObjectType = ObjectTypeRecoveryPoint
objectMap := make(map[string]interface{})
if rp.ObjectType != "" {
objectMap["objectType"] = rp.ObjectType
}
return json.Marshal(objectMap)
}
// AsAzureFileShareRecoveryPoint is the BasicRecoveryPoint implementation for RecoveryPoint.
func (rp RecoveryPoint) AsAzureFileShareRecoveryPoint() (*AzureFileShareRecoveryPoint, bool) {
return nil, false
}
// AsAzureWorkloadRecoveryPoint is the BasicRecoveryPoint implementation for RecoveryPoint.
func (rp RecoveryPoint) AsAzureWorkloadRecoveryPoint() (*AzureWorkloadRecoveryPoint, bool) {
return nil, false
}
// AsBasicAzureWorkloadRecoveryPoint is the BasicRecoveryPoint implementation for RecoveryPoint.
func (rp RecoveryPoint) AsBasicAzureWorkloadRecoveryPoint() (BasicAzureWorkloadRecoveryPoint, bool) {
return nil, false
}
// AsAzureWorkloadSQLPointInTimeRecoveryPoint is the BasicRecoveryPoint implementation for RecoveryPoint.
func (rp RecoveryPoint) AsAzureWorkloadSQLPointInTimeRecoveryPoint() (*AzureWorkloadSQLPointInTimeRecoveryPoint, bool) {
return nil, false
}
// AsAzureWorkloadSQLRecoveryPoint is the BasicRecoveryPoint implementation for RecoveryPoint.
func (rp RecoveryPoint) AsAzureWorkloadSQLRecoveryPoint() (*AzureWorkloadSQLRecoveryPoint, bool) {
return nil, false
}
// AsBasicAzureWorkloadSQLRecoveryPoint is the BasicRecoveryPoint implementation for RecoveryPoint.
func (rp RecoveryPoint) AsBasicAzureWorkloadSQLRecoveryPoint() (BasicAzureWorkloadSQLRecoveryPoint, bool) {
return nil, false
}
// AsGenericRecoveryPoint is the BasicRecoveryPoint implementation for RecoveryPoint.
func (rp RecoveryPoint) AsGenericRecoveryPoint() (*GenericRecoveryPoint, bool) {
return nil, false
}
// AsIaasVMRecoveryPoint is the BasicRecoveryPoint implementation for RecoveryPoint.
func (rp RecoveryPoint) AsIaasVMRecoveryPoint() (*IaasVMRecoveryPoint, bool) {
return nil, false
}
// AsRecoveryPoint is the BasicRecoveryPoint implementation for RecoveryPoint.
func (rp RecoveryPoint) AsRecoveryPoint() (*RecoveryPoint, bool) {
return &rp, true
}
// AsBasicRecoveryPoint is the BasicRecoveryPoint implementation for RecoveryPoint.
func (rp RecoveryPoint) AsBasicRecoveryPoint() (BasicRecoveryPoint, bool) {
return &rp, true
}
// RecoveryPointResource base class for backup copies. Workload-specific backup copies are derived from this class.
type RecoveryPointResource struct {
autorest.Response `json:"-"`
// Properties - RecoveryPointResource properties
Properties BasicRecoveryPoint `json:"properties,omitempty"`
// ID - Resource Id represents the complete path to the resource.
ID *string `json:"id,omitempty"`
// Name - Resource name associated with the resource.
Name *string `json:"name,omitempty"`
// Type - Resource type represents the complete path of the form Namespace/ResourceType/ResourceType/...
Type *string `json:"type,omitempty"`
// Location - Resource location.
Location *string `json:"location,omitempty"`
// Tags - Resource tags.
Tags map[string]*string `json:"tags"`
// ETag - Optional ETag.
ETag *string `json:"eTag,omitempty"`
}
// MarshalJSON is the custom marshaler for RecoveryPointResource.
func (rpr RecoveryPointResource) MarshalJSON() ([]byte, error) {
objectMap := make(map[string]interface{})
objectMap["properties"] = rpr.Properties
if rpr.ID != nil {
objectMap["id"] = rpr.ID
}
if rpr.Name != nil {
objectMap["name"] = rpr.Name
}
if rpr.Type != nil {
objectMap["type"] = rpr.Type
}
if rpr.Location != nil {
objectMap["location"] = rpr.Location
}
if rpr.Tags != nil {
objectMap["tags"] = rpr.Tags
}
if rpr.ETag != nil {
objectMap["eTag"] = rpr.ETag
}
return json.Marshal(objectMap)
}
// UnmarshalJSON is the custom unmarshaler for RecoveryPointResource struct.
func (rpr *RecoveryPointResource) UnmarshalJSON(body []byte) error {
var m map[string]*json.RawMessage
err := json.Unmarshal(body, &m)
if err != nil {
return err
}
for k, v := range m {
switch k {
case "properties":
if v != nil {
properties, err := unmarshalBasicRecoveryPoint(*v)
if err != nil {
return err
}
rpr.Properties = properties
}
case "id":
if v != nil {
var ID string
err = json.Unmarshal(*v, &ID)
if err != nil {
return err
}
rpr.ID = &ID
}
case "name":
if v != nil {
var name string
err = json.Unmarshal(*v, &name)
if err != nil {
return err
}
rpr.Name = &name
}
case "type":
if v != nil {
var typeVar string
err = json.Unmarshal(*v, &typeVar)
if err != nil {
return err
}
rpr.Type = &typeVar
}
case "location":
if v != nil {
var location string
err = json.Unmarshal(*v, &location)
if err != nil {
return err
}
rpr.Location = &location
}
case "tags":
if v != nil {
var tags map[string]*string
err = json.Unmarshal(*v, &tags)
if err != nil {
return err
}
rpr.Tags = tags
}
case "eTag":
if v != nil {
var eTag string
err = json.Unmarshal(*v, &eTag)
if err != nil {
return err
}
rpr.ETag = &eTag
}
}
}
return nil
}
// RecoveryPointResourceList list of RecoveryPoint resources
type RecoveryPointResourceList struct {
autorest.Response `json:"-"`
// Value - List of resources.
Value *[]RecoveryPointResource `json:"value,omitempty"`
// NextLink - The uri to fetch the next page of resources. Call ListNext() fetches next page of resources.
NextLink *string `json:"nextLink,omitempty"`
}
// RecoveryPointResourceListIterator provides access to a complete listing of RecoveryPointResource values.
type RecoveryPointResourceListIterator struct {
i int
page RecoveryPointResourceListPage
}
// Next advances to the next value. If there was an error making
// the request the iterator does not advance and the error is returned.
func (iter *RecoveryPointResourceListIterator) Next() error {
iter.i++
if iter.i < len(iter.page.Values()) {
return nil
}
err := iter.page.Next()
if err != nil {
iter.i--
return err
}
iter.i = 0
return nil
}
// NotDone returns true if the enumeration should be started or is not yet complete.
func (iter RecoveryPointResourceListIterator) NotDone() bool {
return iter.page.NotDone() && iter.i < len(iter.page.Values())
}
// Response returns the raw server response from the last page request.
func (iter RecoveryPointResourceListIterator) Response() RecoveryPointResourceList {
return iter.page.Response()
}
// Value returns the current value or a zero-initialized value if the
// iterator has advanced beyond the end of the collection.
func (iter RecoveryPointResourceListIterator) Value() RecoveryPointResource {
if !iter.page.NotDone() {
return RecoveryPointResource{}
}
return iter.page.Values()[iter.i]
}
// IsEmpty returns true if the ListResult contains no values.
func (rprl RecoveryPointResourceList) IsEmpty() bool {
return rprl.Value == nil || len(*rprl.Value) == 0
}
// recoveryPointResourceListPreparer prepares a request to retrieve the next set of results.
// It returns nil if no more results exist.
func (rprl RecoveryPointResourceList) recoveryPointResourceListPreparer() (*http.Request, error) {
if rprl.NextLink == nil || len(to.String(rprl.NextLink)) < 1 {
return nil, nil
}
return autorest.Prepare(&http.Request{},
autorest.AsJSON(),
autorest.AsGet(),
autorest.WithBaseURL(to.String(rprl.NextLink)))
}
// RecoveryPointResourceListPage contains a page of RecoveryPointResource values.
type RecoveryPointResourceListPage struct {
fn func(RecoveryPointResourceList) (RecoveryPointResourceList, error)
rprl RecoveryPointResourceList
}
// Next advances to the next page of values. If there was an error making
// the request the page does not advance and the error is returned.
func (page *RecoveryPointResourceListPage) Next() error {
next, err := page.fn(page.rprl)
if err != nil {
return err
}
page.rprl = next
return nil
}
// NotDone returns true if the page enumeration should be started or is not yet complete.
func (page RecoveryPointResourceListPage) NotDone() bool {
return !page.rprl.IsEmpty()
}
// Response returns the raw server response from the last page request.
func (page RecoveryPointResourceListPage) Response() RecoveryPointResourceList {
return page.rprl
}
// Values returns the slice of values for the current page or nil if there are no values.
func (page RecoveryPointResourceListPage) Values() []RecoveryPointResource {
if page.rprl.IsEmpty() {
return nil
}
return *page.rprl.Value
}
// RecoveryPointTierInformation recovery point tier information.
type RecoveryPointTierInformation struct {
// Type - Recovery point tier type. Possible values include: 'RecoveryPointTierTypeInvalid', 'RecoveryPointTierTypeInstantRP', 'RecoveryPointTierTypeHardenedRP'
Type RecoveryPointTierType `json:"type,omitempty"`
// Status - Recovery point tier status. Possible values include: 'RecoveryPointTierStatusInvalid', 'RecoveryPointTierStatusValid', 'RecoveryPointTierStatusDisabled', 'RecoveryPointTierStatusDeleted'
Status RecoveryPointTierStatus `json:"status,omitempty"`
}
// BasicRequest base class for backup request. Workload-specific backup requests are derived from this class.
type BasicRequest interface {
AsAzureFileShareBackupRequest() (*AzureFileShareBackupRequest, bool)
AsAzureWorkloadBackupRequest() (*AzureWorkloadBackupRequest, bool)
AsIaasVMBackupRequest() (*IaasVMBackupRequest, bool)
AsRequest() (*Request, bool)
}
// Request base class for backup request. Workload-specific backup requests are derived from this class.
type Request struct {
// ObjectType - Possible values include: 'ObjectTypeBackupRequest', 'ObjectTypeAzureFileShareBackupRequest', 'ObjectTypeAzureWorkloadBackupRequest', 'ObjectTypeIaasVMBackupRequest'
ObjectType ObjectTypeBasicBackupRequest `json:"objectType,omitempty"`
}
func unmarshalBasicRequest(body []byte) (BasicRequest, error) {
var m map[string]interface{}
err := json.Unmarshal(body, &m)
if err != nil {
return nil, err
}
switch m["objectType"] {
case string(ObjectTypeAzureFileShareBackupRequest):
var afsbr AzureFileShareBackupRequest
err := json.Unmarshal(body, &afsbr)
return afsbr, err
case string(ObjectTypeAzureWorkloadBackupRequest):
var awbr AzureWorkloadBackupRequest
err := json.Unmarshal(body, &awbr)
return awbr, err
case string(ObjectTypeIaasVMBackupRequest):
var ivbr IaasVMBackupRequest
err := json.Unmarshal(body, &ivbr)
return ivbr, err
default:
var r Request
err := json.Unmarshal(body, &r)
return r, err
}
}
func unmarshalBasicRequestArray(body []byte) ([]BasicRequest, error) {
var rawMessages []*json.RawMessage
err := json.Unmarshal(body, &rawMessages)
if err != nil {
return nil, err
}
rArray := make([]BasicRequest, len(rawMessages))
for index, rawMessage := range rawMessages {
r, err := unmarshalBasicRequest(*rawMessage)
if err != nil {
return nil, err
}
rArray[index] = r
}
return rArray, nil
}
// MarshalJSON is the custom marshaler for Request.
func (r Request) MarshalJSON() ([]byte, error) {
r.ObjectType = ObjectTypeBackupRequest
objectMap := make(map[string]interface{})
if r.ObjectType != "" {
objectMap["objectType"] = r.ObjectType
}
return json.Marshal(objectMap)
}
// AsAzureFileShareBackupRequest is the BasicRequest implementation for Request.
func (r Request) AsAzureFileShareBackupRequest() (*AzureFileShareBackupRequest, bool) {
return nil, false
}
// AsAzureWorkloadBackupRequest is the BasicRequest implementation for Request.
func (r Request) AsAzureWorkloadBackupRequest() (*AzureWorkloadBackupRequest, bool) {
return nil, false
}
// AsIaasVMBackupRequest is the BasicRequest implementation for Request.
func (r Request) AsIaasVMBackupRequest() (*IaasVMBackupRequest, bool) {
return nil, false
}
// AsRequest is the BasicRequest implementation for Request.
func (r Request) AsRequest() (*Request, bool) {
return &r, true
}
// AsBasicRequest is the BasicRequest implementation for Request.
func (r Request) AsBasicRequest() (BasicRequest, bool) {
return &r, true
}
// RequestResource base class for backup request. Workload-specific backup requests are derived from this class.
type RequestResource struct {
// Properties - BackupRequestResource properties
Properties BasicRequest `json:"properties,omitempty"`
// ID - Resource Id represents the complete path to the resource.
ID *string `json:"id,omitempty"`
// Name - Resource name associated with the resource.
Name *string `json:"name,omitempty"`
// Type - Resource type represents the complete path of the form Namespace/ResourceType/ResourceType/...
Type *string `json:"type,omitempty"`
// Location - Resource location.
Location *string `json:"location,omitempty"`
// Tags - Resource tags.
Tags map[string]*string `json:"tags"`
// ETag - Optional ETag.
ETag *string `json:"eTag,omitempty"`
}
// MarshalJSON is the custom marshaler for RequestResource.
func (rr RequestResource) MarshalJSON() ([]byte, error) {
objectMap := make(map[string]interface{})
objectMap["properties"] = rr.Properties
if rr.ID != nil {
objectMap["id"] = rr.ID
}
if rr.Name != nil {
objectMap["name"] = rr.Name
}
if rr.Type != nil {
objectMap["type"] = rr.Type
}
if rr.Location != nil {
objectMap["location"] = rr.Location
}
if rr.Tags != nil {
objectMap["tags"] = rr.Tags
}
if rr.ETag != nil {
objectMap["eTag"] = rr.ETag
}
return json.Marshal(objectMap)
}
// UnmarshalJSON is the custom unmarshaler for RequestResource struct.
func (rr *RequestResource) UnmarshalJSON(body []byte) error {
var m map[string]*json.RawMessage
err := json.Unmarshal(body, &m)
if err != nil {
return err
}
for k, v := range m {
switch k {
case "properties":
if v != nil {
properties, err := unmarshalBasicRequest(*v)
if err != nil {
return err
}
rr.Properties = properties
}
case "id":
if v != nil {
var ID string
err = json.Unmarshal(*v, &ID)
if err != nil {
return err
}
rr.ID = &ID
}
case "name":
if v != nil {
var name string
err = json.Unmarshal(*v, &name)
if err != nil {
return err
}
rr.Name = &name
}
case "type":
if v != nil {
var typeVar string
err = json.Unmarshal(*v, &typeVar)
if err != nil {
return err
}
rr.Type = &typeVar
}
case "location":
if v != nil {
var location string
err = json.Unmarshal(*v, &location)
if err != nil {
return err
}
rr.Location = &location
}
case "tags":
if v != nil {
var tags map[string]*string
err = json.Unmarshal(*v, &tags)
if err != nil {
return err
}
rr.Tags = tags
}
case "eTag":
if v != nil {
var eTag string
err = json.Unmarshal(*v, &eTag)
if err != nil {
return err
}
rr.ETag = &eTag
}
}
}
return nil
}
// Resource ARM Resource.
type Resource struct {
// ID - Resource Id represents the complete path to the resource.
ID *string `json:"id,omitempty"`
// Name - Resource name associated with the resource.
Name *string `json:"name,omitempty"`
// Type - Resource type represents the complete path of the form Namespace/ResourceType/ResourceType/...
Type *string `json:"type,omitempty"`
// Location - Resource location.
Location *string `json:"location,omitempty"`
// Tags - Resource tags.
Tags map[string]*string `json:"tags"`
// ETag - Optional ETag.
ETag *string `json:"eTag,omitempty"`
}
// MarshalJSON is the custom marshaler for Resource.
func (r Resource) MarshalJSON() ([]byte, error) {
objectMap := make(map[string]interface{})
if r.ID != nil {
objectMap["id"] = r.ID
}
if r.Name != nil {
objectMap["name"] = r.Name
}
if r.Type != nil {
objectMap["type"] = r.Type
}
if r.Location != nil {
objectMap["location"] = r.Location
}
if r.Tags != nil {
objectMap["tags"] = r.Tags
}
if r.ETag != nil {
objectMap["eTag"] = r.ETag
}
return json.Marshal(objectMap)
}
// ResourceConfig the resource storage details.
type ResourceConfig struct {
// StorageModelType - Storage type. Possible values include: 'StorageTypeInvalid', 'StorageTypeGeoRedundant', 'StorageTypeLocallyRedundant'
StorageModelType StorageType `json:"storageModelType,omitempty"`
// StorageType - Storage type. Possible values include: 'StorageTypeInvalid', 'StorageTypeGeoRedundant', 'StorageTypeLocallyRedundant'
StorageType StorageType `json:"storageType,omitempty"`
// StorageTypeState - Locked or Unlocked. Once a machine is registered against a resource, the storageTypeState is always Locked. Possible values include: 'StorageTypeStateInvalid', 'StorageTypeStateLocked', 'StorageTypeStateUnlocked'
StorageTypeState StorageTypeState `json:"storageTypeState,omitempty"`
}
// ResourceConfigResource the resource storage details.
type ResourceConfigResource struct {
autorest.Response `json:"-"`
// Properties - BackupResourceConfigResource properties
Properties *ResourceConfig `json:"properties,omitempty"`
// ID - Resource Id represents the complete path to the resource.
ID *string `json:"id,omitempty"`
// Name - Resource name associated with the resource.
Name *string `json:"name,omitempty"`
// Type - Resource type represents the complete path of the form Namespace/ResourceType/ResourceType/...
Type *string `json:"type,omitempty"`
// Location - Resource location.
Location *string `json:"location,omitempty"`
// Tags - Resource tags.
Tags map[string]*string `json:"tags"`
// ETag - Optional ETag.
ETag *string `json:"eTag,omitempty"`
}
// MarshalJSON is the custom marshaler for ResourceConfigResource.
func (rcr ResourceConfigResource) MarshalJSON() ([]byte, error) {
objectMap := make(map[string]interface{})
if rcr.Properties != nil {
objectMap["properties"] = rcr.Properties
}
if rcr.ID != nil {
objectMap["id"] = rcr.ID
}
if rcr.Name != nil {
objectMap["name"] = rcr.Name
}
if rcr.Type != nil {
objectMap["type"] = rcr.Type
}
if rcr.Location != nil {
objectMap["location"] = rcr.Location
}
if rcr.Tags != nil {
objectMap["tags"] = rcr.Tags
}
if rcr.ETag != nil {
objectMap["eTag"] = rcr.ETag
}
return json.Marshal(objectMap)
}
// ResourceList base for all lists of resources.
type ResourceList struct {
// NextLink - The uri to fetch the next page of resources. Call ListNext() fetches next page of resources.
NextLink *string `json:"nextLink,omitempty"`
}
// ResourceVaultConfig backup resource vault config details.
type ResourceVaultConfig struct {
// StorageModelType - Storage type. Possible values include: 'StorageTypeInvalid', 'StorageTypeGeoRedundant', 'StorageTypeLocallyRedundant'
StorageModelType StorageType `json:"storageModelType,omitempty"`
// StorageType - Storage type. Possible values include: 'StorageTypeInvalid', 'StorageTypeGeoRedundant', 'StorageTypeLocallyRedundant'
StorageType StorageType `json:"storageType,omitempty"`
// StorageTypeState - Locked or Unlocked. Once a machine is registered against a resource, the storageTypeState is always Locked. Possible values include: 'StorageTypeStateInvalid', 'StorageTypeStateLocked', 'StorageTypeStateUnlocked'
StorageTypeState StorageTypeState `json:"storageTypeState,omitempty"`
// EnhancedSecurityState - Enabled or Disabled. Possible values include: 'EnhancedSecurityStateInvalid', 'EnhancedSecurityStateEnabled', 'EnhancedSecurityStateDisabled'
EnhancedSecurityState EnhancedSecurityState `json:"enhancedSecurityState,omitempty"`
}
// ResourceVaultConfigResource backup resource vault config details.
type ResourceVaultConfigResource struct {
autorest.Response `json:"-"`
// Properties - BackupResourceVaultConfigResource properties
Properties *ResourceVaultConfig `json:"properties,omitempty"`
// ID - Resource Id represents the complete path to the resource.
ID *string `json:"id,omitempty"`
// Name - Resource name associated with the resource.
Name *string `json:"name,omitempty"`
// Type - Resource type represents the complete path of the form Namespace/ResourceType/ResourceType/...
Type *string `json:"type,omitempty"`
// Location - Resource location.
Location *string `json:"location,omitempty"`
// Tags - Resource tags.
Tags map[string]*string `json:"tags"`
// ETag - Optional ETag.
ETag *string `json:"eTag,omitempty"`
}
// MarshalJSON is the custom marshaler for ResourceVaultConfigResource.
func (rvcr ResourceVaultConfigResource) MarshalJSON() ([]byte, error) {
objectMap := make(map[string]interface{})
if rvcr.Properties != nil {
objectMap["properties"] = rvcr.Properties
}
if rvcr.ID != nil {
objectMap["id"] = rvcr.ID
}
if rvcr.Name != nil {
objectMap["name"] = rvcr.Name
}
if rvcr.Type != nil {
objectMap["type"] = rvcr.Type
}
if rvcr.Location != nil {
objectMap["location"] = rvcr.Location
}
if rvcr.Tags != nil {
objectMap["tags"] = rvcr.Tags
}
if rvcr.ETag != nil {
objectMap["eTag"] = rvcr.ETag
}
return json.Marshal(objectMap)
}
// RestoreFileSpecs restore file specs like file path, type and target folder path info.
type RestoreFileSpecs struct {
// Path - Source File/Folder path
Path *string `json:"path,omitempty"`
// FileSpecType - Indicates what the Path variable stands for
FileSpecType *string `json:"fileSpecType,omitempty"`
// TargetFolderPath - Destination folder path in target FileShare
TargetFolderPath *string `json:"targetFolderPath,omitempty"`
}
// BasicRestoreRequest base class for restore request. Workload-specific restore requests are derived from this class.
type BasicRestoreRequest interface {
AsAzureFileShareRestoreRequest() (*AzureFileShareRestoreRequest, bool)
AsAzureWorkloadRestoreRequest() (*AzureWorkloadRestoreRequest, bool)
AsBasicAzureWorkloadRestoreRequest() (BasicAzureWorkloadRestoreRequest, bool)
AsAzureWorkloadSQLPointInTimeRestoreRequest() (*AzureWorkloadSQLPointInTimeRestoreRequest, bool)
AsAzureWorkloadSQLRestoreRequest() (*AzureWorkloadSQLRestoreRequest, bool)
AsBasicAzureWorkloadSQLRestoreRequest() (BasicAzureWorkloadSQLRestoreRequest, bool)
AsIaasVMRestoreRequest() (*IaasVMRestoreRequest, bool)
AsRestoreRequest() (*RestoreRequest, bool)
}
// RestoreRequest base class for restore request. Workload-specific restore requests are derived from this class.
type RestoreRequest struct {
// ObjectType - Possible values include: 'ObjectTypeRestoreRequest', 'ObjectTypeAzureFileShareRestoreRequest', 'ObjectTypeAzureWorkloadRestoreRequest', 'ObjectTypeAzureWorkloadSQLPointInTimeRestoreRequest', 'ObjectTypeAzureWorkloadSQLRestoreRequest', 'ObjectTypeIaasVMRestoreRequest'
ObjectType ObjectTypeBasicRestoreRequest `json:"objectType,omitempty"`
}
func unmarshalBasicRestoreRequest(body []byte) (BasicRestoreRequest, error) {
var m map[string]interface{}
err := json.Unmarshal(body, &m)
if err != nil {
return nil, err
}
switch m["objectType"] {
case string(ObjectTypeAzureFileShareRestoreRequest):
var afsrr AzureFileShareRestoreRequest
err := json.Unmarshal(body, &afsrr)
return afsrr, err
case string(ObjectTypeAzureWorkloadRestoreRequest):
var awrr AzureWorkloadRestoreRequest
err := json.Unmarshal(body, &awrr)
return awrr, err
case string(ObjectTypeAzureWorkloadSQLPointInTimeRestoreRequest):
var awspitrr AzureWorkloadSQLPointInTimeRestoreRequest
err := json.Unmarshal(body, &awspitrr)
return awspitrr, err
case string(ObjectTypeAzureWorkloadSQLRestoreRequest):
var awsrr AzureWorkloadSQLRestoreRequest
err := json.Unmarshal(body, &awsrr)
return awsrr, err
case string(ObjectTypeIaasVMRestoreRequest):
var ivrr IaasVMRestoreRequest
err := json.Unmarshal(body, &ivrr)
return ivrr, err
default:
var rr RestoreRequest
err := json.Unmarshal(body, &rr)
return rr, err
}
}
func unmarshalBasicRestoreRequestArray(body []byte) ([]BasicRestoreRequest, error) {
var rawMessages []*json.RawMessage
err := json.Unmarshal(body, &rawMessages)
if err != nil {
return nil, err
}
rrArray := make([]BasicRestoreRequest, len(rawMessages))
for index, rawMessage := range rawMessages {
rr, err := unmarshalBasicRestoreRequest(*rawMessage)
if err != nil {
return nil, err
}
rrArray[index] = rr
}
return rrArray, nil
}
// MarshalJSON is the custom marshaler for RestoreRequest.
func (rr RestoreRequest) MarshalJSON() ([]byte, error) {
rr.ObjectType = ObjectTypeRestoreRequest
objectMap := make(map[string]interface{})
if rr.ObjectType != "" {
objectMap["objectType"] = rr.ObjectType
}
return json.Marshal(objectMap)
}
// AsAzureFileShareRestoreRequest is the BasicRestoreRequest implementation for RestoreRequest.
func (rr RestoreRequest) AsAzureFileShareRestoreRequest() (*AzureFileShareRestoreRequest, bool) {
return nil, false
}
// AsAzureWorkloadRestoreRequest is the BasicRestoreRequest implementation for RestoreRequest.
func (rr RestoreRequest) AsAzureWorkloadRestoreRequest() (*AzureWorkloadRestoreRequest, bool) {
return nil, false
}
// AsBasicAzureWorkloadRestoreRequest is the BasicRestoreRequest implementation for RestoreRequest.
func (rr RestoreRequest) AsBasicAzureWorkloadRestoreRequest() (BasicAzureWorkloadRestoreRequest, bool) {
return nil, false
}
// AsAzureWorkloadSQLPointInTimeRestoreRequest is the BasicRestoreRequest implementation for RestoreRequest.
func (rr RestoreRequest) AsAzureWorkloadSQLPointInTimeRestoreRequest() (*AzureWorkloadSQLPointInTimeRestoreRequest, bool) {
return nil, false
}
// AsAzureWorkloadSQLRestoreRequest is the BasicRestoreRequest implementation for RestoreRequest.
func (rr RestoreRequest) AsAzureWorkloadSQLRestoreRequest() (*AzureWorkloadSQLRestoreRequest, bool) {
return nil, false
}
// AsBasicAzureWorkloadSQLRestoreRequest is the BasicRestoreRequest implementation for RestoreRequest.
func (rr RestoreRequest) AsBasicAzureWorkloadSQLRestoreRequest() (BasicAzureWorkloadSQLRestoreRequest, bool) {
return nil, false
}
// AsIaasVMRestoreRequest is the BasicRestoreRequest implementation for RestoreRequest.
func (rr RestoreRequest) AsIaasVMRestoreRequest() (*IaasVMRestoreRequest, bool) {
return nil, false
}
// AsRestoreRequest is the BasicRestoreRequest implementation for RestoreRequest.
func (rr RestoreRequest) AsRestoreRequest() (*RestoreRequest, bool) {
return &rr, true
}
// AsBasicRestoreRequest is the BasicRestoreRequest implementation for RestoreRequest.
func (rr RestoreRequest) AsBasicRestoreRequest() (BasicRestoreRequest, bool) {
return &rr, true
}
// RestoreRequestResource base class for restore request. Workload-specific restore requests are derived from this
// class.
type RestoreRequestResource struct {
// Properties - RestoreRequestResource properties
Properties BasicRestoreRequest `json:"properties,omitempty"`
// ID - Resource Id represents the complete path to the resource.
ID *string `json:"id,omitempty"`
// Name - Resource name associated with the resource.
Name *string `json:"name,omitempty"`
// Type - Resource type represents the complete path of the form Namespace/ResourceType/ResourceType/...
Type *string `json:"type,omitempty"`
// Location - Resource location.
Location *string `json:"location,omitempty"`
// Tags - Resource tags.
Tags map[string]*string `json:"tags"`
// ETag - Optional ETag.
ETag *string `json:"eTag,omitempty"`
}
// MarshalJSON is the custom marshaler for RestoreRequestResource.
func (rrr RestoreRequestResource) MarshalJSON() ([]byte, error) {
objectMap := make(map[string]interface{})
objectMap["properties"] = rrr.Properties
if rrr.ID != nil {
objectMap["id"] = rrr.ID
}
if rrr.Name != nil {
objectMap["name"] = rrr.Name
}
if rrr.Type != nil {
objectMap["type"] = rrr.Type
}
if rrr.Location != nil {
objectMap["location"] = rrr.Location
}
if rrr.Tags != nil {
objectMap["tags"] = rrr.Tags
}
if rrr.ETag != nil {
objectMap["eTag"] = rrr.ETag
}
return json.Marshal(objectMap)
}
// UnmarshalJSON is the custom unmarshaler for RestoreRequestResource struct.
func (rrr *RestoreRequestResource) UnmarshalJSON(body []byte) error {
var m map[string]*json.RawMessage
err := json.Unmarshal(body, &m)
if err != nil {
return err
}
for k, v := range m {
switch k {
case "properties":
if v != nil {
properties, err := unmarshalBasicRestoreRequest(*v)
if err != nil {
return err
}
rrr.Properties = properties
}
case "id":
if v != nil {
var ID string
err = json.Unmarshal(*v, &ID)
if err != nil {
return err
}
rrr.ID = &ID
}
case "name":
if v != nil {
var name string
err = json.Unmarshal(*v, &name)
if err != nil {
return err
}
rrr.Name = &name
}
case "type":
if v != nil {
var typeVar string
err = json.Unmarshal(*v, &typeVar)
if err != nil {
return err
}
rrr.Type = &typeVar
}
case "location":
if v != nil {
var location string
err = json.Unmarshal(*v, &location)
if err != nil {
return err
}
rrr.Location = &location
}
case "tags":
if v != nil {
var tags map[string]*string
err = json.Unmarshal(*v, &tags)
if err != nil {
return err
}
rrr.Tags = tags
}
case "eTag":
if v != nil {
var eTag string
err = json.Unmarshal(*v, &eTag)
if err != nil {
return err
}
rrr.ETag = &eTag
}
}
}
return nil
}
// RetentionDuration retention duration.
type RetentionDuration struct {
// Count - Count of duration types. Retention duration is obtained by the counting the duration type Count times.
// For example, when Count = 3 and DurationType = Weeks, retention duration will be three weeks.
Count *int32 `json:"count,omitempty"`
// DurationType - Retention duration type of retention policy. Possible values include: 'RetentionDurationTypeInvalid', 'RetentionDurationTypeDays', 'RetentionDurationTypeWeeks', 'RetentionDurationTypeMonths', 'RetentionDurationTypeYears'
DurationType RetentionDurationType `json:"durationType,omitempty"`
}
// BasicRetentionPolicy base class for retention policy.
type BasicRetentionPolicy interface {
AsLongTermRetentionPolicy() (*LongTermRetentionPolicy, bool)
AsSimpleRetentionPolicy() (*SimpleRetentionPolicy, bool)
AsRetentionPolicy() (*RetentionPolicy, bool)
}
// RetentionPolicy base class for retention policy.
type RetentionPolicy struct {
// RetentionPolicyType - Possible values include: 'RetentionPolicyTypeRetentionPolicy', 'RetentionPolicyTypeLongTermRetentionPolicy', 'RetentionPolicyTypeSimpleRetentionPolicy'
RetentionPolicyType RetentionPolicyType `json:"retentionPolicyType,omitempty"`
}
func unmarshalBasicRetentionPolicy(body []byte) (BasicRetentionPolicy, error) {
var m map[string]interface{}
err := json.Unmarshal(body, &m)
if err != nil {
return nil, err
}
switch m["retentionPolicyType"] {
case string(RetentionPolicyTypeLongTermRetentionPolicy):
var ltrp LongTermRetentionPolicy
err := json.Unmarshal(body, &ltrp)
return ltrp, err
case string(RetentionPolicyTypeSimpleRetentionPolicy):
var srp SimpleRetentionPolicy
err := json.Unmarshal(body, &srp)
return srp, err
default:
var rp RetentionPolicy
err := json.Unmarshal(body, &rp)
return rp, err
}
}
func unmarshalBasicRetentionPolicyArray(body []byte) ([]BasicRetentionPolicy, error) {
var rawMessages []*json.RawMessage
err := json.Unmarshal(body, &rawMessages)
if err != nil {
return nil, err
}
rpArray := make([]BasicRetentionPolicy, len(rawMessages))
for index, rawMessage := range rawMessages {
rp, err := unmarshalBasicRetentionPolicy(*rawMessage)
if err != nil {
return nil, err
}
rpArray[index] = rp
}
return rpArray, nil
}
// MarshalJSON is the custom marshaler for RetentionPolicy.
func (rp RetentionPolicy) MarshalJSON() ([]byte, error) {
rp.RetentionPolicyType = RetentionPolicyTypeRetentionPolicy
objectMap := make(map[string]interface{})
if rp.RetentionPolicyType != "" {
objectMap["retentionPolicyType"] = rp.RetentionPolicyType
}
return json.Marshal(objectMap)
}
// AsLongTermRetentionPolicy is the BasicRetentionPolicy implementation for RetentionPolicy.
func (rp RetentionPolicy) AsLongTermRetentionPolicy() (*LongTermRetentionPolicy, bool) {
return nil, false
}
// AsSimpleRetentionPolicy is the BasicRetentionPolicy implementation for RetentionPolicy.
func (rp RetentionPolicy) AsSimpleRetentionPolicy() (*SimpleRetentionPolicy, bool) {
return nil, false
}
// AsRetentionPolicy is the BasicRetentionPolicy implementation for RetentionPolicy.
func (rp RetentionPolicy) AsRetentionPolicy() (*RetentionPolicy, bool) {
return &rp, true
}
// AsBasicRetentionPolicy is the BasicRetentionPolicy implementation for RetentionPolicy.
func (rp RetentionPolicy) AsBasicRetentionPolicy() (BasicRetentionPolicy, bool) {
return &rp, true
}
// BasicSchedulePolicy base class for backup schedule.
type BasicSchedulePolicy interface {
AsLogSchedulePolicy() (*LogSchedulePolicy, bool)
AsLongTermSchedulePolicy() (*LongTermSchedulePolicy, bool)
AsSimpleSchedulePolicy() (*SimpleSchedulePolicy, bool)
AsSchedulePolicy() (*SchedulePolicy, bool)
}
// SchedulePolicy base class for backup schedule.
type SchedulePolicy struct {
// SchedulePolicyType - Possible values include: 'SchedulePolicyTypeSchedulePolicy', 'SchedulePolicyTypeLogSchedulePolicy', 'SchedulePolicyTypeLongTermSchedulePolicy', 'SchedulePolicyTypeSimpleSchedulePolicy'
SchedulePolicyType SchedulePolicyType `json:"schedulePolicyType,omitempty"`
}
func unmarshalBasicSchedulePolicy(body []byte) (BasicSchedulePolicy, error) {
var m map[string]interface{}
err := json.Unmarshal(body, &m)
if err != nil {
return nil, err
}
switch m["schedulePolicyType"] {
case string(SchedulePolicyTypeLogSchedulePolicy):
var lsp LogSchedulePolicy
err := json.Unmarshal(body, &lsp)
return lsp, err
case string(SchedulePolicyTypeLongTermSchedulePolicy):
var ltsp LongTermSchedulePolicy
err := json.Unmarshal(body, &ltsp)
return ltsp, err
case string(SchedulePolicyTypeSimpleSchedulePolicy):
var ssp SimpleSchedulePolicy
err := json.Unmarshal(body, &ssp)
return ssp, err
default:
var sp SchedulePolicy
err := json.Unmarshal(body, &sp)
return sp, err
}
}
func unmarshalBasicSchedulePolicyArray(body []byte) ([]BasicSchedulePolicy, error) {
var rawMessages []*json.RawMessage
err := json.Unmarshal(body, &rawMessages)
if err != nil {
return nil, err
}
spArray := make([]BasicSchedulePolicy, len(rawMessages))
for index, rawMessage := range rawMessages {
sp, err := unmarshalBasicSchedulePolicy(*rawMessage)
if err != nil {
return nil, err
}
spArray[index] = sp
}
return spArray, nil
}
// MarshalJSON is the custom marshaler for SchedulePolicy.
func (sp SchedulePolicy) MarshalJSON() ([]byte, error) {
sp.SchedulePolicyType = SchedulePolicyTypeSchedulePolicy
objectMap := make(map[string]interface{})
if sp.SchedulePolicyType != "" {
objectMap["schedulePolicyType"] = sp.SchedulePolicyType
}
return json.Marshal(objectMap)
}
// AsLogSchedulePolicy is the BasicSchedulePolicy implementation for SchedulePolicy.
func (sp SchedulePolicy) AsLogSchedulePolicy() (*LogSchedulePolicy, bool) {
return nil, false
}
// AsLongTermSchedulePolicy is the BasicSchedulePolicy implementation for SchedulePolicy.
func (sp SchedulePolicy) AsLongTermSchedulePolicy() (*LongTermSchedulePolicy, bool) {
return nil, false
}
// AsSimpleSchedulePolicy is the BasicSchedulePolicy implementation for SchedulePolicy.
func (sp SchedulePolicy) AsSimpleSchedulePolicy() (*SimpleSchedulePolicy, bool) {
return nil, false
}
// AsSchedulePolicy is the BasicSchedulePolicy implementation for SchedulePolicy.
func (sp SchedulePolicy) AsSchedulePolicy() (*SchedulePolicy, bool) {
return &sp, true
}
// AsBasicSchedulePolicy is the BasicSchedulePolicy implementation for SchedulePolicy.
func (sp SchedulePolicy) AsBasicSchedulePolicy() (BasicSchedulePolicy, bool) {
return &sp, true
}
// Settings common settings field for backup management
type Settings struct {
// TimeZone - TimeZone optional input as string. For example: TimeZone = "Pacific Standard Time".
TimeZone *string `json:"timeZone,omitempty"`
// Issqlcompression - SQL compression flag
Issqlcompression *bool `json:"issqlcompression,omitempty"`
}
// SimpleRetentionPolicy simple policy retention.
type SimpleRetentionPolicy struct {
// RetentionDuration - Retention duration of the protection policy.
RetentionDuration *RetentionDuration `json:"retentionDuration,omitempty"`
// RetentionPolicyType - Possible values include: 'RetentionPolicyTypeRetentionPolicy', 'RetentionPolicyTypeLongTermRetentionPolicy', 'RetentionPolicyTypeSimpleRetentionPolicy'
RetentionPolicyType RetentionPolicyType `json:"retentionPolicyType,omitempty"`
}
// MarshalJSON is the custom marshaler for SimpleRetentionPolicy.
func (srp SimpleRetentionPolicy) MarshalJSON() ([]byte, error) {
srp.RetentionPolicyType = RetentionPolicyTypeSimpleRetentionPolicy
objectMap := make(map[string]interface{})
if srp.RetentionDuration != nil {
objectMap["retentionDuration"] = srp.RetentionDuration
}
if srp.RetentionPolicyType != "" {
objectMap["retentionPolicyType"] = srp.RetentionPolicyType
}
return json.Marshal(objectMap)
}
// AsLongTermRetentionPolicy is the BasicRetentionPolicy implementation for SimpleRetentionPolicy.
func (srp SimpleRetentionPolicy) AsLongTermRetentionPolicy() (*LongTermRetentionPolicy, bool) {
return nil, false
}
// AsSimpleRetentionPolicy is the BasicRetentionPolicy implementation for SimpleRetentionPolicy.
func (srp SimpleRetentionPolicy) AsSimpleRetentionPolicy() (*SimpleRetentionPolicy, bool) {
return &srp, true
}
// AsRetentionPolicy is the BasicRetentionPolicy implementation for SimpleRetentionPolicy.
func (srp SimpleRetentionPolicy) AsRetentionPolicy() (*RetentionPolicy, bool) {
return nil, false
}
// AsBasicRetentionPolicy is the BasicRetentionPolicy implementation for SimpleRetentionPolicy.
func (srp SimpleRetentionPolicy) AsBasicRetentionPolicy() (BasicRetentionPolicy, bool) {
return &srp, true
}
// SimpleSchedulePolicy simple policy schedule.
type SimpleSchedulePolicy struct {
// ScheduleRunFrequency - Frequency of the schedule operation of this policy. Possible values include: 'ScheduleRunTypeInvalid', 'ScheduleRunTypeDaily', 'ScheduleRunTypeWeekly'
ScheduleRunFrequency ScheduleRunType `json:"scheduleRunFrequency,omitempty"`
// ScheduleRunDays - List of days of week this schedule has to be run.
ScheduleRunDays *[]DayOfWeek `json:"scheduleRunDays,omitempty"`
// ScheduleRunTimes - List of times of day this schedule has to be run.
ScheduleRunTimes *[]date.Time `json:"scheduleRunTimes,omitempty"`
// ScheduleWeeklyFrequency - At every number weeks this schedule has to be run.
ScheduleWeeklyFrequency *int32 `json:"scheduleWeeklyFrequency,omitempty"`
// SchedulePolicyType - Possible values include: 'SchedulePolicyTypeSchedulePolicy', 'SchedulePolicyTypeLogSchedulePolicy', 'SchedulePolicyTypeLongTermSchedulePolicy', 'SchedulePolicyTypeSimpleSchedulePolicy'
SchedulePolicyType SchedulePolicyType `json:"schedulePolicyType,omitempty"`
}
// MarshalJSON is the custom marshaler for SimpleSchedulePolicy.
func (ssp SimpleSchedulePolicy) MarshalJSON() ([]byte, error) {
ssp.SchedulePolicyType = SchedulePolicyTypeSimpleSchedulePolicy
objectMap := make(map[string]interface{})
if ssp.ScheduleRunFrequency != "" {
objectMap["scheduleRunFrequency"] = ssp.ScheduleRunFrequency
}
if ssp.ScheduleRunDays != nil {
objectMap["scheduleRunDays"] = ssp.ScheduleRunDays
}
if ssp.ScheduleRunTimes != nil {
objectMap["scheduleRunTimes"] = ssp.ScheduleRunTimes
}
if ssp.ScheduleWeeklyFrequency != nil {
objectMap["scheduleWeeklyFrequency"] = ssp.ScheduleWeeklyFrequency
}
if ssp.SchedulePolicyType != "" {
objectMap["schedulePolicyType"] = ssp.SchedulePolicyType
}
return json.Marshal(objectMap)
}
// AsLogSchedulePolicy is the BasicSchedulePolicy implementation for SimpleSchedulePolicy.
func (ssp SimpleSchedulePolicy) AsLogSchedulePolicy() (*LogSchedulePolicy, bool) {
return nil, false
}
// AsLongTermSchedulePolicy is the BasicSchedulePolicy implementation for SimpleSchedulePolicy.
func (ssp SimpleSchedulePolicy) AsLongTermSchedulePolicy() (*LongTermSchedulePolicy, bool) {
return nil, false
}
// AsSimpleSchedulePolicy is the BasicSchedulePolicy implementation for SimpleSchedulePolicy.
func (ssp SimpleSchedulePolicy) AsSimpleSchedulePolicy() (*SimpleSchedulePolicy, bool) {
return &ssp, true
}
// AsSchedulePolicy is the BasicSchedulePolicy implementation for SimpleSchedulePolicy.
func (ssp SimpleSchedulePolicy) AsSchedulePolicy() (*SchedulePolicy, bool) {
return nil, false
}
// AsBasicSchedulePolicy is the BasicSchedulePolicy implementation for SimpleSchedulePolicy.
func (ssp SimpleSchedulePolicy) AsBasicSchedulePolicy() (BasicSchedulePolicy, bool) {
return &ssp, true
}
// SQLDataDirectory sQLDataDirectory info
type SQLDataDirectory struct {
// Type - Type of data directory mapping. Possible values include: 'SQLDataDirectoryTypeInvalid', 'SQLDataDirectoryTypeData', 'SQLDataDirectoryTypeLog'
Type SQLDataDirectoryType `json:"type,omitempty"`
// Path - File path
Path *string `json:"path,omitempty"`
// LogicalName - Logical name of the file
LogicalName *string `json:"logicalName,omitempty"`
}
// SQLDataDirectoryMapping encapsulates information regarding data directory
type SQLDataDirectoryMapping struct {
// MappingType - Type of data directory mapping. Possible values include: 'SQLDataDirectoryTypeInvalid', 'SQLDataDirectoryTypeData', 'SQLDataDirectoryTypeLog'
MappingType SQLDataDirectoryType `json:"mappingType,omitempty"`
// SourceLogicalName - Restore source logical name path
SourceLogicalName *string `json:"sourceLogicalName,omitempty"`
// SourcePath - Restore source path
SourcePath *string `json:"sourcePath,omitempty"`
// TargetPath - Target path
TargetPath *string `json:"targetPath,omitempty"`
}
// StatusRequest backupStatus request.
type StatusRequest struct {
// ResourceType - Container Type - VM, SQLPaaS, DPM, AzureFileShare. Possible values include: 'DataSourceTypeInvalid', 'DataSourceTypeVM', 'DataSourceTypeFileFolder', 'DataSourceTypeAzureSQLDb', 'DataSourceTypeSQLDB', 'DataSourceTypeExchange', 'DataSourceTypeSharepoint', 'DataSourceTypeVMwareVM', 'DataSourceTypeSystemState', 'DataSourceTypeClient', 'DataSourceTypeGenericDataSource', 'DataSourceTypeSQLDataBase', 'DataSourceTypeAzureFileShare'
ResourceType DataSourceType `json:"resourceType,omitempty"`
// ResourceID - Entire ARM resource id of the resource
ResourceID *string `json:"resourceId,omitempty"`
// PoLogicalName - Protectable Item Logical Name
PoLogicalName *string `json:"poLogicalName,omitempty"`
}
// StatusResponse backupStatus response.
type StatusResponse struct {
autorest.Response `json:"-"`
// ProtectionStatus - Specifies whether the container is registered or not. Possible values include: 'ProtectionStatusInvalid', 'ProtectionStatusNotProtected', 'ProtectionStatusProtecting', 'ProtectionStatusProtected', 'ProtectionStatusProtectionFailed'
ProtectionStatus ProtectionStatus `json:"protectionStatus,omitempty"`
// VaultID - Specifies the arm resource id of the vault
VaultID *string `json:"vaultId,omitempty"`
// FabricName - Specifies the fabric name - Azure or AAD. Possible values include: 'FabricNameInvalid', 'FabricNameAzure'
FabricName FabricName `json:"fabricName,omitempty"`
// ContainerName - Specifies the product specific container name. E.g. iaasvmcontainer;iaasvmcontainer;csname;vmname. This is required for portal
ContainerName *string `json:"containerName,omitempty"`
// ProtectedItemName - Specifies the product specific ds name. E.g. vm;iaasvmcontainer;csname;vmname. This is required for portal
ProtectedItemName *string `json:"protectedItemName,omitempty"`
// ErrorCode - ErrorCode in case of intent failed
ErrorCode *string `json:"errorCode,omitempty"`
// ErrorMessage - ErrorMessage in case of intent failed.
ErrorMessage *string `json:"errorMessage,omitempty"`
// PolicyName - Specifies the policy name which is used for protection
PolicyName *string `json:"policyName,omitempty"`
// RegistrationStatus - Container registration status
RegistrationStatus *string `json:"registrationStatus,omitempty"`
}
// SubProtectionPolicy sub-protection policy which includes schedule and retention
type SubProtectionPolicy struct {
// PolicyType - Type of backup policy type
PolicyType *string `json:"policyType,omitempty"`
// SchedulePolicy - Backup schedule specified as part of backup policy.
SchedulePolicy BasicSchedulePolicy `json:"schedulePolicy,omitempty"`
// RetentionPolicy - Retention policy with the details on backup copy retention ranges.
RetentionPolicy BasicRetentionPolicy `json:"retentionPolicy,omitempty"`
}
// UnmarshalJSON is the custom unmarshaler for SubProtectionPolicy struct.
func (spp *SubProtectionPolicy) UnmarshalJSON(body []byte) error {
var m map[string]*json.RawMessage
err := json.Unmarshal(body, &m)
if err != nil {
return err
}
for k, v := range m {
switch k {
case "policyType":
if v != nil {
var policyType string
err = json.Unmarshal(*v, &policyType)
if err != nil {
return err
}
spp.PolicyType = &policyType
}
case "schedulePolicy":
if v != nil {
schedulePolicy, err := unmarshalBasicSchedulePolicy(*v)
if err != nil {
return err
}
spp.SchedulePolicy = schedulePolicy
}
case "retentionPolicy":
if v != nil {
retentionPolicy, err := unmarshalBasicRetentionPolicy(*v)
if err != nil {
return err
}
spp.RetentionPolicy = retentionPolicy
}
}
}
return nil
}
// TargetAFSRestoreInfo target Azure File Share Info.
type TargetAFSRestoreInfo struct {
// Name - File share name
Name *string `json:"name,omitempty"`
// TargetResourceID - Target file share resource ARM ID
TargetResourceID *string `json:"targetResourceId,omitempty"`
}
// TargetRestoreInfo details about target workload during restore operation.
type TargetRestoreInfo struct {
// OverwriteOption - Can Overwrite if Target DataBase already exists. Possible values include: 'OverwriteOptionsInvalid', 'OverwriteOptionsFailOnConflict', 'OverwriteOptionsOverwrite'
OverwriteOption OverwriteOptions `json:"overwriteOption,omitempty"`
// ContainerID - Resource Id name of the container in which Target DataBase resides
ContainerID *string `json:"containerId,omitempty"`
// DatabaseName - Database name SQL InstanceName/DataBaseName
DatabaseName *string `json:"databaseName,omitempty"`
}
// TokenInformation the token information details.
type TokenInformation struct {
autorest.Response `json:"-"`
// Token - Token value.
Token *string `json:"token,omitempty"`
// ExpiryTimeInUtcTicks - Expiry time of token.
ExpiryTimeInUtcTicks *int64 `json:"expiryTimeInUtcTicks,omitempty"`
// SecurityPIN - Security PIN
SecurityPIN *string `json:"securityPIN,omitempty"`
}
// WeeklyRetentionFormat weekly retention format.
type WeeklyRetentionFormat struct {
// DaysOfTheWeek - List of days of the week.
DaysOfTheWeek *[]DayOfWeek `json:"daysOfTheWeek,omitempty"`
// WeeksOfTheMonth - List of weeks of month.
WeeksOfTheMonth *[]WeekOfMonth `json:"weeksOfTheMonth,omitempty"`
}
// WeeklyRetentionSchedule weekly retention schedule.
type WeeklyRetentionSchedule struct {
// DaysOfTheWeek - List of days of week for weekly retention policy.
DaysOfTheWeek *[]DayOfWeek `json:"daysOfTheWeek,omitempty"`
// RetentionTimes - Retention times of retention policy.
RetentionTimes *[]date.Time `json:"retentionTimes,omitempty"`
// RetentionDuration - Retention duration of retention Policy.
RetentionDuration *RetentionDuration `json:"retentionDuration,omitempty"`
}
// WorkloadInquiryDetails details of an inquired protectable item.
type WorkloadInquiryDetails struct {
// Type - Type of the Workload such as SQL, Oracle etc.
Type *string `json:"type,omitempty"`
// ItemCount - Contains the protectable item Count inside this Container.
ItemCount *int64 `json:"itemCount,omitempty"`
// InquiryValidation - Inquiry validation such as permissions and other backup validations.
InquiryValidation *InquiryValidation `json:"inquiryValidation,omitempty"`
}
// BasicWorkloadItem base class for backup item. Workload-specific backup items are derived from this class.
type BasicWorkloadItem interface {
AsAzureVMWorkloadItem() (*AzureVMWorkloadItem, bool)
AsBasicAzureVMWorkloadItem() (BasicAzureVMWorkloadItem, bool)
AsAzureVMWorkloadSQLDatabaseWorkloadItem() (*AzureVMWorkloadSQLDatabaseWorkloadItem, bool)
AsAzureVMWorkloadSQLInstanceWorkloadItem() (*AzureVMWorkloadSQLInstanceWorkloadItem, bool)
AsWorkloadItem() (*WorkloadItem, bool)
}
// WorkloadItem base class for backup item. Workload-specific backup items are derived from this class.
type WorkloadItem struct {
// BackupManagementType - Type of backup managemenent to backup an item.
BackupManagementType *string `json:"backupManagementType,omitempty"`
// WorkloadType - Type of workload for the backup management
WorkloadType *string `json:"workloadType,omitempty"`
// FriendlyName - Friendly name of the backup item.
FriendlyName *string `json:"friendlyName,omitempty"`
// ProtectionState - State of the back up item. Possible values include: 'ProtectionStatusInvalid', 'ProtectionStatusNotProtected', 'ProtectionStatusProtecting', 'ProtectionStatusProtected', 'ProtectionStatusProtectionFailed'
ProtectionState ProtectionStatus `json:"protectionState,omitempty"`
// WorkloadItemType - Possible values include: 'WorkloadItemTypeWorkloadItem', 'WorkloadItemTypeAzureVMWorkloadItem', 'WorkloadItemTypeSQLDataBase1', 'WorkloadItemTypeSQLInstance1'
WorkloadItemType WorkloadItemTypeBasicWorkloadItem `json:"workloadItemType,omitempty"`
}
func unmarshalBasicWorkloadItem(body []byte) (BasicWorkloadItem, error) {
var m map[string]interface{}
err := json.Unmarshal(body, &m)
if err != nil {
return nil, err
}
switch m["workloadItemType"] {
case string(WorkloadItemTypeAzureVMWorkloadItem):
var avwi AzureVMWorkloadItem
err := json.Unmarshal(body, &avwi)
return avwi, err
case string(WorkloadItemTypeSQLDataBase1):
var avwsdwi AzureVMWorkloadSQLDatabaseWorkloadItem
err := json.Unmarshal(body, &avwsdwi)
return avwsdwi, err
case string(WorkloadItemTypeSQLInstance1):
var avwsiwi AzureVMWorkloadSQLInstanceWorkloadItem
err := json.Unmarshal(body, &avwsiwi)
return avwsiwi, err
default:
var wi WorkloadItem
err := json.Unmarshal(body, &wi)
return wi, err
}
}
func unmarshalBasicWorkloadItemArray(body []byte) ([]BasicWorkloadItem, error) {
var rawMessages []*json.RawMessage
err := json.Unmarshal(body, &rawMessages)
if err != nil {
return nil, err
}
wiArray := make([]BasicWorkloadItem, len(rawMessages))
for index, rawMessage := range rawMessages {
wi, err := unmarshalBasicWorkloadItem(*rawMessage)
if err != nil {
return nil, err
}
wiArray[index] = wi
}
return wiArray, nil
}
// MarshalJSON is the custom marshaler for WorkloadItem.
func (wi WorkloadItem) MarshalJSON() ([]byte, error) {
wi.WorkloadItemType = WorkloadItemTypeWorkloadItem
objectMap := make(map[string]interface{})
if wi.BackupManagementType != nil {
objectMap["backupManagementType"] = wi.BackupManagementType
}
if wi.WorkloadType != nil {
objectMap["workloadType"] = wi.WorkloadType
}
if wi.FriendlyName != nil {
objectMap["friendlyName"] = wi.FriendlyName
}
if wi.ProtectionState != "" {
objectMap["protectionState"] = wi.ProtectionState
}
if wi.WorkloadItemType != "" {
objectMap["workloadItemType"] = wi.WorkloadItemType
}
return json.Marshal(objectMap)
}
// AsAzureVMWorkloadItem is the BasicWorkloadItem implementation for WorkloadItem.
func (wi WorkloadItem) AsAzureVMWorkloadItem() (*AzureVMWorkloadItem, bool) {
return nil, false
}
// AsBasicAzureVMWorkloadItem is the BasicWorkloadItem implementation for WorkloadItem.
func (wi WorkloadItem) AsBasicAzureVMWorkloadItem() (BasicAzureVMWorkloadItem, bool) {
return nil, false
}
// AsAzureVMWorkloadSQLDatabaseWorkloadItem is the BasicWorkloadItem implementation for WorkloadItem.
func (wi WorkloadItem) AsAzureVMWorkloadSQLDatabaseWorkloadItem() (*AzureVMWorkloadSQLDatabaseWorkloadItem, bool) {
return nil, false
}
// AsAzureVMWorkloadSQLInstanceWorkloadItem is the BasicWorkloadItem implementation for WorkloadItem.
func (wi WorkloadItem) AsAzureVMWorkloadSQLInstanceWorkloadItem() (*AzureVMWorkloadSQLInstanceWorkloadItem, bool) {
return nil, false
}
// AsWorkloadItem is the BasicWorkloadItem implementation for WorkloadItem.
func (wi WorkloadItem) AsWorkloadItem() (*WorkloadItem, bool) {
return &wi, true
}
// AsBasicWorkloadItem is the BasicWorkloadItem implementation for WorkloadItem.
func (wi WorkloadItem) AsBasicWorkloadItem() (BasicWorkloadItem, bool) {
return &wi, true
}
// WorkloadItemResource base class for backup item. Workload-specific backup items are derived from this class.
type WorkloadItemResource struct {
// Properties - WorkloadItemResource properties
Properties BasicWorkloadItem `json:"properties,omitempty"`
// ID - Resource Id represents the complete path to the resource.
ID *string `json:"id,omitempty"`
// Name - Resource name associated with the resource.
Name *string `json:"name,omitempty"`
// Type - Resource type represents the complete path of the form Namespace/ResourceType/ResourceType/...
Type *string `json:"type,omitempty"`
// Location - Resource location.
Location *string `json:"location,omitempty"`
// Tags - Resource tags.
Tags map[string]*string `json:"tags"`
// ETag - Optional ETag.
ETag *string `json:"eTag,omitempty"`
}
// MarshalJSON is the custom marshaler for WorkloadItemResource.
func (wir WorkloadItemResource) MarshalJSON() ([]byte, error) {
objectMap := make(map[string]interface{})
objectMap["properties"] = wir.Properties
if wir.ID != nil {
objectMap["id"] = wir.ID
}
if wir.Name != nil {
objectMap["name"] = wir.Name
}
if wir.Type != nil {
objectMap["type"] = wir.Type
}
if wir.Location != nil {
objectMap["location"] = wir.Location
}
if wir.Tags != nil {
objectMap["tags"] = wir.Tags
}
if wir.ETag != nil {
objectMap["eTag"] = wir.ETag
}
return json.Marshal(objectMap)
}
// UnmarshalJSON is the custom unmarshaler for WorkloadItemResource struct.
func (wir *WorkloadItemResource) UnmarshalJSON(body []byte) error {
var m map[string]*json.RawMessage
err := json.Unmarshal(body, &m)
if err != nil {
return err
}
for k, v := range m {
switch k {
case "properties":
if v != nil {
properties, err := unmarshalBasicWorkloadItem(*v)
if err != nil {
return err
}
wir.Properties = properties
}
case "id":
if v != nil {
var ID string
err = json.Unmarshal(*v, &ID)
if err != nil {
return err
}
wir.ID = &ID
}
case "name":
if v != nil {
var name string
err = json.Unmarshal(*v, &name)
if err != nil {
return err
}
wir.Name = &name
}
case "type":
if v != nil {
var typeVar string
err = json.Unmarshal(*v, &typeVar)
if err != nil {
return err
}
wir.Type = &typeVar
}
case "location":
if v != nil {
var location string
err = json.Unmarshal(*v, &location)
if err != nil {
return err
}
wir.Location = &location
}
case "tags":
if v != nil {
var tags map[string]*string
err = json.Unmarshal(*v, &tags)
if err != nil {
return err
}
wir.Tags = tags
}
case "eTag":
if v != nil {
var eTag string
err = json.Unmarshal(*v, &eTag)
if err != nil {
return err
}
wir.ETag = &eTag
}
}
}
return nil
}
// WorkloadItemResourceList list of WorkloadItem resources
type WorkloadItemResourceList struct {
autorest.Response `json:"-"`
// Value - List of resources.
Value *[]WorkloadItemResource `json:"value,omitempty"`
// NextLink - The uri to fetch the next page of resources. Call ListNext() fetches next page of resources.
NextLink *string `json:"nextLink,omitempty"`
}
// WorkloadItemResourceListIterator provides access to a complete listing of WorkloadItemResource values.
type WorkloadItemResourceListIterator struct {
i int
page WorkloadItemResourceListPage
}
// Next advances to the next value. If there was an error making
// the request the iterator does not advance and the error is returned.
func (iter *WorkloadItemResourceListIterator) Next() error {
iter.i++
if iter.i < len(iter.page.Values()) {
return nil
}
err := iter.page.Next()
if err != nil {
iter.i--
return err
}
iter.i = 0
return nil
}
// NotDone returns true if the enumeration should be started or is not yet complete.
func (iter WorkloadItemResourceListIterator) NotDone() bool {
return iter.page.NotDone() && iter.i < len(iter.page.Values())
}
// Response returns the raw server response from the last page request.
func (iter WorkloadItemResourceListIterator) Response() WorkloadItemResourceList {
return iter.page.Response()
}
// Value returns the current value or a zero-initialized value if the
// iterator has advanced beyond the end of the collection.
func (iter WorkloadItemResourceListIterator) Value() WorkloadItemResource {
if !iter.page.NotDone() {
return WorkloadItemResource{}
}
return iter.page.Values()[iter.i]
}
// IsEmpty returns true if the ListResult contains no values.
func (wirl WorkloadItemResourceList) IsEmpty() bool {
return wirl.Value == nil || len(*wirl.Value) == 0
}
// workloadItemResourceListPreparer prepares a request to retrieve the next set of results.
// It returns nil if no more results exist.
func (wirl WorkloadItemResourceList) workloadItemResourceListPreparer() (*http.Request, error) {
if wirl.NextLink == nil || len(to.String(wirl.NextLink)) < 1 {
return nil, nil
}
return autorest.Prepare(&http.Request{},
autorest.AsJSON(),
autorest.AsGet(),
autorest.WithBaseURL(to.String(wirl.NextLink)))
}
// WorkloadItemResourceListPage contains a page of WorkloadItemResource values.
type WorkloadItemResourceListPage struct {
fn func(WorkloadItemResourceList) (WorkloadItemResourceList, error)
wirl WorkloadItemResourceList
}
// Next advances to the next page of values. If there was an error making
// the request the page does not advance and the error is returned.
func (page *WorkloadItemResourceListPage) Next() error {
next, err := page.fn(page.wirl)
if err != nil {
return err
}
page.wirl = next
return nil
}
// NotDone returns true if the page enumeration should be started or is not yet complete.
func (page WorkloadItemResourceListPage) NotDone() bool {
return !page.wirl.IsEmpty()
}
// Response returns the raw server response from the last page request.
func (page WorkloadItemResourceListPage) Response() WorkloadItemResourceList {
return page.wirl
}
// Values returns the slice of values for the current page or nil if there are no values.
func (page WorkloadItemResourceListPage) Values() []WorkloadItemResource {
if page.wirl.IsEmpty() {
return nil
}
return *page.wirl.Value
}
// BasicWorkloadProtectableItem base class for backup item. Workload-specific backup items are derived from this class.
type BasicWorkloadProtectableItem interface {
AsAzureFileShareProtectableItem() (*AzureFileShareProtectableItem, bool)
AsAzureIaaSClassicComputeVMProtectableItem() (*AzureIaaSClassicComputeVMProtectableItem, bool)
AsAzureIaaSComputeVMProtectableItem() (*AzureIaaSComputeVMProtectableItem, bool)
AsAzureVMWorkloadProtectableItem() (*AzureVMWorkloadProtectableItem, bool)
AsBasicAzureVMWorkloadProtectableItem() (BasicAzureVMWorkloadProtectableItem, bool)
AsAzureVMWorkloadSQLAvailabilityGroupProtectableItem() (*AzureVMWorkloadSQLAvailabilityGroupProtectableItem, bool)
AsAzureVMWorkloadSQLDatabaseProtectableItem() (*AzureVMWorkloadSQLDatabaseProtectableItem, bool)
AsAzureVMWorkloadSQLInstanceProtectableItem() (*AzureVMWorkloadSQLInstanceProtectableItem, bool)
AsIaaSVMProtectableItem() (*IaaSVMProtectableItem, bool)
AsBasicIaaSVMProtectableItem() (BasicIaaSVMProtectableItem, bool)
AsWorkloadProtectableItem() (*WorkloadProtectableItem, bool)
}
// WorkloadProtectableItem base class for backup item. Workload-specific backup items are derived from this class.
type WorkloadProtectableItem struct {
// BackupManagementType - Type of backup managemenent to backup an item.
BackupManagementType *string `json:"backupManagementType,omitempty"`
// WorkloadType - Type of workload for the backup management
WorkloadType *string `json:"workloadType,omitempty"`
// FriendlyName - Friendly name of the backup item.
FriendlyName *string `json:"friendlyName,omitempty"`
// ProtectionState - State of the back up item. Possible values include: 'ProtectionStatusInvalid', 'ProtectionStatusNotProtected', 'ProtectionStatusProtecting', 'ProtectionStatusProtected', 'ProtectionStatusProtectionFailed'
ProtectionState ProtectionStatus `json:"protectionState,omitempty"`
// ProtectableItemType - Possible values include: 'ProtectableItemTypeWorkloadProtectableItem', 'ProtectableItemTypeAzureFileShare', 'ProtectableItemTypeMicrosoftClassicComputevirtualMachines', 'ProtectableItemTypeMicrosoftComputevirtualMachines', 'ProtectableItemTypeAzureVMWorkloadProtectableItem', 'ProtectableItemTypeSQLAvailabilityGroupContainer', 'ProtectableItemTypeSQLDataBase', 'ProtectableItemTypeSQLInstance', 'ProtectableItemTypeIaaSVMProtectableItem'
ProtectableItemType ProtectableItemType `json:"protectableItemType,omitempty"`
}
func unmarshalBasicWorkloadProtectableItem(body []byte) (BasicWorkloadProtectableItem, error) {
var m map[string]interface{}
err := json.Unmarshal(body, &m)
if err != nil {
return nil, err
}
switch m["protectableItemType"] {
case string(ProtectableItemTypeAzureFileShare):
var afspi AzureFileShareProtectableItem
err := json.Unmarshal(body, &afspi)
return afspi, err
case string(ProtectableItemTypeMicrosoftClassicComputevirtualMachines):
var aisccvpi AzureIaaSClassicComputeVMProtectableItem
err := json.Unmarshal(body, &aisccvpi)
return aisccvpi, err
case string(ProtectableItemTypeMicrosoftComputevirtualMachines):
var aiscvpi AzureIaaSComputeVMProtectableItem
err := json.Unmarshal(body, &aiscvpi)
return aiscvpi, err
case string(ProtectableItemTypeAzureVMWorkloadProtectableItem):
var avwpi AzureVMWorkloadProtectableItem
err := json.Unmarshal(body, &avwpi)
return avwpi, err
case string(ProtectableItemTypeSQLAvailabilityGroupContainer):
var avwsagpi AzureVMWorkloadSQLAvailabilityGroupProtectableItem
err := json.Unmarshal(body, &avwsagpi)
return avwsagpi, err
case string(ProtectableItemTypeSQLDataBase):
var avwsdpi AzureVMWorkloadSQLDatabaseProtectableItem
err := json.Unmarshal(body, &avwsdpi)
return avwsdpi, err
case string(ProtectableItemTypeSQLInstance):
var avwsipi AzureVMWorkloadSQLInstanceProtectableItem
err := json.Unmarshal(body, &avwsipi)
return avwsipi, err
case string(ProtectableItemTypeIaaSVMProtectableItem):
var ispi IaaSVMProtectableItem
err := json.Unmarshal(body, &ispi)
return ispi, err
default:
var wpi WorkloadProtectableItem
err := json.Unmarshal(body, &wpi)
return wpi, err
}
}
func unmarshalBasicWorkloadProtectableItemArray(body []byte) ([]BasicWorkloadProtectableItem, error) {
var rawMessages []*json.RawMessage
err := json.Unmarshal(body, &rawMessages)
if err != nil {
return nil, err
}
wpiArray := make([]BasicWorkloadProtectableItem, len(rawMessages))
for index, rawMessage := range rawMessages {
wpi, err := unmarshalBasicWorkloadProtectableItem(*rawMessage)
if err != nil {
return nil, err
}
wpiArray[index] = wpi
}
return wpiArray, nil
}
// MarshalJSON is the custom marshaler for WorkloadProtectableItem.
func (wpi WorkloadProtectableItem) MarshalJSON() ([]byte, error) {
wpi.ProtectableItemType = ProtectableItemTypeWorkloadProtectableItem
objectMap := make(map[string]interface{})
if wpi.BackupManagementType != nil {
objectMap["backupManagementType"] = wpi.BackupManagementType
}
if wpi.WorkloadType != nil {
objectMap["workloadType"] = wpi.WorkloadType
}
if wpi.FriendlyName != nil {
objectMap["friendlyName"] = wpi.FriendlyName
}
if wpi.ProtectionState != "" {
objectMap["protectionState"] = wpi.ProtectionState
}
if wpi.ProtectableItemType != "" {
objectMap["protectableItemType"] = wpi.ProtectableItemType
}
return json.Marshal(objectMap)
}
// AsAzureFileShareProtectableItem is the BasicWorkloadProtectableItem implementation for WorkloadProtectableItem.
func (wpi WorkloadProtectableItem) AsAzureFileShareProtectableItem() (*AzureFileShareProtectableItem, bool) {
return nil, false
}
// AsAzureIaaSClassicComputeVMProtectableItem is the BasicWorkloadProtectableItem implementation for WorkloadProtectableItem.
func (wpi WorkloadProtectableItem) AsAzureIaaSClassicComputeVMProtectableItem() (*AzureIaaSClassicComputeVMProtectableItem, bool) {
return nil, false
}
// AsAzureIaaSComputeVMProtectableItem is the BasicWorkloadProtectableItem implementation for WorkloadProtectableItem.
func (wpi WorkloadProtectableItem) AsAzureIaaSComputeVMProtectableItem() (*AzureIaaSComputeVMProtectableItem, bool) {
return nil, false
}
// AsAzureVMWorkloadProtectableItem is the BasicWorkloadProtectableItem implementation for WorkloadProtectableItem.
func (wpi WorkloadProtectableItem) AsAzureVMWorkloadProtectableItem() (*AzureVMWorkloadProtectableItem, bool) {
return nil, false
}
// AsBasicAzureVMWorkloadProtectableItem is the BasicWorkloadProtectableItem implementation for WorkloadProtectableItem.
func (wpi WorkloadProtectableItem) AsBasicAzureVMWorkloadProtectableItem() (BasicAzureVMWorkloadProtectableItem, bool) {
return nil, false
}
// AsAzureVMWorkloadSQLAvailabilityGroupProtectableItem is the BasicWorkloadProtectableItem implementation for WorkloadProtectableItem.
func (wpi WorkloadProtectableItem) AsAzureVMWorkloadSQLAvailabilityGroupProtectableItem() (*AzureVMWorkloadSQLAvailabilityGroupProtectableItem, bool) {
return nil, false
}
// AsAzureVMWorkloadSQLDatabaseProtectableItem is the BasicWorkloadProtectableItem implementation for WorkloadProtectableItem.
func (wpi WorkloadProtectableItem) AsAzureVMWorkloadSQLDatabaseProtectableItem() (*AzureVMWorkloadSQLDatabaseProtectableItem, bool) {
return nil, false
}
// AsAzureVMWorkloadSQLInstanceProtectableItem is the BasicWorkloadProtectableItem implementation for WorkloadProtectableItem.
func (wpi WorkloadProtectableItem) AsAzureVMWorkloadSQLInstanceProtectableItem() (*AzureVMWorkloadSQLInstanceProtectableItem, bool) {
return nil, false
}
// AsIaaSVMProtectableItem is the BasicWorkloadProtectableItem implementation for WorkloadProtectableItem.
func (wpi WorkloadProtectableItem) AsIaaSVMProtectableItem() (*IaaSVMProtectableItem, bool) {
return nil, false
}
// AsBasicIaaSVMProtectableItem is the BasicWorkloadProtectableItem implementation for WorkloadProtectableItem.
func (wpi WorkloadProtectableItem) AsBasicIaaSVMProtectableItem() (BasicIaaSVMProtectableItem, bool) {
return nil, false
}
// AsWorkloadProtectableItem is the BasicWorkloadProtectableItem implementation for WorkloadProtectableItem.
func (wpi WorkloadProtectableItem) AsWorkloadProtectableItem() (*WorkloadProtectableItem, bool) {
return &wpi, true
}
// AsBasicWorkloadProtectableItem is the BasicWorkloadProtectableItem implementation for WorkloadProtectableItem.
func (wpi WorkloadProtectableItem) AsBasicWorkloadProtectableItem() (BasicWorkloadProtectableItem, bool) {
return &wpi, true
}
// WorkloadProtectableItemResource base class for backup item. Workload-specific backup items are derived from this
// class.
type WorkloadProtectableItemResource struct {
// Properties - WorkloadProtectableItemResource properties
Properties BasicWorkloadProtectableItem `json:"properties,omitempty"`
// ID - Resource Id represents the complete path to the resource.
ID *string `json:"id,omitempty"`
// Name - Resource name associated with the resource.
Name *string `json:"name,omitempty"`
// Type - Resource type represents the complete path of the form Namespace/ResourceType/ResourceType/...
Type *string `json:"type,omitempty"`
// Location - Resource location.
Location *string `json:"location,omitempty"`
// Tags - Resource tags.
Tags map[string]*string `json:"tags"`
// ETag - Optional ETag.
ETag *string `json:"eTag,omitempty"`
}
// MarshalJSON is the custom marshaler for WorkloadProtectableItemResource.
func (wpir WorkloadProtectableItemResource) MarshalJSON() ([]byte, error) {
objectMap := make(map[string]interface{})
objectMap["properties"] = wpir.Properties
if wpir.ID != nil {
objectMap["id"] = wpir.ID
}
if wpir.Name != nil {
objectMap["name"] = wpir.Name
}
if wpir.Type != nil {
objectMap["type"] = wpir.Type
}
if wpir.Location != nil {
objectMap["location"] = wpir.Location
}
if wpir.Tags != nil {
objectMap["tags"] = wpir.Tags
}
if wpir.ETag != nil {
objectMap["eTag"] = wpir.ETag
}
return json.Marshal(objectMap)
}
// UnmarshalJSON is the custom unmarshaler for WorkloadProtectableItemResource struct.
func (wpir *WorkloadProtectableItemResource) UnmarshalJSON(body []byte) error {
var m map[string]*json.RawMessage
err := json.Unmarshal(body, &m)
if err != nil {
return err
}
for k, v := range m {
switch k {
case "properties":
if v != nil {
properties, err := unmarshalBasicWorkloadProtectableItem(*v)
if err != nil {
return err
}
wpir.Properties = properties
}
case "id":
if v != nil {
var ID string
err = json.Unmarshal(*v, &ID)
if err != nil {
return err
}
wpir.ID = &ID
}
case "name":
if v != nil {
var name string
err = json.Unmarshal(*v, &name)
if err != nil {
return err
}
wpir.Name = &name
}
case "type":
if v != nil {
var typeVar string
err = json.Unmarshal(*v, &typeVar)
if err != nil {
return err
}
wpir.Type = &typeVar
}
case "location":
if v != nil {
var location string
err = json.Unmarshal(*v, &location)
if err != nil {
return err
}
wpir.Location = &location
}
case "tags":
if v != nil {
var tags map[string]*string
err = json.Unmarshal(*v, &tags)
if err != nil {
return err
}
wpir.Tags = tags
}
case "eTag":
if v != nil {
var eTag string
err = json.Unmarshal(*v, &eTag)
if err != nil {
return err
}
wpir.ETag = &eTag
}
}
}
return nil
}
// WorkloadProtectableItemResourceList list of WorkloadProtectableItem resources
type WorkloadProtectableItemResourceList struct {
autorest.Response `json:"-"`
// Value - List of resources.
Value *[]WorkloadProtectableItemResource `json:"value,omitempty"`
// NextLink - The uri to fetch the next page of resources. Call ListNext() fetches next page of resources.
NextLink *string `json:"nextLink,omitempty"`
}
// WorkloadProtectableItemResourceListIterator provides access to a complete listing of
// WorkloadProtectableItemResource values.
type WorkloadProtectableItemResourceListIterator struct {
i int
page WorkloadProtectableItemResourceListPage
}
// Next advances to the next value. If there was an error making
// the request the iterator does not advance and the error is returned.
func (iter *WorkloadProtectableItemResourceListIterator) Next() error {
iter.i++
if iter.i < len(iter.page.Values()) {
return nil
}
err := iter.page.Next()
if err != nil {
iter.i--
return err
}
iter.i = 0
return nil
}
// NotDone returns true if the enumeration should be started or is not yet complete.
func (iter WorkloadProtectableItemResourceListIterator) NotDone() bool {
return iter.page.NotDone() && iter.i < len(iter.page.Values())
}
// Response returns the raw server response from the last page request.
func (iter WorkloadProtectableItemResourceListIterator) Response() WorkloadProtectableItemResourceList {
return iter.page.Response()
}
// Value returns the current value or a zero-initialized value if the
// iterator has advanced beyond the end of the collection.
func (iter WorkloadProtectableItemResourceListIterator) Value() WorkloadProtectableItemResource {
if !iter.page.NotDone() {
return WorkloadProtectableItemResource{}
}
return iter.page.Values()[iter.i]
}
// IsEmpty returns true if the ListResult contains no values.
func (wpirl WorkloadProtectableItemResourceList) IsEmpty() bool {
return wpirl.Value == nil || len(*wpirl.Value) == 0
}
// workloadProtectableItemResourceListPreparer prepares a request to retrieve the next set of results.
// It returns nil if no more results exist.
func (wpirl WorkloadProtectableItemResourceList) workloadProtectableItemResourceListPreparer() (*http.Request, error) {
if wpirl.NextLink == nil || len(to.String(wpirl.NextLink)) < 1 {
return nil, nil
}
return autorest.Prepare(&http.Request{},
autorest.AsJSON(),
autorest.AsGet(),
autorest.WithBaseURL(to.String(wpirl.NextLink)))
}
// WorkloadProtectableItemResourceListPage contains a page of WorkloadProtectableItemResource values.
type WorkloadProtectableItemResourceListPage struct {
fn func(WorkloadProtectableItemResourceList) (WorkloadProtectableItemResourceList, error)
wpirl WorkloadProtectableItemResourceList
}
// Next advances to the next page of values. If there was an error making
// the request the page does not advance and the error is returned.
func (page *WorkloadProtectableItemResourceListPage) Next() error {
next, err := page.fn(page.wpirl)
if err != nil {
return err
}
page.wpirl = next
return nil
}
// NotDone returns true if the page enumeration should be started or is not yet complete.
func (page WorkloadProtectableItemResourceListPage) NotDone() bool {
return !page.wpirl.IsEmpty()
}
// Response returns the raw server response from the last page request.
func (page WorkloadProtectableItemResourceListPage) Response() WorkloadProtectableItemResourceList {
return page.wpirl
}
// Values returns the slice of values for the current page or nil if there are no values.
func (page WorkloadProtectableItemResourceListPage) Values() []WorkloadProtectableItemResource {
if page.wpirl.IsEmpty() {
return nil
}
return *page.wpirl.Value
}
// YearlyRetentionSchedule yearly retention schedule.
type YearlyRetentionSchedule struct {
// RetentionScheduleFormatType - Retention schedule format for yearly retention policy. Possible values include: 'RetentionScheduleFormatInvalid', 'RetentionScheduleFormatDaily', 'RetentionScheduleFormatWeekly'
RetentionScheduleFormatType RetentionScheduleFormat `json:"retentionScheduleFormatType,omitempty"`
// MonthsOfYear - List of months of year of yearly retention policy.
MonthsOfYear *[]MonthOfYear `json:"monthsOfYear,omitempty"`
// RetentionScheduleDaily - Daily retention format for yearly retention policy.
RetentionScheduleDaily *DailyRetentionFormat `json:"retentionScheduleDaily,omitempty"`
// RetentionScheduleWeekly - Weekly retention format for yearly retention policy.
RetentionScheduleWeekly *WeeklyRetentionFormat `json:"retentionScheduleWeekly,omitempty"`
// RetentionTimes - Retention times of retention policy.
RetentionTimes *[]date.Time `json:"retentionTimes,omitempty"`
// RetentionDuration - Retention duration of retention Policy.
RetentionDuration *RetentionDuration `json:"retentionDuration,omitempty"`
}