/*
 * Copyright (c) Microsoft Corporation. All rights reserved.
 * Licensed under the MIT License. See License.txt in the project root for
 * license information.
 *
 * Code generated by Microsoft (R) AutoRest Code Generator.
 * Changes may cause incorrect behavior and will be lost if the code is
 * regenerated.
 */

/* jshint latedef:false */
/* jshint forin:false */
/* jshint noempty:false */

'use strict';

var msRestAzure = require('ms-rest-azure');

exports.BaseResource = msRestAzure.BaseResource;
exports.CloudError = msRestAzure.CloudError;
exports.ApplyRecoveryPointProviderSpecificInput = require('./applyRecoveryPointProviderSpecificInput');
exports.A2AApplyRecoveryPointInput = require('./a2AApplyRecoveryPointInput');
exports.ReplicationProviderSpecificContainerCreationInput = require('./replicationProviderSpecificContainerCreationInput');
exports.A2AContainerCreationInput = require('./a2AContainerCreationInput');
exports.ReplicationProviderSpecificContainerMappingInput = require('./replicationProviderSpecificContainerMappingInput');
exports.A2AContainerMappingInput = require('./a2AContainerMappingInput');
exports.A2AVmDiskInputDetails = require('./a2AVmDiskInputDetails');
exports.A2AVmManagedDiskInputDetails = require('./a2AVmManagedDiskInputDetails');
exports.DiskEncryptionKeyInfo = require('./diskEncryptionKeyInfo');
exports.KeyEncryptionKeyInfo = require('./keyEncryptionKeyInfo');
exports.DiskEncryptionInfo = require('./diskEncryptionInfo');
exports.EnableProtectionProviderSpecificInput = require('./enableProtectionProviderSpecificInput');
exports.A2AEnableProtectionInput = require('./a2AEnableProtectionInput');
exports.EventProviderSpecificDetails = require('./eventProviderSpecificDetails');
exports.A2AEventDetails = require('./a2AEventDetails');
exports.ProviderSpecificFailoverInput = require('./providerSpecificFailoverInput');
exports.A2AFailoverProviderInput = require('./a2AFailoverProviderInput');
exports.PolicyProviderSpecificInput = require('./policyProviderSpecificInput');
exports.A2APolicyCreationInput = require('./a2APolicyCreationInput');
exports.PolicyProviderSpecificDetails = require('./policyProviderSpecificDetails');
exports.A2APolicyDetails = require('./a2APolicyDetails');
exports.A2AProtectedDiskDetails = require('./a2AProtectedDiskDetails');
exports.A2AProtectedManagedDiskDetails = require('./a2AProtectedManagedDiskDetails');
exports.ProtectionContainerMappingProviderSpecificDetails = require('./protectionContainerMappingProviderSpecificDetails');
exports.A2AProtectionContainerMappingDetails = require('./a2AProtectionContainerMappingDetails');
exports.ProviderSpecificRecoveryPointDetails = require('./providerSpecificRecoveryPointDetails');
exports.A2ARecoveryPointDetails = require('./a2ARecoveryPointDetails');
exports.VMNicDetails = require('./vMNicDetails');
exports.RoleAssignment = require('./roleAssignment');
exports.InputEndpoint = require('./inputEndpoint');
exports.AzureToAzureVmSyncedConfigDetails = require('./azureToAzureVmSyncedConfigDetails');
exports.ReplicationProviderSpecificSettings = require('./replicationProviderSpecificSettings');
exports.A2AReplicationDetails = require('./a2AReplicationDetails');
exports.ReverseReplicationProviderSpecificInput = require('./reverseReplicationProviderSpecificInput');
exports.A2AReprotectInput = require('./a2AReprotectInput');
exports.SwitchProtectionProviderSpecificInput = require('./switchProtectionProviderSpecificInput');
exports.A2ASwitchProtectionInput = require('./a2ASwitchProtectionInput');
exports.ReplicationProviderSpecificUpdateContainerMappingInput = require('./replicationProviderSpecificUpdateContainerMappingInput');
exports.A2AUpdateContainerMappingInput = require('./a2AUpdateContainerMappingInput');
exports.A2AVmManagedDiskUpdateDetails = require('./a2AVmManagedDiskUpdateDetails');
exports.UpdateReplicationProtectedItemProviderInput = require('./updateReplicationProtectedItemProviderInput');
exports.A2AUpdateReplicationProtectedItemInput = require('./a2AUpdateReplicationProtectedItemInput');
exports.AddVCenterRequestProperties = require('./addVCenterRequestProperties');
exports.AddVCenterRequest = require('./addVCenterRequest');
exports.AlertProperties = require('./alertProperties');
exports.Resource = require('./resource');
exports.Alert = require('./alert');
exports.ApplyRecoveryPointInputProperties = require('./applyRecoveryPointInputProperties');
exports.ApplyRecoveryPointInput = require('./applyRecoveryPointInput');
exports.JobDetails = require('./jobDetails');
exports.AsrJobDetails = require('./asrJobDetails');
exports.TaskTypeDetails = require('./taskTypeDetails');
exports.GroupTaskDetails = require('./groupTaskDetails');
exports.ServiceError = require('./serviceError');
exports.ProviderError = require('./providerError');
exports.JobErrorDetails = require('./jobErrorDetails');
exports.ASRTask = require('./aSRTask');
exports.AutomationRunbookTaskDetails = require('./automationRunbookTaskDetails');
exports.FabricSpecificCreationInput = require('./fabricSpecificCreationInput');
exports.AzureFabricCreationInput = require('./azureFabricCreationInput');
exports.FabricSpecificDetails = require('./fabricSpecificDetails');
exports.AzureFabricSpecificDetails = require('./azureFabricSpecificDetails');
exports.FabricSpecificCreateNetworkMappingInput = require('./fabricSpecificCreateNetworkMappingInput');
exports.AzureToAzureCreateNetworkMappingInput = require('./azureToAzureCreateNetworkMappingInput');
exports.NetworkMappingFabricSpecificSettings = require('./networkMappingFabricSpecificSettings');
exports.AzureToAzureNetworkMappingSettings = require('./azureToAzureNetworkMappingSettings');
exports.FabricSpecificUpdateNetworkMappingInput = require('./fabricSpecificUpdateNetworkMappingInput');
exports.AzureToAzureUpdateNetworkMappingInput = require('./azureToAzureUpdateNetworkMappingInput');
exports.AzureVmDiskDetails = require('./azureVmDiskDetails');
exports.ComputeSizeErrorDetails = require('./computeSizeErrorDetails');
exports.ConfigurationSettings = require('./configurationSettings');
exports.ConfigureAlertRequestProperties = require('./configureAlertRequestProperties');
exports.ConfigureAlertRequest = require('./configureAlertRequest');
exports.InconsistentVmDetails = require('./inconsistentVmDetails');
exports.ConsistencyCheckTaskDetails = require('./consistencyCheckTaskDetails');
exports.CreateNetworkMappingInputProperties = require('./createNetworkMappingInputProperties');
exports.CreateNetworkMappingInput = require('./createNetworkMappingInput');
exports.CreatePolicyInputProperties = require('./createPolicyInputProperties');
exports.CreatePolicyInput = require('./createPolicyInput');
exports.CreateProtectionContainerInputProperties = require('./createProtectionContainerInputProperties');
exports.CreateProtectionContainerInput = require('./createProtectionContainerInput');
exports.CreateProtectionContainerMappingInputProperties = require('./createProtectionContainerMappingInputProperties');
exports.CreateProtectionContainerMappingInput = require('./createProtectionContainerMappingInput');
exports.RecoveryPlanProtectedItem = require('./recoveryPlanProtectedItem');
exports.RecoveryPlanActionDetails = require('./recoveryPlanActionDetails');
exports.RecoveryPlanAction = require('./recoveryPlanAction');
exports.RecoveryPlanGroup = require('./recoveryPlanGroup');
exports.CreateRecoveryPlanInputProperties = require('./createRecoveryPlanInputProperties');
exports.CreateRecoveryPlanInput = require('./createRecoveryPlanInput');
exports.CurrentScenarioDetails = require('./currentScenarioDetails');
exports.DataStore = require('./dataStore');
exports.DisableProtectionProviderSpecificInput = require('./disableProtectionProviderSpecificInput');
exports.DisableProtectionInputProperties = require('./disableProtectionInputProperties');
exports.DisableProtectionInput = require('./disableProtectionInput');
exports.DiscoverProtectableItemRequestProperties = require('./discoverProtectableItemRequestProperties');
exports.DiscoverProtectableItemRequest = require('./discoverProtectableItemRequest');
exports.DiskDetails = require('./diskDetails');
exports.DiskVolumeDetails = require('./diskVolumeDetails');
exports.Display = require('./display');
exports.EnableProtectionInputProperties = require('./enableProtectionInputProperties');
exports.EnableProtectionInput = require('./enableProtectionInput');
exports.EncryptionDetails = require('./encryptionDetails');
exports.EventSpecificDetails = require('./eventSpecificDetails');
exports.InnerHealthError = require('./innerHealthError');
exports.HealthError = require('./healthError');
exports.EventProperties = require('./eventProperties');
exports.Event = require('./event');
exports.EventQueryParameter = require('./eventQueryParameter');
exports.ExportJobDetails = require('./exportJobDetails');
exports.FabricProperties = require('./fabricProperties');
exports.Fabric = require('./fabric');
exports.FabricCreationInputProperties = require('./fabricCreationInputProperties');
exports.FabricCreationInput = require('./fabricCreationInput');
exports.JobEntity = require('./jobEntity');
exports.FabricReplicationGroupTaskDetails = require('./fabricReplicationGroupTaskDetails');
exports.FailoverReplicationProtectedItemDetails = require('./failoverReplicationProtectedItemDetails');
exports.FailoverJobDetails = require('./failoverJobDetails');
exports.FailoverProcessServerRequestProperties = require('./failoverProcessServerRequestProperties');
exports.FailoverProcessServerRequest = require('./failoverProcessServerRequest');
exports.HealthErrorSummary = require('./healthErrorSummary');
exports.HyperVReplica2012EventDetails = require('./hyperVReplica2012EventDetails');
exports.HyperVReplica2012R2EventDetails = require('./hyperVReplica2012R2EventDetails');
exports.HyperVReplicaAzureApplyRecoveryPointInput = require('./hyperVReplicaAzureApplyRecoveryPointInput');
exports.HyperVReplicaAzureEnableProtectionInput = require('./hyperVReplicaAzureEnableProtectionInput');
exports.HyperVReplicaAzureEventDetails = require('./hyperVReplicaAzureEventDetails');
exports.HyperVReplicaAzureFailbackProviderInput = require('./hyperVReplicaAzureFailbackProviderInput');
exports.HyperVReplicaAzureFailoverProviderInput = require('./hyperVReplicaAzureFailoverProviderInput');
exports.HyperVReplicaAzurePolicyDetails = require('./hyperVReplicaAzurePolicyDetails');
exports.HyperVReplicaAzurePolicyInput = require('./hyperVReplicaAzurePolicyInput');
exports.InitialReplicationDetails = require('./initialReplicationDetails');
exports.OSDetails = require('./oSDetails');
exports.HyperVReplicaAzureReplicationDetails = require('./hyperVReplicaAzureReplicationDetails');
exports.HyperVReplicaAzureReprotectInput = require('./hyperVReplicaAzureReprotectInput');
exports.HyperVReplicaAzureUpdateReplicationProtectedItemInput = require('./hyperVReplicaAzureUpdateReplicationProtectedItemInput');
exports.HyperVReplicaBaseEventDetails = require('./hyperVReplicaBaseEventDetails');
exports.HyperVReplicaBasePolicyDetails = require('./hyperVReplicaBasePolicyDetails');
exports.HyperVReplicaBaseReplicationDetails = require('./hyperVReplicaBaseReplicationDetails');
exports.HyperVReplicaBluePolicyDetails = require('./hyperVReplicaBluePolicyDetails');
exports.HyperVReplicaBluePolicyInput = require('./hyperVReplicaBluePolicyInput');
exports.HyperVReplicaBlueReplicationDetails = require('./hyperVReplicaBlueReplicationDetails');
exports.HyperVReplicaPolicyDetails = require('./hyperVReplicaPolicyDetails');
exports.HyperVReplicaPolicyInput = require('./hyperVReplicaPolicyInput');
exports.HyperVReplicaReplicationDetails = require('./hyperVReplicaReplicationDetails');
exports.HyperVSiteDetails = require('./hyperVSiteDetails');
exports.HyperVVirtualMachineDetails = require('./hyperVVirtualMachineDetails');
exports.IdentityInformation = require('./identityInformation');
exports.InlineWorkflowTaskDetails = require('./inlineWorkflowTaskDetails');
exports.InMageAgentDetails = require('./inMageAgentDetails');
exports.InMageAgentVersionDetails = require('./inMageAgentVersionDetails');
exports.InMageAzureV2ApplyRecoveryPointInput = require('./inMageAzureV2ApplyRecoveryPointInput');
exports.InMageAzureV2EnableProtectionInput = require('./inMageAzureV2EnableProtectionInput');
exports.InMageAzureV2EventDetails = require('./inMageAzureV2EventDetails');
exports.InMageAzureV2FailoverProviderInput = require('./inMageAzureV2FailoverProviderInput');
exports.InMageAzureV2PolicyDetails = require('./inMageAzureV2PolicyDetails');
exports.InMageAzureV2PolicyInput = require('./inMageAzureV2PolicyInput');
exports.InMageAzureV2ProtectedDiskDetails = require('./inMageAzureV2ProtectedDiskDetails');
exports.InMageAzureV2RecoveryPointDetails = require('./inMageAzureV2RecoveryPointDetails');
exports.InMageAzureV2ReplicationDetails = require('./inMageAzureV2ReplicationDetails');
exports.InMageAzureV2ReprotectInput = require('./inMageAzureV2ReprotectInput');
exports.InMageAzureV2UpdateReplicationProtectedItemInput = require('./inMageAzureV2UpdateReplicationProtectedItemInput');
exports.InMageBasePolicyDetails = require('./inMageBasePolicyDetails');
exports.InMageDisableProtectionProviderSpecificInput = require('./inMageDisableProtectionProviderSpecificInput');
exports.InMageDiskDetails = require('./inMageDiskDetails');
exports.InMageVolumeExclusionOptions = require('./inMageVolumeExclusionOptions');
exports.InMageDiskSignatureExclusionOptions = require('./inMageDiskSignatureExclusionOptions');
exports.InMageDiskExclusionInput = require('./inMageDiskExclusionInput');
exports.InMageEnableProtectionInput = require('./inMageEnableProtectionInput');
exports.InMageFailoverProviderInput = require('./inMageFailoverProviderInput');
exports.InMagePolicyDetails = require('./inMagePolicyDetails');
exports.InMagePolicyInput = require('./inMagePolicyInput');
exports.InMageProtectedDiskDetails = require('./inMageProtectedDiskDetails');
exports.OSDiskDetails = require('./oSDiskDetails');
exports.InMageReplicationDetails = require('./inMageReplicationDetails');
exports.InMageReprotectInput = require('./inMageReprotectInput');
exports.JobProperties = require('./jobProperties');
exports.Job = require('./job');
exports.JobQueryParameter = require('./jobQueryParameter');
exports.JobStatusEventDetails = require('./jobStatusEventDetails');
exports.JobTaskDetails = require('./jobTaskDetails');
exports.LogicalNetworkProperties = require('./logicalNetworkProperties');
exports.LogicalNetwork = require('./logicalNetwork');
exports.ManualActionTaskDetails = require('./manualActionTaskDetails');
exports.RetentionVolume = require('./retentionVolume');
exports.VersionDetails = require('./versionDetails');
exports.MasterTargetServer = require('./masterTargetServer');
exports.MobilityServiceUpdate = require('./mobilityServiceUpdate');
exports.Subnet = require('./subnet');
exports.NetworkProperties = require('./networkProperties');
exports.Network = require('./network');
exports.NetworkMappingProperties = require('./networkMappingProperties');
exports.NetworkMapping = require('./networkMapping');
exports.OperationsDiscovery = require('./operationsDiscovery');
exports.PlannedFailoverInputProperties = require('./plannedFailoverInputProperties');
exports.PlannedFailoverInput = require('./plannedFailoverInput');
exports.PolicyProperties = require('./policyProperties');
exports.Policy = require('./policy');
exports.ProcessServer = require('./processServer');
exports.ProtectableItemProperties = require('./protectableItemProperties');
exports.ProtectableItem = require('./protectableItem');
exports.ProtectableItemQueryParameter = require('./protectableItemQueryParameter');
exports.ProtectedItemsQueryParameter = require('./protectedItemsQueryParameter');
exports.ProtectionContainerFabricSpecificDetails = require('./protectionContainerFabricSpecificDetails');
exports.ProtectionContainerProperties = require('./protectionContainerProperties');
exports.ProtectionContainer = require('./protectionContainer');
exports.ProtectionContainerMappingProperties = require('./protectionContainerMappingProperties');
exports.ProtectionContainerMapping = require('./protectionContainerMapping');
exports.RcmAzureMigrationPolicyDetails = require('./rcmAzureMigrationPolicyDetails');
exports.RecoveryPlanProperties = require('./recoveryPlanProperties');
exports.RecoveryPlan = require('./recoveryPlan');
exports.RecoveryPlanProviderSpecificFailoverInput = require('./recoveryPlanProviderSpecificFailoverInput');
exports.RecoveryPlanA2AFailoverInput = require('./recoveryPlanA2AFailoverInput');
exports.RecoveryPlanAutomationRunbookActionDetails = require('./recoveryPlanAutomationRunbookActionDetails');
exports.RecoveryPlanGroupTaskDetails = require('./recoveryPlanGroupTaskDetails');
exports.RecoveryPlanHyperVReplicaAzureFailbackInput = require('./recoveryPlanHyperVReplicaAzureFailbackInput');
exports.RecoveryPlanHyperVReplicaAzureFailoverInput = require('./recoveryPlanHyperVReplicaAzureFailoverInput');
exports.RecoveryPlanInMageAzureV2FailoverInput = require('./recoveryPlanInMageAzureV2FailoverInput');
exports.RecoveryPlanInMageFailoverInput = require('./recoveryPlanInMageFailoverInput');
exports.RecoveryPlanManualActionDetails = require('./recoveryPlanManualActionDetails');
exports.RecoveryPlanPlannedFailoverInputProperties = require('./recoveryPlanPlannedFailoverInputProperties');
exports.RecoveryPlanPlannedFailoverInput = require('./recoveryPlanPlannedFailoverInput');
exports.RecoveryPlanScriptActionDetails = require('./recoveryPlanScriptActionDetails');
exports.RecoveryPlanShutdownGroupTaskDetails = require('./recoveryPlanShutdownGroupTaskDetails');
exports.RecoveryPlanTestFailoverCleanupInputProperties = require('./recoveryPlanTestFailoverCleanupInputProperties');
exports.RecoveryPlanTestFailoverCleanupInput = require('./recoveryPlanTestFailoverCleanupInput');
exports.RecoveryPlanTestFailoverInputProperties = require('./recoveryPlanTestFailoverInputProperties');
exports.RecoveryPlanTestFailoverInput = require('./recoveryPlanTestFailoverInput');
exports.RecoveryPlanUnplannedFailoverInputProperties = require('./recoveryPlanUnplannedFailoverInputProperties');
exports.RecoveryPlanUnplannedFailoverInput = require('./recoveryPlanUnplannedFailoverInput');
exports.RecoveryPointProperties = require('./recoveryPointProperties');
exports.RecoveryPoint = require('./recoveryPoint');
exports.RecoveryServicesProviderProperties = require('./recoveryServicesProviderProperties');
exports.RecoveryServicesProvider = require('./recoveryServicesProvider');
exports.ReplicationProviderContainerUnmappingInput = require('./replicationProviderContainerUnmappingInput');
exports.RemoveProtectionContainerMappingInputProperties = require('./removeProtectionContainerMappingInputProperties');
exports.RemoveProtectionContainerMappingInput = require('./removeProtectionContainerMappingInput');
exports.RenewCertificateInputProperties = require('./renewCertificateInputProperties');
exports.RenewCertificateInput = require('./renewCertificateInput');
exports.ReplicationGroupDetails = require('./replicationGroupDetails');
exports.ReplicationProtectedItemProperties = require('./replicationProtectedItemProperties');
exports.ReplicationProtectedItem = require('./replicationProtectedItem');
exports.ResourceHealthSummary = require('./resourceHealthSummary');
exports.ResumeJobParamsProperties = require('./resumeJobParamsProperties');
exports.ResumeJobParams = require('./resumeJobParams');
exports.ReverseReplicationInputProperties = require('./reverseReplicationInputProperties');
exports.ReverseReplicationInput = require('./reverseReplicationInput');
exports.RunAsAccount = require('./runAsAccount');
exports.SanEnableProtectionInput = require('./sanEnableProtectionInput');
exports.ScriptActionTaskDetails = require('./scriptActionTaskDetails');
exports.StorageClassificationProperties = require('./storageClassificationProperties');
exports.StorageClassification = require('./storageClassification');
exports.StorageClassificationMappingProperties = require('./storageClassificationMappingProperties');
exports.StorageClassificationMapping = require('./storageClassificationMapping');
exports.StorageMappingInputProperties = require('./storageMappingInputProperties');
exports.StorageClassificationMappingInput = require('./storageClassificationMappingInput');
exports.SwitchProtectionInputProperties = require('./switchProtectionInputProperties');
exports.SwitchProtectionInput = require('./switchProtectionInput');
exports.SwitchProtectionJobDetails = require('./switchProtectionJobDetails');
exports.TargetComputeSizeProperties = require('./targetComputeSizeProperties');
exports.TargetComputeSize = require('./targetComputeSize');
exports.TestFailoverCleanupInputProperties = require('./testFailoverCleanupInputProperties');
exports.TestFailoverCleanupInput = require('./testFailoverCleanupInput');
exports.TestFailoverInputProperties = require('./testFailoverInputProperties');
exports.TestFailoverInput = require('./testFailoverInput');
exports.TestFailoverJobDetails = require('./testFailoverJobDetails');
exports.UnplannedFailoverInputProperties = require('./unplannedFailoverInputProperties');
exports.UnplannedFailoverInput = require('./unplannedFailoverInput');
exports.UpdateMobilityServiceRequestProperties = require('./updateMobilityServiceRequestProperties');
exports.UpdateMobilityServiceRequest = require('./updateMobilityServiceRequest');
exports.UpdateNetworkMappingInputProperties = require('./updateNetworkMappingInputProperties');
exports.UpdateNetworkMappingInput = require('./updateNetworkMappingInput');
exports.UpdatePolicyInputProperties = require('./updatePolicyInputProperties');
exports.UpdatePolicyInput = require('./updatePolicyInput');
exports.UpdateProtectionContainerMappingInputProperties = require('./updateProtectionContainerMappingInputProperties');
exports.UpdateProtectionContainerMappingInput = require('./updateProtectionContainerMappingInput');
exports.UpdateRecoveryPlanInputProperties = require('./updateRecoveryPlanInputProperties');
exports.UpdateRecoveryPlanInput = require('./updateRecoveryPlanInput');
exports.VMNicInputDetails = require('./vMNicInputDetails');
exports.UpdateReplicationProtectedItemInputProperties = require('./updateReplicationProtectedItemInputProperties');
exports.UpdateReplicationProtectedItemInput = require('./updateReplicationProtectedItemInput');
exports.UpdateVCenterRequestProperties = require('./updateVCenterRequestProperties');
exports.UpdateVCenterRequest = require('./updateVCenterRequest');
exports.VaultHealthProperties = require('./vaultHealthProperties');
exports.VaultHealthDetails = require('./vaultHealthDetails');
exports.VCenterProperties = require('./vCenterProperties');
exports.VCenter = require('./vCenter');
exports.VirtualMachineTaskDetails = require('./virtualMachineTaskDetails');
exports.VmmDetails = require('./vmmDetails');
exports.VmmToAzureCreateNetworkMappingInput = require('./vmmToAzureCreateNetworkMappingInput');
exports.VmmToAzureNetworkMappingSettings = require('./vmmToAzureNetworkMappingSettings');
exports.VmmToAzureUpdateNetworkMappingInput = require('./vmmToAzureUpdateNetworkMappingInput');
exports.VmmToVmmCreateNetworkMappingInput = require('./vmmToVmmCreateNetworkMappingInput');
exports.VmmToVmmNetworkMappingSettings = require('./vmmToVmmNetworkMappingSettings');
exports.VmmToVmmUpdateNetworkMappingInput = require('./vmmToVmmUpdateNetworkMappingInput');
exports.VmmVirtualMachineDetails = require('./vmmVirtualMachineDetails');
exports.VmNicUpdatesTaskDetails = require('./vmNicUpdatesTaskDetails');
exports.VMwareCbtPolicyCreationInput = require('./vMwareCbtPolicyCreationInput');
exports.VmwareCbtPolicyDetails = require('./vmwareCbtPolicyDetails');
exports.VMwareDetails = require('./vMwareDetails');
exports.VMwareV2FabricCreationInput = require('./vMwareV2FabricCreationInput');
exports.VMwareV2FabricSpecificDetails = require('./vMwareV2FabricSpecificDetails');
exports.VMwareVirtualMachineDetails = require('./vMwareVirtualMachineDetails');
exports.OperationsDiscoveryCollection = require('./operationsDiscoveryCollection');
exports.AlertCollection = require('./alertCollection');
exports.EventCollection = require('./eventCollection');
exports.FabricCollection = require('./fabricCollection');
exports.LogicalNetworkCollection = require('./logicalNetworkCollection');
exports.NetworkCollection = require('./networkCollection');
exports.NetworkMappingCollection = require('./networkMappingCollection');
exports.ProtectionContainerCollection = require('./protectionContainerCollection');
exports.ProtectableItemCollection = require('./protectableItemCollection');
exports.ReplicationProtectedItemCollection = require('./replicationProtectedItemCollection');
exports.RecoveryPointCollection = require('./recoveryPointCollection');
exports.TargetComputeSizeCollection = require('./targetComputeSizeCollection');
exports.ProtectionContainerMappingCollection = require('./protectionContainerMappingCollection');
exports.RecoveryServicesProviderCollection = require('./recoveryServicesProviderCollection');
exports.StorageClassificationCollection = require('./storageClassificationCollection');
exports.StorageClassificationMappingCollection = require('./storageClassificationMappingCollection');
exports.VCenterCollection = require('./vCenterCollection');
exports.JobCollection = require('./jobCollection');
exports.PolicyCollection = require('./policyCollection');
exports.RecoveryPlanCollection = require('./recoveryPlanCollection');
exports.discriminators = {
  'ApplyRecoveryPointProviderSpecificInput.A2A' : exports.A2AApplyRecoveryPointInput,
  'ReplicationProviderSpecificContainerCreationInput.A2A' : exports.A2AContainerCreationInput,
  'ReplicationProviderSpecificContainerMappingInput.A2A' : exports.A2AContainerMappingInput,
  'EnableProtectionProviderSpecificInput.A2A' : exports.A2AEnableProtectionInput,
  'EventProviderSpecificDetails.A2A' : exports.A2AEventDetails,
  'ProviderSpecificFailoverInput.A2A' : exports.A2AFailoverProviderInput,
  'PolicyProviderSpecificInput.A2A' : exports.A2APolicyCreationInput,
  'PolicyProviderSpecificDetails.A2A' : exports.A2APolicyDetails,
  'ProtectionContainerMappingProviderSpecificDetails.A2A' : exports.A2AProtectionContainerMappingDetails,
  'ProviderSpecificRecoveryPointDetails.A2A' : exports.A2ARecoveryPointDetails,
  'ReplicationProviderSpecificSettings.A2A' : exports.A2AReplicationDetails,
  'ReverseReplicationProviderSpecificInput.A2A' : exports.A2AReprotectInput,
  'SwitchProtectionProviderSpecificInput.A2A' : exports.A2ASwitchProtectionInput,
  'ReplicationProviderSpecificUpdateContainerMappingInput.A2A' : exports.A2AUpdateContainerMappingInput,
  'UpdateReplicationProtectedItemProviderInput.A2A' : exports.A2AUpdateReplicationProtectedItemInput,
  'ApplyRecoveryPointProviderSpecificInput' : exports.ApplyRecoveryPointProviderSpecificInput,
  'JobDetails.AsrJobDetails' : exports.AsrJobDetails,
  'TaskTypeDetails' : exports.TaskTypeDetails,
  'GroupTaskDetails' : exports.GroupTaskDetails,
  'TaskTypeDetails.AutomationRunbookTaskDetails' : exports.AutomationRunbookTaskDetails,
  'FabricSpecificCreationInput.Azure' : exports.AzureFabricCreationInput,
  'FabricSpecificDetails.Azure' : exports.AzureFabricSpecificDetails,
  'FabricSpecificCreateNetworkMappingInput.AzureToAzure' : exports.AzureToAzureCreateNetworkMappingInput,
  'NetworkMappingFabricSpecificSettings.AzureToAzure' : exports.AzureToAzureNetworkMappingSettings,
  'FabricSpecificUpdateNetworkMappingInput.AzureToAzure' : exports.AzureToAzureUpdateNetworkMappingInput,
  'ConfigurationSettings' : exports.ConfigurationSettings,
  'TaskTypeDetails.ConsistencyCheckTaskDetails' : exports.ConsistencyCheckTaskDetails,
  'FabricSpecificCreateNetworkMappingInput' : exports.FabricSpecificCreateNetworkMappingInput,
  'PolicyProviderSpecificInput' : exports.PolicyProviderSpecificInput,
  'ReplicationProviderSpecificContainerCreationInput' : exports.ReplicationProviderSpecificContainerCreationInput,
  'ReplicationProviderSpecificContainerMappingInput' : exports.ReplicationProviderSpecificContainerMappingInput,
  'RecoveryPlanActionDetails' : exports.RecoveryPlanActionDetails,
  'DisableProtectionProviderSpecificInput' : exports.DisableProtectionProviderSpecificInput,
  'EnableProtectionProviderSpecificInput' : exports.EnableProtectionProviderSpecificInput,
  'EventProviderSpecificDetails' : exports.EventProviderSpecificDetails,
  'EventSpecificDetails' : exports.EventSpecificDetails,
  'JobDetails.ExportJobDetails' : exports.ExportJobDetails,
  'FabricSpecificDetails' : exports.FabricSpecificDetails,
  'FabricSpecificCreationInput' : exports.FabricSpecificCreationInput,
  'TaskTypeDetails.FabricReplicationGroupTaskDetails' : exports.FabricReplicationGroupTaskDetails,
  'FabricSpecificUpdateNetworkMappingInput' : exports.FabricSpecificUpdateNetworkMappingInput,
  'JobDetails.FailoverJobDetails' : exports.FailoverJobDetails,
  'EventProviderSpecificDetails.HyperVReplica2012' : exports.HyperVReplica2012EventDetails,
  'EventProviderSpecificDetails.HyperVReplica2012R2' : exports.HyperVReplica2012R2EventDetails,
  'ApplyRecoveryPointProviderSpecificInput.HyperVReplicaAzure' : exports.HyperVReplicaAzureApplyRecoveryPointInput,
  'EnableProtectionProviderSpecificInput.HyperVReplicaAzure' : exports.HyperVReplicaAzureEnableProtectionInput,
  'EventProviderSpecificDetails.HyperVReplicaAzure' : exports.HyperVReplicaAzureEventDetails,
  'ProviderSpecificFailoverInput.HyperVReplicaAzureFailback' : exports.HyperVReplicaAzureFailbackProviderInput,
  'ProviderSpecificFailoverInput.HyperVReplicaAzure' : exports.HyperVReplicaAzureFailoverProviderInput,
  'PolicyProviderSpecificDetails.HyperVReplicaAzure' : exports.HyperVReplicaAzurePolicyDetails,
  'PolicyProviderSpecificInput.HyperVReplicaAzure' : exports.HyperVReplicaAzurePolicyInput,
  'ReplicationProviderSpecificSettings.HyperVReplicaAzure' : exports.HyperVReplicaAzureReplicationDetails,
  'ReverseReplicationProviderSpecificInput.HyperVReplicaAzure' : exports.HyperVReplicaAzureReprotectInput,
  'UpdateReplicationProtectedItemProviderInput.HyperVReplicaAzure' : exports.HyperVReplicaAzureUpdateReplicationProtectedItemInput,
  'EventProviderSpecificDetails.HyperVReplicaBaseEventDetails' : exports.HyperVReplicaBaseEventDetails,
  'PolicyProviderSpecificDetails.HyperVReplicaBasePolicyDetails' : exports.HyperVReplicaBasePolicyDetails,
  'ReplicationProviderSpecificSettings.HyperVReplicaBaseReplicationDetails' : exports.HyperVReplicaBaseReplicationDetails,
  'PolicyProviderSpecificDetails.HyperVReplica2012R2' : exports.HyperVReplicaBluePolicyDetails,
  'PolicyProviderSpecificInput.HyperVReplica2012R2' : exports.HyperVReplicaBluePolicyInput,
  'ReplicationProviderSpecificSettings.HyperVReplica2012R2' : exports.HyperVReplicaBlueReplicationDetails,
  'PolicyProviderSpecificDetails.HyperVReplica2012' : exports.HyperVReplicaPolicyDetails,
  'PolicyProviderSpecificInput.HyperVReplica2012' : exports.HyperVReplicaPolicyInput,
  'ReplicationProviderSpecificSettings.HyperVReplica2012' : exports.HyperVReplicaReplicationDetails,
  'FabricSpecificDetails.HyperVSite' : exports.HyperVSiteDetails,
  'ConfigurationSettings.HyperVVirtualMachine' : exports.HyperVVirtualMachineDetails,
  'GroupTaskDetails.InlineWorkflowTaskDetails' : exports.InlineWorkflowTaskDetails,
  'ApplyRecoveryPointProviderSpecificInput.InMageAzureV2' : exports.InMageAzureV2ApplyRecoveryPointInput,
  'EnableProtectionProviderSpecificInput.InMageAzureV2' : exports.InMageAzureV2EnableProtectionInput,
  'EventProviderSpecificDetails.InMageAzureV2' : exports.InMageAzureV2EventDetails,
  'ProviderSpecificFailoverInput.InMageAzureV2' : exports.InMageAzureV2FailoverProviderInput,
  'PolicyProviderSpecificDetails.InMageAzureV2' : exports.InMageAzureV2PolicyDetails,
  'PolicyProviderSpecificInput.InMageAzureV2' : exports.InMageAzureV2PolicyInput,
  'ProviderSpecificRecoveryPointDetails.InMageAzureV2' : exports.InMageAzureV2RecoveryPointDetails,
  'ReplicationProviderSpecificSettings.InMageAzureV2' : exports.InMageAzureV2ReplicationDetails,
  'ReverseReplicationProviderSpecificInput.InMageAzureV2' : exports.InMageAzureV2ReprotectInput,
  'UpdateReplicationProtectedItemProviderInput.InMageAzureV2' : exports.InMageAzureV2UpdateReplicationProtectedItemInput,
  'PolicyProviderSpecificDetails.InMageBasePolicyDetails' : exports.InMageBasePolicyDetails,
  'DisableProtectionProviderSpecificInput.InMage' : exports.InMageDisableProtectionProviderSpecificInput,
  'EnableProtectionProviderSpecificInput.InMage' : exports.InMageEnableProtectionInput,
  'ProviderSpecificFailoverInput.InMage' : exports.InMageFailoverProviderInput,
  'PolicyProviderSpecificDetails.InMage' : exports.InMagePolicyDetails,
  'PolicyProviderSpecificInput.InMage' : exports.InMagePolicyInput,
  'ReplicationProviderSpecificSettings.InMage' : exports.InMageReplicationDetails,
  'ReverseReplicationProviderSpecificInput.InMage' : exports.InMageReprotectInput,
  'JobDetails' : exports.JobDetails,
  'EventSpecificDetails.JobStatus' : exports.JobStatusEventDetails,
  'TaskTypeDetails.JobTaskDetails' : exports.JobTaskDetails,
  'TaskTypeDetails.ManualActionTaskDetails' : exports.ManualActionTaskDetails,
  'NetworkMappingFabricSpecificSettings' : exports.NetworkMappingFabricSpecificSettings,
  'ProviderSpecificFailoverInput' : exports.ProviderSpecificFailoverInput,
  'PolicyProviderSpecificDetails' : exports.PolicyProviderSpecificDetails,
  'ProtectionContainerMappingProviderSpecificDetails' : exports.ProtectionContainerMappingProviderSpecificDetails,
  'ProviderSpecificRecoveryPointDetails' : exports.ProviderSpecificRecoveryPointDetails,
  'PolicyProviderSpecificDetails.RcmAzureMigration' : exports.RcmAzureMigrationPolicyDetails,
  'RecoveryPlanProviderSpecificFailoverInput.A2A' : exports.RecoveryPlanA2AFailoverInput,
  'RecoveryPlanActionDetails.AutomationRunbookActionDetails' : exports.RecoveryPlanAutomationRunbookActionDetails,
  'GroupTaskDetails.RecoveryPlanGroupTaskDetails' : exports.RecoveryPlanGroupTaskDetails,
  'RecoveryPlanProviderSpecificFailoverInput.HyperVReplicaAzureFailback' : exports.RecoveryPlanHyperVReplicaAzureFailbackInput,
  'RecoveryPlanProviderSpecificFailoverInput.HyperVReplicaAzure' : exports.RecoveryPlanHyperVReplicaAzureFailoverInput,
  'RecoveryPlanProviderSpecificFailoverInput.InMageAzureV2' : exports.RecoveryPlanInMageAzureV2FailoverInput,
  'RecoveryPlanProviderSpecificFailoverInput.InMage' : exports.RecoveryPlanInMageFailoverInput,
  'RecoveryPlanActionDetails.ManualActionDetails' : exports.RecoveryPlanManualActionDetails,
  'RecoveryPlanProviderSpecificFailoverInput' : exports.RecoveryPlanProviderSpecificFailoverInput,
  'RecoveryPlanActionDetails.ScriptActionDetails' : exports.RecoveryPlanScriptActionDetails,
  'GroupTaskDetails.RecoveryPlanShutdownGroupTaskDetails' : exports.RecoveryPlanShutdownGroupTaskDetails,
  'ConfigurationSettings.ReplicationGroupDetails' : exports.ReplicationGroupDetails,
  'ReplicationProviderSpecificSettings' : exports.ReplicationProviderSpecificSettings,
  'ReplicationProviderSpecificUpdateContainerMappingInput' : exports.ReplicationProviderSpecificUpdateContainerMappingInput,
  'ReverseReplicationProviderSpecificInput' : exports.ReverseReplicationProviderSpecificInput,
  'EnableProtectionProviderSpecificInput.San' : exports.SanEnableProtectionInput,
  'TaskTypeDetails.ScriptActionTaskDetails' : exports.ScriptActionTaskDetails,
  'SwitchProtectionProviderSpecificInput' : exports.SwitchProtectionProviderSpecificInput,
  'JobDetails.SwitchProtectionJobDetails' : exports.SwitchProtectionJobDetails,
  'JobDetails.TestFailoverJobDetails' : exports.TestFailoverJobDetails,
  'UpdateReplicationProtectedItemProviderInput' : exports.UpdateReplicationProtectedItemProviderInput,
  'TaskTypeDetails.VirtualMachineTaskDetails' : exports.VirtualMachineTaskDetails,
  'FabricSpecificDetails.VMM' : exports.VmmDetails,
  'FabricSpecificCreateNetworkMappingInput.VmmToAzure' : exports.VmmToAzureCreateNetworkMappingInput,
  'NetworkMappingFabricSpecificSettings.VmmToAzure' : exports.VmmToAzureNetworkMappingSettings,
  'FabricSpecificUpdateNetworkMappingInput.VmmToAzure' : exports.VmmToAzureUpdateNetworkMappingInput,
  'FabricSpecificCreateNetworkMappingInput.VmmToVmm' : exports.VmmToVmmCreateNetworkMappingInput,
  'NetworkMappingFabricSpecificSettings.VmmToVmm' : exports.VmmToVmmNetworkMappingSettings,
  'FabricSpecificUpdateNetworkMappingInput.VmmToVmm' : exports.VmmToVmmUpdateNetworkMappingInput,
  'ConfigurationSettings.VmmVirtualMachine' : exports.VmmVirtualMachineDetails,
  'TaskTypeDetails.VmNicUpdatesTaskDetails' : exports.VmNicUpdatesTaskDetails,
  'PolicyProviderSpecificInput.VMwareCbt' : exports.VMwareCbtPolicyCreationInput,
  'PolicyProviderSpecificDetails.VMwareCbt' : exports.VmwareCbtPolicyDetails,
  'FabricSpecificDetails.VMware' : exports.VMwareDetails,
  'FabricSpecificCreationInput.VMwareV2' : exports.VMwareV2FabricCreationInput,
  'FabricSpecificDetails.VMwareV2' : exports.VMwareV2FabricSpecificDetails,
  'ConfigurationSettings.VMwareVirtualMachine' : exports.VMwareVirtualMachineDetails
};
