2017-08-05 18:30:20 +00:00
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.
//
2017-10-01 08:13:39 +00:00
// Code generated by Microsoft (R) AutoRest Code Generator.
2017-08-05 18:30:20 +00:00
// Changes may cause incorrect behavior and will be lost if the code is regenerated.
import (
2017-10-01 08:13:39 +00:00
"encoding/json"
"errors"
2017-08-05 18:30:20 +00:00
"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"
)
2017-10-01 08:13:39 +00:00
// 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"
)
2017-08-05 18:30:20 +00:00
// HyperVReplicaAzureRpRecoveryPointType enumerates the values for hyper v replica azure rp recovery point type.
type HyperVReplicaAzureRpRecoveryPointType string
const (
2017-10-01 08:13:39 +00:00
// HyperVReplicaAzureRpRecoveryPointTypeLatest specifies the hyper v replica azure rp recovery point type latest state
// for hyper v replica azure rp recovery point type.
2017-08-05 18:30:20 +00:00
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"
)
2017-10-01 08:13:39 +00:00
// 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"
)
2017-08-05 18:30:20 +00:00
// 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"
2017-10-01 08:13:39 +00:00
// InMageV2RpRecoveryPointTypeLatestProcessed specifies the in mage v2 rp recovery point type latest processed state
// for in mage v2 rp recovery point type.
2017-08-05 18:30:20 +00:00
InMageV2RpRecoveryPointTypeLatestProcessed InMageV2RpRecoveryPointType = "LatestProcessed"
)
2017-10-01 08:13:39 +00:00
// 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"
)
2017-08-05 18:30:20 +00:00
// 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"
)
2017-10-01 08:13:39 +00:00
// 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"
)
2017-08-05 18:30:20 +00:00
// 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"
)
2017-10-01 08:13:39 +00:00
// 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"
)
2017-08-05 18:30:20 +00:00
// ReplicationProtectedItemOperation enumerates the values for replication protected item operation.
type ReplicationProtectedItemOperation string
const (
2017-10-01 08:13:39 +00:00
// 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"
2017-08-05 18:30:20 +00:00
)
// RpInMageRecoveryPointType enumerates the values for rp in mage recovery point type.
type RpInMageRecoveryPointType string
const (
2017-10-01 08:13:39 +00:00
// 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"
2017-08-05 18:30:20 +00:00
)
// 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"
)
2017-10-01 08:13:39 +00:00
// 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"
)
2017-08-05 18:30:20 +00:00
// 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 {
2017-10-01 08:13:39 +00:00
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
2017-08-05 18:30:20 +00:00
}
// A2AContainerCreationInput is a2A cloud creation input.
type A2AContainerCreationInput struct {
2017-10-01 08:13:39 +00:00
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
2017-08-05 18:30:20 +00:00
}
// A2AEnableProtectionInput is a2A enable protection input.
type A2AEnableProtectionInput struct {
2017-10-01 08:13:39 +00:00
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
2017-08-05 18:30:20 +00:00
}
// A2AEventDetails is model class for event details of a A2A event.
type A2AEventDetails struct {
2017-10-01 08:13:39 +00:00
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
2017-08-05 18:30:20 +00:00
}
// A2AFailoverProviderInput is a2A provider specific input for failover.
type A2AFailoverProviderInput struct {
2017-10-01 08:13:39 +00:00
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
2017-08-05 18:30:20 +00:00
}
// A2APolicyCreationInput is a2A Policy creation input.
type A2APolicyCreationInput struct {
2017-10-01 08:13:39 +00:00
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
2017-08-05 18:30:20 +00:00
}
// A2APolicyDetails is a2A specific policy details.
type A2APolicyDetails struct {
2017-10-01 08:13:39 +00:00
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
2017-08-05 18:30:20 +00:00
}
// 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" `
2017-10-01 08:13:39 +00:00
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" `
2017-08-05 18:30:20 +00:00
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 {
2017-10-01 08:13:39 +00:00
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
2017-08-05 18:30:20 +00:00
}
// A2AReprotectInput is azure specific reprotect input.
type A2AReprotectInput struct {
2017-10-01 08:13:39 +00:00
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
2017-08-05 18:30:20 +00:00
}
// A2ASwitchProtectionInput is a2A specific switch protection input.
type A2ASwitchProtectionInput struct {
2017-10-01 08:13:39 +00:00
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
2017-08-05 18:30:20 +00:00
}
// A2AUpdateReplicationProtectedItemInput is inMage Azure V2 input to update replication protected item.
type A2AUpdateReplicationProtectedItemInput struct {
2017-10-01 08:13:39 +00:00
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
2017-08-05 18:30:20 +00:00
}
// 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" `
}
2017-10-01 08:13:39 +00:00
// 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" `
}
2017-08-05 18:30:20 +00:00
// 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 {
2017-10-01 08:13:39 +00:00
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
2017-08-05 18:30:20 +00:00
}
// ApplyRecoveryPointProviderSpecificInput is provider specific input for apply recovery point.
2017-10-01 08:13:39 +00:00
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
2017-08-05 18:30:20 +00:00
}
// 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 {
2017-10-01 08:13:39 +00:00
AffectedObjectDetails * map [ string ] * string ` json:"affectedObjectDetails,omitempty" `
InstanceType InstanceTypeJobDetails ` json:"instanceType,omitempty" `
2017-08-05 18:30:20 +00:00
}
2017-10-01 08:13:39 +00:00
// 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" `
2017-08-05 18:30:20 +00:00
FriendlyName * string ` json:"friendlyName,omitempty" `
State * string ` json:"state,omitempty" `
StateDescription * string ` json:"stateDescription,omitempty" `
TaskType * string ` json:"taskType,omitempty" `
2017-10-01 08:13:39 +00:00
CustomDetails TaskTypeDetails ` json:"customDetails,omitempty" `
GroupTaskCustomDetails GroupTaskDetails ` json:"groupTaskCustomDetails,omitempty" `
2017-08-05 18:30:20 +00:00
Errors * [ ] JobErrorDetails ` json:"errors,omitempty" `
}
2017-10-01 08:13:39 +00:00
// 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
}
2017-08-05 18:30:20 +00:00
// AutomationRunbookTaskDetails is this class represents the task details for an automation runbook.
type AutomationRunbookTaskDetails struct {
2017-10-01 08:13:39 +00:00
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
2017-08-05 18:30:20 +00:00
}
// AzureFabricCreationInput is fabric provider specific settings.
type AzureFabricCreationInput struct {
2017-10-01 08:13:39 +00:00
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
2017-08-05 18:30:20 +00:00
}
// AzureFabricSpecificDetails is azure Fabric Specific Details.
type AzureFabricSpecificDetails struct {
2017-10-01 08:13:39 +00:00
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
2017-08-05 18:30:20 +00:00
}
// AzureToAzureCreateNetworkMappingInput is create network mappings input properties/behaviour specific to Azure to
// Azure Network mapping.
type AzureToAzureCreateNetworkMappingInput struct {
2017-10-01 08:13:39 +00:00
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
2017-08-05 18:30:20 +00:00
}
2017-10-01 08:13:39 +00:00
// AzureToAzureNetworkMappingSettings is a2A Network Mapping fabric specific settings.
2017-08-05 18:30:20 +00:00
type AzureToAzureNetworkMappingSettings struct {
2017-10-01 08:13:39 +00:00
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
2017-08-05 18:30:20 +00:00
}
// AzureToAzureUpdateNetworkMappingInput is updates network mappings input.
type AzureToAzureUpdateNetworkMappingInput struct {
2017-10-01 08:13:39 +00:00
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
2017-08-05 18:30:20 +00:00
}
// 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.
2017-10-01 08:13:39 +00:00
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
2017-08-05 18:30:20 +00:00
}
// 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 {
2017-10-01 08:13:39 +00:00
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
2017-08-05 18:30:20 +00:00
}
// 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 {
2017-10-01 08:13:39 +00:00
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
2017-08-05 18:30:20 +00:00
}
// CreatePolicyInput is protection profile input.
type CreatePolicyInput struct {
Properties * CreatePolicyInputProperties ` json:"properties,omitempty" `
}
// CreatePolicyInputProperties is policy creation properties.
type CreatePolicyInputProperties struct {
2017-10-01 08:13:39 +00:00
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
2017-08-05 18:30:20 +00:00
}
// 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" `
}
2017-10-01 08:13:39 +00:00
// 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
}
2017-08-05 18:30:20 +00:00
// 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 {
2017-10-01 08:13:39 +00:00
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
2017-08-05 18:30:20 +00:00
}
// DisableProtectionProviderSpecificInput is disable protection provider specific input.
2017-10-01 08:13:39 +00:00
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
2017-08-05 18:30:20 +00:00
}
// 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 {
2017-10-01 08:13:39 +00:00
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
2017-08-05 18:30:20 +00:00
}
// EnableProtectionProviderSpecificInput is enable protection provider specific input.
2017-10-01 08:13:39 +00:00
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
2017-08-05 18:30:20 +00:00
}
// 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 {
2017-10-01 08:13:39 +00:00
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
2017-08-05 18:30:20 +00:00
}
// EventProviderSpecificDetails is model class for provider specific details for an event.
2017-10-01 08:13:39 +00:00
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" `
2017-08-05 18:30:20 +00:00
}
// EventSpecificDetails is model class for event specific details for an event.
2017-10-01 08:13:39 +00:00
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
2017-08-05 18:30:20 +00:00
}
// ExportJobDetails is this class represents details for export jobs workflow.
type ExportJobDetails struct {
2017-10-01 08:13:39 +00:00
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
2017-08-05 18:30:20 +00:00
}
// 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 {
2017-10-01 08:13:39 +00:00
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
2017-08-05 18:30:20 +00:00
}
// FabricProperties is fabric properties.
type FabricProperties struct {
2017-10-01 08:13:39 +00:00
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
}
2017-08-05 18:30:20 +00:00
2017-10-01 08:13:39 +00:00
v = m [ "encryptionDetails" ]
if v != nil {
var encryptionDetails EncryptionDetails
err = json . Unmarshal ( * m [ "encryptionDetails" ] , & encryptionDetails )
if err != nil {
return err
}
fp . EncryptionDetails = & encryptionDetails
}
2017-08-05 18:30:20 +00:00
2017-10-01 08:13:39 +00:00
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
}
2017-08-05 18:30:20 +00:00
// FabricSpecificCreationInput is fabric provider specific settings.
2017-10-01 08:13:39 +00:00
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
2017-08-05 18:30:20 +00:00
}
2017-10-01 08:13:39 +00:00
// 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" `
2017-08-05 18:30:20 +00:00
}
2017-10-01 08:13:39 +00:00
// 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 ) ,
} )
2017-08-05 18:30:20 +00:00
}
2017-10-01 08:13:39 +00:00
// AsHyperVReplicaAzureEnableProtectionInput is the EnableProtectionProviderSpecificInput implementation for InMageAzureV2EnableProtectionInput.
func ( imavepi InMageAzureV2EnableProtectionInput ) AsHyperVReplicaAzureEnableProtectionInput ( ) ( * HyperVReplicaAzureEnableProtectionInput , bool ) {
return nil , false
2017-08-05 18:30:20 +00:00
}
2017-10-01 08:13:39 +00:00
// AsSanEnableProtectionInput is the EnableProtectionProviderSpecificInput implementation for InMageAzureV2EnableProtectionInput.
func ( imavepi InMageAzureV2EnableProtectionInput ) AsSanEnableProtectionInput ( ) ( * SanEnableProtectionInput , bool ) {
return nil , false
2017-08-05 18:30:20 +00:00
}
2017-10-01 08:13:39 +00:00
// AsInMageAzureV2EnableProtectionInput is the EnableProtectionProviderSpecificInput implementation for InMageAzureV2EnableProtectionInput.
func ( imavepi InMageAzureV2EnableProtectionInput ) AsInMageAzureV2EnableProtectionInput ( ) ( * InMageAzureV2EnableProtectionInput , bool ) {
return & imavepi , true
2017-08-05 18:30:20 +00:00
}
2017-10-01 08:13:39 +00:00
// AsInMageEnableProtectionInput is the EnableProtectionProviderSpecificInput implementation for InMageAzureV2EnableProtectionInput.
func ( imavepi InMageAzureV2EnableProtectionInput ) AsInMageEnableProtectionInput ( ) ( * InMageEnableProtectionInput , bool ) {
return nil , false
2017-08-05 18:30:20 +00:00
}
2017-10-01 08:13:39 +00:00
// AsA2AEnableProtectionInput is the EnableProtectionProviderSpecificInput implementation for InMageAzureV2EnableProtectionInput.
func ( imavepi InMageAzureV2EnableProtectionInput ) AsA2AEnableProtectionInput ( ) ( * A2AEnableProtectionInput , bool ) {
return nil , false
2017-08-05 18:30:20 +00:00
}
2017-10-01 08:13:39 +00:00
// 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" `
2017-08-05 18:30:20 +00:00
}
2017-10-01 08:13:39 +00:00
// 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 ) ,
} )
2017-08-05 18:30:20 +00:00
}
2017-10-01 08:13:39 +00:00
// AsHyperVReplicaBaseEventDetails is the EventProviderSpecificDetails implementation for InMageAzureV2EventDetails.
func ( imaved InMageAzureV2EventDetails ) AsHyperVReplicaBaseEventDetails ( ) ( * HyperVReplicaBaseEventDetails , bool ) {
return nil , false
2017-08-05 18:30:20 +00:00
}
2017-10-01 08:13:39 +00:00
// AsHyperVReplica2012EventDetails is the EventProviderSpecificDetails implementation for InMageAzureV2EventDetails.
func ( imaved InMageAzureV2EventDetails ) AsHyperVReplica2012EventDetails ( ) ( * HyperVReplica2012EventDetails , bool ) {
return nil , false
2017-08-05 18:30:20 +00:00
}
2017-10-01 08:13:39 +00:00
// AsHyperVReplica2012R2EventDetails is the EventProviderSpecificDetails implementation for InMageAzureV2EventDetails.
func ( imaved InMageAzureV2EventDetails ) AsHyperVReplica2012R2EventDetails ( ) ( * HyperVReplica2012R2EventDetails , bool ) {
return nil , false
2017-08-05 18:30:20 +00:00
}
2017-10-01 08:13:39 +00:00
// AsHyperVReplicaAzureEventDetails is the EventProviderSpecificDetails implementation for InMageAzureV2EventDetails.
func ( imaved InMageAzureV2EventDetails ) AsHyperVReplicaAzureEventDetails ( ) ( * HyperVReplicaAzureEventDetails , bool ) {
return nil , false
2017-08-05 18:30:20 +00:00
}
2017-10-01 08:13:39 +00:00
// AsA2AEventDetails is the EventProviderSpecificDetails implementation for InMageAzureV2EventDetails.
func ( imaved InMageAzureV2EventDetails ) AsA2AEventDetails ( ) ( * A2AEventDetails , bool ) {
return nil , false
2017-08-05 18:30:20 +00:00
}
2017-10-01 08:13:39 +00:00
// AsInMageAzureV2EventDetails is the EventProviderSpecificDetails implementation for InMageAzureV2EventDetails.
func ( imaved InMageAzureV2EventDetails ) AsInMageAzureV2EventDetails ( ) ( * InMageAzureV2EventDetails , bool ) {
return & imaved , true
2017-08-05 18:30:20 +00:00
}
2017-10-01 08:13:39 +00:00
// 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" `
2017-08-05 18:30:20 +00:00
}
2017-10-01 08:13:39 +00:00
// 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 ) ,
} )
2017-08-05 18:30:20 +00:00
}
2017-10-01 08:13:39 +00:00
// AsHyperVReplicaAzureFailoverProviderInput is the ProviderSpecificFailoverInput implementation for InMageAzureV2FailoverProviderInput.
func ( imavfpi InMageAzureV2FailoverProviderInput ) AsHyperVReplicaAzureFailoverProviderInput ( ) ( * HyperVReplicaAzureFailoverProviderInput , bool ) {
return nil , false
2017-08-05 18:30:20 +00:00
}
2017-10-01 08:13:39 +00:00
// AsHyperVReplicaAzureFailbackProviderInput is the ProviderSpecificFailoverInput implementation for InMageAzureV2FailoverProviderInput.
func ( imavfpi InMageAzureV2FailoverProviderInput ) AsHyperVReplicaAzureFailbackProviderInput ( ) ( * HyperVReplicaAzureFailbackProviderInput , bool ) {
return nil , false
2017-08-05 18:30:20 +00:00
}
2017-10-01 08:13:39 +00:00
// AsInMageAzureV2FailoverProviderInput is the ProviderSpecificFailoverInput implementation for InMageAzureV2FailoverProviderInput.
func ( imavfpi InMageAzureV2FailoverProviderInput ) AsInMageAzureV2FailoverProviderInput ( ) ( * InMageAzureV2FailoverProviderInput , bool ) {
return & imavfpi , true
2017-08-05 18:30:20 +00:00
}
2017-10-01 08:13:39 +00:00
// AsInMageFailoverProviderInput is the ProviderSpecificFailoverInput implementation for InMageAzureV2FailoverProviderInput.
func ( imavfpi InMageAzureV2FailoverProviderInput ) AsInMageFailoverProviderInput ( ) ( * InMageFailoverProviderInput , bool ) {
return nil , false
2017-08-05 18:30:20 +00:00
}
2017-10-01 08:13:39 +00:00
// AsA2AFailoverProviderInput is the ProviderSpecificFailoverInput implementation for InMageAzureV2FailoverProviderInput.
func ( imavfpi InMageAzureV2FailoverProviderInput ) AsA2AFailoverProviderInput ( ) ( * A2AFailoverProviderInput , bool ) {
return nil , false
2017-08-05 18:30:20 +00:00
}
2017-10-01 08:13:39 +00:00
// 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" `
2017-08-05 18:30:20 +00:00
}
2017-10-01 08:13:39 +00:00
// 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 ) ,
} )
2017-08-05 18:30:20 +00:00
}
2017-10-01 08:13:39 +00:00
// AsHyperVReplicaAzurePolicyDetails is the PolicyProviderSpecificDetails implementation for InMageAzureV2PolicyDetails.
func ( imavpd InMageAzureV2PolicyDetails ) AsHyperVReplicaAzurePolicyDetails ( ) ( * HyperVReplicaAzurePolicyDetails , bool ) {
return nil , false
2017-08-05 18:30:20 +00:00
}
2017-10-01 08:13:39 +00:00
// AsHyperVReplicaBasePolicyDetails is the PolicyProviderSpecificDetails implementation for InMageAzureV2PolicyDetails.
func ( imavpd InMageAzureV2PolicyDetails ) AsHyperVReplicaBasePolicyDetails ( ) ( * HyperVReplicaBasePolicyDetails , bool ) {
return nil , false
2017-08-05 18:30:20 +00:00
}
2017-10-01 08:13:39 +00:00
// AsHyperVReplicaPolicyDetails is the PolicyProviderSpecificDetails implementation for InMageAzureV2PolicyDetails.
func ( imavpd InMageAzureV2PolicyDetails ) AsHyperVReplicaPolicyDetails ( ) ( * HyperVReplicaPolicyDetails , bool ) {
return nil , false
2017-08-05 18:30:20 +00:00
}
2017-10-01 08:13:39 +00:00
// AsHyperVReplicaBluePolicyDetails is the PolicyProviderSpecificDetails implementation for InMageAzureV2PolicyDetails.
func ( imavpd InMageAzureV2PolicyDetails ) AsHyperVReplicaBluePolicyDetails ( ) ( * HyperVReplicaBluePolicyDetails , bool ) {
return nil , false
2017-08-05 18:30:20 +00:00
}
2017-10-01 08:13:39 +00:00
// AsInMageBasePolicyDetails is the PolicyProviderSpecificDetails implementation for InMageAzureV2PolicyDetails.
func ( imavpd InMageAzureV2PolicyDetails ) AsInMageBasePolicyDetails ( ) ( * InMageBasePolicyDetails , bool ) {
return nil , false
2017-08-05 18:30:20 +00:00
}
2017-10-01 08:13:39 +00:00
// AsInMageAzureV2PolicyDetails is the PolicyProviderSpecificDetails implementation for InMageAzureV2PolicyDetails.
func ( imavpd InMageAzureV2PolicyDetails ) AsInMageAzureV2PolicyDetails ( ) ( * InMageAzureV2PolicyDetails , bool ) {
return & imavpd , true
2017-08-05 18:30:20 +00:00
}
2017-10-01 08:13:39 +00:00
// AsInMagePolicyDetails is the PolicyProviderSpecificDetails implementation for InMageAzureV2PolicyDetails.
func ( imavpd InMageAzureV2PolicyDetails ) AsInMagePolicyDetails ( ) ( * InMagePolicyDetails , bool ) {
return nil , false
2017-08-05 18:30:20 +00:00
}
2017-10-01 08:13:39 +00:00
// AsA2APolicyDetails is the PolicyProviderSpecificDetails implementation for InMageAzureV2PolicyDetails.
func ( imavpd InMageAzureV2PolicyDetails ) AsA2APolicyDetails ( ) ( * A2APolicyDetails , bool ) {
return nil , false
2017-08-05 18:30:20 +00:00
}
2017-10-01 08:13:39 +00:00
// AsRcmAzureMigrationPolicyDetails is the PolicyProviderSpecificDetails implementation for InMageAzureV2PolicyDetails.
func ( imavpd InMageAzureV2PolicyDetails ) AsRcmAzureMigrationPolicyDetails ( ) ( * RcmAzureMigrationPolicyDetails , bool ) {
return nil , false
2017-08-05 18:30:20 +00:00
}
2017-10-01 08:13:39 +00:00
// AsVmwareCbtPolicyDetails is the PolicyProviderSpecificDetails implementation for InMageAzureV2PolicyDetails.
func ( imavpd InMageAzureV2PolicyDetails ) AsVmwareCbtPolicyDetails ( ) ( * VmwareCbtPolicyDetails , bool ) {
return nil , false
2017-08-05 18:30:20 +00:00
}
2017-10-01 08:13:39 +00:00
// 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" `
2017-08-05 18:30:20 +00:00
}
2017-10-01 08:13:39 +00:00
// 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 ) ,
} )
2017-08-05 18:30:20 +00:00
}
2017-10-01 08:13:39 +00:00
// AsHyperVReplicaAzurePolicyInput is the PolicyProviderSpecificInput implementation for InMageAzureV2PolicyInput.
func ( imavpi InMageAzureV2PolicyInput ) AsHyperVReplicaAzurePolicyInput ( ) ( * HyperVReplicaAzurePolicyInput , bool ) {
return nil , false
2017-08-05 18:30:20 +00:00
}
2017-10-01 08:13:39 +00:00
// AsHyperVReplicaPolicyInput is the PolicyProviderSpecificInput implementation for InMageAzureV2PolicyInput.
func ( imavpi InMageAzureV2PolicyInput ) AsHyperVReplicaPolicyInput ( ) ( * HyperVReplicaPolicyInput , bool ) {
return nil , false
2017-08-05 18:30:20 +00:00
}
2017-10-01 08:13:39 +00:00
// 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
2017-08-05 18:30:20 +00:00
}
// InMageAzureV2ProtectedDiskDetails is inMageAzureV2 protected disk details.
type InMageAzureV2ProtectedDiskDetails struct {
2017-10-01 08:13:39 +00:00
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" `
2017-08-05 18:30:20 +00:00
}
// InMageAzureV2ReplicationDetails is inMageAzureV2 provider specific settings
type InMageAzureV2ReplicationDetails struct {
2017-10-01 08:13:39 +00:00
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
2017-08-05 18:30:20 +00:00
}
// InMageAzureV2ReprotectInput is inMageAzureV2 specific provider input.
type InMageAzureV2ReprotectInput struct {
2017-10-01 08:13:39 +00:00
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
2017-08-05 18:30:20 +00:00
}
// InMageAzureV2UpdateReplicationProtectedItemInput is inMage Azure V2 input to update replication protected item.
type InMageAzureV2UpdateReplicationProtectedItemInput struct {
2017-10-01 08:13:39 +00:00
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
2017-08-05 18:30:20 +00:00
}
// InMageBasePolicyDetails is base class for the policies of providers using InMage replication.
type InMageBasePolicyDetails struct {
2017-10-01 08:13:39 +00:00
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
2017-08-05 18:30:20 +00:00
}
// InMageDisableProtectionProviderSpecificInput is inMage disable protection provider specific input.
type InMageDisableProtectionProviderSpecificInput struct {
2017-10-01 08:13:39 +00:00
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
2017-08-05 18:30:20 +00:00
}
// 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 {
2017-10-01 08:13:39 +00:00
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
2017-08-05 18:30:20 +00:00
}
// InMageFailoverProviderInput is provider specific input for InMage failover.
type InMageFailoverProviderInput struct {
2017-10-01 08:13:39 +00:00
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
2017-08-05 18:30:20 +00:00
}
// InMagePolicyDetails is inMage specific protection profile details.
type InMagePolicyDetails struct {
2017-10-01 08:13:39 +00:00
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
2017-08-05 18:30:20 +00:00
}
// InMagePolicyInput is vMWare Azure specific protection profile Input.
type InMagePolicyInput struct {
2017-10-01 08:13:39 +00:00
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
2017-08-05 18:30:20 +00:00
}
// InMageProtectedDiskDetails is inMage protected disk details.
type InMageProtectedDiskDetails struct {
2017-10-01 08:13:39 +00:00
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" `
2017-08-05 18:30:20 +00:00
}
// InMageReplicationDetails is inMage provider specific settings
type InMageReplicationDetails struct {
2017-10-01 08:13:39 +00:00
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
2017-08-05 18:30:20 +00:00
}
// InMageReprotectInput is inMageAzureV2 specific provider input.
type InMageReprotectInput struct {
2017-10-01 08:13:39 +00:00
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
2017-08-05 18:30:20 +00:00
}
// 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.
2017-10-01 08:13:39 +00:00
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
2017-08-05 18:30:20 +00:00
}
// 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" `
2017-10-01 08:13:39 +00:00
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
2017-08-05 18:30:20 +00:00
}
// 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 {
2017-10-01 08:13:39 +00:00
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
2017-08-05 18:30:20 +00:00
}
// 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 {
2017-10-01 08:13:39 +00:00
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
2017-08-05 18:30:20 +00:00
}
// 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 {
2017-10-01 08:13:39 +00:00
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
2017-08-05 18:30:20 +00:00
}
// 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" `
2017-10-01 08:13:39 +00:00
DiskCount * int32 ` json:"diskCount,omitempty" `
OsVersion * string ` json:"osVersion,omitempty" `
2017-08-05 18:30:20 +00:00
}
// 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.
2017-10-01 08:13:39 +00:00
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
2017-08-05 18:30:20 +00:00
}
// NetworkMappingProperties is network Mapping Properties.
type NetworkMappingProperties struct {
2017-10-01 08:13:39 +00:00
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
2017-08-05 18:30:20 +00:00
}
// 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 {
2017-10-01 08:13:39 +00:00
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
2017-08-05 18:30:20 +00:00
}
// 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 {
2017-10-01 08:13:39 +00:00
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
2017-08-05 18:30:20 +00:00
}
// PolicyProviderSpecificDetails is base class for Provider specific details for policies.
2017-10-01 08:13:39 +00:00
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
2017-08-05 18:30:20 +00:00
}
// PolicyProviderSpecificInput is base class for provider specific input
2017-10-01 08:13:39 +00:00
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
2017-08-05 18:30:20 +00:00
}
// 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" `
2017-10-01 08:13:39 +00:00
OsVersion * string ` json:"osVersion,omitempty" `
2017-08-05 18:30:20 +00:00
}
// 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 {
2017-10-01 08:13:39 +00:00
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
2017-08-05 18:30:20 +00:00
}
// ProtectedItemsQueryParameter is query parameter to enumerate protected items.
type ProtectedItemsQueryParameter struct {
SourceFabricName * string ` json:"sourceFabricName,omitempty" `
RecoveryPlanName * string ` json:"recoveryPlanName,omitempty" `
2017-10-01 08:13:39 +00:00
VCenterName * string ` json:"vCenterName,omitempty" `
2017-08-05 18:30:20 +00:00
}
// 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.
2017-10-01 08:13:39 +00:00
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
2017-08-05 18:30:20 +00:00
}
// 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 {
2017-10-01 08:13:39 +00:00
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
2017-08-05 18:30:20 +00:00
}
// RecoveryPlanAction is recovery plan action details.
type RecoveryPlanAction struct {
ActionName * string ` json:"actionName,omitempty" `
FailoverTypes * [ ] ReplicationProtectedItemOperation ` json:"failoverTypes,omitempty" `
FailoverDirections * [ ] PossibleOperationsDirections ` json:"failoverDirections,omitempty" `
2017-10-01 08:13:39 +00:00
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
2017-08-05 18:30:20 +00:00
}
// RecoveryPlanActionDetails is recovery plan action custom details.
2017-10-01 08:13:39 +00:00
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
2017-08-05 18:30:20 +00:00
}
// RecoveryPlanAutomationRunbookActionDetails is recovery plan Automation runbook action details.
type RecoveryPlanAutomationRunbookActionDetails struct {
2017-10-01 08:13:39 +00:00
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
2017-08-05 18:30:20 +00:00
}
// 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 ) ) )
}
2017-10-01 08:13:39 +00:00
// 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 ) ,
} )
2017-08-05 18:30:20 +00:00
}
2017-10-01 08:13:39 +00:00
// AsRecoveryPlanHyperVReplicaAzureFailoverInput is the RecoveryPlanProviderSpecificFailoverInput implementation for RecoveryPlanInMageAzureV2FailoverInput.
func ( rpimavfi RecoveryPlanInMageAzureV2FailoverInput ) AsRecoveryPlanHyperVReplicaAzureFailoverInput ( ) ( * RecoveryPlanHyperVReplicaAzureFailoverInput , bool ) {
return nil , false
2017-08-05 18:30:20 +00:00
}
2017-10-01 08:13:39 +00:00
// AsRecoveryPlanHyperVReplicaAzureFailbackInput is the RecoveryPlanProviderSpecificFailoverInput implementation for RecoveryPlanInMageAzureV2FailoverInput.
func ( rpimavfi RecoveryPlanInMageAzureV2FailoverInput ) AsRecoveryPlanHyperVReplicaAzureFailbackInput ( ) ( * RecoveryPlanHyperVReplicaAzureFailbackInput , bool ) {
return nil , false
2017-08-05 18:30:20 +00:00
}
2017-10-01 08:13:39 +00:00
// AsRecoveryPlanInMageAzureV2FailoverInput is the RecoveryPlanProviderSpecificFailoverInput implementation for RecoveryPlanInMageAzureV2FailoverInput.
func ( rpimavfi RecoveryPlanInMageAzureV2FailoverInput ) AsRecoveryPlanInMageAzureV2FailoverInput ( ) ( * RecoveryPlanInMageAzureV2FailoverInput , bool ) {
return & rpimavfi , true
2017-08-05 18:30:20 +00:00
}
2017-10-01 08:13:39 +00:00
// 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
2017-08-05 18:30:20 +00:00
}
// RecoveryPlanInMageFailoverInput is recovery plan InMage failover input.
type RecoveryPlanInMageFailoverInput struct {
2017-10-01 08:13:39 +00:00
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
2017-08-05 18:30:20 +00:00
}
// RecoveryPlanManualActionDetails is recovery plan manual action details.
type RecoveryPlanManualActionDetails struct {
2017-10-01 08:13:39 +00:00
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
2017-08-05 18:30:20 +00:00
}
// 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" `
}
2017-10-01 08:13:39 +00:00
// 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
}
2017-08-05 18:30:20 +00:00
// 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" `
2017-10-01 08:13:39 +00:00
LastUnplannedFailoverTime * date . Time ` json:"lastUnplannedFailoverTime,omitempty" `
2017-08-05 18:30:20 +00:00
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.
2017-10-01 08:13:39 +00:00
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
2017-08-05 18:30:20 +00:00
}
// RecoveryPlanScriptActionDetails is recovery plan script action details.
type RecoveryPlanScriptActionDetails struct {
2017-10-01 08:13:39 +00:00
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
2017-08-05 18:30:20 +00:00
}
// RecoveryPlanShutdownGroupTaskDetails is this class represents the recovery plan shutdown group task details.
type RecoveryPlanShutdownGroupTaskDetails struct {
2017-10-01 08:13:39 +00:00
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
2017-08-05 18:30:20 +00:00
}
// 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" `
}
2017-10-01 08:13:39 +00:00
// 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
}
2017-08-05 18:30:20 +00:00
// 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" `
}
2017-10-01 08:13:39 +00:00
// 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
}
2017-08-05 18:30:20 +00:00
// 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 {
2017-10-01 08:13:39 +00:00
RecoveryPointTime * date . Time ` json:"recoveryPointTime,omitempty" `
RecoveryPointType * string ` json:"recoveryPointType,omitempty" `
ProviderSpecificDetails * ProviderSpecificRecoveryPointDetails ` json:"providerSpecificDetails,omitempty" `
2017-08-05 18:30:20 +00:00
}
// 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 {
2017-10-01 08:13:39 +00:00
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" `
2017-08-05 18:30:20 +00:00
}
// 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 {
2017-10-01 08:13:39 +00:00
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
2017-08-05 18:30:20 +00:00
}
// 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 {
2017-10-01 08:13:39 +00:00
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
2017-08-05 18:30:20 +00:00
}
// 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.
2017-10-01 08:13:39 +00:00
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
2017-08-05 18:30:20 +00:00
}
// ReplicationProviderSpecificContainerMappingInput is provider specific input for pairing operations.
type ReplicationProviderSpecificContainerMappingInput struct {
InstanceType * string ` json:"instanceType,omitempty" `
}
// ReplicationProviderSpecificSettings is replication provider specific settings.
2017-10-01 08:13:39 +00:00
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
2017-08-05 18:30:20 +00:00
}
// 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" `
}
2017-10-01 08:13:39 +00:00
// 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" `
}
2017-08-05 18:30:20 +00:00
// 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 {
2017-10-01 08:13:39 +00:00
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
2017-08-05 18:30:20 +00:00
}
// ReverseReplicationProviderSpecificInput is provider specific reverse replication input.
2017-10-01 08:13:39 +00:00
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
2017-08-05 18:30:20 +00:00
}
// 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 {
2017-10-01 08:13:39 +00:00
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
2017-08-05 18:30:20 +00:00
}
// ScriptActionTaskDetails is this class represents the script action task details.
type ScriptActionTaskDetails struct {
2017-10-01 08:13:39 +00:00
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
2017-08-05 18:30:20 +00:00
}
// 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 {
2017-10-01 08:13:39 +00:00
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
2017-08-05 18:30:20 +00:00
}
// SwitchProtectionJobDetails is this class represents details for switch protection job.
type SwitchProtectionJobDetails struct {
2017-10-01 08:13:39 +00:00
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" )
}
2017-08-05 18:30:20 +00:00
}
2017-10-01 08:13:39 +00:00
func unmarshalTaskTypeDetailsArray ( body [ ] byte ) ( [ ] TaskTypeDetails , error ) {
var rawMessages [ ] * json . RawMessage
err := json . Unmarshal ( body , & rawMessages )
if err != nil {
return nil , err
}
2017-08-05 18:30:20 +00:00
2017-10-01 08:13:39 +00:00
ttdArray := make ( [ ] TaskTypeDetails , len ( rawMessages ) )
2017-08-05 18:30:20 +00:00
2017-10-01 08:13:39 +00:00
for index , rawMessage := range rawMessages {
ttd , err := unmarshalTaskTypeDetails ( * rawMessage )
if err != nil {
return nil , err
}
ttdArray [ index ] = ttd
}
return ttdArray , nil
2017-08-05 18:30:20 +00:00
}
// 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 {
2017-10-01 08:13:39 +00:00
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
2017-08-05 18:30:20 +00:00
}
// TestFailoverJobDetails is this class represents the details for a test failover job.
type TestFailoverJobDetails struct {
2017-10-01 08:13:39 +00:00
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
2017-08-05 18:30:20 +00:00
}
// 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 {
2017-10-01 08:13:39 +00:00
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
2017-08-05 18:30:20 +00:00
}
// 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 {
2017-10-01 08:13:39 +00:00
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
2017-08-05 18:30:20 +00:00
}
// UpdatePolicyInput is update protection profile input.
type UpdatePolicyInput struct {
Properties * UpdatePolicyInputProperties ` json:"properties,omitempty" `
}
// UpdatePolicyInputProperties is policy update properties.
type UpdatePolicyInputProperties struct {
2017-10-01 08:13:39 +00:00
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
2017-08-05 18:30:20 +00:00
}
// 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 {
2017-10-01 08:13:39 +00:00
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
2017-08-05 18:30:20 +00:00
}
// UpdateReplicationProtectedItemProviderInput is update replication protected item provider specific input.
2017-10-01 08:13:39 +00:00
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
2017-08-05 18:30:20 +00:00
}
// 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" `
}
2017-10-01 08:13:39 +00:00
// 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" `
}
2017-08-05 18:30:20 +00:00
// 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 {
2017-10-01 08:13:39 +00:00
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
2017-08-05 18:30:20 +00:00
}
// VmmDetails is VMM fabric specific details.
type VmmDetails struct {
2017-10-01 08:13:39 +00:00
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
2017-08-05 18:30:20 +00:00
}
// VmmToAzureCreateNetworkMappingInput is create network mappings input properties/behaviour specific to Vmm to Azure
// Network mapping.
type VmmToAzureCreateNetworkMappingInput struct {
2017-10-01 08:13:39 +00:00
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
2017-08-05 18:30:20 +00:00
}
2017-10-01 08:13:39 +00:00
// VmmToAzureNetworkMappingSettings is e2A Network Mapping fabric specific settings.
2017-08-05 18:30:20 +00:00
type VmmToAzureNetworkMappingSettings struct {
2017-10-01 08:13:39 +00:00
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
2017-08-05 18:30:20 +00:00
}
// VmmToAzureUpdateNetworkMappingInput is update network mappings input properties/behaviour specific to vmm to azure.
type VmmToAzureUpdateNetworkMappingInput struct {
2017-10-01 08:13:39 +00:00
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
2017-08-05 18:30:20 +00:00
}
// VmmToVmmCreateNetworkMappingInput is create network mappings input properties/behaviour specific to vmm to vmm
// Network mapping.
type VmmToVmmCreateNetworkMappingInput struct {
2017-10-01 08:13:39 +00:00
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
2017-08-05 18:30:20 +00:00
}
2017-10-01 08:13:39 +00:00
// VmmToVmmNetworkMappingSettings is e2E Network Mapping fabric specific settings.
2017-08-05 18:30:20 +00:00
type VmmToVmmNetworkMappingSettings struct {
2017-10-01 08:13:39 +00:00
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
2017-08-05 18:30:20 +00:00
}
// VmmToVmmUpdateNetworkMappingInput is update network mappings input properties/behaviour specific to vmm to vmm.
type VmmToVmmUpdateNetworkMappingInput struct {
2017-10-01 08:13:39 +00:00
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
2017-08-05 18:30:20 +00:00
}
// 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" `
2017-10-01 08:13:39 +00:00
RecoveryNicIPAddressType * string ` json:"recoveryNicIpAddressType,omitempty" `
2017-08-05 18:30:20 +00:00
}
// 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 {
2017-10-01 08:13:39 +00:00
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
2017-08-05 18:30:20 +00:00
}
// VMwareDetails is store the fabric details specific to the VMware fabric.
type VMwareDetails struct {
2017-10-01 08:13:39 +00:00
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
2017-08-05 18:30:20 +00:00
}
// VMwareVirtualMachineDetails is vMware provider specific settings
type VMwareVirtualMachineDetails struct {
2017-10-01 08:13:39 +00:00
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
2017-08-05 18:30:20 +00:00
}