2
2
mirror of https://github.com/octoleo/restic.git synced 2024-11-15 09:44:15 +00:00
restic/vendor/github.com/Azure/azure-sdk-for-go/arm/recoveryservicessiterecovery/models.go
Alexander Neumann 61cb1cc6f8 Update vendored dependencies
This includes github.com/kurin/blazer 0.2.0, which resolves #1291
2017-10-01 10:13:39 +02:00

10178 lines
454 KiB
Go

package recoveryservicessiterecovery
// 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"
)
// A2ARpRecoveryPointType enumerates the values for a2a rp recovery point type.
type A2ARpRecoveryPointType string
const (
// Latest specifies the latest state for a2a rp recovery point type.
Latest A2ARpRecoveryPointType = "Latest"
// LatestApplicationConsistent specifies the latest application consistent state for a2a rp recovery point type.
LatestApplicationConsistent A2ARpRecoveryPointType = "LatestApplicationConsistent"
// LatestCrashConsistent specifies the latest crash consistent state for a2a rp recovery point type.
LatestCrashConsistent A2ARpRecoveryPointType = "LatestCrashConsistent"
// LatestProcessed specifies the latest processed state for a2a rp recovery point type.
LatestProcessed A2ARpRecoveryPointType = "LatestProcessed"
)
// AlternateLocationRecoveryOption enumerates the values for alternate location recovery option.
type AlternateLocationRecoveryOption string
const (
// CreateVMIfNotFound specifies the create vm if not found state for alternate location recovery option.
CreateVMIfNotFound AlternateLocationRecoveryOption = "CreateVmIfNotFound"
// NoAction specifies the no action state for alternate location recovery option.
NoAction AlternateLocationRecoveryOption = "NoAction"
)
// DataSyncStatus enumerates the values for data sync status.
type DataSyncStatus string
const (
// ForDownTime specifies the for down time state for data sync status.
ForDownTime DataSyncStatus = "ForDownTime"
// ForSynchronization specifies the for synchronization state for data sync status.
ForSynchronization DataSyncStatus = "ForSynchronization"
)
// DisableProtectionReason enumerates the values for disable protection reason.
type DisableProtectionReason string
const (
// MigrationComplete specifies the migration complete state for disable protection reason.
MigrationComplete DisableProtectionReason = "MigrationComplete"
// NotSpecified specifies the not specified state for disable protection reason.
NotSpecified DisableProtectionReason = "NotSpecified"
)
// FailoverDeploymentModel enumerates the values for failover deployment model.
type FailoverDeploymentModel string
const (
// Classic specifies the classic state for failover deployment model.
Classic FailoverDeploymentModel = "Classic"
// NotApplicable specifies the not applicable state for failover deployment model.
NotApplicable FailoverDeploymentModel = "NotApplicable"
// ResourceManager specifies the resource manager state for failover deployment model.
ResourceManager FailoverDeploymentModel = "ResourceManager"
)
// HealthErrorCategory enumerates the values for health error category.
type HealthErrorCategory string
const (
// Configuration specifies the configuration state for health error category.
Configuration HealthErrorCategory = "Configuration"
// Replication specifies the replication state for health error category.
Replication HealthErrorCategory = "Replication"
// TestFailover specifies the test failover state for health error category.
TestFailover HealthErrorCategory = "TestFailover"
)
// HyperVReplicaAzureRpRecoveryPointType enumerates the values for hyper v replica azure rp recovery point type.
type HyperVReplicaAzureRpRecoveryPointType string
const (
// HyperVReplicaAzureRpRecoveryPointTypeLatest specifies the hyper v replica azure rp recovery point type latest state
// for hyper v replica azure rp recovery point type.
HyperVReplicaAzureRpRecoveryPointTypeLatest HyperVReplicaAzureRpRecoveryPointType = "Latest"
// HyperVReplicaAzureRpRecoveryPointTypeLatestApplicationConsistent specifies the hyper v replica azure rp recovery
// point type latest application consistent state for hyper v replica azure rp recovery point type.
HyperVReplicaAzureRpRecoveryPointTypeLatestApplicationConsistent HyperVReplicaAzureRpRecoveryPointType = "LatestApplicationConsistent"
// HyperVReplicaAzureRpRecoveryPointTypeLatestProcessed specifies the hyper v replica azure rp recovery point type
// latest processed state for hyper v replica azure rp recovery point type.
HyperVReplicaAzureRpRecoveryPointTypeLatestProcessed HyperVReplicaAzureRpRecoveryPointType = "LatestProcessed"
)
// IdentityProviderType enumerates the values for identity provider type.
type IdentityProviderType string
const (
// CustomerActiveDirectory specifies the customer active directory state for identity provider type.
CustomerActiveDirectory IdentityProviderType = "CustomerActiveDirectory"
// RecoveryServicesActiveDirectory specifies the recovery services active directory state for identity provider type.
RecoveryServicesActiveDirectory IdentityProviderType = "RecoveryServicesActiveDirectory"
)
// InMageV2RpRecoveryPointType enumerates the values for in mage v2 rp recovery point type.
type InMageV2RpRecoveryPointType string
const (
// InMageV2RpRecoveryPointTypeLatest specifies the in mage v2 rp recovery point type latest state for in mage v2 rp
// recovery point type.
InMageV2RpRecoveryPointTypeLatest InMageV2RpRecoveryPointType = "Latest"
// InMageV2RpRecoveryPointTypeLatestApplicationConsistent specifies the in mage v2 rp recovery point type latest
// application consistent state for in mage v2 rp recovery point type.
InMageV2RpRecoveryPointTypeLatestApplicationConsistent InMageV2RpRecoveryPointType = "LatestApplicationConsistent"
// InMageV2RpRecoveryPointTypeLatestCrashConsistent specifies the in mage v2 rp recovery point type latest crash
// consistent state for in mage v2 rp recovery point type.
InMageV2RpRecoveryPointTypeLatestCrashConsistent InMageV2RpRecoveryPointType = "LatestCrashConsistent"
// InMageV2RpRecoveryPointTypeLatestProcessed specifies the in mage v2 rp recovery point type latest processed state
// for in mage v2 rp recovery point type.
InMageV2RpRecoveryPointTypeLatestProcessed InMageV2RpRecoveryPointType = "LatestProcessed"
)
// InstanceType enumerates the values for instance type.
type InstanceType string
const (
// InstanceTypeA2A specifies the instance type a2a state for instance type.
InstanceTypeA2A InstanceType = "A2A"
// InstanceTypeHyperVReplica2012 specifies the instance type hyper v replica 2012 state for instance type.
InstanceTypeHyperVReplica2012 InstanceType = "HyperVReplica2012"
// InstanceTypeHyperVReplica2012R2 specifies the instance type hyper v replica 2012r2 state for instance type.
InstanceTypeHyperVReplica2012R2 InstanceType = "HyperVReplica2012R2"
// InstanceTypeHyperVReplicaAzure specifies the instance type hyper v replica azure state for instance type.
InstanceTypeHyperVReplicaAzure InstanceType = "HyperVReplicaAzure"
// InstanceTypeHyperVReplicaBaseEventDetails specifies the instance type hyper v replica base event details state for
// instance type.
InstanceTypeHyperVReplicaBaseEventDetails InstanceType = "HyperVReplicaBaseEventDetails"
// InstanceTypeInMageAzureV2 specifies the instance type in mage azure v2 state for instance type.
InstanceTypeInMageAzureV2 InstanceType = "InMageAzureV2"
)
// InstanceTypeConfigurationSettings enumerates the values for instance type configuration settings.
type InstanceTypeConfigurationSettings string
const (
// InstanceTypeHyperVVirtualMachine specifies the instance type hyper v virtual machine state for instance type
// configuration settings.
InstanceTypeHyperVVirtualMachine InstanceTypeConfigurationSettings = "HyperVVirtualMachine"
// InstanceTypeReplicationGroupDetails specifies the instance type replication group details state for instance type
// configuration settings.
InstanceTypeReplicationGroupDetails InstanceTypeConfigurationSettings = "ReplicationGroupDetails"
// InstanceTypeVMwareVirtualMachine specifies the instance type v mware virtual machine state for instance type
// configuration settings.
InstanceTypeVMwareVirtualMachine InstanceTypeConfigurationSettings = "VMwareVirtualMachine"
)
// InstanceTypeDisableProtectionProviderSpecificInput enumerates the values for instance type disable protection
// provider specific input.
type InstanceTypeDisableProtectionProviderSpecificInput string
const (
// InstanceTypeInMage specifies the instance type in mage state for instance type disable protection provider specific
// input.
InstanceTypeInMage InstanceTypeDisableProtectionProviderSpecificInput = "InMage"
)
// InstanceTypeEnableProtectionProviderSpecificInput enumerates the values for instance type enable protection provider
// specific input.
type InstanceTypeEnableProtectionProviderSpecificInput string
const (
// InstanceTypeEnableProtectionProviderSpecificInputInstanceTypeA2A specifies the instance type enable protection
// provider specific input instance type a2a state for instance type enable protection provider specific input.
InstanceTypeEnableProtectionProviderSpecificInputInstanceTypeA2A InstanceTypeEnableProtectionProviderSpecificInput = "A2A"
// InstanceTypeEnableProtectionProviderSpecificInputInstanceTypeHyperVReplicaAzure specifies the instance type enable
// protection provider specific input instance type hyper v replica azure state for instance type enable protection
// provider specific input.
InstanceTypeEnableProtectionProviderSpecificInputInstanceTypeHyperVReplicaAzure InstanceTypeEnableProtectionProviderSpecificInput = "HyperVReplicaAzure"
// InstanceTypeEnableProtectionProviderSpecificInputInstanceTypeInMage specifies the instance type enable protection
// provider specific input instance type in mage state for instance type enable protection provider specific input.
InstanceTypeEnableProtectionProviderSpecificInputInstanceTypeInMage InstanceTypeEnableProtectionProviderSpecificInput = "InMage"
// InstanceTypeEnableProtectionProviderSpecificInputInstanceTypeInMageAzureV2 specifies the instance type enable
// protection provider specific input instance type in mage azure v2 state for instance type enable protection provider
// specific input.
InstanceTypeEnableProtectionProviderSpecificInputInstanceTypeInMageAzureV2 InstanceTypeEnableProtectionProviderSpecificInput = "InMageAzureV2"
// InstanceTypeEnableProtectionProviderSpecificInputInstanceTypeSan specifies the instance type enable protection
// provider specific input instance type san state for instance type enable protection provider specific input.
InstanceTypeEnableProtectionProviderSpecificInputInstanceTypeSan InstanceTypeEnableProtectionProviderSpecificInput = "San"
)
// InstanceTypeEventSpecificDetails enumerates the values for instance type event specific details.
type InstanceTypeEventSpecificDetails string
const (
// InstanceTypeJobStatus specifies the instance type job status state for instance type event specific details.
InstanceTypeJobStatus InstanceTypeEventSpecificDetails = "JobStatus"
)
// InstanceTypeFabricSpecificCreateNetworkMappingInput enumerates the values for instance type fabric specific create
// network mapping input.
type InstanceTypeFabricSpecificCreateNetworkMappingInput string
const (
// InstanceTypeAzureToAzure specifies the instance type azure to azure state for instance type fabric specific create
// network mapping input.
InstanceTypeAzureToAzure InstanceTypeFabricSpecificCreateNetworkMappingInput = "AzureToAzure"
// InstanceTypeVmmToAzure specifies the instance type vmm to azure state for instance type fabric specific create
// network mapping input.
InstanceTypeVmmToAzure InstanceTypeFabricSpecificCreateNetworkMappingInput = "VmmToAzure"
// InstanceTypeVmmToVmm specifies the instance type vmm to vmm state for instance type fabric specific create network
// mapping input.
InstanceTypeVmmToVmm InstanceTypeFabricSpecificCreateNetworkMappingInput = "VmmToVmm"
)
// InstanceTypeFabricSpecificCreationInput enumerates the values for instance type fabric specific creation input.
type InstanceTypeFabricSpecificCreationInput string
const (
// InstanceTypeFabricSpecificCreationInputInstanceTypeA2A specifies the instance type fabric specific creation input
// instance type a2a state for instance type fabric specific creation input.
InstanceTypeFabricSpecificCreationInputInstanceTypeA2A InstanceTypeFabricSpecificCreationInput = "A2A"
// InstanceTypeFabricSpecificCreationInputInstanceTypeVMwareV2 specifies the instance type fabric specific creation
// input instance type v mware v2 state for instance type fabric specific creation input.
InstanceTypeFabricSpecificCreationInputInstanceTypeVMwareV2 InstanceTypeFabricSpecificCreationInput = "VMwareV2"
)
// InstanceTypeFabricSpecificDetails enumerates the values for instance type fabric specific details.
type InstanceTypeFabricSpecificDetails string
const (
// InstanceTypeAzure specifies the instance type azure state for instance type fabric specific details.
InstanceTypeAzure InstanceTypeFabricSpecificDetails = "Azure"
// InstanceTypeHyperVSite specifies the instance type hyper v site state for instance type fabric specific details.
InstanceTypeHyperVSite InstanceTypeFabricSpecificDetails = "HyperVSite"
// InstanceTypeVMM specifies the instance type vmm state for instance type fabric specific details.
InstanceTypeVMM InstanceTypeFabricSpecificDetails = "VMM"
// InstanceTypeVMware specifies the instance type v mware state for instance type fabric specific details.
InstanceTypeVMware InstanceTypeFabricSpecificDetails = "VMware"
// InstanceTypeVMwareV2 specifies the instance type v mware v2 state for instance type fabric specific details.
InstanceTypeVMwareV2 InstanceTypeFabricSpecificDetails = "VMwareV2"
)
// InstanceTypeFabricSpecificUpdateNetworkMappingInput enumerates the values for instance type fabric specific update
// network mapping input.
type InstanceTypeFabricSpecificUpdateNetworkMappingInput string
const (
// InstanceTypeFabricSpecificUpdateNetworkMappingInputInstanceTypeAzureToAzure specifies the instance type fabric
// specific update network mapping input instance type azure to azure state for instance type fabric specific update
// network mapping input.
InstanceTypeFabricSpecificUpdateNetworkMappingInputInstanceTypeAzureToAzure InstanceTypeFabricSpecificUpdateNetworkMappingInput = "AzureToAzure"
// InstanceTypeFabricSpecificUpdateNetworkMappingInputInstanceTypeVmmToAzure specifies the instance type fabric
// specific update network mapping input instance type vmm to azure state for instance type fabric specific update
// network mapping input.
InstanceTypeFabricSpecificUpdateNetworkMappingInputInstanceTypeVmmToAzure InstanceTypeFabricSpecificUpdateNetworkMappingInput = "VmmToAzure"
// InstanceTypeFabricSpecificUpdateNetworkMappingInputInstanceTypeVmmToVmm specifies the instance type fabric specific
// update network mapping input instance type vmm to vmm state for instance type fabric specific update network mapping
// input.
InstanceTypeFabricSpecificUpdateNetworkMappingInputInstanceTypeVmmToVmm InstanceTypeFabricSpecificUpdateNetworkMappingInput = "VmmToVmm"
)
// InstanceTypeGroupTaskDetails enumerates the values for instance type group task details.
type InstanceTypeGroupTaskDetails string
const (
// InstanceTypeInlineWorkflowTaskDetails specifies the instance type inline workflow task details state for instance
// type group task details.
InstanceTypeInlineWorkflowTaskDetails InstanceTypeGroupTaskDetails = "InlineWorkflowTaskDetails"
// InstanceTypeRecoveryPlanGroupTaskDetails specifies the instance type recovery plan group task details state for
// instance type group task details.
InstanceTypeRecoveryPlanGroupTaskDetails InstanceTypeGroupTaskDetails = "RecoveryPlanGroupTaskDetails"
// InstanceTypeRecoveryPlanShutdownGroupTaskDetails specifies the instance type recovery plan shutdown group task
// details state for instance type group task details.
InstanceTypeRecoveryPlanShutdownGroupTaskDetails InstanceTypeGroupTaskDetails = "RecoveryPlanShutdownGroupTaskDetails"
)
// InstanceTypeJobDetails enumerates the values for instance type job details.
type InstanceTypeJobDetails string
const (
// InstanceTypeAsrJobDetails specifies the instance type asr job details state for instance type job details.
InstanceTypeAsrJobDetails InstanceTypeJobDetails = "AsrJobDetails"
// InstanceTypeExportJobDetails specifies the instance type export job details state for instance type job details.
InstanceTypeExportJobDetails InstanceTypeJobDetails = "ExportJobDetails"
// InstanceTypeFailoverJobDetails specifies the instance type failover job details state for instance type job details.
InstanceTypeFailoverJobDetails InstanceTypeJobDetails = "FailoverJobDetails"
// InstanceTypeSwitchProtectionJobDetails specifies the instance type switch protection job details state for instance
// type job details.
InstanceTypeSwitchProtectionJobDetails InstanceTypeJobDetails = "SwitchProtectionJobDetails"
// InstanceTypeTestFailoverJobDetails specifies the instance type test failover job details state for instance type job
// details.
InstanceTypeTestFailoverJobDetails InstanceTypeJobDetails = "TestFailoverJobDetails"
)
// InstanceTypeNetworkMappingFabricSpecificSettings enumerates the values for instance type network mapping fabric
// specific settings.
type InstanceTypeNetworkMappingFabricSpecificSettings string
const (
// InstanceTypeNetworkMappingFabricSpecificSettingsInstanceTypeAzureToAzure specifies the instance type network mapping
// fabric specific settings instance type azure to azure state for instance type network mapping fabric specific
// settings.
InstanceTypeNetworkMappingFabricSpecificSettingsInstanceTypeAzureToAzure InstanceTypeNetworkMappingFabricSpecificSettings = "AzureToAzure"
// InstanceTypeNetworkMappingFabricSpecificSettingsInstanceTypeVmmToAzure specifies the instance type network mapping
// fabric specific settings instance type vmm to azure state for instance type network mapping fabric specific
// settings.
InstanceTypeNetworkMappingFabricSpecificSettingsInstanceTypeVmmToAzure InstanceTypeNetworkMappingFabricSpecificSettings = "VmmToAzure"
// InstanceTypeNetworkMappingFabricSpecificSettingsInstanceTypeVmmToVmm specifies the instance type network mapping
// fabric specific settings instance type vmm to vmm state for instance type network mapping fabric specific settings.
InstanceTypeNetworkMappingFabricSpecificSettingsInstanceTypeVmmToVmm InstanceTypeNetworkMappingFabricSpecificSettings = "VmmToVmm"
)
// InstanceTypePolicyProviderSpecificDetails enumerates the values for instance type policy provider specific details.
type InstanceTypePolicyProviderSpecificDetails string
const (
// InstanceTypePolicyProviderSpecificDetailsInstanceTypeA2A specifies the instance type policy provider specific
// details instance type a2a state for instance type policy provider specific details.
InstanceTypePolicyProviderSpecificDetailsInstanceTypeA2A InstanceTypePolicyProviderSpecificDetails = "A2A"
// InstanceTypePolicyProviderSpecificDetailsInstanceTypeHyperVReplica2012 specifies the instance type policy provider
// specific details instance type hyper v replica 2012 state for instance type policy provider specific details.
InstanceTypePolicyProviderSpecificDetailsInstanceTypeHyperVReplica2012 InstanceTypePolicyProviderSpecificDetails = "HyperVReplica2012"
// InstanceTypePolicyProviderSpecificDetailsInstanceTypeHyperVReplica2012R2 specifies the instance type policy provider
// specific details instance type hyper v replica 2012r2 state for instance type policy provider specific details.
InstanceTypePolicyProviderSpecificDetailsInstanceTypeHyperVReplica2012R2 InstanceTypePolicyProviderSpecificDetails = "HyperVReplica2012R2"
// InstanceTypePolicyProviderSpecificDetailsInstanceTypeHyperVReplicaAzure specifies the instance type policy provider
// specific details instance type hyper v replica azure state for instance type policy provider specific details.
InstanceTypePolicyProviderSpecificDetailsInstanceTypeHyperVReplicaAzure InstanceTypePolicyProviderSpecificDetails = "HyperVReplicaAzure"
// InstanceTypePolicyProviderSpecificDetailsInstanceTypeHyperVReplicaBasePolicyDetails specifies the instance type
// policy provider specific details instance type hyper v replica base policy details state for instance type policy
// provider specific details.
InstanceTypePolicyProviderSpecificDetailsInstanceTypeHyperVReplicaBasePolicyDetails InstanceTypePolicyProviderSpecificDetails = "HyperVReplicaBasePolicyDetails"
// InstanceTypePolicyProviderSpecificDetailsInstanceTypeInMage specifies the instance type policy provider specific
// details instance type in mage state for instance type policy provider specific details.
InstanceTypePolicyProviderSpecificDetailsInstanceTypeInMage InstanceTypePolicyProviderSpecificDetails = "InMage"
// InstanceTypePolicyProviderSpecificDetailsInstanceTypeInMageAzureV2 specifies the instance type policy provider
// specific details instance type in mage azure v2 state for instance type policy provider specific details.
InstanceTypePolicyProviderSpecificDetailsInstanceTypeInMageAzureV2 InstanceTypePolicyProviderSpecificDetails = "InMageAzureV2"
// InstanceTypePolicyProviderSpecificDetailsInstanceTypeInMageBasePolicyDetails specifies the instance type policy
// provider specific details instance type in mage base policy details state for instance type policy provider specific
// details.
InstanceTypePolicyProviderSpecificDetailsInstanceTypeInMageBasePolicyDetails InstanceTypePolicyProviderSpecificDetails = "InMageBasePolicyDetails"
// InstanceTypePolicyProviderSpecificDetailsInstanceTypeRcmAzureMigration specifies the instance type policy provider
// specific details instance type rcm azure migration state for instance type policy provider specific details.
InstanceTypePolicyProviderSpecificDetailsInstanceTypeRcmAzureMigration InstanceTypePolicyProviderSpecificDetails = "RcmAzureMigration"
// InstanceTypePolicyProviderSpecificDetailsInstanceTypeVMwareCbt specifies the instance type policy provider specific
// details instance type v mware cbt state for instance type policy provider specific details.
InstanceTypePolicyProviderSpecificDetailsInstanceTypeVMwareCbt InstanceTypePolicyProviderSpecificDetails = "VMwareCbt"
)
// InstanceTypePolicyProviderSpecificInput enumerates the values for instance type policy provider specific input.
type InstanceTypePolicyProviderSpecificInput string
const (
// InstanceTypePolicyProviderSpecificInputInstanceTypeA2A specifies the instance type policy provider specific input
// instance type a2a state for instance type policy provider specific input.
InstanceTypePolicyProviderSpecificInputInstanceTypeA2A InstanceTypePolicyProviderSpecificInput = "A2A"
// InstanceTypePolicyProviderSpecificInputInstanceTypeHyperVReplica2012 specifies the instance type policy provider
// specific input instance type hyper v replica 2012 state for instance type policy provider specific input.
InstanceTypePolicyProviderSpecificInputInstanceTypeHyperVReplica2012 InstanceTypePolicyProviderSpecificInput = "HyperVReplica2012"
// InstanceTypePolicyProviderSpecificInputInstanceTypeHyperVReplica2012R2 specifies the instance type policy provider
// specific input instance type hyper v replica 2012r2 state for instance type policy provider specific input.
InstanceTypePolicyProviderSpecificInputInstanceTypeHyperVReplica2012R2 InstanceTypePolicyProviderSpecificInput = "HyperVReplica2012R2"
// InstanceTypePolicyProviderSpecificInputInstanceTypeHyperVReplicaAzure specifies the instance type policy provider
// specific input instance type hyper v replica azure state for instance type policy provider specific input.
InstanceTypePolicyProviderSpecificInputInstanceTypeHyperVReplicaAzure InstanceTypePolicyProviderSpecificInput = "HyperVReplicaAzure"
// InstanceTypePolicyProviderSpecificInputInstanceTypeInMage specifies the instance type policy provider specific input
// instance type in mage state for instance type policy provider specific input.
InstanceTypePolicyProviderSpecificInputInstanceTypeInMage InstanceTypePolicyProviderSpecificInput = "InMage"
// InstanceTypePolicyProviderSpecificInputInstanceTypeInMageAzureV2 specifies the instance type policy provider
// specific input instance type in mage azure v2 state for instance type policy provider specific input.
InstanceTypePolicyProviderSpecificInputInstanceTypeInMageAzureV2 InstanceTypePolicyProviderSpecificInput = "InMageAzureV2"
// InstanceTypePolicyProviderSpecificInputInstanceTypeVMwareCbt specifies the instance type policy provider specific
// input instance type v mware cbt state for instance type policy provider specific input.
InstanceTypePolicyProviderSpecificInputInstanceTypeVMwareCbt InstanceTypePolicyProviderSpecificInput = "VMwareCbt"
)
// InstanceTypeProviderSpecificFailoverInput enumerates the values for instance type provider specific failover input.
type InstanceTypeProviderSpecificFailoverInput string
const (
// InstanceTypeProviderSpecificFailoverInputInstanceTypeA2A specifies the instance type provider specific failover
// input instance type a2a state for instance type provider specific failover input.
InstanceTypeProviderSpecificFailoverInputInstanceTypeA2A InstanceTypeProviderSpecificFailoverInput = "A2A"
// InstanceTypeProviderSpecificFailoverInputInstanceTypeHyperVReplicaAzure specifies the instance type provider
// specific failover input instance type hyper v replica azure state for instance type provider specific failover
// input.
InstanceTypeProviderSpecificFailoverInputInstanceTypeHyperVReplicaAzure InstanceTypeProviderSpecificFailoverInput = "HyperVReplicaAzure"
// InstanceTypeProviderSpecificFailoverInputInstanceTypeHyperVReplicaAzureFailback specifies the instance type provider
// specific failover input instance type hyper v replica azure failback state for instance type provider specific
// failover input.
InstanceTypeProviderSpecificFailoverInputInstanceTypeHyperVReplicaAzureFailback InstanceTypeProviderSpecificFailoverInput = "HyperVReplicaAzureFailback"
// InstanceTypeProviderSpecificFailoverInputInstanceTypeInMage specifies the instance type provider specific failover
// input instance type in mage state for instance type provider specific failover input.
InstanceTypeProviderSpecificFailoverInputInstanceTypeInMage InstanceTypeProviderSpecificFailoverInput = "InMage"
// InstanceTypeProviderSpecificFailoverInputInstanceTypeInMageAzureV2 specifies the instance type provider specific
// failover input instance type in mage azure v2 state for instance type provider specific failover input.
InstanceTypeProviderSpecificFailoverInputInstanceTypeInMageAzureV2 InstanceTypeProviderSpecificFailoverInput = "InMageAzureV2"
)
// InstanceTypeRecoveryPlanActionDetails enumerates the values for instance type recovery plan action details.
type InstanceTypeRecoveryPlanActionDetails string
const (
// InstanceTypeAutomationRunbookActionDetails specifies the instance type automation runbook action details state for
// instance type recovery plan action details.
InstanceTypeAutomationRunbookActionDetails InstanceTypeRecoveryPlanActionDetails = "AutomationRunbookActionDetails"
// InstanceTypeManualActionDetails specifies the instance type manual action details state for instance type recovery
// plan action details.
InstanceTypeManualActionDetails InstanceTypeRecoveryPlanActionDetails = "ManualActionDetails"
// InstanceTypeScriptActionDetails specifies the instance type script action details state for instance type recovery
// plan action details.
InstanceTypeScriptActionDetails InstanceTypeRecoveryPlanActionDetails = "ScriptActionDetails"
)
// InstanceTypeRecoveryPlanProviderSpecificFailoverInput enumerates the values for instance type recovery plan provider
// specific failover input.
type InstanceTypeRecoveryPlanProviderSpecificFailoverInput string
const (
// InstanceTypeRecoveryPlanProviderSpecificFailoverInputInstanceTypeA2A specifies the instance type recovery plan
// provider specific failover input instance type a2a state for instance type recovery plan provider specific failover
// input.
InstanceTypeRecoveryPlanProviderSpecificFailoverInputInstanceTypeA2A InstanceTypeRecoveryPlanProviderSpecificFailoverInput = "A2A"
// InstanceTypeRecoveryPlanProviderSpecificFailoverInputInstanceTypeHyperVReplicaAzure specifies the instance type
// recovery plan provider specific failover input instance type hyper v replica azure state for instance type recovery
// plan provider specific failover input.
InstanceTypeRecoveryPlanProviderSpecificFailoverInputInstanceTypeHyperVReplicaAzure InstanceTypeRecoveryPlanProviderSpecificFailoverInput = "HyperVReplicaAzure"
// InstanceTypeRecoveryPlanProviderSpecificFailoverInputInstanceTypeHyperVReplicaAzureFailback specifies the instance
// type recovery plan provider specific failover input instance type hyper v replica azure failback state for instance
// type recovery plan provider specific failover input.
InstanceTypeRecoveryPlanProviderSpecificFailoverInputInstanceTypeHyperVReplicaAzureFailback InstanceTypeRecoveryPlanProviderSpecificFailoverInput = "HyperVReplicaAzureFailback"
// InstanceTypeRecoveryPlanProviderSpecificFailoverInputInstanceTypeInMage specifies the instance type recovery plan
// provider specific failover input instance type in mage state for instance type recovery plan provider specific
// failover input.
InstanceTypeRecoveryPlanProviderSpecificFailoverInputInstanceTypeInMage InstanceTypeRecoveryPlanProviderSpecificFailoverInput = "InMage"
// InstanceTypeRecoveryPlanProviderSpecificFailoverInputInstanceTypeInMageAzureV2 specifies the instance type recovery
// plan provider specific failover input instance type in mage azure v2 state for instance type recovery plan provider
// specific failover input.
InstanceTypeRecoveryPlanProviderSpecificFailoverInputInstanceTypeInMageAzureV2 InstanceTypeRecoveryPlanProviderSpecificFailoverInput = "InMageAzureV2"
)
// InstanceTypeReplicationProviderSpecificSettings enumerates the values for instance type replication provider
// specific settings.
type InstanceTypeReplicationProviderSpecificSettings string
const (
// InstanceTypeReplicationProviderSpecificSettingsInstanceTypeA2A specifies the instance type replication provider
// specific settings instance type a2a state for instance type replication provider specific settings.
InstanceTypeReplicationProviderSpecificSettingsInstanceTypeA2A InstanceTypeReplicationProviderSpecificSettings = "A2A"
// InstanceTypeReplicationProviderSpecificSettingsInstanceTypeHyperVReplica2012 specifies the instance type replication
// provider specific settings instance type hyper v replica 2012 state for instance type replication provider specific
// settings.
InstanceTypeReplicationProviderSpecificSettingsInstanceTypeHyperVReplica2012 InstanceTypeReplicationProviderSpecificSettings = "HyperVReplica2012"
// InstanceTypeReplicationProviderSpecificSettingsInstanceTypeHyperVReplica2012R2 specifies the instance type
// replication provider specific settings instance type hyper v replica 2012r2 state for instance type replication
// provider specific settings.
InstanceTypeReplicationProviderSpecificSettingsInstanceTypeHyperVReplica2012R2 InstanceTypeReplicationProviderSpecificSettings = "HyperVReplica2012R2"
// InstanceTypeReplicationProviderSpecificSettingsInstanceTypeHyperVReplicaAzure specifies the instance type
// replication provider specific settings instance type hyper v replica azure state for instance type replication
// provider specific settings.
InstanceTypeReplicationProviderSpecificSettingsInstanceTypeHyperVReplicaAzure InstanceTypeReplicationProviderSpecificSettings = "HyperVReplicaAzure"
// InstanceTypeReplicationProviderSpecificSettingsInstanceTypeHyperVReplicaBaseReplicationDetails specifies the
// instance type replication provider specific settings instance type hyper v replica base replication details state
// for instance type replication provider specific settings.
InstanceTypeReplicationProviderSpecificSettingsInstanceTypeHyperVReplicaBaseReplicationDetails InstanceTypeReplicationProviderSpecificSettings = "HyperVReplicaBaseReplicationDetails"
// InstanceTypeReplicationProviderSpecificSettingsInstanceTypeInMage specifies the instance type replication provider
// specific settings instance type in mage state for instance type replication provider specific settings.
InstanceTypeReplicationProviderSpecificSettingsInstanceTypeInMage InstanceTypeReplicationProviderSpecificSettings = "InMage"
// InstanceTypeReplicationProviderSpecificSettingsInstanceTypeInMageAzureV2 specifies the instance type replication
// provider specific settings instance type in mage azure v2 state for instance type replication provider specific
// settings.
InstanceTypeReplicationProviderSpecificSettingsInstanceTypeInMageAzureV2 InstanceTypeReplicationProviderSpecificSettings = "InMageAzureV2"
)
// InstanceTypeReverseReplicationProviderSpecificInput enumerates the values for instance type reverse replication
// provider specific input.
type InstanceTypeReverseReplicationProviderSpecificInput string
const (
// InstanceTypeReverseReplicationProviderSpecificInputInstanceTypeA2A specifies the instance type reverse replication
// provider specific input instance type a2a state for instance type reverse replication provider specific input.
InstanceTypeReverseReplicationProviderSpecificInputInstanceTypeA2A InstanceTypeReverseReplicationProviderSpecificInput = "A2A"
// InstanceTypeReverseReplicationProviderSpecificInputInstanceTypeHyperVReplicaAzure specifies the instance type
// reverse replication provider specific input instance type hyper v replica azure state for instance type reverse
// replication provider specific input.
InstanceTypeReverseReplicationProviderSpecificInputInstanceTypeHyperVReplicaAzure InstanceTypeReverseReplicationProviderSpecificInput = "HyperVReplicaAzure"
// InstanceTypeReverseReplicationProviderSpecificInputInstanceTypeInMage specifies the instance type reverse
// replication provider specific input instance type in mage state for instance type reverse replication provider
// specific input.
InstanceTypeReverseReplicationProviderSpecificInputInstanceTypeInMage InstanceTypeReverseReplicationProviderSpecificInput = "InMage"
// InstanceTypeReverseReplicationProviderSpecificInputInstanceTypeInMageAzureV2 specifies the instance type reverse
// replication provider specific input instance type in mage azure v2 state for instance type reverse replication
// provider specific input.
InstanceTypeReverseReplicationProviderSpecificInputInstanceTypeInMageAzureV2 InstanceTypeReverseReplicationProviderSpecificInput = "InMageAzureV2"
)
// InstanceTypeTaskTypeDetails enumerates the values for instance type task type details.
type InstanceTypeTaskTypeDetails string
const (
// InstanceTypeAutomationRunbookTaskDetails specifies the instance type automation runbook task details state for
// instance type task type details.
InstanceTypeAutomationRunbookTaskDetails InstanceTypeTaskTypeDetails = "AutomationRunbookTaskDetails"
// InstanceTypeConsistencyCheckTaskDetails specifies the instance type consistency check task details state for
// instance type task type details.
InstanceTypeConsistencyCheckTaskDetails InstanceTypeTaskTypeDetails = "ConsistencyCheckTaskDetails"
// InstanceTypeFabricReplicationGroupTaskDetails specifies the instance type fabric replication group task details
// state for instance type task type details.
InstanceTypeFabricReplicationGroupTaskDetails InstanceTypeTaskTypeDetails = "FabricReplicationGroupTaskDetails"
// InstanceTypeJobTaskDetails specifies the instance type job task details state for instance type task type details.
InstanceTypeJobTaskDetails InstanceTypeTaskTypeDetails = "JobTaskDetails"
// InstanceTypeManualActionTaskDetails specifies the instance type manual action task details state for instance type
// task type details.
InstanceTypeManualActionTaskDetails InstanceTypeTaskTypeDetails = "ManualActionTaskDetails"
// InstanceTypeScriptActionTaskDetails specifies the instance type script action task details state for instance type
// task type details.
InstanceTypeScriptActionTaskDetails InstanceTypeTaskTypeDetails = "ScriptActionTaskDetails"
// InstanceTypeVirtualMachineTaskDetails specifies the instance type virtual machine task details state for instance
// type task type details.
InstanceTypeVirtualMachineTaskDetails InstanceTypeTaskTypeDetails = "VirtualMachineTaskDetails"
// InstanceTypeVMNicUpdatesTaskDetails specifies the instance type vm nic updates task details state for instance type
// task type details.
InstanceTypeVMNicUpdatesTaskDetails InstanceTypeTaskTypeDetails = "VmNicUpdatesTaskDetails"
)
// LicenseType enumerates the values for license type.
type LicenseType string
const (
// LicenseTypeNoLicenseType specifies the license type no license type state for license type.
LicenseTypeNoLicenseType LicenseType = "NoLicenseType"
// LicenseTypeNotSpecified specifies the license type not specified state for license type.
LicenseTypeNotSpecified LicenseType = "NotSpecified"
// LicenseTypeWindowsServer specifies the license type windows server state for license type.
LicenseTypeWindowsServer LicenseType = "WindowsServer"
)
// MultiVMSyncStatus enumerates the values for multi vm sync status.
type MultiVMSyncStatus string
const (
// Disabled specifies the disabled state for multi vm sync status.
Disabled MultiVMSyncStatus = "Disabled"
// Enabled specifies the enabled state for multi vm sync status.
Enabled MultiVMSyncStatus = "Enabled"
)
// PossibleOperationsDirections enumerates the values for possible operations directions.
type PossibleOperationsDirections string
const (
// PrimaryToRecovery specifies the primary to recovery state for possible operations directions.
PrimaryToRecovery PossibleOperationsDirections = "PrimaryToRecovery"
// RecoveryToPrimary specifies the recovery to primary state for possible operations directions.
RecoveryToPrimary PossibleOperationsDirections = "RecoveryToPrimary"
)
// RecoveryPlanActionLocation enumerates the values for recovery plan action location.
type RecoveryPlanActionLocation string
const (
// Primary specifies the primary state for recovery plan action location.
Primary RecoveryPlanActionLocation = "Primary"
// Recovery specifies the recovery state for recovery plan action location.
Recovery RecoveryPlanActionLocation = "Recovery"
)
// RecoveryPlanGroupType enumerates the values for recovery plan group type.
type RecoveryPlanGroupType string
const (
// Boot specifies the boot state for recovery plan group type.
Boot RecoveryPlanGroupType = "Boot"
// Failover specifies the failover state for recovery plan group type.
Failover RecoveryPlanGroupType = "Failover"
// Shutdown specifies the shutdown state for recovery plan group type.
Shutdown RecoveryPlanGroupType = "Shutdown"
)
// RecoveryPointType enumerates the values for recovery point type.
type RecoveryPointType string
const (
// Custom specifies the custom state for recovery point type.
Custom RecoveryPointType = "Custom"
// LatestTag specifies the latest tag state for recovery point type.
LatestTag RecoveryPointType = "LatestTag"
// LatestTime specifies the latest time state for recovery point type.
LatestTime RecoveryPointType = "LatestTime"
)
// ReplicationProtectedItemOperation enumerates the values for replication protected item operation.
type ReplicationProtectedItemOperation string
const (
// ReplicationProtectedItemOperationChangePit specifies the replication protected item operation change pit state for
// replication protected item operation.
ReplicationProtectedItemOperationChangePit ReplicationProtectedItemOperation = "ChangePit"
// ReplicationProtectedItemOperationCommit specifies the replication protected item operation commit state for
// replication protected item operation.
ReplicationProtectedItemOperationCommit ReplicationProtectedItemOperation = "Commit"
// ReplicationProtectedItemOperationCompleteMigration specifies the replication protected item operation complete
// migration state for replication protected item operation.
ReplicationProtectedItemOperationCompleteMigration ReplicationProtectedItemOperation = "CompleteMigration"
// ReplicationProtectedItemOperationDisableProtection specifies the replication protected item operation disable
// protection state for replication protected item operation.
ReplicationProtectedItemOperationDisableProtection ReplicationProtectedItemOperation = "DisableProtection"
// ReplicationProtectedItemOperationFailback specifies the replication protected item operation failback state for
// replication protected item operation.
ReplicationProtectedItemOperationFailback ReplicationProtectedItemOperation = "Failback"
// ReplicationProtectedItemOperationFinalizeFailback specifies the replication protected item operation finalize
// failback state for replication protected item operation.
ReplicationProtectedItemOperationFinalizeFailback ReplicationProtectedItemOperation = "FinalizeFailback"
// ReplicationProtectedItemOperationPlannedFailover specifies the replication protected item operation planned failover
// state for replication protected item operation.
ReplicationProtectedItemOperationPlannedFailover ReplicationProtectedItemOperation = "PlannedFailover"
// ReplicationProtectedItemOperationRepairReplication specifies the replication protected item operation repair
// replication state for replication protected item operation.
ReplicationProtectedItemOperationRepairReplication ReplicationProtectedItemOperation = "RepairReplication"
// ReplicationProtectedItemOperationReverseReplicate specifies the replication protected item operation reverse
// replicate state for replication protected item operation.
ReplicationProtectedItemOperationReverseReplicate ReplicationProtectedItemOperation = "ReverseReplicate"
// ReplicationProtectedItemOperationSwitchProtection specifies the replication protected item operation switch
// protection state for replication protected item operation.
ReplicationProtectedItemOperationSwitchProtection ReplicationProtectedItemOperation = "SwitchProtection"
// ReplicationProtectedItemOperationTestFailover specifies the replication protected item operation test failover state
// for replication protected item operation.
ReplicationProtectedItemOperationTestFailover ReplicationProtectedItemOperation = "TestFailover"
// ReplicationProtectedItemOperationTestFailoverCleanup specifies the replication protected item operation test
// failover cleanup state for replication protected item operation.
ReplicationProtectedItemOperationTestFailoverCleanup ReplicationProtectedItemOperation = "TestFailoverCleanup"
// ReplicationProtectedItemOperationUnplannedFailover specifies the replication protected item operation unplanned
// failover state for replication protected item operation.
ReplicationProtectedItemOperationUnplannedFailover ReplicationProtectedItemOperation = "UnplannedFailover"
)
// RpInMageRecoveryPointType enumerates the values for rp in mage recovery point type.
type RpInMageRecoveryPointType string
const (
// RpInMageRecoveryPointTypeCustom specifies the rp in mage recovery point type custom state for rp in mage recovery
// point type.
RpInMageRecoveryPointTypeCustom RpInMageRecoveryPointType = "Custom"
// RpInMageRecoveryPointTypeLatestTag specifies the rp in mage recovery point type latest tag state for rp in mage
// recovery point type.
RpInMageRecoveryPointTypeLatestTag RpInMageRecoveryPointType = "LatestTag"
// RpInMageRecoveryPointTypeLatestTime specifies the rp in mage recovery point type latest time state for rp in mage
// recovery point type.
RpInMageRecoveryPointTypeLatestTime RpInMageRecoveryPointType = "LatestTime"
)
// SetMultiVMSyncStatus enumerates the values for set multi vm sync status.
type SetMultiVMSyncStatus string
const (
// Disable specifies the disable state for set multi vm sync status.
Disable SetMultiVMSyncStatus = "Disable"
// Enable specifies the enable state for set multi vm sync status.
Enable SetMultiVMSyncStatus = "Enable"
)
// Severity enumerates the values for severity.
type Severity string
const (
// Error specifies the error state for severity.
Error Severity = "Error"
// Info specifies the info state for severity.
Info Severity = "Info"
// NONE specifies the none state for severity.
NONE Severity = "NONE"
// Warning specifies the warning state for severity.
Warning Severity = "Warning"
)
// SourceSiteOperations enumerates the values for source site operations.
type SourceSiteOperations string
const (
// NotRequired specifies the not required state for source site operations.
NotRequired SourceSiteOperations = "NotRequired"
// Required specifies the required state for source site operations.
Required SourceSiteOperations = "Required"
)
// A2AApplyRecoveryPointInput is applyRecoveryPoint input specific to A2A provider.
type A2AApplyRecoveryPointInput struct {
InstanceType InstanceType `json:"instanceType,omitempty"`
}
// MarshalJSON is the custom marshaler for A2AApplyRecoveryPointInput.
func (aarpi A2AApplyRecoveryPointInput) MarshalJSON() ([]byte, error) {
aarpi.InstanceType = InstanceTypeA2A
type Alias A2AApplyRecoveryPointInput
return json.Marshal(&struct {
Alias
}{
Alias: (Alias)(aarpi),
})
}
// AsHyperVReplicaAzureApplyRecoveryPointInput is the ApplyRecoveryPointProviderSpecificInput implementation for A2AApplyRecoveryPointInput.
func (aarpi A2AApplyRecoveryPointInput) AsHyperVReplicaAzureApplyRecoveryPointInput() (*HyperVReplicaAzureApplyRecoveryPointInput, bool) {
return nil, false
}
// AsInMageAzureV2ApplyRecoveryPointInput is the ApplyRecoveryPointProviderSpecificInput implementation for A2AApplyRecoveryPointInput.
func (aarpi A2AApplyRecoveryPointInput) AsInMageAzureV2ApplyRecoveryPointInput() (*InMageAzureV2ApplyRecoveryPointInput, bool) {
return nil, false
}
// AsA2AApplyRecoveryPointInput is the ApplyRecoveryPointProviderSpecificInput implementation for A2AApplyRecoveryPointInput.
func (aarpi A2AApplyRecoveryPointInput) AsA2AApplyRecoveryPointInput() (*A2AApplyRecoveryPointInput, bool) {
return &aarpi, true
}
// A2AContainerCreationInput is a2A cloud creation input.
type A2AContainerCreationInput struct {
InstanceType InstanceType `json:"instanceType,omitempty"`
}
// MarshalJSON is the custom marshaler for A2AContainerCreationInput.
func (acci A2AContainerCreationInput) MarshalJSON() ([]byte, error) {
acci.InstanceType = InstanceTypeA2A
type Alias A2AContainerCreationInput
return json.Marshal(&struct {
Alias
}{
Alias: (Alias)(acci),
})
}
// AsA2AContainerCreationInput is the ReplicationProviderSpecificContainerCreationInput implementation for A2AContainerCreationInput.
func (acci A2AContainerCreationInput) AsA2AContainerCreationInput() (*A2AContainerCreationInput, bool) {
return &acci, true
}
// A2AEnableProtectionInput is a2A enable protection input.
type A2AEnableProtectionInput struct {
InstanceType InstanceTypeEnableProtectionProviderSpecificInput `json:"instanceType,omitempty"`
FabricObjectID *string `json:"fabricObjectId,omitempty"`
RecoveryContainerID *string `json:"recoveryContainerId,omitempty"`
RecoveryResourceGroupID *string `json:"recoveryResourceGroupId,omitempty"`
RecoveryCloudServiceID *string `json:"recoveryCloudServiceId,omitempty"`
RecoveryAvailabilitySetID *string `json:"recoveryAvailabilitySetId,omitempty"`
VMDisks *[]A2AVMDiskInputDetails `json:"vmDisks,omitempty"`
VMManagedDisks *[]A2AVMManagedDiskInputDetails `json:"vmManagedDisks,omitempty"`
}
// MarshalJSON is the custom marshaler for A2AEnableProtectionInput.
func (aepi A2AEnableProtectionInput) MarshalJSON() ([]byte, error) {
aepi.InstanceType = InstanceTypeEnableProtectionProviderSpecificInputInstanceTypeA2A
type Alias A2AEnableProtectionInput
return json.Marshal(&struct {
Alias
}{
Alias: (Alias)(aepi),
})
}
// AsHyperVReplicaAzureEnableProtectionInput is the EnableProtectionProviderSpecificInput implementation for A2AEnableProtectionInput.
func (aepi A2AEnableProtectionInput) AsHyperVReplicaAzureEnableProtectionInput() (*HyperVReplicaAzureEnableProtectionInput, bool) {
return nil, false
}
// AsSanEnableProtectionInput is the EnableProtectionProviderSpecificInput implementation for A2AEnableProtectionInput.
func (aepi A2AEnableProtectionInput) AsSanEnableProtectionInput() (*SanEnableProtectionInput, bool) {
return nil, false
}
// AsInMageAzureV2EnableProtectionInput is the EnableProtectionProviderSpecificInput implementation for A2AEnableProtectionInput.
func (aepi A2AEnableProtectionInput) AsInMageAzureV2EnableProtectionInput() (*InMageAzureV2EnableProtectionInput, bool) {
return nil, false
}
// AsInMageEnableProtectionInput is the EnableProtectionProviderSpecificInput implementation for A2AEnableProtectionInput.
func (aepi A2AEnableProtectionInput) AsInMageEnableProtectionInput() (*InMageEnableProtectionInput, bool) {
return nil, false
}
// AsA2AEnableProtectionInput is the EnableProtectionProviderSpecificInput implementation for A2AEnableProtectionInput.
func (aepi A2AEnableProtectionInput) AsA2AEnableProtectionInput() (*A2AEnableProtectionInput, bool) {
return &aepi, true
}
// A2AEventDetails is model class for event details of a A2A event.
type A2AEventDetails struct {
InstanceType InstanceType `json:"instanceType,omitempty"`
ProtectedItemName *string `json:"protectedItemName,omitempty"`
FabricObjectID *string `json:"fabricObjectId,omitempty"`
FabricName *string `json:"fabricName,omitempty"`
FabricLocation *string `json:"fabricLocation,omitempty"`
RemoteFabricName *string `json:"remoteFabricName,omitempty"`
RemoteFabricLocation *string `json:"remoteFabricLocation,omitempty"`
}
// MarshalJSON is the custom marshaler for A2AEventDetails.
func (aed A2AEventDetails) MarshalJSON() ([]byte, error) {
aed.InstanceType = InstanceTypeA2A
type Alias A2AEventDetails
return json.Marshal(&struct {
Alias
}{
Alias: (Alias)(aed),
})
}
// AsHyperVReplicaBaseEventDetails is the EventProviderSpecificDetails implementation for A2AEventDetails.
func (aed A2AEventDetails) AsHyperVReplicaBaseEventDetails() (*HyperVReplicaBaseEventDetails, bool) {
return nil, false
}
// AsHyperVReplica2012EventDetails is the EventProviderSpecificDetails implementation for A2AEventDetails.
func (aed A2AEventDetails) AsHyperVReplica2012EventDetails() (*HyperVReplica2012EventDetails, bool) {
return nil, false
}
// AsHyperVReplica2012R2EventDetails is the EventProviderSpecificDetails implementation for A2AEventDetails.
func (aed A2AEventDetails) AsHyperVReplica2012R2EventDetails() (*HyperVReplica2012R2EventDetails, bool) {
return nil, false
}
// AsHyperVReplicaAzureEventDetails is the EventProviderSpecificDetails implementation for A2AEventDetails.
func (aed A2AEventDetails) AsHyperVReplicaAzureEventDetails() (*HyperVReplicaAzureEventDetails, bool) {
return nil, false
}
// AsA2AEventDetails is the EventProviderSpecificDetails implementation for A2AEventDetails.
func (aed A2AEventDetails) AsA2AEventDetails() (*A2AEventDetails, bool) {
return &aed, true
}
// AsInMageAzureV2EventDetails is the EventProviderSpecificDetails implementation for A2AEventDetails.
func (aed A2AEventDetails) AsInMageAzureV2EventDetails() (*InMageAzureV2EventDetails, bool) {
return nil, false
}
// A2AFailoverProviderInput is a2A provider specific input for failover.
type A2AFailoverProviderInput struct {
InstanceType InstanceTypeProviderSpecificFailoverInput `json:"instanceType,omitempty"`
RecoveryPointID *string `json:"recoveryPointId,omitempty"`
CloudServiceCreationOption *string `json:"cloudServiceCreationOption,omitempty"`
}
// MarshalJSON is the custom marshaler for A2AFailoverProviderInput.
func (afpi A2AFailoverProviderInput) MarshalJSON() ([]byte, error) {
afpi.InstanceType = InstanceTypeProviderSpecificFailoverInputInstanceTypeA2A
type Alias A2AFailoverProviderInput
return json.Marshal(&struct {
Alias
}{
Alias: (Alias)(afpi),
})
}
// AsHyperVReplicaAzureFailoverProviderInput is the ProviderSpecificFailoverInput implementation for A2AFailoverProviderInput.
func (afpi A2AFailoverProviderInput) AsHyperVReplicaAzureFailoverProviderInput() (*HyperVReplicaAzureFailoverProviderInput, bool) {
return nil, false
}
// AsHyperVReplicaAzureFailbackProviderInput is the ProviderSpecificFailoverInput implementation for A2AFailoverProviderInput.
func (afpi A2AFailoverProviderInput) AsHyperVReplicaAzureFailbackProviderInput() (*HyperVReplicaAzureFailbackProviderInput, bool) {
return nil, false
}
// AsInMageAzureV2FailoverProviderInput is the ProviderSpecificFailoverInput implementation for A2AFailoverProviderInput.
func (afpi A2AFailoverProviderInput) AsInMageAzureV2FailoverProviderInput() (*InMageAzureV2FailoverProviderInput, bool) {
return nil, false
}
// AsInMageFailoverProviderInput is the ProviderSpecificFailoverInput implementation for A2AFailoverProviderInput.
func (afpi A2AFailoverProviderInput) AsInMageFailoverProviderInput() (*InMageFailoverProviderInput, bool) {
return nil, false
}
// AsA2AFailoverProviderInput is the ProviderSpecificFailoverInput implementation for A2AFailoverProviderInput.
func (afpi A2AFailoverProviderInput) AsA2AFailoverProviderInput() (*A2AFailoverProviderInput, bool) {
return &afpi, true
}
// A2APolicyCreationInput is a2A Policy creation input.
type A2APolicyCreationInput struct {
InstanceType InstanceTypePolicyProviderSpecificInput `json:"instanceType,omitempty"`
RecoveryPointHistory *int32 `json:"recoveryPointHistory,omitempty"`
CrashConsistentFrequencyInMinutes *int32 `json:"crashConsistentFrequencyInMinutes,omitempty"`
AppConsistentFrequencyInMinutes *int32 `json:"appConsistentFrequencyInMinutes,omitempty"`
MultiVMSyncStatus SetMultiVMSyncStatus `json:"multiVmSyncStatus,omitempty"`
}
// MarshalJSON is the custom marshaler for A2APolicyCreationInput.
func (apci A2APolicyCreationInput) MarshalJSON() ([]byte, error) {
apci.InstanceType = InstanceTypePolicyProviderSpecificInputInstanceTypeA2A
type Alias A2APolicyCreationInput
return json.Marshal(&struct {
Alias
}{
Alias: (Alias)(apci),
})
}
// AsHyperVReplicaAzurePolicyInput is the PolicyProviderSpecificInput implementation for A2APolicyCreationInput.
func (apci A2APolicyCreationInput) AsHyperVReplicaAzurePolicyInput() (*HyperVReplicaAzurePolicyInput, bool) {
return nil, false
}
// AsHyperVReplicaPolicyInput is the PolicyProviderSpecificInput implementation for A2APolicyCreationInput.
func (apci A2APolicyCreationInput) AsHyperVReplicaPolicyInput() (*HyperVReplicaPolicyInput, bool) {
return nil, false
}
// AsHyperVReplicaBluePolicyInput is the PolicyProviderSpecificInput implementation for A2APolicyCreationInput.
func (apci A2APolicyCreationInput) AsHyperVReplicaBluePolicyInput() (*HyperVReplicaBluePolicyInput, bool) {
return nil, false
}
// AsInMageAzureV2PolicyInput is the PolicyProviderSpecificInput implementation for A2APolicyCreationInput.
func (apci A2APolicyCreationInput) AsInMageAzureV2PolicyInput() (*InMageAzureV2PolicyInput, bool) {
return nil, false
}
// AsInMagePolicyInput is the PolicyProviderSpecificInput implementation for A2APolicyCreationInput.
func (apci A2APolicyCreationInput) AsInMagePolicyInput() (*InMagePolicyInput, bool) {
return nil, false
}
// AsA2APolicyCreationInput is the PolicyProviderSpecificInput implementation for A2APolicyCreationInput.
func (apci A2APolicyCreationInput) AsA2APolicyCreationInput() (*A2APolicyCreationInput, bool) {
return &apci, true
}
// AsVMwareCbtPolicyCreationInput is the PolicyProviderSpecificInput implementation for A2APolicyCreationInput.
func (apci A2APolicyCreationInput) AsVMwareCbtPolicyCreationInput() (*VMwareCbtPolicyCreationInput, bool) {
return nil, false
}
// A2APolicyDetails is a2A specific policy details.
type A2APolicyDetails struct {
InstanceType InstanceTypePolicyProviderSpecificDetails `json:"instanceType,omitempty"`
RecoveryPointThresholdInMinutes *int32 `json:"recoveryPointThresholdInMinutes,omitempty"`
RecoveryPointHistory *int32 `json:"recoveryPointHistory,omitempty"`
AppConsistentFrequencyInMinutes *int32 `json:"appConsistentFrequencyInMinutes,omitempty"`
MultiVMSyncStatus *string `json:"multiVmSyncStatus,omitempty"`
CrashConsistentFrequencyInMinutes *int32 `json:"crashConsistentFrequencyInMinutes,omitempty"`
}
// MarshalJSON is the custom marshaler for A2APolicyDetails.
func (apd A2APolicyDetails) MarshalJSON() ([]byte, error) {
apd.InstanceType = InstanceTypePolicyProviderSpecificDetailsInstanceTypeA2A
type Alias A2APolicyDetails
return json.Marshal(&struct {
Alias
}{
Alias: (Alias)(apd),
})
}
// AsHyperVReplicaAzurePolicyDetails is the PolicyProviderSpecificDetails implementation for A2APolicyDetails.
func (apd A2APolicyDetails) AsHyperVReplicaAzurePolicyDetails() (*HyperVReplicaAzurePolicyDetails, bool) {
return nil, false
}
// AsHyperVReplicaBasePolicyDetails is the PolicyProviderSpecificDetails implementation for A2APolicyDetails.
func (apd A2APolicyDetails) AsHyperVReplicaBasePolicyDetails() (*HyperVReplicaBasePolicyDetails, bool) {
return nil, false
}
// AsHyperVReplicaPolicyDetails is the PolicyProviderSpecificDetails implementation for A2APolicyDetails.
func (apd A2APolicyDetails) AsHyperVReplicaPolicyDetails() (*HyperVReplicaPolicyDetails, bool) {
return nil, false
}
// AsHyperVReplicaBluePolicyDetails is the PolicyProviderSpecificDetails implementation for A2APolicyDetails.
func (apd A2APolicyDetails) AsHyperVReplicaBluePolicyDetails() (*HyperVReplicaBluePolicyDetails, bool) {
return nil, false
}
// AsInMageBasePolicyDetails is the PolicyProviderSpecificDetails implementation for A2APolicyDetails.
func (apd A2APolicyDetails) AsInMageBasePolicyDetails() (*InMageBasePolicyDetails, bool) {
return nil, false
}
// AsInMageAzureV2PolicyDetails is the PolicyProviderSpecificDetails implementation for A2APolicyDetails.
func (apd A2APolicyDetails) AsInMageAzureV2PolicyDetails() (*InMageAzureV2PolicyDetails, bool) {
return nil, false
}
// AsInMagePolicyDetails is the PolicyProviderSpecificDetails implementation for A2APolicyDetails.
func (apd A2APolicyDetails) AsInMagePolicyDetails() (*InMagePolicyDetails, bool) {
return nil, false
}
// AsA2APolicyDetails is the PolicyProviderSpecificDetails implementation for A2APolicyDetails.
func (apd A2APolicyDetails) AsA2APolicyDetails() (*A2APolicyDetails, bool) {
return &apd, true
}
// AsRcmAzureMigrationPolicyDetails is the PolicyProviderSpecificDetails implementation for A2APolicyDetails.
func (apd A2APolicyDetails) AsRcmAzureMigrationPolicyDetails() (*RcmAzureMigrationPolicyDetails, bool) {
return nil, false
}
// AsVmwareCbtPolicyDetails is the PolicyProviderSpecificDetails implementation for A2APolicyDetails.
func (apd A2APolicyDetails) AsVmwareCbtPolicyDetails() (*VmwareCbtPolicyDetails, bool) {
return nil, false
}
// A2AProtectedDiskDetails is a2A protected disk details.
type A2AProtectedDiskDetails struct {
DiskURI *string `json:"diskUri,omitempty"`
RecoveryAzureStorageAccountID *string `json:"recoveryAzureStorageAccountId,omitempty"`
PrimaryDiskAzureStorageAccountID *string `json:"primaryDiskAzureStorageAccountId,omitempty"`
RecoveryDiskURI *string `json:"recoveryDiskUri,omitempty"`
DiskName *string `json:"diskName,omitempty"`
DiskCapacityInBytes *int64 `json:"diskCapacityInBytes,omitempty"`
PrimaryStagingAzureStorageAccountID *string `json:"primaryStagingAzureStorageAccountId,omitempty"`
DiskType *string `json:"diskType,omitempty"`
ResyncRequired *bool `json:"resyncRequired,omitempty"`
MonitoringPercentageCompletion *int32 `json:"monitoringPercentageCompletion,omitempty"`
MonitoringJobType *string `json:"monitoringJobType,omitempty"`
DataPendingInStagingStorageAccountInMB *float64 `json:"dataPendingInStagingStorageAccountInMB,omitempty"`
DataPendingAtSourceAgentInMB *float64 `json:"dataPendingAtSourceAgentInMB,omitempty"`
}
// A2AProtectedManagedDiskDetails is a2A protected managed disk details.
type A2AProtectedManagedDiskDetails struct {
DiskID *string `json:"diskId,omitempty"`
RecoveryAzureResourceGroupID *string `json:"recoveryAzureResourceGroupId,omitempty"`
RecoveryDiskID *string `json:"recoveryDiskId,omitempty"`
DiskName *string `json:"diskName,omitempty"`
DiskCapacityInBytes *int64 `json:"diskCapacityInBytes,omitempty"`
PrimaryStagingAzureStorageAccountID *string `json:"primaryStagingAzureStorageAccountId,omitempty"`
DiskType *string `json:"diskType,omitempty"`
ResyncRequired *bool `json:"resyncRequired,omitempty"`
MonitoringPercentageCompletion *int32 `json:"monitoringPercentageCompletion,omitempty"`
MonitoringJobType *string `json:"monitoringJobType,omitempty"`
DataPendingInStagingStorageAccountInMB *float64 `json:"dataPendingInStagingStorageAccountInMB,omitempty"`
DataPendingAtSourceAgentInMB *float64 `json:"dataPendingAtSourceAgentInMB,omitempty"`
}
// A2AReplicationDetails is a2A provider specific settings.
type A2AReplicationDetails struct {
InstanceType InstanceTypeReplicationProviderSpecificSettings `json:"instanceType,omitempty"`
FabricObjectID *string `json:"fabricObjectId,omitempty"`
MultiVMGroupID *string `json:"multiVmGroupId,omitempty"`
MultiVMGroupName *string `json:"multiVmGroupName,omitempty"`
ManagementID *string `json:"managementId,omitempty"`
ProtectedDisks *[]A2AProtectedDiskDetails `json:"protectedDisks,omitempty"`
ProtectedManagedDisks *[]A2AProtectedManagedDiskDetails `json:"protectedManagedDisks,omitempty"`
PrimaryFabricLocation *string `json:"primaryFabricLocation,omitempty"`
RecoveryFabricLocation *string `json:"recoveryFabricLocation,omitempty"`
OsType *string `json:"osType,omitempty"`
RecoveryAzureVMSize *string `json:"recoveryAzureVMSize,omitempty"`
RecoveryAzureVMName *string `json:"recoveryAzureVMName,omitempty"`
RecoveryAzureResourceGroupID *string `json:"recoveryAzureResourceGroupId,omitempty"`
RecoveryCloudService *string `json:"recoveryCloudService,omitempty"`
RecoveryAvailabilitySet *string `json:"recoveryAvailabilitySet,omitempty"`
SelectedRecoveryAzureNetworkID *string `json:"selectedRecoveryAzureNetworkId,omitempty"`
VMNics *[]VMNicDetails `json:"vmNics,omitempty"`
VMSyncedConfigDetails *AzureToAzureVMSyncedConfigDetails `json:"vmSyncedConfigDetails,omitempty"`
MonitoringPercentageCompletion *int32 `json:"monitoringPercentageCompletion,omitempty"`
MonitoringJobType *string `json:"monitoringJobType,omitempty"`
LastHeartbeat *date.Time `json:"lastHeartbeat,omitempty"`
AgentVersion *string `json:"agentVersion,omitempty"`
IsReplicationAgentUpdateRequired *bool `json:"isReplicationAgentUpdateRequired,omitempty"`
RecoveryFabricObjectID *string `json:"recoveryFabricObjectId,omitempty"`
VMProtectionState *string `json:"vmProtectionState,omitempty"`
VMProtectionStateDescription *string `json:"vmProtectionStateDescription,omitempty"`
LifecycleID *string `json:"lifecycleId,omitempty"`
TestFailoverRecoveryFabricObjectID *string `json:"testFailoverRecoveryFabricObjectId,omitempty"`
RpoInSeconds *int64 `json:"rpoInSeconds,omitempty"`
LastRpoCalculatedTime *date.Time `json:"lastRpoCalculatedTime,omitempty"`
}
// MarshalJSON is the custom marshaler for A2AReplicationDetails.
func (ard A2AReplicationDetails) MarshalJSON() ([]byte, error) {
ard.InstanceType = InstanceTypeReplicationProviderSpecificSettingsInstanceTypeA2A
type Alias A2AReplicationDetails
return json.Marshal(&struct {
Alias
}{
Alias: (Alias)(ard),
})
}
// AsHyperVReplicaBaseReplicationDetails is the ReplicationProviderSpecificSettings implementation for A2AReplicationDetails.
func (ard A2AReplicationDetails) AsHyperVReplicaBaseReplicationDetails() (*HyperVReplicaBaseReplicationDetails, bool) {
return nil, false
}
// AsHyperVReplicaReplicationDetails is the ReplicationProviderSpecificSettings implementation for A2AReplicationDetails.
func (ard A2AReplicationDetails) AsHyperVReplicaReplicationDetails() (*HyperVReplicaReplicationDetails, bool) {
return nil, false
}
// AsHyperVReplicaBlueReplicationDetails is the ReplicationProviderSpecificSettings implementation for A2AReplicationDetails.
func (ard A2AReplicationDetails) AsHyperVReplicaBlueReplicationDetails() (*HyperVReplicaBlueReplicationDetails, bool) {
return nil, false
}
// AsHyperVReplicaAzureReplicationDetails is the ReplicationProviderSpecificSettings implementation for A2AReplicationDetails.
func (ard A2AReplicationDetails) AsHyperVReplicaAzureReplicationDetails() (*HyperVReplicaAzureReplicationDetails, bool) {
return nil, false
}
// AsInMageAzureV2ReplicationDetails is the ReplicationProviderSpecificSettings implementation for A2AReplicationDetails.
func (ard A2AReplicationDetails) AsInMageAzureV2ReplicationDetails() (*InMageAzureV2ReplicationDetails, bool) {
return nil, false
}
// AsInMageReplicationDetails is the ReplicationProviderSpecificSettings implementation for A2AReplicationDetails.
func (ard A2AReplicationDetails) AsInMageReplicationDetails() (*InMageReplicationDetails, bool) {
return nil, false
}
// AsA2AReplicationDetails is the ReplicationProviderSpecificSettings implementation for A2AReplicationDetails.
func (ard A2AReplicationDetails) AsA2AReplicationDetails() (*A2AReplicationDetails, bool) {
return &ard, true
}
// A2AReprotectInput is azure specific reprotect input.
type A2AReprotectInput struct {
InstanceType InstanceTypeReverseReplicationProviderSpecificInput `json:"instanceType,omitempty"`
RecoveryContainerID *string `json:"recoveryContainerId,omitempty"`
VMDisks *[]A2AVMDiskInputDetails `json:"vmDisks,omitempty"`
RecoveryResourceGroupID *string `json:"recoveryResourceGroupId,omitempty"`
RecoveryCloudServiceID *string `json:"recoveryCloudServiceId,omitempty"`
RecoveryAvailabilitySetID *string `json:"recoveryAvailabilitySetId,omitempty"`
PolicyID *string `json:"policyId,omitempty"`
}
// MarshalJSON is the custom marshaler for A2AReprotectInput.
func (ari A2AReprotectInput) MarshalJSON() ([]byte, error) {
ari.InstanceType = InstanceTypeReverseReplicationProviderSpecificInputInstanceTypeA2A
type Alias A2AReprotectInput
return json.Marshal(&struct {
Alias
}{
Alias: (Alias)(ari),
})
}
// AsHyperVReplicaAzureReprotectInput is the ReverseReplicationProviderSpecificInput implementation for A2AReprotectInput.
func (ari A2AReprotectInput) AsHyperVReplicaAzureReprotectInput() (*HyperVReplicaAzureReprotectInput, bool) {
return nil, false
}
// AsInMageAzureV2ReprotectInput is the ReverseReplicationProviderSpecificInput implementation for A2AReprotectInput.
func (ari A2AReprotectInput) AsInMageAzureV2ReprotectInput() (*InMageAzureV2ReprotectInput, bool) {
return nil, false
}
// AsInMageReprotectInput is the ReverseReplicationProviderSpecificInput implementation for A2AReprotectInput.
func (ari A2AReprotectInput) AsInMageReprotectInput() (*InMageReprotectInput, bool) {
return nil, false
}
// AsA2AReprotectInput is the ReverseReplicationProviderSpecificInput implementation for A2AReprotectInput.
func (ari A2AReprotectInput) AsA2AReprotectInput() (*A2AReprotectInput, bool) {
return &ari, true
}
// A2ASwitchProtectionInput is a2A specific switch protection input.
type A2ASwitchProtectionInput struct {
InstanceType InstanceType `json:"instanceType,omitempty"`
RecoveryContainerID *string `json:"recoveryContainerId,omitempty"`
VMDisks *[]A2AVMDiskInputDetails `json:"vmDisks,omitempty"`
VMManagedDisks *[]A2AVMManagedDiskInputDetails `json:"vmManagedDisks,omitempty"`
RecoveryResourceGroupID *string `json:"recoveryResourceGroupId,omitempty"`
RecoveryCloudServiceID *string `json:"recoveryCloudServiceId,omitempty"`
RecoveryAvailabilitySetID *string `json:"recoveryAvailabilitySetId,omitempty"`
PolicyID *string `json:"policyId,omitempty"`
}
// MarshalJSON is the custom marshaler for A2ASwitchProtectionInput.
func (aspi A2ASwitchProtectionInput) MarshalJSON() ([]byte, error) {
aspi.InstanceType = InstanceTypeA2A
type Alias A2ASwitchProtectionInput
return json.Marshal(&struct {
Alias
}{
Alias: (Alias)(aspi),
})
}
// AsA2ASwitchProtectionInput is the SwitchProtectionProviderSpecificInput implementation for A2ASwitchProtectionInput.
func (aspi A2ASwitchProtectionInput) AsA2ASwitchProtectionInput() (*A2ASwitchProtectionInput, bool) {
return &aspi, true
}
// A2AUpdateReplicationProtectedItemInput is inMage Azure V2 input to update replication protected item.
type A2AUpdateReplicationProtectedItemInput struct {
InstanceType InstanceType `json:"instanceType,omitempty"`
RecoveryCloudServiceID *string `json:"recoveryCloudServiceId,omitempty"`
RecoveryResourceGroupID *string `json:"recoveryResourceGroupId,omitempty"`
}
// MarshalJSON is the custom marshaler for A2AUpdateReplicationProtectedItemInput.
func (aurpii A2AUpdateReplicationProtectedItemInput) MarshalJSON() ([]byte, error) {
aurpii.InstanceType = InstanceTypeA2A
type Alias A2AUpdateReplicationProtectedItemInput
return json.Marshal(&struct {
Alias
}{
Alias: (Alias)(aurpii),
})
}
// AsHyperVReplicaAzureUpdateReplicationProtectedItemInput is the UpdateReplicationProtectedItemProviderInput implementation for A2AUpdateReplicationProtectedItemInput.
func (aurpii A2AUpdateReplicationProtectedItemInput) AsHyperVReplicaAzureUpdateReplicationProtectedItemInput() (*HyperVReplicaAzureUpdateReplicationProtectedItemInput, bool) {
return nil, false
}
// AsInMageAzureV2UpdateReplicationProtectedItemInput is the UpdateReplicationProtectedItemProviderInput implementation for A2AUpdateReplicationProtectedItemInput.
func (aurpii A2AUpdateReplicationProtectedItemInput) AsInMageAzureV2UpdateReplicationProtectedItemInput() (*InMageAzureV2UpdateReplicationProtectedItemInput, bool) {
return nil, false
}
// AsA2AUpdateReplicationProtectedItemInput is the UpdateReplicationProtectedItemProviderInput implementation for A2AUpdateReplicationProtectedItemInput.
func (aurpii A2AUpdateReplicationProtectedItemInput) AsA2AUpdateReplicationProtectedItemInput() (*A2AUpdateReplicationProtectedItemInput, bool) {
return &aurpii, true
}
// A2AVMDiskInputDetails is azure VM disk input details.
type A2AVMDiskInputDetails struct {
DiskURI *string `json:"diskUri,omitempty"`
RecoveryAzureStorageAccountID *string `json:"recoveryAzureStorageAccountId,omitempty"`
PrimaryStagingAzureStorageAccountID *string `json:"primaryStagingAzureStorageAccountId,omitempty"`
}
// A2AVMManagedDiskInputDetails is azure VM managed disk input details.
type A2AVMManagedDiskInputDetails struct {
DiskID *string `json:"diskId,omitempty"`
PrimaryStagingAzureStorageAccountID *string `json:"primaryStagingAzureStorageAccountId,omitempty"`
RecoveryResourceGroupID *string `json:"recoveryResourceGroupId,omitempty"`
}
// AddVCenterRequest is input required to add vCenter.
type AddVCenterRequest struct {
Properties *AddVCenterRequestProperties `json:"properties,omitempty"`
}
// AddVCenterRequestProperties is the properties of an add vCenter request.
type AddVCenterRequestProperties struct {
FriendlyName *string `json:"friendlyName,omitempty"`
IPAddress *string `json:"ipAddress,omitempty"`
ProcessServerID *string `json:"processServerId,omitempty"`
Port *string `json:"port,omitempty"`
RunAsAccountID *string `json:"runAsAccountId,omitempty"`
}
// Alert is implements the Alert class.
type Alert struct {
autorest.Response `json:"-"`
ID *string `json:"id,omitempty"`
Name *string `json:"name,omitempty"`
Type *string `json:"type,omitempty"`
Location *string `json:"location,omitempty"`
Properties *AlertProperties `json:"properties,omitempty"`
}
// AlertCollection is collection of alerts.
type AlertCollection struct {
autorest.Response `json:"-"`
Value *[]Alert `json:"value,omitempty"`
NextLink *string `json:"nextLink,omitempty"`
}
// AlertCollectionPreparer prepares a request to retrieve the next set of results. It returns
// nil if no more results exist.
func (client AlertCollection) AlertCollectionPreparer() (*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)))
}
// AlertProperties is the proprties of an alert.
type AlertProperties struct {
SendToOwners *string `json:"sendToOwners,omitempty"`
CustomEmailAddresses *[]string `json:"customEmailAddresses,omitempty"`
Locale *string `json:"locale,omitempty"`
}
// ApplyRecoveryPointInput is input to apply recovery point.
type ApplyRecoveryPointInput struct {
Properties *ApplyRecoveryPointInputProperties `json:"properties,omitempty"`
}
// ApplyRecoveryPointInputProperties is input properties to apply recovery point.
type ApplyRecoveryPointInputProperties struct {
RecoveryPointID *string `json:"recoveryPointId,omitempty"`
ProviderSpecificDetails ApplyRecoveryPointProviderSpecificInput `json:"providerSpecificDetails,omitempty"`
}
// UnmarshalJSON is the custom unmarshaler for ApplyRecoveryPointInputProperties struct.
func (arpip *ApplyRecoveryPointInputProperties) 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["recoveryPointId"]
if v != nil {
var recoveryPointID string
err = json.Unmarshal(*m["recoveryPointId"], &recoveryPointID)
if err != nil {
return err
}
arpip.RecoveryPointID = &recoveryPointID
}
v = m["providerSpecificDetails"]
if v != nil {
providerSpecificDetails, err := unmarshalApplyRecoveryPointProviderSpecificInput(*m["providerSpecificDetails"])
if err != nil {
return err
}
arpip.ProviderSpecificDetails = providerSpecificDetails
}
return nil
}
// ApplyRecoveryPointProviderSpecificInput is provider specific input for apply recovery point.
type ApplyRecoveryPointProviderSpecificInput interface {
AsHyperVReplicaAzureApplyRecoveryPointInput() (*HyperVReplicaAzureApplyRecoveryPointInput, bool)
AsInMageAzureV2ApplyRecoveryPointInput() (*InMageAzureV2ApplyRecoveryPointInput, bool)
AsA2AApplyRecoveryPointInput() (*A2AApplyRecoveryPointInput, bool)
}
func unmarshalApplyRecoveryPointProviderSpecificInput(body []byte) (ApplyRecoveryPointProviderSpecificInput, error) {
var m map[string]interface{}
err := json.Unmarshal(body, &m)
if err != nil {
return nil, err
}
switch m["instanceType"] {
case string(InstanceTypeHyperVReplicaAzure):
var hvraarpi HyperVReplicaAzureApplyRecoveryPointInput
err := json.Unmarshal(body, &hvraarpi)
return hvraarpi, err
case string(InstanceTypeInMageAzureV2):
var imavarpi InMageAzureV2ApplyRecoveryPointInput
err := json.Unmarshal(body, &imavarpi)
return imavarpi, err
case string(InstanceTypeA2A):
var aarpi A2AApplyRecoveryPointInput
err := json.Unmarshal(body, &aarpi)
return aarpi, err
default:
return nil, errors.New("Unsupported type")
}
}
func unmarshalApplyRecoveryPointProviderSpecificInputArray(body []byte) ([]ApplyRecoveryPointProviderSpecificInput, error) {
var rawMessages []*json.RawMessage
err := json.Unmarshal(body, &rawMessages)
if err != nil {
return nil, err
}
arppsiArray := make([]ApplyRecoveryPointProviderSpecificInput, len(rawMessages))
for index, rawMessage := range rawMessages {
arppsi, err := unmarshalApplyRecoveryPointProviderSpecificInput(*rawMessage)
if err != nil {
return nil, err
}
arppsiArray[index] = arppsi
}
return arppsiArray, nil
}
// ARMException is ARM inner exception class.
type ARMException struct {
Code *string `json:"code,omitempty"`
Message *string `json:"message,omitempty"`
Target *string `json:"target,omitempty"`
Details *[]ARMExceptionDetails `json:"details,omitempty"`
Innererror *ARMInnerError `json:"innererror,omitempty"`
}
// ARMExceptionDetails is service based exception details.
type ARMExceptionDetails struct {
Code *string `json:"code,omitempty"`
Message *string `json:"message,omitempty"`
PossibleCauses *string `json:"possibleCauses,omitempty"`
RecommendedAction *string `json:"recommendedAction,omitempty"`
ClientRequestID *string `json:"clientRequestId,omitempty"`
ActivityID *string `json:"activityId,omitempty"`
Target *string `json:"target,omitempty"`
}
// ARMInnerError is ARM internal error class for providing additional debug data.
type ARMInnerError struct {
Trace *string `json:"trace,omitempty"`
Source *string `json:"source,omitempty"`
MethodStatus *MethodCallStatus `json:"methodStatus,omitempty"`
CloudID *string `json:"cloudId,omitempty"`
HVHostID *string `json:"hVHostId,omitempty"`
HVClusterID *string `json:"hVClusterId,omitempty"`
NetworkID *string `json:"networkId,omitempty"`
VMID *string `json:"vmId,omitempty"`
FabricID *string `json:"fabricId,omitempty"`
LiveID *string `json:"liveId,omitempty"`
ContainerID *string `json:"containerId,omitempty"`
ResourceID *string `json:"resourceId,omitempty"`
ResourceName *string `json:"resourceName,omitempty"`
SubscriptionID *string `json:"subscriptionId,omitempty"`
SerializedSRSLogContext *string `json:"serializedSRSLogContext,omitempty"`
}
// AsrJobDetails is this class represents job details based on specific job type.
type AsrJobDetails struct {
AffectedObjectDetails *map[string]*string `json:"affectedObjectDetails,omitempty"`
InstanceType InstanceTypeJobDetails `json:"instanceType,omitempty"`
}
// MarshalJSON is the custom marshaler for AsrJobDetails.
func (ajd AsrJobDetails) MarshalJSON() ([]byte, error) {
ajd.InstanceType = InstanceTypeAsrJobDetails
type Alias AsrJobDetails
return json.Marshal(&struct {
Alias
}{
Alias: (Alias)(ajd),
})
}
// AsAsrJobDetails is the JobDetails implementation for AsrJobDetails.
func (ajd AsrJobDetails) AsAsrJobDetails() (*AsrJobDetails, bool) {
return &ajd, true
}
// AsTestFailoverJobDetails is the JobDetails implementation for AsrJobDetails.
func (ajd AsrJobDetails) AsTestFailoverJobDetails() (*TestFailoverJobDetails, bool) {
return nil, false
}
// AsFailoverJobDetails is the JobDetails implementation for AsrJobDetails.
func (ajd AsrJobDetails) AsFailoverJobDetails() (*FailoverJobDetails, bool) {
return nil, false
}
// AsExportJobDetails is the JobDetails implementation for AsrJobDetails.
func (ajd AsrJobDetails) AsExportJobDetails() (*ExportJobDetails, bool) {
return nil, false
}
// AsSwitchProtectionJobDetails is the JobDetails implementation for AsrJobDetails.
func (ajd AsrJobDetails) AsSwitchProtectionJobDetails() (*SwitchProtectionJobDetails, bool) {
return nil, false
}
// ASRTask is task of the Job.
type ASRTask struct {
TaskID *string `json:"taskId,omitempty"`
Name *string `json:"name,omitempty"`
StartTime *date.Time `json:"startTime,omitempty"`
EndTime *date.Time `json:"endTime,omitempty"`
AllowedActions *[]string `json:"allowedActions,omitempty"`
FriendlyName *string `json:"friendlyName,omitempty"`
State *string `json:"state,omitempty"`
StateDescription *string `json:"stateDescription,omitempty"`
TaskType *string `json:"taskType,omitempty"`
CustomDetails TaskTypeDetails `json:"customDetails,omitempty"`
GroupTaskCustomDetails GroupTaskDetails `json:"groupTaskCustomDetails,omitempty"`
Errors *[]JobErrorDetails `json:"errors,omitempty"`
}
// UnmarshalJSON is the custom unmarshaler for ASRTask struct.
func (at *ASRTask) 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["taskId"]
if v != nil {
var taskID string
err = json.Unmarshal(*m["taskId"], &taskID)
if err != nil {
return err
}
at.TaskID = &taskID
}
v = m["name"]
if v != nil {
var name string
err = json.Unmarshal(*m["name"], &name)
if err != nil {
return err
}
at.Name = &name
}
v = m["startTime"]
if v != nil {
var startTime date.Time
err = json.Unmarshal(*m["startTime"], &startTime)
if err != nil {
return err
}
at.StartTime = &startTime
}
v = m["endTime"]
if v != nil {
var endTime date.Time
err = json.Unmarshal(*m["endTime"], &endTime)
if err != nil {
return err
}
at.EndTime = &endTime
}
v = m["allowedActions"]
if v != nil {
var allowedActions []string
err = json.Unmarshal(*m["allowedActions"], &allowedActions)
if err != nil {
return err
}
at.AllowedActions = &allowedActions
}
v = m["friendlyName"]
if v != nil {
var friendlyName string
err = json.Unmarshal(*m["friendlyName"], &friendlyName)
if err != nil {
return err
}
at.FriendlyName = &friendlyName
}
v = m["state"]
if v != nil {
var state string
err = json.Unmarshal(*m["state"], &state)
if err != nil {
return err
}
at.State = &state
}
v = m["stateDescription"]
if v != nil {
var stateDescription string
err = json.Unmarshal(*m["stateDescription"], &stateDescription)
if err != nil {
return err
}
at.StateDescription = &stateDescription
}
v = m["taskType"]
if v != nil {
var taskType string
err = json.Unmarshal(*m["taskType"], &taskType)
if err != nil {
return err
}
at.TaskType = &taskType
}
v = m["customDetails"]
if v != nil {
customDetails, err := unmarshalTaskTypeDetails(*m["customDetails"])
if err != nil {
return err
}
at.CustomDetails = customDetails
}
v = m["groupTaskCustomDetails"]
if v != nil {
groupTaskCustomDetails, err := unmarshalGroupTaskDetails(*m["groupTaskCustomDetails"])
if err != nil {
return err
}
at.GroupTaskCustomDetails = groupTaskCustomDetails
}
v = m["errors"]
if v != nil {
var errorsVar []JobErrorDetails
err = json.Unmarshal(*m["errors"], &errorsVar)
if err != nil {
return err
}
at.Errors = &errorsVar
}
return nil
}
// AutomationRunbookTaskDetails is this class represents the task details for an automation runbook.
type AutomationRunbookTaskDetails struct {
InstanceType InstanceTypeTaskTypeDetails `json:"instanceType,omitempty"`
Name *string `json:"name,omitempty"`
CloudServiceName *string `json:"cloudServiceName,omitempty"`
SubscriptionID *string `json:"subscriptionId,omitempty"`
AccountName *string `json:"accountName,omitempty"`
RunbookID *string `json:"runbookId,omitempty"`
RunbookName *string `json:"runbookName,omitempty"`
JobID *string `json:"jobId,omitempty"`
JobOutput *string `json:"jobOutput,omitempty"`
IsPrimarySideScript *bool `json:"isPrimarySideScript,omitempty"`
}
// MarshalJSON is the custom marshaler for AutomationRunbookTaskDetails.
func (artd AutomationRunbookTaskDetails) MarshalJSON() ([]byte, error) {
artd.InstanceType = InstanceTypeAutomationRunbookTaskDetails
type Alias AutomationRunbookTaskDetails
return json.Marshal(&struct {
Alias
}{
Alias: (Alias)(artd),
})
}
// AsJobTaskDetails is the TaskTypeDetails implementation for AutomationRunbookTaskDetails.
func (artd AutomationRunbookTaskDetails) AsJobTaskDetails() (*JobTaskDetails, bool) {
return nil, false
}
// AsVirtualMachineTaskDetails is the TaskTypeDetails implementation for AutomationRunbookTaskDetails.
func (artd AutomationRunbookTaskDetails) AsVirtualMachineTaskDetails() (*VirtualMachineTaskDetails, bool) {
return nil, false
}
// AsFabricReplicationGroupTaskDetails is the TaskTypeDetails implementation for AutomationRunbookTaskDetails.
func (artd AutomationRunbookTaskDetails) AsFabricReplicationGroupTaskDetails() (*FabricReplicationGroupTaskDetails, bool) {
return nil, false
}
// AsManualActionTaskDetails is the TaskTypeDetails implementation for AutomationRunbookTaskDetails.
func (artd AutomationRunbookTaskDetails) AsManualActionTaskDetails() (*ManualActionTaskDetails, bool) {
return nil, false
}
// AsScriptActionTaskDetails is the TaskTypeDetails implementation for AutomationRunbookTaskDetails.
func (artd AutomationRunbookTaskDetails) AsScriptActionTaskDetails() (*ScriptActionTaskDetails, bool) {
return nil, false
}
// AsVMNicUpdatesTaskDetails is the TaskTypeDetails implementation for AutomationRunbookTaskDetails.
func (artd AutomationRunbookTaskDetails) AsVMNicUpdatesTaskDetails() (*VMNicUpdatesTaskDetails, bool) {
return nil, false
}
// AsConsistencyCheckTaskDetails is the TaskTypeDetails implementation for AutomationRunbookTaskDetails.
func (artd AutomationRunbookTaskDetails) AsConsistencyCheckTaskDetails() (*ConsistencyCheckTaskDetails, bool) {
return nil, false
}
// AsAutomationRunbookTaskDetails is the TaskTypeDetails implementation for AutomationRunbookTaskDetails.
func (artd AutomationRunbookTaskDetails) AsAutomationRunbookTaskDetails() (*AutomationRunbookTaskDetails, bool) {
return &artd, true
}
// AzureFabricCreationInput is fabric provider specific settings.
type AzureFabricCreationInput struct {
InstanceType InstanceTypeFabricSpecificCreationInput `json:"instanceType,omitempty"`
Location *string `json:"location,omitempty"`
}
// MarshalJSON is the custom marshaler for AzureFabricCreationInput.
func (afci AzureFabricCreationInput) MarshalJSON() ([]byte, error) {
afci.InstanceType = InstanceTypeFabricSpecificCreationInputInstanceTypeA2A
type Alias AzureFabricCreationInput
return json.Marshal(&struct {
Alias
}{
Alias: (Alias)(afci),
})
}
// AsAzureFabricCreationInput is the FabricSpecificCreationInput implementation for AzureFabricCreationInput.
func (afci AzureFabricCreationInput) AsAzureFabricCreationInput() (*AzureFabricCreationInput, bool) {
return &afci, true
}
// AsVMwareV2FabricCreationInput is the FabricSpecificCreationInput implementation for AzureFabricCreationInput.
func (afci AzureFabricCreationInput) AsVMwareV2FabricCreationInput() (*VMwareV2FabricCreationInput, bool) {
return nil, false
}
// AzureFabricSpecificDetails is azure Fabric Specific Details.
type AzureFabricSpecificDetails struct {
InstanceType InstanceTypeFabricSpecificDetails `json:"instanceType,omitempty"`
Location *string `json:"location,omitempty"`
ContainerIds *[]string `json:"containerIds,omitempty"`
}
// MarshalJSON is the custom marshaler for AzureFabricSpecificDetails.
func (afsd AzureFabricSpecificDetails) MarshalJSON() ([]byte, error) {
afsd.InstanceType = InstanceTypeAzure
type Alias AzureFabricSpecificDetails
return json.Marshal(&struct {
Alias
}{
Alias: (Alias)(afsd),
})
}
// AsAzureFabricSpecificDetails is the FabricSpecificDetails implementation for AzureFabricSpecificDetails.
func (afsd AzureFabricSpecificDetails) AsAzureFabricSpecificDetails() (*AzureFabricSpecificDetails, bool) {
return &afsd, true
}
// AsVmmDetails is the FabricSpecificDetails implementation for AzureFabricSpecificDetails.
func (afsd AzureFabricSpecificDetails) AsVmmDetails() (*VmmDetails, bool) {
return nil, false
}
// AsHyperVSiteDetails is the FabricSpecificDetails implementation for AzureFabricSpecificDetails.
func (afsd AzureFabricSpecificDetails) AsHyperVSiteDetails() (*HyperVSiteDetails, bool) {
return nil, false
}
// AsVMwareDetails is the FabricSpecificDetails implementation for AzureFabricSpecificDetails.
func (afsd AzureFabricSpecificDetails) AsVMwareDetails() (*VMwareDetails, bool) {
return nil, false
}
// AsVMwareV2FabricSpecificDetails is the FabricSpecificDetails implementation for AzureFabricSpecificDetails.
func (afsd AzureFabricSpecificDetails) AsVMwareV2FabricSpecificDetails() (*VMwareV2FabricSpecificDetails, bool) {
return nil, false
}
// AzureToAzureCreateNetworkMappingInput is create network mappings input properties/behaviour specific to Azure to
// Azure Network mapping.
type AzureToAzureCreateNetworkMappingInput struct {
InstanceType InstanceTypeFabricSpecificCreateNetworkMappingInput `json:"instanceType,omitempty"`
PrimaryNetworkID *string `json:"primaryNetworkId,omitempty"`
}
// MarshalJSON is the custom marshaler for AzureToAzureCreateNetworkMappingInput.
func (atacnmi AzureToAzureCreateNetworkMappingInput) MarshalJSON() ([]byte, error) {
atacnmi.InstanceType = InstanceTypeAzureToAzure
type Alias AzureToAzureCreateNetworkMappingInput
return json.Marshal(&struct {
Alias
}{
Alias: (Alias)(atacnmi),
})
}
// AsAzureToAzureCreateNetworkMappingInput is the FabricSpecificCreateNetworkMappingInput implementation for AzureToAzureCreateNetworkMappingInput.
func (atacnmi AzureToAzureCreateNetworkMappingInput) AsAzureToAzureCreateNetworkMappingInput() (*AzureToAzureCreateNetworkMappingInput, bool) {
return &atacnmi, true
}
// AsVmmToAzureCreateNetworkMappingInput is the FabricSpecificCreateNetworkMappingInput implementation for AzureToAzureCreateNetworkMappingInput.
func (atacnmi AzureToAzureCreateNetworkMappingInput) AsVmmToAzureCreateNetworkMappingInput() (*VmmToAzureCreateNetworkMappingInput, bool) {
return nil, false
}
// AsVmmToVmmCreateNetworkMappingInput is the FabricSpecificCreateNetworkMappingInput implementation for AzureToAzureCreateNetworkMappingInput.
func (atacnmi AzureToAzureCreateNetworkMappingInput) AsVmmToVmmCreateNetworkMappingInput() (*VmmToVmmCreateNetworkMappingInput, bool) {
return nil, false
}
// AzureToAzureNetworkMappingSettings is a2A Network Mapping fabric specific settings.
type AzureToAzureNetworkMappingSettings struct {
InstanceType InstanceTypeNetworkMappingFabricSpecificSettings `json:"instanceType,omitempty"`
PrimaryFabricLocation *string `json:"primaryFabricLocation,omitempty"`
RecoveryFabricLocation *string `json:"recoveryFabricLocation,omitempty"`
}
// MarshalJSON is the custom marshaler for AzureToAzureNetworkMappingSettings.
func (atanms AzureToAzureNetworkMappingSettings) MarshalJSON() ([]byte, error) {
atanms.InstanceType = InstanceTypeNetworkMappingFabricSpecificSettingsInstanceTypeAzureToAzure
type Alias AzureToAzureNetworkMappingSettings
return json.Marshal(&struct {
Alias
}{
Alias: (Alias)(atanms),
})
}
// AsAzureToAzureNetworkMappingSettings is the NetworkMappingFabricSpecificSettings implementation for AzureToAzureNetworkMappingSettings.
func (atanms AzureToAzureNetworkMappingSettings) AsAzureToAzureNetworkMappingSettings() (*AzureToAzureNetworkMappingSettings, bool) {
return &atanms, true
}
// AsVmmToAzureNetworkMappingSettings is the NetworkMappingFabricSpecificSettings implementation for AzureToAzureNetworkMappingSettings.
func (atanms AzureToAzureNetworkMappingSettings) AsVmmToAzureNetworkMappingSettings() (*VmmToAzureNetworkMappingSettings, bool) {
return nil, false
}
// AsVmmToVmmNetworkMappingSettings is the NetworkMappingFabricSpecificSettings implementation for AzureToAzureNetworkMappingSettings.
func (atanms AzureToAzureNetworkMappingSettings) AsVmmToVmmNetworkMappingSettings() (*VmmToVmmNetworkMappingSettings, bool) {
return nil, false
}
// AzureToAzureUpdateNetworkMappingInput is updates network mappings input.
type AzureToAzureUpdateNetworkMappingInput struct {
InstanceType InstanceTypeFabricSpecificUpdateNetworkMappingInput `json:"instanceType,omitempty"`
PrimaryNetworkID *string `json:"primaryNetworkId,omitempty"`
}
// MarshalJSON is the custom marshaler for AzureToAzureUpdateNetworkMappingInput.
func (ataunmi AzureToAzureUpdateNetworkMappingInput) MarshalJSON() ([]byte, error) {
ataunmi.InstanceType = InstanceTypeFabricSpecificUpdateNetworkMappingInputInstanceTypeAzureToAzure
type Alias AzureToAzureUpdateNetworkMappingInput
return json.Marshal(&struct {
Alias
}{
Alias: (Alias)(ataunmi),
})
}
// AsAzureToAzureUpdateNetworkMappingInput is the FabricSpecificUpdateNetworkMappingInput implementation for AzureToAzureUpdateNetworkMappingInput.
func (ataunmi AzureToAzureUpdateNetworkMappingInput) AsAzureToAzureUpdateNetworkMappingInput() (*AzureToAzureUpdateNetworkMappingInput, bool) {
return &ataunmi, true
}
// AsVmmToAzureUpdateNetworkMappingInput is the FabricSpecificUpdateNetworkMappingInput implementation for AzureToAzureUpdateNetworkMappingInput.
func (ataunmi AzureToAzureUpdateNetworkMappingInput) AsVmmToAzureUpdateNetworkMappingInput() (*VmmToAzureUpdateNetworkMappingInput, bool) {
return nil, false
}
// AsVmmToVmmUpdateNetworkMappingInput is the FabricSpecificUpdateNetworkMappingInput implementation for AzureToAzureUpdateNetworkMappingInput.
func (ataunmi AzureToAzureUpdateNetworkMappingInput) AsVmmToVmmUpdateNetworkMappingInput() (*VmmToVmmUpdateNetworkMappingInput, bool) {
return nil, false
}
// AzureToAzureVMSyncedConfigDetails is azure to Azure VM synced configuration details.
type AzureToAzureVMSyncedConfigDetails struct {
Tags *map[string]*string `json:"tags,omitempty"`
RoleAssignments *[]RoleAssignment `json:"roleAssignments,omitempty"`
InputEndpoints *[]InputEndpoint `json:"inputEndpoints,omitempty"`
}
// AzureVMDiskDetails is disk details for E2A provider.
type AzureVMDiskDetails struct {
VhdType *string `json:"vhdType,omitempty"`
VhdID *string `json:"vhdId,omitempty"`
VhdName *string `json:"vhdName,omitempty"`
MaxSizeMB *string `json:"maxSizeMB,omitempty"`
TargetDiskLocation *string `json:"targetDiskLocation,omitempty"`
TargetDiskName *string `json:"targetDiskName,omitempty"`
LunID *string `json:"lunId,omitempty"`
}
// ConfigurationSettings is replication provider specific settings.
type ConfigurationSettings interface {
AsHyperVVirtualMachineDetails() (*HyperVVirtualMachineDetails, bool)
AsVMwareVirtualMachineDetails() (*VMwareVirtualMachineDetails, bool)
AsReplicationGroupDetails() (*ReplicationGroupDetails, bool)
}
func unmarshalConfigurationSettings(body []byte) (ConfigurationSettings, error) {
var m map[string]interface{}
err := json.Unmarshal(body, &m)
if err != nil {
return nil, err
}
switch m["instanceType"] {
case string(InstanceTypeHyperVVirtualMachine):
var hvvmd HyperVVirtualMachineDetails
err := json.Unmarshal(body, &hvvmd)
return hvvmd, err
case string(InstanceTypeVMwareVirtualMachine):
var vmvmd VMwareVirtualMachineDetails
err := json.Unmarshal(body, &vmvmd)
return vmvmd, err
case string(InstanceTypeReplicationGroupDetails):
var rgd ReplicationGroupDetails
err := json.Unmarshal(body, &rgd)
return rgd, err
default:
return nil, errors.New("Unsupported type")
}
}
func unmarshalConfigurationSettingsArray(body []byte) ([]ConfigurationSettings, error) {
var rawMessages []*json.RawMessage
err := json.Unmarshal(body, &rawMessages)
if err != nil {
return nil, err
}
csArray := make([]ConfigurationSettings, len(rawMessages))
for index, rawMessage := range rawMessages {
cs, err := unmarshalConfigurationSettings(*rawMessage)
if err != nil {
return nil, err
}
csArray[index] = cs
}
return csArray, nil
}
// ConfigureAlertRequest is request to configure alerts for the system.
type ConfigureAlertRequest struct {
Properties *ConfigureAlertRequestProperties `json:"properties,omitempty"`
}
// ConfigureAlertRequestProperties is properties of a configure alert request.
type ConfigureAlertRequestProperties struct {
SendToOwners *string `json:"sendToOwners,omitempty"`
CustomEmailAddresses *[]string `json:"customEmailAddresses,omitempty"`
Locale *string `json:"locale,omitempty"`
}
// ConsistencyCheckTaskDetails is this class contains monitoring details of all the inconsistent Protected Entites in
// Vmm.
type ConsistencyCheckTaskDetails struct {
InstanceType InstanceTypeTaskTypeDetails `json:"instanceType,omitempty"`
VMDetails *[]InconsistentVMDetails `json:"vmDetails,omitempty"`
}
// MarshalJSON is the custom marshaler for ConsistencyCheckTaskDetails.
func (cctd ConsistencyCheckTaskDetails) MarshalJSON() ([]byte, error) {
cctd.InstanceType = InstanceTypeConsistencyCheckTaskDetails
type Alias ConsistencyCheckTaskDetails
return json.Marshal(&struct {
Alias
}{
Alias: (Alias)(cctd),
})
}
// AsJobTaskDetails is the TaskTypeDetails implementation for ConsistencyCheckTaskDetails.
func (cctd ConsistencyCheckTaskDetails) AsJobTaskDetails() (*JobTaskDetails, bool) {
return nil, false
}
// AsVirtualMachineTaskDetails is the TaskTypeDetails implementation for ConsistencyCheckTaskDetails.
func (cctd ConsistencyCheckTaskDetails) AsVirtualMachineTaskDetails() (*VirtualMachineTaskDetails, bool) {
return nil, false
}
// AsFabricReplicationGroupTaskDetails is the TaskTypeDetails implementation for ConsistencyCheckTaskDetails.
func (cctd ConsistencyCheckTaskDetails) AsFabricReplicationGroupTaskDetails() (*FabricReplicationGroupTaskDetails, bool) {
return nil, false
}
// AsManualActionTaskDetails is the TaskTypeDetails implementation for ConsistencyCheckTaskDetails.
func (cctd ConsistencyCheckTaskDetails) AsManualActionTaskDetails() (*ManualActionTaskDetails, bool) {
return nil, false
}
// AsScriptActionTaskDetails is the TaskTypeDetails implementation for ConsistencyCheckTaskDetails.
func (cctd ConsistencyCheckTaskDetails) AsScriptActionTaskDetails() (*ScriptActionTaskDetails, bool) {
return nil, false
}
// AsVMNicUpdatesTaskDetails is the TaskTypeDetails implementation for ConsistencyCheckTaskDetails.
func (cctd ConsistencyCheckTaskDetails) AsVMNicUpdatesTaskDetails() (*VMNicUpdatesTaskDetails, bool) {
return nil, false
}
// AsConsistencyCheckTaskDetails is the TaskTypeDetails implementation for ConsistencyCheckTaskDetails.
func (cctd ConsistencyCheckTaskDetails) AsConsistencyCheckTaskDetails() (*ConsistencyCheckTaskDetails, bool) {
return &cctd, true
}
// AsAutomationRunbookTaskDetails is the TaskTypeDetails implementation for ConsistencyCheckTaskDetails.
func (cctd ConsistencyCheckTaskDetails) AsAutomationRunbookTaskDetails() (*AutomationRunbookTaskDetails, bool) {
return nil, false
}
// CreateNetworkMappingInput is create network mappings input.
type CreateNetworkMappingInput struct {
Properties *CreateNetworkMappingInputProperties `json:"properties,omitempty"`
}
// CreateNetworkMappingInputProperties is common input details for network mapping operation.
type CreateNetworkMappingInputProperties struct {
RecoveryFabricName *string `json:"recoveryFabricName,omitempty"`
RecoveryNetworkID *string `json:"recoveryNetworkId,omitempty"`
FabricSpecificDetails FabricSpecificCreateNetworkMappingInput `json:"fabricSpecificDetails,omitempty"`
}
// UnmarshalJSON is the custom unmarshaler for CreateNetworkMappingInputProperties struct.
func (cnmip *CreateNetworkMappingInputProperties) 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["recoveryFabricName"]
if v != nil {
var recoveryFabricName string
err = json.Unmarshal(*m["recoveryFabricName"], &recoveryFabricName)
if err != nil {
return err
}
cnmip.RecoveryFabricName = &recoveryFabricName
}
v = m["recoveryNetworkId"]
if v != nil {
var recoveryNetworkID string
err = json.Unmarshal(*m["recoveryNetworkId"], &recoveryNetworkID)
if err != nil {
return err
}
cnmip.RecoveryNetworkID = &recoveryNetworkID
}
v = m["fabricSpecificDetails"]
if v != nil {
fabricSpecificDetails, err := unmarshalFabricSpecificCreateNetworkMappingInput(*m["fabricSpecificDetails"])
if err != nil {
return err
}
cnmip.FabricSpecificDetails = fabricSpecificDetails
}
return nil
}
// CreatePolicyInput is protection profile input.
type CreatePolicyInput struct {
Properties *CreatePolicyInputProperties `json:"properties,omitempty"`
}
// CreatePolicyInputProperties is policy creation properties.
type CreatePolicyInputProperties struct {
ProviderSpecificInput PolicyProviderSpecificInput `json:"providerSpecificInput,omitempty"`
}
// UnmarshalJSON is the custom unmarshaler for CreatePolicyInputProperties struct.
func (cpip *CreatePolicyInputProperties) 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["providerSpecificInput"]
if v != nil {
providerSpecificInput, err := unmarshalPolicyProviderSpecificInput(*m["providerSpecificInput"])
if err != nil {
return err
}
cpip.ProviderSpecificInput = providerSpecificInput
}
return nil
}
// CreateProtectionContainerInput is create protection container input.
type CreateProtectionContainerInput struct {
Properties *CreateProtectionContainerInputProperties `json:"properties,omitempty"`
}
// CreateProtectionContainerInputProperties is create protection container input properties.
type CreateProtectionContainerInputProperties struct {
ProviderSpecificInput *[]ReplicationProviderSpecificContainerCreationInput `json:"providerSpecificInput,omitempty"`
}
// UnmarshalJSON is the custom unmarshaler for CreateProtectionContainerInputProperties struct.
func (cpcip *CreateProtectionContainerInputProperties) 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["providerSpecificInput"]
if v != nil {
providerSpecificInput, err := unmarshalReplicationProviderSpecificContainerCreationInputArray(*m["providerSpecificInput"])
if err != nil {
return err
}
cpcip.ProviderSpecificInput = &providerSpecificInput
}
return nil
}
// CreateProtectionContainerMappingInput is configure pairing input.
type CreateProtectionContainerMappingInput struct {
Properties *CreateProtectionContainerMappingInputProperties `json:"properties,omitempty"`
}
// CreateProtectionContainerMappingInputProperties is configure pairing input properties.
type CreateProtectionContainerMappingInputProperties struct {
TargetProtectionContainerID *string `json:"targetProtectionContainerId,omitempty"`
PolicyID *string `json:"PolicyId,omitempty"`
ProviderSpecificInput *ReplicationProviderSpecificContainerMappingInput `json:"providerSpecificInput,omitempty"`
}
// CreateRecoveryPlanInput is create recovery plan input class.
type CreateRecoveryPlanInput struct {
Properties *CreateRecoveryPlanInputProperties `json:"properties,omitempty"`
}
// CreateRecoveryPlanInputProperties is recovery plan creation properties.
type CreateRecoveryPlanInputProperties struct {
PrimaryFabricID *string `json:"primaryFabricId,omitempty"`
RecoveryFabricID *string `json:"recoveryFabricId,omitempty"`
FailoverDeploymentModel FailoverDeploymentModel `json:"failoverDeploymentModel,omitempty"`
Groups *[]RecoveryPlanGroup `json:"groups,omitempty"`
}
// CurrentScenarioDetails is current scenario details of the protected entity.
type CurrentScenarioDetails struct {
ScenarioName *string `json:"scenarioName,omitempty"`
JobID *string `json:"jobId,omitempty"`
StartTime *date.Time `json:"startTime,omitempty"`
}
// DataStore is the datastore details of the MT.
type DataStore struct {
SymbolicName *string `json:"symbolicName,omitempty"`
UUID *string `json:"uuid,omitempty"`
Capacity *string `json:"capacity,omitempty"`
FreeSpace *string `json:"freeSpace,omitempty"`
Type *string `json:"type,omitempty"`
}
// DisableProtectionInput is disable protection input.
type DisableProtectionInput struct {
Properties *DisableProtectionInputProperties `json:"properties,omitempty"`
}
// DisableProtectionInputProperties is disable protection input properties.
type DisableProtectionInputProperties struct {
DisableProtectionReason DisableProtectionReason `json:"disableProtectionReason,omitempty"`
ReplicationProviderInput DisableProtectionProviderSpecificInput `json:"replicationProviderInput,omitempty"`
}
// UnmarshalJSON is the custom unmarshaler for DisableProtectionInputProperties struct.
func (dpip *DisableProtectionInputProperties) 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["disableProtectionReason"]
if v != nil {
var disableProtectionReason DisableProtectionReason
err = json.Unmarshal(*m["disableProtectionReason"], &disableProtectionReason)
if err != nil {
return err
}
dpip.DisableProtectionReason = disableProtectionReason
}
v = m["replicationProviderInput"]
if v != nil {
replicationProviderInput, err := unmarshalDisableProtectionProviderSpecificInput(*m["replicationProviderInput"])
if err != nil {
return err
}
dpip.ReplicationProviderInput = replicationProviderInput
}
return nil
}
// DisableProtectionProviderSpecificInput is disable protection provider specific input.
type DisableProtectionProviderSpecificInput interface {
AsInMageDisableProtectionProviderSpecificInput() (*InMageDisableProtectionProviderSpecificInput, bool)
}
func unmarshalDisableProtectionProviderSpecificInput(body []byte) (DisableProtectionProviderSpecificInput, error) {
var m map[string]interface{}
err := json.Unmarshal(body, &m)
if err != nil {
return nil, err
}
switch m["instanceType"] {
case string(InstanceTypeInMage):
var imdppsi InMageDisableProtectionProviderSpecificInput
err := json.Unmarshal(body, &imdppsi)
return imdppsi, err
default:
return nil, errors.New("Unsupported type")
}
}
func unmarshalDisableProtectionProviderSpecificInputArray(body []byte) ([]DisableProtectionProviderSpecificInput, error) {
var rawMessages []*json.RawMessage
err := json.Unmarshal(body, &rawMessages)
if err != nil {
return nil, err
}
dppsiArray := make([]DisableProtectionProviderSpecificInput, len(rawMessages))
for index, rawMessage := range rawMessages {
dppsi, err := unmarshalDisableProtectionProviderSpecificInput(*rawMessage)
if err != nil {
return nil, err
}
dppsiArray[index] = dppsi
}
return dppsiArray, nil
}
// DiscoverProtectableItemRequest is request to add a physical machine as a protectable item in a container.
type DiscoverProtectableItemRequest struct {
Properties *DiscoverProtectableItemRequestProperties `json:"properties,omitempty"`
}
// DiscoverProtectableItemRequestProperties is discover protectable item properties.
type DiscoverProtectableItemRequestProperties struct {
FriendlyName *string `json:"friendlyName,omitempty"`
IPAddress *string `json:"ipAddress,omitempty"`
OsType *string `json:"osType,omitempty"`
}
// DiskDetails is onprem disk details data.
type DiskDetails struct {
MaxSizeMB *int64 `json:"maxSizeMB,omitempty"`
VhdType *string `json:"vhdType,omitempty"`
VhdID *string `json:"vhdId,omitempty"`
VhdName *string `json:"vhdName,omitempty"`
}
// DiskVolumeDetails is volume details.
type DiskVolumeDetails struct {
Label *string `json:"label,omitempty"`
Name *string `json:"name,omitempty"`
}
// Display is contains the localized display information for this particular operation / action. These value will be
// used by several clients for (1) custom role definitions for RBAC; (2) complex query filters for the event service;
// and (3) audit history / records for management operations.
type Display struct {
Provider *string `json:"provider,omitempty"`
Resource *string `json:"resource,omitempty"`
Operation *string `json:"operation,omitempty"`
Description *string `json:"description,omitempty"`
}
// EnableProtectionInput is enable protection input.
type EnableProtectionInput struct {
Properties *EnableProtectionInputProperties `json:"properties,omitempty"`
}
// EnableProtectionInputProperties is enable protection input properties.
type EnableProtectionInputProperties struct {
PolicyID *string `json:"policyId,omitempty"`
ProtectableItemID *string `json:"protectableItemId,omitempty"`
ProviderSpecificDetails EnableProtectionProviderSpecificInput `json:"providerSpecificDetails,omitempty"`
}
// UnmarshalJSON is the custom unmarshaler for EnableProtectionInputProperties struct.
func (epip *EnableProtectionInputProperties) 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["policyId"]
if v != nil {
var policyID string
err = json.Unmarshal(*m["policyId"], &policyID)
if err != nil {
return err
}
epip.PolicyID = &policyID
}
v = m["protectableItemId"]
if v != nil {
var protectableItemID string
err = json.Unmarshal(*m["protectableItemId"], &protectableItemID)
if err != nil {
return err
}
epip.ProtectableItemID = &protectableItemID
}
v = m["providerSpecificDetails"]
if v != nil {
providerSpecificDetails, err := unmarshalEnableProtectionProviderSpecificInput(*m["providerSpecificDetails"])
if err != nil {
return err
}
epip.ProviderSpecificDetails = providerSpecificDetails
}
return nil
}
// EnableProtectionProviderSpecificInput is enable protection provider specific input.
type EnableProtectionProviderSpecificInput interface {
AsHyperVReplicaAzureEnableProtectionInput() (*HyperVReplicaAzureEnableProtectionInput, bool)
AsSanEnableProtectionInput() (*SanEnableProtectionInput, bool)
AsInMageAzureV2EnableProtectionInput() (*InMageAzureV2EnableProtectionInput, bool)
AsInMageEnableProtectionInput() (*InMageEnableProtectionInput, bool)
AsA2AEnableProtectionInput() (*A2AEnableProtectionInput, bool)
}
func unmarshalEnableProtectionProviderSpecificInput(body []byte) (EnableProtectionProviderSpecificInput, error) {
var m map[string]interface{}
err := json.Unmarshal(body, &m)
if err != nil {
return nil, err
}
switch m["instanceType"] {
case string(InstanceTypeEnableProtectionProviderSpecificInputInstanceTypeHyperVReplicaAzure):
var hvraepi HyperVReplicaAzureEnableProtectionInput
err := json.Unmarshal(body, &hvraepi)
return hvraepi, err
case string(InstanceTypeEnableProtectionProviderSpecificInputInstanceTypeSan):
var sepi SanEnableProtectionInput
err := json.Unmarshal(body, &sepi)
return sepi, err
case string(InstanceTypeEnableProtectionProviderSpecificInputInstanceTypeInMageAzureV2):
var imavepi InMageAzureV2EnableProtectionInput
err := json.Unmarshal(body, &imavepi)
return imavepi, err
case string(InstanceTypeEnableProtectionProviderSpecificInputInstanceTypeInMage):
var imepi InMageEnableProtectionInput
err := json.Unmarshal(body, &imepi)
return imepi, err
case string(InstanceTypeEnableProtectionProviderSpecificInputInstanceTypeA2A):
var aepi A2AEnableProtectionInput
err := json.Unmarshal(body, &aepi)
return aepi, err
default:
return nil, errors.New("Unsupported type")
}
}
func unmarshalEnableProtectionProviderSpecificInputArray(body []byte) ([]EnableProtectionProviderSpecificInput, error) {
var rawMessages []*json.RawMessage
err := json.Unmarshal(body, &rawMessages)
if err != nil {
return nil, err
}
eppsiArray := make([]EnableProtectionProviderSpecificInput, len(rawMessages))
for index, rawMessage := range rawMessages {
eppsi, err := unmarshalEnableProtectionProviderSpecificInput(*rawMessage)
if err != nil {
return nil, err
}
eppsiArray[index] = eppsi
}
return eppsiArray, nil
}
// EncryptionDetails is encryption details for the fabric.
type EncryptionDetails struct {
KekState *string `json:"kekState,omitempty"`
KekCertThumbprint *string `json:"kekCertThumbprint,omitempty"`
KekCertExpiryDate *date.Time `json:"kekCertExpiryDate,omitempty"`
}
// Event is implements the Event class.
type Event struct {
autorest.Response `json:"-"`
ID *string `json:"id,omitempty"`
Name *string `json:"name,omitempty"`
Type *string `json:"type,omitempty"`
Location *string `json:"location,omitempty"`
Properties *EventProperties `json:"properties,omitempty"`
}
// EventCollection is collection of fabric details.
type EventCollection struct {
autorest.Response `json:"-"`
Value *[]Event `json:"value,omitempty"`
NextLink *string `json:"nextLink,omitempty"`
}
// EventCollectionPreparer prepares a request to retrieve the next set of results. It returns
// nil if no more results exist.
func (client EventCollection) EventCollectionPreparer() (*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)))
}
// EventProperties is the properties of a monitoring event.
type EventProperties struct {
EventCode *string `json:"eventCode,omitempty"`
Description *string `json:"description,omitempty"`
EventType *string `json:"eventType,omitempty"`
AffectedObjectFriendlyName *string `json:"affectedObjectFriendlyName,omitempty"`
Severity *string `json:"severity,omitempty"`
TimeOfOccurrence *date.Time `json:"timeOfOccurrence,omitempty"`
FabricID *string `json:"fabricId,omitempty"`
ProviderSpecificDetails EventProviderSpecificDetails `json:"providerSpecificDetails,omitempty"`
EventSpecificDetails EventSpecificDetails `json:"eventSpecificDetails,omitempty"`
HealthErrors *[]HealthError `json:"healthErrors,omitempty"`
}
// UnmarshalJSON is the custom unmarshaler for EventProperties struct.
func (ep *EventProperties) 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["eventCode"]
if v != nil {
var eventCode string
err = json.Unmarshal(*m["eventCode"], &eventCode)
if err != nil {
return err
}
ep.EventCode = &eventCode
}
v = m["description"]
if v != nil {
var description string
err = json.Unmarshal(*m["description"], &description)
if err != nil {
return err
}
ep.Description = &description
}
v = m["eventType"]
if v != nil {
var eventType string
err = json.Unmarshal(*m["eventType"], &eventType)
if err != nil {
return err
}
ep.EventType = &eventType
}
v = m["affectedObjectFriendlyName"]
if v != nil {
var affectedObjectFriendlyName string
err = json.Unmarshal(*m["affectedObjectFriendlyName"], &affectedObjectFriendlyName)
if err != nil {
return err
}
ep.AffectedObjectFriendlyName = &affectedObjectFriendlyName
}
v = m["severity"]
if v != nil {
var severity string
err = json.Unmarshal(*m["severity"], &severity)
if err != nil {
return err
}
ep.Severity = &severity
}
v = m["timeOfOccurrence"]
if v != nil {
var timeOfOccurrence date.Time
err = json.Unmarshal(*m["timeOfOccurrence"], &timeOfOccurrence)
if err != nil {
return err
}
ep.TimeOfOccurrence = &timeOfOccurrence
}
v = m["fabricId"]
if v != nil {
var fabricID string
err = json.Unmarshal(*m["fabricId"], &fabricID)
if err != nil {
return err
}
ep.FabricID = &fabricID
}
v = m["providerSpecificDetails"]
if v != nil {
providerSpecificDetails, err := unmarshalEventProviderSpecificDetails(*m["providerSpecificDetails"])
if err != nil {
return err
}
ep.ProviderSpecificDetails = providerSpecificDetails
}
v = m["eventSpecificDetails"]
if v != nil {
eventSpecificDetails, err := unmarshalEventSpecificDetails(*m["eventSpecificDetails"])
if err != nil {
return err
}
ep.EventSpecificDetails = eventSpecificDetails
}
v = m["healthErrors"]
if v != nil {
var healthErrors []HealthError
err = json.Unmarshal(*m["healthErrors"], &healthErrors)
if err != nil {
return err
}
ep.HealthErrors = &healthErrors
}
return nil
}
// EventProviderSpecificDetails is model class for provider specific details for an event.
type EventProviderSpecificDetails interface {
AsHyperVReplicaBaseEventDetails() (*HyperVReplicaBaseEventDetails, bool)
AsHyperVReplica2012EventDetails() (*HyperVReplica2012EventDetails, bool)
AsHyperVReplica2012R2EventDetails() (*HyperVReplica2012R2EventDetails, bool)
AsHyperVReplicaAzureEventDetails() (*HyperVReplicaAzureEventDetails, bool)
AsA2AEventDetails() (*A2AEventDetails, bool)
AsInMageAzureV2EventDetails() (*InMageAzureV2EventDetails, bool)
}
func unmarshalEventProviderSpecificDetails(body []byte) (EventProviderSpecificDetails, error) {
var m map[string]interface{}
err := json.Unmarshal(body, &m)
if err != nil {
return nil, err
}
switch m["instanceType"] {
case string(InstanceTypeHyperVReplicaBaseEventDetails):
var hvrbed HyperVReplicaBaseEventDetails
err := json.Unmarshal(body, &hvrbed)
return hvrbed, err
case string(InstanceTypeHyperVReplica2012):
var hvr2ed HyperVReplica2012EventDetails
err := json.Unmarshal(body, &hvr2ed)
return hvr2ed, err
case string(InstanceTypeHyperVReplica2012R2):
var hvr2ed HyperVReplica2012R2EventDetails
err := json.Unmarshal(body, &hvr2ed)
return hvr2ed, err
case string(InstanceTypeHyperVReplicaAzure):
var hvraed HyperVReplicaAzureEventDetails
err := json.Unmarshal(body, &hvraed)
return hvraed, err
case string(InstanceTypeA2A):
var aed A2AEventDetails
err := json.Unmarshal(body, &aed)
return aed, err
case string(InstanceTypeInMageAzureV2):
var imaved InMageAzureV2EventDetails
err := json.Unmarshal(body, &imaved)
return imaved, err
default:
return nil, errors.New("Unsupported type")
}
}
func unmarshalEventProviderSpecificDetailsArray(body []byte) ([]EventProviderSpecificDetails, error) {
var rawMessages []*json.RawMessage
err := json.Unmarshal(body, &rawMessages)
if err != nil {
return nil, err
}
epsdArray := make([]EventProviderSpecificDetails, len(rawMessages))
for index, rawMessage := range rawMessages {
epsd, err := unmarshalEventProviderSpecificDetails(*rawMessage)
if err != nil {
return nil, err
}
epsdArray[index] = epsd
}
return epsdArray, nil
}
// EventQueryParameter is implements the event query parameter.
type EventQueryParameter struct {
EventCode *string `json:"EventCode,omitempty"`
Severity *string `json:"Severity,omitempty"`
EventType *string `json:"EventType,omitempty"`
FabricName *string `json:"FabricName,omitempty"`
AffectedObjectFriendlyName *string `json:"AffectedObjectFriendlyName,omitempty"`
StartTime *date.Time `json:"StartTime,omitempty"`
EndTime *date.Time `json:"EndTime,omitempty"`
}
// EventSpecificDetails is model class for event specific details for an event.
type EventSpecificDetails interface {
AsJobStatusEventDetails() (*JobStatusEventDetails, bool)
}
func unmarshalEventSpecificDetails(body []byte) (EventSpecificDetails, error) {
var m map[string]interface{}
err := json.Unmarshal(body, &m)
if err != nil {
return nil, err
}
switch m["instanceType"] {
case string(InstanceTypeJobStatus):
var jsed JobStatusEventDetails
err := json.Unmarshal(body, &jsed)
return jsed, err
default:
return nil, errors.New("Unsupported type")
}
}
func unmarshalEventSpecificDetailsArray(body []byte) ([]EventSpecificDetails, error) {
var rawMessages []*json.RawMessage
err := json.Unmarshal(body, &rawMessages)
if err != nil {
return nil, err
}
esdArray := make([]EventSpecificDetails, len(rawMessages))
for index, rawMessage := range rawMessages {
esd, err := unmarshalEventSpecificDetails(*rawMessage)
if err != nil {
return nil, err
}
esdArray[index] = esd
}
return esdArray, nil
}
// ExportJobDetails is this class represents details for export jobs workflow.
type ExportJobDetails struct {
AffectedObjectDetails *map[string]*string `json:"affectedObjectDetails,omitempty"`
InstanceType InstanceTypeJobDetails `json:"instanceType,omitempty"`
BlobURI *string `json:"blobUri,omitempty"`
SasToken *string `json:"sasToken,omitempty"`
}
// MarshalJSON is the custom marshaler for ExportJobDetails.
func (ejd ExportJobDetails) MarshalJSON() ([]byte, error) {
ejd.InstanceType = InstanceTypeExportJobDetails
type Alias ExportJobDetails
return json.Marshal(&struct {
Alias
}{
Alias: (Alias)(ejd),
})
}
// AsAsrJobDetails is the JobDetails implementation for ExportJobDetails.
func (ejd ExportJobDetails) AsAsrJobDetails() (*AsrJobDetails, bool) {
return nil, false
}
// AsTestFailoverJobDetails is the JobDetails implementation for ExportJobDetails.
func (ejd ExportJobDetails) AsTestFailoverJobDetails() (*TestFailoverJobDetails, bool) {
return nil, false
}
// AsFailoverJobDetails is the JobDetails implementation for ExportJobDetails.
func (ejd ExportJobDetails) AsFailoverJobDetails() (*FailoverJobDetails, bool) {
return nil, false
}
// AsExportJobDetails is the JobDetails implementation for ExportJobDetails.
func (ejd ExportJobDetails) AsExportJobDetails() (*ExportJobDetails, bool) {
return &ejd, true
}
// AsSwitchProtectionJobDetails is the JobDetails implementation for ExportJobDetails.
func (ejd ExportJobDetails) AsSwitchProtectionJobDetails() (*SwitchProtectionJobDetails, bool) {
return nil, false
}
// Fabric is fabric definition.
type Fabric struct {
autorest.Response `json:"-"`
ID *string `json:"id,omitempty"`
Name *string `json:"name,omitempty"`
Type *string `json:"type,omitempty"`
Location *string `json:"location,omitempty"`
Properties *FabricProperties `json:"properties,omitempty"`
}
// FabricCollection is collection of fabric details.
type FabricCollection struct {
autorest.Response `json:"-"`
Value *[]Fabric `json:"value,omitempty"`
NextLink *string `json:"nextLink,omitempty"`
}
// FabricCollectionPreparer prepares a request to retrieve the next set of results. It returns
// nil if no more results exist.
func (client FabricCollection) FabricCollectionPreparer() (*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)))
}
// FabricCreationInput is site details provided during the time of site creation
type FabricCreationInput struct {
Properties *FabricCreationInputProperties `json:"properties,omitempty"`
}
// FabricCreationInputProperties is properties of site details provided during the time of site creation
type FabricCreationInputProperties struct {
CustomDetails FabricSpecificCreationInput `json:"customDetails,omitempty"`
}
// UnmarshalJSON is the custom unmarshaler for FabricCreationInputProperties struct.
func (fcip *FabricCreationInputProperties) 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["customDetails"]
if v != nil {
customDetails, err := unmarshalFabricSpecificCreationInput(*m["customDetails"])
if err != nil {
return err
}
fcip.CustomDetails = customDetails
}
return nil
}
// FabricProperties is fabric properties.
type FabricProperties struct {
FriendlyName *string `json:"friendlyName,omitempty"`
EncryptionDetails *EncryptionDetails `json:"encryptionDetails,omitempty"`
RolloverEncryptionDetails *EncryptionDetails `json:"rolloverEncryptionDetails,omitempty"`
InternalIdentifier *string `json:"internalIdentifier,omitempty"`
BcdrState *string `json:"bcdrState,omitempty"`
CustomDetails FabricSpecificDetails `json:"customDetails,omitempty"`
HealthErrorDetails *[]HealthError `json:"healthErrorDetails,omitempty"`
Health *string `json:"health,omitempty"`
}
// UnmarshalJSON is the custom unmarshaler for FabricProperties struct.
func (fp *FabricProperties) 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["friendlyName"]
if v != nil {
var friendlyName string
err = json.Unmarshal(*m["friendlyName"], &friendlyName)
if err != nil {
return err
}
fp.FriendlyName = &friendlyName
}
v = m["encryptionDetails"]
if v != nil {
var encryptionDetails EncryptionDetails
err = json.Unmarshal(*m["encryptionDetails"], &encryptionDetails)
if err != nil {
return err
}
fp.EncryptionDetails = &encryptionDetails
}
v = m["rolloverEncryptionDetails"]
if v != nil {
var rolloverEncryptionDetails EncryptionDetails
err = json.Unmarshal(*m["rolloverEncryptionDetails"], &rolloverEncryptionDetails)
if err != nil {
return err
}
fp.RolloverEncryptionDetails = &rolloverEncryptionDetails
}
v = m["internalIdentifier"]
if v != nil {
var internalIdentifier string
err = json.Unmarshal(*m["internalIdentifier"], &internalIdentifier)
if err != nil {
return err
}
fp.InternalIdentifier = &internalIdentifier
}
v = m["bcdrState"]
if v != nil {
var bcdrState string
err = json.Unmarshal(*m["bcdrState"], &bcdrState)
if err != nil {
return err
}
fp.BcdrState = &bcdrState
}
v = m["customDetails"]
if v != nil {
customDetails, err := unmarshalFabricSpecificDetails(*m["customDetails"])
if err != nil {
return err
}
fp.CustomDetails = customDetails
}
v = m["healthErrorDetails"]
if v != nil {
var healthErrorDetails []HealthError
err = json.Unmarshal(*m["healthErrorDetails"], &healthErrorDetails)
if err != nil {
return err
}
fp.HealthErrorDetails = &healthErrorDetails
}
v = m["health"]
if v != nil {
var health string
err = json.Unmarshal(*m["health"], &health)
if err != nil {
return err
}
fp.Health = &health
}
return nil
}
// FabricReplicationGroupTaskDetails is this class represents the fabric replication group task details.
type FabricReplicationGroupTaskDetails struct {
InstanceType InstanceTypeTaskTypeDetails `json:"instanceType,omitempty"`
SkippedReason *string `json:"skippedReason,omitempty"`
SkippedReasonString *string `json:"skippedReasonString,omitempty"`
JobTask *JobEntity `json:"jobTask,omitempty"`
}
// MarshalJSON is the custom marshaler for FabricReplicationGroupTaskDetails.
func (frgtd FabricReplicationGroupTaskDetails) MarshalJSON() ([]byte, error) {
frgtd.InstanceType = InstanceTypeFabricReplicationGroupTaskDetails
type Alias FabricReplicationGroupTaskDetails
return json.Marshal(&struct {
Alias
}{
Alias: (Alias)(frgtd),
})
}
// AsJobTaskDetails is the TaskTypeDetails implementation for FabricReplicationGroupTaskDetails.
func (frgtd FabricReplicationGroupTaskDetails) AsJobTaskDetails() (*JobTaskDetails, bool) {
return nil, false
}
// AsVirtualMachineTaskDetails is the TaskTypeDetails implementation for FabricReplicationGroupTaskDetails.
func (frgtd FabricReplicationGroupTaskDetails) AsVirtualMachineTaskDetails() (*VirtualMachineTaskDetails, bool) {
return nil, false
}
// AsFabricReplicationGroupTaskDetails is the TaskTypeDetails implementation for FabricReplicationGroupTaskDetails.
func (frgtd FabricReplicationGroupTaskDetails) AsFabricReplicationGroupTaskDetails() (*FabricReplicationGroupTaskDetails, bool) {
return &frgtd, true
}
// AsManualActionTaskDetails is the TaskTypeDetails implementation for FabricReplicationGroupTaskDetails.
func (frgtd FabricReplicationGroupTaskDetails) AsManualActionTaskDetails() (*ManualActionTaskDetails, bool) {
return nil, false
}
// AsScriptActionTaskDetails is the TaskTypeDetails implementation for FabricReplicationGroupTaskDetails.
func (frgtd FabricReplicationGroupTaskDetails) AsScriptActionTaskDetails() (*ScriptActionTaskDetails, bool) {
return nil, false
}
// AsVMNicUpdatesTaskDetails is the TaskTypeDetails implementation for FabricReplicationGroupTaskDetails.
func (frgtd FabricReplicationGroupTaskDetails) AsVMNicUpdatesTaskDetails() (*VMNicUpdatesTaskDetails, bool) {
return nil, false
}
// AsConsistencyCheckTaskDetails is the TaskTypeDetails implementation for FabricReplicationGroupTaskDetails.
func (frgtd FabricReplicationGroupTaskDetails) AsConsistencyCheckTaskDetails() (*ConsistencyCheckTaskDetails, bool) {
return nil, false
}
// AsAutomationRunbookTaskDetails is the TaskTypeDetails implementation for FabricReplicationGroupTaskDetails.
func (frgtd FabricReplicationGroupTaskDetails) AsAutomationRunbookTaskDetails() (*AutomationRunbookTaskDetails, bool) {
return nil, false
}
// FabricSpecificCreateNetworkMappingInput is input details specific to fabrics during Network Mapping.
type FabricSpecificCreateNetworkMappingInput interface {
AsAzureToAzureCreateNetworkMappingInput() (*AzureToAzureCreateNetworkMappingInput, bool)
AsVmmToAzureCreateNetworkMappingInput() (*VmmToAzureCreateNetworkMappingInput, bool)
AsVmmToVmmCreateNetworkMappingInput() (*VmmToVmmCreateNetworkMappingInput, bool)
}
func unmarshalFabricSpecificCreateNetworkMappingInput(body []byte) (FabricSpecificCreateNetworkMappingInput, error) {
var m map[string]interface{}
err := json.Unmarshal(body, &m)
if err != nil {
return nil, err
}
switch m["instanceType"] {
case string(InstanceTypeAzureToAzure):
var atacnmi AzureToAzureCreateNetworkMappingInput
err := json.Unmarshal(body, &atacnmi)
return atacnmi, err
case string(InstanceTypeVmmToAzure):
var vtacnmi VmmToAzureCreateNetworkMappingInput
err := json.Unmarshal(body, &vtacnmi)
return vtacnmi, err
case string(InstanceTypeVmmToVmm):
var vtvcnmi VmmToVmmCreateNetworkMappingInput
err := json.Unmarshal(body, &vtvcnmi)
return vtvcnmi, err
default:
return nil, errors.New("Unsupported type")
}
}
func unmarshalFabricSpecificCreateNetworkMappingInputArray(body []byte) ([]FabricSpecificCreateNetworkMappingInput, error) {
var rawMessages []*json.RawMessage
err := json.Unmarshal(body, &rawMessages)
if err != nil {
return nil, err
}
fscnmiArray := make([]FabricSpecificCreateNetworkMappingInput, len(rawMessages))
for index, rawMessage := range rawMessages {
fscnmi, err := unmarshalFabricSpecificCreateNetworkMappingInput(*rawMessage)
if err != nil {
return nil, err
}
fscnmiArray[index] = fscnmi
}
return fscnmiArray, nil
}
// FabricSpecificCreationInput is fabric provider specific settings.
type FabricSpecificCreationInput interface {
AsAzureFabricCreationInput() (*AzureFabricCreationInput, bool)
AsVMwareV2FabricCreationInput() (*VMwareV2FabricCreationInput, bool)
}
func unmarshalFabricSpecificCreationInput(body []byte) (FabricSpecificCreationInput, error) {
var m map[string]interface{}
err := json.Unmarshal(body, &m)
if err != nil {
return nil, err
}
switch m["instanceType"] {
case string(InstanceTypeFabricSpecificCreationInputInstanceTypeA2A):
var afci AzureFabricCreationInput
err := json.Unmarshal(body, &afci)
return afci, err
case string(InstanceTypeFabricSpecificCreationInputInstanceTypeVMwareV2):
var vmvfci VMwareV2FabricCreationInput
err := json.Unmarshal(body, &vmvfci)
return vmvfci, err
default:
return nil, errors.New("Unsupported type")
}
}
func unmarshalFabricSpecificCreationInputArray(body []byte) ([]FabricSpecificCreationInput, error) {
var rawMessages []*json.RawMessage
err := json.Unmarshal(body, &rawMessages)
if err != nil {
return nil, err
}
fsciArray := make([]FabricSpecificCreationInput, len(rawMessages))
for index, rawMessage := range rawMessages {
fsci, err := unmarshalFabricSpecificCreationInput(*rawMessage)
if err != nil {
return nil, err
}
fsciArray[index] = fsci
}
return fsciArray, nil
}
// FabricSpecificDetails is fabric specific details.
type FabricSpecificDetails interface {
AsAzureFabricSpecificDetails() (*AzureFabricSpecificDetails, bool)
AsVmmDetails() (*VmmDetails, bool)
AsHyperVSiteDetails() (*HyperVSiteDetails, bool)
AsVMwareDetails() (*VMwareDetails, bool)
AsVMwareV2FabricSpecificDetails() (*VMwareV2FabricSpecificDetails, bool)
}
func unmarshalFabricSpecificDetails(body []byte) (FabricSpecificDetails, error) {
var m map[string]interface{}
err := json.Unmarshal(body, &m)
if err != nil {
return nil, err
}
switch m["instanceType"] {
case string(InstanceTypeAzure):
var afsd AzureFabricSpecificDetails
err := json.Unmarshal(body, &afsd)
return afsd, err
case string(InstanceTypeVMM):
var vd VmmDetails
err := json.Unmarshal(body, &vd)
return vd, err
case string(InstanceTypeHyperVSite):
var hvsd HyperVSiteDetails
err := json.Unmarshal(body, &hvsd)
return hvsd, err
case string(InstanceTypeVMware):
var vmd VMwareDetails
err := json.Unmarshal(body, &vmd)
return vmd, err
case string(InstanceTypeVMwareV2):
var vmvfsd VMwareV2FabricSpecificDetails
err := json.Unmarshal(body, &vmvfsd)
return vmvfsd, err
default:
return nil, errors.New("Unsupported type")
}
}
func unmarshalFabricSpecificDetailsArray(body []byte) ([]FabricSpecificDetails, error) {
var rawMessages []*json.RawMessage
err := json.Unmarshal(body, &rawMessages)
if err != nil {
return nil, err
}
fsdArray := make([]FabricSpecificDetails, len(rawMessages))
for index, rawMessage := range rawMessages {
fsd, err := unmarshalFabricSpecificDetails(*rawMessage)
if err != nil {
return nil, err
}
fsdArray[index] = fsd
}
return fsdArray, nil
}
// FabricSpecificUpdateNetworkMappingInput is input details specific to fabrics during Network Mapping.
type FabricSpecificUpdateNetworkMappingInput interface {
AsAzureToAzureUpdateNetworkMappingInput() (*AzureToAzureUpdateNetworkMappingInput, bool)
AsVmmToAzureUpdateNetworkMappingInput() (*VmmToAzureUpdateNetworkMappingInput, bool)
AsVmmToVmmUpdateNetworkMappingInput() (*VmmToVmmUpdateNetworkMappingInput, bool)
}
func unmarshalFabricSpecificUpdateNetworkMappingInput(body []byte) (FabricSpecificUpdateNetworkMappingInput, error) {
var m map[string]interface{}
err := json.Unmarshal(body, &m)
if err != nil {
return nil, err
}
switch m["instanceType"] {
case string(InstanceTypeFabricSpecificUpdateNetworkMappingInputInstanceTypeAzureToAzure):
var ataunmi AzureToAzureUpdateNetworkMappingInput
err := json.Unmarshal(body, &ataunmi)
return ataunmi, err
case string(InstanceTypeFabricSpecificUpdateNetworkMappingInputInstanceTypeVmmToAzure):
var vtaunmi VmmToAzureUpdateNetworkMappingInput
err := json.Unmarshal(body, &vtaunmi)
return vtaunmi, err
case string(InstanceTypeFabricSpecificUpdateNetworkMappingInputInstanceTypeVmmToVmm):
var vtvunmi VmmToVmmUpdateNetworkMappingInput
err := json.Unmarshal(body, &vtvunmi)
return vtvunmi, err
default:
return nil, errors.New("Unsupported type")
}
}
func unmarshalFabricSpecificUpdateNetworkMappingInputArray(body []byte) ([]FabricSpecificUpdateNetworkMappingInput, error) {
var rawMessages []*json.RawMessage
err := json.Unmarshal(body, &rawMessages)
if err != nil {
return nil, err
}
fsunmiArray := make([]FabricSpecificUpdateNetworkMappingInput, len(rawMessages))
for index, rawMessage := range rawMessages {
fsunmi, err := unmarshalFabricSpecificUpdateNetworkMappingInput(*rawMessage)
if err != nil {
return nil, err
}
fsunmiArray[index] = fsunmi
}
return fsunmiArray, nil
}
// FailoverJobDetails is this class represents the details for a failover job.
type FailoverJobDetails struct {
AffectedObjectDetails *map[string]*string `json:"affectedObjectDetails,omitempty"`
InstanceType InstanceTypeJobDetails `json:"instanceType,omitempty"`
ProtectedItemDetails *[]FailoverReplicationProtectedItemDetails `json:"protectedItemDetails,omitempty"`
}
// MarshalJSON is the custom marshaler for FailoverJobDetails.
func (fjd FailoverJobDetails) MarshalJSON() ([]byte, error) {
fjd.InstanceType = InstanceTypeFailoverJobDetails
type Alias FailoverJobDetails
return json.Marshal(&struct {
Alias
}{
Alias: (Alias)(fjd),
})
}
// AsAsrJobDetails is the JobDetails implementation for FailoverJobDetails.
func (fjd FailoverJobDetails) AsAsrJobDetails() (*AsrJobDetails, bool) {
return nil, false
}
// AsTestFailoverJobDetails is the JobDetails implementation for FailoverJobDetails.
func (fjd FailoverJobDetails) AsTestFailoverJobDetails() (*TestFailoverJobDetails, bool) {
return nil, false
}
// AsFailoverJobDetails is the JobDetails implementation for FailoverJobDetails.
func (fjd FailoverJobDetails) AsFailoverJobDetails() (*FailoverJobDetails, bool) {
return &fjd, true
}
// AsExportJobDetails is the JobDetails implementation for FailoverJobDetails.
func (fjd FailoverJobDetails) AsExportJobDetails() (*ExportJobDetails, bool) {
return nil, false
}
// AsSwitchProtectionJobDetails is the JobDetails implementation for FailoverJobDetails.
func (fjd FailoverJobDetails) AsSwitchProtectionJobDetails() (*SwitchProtectionJobDetails, bool) {
return nil, false
}
// FailoverProcessServerRequest is request to failover a process server.
type FailoverProcessServerRequest struct {
Properties *FailoverProcessServerRequestProperties `json:"properties,omitempty"`
}
// FailoverProcessServerRequestProperties is the properties of the Failover Process Server request.
type FailoverProcessServerRequestProperties struct {
ContainerName *string `json:"containerName,omitempty"`
SourceProcessServerID *string `json:"sourceProcessServerId,omitempty"`
TargetProcessServerID *string `json:"targetProcessServerId,omitempty"`
VmsToMigrate *[]string `json:"vmsToMigrate,omitempty"`
UpdateType *string `json:"updateType,omitempty"`
}
// FailoverReplicationProtectedItemDetails is failover details for a replication protected item.
type FailoverReplicationProtectedItemDetails struct {
Name *string `json:"name,omitempty"`
FriendlyName *string `json:"friendlyName,omitempty"`
TestVMName *string `json:"testVmName,omitempty"`
TestVMFriendlyName *string `json:"testVmFriendlyName,omitempty"`
NetworkConnectionStatus *string `json:"networkConnectionStatus,omitempty"`
NetworkFriendlyName *string `json:"networkFriendlyName,omitempty"`
Subnet *string `json:"subnet,omitempty"`
RecoveryPointID *string `json:"recoveryPointId,omitempty"`
RecoveryPointTime *date.Time `json:"recoveryPointTime,omitempty"`
}
// GroupTaskDetails is this class represents the group task details when parent child relationship exists in the drill
// down.
type GroupTaskDetails interface {
AsInlineWorkflowTaskDetails() (*InlineWorkflowTaskDetails, bool)
AsRecoveryPlanGroupTaskDetails() (*RecoveryPlanGroupTaskDetails, bool)
AsRecoveryPlanShutdownGroupTaskDetails() (*RecoveryPlanShutdownGroupTaskDetails, bool)
}
func unmarshalGroupTaskDetails(body []byte) (GroupTaskDetails, error) {
var m map[string]interface{}
err := json.Unmarshal(body, &m)
if err != nil {
return nil, err
}
switch m["instanceType"] {
case string(InstanceTypeInlineWorkflowTaskDetails):
var iwtd InlineWorkflowTaskDetails
err := json.Unmarshal(body, &iwtd)
return iwtd, err
case string(InstanceTypeRecoveryPlanGroupTaskDetails):
var rpgtd RecoveryPlanGroupTaskDetails
err := json.Unmarshal(body, &rpgtd)
return rpgtd, err
case string(InstanceTypeRecoveryPlanShutdownGroupTaskDetails):
var rpsgtd RecoveryPlanShutdownGroupTaskDetails
err := json.Unmarshal(body, &rpsgtd)
return rpsgtd, err
default:
return nil, errors.New("Unsupported type")
}
}
func unmarshalGroupTaskDetailsArray(body []byte) ([]GroupTaskDetails, error) {
var rawMessages []*json.RawMessage
err := json.Unmarshal(body, &rawMessages)
if err != nil {
return nil, err
}
gtdArray := make([]GroupTaskDetails, len(rawMessages))
for index, rawMessage := range rawMessages {
gtd, err := unmarshalGroupTaskDetails(*rawMessage)
if err != nil {
return nil, err
}
gtdArray[index] = gtd
}
return gtdArray, nil
}
// HealthError is health Error
type HealthError struct {
ErrorSource *string `json:"errorSource,omitempty"`
ErrorType *string `json:"errorType,omitempty"`
ErrorLevel *string `json:"errorLevel,omitempty"`
ErrorCode *string `json:"errorCode,omitempty"`
ErrorMessage *string `json:"errorMessage,omitempty"`
PossibleCauses *string `json:"possibleCauses,omitempty"`
RecommendedAction *string `json:"recommendedAction,omitempty"`
CreationTimeUtc *date.Time `json:"creationTimeUtc,omitempty"`
RecoveryProviderErrorMessage *string `json:"recoveryProviderErrorMessage,omitempty"`
EntityID *string `json:"entityId,omitempty"`
ChildErrors *[]HealthError `json:"childErrors,omitempty"`
}
// HealthErrorSummary is class to define the summary of the health error details.
type HealthErrorSummary struct {
SummaryCode *string `json:"summaryCode,omitempty"`
Category HealthErrorCategory `json:"category,omitempty"`
Severity Severity `json:"severity,omitempty"`
SummaryMessage *string `json:"summaryMessage,omitempty"`
AffectedResourceType *string `json:"affectedResourceType,omitempty"`
AffectedResourceSubtype *string `json:"affectedResourceSubtype,omitempty"`
AffectedResourceCorrelationIds *[]string `json:"affectedResourceCorrelationIds,omitempty"`
}
// HyperVReplica2012EventDetails is model class for event details of a HyperVReplica E2E event.
type HyperVReplica2012EventDetails struct {
InstanceType InstanceType `json:"instanceType,omitempty"`
ContainerName *string `json:"containerName,omitempty"`
FabricName *string `json:"fabricName,omitempty"`
RemoteContainerName *string `json:"remoteContainerName,omitempty"`
RemoteFabricName *string `json:"remoteFabricName,omitempty"`
}
// MarshalJSON is the custom marshaler for HyperVReplica2012EventDetails.
func (hvr2ed HyperVReplica2012EventDetails) MarshalJSON() ([]byte, error) {
hvr2ed.InstanceType = InstanceTypeHyperVReplica2012
type Alias HyperVReplica2012EventDetails
return json.Marshal(&struct {
Alias
}{
Alias: (Alias)(hvr2ed),
})
}
// AsHyperVReplicaBaseEventDetails is the EventProviderSpecificDetails implementation for HyperVReplica2012EventDetails.
func (hvr2ed HyperVReplica2012EventDetails) AsHyperVReplicaBaseEventDetails() (*HyperVReplicaBaseEventDetails, bool) {
return nil, false
}
// AsHyperVReplica2012EventDetails is the EventProviderSpecificDetails implementation for HyperVReplica2012EventDetails.
func (hvr2ed HyperVReplica2012EventDetails) AsHyperVReplica2012EventDetails() (*HyperVReplica2012EventDetails, bool) {
return &hvr2ed, true
}
// AsHyperVReplica2012R2EventDetails is the EventProviderSpecificDetails implementation for HyperVReplica2012EventDetails.
func (hvr2ed HyperVReplica2012EventDetails) AsHyperVReplica2012R2EventDetails() (*HyperVReplica2012R2EventDetails, bool) {
return nil, false
}
// AsHyperVReplicaAzureEventDetails is the EventProviderSpecificDetails implementation for HyperVReplica2012EventDetails.
func (hvr2ed HyperVReplica2012EventDetails) AsHyperVReplicaAzureEventDetails() (*HyperVReplicaAzureEventDetails, bool) {
return nil, false
}
// AsA2AEventDetails is the EventProviderSpecificDetails implementation for HyperVReplica2012EventDetails.
func (hvr2ed HyperVReplica2012EventDetails) AsA2AEventDetails() (*A2AEventDetails, bool) {
return nil, false
}
// AsInMageAzureV2EventDetails is the EventProviderSpecificDetails implementation for HyperVReplica2012EventDetails.
func (hvr2ed HyperVReplica2012EventDetails) AsInMageAzureV2EventDetails() (*InMageAzureV2EventDetails, bool) {
return nil, false
}
// HyperVReplica2012R2EventDetails is model class for event details of a HyperVReplica blue E2E event.
type HyperVReplica2012R2EventDetails struct {
InstanceType InstanceType `json:"instanceType,omitempty"`
ContainerName *string `json:"containerName,omitempty"`
FabricName *string `json:"fabricName,omitempty"`
RemoteContainerName *string `json:"remoteContainerName,omitempty"`
RemoteFabricName *string `json:"remoteFabricName,omitempty"`
}
// MarshalJSON is the custom marshaler for HyperVReplica2012R2EventDetails.
func (hvr2ed HyperVReplica2012R2EventDetails) MarshalJSON() ([]byte, error) {
hvr2ed.InstanceType = InstanceTypeHyperVReplica2012R2
type Alias HyperVReplica2012R2EventDetails
return json.Marshal(&struct {
Alias
}{
Alias: (Alias)(hvr2ed),
})
}
// AsHyperVReplicaBaseEventDetails is the EventProviderSpecificDetails implementation for HyperVReplica2012R2EventDetails.
func (hvr2ed HyperVReplica2012R2EventDetails) AsHyperVReplicaBaseEventDetails() (*HyperVReplicaBaseEventDetails, bool) {
return nil, false
}
// AsHyperVReplica2012EventDetails is the EventProviderSpecificDetails implementation for HyperVReplica2012R2EventDetails.
func (hvr2ed HyperVReplica2012R2EventDetails) AsHyperVReplica2012EventDetails() (*HyperVReplica2012EventDetails, bool) {
return nil, false
}
// AsHyperVReplica2012R2EventDetails is the EventProviderSpecificDetails implementation for HyperVReplica2012R2EventDetails.
func (hvr2ed HyperVReplica2012R2EventDetails) AsHyperVReplica2012R2EventDetails() (*HyperVReplica2012R2EventDetails, bool) {
return &hvr2ed, true
}
// AsHyperVReplicaAzureEventDetails is the EventProviderSpecificDetails implementation for HyperVReplica2012R2EventDetails.
func (hvr2ed HyperVReplica2012R2EventDetails) AsHyperVReplicaAzureEventDetails() (*HyperVReplicaAzureEventDetails, bool) {
return nil, false
}
// AsA2AEventDetails is the EventProviderSpecificDetails implementation for HyperVReplica2012R2EventDetails.
func (hvr2ed HyperVReplica2012R2EventDetails) AsA2AEventDetails() (*A2AEventDetails, bool) {
return nil, false
}
// AsInMageAzureV2EventDetails is the EventProviderSpecificDetails implementation for HyperVReplica2012R2EventDetails.
func (hvr2ed HyperVReplica2012R2EventDetails) AsInMageAzureV2EventDetails() (*InMageAzureV2EventDetails, bool) {
return nil, false
}
// HyperVReplicaAzureApplyRecoveryPointInput is applyRecoveryPoint input specific to HyperVReplicaAzure provider.
type HyperVReplicaAzureApplyRecoveryPointInput struct {
InstanceType InstanceType `json:"instanceType,omitempty"`
VaultLocation *string `json:"vaultLocation,omitempty"`
PrimaryKekCertificatePfx *string `json:"primaryKekCertificatePfx,omitempty"`
SecondaryKekCertificatePfx *string `json:"secondaryKekCertificatePfx,omitempty"`
}
// MarshalJSON is the custom marshaler for HyperVReplicaAzureApplyRecoveryPointInput.
func (hvraarpi HyperVReplicaAzureApplyRecoveryPointInput) MarshalJSON() ([]byte, error) {
hvraarpi.InstanceType = InstanceTypeHyperVReplicaAzure
type Alias HyperVReplicaAzureApplyRecoveryPointInput
return json.Marshal(&struct {
Alias
}{
Alias: (Alias)(hvraarpi),
})
}
// AsHyperVReplicaAzureApplyRecoveryPointInput is the ApplyRecoveryPointProviderSpecificInput implementation for HyperVReplicaAzureApplyRecoveryPointInput.
func (hvraarpi HyperVReplicaAzureApplyRecoveryPointInput) AsHyperVReplicaAzureApplyRecoveryPointInput() (*HyperVReplicaAzureApplyRecoveryPointInput, bool) {
return &hvraarpi, true
}
// AsInMageAzureV2ApplyRecoveryPointInput is the ApplyRecoveryPointProviderSpecificInput implementation for HyperVReplicaAzureApplyRecoveryPointInput.
func (hvraarpi HyperVReplicaAzureApplyRecoveryPointInput) AsInMageAzureV2ApplyRecoveryPointInput() (*InMageAzureV2ApplyRecoveryPointInput, bool) {
return nil, false
}
// AsA2AApplyRecoveryPointInput is the ApplyRecoveryPointProviderSpecificInput implementation for HyperVReplicaAzureApplyRecoveryPointInput.
func (hvraarpi HyperVReplicaAzureApplyRecoveryPointInput) AsA2AApplyRecoveryPointInput() (*A2AApplyRecoveryPointInput, bool) {
return nil, false
}
// HyperVReplicaAzureEnableProtectionInput is azure specific enable protection input.
type HyperVReplicaAzureEnableProtectionInput struct {
InstanceType InstanceTypeEnableProtectionProviderSpecificInput `json:"instanceType,omitempty"`
HvHostVMID *string `json:"hvHostVmId,omitempty"`
VMName *string `json:"vmName,omitempty"`
OsType *string `json:"osType,omitempty"`
VhdID *string `json:"vhdId,omitempty"`
TargetStorageAccountID *string `json:"targetStorageAccountId,omitempty"`
TargetAzureNetworkID *string `json:"targetAzureNetworkId,omitempty"`
TargetAzureSubnetID *string `json:"targetAzureSubnetId,omitempty"`
EnableRDPOnTargetOption *string `json:"enableRDPOnTargetOption,omitempty"`
TargetAzureVMName *string `json:"targetAzureVmName,omitempty"`
LogStorageAccountID *string `json:"logStorageAccountId,omitempty"`
DisksToInclude *[]string `json:"disksToInclude,omitempty"`
TargetAzureV1ResourceGroupID *string `json:"targetAzureV1ResourceGroupId,omitempty"`
TargetAzureV2ResourceGroupID *string `json:"targetAzureV2ResourceGroupId,omitempty"`
UseManagedDisks *string `json:"useManagedDisks,omitempty"`
}
// MarshalJSON is the custom marshaler for HyperVReplicaAzureEnableProtectionInput.
func (hvraepi HyperVReplicaAzureEnableProtectionInput) MarshalJSON() ([]byte, error) {
hvraepi.InstanceType = InstanceTypeEnableProtectionProviderSpecificInputInstanceTypeHyperVReplicaAzure
type Alias HyperVReplicaAzureEnableProtectionInput
return json.Marshal(&struct {
Alias
}{
Alias: (Alias)(hvraepi),
})
}
// AsHyperVReplicaAzureEnableProtectionInput is the EnableProtectionProviderSpecificInput implementation for HyperVReplicaAzureEnableProtectionInput.
func (hvraepi HyperVReplicaAzureEnableProtectionInput) AsHyperVReplicaAzureEnableProtectionInput() (*HyperVReplicaAzureEnableProtectionInput, bool) {
return &hvraepi, true
}
// AsSanEnableProtectionInput is the EnableProtectionProviderSpecificInput implementation for HyperVReplicaAzureEnableProtectionInput.
func (hvraepi HyperVReplicaAzureEnableProtectionInput) AsSanEnableProtectionInput() (*SanEnableProtectionInput, bool) {
return nil, false
}
// AsInMageAzureV2EnableProtectionInput is the EnableProtectionProviderSpecificInput implementation for HyperVReplicaAzureEnableProtectionInput.
func (hvraepi HyperVReplicaAzureEnableProtectionInput) AsInMageAzureV2EnableProtectionInput() (*InMageAzureV2EnableProtectionInput, bool) {
return nil, false
}
// AsInMageEnableProtectionInput is the EnableProtectionProviderSpecificInput implementation for HyperVReplicaAzureEnableProtectionInput.
func (hvraepi HyperVReplicaAzureEnableProtectionInput) AsInMageEnableProtectionInput() (*InMageEnableProtectionInput, bool) {
return nil, false
}
// AsA2AEnableProtectionInput is the EnableProtectionProviderSpecificInput implementation for HyperVReplicaAzureEnableProtectionInput.
func (hvraepi HyperVReplicaAzureEnableProtectionInput) AsA2AEnableProtectionInput() (*A2AEnableProtectionInput, bool) {
return nil, false
}
// HyperVReplicaAzureEventDetails is model class for event details of a HyperVReplica E2A event.
type HyperVReplicaAzureEventDetails struct {
InstanceType InstanceType `json:"instanceType,omitempty"`
ContainerName *string `json:"containerName,omitempty"`
FabricName *string `json:"fabricName,omitempty"`
RemoteContainerName *string `json:"remoteContainerName,omitempty"`
}
// MarshalJSON is the custom marshaler for HyperVReplicaAzureEventDetails.
func (hvraed HyperVReplicaAzureEventDetails) MarshalJSON() ([]byte, error) {
hvraed.InstanceType = InstanceTypeHyperVReplicaAzure
type Alias HyperVReplicaAzureEventDetails
return json.Marshal(&struct {
Alias
}{
Alias: (Alias)(hvraed),
})
}
// AsHyperVReplicaBaseEventDetails is the EventProviderSpecificDetails implementation for HyperVReplicaAzureEventDetails.
func (hvraed HyperVReplicaAzureEventDetails) AsHyperVReplicaBaseEventDetails() (*HyperVReplicaBaseEventDetails, bool) {
return nil, false
}
// AsHyperVReplica2012EventDetails is the EventProviderSpecificDetails implementation for HyperVReplicaAzureEventDetails.
func (hvraed HyperVReplicaAzureEventDetails) AsHyperVReplica2012EventDetails() (*HyperVReplica2012EventDetails, bool) {
return nil, false
}
// AsHyperVReplica2012R2EventDetails is the EventProviderSpecificDetails implementation for HyperVReplicaAzureEventDetails.
func (hvraed HyperVReplicaAzureEventDetails) AsHyperVReplica2012R2EventDetails() (*HyperVReplica2012R2EventDetails, bool) {
return nil, false
}
// AsHyperVReplicaAzureEventDetails is the EventProviderSpecificDetails implementation for HyperVReplicaAzureEventDetails.
func (hvraed HyperVReplicaAzureEventDetails) AsHyperVReplicaAzureEventDetails() (*HyperVReplicaAzureEventDetails, bool) {
return &hvraed, true
}
// AsA2AEventDetails is the EventProviderSpecificDetails implementation for HyperVReplicaAzureEventDetails.
func (hvraed HyperVReplicaAzureEventDetails) AsA2AEventDetails() (*A2AEventDetails, bool) {
return nil, false
}
// AsInMageAzureV2EventDetails is the EventProviderSpecificDetails implementation for HyperVReplicaAzureEventDetails.
func (hvraed HyperVReplicaAzureEventDetails) AsInMageAzureV2EventDetails() (*InMageAzureV2EventDetails, bool) {
return nil, false
}
// HyperVReplicaAzureFailbackProviderInput is hvrA provider specific input for failback.
type HyperVReplicaAzureFailbackProviderInput struct {
InstanceType InstanceTypeProviderSpecificFailoverInput `json:"instanceType,omitempty"`
DataSyncOption *string `json:"dataSyncOption,omitempty"`
RecoveryVMCreationOption *string `json:"recoveryVmCreationOption,omitempty"`
ProviderIDForAlternateRecovery *string `json:"providerIdForAlternateRecovery,omitempty"`
}
// MarshalJSON is the custom marshaler for HyperVReplicaAzureFailbackProviderInput.
func (hvrafpi HyperVReplicaAzureFailbackProviderInput) MarshalJSON() ([]byte, error) {
hvrafpi.InstanceType = InstanceTypeProviderSpecificFailoverInputInstanceTypeHyperVReplicaAzureFailback
type Alias HyperVReplicaAzureFailbackProviderInput
return json.Marshal(&struct {
Alias
}{
Alias: (Alias)(hvrafpi),
})
}
// AsHyperVReplicaAzureFailoverProviderInput is the ProviderSpecificFailoverInput implementation for HyperVReplicaAzureFailbackProviderInput.
func (hvrafpi HyperVReplicaAzureFailbackProviderInput) AsHyperVReplicaAzureFailoverProviderInput() (*HyperVReplicaAzureFailoverProviderInput, bool) {
return nil, false
}
// AsHyperVReplicaAzureFailbackProviderInput is the ProviderSpecificFailoverInput implementation for HyperVReplicaAzureFailbackProviderInput.
func (hvrafpi HyperVReplicaAzureFailbackProviderInput) AsHyperVReplicaAzureFailbackProviderInput() (*HyperVReplicaAzureFailbackProviderInput, bool) {
return &hvrafpi, true
}
// AsInMageAzureV2FailoverProviderInput is the ProviderSpecificFailoverInput implementation for HyperVReplicaAzureFailbackProviderInput.
func (hvrafpi HyperVReplicaAzureFailbackProviderInput) AsInMageAzureV2FailoverProviderInput() (*InMageAzureV2FailoverProviderInput, bool) {
return nil, false
}
// AsInMageFailoverProviderInput is the ProviderSpecificFailoverInput implementation for HyperVReplicaAzureFailbackProviderInput.
func (hvrafpi HyperVReplicaAzureFailbackProviderInput) AsInMageFailoverProviderInput() (*InMageFailoverProviderInput, bool) {
return nil, false
}
// AsA2AFailoverProviderInput is the ProviderSpecificFailoverInput implementation for HyperVReplicaAzureFailbackProviderInput.
func (hvrafpi HyperVReplicaAzureFailbackProviderInput) AsA2AFailoverProviderInput() (*A2AFailoverProviderInput, bool) {
return nil, false
}
// HyperVReplicaAzureFailoverProviderInput is hvrA provider specific input for failover.
type HyperVReplicaAzureFailoverProviderInput struct {
InstanceType InstanceTypeProviderSpecificFailoverInput `json:"instanceType,omitempty"`
VaultLocation *string `json:"vaultLocation,omitempty"`
PrimaryKekCertificatePfx *string `json:"primaryKekCertificatePfx,omitempty"`
SecondaryKekCertificatePfx *string `json:"secondaryKekCertificatePfx,omitempty"`
RecoveryPointID *string `json:"recoveryPointId,omitempty"`
}
// MarshalJSON is the custom marshaler for HyperVReplicaAzureFailoverProviderInput.
func (hvrafpi HyperVReplicaAzureFailoverProviderInput) MarshalJSON() ([]byte, error) {
hvrafpi.InstanceType = InstanceTypeProviderSpecificFailoverInputInstanceTypeHyperVReplicaAzure
type Alias HyperVReplicaAzureFailoverProviderInput
return json.Marshal(&struct {
Alias
}{
Alias: (Alias)(hvrafpi),
})
}
// AsHyperVReplicaAzureFailoverProviderInput is the ProviderSpecificFailoverInput implementation for HyperVReplicaAzureFailoverProviderInput.
func (hvrafpi HyperVReplicaAzureFailoverProviderInput) AsHyperVReplicaAzureFailoverProviderInput() (*HyperVReplicaAzureFailoverProviderInput, bool) {
return &hvrafpi, true
}
// AsHyperVReplicaAzureFailbackProviderInput is the ProviderSpecificFailoverInput implementation for HyperVReplicaAzureFailoverProviderInput.
func (hvrafpi HyperVReplicaAzureFailoverProviderInput) AsHyperVReplicaAzureFailbackProviderInput() (*HyperVReplicaAzureFailbackProviderInput, bool) {
return nil, false
}
// AsInMageAzureV2FailoverProviderInput is the ProviderSpecificFailoverInput implementation for HyperVReplicaAzureFailoverProviderInput.
func (hvrafpi HyperVReplicaAzureFailoverProviderInput) AsInMageAzureV2FailoverProviderInput() (*InMageAzureV2FailoverProviderInput, bool) {
return nil, false
}
// AsInMageFailoverProviderInput is the ProviderSpecificFailoverInput implementation for HyperVReplicaAzureFailoverProviderInput.
func (hvrafpi HyperVReplicaAzureFailoverProviderInput) AsInMageFailoverProviderInput() (*InMageFailoverProviderInput, bool) {
return nil, false
}
// AsA2AFailoverProviderInput is the ProviderSpecificFailoverInput implementation for HyperVReplicaAzureFailoverProviderInput.
func (hvrafpi HyperVReplicaAzureFailoverProviderInput) AsA2AFailoverProviderInput() (*A2AFailoverProviderInput, bool) {
return nil, false
}
// HyperVReplicaAzurePolicyDetails is hyper-V Replica Azure specific protection profile details.
type HyperVReplicaAzurePolicyDetails struct {
InstanceType InstanceTypePolicyProviderSpecificDetails `json:"instanceType,omitempty"`
RecoveryPointHistoryDurationInHours *int32 `json:"recoveryPointHistoryDurationInHours,omitempty"`
ApplicationConsistentSnapshotFrequencyInHours *int32 `json:"applicationConsistentSnapshotFrequencyInHours,omitempty"`
ReplicationInterval *int32 `json:"replicationInterval,omitempty"`
OnlineReplicationStartTime *string `json:"onlineReplicationStartTime,omitempty"`
Encryption *string `json:"encryption,omitempty"`
ActiveStorageAccountID *string `json:"activeStorageAccountId,omitempty"`
}
// MarshalJSON is the custom marshaler for HyperVReplicaAzurePolicyDetails.
func (hvrapd HyperVReplicaAzurePolicyDetails) MarshalJSON() ([]byte, error) {
hvrapd.InstanceType = InstanceTypePolicyProviderSpecificDetailsInstanceTypeHyperVReplicaAzure
type Alias HyperVReplicaAzurePolicyDetails
return json.Marshal(&struct {
Alias
}{
Alias: (Alias)(hvrapd),
})
}
// AsHyperVReplicaAzurePolicyDetails is the PolicyProviderSpecificDetails implementation for HyperVReplicaAzurePolicyDetails.
func (hvrapd HyperVReplicaAzurePolicyDetails) AsHyperVReplicaAzurePolicyDetails() (*HyperVReplicaAzurePolicyDetails, bool) {
return &hvrapd, true
}
// AsHyperVReplicaBasePolicyDetails is the PolicyProviderSpecificDetails implementation for HyperVReplicaAzurePolicyDetails.
func (hvrapd HyperVReplicaAzurePolicyDetails) AsHyperVReplicaBasePolicyDetails() (*HyperVReplicaBasePolicyDetails, bool) {
return nil, false
}
// AsHyperVReplicaPolicyDetails is the PolicyProviderSpecificDetails implementation for HyperVReplicaAzurePolicyDetails.
func (hvrapd HyperVReplicaAzurePolicyDetails) AsHyperVReplicaPolicyDetails() (*HyperVReplicaPolicyDetails, bool) {
return nil, false
}
// AsHyperVReplicaBluePolicyDetails is the PolicyProviderSpecificDetails implementation for HyperVReplicaAzurePolicyDetails.
func (hvrapd HyperVReplicaAzurePolicyDetails) AsHyperVReplicaBluePolicyDetails() (*HyperVReplicaBluePolicyDetails, bool) {
return nil, false
}
// AsInMageBasePolicyDetails is the PolicyProviderSpecificDetails implementation for HyperVReplicaAzurePolicyDetails.
func (hvrapd HyperVReplicaAzurePolicyDetails) AsInMageBasePolicyDetails() (*InMageBasePolicyDetails, bool) {
return nil, false
}
// AsInMageAzureV2PolicyDetails is the PolicyProviderSpecificDetails implementation for HyperVReplicaAzurePolicyDetails.
func (hvrapd HyperVReplicaAzurePolicyDetails) AsInMageAzureV2PolicyDetails() (*InMageAzureV2PolicyDetails, bool) {
return nil, false
}
// AsInMagePolicyDetails is the PolicyProviderSpecificDetails implementation for HyperVReplicaAzurePolicyDetails.
func (hvrapd HyperVReplicaAzurePolicyDetails) AsInMagePolicyDetails() (*InMagePolicyDetails, bool) {
return nil, false
}
// AsA2APolicyDetails is the PolicyProviderSpecificDetails implementation for HyperVReplicaAzurePolicyDetails.
func (hvrapd HyperVReplicaAzurePolicyDetails) AsA2APolicyDetails() (*A2APolicyDetails, bool) {
return nil, false
}
// AsRcmAzureMigrationPolicyDetails is the PolicyProviderSpecificDetails implementation for HyperVReplicaAzurePolicyDetails.
func (hvrapd HyperVReplicaAzurePolicyDetails) AsRcmAzureMigrationPolicyDetails() (*RcmAzureMigrationPolicyDetails, bool) {
return nil, false
}
// AsVmwareCbtPolicyDetails is the PolicyProviderSpecificDetails implementation for HyperVReplicaAzurePolicyDetails.
func (hvrapd HyperVReplicaAzurePolicyDetails) AsVmwareCbtPolicyDetails() (*VmwareCbtPolicyDetails, bool) {
return nil, false
}
// HyperVReplicaAzurePolicyInput is hyper-V Replica Azure specific input for creating a protection profile.
type HyperVReplicaAzurePolicyInput struct {
InstanceType InstanceTypePolicyProviderSpecificInput `json:"instanceType,omitempty"`
RecoveryPointHistoryDuration *int32 `json:"recoveryPointHistoryDuration,omitempty"`
ApplicationConsistentSnapshotFrequencyInHours *int32 `json:"applicationConsistentSnapshotFrequencyInHours,omitempty"`
ReplicationInterval *int32 `json:"replicationInterval,omitempty"`
OnlineReplicationStartTime *string `json:"onlineReplicationStartTime,omitempty"`
Encryption *string `json:"encryption,omitempty"`
StorageAccounts *[]string `json:"storageAccounts,omitempty"`
}
// MarshalJSON is the custom marshaler for HyperVReplicaAzurePolicyInput.
func (hvrapi HyperVReplicaAzurePolicyInput) MarshalJSON() ([]byte, error) {
hvrapi.InstanceType = InstanceTypePolicyProviderSpecificInputInstanceTypeHyperVReplicaAzure
type Alias HyperVReplicaAzurePolicyInput
return json.Marshal(&struct {
Alias
}{
Alias: (Alias)(hvrapi),
})
}
// AsHyperVReplicaAzurePolicyInput is the PolicyProviderSpecificInput implementation for HyperVReplicaAzurePolicyInput.
func (hvrapi HyperVReplicaAzurePolicyInput) AsHyperVReplicaAzurePolicyInput() (*HyperVReplicaAzurePolicyInput, bool) {
return &hvrapi, true
}
// AsHyperVReplicaPolicyInput is the PolicyProviderSpecificInput implementation for HyperVReplicaAzurePolicyInput.
func (hvrapi HyperVReplicaAzurePolicyInput) AsHyperVReplicaPolicyInput() (*HyperVReplicaPolicyInput, bool) {
return nil, false
}
// AsHyperVReplicaBluePolicyInput is the PolicyProviderSpecificInput implementation for HyperVReplicaAzurePolicyInput.
func (hvrapi HyperVReplicaAzurePolicyInput) AsHyperVReplicaBluePolicyInput() (*HyperVReplicaBluePolicyInput, bool) {
return nil, false
}
// AsInMageAzureV2PolicyInput is the PolicyProviderSpecificInput implementation for HyperVReplicaAzurePolicyInput.
func (hvrapi HyperVReplicaAzurePolicyInput) AsInMageAzureV2PolicyInput() (*InMageAzureV2PolicyInput, bool) {
return nil, false
}
// AsInMagePolicyInput is the PolicyProviderSpecificInput implementation for HyperVReplicaAzurePolicyInput.
func (hvrapi HyperVReplicaAzurePolicyInput) AsInMagePolicyInput() (*InMagePolicyInput, bool) {
return nil, false
}
// AsA2APolicyCreationInput is the PolicyProviderSpecificInput implementation for HyperVReplicaAzurePolicyInput.
func (hvrapi HyperVReplicaAzurePolicyInput) AsA2APolicyCreationInput() (*A2APolicyCreationInput, bool) {
return nil, false
}
// AsVMwareCbtPolicyCreationInput is the PolicyProviderSpecificInput implementation for HyperVReplicaAzurePolicyInput.
func (hvrapi HyperVReplicaAzurePolicyInput) AsVMwareCbtPolicyCreationInput() (*VMwareCbtPolicyCreationInput, bool) {
return nil, false
}
// HyperVReplicaAzureReplicationDetails is hyper V Replica Azure provider specific settings.
type HyperVReplicaAzureReplicationDetails struct {
InstanceType InstanceTypeReplicationProviderSpecificSettings `json:"instanceType,omitempty"`
AzureVMDiskDetails *[]AzureVMDiskDetails `json:"azureVMDiskDetails,omitempty"`
RecoveryAzureVMName *string `json:"recoveryAzureVMName,omitempty"`
RecoveryAzureVMSize *string `json:"recoveryAzureVMSize,omitempty"`
RecoveryAzureStorageAccount *string `json:"recoveryAzureStorageAccount,omitempty"`
RecoveryAzureLogStorageAccountID *string `json:"recoveryAzureLogStorageAccountId,omitempty"`
LastReplicatedTime *date.Time `json:"lastReplicatedTime,omitempty"`
VMID *string `json:"vmId,omitempty"`
VMProtectionState *string `json:"vmProtectionState,omitempty"`
VMProtectionStateDescription *string `json:"vmProtectionStateDescription,omitempty"`
InitialReplicationDetails *InitialReplicationDetails `json:"initialReplicationDetails,omitempty"`
VMNics *[]VMNicDetails `json:"vmNics,omitempty"`
SelectedRecoveryAzureNetworkID *string `json:"selectedRecoveryAzureNetworkId,omitempty"`
Encryption *string `json:"encryption,omitempty"`
OSDetails *OSDetails `json:"oSDetails,omitempty"`
SourceVMRAMSizeInMB *int32 `json:"sourceVmRAMSizeInMB,omitempty"`
SourceVMCPUCount *int32 `json:"sourceVmCPUCount,omitempty"`
EnableRDPOnTargetOption *string `json:"enableRDPOnTargetOption,omitempty"`
RecoveryAzureResourceGroupID *string `json:"recoveryAzureResourceGroupId,omitempty"`
RecoveryAvailabilitySetID *string `json:"recoveryAvailabilitySetId,omitempty"`
UseManagedDisks *string `json:"useManagedDisks,omitempty"`
LicenseType *string `json:"licenseType,omitempty"`
}
// MarshalJSON is the custom marshaler for HyperVReplicaAzureReplicationDetails.
func (hvrard HyperVReplicaAzureReplicationDetails) MarshalJSON() ([]byte, error) {
hvrard.InstanceType = InstanceTypeReplicationProviderSpecificSettingsInstanceTypeHyperVReplicaAzure
type Alias HyperVReplicaAzureReplicationDetails
return json.Marshal(&struct {
Alias
}{
Alias: (Alias)(hvrard),
})
}
// AsHyperVReplicaBaseReplicationDetails is the ReplicationProviderSpecificSettings implementation for HyperVReplicaAzureReplicationDetails.
func (hvrard HyperVReplicaAzureReplicationDetails) AsHyperVReplicaBaseReplicationDetails() (*HyperVReplicaBaseReplicationDetails, bool) {
return nil, false
}
// AsHyperVReplicaReplicationDetails is the ReplicationProviderSpecificSettings implementation for HyperVReplicaAzureReplicationDetails.
func (hvrard HyperVReplicaAzureReplicationDetails) AsHyperVReplicaReplicationDetails() (*HyperVReplicaReplicationDetails, bool) {
return nil, false
}
// AsHyperVReplicaBlueReplicationDetails is the ReplicationProviderSpecificSettings implementation for HyperVReplicaAzureReplicationDetails.
func (hvrard HyperVReplicaAzureReplicationDetails) AsHyperVReplicaBlueReplicationDetails() (*HyperVReplicaBlueReplicationDetails, bool) {
return nil, false
}
// AsHyperVReplicaAzureReplicationDetails is the ReplicationProviderSpecificSettings implementation for HyperVReplicaAzureReplicationDetails.
func (hvrard HyperVReplicaAzureReplicationDetails) AsHyperVReplicaAzureReplicationDetails() (*HyperVReplicaAzureReplicationDetails, bool) {
return &hvrard, true
}
// AsInMageAzureV2ReplicationDetails is the ReplicationProviderSpecificSettings implementation for HyperVReplicaAzureReplicationDetails.
func (hvrard HyperVReplicaAzureReplicationDetails) AsInMageAzureV2ReplicationDetails() (*InMageAzureV2ReplicationDetails, bool) {
return nil, false
}
// AsInMageReplicationDetails is the ReplicationProviderSpecificSettings implementation for HyperVReplicaAzureReplicationDetails.
func (hvrard HyperVReplicaAzureReplicationDetails) AsInMageReplicationDetails() (*InMageReplicationDetails, bool) {
return nil, false
}
// AsA2AReplicationDetails is the ReplicationProviderSpecificSettings implementation for HyperVReplicaAzureReplicationDetails.
func (hvrard HyperVReplicaAzureReplicationDetails) AsA2AReplicationDetails() (*A2AReplicationDetails, bool) {
return nil, false
}
// HyperVReplicaAzureReprotectInput is azure specific reprotect input.
type HyperVReplicaAzureReprotectInput struct {
InstanceType InstanceTypeReverseReplicationProviderSpecificInput `json:"instanceType,omitempty"`
HvHostVMID *string `json:"hvHostVmId,omitempty"`
VMName *string `json:"vmName,omitempty"`
OsType *string `json:"osType,omitempty"`
VHDID *string `json:"vHDId,omitempty"`
StorageAccountID *string `json:"storageAccountId,omitempty"`
LogStorageAccountID *string `json:"logStorageAccountId,omitempty"`
}
// MarshalJSON is the custom marshaler for HyperVReplicaAzureReprotectInput.
func (hvrari HyperVReplicaAzureReprotectInput) MarshalJSON() ([]byte, error) {
hvrari.InstanceType = InstanceTypeReverseReplicationProviderSpecificInputInstanceTypeHyperVReplicaAzure
type Alias HyperVReplicaAzureReprotectInput
return json.Marshal(&struct {
Alias
}{
Alias: (Alias)(hvrari),
})
}
// AsHyperVReplicaAzureReprotectInput is the ReverseReplicationProviderSpecificInput implementation for HyperVReplicaAzureReprotectInput.
func (hvrari HyperVReplicaAzureReprotectInput) AsHyperVReplicaAzureReprotectInput() (*HyperVReplicaAzureReprotectInput, bool) {
return &hvrari, true
}
// AsInMageAzureV2ReprotectInput is the ReverseReplicationProviderSpecificInput implementation for HyperVReplicaAzureReprotectInput.
func (hvrari HyperVReplicaAzureReprotectInput) AsInMageAzureV2ReprotectInput() (*InMageAzureV2ReprotectInput, bool) {
return nil, false
}
// AsInMageReprotectInput is the ReverseReplicationProviderSpecificInput implementation for HyperVReplicaAzureReprotectInput.
func (hvrari HyperVReplicaAzureReprotectInput) AsInMageReprotectInput() (*InMageReprotectInput, bool) {
return nil, false
}
// AsA2AReprotectInput is the ReverseReplicationProviderSpecificInput implementation for HyperVReplicaAzureReprotectInput.
func (hvrari HyperVReplicaAzureReprotectInput) AsA2AReprotectInput() (*A2AReprotectInput, bool) {
return nil, false
}
// HyperVReplicaAzureUpdateReplicationProtectedItemInput is hyperV replica Azure input to update replication protected
// item.
type HyperVReplicaAzureUpdateReplicationProtectedItemInput struct {
InstanceType InstanceType `json:"instanceType,omitempty"`
RecoveryAzureV1ResourceGroupID *string `json:"recoveryAzureV1ResourceGroupId,omitempty"`
RecoveryAzureV2ResourceGroupID *string `json:"recoveryAzureV2ResourceGroupId,omitempty"`
UseManagedDisks *string `json:"useManagedDisks,omitempty"`
}
// MarshalJSON is the custom marshaler for HyperVReplicaAzureUpdateReplicationProtectedItemInput.
func (hvraurpii HyperVReplicaAzureUpdateReplicationProtectedItemInput) MarshalJSON() ([]byte, error) {
hvraurpii.InstanceType = InstanceTypeHyperVReplicaAzure
type Alias HyperVReplicaAzureUpdateReplicationProtectedItemInput
return json.Marshal(&struct {
Alias
}{
Alias: (Alias)(hvraurpii),
})
}
// AsHyperVReplicaAzureUpdateReplicationProtectedItemInput is the UpdateReplicationProtectedItemProviderInput implementation for HyperVReplicaAzureUpdateReplicationProtectedItemInput.
func (hvraurpii HyperVReplicaAzureUpdateReplicationProtectedItemInput) AsHyperVReplicaAzureUpdateReplicationProtectedItemInput() (*HyperVReplicaAzureUpdateReplicationProtectedItemInput, bool) {
return &hvraurpii, true
}
// AsInMageAzureV2UpdateReplicationProtectedItemInput is the UpdateReplicationProtectedItemProviderInput implementation for HyperVReplicaAzureUpdateReplicationProtectedItemInput.
func (hvraurpii HyperVReplicaAzureUpdateReplicationProtectedItemInput) AsInMageAzureV2UpdateReplicationProtectedItemInput() (*InMageAzureV2UpdateReplicationProtectedItemInput, bool) {
return nil, false
}
// AsA2AUpdateReplicationProtectedItemInput is the UpdateReplicationProtectedItemProviderInput implementation for HyperVReplicaAzureUpdateReplicationProtectedItemInput.
func (hvraurpii HyperVReplicaAzureUpdateReplicationProtectedItemInput) AsA2AUpdateReplicationProtectedItemInput() (*A2AUpdateReplicationProtectedItemInput, bool) {
return nil, false
}
// HyperVReplicaBaseEventDetails is abstract model class for event details of a HyperVReplica E2E event.
type HyperVReplicaBaseEventDetails struct {
InstanceType InstanceType `json:"instanceType,omitempty"`
ContainerName *string `json:"containerName,omitempty"`
FabricName *string `json:"fabricName,omitempty"`
RemoteContainerName *string `json:"remoteContainerName,omitempty"`
RemoteFabricName *string `json:"remoteFabricName,omitempty"`
}
// MarshalJSON is the custom marshaler for HyperVReplicaBaseEventDetails.
func (hvrbed HyperVReplicaBaseEventDetails) MarshalJSON() ([]byte, error) {
hvrbed.InstanceType = InstanceTypeHyperVReplicaBaseEventDetails
type Alias HyperVReplicaBaseEventDetails
return json.Marshal(&struct {
Alias
}{
Alias: (Alias)(hvrbed),
})
}
// AsHyperVReplicaBaseEventDetails is the EventProviderSpecificDetails implementation for HyperVReplicaBaseEventDetails.
func (hvrbed HyperVReplicaBaseEventDetails) AsHyperVReplicaBaseEventDetails() (*HyperVReplicaBaseEventDetails, bool) {
return &hvrbed, true
}
// AsHyperVReplica2012EventDetails is the EventProviderSpecificDetails implementation for HyperVReplicaBaseEventDetails.
func (hvrbed HyperVReplicaBaseEventDetails) AsHyperVReplica2012EventDetails() (*HyperVReplica2012EventDetails, bool) {
return nil, false
}
// AsHyperVReplica2012R2EventDetails is the EventProviderSpecificDetails implementation for HyperVReplicaBaseEventDetails.
func (hvrbed HyperVReplicaBaseEventDetails) AsHyperVReplica2012R2EventDetails() (*HyperVReplica2012R2EventDetails, bool) {
return nil, false
}
// AsHyperVReplicaAzureEventDetails is the EventProviderSpecificDetails implementation for HyperVReplicaBaseEventDetails.
func (hvrbed HyperVReplicaBaseEventDetails) AsHyperVReplicaAzureEventDetails() (*HyperVReplicaAzureEventDetails, bool) {
return nil, false
}
// AsA2AEventDetails is the EventProviderSpecificDetails implementation for HyperVReplicaBaseEventDetails.
func (hvrbed HyperVReplicaBaseEventDetails) AsA2AEventDetails() (*A2AEventDetails, bool) {
return nil, false
}
// AsInMageAzureV2EventDetails is the EventProviderSpecificDetails implementation for HyperVReplicaBaseEventDetails.
func (hvrbed HyperVReplicaBaseEventDetails) AsInMageAzureV2EventDetails() (*InMageAzureV2EventDetails, bool) {
return nil, false
}
// HyperVReplicaBasePolicyDetails is base class for HyperVReplica policy details.
type HyperVReplicaBasePolicyDetails struct {
InstanceType InstanceTypePolicyProviderSpecificDetails `json:"instanceType,omitempty"`
RecoveryPoints *int32 `json:"recoveryPoints,omitempty"`
ApplicationConsistentSnapshotFrequencyInHours *int32 `json:"applicationConsistentSnapshotFrequencyInHours,omitempty"`
Compression *string `json:"compression,omitempty"`
InitialReplicationMethod *string `json:"initialReplicationMethod,omitempty"`
OnlineReplicationStartTime *string `json:"onlineReplicationStartTime,omitempty"`
OfflineReplicationImportPath *string `json:"offlineReplicationImportPath,omitempty"`
OfflineReplicationExportPath *string `json:"offlineReplicationExportPath,omitempty"`
ReplicationPort *int32 `json:"replicationPort,omitempty"`
AllowedAuthenticationType *int32 `json:"allowedAuthenticationType,omitempty"`
ReplicaDeletionOption *string `json:"replicaDeletionOption,omitempty"`
}
// MarshalJSON is the custom marshaler for HyperVReplicaBasePolicyDetails.
func (hvrbpd HyperVReplicaBasePolicyDetails) MarshalJSON() ([]byte, error) {
hvrbpd.InstanceType = InstanceTypePolicyProviderSpecificDetailsInstanceTypeHyperVReplicaBasePolicyDetails
type Alias HyperVReplicaBasePolicyDetails
return json.Marshal(&struct {
Alias
}{
Alias: (Alias)(hvrbpd),
})
}
// AsHyperVReplicaAzurePolicyDetails is the PolicyProviderSpecificDetails implementation for HyperVReplicaBasePolicyDetails.
func (hvrbpd HyperVReplicaBasePolicyDetails) AsHyperVReplicaAzurePolicyDetails() (*HyperVReplicaAzurePolicyDetails, bool) {
return nil, false
}
// AsHyperVReplicaBasePolicyDetails is the PolicyProviderSpecificDetails implementation for HyperVReplicaBasePolicyDetails.
func (hvrbpd HyperVReplicaBasePolicyDetails) AsHyperVReplicaBasePolicyDetails() (*HyperVReplicaBasePolicyDetails, bool) {
return &hvrbpd, true
}
// AsHyperVReplicaPolicyDetails is the PolicyProviderSpecificDetails implementation for HyperVReplicaBasePolicyDetails.
func (hvrbpd HyperVReplicaBasePolicyDetails) AsHyperVReplicaPolicyDetails() (*HyperVReplicaPolicyDetails, bool) {
return nil, false
}
// AsHyperVReplicaBluePolicyDetails is the PolicyProviderSpecificDetails implementation for HyperVReplicaBasePolicyDetails.
func (hvrbpd HyperVReplicaBasePolicyDetails) AsHyperVReplicaBluePolicyDetails() (*HyperVReplicaBluePolicyDetails, bool) {
return nil, false
}
// AsInMageBasePolicyDetails is the PolicyProviderSpecificDetails implementation for HyperVReplicaBasePolicyDetails.
func (hvrbpd HyperVReplicaBasePolicyDetails) AsInMageBasePolicyDetails() (*InMageBasePolicyDetails, bool) {
return nil, false
}
// AsInMageAzureV2PolicyDetails is the PolicyProviderSpecificDetails implementation for HyperVReplicaBasePolicyDetails.
func (hvrbpd HyperVReplicaBasePolicyDetails) AsInMageAzureV2PolicyDetails() (*InMageAzureV2PolicyDetails, bool) {
return nil, false
}
// AsInMagePolicyDetails is the PolicyProviderSpecificDetails implementation for HyperVReplicaBasePolicyDetails.
func (hvrbpd HyperVReplicaBasePolicyDetails) AsInMagePolicyDetails() (*InMagePolicyDetails, bool) {
return nil, false
}
// AsA2APolicyDetails is the PolicyProviderSpecificDetails implementation for HyperVReplicaBasePolicyDetails.
func (hvrbpd HyperVReplicaBasePolicyDetails) AsA2APolicyDetails() (*A2APolicyDetails, bool) {
return nil, false
}
// AsRcmAzureMigrationPolicyDetails is the PolicyProviderSpecificDetails implementation for HyperVReplicaBasePolicyDetails.
func (hvrbpd HyperVReplicaBasePolicyDetails) AsRcmAzureMigrationPolicyDetails() (*RcmAzureMigrationPolicyDetails, bool) {
return nil, false
}
// AsVmwareCbtPolicyDetails is the PolicyProviderSpecificDetails implementation for HyperVReplicaBasePolicyDetails.
func (hvrbpd HyperVReplicaBasePolicyDetails) AsVmwareCbtPolicyDetails() (*VmwareCbtPolicyDetails, bool) {
return nil, false
}
// HyperVReplicaBaseReplicationDetails is hyper V replica provider specific settings base class.
type HyperVReplicaBaseReplicationDetails struct {
InstanceType InstanceTypeReplicationProviderSpecificSettings `json:"instanceType,omitempty"`
LastReplicatedTime *date.Time `json:"lastReplicatedTime,omitempty"`
VMNics *[]VMNicDetails `json:"vmNics,omitempty"`
VMID *string `json:"vmId,omitempty"`
VMProtectionState *string `json:"vmProtectionState,omitempty"`
VMProtectionStateDescription *string `json:"vmProtectionStateDescription,omitempty"`
InitialReplicationDetails *InitialReplicationDetails `json:"initialReplicationDetails,omitempty"`
VMDiskDetails *[]DiskDetails `json:"vMDiskDetails,omitempty"`
}
// MarshalJSON is the custom marshaler for HyperVReplicaBaseReplicationDetails.
func (hvrbrd HyperVReplicaBaseReplicationDetails) MarshalJSON() ([]byte, error) {
hvrbrd.InstanceType = InstanceTypeReplicationProviderSpecificSettingsInstanceTypeHyperVReplicaBaseReplicationDetails
type Alias HyperVReplicaBaseReplicationDetails
return json.Marshal(&struct {
Alias
}{
Alias: (Alias)(hvrbrd),
})
}
// AsHyperVReplicaBaseReplicationDetails is the ReplicationProviderSpecificSettings implementation for HyperVReplicaBaseReplicationDetails.
func (hvrbrd HyperVReplicaBaseReplicationDetails) AsHyperVReplicaBaseReplicationDetails() (*HyperVReplicaBaseReplicationDetails, bool) {
return &hvrbrd, true
}
// AsHyperVReplicaReplicationDetails is the ReplicationProviderSpecificSettings implementation for HyperVReplicaBaseReplicationDetails.
func (hvrbrd HyperVReplicaBaseReplicationDetails) AsHyperVReplicaReplicationDetails() (*HyperVReplicaReplicationDetails, bool) {
return nil, false
}
// AsHyperVReplicaBlueReplicationDetails is the ReplicationProviderSpecificSettings implementation for HyperVReplicaBaseReplicationDetails.
func (hvrbrd HyperVReplicaBaseReplicationDetails) AsHyperVReplicaBlueReplicationDetails() (*HyperVReplicaBlueReplicationDetails, bool) {
return nil, false
}
// AsHyperVReplicaAzureReplicationDetails is the ReplicationProviderSpecificSettings implementation for HyperVReplicaBaseReplicationDetails.
func (hvrbrd HyperVReplicaBaseReplicationDetails) AsHyperVReplicaAzureReplicationDetails() (*HyperVReplicaAzureReplicationDetails, bool) {
return nil, false
}
// AsInMageAzureV2ReplicationDetails is the ReplicationProviderSpecificSettings implementation for HyperVReplicaBaseReplicationDetails.
func (hvrbrd HyperVReplicaBaseReplicationDetails) AsInMageAzureV2ReplicationDetails() (*InMageAzureV2ReplicationDetails, bool) {
return nil, false
}
// AsInMageReplicationDetails is the ReplicationProviderSpecificSettings implementation for HyperVReplicaBaseReplicationDetails.
func (hvrbrd HyperVReplicaBaseReplicationDetails) AsInMageReplicationDetails() (*InMageReplicationDetails, bool) {
return nil, false
}
// AsA2AReplicationDetails is the ReplicationProviderSpecificSettings implementation for HyperVReplicaBaseReplicationDetails.
func (hvrbrd HyperVReplicaBaseReplicationDetails) AsA2AReplicationDetails() (*A2AReplicationDetails, bool) {
return nil, false
}
// HyperVReplicaBluePolicyDetails is hyper-V Replica Blue specific protection profile details.
type HyperVReplicaBluePolicyDetails struct {
InstanceType InstanceTypePolicyProviderSpecificDetails `json:"instanceType,omitempty"`
ReplicationFrequencyInSeconds *int32 `json:"replicationFrequencyInSeconds,omitempty"`
RecoveryPoints *int32 `json:"recoveryPoints,omitempty"`
ApplicationConsistentSnapshotFrequencyInHours *int32 `json:"applicationConsistentSnapshotFrequencyInHours,omitempty"`
Compression *string `json:"compression,omitempty"`
InitialReplicationMethod *string `json:"initialReplicationMethod,omitempty"`
OnlineReplicationStartTime *string `json:"onlineReplicationStartTime,omitempty"`
OfflineReplicationImportPath *string `json:"offlineReplicationImportPath,omitempty"`
OfflineReplicationExportPath *string `json:"offlineReplicationExportPath,omitempty"`
ReplicationPort *int32 `json:"replicationPort,omitempty"`
AllowedAuthenticationType *int32 `json:"allowedAuthenticationType,omitempty"`
ReplicaDeletionOption *string `json:"replicaDeletionOption,omitempty"`
}
// MarshalJSON is the custom marshaler for HyperVReplicaBluePolicyDetails.
func (hvrbpd HyperVReplicaBluePolicyDetails) MarshalJSON() ([]byte, error) {
hvrbpd.InstanceType = InstanceTypePolicyProviderSpecificDetailsInstanceTypeHyperVReplica2012R2
type Alias HyperVReplicaBluePolicyDetails
return json.Marshal(&struct {
Alias
}{
Alias: (Alias)(hvrbpd),
})
}
// AsHyperVReplicaAzurePolicyDetails is the PolicyProviderSpecificDetails implementation for HyperVReplicaBluePolicyDetails.
func (hvrbpd HyperVReplicaBluePolicyDetails) AsHyperVReplicaAzurePolicyDetails() (*HyperVReplicaAzurePolicyDetails, bool) {
return nil, false
}
// AsHyperVReplicaBasePolicyDetails is the PolicyProviderSpecificDetails implementation for HyperVReplicaBluePolicyDetails.
func (hvrbpd HyperVReplicaBluePolicyDetails) AsHyperVReplicaBasePolicyDetails() (*HyperVReplicaBasePolicyDetails, bool) {
return nil, false
}
// AsHyperVReplicaPolicyDetails is the PolicyProviderSpecificDetails implementation for HyperVReplicaBluePolicyDetails.
func (hvrbpd HyperVReplicaBluePolicyDetails) AsHyperVReplicaPolicyDetails() (*HyperVReplicaPolicyDetails, bool) {
return nil, false
}
// AsHyperVReplicaBluePolicyDetails is the PolicyProviderSpecificDetails implementation for HyperVReplicaBluePolicyDetails.
func (hvrbpd HyperVReplicaBluePolicyDetails) AsHyperVReplicaBluePolicyDetails() (*HyperVReplicaBluePolicyDetails, bool) {
return &hvrbpd, true
}
// AsInMageBasePolicyDetails is the PolicyProviderSpecificDetails implementation for HyperVReplicaBluePolicyDetails.
func (hvrbpd HyperVReplicaBluePolicyDetails) AsInMageBasePolicyDetails() (*InMageBasePolicyDetails, bool) {
return nil, false
}
// AsInMageAzureV2PolicyDetails is the PolicyProviderSpecificDetails implementation for HyperVReplicaBluePolicyDetails.
func (hvrbpd HyperVReplicaBluePolicyDetails) AsInMageAzureV2PolicyDetails() (*InMageAzureV2PolicyDetails, bool) {
return nil, false
}
// AsInMagePolicyDetails is the PolicyProviderSpecificDetails implementation for HyperVReplicaBluePolicyDetails.
func (hvrbpd HyperVReplicaBluePolicyDetails) AsInMagePolicyDetails() (*InMagePolicyDetails, bool) {
return nil, false
}
// AsA2APolicyDetails is the PolicyProviderSpecificDetails implementation for HyperVReplicaBluePolicyDetails.
func (hvrbpd HyperVReplicaBluePolicyDetails) AsA2APolicyDetails() (*A2APolicyDetails, bool) {
return nil, false
}
// AsRcmAzureMigrationPolicyDetails is the PolicyProviderSpecificDetails implementation for HyperVReplicaBluePolicyDetails.
func (hvrbpd HyperVReplicaBluePolicyDetails) AsRcmAzureMigrationPolicyDetails() (*RcmAzureMigrationPolicyDetails, bool) {
return nil, false
}
// AsVmwareCbtPolicyDetails is the PolicyProviderSpecificDetails implementation for HyperVReplicaBluePolicyDetails.
func (hvrbpd HyperVReplicaBluePolicyDetails) AsVmwareCbtPolicyDetails() (*VmwareCbtPolicyDetails, bool) {
return nil, false
}
// HyperVReplicaBluePolicyInput is hyperV Replica Blue policy input.
type HyperVReplicaBluePolicyInput struct {
InstanceType InstanceTypePolicyProviderSpecificInput `json:"instanceType,omitempty"`
ReplicationFrequencyInSeconds *int32 `json:"replicationFrequencyInSeconds,omitempty"`
RecoveryPoints *int32 `json:"recoveryPoints,omitempty"`
ApplicationConsistentSnapshotFrequencyInHours *int32 `json:"applicationConsistentSnapshotFrequencyInHours,omitempty"`
Compression *string `json:"compression,omitempty"`
InitialReplicationMethod *string `json:"initialReplicationMethod,omitempty"`
OnlineReplicationStartTime *string `json:"onlineReplicationStartTime,omitempty"`
OfflineReplicationImportPath *string `json:"offlineReplicationImportPath,omitempty"`
OfflineReplicationExportPath *string `json:"offlineReplicationExportPath,omitempty"`
ReplicationPort *int32 `json:"replicationPort,omitempty"`
AllowedAuthenticationType *int32 `json:"allowedAuthenticationType,omitempty"`
ReplicaDeletion *string `json:"replicaDeletion,omitempty"`
}
// MarshalJSON is the custom marshaler for HyperVReplicaBluePolicyInput.
func (hvrbpi HyperVReplicaBluePolicyInput) MarshalJSON() ([]byte, error) {
hvrbpi.InstanceType = InstanceTypePolicyProviderSpecificInputInstanceTypeHyperVReplica2012R2
type Alias HyperVReplicaBluePolicyInput
return json.Marshal(&struct {
Alias
}{
Alias: (Alias)(hvrbpi),
})
}
// AsHyperVReplicaAzurePolicyInput is the PolicyProviderSpecificInput implementation for HyperVReplicaBluePolicyInput.
func (hvrbpi HyperVReplicaBluePolicyInput) AsHyperVReplicaAzurePolicyInput() (*HyperVReplicaAzurePolicyInput, bool) {
return nil, false
}
// AsHyperVReplicaPolicyInput is the PolicyProviderSpecificInput implementation for HyperVReplicaBluePolicyInput.
func (hvrbpi HyperVReplicaBluePolicyInput) AsHyperVReplicaPolicyInput() (*HyperVReplicaPolicyInput, bool) {
return nil, false
}
// AsHyperVReplicaBluePolicyInput is the PolicyProviderSpecificInput implementation for HyperVReplicaBluePolicyInput.
func (hvrbpi HyperVReplicaBluePolicyInput) AsHyperVReplicaBluePolicyInput() (*HyperVReplicaBluePolicyInput, bool) {
return &hvrbpi, true
}
// AsInMageAzureV2PolicyInput is the PolicyProviderSpecificInput implementation for HyperVReplicaBluePolicyInput.
func (hvrbpi HyperVReplicaBluePolicyInput) AsInMageAzureV2PolicyInput() (*InMageAzureV2PolicyInput, bool) {
return nil, false
}
// AsInMagePolicyInput is the PolicyProviderSpecificInput implementation for HyperVReplicaBluePolicyInput.
func (hvrbpi HyperVReplicaBluePolicyInput) AsInMagePolicyInput() (*InMagePolicyInput, bool) {
return nil, false
}
// AsA2APolicyCreationInput is the PolicyProviderSpecificInput implementation for HyperVReplicaBluePolicyInput.
func (hvrbpi HyperVReplicaBluePolicyInput) AsA2APolicyCreationInput() (*A2APolicyCreationInput, bool) {
return nil, false
}
// AsVMwareCbtPolicyCreationInput is the PolicyProviderSpecificInput implementation for HyperVReplicaBluePolicyInput.
func (hvrbpi HyperVReplicaBluePolicyInput) AsVMwareCbtPolicyCreationInput() (*VMwareCbtPolicyCreationInput, bool) {
return nil, false
}
// HyperVReplicaBlueReplicationDetails is hyperV replica 2012 R2 (Blue) replication details.
type HyperVReplicaBlueReplicationDetails struct {
InstanceType InstanceTypeReplicationProviderSpecificSettings `json:"instanceType,omitempty"`
LastReplicatedTime *date.Time `json:"lastReplicatedTime,omitempty"`
VMNics *[]VMNicDetails `json:"vmNics,omitempty"`
VMID *string `json:"vmId,omitempty"`
VMProtectionState *string `json:"vmProtectionState,omitempty"`
VMProtectionStateDescription *string `json:"vmProtectionStateDescription,omitempty"`
InitialReplicationDetails *InitialReplicationDetails `json:"initialReplicationDetails,omitempty"`
VMDiskDetails *[]DiskDetails `json:"vMDiskDetails,omitempty"`
}
// MarshalJSON is the custom marshaler for HyperVReplicaBlueReplicationDetails.
func (hvrbrd HyperVReplicaBlueReplicationDetails) MarshalJSON() ([]byte, error) {
hvrbrd.InstanceType = InstanceTypeReplicationProviderSpecificSettingsInstanceTypeHyperVReplica2012R2
type Alias HyperVReplicaBlueReplicationDetails
return json.Marshal(&struct {
Alias
}{
Alias: (Alias)(hvrbrd),
})
}
// AsHyperVReplicaBaseReplicationDetails is the ReplicationProviderSpecificSettings implementation for HyperVReplicaBlueReplicationDetails.
func (hvrbrd HyperVReplicaBlueReplicationDetails) AsHyperVReplicaBaseReplicationDetails() (*HyperVReplicaBaseReplicationDetails, bool) {
return nil, false
}
// AsHyperVReplicaReplicationDetails is the ReplicationProviderSpecificSettings implementation for HyperVReplicaBlueReplicationDetails.
func (hvrbrd HyperVReplicaBlueReplicationDetails) AsHyperVReplicaReplicationDetails() (*HyperVReplicaReplicationDetails, bool) {
return nil, false
}
// AsHyperVReplicaBlueReplicationDetails is the ReplicationProviderSpecificSettings implementation for HyperVReplicaBlueReplicationDetails.
func (hvrbrd HyperVReplicaBlueReplicationDetails) AsHyperVReplicaBlueReplicationDetails() (*HyperVReplicaBlueReplicationDetails, bool) {
return &hvrbrd, true
}
// AsHyperVReplicaAzureReplicationDetails is the ReplicationProviderSpecificSettings implementation for HyperVReplicaBlueReplicationDetails.
func (hvrbrd HyperVReplicaBlueReplicationDetails) AsHyperVReplicaAzureReplicationDetails() (*HyperVReplicaAzureReplicationDetails, bool) {
return nil, false
}
// AsInMageAzureV2ReplicationDetails is the ReplicationProviderSpecificSettings implementation for HyperVReplicaBlueReplicationDetails.
func (hvrbrd HyperVReplicaBlueReplicationDetails) AsInMageAzureV2ReplicationDetails() (*InMageAzureV2ReplicationDetails, bool) {
return nil, false
}
// AsInMageReplicationDetails is the ReplicationProviderSpecificSettings implementation for HyperVReplicaBlueReplicationDetails.
func (hvrbrd HyperVReplicaBlueReplicationDetails) AsInMageReplicationDetails() (*InMageReplicationDetails, bool) {
return nil, false
}
// AsA2AReplicationDetails is the ReplicationProviderSpecificSettings implementation for HyperVReplicaBlueReplicationDetails.
func (hvrbrd HyperVReplicaBlueReplicationDetails) AsA2AReplicationDetails() (*A2AReplicationDetails, bool) {
return nil, false
}
// HyperVReplicaPolicyDetails is hyper-V Replica Blue specific protection profile details.
type HyperVReplicaPolicyDetails struct {
InstanceType InstanceTypePolicyProviderSpecificDetails `json:"instanceType,omitempty"`
RecoveryPoints *int32 `json:"recoveryPoints,omitempty"`
ApplicationConsistentSnapshotFrequencyInHours *int32 `json:"applicationConsistentSnapshotFrequencyInHours,omitempty"`
Compression *string `json:"compression,omitempty"`
InitialReplicationMethod *string `json:"initialReplicationMethod,omitempty"`
OnlineReplicationStartTime *string `json:"onlineReplicationStartTime,omitempty"`
OfflineReplicationImportPath *string `json:"offlineReplicationImportPath,omitempty"`
OfflineReplicationExportPath *string `json:"offlineReplicationExportPath,omitempty"`
ReplicationPort *int32 `json:"replicationPort,omitempty"`
AllowedAuthenticationType *int32 `json:"allowedAuthenticationType,omitempty"`
ReplicaDeletionOption *string `json:"replicaDeletionOption,omitempty"`
}
// MarshalJSON is the custom marshaler for HyperVReplicaPolicyDetails.
func (hvrpd HyperVReplicaPolicyDetails) MarshalJSON() ([]byte, error) {
hvrpd.InstanceType = InstanceTypePolicyProviderSpecificDetailsInstanceTypeHyperVReplica2012
type Alias HyperVReplicaPolicyDetails
return json.Marshal(&struct {
Alias
}{
Alias: (Alias)(hvrpd),
})
}
// AsHyperVReplicaAzurePolicyDetails is the PolicyProviderSpecificDetails implementation for HyperVReplicaPolicyDetails.
func (hvrpd HyperVReplicaPolicyDetails) AsHyperVReplicaAzurePolicyDetails() (*HyperVReplicaAzurePolicyDetails, bool) {
return nil, false
}
// AsHyperVReplicaBasePolicyDetails is the PolicyProviderSpecificDetails implementation for HyperVReplicaPolicyDetails.
func (hvrpd HyperVReplicaPolicyDetails) AsHyperVReplicaBasePolicyDetails() (*HyperVReplicaBasePolicyDetails, bool) {
return nil, false
}
// AsHyperVReplicaPolicyDetails is the PolicyProviderSpecificDetails implementation for HyperVReplicaPolicyDetails.
func (hvrpd HyperVReplicaPolicyDetails) AsHyperVReplicaPolicyDetails() (*HyperVReplicaPolicyDetails, bool) {
return &hvrpd, true
}
// AsHyperVReplicaBluePolicyDetails is the PolicyProviderSpecificDetails implementation for HyperVReplicaPolicyDetails.
func (hvrpd HyperVReplicaPolicyDetails) AsHyperVReplicaBluePolicyDetails() (*HyperVReplicaBluePolicyDetails, bool) {
return nil, false
}
// AsInMageBasePolicyDetails is the PolicyProviderSpecificDetails implementation for HyperVReplicaPolicyDetails.
func (hvrpd HyperVReplicaPolicyDetails) AsInMageBasePolicyDetails() (*InMageBasePolicyDetails, bool) {
return nil, false
}
// AsInMageAzureV2PolicyDetails is the PolicyProviderSpecificDetails implementation for HyperVReplicaPolicyDetails.
func (hvrpd HyperVReplicaPolicyDetails) AsInMageAzureV2PolicyDetails() (*InMageAzureV2PolicyDetails, bool) {
return nil, false
}
// AsInMagePolicyDetails is the PolicyProviderSpecificDetails implementation for HyperVReplicaPolicyDetails.
func (hvrpd HyperVReplicaPolicyDetails) AsInMagePolicyDetails() (*InMagePolicyDetails, bool) {
return nil, false
}
// AsA2APolicyDetails is the PolicyProviderSpecificDetails implementation for HyperVReplicaPolicyDetails.
func (hvrpd HyperVReplicaPolicyDetails) AsA2APolicyDetails() (*A2APolicyDetails, bool) {
return nil, false
}
// AsRcmAzureMigrationPolicyDetails is the PolicyProviderSpecificDetails implementation for HyperVReplicaPolicyDetails.
func (hvrpd HyperVReplicaPolicyDetails) AsRcmAzureMigrationPolicyDetails() (*RcmAzureMigrationPolicyDetails, bool) {
return nil, false
}
// AsVmwareCbtPolicyDetails is the PolicyProviderSpecificDetails implementation for HyperVReplicaPolicyDetails.
func (hvrpd HyperVReplicaPolicyDetails) AsVmwareCbtPolicyDetails() (*VmwareCbtPolicyDetails, bool) {
return nil, false
}
// HyperVReplicaPolicyInput is hyper-V Replica specific protection profile Input.
type HyperVReplicaPolicyInput struct {
InstanceType InstanceTypePolicyProviderSpecificInput `json:"instanceType,omitempty"`
RecoveryPoints *int32 `json:"recoveryPoints,omitempty"`
ApplicationConsistentSnapshotFrequencyInHours *int32 `json:"applicationConsistentSnapshotFrequencyInHours,omitempty"`
Compression *string `json:"compression,omitempty"`
InitialReplicationMethod *string `json:"initialReplicationMethod,omitempty"`
OnlineReplicationStartTime *string `json:"onlineReplicationStartTime,omitempty"`
OfflineReplicationImportPath *string `json:"offlineReplicationImportPath,omitempty"`
OfflineReplicationExportPath *string `json:"offlineReplicationExportPath,omitempty"`
ReplicationPort *int32 `json:"replicationPort,omitempty"`
AllowedAuthenticationType *int32 `json:"allowedAuthenticationType,omitempty"`
ReplicaDeletion *string `json:"replicaDeletion,omitempty"`
}
// MarshalJSON is the custom marshaler for HyperVReplicaPolicyInput.
func (hvrpi HyperVReplicaPolicyInput) MarshalJSON() ([]byte, error) {
hvrpi.InstanceType = InstanceTypePolicyProviderSpecificInputInstanceTypeHyperVReplica2012
type Alias HyperVReplicaPolicyInput
return json.Marshal(&struct {
Alias
}{
Alias: (Alias)(hvrpi),
})
}
// AsHyperVReplicaAzurePolicyInput is the PolicyProviderSpecificInput implementation for HyperVReplicaPolicyInput.
func (hvrpi HyperVReplicaPolicyInput) AsHyperVReplicaAzurePolicyInput() (*HyperVReplicaAzurePolicyInput, bool) {
return nil, false
}
// AsHyperVReplicaPolicyInput is the PolicyProviderSpecificInput implementation for HyperVReplicaPolicyInput.
func (hvrpi HyperVReplicaPolicyInput) AsHyperVReplicaPolicyInput() (*HyperVReplicaPolicyInput, bool) {
return &hvrpi, true
}
// AsHyperVReplicaBluePolicyInput is the PolicyProviderSpecificInput implementation for HyperVReplicaPolicyInput.
func (hvrpi HyperVReplicaPolicyInput) AsHyperVReplicaBluePolicyInput() (*HyperVReplicaBluePolicyInput, bool) {
return nil, false
}
// AsInMageAzureV2PolicyInput is the PolicyProviderSpecificInput implementation for HyperVReplicaPolicyInput.
func (hvrpi HyperVReplicaPolicyInput) AsInMageAzureV2PolicyInput() (*InMageAzureV2PolicyInput, bool) {
return nil, false
}
// AsInMagePolicyInput is the PolicyProviderSpecificInput implementation for HyperVReplicaPolicyInput.
func (hvrpi HyperVReplicaPolicyInput) AsInMagePolicyInput() (*InMagePolicyInput, bool) {
return nil, false
}
// AsA2APolicyCreationInput is the PolicyProviderSpecificInput implementation for HyperVReplicaPolicyInput.
func (hvrpi HyperVReplicaPolicyInput) AsA2APolicyCreationInput() (*A2APolicyCreationInput, bool) {
return nil, false
}
// AsVMwareCbtPolicyCreationInput is the PolicyProviderSpecificInput implementation for HyperVReplicaPolicyInput.
func (hvrpi HyperVReplicaPolicyInput) AsVMwareCbtPolicyCreationInput() (*VMwareCbtPolicyCreationInput, bool) {
return nil, false
}
// HyperVReplicaReplicationDetails is hyperV replica 2012 replication details.
type HyperVReplicaReplicationDetails struct {
InstanceType InstanceTypeReplicationProviderSpecificSettings `json:"instanceType,omitempty"`
LastReplicatedTime *date.Time `json:"lastReplicatedTime,omitempty"`
VMNics *[]VMNicDetails `json:"vmNics,omitempty"`
VMID *string `json:"vmId,omitempty"`
VMProtectionState *string `json:"vmProtectionState,omitempty"`
VMProtectionStateDescription *string `json:"vmProtectionStateDescription,omitempty"`
InitialReplicationDetails *InitialReplicationDetails `json:"initialReplicationDetails,omitempty"`
VMDiskDetails *[]DiskDetails `json:"vMDiskDetails,omitempty"`
}
// MarshalJSON is the custom marshaler for HyperVReplicaReplicationDetails.
func (hvrrd HyperVReplicaReplicationDetails) MarshalJSON() ([]byte, error) {
hvrrd.InstanceType = InstanceTypeReplicationProviderSpecificSettingsInstanceTypeHyperVReplica2012
type Alias HyperVReplicaReplicationDetails
return json.Marshal(&struct {
Alias
}{
Alias: (Alias)(hvrrd),
})
}
// AsHyperVReplicaBaseReplicationDetails is the ReplicationProviderSpecificSettings implementation for HyperVReplicaReplicationDetails.
func (hvrrd HyperVReplicaReplicationDetails) AsHyperVReplicaBaseReplicationDetails() (*HyperVReplicaBaseReplicationDetails, bool) {
return nil, false
}
// AsHyperVReplicaReplicationDetails is the ReplicationProviderSpecificSettings implementation for HyperVReplicaReplicationDetails.
func (hvrrd HyperVReplicaReplicationDetails) AsHyperVReplicaReplicationDetails() (*HyperVReplicaReplicationDetails, bool) {
return &hvrrd, true
}
// AsHyperVReplicaBlueReplicationDetails is the ReplicationProviderSpecificSettings implementation for HyperVReplicaReplicationDetails.
func (hvrrd HyperVReplicaReplicationDetails) AsHyperVReplicaBlueReplicationDetails() (*HyperVReplicaBlueReplicationDetails, bool) {
return nil, false
}
// AsHyperVReplicaAzureReplicationDetails is the ReplicationProviderSpecificSettings implementation for HyperVReplicaReplicationDetails.
func (hvrrd HyperVReplicaReplicationDetails) AsHyperVReplicaAzureReplicationDetails() (*HyperVReplicaAzureReplicationDetails, bool) {
return nil, false
}
// AsInMageAzureV2ReplicationDetails is the ReplicationProviderSpecificSettings implementation for HyperVReplicaReplicationDetails.
func (hvrrd HyperVReplicaReplicationDetails) AsInMageAzureV2ReplicationDetails() (*InMageAzureV2ReplicationDetails, bool) {
return nil, false
}
// AsInMageReplicationDetails is the ReplicationProviderSpecificSettings implementation for HyperVReplicaReplicationDetails.
func (hvrrd HyperVReplicaReplicationDetails) AsInMageReplicationDetails() (*InMageReplicationDetails, bool) {
return nil, false
}
// AsA2AReplicationDetails is the ReplicationProviderSpecificSettings implementation for HyperVReplicaReplicationDetails.
func (hvrrd HyperVReplicaReplicationDetails) AsA2AReplicationDetails() (*A2AReplicationDetails, bool) {
return nil, false
}
// HyperVSiteDetails is hyperVSite fabric specific details.
type HyperVSiteDetails struct {
InstanceType InstanceTypeFabricSpecificDetails `json:"instanceType,omitempty"`
}
// MarshalJSON is the custom marshaler for HyperVSiteDetails.
func (hvsd HyperVSiteDetails) MarshalJSON() ([]byte, error) {
hvsd.InstanceType = InstanceTypeHyperVSite
type Alias HyperVSiteDetails
return json.Marshal(&struct {
Alias
}{
Alias: (Alias)(hvsd),
})
}
// AsAzureFabricSpecificDetails is the FabricSpecificDetails implementation for HyperVSiteDetails.
func (hvsd HyperVSiteDetails) AsAzureFabricSpecificDetails() (*AzureFabricSpecificDetails, bool) {
return nil, false
}
// AsVmmDetails is the FabricSpecificDetails implementation for HyperVSiteDetails.
func (hvsd HyperVSiteDetails) AsVmmDetails() (*VmmDetails, bool) {
return nil, false
}
// AsHyperVSiteDetails is the FabricSpecificDetails implementation for HyperVSiteDetails.
func (hvsd HyperVSiteDetails) AsHyperVSiteDetails() (*HyperVSiteDetails, bool) {
return &hvsd, true
}
// AsVMwareDetails is the FabricSpecificDetails implementation for HyperVSiteDetails.
func (hvsd HyperVSiteDetails) AsVMwareDetails() (*VMwareDetails, bool) {
return nil, false
}
// AsVMwareV2FabricSpecificDetails is the FabricSpecificDetails implementation for HyperVSiteDetails.
func (hvsd HyperVSiteDetails) AsVMwareV2FabricSpecificDetails() (*VMwareV2FabricSpecificDetails, bool) {
return nil, false
}
// HyperVVirtualMachineDetails is hyper V replica provider specific settings
type HyperVVirtualMachineDetails struct {
InstanceType InstanceTypeConfigurationSettings `json:"instanceType,omitempty"`
SourceItemID *string `json:"sourceItemId,omitempty"`
Generation *string `json:"generation,omitempty"`
OsDetails *OSDetails `json:"osDetails,omitempty"`
DiskDetails *[]DiskDetails `json:"diskDetails,omitempty"`
}
// MarshalJSON is the custom marshaler for HyperVVirtualMachineDetails.
func (hvvmd HyperVVirtualMachineDetails) MarshalJSON() ([]byte, error) {
hvvmd.InstanceType = InstanceTypeHyperVVirtualMachine
type Alias HyperVVirtualMachineDetails
return json.Marshal(&struct {
Alias
}{
Alias: (Alias)(hvvmd),
})
}
// AsHyperVVirtualMachineDetails is the ConfigurationSettings implementation for HyperVVirtualMachineDetails.
func (hvvmd HyperVVirtualMachineDetails) AsHyperVVirtualMachineDetails() (*HyperVVirtualMachineDetails, bool) {
return &hvvmd, true
}
// AsVMwareVirtualMachineDetails is the ConfigurationSettings implementation for HyperVVirtualMachineDetails.
func (hvvmd HyperVVirtualMachineDetails) AsVMwareVirtualMachineDetails() (*VMwareVirtualMachineDetails, bool) {
return nil, false
}
// AsReplicationGroupDetails is the ConfigurationSettings implementation for HyperVVirtualMachineDetails.
func (hvvmd HyperVVirtualMachineDetails) AsReplicationGroupDetails() (*ReplicationGroupDetails, bool) {
return nil, false
}
// IdentityInformation is identity details.
type IdentityInformation struct {
IdentityProviderType IdentityProviderType `json:"identityProviderType,omitempty"`
TenantID *string `json:"tenantId,omitempty"`
ApplicationID *string `json:"applicationId,omitempty"`
ObjectID *string `json:"objectId,omitempty"`
Audience *string `json:"audience,omitempty"`
AadAuthority *string `json:"aadAuthority,omitempty"`
CertificateThumbprint *string `json:"certificateThumbprint,omitempty"`
}
// InconsistentVMDetails is this class stores the monitoring details for consistency check of inconsistent Protected
// Entity.
type InconsistentVMDetails struct {
VMName *string `json:"vmName,omitempty"`
CloudName *string `json:"cloudName,omitempty"`
Details *[]string `json:"details,omitempty"`
ErrorIds *[]string `json:"errorIds,omitempty"`
}
// InitialReplicationDetails is initial replication details.
type InitialReplicationDetails struct {
InitialReplicationType *string `json:"initialReplicationType,omitempty"`
InitialReplicationProgressPercentage *string `json:"initialReplicationProgressPercentage,omitempty"`
}
// InlineWorkflowTaskDetails is this class represents the inline workflow task details.
type InlineWorkflowTaskDetails struct {
ChildTasks *[]ASRTask `json:"childTasks,omitempty"`
InstanceType InstanceTypeGroupTaskDetails `json:"instanceType,omitempty"`
WorkflowIds *[]string `json:"workflowIds,omitempty"`
}
// MarshalJSON is the custom marshaler for InlineWorkflowTaskDetails.
func (iwtd InlineWorkflowTaskDetails) MarshalJSON() ([]byte, error) {
iwtd.InstanceType = InstanceTypeInlineWorkflowTaskDetails
type Alias InlineWorkflowTaskDetails
return json.Marshal(&struct {
Alias
}{
Alias: (Alias)(iwtd),
})
}
// AsInlineWorkflowTaskDetails is the GroupTaskDetails implementation for InlineWorkflowTaskDetails.
func (iwtd InlineWorkflowTaskDetails) AsInlineWorkflowTaskDetails() (*InlineWorkflowTaskDetails, bool) {
return &iwtd, true
}
// AsRecoveryPlanGroupTaskDetails is the GroupTaskDetails implementation for InlineWorkflowTaskDetails.
func (iwtd InlineWorkflowTaskDetails) AsRecoveryPlanGroupTaskDetails() (*RecoveryPlanGroupTaskDetails, bool) {
return nil, false
}
// AsRecoveryPlanShutdownGroupTaskDetails is the GroupTaskDetails implementation for InlineWorkflowTaskDetails.
func (iwtd InlineWorkflowTaskDetails) AsRecoveryPlanShutdownGroupTaskDetails() (*RecoveryPlanShutdownGroupTaskDetails, bool) {
return nil, false
}
// InMageAgentDetails is the details of the InMage agent.
type InMageAgentDetails struct {
AgentVersion *string `json:"agentVersion,omitempty"`
AgentUpdateStatus *string `json:"agentUpdateStatus,omitempty"`
PostUpdateRebootStatus *string `json:"postUpdateRebootStatus,omitempty"`
}
// InMageAzureV2ApplyRecoveryPointInput is applyRecoveryPoint input specific to InMageAzureV2 provider.
type InMageAzureV2ApplyRecoveryPointInput struct {
InstanceType InstanceType `json:"instanceType,omitempty"`
VaultLocation *string `json:"vaultLocation,omitempty"`
}
// MarshalJSON is the custom marshaler for InMageAzureV2ApplyRecoveryPointInput.
func (imavarpi InMageAzureV2ApplyRecoveryPointInput) MarshalJSON() ([]byte, error) {
imavarpi.InstanceType = InstanceTypeInMageAzureV2
type Alias InMageAzureV2ApplyRecoveryPointInput
return json.Marshal(&struct {
Alias
}{
Alias: (Alias)(imavarpi),
})
}
// AsHyperVReplicaAzureApplyRecoveryPointInput is the ApplyRecoveryPointProviderSpecificInput implementation for InMageAzureV2ApplyRecoveryPointInput.
func (imavarpi InMageAzureV2ApplyRecoveryPointInput) AsHyperVReplicaAzureApplyRecoveryPointInput() (*HyperVReplicaAzureApplyRecoveryPointInput, bool) {
return nil, false
}
// AsInMageAzureV2ApplyRecoveryPointInput is the ApplyRecoveryPointProviderSpecificInput implementation for InMageAzureV2ApplyRecoveryPointInput.
func (imavarpi InMageAzureV2ApplyRecoveryPointInput) AsInMageAzureV2ApplyRecoveryPointInput() (*InMageAzureV2ApplyRecoveryPointInput, bool) {
return &imavarpi, true
}
// AsA2AApplyRecoveryPointInput is the ApplyRecoveryPointProviderSpecificInput implementation for InMageAzureV2ApplyRecoveryPointInput.
func (imavarpi InMageAzureV2ApplyRecoveryPointInput) AsA2AApplyRecoveryPointInput() (*A2AApplyRecoveryPointInput, bool) {
return nil, false
}
// InMageAzureV2EnableProtectionInput is vMware Azure specific enable protection input.
type InMageAzureV2EnableProtectionInput struct {
InstanceType InstanceTypeEnableProtectionProviderSpecificInput `json:"instanceType,omitempty"`
MasterTargetID *string `json:"masterTargetId,omitempty"`
ProcessServerID *string `json:"processServerId,omitempty"`
StorageAccountID *string `json:"storageAccountId,omitempty"`
RunAsAccountID *string `json:"runAsAccountId,omitempty"`
MultiVMGroupID *string `json:"multiVmGroupId,omitempty"`
MultiVMGroupName *string `json:"multiVmGroupName,omitempty"`
DisksToInclude *[]string `json:"disksToInclude,omitempty"`
TargetAzureNetworkID *string `json:"targetAzureNetworkId,omitempty"`
TargetAzureSubnetID *string `json:"targetAzureSubnetId,omitempty"`
EnableRDPOnTargetOption *string `json:"enableRDPOnTargetOption,omitempty"`
TargetAzureVMName *string `json:"targetAzureVmName,omitempty"`
LogStorageAccountID *string `json:"logStorageAccountId,omitempty"`
TargetAzureV1ResourceGroupID *string `json:"targetAzureV1ResourceGroupId,omitempty"`
TargetAzureV2ResourceGroupID *string `json:"targetAzureV2ResourceGroupId,omitempty"`
UseManagedDisks *string `json:"useManagedDisks,omitempty"`
}
// MarshalJSON is the custom marshaler for InMageAzureV2EnableProtectionInput.
func (imavepi InMageAzureV2EnableProtectionInput) MarshalJSON() ([]byte, error) {
imavepi.InstanceType = InstanceTypeEnableProtectionProviderSpecificInputInstanceTypeInMageAzureV2
type Alias InMageAzureV2EnableProtectionInput
return json.Marshal(&struct {
Alias
}{
Alias: (Alias)(imavepi),
})
}
// AsHyperVReplicaAzureEnableProtectionInput is the EnableProtectionProviderSpecificInput implementation for InMageAzureV2EnableProtectionInput.
func (imavepi InMageAzureV2EnableProtectionInput) AsHyperVReplicaAzureEnableProtectionInput() (*HyperVReplicaAzureEnableProtectionInput, bool) {
return nil, false
}
// AsSanEnableProtectionInput is the EnableProtectionProviderSpecificInput implementation for InMageAzureV2EnableProtectionInput.
func (imavepi InMageAzureV2EnableProtectionInput) AsSanEnableProtectionInput() (*SanEnableProtectionInput, bool) {
return nil, false
}
// AsInMageAzureV2EnableProtectionInput is the EnableProtectionProviderSpecificInput implementation for InMageAzureV2EnableProtectionInput.
func (imavepi InMageAzureV2EnableProtectionInput) AsInMageAzureV2EnableProtectionInput() (*InMageAzureV2EnableProtectionInput, bool) {
return &imavepi, true
}
// AsInMageEnableProtectionInput is the EnableProtectionProviderSpecificInput implementation for InMageAzureV2EnableProtectionInput.
func (imavepi InMageAzureV2EnableProtectionInput) AsInMageEnableProtectionInput() (*InMageEnableProtectionInput, bool) {
return nil, false
}
// AsA2AEnableProtectionInput is the EnableProtectionProviderSpecificInput implementation for InMageAzureV2EnableProtectionInput.
func (imavepi InMageAzureV2EnableProtectionInput) AsA2AEnableProtectionInput() (*A2AEnableProtectionInput, bool) {
return nil, false
}
// InMageAzureV2EventDetails is model class for event details of a VMwareAzureV2 event.
type InMageAzureV2EventDetails struct {
InstanceType InstanceType `json:"instanceType,omitempty"`
EventType *string `json:"eventType,omitempty"`
Category *string `json:"category,omitempty"`
Component *string `json:"component,omitempty"`
CorrectiveAction *string `json:"correctiveAction,omitempty"`
Details *string `json:"details,omitempty"`
Summary *string `json:"summary,omitempty"`
SiteName *string `json:"siteName,omitempty"`
}
// MarshalJSON is the custom marshaler for InMageAzureV2EventDetails.
func (imaved InMageAzureV2EventDetails) MarshalJSON() ([]byte, error) {
imaved.InstanceType = InstanceTypeInMageAzureV2
type Alias InMageAzureV2EventDetails
return json.Marshal(&struct {
Alias
}{
Alias: (Alias)(imaved),
})
}
// AsHyperVReplicaBaseEventDetails is the EventProviderSpecificDetails implementation for InMageAzureV2EventDetails.
func (imaved InMageAzureV2EventDetails) AsHyperVReplicaBaseEventDetails() (*HyperVReplicaBaseEventDetails, bool) {
return nil, false
}
// AsHyperVReplica2012EventDetails is the EventProviderSpecificDetails implementation for InMageAzureV2EventDetails.
func (imaved InMageAzureV2EventDetails) AsHyperVReplica2012EventDetails() (*HyperVReplica2012EventDetails, bool) {
return nil, false
}
// AsHyperVReplica2012R2EventDetails is the EventProviderSpecificDetails implementation for InMageAzureV2EventDetails.
func (imaved InMageAzureV2EventDetails) AsHyperVReplica2012R2EventDetails() (*HyperVReplica2012R2EventDetails, bool) {
return nil, false
}
// AsHyperVReplicaAzureEventDetails is the EventProviderSpecificDetails implementation for InMageAzureV2EventDetails.
func (imaved InMageAzureV2EventDetails) AsHyperVReplicaAzureEventDetails() (*HyperVReplicaAzureEventDetails, bool) {
return nil, false
}
// AsA2AEventDetails is the EventProviderSpecificDetails implementation for InMageAzureV2EventDetails.
func (imaved InMageAzureV2EventDetails) AsA2AEventDetails() (*A2AEventDetails, bool) {
return nil, false
}
// AsInMageAzureV2EventDetails is the EventProviderSpecificDetails implementation for InMageAzureV2EventDetails.
func (imaved InMageAzureV2EventDetails) AsInMageAzureV2EventDetails() (*InMageAzureV2EventDetails, bool) {
return &imaved, true
}
// InMageAzureV2FailoverProviderInput is inMageAzureV2 provider specific input for failover.
type InMageAzureV2FailoverProviderInput struct {
InstanceType InstanceTypeProviderSpecificFailoverInput `json:"instanceType,omitempty"`
VaultLocation *string `json:"vaultLocation,omitempty"`
RecoveryPointID *string `json:"recoveryPointId,omitempty"`
}
// MarshalJSON is the custom marshaler for InMageAzureV2FailoverProviderInput.
func (imavfpi InMageAzureV2FailoverProviderInput) MarshalJSON() ([]byte, error) {
imavfpi.InstanceType = InstanceTypeProviderSpecificFailoverInputInstanceTypeInMageAzureV2
type Alias InMageAzureV2FailoverProviderInput
return json.Marshal(&struct {
Alias
}{
Alias: (Alias)(imavfpi),
})
}
// AsHyperVReplicaAzureFailoverProviderInput is the ProviderSpecificFailoverInput implementation for InMageAzureV2FailoverProviderInput.
func (imavfpi InMageAzureV2FailoverProviderInput) AsHyperVReplicaAzureFailoverProviderInput() (*HyperVReplicaAzureFailoverProviderInput, bool) {
return nil, false
}
// AsHyperVReplicaAzureFailbackProviderInput is the ProviderSpecificFailoverInput implementation for InMageAzureV2FailoverProviderInput.
func (imavfpi InMageAzureV2FailoverProviderInput) AsHyperVReplicaAzureFailbackProviderInput() (*HyperVReplicaAzureFailbackProviderInput, bool) {
return nil, false
}
// AsInMageAzureV2FailoverProviderInput is the ProviderSpecificFailoverInput implementation for InMageAzureV2FailoverProviderInput.
func (imavfpi InMageAzureV2FailoverProviderInput) AsInMageAzureV2FailoverProviderInput() (*InMageAzureV2FailoverProviderInput, bool) {
return &imavfpi, true
}
// AsInMageFailoverProviderInput is the ProviderSpecificFailoverInput implementation for InMageAzureV2FailoverProviderInput.
func (imavfpi InMageAzureV2FailoverProviderInput) AsInMageFailoverProviderInput() (*InMageFailoverProviderInput, bool) {
return nil, false
}
// AsA2AFailoverProviderInput is the ProviderSpecificFailoverInput implementation for InMageAzureV2FailoverProviderInput.
func (imavfpi InMageAzureV2FailoverProviderInput) AsA2AFailoverProviderInput() (*A2AFailoverProviderInput, bool) {
return nil, false
}
// InMageAzureV2PolicyDetails is inMage Azure v2 specific protection profile details.
type InMageAzureV2PolicyDetails struct {
InstanceType InstanceTypePolicyProviderSpecificDetails `json:"instanceType,omitempty"`
CrashConsistentFrequencyInMinutes *int32 `json:"crashConsistentFrequencyInMinutes,omitempty"`
RecoveryPointThresholdInMinutes *int32 `json:"recoveryPointThresholdInMinutes,omitempty"`
RecoveryPointHistory *int32 `json:"recoveryPointHistory,omitempty"`
AppConsistentFrequencyInMinutes *int32 `json:"appConsistentFrequencyInMinutes,omitempty"`
MultiVMSyncStatus *string `json:"multiVmSyncStatus,omitempty"`
}
// MarshalJSON is the custom marshaler for InMageAzureV2PolicyDetails.
func (imavpd InMageAzureV2PolicyDetails) MarshalJSON() ([]byte, error) {
imavpd.InstanceType = InstanceTypePolicyProviderSpecificDetailsInstanceTypeInMageAzureV2
type Alias InMageAzureV2PolicyDetails
return json.Marshal(&struct {
Alias
}{
Alias: (Alias)(imavpd),
})
}
// AsHyperVReplicaAzurePolicyDetails is the PolicyProviderSpecificDetails implementation for InMageAzureV2PolicyDetails.
func (imavpd InMageAzureV2PolicyDetails) AsHyperVReplicaAzurePolicyDetails() (*HyperVReplicaAzurePolicyDetails, bool) {
return nil, false
}
// AsHyperVReplicaBasePolicyDetails is the PolicyProviderSpecificDetails implementation for InMageAzureV2PolicyDetails.
func (imavpd InMageAzureV2PolicyDetails) AsHyperVReplicaBasePolicyDetails() (*HyperVReplicaBasePolicyDetails, bool) {
return nil, false
}
// AsHyperVReplicaPolicyDetails is the PolicyProviderSpecificDetails implementation for InMageAzureV2PolicyDetails.
func (imavpd InMageAzureV2PolicyDetails) AsHyperVReplicaPolicyDetails() (*HyperVReplicaPolicyDetails, bool) {
return nil, false
}
// AsHyperVReplicaBluePolicyDetails is the PolicyProviderSpecificDetails implementation for InMageAzureV2PolicyDetails.
func (imavpd InMageAzureV2PolicyDetails) AsHyperVReplicaBluePolicyDetails() (*HyperVReplicaBluePolicyDetails, bool) {
return nil, false
}
// AsInMageBasePolicyDetails is the PolicyProviderSpecificDetails implementation for InMageAzureV2PolicyDetails.
func (imavpd InMageAzureV2PolicyDetails) AsInMageBasePolicyDetails() (*InMageBasePolicyDetails, bool) {
return nil, false
}
// AsInMageAzureV2PolicyDetails is the PolicyProviderSpecificDetails implementation for InMageAzureV2PolicyDetails.
func (imavpd InMageAzureV2PolicyDetails) AsInMageAzureV2PolicyDetails() (*InMageAzureV2PolicyDetails, bool) {
return &imavpd, true
}
// AsInMagePolicyDetails is the PolicyProviderSpecificDetails implementation for InMageAzureV2PolicyDetails.
func (imavpd InMageAzureV2PolicyDetails) AsInMagePolicyDetails() (*InMagePolicyDetails, bool) {
return nil, false
}
// AsA2APolicyDetails is the PolicyProviderSpecificDetails implementation for InMageAzureV2PolicyDetails.
func (imavpd InMageAzureV2PolicyDetails) AsA2APolicyDetails() (*A2APolicyDetails, bool) {
return nil, false
}
// AsRcmAzureMigrationPolicyDetails is the PolicyProviderSpecificDetails implementation for InMageAzureV2PolicyDetails.
func (imavpd InMageAzureV2PolicyDetails) AsRcmAzureMigrationPolicyDetails() (*RcmAzureMigrationPolicyDetails, bool) {
return nil, false
}
// AsVmwareCbtPolicyDetails is the PolicyProviderSpecificDetails implementation for InMageAzureV2PolicyDetails.
func (imavpd InMageAzureV2PolicyDetails) AsVmwareCbtPolicyDetails() (*VmwareCbtPolicyDetails, bool) {
return nil, false
}
// InMageAzureV2PolicyInput is vMWare Azure specific protection profile Input.
type InMageAzureV2PolicyInput struct {
InstanceType InstanceTypePolicyProviderSpecificInput `json:"instanceType,omitempty"`
RecoveryPointThresholdInMinutes *int32 `json:"recoveryPointThresholdInMinutes,omitempty"`
RecoveryPointHistory *int32 `json:"recoveryPointHistory,omitempty"`
CrashConsistentFrequencyInMinutes *int32 `json:"crashConsistentFrequencyInMinutes,omitempty"`
AppConsistentFrequencyInMinutes *int32 `json:"appConsistentFrequencyInMinutes,omitempty"`
MultiVMSyncStatus SetMultiVMSyncStatus `json:"multiVmSyncStatus,omitempty"`
}
// MarshalJSON is the custom marshaler for InMageAzureV2PolicyInput.
func (imavpi InMageAzureV2PolicyInput) MarshalJSON() ([]byte, error) {
imavpi.InstanceType = InstanceTypePolicyProviderSpecificInputInstanceTypeInMageAzureV2
type Alias InMageAzureV2PolicyInput
return json.Marshal(&struct {
Alias
}{
Alias: (Alias)(imavpi),
})
}
// AsHyperVReplicaAzurePolicyInput is the PolicyProviderSpecificInput implementation for InMageAzureV2PolicyInput.
func (imavpi InMageAzureV2PolicyInput) AsHyperVReplicaAzurePolicyInput() (*HyperVReplicaAzurePolicyInput, bool) {
return nil, false
}
// AsHyperVReplicaPolicyInput is the PolicyProviderSpecificInput implementation for InMageAzureV2PolicyInput.
func (imavpi InMageAzureV2PolicyInput) AsHyperVReplicaPolicyInput() (*HyperVReplicaPolicyInput, bool) {
return nil, false
}
// AsHyperVReplicaBluePolicyInput is the PolicyProviderSpecificInput implementation for InMageAzureV2PolicyInput.
func (imavpi InMageAzureV2PolicyInput) AsHyperVReplicaBluePolicyInput() (*HyperVReplicaBluePolicyInput, bool) {
return nil, false
}
// AsInMageAzureV2PolicyInput is the PolicyProviderSpecificInput implementation for InMageAzureV2PolicyInput.
func (imavpi InMageAzureV2PolicyInput) AsInMageAzureV2PolicyInput() (*InMageAzureV2PolicyInput, bool) {
return &imavpi, true
}
// AsInMagePolicyInput is the PolicyProviderSpecificInput implementation for InMageAzureV2PolicyInput.
func (imavpi InMageAzureV2PolicyInput) AsInMagePolicyInput() (*InMagePolicyInput, bool) {
return nil, false
}
// AsA2APolicyCreationInput is the PolicyProviderSpecificInput implementation for InMageAzureV2PolicyInput.
func (imavpi InMageAzureV2PolicyInput) AsA2APolicyCreationInput() (*A2APolicyCreationInput, bool) {
return nil, false
}
// AsVMwareCbtPolicyCreationInput is the PolicyProviderSpecificInput implementation for InMageAzureV2PolicyInput.
func (imavpi InMageAzureV2PolicyInput) AsVMwareCbtPolicyCreationInput() (*VMwareCbtPolicyCreationInput, bool) {
return nil, false
}
// InMageAzureV2ProtectedDiskDetails is inMageAzureV2 protected disk details.
type InMageAzureV2ProtectedDiskDetails struct {
DiskID *string `json:"diskId,omitempty"`
DiskName *string `json:"diskName,omitempty"`
ProtectionStage *string `json:"protectionStage,omitempty"`
HealthErrorCode *string `json:"healthErrorCode,omitempty"`
RpoInSeconds *int64 `json:"rpoInSeconds,omitempty"`
ResyncRequired *string `json:"resyncRequired,omitempty"`
ResyncProgressPercentage *int32 `json:"resyncProgressPercentage,omitempty"`
ResyncDurationInSeconds *int64 `json:"resyncDurationInSeconds,omitempty"`
DiskCapacityInBytes *int64 `json:"diskCapacityInBytes,omitempty"`
FileSystemCapacityInBytes *int64 `json:"fileSystemCapacityInBytes,omitempty"`
SourceDataInMegaBytes *float64 `json:"sourceDataInMegaBytes,omitempty"`
PsDataInMegaBytes *float64 `json:"psDataInMegaBytes,omitempty"`
TargetDataInMegaBytes *float64 `json:"targetDataInMegaBytes,omitempty"`
DiskResized *string `json:"diskResized,omitempty"`
LastRpoCalculatedTime *date.Time `json:"lastRpoCalculatedTime,omitempty"`
}
// InMageAzureV2RecoveryPointDetails is inMage Azure V2 provider specific recovery point details.
type InMageAzureV2RecoveryPointDetails struct {
Type *string `json:"Type,omitempty"`
InstanceType *string `json:"instanceType,omitempty"`
IsMultiVMSyncPoint *string `json:"isMultiVmSyncPoint,omitempty"`
}
// InMageAzureV2ReplicationDetails is inMageAzureV2 provider specific settings
type InMageAzureV2ReplicationDetails struct {
InstanceType InstanceTypeReplicationProviderSpecificSettings `json:"instanceType,omitempty"`
InfrastructureVMID *string `json:"infrastructureVmId,omitempty"`
VCenterInfrastructureID *string `json:"vCenterInfrastructureId,omitempty"`
ProtectionStage *string `json:"protectionStage,omitempty"`
VMID *string `json:"vmId,omitempty"`
VMProtectionState *string `json:"vmProtectionState,omitempty"`
VMProtectionStateDescription *string `json:"vmProtectionStateDescription,omitempty"`
ResyncProgressPercentage *int32 `json:"resyncProgressPercentage,omitempty"`
RpoInSeconds *int64 `json:"rpoInSeconds,omitempty"`
CompressedDataRateInMB *float64 `json:"compressedDataRateInMB,omitempty"`
UncompressedDataRateInMB *float64 `json:"uncompressedDataRateInMB,omitempty"`
IPAddress *string `json:"ipAddress,omitempty"`
AgentVersion *string `json:"agentVersion,omitempty"`
IsAgentUpdateRequired *string `json:"isAgentUpdateRequired,omitempty"`
IsRebootAfterUpdateRequired *string `json:"isRebootAfterUpdateRequired,omitempty"`
LastHeartbeat *date.Time `json:"lastHeartbeat,omitempty"`
ProcessServerID *string `json:"processServerId,omitempty"`
MultiVMGroupID *string `json:"multiVmGroupId,omitempty"`
MultiVMGroupName *string `json:"multiVmGroupName,omitempty"`
MultiVMSyncStatus *string `json:"multiVmSyncStatus,omitempty"`
ProtectedDisks *[]InMageAzureV2ProtectedDiskDetails `json:"protectedDisks,omitempty"`
DiskResized *string `json:"diskResized,omitempty"`
MasterTargetID *string `json:"masterTargetId,omitempty"`
SourceVMCPUCount *int32 `json:"sourceVmCPUCount,omitempty"`
SourceVMRAMSizeInMB *int32 `json:"sourceVmRAMSizeInMB,omitempty"`
OsType *string `json:"osType,omitempty"`
VhdName *string `json:"vhdName,omitempty"`
OsDiskID *string `json:"osDiskId,omitempty"`
AzureVMDiskDetails *[]AzureVMDiskDetails `json:"azureVMDiskDetails,omitempty"`
RecoveryAzureVMName *string `json:"recoveryAzureVMName,omitempty"`
RecoveryAzureVMSize *string `json:"recoveryAzureVMSize,omitempty"`
RecoveryAzureStorageAccount *string `json:"recoveryAzureStorageAccount,omitempty"`
RecoveryAzureLogStorageAccountID *string `json:"recoveryAzureLogStorageAccountId,omitempty"`
VMNics *[]VMNicDetails `json:"vmNics,omitempty"`
SelectedRecoveryAzureNetworkID *string `json:"selectedRecoveryAzureNetworkId,omitempty"`
DiscoveryType *string `json:"discoveryType,omitempty"`
EnableRDPOnTargetOption *string `json:"enableRDPOnTargetOption,omitempty"`
Datastores *[]string `json:"datastores,omitempty"`
TargetVMID *string `json:"targetVmId,omitempty"`
RecoveryAzureResourceGroupID *string `json:"recoveryAzureResourceGroupId,omitempty"`
RecoveryAvailabilitySetID *string `json:"recoveryAvailabilitySetId,omitempty"`
UseManagedDisks *string `json:"useManagedDisks,omitempty"`
LicenseType *string `json:"licenseType,omitempty"`
ValidationErrors *[]HealthError `json:"validationErrors,omitempty"`
LastRpoCalculatedTime *date.Time `json:"lastRpoCalculatedTime,omitempty"`
LastUpdateReceivedTime *date.Time `json:"lastUpdateReceivedTime,omitempty"`
ReplicaID *string `json:"replicaId,omitempty"`
OsVersion *string `json:"osVersion,omitempty"`
}
// MarshalJSON is the custom marshaler for InMageAzureV2ReplicationDetails.
func (imavrd InMageAzureV2ReplicationDetails) MarshalJSON() ([]byte, error) {
imavrd.InstanceType = InstanceTypeReplicationProviderSpecificSettingsInstanceTypeInMageAzureV2
type Alias InMageAzureV2ReplicationDetails
return json.Marshal(&struct {
Alias
}{
Alias: (Alias)(imavrd),
})
}
// AsHyperVReplicaBaseReplicationDetails is the ReplicationProviderSpecificSettings implementation for InMageAzureV2ReplicationDetails.
func (imavrd InMageAzureV2ReplicationDetails) AsHyperVReplicaBaseReplicationDetails() (*HyperVReplicaBaseReplicationDetails, bool) {
return nil, false
}
// AsHyperVReplicaReplicationDetails is the ReplicationProviderSpecificSettings implementation for InMageAzureV2ReplicationDetails.
func (imavrd InMageAzureV2ReplicationDetails) AsHyperVReplicaReplicationDetails() (*HyperVReplicaReplicationDetails, bool) {
return nil, false
}
// AsHyperVReplicaBlueReplicationDetails is the ReplicationProviderSpecificSettings implementation for InMageAzureV2ReplicationDetails.
func (imavrd InMageAzureV2ReplicationDetails) AsHyperVReplicaBlueReplicationDetails() (*HyperVReplicaBlueReplicationDetails, bool) {
return nil, false
}
// AsHyperVReplicaAzureReplicationDetails is the ReplicationProviderSpecificSettings implementation for InMageAzureV2ReplicationDetails.
func (imavrd InMageAzureV2ReplicationDetails) AsHyperVReplicaAzureReplicationDetails() (*HyperVReplicaAzureReplicationDetails, bool) {
return nil, false
}
// AsInMageAzureV2ReplicationDetails is the ReplicationProviderSpecificSettings implementation for InMageAzureV2ReplicationDetails.
func (imavrd InMageAzureV2ReplicationDetails) AsInMageAzureV2ReplicationDetails() (*InMageAzureV2ReplicationDetails, bool) {
return &imavrd, true
}
// AsInMageReplicationDetails is the ReplicationProviderSpecificSettings implementation for InMageAzureV2ReplicationDetails.
func (imavrd InMageAzureV2ReplicationDetails) AsInMageReplicationDetails() (*InMageReplicationDetails, bool) {
return nil, false
}
// AsA2AReplicationDetails is the ReplicationProviderSpecificSettings implementation for InMageAzureV2ReplicationDetails.
func (imavrd InMageAzureV2ReplicationDetails) AsA2AReplicationDetails() (*A2AReplicationDetails, bool) {
return nil, false
}
// InMageAzureV2ReprotectInput is inMageAzureV2 specific provider input.
type InMageAzureV2ReprotectInput struct {
InstanceType InstanceTypeReverseReplicationProviderSpecificInput `json:"instanceType,omitempty"`
MasterTargetID *string `json:"masterTargetId,omitempty"`
ProcessServerID *string `json:"processServerId,omitempty"`
StorageAccountID *string `json:"storageAccountId,omitempty"`
RunAsAccountID *string `json:"runAsAccountId,omitempty"`
PolicyID *string `json:"policyId,omitempty"`
LogStorageAccountID *string `json:"logStorageAccountId,omitempty"`
DisksToInclude *[]string `json:"disksToInclude,omitempty"`
}
// MarshalJSON is the custom marshaler for InMageAzureV2ReprotectInput.
func (imavri InMageAzureV2ReprotectInput) MarshalJSON() ([]byte, error) {
imavri.InstanceType = InstanceTypeReverseReplicationProviderSpecificInputInstanceTypeInMageAzureV2
type Alias InMageAzureV2ReprotectInput
return json.Marshal(&struct {
Alias
}{
Alias: (Alias)(imavri),
})
}
// AsHyperVReplicaAzureReprotectInput is the ReverseReplicationProviderSpecificInput implementation for InMageAzureV2ReprotectInput.
func (imavri InMageAzureV2ReprotectInput) AsHyperVReplicaAzureReprotectInput() (*HyperVReplicaAzureReprotectInput, bool) {
return nil, false
}
// AsInMageAzureV2ReprotectInput is the ReverseReplicationProviderSpecificInput implementation for InMageAzureV2ReprotectInput.
func (imavri InMageAzureV2ReprotectInput) AsInMageAzureV2ReprotectInput() (*InMageAzureV2ReprotectInput, bool) {
return &imavri, true
}
// AsInMageReprotectInput is the ReverseReplicationProviderSpecificInput implementation for InMageAzureV2ReprotectInput.
func (imavri InMageAzureV2ReprotectInput) AsInMageReprotectInput() (*InMageReprotectInput, bool) {
return nil, false
}
// AsA2AReprotectInput is the ReverseReplicationProviderSpecificInput implementation for InMageAzureV2ReprotectInput.
func (imavri InMageAzureV2ReprotectInput) AsA2AReprotectInput() (*A2AReprotectInput, bool) {
return nil, false
}
// InMageAzureV2UpdateReplicationProtectedItemInput is inMage Azure V2 input to update replication protected item.
type InMageAzureV2UpdateReplicationProtectedItemInput struct {
InstanceType InstanceType `json:"instanceType,omitempty"`
RecoveryAzureV1ResourceGroupID *string `json:"recoveryAzureV1ResourceGroupId,omitempty"`
RecoveryAzureV2ResourceGroupID *string `json:"recoveryAzureV2ResourceGroupId,omitempty"`
UseManagedDisks *string `json:"useManagedDisks,omitempty"`
}
// MarshalJSON is the custom marshaler for InMageAzureV2UpdateReplicationProtectedItemInput.
func (imavurpii InMageAzureV2UpdateReplicationProtectedItemInput) MarshalJSON() ([]byte, error) {
imavurpii.InstanceType = InstanceTypeInMageAzureV2
type Alias InMageAzureV2UpdateReplicationProtectedItemInput
return json.Marshal(&struct {
Alias
}{
Alias: (Alias)(imavurpii),
})
}
// AsHyperVReplicaAzureUpdateReplicationProtectedItemInput is the UpdateReplicationProtectedItemProviderInput implementation for InMageAzureV2UpdateReplicationProtectedItemInput.
func (imavurpii InMageAzureV2UpdateReplicationProtectedItemInput) AsHyperVReplicaAzureUpdateReplicationProtectedItemInput() (*HyperVReplicaAzureUpdateReplicationProtectedItemInput, bool) {
return nil, false
}
// AsInMageAzureV2UpdateReplicationProtectedItemInput is the UpdateReplicationProtectedItemProviderInput implementation for InMageAzureV2UpdateReplicationProtectedItemInput.
func (imavurpii InMageAzureV2UpdateReplicationProtectedItemInput) AsInMageAzureV2UpdateReplicationProtectedItemInput() (*InMageAzureV2UpdateReplicationProtectedItemInput, bool) {
return &imavurpii, true
}
// AsA2AUpdateReplicationProtectedItemInput is the UpdateReplicationProtectedItemProviderInput implementation for InMageAzureV2UpdateReplicationProtectedItemInput.
func (imavurpii InMageAzureV2UpdateReplicationProtectedItemInput) AsA2AUpdateReplicationProtectedItemInput() (*A2AUpdateReplicationProtectedItemInput, bool) {
return nil, false
}
// InMageBasePolicyDetails is base class for the policies of providers using InMage replication.
type InMageBasePolicyDetails struct {
InstanceType InstanceTypePolicyProviderSpecificDetails `json:"instanceType,omitempty"`
RecoveryPointThresholdInMinutes *int32 `json:"recoveryPointThresholdInMinutes,omitempty"`
RecoveryPointHistory *int32 `json:"recoveryPointHistory,omitempty"`
AppConsistentFrequencyInMinutes *int32 `json:"appConsistentFrequencyInMinutes,omitempty"`
MultiVMSyncStatus *string `json:"multiVmSyncStatus,omitempty"`
}
// MarshalJSON is the custom marshaler for InMageBasePolicyDetails.
func (imbpd InMageBasePolicyDetails) MarshalJSON() ([]byte, error) {
imbpd.InstanceType = InstanceTypePolicyProviderSpecificDetailsInstanceTypeInMageBasePolicyDetails
type Alias InMageBasePolicyDetails
return json.Marshal(&struct {
Alias
}{
Alias: (Alias)(imbpd),
})
}
// AsHyperVReplicaAzurePolicyDetails is the PolicyProviderSpecificDetails implementation for InMageBasePolicyDetails.
func (imbpd InMageBasePolicyDetails) AsHyperVReplicaAzurePolicyDetails() (*HyperVReplicaAzurePolicyDetails, bool) {
return nil, false
}
// AsHyperVReplicaBasePolicyDetails is the PolicyProviderSpecificDetails implementation for InMageBasePolicyDetails.
func (imbpd InMageBasePolicyDetails) AsHyperVReplicaBasePolicyDetails() (*HyperVReplicaBasePolicyDetails, bool) {
return nil, false
}
// AsHyperVReplicaPolicyDetails is the PolicyProviderSpecificDetails implementation for InMageBasePolicyDetails.
func (imbpd InMageBasePolicyDetails) AsHyperVReplicaPolicyDetails() (*HyperVReplicaPolicyDetails, bool) {
return nil, false
}
// AsHyperVReplicaBluePolicyDetails is the PolicyProviderSpecificDetails implementation for InMageBasePolicyDetails.
func (imbpd InMageBasePolicyDetails) AsHyperVReplicaBluePolicyDetails() (*HyperVReplicaBluePolicyDetails, bool) {
return nil, false
}
// AsInMageBasePolicyDetails is the PolicyProviderSpecificDetails implementation for InMageBasePolicyDetails.
func (imbpd InMageBasePolicyDetails) AsInMageBasePolicyDetails() (*InMageBasePolicyDetails, bool) {
return &imbpd, true
}
// AsInMageAzureV2PolicyDetails is the PolicyProviderSpecificDetails implementation for InMageBasePolicyDetails.
func (imbpd InMageBasePolicyDetails) AsInMageAzureV2PolicyDetails() (*InMageAzureV2PolicyDetails, bool) {
return nil, false
}
// AsInMagePolicyDetails is the PolicyProviderSpecificDetails implementation for InMageBasePolicyDetails.
func (imbpd InMageBasePolicyDetails) AsInMagePolicyDetails() (*InMagePolicyDetails, bool) {
return nil, false
}
// AsA2APolicyDetails is the PolicyProviderSpecificDetails implementation for InMageBasePolicyDetails.
func (imbpd InMageBasePolicyDetails) AsA2APolicyDetails() (*A2APolicyDetails, bool) {
return nil, false
}
// AsRcmAzureMigrationPolicyDetails is the PolicyProviderSpecificDetails implementation for InMageBasePolicyDetails.
func (imbpd InMageBasePolicyDetails) AsRcmAzureMigrationPolicyDetails() (*RcmAzureMigrationPolicyDetails, bool) {
return nil, false
}
// AsVmwareCbtPolicyDetails is the PolicyProviderSpecificDetails implementation for InMageBasePolicyDetails.
func (imbpd InMageBasePolicyDetails) AsVmwareCbtPolicyDetails() (*VmwareCbtPolicyDetails, bool) {
return nil, false
}
// InMageDisableProtectionProviderSpecificInput is inMage disable protection provider specific input.
type InMageDisableProtectionProviderSpecificInput struct {
InstanceType InstanceTypeDisableProtectionProviderSpecificInput `json:"instanceType,omitempty"`
ReplicaVMDeletionStatus *string `json:"replicaVmDeletionStatus,omitempty"`
}
// MarshalJSON is the custom marshaler for InMageDisableProtectionProviderSpecificInput.
func (imdppsi InMageDisableProtectionProviderSpecificInput) MarshalJSON() ([]byte, error) {
imdppsi.InstanceType = InstanceTypeInMage
type Alias InMageDisableProtectionProviderSpecificInput
return json.Marshal(&struct {
Alias
}{
Alias: (Alias)(imdppsi),
})
}
// AsInMageDisableProtectionProviderSpecificInput is the DisableProtectionProviderSpecificInput implementation for InMageDisableProtectionProviderSpecificInput.
func (imdppsi InMageDisableProtectionProviderSpecificInput) AsInMageDisableProtectionProviderSpecificInput() (*InMageDisableProtectionProviderSpecificInput, bool) {
return &imdppsi, true
}
// InMageDiskDetails is vMware/Physical specific Disk Details
type InMageDiskDetails struct {
DiskID *string `json:"diskId,omitempty"`
DiskName *string `json:"diskName,omitempty"`
DiskSizeInMB *string `json:"diskSizeInMB,omitempty"`
DiskType *string `json:"diskType,omitempty"`
DiskConfiguration *string `json:"diskConfiguration,omitempty"`
VolumeList *[]DiskVolumeDetails `json:"volumeList,omitempty"`
}
// InMageDiskExclusionInput is diskExclusionInput when doing enable protection of virtual machine in InMage provider.
type InMageDiskExclusionInput struct {
VolumeOptions *[]InMageVolumeExclusionOptions `json:"volumeOptions,omitempty"`
DiskSignatureOptions *[]InMageDiskSignatureExclusionOptions `json:"diskSignatureOptions,omitempty"`
}
// InMageDiskSignatureExclusionOptions is guest disk signature based disk exclusion option when doing enable protection
// of virtual machine in InMage provider.
type InMageDiskSignatureExclusionOptions struct {
DiskSignature *string `json:"diskSignature,omitempty"`
}
// InMageEnableProtectionInput is vMware Azure specific enable protection input.
type InMageEnableProtectionInput struct {
InstanceType InstanceTypeEnableProtectionProviderSpecificInput `json:"instanceType,omitempty"`
VMFriendlyName *string `json:"vmFriendlyName,omitempty"`
MasterTargetID *string `json:"masterTargetId,omitempty"`
ProcessServerID *string `json:"processServerId,omitempty"`
RetentionDrive *string `json:"retentionDrive,omitempty"`
RunAsAccountID *string `json:"runAsAccountId,omitempty"`
MultiVMGroupID *string `json:"multiVmGroupId,omitempty"`
MultiVMGroupName *string `json:"multiVmGroupName,omitempty"`
DatastoreName *string `json:"datastoreName,omitempty"`
DiskExclusionInput *InMageDiskExclusionInput `json:"diskExclusionInput,omitempty"`
DisksToInclude *[]string `json:"disksToInclude,omitempty"`
}
// MarshalJSON is the custom marshaler for InMageEnableProtectionInput.
func (imepi InMageEnableProtectionInput) MarshalJSON() ([]byte, error) {
imepi.InstanceType = InstanceTypeEnableProtectionProviderSpecificInputInstanceTypeInMage
type Alias InMageEnableProtectionInput
return json.Marshal(&struct {
Alias
}{
Alias: (Alias)(imepi),
})
}
// AsHyperVReplicaAzureEnableProtectionInput is the EnableProtectionProviderSpecificInput implementation for InMageEnableProtectionInput.
func (imepi InMageEnableProtectionInput) AsHyperVReplicaAzureEnableProtectionInput() (*HyperVReplicaAzureEnableProtectionInput, bool) {
return nil, false
}
// AsSanEnableProtectionInput is the EnableProtectionProviderSpecificInput implementation for InMageEnableProtectionInput.
func (imepi InMageEnableProtectionInput) AsSanEnableProtectionInput() (*SanEnableProtectionInput, bool) {
return nil, false
}
// AsInMageAzureV2EnableProtectionInput is the EnableProtectionProviderSpecificInput implementation for InMageEnableProtectionInput.
func (imepi InMageEnableProtectionInput) AsInMageAzureV2EnableProtectionInput() (*InMageAzureV2EnableProtectionInput, bool) {
return nil, false
}
// AsInMageEnableProtectionInput is the EnableProtectionProviderSpecificInput implementation for InMageEnableProtectionInput.
func (imepi InMageEnableProtectionInput) AsInMageEnableProtectionInput() (*InMageEnableProtectionInput, bool) {
return &imepi, true
}
// AsA2AEnableProtectionInput is the EnableProtectionProviderSpecificInput implementation for InMageEnableProtectionInput.
func (imepi InMageEnableProtectionInput) AsA2AEnableProtectionInput() (*A2AEnableProtectionInput, bool) {
return nil, false
}
// InMageFailoverProviderInput is provider specific input for InMage failover.
type InMageFailoverProviderInput struct {
InstanceType InstanceTypeProviderSpecificFailoverInput `json:"instanceType,omitempty"`
RecoveryPointType RecoveryPointType `json:"recoveryPointType,omitempty"`
RecoveryPointID *string `json:"recoveryPointId,omitempty"`
}
// MarshalJSON is the custom marshaler for InMageFailoverProviderInput.
func (imfpi InMageFailoverProviderInput) MarshalJSON() ([]byte, error) {
imfpi.InstanceType = InstanceTypeProviderSpecificFailoverInputInstanceTypeInMage
type Alias InMageFailoverProviderInput
return json.Marshal(&struct {
Alias
}{
Alias: (Alias)(imfpi),
})
}
// AsHyperVReplicaAzureFailoverProviderInput is the ProviderSpecificFailoverInput implementation for InMageFailoverProviderInput.
func (imfpi InMageFailoverProviderInput) AsHyperVReplicaAzureFailoverProviderInput() (*HyperVReplicaAzureFailoverProviderInput, bool) {
return nil, false
}
// AsHyperVReplicaAzureFailbackProviderInput is the ProviderSpecificFailoverInput implementation for InMageFailoverProviderInput.
func (imfpi InMageFailoverProviderInput) AsHyperVReplicaAzureFailbackProviderInput() (*HyperVReplicaAzureFailbackProviderInput, bool) {
return nil, false
}
// AsInMageAzureV2FailoverProviderInput is the ProviderSpecificFailoverInput implementation for InMageFailoverProviderInput.
func (imfpi InMageFailoverProviderInput) AsInMageAzureV2FailoverProviderInput() (*InMageAzureV2FailoverProviderInput, bool) {
return nil, false
}
// AsInMageFailoverProviderInput is the ProviderSpecificFailoverInput implementation for InMageFailoverProviderInput.
func (imfpi InMageFailoverProviderInput) AsInMageFailoverProviderInput() (*InMageFailoverProviderInput, bool) {
return &imfpi, true
}
// AsA2AFailoverProviderInput is the ProviderSpecificFailoverInput implementation for InMageFailoverProviderInput.
func (imfpi InMageFailoverProviderInput) AsA2AFailoverProviderInput() (*A2AFailoverProviderInput, bool) {
return nil, false
}
// InMagePolicyDetails is inMage specific protection profile details.
type InMagePolicyDetails struct {
InstanceType InstanceTypePolicyProviderSpecificDetails `json:"instanceType,omitempty"`
RecoveryPointThresholdInMinutes *int32 `json:"recoveryPointThresholdInMinutes,omitempty"`
RecoveryPointHistory *int32 `json:"recoveryPointHistory,omitempty"`
AppConsistentFrequencyInMinutes *int32 `json:"appConsistentFrequencyInMinutes,omitempty"`
MultiVMSyncStatus *string `json:"multiVmSyncStatus,omitempty"`
}
// MarshalJSON is the custom marshaler for InMagePolicyDetails.
func (impd InMagePolicyDetails) MarshalJSON() ([]byte, error) {
impd.InstanceType = InstanceTypePolicyProviderSpecificDetailsInstanceTypeInMage
type Alias InMagePolicyDetails
return json.Marshal(&struct {
Alias
}{
Alias: (Alias)(impd),
})
}
// AsHyperVReplicaAzurePolicyDetails is the PolicyProviderSpecificDetails implementation for InMagePolicyDetails.
func (impd InMagePolicyDetails) AsHyperVReplicaAzurePolicyDetails() (*HyperVReplicaAzurePolicyDetails, bool) {
return nil, false
}
// AsHyperVReplicaBasePolicyDetails is the PolicyProviderSpecificDetails implementation for InMagePolicyDetails.
func (impd InMagePolicyDetails) AsHyperVReplicaBasePolicyDetails() (*HyperVReplicaBasePolicyDetails, bool) {
return nil, false
}
// AsHyperVReplicaPolicyDetails is the PolicyProviderSpecificDetails implementation for InMagePolicyDetails.
func (impd InMagePolicyDetails) AsHyperVReplicaPolicyDetails() (*HyperVReplicaPolicyDetails, bool) {
return nil, false
}
// AsHyperVReplicaBluePolicyDetails is the PolicyProviderSpecificDetails implementation for InMagePolicyDetails.
func (impd InMagePolicyDetails) AsHyperVReplicaBluePolicyDetails() (*HyperVReplicaBluePolicyDetails, bool) {
return nil, false
}
// AsInMageBasePolicyDetails is the PolicyProviderSpecificDetails implementation for InMagePolicyDetails.
func (impd InMagePolicyDetails) AsInMageBasePolicyDetails() (*InMageBasePolicyDetails, bool) {
return nil, false
}
// AsInMageAzureV2PolicyDetails is the PolicyProviderSpecificDetails implementation for InMagePolicyDetails.
func (impd InMagePolicyDetails) AsInMageAzureV2PolicyDetails() (*InMageAzureV2PolicyDetails, bool) {
return nil, false
}
// AsInMagePolicyDetails is the PolicyProviderSpecificDetails implementation for InMagePolicyDetails.
func (impd InMagePolicyDetails) AsInMagePolicyDetails() (*InMagePolicyDetails, bool) {
return &impd, true
}
// AsA2APolicyDetails is the PolicyProviderSpecificDetails implementation for InMagePolicyDetails.
func (impd InMagePolicyDetails) AsA2APolicyDetails() (*A2APolicyDetails, bool) {
return nil, false
}
// AsRcmAzureMigrationPolicyDetails is the PolicyProviderSpecificDetails implementation for InMagePolicyDetails.
func (impd InMagePolicyDetails) AsRcmAzureMigrationPolicyDetails() (*RcmAzureMigrationPolicyDetails, bool) {
return nil, false
}
// AsVmwareCbtPolicyDetails is the PolicyProviderSpecificDetails implementation for InMagePolicyDetails.
func (impd InMagePolicyDetails) AsVmwareCbtPolicyDetails() (*VmwareCbtPolicyDetails, bool) {
return nil, false
}
// InMagePolicyInput is vMWare Azure specific protection profile Input.
type InMagePolicyInput struct {
InstanceType InstanceTypePolicyProviderSpecificInput `json:"instanceType,omitempty"`
RecoveryPointThresholdInMinutes *int32 `json:"recoveryPointThresholdInMinutes,omitempty"`
RecoveryPointHistory *int32 `json:"recoveryPointHistory,omitempty"`
AppConsistentFrequencyInMinutes *int32 `json:"appConsistentFrequencyInMinutes,omitempty"`
MultiVMSyncStatus SetMultiVMSyncStatus `json:"multiVmSyncStatus,omitempty"`
}
// MarshalJSON is the custom marshaler for InMagePolicyInput.
func (impi InMagePolicyInput) MarshalJSON() ([]byte, error) {
impi.InstanceType = InstanceTypePolicyProviderSpecificInputInstanceTypeInMage
type Alias InMagePolicyInput
return json.Marshal(&struct {
Alias
}{
Alias: (Alias)(impi),
})
}
// AsHyperVReplicaAzurePolicyInput is the PolicyProviderSpecificInput implementation for InMagePolicyInput.
func (impi InMagePolicyInput) AsHyperVReplicaAzurePolicyInput() (*HyperVReplicaAzurePolicyInput, bool) {
return nil, false
}
// AsHyperVReplicaPolicyInput is the PolicyProviderSpecificInput implementation for InMagePolicyInput.
func (impi InMagePolicyInput) AsHyperVReplicaPolicyInput() (*HyperVReplicaPolicyInput, bool) {
return nil, false
}
// AsHyperVReplicaBluePolicyInput is the PolicyProviderSpecificInput implementation for InMagePolicyInput.
func (impi InMagePolicyInput) AsHyperVReplicaBluePolicyInput() (*HyperVReplicaBluePolicyInput, bool) {
return nil, false
}
// AsInMageAzureV2PolicyInput is the PolicyProviderSpecificInput implementation for InMagePolicyInput.
func (impi InMagePolicyInput) AsInMageAzureV2PolicyInput() (*InMageAzureV2PolicyInput, bool) {
return nil, false
}
// AsInMagePolicyInput is the PolicyProviderSpecificInput implementation for InMagePolicyInput.
func (impi InMagePolicyInput) AsInMagePolicyInput() (*InMagePolicyInput, bool) {
return &impi, true
}
// AsA2APolicyCreationInput is the PolicyProviderSpecificInput implementation for InMagePolicyInput.
func (impi InMagePolicyInput) AsA2APolicyCreationInput() (*A2APolicyCreationInput, bool) {
return nil, false
}
// AsVMwareCbtPolicyCreationInput is the PolicyProviderSpecificInput implementation for InMagePolicyInput.
func (impi InMagePolicyInput) AsVMwareCbtPolicyCreationInput() (*VMwareCbtPolicyCreationInput, bool) {
return nil, false
}
// InMageProtectedDiskDetails is inMage protected disk details.
type InMageProtectedDiskDetails struct {
DiskID *string `json:"diskId,omitempty"`
DiskName *string `json:"diskName,omitempty"`
ProtectionStage *string `json:"protectionStage,omitempty"`
HealthErrorCode *string `json:"healthErrorCode,omitempty"`
RpoInSeconds *int64 `json:"rpoInSeconds,omitempty"`
ResyncRequired *string `json:"resyncRequired,omitempty"`
ResyncProgressPercentage *int32 `json:"resyncProgressPercentage,omitempty"`
ResyncDurationInSeconds *int64 `json:"resyncDurationInSeconds,omitempty"`
DiskCapacityInBytes *int64 `json:"diskCapacityInBytes,omitempty"`
FileSystemCapacityInBytes *int64 `json:"fileSystemCapacityInBytes,omitempty"`
SourceDataInMB *float64 `json:"sourceDataInMB,omitempty"`
PsDataInMB *float64 `json:"psDataInMB,omitempty"`
TargetDataInMB *float64 `json:"targetDataInMB,omitempty"`
DiskResized *string `json:"diskResized,omitempty"`
LastRpoCalculatedTime *date.Time `json:"lastRpoCalculatedTime,omitempty"`
}
// InMageReplicationDetails is inMage provider specific settings
type InMageReplicationDetails struct {
InstanceType InstanceTypeReplicationProviderSpecificSettings `json:"instanceType,omitempty"`
ActiveSiteType *string `json:"activeSiteType,omitempty"`
SourceVMCPUCount *int32 `json:"sourceVmCPUCount,omitempty"`
SourceVMRAMSizeInMB *int32 `json:"sourceVmRAMSizeInMB,omitempty"`
OsDetails *OSDiskDetails `json:"osDetails,omitempty"`
ProtectionStage *string `json:"protectionStage,omitempty"`
VMID *string `json:"vmId,omitempty"`
VMProtectionState *string `json:"vmProtectionState,omitempty"`
VMProtectionStateDescription *string `json:"vmProtectionStateDescription,omitempty"`
ResyncDetails *InitialReplicationDetails `json:"resyncDetails,omitempty"`
RetentionWindowStart *date.Time `json:"retentionWindowStart,omitempty"`
RetentionWindowEnd *date.Time `json:"retentionWindowEnd,omitempty"`
CompressedDataRateInMB *float64 `json:"compressedDataRateInMB,omitempty"`
UncompressedDataRateInMB *float64 `json:"uncompressedDataRateInMB,omitempty"`
RpoInSeconds *int64 `json:"rpoInSeconds,omitempty"`
ProtectedDisks *[]InMageProtectedDiskDetails `json:"protectedDisks,omitempty"`
IPAddress *string `json:"ipAddress,omitempty"`
LastHeartbeat *date.Time `json:"lastHeartbeat,omitempty"`
ProcessServerID *string `json:"processServerId,omitempty"`
MasterTargetID *string `json:"masterTargetId,omitempty"`
ConsistencyPoints *map[string]*date.Time `json:"consistencyPoints,omitempty"`
DiskResized *string `json:"diskResized,omitempty"`
RebootAfterUpdateStatus *string `json:"rebootAfterUpdateStatus,omitempty"`
MultiVMGroupID *string `json:"multiVmGroupId,omitempty"`
MultiVMGroupName *string `json:"multiVmGroupName,omitempty"`
MultiVMSyncStatus *string `json:"multiVmSyncStatus,omitempty"`
AgentDetails *InMageAgentDetails `json:"agentDetails,omitempty"`
VCenterInfrastructureID *string `json:"vCenterInfrastructureId,omitempty"`
InfrastructureVMID *string `json:"infrastructureVmId,omitempty"`
VMNics *[]VMNicDetails `json:"vmNics,omitempty"`
DiscoveryType *string `json:"discoveryType,omitempty"`
AzureStorageAccountID *string `json:"azureStorageAccountId,omitempty"`
Datastores *[]string `json:"datastores,omitempty"`
ValidationErrors *[]HealthError `json:"validationErrors,omitempty"`
LastRpoCalculatedTime *date.Time `json:"lastRpoCalculatedTime,omitempty"`
LastUpdateReceivedTime *date.Time `json:"lastUpdateReceivedTime,omitempty"`
ReplicaID *string `json:"replicaId,omitempty"`
OsVersion *string `json:"osVersion,omitempty"`
}
// MarshalJSON is the custom marshaler for InMageReplicationDetails.
func (imrd InMageReplicationDetails) MarshalJSON() ([]byte, error) {
imrd.InstanceType = InstanceTypeReplicationProviderSpecificSettingsInstanceTypeInMage
type Alias InMageReplicationDetails
return json.Marshal(&struct {
Alias
}{
Alias: (Alias)(imrd),
})
}
// AsHyperVReplicaBaseReplicationDetails is the ReplicationProviderSpecificSettings implementation for InMageReplicationDetails.
func (imrd InMageReplicationDetails) AsHyperVReplicaBaseReplicationDetails() (*HyperVReplicaBaseReplicationDetails, bool) {
return nil, false
}
// AsHyperVReplicaReplicationDetails is the ReplicationProviderSpecificSettings implementation for InMageReplicationDetails.
func (imrd InMageReplicationDetails) AsHyperVReplicaReplicationDetails() (*HyperVReplicaReplicationDetails, bool) {
return nil, false
}
// AsHyperVReplicaBlueReplicationDetails is the ReplicationProviderSpecificSettings implementation for InMageReplicationDetails.
func (imrd InMageReplicationDetails) AsHyperVReplicaBlueReplicationDetails() (*HyperVReplicaBlueReplicationDetails, bool) {
return nil, false
}
// AsHyperVReplicaAzureReplicationDetails is the ReplicationProviderSpecificSettings implementation for InMageReplicationDetails.
func (imrd InMageReplicationDetails) AsHyperVReplicaAzureReplicationDetails() (*HyperVReplicaAzureReplicationDetails, bool) {
return nil, false
}
// AsInMageAzureV2ReplicationDetails is the ReplicationProviderSpecificSettings implementation for InMageReplicationDetails.
func (imrd InMageReplicationDetails) AsInMageAzureV2ReplicationDetails() (*InMageAzureV2ReplicationDetails, bool) {
return nil, false
}
// AsInMageReplicationDetails is the ReplicationProviderSpecificSettings implementation for InMageReplicationDetails.
func (imrd InMageReplicationDetails) AsInMageReplicationDetails() (*InMageReplicationDetails, bool) {
return &imrd, true
}
// AsA2AReplicationDetails is the ReplicationProviderSpecificSettings implementation for InMageReplicationDetails.
func (imrd InMageReplicationDetails) AsA2AReplicationDetails() (*A2AReplicationDetails, bool) {
return nil, false
}
// InMageReprotectInput is inMageAzureV2 specific provider input.
type InMageReprotectInput struct {
InstanceType InstanceTypeReverseReplicationProviderSpecificInput `json:"instanceType,omitempty"`
MasterTargetID *string `json:"masterTargetId,omitempty"`
ProcessServerID *string `json:"processServerId,omitempty"`
RetentionDrive *string `json:"retentionDrive,omitempty"`
RunAsAccountID *string `json:"runAsAccountId,omitempty"`
DatastoreName *string `json:"datastoreName,omitempty"`
DiskExclusionInput *InMageDiskExclusionInput `json:"diskExclusionInput,omitempty"`
ProfileID *string `json:"profileId,omitempty"`
DisksToInclude *[]string `json:"disksToInclude,omitempty"`
}
// MarshalJSON is the custom marshaler for InMageReprotectInput.
func (imri InMageReprotectInput) MarshalJSON() ([]byte, error) {
imri.InstanceType = InstanceTypeReverseReplicationProviderSpecificInputInstanceTypeInMage
type Alias InMageReprotectInput
return json.Marshal(&struct {
Alias
}{
Alias: (Alias)(imri),
})
}
// AsHyperVReplicaAzureReprotectInput is the ReverseReplicationProviderSpecificInput implementation for InMageReprotectInput.
func (imri InMageReprotectInput) AsHyperVReplicaAzureReprotectInput() (*HyperVReplicaAzureReprotectInput, bool) {
return nil, false
}
// AsInMageAzureV2ReprotectInput is the ReverseReplicationProviderSpecificInput implementation for InMageReprotectInput.
func (imri InMageReprotectInput) AsInMageAzureV2ReprotectInput() (*InMageAzureV2ReprotectInput, bool) {
return nil, false
}
// AsInMageReprotectInput is the ReverseReplicationProviderSpecificInput implementation for InMageReprotectInput.
func (imri InMageReprotectInput) AsInMageReprotectInput() (*InMageReprotectInput, bool) {
return &imri, true
}
// AsA2AReprotectInput is the ReverseReplicationProviderSpecificInput implementation for InMageReprotectInput.
func (imri InMageReprotectInput) AsA2AReprotectInput() (*A2AReprotectInput, bool) {
return nil, false
}
// InMageVolumeExclusionOptions is guest disk signature based disk exclusion option when doing enable protection of
// virtual machine in InMage provider.
type InMageVolumeExclusionOptions struct {
VolumeLabel *string `json:"volumeLabel,omitempty"`
OnlyExcludeIfSingleVolume *string `json:"OnlyExcludeIfSingleVolume,omitempty"`
}
// InputEndpoint is azure VM input endpoint details.
type InputEndpoint struct {
EndpointName *string `json:"endpointName,omitempty"`
PrivatePort *int32 `json:"privatePort,omitempty"`
PublicPort *int32 `json:"publicPort,omitempty"`
Protocol *string `json:"protocol,omitempty"`
}
// Job is job details.
type Job struct {
autorest.Response `json:"-"`
ID *string `json:"id,omitempty"`
Name *string `json:"name,omitempty"`
Type *string `json:"type,omitempty"`
Location *string `json:"location,omitempty"`
Properties *JobProperties `json:"properties,omitempty"`
Status *string `json:"status,omitempty"`
Error *ARMException `json:"error,omitempty"`
StartTime *string `json:"startTime,omitempty"`
EndTime *string `json:"endTime,omitempty"`
}
// JobCollection is collection of jobs.
type JobCollection struct {
autorest.Response `json:"-"`
Value *[]Job `json:"value,omitempty"`
NextLink *string `json:"nextLink,omitempty"`
}
// JobCollectionPreparer prepares a request to retrieve the next set of results. It returns
// nil if no more results exist.
func (client JobCollection) JobCollectionPreparer() (*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)))
}
// JobDetails is job details based on specific job type.
type JobDetails interface {
AsAsrJobDetails() (*AsrJobDetails, bool)
AsTestFailoverJobDetails() (*TestFailoverJobDetails, bool)
AsFailoverJobDetails() (*FailoverJobDetails, bool)
AsExportJobDetails() (*ExportJobDetails, bool)
AsSwitchProtectionJobDetails() (*SwitchProtectionJobDetails, bool)
}
func unmarshalJobDetails(body []byte) (JobDetails, error) {
var m map[string]interface{}
err := json.Unmarshal(body, &m)
if err != nil {
return nil, err
}
switch m["instanceType"] {
case string(InstanceTypeAsrJobDetails):
var ajd AsrJobDetails
err := json.Unmarshal(body, &ajd)
return ajd, err
case string(InstanceTypeTestFailoverJobDetails):
var tfjd TestFailoverJobDetails
err := json.Unmarshal(body, &tfjd)
return tfjd, err
case string(InstanceTypeFailoverJobDetails):
var fjd FailoverJobDetails
err := json.Unmarshal(body, &fjd)
return fjd, err
case string(InstanceTypeExportJobDetails):
var ejd ExportJobDetails
err := json.Unmarshal(body, &ejd)
return ejd, err
case string(InstanceTypeSwitchProtectionJobDetails):
var spjd SwitchProtectionJobDetails
err := json.Unmarshal(body, &spjd)
return spjd, err
default:
return nil, errors.New("Unsupported type")
}
}
func unmarshalJobDetailsArray(body []byte) ([]JobDetails, error) {
var rawMessages []*json.RawMessage
err := json.Unmarshal(body, &rawMessages)
if err != nil {
return nil, err
}
jdArray := make([]JobDetails, len(rawMessages))
for index, rawMessage := range rawMessages {
jd, err := unmarshalJobDetails(*rawMessage)
if err != nil {
return nil, err
}
jdArray[index] = jd
}
return jdArray, nil
}
// JobEntity is this class contains the minimal job details required to navigate to the desired drill down.
type JobEntity struct {
JobID *string `json:"jobId,omitempty"`
JobFriendlyName *string `json:"jobFriendlyName,omitempty"`
TargetObjectID *string `json:"targetObjectId,omitempty"`
TargetObjectName *string `json:"targetObjectName,omitempty"`
TargetInstanceType *string `json:"targetInstanceType,omitempty"`
JobScenarioName *string `json:"jobScenarioName,omitempty"`
}
// JobErrorDetails is this class contains the error details per object.
type JobErrorDetails struct {
ServiceErrorDetails *ServiceError `json:"serviceErrorDetails,omitempty"`
ProviderErrorDetails *ProviderError `json:"providerErrorDetails,omitempty"`
ErrorLevel *string `json:"errorLevel,omitempty"`
CreationTime *date.Time `json:"creationTime,omitempty"`
TaskID *string `json:"taskId,omitempty"`
}
// JobProperties is job custom data details.
type JobProperties struct {
ActivityID *string `json:"activityId,omitempty"`
ScenarioName *string `json:"scenarioName,omitempty"`
FriendlyName *string `json:"friendlyName,omitempty"`
State *string `json:"state,omitempty"`
StateDescription *string `json:"stateDescription,omitempty"`
Tasks *[]ASRTask `json:"tasks,omitempty"`
Errors *[]JobErrorDetails `json:"errors,omitempty"`
StartTime *date.Time `json:"startTime,omitempty"`
EndTime *date.Time `json:"endTime,omitempty"`
AllowedActions *[]string `json:"allowedActions,omitempty"`
TargetObjectID *string `json:"targetObjectId,omitempty"`
TargetObjectName *string `json:"targetObjectName,omitempty"`
TargetInstanceType *string `json:"targetInstanceType,omitempty"`
CustomDetails JobDetails `json:"customDetails,omitempty"`
}
// UnmarshalJSON is the custom unmarshaler for JobProperties struct.
func (jp *JobProperties) 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["activityId"]
if v != nil {
var activityID string
err = json.Unmarshal(*m["activityId"], &activityID)
if err != nil {
return err
}
jp.ActivityID = &activityID
}
v = m["scenarioName"]
if v != nil {
var scenarioName string
err = json.Unmarshal(*m["scenarioName"], &scenarioName)
if err != nil {
return err
}
jp.ScenarioName = &scenarioName
}
v = m["friendlyName"]
if v != nil {
var friendlyName string
err = json.Unmarshal(*m["friendlyName"], &friendlyName)
if err != nil {
return err
}
jp.FriendlyName = &friendlyName
}
v = m["state"]
if v != nil {
var state string
err = json.Unmarshal(*m["state"], &state)
if err != nil {
return err
}
jp.State = &state
}
v = m["stateDescription"]
if v != nil {
var stateDescription string
err = json.Unmarshal(*m["stateDescription"], &stateDescription)
if err != nil {
return err
}
jp.StateDescription = &stateDescription
}
v = m["tasks"]
if v != nil {
var tasks []ASRTask
err = json.Unmarshal(*m["tasks"], &tasks)
if err != nil {
return err
}
jp.Tasks = &tasks
}
v = m["errors"]
if v != nil {
var errorsVar []JobErrorDetails
err = json.Unmarshal(*m["errors"], &errorsVar)
if err != nil {
return err
}
jp.Errors = &errorsVar
}
v = m["startTime"]
if v != nil {
var startTime date.Time
err = json.Unmarshal(*m["startTime"], &startTime)
if err != nil {
return err
}
jp.StartTime = &startTime
}
v = m["endTime"]
if v != nil {
var endTime date.Time
err = json.Unmarshal(*m["endTime"], &endTime)
if err != nil {
return err
}
jp.EndTime = &endTime
}
v = m["allowedActions"]
if v != nil {
var allowedActions []string
err = json.Unmarshal(*m["allowedActions"], &allowedActions)
if err != nil {
return err
}
jp.AllowedActions = &allowedActions
}
v = m["targetObjectId"]
if v != nil {
var targetObjectID string
err = json.Unmarshal(*m["targetObjectId"], &targetObjectID)
if err != nil {
return err
}
jp.TargetObjectID = &targetObjectID
}
v = m["targetObjectName"]
if v != nil {
var targetObjectName string
err = json.Unmarshal(*m["targetObjectName"], &targetObjectName)
if err != nil {
return err
}
jp.TargetObjectName = &targetObjectName
}
v = m["targetInstanceType"]
if v != nil {
var targetInstanceType string
err = json.Unmarshal(*m["targetInstanceType"], &targetInstanceType)
if err != nil {
return err
}
jp.TargetInstanceType = &targetInstanceType
}
v = m["customDetails"]
if v != nil {
customDetails, err := unmarshalJobDetails(*m["customDetails"])
if err != nil {
return err
}
jp.CustomDetails = customDetails
}
return nil
}
// JobQueryParameter is query parameter to enumerate jobs.
type JobQueryParameter struct {
StartTime *string `json:"startTime,omitempty"`
EndTime *string `json:"endTime,omitempty"`
FabricID *string `json:"fabricId,omitempty"`
AffectedObjectTypes *[]string `json:"affectedObjectTypes,omitempty"`
JobStatus *[]string `json:"jobStatus,omitempty"`
}
// JobStatusEventDetails is model class for event details of a job status event.
type JobStatusEventDetails struct {
InstanceType InstanceTypeEventSpecificDetails `json:"instanceType,omitempty"`
JobID *string `json:"jobId,omitempty"`
JobFriendlyName *string `json:"jobFriendlyName,omitempty"`
JobStatus *string `json:"jobStatus,omitempty"`
AffectedObjectType *string `json:"affectedObjectType,omitempty"`
}
// MarshalJSON is the custom marshaler for JobStatusEventDetails.
func (jsed JobStatusEventDetails) MarshalJSON() ([]byte, error) {
jsed.InstanceType = InstanceTypeJobStatus
type Alias JobStatusEventDetails
return json.Marshal(&struct {
Alias
}{
Alias: (Alias)(jsed),
})
}
// AsJobStatusEventDetails is the EventSpecificDetails implementation for JobStatusEventDetails.
func (jsed JobStatusEventDetails) AsJobStatusEventDetails() (*JobStatusEventDetails, bool) {
return &jsed, true
}
// JobTaskDetails is this class represents a task which is actually a workflow so that one can navigate to its
// individual drill down.
type JobTaskDetails struct {
InstanceType InstanceTypeTaskTypeDetails `json:"instanceType,omitempty"`
JobTask *JobEntity `json:"jobTask,omitempty"`
}
// MarshalJSON is the custom marshaler for JobTaskDetails.
func (jtd JobTaskDetails) MarshalJSON() ([]byte, error) {
jtd.InstanceType = InstanceTypeJobTaskDetails
type Alias JobTaskDetails
return json.Marshal(&struct {
Alias
}{
Alias: (Alias)(jtd),
})
}
// AsJobTaskDetails is the TaskTypeDetails implementation for JobTaskDetails.
func (jtd JobTaskDetails) AsJobTaskDetails() (*JobTaskDetails, bool) {
return &jtd, true
}
// AsVirtualMachineTaskDetails is the TaskTypeDetails implementation for JobTaskDetails.
func (jtd JobTaskDetails) AsVirtualMachineTaskDetails() (*VirtualMachineTaskDetails, bool) {
return nil, false
}
// AsFabricReplicationGroupTaskDetails is the TaskTypeDetails implementation for JobTaskDetails.
func (jtd JobTaskDetails) AsFabricReplicationGroupTaskDetails() (*FabricReplicationGroupTaskDetails, bool) {
return nil, false
}
// AsManualActionTaskDetails is the TaskTypeDetails implementation for JobTaskDetails.
func (jtd JobTaskDetails) AsManualActionTaskDetails() (*ManualActionTaskDetails, bool) {
return nil, false
}
// AsScriptActionTaskDetails is the TaskTypeDetails implementation for JobTaskDetails.
func (jtd JobTaskDetails) AsScriptActionTaskDetails() (*ScriptActionTaskDetails, bool) {
return nil, false
}
// AsVMNicUpdatesTaskDetails is the TaskTypeDetails implementation for JobTaskDetails.
func (jtd JobTaskDetails) AsVMNicUpdatesTaskDetails() (*VMNicUpdatesTaskDetails, bool) {
return nil, false
}
// AsConsistencyCheckTaskDetails is the TaskTypeDetails implementation for JobTaskDetails.
func (jtd JobTaskDetails) AsConsistencyCheckTaskDetails() (*ConsistencyCheckTaskDetails, bool) {
return nil, false
}
// AsAutomationRunbookTaskDetails is the TaskTypeDetails implementation for JobTaskDetails.
func (jtd JobTaskDetails) AsAutomationRunbookTaskDetails() (*AutomationRunbookTaskDetails, bool) {
return nil, false
}
// LogicalNetwork is logical network data model.
type LogicalNetwork struct {
autorest.Response `json:"-"`
ID *string `json:"id,omitempty"`
Name *string `json:"name,omitempty"`
Type *string `json:"type,omitempty"`
Location *string `json:"location,omitempty"`
Properties *LogicalNetworkProperties `json:"properties,omitempty"`
}
// LogicalNetworkCollection is list of logical networks.
type LogicalNetworkCollection struct {
autorest.Response `json:"-"`
Value *[]LogicalNetwork `json:"value,omitempty"`
NextLink *string `json:"nextLink,omitempty"`
}
// LogicalNetworkCollectionPreparer prepares a request to retrieve the next set of results. It returns
// nil if no more results exist.
func (client LogicalNetworkCollection) LogicalNetworkCollectionPreparer() (*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)))
}
// LogicalNetworkProperties is logical Network Properties.
type LogicalNetworkProperties struct {
FriendlyName *string `json:"friendlyName,omitempty"`
NetworkVirtualizationStatus *string `json:"networkVirtualizationStatus,omitempty"`
LogicalNetworkUsage *string `json:"logicalNetworkUsage,omitempty"`
LogicalNetworkDefinitionsStatus *string `json:"logicalNetworkDefinitionsStatus,omitempty"`
}
// ManualActionTaskDetails is this class represents the manual action task details.
type ManualActionTaskDetails struct {
InstanceType InstanceTypeTaskTypeDetails `json:"instanceType,omitempty"`
Name *string `json:"name,omitempty"`
Instructions *string `json:"instructions,omitempty"`
Observation *string `json:"observation,omitempty"`
}
// MarshalJSON is the custom marshaler for ManualActionTaskDetails.
func (matd ManualActionTaskDetails) MarshalJSON() ([]byte, error) {
matd.InstanceType = InstanceTypeManualActionTaskDetails
type Alias ManualActionTaskDetails
return json.Marshal(&struct {
Alias
}{
Alias: (Alias)(matd),
})
}
// AsJobTaskDetails is the TaskTypeDetails implementation for ManualActionTaskDetails.
func (matd ManualActionTaskDetails) AsJobTaskDetails() (*JobTaskDetails, bool) {
return nil, false
}
// AsVirtualMachineTaskDetails is the TaskTypeDetails implementation for ManualActionTaskDetails.
func (matd ManualActionTaskDetails) AsVirtualMachineTaskDetails() (*VirtualMachineTaskDetails, bool) {
return nil, false
}
// AsFabricReplicationGroupTaskDetails is the TaskTypeDetails implementation for ManualActionTaskDetails.
func (matd ManualActionTaskDetails) AsFabricReplicationGroupTaskDetails() (*FabricReplicationGroupTaskDetails, bool) {
return nil, false
}
// AsManualActionTaskDetails is the TaskTypeDetails implementation for ManualActionTaskDetails.
func (matd ManualActionTaskDetails) AsManualActionTaskDetails() (*ManualActionTaskDetails, bool) {
return &matd, true
}
// AsScriptActionTaskDetails is the TaskTypeDetails implementation for ManualActionTaskDetails.
func (matd ManualActionTaskDetails) AsScriptActionTaskDetails() (*ScriptActionTaskDetails, bool) {
return nil, false
}
// AsVMNicUpdatesTaskDetails is the TaskTypeDetails implementation for ManualActionTaskDetails.
func (matd ManualActionTaskDetails) AsVMNicUpdatesTaskDetails() (*VMNicUpdatesTaskDetails, bool) {
return nil, false
}
// AsConsistencyCheckTaskDetails is the TaskTypeDetails implementation for ManualActionTaskDetails.
func (matd ManualActionTaskDetails) AsConsistencyCheckTaskDetails() (*ConsistencyCheckTaskDetails, bool) {
return nil, false
}
// AsAutomationRunbookTaskDetails is the TaskTypeDetails implementation for ManualActionTaskDetails.
func (matd ManualActionTaskDetails) AsAutomationRunbookTaskDetails() (*AutomationRunbookTaskDetails, bool) {
return nil, false
}
// MasterTargetServer is details of a Master Target Server.
type MasterTargetServer struct {
ID *string `json:"id,omitempty"`
IPAddress *string `json:"ipAddress,omitempty"`
Name *string `json:"name,omitempty"`
OsType *string `json:"osType,omitempty"`
AgentVersion *string `json:"agentVersion,omitempty"`
LastHeartbeat *date.Time `json:"lastHeartbeat,omitempty"`
VersionStatus *string `json:"versionStatus,omitempty"`
RetentionVolumes *[]RetentionVolume `json:"retentionVolumes,omitempty"`
DataStores *[]DataStore `json:"dataStores,omitempty"`
ValidationErrors *[]HealthError `json:"validationErrors,omitempty"`
DiskCount *int32 `json:"diskCount,omitempty"`
OsVersion *string `json:"osVersion,omitempty"`
}
// MethodCallStatus is reports method status where exception was raised.
type MethodCallStatus struct {
IsVirtual *string `json:"isVirtual,omitempty"`
Parameters *[]string `json:"parameters,omitempty"`
ContainsGenericParameters *string `json:"containsGenericParameters,omitempty"`
}
// MobilityServiceUpdate is the Mobility Service update details.
type MobilityServiceUpdate struct {
Version *string `json:"version,omitempty"`
RebootStatus *string `json:"rebootStatus,omitempty"`
OsType *string `json:"osType,omitempty"`
}
// Network is network model.
type Network struct {
autorest.Response `json:"-"`
ID *string `json:"id,omitempty"`
Name *string `json:"name,omitempty"`
Type *string `json:"type,omitempty"`
Location *string `json:"location,omitempty"`
Properties *NetworkProperties `json:"properties,omitempty"`
}
// NetworkCollection is list of networks.
type NetworkCollection struct {
autorest.Response `json:"-"`
Value *[]Network `json:"value,omitempty"`
NextLink *string `json:"nextLink,omitempty"`
}
// NetworkCollectionPreparer prepares a request to retrieve the next set of results. It returns
// nil if no more results exist.
func (client NetworkCollection) NetworkCollectionPreparer() (*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)))
}
// NetworkMapping is network Mapping model. Ideally it should have been possible to inherit this class from prev
// version in InheritedModels as long as there is no difference in structure or method signature. Since there were no
// base Models for certain fields and methods viz NetworkMappingProperties and Load with required return type, the
// class has been introduced in its entirety with references to base models to facilitate exensions in subsequent
// versions.
type NetworkMapping struct {
autorest.Response `json:"-"`
ID *string `json:"id,omitempty"`
Name *string `json:"name,omitempty"`
Type *string `json:"type,omitempty"`
Location *string `json:"location,omitempty"`
Properties *NetworkMappingProperties `json:"properties,omitempty"`
}
// NetworkMappingCollection is list of network mappings. As with NetworkMapping, it should be possible to reuse a prev
// version of this class. It doesn't seem likely this class could be anything more than a slightly bespoke collection
// of NetworkMapping. Hence it makes sense to override Load with Base.NetworkMapping instead of existing
// CurrentVersion.NetworkMapping.
type NetworkMappingCollection struct {
autorest.Response `json:"-"`
Value *[]NetworkMapping `json:"value,omitempty"`
NextLink *string `json:"nextLink,omitempty"`
}
// NetworkMappingCollectionPreparer prepares a request to retrieve the next set of results. It returns
// nil if no more results exist.
func (client NetworkMappingCollection) NetworkMappingCollectionPreparer() (*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)))
}
// NetworkMappingFabricSpecificSettings is network Mapping fabric specific settings.
type NetworkMappingFabricSpecificSettings interface {
AsAzureToAzureNetworkMappingSettings() (*AzureToAzureNetworkMappingSettings, bool)
AsVmmToAzureNetworkMappingSettings() (*VmmToAzureNetworkMappingSettings, bool)
AsVmmToVmmNetworkMappingSettings() (*VmmToVmmNetworkMappingSettings, bool)
}
func unmarshalNetworkMappingFabricSpecificSettings(body []byte) (NetworkMappingFabricSpecificSettings, error) {
var m map[string]interface{}
err := json.Unmarshal(body, &m)
if err != nil {
return nil, err
}
switch m["instanceType"] {
case string(InstanceTypeNetworkMappingFabricSpecificSettingsInstanceTypeAzureToAzure):
var atanms AzureToAzureNetworkMappingSettings
err := json.Unmarshal(body, &atanms)
return atanms, err
case string(InstanceTypeNetworkMappingFabricSpecificSettingsInstanceTypeVmmToAzure):
var vtanms VmmToAzureNetworkMappingSettings
err := json.Unmarshal(body, &vtanms)
return vtanms, err
case string(InstanceTypeNetworkMappingFabricSpecificSettingsInstanceTypeVmmToVmm):
var vtvnms VmmToVmmNetworkMappingSettings
err := json.Unmarshal(body, &vtvnms)
return vtvnms, err
default:
return nil, errors.New("Unsupported type")
}
}
func unmarshalNetworkMappingFabricSpecificSettingsArray(body []byte) ([]NetworkMappingFabricSpecificSettings, error) {
var rawMessages []*json.RawMessage
err := json.Unmarshal(body, &rawMessages)
if err != nil {
return nil, err
}
nmfssArray := make([]NetworkMappingFabricSpecificSettings, len(rawMessages))
for index, rawMessage := range rawMessages {
nmfss, err := unmarshalNetworkMappingFabricSpecificSettings(*rawMessage)
if err != nil {
return nil, err
}
nmfssArray[index] = nmfss
}
return nmfssArray, nil
}
// NetworkMappingProperties is network Mapping Properties.
type NetworkMappingProperties struct {
State *string `json:"state,omitempty"`
PrimaryNetworkFriendlyName *string `json:"primaryNetworkFriendlyName,omitempty"`
PrimaryNetworkID *string `json:"primaryNetworkId,omitempty"`
PrimaryFabricFriendlyName *string `json:"primaryFabricFriendlyName,omitempty"`
RecoveryNetworkFriendlyName *string `json:"recoveryNetworkFriendlyName,omitempty"`
RecoveryNetworkID *string `json:"recoveryNetworkId,omitempty"`
RecoveryFabricArmID *string `json:"recoveryFabricArmId,omitempty"`
RecoveryFabricFriendlyName *string `json:"recoveryFabricFriendlyName,omitempty"`
FabricSpecificSettings NetworkMappingFabricSpecificSettings `json:"fabricSpecificSettings,omitempty"`
}
// UnmarshalJSON is the custom unmarshaler for NetworkMappingProperties struct.
func (nmp *NetworkMappingProperties) 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["state"]
if v != nil {
var state string
err = json.Unmarshal(*m["state"], &state)
if err != nil {
return err
}
nmp.State = &state
}
v = m["primaryNetworkFriendlyName"]
if v != nil {
var primaryNetworkFriendlyName string
err = json.Unmarshal(*m["primaryNetworkFriendlyName"], &primaryNetworkFriendlyName)
if err != nil {
return err
}
nmp.PrimaryNetworkFriendlyName = &primaryNetworkFriendlyName
}
v = m["primaryNetworkId"]
if v != nil {
var primaryNetworkID string
err = json.Unmarshal(*m["primaryNetworkId"], &primaryNetworkID)
if err != nil {
return err
}
nmp.PrimaryNetworkID = &primaryNetworkID
}
v = m["primaryFabricFriendlyName"]
if v != nil {
var primaryFabricFriendlyName string
err = json.Unmarshal(*m["primaryFabricFriendlyName"], &primaryFabricFriendlyName)
if err != nil {
return err
}
nmp.PrimaryFabricFriendlyName = &primaryFabricFriendlyName
}
v = m["recoveryNetworkFriendlyName"]
if v != nil {
var recoveryNetworkFriendlyName string
err = json.Unmarshal(*m["recoveryNetworkFriendlyName"], &recoveryNetworkFriendlyName)
if err != nil {
return err
}
nmp.RecoveryNetworkFriendlyName = &recoveryNetworkFriendlyName
}
v = m["recoveryNetworkId"]
if v != nil {
var recoveryNetworkID string
err = json.Unmarshal(*m["recoveryNetworkId"], &recoveryNetworkID)
if err != nil {
return err
}
nmp.RecoveryNetworkID = &recoveryNetworkID
}
v = m["recoveryFabricArmId"]
if v != nil {
var recoveryFabricArmID string
err = json.Unmarshal(*m["recoveryFabricArmId"], &recoveryFabricArmID)
if err != nil {
return err
}
nmp.RecoveryFabricArmID = &recoveryFabricArmID
}
v = m["recoveryFabricFriendlyName"]
if v != nil {
var recoveryFabricFriendlyName string
err = json.Unmarshal(*m["recoveryFabricFriendlyName"], &recoveryFabricFriendlyName)
if err != nil {
return err
}
nmp.RecoveryFabricFriendlyName = &recoveryFabricFriendlyName
}
v = m["fabricSpecificSettings"]
if v != nil {
fabricSpecificSettings, err := unmarshalNetworkMappingFabricSpecificSettings(*m["fabricSpecificSettings"])
if err != nil {
return err
}
nmp.FabricSpecificSettings = fabricSpecificSettings
}
return nil
}
// NetworkProperties is network Properties
type NetworkProperties struct {
FabricType *string `json:"fabricType,omitempty"`
Subnets *[]Subnet `json:"subnets,omitempty"`
FriendlyName *string `json:"friendlyName,omitempty"`
NetworkType *string `json:"networkType,omitempty"`
}
// OperationsDiscovery is operations discovery class.
type OperationsDiscovery struct {
Name *string `json:"name,omitempty"`
Display *Display `json:"display,omitempty"`
Origin *string `json:"origin,omitempty"`
Properties *map[string]interface{} `json:"properties,omitempty"`
}
// OperationsDiscoveryCollection is collection of ClientDiscovery details.
type OperationsDiscoveryCollection struct {
autorest.Response `json:"-"`
Value *[]OperationsDiscovery `json:"value,omitempty"`
NextLink *string `json:"nextLink,omitempty"`
}
// OperationsDiscoveryCollectionPreparer prepares a request to retrieve the next set of results. It returns
// nil if no more results exist.
func (client OperationsDiscoveryCollection) OperationsDiscoveryCollectionPreparer() (*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)))
}
// OSDetails is disk Details.
type OSDetails struct {
OsType *string `json:"osType,omitempty"`
ProductType *string `json:"productType,omitempty"`
OsEdition *string `json:"osEdition,omitempty"`
OSVersion *string `json:"oSVersion,omitempty"`
OSMajorVersion *string `json:"oSMajorVersion,omitempty"`
OSMinorVersion *string `json:"oSMinorVersion,omitempty"`
}
// OSDiskDetails is details of the OS Disk.
type OSDiskDetails struct {
OsVhdID *string `json:"osVhdId,omitempty"`
OsType *string `json:"osType,omitempty"`
VhdName *string `json:"vhdName,omitempty"`
}
// PlannedFailoverInput is input definition for planned failover.
type PlannedFailoverInput struct {
Properties *PlannedFailoverInputProperties `json:"properties,omitempty"`
}
// PlannedFailoverInputProperties is input definition for planned failover input properties.
type PlannedFailoverInputProperties struct {
FailoverDirection *string `json:"failoverDirection,omitempty"`
ProviderSpecificDetails ProviderSpecificFailoverInput `json:"providerSpecificDetails,omitempty"`
}
// UnmarshalJSON is the custom unmarshaler for PlannedFailoverInputProperties struct.
func (pfip *PlannedFailoverInputProperties) 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["failoverDirection"]
if v != nil {
var failoverDirection string
err = json.Unmarshal(*m["failoverDirection"], &failoverDirection)
if err != nil {
return err
}
pfip.FailoverDirection = &failoverDirection
}
v = m["providerSpecificDetails"]
if v != nil {
providerSpecificDetails, err := unmarshalProviderSpecificFailoverInput(*m["providerSpecificDetails"])
if err != nil {
return err
}
pfip.ProviderSpecificDetails = providerSpecificDetails
}
return nil
}
// Policy is protection profile details.
type Policy struct {
autorest.Response `json:"-"`
ID *string `json:"id,omitempty"`
Name *string `json:"name,omitempty"`
Type *string `json:"type,omitempty"`
Location *string `json:"location,omitempty"`
Properties *PolicyProperties `json:"properties,omitempty"`
}
// PolicyCollection is protection Profile Collection details.
type PolicyCollection struct {
autorest.Response `json:"-"`
Value *[]Policy `json:"value,omitempty"`
NextLink *string `json:"nextLink,omitempty"`
}
// PolicyCollectionPreparer prepares a request to retrieve the next set of results. It returns
// nil if no more results exist.
func (client PolicyCollection) PolicyCollectionPreparer() (*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)))
}
// PolicyProperties is protection profile custom data details.
type PolicyProperties struct {
FriendlyName *string `json:"friendlyName,omitempty"`
ProviderSpecificDetails PolicyProviderSpecificDetails `json:"providerSpecificDetails,omitempty"`
}
// UnmarshalJSON is the custom unmarshaler for PolicyProperties struct.
func (pp *PolicyProperties) 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["friendlyName"]
if v != nil {
var friendlyName string
err = json.Unmarshal(*m["friendlyName"], &friendlyName)
if err != nil {
return err
}
pp.FriendlyName = &friendlyName
}
v = m["providerSpecificDetails"]
if v != nil {
providerSpecificDetails, err := unmarshalPolicyProviderSpecificDetails(*m["providerSpecificDetails"])
if err != nil {
return err
}
pp.ProviderSpecificDetails = providerSpecificDetails
}
return nil
}
// PolicyProviderSpecificDetails is base class for Provider specific details for policies.
type PolicyProviderSpecificDetails interface {
AsHyperVReplicaAzurePolicyDetails() (*HyperVReplicaAzurePolicyDetails, bool)
AsHyperVReplicaBasePolicyDetails() (*HyperVReplicaBasePolicyDetails, bool)
AsHyperVReplicaPolicyDetails() (*HyperVReplicaPolicyDetails, bool)
AsHyperVReplicaBluePolicyDetails() (*HyperVReplicaBluePolicyDetails, bool)
AsInMageBasePolicyDetails() (*InMageBasePolicyDetails, bool)
AsInMageAzureV2PolicyDetails() (*InMageAzureV2PolicyDetails, bool)
AsInMagePolicyDetails() (*InMagePolicyDetails, bool)
AsA2APolicyDetails() (*A2APolicyDetails, bool)
AsRcmAzureMigrationPolicyDetails() (*RcmAzureMigrationPolicyDetails, bool)
AsVmwareCbtPolicyDetails() (*VmwareCbtPolicyDetails, bool)
}
func unmarshalPolicyProviderSpecificDetails(body []byte) (PolicyProviderSpecificDetails, error) {
var m map[string]interface{}
err := json.Unmarshal(body, &m)
if err != nil {
return nil, err
}
switch m["instanceType"] {
case string(InstanceTypePolicyProviderSpecificDetailsInstanceTypeHyperVReplicaAzure):
var hvrapd HyperVReplicaAzurePolicyDetails
err := json.Unmarshal(body, &hvrapd)
return hvrapd, err
case string(InstanceTypePolicyProviderSpecificDetailsInstanceTypeHyperVReplicaBasePolicyDetails):
var hvrbpd HyperVReplicaBasePolicyDetails
err := json.Unmarshal(body, &hvrbpd)
return hvrbpd, err
case string(InstanceTypePolicyProviderSpecificDetailsInstanceTypeHyperVReplica2012):
var hvrpd HyperVReplicaPolicyDetails
err := json.Unmarshal(body, &hvrpd)
return hvrpd, err
case string(InstanceTypePolicyProviderSpecificDetailsInstanceTypeHyperVReplica2012R2):
var hvrbpd HyperVReplicaBluePolicyDetails
err := json.Unmarshal(body, &hvrbpd)
return hvrbpd, err
case string(InstanceTypePolicyProviderSpecificDetailsInstanceTypeInMageBasePolicyDetails):
var imbpd InMageBasePolicyDetails
err := json.Unmarshal(body, &imbpd)
return imbpd, err
case string(InstanceTypePolicyProviderSpecificDetailsInstanceTypeInMageAzureV2):
var imavpd InMageAzureV2PolicyDetails
err := json.Unmarshal(body, &imavpd)
return imavpd, err
case string(InstanceTypePolicyProviderSpecificDetailsInstanceTypeInMage):
var impd InMagePolicyDetails
err := json.Unmarshal(body, &impd)
return impd, err
case string(InstanceTypePolicyProviderSpecificDetailsInstanceTypeA2A):
var apd A2APolicyDetails
err := json.Unmarshal(body, &apd)
return apd, err
case string(InstanceTypePolicyProviderSpecificDetailsInstanceTypeRcmAzureMigration):
var rampd RcmAzureMigrationPolicyDetails
err := json.Unmarshal(body, &rampd)
return rampd, err
case string(InstanceTypePolicyProviderSpecificDetailsInstanceTypeVMwareCbt):
var vcpd VmwareCbtPolicyDetails
err := json.Unmarshal(body, &vcpd)
return vcpd, err
default:
return nil, errors.New("Unsupported type")
}
}
func unmarshalPolicyProviderSpecificDetailsArray(body []byte) ([]PolicyProviderSpecificDetails, error) {
var rawMessages []*json.RawMessage
err := json.Unmarshal(body, &rawMessages)
if err != nil {
return nil, err
}
ppsdArray := make([]PolicyProviderSpecificDetails, len(rawMessages))
for index, rawMessage := range rawMessages {
ppsd, err := unmarshalPolicyProviderSpecificDetails(*rawMessage)
if err != nil {
return nil, err
}
ppsdArray[index] = ppsd
}
return ppsdArray, nil
}
// PolicyProviderSpecificInput is base class for provider specific input
type PolicyProviderSpecificInput interface {
AsHyperVReplicaAzurePolicyInput() (*HyperVReplicaAzurePolicyInput, bool)
AsHyperVReplicaPolicyInput() (*HyperVReplicaPolicyInput, bool)
AsHyperVReplicaBluePolicyInput() (*HyperVReplicaBluePolicyInput, bool)
AsInMageAzureV2PolicyInput() (*InMageAzureV2PolicyInput, bool)
AsInMagePolicyInput() (*InMagePolicyInput, bool)
AsA2APolicyCreationInput() (*A2APolicyCreationInput, bool)
AsVMwareCbtPolicyCreationInput() (*VMwareCbtPolicyCreationInput, bool)
}
func unmarshalPolicyProviderSpecificInput(body []byte) (PolicyProviderSpecificInput, error) {
var m map[string]interface{}
err := json.Unmarshal(body, &m)
if err != nil {
return nil, err
}
switch m["instanceType"] {
case string(InstanceTypePolicyProviderSpecificInputInstanceTypeHyperVReplicaAzure):
var hvrapi HyperVReplicaAzurePolicyInput
err := json.Unmarshal(body, &hvrapi)
return hvrapi, err
case string(InstanceTypePolicyProviderSpecificInputInstanceTypeHyperVReplica2012):
var hvrpi HyperVReplicaPolicyInput
err := json.Unmarshal(body, &hvrpi)
return hvrpi, err
case string(InstanceTypePolicyProviderSpecificInputInstanceTypeHyperVReplica2012R2):
var hvrbpi HyperVReplicaBluePolicyInput
err := json.Unmarshal(body, &hvrbpi)
return hvrbpi, err
case string(InstanceTypePolicyProviderSpecificInputInstanceTypeInMageAzureV2):
var imavpi InMageAzureV2PolicyInput
err := json.Unmarshal(body, &imavpi)
return imavpi, err
case string(InstanceTypePolicyProviderSpecificInputInstanceTypeInMage):
var impi InMagePolicyInput
err := json.Unmarshal(body, &impi)
return impi, err
case string(InstanceTypePolicyProviderSpecificInputInstanceTypeA2A):
var apci A2APolicyCreationInput
err := json.Unmarshal(body, &apci)
return apci, err
case string(InstanceTypePolicyProviderSpecificInputInstanceTypeVMwareCbt):
var vmcpci VMwareCbtPolicyCreationInput
err := json.Unmarshal(body, &vmcpci)
return vmcpci, err
default:
return nil, errors.New("Unsupported type")
}
}
func unmarshalPolicyProviderSpecificInputArray(body []byte) ([]PolicyProviderSpecificInput, error) {
var rawMessages []*json.RawMessage
err := json.Unmarshal(body, &rawMessages)
if err != nil {
return nil, err
}
ppsiArray := make([]PolicyProviderSpecificInput, len(rawMessages))
for index, rawMessage := range rawMessages {
ppsi, err := unmarshalPolicyProviderSpecificInput(*rawMessage)
if err != nil {
return nil, err
}
ppsiArray[index] = ppsi
}
return ppsiArray, nil
}
// ProcessServer is details of the Process Server.
type ProcessServer struct {
FriendlyName *string `json:"friendlyName,omitempty"`
ID *string `json:"id,omitempty"`
IPAddress *string `json:"ipAddress,omitempty"`
OsType *string `json:"osType,omitempty"`
AgentVersion *string `json:"agentVersion,omitempty"`
LastHeartbeat *date.Time `json:"lastHeartbeat,omitempty"`
VersionStatus *string `json:"versionStatus,omitempty"`
MobilityServiceUpdates *[]MobilityServiceUpdate `json:"mobilityServiceUpdates,omitempty"`
HostID *string `json:"hostId,omitempty"`
MachineCount *string `json:"machineCount,omitempty"`
ReplicationPairCount *string `json:"replicationPairCount,omitempty"`
SystemLoad *string `json:"systemLoad,omitempty"`
SystemLoadStatus *string `json:"systemLoadStatus,omitempty"`
CPULoad *string `json:"cpuLoad,omitempty"`
CPULoadStatus *string `json:"cpuLoadStatus,omitempty"`
TotalMemoryInBytes *int64 `json:"totalMemoryInBytes,omitempty"`
AvailableMemoryInBytes *int64 `json:"availableMemoryInBytes,omitempty"`
MemoryUsageStatus *string `json:"memoryUsageStatus,omitempty"`
TotalSpaceInBytes *int64 `json:"totalSpaceInBytes,omitempty"`
AvailableSpaceInBytes *int64 `json:"availableSpaceInBytes,omitempty"`
SpaceUsageStatus *string `json:"spaceUsageStatus,omitempty"`
PsServiceStatus *string `json:"psServiceStatus,omitempty"`
SslCertExpiryDate *date.Time `json:"sslCertExpiryDate,omitempty"`
SslCertExpiryRemainingDays *int32 `json:"sslCertExpiryRemainingDays,omitempty"`
OsVersion *string `json:"osVersion,omitempty"`
}
// ProtectableItem is replication protected item
type ProtectableItem struct {
autorest.Response `json:"-"`
ID *string `json:"id,omitempty"`
Name *string `json:"name,omitempty"`
Type *string `json:"type,omitempty"`
Location *string `json:"location,omitempty"`
Properties *ProtectableItemProperties `json:"properties,omitempty"`
}
// ProtectableItemCollection is protectable item collection.
type ProtectableItemCollection struct {
autorest.Response `json:"-"`
Value *[]ProtectableItem `json:"value,omitempty"`
NextLink *string `json:"nextLink,omitempty"`
}
// ProtectableItemCollectionPreparer prepares a request to retrieve the next set of results. It returns
// nil if no more results exist.
func (client ProtectableItemCollection) ProtectableItemCollectionPreparer() (*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)))
}
// ProtectableItemProperties is replication protected item custom data details.
type ProtectableItemProperties struct {
FriendlyName *string `json:"friendlyName,omitempty"`
ProtectionStatus *string `json:"protectionStatus,omitempty"`
ReplicationProtectedItemID *string `json:"replicationProtectedItemId,omitempty"`
RecoveryServicesProviderID *string `json:"recoveryServicesProviderId,omitempty"`
ProtectionReadinessErrors *[]string `json:"protectionReadinessErrors,omitempty"`
SupportedReplicationProviders *[]string `json:"supportedReplicationProviders,omitempty"`
CustomDetails ConfigurationSettings `json:"customDetails,omitempty"`
}
// UnmarshalJSON is the custom unmarshaler for ProtectableItemProperties struct.
func (pip *ProtectableItemProperties) 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["friendlyName"]
if v != nil {
var friendlyName string
err = json.Unmarshal(*m["friendlyName"], &friendlyName)
if err != nil {
return err
}
pip.FriendlyName = &friendlyName
}
v = m["protectionStatus"]
if v != nil {
var protectionStatus string
err = json.Unmarshal(*m["protectionStatus"], &protectionStatus)
if err != nil {
return err
}
pip.ProtectionStatus = &protectionStatus
}
v = m["replicationProtectedItemId"]
if v != nil {
var replicationProtectedItemID string
err = json.Unmarshal(*m["replicationProtectedItemId"], &replicationProtectedItemID)
if err != nil {
return err
}
pip.ReplicationProtectedItemID = &replicationProtectedItemID
}
v = m["recoveryServicesProviderId"]
if v != nil {
var recoveryServicesProviderID string
err = json.Unmarshal(*m["recoveryServicesProviderId"], &recoveryServicesProviderID)
if err != nil {
return err
}
pip.RecoveryServicesProviderID = &recoveryServicesProviderID
}
v = m["protectionReadinessErrors"]
if v != nil {
var protectionReadinessErrors []string
err = json.Unmarshal(*m["protectionReadinessErrors"], &protectionReadinessErrors)
if err != nil {
return err
}
pip.ProtectionReadinessErrors = &protectionReadinessErrors
}
v = m["supportedReplicationProviders"]
if v != nil {
var supportedReplicationProviders []string
err = json.Unmarshal(*m["supportedReplicationProviders"], &supportedReplicationProviders)
if err != nil {
return err
}
pip.SupportedReplicationProviders = &supportedReplicationProviders
}
v = m["customDetails"]
if v != nil {
customDetails, err := unmarshalConfigurationSettings(*m["customDetails"])
if err != nil {
return err
}
pip.CustomDetails = customDetails
}
return nil
}
// ProtectedItemsQueryParameter is query parameter to enumerate protected items.
type ProtectedItemsQueryParameter struct {
SourceFabricName *string `json:"sourceFabricName,omitempty"`
RecoveryPlanName *string `json:"recoveryPlanName,omitempty"`
VCenterName *string `json:"vCenterName,omitempty"`
}
// ProtectionContainer is protection container details.
type ProtectionContainer struct {
autorest.Response `json:"-"`
ID *string `json:"id,omitempty"`
Name *string `json:"name,omitempty"`
Type *string `json:"type,omitempty"`
Location *string `json:"location,omitempty"`
Properties *ProtectionContainerProperties `json:"properties,omitempty"`
}
// ProtectionContainerCollection is protection Container collection.
type ProtectionContainerCollection struct {
autorest.Response `json:"-"`
Value *[]ProtectionContainer `json:"value,omitempty"`
NextLink *string `json:"nextLink,omitempty"`
}
// ProtectionContainerCollectionPreparer prepares a request to retrieve the next set of results. It returns
// nil if no more results exist.
func (client ProtectionContainerCollection) ProtectionContainerCollectionPreparer() (*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)))
}
// ProtectionContainerFabricSpecificDetails is base class for fabric specific details of container.
type ProtectionContainerFabricSpecificDetails struct {
InstanceType *string `json:"instanceType,omitempty"`
}
// ProtectionContainerMapping is protection container mapping object.
type ProtectionContainerMapping struct {
autorest.Response `json:"-"`
ID *string `json:"id,omitempty"`
Name *string `json:"name,omitempty"`
Type *string `json:"type,omitempty"`
Location *string `json:"location,omitempty"`
Properties *ProtectionContainerMappingProperties `json:"properties,omitempty"`
}
// ProtectionContainerMappingCollection is protection container mapping collection class.
type ProtectionContainerMappingCollection struct {
autorest.Response `json:"-"`
Value *[]ProtectionContainerMapping `json:"value,omitempty"`
NextLink *string `json:"nextLink,omitempty"`
}
// ProtectionContainerMappingCollectionPreparer prepares a request to retrieve the next set of results. It returns
// nil if no more results exist.
func (client ProtectionContainerMappingCollection) ProtectionContainerMappingCollectionPreparer() (*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)))
}
// ProtectionContainerMappingProperties is protection container mapping properties.
type ProtectionContainerMappingProperties struct {
TargetProtectionContainerID *string `json:"targetProtectionContainerId,omitempty"`
TargetProtectionContainerFriendlyName *string `json:"targetProtectionContainerFriendlyName,omitempty"`
ProviderSpecificDetails *ProtectionContainerMappingProviderSpecificDetails `json:"providerSpecificDetails,omitempty"`
Health *string `json:"health,omitempty"`
HealthErrorDetails *[]HealthError `json:"healthErrorDetails,omitempty"`
PolicyID *string `json:"policyId,omitempty"`
State *string `json:"state,omitempty"`
SourceProtectionContainerFriendlyName *string `json:"sourceProtectionContainerFriendlyName,omitempty"`
SourceFabricFriendlyName *string `json:"sourceFabricFriendlyName,omitempty"`
TargetFabricFriendlyName *string `json:"targetFabricFriendlyName,omitempty"`
PolicyFriendlyName *string `json:"policyFriendlyName,omitempty"`
}
// ProtectionContainerMappingProviderSpecificDetails is container mapping provider specific details.
type ProtectionContainerMappingProviderSpecificDetails struct {
InstanceType *string `json:"instanceType,omitempty"`
}
// ProtectionContainerProperties is protection profile custom data details.
type ProtectionContainerProperties struct {
FabricFriendlyName *string `json:"fabricFriendlyName,omitempty"`
FriendlyName *string `json:"friendlyName,omitempty"`
FabricType *string `json:"fabricType,omitempty"`
ProtectedItemCount *int32 `json:"protectedItemCount,omitempty"`
PairingStatus *string `json:"pairingStatus,omitempty"`
Role *string `json:"role,omitempty"`
FabricSpecificDetails *ProtectionContainerFabricSpecificDetails `json:"fabricSpecificDetails,omitempty"`
}
// ProviderError is this class contains the error details per object.
type ProviderError struct {
ErrorCode *int32 `json:"errorCode,omitempty"`
ErrorMessage *string `json:"errorMessage,omitempty"`
ErrorID *string `json:"errorId,omitempty"`
PossibleCauses *string `json:"possibleCauses,omitempty"`
RecommendedAction *string `json:"recommendedAction,omitempty"`
}
// ProviderSpecificFailoverInput is provider specific failover input.
type ProviderSpecificFailoverInput interface {
AsHyperVReplicaAzureFailoverProviderInput() (*HyperVReplicaAzureFailoverProviderInput, bool)
AsHyperVReplicaAzureFailbackProviderInput() (*HyperVReplicaAzureFailbackProviderInput, bool)
AsInMageAzureV2FailoverProviderInput() (*InMageAzureV2FailoverProviderInput, bool)
AsInMageFailoverProviderInput() (*InMageFailoverProviderInput, bool)
AsA2AFailoverProviderInput() (*A2AFailoverProviderInput, bool)
}
func unmarshalProviderSpecificFailoverInput(body []byte) (ProviderSpecificFailoverInput, error) {
var m map[string]interface{}
err := json.Unmarshal(body, &m)
if err != nil {
return nil, err
}
switch m["instanceType"] {
case string(InstanceTypeProviderSpecificFailoverInputInstanceTypeHyperVReplicaAzure):
var hvrafpi HyperVReplicaAzureFailoverProviderInput
err := json.Unmarshal(body, &hvrafpi)
return hvrafpi, err
case string(InstanceTypeProviderSpecificFailoverInputInstanceTypeHyperVReplicaAzureFailback):
var hvrafpi HyperVReplicaAzureFailbackProviderInput
err := json.Unmarshal(body, &hvrafpi)
return hvrafpi, err
case string(InstanceTypeProviderSpecificFailoverInputInstanceTypeInMageAzureV2):
var imavfpi InMageAzureV2FailoverProviderInput
err := json.Unmarshal(body, &imavfpi)
return imavfpi, err
case string(InstanceTypeProviderSpecificFailoverInputInstanceTypeInMage):
var imfpi InMageFailoverProviderInput
err := json.Unmarshal(body, &imfpi)
return imfpi, err
case string(InstanceTypeProviderSpecificFailoverInputInstanceTypeA2A):
var afpi A2AFailoverProviderInput
err := json.Unmarshal(body, &afpi)
return afpi, err
default:
return nil, errors.New("Unsupported type")
}
}
func unmarshalProviderSpecificFailoverInputArray(body []byte) ([]ProviderSpecificFailoverInput, error) {
var rawMessages []*json.RawMessage
err := json.Unmarshal(body, &rawMessages)
if err != nil {
return nil, err
}
psfiArray := make([]ProviderSpecificFailoverInput, len(rawMessages))
for index, rawMessage := range rawMessages {
psfi, err := unmarshalProviderSpecificFailoverInput(*rawMessage)
if err != nil {
return nil, err
}
psfiArray[index] = psfi
}
return psfiArray, nil
}
// ProviderSpecificRecoveryPointDetails is replication provider specific recovery point details.
type ProviderSpecificRecoveryPointDetails struct {
Type *string `json:"Type,omitempty"`
}
// RcmAzureMigrationPolicyDetails is RCM based Azure migration specific policy details.
type RcmAzureMigrationPolicyDetails struct {
InstanceType InstanceTypePolicyProviderSpecificDetails `json:"instanceType,omitempty"`
RecoveryPointThresholdInMinutes *int32 `json:"recoveryPointThresholdInMinutes,omitempty"`
RecoveryPointHistory *int32 `json:"recoveryPointHistory,omitempty"`
AppConsistentFrequencyInMinutes *int32 `json:"appConsistentFrequencyInMinutes,omitempty"`
MultiVMSyncStatus MultiVMSyncStatus `json:"multiVmSyncStatus,omitempty"`
CrashConsistentFrequencyInMinutes *int32 `json:"crashConsistentFrequencyInMinutes,omitempty"`
}
// MarshalJSON is the custom marshaler for RcmAzureMigrationPolicyDetails.
func (rampd RcmAzureMigrationPolicyDetails) MarshalJSON() ([]byte, error) {
rampd.InstanceType = InstanceTypePolicyProviderSpecificDetailsInstanceTypeRcmAzureMigration
type Alias RcmAzureMigrationPolicyDetails
return json.Marshal(&struct {
Alias
}{
Alias: (Alias)(rampd),
})
}
// AsHyperVReplicaAzurePolicyDetails is the PolicyProviderSpecificDetails implementation for RcmAzureMigrationPolicyDetails.
func (rampd RcmAzureMigrationPolicyDetails) AsHyperVReplicaAzurePolicyDetails() (*HyperVReplicaAzurePolicyDetails, bool) {
return nil, false
}
// AsHyperVReplicaBasePolicyDetails is the PolicyProviderSpecificDetails implementation for RcmAzureMigrationPolicyDetails.
func (rampd RcmAzureMigrationPolicyDetails) AsHyperVReplicaBasePolicyDetails() (*HyperVReplicaBasePolicyDetails, bool) {
return nil, false
}
// AsHyperVReplicaPolicyDetails is the PolicyProviderSpecificDetails implementation for RcmAzureMigrationPolicyDetails.
func (rampd RcmAzureMigrationPolicyDetails) AsHyperVReplicaPolicyDetails() (*HyperVReplicaPolicyDetails, bool) {
return nil, false
}
// AsHyperVReplicaBluePolicyDetails is the PolicyProviderSpecificDetails implementation for RcmAzureMigrationPolicyDetails.
func (rampd RcmAzureMigrationPolicyDetails) AsHyperVReplicaBluePolicyDetails() (*HyperVReplicaBluePolicyDetails, bool) {
return nil, false
}
// AsInMageBasePolicyDetails is the PolicyProviderSpecificDetails implementation for RcmAzureMigrationPolicyDetails.
func (rampd RcmAzureMigrationPolicyDetails) AsInMageBasePolicyDetails() (*InMageBasePolicyDetails, bool) {
return nil, false
}
// AsInMageAzureV2PolicyDetails is the PolicyProviderSpecificDetails implementation for RcmAzureMigrationPolicyDetails.
func (rampd RcmAzureMigrationPolicyDetails) AsInMageAzureV2PolicyDetails() (*InMageAzureV2PolicyDetails, bool) {
return nil, false
}
// AsInMagePolicyDetails is the PolicyProviderSpecificDetails implementation for RcmAzureMigrationPolicyDetails.
func (rampd RcmAzureMigrationPolicyDetails) AsInMagePolicyDetails() (*InMagePolicyDetails, bool) {
return nil, false
}
// AsA2APolicyDetails is the PolicyProviderSpecificDetails implementation for RcmAzureMigrationPolicyDetails.
func (rampd RcmAzureMigrationPolicyDetails) AsA2APolicyDetails() (*A2APolicyDetails, bool) {
return nil, false
}
// AsRcmAzureMigrationPolicyDetails is the PolicyProviderSpecificDetails implementation for RcmAzureMigrationPolicyDetails.
func (rampd RcmAzureMigrationPolicyDetails) AsRcmAzureMigrationPolicyDetails() (*RcmAzureMigrationPolicyDetails, bool) {
return &rampd, true
}
// AsVmwareCbtPolicyDetails is the PolicyProviderSpecificDetails implementation for RcmAzureMigrationPolicyDetails.
func (rampd RcmAzureMigrationPolicyDetails) AsVmwareCbtPolicyDetails() (*VmwareCbtPolicyDetails, bool) {
return nil, false
}
// RecoveryPlan is recovery plan details.
type RecoveryPlan struct {
autorest.Response `json:"-"`
ID *string `json:"id,omitempty"`
Name *string `json:"name,omitempty"`
Type *string `json:"type,omitempty"`
Location *string `json:"location,omitempty"`
Properties *RecoveryPlanProperties `json:"properties,omitempty"`
}
// RecoveryPlanA2AFailoverInput is recovery plan A2A failover input.
type RecoveryPlanA2AFailoverInput struct {
InstanceType InstanceTypeRecoveryPlanProviderSpecificFailoverInput `json:"instanceType,omitempty"`
RecoveryPointType A2ARpRecoveryPointType `json:"recoveryPointType,omitempty"`
CloudServiceCreationOption *string `json:"cloudServiceCreationOption,omitempty"`
}
// MarshalJSON is the custom marshaler for RecoveryPlanA2AFailoverInput.
func (rpafi RecoveryPlanA2AFailoverInput) MarshalJSON() ([]byte, error) {
rpafi.InstanceType = InstanceTypeRecoveryPlanProviderSpecificFailoverInputInstanceTypeA2A
type Alias RecoveryPlanA2AFailoverInput
return json.Marshal(&struct {
Alias
}{
Alias: (Alias)(rpafi),
})
}
// AsRecoveryPlanHyperVReplicaAzureFailoverInput is the RecoveryPlanProviderSpecificFailoverInput implementation for RecoveryPlanA2AFailoverInput.
func (rpafi RecoveryPlanA2AFailoverInput) AsRecoveryPlanHyperVReplicaAzureFailoverInput() (*RecoveryPlanHyperVReplicaAzureFailoverInput, bool) {
return nil, false
}
// AsRecoveryPlanHyperVReplicaAzureFailbackInput is the RecoveryPlanProviderSpecificFailoverInput implementation for RecoveryPlanA2AFailoverInput.
func (rpafi RecoveryPlanA2AFailoverInput) AsRecoveryPlanHyperVReplicaAzureFailbackInput() (*RecoveryPlanHyperVReplicaAzureFailbackInput, bool) {
return nil, false
}
// AsRecoveryPlanInMageAzureV2FailoverInput is the RecoveryPlanProviderSpecificFailoverInput implementation for RecoveryPlanA2AFailoverInput.
func (rpafi RecoveryPlanA2AFailoverInput) AsRecoveryPlanInMageAzureV2FailoverInput() (*RecoveryPlanInMageAzureV2FailoverInput, bool) {
return nil, false
}
// AsRecoveryPlanInMageFailoverInput is the RecoveryPlanProviderSpecificFailoverInput implementation for RecoveryPlanA2AFailoverInput.
func (rpafi RecoveryPlanA2AFailoverInput) AsRecoveryPlanInMageFailoverInput() (*RecoveryPlanInMageFailoverInput, bool) {
return nil, false
}
// AsRecoveryPlanA2AFailoverInput is the RecoveryPlanProviderSpecificFailoverInput implementation for RecoveryPlanA2AFailoverInput.
func (rpafi RecoveryPlanA2AFailoverInput) AsRecoveryPlanA2AFailoverInput() (*RecoveryPlanA2AFailoverInput, bool) {
return &rpafi, true
}
// RecoveryPlanAction is recovery plan action details.
type RecoveryPlanAction struct {
ActionName *string `json:"actionName,omitempty"`
FailoverTypes *[]ReplicationProtectedItemOperation `json:"failoverTypes,omitempty"`
FailoverDirections *[]PossibleOperationsDirections `json:"failoverDirections,omitempty"`
CustomDetails RecoveryPlanActionDetails `json:"customDetails,omitempty"`
}
// UnmarshalJSON is the custom unmarshaler for RecoveryPlanAction struct.
func (rpa *RecoveryPlanAction) 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["actionName"]
if v != nil {
var actionName string
err = json.Unmarshal(*m["actionName"], &actionName)
if err != nil {
return err
}
rpa.ActionName = &actionName
}
v = m["failoverTypes"]
if v != nil {
var failoverTypes []ReplicationProtectedItemOperation
err = json.Unmarshal(*m["failoverTypes"], &failoverTypes)
if err != nil {
return err
}
rpa.FailoverTypes = &failoverTypes
}
v = m["failoverDirections"]
if v != nil {
var failoverDirections []PossibleOperationsDirections
err = json.Unmarshal(*m["failoverDirections"], &failoverDirections)
if err != nil {
return err
}
rpa.FailoverDirections = &failoverDirections
}
v = m["customDetails"]
if v != nil {
customDetails, err := unmarshalRecoveryPlanActionDetails(*m["customDetails"])
if err != nil {
return err
}
rpa.CustomDetails = customDetails
}
return nil
}
// RecoveryPlanActionDetails is recovery plan action custom details.
type RecoveryPlanActionDetails interface {
AsRecoveryPlanScriptActionDetails() (*RecoveryPlanScriptActionDetails, bool)
AsRecoveryPlanAutomationRunbookActionDetails() (*RecoveryPlanAutomationRunbookActionDetails, bool)
AsRecoveryPlanManualActionDetails() (*RecoveryPlanManualActionDetails, bool)
}
func unmarshalRecoveryPlanActionDetails(body []byte) (RecoveryPlanActionDetails, error) {
var m map[string]interface{}
err := json.Unmarshal(body, &m)
if err != nil {
return nil, err
}
switch m["instanceType"] {
case string(InstanceTypeScriptActionDetails):
var rpsad RecoveryPlanScriptActionDetails
err := json.Unmarshal(body, &rpsad)
return rpsad, err
case string(InstanceTypeAutomationRunbookActionDetails):
var rparad RecoveryPlanAutomationRunbookActionDetails
err := json.Unmarshal(body, &rparad)
return rparad, err
case string(InstanceTypeManualActionDetails):
var rpmad RecoveryPlanManualActionDetails
err := json.Unmarshal(body, &rpmad)
return rpmad, err
default:
return nil, errors.New("Unsupported type")
}
}
func unmarshalRecoveryPlanActionDetailsArray(body []byte) ([]RecoveryPlanActionDetails, error) {
var rawMessages []*json.RawMessage
err := json.Unmarshal(body, &rawMessages)
if err != nil {
return nil, err
}
rpadArray := make([]RecoveryPlanActionDetails, len(rawMessages))
for index, rawMessage := range rawMessages {
rpad, err := unmarshalRecoveryPlanActionDetails(*rawMessage)
if err != nil {
return nil, err
}
rpadArray[index] = rpad
}
return rpadArray, nil
}
// RecoveryPlanAutomationRunbookActionDetails is recovery plan Automation runbook action details.
type RecoveryPlanAutomationRunbookActionDetails struct {
InstanceType InstanceTypeRecoveryPlanActionDetails `json:"instanceType,omitempty"`
RunbookID *string `json:"runbookId,omitempty"`
Timeout *string `json:"timeout,omitempty"`
FabricLocation RecoveryPlanActionLocation `json:"fabricLocation,omitempty"`
}
// MarshalJSON is the custom marshaler for RecoveryPlanAutomationRunbookActionDetails.
func (rparad RecoveryPlanAutomationRunbookActionDetails) MarshalJSON() ([]byte, error) {
rparad.InstanceType = InstanceTypeAutomationRunbookActionDetails
type Alias RecoveryPlanAutomationRunbookActionDetails
return json.Marshal(&struct {
Alias
}{
Alias: (Alias)(rparad),
})
}
// AsRecoveryPlanScriptActionDetails is the RecoveryPlanActionDetails implementation for RecoveryPlanAutomationRunbookActionDetails.
func (rparad RecoveryPlanAutomationRunbookActionDetails) AsRecoveryPlanScriptActionDetails() (*RecoveryPlanScriptActionDetails, bool) {
return nil, false
}
// AsRecoveryPlanAutomationRunbookActionDetails is the RecoveryPlanActionDetails implementation for RecoveryPlanAutomationRunbookActionDetails.
func (rparad RecoveryPlanAutomationRunbookActionDetails) AsRecoveryPlanAutomationRunbookActionDetails() (*RecoveryPlanAutomationRunbookActionDetails, bool) {
return &rparad, true
}
// AsRecoveryPlanManualActionDetails is the RecoveryPlanActionDetails implementation for RecoveryPlanAutomationRunbookActionDetails.
func (rparad RecoveryPlanAutomationRunbookActionDetails) AsRecoveryPlanManualActionDetails() (*RecoveryPlanManualActionDetails, bool) {
return nil, false
}
// RecoveryPlanCollection is recovery plan collection details.
type RecoveryPlanCollection struct {
autorest.Response `json:"-"`
Value *[]RecoveryPlan `json:"value,omitempty"`
NextLink *string `json:"nextLink,omitempty"`
}
// RecoveryPlanCollectionPreparer prepares a request to retrieve the next set of results. It returns
// nil if no more results exist.
func (client RecoveryPlanCollection) RecoveryPlanCollectionPreparer() (*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)))
}
// RecoveryPlanGroup is recovery plan group details.
type RecoveryPlanGroup struct {
GroupType RecoveryPlanGroupType `json:"groupType,omitempty"`
ReplicationProtectedItems *[]RecoveryPlanProtectedItem `json:"replicationProtectedItems,omitempty"`
StartGroupActions *[]RecoveryPlanAction `json:"startGroupActions,omitempty"`
EndGroupActions *[]RecoveryPlanAction `json:"endGroupActions,omitempty"`
}
// RecoveryPlanGroupTaskDetails is this class represents the recovery plan group task.
type RecoveryPlanGroupTaskDetails struct {
ChildTasks *[]ASRTask `json:"childTasks,omitempty"`
InstanceType InstanceTypeGroupTaskDetails `json:"instanceType,omitempty"`
Name *string `json:"name,omitempty"`
GroupID *string `json:"groupId,omitempty"`
RpGroupType *string `json:"rpGroupType,omitempty"`
}
// MarshalJSON is the custom marshaler for RecoveryPlanGroupTaskDetails.
func (rpgtd RecoveryPlanGroupTaskDetails) MarshalJSON() ([]byte, error) {
rpgtd.InstanceType = InstanceTypeRecoveryPlanGroupTaskDetails
type Alias RecoveryPlanGroupTaskDetails
return json.Marshal(&struct {
Alias
}{
Alias: (Alias)(rpgtd),
})
}
// AsInlineWorkflowTaskDetails is the GroupTaskDetails implementation for RecoveryPlanGroupTaskDetails.
func (rpgtd RecoveryPlanGroupTaskDetails) AsInlineWorkflowTaskDetails() (*InlineWorkflowTaskDetails, bool) {
return nil, false
}
// AsRecoveryPlanGroupTaskDetails is the GroupTaskDetails implementation for RecoveryPlanGroupTaskDetails.
func (rpgtd RecoveryPlanGroupTaskDetails) AsRecoveryPlanGroupTaskDetails() (*RecoveryPlanGroupTaskDetails, bool) {
return &rpgtd, true
}
// AsRecoveryPlanShutdownGroupTaskDetails is the GroupTaskDetails implementation for RecoveryPlanGroupTaskDetails.
func (rpgtd RecoveryPlanGroupTaskDetails) AsRecoveryPlanShutdownGroupTaskDetails() (*RecoveryPlanShutdownGroupTaskDetails, bool) {
return nil, false
}
// RecoveryPlanHyperVReplicaAzureFailbackInput is recovery plan HVR Azure failback input.
type RecoveryPlanHyperVReplicaAzureFailbackInput struct {
InstanceType InstanceTypeRecoveryPlanProviderSpecificFailoverInput `json:"instanceType,omitempty"`
DataSyncOption DataSyncStatus `json:"dataSyncOption,omitempty"`
RecoveryVMCreationOption AlternateLocationRecoveryOption `json:"recoveryVmCreationOption,omitempty"`
}
// MarshalJSON is the custom marshaler for RecoveryPlanHyperVReplicaAzureFailbackInput.
func (rphvrafi RecoveryPlanHyperVReplicaAzureFailbackInput) MarshalJSON() ([]byte, error) {
rphvrafi.InstanceType = InstanceTypeRecoveryPlanProviderSpecificFailoverInputInstanceTypeHyperVReplicaAzureFailback
type Alias RecoveryPlanHyperVReplicaAzureFailbackInput
return json.Marshal(&struct {
Alias
}{
Alias: (Alias)(rphvrafi),
})
}
// AsRecoveryPlanHyperVReplicaAzureFailoverInput is the RecoveryPlanProviderSpecificFailoverInput implementation for RecoveryPlanHyperVReplicaAzureFailbackInput.
func (rphvrafi RecoveryPlanHyperVReplicaAzureFailbackInput) AsRecoveryPlanHyperVReplicaAzureFailoverInput() (*RecoveryPlanHyperVReplicaAzureFailoverInput, bool) {
return nil, false
}
// AsRecoveryPlanHyperVReplicaAzureFailbackInput is the RecoveryPlanProviderSpecificFailoverInput implementation for RecoveryPlanHyperVReplicaAzureFailbackInput.
func (rphvrafi RecoveryPlanHyperVReplicaAzureFailbackInput) AsRecoveryPlanHyperVReplicaAzureFailbackInput() (*RecoveryPlanHyperVReplicaAzureFailbackInput, bool) {
return &rphvrafi, true
}
// AsRecoveryPlanInMageAzureV2FailoverInput is the RecoveryPlanProviderSpecificFailoverInput implementation for RecoveryPlanHyperVReplicaAzureFailbackInput.
func (rphvrafi RecoveryPlanHyperVReplicaAzureFailbackInput) AsRecoveryPlanInMageAzureV2FailoverInput() (*RecoveryPlanInMageAzureV2FailoverInput, bool) {
return nil, false
}
// AsRecoveryPlanInMageFailoverInput is the RecoveryPlanProviderSpecificFailoverInput implementation for RecoveryPlanHyperVReplicaAzureFailbackInput.
func (rphvrafi RecoveryPlanHyperVReplicaAzureFailbackInput) AsRecoveryPlanInMageFailoverInput() (*RecoveryPlanInMageFailoverInput, bool) {
return nil, false
}
// AsRecoveryPlanA2AFailoverInput is the RecoveryPlanProviderSpecificFailoverInput implementation for RecoveryPlanHyperVReplicaAzureFailbackInput.
func (rphvrafi RecoveryPlanHyperVReplicaAzureFailbackInput) AsRecoveryPlanA2AFailoverInput() (*RecoveryPlanA2AFailoverInput, bool) {
return nil, false
}
// RecoveryPlanHyperVReplicaAzureFailoverInput is recovery plan HVR Azure failover input.
type RecoveryPlanHyperVReplicaAzureFailoverInput struct {
InstanceType InstanceTypeRecoveryPlanProviderSpecificFailoverInput `json:"instanceType,omitempty"`
VaultLocation *string `json:"vaultLocation,omitempty"`
PrimaryKekCertificatePfx *string `json:"primaryKekCertificatePfx,omitempty"`
SecondaryKekCertificatePfx *string `json:"secondaryKekCertificatePfx,omitempty"`
RecoveryPointType HyperVReplicaAzureRpRecoveryPointType `json:"recoveryPointType,omitempty"`
}
// MarshalJSON is the custom marshaler for RecoveryPlanHyperVReplicaAzureFailoverInput.
func (rphvrafi RecoveryPlanHyperVReplicaAzureFailoverInput) MarshalJSON() ([]byte, error) {
rphvrafi.InstanceType = InstanceTypeRecoveryPlanProviderSpecificFailoverInputInstanceTypeHyperVReplicaAzure
type Alias RecoveryPlanHyperVReplicaAzureFailoverInput
return json.Marshal(&struct {
Alias
}{
Alias: (Alias)(rphvrafi),
})
}
// AsRecoveryPlanHyperVReplicaAzureFailoverInput is the RecoveryPlanProviderSpecificFailoverInput implementation for RecoveryPlanHyperVReplicaAzureFailoverInput.
func (rphvrafi RecoveryPlanHyperVReplicaAzureFailoverInput) AsRecoveryPlanHyperVReplicaAzureFailoverInput() (*RecoveryPlanHyperVReplicaAzureFailoverInput, bool) {
return &rphvrafi, true
}
// AsRecoveryPlanHyperVReplicaAzureFailbackInput is the RecoveryPlanProviderSpecificFailoverInput implementation for RecoveryPlanHyperVReplicaAzureFailoverInput.
func (rphvrafi RecoveryPlanHyperVReplicaAzureFailoverInput) AsRecoveryPlanHyperVReplicaAzureFailbackInput() (*RecoveryPlanHyperVReplicaAzureFailbackInput, bool) {
return nil, false
}
// AsRecoveryPlanInMageAzureV2FailoverInput is the RecoveryPlanProviderSpecificFailoverInput implementation for RecoveryPlanHyperVReplicaAzureFailoverInput.
func (rphvrafi RecoveryPlanHyperVReplicaAzureFailoverInput) AsRecoveryPlanInMageAzureV2FailoverInput() (*RecoveryPlanInMageAzureV2FailoverInput, bool) {
return nil, false
}
// AsRecoveryPlanInMageFailoverInput is the RecoveryPlanProviderSpecificFailoverInput implementation for RecoveryPlanHyperVReplicaAzureFailoverInput.
func (rphvrafi RecoveryPlanHyperVReplicaAzureFailoverInput) AsRecoveryPlanInMageFailoverInput() (*RecoveryPlanInMageFailoverInput, bool) {
return nil, false
}
// AsRecoveryPlanA2AFailoverInput is the RecoveryPlanProviderSpecificFailoverInput implementation for RecoveryPlanHyperVReplicaAzureFailoverInput.
func (rphvrafi RecoveryPlanHyperVReplicaAzureFailoverInput) AsRecoveryPlanA2AFailoverInput() (*RecoveryPlanA2AFailoverInput, bool) {
return nil, false
}
// RecoveryPlanInMageAzureV2FailoverInput is recovery plan InMageAzureV2 failover input.
type RecoveryPlanInMageAzureV2FailoverInput struct {
InstanceType InstanceTypeRecoveryPlanProviderSpecificFailoverInput `json:"instanceType,omitempty"`
VaultLocation *string `json:"vaultLocation,omitempty"`
RecoveryPointType InMageV2RpRecoveryPointType `json:"recoveryPointType,omitempty"`
UseMultiVMSyncPoint *string `json:"useMultiVmSyncPoint,omitempty"`
}
// MarshalJSON is the custom marshaler for RecoveryPlanInMageAzureV2FailoverInput.
func (rpimavfi RecoveryPlanInMageAzureV2FailoverInput) MarshalJSON() ([]byte, error) {
rpimavfi.InstanceType = InstanceTypeRecoveryPlanProviderSpecificFailoverInputInstanceTypeInMageAzureV2
type Alias RecoveryPlanInMageAzureV2FailoverInput
return json.Marshal(&struct {
Alias
}{
Alias: (Alias)(rpimavfi),
})
}
// AsRecoveryPlanHyperVReplicaAzureFailoverInput is the RecoveryPlanProviderSpecificFailoverInput implementation for RecoveryPlanInMageAzureV2FailoverInput.
func (rpimavfi RecoveryPlanInMageAzureV2FailoverInput) AsRecoveryPlanHyperVReplicaAzureFailoverInput() (*RecoveryPlanHyperVReplicaAzureFailoverInput, bool) {
return nil, false
}
// AsRecoveryPlanHyperVReplicaAzureFailbackInput is the RecoveryPlanProviderSpecificFailoverInput implementation for RecoveryPlanInMageAzureV2FailoverInput.
func (rpimavfi RecoveryPlanInMageAzureV2FailoverInput) AsRecoveryPlanHyperVReplicaAzureFailbackInput() (*RecoveryPlanHyperVReplicaAzureFailbackInput, bool) {
return nil, false
}
// AsRecoveryPlanInMageAzureV2FailoverInput is the RecoveryPlanProviderSpecificFailoverInput implementation for RecoveryPlanInMageAzureV2FailoverInput.
func (rpimavfi RecoveryPlanInMageAzureV2FailoverInput) AsRecoveryPlanInMageAzureV2FailoverInput() (*RecoveryPlanInMageAzureV2FailoverInput, bool) {
return &rpimavfi, true
}
// AsRecoveryPlanInMageFailoverInput is the RecoveryPlanProviderSpecificFailoverInput implementation for RecoveryPlanInMageAzureV2FailoverInput.
func (rpimavfi RecoveryPlanInMageAzureV2FailoverInput) AsRecoveryPlanInMageFailoverInput() (*RecoveryPlanInMageFailoverInput, bool) {
return nil, false
}
// AsRecoveryPlanA2AFailoverInput is the RecoveryPlanProviderSpecificFailoverInput implementation for RecoveryPlanInMageAzureV2FailoverInput.
func (rpimavfi RecoveryPlanInMageAzureV2FailoverInput) AsRecoveryPlanA2AFailoverInput() (*RecoveryPlanA2AFailoverInput, bool) {
return nil, false
}
// RecoveryPlanInMageFailoverInput is recovery plan InMage failover input.
type RecoveryPlanInMageFailoverInput struct {
InstanceType InstanceTypeRecoveryPlanProviderSpecificFailoverInput `json:"instanceType,omitempty"`
RecoveryPointType RpInMageRecoveryPointType `json:"recoveryPointType,omitempty"`
}
// MarshalJSON is the custom marshaler for RecoveryPlanInMageFailoverInput.
func (rpimfi RecoveryPlanInMageFailoverInput) MarshalJSON() ([]byte, error) {
rpimfi.InstanceType = InstanceTypeRecoveryPlanProviderSpecificFailoverInputInstanceTypeInMage
type Alias RecoveryPlanInMageFailoverInput
return json.Marshal(&struct {
Alias
}{
Alias: (Alias)(rpimfi),
})
}
// AsRecoveryPlanHyperVReplicaAzureFailoverInput is the RecoveryPlanProviderSpecificFailoverInput implementation for RecoveryPlanInMageFailoverInput.
func (rpimfi RecoveryPlanInMageFailoverInput) AsRecoveryPlanHyperVReplicaAzureFailoverInput() (*RecoveryPlanHyperVReplicaAzureFailoverInput, bool) {
return nil, false
}
// AsRecoveryPlanHyperVReplicaAzureFailbackInput is the RecoveryPlanProviderSpecificFailoverInput implementation for RecoveryPlanInMageFailoverInput.
func (rpimfi RecoveryPlanInMageFailoverInput) AsRecoveryPlanHyperVReplicaAzureFailbackInput() (*RecoveryPlanHyperVReplicaAzureFailbackInput, bool) {
return nil, false
}
// AsRecoveryPlanInMageAzureV2FailoverInput is the RecoveryPlanProviderSpecificFailoverInput implementation for RecoveryPlanInMageFailoverInput.
func (rpimfi RecoveryPlanInMageFailoverInput) AsRecoveryPlanInMageAzureV2FailoverInput() (*RecoveryPlanInMageAzureV2FailoverInput, bool) {
return nil, false
}
// AsRecoveryPlanInMageFailoverInput is the RecoveryPlanProviderSpecificFailoverInput implementation for RecoveryPlanInMageFailoverInput.
func (rpimfi RecoveryPlanInMageFailoverInput) AsRecoveryPlanInMageFailoverInput() (*RecoveryPlanInMageFailoverInput, bool) {
return &rpimfi, true
}
// AsRecoveryPlanA2AFailoverInput is the RecoveryPlanProviderSpecificFailoverInput implementation for RecoveryPlanInMageFailoverInput.
func (rpimfi RecoveryPlanInMageFailoverInput) AsRecoveryPlanA2AFailoverInput() (*RecoveryPlanA2AFailoverInput, bool) {
return nil, false
}
// RecoveryPlanManualActionDetails is recovery plan manual action details.
type RecoveryPlanManualActionDetails struct {
InstanceType InstanceTypeRecoveryPlanActionDetails `json:"instanceType,omitempty"`
Description *string `json:"description,omitempty"`
}
// MarshalJSON is the custom marshaler for RecoveryPlanManualActionDetails.
func (rpmad RecoveryPlanManualActionDetails) MarshalJSON() ([]byte, error) {
rpmad.InstanceType = InstanceTypeManualActionDetails
type Alias RecoveryPlanManualActionDetails
return json.Marshal(&struct {
Alias
}{
Alias: (Alias)(rpmad),
})
}
// AsRecoveryPlanScriptActionDetails is the RecoveryPlanActionDetails implementation for RecoveryPlanManualActionDetails.
func (rpmad RecoveryPlanManualActionDetails) AsRecoveryPlanScriptActionDetails() (*RecoveryPlanScriptActionDetails, bool) {
return nil, false
}
// AsRecoveryPlanAutomationRunbookActionDetails is the RecoveryPlanActionDetails implementation for RecoveryPlanManualActionDetails.
func (rpmad RecoveryPlanManualActionDetails) AsRecoveryPlanAutomationRunbookActionDetails() (*RecoveryPlanAutomationRunbookActionDetails, bool) {
return nil, false
}
// AsRecoveryPlanManualActionDetails is the RecoveryPlanActionDetails implementation for RecoveryPlanManualActionDetails.
func (rpmad RecoveryPlanManualActionDetails) AsRecoveryPlanManualActionDetails() (*RecoveryPlanManualActionDetails, bool) {
return &rpmad, true
}
// RecoveryPlanPlannedFailoverInput is recovery plan planned failover input.
type RecoveryPlanPlannedFailoverInput struct {
Properties *RecoveryPlanPlannedFailoverInputProperties `json:"properties,omitempty"`
}
// RecoveryPlanPlannedFailoverInputProperties is recovery plan planned failover input properties.
type RecoveryPlanPlannedFailoverInputProperties struct {
FailoverDirection PossibleOperationsDirections `json:"failoverDirection,omitempty"`
ProviderSpecificDetails *[]RecoveryPlanProviderSpecificFailoverInput `json:"providerSpecificDetails,omitempty"`
}
// UnmarshalJSON is the custom unmarshaler for RecoveryPlanPlannedFailoverInputProperties struct.
func (rppfip *RecoveryPlanPlannedFailoverInputProperties) 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["failoverDirection"]
if v != nil {
var failoverDirection PossibleOperationsDirections
err = json.Unmarshal(*m["failoverDirection"], &failoverDirection)
if err != nil {
return err
}
rppfip.FailoverDirection = failoverDirection
}
v = m["providerSpecificDetails"]
if v != nil {
providerSpecificDetails, err := unmarshalRecoveryPlanProviderSpecificFailoverInputArray(*m["providerSpecificDetails"])
if err != nil {
return err
}
rppfip.ProviderSpecificDetails = &providerSpecificDetails
}
return nil
}
// RecoveryPlanProperties is recovery plan custom details.
type RecoveryPlanProperties struct {
FriendlyName *string `json:"friendlyName,omitempty"`
PrimaryFabricID *string `json:"primaryFabricId,omitempty"`
PrimaryFabricFriendlyName *string `json:"primaryFabricFriendlyName,omitempty"`
RecoveryFabricID *string `json:"recoveryFabricId,omitempty"`
RecoveryFabricFriendlyName *string `json:"recoveryFabricFriendlyName,omitempty"`
FailoverDeploymentModel *string `json:"failoverDeploymentModel,omitempty"`
ReplicationProviders *[]string `json:"replicationProviders,omitempty"`
AllowedOperations *[]string `json:"allowedOperations,omitempty"`
LastPlannedFailoverTime *date.Time `json:"lastPlannedFailoverTime,omitempty"`
LastUnplannedFailoverTime *date.Time `json:"lastUnplannedFailoverTime,omitempty"`
LastTestFailoverTime *date.Time `json:"lastTestFailoverTime,omitempty"`
CurrentScenario *CurrentScenarioDetails `json:"currentScenario,omitempty"`
CurrentScenarioStatus *string `json:"currentScenarioStatus,omitempty"`
CurrentScenarioStatusDescription *string `json:"currentScenarioStatusDescription,omitempty"`
Groups *[]RecoveryPlanGroup `json:"groups,omitempty"`
}
// RecoveryPlanProtectedItem is recovery plan protected item.
type RecoveryPlanProtectedItem struct {
ID *string `json:"id,omitempty"`
VirtualMachineID *string `json:"virtualMachineId,omitempty"`
}
// RecoveryPlanProviderSpecificFailoverInput is recovery plan provider specific failover input base class.
type RecoveryPlanProviderSpecificFailoverInput interface {
AsRecoveryPlanHyperVReplicaAzureFailoverInput() (*RecoveryPlanHyperVReplicaAzureFailoverInput, bool)
AsRecoveryPlanHyperVReplicaAzureFailbackInput() (*RecoveryPlanHyperVReplicaAzureFailbackInput, bool)
AsRecoveryPlanInMageAzureV2FailoverInput() (*RecoveryPlanInMageAzureV2FailoverInput, bool)
AsRecoveryPlanInMageFailoverInput() (*RecoveryPlanInMageFailoverInput, bool)
AsRecoveryPlanA2AFailoverInput() (*RecoveryPlanA2AFailoverInput, bool)
}
func unmarshalRecoveryPlanProviderSpecificFailoverInput(body []byte) (RecoveryPlanProviderSpecificFailoverInput, error) {
var m map[string]interface{}
err := json.Unmarshal(body, &m)
if err != nil {
return nil, err
}
switch m["instanceType"] {
case string(InstanceTypeRecoveryPlanProviderSpecificFailoverInputInstanceTypeHyperVReplicaAzure):
var rphvrafi RecoveryPlanHyperVReplicaAzureFailoverInput
err := json.Unmarshal(body, &rphvrafi)
return rphvrafi, err
case string(InstanceTypeRecoveryPlanProviderSpecificFailoverInputInstanceTypeHyperVReplicaAzureFailback):
var rphvrafi RecoveryPlanHyperVReplicaAzureFailbackInput
err := json.Unmarshal(body, &rphvrafi)
return rphvrafi, err
case string(InstanceTypeRecoveryPlanProviderSpecificFailoverInputInstanceTypeInMageAzureV2):
var rpimavfi RecoveryPlanInMageAzureV2FailoverInput
err := json.Unmarshal(body, &rpimavfi)
return rpimavfi, err
case string(InstanceTypeRecoveryPlanProviderSpecificFailoverInputInstanceTypeInMage):
var rpimfi RecoveryPlanInMageFailoverInput
err := json.Unmarshal(body, &rpimfi)
return rpimfi, err
case string(InstanceTypeRecoveryPlanProviderSpecificFailoverInputInstanceTypeA2A):
var rpafi RecoveryPlanA2AFailoverInput
err := json.Unmarshal(body, &rpafi)
return rpafi, err
default:
return nil, errors.New("Unsupported type")
}
}
func unmarshalRecoveryPlanProviderSpecificFailoverInputArray(body []byte) ([]RecoveryPlanProviderSpecificFailoverInput, error) {
var rawMessages []*json.RawMessage
err := json.Unmarshal(body, &rawMessages)
if err != nil {
return nil, err
}
rppsfiArray := make([]RecoveryPlanProviderSpecificFailoverInput, len(rawMessages))
for index, rawMessage := range rawMessages {
rppsfi, err := unmarshalRecoveryPlanProviderSpecificFailoverInput(*rawMessage)
if err != nil {
return nil, err
}
rppsfiArray[index] = rppsfi
}
return rppsfiArray, nil
}
// RecoveryPlanScriptActionDetails is recovery plan script action details.
type RecoveryPlanScriptActionDetails struct {
InstanceType InstanceTypeRecoveryPlanActionDetails `json:"instanceType,omitempty"`
Path *string `json:"path,omitempty"`
Timeout *string `json:"timeout,omitempty"`
FabricLocation RecoveryPlanActionLocation `json:"fabricLocation,omitempty"`
}
// MarshalJSON is the custom marshaler for RecoveryPlanScriptActionDetails.
func (rpsad RecoveryPlanScriptActionDetails) MarshalJSON() ([]byte, error) {
rpsad.InstanceType = InstanceTypeScriptActionDetails
type Alias RecoveryPlanScriptActionDetails
return json.Marshal(&struct {
Alias
}{
Alias: (Alias)(rpsad),
})
}
// AsRecoveryPlanScriptActionDetails is the RecoveryPlanActionDetails implementation for RecoveryPlanScriptActionDetails.
func (rpsad RecoveryPlanScriptActionDetails) AsRecoveryPlanScriptActionDetails() (*RecoveryPlanScriptActionDetails, bool) {
return &rpsad, true
}
// AsRecoveryPlanAutomationRunbookActionDetails is the RecoveryPlanActionDetails implementation for RecoveryPlanScriptActionDetails.
func (rpsad RecoveryPlanScriptActionDetails) AsRecoveryPlanAutomationRunbookActionDetails() (*RecoveryPlanAutomationRunbookActionDetails, bool) {
return nil, false
}
// AsRecoveryPlanManualActionDetails is the RecoveryPlanActionDetails implementation for RecoveryPlanScriptActionDetails.
func (rpsad RecoveryPlanScriptActionDetails) AsRecoveryPlanManualActionDetails() (*RecoveryPlanManualActionDetails, bool) {
return nil, false
}
// RecoveryPlanShutdownGroupTaskDetails is this class represents the recovery plan shutdown group task details.
type RecoveryPlanShutdownGroupTaskDetails struct {
ChildTasks *[]ASRTask `json:"childTasks,omitempty"`
InstanceType InstanceTypeGroupTaskDetails `json:"instanceType,omitempty"`
Name *string `json:"name,omitempty"`
GroupID *string `json:"groupId,omitempty"`
RpGroupType *string `json:"rpGroupType,omitempty"`
}
// MarshalJSON is the custom marshaler for RecoveryPlanShutdownGroupTaskDetails.
func (rpsgtd RecoveryPlanShutdownGroupTaskDetails) MarshalJSON() ([]byte, error) {
rpsgtd.InstanceType = InstanceTypeRecoveryPlanShutdownGroupTaskDetails
type Alias RecoveryPlanShutdownGroupTaskDetails
return json.Marshal(&struct {
Alias
}{
Alias: (Alias)(rpsgtd),
})
}
// AsInlineWorkflowTaskDetails is the GroupTaskDetails implementation for RecoveryPlanShutdownGroupTaskDetails.
func (rpsgtd RecoveryPlanShutdownGroupTaskDetails) AsInlineWorkflowTaskDetails() (*InlineWorkflowTaskDetails, bool) {
return nil, false
}
// AsRecoveryPlanGroupTaskDetails is the GroupTaskDetails implementation for RecoveryPlanShutdownGroupTaskDetails.
func (rpsgtd RecoveryPlanShutdownGroupTaskDetails) AsRecoveryPlanGroupTaskDetails() (*RecoveryPlanGroupTaskDetails, bool) {
return nil, false
}
// AsRecoveryPlanShutdownGroupTaskDetails is the GroupTaskDetails implementation for RecoveryPlanShutdownGroupTaskDetails.
func (rpsgtd RecoveryPlanShutdownGroupTaskDetails) AsRecoveryPlanShutdownGroupTaskDetails() (*RecoveryPlanShutdownGroupTaskDetails, bool) {
return &rpsgtd, true
}
// RecoveryPlanTestFailoverCleanupInput is recovery plan test failover cleanup input.
type RecoveryPlanTestFailoverCleanupInput struct {
Properties *RecoveryPlanTestFailoverCleanupInputProperties `json:"properties,omitempty"`
}
// RecoveryPlanTestFailoverCleanupInputProperties is recovery plan test failover cleanup input properties.
type RecoveryPlanTestFailoverCleanupInputProperties struct {
Comments *string `json:"comments,omitempty"`
}
// RecoveryPlanTestFailoverInput is recovery plan test failover input.
type RecoveryPlanTestFailoverInput struct {
Properties *RecoveryPlanTestFailoverInputProperties `json:"properties,omitempty"`
}
// RecoveryPlanTestFailoverInputProperties is recovery plan test failover input properties.
type RecoveryPlanTestFailoverInputProperties struct {
FailoverDirection PossibleOperationsDirections `json:"failoverDirection,omitempty"`
NetworkType *string `json:"networkType,omitempty"`
NetworkID *string `json:"networkId,omitempty"`
SkipTestFailoverCleanup *string `json:"skipTestFailoverCleanup,omitempty"`
ProviderSpecificDetails *[]RecoveryPlanProviderSpecificFailoverInput `json:"providerSpecificDetails,omitempty"`
}
// UnmarshalJSON is the custom unmarshaler for RecoveryPlanTestFailoverInputProperties struct.
func (rptfip *RecoveryPlanTestFailoverInputProperties) 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["failoverDirection"]
if v != nil {
var failoverDirection PossibleOperationsDirections
err = json.Unmarshal(*m["failoverDirection"], &failoverDirection)
if err != nil {
return err
}
rptfip.FailoverDirection = failoverDirection
}
v = m["networkType"]
if v != nil {
var networkType string
err = json.Unmarshal(*m["networkType"], &networkType)
if err != nil {
return err
}
rptfip.NetworkType = &networkType
}
v = m["networkId"]
if v != nil {
var networkID string
err = json.Unmarshal(*m["networkId"], &networkID)
if err != nil {
return err
}
rptfip.NetworkID = &networkID
}
v = m["skipTestFailoverCleanup"]
if v != nil {
var skipTestFailoverCleanup string
err = json.Unmarshal(*m["skipTestFailoverCleanup"], &skipTestFailoverCleanup)
if err != nil {
return err
}
rptfip.SkipTestFailoverCleanup = &skipTestFailoverCleanup
}
v = m["providerSpecificDetails"]
if v != nil {
providerSpecificDetails, err := unmarshalRecoveryPlanProviderSpecificFailoverInputArray(*m["providerSpecificDetails"])
if err != nil {
return err
}
rptfip.ProviderSpecificDetails = &providerSpecificDetails
}
return nil
}
// RecoveryPlanUnplannedFailoverInput is recovery plan unplanned failover input.
type RecoveryPlanUnplannedFailoverInput struct {
Properties *RecoveryPlanUnplannedFailoverInputProperties `json:"properties,omitempty"`
}
// RecoveryPlanUnplannedFailoverInputProperties is recovery plan unplanned failover input properties.
type RecoveryPlanUnplannedFailoverInputProperties struct {
FailoverDirection PossibleOperationsDirections `json:"failoverDirection,omitempty"`
SourceSiteOperations SourceSiteOperations `json:"sourceSiteOperations,omitempty"`
ProviderSpecificDetails *[]RecoveryPlanProviderSpecificFailoverInput `json:"providerSpecificDetails,omitempty"`
}
// UnmarshalJSON is the custom unmarshaler for RecoveryPlanUnplannedFailoverInputProperties struct.
func (rpufip *RecoveryPlanUnplannedFailoverInputProperties) 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["failoverDirection"]
if v != nil {
var failoverDirection PossibleOperationsDirections
err = json.Unmarshal(*m["failoverDirection"], &failoverDirection)
if err != nil {
return err
}
rpufip.FailoverDirection = failoverDirection
}
v = m["sourceSiteOperations"]
if v != nil {
var sourceSiteOperations SourceSiteOperations
err = json.Unmarshal(*m["sourceSiteOperations"], &sourceSiteOperations)
if err != nil {
return err
}
rpufip.SourceSiteOperations = sourceSiteOperations
}
v = m["providerSpecificDetails"]
if v != nil {
providerSpecificDetails, err := unmarshalRecoveryPlanProviderSpecificFailoverInputArray(*m["providerSpecificDetails"])
if err != nil {
return err
}
rpufip.ProviderSpecificDetails = &providerSpecificDetails
}
return nil
}
// RecoveryPoint is base class representing a recovery point.
type RecoveryPoint struct {
autorest.Response `json:"-"`
ID *string `json:"id,omitempty"`
Name *string `json:"name,omitempty"`
Type *string `json:"type,omitempty"`
Location *string `json:"location,omitempty"`
Properties *RecoveryPointProperties `json:"properties,omitempty"`
}
// RecoveryPointCollection is collection of recovery point details.
type RecoveryPointCollection struct {
autorest.Response `json:"-"`
Value *[]RecoveryPoint `json:"value,omitempty"`
NextLink *string `json:"nextLink,omitempty"`
}
// RecoveryPointCollectionPreparer prepares a request to retrieve the next set of results. It returns
// nil if no more results exist.
func (client RecoveryPointCollection) RecoveryPointCollectionPreparer() (*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)))
}
// RecoveryPointProperties is recovery point properties.
type RecoveryPointProperties struct {
RecoveryPointTime *date.Time `json:"recoveryPointTime,omitempty"`
RecoveryPointType *string `json:"recoveryPointType,omitempty"`
ProviderSpecificDetails *ProviderSpecificRecoveryPointDetails `json:"providerSpecificDetails,omitempty"`
}
// RecoveryServicesProvider is provider details.
type RecoveryServicesProvider struct {
autorest.Response `json:"-"`
ID *string `json:"id,omitempty"`
Name *string `json:"name,omitempty"`
Type *string `json:"type,omitempty"`
Location *string `json:"location,omitempty"`
Properties *RecoveryServicesProviderProperties `json:"properties,omitempty"`
}
// RecoveryServicesProviderCollection is collection of providers.
type RecoveryServicesProviderCollection struct {
autorest.Response `json:"-"`
Value *[]RecoveryServicesProvider `json:"value,omitempty"`
NextLink *string `json:"nextLink,omitempty"`
}
// RecoveryServicesProviderCollectionPreparer prepares a request to retrieve the next set of results. It returns
// nil if no more results exist.
func (client RecoveryServicesProviderCollection) RecoveryServicesProviderCollectionPreparer() (*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)))
}
// RecoveryServicesProviderProperties is recovery services provider properties.
type RecoveryServicesProviderProperties struct {
FabricType *string `json:"fabricType,omitempty"`
FriendlyName *string `json:"friendlyName,omitempty"`
ProviderVersion *string `json:"providerVersion,omitempty"`
ServerVersion *string `json:"serverVersion,omitempty"`
ProviderVersionState *string `json:"providerVersionState,omitempty"`
ProviderVersionExpiryDate *date.Time `json:"providerVersionExpiryDate,omitempty"`
FabricFriendlyName *string `json:"fabricFriendlyName,omitempty"`
LastHeartBeat *date.Time `json:"lastHeartBeat,omitempty"`
ConnectionStatus *string `json:"connectionStatus,omitempty"`
ProtectedItemCount *int32 `json:"protectedItemCount,omitempty"`
AllowedScenarios *[]string `json:"allowedScenarios,omitempty"`
HealthErrorDetails *[]HealthError `json:"healthErrorDetails,omitempty"`
DraIdentifier *string `json:"draIdentifier,omitempty"`
IdentityDetails *IdentityInformation `json:"identityDetails,omitempty"`
}
// RemoveProtectionContainerMappingInput is container unpairing input.
type RemoveProtectionContainerMappingInput struct {
Properties *RemoveProtectionContainerMappingInputProperties `json:"properties,omitempty"`
}
// RemoveProtectionContainerMappingInputProperties is unpairing input properties.
type RemoveProtectionContainerMappingInputProperties struct {
ProviderSpecificInput *ReplicationProviderContainerUnmappingInput `json:"providerSpecificInput,omitempty"`
}
// RenewCertificateInput is certificate renewal input.
type RenewCertificateInput struct {
Properties *RenewCertificateInputProperties `json:"properties,omitempty"`
}
// RenewCertificateInputProperties is renew Certificate input properties.
type RenewCertificateInputProperties struct {
RenewCertificateType *string `json:"renewCertificateType,omitempty"`
}
// ReplicationGroupDetails is replication group details. This will be used in case of San and Wvr.
type ReplicationGroupDetails struct {
InstanceType InstanceTypeConfigurationSettings `json:"instanceType,omitempty"`
}
// MarshalJSON is the custom marshaler for ReplicationGroupDetails.
func (rgd ReplicationGroupDetails) MarshalJSON() ([]byte, error) {
rgd.InstanceType = InstanceTypeReplicationGroupDetails
type Alias ReplicationGroupDetails
return json.Marshal(&struct {
Alias
}{
Alias: (Alias)(rgd),
})
}
// AsHyperVVirtualMachineDetails is the ConfigurationSettings implementation for ReplicationGroupDetails.
func (rgd ReplicationGroupDetails) AsHyperVVirtualMachineDetails() (*HyperVVirtualMachineDetails, bool) {
return nil, false
}
// AsVMwareVirtualMachineDetails is the ConfigurationSettings implementation for ReplicationGroupDetails.
func (rgd ReplicationGroupDetails) AsVMwareVirtualMachineDetails() (*VMwareVirtualMachineDetails, bool) {
return nil, false
}
// AsReplicationGroupDetails is the ConfigurationSettings implementation for ReplicationGroupDetails.
func (rgd ReplicationGroupDetails) AsReplicationGroupDetails() (*ReplicationGroupDetails, bool) {
return &rgd, true
}
// ReplicationProtectedItem is replication protected item.
type ReplicationProtectedItem struct {
autorest.Response `json:"-"`
ID *string `json:"id,omitempty"`
Name *string `json:"name,omitempty"`
Type *string `json:"type,omitempty"`
Location *string `json:"location,omitempty"`
Properties *ReplicationProtectedItemProperties `json:"properties,omitempty"`
}
// ReplicationProtectedItemCollection is replication protected item collection.
type ReplicationProtectedItemCollection struct {
autorest.Response `json:"-"`
Value *[]ReplicationProtectedItem `json:"value,omitempty"`
NextLink *string `json:"nextLink,omitempty"`
}
// ReplicationProtectedItemCollectionPreparer prepares a request to retrieve the next set of results. It returns
// nil if no more results exist.
func (client ReplicationProtectedItemCollection) ReplicationProtectedItemCollectionPreparer() (*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)))
}
// ReplicationProtectedItemProperties is replication protected item custom data details.
type ReplicationProtectedItemProperties struct {
FriendlyName *string `json:"friendlyName,omitempty"`
ProtectedItemType *string `json:"protectedItemType,omitempty"`
ProtectableItemID *string `json:"protectableItemId,omitempty"`
RecoveryServicesProviderID *string `json:"recoveryServicesProviderId,omitempty"`
PrimaryFabricFriendlyName *string `json:"primaryFabricFriendlyName,omitempty"`
RecoveryFabricFriendlyName *string `json:"recoveryFabricFriendlyName,omitempty"`
RecoveryFabricID *string `json:"recoveryFabricId,omitempty"`
PrimaryProtectionContainerFriendlyName *string `json:"primaryProtectionContainerFriendlyName,omitempty"`
RecoveryProtectionContainerFriendlyName *string `json:"recoveryProtectionContainerFriendlyName,omitempty"`
ProtectionState *string `json:"protectionState,omitempty"`
ProtectionStateDescription *string `json:"protectionStateDescription,omitempty"`
ActiveLocation *string `json:"activeLocation,omitempty"`
TestFailoverState *string `json:"testFailoverState,omitempty"`
TestFailoverStateDescription *string `json:"testFailoverStateDescription,omitempty"`
AllowedOperations *[]string `json:"allowedOperations,omitempty"`
ReplicationHealth *string `json:"replicationHealth,omitempty"`
FailoverHealth *string `json:"failoverHealth,omitempty"`
ReplicationHealthErrors *[]HealthError `json:"replicationHealthErrors,omitempty"`
FailoverHealthErrors *[]HealthError `json:"failoverHealthErrors,omitempty"`
PolicyID *string `json:"policyId,omitempty"`
PolicyFriendlyName *string `json:"policyFriendlyName,omitempty"`
LastSuccessfulFailoverTime *date.Time `json:"lastSuccessfulFailoverTime,omitempty"`
LastSuccessfulTestFailoverTime *date.Time `json:"lastSuccessfulTestFailoverTime,omitempty"`
CurrentScenario *CurrentScenarioDetails `json:"currentScenario,omitempty"`
FailoverRecoveryPointID *string `json:"failoverRecoveryPointId,omitempty"`
ProviderSpecificDetails ReplicationProviderSpecificSettings `json:"providerSpecificDetails,omitempty"`
RecoveryContainerID *string `json:"recoveryContainerId,omitempty"`
}
// UnmarshalJSON is the custom unmarshaler for ReplicationProtectedItemProperties struct.
func (rpip *ReplicationProtectedItemProperties) 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["friendlyName"]
if v != nil {
var friendlyName string
err = json.Unmarshal(*m["friendlyName"], &friendlyName)
if err != nil {
return err
}
rpip.FriendlyName = &friendlyName
}
v = m["protectedItemType"]
if v != nil {
var protectedItemType string
err = json.Unmarshal(*m["protectedItemType"], &protectedItemType)
if err != nil {
return err
}
rpip.ProtectedItemType = &protectedItemType
}
v = m["protectableItemId"]
if v != nil {
var protectableItemID string
err = json.Unmarshal(*m["protectableItemId"], &protectableItemID)
if err != nil {
return err
}
rpip.ProtectableItemID = &protectableItemID
}
v = m["recoveryServicesProviderId"]
if v != nil {
var recoveryServicesProviderID string
err = json.Unmarshal(*m["recoveryServicesProviderId"], &recoveryServicesProviderID)
if err != nil {
return err
}
rpip.RecoveryServicesProviderID = &recoveryServicesProviderID
}
v = m["primaryFabricFriendlyName"]
if v != nil {
var primaryFabricFriendlyName string
err = json.Unmarshal(*m["primaryFabricFriendlyName"], &primaryFabricFriendlyName)
if err != nil {
return err
}
rpip.PrimaryFabricFriendlyName = &primaryFabricFriendlyName
}
v = m["recoveryFabricFriendlyName"]
if v != nil {
var recoveryFabricFriendlyName string
err = json.Unmarshal(*m["recoveryFabricFriendlyName"], &recoveryFabricFriendlyName)
if err != nil {
return err
}
rpip.RecoveryFabricFriendlyName = &recoveryFabricFriendlyName
}
v = m["recoveryFabricId"]
if v != nil {
var recoveryFabricID string
err = json.Unmarshal(*m["recoveryFabricId"], &recoveryFabricID)
if err != nil {
return err
}
rpip.RecoveryFabricID = &recoveryFabricID
}
v = m["primaryProtectionContainerFriendlyName"]
if v != nil {
var primaryProtectionContainerFriendlyName string
err = json.Unmarshal(*m["primaryProtectionContainerFriendlyName"], &primaryProtectionContainerFriendlyName)
if err != nil {
return err
}
rpip.PrimaryProtectionContainerFriendlyName = &primaryProtectionContainerFriendlyName
}
v = m["recoveryProtectionContainerFriendlyName"]
if v != nil {
var recoveryProtectionContainerFriendlyName string
err = json.Unmarshal(*m["recoveryProtectionContainerFriendlyName"], &recoveryProtectionContainerFriendlyName)
if err != nil {
return err
}
rpip.RecoveryProtectionContainerFriendlyName = &recoveryProtectionContainerFriendlyName
}
v = m["protectionState"]
if v != nil {
var protectionState string
err = json.Unmarshal(*m["protectionState"], &protectionState)
if err != nil {
return err
}
rpip.ProtectionState = &protectionState
}
v = m["protectionStateDescription"]
if v != nil {
var protectionStateDescription string
err = json.Unmarshal(*m["protectionStateDescription"], &protectionStateDescription)
if err != nil {
return err
}
rpip.ProtectionStateDescription = &protectionStateDescription
}
v = m["activeLocation"]
if v != nil {
var activeLocation string
err = json.Unmarshal(*m["activeLocation"], &activeLocation)
if err != nil {
return err
}
rpip.ActiveLocation = &activeLocation
}
v = m["testFailoverState"]
if v != nil {
var testFailoverState string
err = json.Unmarshal(*m["testFailoverState"], &testFailoverState)
if err != nil {
return err
}
rpip.TestFailoverState = &testFailoverState
}
v = m["testFailoverStateDescription"]
if v != nil {
var testFailoverStateDescription string
err = json.Unmarshal(*m["testFailoverStateDescription"], &testFailoverStateDescription)
if err != nil {
return err
}
rpip.TestFailoverStateDescription = &testFailoverStateDescription
}
v = m["allowedOperations"]
if v != nil {
var allowedOperations []string
err = json.Unmarshal(*m["allowedOperations"], &allowedOperations)
if err != nil {
return err
}
rpip.AllowedOperations = &allowedOperations
}
v = m["replicationHealth"]
if v != nil {
var replicationHealth string
err = json.Unmarshal(*m["replicationHealth"], &replicationHealth)
if err != nil {
return err
}
rpip.ReplicationHealth = &replicationHealth
}
v = m["failoverHealth"]
if v != nil {
var failoverHealth string
err = json.Unmarshal(*m["failoverHealth"], &failoverHealth)
if err != nil {
return err
}
rpip.FailoverHealth = &failoverHealth
}
v = m["replicationHealthErrors"]
if v != nil {
var replicationHealthErrors []HealthError
err = json.Unmarshal(*m["replicationHealthErrors"], &replicationHealthErrors)
if err != nil {
return err
}
rpip.ReplicationHealthErrors = &replicationHealthErrors
}
v = m["failoverHealthErrors"]
if v != nil {
var failoverHealthErrors []HealthError
err = json.Unmarshal(*m["failoverHealthErrors"], &failoverHealthErrors)
if err != nil {
return err
}
rpip.FailoverHealthErrors = &failoverHealthErrors
}
v = m["policyId"]
if v != nil {
var policyID string
err = json.Unmarshal(*m["policyId"], &policyID)
if err != nil {
return err
}
rpip.PolicyID = &policyID
}
v = m["policyFriendlyName"]
if v != nil {
var policyFriendlyName string
err = json.Unmarshal(*m["policyFriendlyName"], &policyFriendlyName)
if err != nil {
return err
}
rpip.PolicyFriendlyName = &policyFriendlyName
}
v = m["lastSuccessfulFailoverTime"]
if v != nil {
var lastSuccessfulFailoverTime date.Time
err = json.Unmarshal(*m["lastSuccessfulFailoverTime"], &lastSuccessfulFailoverTime)
if err != nil {
return err
}
rpip.LastSuccessfulFailoverTime = &lastSuccessfulFailoverTime
}
v = m["lastSuccessfulTestFailoverTime"]
if v != nil {
var lastSuccessfulTestFailoverTime date.Time
err = json.Unmarshal(*m["lastSuccessfulTestFailoverTime"], &lastSuccessfulTestFailoverTime)
if err != nil {
return err
}
rpip.LastSuccessfulTestFailoverTime = &lastSuccessfulTestFailoverTime
}
v = m["currentScenario"]
if v != nil {
var currentScenario CurrentScenarioDetails
err = json.Unmarshal(*m["currentScenario"], &currentScenario)
if err != nil {
return err
}
rpip.CurrentScenario = &currentScenario
}
v = m["failoverRecoveryPointId"]
if v != nil {
var failoverRecoveryPointID string
err = json.Unmarshal(*m["failoverRecoveryPointId"], &failoverRecoveryPointID)
if err != nil {
return err
}
rpip.FailoverRecoveryPointID = &failoverRecoveryPointID
}
v = m["providerSpecificDetails"]
if v != nil {
providerSpecificDetails, err := unmarshalReplicationProviderSpecificSettings(*m["providerSpecificDetails"])
if err != nil {
return err
}
rpip.ProviderSpecificDetails = providerSpecificDetails
}
v = m["recoveryContainerId"]
if v != nil {
var recoveryContainerID string
err = json.Unmarshal(*m["recoveryContainerId"], &recoveryContainerID)
if err != nil {
return err
}
rpip.RecoveryContainerID = &recoveryContainerID
}
return nil
}
// ReplicationProviderContainerUnmappingInput is provider specific input for unpairing operations.
type ReplicationProviderContainerUnmappingInput struct {
InstanceType *string `json:"instanceType,omitempty"`
}
// ReplicationProviderSpecificContainerCreationInput is provider specific input for container creation operation.
type ReplicationProviderSpecificContainerCreationInput interface {
AsA2AContainerCreationInput() (*A2AContainerCreationInput, bool)
}
func unmarshalReplicationProviderSpecificContainerCreationInput(body []byte) (ReplicationProviderSpecificContainerCreationInput, error) {
var m map[string]interface{}
err := json.Unmarshal(body, &m)
if err != nil {
return nil, err
}
switch m["instanceType"] {
case string(InstanceTypeA2A):
var acci A2AContainerCreationInput
err := json.Unmarshal(body, &acci)
return acci, err
default:
return nil, errors.New("Unsupported type")
}
}
func unmarshalReplicationProviderSpecificContainerCreationInputArray(body []byte) ([]ReplicationProviderSpecificContainerCreationInput, error) {
var rawMessages []*json.RawMessage
err := json.Unmarshal(body, &rawMessages)
if err != nil {
return nil, err
}
rpscciArray := make([]ReplicationProviderSpecificContainerCreationInput, len(rawMessages))
for index, rawMessage := range rawMessages {
rpscci, err := unmarshalReplicationProviderSpecificContainerCreationInput(*rawMessage)
if err != nil {
return nil, err
}
rpscciArray[index] = rpscci
}
return rpscciArray, nil
}
// ReplicationProviderSpecificContainerMappingInput is provider specific input for pairing operations.
type ReplicationProviderSpecificContainerMappingInput struct {
InstanceType *string `json:"instanceType,omitempty"`
}
// ReplicationProviderSpecificSettings is replication provider specific settings.
type ReplicationProviderSpecificSettings interface {
AsHyperVReplicaBaseReplicationDetails() (*HyperVReplicaBaseReplicationDetails, bool)
AsHyperVReplicaReplicationDetails() (*HyperVReplicaReplicationDetails, bool)
AsHyperVReplicaBlueReplicationDetails() (*HyperVReplicaBlueReplicationDetails, bool)
AsHyperVReplicaAzureReplicationDetails() (*HyperVReplicaAzureReplicationDetails, bool)
AsInMageAzureV2ReplicationDetails() (*InMageAzureV2ReplicationDetails, bool)
AsInMageReplicationDetails() (*InMageReplicationDetails, bool)
AsA2AReplicationDetails() (*A2AReplicationDetails, bool)
}
func unmarshalReplicationProviderSpecificSettings(body []byte) (ReplicationProviderSpecificSettings, error) {
var m map[string]interface{}
err := json.Unmarshal(body, &m)
if err != nil {
return nil, err
}
switch m["instanceType"] {
case string(InstanceTypeReplicationProviderSpecificSettingsInstanceTypeHyperVReplicaBaseReplicationDetails):
var hvrbrd HyperVReplicaBaseReplicationDetails
err := json.Unmarshal(body, &hvrbrd)
return hvrbrd, err
case string(InstanceTypeReplicationProviderSpecificSettingsInstanceTypeHyperVReplica2012):
var hvrrd HyperVReplicaReplicationDetails
err := json.Unmarshal(body, &hvrrd)
return hvrrd, err
case string(InstanceTypeReplicationProviderSpecificSettingsInstanceTypeHyperVReplica2012R2):
var hvrbrd HyperVReplicaBlueReplicationDetails
err := json.Unmarshal(body, &hvrbrd)
return hvrbrd, err
case string(InstanceTypeReplicationProviderSpecificSettingsInstanceTypeHyperVReplicaAzure):
var hvrard HyperVReplicaAzureReplicationDetails
err := json.Unmarshal(body, &hvrard)
return hvrard, err
case string(InstanceTypeReplicationProviderSpecificSettingsInstanceTypeInMageAzureV2):
var imavrd InMageAzureV2ReplicationDetails
err := json.Unmarshal(body, &imavrd)
return imavrd, err
case string(InstanceTypeReplicationProviderSpecificSettingsInstanceTypeInMage):
var imrd InMageReplicationDetails
err := json.Unmarshal(body, &imrd)
return imrd, err
case string(InstanceTypeReplicationProviderSpecificSettingsInstanceTypeA2A):
var ard A2AReplicationDetails
err := json.Unmarshal(body, &ard)
return ard, err
default:
return nil, errors.New("Unsupported type")
}
}
func unmarshalReplicationProviderSpecificSettingsArray(body []byte) ([]ReplicationProviderSpecificSettings, error) {
var rawMessages []*json.RawMessage
err := json.Unmarshal(body, &rawMessages)
if err != nil {
return nil, err
}
rpssArray := make([]ReplicationProviderSpecificSettings, len(rawMessages))
for index, rawMessage := range rawMessages {
rpss, err := unmarshalReplicationProviderSpecificSettings(*rawMessage)
if err != nil {
return nil, err
}
rpssArray[index] = rpss
}
return rpssArray, nil
}
// Resource is azure resource.
type Resource struct {
ID *string `json:"id,omitempty"`
Name *string `json:"name,omitempty"`
Type *string `json:"type,omitempty"`
Location *string `json:"location,omitempty"`
}
// ResourceHealthSummary is base class to define the health summary of the resources contained under an Arm resource.
type ResourceHealthSummary struct {
ResourceCount *int32 `json:"resourceCount,omitempty"`
Issues *[]HealthErrorSummary `json:"issues,omitempty"`
}
// ResumeJobParams is resume job params.
type ResumeJobParams struct {
Properties *ResumeJobParamsProperties `json:"properties,omitempty"`
}
// ResumeJobParamsProperties is resume job properties.
type ResumeJobParamsProperties struct {
Comments *string `json:"comments,omitempty"`
}
// RetentionVolume is the retention details of the MT.
type RetentionVolume struct {
VolumeName *string `json:"volumeName,omitempty"`
CapacityInBytes *int64 `json:"capacityInBytes,omitempty"`
FreeSpaceInBytes *int64 `json:"freeSpaceInBytes,omitempty"`
ThresholdPercentage *int32 `json:"thresholdPercentage,omitempty"`
}
// ReverseReplicationInput is reverse replication input.
type ReverseReplicationInput struct {
Properties *ReverseReplicationInputProperties `json:"properties,omitempty"`
}
// ReverseReplicationInputProperties is reverse replication input properties.
type ReverseReplicationInputProperties struct {
FailoverDirection *string `json:"failoverDirection,omitempty"`
ProviderSpecificDetails ReverseReplicationProviderSpecificInput `json:"providerSpecificDetails,omitempty"`
}
// UnmarshalJSON is the custom unmarshaler for ReverseReplicationInputProperties struct.
func (rrip *ReverseReplicationInputProperties) 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["failoverDirection"]
if v != nil {
var failoverDirection string
err = json.Unmarshal(*m["failoverDirection"], &failoverDirection)
if err != nil {
return err
}
rrip.FailoverDirection = &failoverDirection
}
v = m["providerSpecificDetails"]
if v != nil {
providerSpecificDetails, err := unmarshalReverseReplicationProviderSpecificInput(*m["providerSpecificDetails"])
if err != nil {
return err
}
rrip.ProviderSpecificDetails = providerSpecificDetails
}
return nil
}
// ReverseReplicationProviderSpecificInput is provider specific reverse replication input.
type ReverseReplicationProviderSpecificInput interface {
AsHyperVReplicaAzureReprotectInput() (*HyperVReplicaAzureReprotectInput, bool)
AsInMageAzureV2ReprotectInput() (*InMageAzureV2ReprotectInput, bool)
AsInMageReprotectInput() (*InMageReprotectInput, bool)
AsA2AReprotectInput() (*A2AReprotectInput, bool)
}
func unmarshalReverseReplicationProviderSpecificInput(body []byte) (ReverseReplicationProviderSpecificInput, error) {
var m map[string]interface{}
err := json.Unmarshal(body, &m)
if err != nil {
return nil, err
}
switch m["instanceType"] {
case string(InstanceTypeReverseReplicationProviderSpecificInputInstanceTypeHyperVReplicaAzure):
var hvrari HyperVReplicaAzureReprotectInput
err := json.Unmarshal(body, &hvrari)
return hvrari, err
case string(InstanceTypeReverseReplicationProviderSpecificInputInstanceTypeInMageAzureV2):
var imavri InMageAzureV2ReprotectInput
err := json.Unmarshal(body, &imavri)
return imavri, err
case string(InstanceTypeReverseReplicationProviderSpecificInputInstanceTypeInMage):
var imri InMageReprotectInput
err := json.Unmarshal(body, &imri)
return imri, err
case string(InstanceTypeReverseReplicationProviderSpecificInputInstanceTypeA2A):
var ari A2AReprotectInput
err := json.Unmarshal(body, &ari)
return ari, err
default:
return nil, errors.New("Unsupported type")
}
}
func unmarshalReverseReplicationProviderSpecificInputArray(body []byte) ([]ReverseReplicationProviderSpecificInput, error) {
var rawMessages []*json.RawMessage
err := json.Unmarshal(body, &rawMessages)
if err != nil {
return nil, err
}
rrpsiArray := make([]ReverseReplicationProviderSpecificInput, len(rawMessages))
for index, rawMessage := range rawMessages {
rrpsi, err := unmarshalReverseReplicationProviderSpecificInput(*rawMessage)
if err != nil {
return nil, err
}
rrpsiArray[index] = rrpsi
}
return rrpsiArray, nil
}
// RoleAssignment is azure role assignment details.
type RoleAssignment struct {
ID *string `json:"id,omitempty"`
Name *string `json:"name,omitempty"`
Scope *string `json:"scope,omitempty"`
PrincipalID *string `json:"principalId,omitempty"`
RoleDefinitionID *string `json:"roleDefinitionId,omitempty"`
}
// RunAsAccount is CS Accounts Details.
type RunAsAccount struct {
AccountID *string `json:"accountId,omitempty"`
AccountName *string `json:"accountName,omitempty"`
}
// SanEnableProtectionInput is san enable protection provider specific input.
type SanEnableProtectionInput struct {
InstanceType InstanceTypeEnableProtectionProviderSpecificInput `json:"instanceType,omitempty"`
}
// MarshalJSON is the custom marshaler for SanEnableProtectionInput.
func (sepi SanEnableProtectionInput) MarshalJSON() ([]byte, error) {
sepi.InstanceType = InstanceTypeEnableProtectionProviderSpecificInputInstanceTypeSan
type Alias SanEnableProtectionInput
return json.Marshal(&struct {
Alias
}{
Alias: (Alias)(sepi),
})
}
// AsHyperVReplicaAzureEnableProtectionInput is the EnableProtectionProviderSpecificInput implementation for SanEnableProtectionInput.
func (sepi SanEnableProtectionInput) AsHyperVReplicaAzureEnableProtectionInput() (*HyperVReplicaAzureEnableProtectionInput, bool) {
return nil, false
}
// AsSanEnableProtectionInput is the EnableProtectionProviderSpecificInput implementation for SanEnableProtectionInput.
func (sepi SanEnableProtectionInput) AsSanEnableProtectionInput() (*SanEnableProtectionInput, bool) {
return &sepi, true
}
// AsInMageAzureV2EnableProtectionInput is the EnableProtectionProviderSpecificInput implementation for SanEnableProtectionInput.
func (sepi SanEnableProtectionInput) AsInMageAzureV2EnableProtectionInput() (*InMageAzureV2EnableProtectionInput, bool) {
return nil, false
}
// AsInMageEnableProtectionInput is the EnableProtectionProviderSpecificInput implementation for SanEnableProtectionInput.
func (sepi SanEnableProtectionInput) AsInMageEnableProtectionInput() (*InMageEnableProtectionInput, bool) {
return nil, false
}
// AsA2AEnableProtectionInput is the EnableProtectionProviderSpecificInput implementation for SanEnableProtectionInput.
func (sepi SanEnableProtectionInput) AsA2AEnableProtectionInput() (*A2AEnableProtectionInput, bool) {
return nil, false
}
// ScriptActionTaskDetails is this class represents the script action task details.
type ScriptActionTaskDetails struct {
InstanceType InstanceTypeTaskTypeDetails `json:"instanceType,omitempty"`
Name *string `json:"name,omitempty"`
Path *string `json:"path,omitempty"`
Output *string `json:"output,omitempty"`
IsPrimarySideScript *bool `json:"isPrimarySideScript,omitempty"`
}
// MarshalJSON is the custom marshaler for ScriptActionTaskDetails.
func (satd ScriptActionTaskDetails) MarshalJSON() ([]byte, error) {
satd.InstanceType = InstanceTypeScriptActionTaskDetails
type Alias ScriptActionTaskDetails
return json.Marshal(&struct {
Alias
}{
Alias: (Alias)(satd),
})
}
// AsJobTaskDetails is the TaskTypeDetails implementation for ScriptActionTaskDetails.
func (satd ScriptActionTaskDetails) AsJobTaskDetails() (*JobTaskDetails, bool) {
return nil, false
}
// AsVirtualMachineTaskDetails is the TaskTypeDetails implementation for ScriptActionTaskDetails.
func (satd ScriptActionTaskDetails) AsVirtualMachineTaskDetails() (*VirtualMachineTaskDetails, bool) {
return nil, false
}
// AsFabricReplicationGroupTaskDetails is the TaskTypeDetails implementation for ScriptActionTaskDetails.
func (satd ScriptActionTaskDetails) AsFabricReplicationGroupTaskDetails() (*FabricReplicationGroupTaskDetails, bool) {
return nil, false
}
// AsManualActionTaskDetails is the TaskTypeDetails implementation for ScriptActionTaskDetails.
func (satd ScriptActionTaskDetails) AsManualActionTaskDetails() (*ManualActionTaskDetails, bool) {
return nil, false
}
// AsScriptActionTaskDetails is the TaskTypeDetails implementation for ScriptActionTaskDetails.
func (satd ScriptActionTaskDetails) AsScriptActionTaskDetails() (*ScriptActionTaskDetails, bool) {
return &satd, true
}
// AsVMNicUpdatesTaskDetails is the TaskTypeDetails implementation for ScriptActionTaskDetails.
func (satd ScriptActionTaskDetails) AsVMNicUpdatesTaskDetails() (*VMNicUpdatesTaskDetails, bool) {
return nil, false
}
// AsConsistencyCheckTaskDetails is the TaskTypeDetails implementation for ScriptActionTaskDetails.
func (satd ScriptActionTaskDetails) AsConsistencyCheckTaskDetails() (*ConsistencyCheckTaskDetails, bool) {
return nil, false
}
// AsAutomationRunbookTaskDetails is the TaskTypeDetails implementation for ScriptActionTaskDetails.
func (satd ScriptActionTaskDetails) AsAutomationRunbookTaskDetails() (*AutomationRunbookTaskDetails, bool) {
return nil, false
}
// ServiceError is ASR error model
type ServiceError struct {
Code *string `json:"code,omitempty"`
Message *string `json:"message,omitempty"`
PossibleCauses *string `json:"possibleCauses,omitempty"`
RecommendedAction *string `json:"recommendedAction,omitempty"`
ActivityID *string `json:"activityId,omitempty"`
}
// StorageClassification is storage object definition.
type StorageClassification struct {
autorest.Response `json:"-"`
ID *string `json:"id,omitempty"`
Name *string `json:"name,omitempty"`
Type *string `json:"type,omitempty"`
Location *string `json:"location,omitempty"`
Properties *StorageClassificationProperties `json:"properties,omitempty"`
}
// StorageClassificationCollection is collection of storage details.
type StorageClassificationCollection struct {
autorest.Response `json:"-"`
Value *[]StorageClassification `json:"value,omitempty"`
NextLink *string `json:"nextLink,omitempty"`
}
// StorageClassificationCollectionPreparer prepares a request to retrieve the next set of results. It returns
// nil if no more results exist.
func (client StorageClassificationCollection) StorageClassificationCollectionPreparer() (*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)))
}
// StorageClassificationMapping is storage mapping object.
type StorageClassificationMapping struct {
autorest.Response `json:"-"`
ID *string `json:"id,omitempty"`
Name *string `json:"name,omitempty"`
Type *string `json:"type,omitempty"`
Location *string `json:"location,omitempty"`
Properties *StorageClassificationMappingProperties `json:"properties,omitempty"`
}
// StorageClassificationMappingCollection is collection of storage mapping details.
type StorageClassificationMappingCollection struct {
autorest.Response `json:"-"`
Value *[]StorageClassificationMapping `json:"value,omitempty"`
NextLink *string `json:"nextLink,omitempty"`
}
// StorageClassificationMappingCollectionPreparer prepares a request to retrieve the next set of results. It returns
// nil if no more results exist.
func (client StorageClassificationMappingCollection) StorageClassificationMappingCollectionPreparer() (*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)))
}
// StorageClassificationMappingInput is storage mapping input.
type StorageClassificationMappingInput struct {
Properties *StorageMappingInputProperties `json:"properties,omitempty"`
}
// StorageClassificationMappingProperties is storage mapping properties.
type StorageClassificationMappingProperties struct {
TargetStorageClassificationID *string `json:"targetStorageClassificationId,omitempty"`
}
// StorageClassificationProperties is storage object properties.
type StorageClassificationProperties struct {
FriendlyName *string `json:"friendlyName,omitempty"`
}
// StorageMappingInputProperties is storage mapping input properties.
type StorageMappingInputProperties struct {
TargetStorageClassificationID *string `json:"targetStorageClassificationId,omitempty"`
}
// Subnet is subnets of the network.
type Subnet struct {
Name *string `json:"name,omitempty"`
FriendlyName *string `json:"friendlyName,omitempty"`
AddressList *[]string `json:"addressList,omitempty"`
}
// SwitchProtectionInput is switch protection input.
type SwitchProtectionInput struct {
Properties *SwitchProtectionInputProperties `json:"properties,omitempty"`
}
// SwitchProtectionInputProperties is switch protection input properties.
type SwitchProtectionInputProperties struct {
ReplicationProtectedItemName *string `json:"replicationProtectedItemName,omitempty"`
ProviderSpecificDetails SwitchProtectionProviderSpecificInput `json:"providerSpecificDetails,omitempty"`
}
// UnmarshalJSON is the custom unmarshaler for SwitchProtectionInputProperties struct.
func (spip *SwitchProtectionInputProperties) 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["replicationProtectedItemName"]
if v != nil {
var replicationProtectedItemName string
err = json.Unmarshal(*m["replicationProtectedItemName"], &replicationProtectedItemName)
if err != nil {
return err
}
spip.ReplicationProtectedItemName = &replicationProtectedItemName
}
v = m["providerSpecificDetails"]
if v != nil {
providerSpecificDetails, err := unmarshalSwitchProtectionProviderSpecificInput(*m["providerSpecificDetails"])
if err != nil {
return err
}
spip.ProviderSpecificDetails = providerSpecificDetails
}
return nil
}
// SwitchProtectionJobDetails is this class represents details for switch protection job.
type SwitchProtectionJobDetails struct {
AffectedObjectDetails *map[string]*string `json:"affectedObjectDetails,omitempty"`
InstanceType InstanceTypeJobDetails `json:"instanceType,omitempty"`
NewReplicationProtectedItemID *string `json:"newReplicationProtectedItemId,omitempty"`
}
// MarshalJSON is the custom marshaler for SwitchProtectionJobDetails.
func (spjd SwitchProtectionJobDetails) MarshalJSON() ([]byte, error) {
spjd.InstanceType = InstanceTypeSwitchProtectionJobDetails
type Alias SwitchProtectionJobDetails
return json.Marshal(&struct {
Alias
}{
Alias: (Alias)(spjd),
})
}
// AsAsrJobDetails is the JobDetails implementation for SwitchProtectionJobDetails.
func (spjd SwitchProtectionJobDetails) AsAsrJobDetails() (*AsrJobDetails, bool) {
return nil, false
}
// AsTestFailoverJobDetails is the JobDetails implementation for SwitchProtectionJobDetails.
func (spjd SwitchProtectionJobDetails) AsTestFailoverJobDetails() (*TestFailoverJobDetails, bool) {
return nil, false
}
// AsFailoverJobDetails is the JobDetails implementation for SwitchProtectionJobDetails.
func (spjd SwitchProtectionJobDetails) AsFailoverJobDetails() (*FailoverJobDetails, bool) {
return nil, false
}
// AsExportJobDetails is the JobDetails implementation for SwitchProtectionJobDetails.
func (spjd SwitchProtectionJobDetails) AsExportJobDetails() (*ExportJobDetails, bool) {
return nil, false
}
// AsSwitchProtectionJobDetails is the JobDetails implementation for SwitchProtectionJobDetails.
func (spjd SwitchProtectionJobDetails) AsSwitchProtectionJobDetails() (*SwitchProtectionJobDetails, bool) {
return &spjd, true
}
// SwitchProtectionProviderSpecificInput is provider specific switch protection input.
type SwitchProtectionProviderSpecificInput interface {
AsA2ASwitchProtectionInput() (*A2ASwitchProtectionInput, bool)
}
func unmarshalSwitchProtectionProviderSpecificInput(body []byte) (SwitchProtectionProviderSpecificInput, error) {
var m map[string]interface{}
err := json.Unmarshal(body, &m)
if err != nil {
return nil, err
}
switch m["instanceType"] {
case string(InstanceTypeA2A):
var aspi A2ASwitchProtectionInput
err := json.Unmarshal(body, &aspi)
return aspi, err
default:
return nil, errors.New("Unsupported type")
}
}
func unmarshalSwitchProtectionProviderSpecificInputArray(body []byte) ([]SwitchProtectionProviderSpecificInput, error) {
var rawMessages []*json.RawMessage
err := json.Unmarshal(body, &rawMessages)
if err != nil {
return nil, err
}
sppsiArray := make([]SwitchProtectionProviderSpecificInput, len(rawMessages))
for index, rawMessage := range rawMessages {
sppsi, err := unmarshalSwitchProtectionProviderSpecificInput(*rawMessage)
if err != nil {
return nil, err
}
sppsiArray[index] = sppsi
}
return sppsiArray, nil
}
// TaskTypeDetails is task details based on specific task type.
type TaskTypeDetails interface {
AsJobTaskDetails() (*JobTaskDetails, bool)
AsVirtualMachineTaskDetails() (*VirtualMachineTaskDetails, bool)
AsFabricReplicationGroupTaskDetails() (*FabricReplicationGroupTaskDetails, bool)
AsManualActionTaskDetails() (*ManualActionTaskDetails, bool)
AsScriptActionTaskDetails() (*ScriptActionTaskDetails, bool)
AsVMNicUpdatesTaskDetails() (*VMNicUpdatesTaskDetails, bool)
AsConsistencyCheckTaskDetails() (*ConsistencyCheckTaskDetails, bool)
AsAutomationRunbookTaskDetails() (*AutomationRunbookTaskDetails, bool)
}
func unmarshalTaskTypeDetails(body []byte) (TaskTypeDetails, error) {
var m map[string]interface{}
err := json.Unmarshal(body, &m)
if err != nil {
return nil, err
}
switch m["instanceType"] {
case string(InstanceTypeJobTaskDetails):
var jtd JobTaskDetails
err := json.Unmarshal(body, &jtd)
return jtd, err
case string(InstanceTypeVirtualMachineTaskDetails):
var vmtd VirtualMachineTaskDetails
err := json.Unmarshal(body, &vmtd)
return vmtd, err
case string(InstanceTypeFabricReplicationGroupTaskDetails):
var frgtd FabricReplicationGroupTaskDetails
err := json.Unmarshal(body, &frgtd)
return frgtd, err
case string(InstanceTypeManualActionTaskDetails):
var matd ManualActionTaskDetails
err := json.Unmarshal(body, &matd)
return matd, err
case string(InstanceTypeScriptActionTaskDetails):
var satd ScriptActionTaskDetails
err := json.Unmarshal(body, &satd)
return satd, err
case string(InstanceTypeVMNicUpdatesTaskDetails):
var vnutd VMNicUpdatesTaskDetails
err := json.Unmarshal(body, &vnutd)
return vnutd, err
case string(InstanceTypeConsistencyCheckTaskDetails):
var cctd ConsistencyCheckTaskDetails
err := json.Unmarshal(body, &cctd)
return cctd, err
case string(InstanceTypeAutomationRunbookTaskDetails):
var artd AutomationRunbookTaskDetails
err := json.Unmarshal(body, &artd)
return artd, err
default:
return nil, errors.New("Unsupported type")
}
}
func unmarshalTaskTypeDetailsArray(body []byte) ([]TaskTypeDetails, error) {
var rawMessages []*json.RawMessage
err := json.Unmarshal(body, &rawMessages)
if err != nil {
return nil, err
}
ttdArray := make([]TaskTypeDetails, len(rawMessages))
for index, rawMessage := range rawMessages {
ttd, err := unmarshalTaskTypeDetails(*rawMessage)
if err != nil {
return nil, err
}
ttdArray[index] = ttd
}
return ttdArray, nil
}
// TestFailoverCleanupInput is input definition for test failover cleanup.
type TestFailoverCleanupInput struct {
Properties *TestFailoverCleanupInputProperties `json:"properties,omitempty"`
}
// TestFailoverCleanupInputProperties is input definition for test failover cleanup input properties.
type TestFailoverCleanupInputProperties struct {
Comments *string `json:"comments,omitempty"`
}
// TestFailoverInput is input definition for planned failover.
type TestFailoverInput struct {
Properties *TestFailoverInputProperties `json:"properties,omitempty"`
}
// TestFailoverInputProperties is input definition for planned failover input properties.
type TestFailoverInputProperties struct {
FailoverDirection *string `json:"failoverDirection,omitempty"`
NetworkType *string `json:"networkType,omitempty"`
NetworkID *string `json:"networkId,omitempty"`
SkipTestFailoverCleanup *string `json:"skipTestFailoverCleanup,omitempty"`
ProviderSpecificDetails ProviderSpecificFailoverInput `json:"providerSpecificDetails,omitempty"`
}
// UnmarshalJSON is the custom unmarshaler for TestFailoverInputProperties struct.
func (tfip *TestFailoverInputProperties) 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["failoverDirection"]
if v != nil {
var failoverDirection string
err = json.Unmarshal(*m["failoverDirection"], &failoverDirection)
if err != nil {
return err
}
tfip.FailoverDirection = &failoverDirection
}
v = m["networkType"]
if v != nil {
var networkType string
err = json.Unmarshal(*m["networkType"], &networkType)
if err != nil {
return err
}
tfip.NetworkType = &networkType
}
v = m["networkId"]
if v != nil {
var networkID string
err = json.Unmarshal(*m["networkId"], &networkID)
if err != nil {
return err
}
tfip.NetworkID = &networkID
}
v = m["skipTestFailoverCleanup"]
if v != nil {
var skipTestFailoverCleanup string
err = json.Unmarshal(*m["skipTestFailoverCleanup"], &skipTestFailoverCleanup)
if err != nil {
return err
}
tfip.SkipTestFailoverCleanup = &skipTestFailoverCleanup
}
v = m["providerSpecificDetails"]
if v != nil {
providerSpecificDetails, err := unmarshalProviderSpecificFailoverInput(*m["providerSpecificDetails"])
if err != nil {
return err
}
tfip.ProviderSpecificDetails = providerSpecificDetails
}
return nil
}
// TestFailoverJobDetails is this class represents the details for a test failover job.
type TestFailoverJobDetails struct {
AffectedObjectDetails *map[string]*string `json:"affectedObjectDetails,omitempty"`
InstanceType InstanceTypeJobDetails `json:"instanceType,omitempty"`
TestFailoverStatus *string `json:"testFailoverStatus,omitempty"`
Comments *string `json:"comments,omitempty"`
NetworkName *string `json:"networkName,omitempty"`
NetworkFriendlyName *string `json:"networkFriendlyName,omitempty"`
NetworkType *string `json:"networkType,omitempty"`
ProtectedItemDetails *[]FailoverReplicationProtectedItemDetails `json:"protectedItemDetails,omitempty"`
}
// MarshalJSON is the custom marshaler for TestFailoverJobDetails.
func (tfjd TestFailoverJobDetails) MarshalJSON() ([]byte, error) {
tfjd.InstanceType = InstanceTypeTestFailoverJobDetails
type Alias TestFailoverJobDetails
return json.Marshal(&struct {
Alias
}{
Alias: (Alias)(tfjd),
})
}
// AsAsrJobDetails is the JobDetails implementation for TestFailoverJobDetails.
func (tfjd TestFailoverJobDetails) AsAsrJobDetails() (*AsrJobDetails, bool) {
return nil, false
}
// AsTestFailoverJobDetails is the JobDetails implementation for TestFailoverJobDetails.
func (tfjd TestFailoverJobDetails) AsTestFailoverJobDetails() (*TestFailoverJobDetails, bool) {
return &tfjd, true
}
// AsFailoverJobDetails is the JobDetails implementation for TestFailoverJobDetails.
func (tfjd TestFailoverJobDetails) AsFailoverJobDetails() (*FailoverJobDetails, bool) {
return nil, false
}
// AsExportJobDetails is the JobDetails implementation for TestFailoverJobDetails.
func (tfjd TestFailoverJobDetails) AsExportJobDetails() (*ExportJobDetails, bool) {
return nil, false
}
// AsSwitchProtectionJobDetails is the JobDetails implementation for TestFailoverJobDetails.
func (tfjd TestFailoverJobDetails) AsSwitchProtectionJobDetails() (*SwitchProtectionJobDetails, bool) {
return nil, false
}
// UnplannedFailoverInput is input definition for planned failover.
type UnplannedFailoverInput struct {
Properties *UnplannedFailoverInputProperties `json:"properties,omitempty"`
}
// UnplannedFailoverInputProperties is input definition for planned failover input properties.
type UnplannedFailoverInputProperties struct {
FailoverDirection *string `json:"failoverDirection,omitempty"`
SourceSiteOperations *string `json:"sourceSiteOperations,omitempty"`
ProviderSpecificDetails ProviderSpecificFailoverInput `json:"providerSpecificDetails,omitempty"`
}
// UnmarshalJSON is the custom unmarshaler for UnplannedFailoverInputProperties struct.
func (ufip *UnplannedFailoverInputProperties) 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["failoverDirection"]
if v != nil {
var failoverDirection string
err = json.Unmarshal(*m["failoverDirection"], &failoverDirection)
if err != nil {
return err
}
ufip.FailoverDirection = &failoverDirection
}
v = m["sourceSiteOperations"]
if v != nil {
var sourceSiteOperations string
err = json.Unmarshal(*m["sourceSiteOperations"], &sourceSiteOperations)
if err != nil {
return err
}
ufip.SourceSiteOperations = &sourceSiteOperations
}
v = m["providerSpecificDetails"]
if v != nil {
providerSpecificDetails, err := unmarshalProviderSpecificFailoverInput(*m["providerSpecificDetails"])
if err != nil {
return err
}
ufip.ProviderSpecificDetails = providerSpecificDetails
}
return nil
}
// UpdateMobilityServiceRequest is request to update the mobility service on a protected item.
type UpdateMobilityServiceRequest struct {
Properties *UpdateMobilityServiceRequestProperties `json:"properties,omitempty"`
}
// UpdateMobilityServiceRequestProperties is the properties of an update mobility service request.
type UpdateMobilityServiceRequestProperties struct {
RunAsAccountID *string `json:"runAsAccountId,omitempty"`
}
// UpdateNetworkMappingInput is update network mapping input.
type UpdateNetworkMappingInput struct {
Properties *UpdateNetworkMappingInputProperties `json:"properties,omitempty"`
}
// UpdateNetworkMappingInputProperties is common input details for network mapping operation.
type UpdateNetworkMappingInputProperties struct {
RecoveryFabricName *string `json:"recoveryFabricName,omitempty"`
RecoveryNetworkID *string `json:"recoveryNetworkId,omitempty"`
FabricSpecificDetails FabricSpecificUpdateNetworkMappingInput `json:"fabricSpecificDetails,omitempty"`
}
// UnmarshalJSON is the custom unmarshaler for UpdateNetworkMappingInputProperties struct.
func (unmip *UpdateNetworkMappingInputProperties) 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["recoveryFabricName"]
if v != nil {
var recoveryFabricName string
err = json.Unmarshal(*m["recoveryFabricName"], &recoveryFabricName)
if err != nil {
return err
}
unmip.RecoveryFabricName = &recoveryFabricName
}
v = m["recoveryNetworkId"]
if v != nil {
var recoveryNetworkID string
err = json.Unmarshal(*m["recoveryNetworkId"], &recoveryNetworkID)
if err != nil {
return err
}
unmip.RecoveryNetworkID = &recoveryNetworkID
}
v = m["fabricSpecificDetails"]
if v != nil {
fabricSpecificDetails, err := unmarshalFabricSpecificUpdateNetworkMappingInput(*m["fabricSpecificDetails"])
if err != nil {
return err
}
unmip.FabricSpecificDetails = fabricSpecificDetails
}
return nil
}
// UpdatePolicyInput is update protection profile input.
type UpdatePolicyInput struct {
Properties *UpdatePolicyInputProperties `json:"properties,omitempty"`
}
// UpdatePolicyInputProperties is policy update properties.
type UpdatePolicyInputProperties struct {
ReplicationProviderSettings PolicyProviderSpecificInput `json:"replicationProviderSettings,omitempty"`
}
// UnmarshalJSON is the custom unmarshaler for UpdatePolicyInputProperties struct.
func (upip *UpdatePolicyInputProperties) 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["replicationProviderSettings"]
if v != nil {
replicationProviderSettings, err := unmarshalPolicyProviderSpecificInput(*m["replicationProviderSettings"])
if err != nil {
return err
}
upip.ReplicationProviderSettings = replicationProviderSettings
}
return nil
}
// UpdateRecoveryPlanInput is update recovery plan input class.
type UpdateRecoveryPlanInput struct {
Properties *UpdateRecoveryPlanInputProperties `json:"properties,omitempty"`
}
// UpdateRecoveryPlanInputProperties is recovery plan updation properties.
type UpdateRecoveryPlanInputProperties struct {
Groups *[]RecoveryPlanGroup `json:"groups,omitempty"`
}
// UpdateReplicationProtectedItemInput is update replication protected item input.
type UpdateReplicationProtectedItemInput struct {
Properties *UpdateReplicationProtectedItemInputProperties `json:"properties,omitempty"`
}
// UpdateReplicationProtectedItemInputProperties is update protected item input properties.
type UpdateReplicationProtectedItemInputProperties struct {
RecoveryAzureVMName *string `json:"recoveryAzureVMName,omitempty"`
RecoveryAzureVMSize *string `json:"recoveryAzureVMSize,omitempty"`
SelectedRecoveryAzureNetworkID *string `json:"selectedRecoveryAzureNetworkId,omitempty"`
EnableRDPOnTargetOption *string `json:"enableRDPOnTargetOption,omitempty"`
VMNics *[]VMNicInputDetails `json:"vmNics,omitempty"`
LicenseType LicenseType `json:"licenseType,omitempty"`
RecoveryAvailabilitySetID *string `json:"recoveryAvailabilitySetId,omitempty"`
ProviderSpecificDetails UpdateReplicationProtectedItemProviderInput `json:"providerSpecificDetails,omitempty"`
}
// UnmarshalJSON is the custom unmarshaler for UpdateReplicationProtectedItemInputProperties struct.
func (urpiip *UpdateReplicationProtectedItemInputProperties) 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["recoveryAzureVMName"]
if v != nil {
var recoveryAzureVMName string
err = json.Unmarshal(*m["recoveryAzureVMName"], &recoveryAzureVMName)
if err != nil {
return err
}
urpiip.RecoveryAzureVMName = &recoveryAzureVMName
}
v = m["recoveryAzureVMSize"]
if v != nil {
var recoveryAzureVMSize string
err = json.Unmarshal(*m["recoveryAzureVMSize"], &recoveryAzureVMSize)
if err != nil {
return err
}
urpiip.RecoveryAzureVMSize = &recoveryAzureVMSize
}
v = m["selectedRecoveryAzureNetworkId"]
if v != nil {
var selectedRecoveryAzureNetworkID string
err = json.Unmarshal(*m["selectedRecoveryAzureNetworkId"], &selectedRecoveryAzureNetworkID)
if err != nil {
return err
}
urpiip.SelectedRecoveryAzureNetworkID = &selectedRecoveryAzureNetworkID
}
v = m["enableRDPOnTargetOption"]
if v != nil {
var enableRDPOnTargetOption string
err = json.Unmarshal(*m["enableRDPOnTargetOption"], &enableRDPOnTargetOption)
if err != nil {
return err
}
urpiip.EnableRDPOnTargetOption = &enableRDPOnTargetOption
}
v = m["vmNics"]
if v != nil {
var VMNics []VMNicInputDetails
err = json.Unmarshal(*m["vmNics"], &VMNics)
if err != nil {
return err
}
urpiip.VMNics = &VMNics
}
v = m["licenseType"]
if v != nil {
var licenseType LicenseType
err = json.Unmarshal(*m["licenseType"], &licenseType)
if err != nil {
return err
}
urpiip.LicenseType = licenseType
}
v = m["recoveryAvailabilitySetId"]
if v != nil {
var recoveryAvailabilitySetID string
err = json.Unmarshal(*m["recoveryAvailabilitySetId"], &recoveryAvailabilitySetID)
if err != nil {
return err
}
urpiip.RecoveryAvailabilitySetID = &recoveryAvailabilitySetID
}
v = m["providerSpecificDetails"]
if v != nil {
providerSpecificDetails, err := unmarshalUpdateReplicationProtectedItemProviderInput(*m["providerSpecificDetails"])
if err != nil {
return err
}
urpiip.ProviderSpecificDetails = providerSpecificDetails
}
return nil
}
// UpdateReplicationProtectedItemProviderInput is update replication protected item provider specific input.
type UpdateReplicationProtectedItemProviderInput interface {
AsHyperVReplicaAzureUpdateReplicationProtectedItemInput() (*HyperVReplicaAzureUpdateReplicationProtectedItemInput, bool)
AsInMageAzureV2UpdateReplicationProtectedItemInput() (*InMageAzureV2UpdateReplicationProtectedItemInput, bool)
AsA2AUpdateReplicationProtectedItemInput() (*A2AUpdateReplicationProtectedItemInput, bool)
}
func unmarshalUpdateReplicationProtectedItemProviderInput(body []byte) (UpdateReplicationProtectedItemProviderInput, error) {
var m map[string]interface{}
err := json.Unmarshal(body, &m)
if err != nil {
return nil, err
}
switch m["instanceType"] {
case string(InstanceTypeHyperVReplicaAzure):
var hvraurpii HyperVReplicaAzureUpdateReplicationProtectedItemInput
err := json.Unmarshal(body, &hvraurpii)
return hvraurpii, err
case string(InstanceTypeInMageAzureV2):
var imavurpii InMageAzureV2UpdateReplicationProtectedItemInput
err := json.Unmarshal(body, &imavurpii)
return imavurpii, err
case string(InstanceTypeA2A):
var aurpii A2AUpdateReplicationProtectedItemInput
err := json.Unmarshal(body, &aurpii)
return aurpii, err
default:
return nil, errors.New("Unsupported type")
}
}
func unmarshalUpdateReplicationProtectedItemProviderInputArray(body []byte) ([]UpdateReplicationProtectedItemProviderInput, error) {
var rawMessages []*json.RawMessage
err := json.Unmarshal(body, &rawMessages)
if err != nil {
return nil, err
}
urpipiArray := make([]UpdateReplicationProtectedItemProviderInput, len(rawMessages))
for index, rawMessage := range rawMessages {
urpipi, err := unmarshalUpdateReplicationProtectedItemProviderInput(*rawMessage)
if err != nil {
return nil, err
}
urpipiArray[index] = urpipi
}
return urpipiArray, nil
}
// UpdateVCenterRequest is input required to update vCenter.
type UpdateVCenterRequest struct {
Properties *UpdateVCenterRequestProperties `json:"properties,omitempty"`
}
// UpdateVCenterRequestProperties is the properties of an update vCenter request.
type UpdateVCenterRequestProperties struct {
FriendlyName *string `json:"friendlyName,omitempty"`
IPAddress *string `json:"ipAddress,omitempty"`
ProcessServerID *string `json:"processServerId,omitempty"`
Port *string `json:"port,omitempty"`
RunAsAccountID *string `json:"runAsAccountId,omitempty"`
}
// VaultHealthDetails is vault health details definition.
type VaultHealthDetails struct {
autorest.Response `json:"-"`
ID *string `json:"id,omitempty"`
Name *string `json:"name,omitempty"`
Type *string `json:"type,omitempty"`
Location *string `json:"location,omitempty"`
Properties *VaultHealthProperties `json:"properties,omitempty"`
}
// VaultHealthProperties is class to define the health summary of the Vault.
type VaultHealthProperties struct {
VaultErrors *[]HealthError `json:"vaultErrors,omitempty"`
ProtectedItemsHealth *ResourceHealthSummary `json:"protectedItemsHealth,omitempty"`
FabricsHealth *ResourceHealthSummary `json:"fabricsHealth,omitempty"`
}
// VCenter is vCenter definition.
type VCenter struct {
autorest.Response `json:"-"`
ID *string `json:"id,omitempty"`
Name *string `json:"name,omitempty"`
Type *string `json:"type,omitempty"`
Location *string `json:"location,omitempty"`
Properties *VCenterProperties `json:"properties,omitempty"`
}
// VCenterCollection is collection of vCenter details.
type VCenterCollection struct {
autorest.Response `json:"-"`
Value *[]VCenter `json:"value,omitempty"`
NextLink *string `json:"nextLink,omitempty"`
}
// VCenterCollectionPreparer prepares a request to retrieve the next set of results. It returns
// nil if no more results exist.
func (client VCenterCollection) VCenterCollectionPreparer() (*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)))
}
// VCenterProperties is vCenter properties.
type VCenterProperties struct {
FriendlyName *string `json:"friendlyName,omitempty"`
InternalID *string `json:"internalId,omitempty"`
LastHeartbeat *date.Time `json:"lastHeartbeat,omitempty"`
DiscoveryStatus *string `json:"discoveryStatus,omitempty"`
ProcessServerID *string `json:"processServerId,omitempty"`
IPAddress *string `json:"ipAddress,omitempty"`
InfrastructureID *string `json:"infrastructureId,omitempty"`
Port *string `json:"port,omitempty"`
RunAsAccountID *string `json:"runAsAccountId,omitempty"`
FabricArmResourceName *string `json:"fabricArmResourceName,omitempty"`
}
// VirtualMachineTaskDetails is this class represents the virtual machine task details.
type VirtualMachineTaskDetails struct {
InstanceType InstanceTypeTaskTypeDetails `json:"instanceType,omitempty"`
SkippedReason *string `json:"skippedReason,omitempty"`
SkippedReasonString *string `json:"skippedReasonString,omitempty"`
JobTask *JobEntity `json:"jobTask,omitempty"`
}
// MarshalJSON is the custom marshaler for VirtualMachineTaskDetails.
func (vmtd VirtualMachineTaskDetails) MarshalJSON() ([]byte, error) {
vmtd.InstanceType = InstanceTypeVirtualMachineTaskDetails
type Alias VirtualMachineTaskDetails
return json.Marshal(&struct {
Alias
}{
Alias: (Alias)(vmtd),
})
}
// AsJobTaskDetails is the TaskTypeDetails implementation for VirtualMachineTaskDetails.
func (vmtd VirtualMachineTaskDetails) AsJobTaskDetails() (*JobTaskDetails, bool) {
return nil, false
}
// AsVirtualMachineTaskDetails is the TaskTypeDetails implementation for VirtualMachineTaskDetails.
func (vmtd VirtualMachineTaskDetails) AsVirtualMachineTaskDetails() (*VirtualMachineTaskDetails, bool) {
return &vmtd, true
}
// AsFabricReplicationGroupTaskDetails is the TaskTypeDetails implementation for VirtualMachineTaskDetails.
func (vmtd VirtualMachineTaskDetails) AsFabricReplicationGroupTaskDetails() (*FabricReplicationGroupTaskDetails, bool) {
return nil, false
}
// AsManualActionTaskDetails is the TaskTypeDetails implementation for VirtualMachineTaskDetails.
func (vmtd VirtualMachineTaskDetails) AsManualActionTaskDetails() (*ManualActionTaskDetails, bool) {
return nil, false
}
// AsScriptActionTaskDetails is the TaskTypeDetails implementation for VirtualMachineTaskDetails.
func (vmtd VirtualMachineTaskDetails) AsScriptActionTaskDetails() (*ScriptActionTaskDetails, bool) {
return nil, false
}
// AsVMNicUpdatesTaskDetails is the TaskTypeDetails implementation for VirtualMachineTaskDetails.
func (vmtd VirtualMachineTaskDetails) AsVMNicUpdatesTaskDetails() (*VMNicUpdatesTaskDetails, bool) {
return nil, false
}
// AsConsistencyCheckTaskDetails is the TaskTypeDetails implementation for VirtualMachineTaskDetails.
func (vmtd VirtualMachineTaskDetails) AsConsistencyCheckTaskDetails() (*ConsistencyCheckTaskDetails, bool) {
return nil, false
}
// AsAutomationRunbookTaskDetails is the TaskTypeDetails implementation for VirtualMachineTaskDetails.
func (vmtd VirtualMachineTaskDetails) AsAutomationRunbookTaskDetails() (*AutomationRunbookTaskDetails, bool) {
return nil, false
}
// VmmDetails is VMM fabric specific details.
type VmmDetails struct {
InstanceType InstanceTypeFabricSpecificDetails `json:"instanceType,omitempty"`
}
// MarshalJSON is the custom marshaler for VmmDetails.
func (vd VmmDetails) MarshalJSON() ([]byte, error) {
vd.InstanceType = InstanceTypeVMM
type Alias VmmDetails
return json.Marshal(&struct {
Alias
}{
Alias: (Alias)(vd),
})
}
// AsAzureFabricSpecificDetails is the FabricSpecificDetails implementation for VmmDetails.
func (vd VmmDetails) AsAzureFabricSpecificDetails() (*AzureFabricSpecificDetails, bool) {
return nil, false
}
// AsVmmDetails is the FabricSpecificDetails implementation for VmmDetails.
func (vd VmmDetails) AsVmmDetails() (*VmmDetails, bool) {
return &vd, true
}
// AsHyperVSiteDetails is the FabricSpecificDetails implementation for VmmDetails.
func (vd VmmDetails) AsHyperVSiteDetails() (*HyperVSiteDetails, bool) {
return nil, false
}
// AsVMwareDetails is the FabricSpecificDetails implementation for VmmDetails.
func (vd VmmDetails) AsVMwareDetails() (*VMwareDetails, bool) {
return nil, false
}
// AsVMwareV2FabricSpecificDetails is the FabricSpecificDetails implementation for VmmDetails.
func (vd VmmDetails) AsVMwareV2FabricSpecificDetails() (*VMwareV2FabricSpecificDetails, bool) {
return nil, false
}
// VmmToAzureCreateNetworkMappingInput is create network mappings input properties/behaviour specific to Vmm to Azure
// Network mapping.
type VmmToAzureCreateNetworkMappingInput struct {
InstanceType InstanceTypeFabricSpecificCreateNetworkMappingInput `json:"instanceType,omitempty"`
}
// MarshalJSON is the custom marshaler for VmmToAzureCreateNetworkMappingInput.
func (vtacnmi VmmToAzureCreateNetworkMappingInput) MarshalJSON() ([]byte, error) {
vtacnmi.InstanceType = InstanceTypeVmmToAzure
type Alias VmmToAzureCreateNetworkMappingInput
return json.Marshal(&struct {
Alias
}{
Alias: (Alias)(vtacnmi),
})
}
// AsAzureToAzureCreateNetworkMappingInput is the FabricSpecificCreateNetworkMappingInput implementation for VmmToAzureCreateNetworkMappingInput.
func (vtacnmi VmmToAzureCreateNetworkMappingInput) AsAzureToAzureCreateNetworkMappingInput() (*AzureToAzureCreateNetworkMappingInput, bool) {
return nil, false
}
// AsVmmToAzureCreateNetworkMappingInput is the FabricSpecificCreateNetworkMappingInput implementation for VmmToAzureCreateNetworkMappingInput.
func (vtacnmi VmmToAzureCreateNetworkMappingInput) AsVmmToAzureCreateNetworkMappingInput() (*VmmToAzureCreateNetworkMappingInput, bool) {
return &vtacnmi, true
}
// AsVmmToVmmCreateNetworkMappingInput is the FabricSpecificCreateNetworkMappingInput implementation for VmmToAzureCreateNetworkMappingInput.
func (vtacnmi VmmToAzureCreateNetworkMappingInput) AsVmmToVmmCreateNetworkMappingInput() (*VmmToVmmCreateNetworkMappingInput, bool) {
return nil, false
}
// VmmToAzureNetworkMappingSettings is e2A Network Mapping fabric specific settings.
type VmmToAzureNetworkMappingSettings struct {
InstanceType InstanceTypeNetworkMappingFabricSpecificSettings `json:"instanceType,omitempty"`
}
// MarshalJSON is the custom marshaler for VmmToAzureNetworkMappingSettings.
func (vtanms VmmToAzureNetworkMappingSettings) MarshalJSON() ([]byte, error) {
vtanms.InstanceType = InstanceTypeNetworkMappingFabricSpecificSettingsInstanceTypeVmmToAzure
type Alias VmmToAzureNetworkMappingSettings
return json.Marshal(&struct {
Alias
}{
Alias: (Alias)(vtanms),
})
}
// AsAzureToAzureNetworkMappingSettings is the NetworkMappingFabricSpecificSettings implementation for VmmToAzureNetworkMappingSettings.
func (vtanms VmmToAzureNetworkMappingSettings) AsAzureToAzureNetworkMappingSettings() (*AzureToAzureNetworkMappingSettings, bool) {
return nil, false
}
// AsVmmToAzureNetworkMappingSettings is the NetworkMappingFabricSpecificSettings implementation for VmmToAzureNetworkMappingSettings.
func (vtanms VmmToAzureNetworkMappingSettings) AsVmmToAzureNetworkMappingSettings() (*VmmToAzureNetworkMappingSettings, bool) {
return &vtanms, true
}
// AsVmmToVmmNetworkMappingSettings is the NetworkMappingFabricSpecificSettings implementation for VmmToAzureNetworkMappingSettings.
func (vtanms VmmToAzureNetworkMappingSettings) AsVmmToVmmNetworkMappingSettings() (*VmmToVmmNetworkMappingSettings, bool) {
return nil, false
}
// VmmToAzureUpdateNetworkMappingInput is update network mappings input properties/behaviour specific to vmm to azure.
type VmmToAzureUpdateNetworkMappingInput struct {
InstanceType InstanceTypeFabricSpecificUpdateNetworkMappingInput `json:"instanceType,omitempty"`
}
// MarshalJSON is the custom marshaler for VmmToAzureUpdateNetworkMappingInput.
func (vtaunmi VmmToAzureUpdateNetworkMappingInput) MarshalJSON() ([]byte, error) {
vtaunmi.InstanceType = InstanceTypeFabricSpecificUpdateNetworkMappingInputInstanceTypeVmmToAzure
type Alias VmmToAzureUpdateNetworkMappingInput
return json.Marshal(&struct {
Alias
}{
Alias: (Alias)(vtaunmi),
})
}
// AsAzureToAzureUpdateNetworkMappingInput is the FabricSpecificUpdateNetworkMappingInput implementation for VmmToAzureUpdateNetworkMappingInput.
func (vtaunmi VmmToAzureUpdateNetworkMappingInput) AsAzureToAzureUpdateNetworkMappingInput() (*AzureToAzureUpdateNetworkMappingInput, bool) {
return nil, false
}
// AsVmmToAzureUpdateNetworkMappingInput is the FabricSpecificUpdateNetworkMappingInput implementation for VmmToAzureUpdateNetworkMappingInput.
func (vtaunmi VmmToAzureUpdateNetworkMappingInput) AsVmmToAzureUpdateNetworkMappingInput() (*VmmToAzureUpdateNetworkMappingInput, bool) {
return &vtaunmi, true
}
// AsVmmToVmmUpdateNetworkMappingInput is the FabricSpecificUpdateNetworkMappingInput implementation for VmmToAzureUpdateNetworkMappingInput.
func (vtaunmi VmmToAzureUpdateNetworkMappingInput) AsVmmToVmmUpdateNetworkMappingInput() (*VmmToVmmUpdateNetworkMappingInput, bool) {
return nil, false
}
// VmmToVmmCreateNetworkMappingInput is create network mappings input properties/behaviour specific to vmm to vmm
// Network mapping.
type VmmToVmmCreateNetworkMappingInput struct {
InstanceType InstanceTypeFabricSpecificCreateNetworkMappingInput `json:"instanceType,omitempty"`
}
// MarshalJSON is the custom marshaler for VmmToVmmCreateNetworkMappingInput.
func (vtvcnmi VmmToVmmCreateNetworkMappingInput) MarshalJSON() ([]byte, error) {
vtvcnmi.InstanceType = InstanceTypeVmmToVmm
type Alias VmmToVmmCreateNetworkMappingInput
return json.Marshal(&struct {
Alias
}{
Alias: (Alias)(vtvcnmi),
})
}
// AsAzureToAzureCreateNetworkMappingInput is the FabricSpecificCreateNetworkMappingInput implementation for VmmToVmmCreateNetworkMappingInput.
func (vtvcnmi VmmToVmmCreateNetworkMappingInput) AsAzureToAzureCreateNetworkMappingInput() (*AzureToAzureCreateNetworkMappingInput, bool) {
return nil, false
}
// AsVmmToAzureCreateNetworkMappingInput is the FabricSpecificCreateNetworkMappingInput implementation for VmmToVmmCreateNetworkMappingInput.
func (vtvcnmi VmmToVmmCreateNetworkMappingInput) AsVmmToAzureCreateNetworkMappingInput() (*VmmToAzureCreateNetworkMappingInput, bool) {
return nil, false
}
// AsVmmToVmmCreateNetworkMappingInput is the FabricSpecificCreateNetworkMappingInput implementation for VmmToVmmCreateNetworkMappingInput.
func (vtvcnmi VmmToVmmCreateNetworkMappingInput) AsVmmToVmmCreateNetworkMappingInput() (*VmmToVmmCreateNetworkMappingInput, bool) {
return &vtvcnmi, true
}
// VmmToVmmNetworkMappingSettings is e2E Network Mapping fabric specific settings.
type VmmToVmmNetworkMappingSettings struct {
InstanceType InstanceTypeNetworkMappingFabricSpecificSettings `json:"instanceType,omitempty"`
}
// MarshalJSON is the custom marshaler for VmmToVmmNetworkMappingSettings.
func (vtvnms VmmToVmmNetworkMappingSettings) MarshalJSON() ([]byte, error) {
vtvnms.InstanceType = InstanceTypeNetworkMappingFabricSpecificSettingsInstanceTypeVmmToVmm
type Alias VmmToVmmNetworkMappingSettings
return json.Marshal(&struct {
Alias
}{
Alias: (Alias)(vtvnms),
})
}
// AsAzureToAzureNetworkMappingSettings is the NetworkMappingFabricSpecificSettings implementation for VmmToVmmNetworkMappingSettings.
func (vtvnms VmmToVmmNetworkMappingSettings) AsAzureToAzureNetworkMappingSettings() (*AzureToAzureNetworkMappingSettings, bool) {
return nil, false
}
// AsVmmToAzureNetworkMappingSettings is the NetworkMappingFabricSpecificSettings implementation for VmmToVmmNetworkMappingSettings.
func (vtvnms VmmToVmmNetworkMappingSettings) AsVmmToAzureNetworkMappingSettings() (*VmmToAzureNetworkMappingSettings, bool) {
return nil, false
}
// AsVmmToVmmNetworkMappingSettings is the NetworkMappingFabricSpecificSettings implementation for VmmToVmmNetworkMappingSettings.
func (vtvnms VmmToVmmNetworkMappingSettings) AsVmmToVmmNetworkMappingSettings() (*VmmToVmmNetworkMappingSettings, bool) {
return &vtvnms, true
}
// VmmToVmmUpdateNetworkMappingInput is update network mappings input properties/behaviour specific to vmm to vmm.
type VmmToVmmUpdateNetworkMappingInput struct {
InstanceType InstanceTypeFabricSpecificUpdateNetworkMappingInput `json:"instanceType,omitempty"`
}
// MarshalJSON is the custom marshaler for VmmToVmmUpdateNetworkMappingInput.
func (vtvunmi VmmToVmmUpdateNetworkMappingInput) MarshalJSON() ([]byte, error) {
vtvunmi.InstanceType = InstanceTypeFabricSpecificUpdateNetworkMappingInputInstanceTypeVmmToVmm
type Alias VmmToVmmUpdateNetworkMappingInput
return json.Marshal(&struct {
Alias
}{
Alias: (Alias)(vtvunmi),
})
}
// AsAzureToAzureUpdateNetworkMappingInput is the FabricSpecificUpdateNetworkMappingInput implementation for VmmToVmmUpdateNetworkMappingInput.
func (vtvunmi VmmToVmmUpdateNetworkMappingInput) AsAzureToAzureUpdateNetworkMappingInput() (*AzureToAzureUpdateNetworkMappingInput, bool) {
return nil, false
}
// AsVmmToAzureUpdateNetworkMappingInput is the FabricSpecificUpdateNetworkMappingInput implementation for VmmToVmmUpdateNetworkMappingInput.
func (vtvunmi VmmToVmmUpdateNetworkMappingInput) AsVmmToAzureUpdateNetworkMappingInput() (*VmmToAzureUpdateNetworkMappingInput, bool) {
return nil, false
}
// AsVmmToVmmUpdateNetworkMappingInput is the FabricSpecificUpdateNetworkMappingInput implementation for VmmToVmmUpdateNetworkMappingInput.
func (vtvunmi VmmToVmmUpdateNetworkMappingInput) AsVmmToVmmUpdateNetworkMappingInput() (*VmmToVmmUpdateNetworkMappingInput, bool) {
return &vtvunmi, true
}
// VMNicDetails is hyper V VM network details.
type VMNicDetails struct {
NicID *string `json:"nicId,omitempty"`
ReplicaNicID *string `json:"replicaNicId,omitempty"`
SourceNicArmID *string `json:"sourceNicArmId,omitempty"`
VMSubnetName *string `json:"vMSubnetName,omitempty"`
VMNetworkName *string `json:"vMNetworkName,omitempty"`
RecoveryVMNetworkID *string `json:"recoveryVMNetworkId,omitempty"`
RecoveryVMSubnetName *string `json:"recoveryVMSubnetName,omitempty"`
IPAddressType *string `json:"ipAddressType,omitempty"`
PrimaryNicStaticIPAddress *string `json:"primaryNicStaticIPAddress,omitempty"`
ReplicaNicStaticIPAddress *string `json:"replicaNicStaticIPAddress,omitempty"`
SelectionType *string `json:"selectionType,omitempty"`
RecoveryNicIPAddressType *string `json:"recoveryNicIpAddressType,omitempty"`
}
// VMNicInputDetails is hyper V VM network input details.
type VMNicInputDetails struct {
NicID *string `json:"nicId,omitempty"`
RecoveryVMSubnetName *string `json:"recoveryVMSubnetName,omitempty"`
ReplicaNicStaticIPAddress *string `json:"replicaNicStaticIPAddress,omitempty"`
SelectionType *string `json:"selectionType,omitempty"`
}
// VMNicUpdatesTaskDetails is this class represents the vm NicUpdates task details.
type VMNicUpdatesTaskDetails struct {
InstanceType InstanceTypeTaskTypeDetails `json:"instanceType,omitempty"`
VMID *string `json:"vmId,omitempty"`
NicID *string `json:"nicId,omitempty"`
Name *string `json:"name,omitempty"`
}
// MarshalJSON is the custom marshaler for VMNicUpdatesTaskDetails.
func (vnutd VMNicUpdatesTaskDetails) MarshalJSON() ([]byte, error) {
vnutd.InstanceType = InstanceTypeVMNicUpdatesTaskDetails
type Alias VMNicUpdatesTaskDetails
return json.Marshal(&struct {
Alias
}{
Alias: (Alias)(vnutd),
})
}
// AsJobTaskDetails is the TaskTypeDetails implementation for VMNicUpdatesTaskDetails.
func (vnutd VMNicUpdatesTaskDetails) AsJobTaskDetails() (*JobTaskDetails, bool) {
return nil, false
}
// AsVirtualMachineTaskDetails is the TaskTypeDetails implementation for VMNicUpdatesTaskDetails.
func (vnutd VMNicUpdatesTaskDetails) AsVirtualMachineTaskDetails() (*VirtualMachineTaskDetails, bool) {
return nil, false
}
// AsFabricReplicationGroupTaskDetails is the TaskTypeDetails implementation for VMNicUpdatesTaskDetails.
func (vnutd VMNicUpdatesTaskDetails) AsFabricReplicationGroupTaskDetails() (*FabricReplicationGroupTaskDetails, bool) {
return nil, false
}
// AsManualActionTaskDetails is the TaskTypeDetails implementation for VMNicUpdatesTaskDetails.
func (vnutd VMNicUpdatesTaskDetails) AsManualActionTaskDetails() (*ManualActionTaskDetails, bool) {
return nil, false
}
// AsScriptActionTaskDetails is the TaskTypeDetails implementation for VMNicUpdatesTaskDetails.
func (vnutd VMNicUpdatesTaskDetails) AsScriptActionTaskDetails() (*ScriptActionTaskDetails, bool) {
return nil, false
}
// AsVMNicUpdatesTaskDetails is the TaskTypeDetails implementation for VMNicUpdatesTaskDetails.
func (vnutd VMNicUpdatesTaskDetails) AsVMNicUpdatesTaskDetails() (*VMNicUpdatesTaskDetails, bool) {
return &vnutd, true
}
// AsConsistencyCheckTaskDetails is the TaskTypeDetails implementation for VMNicUpdatesTaskDetails.
func (vnutd VMNicUpdatesTaskDetails) AsConsistencyCheckTaskDetails() (*ConsistencyCheckTaskDetails, bool) {
return nil, false
}
// AsAutomationRunbookTaskDetails is the TaskTypeDetails implementation for VMNicUpdatesTaskDetails.
func (vnutd VMNicUpdatesTaskDetails) AsAutomationRunbookTaskDetails() (*AutomationRunbookTaskDetails, bool) {
return nil, false
}
// VMwareCbtPolicyCreationInput is vMware Cbt Policy creation input.
type VMwareCbtPolicyCreationInput struct {
InstanceType InstanceTypePolicyProviderSpecificInput `json:"instanceType,omitempty"`
RecoveryPointHistory *int32 `json:"recoveryPointHistory,omitempty"`
CrashConsistentFrequencyInMinutes *int32 `json:"crashConsistentFrequencyInMinutes,omitempty"`
AppConsistentFrequencyInMinutes *int32 `json:"appConsistentFrequencyInMinutes,omitempty"`
}
// MarshalJSON is the custom marshaler for VMwareCbtPolicyCreationInput.
func (vmcpci VMwareCbtPolicyCreationInput) MarshalJSON() ([]byte, error) {
vmcpci.InstanceType = InstanceTypePolicyProviderSpecificInputInstanceTypeVMwareCbt
type Alias VMwareCbtPolicyCreationInput
return json.Marshal(&struct {
Alias
}{
Alias: (Alias)(vmcpci),
})
}
// AsHyperVReplicaAzurePolicyInput is the PolicyProviderSpecificInput implementation for VMwareCbtPolicyCreationInput.
func (vmcpci VMwareCbtPolicyCreationInput) AsHyperVReplicaAzurePolicyInput() (*HyperVReplicaAzurePolicyInput, bool) {
return nil, false
}
// AsHyperVReplicaPolicyInput is the PolicyProviderSpecificInput implementation for VMwareCbtPolicyCreationInput.
func (vmcpci VMwareCbtPolicyCreationInput) AsHyperVReplicaPolicyInput() (*HyperVReplicaPolicyInput, bool) {
return nil, false
}
// AsHyperVReplicaBluePolicyInput is the PolicyProviderSpecificInput implementation for VMwareCbtPolicyCreationInput.
func (vmcpci VMwareCbtPolicyCreationInput) AsHyperVReplicaBluePolicyInput() (*HyperVReplicaBluePolicyInput, bool) {
return nil, false
}
// AsInMageAzureV2PolicyInput is the PolicyProviderSpecificInput implementation for VMwareCbtPolicyCreationInput.
func (vmcpci VMwareCbtPolicyCreationInput) AsInMageAzureV2PolicyInput() (*InMageAzureV2PolicyInput, bool) {
return nil, false
}
// AsInMagePolicyInput is the PolicyProviderSpecificInput implementation for VMwareCbtPolicyCreationInput.
func (vmcpci VMwareCbtPolicyCreationInput) AsInMagePolicyInput() (*InMagePolicyInput, bool) {
return nil, false
}
// AsA2APolicyCreationInput is the PolicyProviderSpecificInput implementation for VMwareCbtPolicyCreationInput.
func (vmcpci VMwareCbtPolicyCreationInput) AsA2APolicyCreationInput() (*A2APolicyCreationInput, bool) {
return nil, false
}
// AsVMwareCbtPolicyCreationInput is the PolicyProviderSpecificInput implementation for VMwareCbtPolicyCreationInput.
func (vmcpci VMwareCbtPolicyCreationInput) AsVMwareCbtPolicyCreationInput() (*VMwareCbtPolicyCreationInput, bool) {
return &vmcpci, true
}
// VmwareCbtPolicyDetails is vMware Cbt specific policy details.
type VmwareCbtPolicyDetails struct {
InstanceType InstanceTypePolicyProviderSpecificDetails `json:"instanceType,omitempty"`
RecoveryPointThresholdInMinutes *int32 `json:"recoveryPointThresholdInMinutes,omitempty"`
RecoveryPointHistory *int32 `json:"recoveryPointHistory,omitempty"`
AppConsistentFrequencyInMinutes *int32 `json:"appConsistentFrequencyInMinutes,omitempty"`
CrashConsistentFrequencyInMinutes *int32 `json:"crashConsistentFrequencyInMinutes,omitempty"`
}
// MarshalJSON is the custom marshaler for VmwareCbtPolicyDetails.
func (vcpd VmwareCbtPolicyDetails) MarshalJSON() ([]byte, error) {
vcpd.InstanceType = InstanceTypePolicyProviderSpecificDetailsInstanceTypeVMwareCbt
type Alias VmwareCbtPolicyDetails
return json.Marshal(&struct {
Alias
}{
Alias: (Alias)(vcpd),
})
}
// AsHyperVReplicaAzurePolicyDetails is the PolicyProviderSpecificDetails implementation for VmwareCbtPolicyDetails.
func (vcpd VmwareCbtPolicyDetails) AsHyperVReplicaAzurePolicyDetails() (*HyperVReplicaAzurePolicyDetails, bool) {
return nil, false
}
// AsHyperVReplicaBasePolicyDetails is the PolicyProviderSpecificDetails implementation for VmwareCbtPolicyDetails.
func (vcpd VmwareCbtPolicyDetails) AsHyperVReplicaBasePolicyDetails() (*HyperVReplicaBasePolicyDetails, bool) {
return nil, false
}
// AsHyperVReplicaPolicyDetails is the PolicyProviderSpecificDetails implementation for VmwareCbtPolicyDetails.
func (vcpd VmwareCbtPolicyDetails) AsHyperVReplicaPolicyDetails() (*HyperVReplicaPolicyDetails, bool) {
return nil, false
}
// AsHyperVReplicaBluePolicyDetails is the PolicyProviderSpecificDetails implementation for VmwareCbtPolicyDetails.
func (vcpd VmwareCbtPolicyDetails) AsHyperVReplicaBluePolicyDetails() (*HyperVReplicaBluePolicyDetails, bool) {
return nil, false
}
// AsInMageBasePolicyDetails is the PolicyProviderSpecificDetails implementation for VmwareCbtPolicyDetails.
func (vcpd VmwareCbtPolicyDetails) AsInMageBasePolicyDetails() (*InMageBasePolicyDetails, bool) {
return nil, false
}
// AsInMageAzureV2PolicyDetails is the PolicyProviderSpecificDetails implementation for VmwareCbtPolicyDetails.
func (vcpd VmwareCbtPolicyDetails) AsInMageAzureV2PolicyDetails() (*InMageAzureV2PolicyDetails, bool) {
return nil, false
}
// AsInMagePolicyDetails is the PolicyProviderSpecificDetails implementation for VmwareCbtPolicyDetails.
func (vcpd VmwareCbtPolicyDetails) AsInMagePolicyDetails() (*InMagePolicyDetails, bool) {
return nil, false
}
// AsA2APolicyDetails is the PolicyProviderSpecificDetails implementation for VmwareCbtPolicyDetails.
func (vcpd VmwareCbtPolicyDetails) AsA2APolicyDetails() (*A2APolicyDetails, bool) {
return nil, false
}
// AsRcmAzureMigrationPolicyDetails is the PolicyProviderSpecificDetails implementation for VmwareCbtPolicyDetails.
func (vcpd VmwareCbtPolicyDetails) AsRcmAzureMigrationPolicyDetails() (*RcmAzureMigrationPolicyDetails, bool) {
return nil, false
}
// AsVmwareCbtPolicyDetails is the PolicyProviderSpecificDetails implementation for VmwareCbtPolicyDetails.
func (vcpd VmwareCbtPolicyDetails) AsVmwareCbtPolicyDetails() (*VmwareCbtPolicyDetails, bool) {
return &vcpd, true
}
// VMwareDetails is store the fabric details specific to the VMware fabric.
type VMwareDetails struct {
InstanceType InstanceTypeFabricSpecificDetails `json:"instanceType,omitempty"`
ProcessServers *[]ProcessServer `json:"processServers,omitempty"`
MasterTargetServers *[]MasterTargetServer `json:"masterTargetServers,omitempty"`
RunAsAccounts *[]RunAsAccount `json:"runAsAccounts,omitempty"`
ReplicationPairCount *string `json:"replicationPairCount,omitempty"`
ProcessServerCount *string `json:"processServerCount,omitempty"`
AgentCount *string `json:"agentCount,omitempty"`
ProtectedServers *string `json:"protectedServers,omitempty"`
SystemLoad *string `json:"systemLoad,omitempty"`
SystemLoadStatus *string `json:"systemLoadStatus,omitempty"`
CPULoad *string `json:"cpuLoad,omitempty"`
CPULoadStatus *string `json:"cpuLoadStatus,omitempty"`
TotalMemoryInBytes *int64 `json:"totalMemoryInBytes,omitempty"`
AvailableMemoryInBytes *int64 `json:"availableMemoryInBytes,omitempty"`
MemoryUsageStatus *string `json:"memoryUsageStatus,omitempty"`
TotalSpaceInBytes *int64 `json:"totalSpaceInBytes,omitempty"`
AvailableSpaceInBytes *int64 `json:"availableSpaceInBytes,omitempty"`
SpaceUsageStatus *string `json:"spaceUsageStatus,omitempty"`
WebLoad *string `json:"webLoad,omitempty"`
WebLoadStatus *string `json:"webLoadStatus,omitempty"`
DatabaseServerLoad *string `json:"databaseServerLoad,omitempty"`
DatabaseServerLoadStatus *string `json:"databaseServerLoadStatus,omitempty"`
CsServiceStatus *string `json:"csServiceStatus,omitempty"`
IPAddress *string `json:"ipAddress,omitempty"`
AgentVersion *string `json:"agentVersion,omitempty"`
HostName *string `json:"hostName,omitempty"`
LastHeartbeat *date.Time `json:"lastHeartbeat,omitempty"`
VersionStatus *string `json:"versionStatus,omitempty"`
SslCertExpiryDate *date.Time `json:"sslCertExpiryDate,omitempty"`
SslCertExpiryRemainingDays *int32 `json:"sslCertExpiryRemainingDays,omitempty"`
PsTemplateVersion *string `json:"psTemplateVersion,omitempty"`
}
// MarshalJSON is the custom marshaler for VMwareDetails.
func (vmd VMwareDetails) MarshalJSON() ([]byte, error) {
vmd.InstanceType = InstanceTypeVMware
type Alias VMwareDetails
return json.Marshal(&struct {
Alias
}{
Alias: (Alias)(vmd),
})
}
// AsAzureFabricSpecificDetails is the FabricSpecificDetails implementation for VMwareDetails.
func (vmd VMwareDetails) AsAzureFabricSpecificDetails() (*AzureFabricSpecificDetails, bool) {
return nil, false
}
// AsVmmDetails is the FabricSpecificDetails implementation for VMwareDetails.
func (vmd VMwareDetails) AsVmmDetails() (*VmmDetails, bool) {
return nil, false
}
// AsHyperVSiteDetails is the FabricSpecificDetails implementation for VMwareDetails.
func (vmd VMwareDetails) AsHyperVSiteDetails() (*HyperVSiteDetails, bool) {
return nil, false
}
// AsVMwareDetails is the FabricSpecificDetails implementation for VMwareDetails.
func (vmd VMwareDetails) AsVMwareDetails() (*VMwareDetails, bool) {
return &vmd, true
}
// AsVMwareV2FabricSpecificDetails is the FabricSpecificDetails implementation for VMwareDetails.
func (vmd VMwareDetails) AsVMwareV2FabricSpecificDetails() (*VMwareV2FabricSpecificDetails, bool) {
return nil, false
}
// VMwareV2FabricCreationInput is fabric provider specific settings.
type VMwareV2FabricCreationInput struct {
InstanceType InstanceTypeFabricSpecificCreationInput `json:"instanceType,omitempty"`
}
// MarshalJSON is the custom marshaler for VMwareV2FabricCreationInput.
func (vmvfci VMwareV2FabricCreationInput) MarshalJSON() ([]byte, error) {
vmvfci.InstanceType = InstanceTypeFabricSpecificCreationInputInstanceTypeVMwareV2
type Alias VMwareV2FabricCreationInput
return json.Marshal(&struct {
Alias
}{
Alias: (Alias)(vmvfci),
})
}
// AsAzureFabricCreationInput is the FabricSpecificCreationInput implementation for VMwareV2FabricCreationInput.
func (vmvfci VMwareV2FabricCreationInput) AsAzureFabricCreationInput() (*AzureFabricCreationInput, bool) {
return nil, false
}
// AsVMwareV2FabricCreationInput is the FabricSpecificCreationInput implementation for VMwareV2FabricCreationInput.
func (vmvfci VMwareV2FabricCreationInput) AsVMwareV2FabricCreationInput() (*VMwareV2FabricCreationInput, bool) {
return &vmvfci, true
}
// VMwareV2FabricSpecificDetails is vMwareV2 fabric Specific Details.
type VMwareV2FabricSpecificDetails struct {
InstanceType InstanceTypeFabricSpecificDetails `json:"instanceType,omitempty"`
SrsServiceEndpoint *string `json:"srsServiceEndpoint,omitempty"`
RcmServiceEndpoint *string `json:"rcmServiceEndpoint,omitempty"`
}
// MarshalJSON is the custom marshaler for VMwareV2FabricSpecificDetails.
func (vmvfsd VMwareV2FabricSpecificDetails) MarshalJSON() ([]byte, error) {
vmvfsd.InstanceType = InstanceTypeVMwareV2
type Alias VMwareV2FabricSpecificDetails
return json.Marshal(&struct {
Alias
}{
Alias: (Alias)(vmvfsd),
})
}
// AsAzureFabricSpecificDetails is the FabricSpecificDetails implementation for VMwareV2FabricSpecificDetails.
func (vmvfsd VMwareV2FabricSpecificDetails) AsAzureFabricSpecificDetails() (*AzureFabricSpecificDetails, bool) {
return nil, false
}
// AsVmmDetails is the FabricSpecificDetails implementation for VMwareV2FabricSpecificDetails.
func (vmvfsd VMwareV2FabricSpecificDetails) AsVmmDetails() (*VmmDetails, bool) {
return nil, false
}
// AsHyperVSiteDetails is the FabricSpecificDetails implementation for VMwareV2FabricSpecificDetails.
func (vmvfsd VMwareV2FabricSpecificDetails) AsHyperVSiteDetails() (*HyperVSiteDetails, bool) {
return nil, false
}
// AsVMwareDetails is the FabricSpecificDetails implementation for VMwareV2FabricSpecificDetails.
func (vmvfsd VMwareV2FabricSpecificDetails) AsVMwareDetails() (*VMwareDetails, bool) {
return nil, false
}
// AsVMwareV2FabricSpecificDetails is the FabricSpecificDetails implementation for VMwareV2FabricSpecificDetails.
func (vmvfsd VMwareV2FabricSpecificDetails) AsVMwareV2FabricSpecificDetails() (*VMwareV2FabricSpecificDetails, bool) {
return &vmvfsd, true
}
// VMwareVirtualMachineDetails is vMware provider specific settings
type VMwareVirtualMachineDetails struct {
InstanceType InstanceTypeConfigurationSettings `json:"instanceType,omitempty"`
AgentGeneratedID *string `json:"agentGeneratedId,omitempty"`
AgentInstalled *string `json:"agentInstalled,omitempty"`
OsType *string `json:"osType,omitempty"`
AgentVersion *string `json:"agentVersion,omitempty"`
IPAddress *string `json:"ipAddress,omitempty"`
PoweredOn *string `json:"poweredOn,omitempty"`
VCenterInfrastructureID *string `json:"vCenterInfrastructureId,omitempty"`
DiscoveryType *string `json:"discoveryType,omitempty"`
DiskDetails *[]InMageDiskDetails `json:"diskDetails,omitempty"`
ValidationErrors *[]HealthError `json:"validationErrors,omitempty"`
}
// MarshalJSON is the custom marshaler for VMwareVirtualMachineDetails.
func (vmvmd VMwareVirtualMachineDetails) MarshalJSON() ([]byte, error) {
vmvmd.InstanceType = InstanceTypeVMwareVirtualMachine
type Alias VMwareVirtualMachineDetails
return json.Marshal(&struct {
Alias
}{
Alias: (Alias)(vmvmd),
})
}
// AsHyperVVirtualMachineDetails is the ConfigurationSettings implementation for VMwareVirtualMachineDetails.
func (vmvmd VMwareVirtualMachineDetails) AsHyperVVirtualMachineDetails() (*HyperVVirtualMachineDetails, bool) {
return nil, false
}
// AsVMwareVirtualMachineDetails is the ConfigurationSettings implementation for VMwareVirtualMachineDetails.
func (vmvmd VMwareVirtualMachineDetails) AsVMwareVirtualMachineDetails() (*VMwareVirtualMachineDetails, bool) {
return &vmvmd, true
}
// AsReplicationGroupDetails is the ConfigurationSettings implementation for VMwareVirtualMachineDetails.
func (vmvmd VMwareVirtualMachineDetails) AsReplicationGroupDetails() (*ReplicationGroupDetails, bool) {
return nil, false
}