forked from TrueCloudLab/restic
61cb1cc6f8
This includes github.com/kurin/blazer 0.2.0, which resolves #1291
4957 lines
189 KiB
Go
Executable file
4957 lines
189 KiB
Go
Executable file
package recoveryservicesbackup
|
|
|
|
// 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"
|
|
"errors"
|
|
"github.com/Azure/go-autorest/autorest"
|
|
"github.com/Azure/go-autorest/autorest/date"
|
|
"github.com/Azure/go-autorest/autorest/to"
|
|
"net/http"
|
|
)
|
|
|
|
// BackupEngineType enumerates the values for backup engine type.
|
|
type BackupEngineType string
|
|
|
|
const (
|
|
// BackupEngineTypeAzureBackupServerEngine specifies the backup engine type azure backup server engine state for backup
|
|
// engine type.
|
|
BackupEngineTypeAzureBackupServerEngine BackupEngineType = "AzureBackupServerEngine"
|
|
// BackupEngineTypeDpmBackupEngine specifies the backup engine type dpm backup engine state for backup engine type.
|
|
BackupEngineTypeDpmBackupEngine BackupEngineType = "DpmBackupEngine"
|
|
)
|
|
|
|
// BackupItemType enumerates the values for backup item type.
|
|
type BackupItemType string
|
|
|
|
const (
|
|
// AzureSQLDb specifies the azure sql db state for backup item type.
|
|
AzureSQLDb BackupItemType = "AzureSqlDb"
|
|
// Client specifies the client state for backup item type.
|
|
Client BackupItemType = "Client"
|
|
// Exchange specifies the exchange state for backup item type.
|
|
Exchange BackupItemType = "Exchange"
|
|
// FileFolder specifies the file folder state for backup item type.
|
|
FileFolder BackupItemType = "FileFolder"
|
|
// GenericDataSource specifies the generic data source state for backup item type.
|
|
GenericDataSource BackupItemType = "GenericDataSource"
|
|
// Invalid specifies the invalid state for backup item type.
|
|
Invalid BackupItemType = "Invalid"
|
|
// Sharepoint specifies the sharepoint state for backup item type.
|
|
Sharepoint BackupItemType = "Sharepoint"
|
|
// SQLDB specifies the sqldb state for backup item type.
|
|
SQLDB BackupItemType = "SQLDB"
|
|
// SystemState specifies the system state state for backup item type.
|
|
SystemState BackupItemType = "SystemState"
|
|
// VM specifies the vm state for backup item type.
|
|
VM BackupItemType = "VM"
|
|
// VMwareVM specifies the v mware vm state for backup item type.
|
|
VMwareVM BackupItemType = "VMwareVM"
|
|
)
|
|
|
|
// BackupManagementType enumerates the values for backup management type.
|
|
type BackupManagementType string
|
|
|
|
const (
|
|
// BackupManagementTypeAzureBackupServer specifies the backup management type azure backup server state for backup
|
|
// management type.
|
|
BackupManagementTypeAzureBackupServer BackupManagementType = "AzureBackupServer"
|
|
// BackupManagementTypeAzureIaasVM specifies the backup management type azure iaas vm state for backup management type.
|
|
BackupManagementTypeAzureIaasVM BackupManagementType = "AzureIaasVM"
|
|
// BackupManagementTypeAzureSQL specifies the backup management type azure sql state for backup management type.
|
|
BackupManagementTypeAzureSQL BackupManagementType = "AzureSql"
|
|
// BackupManagementTypeDPM specifies the backup management type dpm state for backup management type.
|
|
BackupManagementTypeDPM BackupManagementType = "DPM"
|
|
// BackupManagementTypeInvalid specifies the backup management type invalid state for backup management type.
|
|
BackupManagementTypeInvalid BackupManagementType = "Invalid"
|
|
// BackupManagementTypeMAB specifies the backup management type mab state for backup management type.
|
|
BackupManagementTypeMAB BackupManagementType = "MAB"
|
|
)
|
|
|
|
// ContainerType enumerates the values for container type.
|
|
type ContainerType string
|
|
|
|
const (
|
|
// ContainerTypeAzureBackupServerContainer specifies the container type azure backup server container state for
|
|
// container type.
|
|
ContainerTypeAzureBackupServerContainer ContainerType = "AzureBackupServerContainer"
|
|
// ContainerTypeAzureSQLContainer specifies the container type azure sql container state for container type.
|
|
ContainerTypeAzureSQLContainer ContainerType = "AzureSqlContainer"
|
|
// ContainerTypeCluster specifies the container type cluster state for container type.
|
|
ContainerTypeCluster ContainerType = "Cluster"
|
|
// ContainerTypeDPMContainer specifies the container type dpm container state for container type.
|
|
ContainerTypeDPMContainer ContainerType = "DPMContainer"
|
|
// ContainerTypeIaasVMContainer specifies the container type iaas vm container state for container type.
|
|
ContainerTypeIaasVMContainer ContainerType = "IaasVMContainer"
|
|
// ContainerTypeIaasVMServiceContainer specifies the container type iaas vm service container state for container type.
|
|
ContainerTypeIaasVMServiceContainer ContainerType = "IaasVMServiceContainer"
|
|
// ContainerTypeInvalid specifies the container type invalid state for container type.
|
|
ContainerTypeInvalid ContainerType = "Invalid"
|
|
// ContainerTypeMABContainer specifies the container type mab container state for container type.
|
|
ContainerTypeMABContainer ContainerType = "MABContainer"
|
|
// ContainerTypeUnknown specifies the container type unknown state for container type.
|
|
ContainerTypeUnknown ContainerType = "Unknown"
|
|
// ContainerTypeVCenter specifies the container type v center state for container type.
|
|
ContainerTypeVCenter ContainerType = "VCenter"
|
|
// ContainerTypeWindows specifies the container type windows state for container type.
|
|
ContainerTypeWindows ContainerType = "Windows"
|
|
)
|
|
|
|
// DataSourceType enumerates the values for data source type.
|
|
type DataSourceType string
|
|
|
|
const (
|
|
// DataSourceTypeAzureSQLDb specifies the data source type azure sql db state for data source type.
|
|
DataSourceTypeAzureSQLDb DataSourceType = "AzureSqlDb"
|
|
// DataSourceTypeClient specifies the data source type client state for data source type.
|
|
DataSourceTypeClient DataSourceType = "Client"
|
|
// DataSourceTypeExchange specifies the data source type exchange state for data source type.
|
|
DataSourceTypeExchange DataSourceType = "Exchange"
|
|
// DataSourceTypeFileFolder specifies the data source type file folder state for data source type.
|
|
DataSourceTypeFileFolder DataSourceType = "FileFolder"
|
|
// DataSourceTypeGenericDataSource specifies the data source type generic data source state for data source type.
|
|
DataSourceTypeGenericDataSource DataSourceType = "GenericDataSource"
|
|
// DataSourceTypeInvalid specifies the data source type invalid state for data source type.
|
|
DataSourceTypeInvalid DataSourceType = "Invalid"
|
|
// DataSourceTypeSharepoint specifies the data source type sharepoint state for data source type.
|
|
DataSourceTypeSharepoint DataSourceType = "Sharepoint"
|
|
// DataSourceTypeSQLDB specifies the data source type sqldb state for data source type.
|
|
DataSourceTypeSQLDB DataSourceType = "SQLDB"
|
|
// DataSourceTypeSystemState specifies the data source type system state state for data source type.
|
|
DataSourceTypeSystemState DataSourceType = "SystemState"
|
|
// DataSourceTypeVM specifies the data source type vm state for data source type.
|
|
DataSourceTypeVM DataSourceType = "VM"
|
|
// DataSourceTypeVMwareVM specifies the data source type v mware vm state for data source type.
|
|
DataSourceTypeVMwareVM DataSourceType = "VMwareVM"
|
|
)
|
|
|
|
// DayOfWeek enumerates the values for day of week.
|
|
type DayOfWeek string
|
|
|
|
const (
|
|
// Friday specifies the friday state for day of week.
|
|
Friday DayOfWeek = "Friday"
|
|
// Monday specifies the monday state for day of week.
|
|
Monday DayOfWeek = "Monday"
|
|
// Saturday specifies the saturday state for day of week.
|
|
Saturday DayOfWeek = "Saturday"
|
|
// Sunday specifies the sunday state for day of week.
|
|
Sunday DayOfWeek = "Sunday"
|
|
// Thursday specifies the thursday state for day of week.
|
|
Thursday DayOfWeek = "Thursday"
|
|
// Tuesday specifies the tuesday state for day of week.
|
|
Tuesday DayOfWeek = "Tuesday"
|
|
// Wednesday specifies the wednesday state for day of week.
|
|
Wednesday DayOfWeek = "Wednesday"
|
|
)
|
|
|
|
// EnhancedSecurityState enumerates the values for enhanced security state.
|
|
type EnhancedSecurityState string
|
|
|
|
const (
|
|
// EnhancedSecurityStateDisabled specifies the enhanced security state disabled state for enhanced security state.
|
|
EnhancedSecurityStateDisabled EnhancedSecurityState = "Disabled"
|
|
// EnhancedSecurityStateEnabled specifies the enhanced security state enabled state for enhanced security state.
|
|
EnhancedSecurityStateEnabled EnhancedSecurityState = "Enabled"
|
|
// EnhancedSecurityStateInvalid specifies the enhanced security state invalid state for enhanced security state.
|
|
EnhancedSecurityStateInvalid EnhancedSecurityState = "Invalid"
|
|
)
|
|
|
|
// HealthState enumerates the values for health state.
|
|
type HealthState string
|
|
|
|
const (
|
|
// HealthStateActionRequired specifies the health state action required state for health state.
|
|
HealthStateActionRequired HealthState = "ActionRequired"
|
|
// HealthStateActionSuggested specifies the health state action suggested state for health state.
|
|
HealthStateActionSuggested HealthState = "ActionSuggested"
|
|
// HealthStateInvalid specifies the health state invalid state for health state.
|
|
HealthStateInvalid HealthState = "Invalid"
|
|
// HealthStatePassed specifies the health state passed state for health state.
|
|
HealthStatePassed HealthState = "Passed"
|
|
)
|
|
|
|
// HealthStatus enumerates the values for health status.
|
|
type HealthStatus string
|
|
|
|
const (
|
|
// HealthStatusActionRequired specifies the health status action required state for health status.
|
|
HealthStatusActionRequired HealthStatus = "ActionRequired"
|
|
// HealthStatusActionSuggested specifies the health status action suggested state for health status.
|
|
HealthStatusActionSuggested HealthStatus = "ActionSuggested"
|
|
// HealthStatusInvalid specifies the health status invalid state for health status.
|
|
HealthStatusInvalid HealthStatus = "Invalid"
|
|
// HealthStatusPassed specifies the health status passed state for health status.
|
|
HealthStatusPassed HealthStatus = "Passed"
|
|
)
|
|
|
|
// HTTPStatusCode enumerates the values for http status code.
|
|
type HTTPStatusCode string
|
|
|
|
const (
|
|
// Accepted specifies the accepted state for http status code.
|
|
Accepted HTTPStatusCode = "Accepted"
|
|
// Ambiguous specifies the ambiguous state for http status code.
|
|
Ambiguous HTTPStatusCode = "Ambiguous"
|
|
// BadGateway specifies the bad gateway state for http status code.
|
|
BadGateway HTTPStatusCode = "BadGateway"
|
|
// BadRequest specifies the bad request state for http status code.
|
|
BadRequest HTTPStatusCode = "BadRequest"
|
|
// Conflict specifies the conflict state for http status code.
|
|
Conflict HTTPStatusCode = "Conflict"
|
|
// Continue specifies the continue state for http status code.
|
|
Continue HTTPStatusCode = "Continue"
|
|
// Created specifies the created state for http status code.
|
|
Created HTTPStatusCode = "Created"
|
|
// ExpectationFailed specifies the expectation failed state for http status code.
|
|
ExpectationFailed HTTPStatusCode = "ExpectationFailed"
|
|
// Forbidden specifies the forbidden state for http status code.
|
|
Forbidden HTTPStatusCode = "Forbidden"
|
|
// Found specifies the found state for http status code.
|
|
Found HTTPStatusCode = "Found"
|
|
// GatewayTimeout specifies the gateway timeout state for http status code.
|
|
GatewayTimeout HTTPStatusCode = "GatewayTimeout"
|
|
// Gone specifies the gone state for http status code.
|
|
Gone HTTPStatusCode = "Gone"
|
|
// HTTPVersionNotSupported specifies the http version not supported state for http status code.
|
|
HTTPVersionNotSupported HTTPStatusCode = "HttpVersionNotSupported"
|
|
// InternalServerError specifies the internal server error state for http status code.
|
|
InternalServerError HTTPStatusCode = "InternalServerError"
|
|
// LengthRequired specifies the length required state for http status code.
|
|
LengthRequired HTTPStatusCode = "LengthRequired"
|
|
// MethodNotAllowed specifies the method not allowed state for http status code.
|
|
MethodNotAllowed HTTPStatusCode = "MethodNotAllowed"
|
|
// Moved specifies the moved state for http status code.
|
|
Moved HTTPStatusCode = "Moved"
|
|
// MovedPermanently specifies the moved permanently state for http status code.
|
|
MovedPermanently HTTPStatusCode = "MovedPermanently"
|
|
// MultipleChoices specifies the multiple choices state for http status code.
|
|
MultipleChoices HTTPStatusCode = "MultipleChoices"
|
|
// NoContent specifies the no content state for http status code.
|
|
NoContent HTTPStatusCode = "NoContent"
|
|
// NonAuthoritativeInformation specifies the non authoritative information state for http status code.
|
|
NonAuthoritativeInformation HTTPStatusCode = "NonAuthoritativeInformation"
|
|
// NotAcceptable specifies the not acceptable state for http status code.
|
|
NotAcceptable HTTPStatusCode = "NotAcceptable"
|
|
// NotFound specifies the not found state for http status code.
|
|
NotFound HTTPStatusCode = "NotFound"
|
|
// NotImplemented specifies the not implemented state for http status code.
|
|
NotImplemented HTTPStatusCode = "NotImplemented"
|
|
// NotModified specifies the not modified state for http status code.
|
|
NotModified HTTPStatusCode = "NotModified"
|
|
// OK specifies the ok state for http status code.
|
|
OK HTTPStatusCode = "OK"
|
|
// PartialContent specifies the partial content state for http status code.
|
|
PartialContent HTTPStatusCode = "PartialContent"
|
|
// PaymentRequired specifies the payment required state for http status code.
|
|
PaymentRequired HTTPStatusCode = "PaymentRequired"
|
|
// PreconditionFailed specifies the precondition failed state for http status code.
|
|
PreconditionFailed HTTPStatusCode = "PreconditionFailed"
|
|
// ProxyAuthenticationRequired specifies the proxy authentication required state for http status code.
|
|
ProxyAuthenticationRequired HTTPStatusCode = "ProxyAuthenticationRequired"
|
|
// Redirect specifies the redirect state for http status code.
|
|
Redirect HTTPStatusCode = "Redirect"
|
|
// RedirectKeepVerb specifies the redirect keep verb state for http status code.
|
|
RedirectKeepVerb HTTPStatusCode = "RedirectKeepVerb"
|
|
// RedirectMethod specifies the redirect method state for http status code.
|
|
RedirectMethod HTTPStatusCode = "RedirectMethod"
|
|
// RequestedRangeNotSatisfiable specifies the requested range not satisfiable state for http status code.
|
|
RequestedRangeNotSatisfiable HTTPStatusCode = "RequestedRangeNotSatisfiable"
|
|
// RequestEntityTooLarge specifies the request entity too large state for http status code.
|
|
RequestEntityTooLarge HTTPStatusCode = "RequestEntityTooLarge"
|
|
// RequestTimeout specifies the request timeout state for http status code.
|
|
RequestTimeout HTTPStatusCode = "RequestTimeout"
|
|
// RequestURITooLong specifies the request uri too long state for http status code.
|
|
RequestURITooLong HTTPStatusCode = "RequestUriTooLong"
|
|
// ResetContent specifies the reset content state for http status code.
|
|
ResetContent HTTPStatusCode = "ResetContent"
|
|
// SeeOther specifies the see other state for http status code.
|
|
SeeOther HTTPStatusCode = "SeeOther"
|
|
// ServiceUnavailable specifies the service unavailable state for http status code.
|
|
ServiceUnavailable HTTPStatusCode = "ServiceUnavailable"
|
|
// SwitchingProtocols specifies the switching protocols state for http status code.
|
|
SwitchingProtocols HTTPStatusCode = "SwitchingProtocols"
|
|
// TemporaryRedirect specifies the temporary redirect state for http status code.
|
|
TemporaryRedirect HTTPStatusCode = "TemporaryRedirect"
|
|
// Unauthorized specifies the unauthorized state for http status code.
|
|
Unauthorized HTTPStatusCode = "Unauthorized"
|
|
// UnsupportedMediaType specifies the unsupported media type state for http status code.
|
|
UnsupportedMediaType HTTPStatusCode = "UnsupportedMediaType"
|
|
// Unused specifies the unused state for http status code.
|
|
Unused HTTPStatusCode = "Unused"
|
|
// UpgradeRequired specifies the upgrade required state for http status code.
|
|
UpgradeRequired HTTPStatusCode = "UpgradeRequired"
|
|
// UseProxy specifies the use proxy state for http status code.
|
|
UseProxy HTTPStatusCode = "UseProxy"
|
|
)
|
|
|
|
// JobOperationType enumerates the values for job operation type.
|
|
type JobOperationType string
|
|
|
|
const (
|
|
// JobOperationTypeBackup specifies the job operation type backup state for job operation type.
|
|
JobOperationTypeBackup JobOperationType = "Backup"
|
|
// JobOperationTypeConfigureBackup specifies the job operation type configure backup state for job operation type.
|
|
JobOperationTypeConfigureBackup JobOperationType = "ConfigureBackup"
|
|
// JobOperationTypeDeleteBackupData specifies the job operation type delete backup data state for job operation type.
|
|
JobOperationTypeDeleteBackupData JobOperationType = "DeleteBackupData"
|
|
// JobOperationTypeDisableBackup specifies the job operation type disable backup state for job operation type.
|
|
JobOperationTypeDisableBackup JobOperationType = "DisableBackup"
|
|
// JobOperationTypeInvalid specifies the job operation type invalid state for job operation type.
|
|
JobOperationTypeInvalid JobOperationType = "Invalid"
|
|
// JobOperationTypeRegister specifies the job operation type register state for job operation type.
|
|
JobOperationTypeRegister JobOperationType = "Register"
|
|
// JobOperationTypeRestore specifies the job operation type restore state for job operation type.
|
|
JobOperationTypeRestore JobOperationType = "Restore"
|
|
// JobOperationTypeUnRegister specifies the job operation type un register state for job operation type.
|
|
JobOperationTypeUnRegister JobOperationType = "UnRegister"
|
|
)
|
|
|
|
// JobStatus enumerates the values for job status.
|
|
type JobStatus string
|
|
|
|
const (
|
|
// JobStatusCancelled specifies the job status cancelled state for job status.
|
|
JobStatusCancelled JobStatus = "Cancelled"
|
|
// JobStatusCancelling specifies the job status cancelling state for job status.
|
|
JobStatusCancelling JobStatus = "Cancelling"
|
|
// JobStatusCompleted specifies the job status completed state for job status.
|
|
JobStatusCompleted JobStatus = "Completed"
|
|
// JobStatusCompletedWithWarnings specifies the job status completed with warnings state for job status.
|
|
JobStatusCompletedWithWarnings JobStatus = "CompletedWithWarnings"
|
|
// JobStatusFailed specifies the job status failed state for job status.
|
|
JobStatusFailed JobStatus = "Failed"
|
|
// JobStatusInProgress specifies the job status in progress state for job status.
|
|
JobStatusInProgress JobStatus = "InProgress"
|
|
// JobStatusInvalid specifies the job status invalid state for job status.
|
|
JobStatusInvalid JobStatus = "Invalid"
|
|
)
|
|
|
|
// JobSupportedAction enumerates the values for job supported action.
|
|
type JobSupportedAction string
|
|
|
|
const (
|
|
// JobSupportedActionCancellable specifies the job supported action cancellable state for job supported action.
|
|
JobSupportedActionCancellable JobSupportedAction = "Cancellable"
|
|
// JobSupportedActionInvalid specifies the job supported action invalid state for job supported action.
|
|
JobSupportedActionInvalid JobSupportedAction = "Invalid"
|
|
// JobSupportedActionRetriable specifies the job supported action retriable state for job supported action.
|
|
JobSupportedActionRetriable JobSupportedAction = "Retriable"
|
|
)
|
|
|
|
// JobType enumerates the values for job type.
|
|
type JobType string
|
|
|
|
const (
|
|
// JobTypeAzureIaaSVMJob specifies the job type azure iaa svm job state for job type.
|
|
JobTypeAzureIaaSVMJob JobType = "AzureIaaSVMJob"
|
|
// JobTypeDpmJob specifies the job type dpm job state for job type.
|
|
JobTypeDpmJob JobType = "DpmJob"
|
|
// JobTypeMabJob specifies the job type mab job state for job type.
|
|
JobTypeMabJob JobType = "MabJob"
|
|
)
|
|
|
|
// MabServerType enumerates the values for mab server type.
|
|
type MabServerType string
|
|
|
|
const (
|
|
// MabServerTypeAzureBackupServerContainer specifies the mab server type azure backup server container state for mab
|
|
// server type.
|
|
MabServerTypeAzureBackupServerContainer MabServerType = "AzureBackupServerContainer"
|
|
// MabServerTypeAzureSQLContainer specifies the mab server type azure sql container state for mab server type.
|
|
MabServerTypeAzureSQLContainer MabServerType = "AzureSqlContainer"
|
|
// MabServerTypeCluster specifies the mab server type cluster state for mab server type.
|
|
MabServerTypeCluster MabServerType = "Cluster"
|
|
// MabServerTypeDPMContainer specifies the mab server type dpm container state for mab server type.
|
|
MabServerTypeDPMContainer MabServerType = "DPMContainer"
|
|
// MabServerTypeIaasVMContainer specifies the mab server type iaas vm container state for mab server type.
|
|
MabServerTypeIaasVMContainer MabServerType = "IaasVMContainer"
|
|
// MabServerTypeIaasVMServiceContainer specifies the mab server type iaas vm service container state for mab server
|
|
// type.
|
|
MabServerTypeIaasVMServiceContainer MabServerType = "IaasVMServiceContainer"
|
|
// MabServerTypeInvalid specifies the mab server type invalid state for mab server type.
|
|
MabServerTypeInvalid MabServerType = "Invalid"
|
|
// MabServerTypeMABContainer specifies the mab server type mab container state for mab server type.
|
|
MabServerTypeMABContainer MabServerType = "MABContainer"
|
|
// MabServerTypeUnknown specifies the mab server type unknown state for mab server type.
|
|
MabServerTypeUnknown MabServerType = "Unknown"
|
|
// MabServerTypeVCenter specifies the mab server type v center state for mab server type.
|
|
MabServerTypeVCenter MabServerType = "VCenter"
|
|
// MabServerTypeWindows specifies the mab server type windows state for mab server type.
|
|
MabServerTypeWindows MabServerType = "Windows"
|
|
)
|
|
|
|
// MonthOfYear enumerates the values for month of year.
|
|
type MonthOfYear string
|
|
|
|
const (
|
|
// MonthOfYearApril specifies the month of year april state for month of year.
|
|
MonthOfYearApril MonthOfYear = "April"
|
|
// MonthOfYearAugust specifies the month of year august state for month of year.
|
|
MonthOfYearAugust MonthOfYear = "August"
|
|
// MonthOfYearDecember specifies the month of year december state for month of year.
|
|
MonthOfYearDecember MonthOfYear = "December"
|
|
// MonthOfYearFebruary specifies the month of year february state for month of year.
|
|
MonthOfYearFebruary MonthOfYear = "February"
|
|
// MonthOfYearInvalid specifies the month of year invalid state for month of year.
|
|
MonthOfYearInvalid MonthOfYear = "Invalid"
|
|
// MonthOfYearJanuary specifies the month of year january state for month of year.
|
|
MonthOfYearJanuary MonthOfYear = "January"
|
|
// MonthOfYearJuly specifies the month of year july state for month of year.
|
|
MonthOfYearJuly MonthOfYear = "July"
|
|
// MonthOfYearJune specifies the month of year june state for month of year.
|
|
MonthOfYearJune MonthOfYear = "June"
|
|
// MonthOfYearMarch specifies the month of year march state for month of year.
|
|
MonthOfYearMarch MonthOfYear = "March"
|
|
// MonthOfYearMay specifies the month of year may state for month of year.
|
|
MonthOfYearMay MonthOfYear = "May"
|
|
// MonthOfYearNovember specifies the month of year november state for month of year.
|
|
MonthOfYearNovember MonthOfYear = "November"
|
|
// MonthOfYearOctober specifies the month of year october state for month of year.
|
|
MonthOfYearOctober MonthOfYear = "October"
|
|
// MonthOfYearSeptember specifies the month of year september state for month of year.
|
|
MonthOfYearSeptember MonthOfYear = "September"
|
|
)
|
|
|
|
// ObjectType enumerates the values for object type.
|
|
type ObjectType string
|
|
|
|
const (
|
|
// ObjectTypeIaasVMBackupRequest specifies the object type iaas vm backup request state for object type.
|
|
ObjectTypeIaasVMBackupRequest ObjectType = "IaasVMBackupRequest"
|
|
)
|
|
|
|
// ObjectTypeILRRequest enumerates the values for object type ilr request.
|
|
type ObjectTypeILRRequest string
|
|
|
|
const (
|
|
// ObjectTypeIaasVMILRRegistrationRequest specifies the object type iaas vmilr registration request state for object
|
|
// type ilr request.
|
|
ObjectTypeIaasVMILRRegistrationRequest ObjectTypeILRRequest = "IaasVMILRRegistrationRequest"
|
|
)
|
|
|
|
// ObjectTypeOperationResultInfoBase enumerates the values for object type operation result info base.
|
|
type ObjectTypeOperationResultInfoBase string
|
|
|
|
const (
|
|
// ObjectTypeExportJobsOperationResultInfo specifies the object type export jobs operation result info state for object
|
|
// type operation result info base.
|
|
ObjectTypeExportJobsOperationResultInfo ObjectTypeOperationResultInfoBase = "ExportJobsOperationResultInfo"
|
|
// ObjectTypeOperationResultInfo specifies the object type operation result info state for object type operation result
|
|
// info base.
|
|
ObjectTypeOperationResultInfo ObjectTypeOperationResultInfoBase = "OperationResultInfo"
|
|
)
|
|
|
|
// ObjectTypeOperationStatusExtendedInfo enumerates the values for object type operation status extended info.
|
|
type ObjectTypeOperationStatusExtendedInfo string
|
|
|
|
const (
|
|
// ObjectTypeOperationStatusJobExtendedInfo specifies the object type operation status job extended info state for
|
|
// object type operation status extended info.
|
|
ObjectTypeOperationStatusJobExtendedInfo ObjectTypeOperationStatusExtendedInfo = "OperationStatusJobExtendedInfo"
|
|
// ObjectTypeOperationStatusJobsExtendedInfo specifies the object type operation status jobs extended info state for
|
|
// object type operation status extended info.
|
|
ObjectTypeOperationStatusJobsExtendedInfo ObjectTypeOperationStatusExtendedInfo = "OperationStatusJobsExtendedInfo"
|
|
// ObjectTypeOperationStatusProvisionILRExtendedInfo specifies the object type operation status provision ilr extended
|
|
// info state for object type operation status extended info.
|
|
ObjectTypeOperationStatusProvisionILRExtendedInfo ObjectTypeOperationStatusExtendedInfo = "OperationStatusProvisionILRExtendedInfo"
|
|
)
|
|
|
|
// ObjectTypeRecoveryPoint enumerates the values for object type recovery point.
|
|
type ObjectTypeRecoveryPoint string
|
|
|
|
const (
|
|
// ObjectTypeGenericRecoveryPoint specifies the object type generic recovery point state for object type recovery
|
|
// point.
|
|
ObjectTypeGenericRecoveryPoint ObjectTypeRecoveryPoint = "GenericRecoveryPoint"
|
|
// ObjectTypeIaasVMRecoveryPoint specifies the object type iaas vm recovery point state for object type recovery point.
|
|
ObjectTypeIaasVMRecoveryPoint ObjectTypeRecoveryPoint = "IaasVMRecoveryPoint"
|
|
)
|
|
|
|
// ObjectTypeRestoreRequest enumerates the values for object type restore request.
|
|
type ObjectTypeRestoreRequest string
|
|
|
|
const (
|
|
// ObjectTypeIaasVMRestoreRequest specifies the object type iaas vm restore request state for object type restore
|
|
// request.
|
|
ObjectTypeIaasVMRestoreRequest ObjectTypeRestoreRequest = "IaasVMRestoreRequest"
|
|
)
|
|
|
|
// OperationStatusValues enumerates the values for operation status values.
|
|
type OperationStatusValues string
|
|
|
|
const (
|
|
// OperationStatusValuesCanceled specifies the operation status values canceled state for operation status values.
|
|
OperationStatusValuesCanceled OperationStatusValues = "Canceled"
|
|
// OperationStatusValuesFailed specifies the operation status values failed state for operation status values.
|
|
OperationStatusValuesFailed OperationStatusValues = "Failed"
|
|
// OperationStatusValuesInProgress specifies the operation status values in progress state for operation status values.
|
|
OperationStatusValuesInProgress OperationStatusValues = "InProgress"
|
|
// OperationStatusValuesInvalid specifies the operation status values invalid state for operation status values.
|
|
OperationStatusValuesInvalid OperationStatusValues = "Invalid"
|
|
// OperationStatusValuesSucceeded specifies the operation status values succeeded state for operation status values.
|
|
OperationStatusValuesSucceeded OperationStatusValues = "Succeeded"
|
|
)
|
|
|
|
// ProtectableItemType enumerates the values for protectable item type.
|
|
type ProtectableItemType string
|
|
|
|
const (
|
|
// ProtectableItemTypeIaaSVMProtectableItem specifies the protectable item type iaa svm protectable item state for
|
|
// protectable item type.
|
|
ProtectableItemTypeIaaSVMProtectableItem ProtectableItemType = "IaaSVMProtectableItem"
|
|
// ProtectableItemTypeMicrosoftClassicComputevirtualMachines specifies the protectable item type microsoft classic
|
|
// computevirtual machines state for protectable item type.
|
|
ProtectableItemTypeMicrosoftClassicComputevirtualMachines ProtectableItemType = "Microsoft.ClassicCompute/virtualMachines"
|
|
// ProtectableItemTypeMicrosoftComputevirtualMachines specifies the protectable item type microsoft computevirtual
|
|
// machines state for protectable item type.
|
|
ProtectableItemTypeMicrosoftComputevirtualMachines ProtectableItemType = "Microsoft.Compute/virtualMachines"
|
|
)
|
|
|
|
// ProtectableObjectType enumerates the values for protectable object type.
|
|
type ProtectableObjectType string
|
|
|
|
const (
|
|
// ProtectableObjectTypeAzureBackupServerContainer specifies the protectable object type azure backup server container
|
|
// state for protectable object type.
|
|
ProtectableObjectTypeAzureBackupServerContainer ProtectableObjectType = "AzureBackupServerContainer"
|
|
// ProtectableObjectTypeAzureSQLContainer specifies the protectable object type azure sql container state for
|
|
// protectable object type.
|
|
ProtectableObjectTypeAzureSQLContainer ProtectableObjectType = "AzureSqlContainer"
|
|
// ProtectableObjectTypeDPMContainer specifies the protectable object type dpm container state for protectable object
|
|
// type.
|
|
ProtectableObjectTypeDPMContainer ProtectableObjectType = "DPMContainer"
|
|
// ProtectableObjectTypeIaaSVMContainer specifies the protectable object type iaa svm container state for protectable
|
|
// object type.
|
|
ProtectableObjectTypeIaaSVMContainer ProtectableObjectType = "IaaSVMContainer"
|
|
// ProtectableObjectTypeMABWindowsContainer specifies the protectable object type mab windows container state for
|
|
// protectable object type.
|
|
ProtectableObjectTypeMABWindowsContainer ProtectableObjectType = "MABWindowsContainer"
|
|
// ProtectableObjectTypeMicrosoftClassicComputevirtualMachines specifies the protectable object type microsoft classic
|
|
// computevirtual machines state for protectable object type.
|
|
ProtectableObjectTypeMicrosoftClassicComputevirtualMachines ProtectableObjectType = "Microsoft.ClassicCompute/virtualMachines"
|
|
// ProtectableObjectTypeMicrosoftComputevirtualMachines specifies the protectable object type microsoft computevirtual
|
|
// machines state for protectable object type.
|
|
ProtectableObjectTypeMicrosoftComputevirtualMachines ProtectableObjectType = "Microsoft.Compute/virtualMachines"
|
|
)
|
|
|
|
// ProtectedItemState enumerates the values for protected item state.
|
|
type ProtectedItemState string
|
|
|
|
const (
|
|
// ProtectedItemStateInvalid specifies the protected item state invalid state for protected item state.
|
|
ProtectedItemStateInvalid ProtectedItemState = "Invalid"
|
|
// ProtectedItemStateIRPending specifies the protected item state ir pending state for protected item state.
|
|
ProtectedItemStateIRPending ProtectedItemState = "IRPending"
|
|
// ProtectedItemStateProtected specifies the protected item state protected state for protected item state.
|
|
ProtectedItemStateProtected ProtectedItemState = "Protected"
|
|
// ProtectedItemStateProtectionError specifies the protected item state protection error state for protected item
|
|
// state.
|
|
ProtectedItemStateProtectionError ProtectedItemState = "ProtectionError"
|
|
// ProtectedItemStateProtectionPaused specifies the protected item state protection paused state for protected item
|
|
// state.
|
|
ProtectedItemStateProtectionPaused ProtectedItemState = "ProtectionPaused"
|
|
// ProtectedItemStateProtectionStopped specifies the protected item state protection stopped state for protected item
|
|
// state.
|
|
ProtectedItemStateProtectionStopped ProtectedItemState = "ProtectionStopped"
|
|
)
|
|
|
|
// ProtectedItemType enumerates the values for protected item type.
|
|
type ProtectedItemType string
|
|
|
|
const (
|
|
// ProtectedItemTypeAzureIaaSVMProtectedItem specifies the protected item type azure iaa svm protected item state for
|
|
// protected item type.
|
|
ProtectedItemTypeAzureIaaSVMProtectedItem ProtectedItemType = "AzureIaaSVMProtectedItem"
|
|
// ProtectedItemTypeDPMProtectedItem specifies the protected item type dpm protected item state for protected item
|
|
// type.
|
|
ProtectedItemTypeDPMProtectedItem ProtectedItemType = "DPMProtectedItem"
|
|
// ProtectedItemTypeMabFileFolderProtectedItem specifies the protected item type mab file folder protected item state
|
|
// for protected item type.
|
|
ProtectedItemTypeMabFileFolderProtectedItem ProtectedItemType = "MabFileFolderProtectedItem"
|
|
// ProtectedItemTypeMicrosoftClassicComputevirtualMachines specifies the protected item type microsoft classic
|
|
// computevirtual machines state for protected item type.
|
|
ProtectedItemTypeMicrosoftClassicComputevirtualMachines ProtectedItemType = "Microsoft.ClassicCompute/virtualMachines"
|
|
// ProtectedItemTypeMicrosoftComputevirtualMachines specifies the protected item type microsoft computevirtual machines
|
|
// state for protected item type.
|
|
ProtectedItemTypeMicrosoftComputevirtualMachines ProtectedItemType = "Microsoft.Compute/virtualMachines"
|
|
// ProtectedItemTypeMicrosoftSqlserversdatabases specifies the protected item type microsoft sqlserversdatabases state
|
|
// for protected item type.
|
|
ProtectedItemTypeMicrosoftSqlserversdatabases ProtectedItemType = "Microsoft.Sql/servers/databases"
|
|
)
|
|
|
|
// ProtectionState enumerates the values for protection state.
|
|
type ProtectionState string
|
|
|
|
const (
|
|
// ProtectionStateInvalid specifies the protection state invalid state for protection state.
|
|
ProtectionStateInvalid ProtectionState = "Invalid"
|
|
// ProtectionStateIRPending specifies the protection state ir pending state for protection state.
|
|
ProtectionStateIRPending ProtectionState = "IRPending"
|
|
// ProtectionStateProtected specifies the protection state protected state for protection state.
|
|
ProtectionStateProtected ProtectionState = "Protected"
|
|
// ProtectionStateProtectionError specifies the protection state protection error state for protection state.
|
|
ProtectionStateProtectionError ProtectionState = "ProtectionError"
|
|
// ProtectionStateProtectionPaused specifies the protection state protection paused state for protection state.
|
|
ProtectionStateProtectionPaused ProtectionState = "ProtectionPaused"
|
|
// ProtectionStateProtectionStopped specifies the protection state protection stopped state for protection state.
|
|
ProtectionStateProtectionStopped ProtectionState = "ProtectionStopped"
|
|
)
|
|
|
|
// ProtectionStatus enumerates the values for protection status.
|
|
type ProtectionStatus string
|
|
|
|
const (
|
|
// ProtectionStatusInvalid specifies the protection status invalid state for protection status.
|
|
ProtectionStatusInvalid ProtectionStatus = "Invalid"
|
|
// ProtectionStatusNotProtected specifies the protection status not protected state for protection status.
|
|
ProtectionStatusNotProtected ProtectionStatus = "NotProtected"
|
|
// ProtectionStatusProtected specifies the protection status protected state for protection status.
|
|
ProtectionStatusProtected ProtectionStatus = "Protected"
|
|
// ProtectionStatusProtecting specifies the protection status protecting state for protection status.
|
|
ProtectionStatusProtecting ProtectionStatus = "Protecting"
|
|
)
|
|
|
|
// RecoveryPointTierStatus enumerates the values for recovery point tier status.
|
|
type RecoveryPointTierStatus string
|
|
|
|
const (
|
|
// RecoveryPointTierStatusDeleted specifies the recovery point tier status deleted state for recovery point tier
|
|
// status.
|
|
RecoveryPointTierStatusDeleted RecoveryPointTierStatus = "Deleted"
|
|
// RecoveryPointTierStatusDisabled specifies the recovery point tier status disabled state for recovery point tier
|
|
// status.
|
|
RecoveryPointTierStatusDisabled RecoveryPointTierStatus = "Disabled"
|
|
// RecoveryPointTierStatusInvalid specifies the recovery point tier status invalid state for recovery point tier
|
|
// status.
|
|
RecoveryPointTierStatusInvalid RecoveryPointTierStatus = "Invalid"
|
|
// RecoveryPointTierStatusValid specifies the recovery point tier status valid state for recovery point tier status.
|
|
RecoveryPointTierStatusValid RecoveryPointTierStatus = "Valid"
|
|
)
|
|
|
|
// RecoveryPointTierType enumerates the values for recovery point tier type.
|
|
type RecoveryPointTierType string
|
|
|
|
const (
|
|
// RecoveryPointTierTypeHardenedRP specifies the recovery point tier type hardened rp state for recovery point tier
|
|
// type.
|
|
RecoveryPointTierTypeHardenedRP RecoveryPointTierType = "HardenedRP"
|
|
// RecoveryPointTierTypeInstantRP specifies the recovery point tier type instant rp state for recovery point tier type.
|
|
RecoveryPointTierTypeInstantRP RecoveryPointTierType = "InstantRP"
|
|
// RecoveryPointTierTypeInvalid specifies the recovery point tier type invalid state for recovery point tier type.
|
|
RecoveryPointTierTypeInvalid RecoveryPointTierType = "Invalid"
|
|
)
|
|
|
|
// RecoveryType enumerates the values for recovery type.
|
|
type RecoveryType string
|
|
|
|
const (
|
|
// RecoveryTypeAlternateLocation specifies the recovery type alternate location state for recovery type.
|
|
RecoveryTypeAlternateLocation RecoveryType = "AlternateLocation"
|
|
// RecoveryTypeInvalid specifies the recovery type invalid state for recovery type.
|
|
RecoveryTypeInvalid RecoveryType = "Invalid"
|
|
// RecoveryTypeOriginalLocation specifies the recovery type original location state for recovery type.
|
|
RecoveryTypeOriginalLocation RecoveryType = "OriginalLocation"
|
|
// RecoveryTypeRestoreDisks specifies the recovery type restore disks state for recovery type.
|
|
RecoveryTypeRestoreDisks RecoveryType = "RestoreDisks"
|
|
)
|
|
|
|
// RetentionDurationType enumerates the values for retention duration type.
|
|
type RetentionDurationType string
|
|
|
|
const (
|
|
// RetentionDurationTypeDays specifies the retention duration type days state for retention duration type.
|
|
RetentionDurationTypeDays RetentionDurationType = "Days"
|
|
// RetentionDurationTypeInvalid specifies the retention duration type invalid state for retention duration type.
|
|
RetentionDurationTypeInvalid RetentionDurationType = "Invalid"
|
|
// RetentionDurationTypeMonths specifies the retention duration type months state for retention duration type.
|
|
RetentionDurationTypeMonths RetentionDurationType = "Months"
|
|
// RetentionDurationTypeWeeks specifies the retention duration type weeks state for retention duration type.
|
|
RetentionDurationTypeWeeks RetentionDurationType = "Weeks"
|
|
// RetentionDurationTypeYears specifies the retention duration type years state for retention duration type.
|
|
RetentionDurationTypeYears RetentionDurationType = "Years"
|
|
)
|
|
|
|
// RetentionPolicyType enumerates the values for retention policy type.
|
|
type RetentionPolicyType string
|
|
|
|
const (
|
|
// RetentionPolicyTypeLongTermRetentionPolicy specifies the retention policy type long term retention policy state for
|
|
// retention policy type.
|
|
RetentionPolicyTypeLongTermRetentionPolicy RetentionPolicyType = "LongTermRetentionPolicy"
|
|
// RetentionPolicyTypeSimpleRetentionPolicy specifies the retention policy type simple retention policy state for
|
|
// retention policy type.
|
|
RetentionPolicyTypeSimpleRetentionPolicy RetentionPolicyType = "SimpleRetentionPolicy"
|
|
)
|
|
|
|
// RetentionScheduleFormat enumerates the values for retention schedule format.
|
|
type RetentionScheduleFormat string
|
|
|
|
const (
|
|
// RetentionScheduleFormatDaily specifies the retention schedule format daily state for retention schedule format.
|
|
RetentionScheduleFormatDaily RetentionScheduleFormat = "Daily"
|
|
// RetentionScheduleFormatInvalid specifies the retention schedule format invalid state for retention schedule format.
|
|
RetentionScheduleFormatInvalid RetentionScheduleFormat = "Invalid"
|
|
// RetentionScheduleFormatWeekly specifies the retention schedule format weekly state for retention schedule format.
|
|
RetentionScheduleFormatWeekly RetentionScheduleFormat = "Weekly"
|
|
)
|
|
|
|
// SchedulePolicyType enumerates the values for schedule policy type.
|
|
type SchedulePolicyType string
|
|
|
|
const (
|
|
// SchedulePolicyTypeLongTermSchedulePolicy specifies the schedule policy type long term schedule policy state for
|
|
// schedule policy type.
|
|
SchedulePolicyTypeLongTermSchedulePolicy SchedulePolicyType = "LongTermSchedulePolicy"
|
|
// SchedulePolicyTypeSimpleSchedulePolicy specifies the schedule policy type simple schedule policy state for schedule
|
|
// policy type.
|
|
SchedulePolicyTypeSimpleSchedulePolicy SchedulePolicyType = "SimpleSchedulePolicy"
|
|
)
|
|
|
|
// ScheduleRunType enumerates the values for schedule run type.
|
|
type ScheduleRunType string
|
|
|
|
const (
|
|
// ScheduleRunTypeDaily specifies the schedule run type daily state for schedule run type.
|
|
ScheduleRunTypeDaily ScheduleRunType = "Daily"
|
|
// ScheduleRunTypeInvalid specifies the schedule run type invalid state for schedule run type.
|
|
ScheduleRunTypeInvalid ScheduleRunType = "Invalid"
|
|
// ScheduleRunTypeWeekly specifies the schedule run type weekly state for schedule run type.
|
|
ScheduleRunTypeWeekly ScheduleRunType = "Weekly"
|
|
)
|
|
|
|
// StorageType enumerates the values for storage type.
|
|
type StorageType string
|
|
|
|
const (
|
|
// StorageTypeGeoRedundant specifies the storage type geo redundant state for storage type.
|
|
StorageTypeGeoRedundant StorageType = "GeoRedundant"
|
|
// StorageTypeInvalid specifies the storage type invalid state for storage type.
|
|
StorageTypeInvalid StorageType = "Invalid"
|
|
// StorageTypeLocallyRedundant specifies the storage type locally redundant state for storage type.
|
|
StorageTypeLocallyRedundant StorageType = "LocallyRedundant"
|
|
)
|
|
|
|
// StorageTypeState enumerates the values for storage type state.
|
|
type StorageTypeState string
|
|
|
|
const (
|
|
// StorageTypeStateInvalid specifies the storage type state invalid state for storage type state.
|
|
StorageTypeStateInvalid StorageTypeState = "Invalid"
|
|
// StorageTypeStateLocked specifies the storage type state locked state for storage type state.
|
|
StorageTypeStateLocked StorageTypeState = "Locked"
|
|
// StorageTypeStateUnlocked specifies the storage type state unlocked state for storage type state.
|
|
StorageTypeStateUnlocked StorageTypeState = "Unlocked"
|
|
)
|
|
|
|
// Type enumerates the values for type.
|
|
type Type string
|
|
|
|
const (
|
|
// TypeBackupProtectedItemCountSummary specifies the type backup protected item count summary state for type.
|
|
TypeBackupProtectedItemCountSummary Type = "BackupProtectedItemCountSummary"
|
|
// TypeBackupProtectionContainerCountSummary specifies the type backup protection container count summary state for
|
|
// type.
|
|
TypeBackupProtectionContainerCountSummary Type = "BackupProtectionContainerCountSummary"
|
|
// TypeInvalid specifies the type invalid state for type.
|
|
TypeInvalid Type = "Invalid"
|
|
)
|
|
|
|
// UsagesUnit enumerates the values for usages unit.
|
|
type UsagesUnit string
|
|
|
|
const (
|
|
// Bytes specifies the bytes state for usages unit.
|
|
Bytes UsagesUnit = "Bytes"
|
|
// BytesPerSecond specifies the bytes per second state for usages unit.
|
|
BytesPerSecond UsagesUnit = "BytesPerSecond"
|
|
// Count specifies the count state for usages unit.
|
|
Count UsagesUnit = "Count"
|
|
// CountPerSecond specifies the count per second state for usages unit.
|
|
CountPerSecond UsagesUnit = "CountPerSecond"
|
|
// Percent specifies the percent state for usages unit.
|
|
Percent UsagesUnit = "Percent"
|
|
// Seconds specifies the seconds state for usages unit.
|
|
Seconds UsagesUnit = "Seconds"
|
|
)
|
|
|
|
// WeekOfMonth enumerates the values for week of month.
|
|
type WeekOfMonth string
|
|
|
|
const (
|
|
// First specifies the first state for week of month.
|
|
First WeekOfMonth = "First"
|
|
// Fourth specifies the fourth state for week of month.
|
|
Fourth WeekOfMonth = "Fourth"
|
|
// Last specifies the last state for week of month.
|
|
Last WeekOfMonth = "Last"
|
|
// Second specifies the second state for week of month.
|
|
Second WeekOfMonth = "Second"
|
|
// Third specifies the third state for week of month.
|
|
Third WeekOfMonth = "Third"
|
|
)
|
|
|
|
// WorkloadType enumerates the values for workload type.
|
|
type WorkloadType string
|
|
|
|
const (
|
|
// WorkloadTypeAzureSQLDb specifies the workload type azure sql db state for workload type.
|
|
WorkloadTypeAzureSQLDb WorkloadType = "AzureSqlDb"
|
|
// WorkloadTypeClient specifies the workload type client state for workload type.
|
|
WorkloadTypeClient WorkloadType = "Client"
|
|
// WorkloadTypeExchange specifies the workload type exchange state for workload type.
|
|
WorkloadTypeExchange WorkloadType = "Exchange"
|
|
// WorkloadTypeFileFolder specifies the workload type file folder state for workload type.
|
|
WorkloadTypeFileFolder WorkloadType = "FileFolder"
|
|
// WorkloadTypeGenericDataSource specifies the workload type generic data source state for workload type.
|
|
WorkloadTypeGenericDataSource WorkloadType = "GenericDataSource"
|
|
// WorkloadTypeInvalid specifies the workload type invalid state for workload type.
|
|
WorkloadTypeInvalid WorkloadType = "Invalid"
|
|
// WorkloadTypeSharepoint specifies the workload type sharepoint state for workload type.
|
|
WorkloadTypeSharepoint WorkloadType = "Sharepoint"
|
|
// WorkloadTypeSQLDB specifies the workload type sqldb state for workload type.
|
|
WorkloadTypeSQLDB WorkloadType = "SQLDB"
|
|
// WorkloadTypeSystemState specifies the workload type system state state for workload type.
|
|
WorkloadTypeSystemState WorkloadType = "SystemState"
|
|
// WorkloadTypeVM specifies the workload type vm state for workload type.
|
|
WorkloadTypeVM WorkloadType = "VM"
|
|
// WorkloadTypeVMwareVM specifies the workload type v mware vm state for workload type.
|
|
WorkloadTypeVMwareVM WorkloadType = "VMwareVM"
|
|
)
|
|
|
|
// AzureBackupServerContainer is azureBackupServer (DPMVenus) workload-specific protection container.
|
|
type AzureBackupServerContainer struct {
|
|
FriendlyName *string `json:"friendlyName,omitempty"`
|
|
BackupManagementType BackupManagementType `json:"backupManagementType,omitempty"`
|
|
RegistrationStatus *string `json:"registrationStatus,omitempty"`
|
|
HealthStatus *string `json:"healthStatus,omitempty"`
|
|
ContainerType ContainerType `json:"containerType,omitempty"`
|
|
ProtectableObjectType ProtectableObjectType `json:"protectableObjectType,omitempty"`
|
|
CanReRegister *bool `json:"canReRegister,omitempty"`
|
|
ContainerID *string `json:"containerId,omitempty"`
|
|
ProtectedItemCount *int64 `json:"protectedItemCount,omitempty"`
|
|
DpmAgentVersion *string `json:"dpmAgentVersion,omitempty"`
|
|
DPMServers *[]string `json:"DPMServers,omitempty"`
|
|
UpgradeAvailable *bool `json:"UpgradeAvailable,omitempty"`
|
|
ProtectionStatus *string `json:"protectionStatus,omitempty"`
|
|
ExtendedInfo *DPMContainerExtendedInfo `json:"extendedInfo,omitempty"`
|
|
}
|
|
|
|
// MarshalJSON is the custom marshaler for AzureBackupServerContainer.
|
|
func (absc AzureBackupServerContainer) MarshalJSON() ([]byte, error) {
|
|
absc.ProtectableObjectType = ProtectableObjectTypeAzureBackupServerContainer
|
|
type Alias AzureBackupServerContainer
|
|
return json.Marshal(&struct {
|
|
Alias
|
|
}{
|
|
Alias: (Alias)(absc),
|
|
})
|
|
}
|
|
|
|
// AsAzureBackupServerContainer is the ProtectionContainer implementation for AzureBackupServerContainer.
|
|
func (absc AzureBackupServerContainer) AsAzureBackupServerContainer() (*AzureBackupServerContainer, bool) {
|
|
return &absc, true
|
|
}
|
|
|
|
// AsAzureIaaSClassicComputeVMContainer is the ProtectionContainer implementation for AzureBackupServerContainer.
|
|
func (absc AzureBackupServerContainer) AsAzureIaaSClassicComputeVMContainer() (*AzureIaaSClassicComputeVMContainer, bool) {
|
|
return nil, false
|
|
}
|
|
|
|
// AsAzureIaaSComputeVMContainer is the ProtectionContainer implementation for AzureBackupServerContainer.
|
|
func (absc AzureBackupServerContainer) AsAzureIaaSComputeVMContainer() (*AzureIaaSComputeVMContainer, bool) {
|
|
return nil, false
|
|
}
|
|
|
|
// AsAzureSQLContainer is the ProtectionContainer implementation for AzureBackupServerContainer.
|
|
func (absc AzureBackupServerContainer) AsAzureSQLContainer() (*AzureSQLContainer, bool) {
|
|
return nil, false
|
|
}
|
|
|
|
// AsDpmContainer is the ProtectionContainer implementation for AzureBackupServerContainer.
|
|
func (absc AzureBackupServerContainer) AsDpmContainer() (*DpmContainer, bool) {
|
|
return nil, false
|
|
}
|
|
|
|
// AsIaaSVMContainer is the ProtectionContainer implementation for AzureBackupServerContainer.
|
|
func (absc AzureBackupServerContainer) AsIaaSVMContainer() (*IaaSVMContainer, bool) {
|
|
return nil, false
|
|
}
|
|
|
|
// AsMabContainer is the ProtectionContainer implementation for AzureBackupServerContainer.
|
|
func (absc AzureBackupServerContainer) AsMabContainer() (*MabContainer, bool) {
|
|
return nil, false
|
|
}
|
|
|
|
// AzureBackupServerEngine is backup engine type when Azure Backup Server is used to manage the backups.
|
|
type AzureBackupServerEngine struct {
|
|
FriendlyName *string `json:"friendlyName,omitempty"`
|
|
BackupManagementType BackupManagementType `json:"backupManagementType,omitempty"`
|
|
RegistrationStatus *string `json:"registrationStatus,omitempty"`
|
|
BackupEngineState *string `json:"backupEngineState,omitempty"`
|
|
HealthStatus *string `json:"healthStatus,omitempty"`
|
|
CanReRegister *bool `json:"canReRegister,omitempty"`
|
|
BackupEngineID *string `json:"backupEngineId,omitempty"`
|
|
DpmVersion *string `json:"dpmVersion,omitempty"`
|
|
AzureBackupAgentVersion *string `json:"azureBackupAgentVersion,omitempty"`
|
|
IsAzureBackupAgentUpgradeAvailable *bool `json:"isAzureBackupAgentUpgradeAvailable,omitempty"`
|
|
IsDPMUpgradeAvailable *bool `json:"isDPMUpgradeAvailable,omitempty"`
|
|
ExtendedInfo *BackupEngineExtendedInfo `json:"extendedInfo,omitempty"`
|
|
BackupEngineType BackupEngineType `json:"backupEngineType,omitempty"`
|
|
}
|
|
|
|
// MarshalJSON is the custom marshaler for AzureBackupServerEngine.
|
|
func (abse AzureBackupServerEngine) MarshalJSON() ([]byte, error) {
|
|
abse.BackupEngineType = BackupEngineTypeAzureBackupServerEngine
|
|
type Alias AzureBackupServerEngine
|
|
return json.Marshal(&struct {
|
|
Alias
|
|
}{
|
|
Alias: (Alias)(abse),
|
|
})
|
|
}
|
|
|
|
// AsAzureBackupServerEngine is the BackupEngineBase implementation for AzureBackupServerEngine.
|
|
func (abse AzureBackupServerEngine) AsAzureBackupServerEngine() (*AzureBackupServerEngine, bool) {
|
|
return &abse, true
|
|
}
|
|
|
|
// AsDpmBackupEngine is the BackupEngineBase implementation for AzureBackupServerEngine.
|
|
func (abse AzureBackupServerEngine) AsDpmBackupEngine() (*DpmBackupEngine, bool) {
|
|
return nil, false
|
|
}
|
|
|
|
// AzureIaaSClassicComputeVMContainer is iaaS VM workload-specific backup item representing a classic virtual machine.
|
|
type AzureIaaSClassicComputeVMContainer struct {
|
|
FriendlyName *string `json:"friendlyName,omitempty"`
|
|
BackupManagementType BackupManagementType `json:"backupManagementType,omitempty"`
|
|
RegistrationStatus *string `json:"registrationStatus,omitempty"`
|
|
HealthStatus *string `json:"healthStatus,omitempty"`
|
|
ContainerType ContainerType `json:"containerType,omitempty"`
|
|
ProtectableObjectType ProtectableObjectType `json:"protectableObjectType,omitempty"`
|
|
VirtualMachineID *string `json:"virtualMachineId,omitempty"`
|
|
VirtualMachineVersion *string `json:"virtualMachineVersion,omitempty"`
|
|
ResourceGroup *string `json:"resourceGroup,omitempty"`
|
|
}
|
|
|
|
// MarshalJSON is the custom marshaler for AzureIaaSClassicComputeVMContainer.
|
|
func (aisccvc AzureIaaSClassicComputeVMContainer) MarshalJSON() ([]byte, error) {
|
|
aisccvc.ProtectableObjectType = ProtectableObjectTypeMicrosoftClassicComputevirtualMachines
|
|
type Alias AzureIaaSClassicComputeVMContainer
|
|
return json.Marshal(&struct {
|
|
Alias
|
|
}{
|
|
Alias: (Alias)(aisccvc),
|
|
})
|
|
}
|
|
|
|
// AsAzureIaaSClassicComputeVMContainer is the IaaSVMContainer implementation for AzureIaaSClassicComputeVMContainer.
|
|
func (aisccvc AzureIaaSClassicComputeVMContainer) AsAzureIaaSClassicComputeVMContainer() (*AzureIaaSClassicComputeVMContainer, bool) {
|
|
return &aisccvc, true
|
|
}
|
|
|
|
// AsAzureIaaSComputeVMContainer is the IaaSVMContainer implementation for AzureIaaSClassicComputeVMContainer.
|
|
func (aisccvc AzureIaaSClassicComputeVMContainer) AsAzureIaaSComputeVMContainer() (*AzureIaaSComputeVMContainer, bool) {
|
|
return nil, false
|
|
}
|
|
|
|
// AsAzureBackupServerContainer is the IaaSVMContainer implementation for AzureIaaSClassicComputeVMContainer.
|
|
func (aisccvc AzureIaaSClassicComputeVMContainer) AsAzureBackupServerContainer() (*AzureBackupServerContainer, bool) {
|
|
return nil, false
|
|
}
|
|
|
|
// AsAzureSQLContainer is the IaaSVMContainer implementation for AzureIaaSClassicComputeVMContainer.
|
|
func (aisccvc AzureIaaSClassicComputeVMContainer) AsAzureSQLContainer() (*AzureSQLContainer, bool) {
|
|
return nil, false
|
|
}
|
|
|
|
// AsDpmContainer is the IaaSVMContainer implementation for AzureIaaSClassicComputeVMContainer.
|
|
func (aisccvc AzureIaaSClassicComputeVMContainer) AsDpmContainer() (*DpmContainer, bool) {
|
|
return nil, false
|
|
}
|
|
|
|
// AsIaaSVMContainer is the IaaSVMContainer implementation for AzureIaaSClassicComputeVMContainer.
|
|
func (aisccvc AzureIaaSClassicComputeVMContainer) AsIaaSVMContainer() (*IaaSVMContainer, bool) {
|
|
return nil, false
|
|
}
|
|
|
|
// AsMabContainer is the IaaSVMContainer implementation for AzureIaaSClassicComputeVMContainer.
|
|
func (aisccvc AzureIaaSClassicComputeVMContainer) AsMabContainer() (*MabContainer, bool) {
|
|
return nil, false
|
|
}
|
|
|
|
// AzureIaaSClassicComputeVMProtectableItem is iaaS VM workload-specific backup item representing the Classic Compute
|
|
// VM.
|
|
type AzureIaaSClassicComputeVMProtectableItem struct {
|
|
BackupManagementType *string `json:"backupManagementType,omitempty"`
|
|
FriendlyName *string `json:"friendlyName,omitempty"`
|
|
ProtectionState ProtectionStatus `json:"protectionState,omitempty"`
|
|
ProtectableItemType ProtectableItemType `json:"protectableItemType,omitempty"`
|
|
VirtualMachineID *string `json:"virtualMachineId,omitempty"`
|
|
}
|
|
|
|
// MarshalJSON is the custom marshaler for AzureIaaSClassicComputeVMProtectableItem.
|
|
func (aisccvpi AzureIaaSClassicComputeVMProtectableItem) MarshalJSON() ([]byte, error) {
|
|
aisccvpi.ProtectableItemType = ProtectableItemTypeMicrosoftClassicComputevirtualMachines
|
|
type Alias AzureIaaSClassicComputeVMProtectableItem
|
|
return json.Marshal(&struct {
|
|
Alias
|
|
}{
|
|
Alias: (Alias)(aisccvpi),
|
|
})
|
|
}
|
|
|
|
// AsAzureIaaSClassicComputeVMProtectableItem is the IaaSVMProtectableItem implementation for AzureIaaSClassicComputeVMProtectableItem.
|
|
func (aisccvpi AzureIaaSClassicComputeVMProtectableItem) AsAzureIaaSClassicComputeVMProtectableItem() (*AzureIaaSClassicComputeVMProtectableItem, bool) {
|
|
return &aisccvpi, true
|
|
}
|
|
|
|
// AsAzureIaaSComputeVMProtectableItem is the IaaSVMProtectableItem implementation for AzureIaaSClassicComputeVMProtectableItem.
|
|
func (aisccvpi AzureIaaSClassicComputeVMProtectableItem) AsAzureIaaSComputeVMProtectableItem() (*AzureIaaSComputeVMProtectableItem, bool) {
|
|
return nil, false
|
|
}
|
|
|
|
// AsIaaSVMProtectableItem is the IaaSVMProtectableItem implementation for AzureIaaSClassicComputeVMProtectableItem.
|
|
func (aisccvpi AzureIaaSClassicComputeVMProtectableItem) AsIaaSVMProtectableItem() (*IaaSVMProtectableItem, bool) {
|
|
return nil, false
|
|
}
|
|
|
|
// AzureIaaSClassicComputeVMProtectedItem is iaaS VM workload-specific backup item representing the Classic Compute VM.
|
|
type AzureIaaSClassicComputeVMProtectedItem struct {
|
|
BackupManagementType BackupManagementType `json:"backupManagementType,omitempty"`
|
|
WorkloadType DataSourceType `json:"workloadType,omitempty"`
|
|
ContainerName *string `json:"containerName,omitempty"`
|
|
SourceResourceID *string `json:"sourceResourceId,omitempty"`
|
|
PolicyID *string `json:"policyId,omitempty"`
|
|
LastRecoveryPoint *date.Time `json:"lastRecoveryPoint,omitempty"`
|
|
ProtectedItemType ProtectedItemType `json:"protectedItemType,omitempty"`
|
|
FriendlyName *string `json:"friendlyName,omitempty"`
|
|
VirtualMachineID *string `json:"virtualMachineId,omitempty"`
|
|
ProtectionStatus *string `json:"protectionStatus,omitempty"`
|
|
ProtectionState ProtectionState `json:"protectionState,omitempty"`
|
|
HealthStatus HealthStatus `json:"healthStatus,omitempty"`
|
|
HealthDetails *[]AzureIaaSVMHealthDetails `json:"healthDetails,omitempty"`
|
|
LastBackupStatus *string `json:"lastBackupStatus,omitempty"`
|
|
LastBackupTime *date.Time `json:"lastBackupTime,omitempty"`
|
|
ProtectedItemDataID *string `json:"protectedItemDataId,omitempty"`
|
|
ExtendedInfo *AzureIaaSVMProtectedItemExtendedInfo `json:"extendedInfo,omitempty"`
|
|
}
|
|
|
|
// MarshalJSON is the custom marshaler for AzureIaaSClassicComputeVMProtectedItem.
|
|
func (aisccvpi AzureIaaSClassicComputeVMProtectedItem) MarshalJSON() ([]byte, error) {
|
|
aisccvpi.ProtectedItemType = ProtectedItemTypeMicrosoftClassicComputevirtualMachines
|
|
type Alias AzureIaaSClassicComputeVMProtectedItem
|
|
return json.Marshal(&struct {
|
|
Alias
|
|
}{
|
|
Alias: (Alias)(aisccvpi),
|
|
})
|
|
}
|
|
|
|
// AsAzureIaaSClassicComputeVMProtectedItem is the AzureIaaSVMProtectedItem implementation for AzureIaaSClassicComputeVMProtectedItem.
|
|
func (aisccvpi AzureIaaSClassicComputeVMProtectedItem) AsAzureIaaSClassicComputeVMProtectedItem() (*AzureIaaSClassicComputeVMProtectedItem, bool) {
|
|
return &aisccvpi, true
|
|
}
|
|
|
|
// AsAzureIaaSComputeVMProtectedItem is the AzureIaaSVMProtectedItem implementation for AzureIaaSClassicComputeVMProtectedItem.
|
|
func (aisccvpi AzureIaaSClassicComputeVMProtectedItem) AsAzureIaaSComputeVMProtectedItem() (*AzureIaaSComputeVMProtectedItem, bool) {
|
|
return nil, false
|
|
}
|
|
|
|
// AsAzureIaaSVMProtectedItem is the AzureIaaSVMProtectedItem implementation for AzureIaaSClassicComputeVMProtectedItem.
|
|
func (aisccvpi AzureIaaSClassicComputeVMProtectedItem) AsAzureIaaSVMProtectedItem() (*AzureIaaSVMProtectedItem, bool) {
|
|
return nil, false
|
|
}
|
|
|
|
// AsAzureSQLProtectedItem is the AzureIaaSVMProtectedItem implementation for AzureIaaSClassicComputeVMProtectedItem.
|
|
func (aisccvpi AzureIaaSClassicComputeVMProtectedItem) AsAzureSQLProtectedItem() (*AzureSQLProtectedItem, bool) {
|
|
return nil, false
|
|
}
|
|
|
|
// AsDPMProtectedItem is the AzureIaaSVMProtectedItem implementation for AzureIaaSClassicComputeVMProtectedItem.
|
|
func (aisccvpi AzureIaaSClassicComputeVMProtectedItem) AsDPMProtectedItem() (*DPMProtectedItem, bool) {
|
|
return nil, false
|
|
}
|
|
|
|
// AsMabFileFolderProtectedItem is the AzureIaaSVMProtectedItem implementation for AzureIaaSClassicComputeVMProtectedItem.
|
|
func (aisccvpi AzureIaaSClassicComputeVMProtectedItem) AsMabFileFolderProtectedItem() (*MabFileFolderProtectedItem, bool) {
|
|
return nil, false
|
|
}
|
|
|
|
// AzureIaaSComputeVMContainer is iaaS VM workload-specific backup item representing an Azure Resource Manager virtual
|
|
// machine.
|
|
type AzureIaaSComputeVMContainer struct {
|
|
FriendlyName *string `json:"friendlyName,omitempty"`
|
|
BackupManagementType BackupManagementType `json:"backupManagementType,omitempty"`
|
|
RegistrationStatus *string `json:"registrationStatus,omitempty"`
|
|
HealthStatus *string `json:"healthStatus,omitempty"`
|
|
ContainerType ContainerType `json:"containerType,omitempty"`
|
|
ProtectableObjectType ProtectableObjectType `json:"protectableObjectType,omitempty"`
|
|
VirtualMachineID *string `json:"virtualMachineId,omitempty"`
|
|
VirtualMachineVersion *string `json:"virtualMachineVersion,omitempty"`
|
|
ResourceGroup *string `json:"resourceGroup,omitempty"`
|
|
}
|
|
|
|
// MarshalJSON is the custom marshaler for AzureIaaSComputeVMContainer.
|
|
func (aiscvc AzureIaaSComputeVMContainer) MarshalJSON() ([]byte, error) {
|
|
aiscvc.ProtectableObjectType = ProtectableObjectTypeMicrosoftComputevirtualMachines
|
|
type Alias AzureIaaSComputeVMContainer
|
|
return json.Marshal(&struct {
|
|
Alias
|
|
}{
|
|
Alias: (Alias)(aiscvc),
|
|
})
|
|
}
|
|
|
|
// AsAzureIaaSClassicComputeVMContainer is the IaaSVMContainer implementation for AzureIaaSComputeVMContainer.
|
|
func (aiscvc AzureIaaSComputeVMContainer) AsAzureIaaSClassicComputeVMContainer() (*AzureIaaSClassicComputeVMContainer, bool) {
|
|
return nil, false
|
|
}
|
|
|
|
// AsAzureIaaSComputeVMContainer is the IaaSVMContainer implementation for AzureIaaSComputeVMContainer.
|
|
func (aiscvc AzureIaaSComputeVMContainer) AsAzureIaaSComputeVMContainer() (*AzureIaaSComputeVMContainer, bool) {
|
|
return &aiscvc, true
|
|
}
|
|
|
|
// AsAzureBackupServerContainer is the IaaSVMContainer implementation for AzureIaaSComputeVMContainer.
|
|
func (aiscvc AzureIaaSComputeVMContainer) AsAzureBackupServerContainer() (*AzureBackupServerContainer, bool) {
|
|
return nil, false
|
|
}
|
|
|
|
// AsAzureSQLContainer is the IaaSVMContainer implementation for AzureIaaSComputeVMContainer.
|
|
func (aiscvc AzureIaaSComputeVMContainer) AsAzureSQLContainer() (*AzureSQLContainer, bool) {
|
|
return nil, false
|
|
}
|
|
|
|
// AsDpmContainer is the IaaSVMContainer implementation for AzureIaaSComputeVMContainer.
|
|
func (aiscvc AzureIaaSComputeVMContainer) AsDpmContainer() (*DpmContainer, bool) {
|
|
return nil, false
|
|
}
|
|
|
|
// AsIaaSVMContainer is the IaaSVMContainer implementation for AzureIaaSComputeVMContainer.
|
|
func (aiscvc AzureIaaSComputeVMContainer) AsIaaSVMContainer() (*IaaSVMContainer, bool) {
|
|
return nil, false
|
|
}
|
|
|
|
// AsMabContainer is the IaaSVMContainer implementation for AzureIaaSComputeVMContainer.
|
|
func (aiscvc AzureIaaSComputeVMContainer) AsMabContainer() (*MabContainer, bool) {
|
|
return nil, false
|
|
}
|
|
|
|
// AzureIaaSComputeVMProtectableItem is iaaS VM workload-specific backup item representing the Azure Resource Manager
|
|
// VM.
|
|
type AzureIaaSComputeVMProtectableItem struct {
|
|
BackupManagementType *string `json:"backupManagementType,omitempty"`
|
|
FriendlyName *string `json:"friendlyName,omitempty"`
|
|
ProtectionState ProtectionStatus `json:"protectionState,omitempty"`
|
|
ProtectableItemType ProtectableItemType `json:"protectableItemType,omitempty"`
|
|
VirtualMachineID *string `json:"virtualMachineId,omitempty"`
|
|
}
|
|
|
|
// MarshalJSON is the custom marshaler for AzureIaaSComputeVMProtectableItem.
|
|
func (aiscvpi AzureIaaSComputeVMProtectableItem) MarshalJSON() ([]byte, error) {
|
|
aiscvpi.ProtectableItemType = ProtectableItemTypeMicrosoftComputevirtualMachines
|
|
type Alias AzureIaaSComputeVMProtectableItem
|
|
return json.Marshal(&struct {
|
|
Alias
|
|
}{
|
|
Alias: (Alias)(aiscvpi),
|
|
})
|
|
}
|
|
|
|
// AsAzureIaaSClassicComputeVMProtectableItem is the IaaSVMProtectableItem implementation for AzureIaaSComputeVMProtectableItem.
|
|
func (aiscvpi AzureIaaSComputeVMProtectableItem) AsAzureIaaSClassicComputeVMProtectableItem() (*AzureIaaSClassicComputeVMProtectableItem, bool) {
|
|
return nil, false
|
|
}
|
|
|
|
// AsAzureIaaSComputeVMProtectableItem is the IaaSVMProtectableItem implementation for AzureIaaSComputeVMProtectableItem.
|
|
func (aiscvpi AzureIaaSComputeVMProtectableItem) AsAzureIaaSComputeVMProtectableItem() (*AzureIaaSComputeVMProtectableItem, bool) {
|
|
return &aiscvpi, true
|
|
}
|
|
|
|
// AsIaaSVMProtectableItem is the IaaSVMProtectableItem implementation for AzureIaaSComputeVMProtectableItem.
|
|
func (aiscvpi AzureIaaSComputeVMProtectableItem) AsIaaSVMProtectableItem() (*IaaSVMProtectableItem, bool) {
|
|
return nil, false
|
|
}
|
|
|
|
// AzureIaaSComputeVMProtectedItem is iaaS VM workload-specific backup item representing the Azure Resource Manager VM.
|
|
type AzureIaaSComputeVMProtectedItem struct {
|
|
BackupManagementType BackupManagementType `json:"backupManagementType,omitempty"`
|
|
WorkloadType DataSourceType `json:"workloadType,omitempty"`
|
|
ContainerName *string `json:"containerName,omitempty"`
|
|
SourceResourceID *string `json:"sourceResourceId,omitempty"`
|
|
PolicyID *string `json:"policyId,omitempty"`
|
|
LastRecoveryPoint *date.Time `json:"lastRecoveryPoint,omitempty"`
|
|
ProtectedItemType ProtectedItemType `json:"protectedItemType,omitempty"`
|
|
FriendlyName *string `json:"friendlyName,omitempty"`
|
|
VirtualMachineID *string `json:"virtualMachineId,omitempty"`
|
|
ProtectionStatus *string `json:"protectionStatus,omitempty"`
|
|
ProtectionState ProtectionState `json:"protectionState,omitempty"`
|
|
HealthStatus HealthStatus `json:"healthStatus,omitempty"`
|
|
HealthDetails *[]AzureIaaSVMHealthDetails `json:"healthDetails,omitempty"`
|
|
LastBackupStatus *string `json:"lastBackupStatus,omitempty"`
|
|
LastBackupTime *date.Time `json:"lastBackupTime,omitempty"`
|
|
ProtectedItemDataID *string `json:"protectedItemDataId,omitempty"`
|
|
ExtendedInfo *AzureIaaSVMProtectedItemExtendedInfo `json:"extendedInfo,omitempty"`
|
|
}
|
|
|
|
// MarshalJSON is the custom marshaler for AzureIaaSComputeVMProtectedItem.
|
|
func (aiscvpi AzureIaaSComputeVMProtectedItem) MarshalJSON() ([]byte, error) {
|
|
aiscvpi.ProtectedItemType = ProtectedItemTypeMicrosoftComputevirtualMachines
|
|
type Alias AzureIaaSComputeVMProtectedItem
|
|
return json.Marshal(&struct {
|
|
Alias
|
|
}{
|
|
Alias: (Alias)(aiscvpi),
|
|
})
|
|
}
|
|
|
|
// AsAzureIaaSClassicComputeVMProtectedItem is the AzureIaaSVMProtectedItem implementation for AzureIaaSComputeVMProtectedItem.
|
|
func (aiscvpi AzureIaaSComputeVMProtectedItem) AsAzureIaaSClassicComputeVMProtectedItem() (*AzureIaaSClassicComputeVMProtectedItem, bool) {
|
|
return nil, false
|
|
}
|
|
|
|
// AsAzureIaaSComputeVMProtectedItem is the AzureIaaSVMProtectedItem implementation for AzureIaaSComputeVMProtectedItem.
|
|
func (aiscvpi AzureIaaSComputeVMProtectedItem) AsAzureIaaSComputeVMProtectedItem() (*AzureIaaSComputeVMProtectedItem, bool) {
|
|
return &aiscvpi, true
|
|
}
|
|
|
|
// AsAzureIaaSVMProtectedItem is the AzureIaaSVMProtectedItem implementation for AzureIaaSComputeVMProtectedItem.
|
|
func (aiscvpi AzureIaaSComputeVMProtectedItem) AsAzureIaaSVMProtectedItem() (*AzureIaaSVMProtectedItem, bool) {
|
|
return nil, false
|
|
}
|
|
|
|
// AsAzureSQLProtectedItem is the AzureIaaSVMProtectedItem implementation for AzureIaaSComputeVMProtectedItem.
|
|
func (aiscvpi AzureIaaSComputeVMProtectedItem) AsAzureSQLProtectedItem() (*AzureSQLProtectedItem, bool) {
|
|
return nil, false
|
|
}
|
|
|
|
// AsDPMProtectedItem is the AzureIaaSVMProtectedItem implementation for AzureIaaSComputeVMProtectedItem.
|
|
func (aiscvpi AzureIaaSComputeVMProtectedItem) AsDPMProtectedItem() (*DPMProtectedItem, bool) {
|
|
return nil, false
|
|
}
|
|
|
|
// AsMabFileFolderProtectedItem is the AzureIaaSVMProtectedItem implementation for AzureIaaSComputeVMProtectedItem.
|
|
func (aiscvpi AzureIaaSComputeVMProtectedItem) AsMabFileFolderProtectedItem() (*MabFileFolderProtectedItem, bool) {
|
|
return nil, false
|
|
}
|
|
|
|
// AzureIaaSVMErrorInfo is azure IaaS VM workload-specific error information.
|
|
type AzureIaaSVMErrorInfo struct {
|
|
ErrorCode *int32 `json:"errorCode,omitempty"`
|
|
ErrorTitle *string `json:"errorTitle,omitempty"`
|
|
ErrorString *string `json:"errorString,omitempty"`
|
|
Recommendations *[]string `json:"recommendations,omitempty"`
|
|
}
|
|
|
|
// AzureIaaSVMHealthDetails is azure IaaS VM workload-specific Health Details.
|
|
type AzureIaaSVMHealthDetails struct {
|
|
Code *int32 `json:"code,omitempty"`
|
|
Title *string `json:"title,omitempty"`
|
|
Message *string `json:"message,omitempty"`
|
|
Recommendations *[]string `json:"recommendations,omitempty"`
|
|
}
|
|
|
|
// AzureIaaSVMJob is azure IaaS VM workload-specifc job object.
|
|
type AzureIaaSVMJob struct {
|
|
EntityFriendlyName *string `json:"entityFriendlyName,omitempty"`
|
|
BackupManagementType BackupManagementType `json:"backupManagementType,omitempty"`
|
|
Operation *string `json:"operation,omitempty"`
|
|
Status *string `json:"status,omitempty"`
|
|
StartTime *date.Time `json:"startTime,omitempty"`
|
|
EndTime *date.Time `json:"endTime,omitempty"`
|
|
ActivityID *string `json:"activityId,omitempty"`
|
|
JobType JobType `json:"jobType,omitempty"`
|
|
Duration *string `json:"duration,omitempty"`
|
|
ActionsInfo *[]JobSupportedAction `json:"actionsInfo,omitempty"`
|
|
ErrorDetails *[]AzureIaaSVMErrorInfo `json:"errorDetails,omitempty"`
|
|
VirtualMachineVersion *string `json:"virtualMachineVersion,omitempty"`
|
|
ExtendedInfo *AzureIaaSVMJobExtendedInfo `json:"extendedInfo,omitempty"`
|
|
}
|
|
|
|
// MarshalJSON is the custom marshaler for AzureIaaSVMJob.
|
|
func (aisj AzureIaaSVMJob) MarshalJSON() ([]byte, error) {
|
|
aisj.JobType = JobTypeAzureIaaSVMJob
|
|
type Alias AzureIaaSVMJob
|
|
return json.Marshal(&struct {
|
|
Alias
|
|
}{
|
|
Alias: (Alias)(aisj),
|
|
})
|
|
}
|
|
|
|
// AsAzureIaaSVMJob is the Job implementation for AzureIaaSVMJob.
|
|
func (aisj AzureIaaSVMJob) AsAzureIaaSVMJob() (*AzureIaaSVMJob, bool) {
|
|
return &aisj, true
|
|
}
|
|
|
|
// AsDpmJob is the Job implementation for AzureIaaSVMJob.
|
|
func (aisj AzureIaaSVMJob) AsDpmJob() (*DpmJob, bool) {
|
|
return nil, false
|
|
}
|
|
|
|
// AsMabJob is the Job implementation for AzureIaaSVMJob.
|
|
func (aisj AzureIaaSVMJob) AsMabJob() (*MabJob, bool) {
|
|
return nil, false
|
|
}
|
|
|
|
// AzureIaaSVMJobExtendedInfo is azure IaaS VM workload-specific additional information for job.
|
|
type AzureIaaSVMJobExtendedInfo struct {
|
|
TasksList *[]AzureIaaSVMJobTaskDetails `json:"tasksList,omitempty"`
|
|
PropertyBag *map[string]*string `json:"propertyBag,omitempty"`
|
|
ProgressPercentage *float64 `json:"progressPercentage,omitempty"`
|
|
DynamicErrorMessage *string `json:"dynamicErrorMessage,omitempty"`
|
|
}
|
|
|
|
// AzureIaaSVMJobTaskDetails is azure IaaS VM workload-specific job task details.
|
|
type AzureIaaSVMJobTaskDetails struct {
|
|
TaskID *string `json:"taskId,omitempty"`
|
|
StartTime *date.Time `json:"startTime,omitempty"`
|
|
EndTime *date.Time `json:"endTime,omitempty"`
|
|
InstanceID *string `json:"instanceId,omitempty"`
|
|
Duration *string `json:"duration,omitempty"`
|
|
Status *string `json:"status,omitempty"`
|
|
ProgressPercentage *float64 `json:"progressPercentage,omitempty"`
|
|
}
|
|
|
|
// AzureIaaSVMProtectedItem is iaaS VM workload-specific backup item.
|
|
type AzureIaaSVMProtectedItem struct {
|
|
BackupManagementType BackupManagementType `json:"backupManagementType,omitempty"`
|
|
WorkloadType DataSourceType `json:"workloadType,omitempty"`
|
|
ContainerName *string `json:"containerName,omitempty"`
|
|
SourceResourceID *string `json:"sourceResourceId,omitempty"`
|
|
PolicyID *string `json:"policyId,omitempty"`
|
|
LastRecoveryPoint *date.Time `json:"lastRecoveryPoint,omitempty"`
|
|
ProtectedItemType ProtectedItemType `json:"protectedItemType,omitempty"`
|
|
FriendlyName *string `json:"friendlyName,omitempty"`
|
|
VirtualMachineID *string `json:"virtualMachineId,omitempty"`
|
|
ProtectionStatus *string `json:"protectionStatus,omitempty"`
|
|
ProtectionState ProtectionState `json:"protectionState,omitempty"`
|
|
HealthStatus HealthStatus `json:"healthStatus,omitempty"`
|
|
HealthDetails *[]AzureIaaSVMHealthDetails `json:"healthDetails,omitempty"`
|
|
LastBackupStatus *string `json:"lastBackupStatus,omitempty"`
|
|
LastBackupTime *date.Time `json:"lastBackupTime,omitempty"`
|
|
ProtectedItemDataID *string `json:"protectedItemDataId,omitempty"`
|
|
ExtendedInfo *AzureIaaSVMProtectedItemExtendedInfo `json:"extendedInfo,omitempty"`
|
|
}
|
|
|
|
// MarshalJSON is the custom marshaler for AzureIaaSVMProtectedItem.
|
|
func (aispi AzureIaaSVMProtectedItem) MarshalJSON() ([]byte, error) {
|
|
aispi.ProtectedItemType = ProtectedItemTypeAzureIaaSVMProtectedItem
|
|
type Alias AzureIaaSVMProtectedItem
|
|
return json.Marshal(&struct {
|
|
Alias
|
|
}{
|
|
Alias: (Alias)(aispi),
|
|
})
|
|
}
|
|
|
|
// AsAzureIaaSClassicComputeVMProtectedItem is the ProtectedItem implementation for AzureIaaSVMProtectedItem.
|
|
func (aispi AzureIaaSVMProtectedItem) AsAzureIaaSClassicComputeVMProtectedItem() (*AzureIaaSClassicComputeVMProtectedItem, bool) {
|
|
return nil, false
|
|
}
|
|
|
|
// AsAzureIaaSComputeVMProtectedItem is the ProtectedItem implementation for AzureIaaSVMProtectedItem.
|
|
func (aispi AzureIaaSVMProtectedItem) AsAzureIaaSComputeVMProtectedItem() (*AzureIaaSComputeVMProtectedItem, bool) {
|
|
return nil, false
|
|
}
|
|
|
|
// AsAzureIaaSVMProtectedItem is the ProtectedItem implementation for AzureIaaSVMProtectedItem.
|
|
func (aispi AzureIaaSVMProtectedItem) AsAzureIaaSVMProtectedItem() (*AzureIaaSVMProtectedItem, bool) {
|
|
return &aispi, true
|
|
}
|
|
|
|
// AsAzureSQLProtectedItem is the ProtectedItem implementation for AzureIaaSVMProtectedItem.
|
|
func (aispi AzureIaaSVMProtectedItem) AsAzureSQLProtectedItem() (*AzureSQLProtectedItem, bool) {
|
|
return nil, false
|
|
}
|
|
|
|
// AsDPMProtectedItem is the ProtectedItem implementation for AzureIaaSVMProtectedItem.
|
|
func (aispi AzureIaaSVMProtectedItem) AsDPMProtectedItem() (*DPMProtectedItem, bool) {
|
|
return nil, false
|
|
}
|
|
|
|
// AsMabFileFolderProtectedItem is the ProtectedItem implementation for AzureIaaSVMProtectedItem.
|
|
func (aispi AzureIaaSVMProtectedItem) AsMabFileFolderProtectedItem() (*MabFileFolderProtectedItem, bool) {
|
|
return nil, false
|
|
}
|
|
|
|
// AzureIaaSVMProtectedItemExtendedInfo is additional information on Azure IaaS VM specific backup item.
|
|
type AzureIaaSVMProtectedItemExtendedInfo struct {
|
|
OldestRecoveryPoint *date.Time `json:"oldestRecoveryPoint,omitempty"`
|
|
RecoveryPointCount *int32 `json:"recoveryPointCount,omitempty"`
|
|
PolicyInconsistent *bool `json:"policyInconsistent,omitempty"`
|
|
}
|
|
|
|
// AzureIaaSVMProtectionPolicy is iaaS VM workload-specific backup policy.
|
|
type AzureIaaSVMProtectionPolicy struct {
|
|
ProtectedItemsCount *int32 `json:"protectedItemsCount,omitempty"`
|
|
BackupManagementType BackupManagementType `json:"backupManagementType,omitempty"`
|
|
SchedulePolicy SchedulePolicy `json:"schedulePolicy,omitempty"`
|
|
RetentionPolicy RetentionPolicy `json:"retentionPolicy,omitempty"`
|
|
TimeZone *string `json:"timeZone,omitempty"`
|
|
}
|
|
|
|
// MarshalJSON is the custom marshaler for AzureIaaSVMProtectionPolicy.
|
|
func (aispp AzureIaaSVMProtectionPolicy) MarshalJSON() ([]byte, error) {
|
|
aispp.BackupManagementType = BackupManagementTypeAzureIaasVM
|
|
type Alias AzureIaaSVMProtectionPolicy
|
|
return json.Marshal(&struct {
|
|
Alias
|
|
}{
|
|
Alias: (Alias)(aispp),
|
|
})
|
|
}
|
|
|
|
// AsAzureIaaSVMProtectionPolicy is the ProtectionPolicy implementation for AzureIaaSVMProtectionPolicy.
|
|
func (aispp AzureIaaSVMProtectionPolicy) AsAzureIaaSVMProtectionPolicy() (*AzureIaaSVMProtectionPolicy, bool) {
|
|
return &aispp, true
|
|
}
|
|
|
|
// AsAzureSQLProtectionPolicy is the ProtectionPolicy implementation for AzureIaaSVMProtectionPolicy.
|
|
func (aispp AzureIaaSVMProtectionPolicy) AsAzureSQLProtectionPolicy() (*AzureSQLProtectionPolicy, bool) {
|
|
return nil, false
|
|
}
|
|
|
|
// AsMabProtectionPolicy is the ProtectionPolicy implementation for AzureIaaSVMProtectionPolicy.
|
|
func (aispp AzureIaaSVMProtectionPolicy) AsMabProtectionPolicy() (*MabProtectionPolicy, bool) {
|
|
return nil, false
|
|
}
|
|
|
|
// 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
|
|
}
|
|
var v *json.RawMessage
|
|
|
|
v = m["schedulePolicy"]
|
|
if v != nil {
|
|
schedulePolicy, err := unmarshalSchedulePolicy(*m["schedulePolicy"])
|
|
if err != nil {
|
|
return err
|
|
}
|
|
aispp.SchedulePolicy = schedulePolicy
|
|
}
|
|
|
|
v = m["retentionPolicy"]
|
|
if v != nil {
|
|
retentionPolicy, err := unmarshalRetentionPolicy(*m["retentionPolicy"])
|
|
if err != nil {
|
|
return err
|
|
}
|
|
aispp.RetentionPolicy = retentionPolicy
|
|
}
|
|
|
|
v = m["timeZone"]
|
|
if v != nil {
|
|
var timeZone string
|
|
err = json.Unmarshal(*m["timeZone"], &timeZone)
|
|
if err != nil {
|
|
return err
|
|
}
|
|
aispp.TimeZone = &timeZone
|
|
}
|
|
|
|
v = m["protectedItemsCount"]
|
|
if v != nil {
|
|
var protectedItemsCount int32
|
|
err = json.Unmarshal(*m["protectedItemsCount"], &protectedItemsCount)
|
|
if err != nil {
|
|
return err
|
|
}
|
|
aispp.ProtectedItemsCount = &protectedItemsCount
|
|
}
|
|
|
|
v = m["backupManagementType"]
|
|
if v != nil {
|
|
var backupManagementType BackupManagementType
|
|
err = json.Unmarshal(*m["backupManagementType"], &backupManagementType)
|
|
if err != nil {
|
|
return err
|
|
}
|
|
aispp.BackupManagementType = backupManagementType
|
|
}
|
|
|
|
return nil
|
|
}
|
|
|
|
// AzureSQLContainer is azure Sql workload-specific container.
|
|
type AzureSQLContainer struct {
|
|
FriendlyName *string `json:"friendlyName,omitempty"`
|
|
BackupManagementType BackupManagementType `json:"backupManagementType,omitempty"`
|
|
RegistrationStatus *string `json:"registrationStatus,omitempty"`
|
|
HealthStatus *string `json:"healthStatus,omitempty"`
|
|
ContainerType ContainerType `json:"containerType,omitempty"`
|
|
ProtectableObjectType ProtectableObjectType `json:"protectableObjectType,omitempty"`
|
|
}
|
|
|
|
// MarshalJSON is the custom marshaler for AzureSQLContainer.
|
|
func (asc AzureSQLContainer) MarshalJSON() ([]byte, error) {
|
|
asc.ProtectableObjectType = ProtectableObjectTypeAzureSQLContainer
|
|
type Alias AzureSQLContainer
|
|
return json.Marshal(&struct {
|
|
Alias
|
|
}{
|
|
Alias: (Alias)(asc),
|
|
})
|
|
}
|
|
|
|
// AsAzureBackupServerContainer is the ProtectionContainer implementation for AzureSQLContainer.
|
|
func (asc AzureSQLContainer) AsAzureBackupServerContainer() (*AzureBackupServerContainer, bool) {
|
|
return nil, false
|
|
}
|
|
|
|
// AsAzureIaaSClassicComputeVMContainer is the ProtectionContainer implementation for AzureSQLContainer.
|
|
func (asc AzureSQLContainer) AsAzureIaaSClassicComputeVMContainer() (*AzureIaaSClassicComputeVMContainer, bool) {
|
|
return nil, false
|
|
}
|
|
|
|
// AsAzureIaaSComputeVMContainer is the ProtectionContainer implementation for AzureSQLContainer.
|
|
func (asc AzureSQLContainer) AsAzureIaaSComputeVMContainer() (*AzureIaaSComputeVMContainer, bool) {
|
|
return nil, false
|
|
}
|
|
|
|
// AsAzureSQLContainer is the ProtectionContainer implementation for AzureSQLContainer.
|
|
func (asc AzureSQLContainer) AsAzureSQLContainer() (*AzureSQLContainer, bool) {
|
|
return &asc, true
|
|
}
|
|
|
|
// AsDpmContainer is the ProtectionContainer implementation for AzureSQLContainer.
|
|
func (asc AzureSQLContainer) AsDpmContainer() (*DpmContainer, bool) {
|
|
return nil, false
|
|
}
|
|
|
|
// AsIaaSVMContainer is the ProtectionContainer implementation for AzureSQLContainer.
|
|
func (asc AzureSQLContainer) AsIaaSVMContainer() (*IaaSVMContainer, bool) {
|
|
return nil, false
|
|
}
|
|
|
|
// AsMabContainer is the ProtectionContainer implementation for AzureSQLContainer.
|
|
func (asc AzureSQLContainer) AsMabContainer() (*MabContainer, bool) {
|
|
return nil, false
|
|
}
|
|
|
|
// AzureSQLProtectedItem is azure SQL workload-specific backup item.
|
|
type AzureSQLProtectedItem struct {
|
|
BackupManagementType BackupManagementType `json:"backupManagementType,omitempty"`
|
|
WorkloadType DataSourceType `json:"workloadType,omitempty"`
|
|
ContainerName *string `json:"containerName,omitempty"`
|
|
SourceResourceID *string `json:"sourceResourceId,omitempty"`
|
|
PolicyID *string `json:"policyId,omitempty"`
|
|
LastRecoveryPoint *date.Time `json:"lastRecoveryPoint,omitempty"`
|
|
ProtectedItemType ProtectedItemType `json:"protectedItemType,omitempty"`
|
|
ProtectedItemDataID *string `json:"protectedItemDataId,omitempty"`
|
|
ProtectionState ProtectedItemState `json:"protectionState,omitempty"`
|
|
ExtendedInfo *AzureSQLProtectedItemExtendedInfo `json:"extendedInfo,omitempty"`
|
|
}
|
|
|
|
// MarshalJSON is the custom marshaler for AzureSQLProtectedItem.
|
|
func (aspi AzureSQLProtectedItem) MarshalJSON() ([]byte, error) {
|
|
aspi.ProtectedItemType = ProtectedItemTypeMicrosoftSqlserversdatabases
|
|
type Alias AzureSQLProtectedItem
|
|
return json.Marshal(&struct {
|
|
Alias
|
|
}{
|
|
Alias: (Alias)(aspi),
|
|
})
|
|
}
|
|
|
|
// AsAzureIaaSClassicComputeVMProtectedItem is the ProtectedItem implementation for AzureSQLProtectedItem.
|
|
func (aspi AzureSQLProtectedItem) AsAzureIaaSClassicComputeVMProtectedItem() (*AzureIaaSClassicComputeVMProtectedItem, bool) {
|
|
return nil, false
|
|
}
|
|
|
|
// AsAzureIaaSComputeVMProtectedItem is the ProtectedItem implementation for AzureSQLProtectedItem.
|
|
func (aspi AzureSQLProtectedItem) AsAzureIaaSComputeVMProtectedItem() (*AzureIaaSComputeVMProtectedItem, bool) {
|
|
return nil, false
|
|
}
|
|
|
|
// AsAzureIaaSVMProtectedItem is the ProtectedItem implementation for AzureSQLProtectedItem.
|
|
func (aspi AzureSQLProtectedItem) AsAzureIaaSVMProtectedItem() (*AzureIaaSVMProtectedItem, bool) {
|
|
return nil, false
|
|
}
|
|
|
|
// AsAzureSQLProtectedItem is the ProtectedItem implementation for AzureSQLProtectedItem.
|
|
func (aspi AzureSQLProtectedItem) AsAzureSQLProtectedItem() (*AzureSQLProtectedItem, bool) {
|
|
return &aspi, true
|
|
}
|
|
|
|
// AsDPMProtectedItem is the ProtectedItem implementation for AzureSQLProtectedItem.
|
|
func (aspi AzureSQLProtectedItem) AsDPMProtectedItem() (*DPMProtectedItem, bool) {
|
|
return nil, false
|
|
}
|
|
|
|
// AsMabFileFolderProtectedItem is the ProtectedItem implementation for AzureSQLProtectedItem.
|
|
func (aspi AzureSQLProtectedItem) AsMabFileFolderProtectedItem() (*MabFileFolderProtectedItem, bool) {
|
|
return nil, false
|
|
}
|
|
|
|
// AzureSQLProtectedItemExtendedInfo is additional information on Azure Sql specific protected item.
|
|
type AzureSQLProtectedItemExtendedInfo struct {
|
|
OldestRecoveryPoint *date.Time `json:"oldestRecoveryPoint,omitempty"`
|
|
RecoveryPointCount *int32 `json:"recoveryPointCount,omitempty"`
|
|
PolicyState *string `json:"policyState,omitempty"`
|
|
}
|
|
|
|
// AzureSQLProtectionPolicy is azure SQL workload-specific backup policy.
|
|
type AzureSQLProtectionPolicy struct {
|
|
ProtectedItemsCount *int32 `json:"protectedItemsCount,omitempty"`
|
|
BackupManagementType BackupManagementType `json:"backupManagementType,omitempty"`
|
|
RetentionPolicy RetentionPolicy `json:"retentionPolicy,omitempty"`
|
|
}
|
|
|
|
// MarshalJSON is the custom marshaler for AzureSQLProtectionPolicy.
|
|
func (aspp AzureSQLProtectionPolicy) MarshalJSON() ([]byte, error) {
|
|
aspp.BackupManagementType = BackupManagementTypeAzureSQL
|
|
type Alias AzureSQLProtectionPolicy
|
|
return json.Marshal(&struct {
|
|
Alias
|
|
}{
|
|
Alias: (Alias)(aspp),
|
|
})
|
|
}
|
|
|
|
// AsAzureIaaSVMProtectionPolicy is the ProtectionPolicy implementation for AzureSQLProtectionPolicy.
|
|
func (aspp AzureSQLProtectionPolicy) AsAzureIaaSVMProtectionPolicy() (*AzureIaaSVMProtectionPolicy, bool) {
|
|
return nil, false
|
|
}
|
|
|
|
// AsAzureSQLProtectionPolicy is the ProtectionPolicy implementation for AzureSQLProtectionPolicy.
|
|
func (aspp AzureSQLProtectionPolicy) AsAzureSQLProtectionPolicy() (*AzureSQLProtectionPolicy, bool) {
|
|
return &aspp, true
|
|
}
|
|
|
|
// AsMabProtectionPolicy is the ProtectionPolicy implementation for AzureSQLProtectionPolicy.
|
|
func (aspp AzureSQLProtectionPolicy) AsMabProtectionPolicy() (*MabProtectionPolicy, bool) {
|
|
return nil, false
|
|
}
|
|
|
|
// 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
|
|
}
|
|
var v *json.RawMessage
|
|
|
|
v = m["retentionPolicy"]
|
|
if v != nil {
|
|
retentionPolicy, err := unmarshalRetentionPolicy(*m["retentionPolicy"])
|
|
if err != nil {
|
|
return err
|
|
}
|
|
aspp.RetentionPolicy = retentionPolicy
|
|
}
|
|
|
|
v = m["protectedItemsCount"]
|
|
if v != nil {
|
|
var protectedItemsCount int32
|
|
err = json.Unmarshal(*m["protectedItemsCount"], &protectedItemsCount)
|
|
if err != nil {
|
|
return err
|
|
}
|
|
aspp.ProtectedItemsCount = &protectedItemsCount
|
|
}
|
|
|
|
v = m["backupManagementType"]
|
|
if v != nil {
|
|
var backupManagementType BackupManagementType
|
|
err = json.Unmarshal(*m["backupManagementType"], &backupManagementType)
|
|
if err != nil {
|
|
return err
|
|
}
|
|
aspp.BackupManagementType = backupManagementType
|
|
}
|
|
|
|
return nil
|
|
}
|
|
|
|
// BackupEngineBase is the base backup engine class. All workload specific backup engines derive from this class.
|
|
type BackupEngineBase interface {
|
|
AsAzureBackupServerEngine() (*AzureBackupServerEngine, bool)
|
|
AsDpmBackupEngine() (*DpmBackupEngine, bool)
|
|
}
|
|
|
|
func unmarshalBackupEngineBase(body []byte) (BackupEngineBase, 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:
|
|
return nil, errors.New("Unsupported type")
|
|
}
|
|
}
|
|
func unmarshalBackupEngineBaseArray(body []byte) ([]BackupEngineBase, error) {
|
|
var rawMessages []*json.RawMessage
|
|
err := json.Unmarshal(body, &rawMessages)
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
|
|
bebArray := make([]BackupEngineBase, len(rawMessages))
|
|
|
|
for index, rawMessage := range rawMessages {
|
|
beb, err := unmarshalBackupEngineBase(*rawMessage)
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
bebArray[index] = beb
|
|
}
|
|
return bebArray, nil
|
|
}
|
|
|
|
// BackupEngineBaseResource is the base backup engine class. All workload specific backup engines derive from this
|
|
// class.
|
|
type BackupEngineBaseResource struct {
|
|
autorest.Response `json:"-"`
|
|
ID *string `json:"id,omitempty"`
|
|
Name *string `json:"name,omitempty"`
|
|
Type *string `json:"type,omitempty"`
|
|
Location *string `json:"location,omitempty"`
|
|
Tags *map[string]*string `json:"tags,omitempty"`
|
|
ETag *string `json:"eTag,omitempty"`
|
|
Properties BackupEngineBase `json:"properties,omitempty"`
|
|
}
|
|
|
|
// UnmarshalJSON is the custom unmarshaler for BackupEngineBaseResource struct.
|
|
func (bebr *BackupEngineBaseResource) UnmarshalJSON(body []byte) error {
|
|
var m map[string]*json.RawMessage
|
|
err := json.Unmarshal(body, &m)
|
|
if err != nil {
|
|
return err
|
|
}
|
|
var v *json.RawMessage
|
|
|
|
v = m["properties"]
|
|
if v != nil {
|
|
properties, err := unmarshalBackupEngineBase(*m["properties"])
|
|
if err != nil {
|
|
return err
|
|
}
|
|
bebr.Properties = properties
|
|
}
|
|
|
|
v = m["id"]
|
|
if v != nil {
|
|
var ID string
|
|
err = json.Unmarshal(*m["id"], &ID)
|
|
if err != nil {
|
|
return err
|
|
}
|
|
bebr.ID = &ID
|
|
}
|
|
|
|
v = m["name"]
|
|
if v != nil {
|
|
var name string
|
|
err = json.Unmarshal(*m["name"], &name)
|
|
if err != nil {
|
|
return err
|
|
}
|
|
bebr.Name = &name
|
|
}
|
|
|
|
v = m["type"]
|
|
if v != nil {
|
|
var typeVar string
|
|
err = json.Unmarshal(*m["type"], &typeVar)
|
|
if err != nil {
|
|
return err
|
|
}
|
|
bebr.Type = &typeVar
|
|
}
|
|
|
|
v = m["location"]
|
|
if v != nil {
|
|
var location string
|
|
err = json.Unmarshal(*m["location"], &location)
|
|
if err != nil {
|
|
return err
|
|
}
|
|
bebr.Location = &location
|
|
}
|
|
|
|
v = m["tags"]
|
|
if v != nil {
|
|
var tags map[string]*string
|
|
err = json.Unmarshal(*m["tags"], &tags)
|
|
if err != nil {
|
|
return err
|
|
}
|
|
bebr.Tags = &tags
|
|
}
|
|
|
|
v = m["eTag"]
|
|
if v != nil {
|
|
var eTag string
|
|
err = json.Unmarshal(*m["eTag"], &eTag)
|
|
if err != nil {
|
|
return err
|
|
}
|
|
bebr.ETag = &eTag
|
|
}
|
|
|
|
return nil
|
|
}
|
|
|
|
// BackupEngineBaseResourceList is list of BackupEngineBase resources
|
|
type BackupEngineBaseResourceList struct {
|
|
autorest.Response `json:"-"`
|
|
NextLink *string `json:"nextLink,omitempty"`
|
|
Value *[]BackupEngineBaseResource `json:"value,omitempty"`
|
|
}
|
|
|
|
// BackupEngineBaseResourceListPreparer prepares a request to retrieve the next set of results. It returns
|
|
// nil if no more results exist.
|
|
func (client BackupEngineBaseResourceList) BackupEngineBaseResourceListPreparer() (*http.Request, error) {
|
|
if client.NextLink == nil || len(to.String(client.NextLink)) <= 0 {
|
|
return nil, nil
|
|
}
|
|
return autorest.Prepare(&http.Request{},
|
|
autorest.AsJSON(),
|
|
autorest.AsGet(),
|
|
autorest.WithBaseURL(to.String(client.NextLink)))
|
|
}
|
|
|
|
// BackupEngineExtendedInfo is additional information on backup engine.
|
|
type BackupEngineExtendedInfo struct {
|
|
DatabaseName *string `json:"databaseName,omitempty"`
|
|
ProtectedItemsCount *int32 `json:"protectedItemsCount,omitempty"`
|
|
ProtectedServersCount *int32 `json:"protectedServersCount,omitempty"`
|
|
DiskCount *int32 `json:"diskCount,omitempty"`
|
|
UsedDiskSpace *float64 `json:"usedDiskSpace,omitempty"`
|
|
AvailableDiskSpace *float64 `json:"availableDiskSpace,omitempty"`
|
|
RefreshedAt *date.Time `json:"refreshedAt,omitempty"`
|
|
AzureProtectedInstances *int32 `json:"azureProtectedInstances,omitempty"`
|
|
}
|
|
|
|
// BackupManagementUsage is backup management usages of a vault.
|
|
type BackupManagementUsage struct {
|
|
Unit UsagesUnit `json:"unit,omitempty"`
|
|
QuotaPeriod *string `json:"quotaPeriod,omitempty"`
|
|
NextResetTime *date.Time `json:"nextResetTime,omitempty"`
|
|
CurrentValue *int64 `json:"currentValue,omitempty"`
|
|
Limit *int64 `json:"limit,omitempty"`
|
|
Name *NameInfo `json:"name,omitempty"`
|
|
}
|
|
|
|
// BackupManagementUsageList is backup management usage for vault.
|
|
type BackupManagementUsageList struct {
|
|
autorest.Response `json:"-"`
|
|
Value *[]BackupManagementUsage `json:"value,omitempty"`
|
|
}
|
|
|
|
// BackupRequest is base class for backup request. Workload-specific backup requests are derived from this class.
|
|
type BackupRequest interface {
|
|
AsIaasVMBackupRequest() (*IaasVMBackupRequest, bool)
|
|
}
|
|
|
|
func unmarshalBackupRequest(body []byte) (BackupRequest, error) {
|
|
var m map[string]interface{}
|
|
err := json.Unmarshal(body, &m)
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
|
|
switch m["objectType"] {
|
|
case string(ObjectTypeIaasVMBackupRequest):
|
|
var ivbr IaasVMBackupRequest
|
|
err := json.Unmarshal(body, &ivbr)
|
|
return ivbr, err
|
|
default:
|
|
return nil, errors.New("Unsupported type")
|
|
}
|
|
}
|
|
func unmarshalBackupRequestArray(body []byte) ([]BackupRequest, error) {
|
|
var rawMessages []*json.RawMessage
|
|
err := json.Unmarshal(body, &rawMessages)
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
|
|
brArray := make([]BackupRequest, len(rawMessages))
|
|
|
|
for index, rawMessage := range rawMessages {
|
|
br, err := unmarshalBackupRequest(*rawMessage)
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
brArray[index] = br
|
|
}
|
|
return brArray, nil
|
|
}
|
|
|
|
// BackupRequestResource is base class for backup request. Workload-specific backup requests are derived from this
|
|
// class.
|
|
type BackupRequestResource struct {
|
|
ID *string `json:"id,omitempty"`
|
|
Name *string `json:"name,omitempty"`
|
|
Type *string `json:"type,omitempty"`
|
|
Location *string `json:"location,omitempty"`
|
|
Tags *map[string]*string `json:"tags,omitempty"`
|
|
ETag *string `json:"eTag,omitempty"`
|
|
Properties BackupRequest `json:"properties,omitempty"`
|
|
}
|
|
|
|
// UnmarshalJSON is the custom unmarshaler for BackupRequestResource struct.
|
|
func (brr *BackupRequestResource) UnmarshalJSON(body []byte) error {
|
|
var m map[string]*json.RawMessage
|
|
err := json.Unmarshal(body, &m)
|
|
if err != nil {
|
|
return err
|
|
}
|
|
var v *json.RawMessage
|
|
|
|
v = m["properties"]
|
|
if v != nil {
|
|
properties, err := unmarshalBackupRequest(*m["properties"])
|
|
if err != nil {
|
|
return err
|
|
}
|
|
brr.Properties = properties
|
|
}
|
|
|
|
v = m["id"]
|
|
if v != nil {
|
|
var ID string
|
|
err = json.Unmarshal(*m["id"], &ID)
|
|
if err != nil {
|
|
return err
|
|
}
|
|
brr.ID = &ID
|
|
}
|
|
|
|
v = m["name"]
|
|
if v != nil {
|
|
var name string
|
|
err = json.Unmarshal(*m["name"], &name)
|
|
if err != nil {
|
|
return err
|
|
}
|
|
brr.Name = &name
|
|
}
|
|
|
|
v = m["type"]
|
|
if v != nil {
|
|
var typeVar string
|
|
err = json.Unmarshal(*m["type"], &typeVar)
|
|
if err != nil {
|
|
return err
|
|
}
|
|
brr.Type = &typeVar
|
|
}
|
|
|
|
v = m["location"]
|
|
if v != nil {
|
|
var location string
|
|
err = json.Unmarshal(*m["location"], &location)
|
|
if err != nil {
|
|
return err
|
|
}
|
|
brr.Location = &location
|
|
}
|
|
|
|
v = m["tags"]
|
|
if v != nil {
|
|
var tags map[string]*string
|
|
err = json.Unmarshal(*m["tags"], &tags)
|
|
if err != nil {
|
|
return err
|
|
}
|
|
brr.Tags = &tags
|
|
}
|
|
|
|
v = m["eTag"]
|
|
if v != nil {
|
|
var eTag string
|
|
err = json.Unmarshal(*m["eTag"], &eTag)
|
|
if err != nil {
|
|
return err
|
|
}
|
|
brr.ETag = &eTag
|
|
}
|
|
|
|
return nil
|
|
}
|
|
|
|
// BackupResourceConfig is the resource storage details.
|
|
type BackupResourceConfig struct {
|
|
StorageType StorageType `json:"storageType,omitempty"`
|
|
StorageTypeState StorageTypeState `json:"storageTypeState,omitempty"`
|
|
}
|
|
|
|
// BackupResourceConfigResource is the resource storage details.
|
|
type BackupResourceConfigResource struct {
|
|
autorest.Response `json:"-"`
|
|
ID *string `json:"id,omitempty"`
|
|
Name *string `json:"name,omitempty"`
|
|
Type *string `json:"type,omitempty"`
|
|
Location *string `json:"location,omitempty"`
|
|
Tags *map[string]*string `json:"tags,omitempty"`
|
|
ETag *string `json:"eTag,omitempty"`
|
|
Properties *BackupResourceConfig `json:"properties,omitempty"`
|
|
}
|
|
|
|
// BackupResourceVaultConfig is backup resource vault config details.
|
|
type BackupResourceVaultConfig struct {
|
|
StorageType StorageType `json:"storageType,omitempty"`
|
|
StorageTypeState StorageTypeState `json:"storageTypeState,omitempty"`
|
|
EnhancedSecurityState EnhancedSecurityState `json:"enhancedSecurityState,omitempty"`
|
|
}
|
|
|
|
// BackupResourceVaultConfigResource is backup resource vault config details.
|
|
type BackupResourceVaultConfigResource struct {
|
|
autorest.Response `json:"-"`
|
|
ID *string `json:"id,omitempty"`
|
|
Name *string `json:"name,omitempty"`
|
|
Type *string `json:"type,omitempty"`
|
|
Location *string `json:"location,omitempty"`
|
|
Tags *map[string]*string `json:"tags,omitempty"`
|
|
ETag *string `json:"eTag,omitempty"`
|
|
Properties *BackupResourceVaultConfig `json:"properties,omitempty"`
|
|
}
|
|
|
|
// BEKDetails is BEK is bitlocker encrpytion key.
|
|
type BEKDetails struct {
|
|
SecretURL *string `json:"secretUrl,omitempty"`
|
|
SecretVaultID *string `json:"secretVaultId,omitempty"`
|
|
SecretData *string `json:"secretData,omitempty"`
|
|
}
|
|
|
|
// BMSBackupEngineQueryObject is query parameters to fetch list of backup engines.
|
|
type BMSBackupEngineQueryObject struct {
|
|
Expand *string `json:"expand,omitempty"`
|
|
}
|
|
|
|
// BMSBackupEnginesQueryObject is query parameters to fetch list of backup engines.
|
|
type BMSBackupEnginesQueryObject struct {
|
|
BackupManagementType BackupManagementType `json:"backupManagementType,omitempty"`
|
|
FriendlyName *string `json:"friendlyName,omitempty"`
|
|
Expand *string `json:"expand,omitempty"`
|
|
}
|
|
|
|
// BMSBackupSummariesQueryObject is query parameters to fetch backup summaries.
|
|
type BMSBackupSummariesQueryObject struct {
|
|
Type Type `json:"type,omitempty"`
|
|
}
|
|
|
|
// BMSContainerQueryObject is the query filters that can be used with the list containers API.
|
|
type BMSContainerQueryObject struct {
|
|
BackupManagementType BackupManagementType `json:"backupManagementType,omitempty"`
|
|
ContainerType ContainerType `json:"containerType,omitempty"`
|
|
BackupEngineName *string `json:"backupEngineName,omitempty"`
|
|
Status *string `json:"status,omitempty"`
|
|
FriendlyName *string `json:"friendlyName,omitempty"`
|
|
}
|
|
|
|
// BMSPOQueryObject is filters to list items that can be backed up.
|
|
type BMSPOQueryObject struct {
|
|
BackupManagementType BackupManagementType `json:"backupManagementType,omitempty"`
|
|
Status *string `json:"status,omitempty"`
|
|
FriendlyName *string `json:"friendlyName,omitempty"`
|
|
}
|
|
|
|
// BMSRPQueryObject is filters to list backup copies.
|
|
type BMSRPQueryObject struct {
|
|
StartDate *date.Time `json:"startDate,omitempty"`
|
|
EndDate *date.Time `json:"endDate,omitempty"`
|
|
}
|
|
|
|
// ClientDiscoveryDisplay is localized display information of an operation.
|
|
type ClientDiscoveryDisplay struct {
|
|
Provider *string `json:"Provider,omitempty"`
|
|
Resource *string `json:"Resource,omitempty"`
|
|
Operation *string `json:"Operation,omitempty"`
|
|
Description *string `json:"Description,omitempty"`
|
|
}
|
|
|
|
// ClientDiscoveryForLogSpecification is class to represent shoebox log specification in json client discovery.
|
|
type ClientDiscoveryForLogSpecification struct {
|
|
Name *string `json:"name,omitempty"`
|
|
DisplayName *string `json:"displayName,omitempty"`
|
|
BlobDuration *string `json:"blobDuration,omitempty"`
|
|
}
|
|
|
|
// ClientDiscoveryForProperties is class to represent shoebox properties in json client discovery.
|
|
type ClientDiscoveryForProperties struct {
|
|
ServiceSpecification *ClientDiscoveryForServiceSpecification `json:"serviceSpecification,omitempty"`
|
|
}
|
|
|
|
// ClientDiscoveryForServiceSpecification is class to represent shoebox service specification in json client discovery.
|
|
type ClientDiscoveryForServiceSpecification struct {
|
|
LogSpecifications *[]ClientDiscoveryForLogSpecification `json:"logSpecifications,omitempty"`
|
|
}
|
|
|
|
// ClientDiscoveryResponse is operations List response which contains list of available APIs.
|
|
type ClientDiscoveryResponse struct {
|
|
autorest.Response `json:"-"`
|
|
Value *[]ClientDiscoveryValueForSingleAPI `json:"Value,omitempty"`
|
|
NextLink *string `json:"NextLink,omitempty"`
|
|
}
|
|
|
|
// ClientDiscoveryResponsePreparer prepares a request to retrieve the next set of results. It returns
|
|
// nil if no more results exist.
|
|
func (client ClientDiscoveryResponse) ClientDiscoveryResponsePreparer() (*http.Request, error) {
|
|
if client.NextLink == nil || len(to.String(client.NextLink)) <= 0 {
|
|
return nil, nil
|
|
}
|
|
return autorest.Prepare(&http.Request{},
|
|
autorest.AsJSON(),
|
|
autorest.AsGet(),
|
|
autorest.WithBaseURL(to.String(client.NextLink)))
|
|
}
|
|
|
|
// ClientDiscoveryValueForSingleAPI is available operation details.
|
|
type ClientDiscoveryValueForSingleAPI struct {
|
|
Name *string `json:"Name,omitempty"`
|
|
Display *ClientDiscoveryDisplay `json:"Display,omitempty"`
|
|
Origin *string `json:"Origin,omitempty"`
|
|
Properties *ClientDiscoveryForProperties `json:"Properties,omitempty"`
|
|
}
|
|
|
|
// ClientScriptForConnect is client script details for file / folder restore.
|
|
type ClientScriptForConnect struct {
|
|
ScriptContent *string `json:"scriptContent,omitempty"`
|
|
ScriptExtension *string `json:"scriptExtension,omitempty"`
|
|
OsType *string `json:"osType,omitempty"`
|
|
URL *string `json:"url,omitempty"`
|
|
ScriptNameSuffix *string `json:"scriptNameSuffix,omitempty"`
|
|
}
|
|
|
|
// DailyRetentionFormat is daily retention format.
|
|
type DailyRetentionFormat struct {
|
|
DaysOfTheMonth *[]Day `json:"daysOfTheMonth,omitempty"`
|
|
}
|
|
|
|
// DailyRetentionSchedule is daily retention schedule.
|
|
type DailyRetentionSchedule struct {
|
|
RetentionTimes *[]date.Time `json:"retentionTimes,omitempty"`
|
|
RetentionDuration *RetentionDuration `json:"retentionDuration,omitempty"`
|
|
}
|
|
|
|
// Day is day of the week.
|
|
type Day struct {
|
|
Date *int32 `json:"date,omitempty"`
|
|
IsLast *bool `json:"isLast,omitempty"`
|
|
}
|
|
|
|
// DpmBackupEngine is data Protection Manager (DPM) specific backup engine.
|
|
type DpmBackupEngine struct {
|
|
FriendlyName *string `json:"friendlyName,omitempty"`
|
|
BackupManagementType BackupManagementType `json:"backupManagementType,omitempty"`
|
|
RegistrationStatus *string `json:"registrationStatus,omitempty"`
|
|
BackupEngineState *string `json:"backupEngineState,omitempty"`
|
|
HealthStatus *string `json:"healthStatus,omitempty"`
|
|
CanReRegister *bool `json:"canReRegister,omitempty"`
|
|
BackupEngineID *string `json:"backupEngineId,omitempty"`
|
|
DpmVersion *string `json:"dpmVersion,omitempty"`
|
|
AzureBackupAgentVersion *string `json:"azureBackupAgentVersion,omitempty"`
|
|
IsAzureBackupAgentUpgradeAvailable *bool `json:"isAzureBackupAgentUpgradeAvailable,omitempty"`
|
|
IsDPMUpgradeAvailable *bool `json:"isDPMUpgradeAvailable,omitempty"`
|
|
ExtendedInfo *BackupEngineExtendedInfo `json:"extendedInfo,omitempty"`
|
|
BackupEngineType BackupEngineType `json:"backupEngineType,omitempty"`
|
|
}
|
|
|
|
// MarshalJSON is the custom marshaler for DpmBackupEngine.
|
|
func (dbe DpmBackupEngine) MarshalJSON() ([]byte, error) {
|
|
dbe.BackupEngineType = BackupEngineTypeDpmBackupEngine
|
|
type Alias DpmBackupEngine
|
|
return json.Marshal(&struct {
|
|
Alias
|
|
}{
|
|
Alias: (Alias)(dbe),
|
|
})
|
|
}
|
|
|
|
// AsAzureBackupServerEngine is the BackupEngineBase implementation for DpmBackupEngine.
|
|
func (dbe DpmBackupEngine) AsAzureBackupServerEngine() (*AzureBackupServerEngine, bool) {
|
|
return nil, false
|
|
}
|
|
|
|
// AsDpmBackupEngine is the BackupEngineBase implementation for DpmBackupEngine.
|
|
func (dbe DpmBackupEngine) AsDpmBackupEngine() (*DpmBackupEngine, bool) {
|
|
return &dbe, true
|
|
}
|
|
|
|
// DpmContainer is DPM workload-specific protection container.
|
|
type DpmContainer struct {
|
|
FriendlyName *string `json:"friendlyName,omitempty"`
|
|
BackupManagementType BackupManagementType `json:"backupManagementType,omitempty"`
|
|
RegistrationStatus *string `json:"registrationStatus,omitempty"`
|
|
HealthStatus *string `json:"healthStatus,omitempty"`
|
|
ContainerType ContainerType `json:"containerType,omitempty"`
|
|
ProtectableObjectType ProtectableObjectType `json:"protectableObjectType,omitempty"`
|
|
CanReRegister *bool `json:"canReRegister,omitempty"`
|
|
ContainerID *string `json:"containerId,omitempty"`
|
|
ProtectedItemCount *int64 `json:"protectedItemCount,omitempty"`
|
|
DpmAgentVersion *string `json:"dpmAgentVersion,omitempty"`
|
|
DPMServers *[]string `json:"DPMServers,omitempty"`
|
|
UpgradeAvailable *bool `json:"UpgradeAvailable,omitempty"`
|
|
ProtectionStatus *string `json:"protectionStatus,omitempty"`
|
|
ExtendedInfo *DPMContainerExtendedInfo `json:"extendedInfo,omitempty"`
|
|
}
|
|
|
|
// MarshalJSON is the custom marshaler for DpmContainer.
|
|
func (dc DpmContainer) MarshalJSON() ([]byte, error) {
|
|
dc.ProtectableObjectType = ProtectableObjectTypeDPMContainer
|
|
type Alias DpmContainer
|
|
return json.Marshal(&struct {
|
|
Alias
|
|
}{
|
|
Alias: (Alias)(dc),
|
|
})
|
|
}
|
|
|
|
// AsAzureBackupServerContainer is the ProtectionContainer implementation for DpmContainer.
|
|
func (dc DpmContainer) AsAzureBackupServerContainer() (*AzureBackupServerContainer, bool) {
|
|
return nil, false
|
|
}
|
|
|
|
// AsAzureIaaSClassicComputeVMContainer is the ProtectionContainer implementation for DpmContainer.
|
|
func (dc DpmContainer) AsAzureIaaSClassicComputeVMContainer() (*AzureIaaSClassicComputeVMContainer, bool) {
|
|
return nil, false
|
|
}
|
|
|
|
// AsAzureIaaSComputeVMContainer is the ProtectionContainer implementation for DpmContainer.
|
|
func (dc DpmContainer) AsAzureIaaSComputeVMContainer() (*AzureIaaSComputeVMContainer, bool) {
|
|
return nil, false
|
|
}
|
|
|
|
// AsAzureSQLContainer is the ProtectionContainer implementation for DpmContainer.
|
|
func (dc DpmContainer) AsAzureSQLContainer() (*AzureSQLContainer, bool) {
|
|
return nil, false
|
|
}
|
|
|
|
// AsDpmContainer is the ProtectionContainer implementation for DpmContainer.
|
|
func (dc DpmContainer) AsDpmContainer() (*DpmContainer, bool) {
|
|
return &dc, true
|
|
}
|
|
|
|
// AsIaaSVMContainer is the ProtectionContainer implementation for DpmContainer.
|
|
func (dc DpmContainer) AsIaaSVMContainer() (*IaaSVMContainer, bool) {
|
|
return nil, false
|
|
}
|
|
|
|
// AsMabContainer is the ProtectionContainer implementation for DpmContainer.
|
|
func (dc DpmContainer) AsMabContainer() (*MabContainer, bool) {
|
|
return nil, false
|
|
}
|
|
|
|
// DPMContainerExtendedInfo is additional information of the DPMContainer.
|
|
type DPMContainerExtendedInfo struct {
|
|
LastRefreshedAt *date.Time `json:"lastRefreshedAt,omitempty"`
|
|
}
|
|
|
|
// DpmErrorInfo is DPM workload-specific error information.
|
|
type DpmErrorInfo struct {
|
|
ErrorString *string `json:"errorString,omitempty"`
|
|
Recommendations *[]string `json:"recommendations,omitempty"`
|
|
}
|
|
|
|
// DpmJob is DPM workload-specifc job object.
|
|
type DpmJob struct {
|
|
EntityFriendlyName *string `json:"entityFriendlyName,omitempty"`
|
|
BackupManagementType BackupManagementType `json:"backupManagementType,omitempty"`
|
|
Operation *string `json:"operation,omitempty"`
|
|
Status *string `json:"status,omitempty"`
|
|
StartTime *date.Time `json:"startTime,omitempty"`
|
|
EndTime *date.Time `json:"endTime,omitempty"`
|
|
ActivityID *string `json:"activityId,omitempty"`
|
|
JobType JobType `json:"jobType,omitempty"`
|
|
Duration *string `json:"duration,omitempty"`
|
|
DpmServerName *string `json:"dpmServerName,omitempty"`
|
|
ContainerName *string `json:"containerName,omitempty"`
|
|
ContainerType *string `json:"containerType,omitempty"`
|
|
WorkloadType *string `json:"workloadType,omitempty"`
|
|
ActionsInfo *[]JobSupportedAction `json:"actionsInfo,omitempty"`
|
|
ErrorDetails *[]DpmErrorInfo `json:"errorDetails,omitempty"`
|
|
ExtendedInfo *DpmJobExtendedInfo `json:"extendedInfo,omitempty"`
|
|
}
|
|
|
|
// MarshalJSON is the custom marshaler for DpmJob.
|
|
func (dj DpmJob) MarshalJSON() ([]byte, error) {
|
|
dj.JobType = JobTypeDpmJob
|
|
type Alias DpmJob
|
|
return json.Marshal(&struct {
|
|
Alias
|
|
}{
|
|
Alias: (Alias)(dj),
|
|
})
|
|
}
|
|
|
|
// AsAzureIaaSVMJob is the Job implementation for DpmJob.
|
|
func (dj DpmJob) AsAzureIaaSVMJob() (*AzureIaaSVMJob, bool) {
|
|
return nil, false
|
|
}
|
|
|
|
// AsDpmJob is the Job implementation for DpmJob.
|
|
func (dj DpmJob) AsDpmJob() (*DpmJob, bool) {
|
|
return &dj, true
|
|
}
|
|
|
|
// AsMabJob is the Job implementation for DpmJob.
|
|
func (dj DpmJob) AsMabJob() (*MabJob, bool) {
|
|
return nil, false
|
|
}
|
|
|
|
// DpmJobExtendedInfo is additional information on the DPM workload-specific job.
|
|
type DpmJobExtendedInfo struct {
|
|
TasksList *[]DpmJobTaskDetails `json:"tasksList,omitempty"`
|
|
PropertyBag *map[string]*string `json:"propertyBag,omitempty"`
|
|
DynamicErrorMessage *string `json:"dynamicErrorMessage,omitempty"`
|
|
}
|
|
|
|
// DpmJobTaskDetails is DPM workload-specific job task details.
|
|
type DpmJobTaskDetails struct {
|
|
TaskID *string `json:"taskId,omitempty"`
|
|
StartTime *date.Time `json:"startTime,omitempty"`
|
|
EndTime *date.Time `json:"endTime,omitempty"`
|
|
Duration *string `json:"duration,omitempty"`
|
|
Status *string `json:"status,omitempty"`
|
|
}
|
|
|
|
// DPMProtectedItem is additional information on Backup engine specific backup item.
|
|
type DPMProtectedItem struct {
|
|
BackupManagementType BackupManagementType `json:"backupManagementType,omitempty"`
|
|
WorkloadType DataSourceType `json:"workloadType,omitempty"`
|
|
ContainerName *string `json:"containerName,omitempty"`
|
|
SourceResourceID *string `json:"sourceResourceId,omitempty"`
|
|
PolicyID *string `json:"policyId,omitempty"`
|
|
LastRecoveryPoint *date.Time `json:"lastRecoveryPoint,omitempty"`
|
|
ProtectedItemType ProtectedItemType `json:"protectedItemType,omitempty"`
|
|
FriendlyName *string `json:"friendlyName,omitempty"`
|
|
BackupEngineName *string `json:"backupEngineName,omitempty"`
|
|
ProtectionState ProtectedItemState `json:"protectionState,omitempty"`
|
|
IsScheduledForDeferredDelete *bool `json:"isScheduledForDeferredDelete,omitempty"`
|
|
ExtendedInfo *DPMProtectedItemExtendedInfo `json:"extendedInfo,omitempty"`
|
|
}
|
|
|
|
// MarshalJSON is the custom marshaler for DPMProtectedItem.
|
|
func (dpi DPMProtectedItem) MarshalJSON() ([]byte, error) {
|
|
dpi.ProtectedItemType = ProtectedItemTypeDPMProtectedItem
|
|
type Alias DPMProtectedItem
|
|
return json.Marshal(&struct {
|
|
Alias
|
|
}{
|
|
Alias: (Alias)(dpi),
|
|
})
|
|
}
|
|
|
|
// AsAzureIaaSClassicComputeVMProtectedItem is the ProtectedItem implementation for DPMProtectedItem.
|
|
func (dpi DPMProtectedItem) AsAzureIaaSClassicComputeVMProtectedItem() (*AzureIaaSClassicComputeVMProtectedItem, bool) {
|
|
return nil, false
|
|
}
|
|
|
|
// AsAzureIaaSComputeVMProtectedItem is the ProtectedItem implementation for DPMProtectedItem.
|
|
func (dpi DPMProtectedItem) AsAzureIaaSComputeVMProtectedItem() (*AzureIaaSComputeVMProtectedItem, bool) {
|
|
return nil, false
|
|
}
|
|
|
|
// AsAzureIaaSVMProtectedItem is the ProtectedItem implementation for DPMProtectedItem.
|
|
func (dpi DPMProtectedItem) AsAzureIaaSVMProtectedItem() (*AzureIaaSVMProtectedItem, bool) {
|
|
return nil, false
|
|
}
|
|
|
|
// AsAzureSQLProtectedItem is the ProtectedItem implementation for DPMProtectedItem.
|
|
func (dpi DPMProtectedItem) AsAzureSQLProtectedItem() (*AzureSQLProtectedItem, bool) {
|
|
return nil, false
|
|
}
|
|
|
|
// AsDPMProtectedItem is the ProtectedItem implementation for DPMProtectedItem.
|
|
func (dpi DPMProtectedItem) AsDPMProtectedItem() (*DPMProtectedItem, bool) {
|
|
return &dpi, true
|
|
}
|
|
|
|
// AsMabFileFolderProtectedItem is the ProtectedItem implementation for DPMProtectedItem.
|
|
func (dpi DPMProtectedItem) AsMabFileFolderProtectedItem() (*MabFileFolderProtectedItem, bool) {
|
|
return nil, false
|
|
}
|
|
|
|
// DPMProtectedItemExtendedInfo is additional information of DPM Protected item.
|
|
type DPMProtectedItemExtendedInfo struct {
|
|
ProtectableObjectLoadPath *map[string]*string `json:"protectableObjectLoadPath,omitempty"`
|
|
Protected *bool `json:"protected,omitempty"`
|
|
IsPresentOnCloud *bool `json:"isPresentOnCloud,omitempty"`
|
|
LastBackupStatus *string `json:"lastBackupStatus,omitempty"`
|
|
LastRefreshedAt *date.Time `json:"lastRefreshedAt,omitempty"`
|
|
OldestRecoveryPoint *date.Time `json:"oldestRecoveryPoint,omitempty"`
|
|
RecoveryPointCount *int32 `json:"recoveryPointCount,omitempty"`
|
|
OnPremiseOldestRecoveryPoint *date.Time `json:"onPremiseOldestRecoveryPoint,omitempty"`
|
|
OnPremiseLatestRecoveryPoint *date.Time `json:"onPremiseLatestRecoveryPoint,omitempty"`
|
|
OnPremiseRecoveryPointCount *int32 `json:"onPremiseRecoveryPointCount,omitempty"`
|
|
IsCollocated *bool `json:"isCollocated,omitempty"`
|
|
ProtectionGroupName *string `json:"protectionGroupName,omitempty"`
|
|
DiskStorageUsedInBytes *string `json:"diskStorageUsedInBytes,omitempty"`
|
|
TotalDiskStorageSizeInBytes *string `json:"totalDiskStorageSizeInBytes,omitempty"`
|
|
}
|
|
|
|
// EncryptionDetails is details needed if the VM was encrypted at the time of backup.
|
|
type EncryptionDetails struct {
|
|
EncryptionEnabled *bool `json:"encryptionEnabled,omitempty"`
|
|
KekURL *string `json:"kekUrl,omitempty"`
|
|
SecretKeyURL *string `json:"secretKeyUrl,omitempty"`
|
|
KekVaultID *string `json:"kekVaultId,omitempty"`
|
|
SecretKeyVaultID *string `json:"secretKeyVaultId,omitempty"`
|
|
}
|
|
|
|
// ExportJobsOperationResultInfo is this class is used to send blob details after exporting jobs.
|
|
type ExportJobsOperationResultInfo struct {
|
|
ObjectType ObjectTypeOperationResultInfoBase `json:"objectType,omitempty"`
|
|
BlobURL *string `json:"blobUrl,omitempty"`
|
|
BlobSasKey *string `json:"blobSasKey,omitempty"`
|
|
}
|
|
|
|
// MarshalJSON is the custom marshaler for ExportJobsOperationResultInfo.
|
|
func (ejori ExportJobsOperationResultInfo) MarshalJSON() ([]byte, error) {
|
|
ejori.ObjectType = ObjectTypeExportJobsOperationResultInfo
|
|
type Alias ExportJobsOperationResultInfo
|
|
return json.Marshal(&struct {
|
|
Alias
|
|
}{
|
|
Alias: (Alias)(ejori),
|
|
})
|
|
}
|
|
|
|
// AsExportJobsOperationResultInfo is the OperationResultInfoBase implementation for ExportJobsOperationResultInfo.
|
|
func (ejori ExportJobsOperationResultInfo) AsExportJobsOperationResultInfo() (*ExportJobsOperationResultInfo, bool) {
|
|
return &ejori, true
|
|
}
|
|
|
|
// AsOperationResultInfo is the OperationResultInfoBase implementation for ExportJobsOperationResultInfo.
|
|
func (ejori ExportJobsOperationResultInfo) AsOperationResultInfo() (*OperationResultInfo, bool) {
|
|
return nil, false
|
|
}
|
|
|
|
// GenericRecoveryPoint is generic backup copy.
|
|
type GenericRecoveryPoint struct {
|
|
ObjectType ObjectTypeRecoveryPoint `json:"objectType,omitempty"`
|
|
FriendlyName *string `json:"friendlyName,omitempty"`
|
|
RecoveryPointType *string `json:"recoveryPointType,omitempty"`
|
|
RecoveryPointTime *date.Time `json:"recoveryPointTime,omitempty"`
|
|
RecoveryPointAdditionalInfo *string `json:"recoveryPointAdditionalInfo,omitempty"`
|
|
}
|
|
|
|
// MarshalJSON is the custom marshaler for GenericRecoveryPoint.
|
|
func (grp GenericRecoveryPoint) MarshalJSON() ([]byte, error) {
|
|
grp.ObjectType = ObjectTypeGenericRecoveryPoint
|
|
type Alias GenericRecoveryPoint
|
|
return json.Marshal(&struct {
|
|
Alias
|
|
}{
|
|
Alias: (Alias)(grp),
|
|
})
|
|
}
|
|
|
|
// AsGenericRecoveryPoint is the RecoveryPoint implementation for GenericRecoveryPoint.
|
|
func (grp GenericRecoveryPoint) AsGenericRecoveryPoint() (*GenericRecoveryPoint, bool) {
|
|
return &grp, true
|
|
}
|
|
|
|
// AsIaasVMRecoveryPoint is the RecoveryPoint implementation for GenericRecoveryPoint.
|
|
func (grp GenericRecoveryPoint) AsIaasVMRecoveryPoint() (*IaasVMRecoveryPoint, bool) {
|
|
return nil, false
|
|
}
|
|
|
|
// GetProtectedItemQueryObject is filters to list backup items.
|
|
type GetProtectedItemQueryObject struct {
|
|
Expand *string `json:"expand,omitempty"`
|
|
}
|
|
|
|
// IaasVMBackupRequest is iaaS VM workload-specific backup request.
|
|
type IaasVMBackupRequest struct {
|
|
ObjectType ObjectType `json:"objectType,omitempty"`
|
|
RecoveryPointExpiryTimeInUTC *date.Time `json:"recoveryPointExpiryTimeInUTC,omitempty"`
|
|
}
|
|
|
|
// MarshalJSON is the custom marshaler for IaasVMBackupRequest.
|
|
func (ivbr IaasVMBackupRequest) MarshalJSON() ([]byte, error) {
|
|
ivbr.ObjectType = ObjectTypeIaasVMBackupRequest
|
|
type Alias IaasVMBackupRequest
|
|
return json.Marshal(&struct {
|
|
Alias
|
|
}{
|
|
Alias: (Alias)(ivbr),
|
|
})
|
|
}
|
|
|
|
// AsIaasVMBackupRequest is the BackupRequest implementation for IaasVMBackupRequest.
|
|
func (ivbr IaasVMBackupRequest) AsIaasVMBackupRequest() (*IaasVMBackupRequest, bool) {
|
|
return &ivbr, true
|
|
}
|
|
|
|
// IaaSVMContainer is iaaS VM workload-specific container.
|
|
type IaaSVMContainer struct {
|
|
FriendlyName *string `json:"friendlyName,omitempty"`
|
|
BackupManagementType BackupManagementType `json:"backupManagementType,omitempty"`
|
|
RegistrationStatus *string `json:"registrationStatus,omitempty"`
|
|
HealthStatus *string `json:"healthStatus,omitempty"`
|
|
ContainerType ContainerType `json:"containerType,omitempty"`
|
|
ProtectableObjectType ProtectableObjectType `json:"protectableObjectType,omitempty"`
|
|
VirtualMachineID *string `json:"virtualMachineId,omitempty"`
|
|
VirtualMachineVersion *string `json:"virtualMachineVersion,omitempty"`
|
|
ResourceGroup *string `json:"resourceGroup,omitempty"`
|
|
}
|
|
|
|
// MarshalJSON is the custom marshaler for IaaSVMContainer.
|
|
func (isc IaaSVMContainer) MarshalJSON() ([]byte, error) {
|
|
isc.ProtectableObjectType = ProtectableObjectTypeIaaSVMContainer
|
|
type Alias IaaSVMContainer
|
|
return json.Marshal(&struct {
|
|
Alias
|
|
}{
|
|
Alias: (Alias)(isc),
|
|
})
|
|
}
|
|
|
|
// AsAzureBackupServerContainer is the ProtectionContainer implementation for IaaSVMContainer.
|
|
func (isc IaaSVMContainer) AsAzureBackupServerContainer() (*AzureBackupServerContainer, bool) {
|
|
return nil, false
|
|
}
|
|
|
|
// AsAzureIaaSClassicComputeVMContainer is the ProtectionContainer implementation for IaaSVMContainer.
|
|
func (isc IaaSVMContainer) AsAzureIaaSClassicComputeVMContainer() (*AzureIaaSClassicComputeVMContainer, bool) {
|
|
return nil, false
|
|
}
|
|
|
|
// AsAzureIaaSComputeVMContainer is the ProtectionContainer implementation for IaaSVMContainer.
|
|
func (isc IaaSVMContainer) AsAzureIaaSComputeVMContainer() (*AzureIaaSComputeVMContainer, bool) {
|
|
return nil, false
|
|
}
|
|
|
|
// AsAzureSQLContainer is the ProtectionContainer implementation for IaaSVMContainer.
|
|
func (isc IaaSVMContainer) AsAzureSQLContainer() (*AzureSQLContainer, bool) {
|
|
return nil, false
|
|
}
|
|
|
|
// AsDpmContainer is the ProtectionContainer implementation for IaaSVMContainer.
|
|
func (isc IaaSVMContainer) AsDpmContainer() (*DpmContainer, bool) {
|
|
return nil, false
|
|
}
|
|
|
|
// AsIaaSVMContainer is the ProtectionContainer implementation for IaaSVMContainer.
|
|
func (isc IaaSVMContainer) AsIaaSVMContainer() (*IaaSVMContainer, bool) {
|
|
return &isc, true
|
|
}
|
|
|
|
// AsMabContainer is the ProtectionContainer implementation for IaaSVMContainer.
|
|
func (isc IaaSVMContainer) AsMabContainer() (*MabContainer, bool) {
|
|
return nil, false
|
|
}
|
|
|
|
// IaasVMILRRegistrationRequest is restore files/folders from a backup copy of IaaS VM.
|
|
type IaasVMILRRegistrationRequest struct {
|
|
ObjectType ObjectTypeILRRequest `json:"objectType,omitempty"`
|
|
RecoveryPointID *string `json:"recoveryPointId,omitempty"`
|
|
VirtualMachineID *string `json:"virtualMachineId,omitempty"`
|
|
InitiatorName *string `json:"initiatorName,omitempty"`
|
|
RenewExistingRegistration *bool `json:"renewExistingRegistration,omitempty"`
|
|
}
|
|
|
|
// MarshalJSON is the custom marshaler for IaasVMILRRegistrationRequest.
|
|
func (ivrr IaasVMILRRegistrationRequest) MarshalJSON() ([]byte, error) {
|
|
ivrr.ObjectType = ObjectTypeIaasVMILRRegistrationRequest
|
|
type Alias IaasVMILRRegistrationRequest
|
|
return json.Marshal(&struct {
|
|
Alias
|
|
}{
|
|
Alias: (Alias)(ivrr),
|
|
})
|
|
}
|
|
|
|
// AsIaasVMILRRegistrationRequest is the ILRRequest implementation for IaasVMILRRegistrationRequest.
|
|
func (ivrr IaasVMILRRegistrationRequest) AsIaasVMILRRegistrationRequest() (*IaasVMILRRegistrationRequest, bool) {
|
|
return &ivrr, true
|
|
}
|
|
|
|
// IaaSVMProtectableItem is iaaS VM workload-specific backup item.
|
|
type IaaSVMProtectableItem struct {
|
|
BackupManagementType *string `json:"backupManagementType,omitempty"`
|
|
FriendlyName *string `json:"friendlyName,omitempty"`
|
|
ProtectionState ProtectionStatus `json:"protectionState,omitempty"`
|
|
ProtectableItemType ProtectableItemType `json:"protectableItemType,omitempty"`
|
|
VirtualMachineID *string `json:"virtualMachineId,omitempty"`
|
|
}
|
|
|
|
// MarshalJSON is the custom marshaler for IaaSVMProtectableItem.
|
|
func (ispi IaaSVMProtectableItem) MarshalJSON() ([]byte, error) {
|
|
ispi.ProtectableItemType = ProtectableItemTypeIaaSVMProtectableItem
|
|
type Alias IaaSVMProtectableItem
|
|
return json.Marshal(&struct {
|
|
Alias
|
|
}{
|
|
Alias: (Alias)(ispi),
|
|
})
|
|
}
|
|
|
|
// AsAzureIaaSClassicComputeVMProtectableItem is the WorkloadProtectableItem implementation for IaaSVMProtectableItem.
|
|
func (ispi IaaSVMProtectableItem) AsAzureIaaSClassicComputeVMProtectableItem() (*AzureIaaSClassicComputeVMProtectableItem, bool) {
|
|
return nil, false
|
|
}
|
|
|
|
// AsAzureIaaSComputeVMProtectableItem is the WorkloadProtectableItem implementation for IaaSVMProtectableItem.
|
|
func (ispi IaaSVMProtectableItem) AsAzureIaaSComputeVMProtectableItem() (*AzureIaaSComputeVMProtectableItem, bool) {
|
|
return nil, false
|
|
}
|
|
|
|
// AsIaaSVMProtectableItem is the WorkloadProtectableItem implementation for IaaSVMProtectableItem.
|
|
func (ispi IaaSVMProtectableItem) AsIaaSVMProtectableItem() (*IaaSVMProtectableItem, bool) {
|
|
return &ispi, true
|
|
}
|
|
|
|
// IaasVMRecoveryPoint is iaaS VM workload specific backup copy.
|
|
type IaasVMRecoveryPoint struct {
|
|
ObjectType ObjectTypeRecoveryPoint `json:"objectType,omitempty"`
|
|
RecoveryPointType *string `json:"recoveryPointType,omitempty"`
|
|
RecoveryPointTime *date.Time `json:"recoveryPointTime,omitempty"`
|
|
RecoveryPointAdditionalInfo *string `json:"recoveryPointAdditionalInfo,omitempty"`
|
|
SourceVMStorageType *string `json:"sourceVMStorageType,omitempty"`
|
|
IsSourceVMEncrypted *bool `json:"isSourceVMEncrypted,omitempty"`
|
|
KeyAndSecret *KeyAndSecretDetails `json:"keyAndSecret,omitempty"`
|
|
IsInstantILRSessionActive *bool `json:"isInstantILRSessionActive,omitempty"`
|
|
RecoveryPointTierDetails *[]RecoveryPointTierInformation `json:"recoveryPointTierDetails,omitempty"`
|
|
IsManagedVirtualMachine *bool `json:"isManagedVirtualMachine,omitempty"`
|
|
VirtualMachineSize *string `json:"virtualMachineSize,omitempty"`
|
|
OriginalStorageAccountOption *bool `json:"originalStorageAccountOption,omitempty"`
|
|
}
|
|
|
|
// MarshalJSON is the custom marshaler for IaasVMRecoveryPoint.
|
|
func (ivrp IaasVMRecoveryPoint) MarshalJSON() ([]byte, error) {
|
|
ivrp.ObjectType = ObjectTypeIaasVMRecoveryPoint
|
|
type Alias IaasVMRecoveryPoint
|
|
return json.Marshal(&struct {
|
|
Alias
|
|
}{
|
|
Alias: (Alias)(ivrp),
|
|
})
|
|
}
|
|
|
|
// AsGenericRecoveryPoint is the RecoveryPoint implementation for IaasVMRecoveryPoint.
|
|
func (ivrp IaasVMRecoveryPoint) AsGenericRecoveryPoint() (*GenericRecoveryPoint, bool) {
|
|
return nil, false
|
|
}
|
|
|
|
// AsIaasVMRecoveryPoint is the RecoveryPoint implementation for IaasVMRecoveryPoint.
|
|
func (ivrp IaasVMRecoveryPoint) AsIaasVMRecoveryPoint() (*IaasVMRecoveryPoint, bool) {
|
|
return &ivrp, true
|
|
}
|
|
|
|
// IaasVMRestoreRequest is iaaS VM workload-specific restore.
|
|
type IaasVMRestoreRequest struct {
|
|
ObjectType ObjectTypeRestoreRequest `json:"objectType,omitempty"`
|
|
RecoveryPointID *string `json:"recoveryPointId,omitempty"`
|
|
RecoveryType RecoveryType `json:"recoveryType,omitempty"`
|
|
SourceResourceID *string `json:"sourceResourceId,omitempty"`
|
|
TargetVirtualMachineID *string `json:"targetVirtualMachineId,omitempty"`
|
|
TargetResourceGroupID *string `json:"targetResourceGroupId,omitempty"`
|
|
StorageAccountID *string `json:"storageAccountId,omitempty"`
|
|
VirtualNetworkID *string `json:"virtualNetworkId,omitempty"`
|
|
SubnetID *string `json:"subnetId,omitempty"`
|
|
TargetDomainNameID *string `json:"targetDomainNameId,omitempty"`
|
|
Region *string `json:"region,omitempty"`
|
|
AffinityGroup *string `json:"affinityGroup,omitempty"`
|
|
CreateNewCloudService *bool `json:"createNewCloudService,omitempty"`
|
|
OriginalStorageAccountOption *bool `json:"originalStorageAccountOption,omitempty"`
|
|
EncryptionDetails *EncryptionDetails `json:"encryptionDetails,omitempty"`
|
|
}
|
|
|
|
// MarshalJSON is the custom marshaler for IaasVMRestoreRequest.
|
|
func (ivrr IaasVMRestoreRequest) MarshalJSON() ([]byte, error) {
|
|
ivrr.ObjectType = ObjectTypeIaasVMRestoreRequest
|
|
type Alias IaasVMRestoreRequest
|
|
return json.Marshal(&struct {
|
|
Alias
|
|
}{
|
|
Alias: (Alias)(ivrr),
|
|
})
|
|
}
|
|
|
|
// AsIaasVMRestoreRequest is the RestoreRequest implementation for IaasVMRestoreRequest.
|
|
func (ivrr IaasVMRestoreRequest) AsIaasVMRestoreRequest() (*IaasVMRestoreRequest, bool) {
|
|
return &ivrr, true
|
|
}
|
|
|
|
// ILRRequest is parameters to restore file/folders API.
|
|
type ILRRequest interface {
|
|
AsIaasVMILRRegistrationRequest() (*IaasVMILRRegistrationRequest, bool)
|
|
}
|
|
|
|
func unmarshalILRRequest(body []byte) (ILRRequest, 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:
|
|
return nil, errors.New("Unsupported type")
|
|
}
|
|
}
|
|
func unmarshalILRRequestArray(body []byte) ([]ILRRequest, error) {
|
|
var rawMessages []*json.RawMessage
|
|
err := json.Unmarshal(body, &rawMessages)
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
|
|
irArray := make([]ILRRequest, len(rawMessages))
|
|
|
|
for index, rawMessage := range rawMessages {
|
|
ir, err := unmarshalILRRequest(*rawMessage)
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
irArray[index] = ir
|
|
}
|
|
return irArray, nil
|
|
}
|
|
|
|
// ILRRequestResource is parameters to restore file/folders API.
|
|
type ILRRequestResource struct {
|
|
ID *string `json:"id,omitempty"`
|
|
Name *string `json:"name,omitempty"`
|
|
Type *string `json:"type,omitempty"`
|
|
Location *string `json:"location,omitempty"`
|
|
Tags *map[string]*string `json:"tags,omitempty"`
|
|
ETag *string `json:"eTag,omitempty"`
|
|
Properties ILRRequest `json:"properties,omitempty"`
|
|
}
|
|
|
|
// 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
|
|
}
|
|
var v *json.RawMessage
|
|
|
|
v = m["properties"]
|
|
if v != nil {
|
|
properties, err := unmarshalILRRequest(*m["properties"])
|
|
if err != nil {
|
|
return err
|
|
}
|
|
irr.Properties = properties
|
|
}
|
|
|
|
v = m["id"]
|
|
if v != nil {
|
|
var ID string
|
|
err = json.Unmarshal(*m["id"], &ID)
|
|
if err != nil {
|
|
return err
|
|
}
|
|
irr.ID = &ID
|
|
}
|
|
|
|
v = m["name"]
|
|
if v != nil {
|
|
var name string
|
|
err = json.Unmarshal(*m["name"], &name)
|
|
if err != nil {
|
|
return err
|
|
}
|
|
irr.Name = &name
|
|
}
|
|
|
|
v = m["type"]
|
|
if v != nil {
|
|
var typeVar string
|
|
err = json.Unmarshal(*m["type"], &typeVar)
|
|
if err != nil {
|
|
return err
|
|
}
|
|
irr.Type = &typeVar
|
|
}
|
|
|
|
v = m["location"]
|
|
if v != nil {
|
|
var location string
|
|
err = json.Unmarshal(*m["location"], &location)
|
|
if err != nil {
|
|
return err
|
|
}
|
|
irr.Location = &location
|
|
}
|
|
|
|
v = m["tags"]
|
|
if v != nil {
|
|
var tags map[string]*string
|
|
err = json.Unmarshal(*m["tags"], &tags)
|
|
if err != nil {
|
|
return err
|
|
}
|
|
irr.Tags = &tags
|
|
}
|
|
|
|
v = m["eTag"]
|
|
if v != nil {
|
|
var eTag string
|
|
err = json.Unmarshal(*m["eTag"], &eTag)
|
|
if err != nil {
|
|
return err
|
|
}
|
|
irr.ETag = &eTag
|
|
}
|
|
|
|
return nil
|
|
}
|
|
|
|
// InstantItemRecoveryTarget is target details for file / folder restore.
|
|
type InstantItemRecoveryTarget struct {
|
|
ClientScripts *[]ClientScriptForConnect `json:"clientScripts,omitempty"`
|
|
}
|
|
|
|
// Job is defines workload agnostic properties for a job.
|
|
type Job interface {
|
|
AsAzureIaaSVMJob() (*AzureIaaSVMJob, bool)
|
|
AsDpmJob() (*DpmJob, bool)
|
|
AsMabJob() (*MabJob, bool)
|
|
}
|
|
|
|
func unmarshalJob(body []byte) (Job, 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(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:
|
|
return nil, errors.New("Unsupported type")
|
|
}
|
|
}
|
|
func unmarshalJobArray(body []byte) ([]Job, error) {
|
|
var rawMessages []*json.RawMessage
|
|
err := json.Unmarshal(body, &rawMessages)
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
|
|
jArray := make([]Job, len(rawMessages))
|
|
|
|
for index, rawMessage := range rawMessages {
|
|
j, err := unmarshalJob(*rawMessage)
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
jArray[index] = j
|
|
}
|
|
return jArray, nil
|
|
}
|
|
|
|
// JobQueryObject is filters to list the jobs.
|
|
type JobQueryObject struct {
|
|
Status JobStatus `json:"status,omitempty"`
|
|
BackupManagementType BackupManagementType `json:"backupManagementType,omitempty"`
|
|
Operation JobOperationType `json:"operation,omitempty"`
|
|
JobID *string `json:"jobId,omitempty"`
|
|
StartTime *date.Time `json:"startTime,omitempty"`
|
|
EndTime *date.Time `json:"endTime,omitempty"`
|
|
}
|
|
|
|
// JobResource is defines workload agnostic properties for a job.
|
|
type JobResource struct {
|
|
autorest.Response `json:"-"`
|
|
ID *string `json:"id,omitempty"`
|
|
Name *string `json:"name,omitempty"`
|
|
Type *string `json:"type,omitempty"`
|
|
Location *string `json:"location,omitempty"`
|
|
Tags *map[string]*string `json:"tags,omitempty"`
|
|
ETag *string `json:"eTag,omitempty"`
|
|
Properties Job `json:"properties,omitempty"`
|
|
}
|
|
|
|
// 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
|
|
}
|
|
var v *json.RawMessage
|
|
|
|
v = m["properties"]
|
|
if v != nil {
|
|
properties, err := unmarshalJob(*m["properties"])
|
|
if err != nil {
|
|
return err
|
|
}
|
|
jr.Properties = properties
|
|
}
|
|
|
|
v = m["id"]
|
|
if v != nil {
|
|
var ID string
|
|
err = json.Unmarshal(*m["id"], &ID)
|
|
if err != nil {
|
|
return err
|
|
}
|
|
jr.ID = &ID
|
|
}
|
|
|
|
v = m["name"]
|
|
if v != nil {
|
|
var name string
|
|
err = json.Unmarshal(*m["name"], &name)
|
|
if err != nil {
|
|
return err
|
|
}
|
|
jr.Name = &name
|
|
}
|
|
|
|
v = m["type"]
|
|
if v != nil {
|
|
var typeVar string
|
|
err = json.Unmarshal(*m["type"], &typeVar)
|
|
if err != nil {
|
|
return err
|
|
}
|
|
jr.Type = &typeVar
|
|
}
|
|
|
|
v = m["location"]
|
|
if v != nil {
|
|
var location string
|
|
err = json.Unmarshal(*m["location"], &location)
|
|
if err != nil {
|
|
return err
|
|
}
|
|
jr.Location = &location
|
|
}
|
|
|
|
v = m["tags"]
|
|
if v != nil {
|
|
var tags map[string]*string
|
|
err = json.Unmarshal(*m["tags"], &tags)
|
|
if err != nil {
|
|
return err
|
|
}
|
|
jr.Tags = &tags
|
|
}
|
|
|
|
v = m["eTag"]
|
|
if v != nil {
|
|
var eTag string
|
|
err = json.Unmarshal(*m["eTag"], &eTag)
|
|
if err != nil {
|
|
return err
|
|
}
|
|
jr.ETag = &eTag
|
|
}
|
|
|
|
return nil
|
|
}
|
|
|
|
// JobResourceList is list of Job resources
|
|
type JobResourceList struct {
|
|
autorest.Response `json:"-"`
|
|
NextLink *string `json:"nextLink,omitempty"`
|
|
Value *[]JobResource `json:"value,omitempty"`
|
|
}
|
|
|
|
// JobResourceListPreparer prepares a request to retrieve the next set of results. It returns
|
|
// nil if no more results exist.
|
|
func (client JobResourceList) JobResourceListPreparer() (*http.Request, error) {
|
|
if client.NextLink == nil || len(to.String(client.NextLink)) <= 0 {
|
|
return nil, nil
|
|
}
|
|
return autorest.Prepare(&http.Request{},
|
|
autorest.AsJSON(),
|
|
autorest.AsGet(),
|
|
autorest.WithBaseURL(to.String(client.NextLink)))
|
|
}
|
|
|
|
// KEKDetails is KEK is encryption key for BEK.
|
|
type KEKDetails struct {
|
|
KeyURL *string `json:"keyUrl,omitempty"`
|
|
KeyVaultID *string `json:"keyVaultId,omitempty"`
|
|
KeyBackupData *string `json:"keyBackupData,omitempty"`
|
|
}
|
|
|
|
// KeyAndSecretDetails is 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 *KEKDetails `json:"kekDetails,omitempty"`
|
|
BekDetails *BEKDetails `json:"bekDetails,omitempty"`
|
|
}
|
|
|
|
// LongTermRetentionPolicy is long term retention policy.
|
|
type LongTermRetentionPolicy struct {
|
|
RetentionPolicyType RetentionPolicyType `json:"retentionPolicyType,omitempty"`
|
|
DailySchedule *DailyRetentionSchedule `json:"dailySchedule,omitempty"`
|
|
WeeklySchedule *WeeklyRetentionSchedule `json:"weeklySchedule,omitempty"`
|
|
MonthlySchedule *MonthlyRetentionSchedule `json:"monthlySchedule,omitempty"`
|
|
YearlySchedule *YearlyRetentionSchedule `json:"yearlySchedule,omitempty"`
|
|
}
|
|
|
|
// MarshalJSON is the custom marshaler for LongTermRetentionPolicy.
|
|
func (ltrp LongTermRetentionPolicy) MarshalJSON() ([]byte, error) {
|
|
ltrp.RetentionPolicyType = RetentionPolicyTypeLongTermRetentionPolicy
|
|
type Alias LongTermRetentionPolicy
|
|
return json.Marshal(&struct {
|
|
Alias
|
|
}{
|
|
Alias: (Alias)(ltrp),
|
|
})
|
|
}
|
|
|
|
// AsLongTermRetentionPolicy is the RetentionPolicy implementation for LongTermRetentionPolicy.
|
|
func (ltrp LongTermRetentionPolicy) AsLongTermRetentionPolicy() (*LongTermRetentionPolicy, bool) {
|
|
return <rp, true
|
|
}
|
|
|
|
// AsSimpleRetentionPolicy is the RetentionPolicy implementation for LongTermRetentionPolicy.
|
|
func (ltrp LongTermRetentionPolicy) AsSimpleRetentionPolicy() (*SimpleRetentionPolicy, bool) {
|
|
return nil, false
|
|
}
|
|
|
|
// LongTermSchedulePolicy is long term policy schedule.
|
|
type LongTermSchedulePolicy struct {
|
|
SchedulePolicyType SchedulePolicyType `json:"schedulePolicyType,omitempty"`
|
|
}
|
|
|
|
// MarshalJSON is the custom marshaler for LongTermSchedulePolicy.
|
|
func (ltsp LongTermSchedulePolicy) MarshalJSON() ([]byte, error) {
|
|
ltsp.SchedulePolicyType = SchedulePolicyTypeLongTermSchedulePolicy
|
|
type Alias LongTermSchedulePolicy
|
|
return json.Marshal(&struct {
|
|
Alias
|
|
}{
|
|
Alias: (Alias)(ltsp),
|
|
})
|
|
}
|
|
|
|
// AsLongTermSchedulePolicy is the SchedulePolicy implementation for LongTermSchedulePolicy.
|
|
func (ltsp LongTermSchedulePolicy) AsLongTermSchedulePolicy() (*LongTermSchedulePolicy, bool) {
|
|
return <sp, true
|
|
}
|
|
|
|
// AsSimpleSchedulePolicy is the SchedulePolicy implementation for LongTermSchedulePolicy.
|
|
func (ltsp LongTermSchedulePolicy) AsSimpleSchedulePolicy() (*SimpleSchedulePolicy, bool) {
|
|
return nil, false
|
|
}
|
|
|
|
// MabContainer is container with items backed up using MAB backup engine.
|
|
type MabContainer struct {
|
|
FriendlyName *string `json:"friendlyName,omitempty"`
|
|
BackupManagementType BackupManagementType `json:"backupManagementType,omitempty"`
|
|
RegistrationStatus *string `json:"registrationStatus,omitempty"`
|
|
HealthStatus *string `json:"healthStatus,omitempty"`
|
|
ContainerType ContainerType `json:"containerType,omitempty"`
|
|
ProtectableObjectType ProtectableObjectType `json:"protectableObjectType,omitempty"`
|
|
CanReRegister *bool `json:"canReRegister,omitempty"`
|
|
ContainerID *int64 `json:"containerId,omitempty"`
|
|
ProtectedItemCount *int64 `json:"protectedItemCount,omitempty"`
|
|
AgentVersion *string `json:"agentVersion,omitempty"`
|
|
ExtendedInfo *MabContainerExtendedInfo `json:"extendedInfo,omitempty"`
|
|
}
|
|
|
|
// MarshalJSON is the custom marshaler for MabContainer.
|
|
func (mc MabContainer) MarshalJSON() ([]byte, error) {
|
|
mc.ProtectableObjectType = ProtectableObjectTypeMABWindowsContainer
|
|
type Alias MabContainer
|
|
return json.Marshal(&struct {
|
|
Alias
|
|
}{
|
|
Alias: (Alias)(mc),
|
|
})
|
|
}
|
|
|
|
// AsAzureBackupServerContainer is the ProtectionContainer implementation for MabContainer.
|
|
func (mc MabContainer) AsAzureBackupServerContainer() (*AzureBackupServerContainer, bool) {
|
|
return nil, false
|
|
}
|
|
|
|
// AsAzureIaaSClassicComputeVMContainer is the ProtectionContainer implementation for MabContainer.
|
|
func (mc MabContainer) AsAzureIaaSClassicComputeVMContainer() (*AzureIaaSClassicComputeVMContainer, bool) {
|
|
return nil, false
|
|
}
|
|
|
|
// AsAzureIaaSComputeVMContainer is the ProtectionContainer implementation for MabContainer.
|
|
func (mc MabContainer) AsAzureIaaSComputeVMContainer() (*AzureIaaSComputeVMContainer, bool) {
|
|
return nil, false
|
|
}
|
|
|
|
// AsAzureSQLContainer is the ProtectionContainer implementation for MabContainer.
|
|
func (mc MabContainer) AsAzureSQLContainer() (*AzureSQLContainer, bool) {
|
|
return nil, false
|
|
}
|
|
|
|
// AsDpmContainer is the ProtectionContainer implementation for MabContainer.
|
|
func (mc MabContainer) AsDpmContainer() (*DpmContainer, bool) {
|
|
return nil, false
|
|
}
|
|
|
|
// AsIaaSVMContainer is the ProtectionContainer implementation for MabContainer.
|
|
func (mc MabContainer) AsIaaSVMContainer() (*IaaSVMContainer, bool) {
|
|
return nil, false
|
|
}
|
|
|
|
// AsMabContainer is the ProtectionContainer implementation for MabContainer.
|
|
func (mc MabContainer) AsMabContainer() (*MabContainer, bool) {
|
|
return &mc, true
|
|
}
|
|
|
|
// MabContainerExtendedInfo is additional information of the container.
|
|
type MabContainerExtendedInfo struct {
|
|
LastRefreshedAt *date.Time `json:"lastRefreshedAt,omitempty"`
|
|
BackupItemType BackupItemType `json:"backupItemType,omitempty"`
|
|
BackupItems *[]string `json:"backupItems,omitempty"`
|
|
PolicyName *string `json:"policyName,omitempty"`
|
|
LastBackupStatus *string `json:"lastBackupStatus,omitempty"`
|
|
}
|
|
|
|
// MabErrorInfo is MAB workload-specific error information.
|
|
type MabErrorInfo struct {
|
|
ErrorString *string `json:"errorString,omitempty"`
|
|
Recommendations *[]string `json:"recommendations,omitempty"`
|
|
}
|
|
|
|
// MabFileFolderProtectedItem is MAB workload-specific backup item.
|
|
type MabFileFolderProtectedItem struct {
|
|
BackupManagementType BackupManagementType `json:"backupManagementType,omitempty"`
|
|
WorkloadType DataSourceType `json:"workloadType,omitempty"`
|
|
ContainerName *string `json:"containerName,omitempty"`
|
|
SourceResourceID *string `json:"sourceResourceId,omitempty"`
|
|
PolicyID *string `json:"policyId,omitempty"`
|
|
LastRecoveryPoint *date.Time `json:"lastRecoveryPoint,omitempty"`
|
|
ProtectedItemType ProtectedItemType `json:"protectedItemType,omitempty"`
|
|
FriendlyName *string `json:"friendlyName,omitempty"`
|
|
ComputerName *string `json:"computerName,omitempty"`
|
|
LastBackupStatus *string `json:"lastBackupStatus,omitempty"`
|
|
ProtectionState *string `json:"protectionState,omitempty"`
|
|
IsScheduledForDeferredDelete *bool `json:"isScheduledForDeferredDelete,omitempty"`
|
|
DeferredDeleteSyncTimeInUTC *int64 `json:"deferredDeleteSyncTimeInUTC,omitempty"`
|
|
ExtendedInfo *MabFileFolderProtectedItemExtendedInfo `json:"extendedInfo,omitempty"`
|
|
}
|
|
|
|
// MarshalJSON is the custom marshaler for MabFileFolderProtectedItem.
|
|
func (mffpi MabFileFolderProtectedItem) MarshalJSON() ([]byte, error) {
|
|
mffpi.ProtectedItemType = ProtectedItemTypeMabFileFolderProtectedItem
|
|
type Alias MabFileFolderProtectedItem
|
|
return json.Marshal(&struct {
|
|
Alias
|
|
}{
|
|
Alias: (Alias)(mffpi),
|
|
})
|
|
}
|
|
|
|
// AsAzureIaaSClassicComputeVMProtectedItem is the ProtectedItem implementation for MabFileFolderProtectedItem.
|
|
func (mffpi MabFileFolderProtectedItem) AsAzureIaaSClassicComputeVMProtectedItem() (*AzureIaaSClassicComputeVMProtectedItem, bool) {
|
|
return nil, false
|
|
}
|
|
|
|
// AsAzureIaaSComputeVMProtectedItem is the ProtectedItem implementation for MabFileFolderProtectedItem.
|
|
func (mffpi MabFileFolderProtectedItem) AsAzureIaaSComputeVMProtectedItem() (*AzureIaaSComputeVMProtectedItem, bool) {
|
|
return nil, false
|
|
}
|
|
|
|
// AsAzureIaaSVMProtectedItem is the ProtectedItem implementation for MabFileFolderProtectedItem.
|
|
func (mffpi MabFileFolderProtectedItem) AsAzureIaaSVMProtectedItem() (*AzureIaaSVMProtectedItem, bool) {
|
|
return nil, false
|
|
}
|
|
|
|
// AsAzureSQLProtectedItem is the ProtectedItem implementation for MabFileFolderProtectedItem.
|
|
func (mffpi MabFileFolderProtectedItem) AsAzureSQLProtectedItem() (*AzureSQLProtectedItem, bool) {
|
|
return nil, false
|
|
}
|
|
|
|
// AsDPMProtectedItem is the ProtectedItem implementation for MabFileFolderProtectedItem.
|
|
func (mffpi MabFileFolderProtectedItem) AsDPMProtectedItem() (*DPMProtectedItem, bool) {
|
|
return nil, false
|
|
}
|
|
|
|
// AsMabFileFolderProtectedItem is the ProtectedItem implementation for MabFileFolderProtectedItem.
|
|
func (mffpi MabFileFolderProtectedItem) AsMabFileFolderProtectedItem() (*MabFileFolderProtectedItem, bool) {
|
|
return &mffpi, true
|
|
}
|
|
|
|
// MabFileFolderProtectedItemExtendedInfo is additional information on the backed up item.
|
|
type MabFileFolderProtectedItemExtendedInfo struct {
|
|
LastRefreshedAt *date.Time `json:"lastRefreshedAt,omitempty"`
|
|
OldestRecoveryPoint *date.Time `json:"oldestRecoveryPoint,omitempty"`
|
|
RecoveryPointCount *int32 `json:"recoveryPointCount,omitempty"`
|
|
}
|
|
|
|
// MabJob is MAB workload-specific job.
|
|
type MabJob struct {
|
|
EntityFriendlyName *string `json:"entityFriendlyName,omitempty"`
|
|
BackupManagementType BackupManagementType `json:"backupManagementType,omitempty"`
|
|
Operation *string `json:"operation,omitempty"`
|
|
Status *string `json:"status,omitempty"`
|
|
StartTime *date.Time `json:"startTime,omitempty"`
|
|
EndTime *date.Time `json:"endTime,omitempty"`
|
|
ActivityID *string `json:"activityId,omitempty"`
|
|
JobType JobType `json:"jobType,omitempty"`
|
|
Duration *string `json:"duration,omitempty"`
|
|
ActionsInfo *[]JobSupportedAction `json:"actionsInfo,omitempty"`
|
|
MabServerName *string `json:"mabServerName,omitempty"`
|
|
MabServerType MabServerType `json:"mabServerType,omitempty"`
|
|
WorkloadType WorkloadType `json:"workloadType,omitempty"`
|
|
ErrorDetails *[]MabErrorInfo `json:"errorDetails,omitempty"`
|
|
ExtendedInfo *MabJobExtendedInfo `json:"extendedInfo,omitempty"`
|
|
}
|
|
|
|
// MarshalJSON is the custom marshaler for MabJob.
|
|
func (mj MabJob) MarshalJSON() ([]byte, error) {
|
|
mj.JobType = JobTypeMabJob
|
|
type Alias MabJob
|
|
return json.Marshal(&struct {
|
|
Alias
|
|
}{
|
|
Alias: (Alias)(mj),
|
|
})
|
|
}
|
|
|
|
// AsAzureIaaSVMJob is the Job implementation for MabJob.
|
|
func (mj MabJob) AsAzureIaaSVMJob() (*AzureIaaSVMJob, bool) {
|
|
return nil, false
|
|
}
|
|
|
|
// AsDpmJob is the Job implementation for MabJob.
|
|
func (mj MabJob) AsDpmJob() (*DpmJob, bool) {
|
|
return nil, false
|
|
}
|
|
|
|
// AsMabJob is the Job implementation for MabJob.
|
|
func (mj MabJob) AsMabJob() (*MabJob, bool) {
|
|
return &mj, true
|
|
}
|
|
|
|
// MabJobExtendedInfo is additional information for the MAB workload-specific job.
|
|
type MabJobExtendedInfo struct {
|
|
TasksList *[]MabJobTaskDetails `json:"tasksList,omitempty"`
|
|
PropertyBag *map[string]*string `json:"propertyBag,omitempty"`
|
|
DynamicErrorMessage *string `json:"dynamicErrorMessage,omitempty"`
|
|
}
|
|
|
|
// MabJobTaskDetails is MAB workload-specific job task details.
|
|
type MabJobTaskDetails struct {
|
|
TaskID *string `json:"taskId,omitempty"`
|
|
StartTime *date.Time `json:"startTime,omitempty"`
|
|
EndTime *date.Time `json:"endTime,omitempty"`
|
|
Duration *string `json:"duration,omitempty"`
|
|
Status *string `json:"status,omitempty"`
|
|
}
|
|
|
|
// MabProtectionPolicy is mab container-specific backup policy.
|
|
type MabProtectionPolicy struct {
|
|
ProtectedItemsCount *int32 `json:"protectedItemsCount,omitempty"`
|
|
BackupManagementType BackupManagementType `json:"backupManagementType,omitempty"`
|
|
SchedulePolicy SchedulePolicy `json:"schedulePolicy,omitempty"`
|
|
RetentionPolicy RetentionPolicy `json:"retentionPolicy,omitempty"`
|
|
}
|
|
|
|
// MarshalJSON is the custom marshaler for MabProtectionPolicy.
|
|
func (mpp MabProtectionPolicy) MarshalJSON() ([]byte, error) {
|
|
mpp.BackupManagementType = BackupManagementTypeMAB
|
|
type Alias MabProtectionPolicy
|
|
return json.Marshal(&struct {
|
|
Alias
|
|
}{
|
|
Alias: (Alias)(mpp),
|
|
})
|
|
}
|
|
|
|
// AsAzureIaaSVMProtectionPolicy is the ProtectionPolicy implementation for MabProtectionPolicy.
|
|
func (mpp MabProtectionPolicy) AsAzureIaaSVMProtectionPolicy() (*AzureIaaSVMProtectionPolicy, bool) {
|
|
return nil, false
|
|
}
|
|
|
|
// AsAzureSQLProtectionPolicy is the ProtectionPolicy implementation for MabProtectionPolicy.
|
|
func (mpp MabProtectionPolicy) AsAzureSQLProtectionPolicy() (*AzureSQLProtectionPolicy, bool) {
|
|
return nil, false
|
|
}
|
|
|
|
// AsMabProtectionPolicy is the ProtectionPolicy implementation for MabProtectionPolicy.
|
|
func (mpp MabProtectionPolicy) AsMabProtectionPolicy() (*MabProtectionPolicy, 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
|
|
}
|
|
var v *json.RawMessage
|
|
|
|
v = m["schedulePolicy"]
|
|
if v != nil {
|
|
schedulePolicy, err := unmarshalSchedulePolicy(*m["schedulePolicy"])
|
|
if err != nil {
|
|
return err
|
|
}
|
|
mpp.SchedulePolicy = schedulePolicy
|
|
}
|
|
|
|
v = m["retentionPolicy"]
|
|
if v != nil {
|
|
retentionPolicy, err := unmarshalRetentionPolicy(*m["retentionPolicy"])
|
|
if err != nil {
|
|
return err
|
|
}
|
|
mpp.RetentionPolicy = retentionPolicy
|
|
}
|
|
|
|
v = m["protectedItemsCount"]
|
|
if v != nil {
|
|
var protectedItemsCount int32
|
|
err = json.Unmarshal(*m["protectedItemsCount"], &protectedItemsCount)
|
|
if err != nil {
|
|
return err
|
|
}
|
|
mpp.ProtectedItemsCount = &protectedItemsCount
|
|
}
|
|
|
|
v = m["backupManagementType"]
|
|
if v != nil {
|
|
var backupManagementType BackupManagementType
|
|
err = json.Unmarshal(*m["backupManagementType"], &backupManagementType)
|
|
if err != nil {
|
|
return err
|
|
}
|
|
mpp.BackupManagementType = backupManagementType
|
|
}
|
|
|
|
return nil
|
|
}
|
|
|
|
// MonthlyRetentionSchedule is monthly retention schedule.
|
|
type MonthlyRetentionSchedule struct {
|
|
RetentionScheduleFormatType RetentionScheduleFormat `json:"retentionScheduleFormatType,omitempty"`
|
|
RetentionScheduleDaily *DailyRetentionFormat `json:"retentionScheduleDaily,omitempty"`
|
|
RetentionScheduleWeekly *WeeklyRetentionFormat `json:"retentionScheduleWeekly,omitempty"`
|
|
RetentionTimes *[]date.Time `json:"retentionTimes,omitempty"`
|
|
RetentionDuration *RetentionDuration `json:"retentionDuration,omitempty"`
|
|
}
|
|
|
|
// NameInfo is the name of usage.
|
|
type NameInfo struct {
|
|
Value *string `json:"value,omitempty"`
|
|
LocalizedValue *string `json:"localizedValue,omitempty"`
|
|
}
|
|
|
|
// OperationResultInfo is operation result info.
|
|
type OperationResultInfo struct {
|
|
ObjectType ObjectTypeOperationResultInfoBase `json:"objectType,omitempty"`
|
|
JobList *[]string `json:"jobList,omitempty"`
|
|
}
|
|
|
|
// MarshalJSON is the custom marshaler for OperationResultInfo.
|
|
func (ori OperationResultInfo) MarshalJSON() ([]byte, error) {
|
|
ori.ObjectType = ObjectTypeOperationResultInfo
|
|
type Alias OperationResultInfo
|
|
return json.Marshal(&struct {
|
|
Alias
|
|
}{
|
|
Alias: (Alias)(ori),
|
|
})
|
|
}
|
|
|
|
// AsExportJobsOperationResultInfo is the OperationResultInfoBase implementation for OperationResultInfo.
|
|
func (ori OperationResultInfo) AsExportJobsOperationResultInfo() (*ExportJobsOperationResultInfo, bool) {
|
|
return nil, false
|
|
}
|
|
|
|
// AsOperationResultInfo is the OperationResultInfoBase implementation for OperationResultInfo.
|
|
func (ori OperationResultInfo) AsOperationResultInfo() (*OperationResultInfo, bool) {
|
|
return &ori, true
|
|
}
|
|
|
|
// OperationResultInfoBase is base class for operation result info.
|
|
type OperationResultInfoBase interface {
|
|
AsExportJobsOperationResultInfo() (*ExportJobsOperationResultInfo, bool)
|
|
AsOperationResultInfo() (*OperationResultInfo, bool)
|
|
}
|
|
|
|
func unmarshalOperationResultInfoBase(body []byte) (OperationResultInfoBase, 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:
|
|
return nil, errors.New("Unsupported type")
|
|
}
|
|
}
|
|
func unmarshalOperationResultInfoBaseArray(body []byte) ([]OperationResultInfoBase, error) {
|
|
var rawMessages []*json.RawMessage
|
|
err := json.Unmarshal(body, &rawMessages)
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
|
|
oribArray := make([]OperationResultInfoBase, len(rawMessages))
|
|
|
|
for index, rawMessage := range rawMessages {
|
|
orib, err := unmarshalOperationResultInfoBase(*rawMessage)
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
oribArray[index] = orib
|
|
}
|
|
return oribArray, nil
|
|
}
|
|
|
|
// OperationResultInfoBaseResource is base class for operation result info.
|
|
type OperationResultInfoBaseResource struct {
|
|
autorest.Response `json:"-"`
|
|
StatusCode HTTPStatusCode `json:"statusCode,omitempty"`
|
|
Headers *map[string][]string `json:"Headers,omitempty"`
|
|
Operation OperationResultInfoBase `json:"operation,omitempty"`
|
|
}
|
|
|
|
// 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
|
|
}
|
|
var v *json.RawMessage
|
|
|
|
v = m["operation"]
|
|
if v != nil {
|
|
operation, err := unmarshalOperationResultInfoBase(*m["operation"])
|
|
if err != nil {
|
|
return err
|
|
}
|
|
oribr.Operation = operation
|
|
}
|
|
|
|
v = m["statusCode"]
|
|
if v != nil {
|
|
var statusCode HTTPStatusCode
|
|
err = json.Unmarshal(*m["statusCode"], &statusCode)
|
|
if err != nil {
|
|
return err
|
|
}
|
|
oribr.StatusCode = statusCode
|
|
}
|
|
|
|
v = m["Headers"]
|
|
if v != nil {
|
|
var headers map[string][]string
|
|
err = json.Unmarshal(*m["Headers"], &headers)
|
|
if err != nil {
|
|
return err
|
|
}
|
|
oribr.Headers = &headers
|
|
}
|
|
|
|
return nil
|
|
}
|
|
|
|
// OperationStatus is operation status.
|
|
type OperationStatus struct {
|
|
autorest.Response `json:"-"`
|
|
ID *string `json:"id,omitempty"`
|
|
Name *string `json:"name,omitempty"`
|
|
Status OperationStatusValues `json:"status,omitempty"`
|
|
StartTime *date.Time `json:"startTime,omitempty"`
|
|
EndTime *date.Time `json:"endTime,omitempty"`
|
|
Error *OperationStatusError `json:"error,omitempty"`
|
|
Properties OperationStatusExtendedInfo `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
|
|
}
|
|
var v *json.RawMessage
|
|
|
|
v = m["id"]
|
|
if v != nil {
|
|
var ID string
|
|
err = json.Unmarshal(*m["id"], &ID)
|
|
if err != nil {
|
|
return err
|
|
}
|
|
osVar.ID = &ID
|
|
}
|
|
|
|
v = m["name"]
|
|
if v != nil {
|
|
var name string
|
|
err = json.Unmarshal(*m["name"], &name)
|
|
if err != nil {
|
|
return err
|
|
}
|
|
osVar.Name = &name
|
|
}
|
|
|
|
v = m["status"]
|
|
if v != nil {
|
|
var status OperationStatusValues
|
|
err = json.Unmarshal(*m["status"], &status)
|
|
if err != nil {
|
|
return err
|
|
}
|
|
osVar.Status = status
|
|
}
|
|
|
|
v = m["startTime"]
|
|
if v != nil {
|
|
var startTime date.Time
|
|
err = json.Unmarshal(*m["startTime"], &startTime)
|
|
if err != nil {
|
|
return err
|
|
}
|
|
osVar.StartTime = &startTime
|
|
}
|
|
|
|
v = m["endTime"]
|
|
if v != nil {
|
|
var endTime date.Time
|
|
err = json.Unmarshal(*m["endTime"], &endTime)
|
|
if err != nil {
|
|
return err
|
|
}
|
|
osVar.EndTime = &endTime
|
|
}
|
|
|
|
v = m["error"]
|
|
if v != nil {
|
|
var errorVar OperationStatusError
|
|
err = json.Unmarshal(*m["error"], &errorVar)
|
|
if err != nil {
|
|
return err
|
|
}
|
|
osVar.Error = &errorVar
|
|
}
|
|
|
|
v = m["properties"]
|
|
if v != nil {
|
|
properties, err := unmarshalOperationStatusExtendedInfo(*m["properties"])
|
|
if err != nil {
|
|
return err
|
|
}
|
|
osVar.Properties = properties
|
|
}
|
|
|
|
return nil
|
|
}
|
|
|
|
// OperationStatusError is error information associated with operation status call.
|
|
type OperationStatusError struct {
|
|
Code *string `json:"code,omitempty"`
|
|
Message *string `json:"message,omitempty"`
|
|
}
|
|
|
|
// OperationStatusExtendedInfo is base class for additional information of operation status.
|
|
type OperationStatusExtendedInfo interface {
|
|
AsOperationStatusJobExtendedInfo() (*OperationStatusJobExtendedInfo, bool)
|
|
AsOperationStatusJobsExtendedInfo() (*OperationStatusJobsExtendedInfo, bool)
|
|
AsOperationStatusProvisionILRExtendedInfo() (*OperationStatusProvisionILRExtendedInfo, bool)
|
|
}
|
|
|
|
func unmarshalOperationStatusExtendedInfo(body []byte) (OperationStatusExtendedInfo, 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:
|
|
return nil, errors.New("Unsupported type")
|
|
}
|
|
}
|
|
func unmarshalOperationStatusExtendedInfoArray(body []byte) ([]OperationStatusExtendedInfo, error) {
|
|
var rawMessages []*json.RawMessage
|
|
err := json.Unmarshal(body, &rawMessages)
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
|
|
oseiArray := make([]OperationStatusExtendedInfo, len(rawMessages))
|
|
|
|
for index, rawMessage := range rawMessages {
|
|
osei, err := unmarshalOperationStatusExtendedInfo(*rawMessage)
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
oseiArray[index] = osei
|
|
}
|
|
return oseiArray, nil
|
|
}
|
|
|
|
// OperationStatusJobExtendedInfo is operation status job extended info.
|
|
type OperationStatusJobExtendedInfo struct {
|
|
ObjectType ObjectTypeOperationStatusExtendedInfo `json:"objectType,omitempty"`
|
|
JobID *string `json:"jobId,omitempty"`
|
|
}
|
|
|
|
// MarshalJSON is the custom marshaler for OperationStatusJobExtendedInfo.
|
|
func (osjei OperationStatusJobExtendedInfo) MarshalJSON() ([]byte, error) {
|
|
osjei.ObjectType = ObjectTypeOperationStatusJobExtendedInfo
|
|
type Alias OperationStatusJobExtendedInfo
|
|
return json.Marshal(&struct {
|
|
Alias
|
|
}{
|
|
Alias: (Alias)(osjei),
|
|
})
|
|
}
|
|
|
|
// AsOperationStatusJobExtendedInfo is the OperationStatusExtendedInfo implementation for OperationStatusJobExtendedInfo.
|
|
func (osjei OperationStatusJobExtendedInfo) AsOperationStatusJobExtendedInfo() (*OperationStatusJobExtendedInfo, bool) {
|
|
return &osjei, true
|
|
}
|
|
|
|
// AsOperationStatusJobsExtendedInfo is the OperationStatusExtendedInfo implementation for OperationStatusJobExtendedInfo.
|
|
func (osjei OperationStatusJobExtendedInfo) AsOperationStatusJobsExtendedInfo() (*OperationStatusJobsExtendedInfo, bool) {
|
|
return nil, false
|
|
}
|
|
|
|
// AsOperationStatusProvisionILRExtendedInfo is the OperationStatusExtendedInfo implementation for OperationStatusJobExtendedInfo.
|
|
func (osjei OperationStatusJobExtendedInfo) AsOperationStatusProvisionILRExtendedInfo() (*OperationStatusProvisionILRExtendedInfo, bool) {
|
|
return nil, false
|
|
}
|
|
|
|
// OperationStatusJobsExtendedInfo is operation status extended info for list of jobs.
|
|
type OperationStatusJobsExtendedInfo struct {
|
|
ObjectType ObjectTypeOperationStatusExtendedInfo `json:"objectType,omitempty"`
|
|
JobIds *[]string `json:"jobIds,omitempty"`
|
|
FailedJobsError *map[string]*string `json:"failedJobsError,omitempty"`
|
|
}
|
|
|
|
// MarshalJSON is the custom marshaler for OperationStatusJobsExtendedInfo.
|
|
func (osjei OperationStatusJobsExtendedInfo) MarshalJSON() ([]byte, error) {
|
|
osjei.ObjectType = ObjectTypeOperationStatusJobsExtendedInfo
|
|
type Alias OperationStatusJobsExtendedInfo
|
|
return json.Marshal(&struct {
|
|
Alias
|
|
}{
|
|
Alias: (Alias)(osjei),
|
|
})
|
|
}
|
|
|
|
// AsOperationStatusJobExtendedInfo is the OperationStatusExtendedInfo implementation for OperationStatusJobsExtendedInfo.
|
|
func (osjei OperationStatusJobsExtendedInfo) AsOperationStatusJobExtendedInfo() (*OperationStatusJobExtendedInfo, bool) {
|
|
return nil, false
|
|
}
|
|
|
|
// AsOperationStatusJobsExtendedInfo is the OperationStatusExtendedInfo implementation for OperationStatusJobsExtendedInfo.
|
|
func (osjei OperationStatusJobsExtendedInfo) AsOperationStatusJobsExtendedInfo() (*OperationStatusJobsExtendedInfo, bool) {
|
|
return &osjei, true
|
|
}
|
|
|
|
// AsOperationStatusProvisionILRExtendedInfo is the OperationStatusExtendedInfo implementation for OperationStatusJobsExtendedInfo.
|
|
func (osjei OperationStatusJobsExtendedInfo) AsOperationStatusProvisionILRExtendedInfo() (*OperationStatusProvisionILRExtendedInfo, bool) {
|
|
return nil, false
|
|
}
|
|
|
|
// OperationStatusProvisionILRExtendedInfo is operation status extended info for ILR provision action.
|
|
type OperationStatusProvisionILRExtendedInfo struct {
|
|
ObjectType ObjectTypeOperationStatusExtendedInfo `json:"objectType,omitempty"`
|
|
RecoveryTarget *InstantItemRecoveryTarget `json:"recoveryTarget,omitempty"`
|
|
}
|
|
|
|
// MarshalJSON is the custom marshaler for OperationStatusProvisionILRExtendedInfo.
|
|
func (ospiei OperationStatusProvisionILRExtendedInfo) MarshalJSON() ([]byte, error) {
|
|
ospiei.ObjectType = ObjectTypeOperationStatusProvisionILRExtendedInfo
|
|
type Alias OperationStatusProvisionILRExtendedInfo
|
|
return json.Marshal(&struct {
|
|
Alias
|
|
}{
|
|
Alias: (Alias)(ospiei),
|
|
})
|
|
}
|
|
|
|
// AsOperationStatusJobExtendedInfo is the OperationStatusExtendedInfo implementation for OperationStatusProvisionILRExtendedInfo.
|
|
func (ospiei OperationStatusProvisionILRExtendedInfo) AsOperationStatusJobExtendedInfo() (*OperationStatusJobExtendedInfo, bool) {
|
|
return nil, false
|
|
}
|
|
|
|
// AsOperationStatusJobsExtendedInfo is the OperationStatusExtendedInfo implementation for OperationStatusProvisionILRExtendedInfo.
|
|
func (ospiei OperationStatusProvisionILRExtendedInfo) AsOperationStatusJobsExtendedInfo() (*OperationStatusJobsExtendedInfo, bool) {
|
|
return nil, false
|
|
}
|
|
|
|
// AsOperationStatusProvisionILRExtendedInfo is the OperationStatusExtendedInfo implementation for OperationStatusProvisionILRExtendedInfo.
|
|
func (ospiei OperationStatusProvisionILRExtendedInfo) AsOperationStatusProvisionILRExtendedInfo() (*OperationStatusProvisionILRExtendedInfo, bool) {
|
|
return &ospiei, true
|
|
}
|
|
|
|
// OperationWorkerResponse is this is the base class for operation result responses.
|
|
type OperationWorkerResponse struct {
|
|
StatusCode HTTPStatusCode `json:"statusCode,omitempty"`
|
|
Headers *map[string][]string `json:"Headers,omitempty"`
|
|
}
|
|
|
|
// ProtectedItem is base class for backup items.
|
|
type ProtectedItem interface {
|
|
AsAzureIaaSClassicComputeVMProtectedItem() (*AzureIaaSClassicComputeVMProtectedItem, bool)
|
|
AsAzureIaaSComputeVMProtectedItem() (*AzureIaaSComputeVMProtectedItem, bool)
|
|
AsAzureIaaSVMProtectedItem() (*AzureIaaSVMProtectedItem, bool)
|
|
AsAzureSQLProtectedItem() (*AzureSQLProtectedItem, bool)
|
|
AsDPMProtectedItem() (*DPMProtectedItem, bool)
|
|
AsMabFileFolderProtectedItem() (*MabFileFolderProtectedItem, bool)
|
|
}
|
|
|
|
func unmarshalProtectedItem(body []byte) (ProtectedItem, 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
|
|
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(ProtectedItemTypeDPMProtectedItem):
|
|
var dpi DPMProtectedItem
|
|
err := json.Unmarshal(body, &dpi)
|
|
return dpi, err
|
|
case string(ProtectedItemTypeMabFileFolderProtectedItem):
|
|
var mffpi MabFileFolderProtectedItem
|
|
err := json.Unmarshal(body, &mffpi)
|
|
return mffpi, err
|
|
default:
|
|
return nil, errors.New("Unsupported type")
|
|
}
|
|
}
|
|
func unmarshalProtectedItemArray(body []byte) ([]ProtectedItem, error) {
|
|
var rawMessages []*json.RawMessage
|
|
err := json.Unmarshal(body, &rawMessages)
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
|
|
piArray := make([]ProtectedItem, len(rawMessages))
|
|
|
|
for index, rawMessage := range rawMessages {
|
|
pi, err := unmarshalProtectedItem(*rawMessage)
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
piArray[index] = pi
|
|
}
|
|
return piArray, nil
|
|
}
|
|
|
|
// ProtectedItemQueryObject is filters to list backup items.
|
|
type ProtectedItemQueryObject struct {
|
|
HealthState HealthState `json:"healthState,omitempty"`
|
|
BackupManagementType BackupManagementType `json:"backupManagementType,omitempty"`
|
|
ItemType DataSourceType `json:"itemType,omitempty"`
|
|
PolicyName *string `json:"policyName,omitempty"`
|
|
ContainerName *string `json:"containerName,omitempty"`
|
|
BackupEngineName *string `json:"backupEngineName,omitempty"`
|
|
FriendlyName *string `json:"friendlyName,omitempty"`
|
|
}
|
|
|
|
// ProtectedItemResource is base class for backup items.
|
|
type ProtectedItemResource struct {
|
|
autorest.Response `json:"-"`
|
|
ID *string `json:"id,omitempty"`
|
|
Name *string `json:"name,omitempty"`
|
|
Type *string `json:"type,omitempty"`
|
|
Location *string `json:"location,omitempty"`
|
|
Tags *map[string]*string `json:"tags,omitempty"`
|
|
ETag *string `json:"eTag,omitempty"`
|
|
Properties ProtectedItem `json:"properties,omitempty"`
|
|
}
|
|
|
|
// 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
|
|
}
|
|
var v *json.RawMessage
|
|
|
|
v = m["properties"]
|
|
if v != nil {
|
|
properties, err := unmarshalProtectedItem(*m["properties"])
|
|
if err != nil {
|
|
return err
|
|
}
|
|
pir.Properties = properties
|
|
}
|
|
|
|
v = m["id"]
|
|
if v != nil {
|
|
var ID string
|
|
err = json.Unmarshal(*m["id"], &ID)
|
|
if err != nil {
|
|
return err
|
|
}
|
|
pir.ID = &ID
|
|
}
|
|
|
|
v = m["name"]
|
|
if v != nil {
|
|
var name string
|
|
err = json.Unmarshal(*m["name"], &name)
|
|
if err != nil {
|
|
return err
|
|
}
|
|
pir.Name = &name
|
|
}
|
|
|
|
v = m["type"]
|
|
if v != nil {
|
|
var typeVar string
|
|
err = json.Unmarshal(*m["type"], &typeVar)
|
|
if err != nil {
|
|
return err
|
|
}
|
|
pir.Type = &typeVar
|
|
}
|
|
|
|
v = m["location"]
|
|
if v != nil {
|
|
var location string
|
|
err = json.Unmarshal(*m["location"], &location)
|
|
if err != nil {
|
|
return err
|
|
}
|
|
pir.Location = &location
|
|
}
|
|
|
|
v = m["tags"]
|
|
if v != nil {
|
|
var tags map[string]*string
|
|
err = json.Unmarshal(*m["tags"], &tags)
|
|
if err != nil {
|
|
return err
|
|
}
|
|
pir.Tags = &tags
|
|
}
|
|
|
|
v = m["eTag"]
|
|
if v != nil {
|
|
var eTag string
|
|
err = json.Unmarshal(*m["eTag"], &eTag)
|
|
if err != nil {
|
|
return err
|
|
}
|
|
pir.ETag = &eTag
|
|
}
|
|
|
|
return nil
|
|
}
|
|
|
|
// ProtectedItemResourceList is list of ProtectedItem resources
|
|
type ProtectedItemResourceList struct {
|
|
autorest.Response `json:"-"`
|
|
NextLink *string `json:"nextLink,omitempty"`
|
|
Value *[]ProtectedItemResource `json:"value,omitempty"`
|
|
}
|
|
|
|
// ProtectedItemResourceListPreparer prepares a request to retrieve the next set of results. It returns
|
|
// nil if no more results exist.
|
|
func (client ProtectedItemResourceList) ProtectedItemResourceListPreparer() (*http.Request, error) {
|
|
if client.NextLink == nil || len(to.String(client.NextLink)) <= 0 {
|
|
return nil, nil
|
|
}
|
|
return autorest.Prepare(&http.Request{},
|
|
autorest.AsJSON(),
|
|
autorest.AsGet(),
|
|
autorest.WithBaseURL(to.String(client.NextLink)))
|
|
}
|
|
|
|
// ProtectionContainer is base class for container with backup items. Containers with specific workloads are derived
|
|
// from this class.
|
|
type ProtectionContainer interface {
|
|
AsAzureBackupServerContainer() (*AzureBackupServerContainer, bool)
|
|
AsAzureIaaSClassicComputeVMContainer() (*AzureIaaSClassicComputeVMContainer, bool)
|
|
AsAzureIaaSComputeVMContainer() (*AzureIaaSComputeVMContainer, bool)
|
|
AsAzureSQLContainer() (*AzureSQLContainer, bool)
|
|
AsDpmContainer() (*DpmContainer, bool)
|
|
AsIaaSVMContainer() (*IaaSVMContainer, bool)
|
|
AsMabContainer() (*MabContainer, bool)
|
|
}
|
|
|
|
func unmarshalProtectionContainer(body []byte) (ProtectionContainer, error) {
|
|
var m map[string]interface{}
|
|
err := json.Unmarshal(body, &m)
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
|
|
switch m["protectableObjectType"] {
|
|
case string(ProtectableObjectTypeAzureBackupServerContainer):
|
|
var absc AzureBackupServerContainer
|
|
err := json.Unmarshal(body, &absc)
|
|
return absc, err
|
|
case string(ProtectableObjectTypeMicrosoftClassicComputevirtualMachines):
|
|
var aisccvc AzureIaaSClassicComputeVMContainer
|
|
err := json.Unmarshal(body, &aisccvc)
|
|
return aisccvc, err
|
|
case string(ProtectableObjectTypeMicrosoftComputevirtualMachines):
|
|
var aiscvc AzureIaaSComputeVMContainer
|
|
err := json.Unmarshal(body, &aiscvc)
|
|
return aiscvc, err
|
|
case string(ProtectableObjectTypeAzureSQLContainer):
|
|
var asc AzureSQLContainer
|
|
err := json.Unmarshal(body, &asc)
|
|
return asc, err
|
|
case string(ProtectableObjectTypeDPMContainer):
|
|
var dc DpmContainer
|
|
err := json.Unmarshal(body, &dc)
|
|
return dc, err
|
|
case string(ProtectableObjectTypeIaaSVMContainer):
|
|
var isc IaaSVMContainer
|
|
err := json.Unmarshal(body, &isc)
|
|
return isc, err
|
|
case string(ProtectableObjectTypeMABWindowsContainer):
|
|
var mc MabContainer
|
|
err := json.Unmarshal(body, &mc)
|
|
return mc, err
|
|
default:
|
|
return nil, errors.New("Unsupported type")
|
|
}
|
|
}
|
|
func unmarshalProtectionContainerArray(body []byte) ([]ProtectionContainer, error) {
|
|
var rawMessages []*json.RawMessage
|
|
err := json.Unmarshal(body, &rawMessages)
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
|
|
pcArray := make([]ProtectionContainer, len(rawMessages))
|
|
|
|
for index, rawMessage := range rawMessages {
|
|
pc, err := unmarshalProtectionContainer(*rawMessage)
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
pcArray[index] = pc
|
|
}
|
|
return pcArray, nil
|
|
}
|
|
|
|
// ProtectionContainerResource is base class for container with backup items. Containers with specific workloads are
|
|
// derived from this class.
|
|
type ProtectionContainerResource struct {
|
|
autorest.Response `json:"-"`
|
|
ID *string `json:"id,omitempty"`
|
|
Name *string `json:"name,omitempty"`
|
|
Type *string `json:"type,omitempty"`
|
|
Location *string `json:"location,omitempty"`
|
|
Tags *map[string]*string `json:"tags,omitempty"`
|
|
ETag *string `json:"eTag,omitempty"`
|
|
Properties ProtectionContainer `json:"properties,omitempty"`
|
|
}
|
|
|
|
// 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
|
|
}
|
|
var v *json.RawMessage
|
|
|
|
v = m["properties"]
|
|
if v != nil {
|
|
properties, err := unmarshalProtectionContainer(*m["properties"])
|
|
if err != nil {
|
|
return err
|
|
}
|
|
pcr.Properties = properties
|
|
}
|
|
|
|
v = m["id"]
|
|
if v != nil {
|
|
var ID string
|
|
err = json.Unmarshal(*m["id"], &ID)
|
|
if err != nil {
|
|
return err
|
|
}
|
|
pcr.ID = &ID
|
|
}
|
|
|
|
v = m["name"]
|
|
if v != nil {
|
|
var name string
|
|
err = json.Unmarshal(*m["name"], &name)
|
|
if err != nil {
|
|
return err
|
|
}
|
|
pcr.Name = &name
|
|
}
|
|
|
|
v = m["type"]
|
|
if v != nil {
|
|
var typeVar string
|
|
err = json.Unmarshal(*m["type"], &typeVar)
|
|
if err != nil {
|
|
return err
|
|
}
|
|
pcr.Type = &typeVar
|
|
}
|
|
|
|
v = m["location"]
|
|
if v != nil {
|
|
var location string
|
|
err = json.Unmarshal(*m["location"], &location)
|
|
if err != nil {
|
|
return err
|
|
}
|
|
pcr.Location = &location
|
|
}
|
|
|
|
v = m["tags"]
|
|
if v != nil {
|
|
var tags map[string]*string
|
|
err = json.Unmarshal(*m["tags"], &tags)
|
|
if err != nil {
|
|
return err
|
|
}
|
|
pcr.Tags = &tags
|
|
}
|
|
|
|
v = m["eTag"]
|
|
if v != nil {
|
|
var eTag string
|
|
err = json.Unmarshal(*m["eTag"], &eTag)
|
|
if err != nil {
|
|
return err
|
|
}
|
|
pcr.ETag = &eTag
|
|
}
|
|
|
|
return nil
|
|
}
|
|
|
|
// ProtectionContainerResourceList is list of ProtectionContainer resources
|
|
type ProtectionContainerResourceList struct {
|
|
autorest.Response `json:"-"`
|
|
NextLink *string `json:"nextLink,omitempty"`
|
|
Value *[]ProtectionContainerResource `json:"value,omitempty"`
|
|
}
|
|
|
|
// ProtectionContainerResourceListPreparer prepares a request to retrieve the next set of results. It returns
|
|
// nil if no more results exist.
|
|
func (client ProtectionContainerResourceList) ProtectionContainerResourceListPreparer() (*http.Request, error) {
|
|
if client.NextLink == nil || len(to.String(client.NextLink)) <= 0 {
|
|
return nil, nil
|
|
}
|
|
return autorest.Prepare(&http.Request{},
|
|
autorest.AsJSON(),
|
|
autorest.AsGet(),
|
|
autorest.WithBaseURL(to.String(client.NextLink)))
|
|
}
|
|
|
|
// ProtectionPolicy is base class for backup policy. Workload-specific backup policies are derived from this class.
|
|
type ProtectionPolicy interface {
|
|
AsAzureIaaSVMProtectionPolicy() (*AzureIaaSVMProtectionPolicy, bool)
|
|
AsAzureSQLProtectionPolicy() (*AzureSQLProtectionPolicy, bool)
|
|
AsMabProtectionPolicy() (*MabProtectionPolicy, bool)
|
|
}
|
|
|
|
func unmarshalProtectionPolicy(body []byte) (ProtectionPolicy, error) {
|
|
var m map[string]interface{}
|
|
err := json.Unmarshal(body, &m)
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
|
|
switch m["backupManagementType"] {
|
|
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(BackupManagementTypeMAB):
|
|
var mpp MabProtectionPolicy
|
|
err := json.Unmarshal(body, &mpp)
|
|
return mpp, err
|
|
default:
|
|
return nil, errors.New("Unsupported type")
|
|
}
|
|
}
|
|
func unmarshalProtectionPolicyArray(body []byte) ([]ProtectionPolicy, error) {
|
|
var rawMessages []*json.RawMessage
|
|
err := json.Unmarshal(body, &rawMessages)
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
|
|
ppArray := make([]ProtectionPolicy, len(rawMessages))
|
|
|
|
for index, rawMessage := range rawMessages {
|
|
pp, err := unmarshalProtectionPolicy(*rawMessage)
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
ppArray[index] = pp
|
|
}
|
|
return ppArray, nil
|
|
}
|
|
|
|
// ProtectionPolicyQueryObject is filters the list backup policies API.
|
|
type ProtectionPolicyQueryObject struct {
|
|
BackupManagementType BackupManagementType `json:"backupManagementType,omitempty"`
|
|
}
|
|
|
|
// ProtectionPolicyResource is base class for backup policy. Workload-specific backup policies are derived from this
|
|
// class.
|
|
type ProtectionPolicyResource struct {
|
|
autorest.Response `json:"-"`
|
|
ID *string `json:"id,omitempty"`
|
|
Name *string `json:"name,omitempty"`
|
|
Type *string `json:"type,omitempty"`
|
|
Location *string `json:"location,omitempty"`
|
|
Tags *map[string]*string `json:"tags,omitempty"`
|
|
ETag *string `json:"eTag,omitempty"`
|
|
Properties ProtectionPolicy `json:"properties,omitempty"`
|
|
}
|
|
|
|
// 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
|
|
}
|
|
var v *json.RawMessage
|
|
|
|
v = m["properties"]
|
|
if v != nil {
|
|
properties, err := unmarshalProtectionPolicy(*m["properties"])
|
|
if err != nil {
|
|
return err
|
|
}
|
|
ppr.Properties = properties
|
|
}
|
|
|
|
v = m["id"]
|
|
if v != nil {
|
|
var ID string
|
|
err = json.Unmarshal(*m["id"], &ID)
|
|
if err != nil {
|
|
return err
|
|
}
|
|
ppr.ID = &ID
|
|
}
|
|
|
|
v = m["name"]
|
|
if v != nil {
|
|
var name string
|
|
err = json.Unmarshal(*m["name"], &name)
|
|
if err != nil {
|
|
return err
|
|
}
|
|
ppr.Name = &name
|
|
}
|
|
|
|
v = m["type"]
|
|
if v != nil {
|
|
var typeVar string
|
|
err = json.Unmarshal(*m["type"], &typeVar)
|
|
if err != nil {
|
|
return err
|
|
}
|
|
ppr.Type = &typeVar
|
|
}
|
|
|
|
v = m["location"]
|
|
if v != nil {
|
|
var location string
|
|
err = json.Unmarshal(*m["location"], &location)
|
|
if err != nil {
|
|
return err
|
|
}
|
|
ppr.Location = &location
|
|
}
|
|
|
|
v = m["tags"]
|
|
if v != nil {
|
|
var tags map[string]*string
|
|
err = json.Unmarshal(*m["tags"], &tags)
|
|
if err != nil {
|
|
return err
|
|
}
|
|
ppr.Tags = &tags
|
|
}
|
|
|
|
v = m["eTag"]
|
|
if v != nil {
|
|
var eTag string
|
|
err = json.Unmarshal(*m["eTag"], &eTag)
|
|
if err != nil {
|
|
return err
|
|
}
|
|
ppr.ETag = &eTag
|
|
}
|
|
|
|
return nil
|
|
}
|
|
|
|
// ProtectionPolicyResourceList is list of ProtectionPolicy resources
|
|
type ProtectionPolicyResourceList struct {
|
|
autorest.Response `json:"-"`
|
|
NextLink *string `json:"nextLink,omitempty"`
|
|
Value *[]ProtectionPolicyResource `json:"value,omitempty"`
|
|
}
|
|
|
|
// ProtectionPolicyResourceListPreparer prepares a request to retrieve the next set of results. It returns
|
|
// nil if no more results exist.
|
|
func (client ProtectionPolicyResourceList) ProtectionPolicyResourceListPreparer() (*http.Request, error) {
|
|
if client.NextLink == nil || len(to.String(client.NextLink)) <= 0 {
|
|
return nil, nil
|
|
}
|
|
return autorest.Prepare(&http.Request{},
|
|
autorest.AsJSON(),
|
|
autorest.AsGet(),
|
|
autorest.WithBaseURL(to.String(client.NextLink)))
|
|
}
|
|
|
|
// RecoveryPoint is base class for backup copies. Workload-specific backup copies are derived from this class.
|
|
type RecoveryPoint interface {
|
|
AsGenericRecoveryPoint() (*GenericRecoveryPoint, bool)
|
|
AsIaasVMRecoveryPoint() (*IaasVMRecoveryPoint, bool)
|
|
}
|
|
|
|
func unmarshalRecoveryPoint(body []byte) (RecoveryPoint, error) {
|
|
var m map[string]interface{}
|
|
err := json.Unmarshal(body, &m)
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
|
|
switch m["objectType"] {
|
|
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:
|
|
return nil, errors.New("Unsupported type")
|
|
}
|
|
}
|
|
func unmarshalRecoveryPointArray(body []byte) ([]RecoveryPoint, error) {
|
|
var rawMessages []*json.RawMessage
|
|
err := json.Unmarshal(body, &rawMessages)
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
|
|
rpArray := make([]RecoveryPoint, len(rawMessages))
|
|
|
|
for index, rawMessage := range rawMessages {
|
|
rp, err := unmarshalRecoveryPoint(*rawMessage)
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
rpArray[index] = rp
|
|
}
|
|
return rpArray, nil
|
|
}
|
|
|
|
// RecoveryPointResource is base class for backup copies. Workload-specific backup copies are derived from this class.
|
|
type RecoveryPointResource struct {
|
|
autorest.Response `json:"-"`
|
|
ID *string `json:"id,omitempty"`
|
|
Name *string `json:"name,omitempty"`
|
|
Type *string `json:"type,omitempty"`
|
|
Location *string `json:"location,omitempty"`
|
|
Tags *map[string]*string `json:"tags,omitempty"`
|
|
ETag *string `json:"eTag,omitempty"`
|
|
Properties RecoveryPoint `json:"properties,omitempty"`
|
|
}
|
|
|
|
// 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
|
|
}
|
|
var v *json.RawMessage
|
|
|
|
v = m["properties"]
|
|
if v != nil {
|
|
properties, err := unmarshalRecoveryPoint(*m["properties"])
|
|
if err != nil {
|
|
return err
|
|
}
|
|
rpr.Properties = properties
|
|
}
|
|
|
|
v = m["id"]
|
|
if v != nil {
|
|
var ID string
|
|
err = json.Unmarshal(*m["id"], &ID)
|
|
if err != nil {
|
|
return err
|
|
}
|
|
rpr.ID = &ID
|
|
}
|
|
|
|
v = m["name"]
|
|
if v != nil {
|
|
var name string
|
|
err = json.Unmarshal(*m["name"], &name)
|
|
if err != nil {
|
|
return err
|
|
}
|
|
rpr.Name = &name
|
|
}
|
|
|
|
v = m["type"]
|
|
if v != nil {
|
|
var typeVar string
|
|
err = json.Unmarshal(*m["type"], &typeVar)
|
|
if err != nil {
|
|
return err
|
|
}
|
|
rpr.Type = &typeVar
|
|
}
|
|
|
|
v = m["location"]
|
|
if v != nil {
|
|
var location string
|
|
err = json.Unmarshal(*m["location"], &location)
|
|
if err != nil {
|
|
return err
|
|
}
|
|
rpr.Location = &location
|
|
}
|
|
|
|
v = m["tags"]
|
|
if v != nil {
|
|
var tags map[string]*string
|
|
err = json.Unmarshal(*m["tags"], &tags)
|
|
if err != nil {
|
|
return err
|
|
}
|
|
rpr.Tags = &tags
|
|
}
|
|
|
|
v = m["eTag"]
|
|
if v != nil {
|
|
var eTag string
|
|
err = json.Unmarshal(*m["eTag"], &eTag)
|
|
if err != nil {
|
|
return err
|
|
}
|
|
rpr.ETag = &eTag
|
|
}
|
|
|
|
return nil
|
|
}
|
|
|
|
// RecoveryPointResourceList is list of RecoveryPoint resources
|
|
type RecoveryPointResourceList struct {
|
|
autorest.Response `json:"-"`
|
|
NextLink *string `json:"nextLink,omitempty"`
|
|
Value *[]RecoveryPointResource `json:"value,omitempty"`
|
|
}
|
|
|
|
// RecoveryPointResourceListPreparer prepares a request to retrieve the next set of results. It returns
|
|
// nil if no more results exist.
|
|
func (client RecoveryPointResourceList) RecoveryPointResourceListPreparer() (*http.Request, error) {
|
|
if client.NextLink == nil || len(to.String(client.NextLink)) <= 0 {
|
|
return nil, nil
|
|
}
|
|
return autorest.Prepare(&http.Request{},
|
|
autorest.AsJSON(),
|
|
autorest.AsGet(),
|
|
autorest.WithBaseURL(to.String(client.NextLink)))
|
|
}
|
|
|
|
// RecoveryPointTierInformation is recovery point tier information.
|
|
type RecoveryPointTierInformation struct {
|
|
Type RecoveryPointTierType `json:"type,omitempty"`
|
|
Status RecoveryPointTierStatus `json:"status,omitempty"`
|
|
}
|
|
|
|
// Resource is ARM Resource.
|
|
type Resource struct {
|
|
ID *string `json:"id,omitempty"`
|
|
Name *string `json:"name,omitempty"`
|
|
Type *string `json:"type,omitempty"`
|
|
Location *string `json:"location,omitempty"`
|
|
Tags *map[string]*string `json:"tags,omitempty"`
|
|
ETag *string `json:"eTag,omitempty"`
|
|
}
|
|
|
|
// ResourceList is base for all lists of resources.
|
|
type ResourceList struct {
|
|
NextLink *string `json:"nextLink,omitempty"`
|
|
}
|
|
|
|
// RestoreRequest is base class for restore request. Workload-specific restore requests are derived from this class.
|
|
type RestoreRequest interface {
|
|
AsIaasVMRestoreRequest() (*IaasVMRestoreRequest, bool)
|
|
}
|
|
|
|
func unmarshalRestoreRequest(body []byte) (RestoreRequest, error) {
|
|
var m map[string]interface{}
|
|
err := json.Unmarshal(body, &m)
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
|
|
switch m["objectType"] {
|
|
case string(ObjectTypeIaasVMRestoreRequest):
|
|
var ivrr IaasVMRestoreRequest
|
|
err := json.Unmarshal(body, &ivrr)
|
|
return ivrr, err
|
|
default:
|
|
return nil, errors.New("Unsupported type")
|
|
}
|
|
}
|
|
func unmarshalRestoreRequestArray(body []byte) ([]RestoreRequest, error) {
|
|
var rawMessages []*json.RawMessage
|
|
err := json.Unmarshal(body, &rawMessages)
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
|
|
rrArray := make([]RestoreRequest, len(rawMessages))
|
|
|
|
for index, rawMessage := range rawMessages {
|
|
rr, err := unmarshalRestoreRequest(*rawMessage)
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
rrArray[index] = rr
|
|
}
|
|
return rrArray, nil
|
|
}
|
|
|
|
// RestoreRequestResource is base class for restore request. Workload-specific restore requests are derived from this
|
|
// class.
|
|
type RestoreRequestResource struct {
|
|
ID *string `json:"id,omitempty"`
|
|
Name *string `json:"name,omitempty"`
|
|
Type *string `json:"type,omitempty"`
|
|
Location *string `json:"location,omitempty"`
|
|
Tags *map[string]*string `json:"tags,omitempty"`
|
|
ETag *string `json:"eTag,omitempty"`
|
|
Properties RestoreRequest `json:"properties,omitempty"`
|
|
}
|
|
|
|
// 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
|
|
}
|
|
var v *json.RawMessage
|
|
|
|
v = m["properties"]
|
|
if v != nil {
|
|
properties, err := unmarshalRestoreRequest(*m["properties"])
|
|
if err != nil {
|
|
return err
|
|
}
|
|
rrr.Properties = properties
|
|
}
|
|
|
|
v = m["id"]
|
|
if v != nil {
|
|
var ID string
|
|
err = json.Unmarshal(*m["id"], &ID)
|
|
if err != nil {
|
|
return err
|
|
}
|
|
rrr.ID = &ID
|
|
}
|
|
|
|
v = m["name"]
|
|
if v != nil {
|
|
var name string
|
|
err = json.Unmarshal(*m["name"], &name)
|
|
if err != nil {
|
|
return err
|
|
}
|
|
rrr.Name = &name
|
|
}
|
|
|
|
v = m["type"]
|
|
if v != nil {
|
|
var typeVar string
|
|
err = json.Unmarshal(*m["type"], &typeVar)
|
|
if err != nil {
|
|
return err
|
|
}
|
|
rrr.Type = &typeVar
|
|
}
|
|
|
|
v = m["location"]
|
|
if v != nil {
|
|
var location string
|
|
err = json.Unmarshal(*m["location"], &location)
|
|
if err != nil {
|
|
return err
|
|
}
|
|
rrr.Location = &location
|
|
}
|
|
|
|
v = m["tags"]
|
|
if v != nil {
|
|
var tags map[string]*string
|
|
err = json.Unmarshal(*m["tags"], &tags)
|
|
if err != nil {
|
|
return err
|
|
}
|
|
rrr.Tags = &tags
|
|
}
|
|
|
|
v = m["eTag"]
|
|
if v != nil {
|
|
var eTag string
|
|
err = json.Unmarshal(*m["eTag"], &eTag)
|
|
if err != nil {
|
|
return err
|
|
}
|
|
rrr.ETag = &eTag
|
|
}
|
|
|
|
return nil
|
|
}
|
|
|
|
// RetentionDuration is retention duration.
|
|
type RetentionDuration struct {
|
|
Count *int32 `json:"count,omitempty"`
|
|
DurationType RetentionDurationType `json:"durationType,omitempty"`
|
|
}
|
|
|
|
// RetentionPolicy is base class for retention policy.
|
|
type RetentionPolicy interface {
|
|
AsLongTermRetentionPolicy() (*LongTermRetentionPolicy, bool)
|
|
AsSimpleRetentionPolicy() (*SimpleRetentionPolicy, bool)
|
|
}
|
|
|
|
func unmarshalRetentionPolicy(body []byte) (RetentionPolicy, 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, <rp)
|
|
return ltrp, err
|
|
case string(RetentionPolicyTypeSimpleRetentionPolicy):
|
|
var srp SimpleRetentionPolicy
|
|
err := json.Unmarshal(body, &srp)
|
|
return srp, err
|
|
default:
|
|
return nil, errors.New("Unsupported type")
|
|
}
|
|
}
|
|
func unmarshalRetentionPolicyArray(body []byte) ([]RetentionPolicy, error) {
|
|
var rawMessages []*json.RawMessage
|
|
err := json.Unmarshal(body, &rawMessages)
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
|
|
rpArray := make([]RetentionPolicy, len(rawMessages))
|
|
|
|
for index, rawMessage := range rawMessages {
|
|
rp, err := unmarshalRetentionPolicy(*rawMessage)
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
rpArray[index] = rp
|
|
}
|
|
return rpArray, nil
|
|
}
|
|
|
|
// SchedulePolicy is base class for backup schedule.
|
|
type SchedulePolicy interface {
|
|
AsLongTermSchedulePolicy() (*LongTermSchedulePolicy, bool)
|
|
AsSimpleSchedulePolicy() (*SimpleSchedulePolicy, bool)
|
|
}
|
|
|
|
func unmarshalSchedulePolicy(body []byte) (SchedulePolicy, error) {
|
|
var m map[string]interface{}
|
|
err := json.Unmarshal(body, &m)
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
|
|
switch m["schedulePolicyType"] {
|
|
case string(SchedulePolicyTypeLongTermSchedulePolicy):
|
|
var ltsp LongTermSchedulePolicy
|
|
err := json.Unmarshal(body, <sp)
|
|
return ltsp, err
|
|
case string(SchedulePolicyTypeSimpleSchedulePolicy):
|
|
var ssp SimpleSchedulePolicy
|
|
err := json.Unmarshal(body, &ssp)
|
|
return ssp, err
|
|
default:
|
|
return nil, errors.New("Unsupported type")
|
|
}
|
|
}
|
|
func unmarshalSchedulePolicyArray(body []byte) ([]SchedulePolicy, error) {
|
|
var rawMessages []*json.RawMessage
|
|
err := json.Unmarshal(body, &rawMessages)
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
|
|
spArray := make([]SchedulePolicy, len(rawMessages))
|
|
|
|
for index, rawMessage := range rawMessages {
|
|
sp, err := unmarshalSchedulePolicy(*rawMessage)
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
spArray[index] = sp
|
|
}
|
|
return spArray, nil
|
|
}
|
|
|
|
// SimpleRetentionPolicy is simple policy retention.
|
|
type SimpleRetentionPolicy struct {
|
|
RetentionPolicyType RetentionPolicyType `json:"retentionPolicyType,omitempty"`
|
|
RetentionDuration *RetentionDuration `json:"retentionDuration,omitempty"`
|
|
}
|
|
|
|
// MarshalJSON is the custom marshaler for SimpleRetentionPolicy.
|
|
func (srp SimpleRetentionPolicy) MarshalJSON() ([]byte, error) {
|
|
srp.RetentionPolicyType = RetentionPolicyTypeSimpleRetentionPolicy
|
|
type Alias SimpleRetentionPolicy
|
|
return json.Marshal(&struct {
|
|
Alias
|
|
}{
|
|
Alias: (Alias)(srp),
|
|
})
|
|
}
|
|
|
|
// AsLongTermRetentionPolicy is the RetentionPolicy implementation for SimpleRetentionPolicy.
|
|
func (srp SimpleRetentionPolicy) AsLongTermRetentionPolicy() (*LongTermRetentionPolicy, bool) {
|
|
return nil, false
|
|
}
|
|
|
|
// AsSimpleRetentionPolicy is the RetentionPolicy implementation for SimpleRetentionPolicy.
|
|
func (srp SimpleRetentionPolicy) AsSimpleRetentionPolicy() (*SimpleRetentionPolicy, bool) {
|
|
return &srp, true
|
|
}
|
|
|
|
// SimpleSchedulePolicy is simple policy schedule.
|
|
type SimpleSchedulePolicy struct {
|
|
SchedulePolicyType SchedulePolicyType `json:"schedulePolicyType,omitempty"`
|
|
ScheduleRunFrequency ScheduleRunType `json:"scheduleRunFrequency,omitempty"`
|
|
ScheduleRunDays *[]DayOfWeek `json:"scheduleRunDays,omitempty"`
|
|
ScheduleRunTimes *[]date.Time `json:"scheduleRunTimes,omitempty"`
|
|
ScheduleWeeklyFrequency *int32 `json:"scheduleWeeklyFrequency,omitempty"`
|
|
}
|
|
|
|
// MarshalJSON is the custom marshaler for SimpleSchedulePolicy.
|
|
func (ssp SimpleSchedulePolicy) MarshalJSON() ([]byte, error) {
|
|
ssp.SchedulePolicyType = SchedulePolicyTypeSimpleSchedulePolicy
|
|
type Alias SimpleSchedulePolicy
|
|
return json.Marshal(&struct {
|
|
Alias
|
|
}{
|
|
Alias: (Alias)(ssp),
|
|
})
|
|
}
|
|
|
|
// AsLongTermSchedulePolicy is the SchedulePolicy implementation for SimpleSchedulePolicy.
|
|
func (ssp SimpleSchedulePolicy) AsLongTermSchedulePolicy() (*LongTermSchedulePolicy, bool) {
|
|
return nil, false
|
|
}
|
|
|
|
// AsSimpleSchedulePolicy is the SchedulePolicy implementation for SimpleSchedulePolicy.
|
|
func (ssp SimpleSchedulePolicy) AsSimpleSchedulePolicy() (*SimpleSchedulePolicy, bool) {
|
|
return &ssp, true
|
|
}
|
|
|
|
// TokenInformation is the token information details.
|
|
type TokenInformation struct {
|
|
autorest.Response `json:"-"`
|
|
Token *string `json:"token,omitempty"`
|
|
ExpiryTimeInUtcTicks *int64 `json:"expiryTimeInUtcTicks,omitempty"`
|
|
SecurityPIN *string `json:"securityPIN,omitempty"`
|
|
}
|
|
|
|
// WeeklyRetentionFormat is weekly retention format.
|
|
type WeeklyRetentionFormat struct {
|
|
DaysOfTheWeek *[]DayOfWeek `json:"daysOfTheWeek,omitempty"`
|
|
WeeksOfTheMonth *[]WeekOfMonth `json:"weeksOfTheMonth,omitempty"`
|
|
}
|
|
|
|
// WeeklyRetentionSchedule is weekly retention schedule.
|
|
type WeeklyRetentionSchedule struct {
|
|
DaysOfTheWeek *[]DayOfWeek `json:"daysOfTheWeek,omitempty"`
|
|
RetentionTimes *[]date.Time `json:"retentionTimes,omitempty"`
|
|
RetentionDuration *RetentionDuration `json:"retentionDuration,omitempty"`
|
|
}
|
|
|
|
// WorkloadProtectableItem is base class for backup item. Workload-specific backup items are derived from this class.
|
|
type WorkloadProtectableItem interface {
|
|
AsAzureIaaSClassicComputeVMProtectableItem() (*AzureIaaSClassicComputeVMProtectableItem, bool)
|
|
AsAzureIaaSComputeVMProtectableItem() (*AzureIaaSComputeVMProtectableItem, bool)
|
|
AsIaaSVMProtectableItem() (*IaaSVMProtectableItem, bool)
|
|
}
|
|
|
|
func unmarshalWorkloadProtectableItem(body []byte) (WorkloadProtectableItem, 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
|
|
case string(ProtectableItemTypeIaaSVMProtectableItem):
|
|
var ispi IaaSVMProtectableItem
|
|
err := json.Unmarshal(body, &ispi)
|
|
return ispi, err
|
|
default:
|
|
return nil, errors.New("Unsupported type")
|
|
}
|
|
}
|
|
func unmarshalWorkloadProtectableItemArray(body []byte) ([]WorkloadProtectableItem, error) {
|
|
var rawMessages []*json.RawMessage
|
|
err := json.Unmarshal(body, &rawMessages)
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
|
|
wpiArray := make([]WorkloadProtectableItem, len(rawMessages))
|
|
|
|
for index, rawMessage := range rawMessages {
|
|
wpi, err := unmarshalWorkloadProtectableItem(*rawMessage)
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
wpiArray[index] = wpi
|
|
}
|
|
return wpiArray, nil
|
|
}
|
|
|
|
// WorkloadProtectableItemResource is base class for backup item. Workload-specific backup items are derived from this
|
|
// class.
|
|
type WorkloadProtectableItemResource struct {
|
|
ID *string `json:"id,omitempty"`
|
|
Name *string `json:"name,omitempty"`
|
|
Type *string `json:"type,omitempty"`
|
|
Location *string `json:"location,omitempty"`
|
|
Tags *map[string]*string `json:"tags,omitempty"`
|
|
ETag *string `json:"eTag,omitempty"`
|
|
Properties WorkloadProtectableItem `json:"properties,omitempty"`
|
|
}
|
|
|
|
// 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
|
|
}
|
|
var v *json.RawMessage
|
|
|
|
v = m["properties"]
|
|
if v != nil {
|
|
properties, err := unmarshalWorkloadProtectableItem(*m["properties"])
|
|
if err != nil {
|
|
return err
|
|
}
|
|
wpir.Properties = properties
|
|
}
|
|
|
|
v = m["id"]
|
|
if v != nil {
|
|
var ID string
|
|
err = json.Unmarshal(*m["id"], &ID)
|
|
if err != nil {
|
|
return err
|
|
}
|
|
wpir.ID = &ID
|
|
}
|
|
|
|
v = m["name"]
|
|
if v != nil {
|
|
var name string
|
|
err = json.Unmarshal(*m["name"], &name)
|
|
if err != nil {
|
|
return err
|
|
}
|
|
wpir.Name = &name
|
|
}
|
|
|
|
v = m["type"]
|
|
if v != nil {
|
|
var typeVar string
|
|
err = json.Unmarshal(*m["type"], &typeVar)
|
|
if err != nil {
|
|
return err
|
|
}
|
|
wpir.Type = &typeVar
|
|
}
|
|
|
|
v = m["location"]
|
|
if v != nil {
|
|
var location string
|
|
err = json.Unmarshal(*m["location"], &location)
|
|
if err != nil {
|
|
return err
|
|
}
|
|
wpir.Location = &location
|
|
}
|
|
|
|
v = m["tags"]
|
|
if v != nil {
|
|
var tags map[string]*string
|
|
err = json.Unmarshal(*m["tags"], &tags)
|
|
if err != nil {
|
|
return err
|
|
}
|
|
wpir.Tags = &tags
|
|
}
|
|
|
|
v = m["eTag"]
|
|
if v != nil {
|
|
var eTag string
|
|
err = json.Unmarshal(*m["eTag"], &eTag)
|
|
if err != nil {
|
|
return err
|
|
}
|
|
wpir.ETag = &eTag
|
|
}
|
|
|
|
return nil
|
|
}
|
|
|
|
// WorkloadProtectableItemResourceList is list of WorkloadProtectableItem resources
|
|
type WorkloadProtectableItemResourceList struct {
|
|
autorest.Response `json:"-"`
|
|
NextLink *string `json:"nextLink,omitempty"`
|
|
Value *[]WorkloadProtectableItemResource `json:"value,omitempty"`
|
|
}
|
|
|
|
// WorkloadProtectableItemResourceListPreparer prepares a request to retrieve the next set of results. It returns
|
|
// nil if no more results exist.
|
|
func (client WorkloadProtectableItemResourceList) WorkloadProtectableItemResourceListPreparer() (*http.Request, error) {
|
|
if client.NextLink == nil || len(to.String(client.NextLink)) <= 0 {
|
|
return nil, nil
|
|
}
|
|
return autorest.Prepare(&http.Request{},
|
|
autorest.AsJSON(),
|
|
autorest.AsGet(),
|
|
autorest.WithBaseURL(to.String(client.NextLink)))
|
|
}
|
|
|
|
// YearlyRetentionSchedule is yearly retention schedule.
|
|
type YearlyRetentionSchedule struct {
|
|
RetentionScheduleFormatType RetentionScheduleFormat `json:"retentionScheduleFormatType,omitempty"`
|
|
MonthsOfYear *[]MonthOfYear `json:"monthsOfYear,omitempty"`
|
|
RetentionScheduleDaily *DailyRetentionFormat `json:"retentionScheduleDaily,omitempty"`
|
|
RetentionScheduleWeekly *WeeklyRetentionFormat `json:"retentionScheduleWeekly,omitempty"`
|
|
RetentionTimes *[]date.Time `json:"retentionTimes,omitempty"`
|
|
RetentionDuration *RetentionDuration `json:"retentionDuration,omitempty"`
|
|
}
|